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 CHANGED
@@ -1,20 +1,20 @@
1
1
  # mcp-copilot-worker
2
2
 
3
- a stdio MCP server that turns your GitHub Copilot session into resumable background agents with parallel execution, fleet mode, and workspace isolation.
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
- ## install
5
+ ## Install
6
6
 
7
7
  ```bash
8
8
  npx -y mcp-copilot-worker
9
9
  ```
10
10
 
11
- or add to Claude Code globally:
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
- or add to any MCP client config:
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
- ## requirements
30
+ ## Requirements
31
31
 
32
- - node 22+
32
+ - Node 22+
33
33
  - GitHub Copilot CLI installed and logged in
34
34
 
35
- ## login first
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
- if the second command prints `ok`, you are good to go.
42
+ If the second command prints `ok`, the Copilot CLI profile is ready.
43
43
 
44
- for multi-profile failover:
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:/path/to/second-profile"
47
+ export COPILOT_CONFIG_DIRS="$HOME/.copilot,/path/to/second-profile"
48
48
  ```
49
49
 
50
- ## tools
50
+ ## Public MCP surface
51
51
 
52
- ### `spawn-agent`
52
+ ### Tools
53
53
 
54
- launch an autonomous background agent. only `prompt` is required everything else has smart defaults.
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
- | field | type | default | description |
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
- ### `message-agent`
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
- continue an existing task with a follow-up message.
66
+ ### MCP task handlers
72
67
 
73
- ### `cancel-agent`
68
+ The server also wires the MCP task protocol handlers for list/get/result/cancel in `src/index.ts`.
74
69
 
75
- cancel one task, many tasks, or all tracked tasks.
70
+ ## spawn-agent fields
76
71
 
77
- ### `answer-agent`
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
- answer a pending agent question and resume execution.
85
+ ## Agent types and validation
80
86
 
81
- ## resources
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
- - `system:///status` current task and profile counts
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
- ## parallel execution
97
+ ## Parallel execution
89
98
 
90
- launch multiple agents simultaneously with `isolation_mode: "isolated"`. each agent gets its own git worktree so they can safely edit the same repo in parallel without merge conflicts.
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
- this is faster than sequential waves. don't wait for one agent to finish before starting the next.
101
-
102
- ## fleet mode
109
+ ## Fleet mode
103
110
 
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
- or globally via environment:
117
+ Or enable it globally:
111
118
 
112
119
  ```bash
113
120
  export COPILOT_ENABLE_FLEET=1
114
121
  ```
115
122
 
116
- ## environment variables
123
+ When enabled, the session attempts `session.rpc.fleet.start()` and logs `[fleet] started` if the SDK/runtime supports it.
117
124
 
118
- | variable | description | default |
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
- ## agent types
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
- | type | min prompt | use when |
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
- ## model selection
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
- models are validated live against your Copilot subscription. the server accepts older aliases and maps them forward automatically. blocked models: `gpt-4.1`, `claude-opus-4.6-fast`.
135
+ Active `pending`, `waiting`, `running`, and `waiting_answer` tasks reload as failed after restart. `rate_limited` tasks survive restart.
139
136
 
140
- ## state and storage
137
+ ## Runtime entrypoints
141
138
 
142
- - task state: `~/.super-agents/<workspace-hash>.json`
143
- - output logs: `<workspace>/.super-agents/<task-id>.output`
144
- - isolated workspaces: `<git-root>/.worktrees/<task-id>/`
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
- ## local development
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
- ## troubleshooting
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
- common issues:
164
- - copilot CLI not logged in
165
- - model not allowed for your subscription
166
- - testing published package from inside source repo (use `cd /tmp` first)
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 ≥500 chars; others need ≥200 chars. The more context you provide, the less the agent explores on its own.',
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 500 char prompt.',
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. Enabled by default set to false to disable. Most effective on large exploration, research, or multi-file tasks.',
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
- const session = task.sessionId
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 session.abort().catch(() => { });
128
+ await activeSession.abort().catch(() => { });
103
129
  },
104
130
  cleanup: async () => {
105
- await session.disconnect().catch(() => { });
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
- this.bindSessionEvents(task.id, session);
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
- const fleetStarted = await startFleetModeIfEnabled(session, task.prompt, task.fleet);
117
- if (fleetStarted) {
118
- await this.taskManager.appendOutput(task.id, '[fleet] started');
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 !== false && (explicitFleet === true || isFleetModeEnabled() || explicitFleet === undefined);
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,KAAK,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,kBAAkB,EAAE,IAAI,aAAa,KAAK,SAAS,CAAC,CAAC;IAC3H,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"}
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: 500,
9
- planner: 200,
8
+ coder: 1000,
9
+ planner: 300,
10
10
  researcher: 200,
11
- tester: 200,
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,GAAG;IACV,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;CACb,CAAC;AAOF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAiC;IAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAC9D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,uCAAuC,OAAO,aAAa,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IAC5C,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,iBAAiB,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,GAAG,sBAAsB,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,UAAU,GAAG,uBAAuB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-copilot-worker",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "Copilot-only MCP worker with resumable background agents",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -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 ≥500 chars; others need ≥200 chars. The more context you provide, the less the agent explores on its own.',
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 500 char prompt.',
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. Enabled by default set to false to disable. Most effective on large exploration, research, or multi-file tasks.',
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
- const session = task.sessionId
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 session.abort().catch(() => {});
184
+ await activeSession.abort().catch(() => {});
149
185
  },
150
186
  cleanup: async () => {
151
- await session.disconnect().catch(() => {});
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
- this.bindSessionEvents(task.id, session);
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
- const fleetStarted = await startFleetModeIfEnabled(session, task.prompt, task.fleet);
166
- if (fleetStarted) {
167
- await this.taskManager.appendOutput(task.id, '[fleet] started');
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 !== false && (explicitFleet === true || isFleetModeEnabled() || explicitFleet === undefined);
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: 500,
14
- planner: 200,
13
+ coder: 1000,
14
+ planner: 300,
15
15
  researcher: 200,
16
- tester: 200,
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
  }