mcp-copilot-worker 1.1.1 → 1.1.3
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 +88 -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 +48 -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 +60 -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
|
-
|
|
101
|
-
|
|
102
|
-
## fleet mode
|
|
109
|
+
## Fleet mode
|
|
103
110
|
|
|
104
|
-
|
|
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,30 @@ npm run smoke
|
|
|
153
154
|
npm run doctor -- --json
|
|
154
155
|
```
|
|
155
156
|
|
|
156
|
-
|
|
157
|
+
For CLI-level MCP validation, use `mcpc` against `bin/mcp-copilot-worker.mjs`.
|
|
158
|
+
|
|
159
|
+
## Architecture notes
|
|
160
|
+
|
|
161
|
+
Repo-grounded Copilot SDK onboarding notes live under `copilot-mcp-v2/`:
|
|
162
|
+
|
|
163
|
+
- `00-overview.md`
|
|
164
|
+
- `01-session-lifecycle.md`
|
|
165
|
+
- `02-pause-and-question-flow.md`
|
|
166
|
+
- `03-output-streaming.md`
|
|
167
|
+
- `04-profile-rotation.md`
|
|
168
|
+
- `05-workspace-isolation.md`
|
|
169
|
+
- `06-fleet-mode.md`
|
|
170
|
+
- `07-crash-recovery.md`
|
|
171
|
+
- `08-adapter-implementation.md`
|
|
172
|
+
|
|
173
|
+
## Troubleshooting
|
|
157
174
|
|
|
158
175
|
```bash
|
|
159
176
|
copilot -p "reply with exactly ok." # verify login
|
|
160
177
|
npm run doctor -- --json # check runtime health
|
|
161
178
|
```
|
|
162
179
|
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
- model not allowed for
|
|
166
|
-
-
|
|
180
|
+
Common issues:
|
|
181
|
+
- Copilot CLI not logged in
|
|
182
|
+
- Requested model not allowed for the active profile
|
|
183
|
+
- 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,8 +96,9 @@ 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, {
|
|
101
|
+
reasoningEffort: 'high',
|
|
78
102
|
onPermissionRequest: approveAll,
|
|
79
103
|
onUserInputRequest: (request, invocation) => this.questionRegistry.register({
|
|
80
104
|
taskId: task.id,
|
|
@@ -87,6 +111,7 @@ export class CopilotRuntime {
|
|
|
87
111
|
})
|
|
88
112
|
: await client.createSession({
|
|
89
113
|
model: task.model,
|
|
114
|
+
reasoningEffort: 'high',
|
|
90
115
|
onPermissionRequest: approveAll,
|
|
91
116
|
onUserInputRequest: (request, invocation) => this.questionRegistry.register({
|
|
92
117
|
taskId: task.id,
|
|
@@ -97,12 +122,13 @@ export class CopilotRuntime {
|
|
|
97
122
|
}),
|
|
98
123
|
streaming: true,
|
|
99
124
|
});
|
|
125
|
+
const activeSession = session;
|
|
100
126
|
await this.taskManager.registerExecution(task.id, {
|
|
101
127
|
abort: async () => {
|
|
102
|
-
await
|
|
128
|
+
await activeSession.abort().catch(() => { });
|
|
103
129
|
},
|
|
104
130
|
cleanup: async () => {
|
|
105
|
-
await
|
|
131
|
+
await activeSession.disconnect().catch(() => { });
|
|
106
132
|
},
|
|
107
133
|
});
|
|
108
134
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -111,11 +137,16 @@ export class CopilotRuntime {
|
|
|
111
137
|
profileId: profile.id,
|
|
112
138
|
profileConfigDir: profile.configDir,
|
|
113
139
|
});
|
|
114
|
-
|
|
140
|
+
bindSessionEvents(task.id, session, (taskId, line) => this.taskManager.appendOutput(taskId, line));
|
|
115
141
|
await this.taskManager.appendOutput(task.id, `[session] profile: ${profile.id} (${profile.configDir})`);
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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)}`);
|
|
119
150
|
}
|
|
120
151
|
await session.sendAndWait({ prompt }, task.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
121
152
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -124,6 +155,9 @@ export class CopilotRuntime {
|
|
|
124
155
|
});
|
|
125
156
|
}
|
|
126
157
|
catch (error) {
|
|
158
|
+
if (session) {
|
|
159
|
+
await session.abort().catch(() => { });
|
|
160
|
+
}
|
|
127
161
|
if (isRateLimitError(error)) {
|
|
128
162
|
this.profileManager.markFailure('rate_limit');
|
|
129
163
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -132,6 +166,13 @@ export class CopilotRuntime {
|
|
|
132
166
|
endTime: new Date().toISOString(),
|
|
133
167
|
});
|
|
134
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
|
+
}
|
|
135
176
|
else {
|
|
136
177
|
await this.taskManager.updateTask(task.id, {
|
|
137
178
|
status: TaskStatus.FAILED,
|
|
@@ -177,21 +218,6 @@ export class CopilotRuntime {
|
|
|
177
218
|
};
|
|
178
219
|
}
|
|
179
220
|
}
|
|
180
|
-
bindSessionEvents(taskId, session) {
|
|
181
|
-
session.on('assistant.message', (event) => {
|
|
182
|
-
void this.taskManager.appendOutput(taskId, event.data.content);
|
|
183
|
-
});
|
|
184
|
-
session.on('tool.execution_start', (event) => {
|
|
185
|
-
void this.taskManager.appendOutput(taskId, `[tool] start: ${event.data.toolName}`);
|
|
186
|
-
});
|
|
187
|
-
session.on('tool.execution_complete', (event) => {
|
|
188
|
-
const label = 'toolName' in event.data ? event.data.toolName : event.data.toolCallId;
|
|
189
|
-
void this.taskManager.appendOutput(taskId, `[tool] complete: ${label} success=${String(event.data.success)}`);
|
|
190
|
-
});
|
|
191
|
-
session.on('session.error', (event) => {
|
|
192
|
-
void this.taskManager.appendOutput(taskId, `[error] ${event.data.message}`);
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
221
|
async getClient(cwd, profile) {
|
|
196
222
|
const key = `${cwd}:${profile.configDir}`;
|
|
197
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,8 +148,9 @@ export class CopilotRuntime {
|
|
|
116
148
|
contextFiles: task.contextFiles,
|
|
117
149
|
});
|
|
118
150
|
|
|
119
|
-
|
|
151
|
+
session = task.sessionId
|
|
120
152
|
? await client.resumeSession(task.sessionId, {
|
|
153
|
+
reasoningEffort: 'high',
|
|
121
154
|
onPermissionRequest: approveAll,
|
|
122
155
|
onUserInputRequest: (request, invocation) =>
|
|
123
156
|
this.questionRegistry.register({
|
|
@@ -131,6 +164,7 @@ export class CopilotRuntime {
|
|
|
131
164
|
})
|
|
132
165
|
: await client.createSession({
|
|
133
166
|
model: task.model,
|
|
167
|
+
reasoningEffort: 'high',
|
|
134
168
|
onPermissionRequest: approveAll,
|
|
135
169
|
onUserInputRequest: (request, invocation) =>
|
|
136
170
|
this.questionRegistry.register({
|
|
@@ -143,12 +177,14 @@ export class CopilotRuntime {
|
|
|
143
177
|
streaming: true,
|
|
144
178
|
});
|
|
145
179
|
|
|
180
|
+
const activeSession = session;
|
|
181
|
+
|
|
146
182
|
await this.taskManager.registerExecution(task.id, {
|
|
147
183
|
abort: async () => {
|
|
148
|
-
await
|
|
184
|
+
await activeSession.abort().catch(() => {});
|
|
149
185
|
},
|
|
150
186
|
cleanup: async () => {
|
|
151
|
-
await
|
|
187
|
+
await activeSession.disconnect().catch(() => {});
|
|
152
188
|
},
|
|
153
189
|
});
|
|
154
190
|
|
|
@@ -159,12 +195,19 @@ export class CopilotRuntime {
|
|
|
159
195
|
profileConfigDir: profile.configDir,
|
|
160
196
|
});
|
|
161
197
|
|
|
162
|
-
|
|
198
|
+
bindSessionEvents(task.id, session, (taskId, line) => this.taskManager.appendOutput(taskId, line));
|
|
163
199
|
|
|
164
200
|
await this.taskManager.appendOutput(task.id, `[session] profile: ${profile.id} (${profile.configDir})`);
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
+
);
|
|
168
211
|
}
|
|
169
212
|
await session.sendAndWait(
|
|
170
213
|
{ prompt },
|
|
@@ -175,6 +218,10 @@ export class CopilotRuntime {
|
|
|
175
218
|
endTime: new Date().toISOString(),
|
|
176
219
|
});
|
|
177
220
|
} catch (error) {
|
|
221
|
+
if (session) {
|
|
222
|
+
await session.abort().catch(() => {});
|
|
223
|
+
}
|
|
224
|
+
|
|
178
225
|
if (isRateLimitError(error)) {
|
|
179
226
|
this.profileManager.markFailure('rate_limit');
|
|
180
227
|
await this.taskManager.updateTask(task.id, {
|
|
@@ -182,6 +229,12 @@ export class CopilotRuntime {
|
|
|
182
229
|
error: error instanceof Error ? error.message : String(error),
|
|
183
230
|
endTime: new Date().toISOString(),
|
|
184
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
|
+
});
|
|
185
238
|
} else {
|
|
186
239
|
await this.taskManager.updateTask(task.id, {
|
|
187
240
|
status: TaskStatus.FAILED,
|
|
@@ -237,22 +290,6 @@ export class CopilotRuntime {
|
|
|
237
290
|
}
|
|
238
291
|
}
|
|
239
292
|
|
|
240
|
-
private bindSessionEvents(taskId: string, session: CopilotSession): void {
|
|
241
|
-
session.on('assistant.message', (event) => {
|
|
242
|
-
void this.taskManager.appendOutput(taskId, event.data.content);
|
|
243
|
-
});
|
|
244
|
-
session.on('tool.execution_start', (event) => {
|
|
245
|
-
void this.taskManager.appendOutput(taskId, `[tool] start: ${event.data.toolName}`);
|
|
246
|
-
});
|
|
247
|
-
session.on('tool.execution_complete', (event) => {
|
|
248
|
-
const label = 'toolName' in event.data ? event.data.toolName : event.data.toolCallId;
|
|
249
|
-
void this.taskManager.appendOutput(taskId, `[tool] complete: ${label} success=${String(event.data.success)}`);
|
|
250
|
-
});
|
|
251
|
-
session.on('session.error', (event) => {
|
|
252
|
-
void this.taskManager.appendOutput(taskId, `[error] ${event.data.message}`);
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
|
|
256
293
|
private async getClient(cwd: string, profile: CopilotProfile): Promise<CopilotClient> {
|
|
257
294
|
const key = `${cwd}:${profile.configDir}`;
|
|
258
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
|
}
|