mcp-copilot-worker 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -71
- package/dist/src/mcp/tool-definitions.js +6 -6
- package/dist/src/mcp/tool-definitions.js.map +1 -1
- package/dist/src/services/copilot-runtime.d.ts +3 -2
- package/dist/src/services/copilot-runtime.js +46 -22
- package/dist/src/services/copilot-runtime.js.map +1 -1
- package/dist/src/services/fleet-mode.js +1 -1
- package/dist/src/services/fleet-mode.js.map +1 -1
- package/dist/src/services/spawn-validation.js +3 -3
- package/dist/src/services/spawn-validation.js.map +1 -1
- package/dist/src/services/task-manager.js +2 -2
- package/dist/src/services/task-manager.js.map +1 -1
- package/package.json +1 -1
- package/src/mcp/tool-definitions.ts +6 -6
- package/src/services/copilot-runtime.ts +58 -23
- package/src/services/fleet-mode.ts +1 -1
- package/src/services/spawn-validation.ts +3 -3
- package/src/services/task-manager.ts +2 -2
package/README.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
# mcp-copilot-worker
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A stdio MCP server that turns GitHub Copilot sessions into resumable background agents with task persistence, dependency-aware scheduling, optional fleet workers, and isolated workspaces.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npx -y mcp-copilot-worker
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Add it to Claude Code globally:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
claude mcp add copilot-worker --scope user -- npx -y mcp-copilot-worker
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Or configure any MCP client:
|
|
18
18
|
|
|
19
19
|
```json
|
|
20
20
|
{
|
|
@@ -27,67 +27,76 @@ or add to any MCP client config:
|
|
|
27
27
|
}
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
##
|
|
30
|
+
## Requirements
|
|
31
31
|
|
|
32
|
-
-
|
|
32
|
+
- Node 22+
|
|
33
33
|
- GitHub Copilot CLI installed and logged in
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## Log in first
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
copilot login
|
|
39
39
|
copilot -p "reply with exactly ok."
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
If the second command prints `ok`, the Copilot CLI profile is ready.
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
For multi-profile failover, point `COPILOT_CONFIG_DIRS` at a **comma-separated** list of profile directories:
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
export COPILOT_CONFIG_DIRS="$HOME/.copilot
|
|
47
|
+
export COPILOT_CONFIG_DIRS="$HOME/.copilot,/path/to/second-profile"
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
##
|
|
50
|
+
## Public MCP surface
|
|
51
51
|
|
|
52
|
-
###
|
|
52
|
+
### Tools
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
- `spawn-agent` — create a background task and start a Copilot session
|
|
55
|
+
- `message-agent` — continue a previous session by spawning a continuation task with a new task ID
|
|
56
|
+
- `cancel-agent` — cancel one task, many tasks, or clear all tracked tasks
|
|
57
|
+
- `answer-agent` — answer a pending question and resume execution
|
|
55
58
|
|
|
56
|
-
|
|
57
|
-
|---|---|---|---|
|
|
58
|
-
| `prompt` | string | *required* | detailed instructions for the agent |
|
|
59
|
-
| `agent_type` | enum | `"general"` | `coder` \| `planner` \| `researcher` \| `tester` \| `general` |
|
|
60
|
-
| `model` | string | `claude-sonnet-4.6` | any model allowed by your Copilot subscription |
|
|
61
|
-
| `isolation_mode` | enum | `"shared"` | `shared` \| `isolated` — use `isolated` for parallel agents |
|
|
62
|
-
| `fleet` | boolean | env var | enable parallel sub-agents to accelerate work |
|
|
63
|
-
| `timeout` | integer | 1800000 (30min) | max execution time in ms |
|
|
64
|
-
| `context_files` | array | — | files to inject as context (required for `coder` type) |
|
|
65
|
-
| `depends_on` | array | — | task IDs that must complete first |
|
|
66
|
-
| `labels` | array | — | freeform tags for filtering |
|
|
67
|
-
| `cwd` | string | process cwd | working directory |
|
|
59
|
+
### Resources
|
|
68
60
|
|
|
69
|
-
|
|
61
|
+
- `system:///status` — current task and profile counts
|
|
62
|
+
- `task:///all` — all tracked tasks with status
|
|
63
|
+
- `task:///{id}` — live detail for one task
|
|
64
|
+
- `task:///{id}/session` — raw session output log
|
|
70
65
|
|
|
71
|
-
|
|
66
|
+
### MCP task handlers
|
|
72
67
|
|
|
73
|
-
|
|
68
|
+
The server also wires the MCP task protocol handlers for list/get/result/cancel in `src/index.ts`.
|
|
74
69
|
|
|
75
|
-
|
|
70
|
+
## spawn-agent fields
|
|
76
71
|
|
|
77
|
-
|
|
72
|
+
| field | type | default | description |
|
|
73
|
+
|---|---|---|---|
|
|
74
|
+
| `prompt` | string | required | detailed instructions for the agent |
|
|
75
|
+
| `agent_type` | enum | `"general"` | `coder` \| `planner` \| `researcher` \| `tester` \| `general` |
|
|
76
|
+
| `model` | string | runtime default | any live-allowed model for the active Copilot profile |
|
|
77
|
+
| `isolation_mode` | enum | `"shared"` | `shared` \| `isolated` |
|
|
78
|
+
| `fleet` | boolean | off unless env/task enables it | opt-in parallel scout workers inside the Copilot session |
|
|
79
|
+
| `timeout` | integer | 1800000 | max execution time in ms |
|
|
80
|
+
| `context_files` | array | — | files to inject as task context |
|
|
81
|
+
| `depends_on` | array | — | task IDs that must complete first |
|
|
82
|
+
| `labels` | array | — | freeform tags |
|
|
83
|
+
| `cwd` | string | process cwd | working directory |
|
|
78
84
|
|
|
79
|
-
|
|
85
|
+
## Agent types and validation
|
|
80
86
|
|
|
81
|
-
|
|
87
|
+
| type | min prompt | extra rule |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| `coder` | 1000 chars | requires at least one `context_files` entry |
|
|
90
|
+
| `planner` | 300 chars | — |
|
|
91
|
+
| `tester` | 300 chars | — |
|
|
92
|
+
| `researcher` | 200 chars | — |
|
|
93
|
+
| `general` | 200 chars | — |
|
|
82
94
|
|
|
83
|
-
|
|
84
|
-
- `task:///all` — all tracked tasks with status
|
|
85
|
-
- `task:///{id}` — live detail for a specific task
|
|
86
|
-
- `task:///{id}/session` — raw session data
|
|
95
|
+
`context_files` are capped at 20 files, 200 KB each, 500 KB total.
|
|
87
96
|
|
|
88
|
-
##
|
|
97
|
+
## Parallel execution
|
|
89
98
|
|
|
90
|
-
|
|
99
|
+
Launch multiple agents simultaneously with `isolation_mode: "isolated"` when they may edit overlapping files. The server prefers detached git worktrees under `.worktrees/<task-id>` and falls back to copied workspaces under `.super-agents/workspaces/<task-id>`.
|
|
91
100
|
|
|
92
101
|
```json
|
|
93
102
|
[
|
|
@@ -97,53 +106,45 @@ launch multiple agents simultaneously with `isolation_mode: "isolated"`. each ag
|
|
|
97
106
|
]
|
|
98
107
|
```
|
|
99
108
|
|
|
100
|
-
|
|
109
|
+
## Fleet mode
|
|
101
110
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
fleet mode spawns parallel sub-agents internally to accelerate a single agent's work. enable per-task:
|
|
111
|
+
Fleet mode is **opt-in**. Enable it per task:
|
|
105
112
|
|
|
106
113
|
```json
|
|
107
114
|
{"prompt": "...", "fleet": true}
|
|
108
115
|
```
|
|
109
116
|
|
|
110
|
-
|
|
117
|
+
Or enable it globally:
|
|
111
118
|
|
|
112
119
|
```bash
|
|
113
120
|
export COPILOT_ENABLE_FLEET=1
|
|
114
121
|
```
|
|
115
122
|
|
|
116
|
-
|
|
123
|
+
When enabled, the session attempts `session.rpc.fleet.start()` and logs `[fleet] started` if the SDK/runtime supports it.
|
|
117
124
|
|
|
118
|
-
|
|
119
|
-
|---|---|---|
|
|
120
|
-
| `COPILOT_DEFAULT_MODEL` | override default model | `claude-sonnet-4.6` |
|
|
121
|
-
| `COPILOT_DEFAULT_ISOLATION_MODE` | override default isolation | `shared` |
|
|
122
|
-
| `COPILOT_DEFAULT_AGENT_TYPE` | override default agent type | `general` |
|
|
123
|
-
| `COPILOT_ENABLE_FLEET` | enable fleet mode globally | off |
|
|
124
|
-
| `COPILOT_CONFIG_DIRS` | colon-separated profile directories | `~/.copilot` |
|
|
125
|
+
## Model selection
|
|
125
126
|
|
|
126
|
-
|
|
127
|
+
Models are discovered live from the active Copilot profile. The schema advertises the latest allowed model IDs, the runtime resolves supported legacy aliases, and unsupported requests fail with the current allowlist. Manual exclusions currently include `gpt-4.1` and `claude-opus-4.6-fast`.
|
|
127
128
|
|
|
128
|
-
|
|
129
|
-
|---|---|---|
|
|
130
|
-
| `general` | 200 chars | mixed or exploratory tasks (default) |
|
|
131
|
-
| `coder` | 1000 chars | targeted file edits, requires `context_files` |
|
|
132
|
-
| `planner` | 300 chars | architecture, design, scope analysis |
|
|
133
|
-
| `researcher` | 200 chars | code exploration, evidence gathering |
|
|
134
|
-
| `tester` | 300 chars | writing and running tests |
|
|
129
|
+
## State and storage
|
|
135
130
|
|
|
136
|
-
|
|
131
|
+
- task state: `~/.super-agents/<workspace-hash>.json`
|
|
132
|
+
- output logs: `<workspace>/.super-agents/<task-id>.output`
|
|
133
|
+
- isolated workspaces: `<git-root>/.worktrees/<task-id>/` or `<cwd>/.super-agents/workspaces/<task-id>/`
|
|
137
134
|
|
|
138
|
-
|
|
135
|
+
Active `pending`, `waiting`, `running`, and `waiting_answer` tasks reload as failed after restart. `rate_limited` tasks survive restart.
|
|
139
136
|
|
|
140
|
-
##
|
|
137
|
+
## Runtime entrypoints
|
|
141
138
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
-
|
|
139
|
+
Use one of these local entrypoints:
|
|
140
|
+
|
|
141
|
+
- `bin/mcp-copilot-worker.mjs`
|
|
142
|
+
- `node --import tsx src/index.ts`
|
|
143
|
+
- `npm run serve`
|
|
145
144
|
|
|
146
|
-
|
|
145
|
+
`node dist/src/index.js` is **not** a supported local runtime path because of the upstream `@github/copilot-sdk` ESM-resolution issue.
|
|
146
|
+
|
|
147
|
+
## Local development
|
|
147
148
|
|
|
148
149
|
```bash
|
|
149
150
|
npm install
|
|
@@ -153,14 +154,47 @@ npm run smoke
|
|
|
153
154
|
npm run doctor -- --json
|
|
154
155
|
```
|
|
155
156
|
|
|
156
|
-
|
|
157
|
+
`npm run test:unit` includes two live task-protocol integration tests
|
|
158
|
+
(`test/task-protocol.test.ts`) that drive the real Copilot CLI over stdio.
|
|
159
|
+
They run by default on authenticated developer machines and are skipped
|
|
160
|
+
automatically in CI (or whenever `CI=true`). Force-enable them anywhere
|
|
161
|
+
with `RUN_COPILOT_LIVE_TESTS=1`, or force-skip locally with
|
|
162
|
+
`MCP_COPILOT_SKIP_LIVE=1`.
|
|
163
|
+
|
|
164
|
+
For CLI-level MCP validation, use `mcpc` against `bin/mcp-copilot-worker.mjs`.
|
|
165
|
+
The repo ships a ready-made harness under `test/mcpc/`:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
bash test/mcpc/run-suite.sh # baseline discovery + contract suite
|
|
169
|
+
bash test/mcpc/run-advanced-suite.sh # stateful continuation / cancel / fleet
|
|
170
|
+
bash test/mcpc/run-all.sh # both suites back to back
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
See `test/mcpc/README.md` for session-first workflow, hypothesis features,
|
|
174
|
+
and the repo-specific rules the harness enforces.
|
|
175
|
+
|
|
176
|
+
## Architecture notes
|
|
177
|
+
|
|
178
|
+
Repo-grounded Copilot SDK onboarding notes live under `copilot-mcp-v2/`:
|
|
179
|
+
|
|
180
|
+
- `00-overview.md`
|
|
181
|
+
- `01-session-lifecycle.md`
|
|
182
|
+
- `02-pause-and-question-flow.md`
|
|
183
|
+
- `03-output-streaming.md`
|
|
184
|
+
- `04-profile-rotation.md`
|
|
185
|
+
- `05-workspace-isolation.md`
|
|
186
|
+
- `06-fleet-mode.md`
|
|
187
|
+
- `07-crash-recovery.md`
|
|
188
|
+
- `08-adapter-implementation.md`
|
|
189
|
+
|
|
190
|
+
## Troubleshooting
|
|
157
191
|
|
|
158
192
|
```bash
|
|
159
193
|
copilot -p "reply with exactly ok." # verify login
|
|
160
194
|
npm run doctor -- --json # check runtime health
|
|
161
195
|
```
|
|
162
196
|
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
- model not allowed for
|
|
166
|
-
-
|
|
197
|
+
Common issues:
|
|
198
|
+
- Copilot CLI not logged in
|
|
199
|
+
- Requested model not allowed for the active profile
|
|
200
|
+
- Testing the published package from inside the source repo instead of from a clean temp directory
|
|
@@ -63,18 +63,18 @@ export function createToolDefinitions(input) {
|
|
|
63
63
|
type: 'string',
|
|
64
64
|
minLength: 1,
|
|
65
65
|
maxLength: 100000,
|
|
66
|
-
description: 'Detailed instructions for the agent. Be specific: include file paths, function names, acceptance criteria, and constraints. Coder agents need ≥
|
|
66
|
+
description: 'Detailed instructions for the agent. Be specific: include file paths, function names, acceptance criteria, and constraints. Coder agents need ≥1000 chars; planner/tester need ≥300 chars; researcher/general need ≥200 chars. The more context you provide, the less the agent explores on its own.',
|
|
67
67
|
},
|
|
68
68
|
agent_type: {
|
|
69
69
|
type: 'string',
|
|
70
70
|
enum: ['coder', 'planner', 'researcher', 'tester', 'general'],
|
|
71
71
|
description: [
|
|
72
72
|
'Role specialization. Defaults to "general" if omitted.',
|
|
73
|
-
'• "coder": Implementation agent. Requires context_files. Best for targeted edits to specific files. Minimum
|
|
74
|
-
'• "planner": Architecture/design agent. Produces plans, scope analysis, risk assessment.',
|
|
73
|
+
'• "coder": Implementation agent. Requires context_files. Best for targeted edits to specific files. Minimum 1000 char prompt.',
|
|
74
|
+
'• "planner": Architecture/design agent. Produces plans, scope analysis, risk assessment. Minimum 300 char prompt.',
|
|
75
75
|
'• "researcher": Investigation agent. Explores code, traces behavior, gathers evidence.',
|
|
76
|
-
'• "tester": Testing agent. Writes and runs tests, reports pass/fail evidence.',
|
|
77
|
-
'• "general": Flexible all-purpose agent. Good default for mixed or exploratory tasks.',
|
|
76
|
+
'• "tester": Testing agent. Writes and runs tests, reports pass/fail evidence. Minimum 300 char prompt.',
|
|
77
|
+
'• "general": Flexible all-purpose agent. Good default for mixed or exploratory tasks. Minimum 200 char prompt.',
|
|
78
78
|
].join('\n'),
|
|
79
79
|
},
|
|
80
80
|
context_files: {
|
|
@@ -128,7 +128,7 @@ export function createToolDefinitions(input) {
|
|
|
128
128
|
},
|
|
129
129
|
fleet: {
|
|
130
130
|
type: 'boolean',
|
|
131
|
-
description: 'Fleet mode: the agent spawns parallel sub-agents internally to accelerate its own work. Workers scout, verify, and gather evidence in parallel.
|
|
131
|
+
description: 'Fleet mode: when true, the agent spawns parallel sub-agents internally to accelerate its own work. Workers scout, verify, and gather evidence in parallel. Disabled by default unless this field is true or COPILOT_ENABLE_FLEET is truthy. Most effective on large exploration, research, or multi-file tasks.',
|
|
132
132
|
},
|
|
133
133
|
},
|
|
134
134
|
required: ['prompt'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../../../src/mcp/tool-definitions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-definitions.js","sourceRoot":"","sources":["../../../src/mcp/tool-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CopilotClientOptions } from '@github/copilot-sdk';
|
|
1
|
+
import { type CopilotClientOptions, type CopilotSession } from '@github/copilot-sdk';
|
|
2
2
|
import type { TaskRecord } from '../types/task.js';
|
|
3
3
|
import type { CopilotProfile } from './profile-manager.js';
|
|
4
4
|
import type { ProfileManager } from './profile-manager.js';
|
|
@@ -10,6 +10,8 @@ export interface BuildCopilotClientOptionsInput {
|
|
|
10
10
|
cliPath?: string | undefined;
|
|
11
11
|
}
|
|
12
12
|
export declare function buildCopilotClientOptions(input: BuildCopilotClientOptionsInput): CopilotClientOptions;
|
|
13
|
+
export declare function isTimeoutError(error: unknown): boolean;
|
|
14
|
+
export declare function bindSessionEvents(taskId: string, session: Pick<CopilotSession, 'on'>, appendOutput: (taskId: string, line: string) => Promise<void>): void;
|
|
13
15
|
export declare class CopilotRuntime {
|
|
14
16
|
private readonly clients;
|
|
15
17
|
private readonly taskManager;
|
|
@@ -27,7 +29,6 @@ export declare class CopilotRuntime {
|
|
|
27
29
|
latestModelIds?: string[] | undefined;
|
|
28
30
|
description?: string | undefined;
|
|
29
31
|
}>;
|
|
30
|
-
private bindSessionEvents;
|
|
31
32
|
private getClient;
|
|
32
33
|
private resolveProfile;
|
|
33
34
|
private loadModelCatalog;
|
|
@@ -54,6 +54,28 @@ function isRateLimitError(error) {
|
|
|
54
54
|
normalized.includes('429') ||
|
|
55
55
|
normalized.includes('quota'));
|
|
56
56
|
}
|
|
57
|
+
export function isTimeoutError(error) {
|
|
58
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
59
|
+
const normalized = message.toLowerCase();
|
|
60
|
+
return (/timeout after \d+ms waiting for session\.idle/i.test(message) ||
|
|
61
|
+
normalized.includes('timed out') ||
|
|
62
|
+
normalized.includes('waiting for session.idle'));
|
|
63
|
+
}
|
|
64
|
+
export function bindSessionEvents(taskId, session, appendOutput) {
|
|
65
|
+
session.on('assistant.message_delta', (event) => {
|
|
66
|
+
void appendOutput(taskId, event.data.deltaContent);
|
|
67
|
+
});
|
|
68
|
+
session.on('tool.execution_start', (event) => {
|
|
69
|
+
void appendOutput(taskId, `[tool] start: ${event.data.toolName}`);
|
|
70
|
+
});
|
|
71
|
+
session.on('tool.execution_complete', (event) => {
|
|
72
|
+
const label = 'toolName' in event.data ? event.data.toolName : event.data.toolCallId;
|
|
73
|
+
void appendOutput(taskId, `[tool] complete: ${label} success=${String(event.data.success)}`);
|
|
74
|
+
});
|
|
75
|
+
session.on('session.error', (event) => {
|
|
76
|
+
void appendOutput(taskId, `[error] ${event.data.message}`);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
57
79
|
export class CopilotRuntime {
|
|
58
80
|
clients = new Map();
|
|
59
81
|
taskManager;
|
|
@@ -65,6 +87,7 @@ export class CopilotRuntime {
|
|
|
65
87
|
this.questionRegistry = input.questionRegistry;
|
|
66
88
|
}
|
|
67
89
|
async runTask(task) {
|
|
90
|
+
let session;
|
|
68
91
|
try {
|
|
69
92
|
const profile = this.resolveProfile(task);
|
|
70
93
|
const client = await this.getClient(task.cwd, profile);
|
|
@@ -73,7 +96,7 @@ export class CopilotRuntime {
|
|
|
73
96
|
prompt: task.prompt,
|
|
74
97
|
contextFiles: task.contextFiles,
|
|
75
98
|
});
|
|
76
|
-
|
|
99
|
+
session = task.sessionId
|
|
77
100
|
? await client.resumeSession(task.sessionId, {
|
|
78
101
|
reasoningEffort: 'high',
|
|
79
102
|
onPermissionRequest: approveAll,
|
|
@@ -99,12 +122,13 @@ export class CopilotRuntime {
|
|
|
99
122
|
}),
|
|
100
123
|
streaming: true,
|
|
101
124
|
});
|
|
125
|
+
const activeSession = session;
|
|
102
126
|
await this.taskManager.registerExecution(task.id, {
|
|
103
127
|
abort: async () => {
|
|
104
|
-
await
|
|
128
|
+
await activeSession.abort().catch(() => { });
|
|
105
129
|
},
|
|
106
130
|
cleanup: async () => {
|
|
107
|
-
await
|
|
131
|
+
await activeSession.disconnect().catch(() => { });
|
|
108
132
|
},
|
|
109
133
|
});
|
|
110
134
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -113,11 +137,16 @@ export class CopilotRuntime {
|
|
|
113
137
|
profileId: profile.id,
|
|
114
138
|
profileConfigDir: profile.configDir,
|
|
115
139
|
});
|
|
116
|
-
|
|
140
|
+
bindSessionEvents(task.id, session, (taskId, line) => this.taskManager.appendOutput(taskId, line));
|
|
117
141
|
await this.taskManager.appendOutput(task.id, `[session] profile: ${profile.id} (${profile.configDir})`);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
142
|
+
try {
|
|
143
|
+
const fleetStarted = await startFleetModeIfEnabled(session, task.prompt, task.fleet);
|
|
144
|
+
if (fleetStarted) {
|
|
145
|
+
await this.taskManager.appendOutput(task.id, '[fleet] started');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
await this.taskManager.appendOutput(task.id, `[fleet] unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
121
150
|
}
|
|
122
151
|
await session.sendAndWait({ prompt }, task.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
123
152
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -126,6 +155,9 @@ export class CopilotRuntime {
|
|
|
126
155
|
});
|
|
127
156
|
}
|
|
128
157
|
catch (error) {
|
|
158
|
+
if (session) {
|
|
159
|
+
await session.abort().catch(() => { });
|
|
160
|
+
}
|
|
129
161
|
if (isRateLimitError(error)) {
|
|
130
162
|
this.profileManager.markFailure('rate_limit');
|
|
131
163
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -134,6 +166,13 @@ export class CopilotRuntime {
|
|
|
134
166
|
endTime: new Date().toISOString(),
|
|
135
167
|
});
|
|
136
168
|
}
|
|
169
|
+
else if (isTimeoutError(error)) {
|
|
170
|
+
await this.taskManager.updateTask(task.id, {
|
|
171
|
+
status: TaskStatus.TIMED_OUT,
|
|
172
|
+
error: error instanceof Error ? error.message : String(error),
|
|
173
|
+
endTime: new Date().toISOString(),
|
|
174
|
+
});
|
|
175
|
+
}
|
|
137
176
|
else {
|
|
138
177
|
await this.taskManager.updateTask(task.id, {
|
|
139
178
|
status: TaskStatus.FAILED,
|
|
@@ -179,21 +218,6 @@ export class CopilotRuntime {
|
|
|
179
218
|
};
|
|
180
219
|
}
|
|
181
220
|
}
|
|
182
|
-
bindSessionEvents(taskId, session) {
|
|
183
|
-
session.on('assistant.message', (event) => {
|
|
184
|
-
void this.taskManager.appendOutput(taskId, event.data.content);
|
|
185
|
-
});
|
|
186
|
-
session.on('tool.execution_start', (event) => {
|
|
187
|
-
void this.taskManager.appendOutput(taskId, `[tool] start: ${event.data.toolName}`);
|
|
188
|
-
});
|
|
189
|
-
session.on('tool.execution_complete', (event) => {
|
|
190
|
-
const label = 'toolName' in event.data ? event.data.toolName : event.data.toolCallId;
|
|
191
|
-
void this.taskManager.appendOutput(taskId, `[tool] complete: ${label} success=${String(event.data.success)}`);
|
|
192
|
-
});
|
|
193
|
-
session.on('session.error', (event) => {
|
|
194
|
-
void this.taskManager.appendOutput(taskId, `[error] ${event.data.message}`);
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
221
|
async getClient(cwd, profile) {
|
|
198
222
|
const key = `${cwd}:${profile.configDir}`;
|
|
199
223
|
const existing = this.clients.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-runtime.js","sourceRoot":"","sources":["../../../src/services/copilot-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"copilot-runtime.js","sourceRoot":"","sources":["../../../src/services/copilot-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export function buildFleetPrompt(taskPrompt) {
|
|
|
15
15
|
].join('\n\n');
|
|
16
16
|
}
|
|
17
17
|
export async function startFleetModeIfEnabled(session, taskPrompt, explicitFleet) {
|
|
18
|
-
const enabled = explicitFleet
|
|
18
|
+
const enabled = explicitFleet === true || (explicitFleet !== false && isFleetModeEnabled());
|
|
19
19
|
if (!enabled) {
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-mode.js","sourceRoot":"","sources":["../../../src/services/fleet-mode.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAU1D,MAAM,UAAU,kBAAkB,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC9E,OAAO,KAAK,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO;QACL,oEAAoE;QACpE,2IAA2I;QAC3I,gIAAgI;QAChI,wLAAwL;QACxL,oGAAoG;QACpG,eAAe;QACf,UAAU,CAAC,IAAI,EAAE;KAClB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAwB,EACxB,UAAkB,EAClB,aAAuB;IAEvB,MAAM,OAAO,GAAG,aAAa,KAAK,
|
|
1
|
+
{"version":3,"file":"fleet-mode.js","sourceRoot":"","sources":["../../../src/services/fleet-mode.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAU1D,MAAM,UAAU,kBAAkB,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC9E,OAAO,KAAK,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO;QACL,oEAAoE;QACpE,2IAA2I;QAC3I,gIAAgI;QAChI,wLAAwL;QACxL,oGAAoG;QACpG,eAAe;QACf,UAAU,CAAC,IAAI,EAAE;KAClB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAwB,EACxB,UAAkB,EAClB,aAAuB;IAEvB,MAAM,OAAO,GAAG,aAAa,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,kBAAkB,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;QAC3C,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC;KACrC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
|
|
@@ -5,10 +5,10 @@ const MAX_CONTEXT_FILES = 20;
|
|
|
5
5
|
const MAX_CONTEXT_FILE_BYTES = 200 * 1024;
|
|
6
6
|
const MAX_TOTAL_CONTEXT_BYTES = 500 * 1024;
|
|
7
7
|
const MIN_PROMPT_LENGTH = {
|
|
8
|
-
coder:
|
|
9
|
-
planner:
|
|
8
|
+
coder: 1000,
|
|
9
|
+
planner: 300,
|
|
10
10
|
researcher: 200,
|
|
11
|
-
tester:
|
|
11
|
+
tester: 300,
|
|
12
12
|
general: 200,
|
|
13
13
|
};
|
|
14
14
|
export async function validateSpawnAgentInput(args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-validation.js","sourceRoot":"","sources":["../../../src/services/spawn-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAC;AAC1C,MAAM,uBAAuB,GAAG,GAAG,GAAG,IAAI,CAAC;AAE3C,MAAM,iBAAiB,GAA8B;IACnD,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"spawn-validation.js","sourceRoot":"","sources":["../../../src/services/spawn-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,12 +76,12 @@ export class TaskManager {
|
|
|
76
76
|
return false;
|
|
77
77
|
}
|
|
78
78
|
const binding = this.executionBindings.get(taskId);
|
|
79
|
-
await binding?.abort?.();
|
|
80
|
-
await this.clearExecution(taskId);
|
|
81
79
|
await this.updateTask(taskId, {
|
|
82
80
|
status: TaskStatus.CANCELLED,
|
|
83
81
|
endTime: new Date().toISOString(),
|
|
84
82
|
});
|
|
83
|
+
await binding?.abort?.();
|
|
84
|
+
await this.clearExecution(taskId);
|
|
85
85
|
return true;
|
|
86
86
|
}
|
|
87
87
|
async clearAllTasks() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../../src/services/task-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../../src/services/task-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -93,18 +93,18 @@ export function createToolDefinitions(input: CreateToolDefinitionsInput): ToolDe
|
|
|
93
93
|
type: 'string',
|
|
94
94
|
minLength: 1,
|
|
95
95
|
maxLength: 100000,
|
|
96
|
-
description: 'Detailed instructions for the agent. Be specific: include file paths, function names, acceptance criteria, and constraints. Coder agents need ≥
|
|
96
|
+
description: 'Detailed instructions for the agent. Be specific: include file paths, function names, acceptance criteria, and constraints. Coder agents need ≥1000 chars; planner/tester need ≥300 chars; researcher/general need ≥200 chars. The more context you provide, the less the agent explores on its own.',
|
|
97
97
|
},
|
|
98
98
|
agent_type: {
|
|
99
99
|
type: 'string',
|
|
100
100
|
enum: ['coder', 'planner', 'researcher', 'tester', 'general'],
|
|
101
101
|
description: [
|
|
102
102
|
'Role specialization. Defaults to "general" if omitted.',
|
|
103
|
-
'• "coder": Implementation agent. Requires context_files. Best for targeted edits to specific files. Minimum
|
|
104
|
-
'• "planner": Architecture/design agent. Produces plans, scope analysis, risk assessment.',
|
|
103
|
+
'• "coder": Implementation agent. Requires context_files. Best for targeted edits to specific files. Minimum 1000 char prompt.',
|
|
104
|
+
'• "planner": Architecture/design agent. Produces plans, scope analysis, risk assessment. Minimum 300 char prompt.',
|
|
105
105
|
'• "researcher": Investigation agent. Explores code, traces behavior, gathers evidence.',
|
|
106
|
-
'• "tester": Testing agent. Writes and runs tests, reports pass/fail evidence.',
|
|
107
|
-
'• "general": Flexible all-purpose agent. Good default for mixed or exploratory tasks.',
|
|
106
|
+
'• "tester": Testing agent. Writes and runs tests, reports pass/fail evidence. Minimum 300 char prompt.',
|
|
107
|
+
'• "general": Flexible all-purpose agent. Good default for mixed or exploratory tasks. Minimum 200 char prompt.',
|
|
108
108
|
].join('\n'),
|
|
109
109
|
},
|
|
110
110
|
context_files: {
|
|
@@ -158,7 +158,7 @@ export function createToolDefinitions(input: CreateToolDefinitionsInput): ToolDe
|
|
|
158
158
|
},
|
|
159
159
|
fleet: {
|
|
160
160
|
type: 'boolean',
|
|
161
|
-
description: 'Fleet mode: the agent spawns parallel sub-agents internally to accelerate its own work. Workers scout, verify, and gather evidence in parallel.
|
|
161
|
+
description: 'Fleet mode: when true, the agent spawns parallel sub-agents internally to accelerate its own work. Workers scout, verify, and gather evidence in parallel. Disabled by default unless this field is true or COPILOT_ENABLE_FLEET is truthy. Most effective on large exploration, research, or multi-file tasks.',
|
|
162
162
|
},
|
|
163
163
|
},
|
|
164
164
|
required: ['prompt'],
|
|
@@ -90,6 +90,36 @@ function isRateLimitError(error: unknown): boolean {
|
|
|
90
90
|
);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
export function isTimeoutError(error: unknown): boolean {
|
|
94
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
95
|
+
const normalized = message.toLowerCase();
|
|
96
|
+
return (
|
|
97
|
+
/timeout after \d+ms waiting for session\.idle/i.test(message) ||
|
|
98
|
+
normalized.includes('timed out') ||
|
|
99
|
+
normalized.includes('waiting for session.idle')
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function bindSessionEvents(
|
|
104
|
+
taskId: string,
|
|
105
|
+
session: Pick<CopilotSession, 'on'>,
|
|
106
|
+
appendOutput: (taskId: string, line: string) => Promise<void>,
|
|
107
|
+
): void {
|
|
108
|
+
session.on('assistant.message_delta', (event) => {
|
|
109
|
+
void appendOutput(taskId, event.data.deltaContent);
|
|
110
|
+
});
|
|
111
|
+
session.on('tool.execution_start', (event) => {
|
|
112
|
+
void appendOutput(taskId, `[tool] start: ${event.data.toolName}`);
|
|
113
|
+
});
|
|
114
|
+
session.on('tool.execution_complete', (event) => {
|
|
115
|
+
const label = 'toolName' in event.data ? event.data.toolName : event.data.toolCallId;
|
|
116
|
+
void appendOutput(taskId, `[tool] complete: ${label} success=${String(event.data.success)}`);
|
|
117
|
+
});
|
|
118
|
+
session.on('session.error', (event) => {
|
|
119
|
+
void appendOutput(taskId, `[error] ${event.data.message}`);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
93
123
|
export class CopilotRuntime {
|
|
94
124
|
private readonly clients = new Map<string, CopilotClient>();
|
|
95
125
|
private readonly taskManager: TaskManager;
|
|
@@ -107,6 +137,8 @@ export class CopilotRuntime {
|
|
|
107
137
|
}
|
|
108
138
|
|
|
109
139
|
async runTask(task: TaskRecord): Promise<void> {
|
|
140
|
+
let session: CopilotSession | undefined;
|
|
141
|
+
|
|
110
142
|
try {
|
|
111
143
|
const profile = this.resolveProfile(task);
|
|
112
144
|
const client = await this.getClient(task.cwd, profile);
|
|
@@ -116,7 +148,7 @@ export class CopilotRuntime {
|
|
|
116
148
|
contextFiles: task.contextFiles,
|
|
117
149
|
});
|
|
118
150
|
|
|
119
|
-
|
|
151
|
+
session = task.sessionId
|
|
120
152
|
? await client.resumeSession(task.sessionId, {
|
|
121
153
|
reasoningEffort: 'high',
|
|
122
154
|
onPermissionRequest: approveAll,
|
|
@@ -145,12 +177,14 @@ export class CopilotRuntime {
|
|
|
145
177
|
streaming: true,
|
|
146
178
|
});
|
|
147
179
|
|
|
180
|
+
const activeSession = session;
|
|
181
|
+
|
|
148
182
|
await this.taskManager.registerExecution(task.id, {
|
|
149
183
|
abort: async () => {
|
|
150
|
-
await
|
|
184
|
+
await activeSession.abort().catch(() => {});
|
|
151
185
|
},
|
|
152
186
|
cleanup: async () => {
|
|
153
|
-
await
|
|
187
|
+
await activeSession.disconnect().catch(() => {});
|
|
154
188
|
},
|
|
155
189
|
});
|
|
156
190
|
|
|
@@ -161,12 +195,19 @@ export class CopilotRuntime {
|
|
|
161
195
|
profileConfigDir: profile.configDir,
|
|
162
196
|
});
|
|
163
197
|
|
|
164
|
-
|
|
198
|
+
bindSessionEvents(task.id, session, (taskId, line) => this.taskManager.appendOutput(taskId, line));
|
|
165
199
|
|
|
166
200
|
await this.taskManager.appendOutput(task.id, `[session] profile: ${profile.id} (${profile.configDir})`);
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
201
|
+
try {
|
|
202
|
+
const fleetStarted = await startFleetModeIfEnabled(session, task.prompt, task.fleet);
|
|
203
|
+
if (fleetStarted) {
|
|
204
|
+
await this.taskManager.appendOutput(task.id, '[fleet] started');
|
|
205
|
+
}
|
|
206
|
+
} catch (error) {
|
|
207
|
+
await this.taskManager.appendOutput(
|
|
208
|
+
task.id,
|
|
209
|
+
`[fleet] unavailable: ${error instanceof Error ? error.message : String(error)}`,
|
|
210
|
+
);
|
|
170
211
|
}
|
|
171
212
|
await session.sendAndWait(
|
|
172
213
|
{ prompt },
|
|
@@ -177,6 +218,10 @@ export class CopilotRuntime {
|
|
|
177
218
|
endTime: new Date().toISOString(),
|
|
178
219
|
});
|
|
179
220
|
} catch (error) {
|
|
221
|
+
if (session) {
|
|
222
|
+
await session.abort().catch(() => {});
|
|
223
|
+
}
|
|
224
|
+
|
|
180
225
|
if (isRateLimitError(error)) {
|
|
181
226
|
this.profileManager.markFailure('rate_limit');
|
|
182
227
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -184,6 +229,12 @@ export class CopilotRuntime {
|
|
|
184
229
|
error: error instanceof Error ? error.message : String(error),
|
|
185
230
|
endTime: new Date().toISOString(),
|
|
186
231
|
});
|
|
232
|
+
} else if (isTimeoutError(error)) {
|
|
233
|
+
await this.taskManager.updateTask(task.id, {
|
|
234
|
+
status: TaskStatus.TIMED_OUT,
|
|
235
|
+
error: error instanceof Error ? error.message : String(error),
|
|
236
|
+
endTime: new Date().toISOString(),
|
|
237
|
+
});
|
|
187
238
|
} else {
|
|
188
239
|
await this.taskManager.updateTask(task.id, {
|
|
189
240
|
status: TaskStatus.FAILED,
|
|
@@ -239,22 +290,6 @@ export class CopilotRuntime {
|
|
|
239
290
|
}
|
|
240
291
|
}
|
|
241
292
|
|
|
242
|
-
private bindSessionEvents(taskId: string, session: CopilotSession): void {
|
|
243
|
-
session.on('assistant.message', (event) => {
|
|
244
|
-
void this.taskManager.appendOutput(taskId, event.data.content);
|
|
245
|
-
});
|
|
246
|
-
session.on('tool.execution_start', (event) => {
|
|
247
|
-
void this.taskManager.appendOutput(taskId, `[tool] start: ${event.data.toolName}`);
|
|
248
|
-
});
|
|
249
|
-
session.on('tool.execution_complete', (event) => {
|
|
250
|
-
const label = 'toolName' in event.data ? event.data.toolName : event.data.toolCallId;
|
|
251
|
-
void this.taskManager.appendOutput(taskId, `[tool] complete: ${label} success=${String(event.data.success)}`);
|
|
252
|
-
});
|
|
253
|
-
session.on('session.error', (event) => {
|
|
254
|
-
void this.taskManager.appendOutput(taskId, `[error] ${event.data.message}`);
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
|
|
258
293
|
private async getClient(cwd: string, profile: CopilotProfile): Promise<CopilotClient> {
|
|
259
294
|
const key = `${cwd}:${profile.configDir}`;
|
|
260
295
|
const existing = this.clients.get(key);
|
|
@@ -31,7 +31,7 @@ export async function startFleetModeIfEnabled(
|
|
|
31
31
|
taskPrompt: string,
|
|
32
32
|
explicitFleet?: boolean,
|
|
33
33
|
): Promise<boolean> {
|
|
34
|
-
const enabled = explicitFleet
|
|
34
|
+
const enabled = explicitFleet === true || (explicitFleet !== false && isFleetModeEnabled());
|
|
35
35
|
if (!enabled) {
|
|
36
36
|
return false;
|
|
37
37
|
}
|
|
@@ -10,10 +10,10 @@ const MAX_CONTEXT_FILE_BYTES = 200 * 1024;
|
|
|
10
10
|
const MAX_TOTAL_CONTEXT_BYTES = 500 * 1024;
|
|
11
11
|
|
|
12
12
|
const MIN_PROMPT_LENGTH: Record<AgentType, number> = {
|
|
13
|
-
coder:
|
|
14
|
-
planner:
|
|
13
|
+
coder: 1000,
|
|
14
|
+
planner: 300,
|
|
15
15
|
researcher: 200,
|
|
16
|
-
tester:
|
|
16
|
+
tester: 300,
|
|
17
17
|
general: 200,
|
|
18
18
|
};
|
|
19
19
|
|
|
@@ -111,12 +111,12 @@ export class TaskManager {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
const binding = this.executionBindings.get(taskId);
|
|
114
|
-
await binding?.abort?.();
|
|
115
|
-
await this.clearExecution(taskId);
|
|
116
114
|
await this.updateTask(taskId, {
|
|
117
115
|
status: TaskStatus.CANCELLED,
|
|
118
116
|
endTime: new Date().toISOString(),
|
|
119
117
|
});
|
|
118
|
+
await binding?.abort?.();
|
|
119
|
+
await this.clearExecution(taskId);
|
|
120
120
|
|
|
121
121
|
return true;
|
|
122
122
|
}
|