cli-copilot-worker 0.1.0 → 0.1.2

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
@@ -27,4 +27,6 @@ Node 22+ and a working GitHub Copilot CLI install are required.
27
27
  - The supported entrypoint is the CLI itself, which runs through `tsx`.
28
28
  - State defaults to `~/.cli-copilot-worker`.
29
29
  - Multi-profile failover is driven by `COPILOT_CONFIG_DIRS`.
30
+ - Set `COPILOT_ENABLE_FLEET=1` to start Copilot fleet mode before every request.
31
+ - `run --model <id>` is validated against the live Copilot model whitelist across eligible profiles, only the newest family member is treated as canonical, older aliases like `claude-sonnet-4.5` are mapped to the newest available model automatically, and `gpt-4.1` plus `claude-opus-4.6-fast` are excluded even if Copilot reports them.
30
32
  - Deterministic failover testing uses `CLI_COPILOT_WORKER_PROFILE_FAULTS`.
@@ -1,3 +1,16 @@
1
- #!/usr/bin/env -S node --import tsx
1
+ #!/usr/bin/env node
2
2
 
3
- import '../src/cli.ts';
3
+ import { dirname, resolve } from 'node:path';
4
+ import { fileURLToPath, pathToFileURL } from 'node:url';
5
+
6
+ import { register } from 'tsx/esm/api';
7
+
8
+ const binDir = dirname(fileURLToPath(import.meta.url));
9
+ const entrypointUrl = pathToFileURL(resolve(binDir, '../src/cli.ts')).href;
10
+ const unregister = register();
11
+
12
+ try {
13
+ await import(entrypointUrl);
14
+ } finally {
15
+ await unregister();
16
+ }
@@ -0,0 +1,15 @@
1
+ export declare const COPILOT_ENABLE_FLEET_ENV = "COPILOT_ENABLE_FLEET";
2
+ export interface FleetRpcSession {
3
+ rpc: {
4
+ fleet: {
5
+ start: (input: {
6
+ prompt?: string;
7
+ }) => Promise<{
8
+ started: boolean;
9
+ }>;
10
+ };
11
+ };
12
+ }
13
+ export declare function isFleetModeEnabled(value?: string | undefined): boolean;
14
+ export declare function buildFleetPrompt(taskPrompt: string): string;
15
+ export declare function startFleetModeIfEnabled(session: FleetRpcSession, taskPrompt: string): Promise<boolean>;
@@ -0,0 +1,26 @@
1
+ export const COPILOT_ENABLE_FLEET_ENV = 'COPILOT_ENABLE_FLEET';
2
+ const TRUTHY_VALUES = new Set(['1', 'true', 'yes', 'on']);
3
+ export function isFleetModeEnabled(value = process.env[COPILOT_ENABLE_FLEET_ENV]) {
4
+ return value !== undefined && TRUTHY_VALUES.has(value.trim().toLowerCase());
5
+ }
6
+ export function buildFleetPrompt(taskPrompt) {
7
+ return [
8
+ 'You are one worker in a Copilot fleet assisting the primary agent.',
9
+ 'Work in parallel, focus on independently useful evidence, and surface concrete edits or commands the primary agent can apply immediately.',
10
+ 'Do not take ownership of the final deliverable unless the primary agent explicitly assigns a bounded subtask that requires it.',
11
+ 'Do not write the user-facing final answer or directly create the requested final artifact by default. Prefer scouting, verification, and support work that unblocks the primary agent.',
12
+ 'Do not ask the user questions. Do not restate the entire task. Stay concise and execution-focused.',
13
+ 'Primary task:',
14
+ taskPrompt.trim(),
15
+ ].join('\n\n');
16
+ }
17
+ export async function startFleetModeIfEnabled(session, taskPrompt) {
18
+ if (!isFleetModeEnabled()) {
19
+ return false;
20
+ }
21
+ const result = await session.rpc.fleet.start({
22
+ prompt: buildFleetPrompt(taskPrompt),
23
+ });
24
+ return result.started;
25
+ }
26
+ //# sourceMappingURL=fleet-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-mode.js","sourceRoot":"","sources":["../../../src/core/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,CAAC,OAAwB,EAAE,UAAkB;IACxF,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,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"}
@@ -0,0 +1,16 @@
1
+ export interface ModelCatalogInput {
2
+ id: string;
3
+ name?: string | undefined;
4
+ policyState?: 'enabled' | 'disabled' | 'unconfigured' | undefined;
5
+ }
6
+ export interface ModelAliasMapping {
7
+ alias: string;
8
+ canonical: string;
9
+ }
10
+ export interface ModelCatalog {
11
+ latestModelIds: string[];
12
+ aliasMappings: ModelAliasMapping[];
13
+ }
14
+ export declare function buildModelCatalog(models: ModelCatalogInput[]): ModelCatalog;
15
+ export declare function resolveModelAlias(requestedModel: string, catalog: ModelCatalog): string | undefined;
16
+ export declare function describeAllowedModels(catalog: ModelCatalog): string;
@@ -0,0 +1,95 @@
1
+ const MANUALLY_EXCLUDED_MODEL_IDS = new Set(['gpt-4.1', 'claude-opus-4.6-fast']);
2
+ function isSelectableModel(model) {
3
+ return (model.policyState !== 'disabled' &&
4
+ model.policyState !== 'unconfigured' &&
5
+ !MANUALLY_EXCLUDED_MODEL_IDS.has(model.id));
6
+ }
7
+ function parseModelId(id) {
8
+ const match = /^(.*)-(\d+(?:\.\d+)?)(?:-(.+))?$/.exec(id);
9
+ if (!match) {
10
+ return undefined;
11
+ }
12
+ const prefix = match[1];
13
+ const version = match[2];
14
+ const suffix = match[3];
15
+ if (!prefix || !version) {
16
+ return undefined;
17
+ }
18
+ const major = version.split('.')[0];
19
+ const familyBase = prefix.includes('-') ? prefix : `${prefix}-${major}`;
20
+ return {
21
+ family: suffix ? `${familyBase}-${suffix}` : familyBase,
22
+ version: version.split('.').map((part) => Number.parseInt(part, 10)),
23
+ };
24
+ }
25
+ function compareVersions(left, right) {
26
+ const length = Math.max(left.length, right.length);
27
+ for (let index = 0; index < length; index += 1) {
28
+ const leftPart = left[index] ?? 0;
29
+ const rightPart = right[index] ?? 0;
30
+ if (leftPart !== rightPart) {
31
+ return leftPart - rightPart;
32
+ }
33
+ }
34
+ return 0;
35
+ }
36
+ export function buildModelCatalog(models) {
37
+ const selectable = models.filter(isSelectableModel);
38
+ const latestByFamily = new Map();
39
+ const passthrough = new Set();
40
+ for (const model of selectable) {
41
+ const parsed = parseModelId(model.id);
42
+ if (!parsed) {
43
+ passthrough.add(model.id);
44
+ continue;
45
+ }
46
+ const existing = latestByFamily.get(parsed.family);
47
+ if (!existing || compareVersions(parsed.version, existing.version) > 0) {
48
+ latestByFamily.set(parsed.family, { id: model.id, version: parsed.version });
49
+ }
50
+ }
51
+ const aliasMappings = selectable
52
+ .map((model) => {
53
+ const parsed = parseModelId(model.id);
54
+ if (!parsed) {
55
+ return undefined;
56
+ }
57
+ const canonical = latestByFamily.get(parsed.family)?.id;
58
+ if (!canonical || canonical === model.id) {
59
+ return undefined;
60
+ }
61
+ return {
62
+ alias: model.id,
63
+ canonical,
64
+ };
65
+ })
66
+ .filter((mapping) => mapping !== undefined)
67
+ .sort((left, right) => left.alias.localeCompare(right.alias));
68
+ const latestModelIds = [
69
+ ...new Set([
70
+ ...passthrough,
71
+ ...[...latestByFamily.values()].map((entry) => entry.id),
72
+ ]),
73
+ ].sort((left, right) => left.localeCompare(right));
74
+ return {
75
+ latestModelIds,
76
+ aliasMappings,
77
+ };
78
+ }
79
+ export function resolveModelAlias(requestedModel, catalog) {
80
+ if (catalog.latestModelIds.includes(requestedModel)) {
81
+ return requestedModel;
82
+ }
83
+ return catalog.aliasMappings.find((mapping) => mapping.alias === requestedModel)?.canonical;
84
+ }
85
+ export function describeAllowedModels(catalog) {
86
+ const allowed = catalog.latestModelIds.join(', ');
87
+ if (catalog.aliasMappings.length === 0) {
88
+ return `Allowed models: ${allowed}`;
89
+ }
90
+ const aliases = catalog.aliasMappings
91
+ .map((mapping) => `${mapping.alias} -> ${mapping.canonical}`)
92
+ .join(', ');
93
+ return `Allowed models: ${allowed}. Accepted legacy aliases: ${aliases}`;
94
+ }
95
+ //# sourceMappingURL=model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../../src/core/model-catalog.ts"],"names":[],"mappings":"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"}
@@ -56,8 +56,14 @@ export declare class CliCopilotWorkerService {
56
56
  private executeInBackground;
57
57
  private startProfileAttempt;
58
58
  private planProfiles;
59
+ private planExecutionProfiles;
59
60
  private getOrCreateClient;
60
61
  private disposeClient;
62
+ private resolveRequestedModel;
63
+ private filterProfilesByModelSupport;
64
+ private profileSupportsModel;
65
+ private loadModelCatalogForProfiles;
66
+ private toModelCatalogInput;
61
67
  private recordAttemptFailure;
62
68
  private finalizeJobFailure;
63
69
  private buildConversationActions;
@@ -3,6 +3,8 @@ import { existsSync } from 'node:fs';
3
3
  import { approveAll } from '@github/copilot-sdk';
4
4
  import { buildAuthenticatedClient } from '../core/copilot.js';
5
5
  import { classifyCopilotStartupFailure, classifySessionErrorEvent } from '../core/failure-classifier.js';
6
+ import { startFleetModeIfEnabled } from '../core/fleet-mode.js';
7
+ import { buildModelCatalog, describeAllowedModels, resolveModelAlias, } from '../core/model-catalog.js';
6
8
  import { ensureStateRoot } from '../core/paths.js';
7
9
  import { ProfileFaultPlanner } from '../core/profile-faults.js';
8
10
  import { ProfileManager } from '../core/profile-manager.js';
@@ -97,9 +99,10 @@ export class CliCopilotWorkerService {
97
99
  return { status: 'stopped' };
98
100
  }
99
101
  async run(args, writer) {
102
+ const resolvedModel = await this.resolveRequestedModel(args.cwd, args.model);
100
103
  const conversation = this.store.createConversation({
101
104
  cwd: args.cwd,
102
- model: args.model ?? DEFAULT_MODEL,
105
+ model: resolvedModel,
103
106
  });
104
107
  const job = this.store.createJob({
105
108
  conversationId: conversation.id,
@@ -381,7 +384,16 @@ export class CliCopilotWorkerService {
381
384
  input.writer?.event('status', {
382
385
  message: `Running ${job.kind} on ${conversation.id}`,
383
386
  });
384
- const profiles = this.planProfiles(conversation);
387
+ let profiles;
388
+ try {
389
+ profiles = await this.planExecutionProfiles(conversation);
390
+ }
391
+ catch (error) {
392
+ const failure = classifyCopilotStartupFailure(error);
393
+ await this.finalizeJobFailure(job.id, conversation.id, failure.message);
394
+ rejectDone(new Error(failure.message));
395
+ return;
396
+ }
385
397
  if (profiles.length === 0) {
386
398
  const failure = classifyCopilotStartupFailure(new Error('No eligible Copilot profiles are available. All configured profiles are cooling down or unavailable.'));
387
399
  await this.finalizeJobFailure(job.id, conversation.id, failure.message);
@@ -653,6 +665,16 @@ export class CliCopilotWorkerService {
653
665
  timeout.unref();
654
666
  void this.persistState()
655
667
  .then(async () => {
668
+ const fleetStarted = await startFleetModeIfEnabled(session, input.content);
669
+ if (fleetStarted) {
670
+ await this.store.appendTranscript({
671
+ conversationId: input.conversation.id,
672
+ jobId: input.job.id,
673
+ role: 'status',
674
+ content: 'Fleet mode started.',
675
+ });
676
+ input.writer?.event('status', { message: 'Fleet mode started.' });
677
+ }
656
678
  await session.send({ prompt: input.content });
657
679
  })
658
680
  .catch((error) => {
@@ -693,6 +715,18 @@ export class CliCopilotWorkerService {
693
715
  eligible.forEach((profile) => push(profile));
694
716
  return prioritized;
695
717
  }
718
+ async planExecutionProfiles(conversation) {
719
+ const prioritized = this.planProfiles(conversation);
720
+ if (conversation.hasStarted) {
721
+ return prioritized;
722
+ }
723
+ const supported = await this.filterProfilesByModelSupport(conversation.cwd, prioritized, conversation.model);
724
+ if (supported.length > 0) {
725
+ return supported;
726
+ }
727
+ const catalog = await this.loadModelCatalogForProfiles(conversation.cwd, prioritized);
728
+ throw new Error(`Unsupported model "${conversation.model}" for the configured Copilot profiles. ${describeAllowedModels(catalog)}`);
729
+ }
696
730
  async getOrCreateClient(cwd, profile) {
697
731
  const clientKey = `${cwd}:${profile.configDir}`;
698
732
  let client = this.clients.get(clientKey);
@@ -711,6 +745,57 @@ export class CliCopilotWorkerService {
711
745
  });
712
746
  this.clients.delete(clientKey);
713
747
  }
748
+ async resolveRequestedModel(cwd, requestedModel) {
749
+ const profiles = this.profileManager.getCandidateProfiles();
750
+ if (profiles.length === 0) {
751
+ throw new Error('No eligible Copilot profiles are available. All configured profiles are cooling down or unavailable.');
752
+ }
753
+ const catalog = await this.loadModelCatalogForProfiles(cwd, profiles);
754
+ const rawModel = requestedModel ?? DEFAULT_MODEL;
755
+ const resolved = resolveModelAlias(rawModel, catalog);
756
+ if (!resolved) {
757
+ throw new Error(`Unsupported model "${rawModel}". ${describeAllowedModels(catalog)}`);
758
+ }
759
+ return resolved;
760
+ }
761
+ async filterProfilesByModelSupport(cwd, profiles, model) {
762
+ const supportChecks = await Promise.all(profiles.map(async (profile) => ({
763
+ profile,
764
+ supports: await this.profileSupportsModel(cwd, profile, model),
765
+ })));
766
+ return supportChecks
767
+ .filter((entry) => entry.supports)
768
+ .map((entry) => entry.profile);
769
+ }
770
+ async profileSupportsModel(cwd, profile, model) {
771
+ try {
772
+ const catalog = await this.loadModelCatalogForProfiles(cwd, [profile]);
773
+ return catalog.latestModelIds.includes(model);
774
+ }
775
+ catch {
776
+ return false;
777
+ }
778
+ }
779
+ async loadModelCatalogForProfiles(cwd, profiles) {
780
+ const settled = await Promise.allSettled(profiles.map(async (profile) => {
781
+ const { client } = await this.getOrCreateClient(cwd, profile);
782
+ return await client.listModels();
783
+ }));
784
+ const models = settled
785
+ .flatMap((result) => (result.status === 'fulfilled' ? result.value : []))
786
+ .map((model) => this.toModelCatalogInput(model));
787
+ if (models.length === 0) {
788
+ throw new Error('No selectable Copilot models are available from the configured profiles.');
789
+ }
790
+ return buildModelCatalog(models);
791
+ }
792
+ toModelCatalogInput(model) {
793
+ return {
794
+ id: model.id,
795
+ name: model.name,
796
+ policyState: model.policy?.state,
797
+ };
798
+ }
714
799
  async recordAttemptFailure(input) {
715
800
  this.store.finalizeJobAttempt(input.attempt, {
716
801
  outcome: 'failed',
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/daemon/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/daemon/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cli-copilot-worker",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Copilot-only CLI worker for running Markdown tasks, resuming sessions, and orchestrating async jobs",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -0,0 +1,39 @@
1
+ export const COPILOT_ENABLE_FLEET_ENV = 'COPILOT_ENABLE_FLEET';
2
+
3
+ const TRUTHY_VALUES = new Set(['1', 'true', 'yes', 'on']);
4
+
5
+ export interface FleetRpcSession {
6
+ rpc: {
7
+ fleet: {
8
+ start: (input: { prompt?: string }) => Promise<{ started: boolean }>;
9
+ };
10
+ };
11
+ }
12
+
13
+ export function isFleetModeEnabled(value = process.env[COPILOT_ENABLE_FLEET_ENV]): boolean {
14
+ return value !== undefined && TRUTHY_VALUES.has(value.trim().toLowerCase());
15
+ }
16
+
17
+ export function buildFleetPrompt(taskPrompt: string): string {
18
+ return [
19
+ 'You are one worker in a Copilot fleet assisting the primary agent.',
20
+ 'Work in parallel, focus on independently useful evidence, and surface concrete edits or commands the primary agent can apply immediately.',
21
+ 'Do not take ownership of the final deliverable unless the primary agent explicitly assigns a bounded subtask that requires it.',
22
+ 'Do not write the user-facing final answer or directly create the requested final artifact by default. Prefer scouting, verification, and support work that unblocks the primary agent.',
23
+ 'Do not ask the user questions. Do not restate the entire task. Stay concise and execution-focused.',
24
+ 'Primary task:',
25
+ taskPrompt.trim(),
26
+ ].join('\n\n');
27
+ }
28
+
29
+ export async function startFleetModeIfEnabled(session: FleetRpcSession, taskPrompt: string): Promise<boolean> {
30
+ if (!isFleetModeEnabled()) {
31
+ return false;
32
+ }
33
+
34
+ const result = await session.rpc.fleet.start({
35
+ prompt: buildFleetPrompt(taskPrompt),
36
+ });
37
+
38
+ return result.started;
39
+ }
@@ -0,0 +1,136 @@
1
+ export interface ModelCatalogInput {
2
+ id: string;
3
+ name?: string | undefined;
4
+ policyState?: 'enabled' | 'disabled' | 'unconfigured' | undefined;
5
+ }
6
+
7
+ export interface ModelAliasMapping {
8
+ alias: string;
9
+ canonical: string;
10
+ }
11
+
12
+ export interface ModelCatalog {
13
+ latestModelIds: string[];
14
+ aliasMappings: ModelAliasMapping[];
15
+ }
16
+
17
+ const MANUALLY_EXCLUDED_MODEL_IDS = new Set(['gpt-4.1', 'claude-opus-4.6-fast']);
18
+
19
+ interface ParsedModelId {
20
+ family: string;
21
+ version: number[];
22
+ }
23
+
24
+ function isSelectableModel(model: ModelCatalogInput): boolean {
25
+ return (
26
+ model.policyState !== 'disabled' &&
27
+ model.policyState !== 'unconfigured' &&
28
+ !MANUALLY_EXCLUDED_MODEL_IDS.has(model.id)
29
+ );
30
+ }
31
+
32
+ function parseModelId(id: string): ParsedModelId | undefined {
33
+ const match = /^(.*)-(\d+(?:\.\d+)?)(?:-(.+))?$/.exec(id);
34
+ if (!match) {
35
+ return undefined;
36
+ }
37
+
38
+ const prefix = match[1];
39
+ const version = match[2];
40
+ const suffix = match[3];
41
+ if (!prefix || !version) {
42
+ return undefined;
43
+ }
44
+
45
+ const major = version.split('.')[0];
46
+ const familyBase = prefix.includes('-') ? prefix : `${prefix}-${major}`;
47
+ return {
48
+ family: suffix ? `${familyBase}-${suffix}` : familyBase,
49
+ version: version.split('.').map((part) => Number.parseInt(part, 10)),
50
+ };
51
+ }
52
+
53
+ function compareVersions(left: number[], right: number[]): number {
54
+ const length = Math.max(left.length, right.length);
55
+ for (let index = 0; index < length; index += 1) {
56
+ const leftPart = left[index] ?? 0;
57
+ const rightPart = right[index] ?? 0;
58
+ if (leftPart !== rightPart) {
59
+ return leftPart - rightPart;
60
+ }
61
+ }
62
+
63
+ return 0;
64
+ }
65
+
66
+ export function buildModelCatalog(models: ModelCatalogInput[]): ModelCatalog {
67
+ const selectable = models.filter(isSelectableModel);
68
+ const latestByFamily = new Map<string, { id: string; version: number[] }>();
69
+ const passthrough = new Set<string>();
70
+
71
+ for (const model of selectable) {
72
+ const parsed = parseModelId(model.id);
73
+ if (!parsed) {
74
+ passthrough.add(model.id);
75
+ continue;
76
+ }
77
+
78
+ const existing = latestByFamily.get(parsed.family);
79
+ if (!existing || compareVersions(parsed.version, existing.version) > 0) {
80
+ latestByFamily.set(parsed.family, { id: model.id, version: parsed.version });
81
+ }
82
+ }
83
+
84
+ const aliasMappings = selectable
85
+ .map((model) => {
86
+ const parsed = parseModelId(model.id);
87
+ if (!parsed) {
88
+ return undefined;
89
+ }
90
+
91
+ const canonical = latestByFamily.get(parsed.family)?.id;
92
+ if (!canonical || canonical === model.id) {
93
+ return undefined;
94
+ }
95
+
96
+ return {
97
+ alias: model.id,
98
+ canonical,
99
+ };
100
+ })
101
+ .filter((mapping): mapping is ModelAliasMapping => mapping !== undefined)
102
+ .sort((left, right) => left.alias.localeCompare(right.alias));
103
+
104
+ const latestModelIds = [
105
+ ...new Set([
106
+ ...passthrough,
107
+ ...[...latestByFamily.values()].map((entry) => entry.id),
108
+ ]),
109
+ ].sort((left, right) => left.localeCompare(right));
110
+
111
+ return {
112
+ latestModelIds,
113
+ aliasMappings,
114
+ };
115
+ }
116
+
117
+ export function resolveModelAlias(requestedModel: string, catalog: ModelCatalog): string | undefined {
118
+ if (catalog.latestModelIds.includes(requestedModel)) {
119
+ return requestedModel;
120
+ }
121
+
122
+ return catalog.aliasMappings.find((mapping) => mapping.alias === requestedModel)?.canonical;
123
+ }
124
+
125
+ export function describeAllowedModels(catalog: ModelCatalog): string {
126
+ const allowed = catalog.latestModelIds.join(', ');
127
+ if (catalog.aliasMappings.length === 0) {
128
+ return `Allowed models: ${allowed}`;
129
+ }
130
+
131
+ const aliases = catalog.aliasMappings
132
+ .map((mapping) => `${mapping.alias} -> ${mapping.canonical}`)
133
+ .join(', ');
134
+
135
+ return `Allowed models: ${allowed}. Accepted legacy aliases: ${aliases}`;
136
+ }
@@ -1,10 +1,17 @@
1
1
  import { unlink, writeFile } from 'node:fs/promises';
2
2
  import { existsSync } from 'node:fs';
3
3
 
4
- import { approveAll, type CopilotClient, type CopilotSession } from '@github/copilot-sdk';
4
+ import { approveAll, type CopilotClient, type CopilotSession, type ModelInfo } from '@github/copilot-sdk';
5
5
 
6
6
  import { buildAuthenticatedClient } from '../core/copilot.js';
7
7
  import { classifyCopilotStartupFailure, classifySessionErrorEvent } from '../core/failure-classifier.js';
8
+ import { startFleetModeIfEnabled } from '../core/fleet-mode.js';
9
+ import {
10
+ buildModelCatalog,
11
+ describeAllowedModels,
12
+ resolveModelAlias,
13
+ type ModelCatalogInput,
14
+ } from '../core/model-catalog.js';
8
15
  import { ensureStateRoot } from '../core/paths.js';
9
16
  import { ProfileFaultPlanner } from '../core/profile-faults.js';
10
17
  import { ProfileManager } from '../core/profile-manager.js';
@@ -150,9 +157,10 @@ export class CliCopilotWorkerService {
150
157
  }
151
158
 
152
159
  async run(args: RunRequest, writer?: EventWriter): Promise<Record<string, unknown>> {
160
+ const resolvedModel = await this.resolveRequestedModel(args.cwd, args.model);
153
161
  const conversation = this.store.createConversation({
154
162
  cwd: args.cwd,
155
- model: args.model ?? DEFAULT_MODEL,
163
+ model: resolvedModel,
156
164
  });
157
165
  const job = this.store.createJob({
158
166
  conversationId: conversation.id,
@@ -488,7 +496,16 @@ export class CliCopilotWorkerService {
488
496
  message: `Running ${job.kind} on ${conversation.id}`,
489
497
  });
490
498
 
491
- const profiles = this.planProfiles(conversation);
499
+ let profiles: CopilotProfile[];
500
+ try {
501
+ profiles = await this.planExecutionProfiles(conversation);
502
+ } catch (error) {
503
+ const failure = classifyCopilotStartupFailure(error);
504
+ await this.finalizeJobFailure(job.id, conversation.id, failure.message);
505
+ rejectDone(new Error(failure.message));
506
+ return;
507
+ }
508
+
492
509
  if (profiles.length === 0) {
493
510
  const failure = classifyCopilotStartupFailure(
494
511
  new Error('No eligible Copilot profiles are available. All configured profiles are cooling down or unavailable.'),
@@ -798,6 +815,16 @@ export class CliCopilotWorkerService {
798
815
 
799
816
  void this.persistState()
800
817
  .then(async () => {
818
+ const fleetStarted = await startFleetModeIfEnabled(session, input.content);
819
+ if (fleetStarted) {
820
+ await this.store.appendTranscript({
821
+ conversationId: input.conversation.id,
822
+ jobId: input.job.id,
823
+ role: 'status',
824
+ content: 'Fleet mode started.',
825
+ });
826
+ input.writer?.event('status', { message: 'Fleet mode started.' });
827
+ }
801
828
  await session.send({ prompt: input.content });
802
829
  })
803
830
  .catch((error) => {
@@ -846,6 +873,28 @@ export class CliCopilotWorkerService {
846
873
  return prioritized;
847
874
  }
848
875
 
876
+ private async planExecutionProfiles(conversation: ConversationRecord): Promise<CopilotProfile[]> {
877
+ const prioritized = this.planProfiles(conversation);
878
+ if (conversation.hasStarted) {
879
+ return prioritized;
880
+ }
881
+
882
+ const supported = await this.filterProfilesByModelSupport(
883
+ conversation.cwd,
884
+ prioritized,
885
+ conversation.model,
886
+ );
887
+
888
+ if (supported.length > 0) {
889
+ return supported;
890
+ }
891
+
892
+ const catalog = await this.loadModelCatalogForProfiles(conversation.cwd, prioritized);
893
+ throw new Error(
894
+ `Unsupported model "${conversation.model}" for the configured Copilot profiles. ${describeAllowedModels(catalog)}`,
895
+ );
896
+ }
897
+
849
898
  private async getOrCreateClient(cwd: string, profile: CopilotProfile): Promise<{ client: CopilotClient; clientKey: string }> {
850
899
  const clientKey = `${cwd}:${profile.configDir}`;
851
900
  let client = this.clients.get(clientKey);
@@ -867,6 +916,75 @@ export class CliCopilotWorkerService {
867
916
  this.clients.delete(clientKey);
868
917
  }
869
918
 
919
+ private async resolveRequestedModel(cwd: string, requestedModel?: string): Promise<string> {
920
+ const profiles = this.profileManager.getCandidateProfiles();
921
+ if (profiles.length === 0) {
922
+ throw new Error('No eligible Copilot profiles are available. All configured profiles are cooling down or unavailable.');
923
+ }
924
+
925
+ const catalog = await this.loadModelCatalogForProfiles(cwd, profiles);
926
+ const rawModel = requestedModel ?? DEFAULT_MODEL;
927
+ const resolved = resolveModelAlias(rawModel, catalog);
928
+ if (!resolved) {
929
+ throw new Error(`Unsupported model "${rawModel}". ${describeAllowedModels(catalog)}`);
930
+ }
931
+
932
+ return resolved;
933
+ }
934
+
935
+ private async filterProfilesByModelSupport(
936
+ cwd: string,
937
+ profiles: CopilotProfile[],
938
+ model: string,
939
+ ): Promise<CopilotProfile[]> {
940
+ const supportChecks = await Promise.all(
941
+ profiles.map(async (profile) => ({
942
+ profile,
943
+ supports: await this.profileSupportsModel(cwd, profile, model),
944
+ })),
945
+ );
946
+
947
+ return supportChecks
948
+ .filter((entry) => entry.supports)
949
+ .map((entry) => entry.profile);
950
+ }
951
+
952
+ private async profileSupportsModel(cwd: string, profile: CopilotProfile, model: string): Promise<boolean> {
953
+ try {
954
+ const catalog = await this.loadModelCatalogForProfiles(cwd, [profile]);
955
+ return catalog.latestModelIds.includes(model);
956
+ } catch {
957
+ return false;
958
+ }
959
+ }
960
+
961
+ private async loadModelCatalogForProfiles(cwd: string, profiles: CopilotProfile[]) {
962
+ const settled = await Promise.allSettled(
963
+ profiles.map(async (profile) => {
964
+ const { client } = await this.getOrCreateClient(cwd, profile);
965
+ return await client.listModels();
966
+ }),
967
+ );
968
+
969
+ const models = settled
970
+ .flatMap((result) => (result.status === 'fulfilled' ? result.value : []))
971
+ .map((model) => this.toModelCatalogInput(model));
972
+
973
+ if (models.length === 0) {
974
+ throw new Error('No selectable Copilot models are available from the configured profiles.');
975
+ }
976
+
977
+ return buildModelCatalog(models);
978
+ }
979
+
980
+ private toModelCatalogInput(model: ModelInfo): ModelCatalogInput {
981
+ return {
982
+ id: model.id,
983
+ name: model.name,
984
+ policyState: model.policy?.state,
985
+ };
986
+ }
987
+
870
988
  private async recordAttemptFailure(input: {
871
989
  conversationId: string;
872
990
  jobId: string;