The board edits the agent task database through the Python MCP server, which now lives in this module (Taskboard/server). Code is versioned here; the data (tasks.db and per-task session workspaces) stays in AGENTS_DATA_DIR, by default ~/agents/manager, decided only in server/paths.py. UI: - Tasks are graph nodes; parent/child and dependency links map to set_parent and dependencies. Dropping a link on empty space creates a connected task. - Inspector edits title, description, status, priority, model, effort, permission mode and colour. - Edits stay local until Save (Ctrl+S, File > Save); the status bar shows the unsaved count. Unsaved work is the difference between the board and the last server board (BoardSnapshot), saved atomically with save_board. - Server changes merge in on a one-second poll without touching unsaved edits; the same field changed on both sides becomes a keep-mine/use-theirs conflict. - Sessions: start, stop, restart with new settings (keeping or dropping the conversation), open in a terminal, send messages; a node badge shows the live session state. Server: - Headless Claude Code sessions, one tmux session per task, with state from hooks and the exit reason recorded; manual or auto permission modes. - save_board, edit_task conflict checks, field history, get_board and revision polling, session tools, task workspaces with report conventions.
314 lines
11 KiB
JSON
314 lines
11 KiB
JSON
{
|
|
"name": "agents-subrouter-token",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"name": "agents-subrouter-token",
|
|
"dependencies": {
|
|
"@subrouter/cli": "0.6.1"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/anthropic": {
|
|
"version": "3.0.82",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/anthropic/-/anthropic-3.0.82.tgz",
|
|
"integrity": "sha512-WKKou2wbhGGYV8PSALAPyV2YY4nfCqCPkyBzYtJtDA9yCcIFwsbtkTNgg7bqtLCVzeEsY7wwxRoCWy+EMfrw/A==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/provider": "3.0.10",
|
|
"@ai-sdk/provider-utils": "4.0.27"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider": {
|
|
"version": "3.0.10",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-3.0.10.tgz",
|
|
"integrity": "sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"json-schema": "^0.4.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/openai": {
|
|
"version": "3.0.53",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-3.0.53.tgz",
|
|
"integrity": "sha512-Wld+Rbc05KaUn08uBt06eEuwcgalcIFtIl32Yp+GxuZXUQwOb6YeAuq+C6da4ch6BurFoqEaLemJVwjBb7x+PQ==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/provider": "3.0.8",
|
|
"@ai-sdk/provider-utils": "4.0.23"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/openai-compatible": {
|
|
"version": "2.0.41",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/openai-compatible/-/openai-compatible-2.0.41.tgz",
|
|
"integrity": "sha512-kNAGINk71AlOXx10Dq/PXw4t/9XjdK8uxfpVElRwtSFMdeSiLVt58p9TPx4/FJD+hxZuVhvxYj9r42osxWq79g==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/provider": "3.0.8",
|
|
"@ai-sdk/provider-utils": "4.0.23"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/openai-compatible/node_modules/@ai-sdk/provider-utils": {
|
|
"version": "4.0.23",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-4.0.23.tgz",
|
|
"integrity": "sha512-z8GlDaCmRSDlqkMF2f4/RFgWxdarvIbyuk+m6WXT1LYgsnGiXRJGTD2Z1+SDl3LqtFuRtGX1aghYvQLoHL/9pg==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/provider": "3.0.8",
|
|
"@standard-schema/spec": "^1.1.0",
|
|
"eventsource-parser": "^3.0.6"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/openai/node_modules/@ai-sdk/provider-utils": {
|
|
"version": "4.0.23",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-4.0.23.tgz",
|
|
"integrity": "sha512-z8GlDaCmRSDlqkMF2f4/RFgWxdarvIbyuk+m6WXT1LYgsnGiXRJGTD2Z1+SDl3LqtFuRtGX1aghYvQLoHL/9pg==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/provider": "3.0.8",
|
|
"@standard-schema/spec": "^1.1.0",
|
|
"eventsource-parser": "^3.0.6"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/provider": {
|
|
"version": "3.0.8",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-3.0.8.tgz",
|
|
"integrity": "sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"json-schema": "^0.4.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/provider-utils": {
|
|
"version": "4.0.27",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-4.0.27.tgz",
|
|
"integrity": "sha512-ubkAJ+xODouwtmN1tYlvTPphH1hPOBfZaEQe8U7skGvFAnIRs9PPpsq57bC2+Ky/MB4yzhd6YOsxTAx9sGpazw==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/provider": "3.0.10",
|
|
"@standard-schema/spec": "^1.1.0",
|
|
"eventsource-parser": "^3.0.8"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/provider-utils/node_modules/@ai-sdk/provider": {
|
|
"version": "3.0.10",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-3.0.10.tgz",
|
|
"integrity": "sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"json-schema": "^0.4.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/xai": {
|
|
"version": "3.0.82",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/xai/-/xai-3.0.82.tgz",
|
|
"integrity": "sha512-A0VFMufnVf4wODcT3SPQUUzvYXiIO1VhFuXj9r6z/vP4rlo+QRDPw3WSTchcz93ROQWSfBE3I6Szqz342OHi5w==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/openai-compatible": "2.0.41",
|
|
"@ai-sdk/provider": "3.0.8",
|
|
"@ai-sdk/provider-utils": "4.0.23"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@ai-sdk/xai/node_modules/@ai-sdk/provider-utils": {
|
|
"version": "4.0.23",
|
|
"resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-4.0.23.tgz",
|
|
"integrity": "sha512-z8GlDaCmRSDlqkMF2f4/RFgWxdarvIbyuk+m6WXT1LYgsnGiXRJGTD2Z1+SDl3LqtFuRtGX1aghYvQLoHL/9pg==",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@ai-sdk/provider": "3.0.8",
|
|
"@standard-schema/spec": "^1.1.0",
|
|
"eventsource-parser": "^3.0.6"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"peerDependencies": {
|
|
"zod": "^3.25.76 || ^4.1.8"
|
|
}
|
|
},
|
|
"node_modules/@clack/core": {
|
|
"version": "0.5.0",
|
|
"resolved": "https://registry.npmjs.org/@clack/core/-/core-0.5.0.tgz",
|
|
"integrity": "sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"picocolors": "^1.0.0",
|
|
"sisteransi": "^1.0.5"
|
|
}
|
|
},
|
|
"node_modules/@clack/prompts": {
|
|
"version": "0.11.0",
|
|
"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.11.0.tgz",
|
|
"integrity": "sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@clack/core": "0.5.0",
|
|
"picocolors": "^1.0.0",
|
|
"sisteransi": "^1.0.5"
|
|
}
|
|
},
|
|
"node_modules/@standard-schema/spec": {
|
|
"version": "1.1.0",
|
|
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
|
|
"integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/@subrouter/cli": {
|
|
"version": "0.6.1",
|
|
"resolved": "https://registry.npmjs.org/@subrouter/cli/-/cli-0.6.1.tgz",
|
|
"integrity": "sha512-Bn0AjPDth2qseD/xNNQaMejcZV7zDhzSfLmSKOUM3YMIjkp8PWNN5V/fQwtWhyf1c8LWy0bpyLhQ5f/XSsoaKw==",
|
|
"dependencies": {
|
|
"@ai-sdk/anthropic": "3.0.82",
|
|
"@ai-sdk/openai": "3.0.53",
|
|
"@ai-sdk/openai-compatible": "2.0.41",
|
|
"@ai-sdk/provider": "3.0.8",
|
|
"@ai-sdk/xai": "3.0.82",
|
|
"@clack/prompts": "^0.11.0",
|
|
"errore": "^0.14.1",
|
|
"goke": "^6.14.1",
|
|
"string-dedent": "^3.0.2",
|
|
"ws": "^8.21.3",
|
|
"zod": "^4.1.5"
|
|
},
|
|
"bin": {
|
|
"subrouter": "dist/bin.js"
|
|
}
|
|
},
|
|
"node_modules/errore": {
|
|
"version": "0.14.1",
|
|
"resolved": "https://registry.npmjs.org/errore/-/errore-0.14.1.tgz",
|
|
"integrity": "sha512-YCRAEH21ChhJYlzJkZJqfn5pwOB9B9HL5hROdTSm8KEQMiVUOiipJftwwBpfhwQsCAdVEvqAwsBeUBZQZ+ePTg==",
|
|
"license": "MIT",
|
|
"bin": {
|
|
"errore": "dist/cli.js"
|
|
}
|
|
},
|
|
"node_modules/eventsource-parser": {
|
|
"version": "3.1.1",
|
|
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz",
|
|
"integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
}
|
|
},
|
|
"node_modules/goke": {
|
|
"version": "6.17.0",
|
|
"resolved": "https://registry.npmjs.org/goke/-/goke-6.17.0.tgz",
|
|
"integrity": "sha512-mSyMJ0TaMgkuypy1NVJ4YvxM1XnZQ2RvfDyry6IcCIU0lfKm0/wdk+OhC1hkIMfvvRmSpONqxifGNCd0JuPl0w==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/json-schema": {
|
|
"version": "0.4.0",
|
|
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
|
|
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
|
|
"license": "(AFL-2.1 OR BSD-3-Clause)"
|
|
},
|
|
"node_modules/picocolors": {
|
|
"version": "1.1.1",
|
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
|
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
|
"license": "ISC"
|
|
},
|
|
"node_modules/sisteransi": {
|
|
"version": "1.0.5",
|
|
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
|
|
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/string-dedent": {
|
|
"version": "3.0.2",
|
|
"resolved": "https://registry.npmjs.org/string-dedent/-/string-dedent-3.0.2.tgz",
|
|
"integrity": "sha512-M4q+HpHCtGXlbyzYDOcOo7V185dlq6YXvGUPcWZqL4vttCX9gFYoWIOxcPd7v5CAYcTJsGLs3ZJCAH2TXONF/g==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=0.12.0"
|
|
}
|
|
},
|
|
"node_modules/ws": {
|
|
"version": "8.22.0",
|
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz",
|
|
"integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=10.0.0"
|
|
},
|
|
"peerDependencies": {
|
|
"bufferutil": "^4.0.1",
|
|
"utf-8-validate": ">=5.0.2"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"bufferutil": {
|
|
"optional": true
|
|
},
|
|
"utf-8-validate": {
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
"node_modules/zod": {
|
|
"version": "4.6.7",
|
|
"resolved": "https://registry.npmjs.org/zod/-/zod-4.6.7.tgz",
|
|
"integrity": "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==",
|
|
"license": "MIT",
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/colinhacks"
|
|
}
|
|
}
|
|
}
|
|
}
|