Converts gadget-tasks from a duplicated codebase with direct MongoDB access to a headless IDE client that uses gadget-code's REST API and Socket.IO protocol to submit and process task prompts through the existing pipeline. Deleted (no longer needed): - gadget-tasks/src/models/ (5 Mongoose models — duplicated from gadget-code) - gadget-tasks/data/prompts/ (11 prompt templates — duplicated from gadget-code) - gadget-tasks/src/services/executor.ts (629-line AWL loop — duplicated from gadget-drone) - gadget-tasks/src/services/ai.ts (direct AI API calls — drones do this now) - gadget-tasks/src/services/workspace.ts (workspace management — drones do this now) Added: - gadget-tasks/src/services/platform.ts — REST API + Socket.IO headless IDE client with session lock, workspace mode, prompt submission, work order tracking Rewritten: - gadget-tasks/src/gadget-tasks.ts — new startup: user login → auth → drone selection → Socket.IO connect → schedule tasks (no MongoDB) - gadget-tasks/src/services/scheduler.ts — delegates to PlatformService.executeTask() - gadget-tasks/src/config/env.ts — platform.baseUrl config, no mongodb/google gadget-code changes: - Added PATCH /api/v1/projects/:projectId/tasks/:taskId/lastRun route - Added ProjectService.updateTaskLastRun() for atomic task field update Config changes: - GadgetTasksConfig: replaced mongodb with platform.baseUrl, removed google.cse - Dependencies: removed mongoose, @gadget/ai, @gadget/ai-toolbox, dayjs, simple-git, nanoid; added socket.io-client, @inquirer/prompts
40 lines
1.0 KiB
JSON
40 lines
1.0 KiB
JSON
{
|
|
"name": "gadget-tasks",
|
|
"version": "1.0.0",
|
|
"description": "Gadget Code scheduled task worker process",
|
|
"type": "module",
|
|
"bin": {
|
|
"gadget-tasks": "./dist/gadget-tasks.js"
|
|
},
|
|
"main": "./dist/gadget-tasks.js",
|
|
"scripts": {
|
|
"dev": "tsx src/gadget-tasks.ts",
|
|
"dev:watch": "tsx watch src/gadget-tasks.ts",
|
|
"build": "tsc",
|
|
"start": "node dist/gadget-tasks.js"
|
|
},
|
|
"keywords": [
|
|
"gadget",
|
|
"tasks",
|
|
"cron",
|
|
"scheduler",
|
|
"worker"
|
|
],
|
|
"author": "Rob Colbert",
|
|
"license": "Apache-2.0",
|
|
"packageManager": "pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8",
|
|
"dependencies": {
|
|
"@gadget/api": "workspace:*",
|
|
"@gadget/config": "workspace:*",
|
|
"@inquirer/prompts": "^8.4.2",
|
|
"cron": "^4.3.1",
|
|
"ioredis": "^5.6.0",
|
|
"socket.io-client": "^4.8.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.6.0",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "6.0.3"
|
|
}
|
|
}
|