@agentclientprotocol/claude-agent-acp 0.90.1-preview.10 → 0.90.1-preview.12
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 +14 -5
- package/dist/acp-agent.d.ts +50 -0
- package/dist/acp-agent.d.ts.map +1 -1
- package/dist/acp-agent.js +136 -15
- package/dist/gateway-models.d.ts +62 -0
- package/dist/gateway-models.d.ts.map +1 -0
- package/dist/gateway-models.js +180 -0
- package/dist/native-subagents.d.ts +34 -9
- package/dist/native-subagents.d.ts.map +1 -1
- package/dist/native-subagents.js +55 -11
- package/dist/session-model.d.ts +21 -1
- package/dist/session-model.d.ts.map +1 -1
- package/dist/session-model.js +89 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,10 +51,14 @@ Task subagent as its own child session, following the [subagents RFD](https://gi
|
|
|
51
51
|
SendMessage call that resumes it, is a `session_message` in the child's transcript. The tool
|
|
52
52
|
call stays a tool call of the session that made it.
|
|
53
53
|
- `session/cancel` on the parent interrupts Claude Code, which stops the foreground children that
|
|
54
|
-
the turn waits on
|
|
55
|
-
with `cancelled` from Claude Code's own
|
|
56
|
-
withdrawn. The adapter ends no child at a cancel itself, so a
|
|
57
|
-
open requests and its open tool calls.
|
|
54
|
+
the turn waits on. Background children keep running, as the RFD prefers; a client stops one with
|
|
55
|
+
its own `cancel`. Each stopped child reports `idle` with `cancelled` from Claude Code's own
|
|
56
|
+
events, and its open requests are withdrawn. The adapter ends no child at a cancel itself, so a
|
|
57
|
+
child that keeps running keeps its open requests and its open tool calls. To spare background
|
|
58
|
+
children, the adapter declares the SDK option `perTaskStopAffordance`, which a client can turn
|
|
59
|
+
off in `_meta.claudeCode.options`. That option spares background workflows too, which a client
|
|
60
|
+
cannot stop, so the adapter stops them after the interrupt, as Claude Code did without it.
|
|
61
|
+
Background commands keep running after a cancel either way. A tool call of a stopped child that Claude Code reports no
|
|
58
62
|
result for, such as the command it was running, ends in the child's session before the cancelled
|
|
59
63
|
prompt resolves. When Claude Code stops a background child after that, or while no prompt runs,
|
|
60
64
|
the tool call ends right after the child reports `idle`. A child that still runs when Claude Code
|
|
@@ -70,7 +74,12 @@ Task subagent as its own child session, following the [subagents RFD](https://gi
|
|
|
70
74
|
that the client was not told about in this connection is announced, parent before child and
|
|
71
75
|
with no work state, as the RFD requires. An agent whose launch the session's history does not
|
|
72
76
|
record stays unexposed.
|
|
73
|
-
-
|
|
77
|
+
- Each running child is announced with the `cancel` capability. `session/cancel` with the child's
|
|
78
|
+
session id stops that child's current work, through the SDK's `Query.stopTask`, and not its
|
|
79
|
+
parent's: Claude Code also stops the foreground children it waits on, and the parent's turn goes
|
|
80
|
+
on. Each stopped child reports `idle` with `cancelled` from Claude Code's own events, and its
|
|
81
|
+
requests that the stop withdraws report no `running` first. A replayed child, which no longer
|
|
82
|
+
runs, gets no capabilities. A client cannot prompt or otherwise change a child.
|
|
74
83
|
|
|
75
84
|
An [ACP v2](#experimental-acp-v2) client gets the same without declaring anything, since subagents
|
|
76
85
|
are part of v2's baseline. Each child also reports its work state as its own `state_update`, right
|
package/dist/acp-agent.d.ts
CHANGED
|
@@ -638,6 +638,9 @@ export type Session = {
|
|
|
638
638
|
liveBackgroundTasks: Map<string, {
|
|
639
639
|
parentToolUseId?: string;
|
|
640
640
|
isSubagent: boolean;
|
|
641
|
+
/** The task's kind (`task_started.task_type`), such as `local_bash` or
|
|
642
|
+
* `local_workflow`. Absent when Claude Code did not say. */
|
|
643
|
+
taskType?: string;
|
|
641
644
|
/** Whether the task runs in the background, so that the tool call that
|
|
642
645
|
* spawned it does not wait on it (`task_started.is_backgrounded`, or a
|
|
643
646
|
* later `task_updated` patch). Absent when Claude Code did not say. */
|
|
@@ -661,6 +664,16 @@ export type Session = {
|
|
|
661
664
|
* entry on its two-activation clock. */
|
|
662
665
|
endedPerLevel?: "ended" | "sweep-armed";
|
|
663
666
|
}>;
|
|
667
|
+
/** Whether `session/cancel` also stops the session's background workflows
|
|
668
|
+
* (see `stopBackgroundWorkflows`). Claude Code's interrupt kills background
|
|
669
|
+
* subagents and workflows, unless the query declares
|
|
670
|
+
* `perTaskStopAffordance`: then it spares both, and the client is expected
|
|
671
|
+
* to stop each one itself. A client that can cancel one subagent gets the
|
|
672
|
+
* declaration, but it has no control for a workflow unless it is AIR with
|
|
673
|
+
* `asyncTasks` (`_session/async_task/stop`). So for such a client the
|
|
674
|
+
* adapter stops the workflows after the interrupt, as the interrupt did
|
|
675
|
+
* before. */
|
|
676
|
+
stopsWorkflowsOnCancel?: boolean;
|
|
664
677
|
/** The display terminals of the commands that went to the background and
|
|
665
678
|
* still run, by the id of the command's task: the Bash tool call whose
|
|
666
679
|
* terminal it is, and the subagent tool call that ran it, if any. The
|
|
@@ -887,6 +900,19 @@ type ProviderConfig = {
|
|
|
887
900
|
projectId: string;
|
|
888
901
|
region: string;
|
|
889
902
|
};
|
|
903
|
+
/**
|
|
904
|
+
* Model ids an `anthropic` or `bedrock` gateway listed when it was set via
|
|
905
|
+
* `providers/set`; the model picker offers only these. Absent when the
|
|
906
|
+
* listing failed or the config came from elsewhere (gateway `authenticate`),
|
|
907
|
+
* so nothing is narrowed.
|
|
908
|
+
*/
|
|
909
|
+
listedModels?: string[];
|
|
910
|
+
/**
|
|
911
|
+
* The cross-region prefix of the model ids a `bedrock` gateway
|
|
912
|
+
* listed (`eu` for `eu.anthropic.claude-sonnet-5`), passed to the CLI as
|
|
913
|
+
* `ANTHROPIC_BEDROCK_REGION_PREFIX` so it calls the models under that prefix.
|
|
914
|
+
*/
|
|
915
|
+
bedrockRegionPrefix?: string;
|
|
890
916
|
};
|
|
891
917
|
export type { ToolUpdateMeta } from "./tool-calls/renderer.js";
|
|
892
918
|
export type ToolUseCache = {
|
|
@@ -1181,6 +1207,14 @@ export declare class ClaudeAcpAgent {
|
|
|
1181
1207
|
* backend slot and restores the agent's native routing state.
|
|
1182
1208
|
*/
|
|
1183
1209
|
unstable_disableProvider(params: DisableProviderRequest): Promise<DisableProviderResponse>;
|
|
1210
|
+
/**
|
|
1211
|
+
* The model ids the gateway in `config` lists, read before `providers/set`
|
|
1212
|
+
* returns so the sessions it recreates already offer only those, and for
|
|
1213
|
+
* `bedrock` the region prefix picked from them. Setting the same gateway
|
|
1214
|
+
* again reuses the previous listing. `vertex` gateways are not listed.
|
|
1215
|
+
* Throws a {@link GatewayListingError} when the listing fails.
|
|
1216
|
+
*/
|
|
1217
|
+
private listProviderModels;
|
|
1184
1218
|
resolveProviderConfig(): ProviderConfig | null;
|
|
1185
1219
|
private defaultProviderConfig;
|
|
1186
1220
|
logout(_params: LogoutRequest): Promise<void>;
|
|
@@ -1345,6 +1379,22 @@ export declare class ClaudeAcpAgent {
|
|
|
1345
1379
|
* it, so it is looked up, and a CLI that lacks it rejects the request. */
|
|
1346
1380
|
private dropQueuedMessages;
|
|
1347
1381
|
cancel(params: CancelNotification): Promise<void>;
|
|
1382
|
+
/**
|
|
1383
|
+
* Cancels the current work of the subagent child session `sessionId`, which
|
|
1384
|
+
* its `cancel` capability permits on the subagents RFD form, without
|
|
1385
|
+
* cancelling its parent (see `NativeSubagentRuntime.cancelChild`). Returns
|
|
1386
|
+
* false when no session has such a child.
|
|
1387
|
+
*/
|
|
1388
|
+
private cancelChildSession;
|
|
1389
|
+
/**
|
|
1390
|
+
* Stops each background workflow of the session that still runs, after the
|
|
1391
|
+
* interrupt of a `session/cancel` spared it (see
|
|
1392
|
+
* `Session.stopsWorkflowsOnCancel`). Claude Code reports each one
|
|
1393
|
+
* `stopped`, along with the commands inside it, and starts no model cycle
|
|
1394
|
+
* for it, as when the interrupt killed it. Every background workflow is
|
|
1395
|
+
* stopped, whoever launched it, because the interrupt killed them all.
|
|
1396
|
+
*/
|
|
1397
|
+
private stopBackgroundWorkflows;
|
|
1348
1398
|
/** Cancel the session's turns and interrupt the SDK query. With
|
|
1349
1399
|
* `awaitInterrupt: false` the interrupt is sent, but its reply is not
|
|
1350
1400
|
* awaited. `teardownSession` uses that: it closes the query right after, and
|
package/dist/acp-agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/acp-agent.js
CHANGED
|
@@ -47,7 +47,8 @@ import { formatUsageResponse, isUsageCommandText, parseUsageResponse } from "./u
|
|
|
47
47
|
export { DEFAULT_AGENT_ID } from "./session-config-ids.js";
|
|
48
48
|
import { MCP_AVAILABLE_COMMAND, parseMcpCommand, runMcpCommand } from "./mcp-command.js";
|
|
49
49
|
import { MODE_CONFIG_ID, resolveInitialPermissionMode, SessionModeManager, } from "./session-mode.js";
|
|
50
|
-
import { applyAvailableModelsAllowlist, buildModelConfigOption, getAvailableModels, MODEL_CONFIG_ID, resolveModelPreference, } from "./session-model.js";
|
|
50
|
+
import { applyAvailableModelsAllowlist, buildModelConfigOption, getAvailableModels, MODEL_CONFIG_ID, narrowToGatewayModels, resolveModelPreference, } from "./session-model.js";
|
|
51
|
+
import { GatewayListingError, listBedrockModels, listGatewayModels, PROVIDER_AUTH_TOKEN_PLACEHOLDER, selectBedrockRegion, } from "./gateway-models.js";
|
|
51
52
|
import { buildEffortConfigOption, EFFORT_CONFIG_ID, effortFlagSettings, mergeEffortSettings, settingsEffortForModel, } from "./session-effort.js";
|
|
52
53
|
export { EFFORT_CONFIG_ID, settingsEffortForModel } from "./session-effort.js";
|
|
53
54
|
export { applyAvailableModelsAllowlist, matchResumedModel, MODEL_CONFIG_ID, resolveModelPreference, } from "./session-model.js";
|
|
@@ -1437,7 +1438,7 @@ export class ClaudeAcpAgent {
|
|
|
1437
1438
|
};
|
|
1438
1439
|
}
|
|
1439
1440
|
async newSession(params) {
|
|
1440
|
-
|
|
1441
|
+
while (this.providerUpdate)
|
|
1441
1442
|
await this.providerUpdate;
|
|
1442
1443
|
const response = await this.createSession(params, {
|
|
1443
1444
|
// Revisit these meta values once we support resume
|
|
@@ -1504,7 +1505,7 @@ export class ClaudeAcpAgent {
|
|
|
1504
1505
|
* later load or resume with the same settings reuses it.
|
|
1505
1506
|
*/
|
|
1506
1507
|
async unstable_forkSession(params) {
|
|
1507
|
-
|
|
1508
|
+
while (this.providerUpdate)
|
|
1508
1509
|
await this.providerUpdate;
|
|
1509
1510
|
const { sessionId } = await forkSession(params, {
|
|
1510
1511
|
liveMessageIdToUuid: this.sessions[params.sessionId]?.messageIdToUuid,
|
|
@@ -1522,7 +1523,7 @@ export class ClaudeAcpAgent {
|
|
|
1522
1523
|
return { sessionId, modes, configOptions };
|
|
1523
1524
|
}
|
|
1524
1525
|
async resumeSession(params) {
|
|
1525
|
-
|
|
1526
|
+
while (this.providerUpdate)
|
|
1526
1527
|
await this.providerUpdate;
|
|
1527
1528
|
const result = await this.getOrCreateSession(params);
|
|
1528
1529
|
this.afterSetupResponse(params.sessionId, params.mcpServers ?? []);
|
|
@@ -1530,7 +1531,7 @@ export class ClaudeAcpAgent {
|
|
|
1530
1531
|
}
|
|
1531
1532
|
async loadSession(params) {
|
|
1532
1533
|
const timing = new SessionTiming(this.logger, "load", params.sessionId);
|
|
1533
|
-
|
|
1534
|
+
while (this.providerUpdate)
|
|
1534
1535
|
await this.providerUpdate;
|
|
1535
1536
|
let result;
|
|
1536
1537
|
if (this.sessions[params.sessionId]) {
|
|
@@ -1912,6 +1913,42 @@ export class ClaudeAcpAgent {
|
|
|
1912
1913
|
// Unknown provider: idempotent success.
|
|
1913
1914
|
return {};
|
|
1914
1915
|
}
|
|
1916
|
+
/**
|
|
1917
|
+
* The model ids the gateway in `config` lists, read before `providers/set`
|
|
1918
|
+
* returns so the sessions it recreates already offer only those, and for
|
|
1919
|
+
* `bedrock` the region prefix picked from them. Setting the same gateway
|
|
1920
|
+
* again reuses the previous listing. `vertex` gateways are not listed.
|
|
1921
|
+
* Throws a {@link GatewayListingError} when the listing fails.
|
|
1922
|
+
*/
|
|
1923
|
+
async listProviderModels(config) {
|
|
1924
|
+
// Reuse needs the very same headers, so a rotated token lists again, and a
|
|
1925
|
+
// failed listing then fails that `providers/set`. Deliberate: AIR keeps its
|
|
1926
|
+
// proxy key for the IDE's lifetime and does not rotate it.
|
|
1927
|
+
const current = this.providerConfig;
|
|
1928
|
+
if (current?.listedModels &&
|
|
1929
|
+
current.apiType === config.apiType &&
|
|
1930
|
+
current.baseUrl === config.baseUrl &&
|
|
1931
|
+
sameHeaders(current.headers, config.headers)) {
|
|
1932
|
+
return {
|
|
1933
|
+
listedModels: current.listedModels,
|
|
1934
|
+
bedrockRegionPrefix: current.bedrockRegionPrefix,
|
|
1935
|
+
};
|
|
1936
|
+
}
|
|
1937
|
+
if (config.apiType === "anthropic") {
|
|
1938
|
+
return { listedModels: await listGatewayModels(config.baseUrl, config.headers, this.logger) };
|
|
1939
|
+
}
|
|
1940
|
+
if (config.apiType === "bedrock") {
|
|
1941
|
+
const modelIds = await listBedrockModels(config.baseUrl, config.headers, this.logger);
|
|
1942
|
+
if (!modelIds)
|
|
1943
|
+
return {};
|
|
1944
|
+
const region = selectBedrockRegion(modelIds);
|
|
1945
|
+
if (region.modelIds.length < modelIds.length) {
|
|
1946
|
+
this.logger.log(`[providers/set] Bedrock models span several region prefixes; using ${region.regionPrefix} and dropping ${modelIds.length - region.modelIds.length} id(s) of other prefixes`);
|
|
1947
|
+
}
|
|
1948
|
+
return { listedModels: region.modelIds, bedrockRegionPrefix: region.regionPrefix };
|
|
1949
|
+
}
|
|
1950
|
+
return {};
|
|
1951
|
+
}
|
|
1915
1952
|
resolveProviderConfig() {
|
|
1916
1953
|
return this.providerConfig ?? gatewayRequestToProviderConfig(this.gatewayAuthRequest);
|
|
1917
1954
|
}
|
|
@@ -1945,7 +1982,9 @@ export class ClaudeAcpAgent {
|
|
|
1945
1982
|
// provider routing set via `providers/set`. Neither touches the on-disk
|
|
1946
1983
|
// credential store, so dropping these references is the whole logout for
|
|
1947
1984
|
// those paths.
|
|
1948
|
-
|
|
1985
|
+
// A queued `providers/set` may still be listing and apply after this point,
|
|
1986
|
+
// so a busy queue counts as an override to clear.
|
|
1987
|
+
const hadRoutingOverride = this.resolveProviderConfig() !== null || this.providerUpdate !== null;
|
|
1949
1988
|
this.gatewayAuthRequest = undefined;
|
|
1950
1989
|
this.providerConfig = undefined;
|
|
1951
1990
|
// Any probe already running read the pre-logout world; the bump makes its
|
|
@@ -2050,7 +2089,7 @@ export class ClaudeAcpAgent {
|
|
|
2050
2089
|
* before this resolves.
|
|
2051
2090
|
*/
|
|
2052
2091
|
async startTurn(params, events) {
|
|
2053
|
-
|
|
2092
|
+
while (this.providerUpdate)
|
|
2054
2093
|
await this.providerUpdate;
|
|
2055
2094
|
let session = this.sessions[params.sessionId];
|
|
2056
2095
|
if (!session) {
|
|
@@ -3055,6 +3094,7 @@ export class ClaudeAcpAgent {
|
|
|
3055
3094
|
session.liveBackgroundTasks.set(taskId, {
|
|
3056
3095
|
parentToolUseId,
|
|
3057
3096
|
isSubagent,
|
|
3097
|
+
...(placement.taskType !== undefined ? { taskType: placement.taskType } : {}),
|
|
3058
3098
|
...(placement.backgrounded !== undefined ? { backgrounded: placement.backgrounded } : {}),
|
|
3059
3099
|
...(placement.parentTaskId !== undefined ? { parentTaskId: placement.parentTaskId } : {}),
|
|
3060
3100
|
});
|
|
@@ -4290,6 +4330,7 @@ export class ClaudeAcpAgent {
|
|
|
4290
4330
|
registerLiveTask(message.task_id, message.tool_use_id, !!message.subagent_type, {
|
|
4291
4331
|
backgrounded: message.is_backgrounded,
|
|
4292
4332
|
parentTaskId: message.parent_task_id,
|
|
4333
|
+
taskType: message.task_type,
|
|
4293
4334
|
});
|
|
4294
4335
|
await subagents.taskStarted({
|
|
4295
4336
|
taskId: message.task_id,
|
|
@@ -5894,8 +5935,46 @@ export class ClaudeAcpAgent {
|
|
|
5894
5935
|
}
|
|
5895
5936
|
}
|
|
5896
5937
|
async cancel(params) {
|
|
5938
|
+
if (!this.sessions[params.sessionId] && (await this.cancelChildSession(params.sessionId))) {
|
|
5939
|
+
return;
|
|
5940
|
+
}
|
|
5897
5941
|
await this.cancelTurns(params, { awaitInterrupt: true });
|
|
5898
5942
|
}
|
|
5943
|
+
/**
|
|
5944
|
+
* Cancels the current work of the subagent child session `sessionId`, which
|
|
5945
|
+
* its `cancel` capability permits on the subagents RFD form, without
|
|
5946
|
+
* cancelling its parent (see `NativeSubagentRuntime.cancelChild`). Returns
|
|
5947
|
+
* false when no session has such a child.
|
|
5948
|
+
*/
|
|
5949
|
+
async cancelChildSession(sessionId) {
|
|
5950
|
+
for (const [rootSessionId, session] of Object.entries(this.sessions)) {
|
|
5951
|
+
const cancelled = await session.nativeSubagentRuntime?.cancelChild(sessionId, (taskId) => session.query.stopTask(taskId).catch((error) => {
|
|
5952
|
+
this.logger.error(`Session ${rootSessionId}: failed to stop the task ${taskId} of subagent session ${sessionId}`, error);
|
|
5953
|
+
}));
|
|
5954
|
+
if (cancelled)
|
|
5955
|
+
return true;
|
|
5956
|
+
}
|
|
5957
|
+
return false;
|
|
5958
|
+
}
|
|
5959
|
+
/**
|
|
5960
|
+
* Stops each background workflow of the session that still runs, after the
|
|
5961
|
+
* interrupt of a `session/cancel` spared it (see
|
|
5962
|
+
* `Session.stopsWorkflowsOnCancel`). Claude Code reports each one
|
|
5963
|
+
* `stopped`, along with the commands inside it, and starts no model cycle
|
|
5964
|
+
* for it, as when the interrupt killed it. Every background workflow is
|
|
5965
|
+
* stopped, whoever launched it, because the interrupt killed them all.
|
|
5966
|
+
*/
|
|
5967
|
+
stopBackgroundWorkflows(sessionId, session) {
|
|
5968
|
+
if (!session.stopsWorkflowsOnCancel)
|
|
5969
|
+
return;
|
|
5970
|
+
for (const [taskId, task] of session.liveBackgroundTasks) {
|
|
5971
|
+
if (task.taskType !== "local_workflow")
|
|
5972
|
+
continue;
|
|
5973
|
+
session.query.stopTask(taskId).catch((error) => {
|
|
5974
|
+
this.logger.error(`Session ${sessionId}: failed to stop the background workflow ${taskId}`, error);
|
|
5975
|
+
});
|
|
5976
|
+
}
|
|
5977
|
+
}
|
|
5899
5978
|
/** Cancel the session's turns and interrupt the SDK query. With
|
|
5900
5979
|
* `awaitInterrupt: false` the interrupt is sent, but its reply is not
|
|
5901
5980
|
* awaited. `teardownSession` uses that: it closes the query right after, and
|
|
@@ -6180,6 +6259,7 @@ export class ClaudeAcpAgent {
|
|
|
6180
6259
|
Promise.resolve(interrupt).catch(() => { });
|
|
6181
6260
|
return;
|
|
6182
6261
|
}
|
|
6262
|
+
this.stopBackgroundWorkflows(params.sessionId, session);
|
|
6183
6263
|
const receipt = await interrupt;
|
|
6184
6264
|
// On CLIs advertising `interrupt_receipt_v1`, the receipt's `still_queued`
|
|
6185
6265
|
// lists exactly which queued messages survive the interrupt and will still
|
|
@@ -8119,6 +8199,17 @@ export class ClaudeAcpAgent {
|
|
|
8119
8199
|
systemPrompt,
|
|
8120
8200
|
settingSources: ["user", "project", "local"],
|
|
8121
8201
|
...(thinking !== undefined && { thinking }),
|
|
8202
|
+
// A client on the subagents RFD form can stop one subagent with
|
|
8203
|
+
// `session/cancel` on its child session (see
|
|
8204
|
+
// `NativeSubagentRuntime.cancelChild`). Declaring that makes Claude
|
|
8205
|
+
// Code's interrupt spare background subagents, so they keep running
|
|
8206
|
+
// after a parent cancel, as the RFD prescribes
|
|
8207
|
+
// (agentclientprotocol/agent-client-protocol#2308). Without it, the
|
|
8208
|
+
// interrupt kills them. It spares background workflows too, which
|
|
8209
|
+
// `stopBackgroundWorkflows` stops instead. Background commands survive an
|
|
8210
|
+
// interrupt either way. Before `userProvidedOptions`, so a client's own
|
|
8211
|
+
// `perTaskStopAffordance` wins.
|
|
8212
|
+
...(subagentForm(this.clientCapabilities) === "rfd" ? { perTaskStopAffordance: true } : {}),
|
|
8122
8213
|
...userProvidedOptions,
|
|
8123
8214
|
// Claude Code uses the same checkpoint store for /rewind. Enable it only
|
|
8124
8215
|
// for clients that negotiated per-turn file-change reports; this avoids
|
|
@@ -8349,10 +8440,14 @@ export class ClaudeAcpAgent {
|
|
|
8349
8440
|
// configured. Managed `deniedModels` drops entries the CLI would refuse.
|
|
8350
8441
|
const settingsAvailableModels = settingsManager.getSettings().availableModels;
|
|
8351
8442
|
const settingsModelOverrides = settingsManager.getSettings().modelOverrides;
|
|
8352
|
-
const
|
|
8443
|
+
const settingsAllowedModels = Array.isArray(settingsAvailableModels)
|
|
8353
8444
|
? applyAvailableModelsAllowlist(initializationResult.models, settingsAvailableModels, settingsModelOverrides, settingsManager.getManagedDeniedModels())
|
|
8354
8445
|
: initializationResult.models;
|
|
8355
|
-
|
|
8446
|
+
// Then keep only the models the `providers/set` gateway listed.
|
|
8447
|
+
const allowedModels = resolvedProvider?.listedModels
|
|
8448
|
+
? narrowToGatewayModels(settingsAllowedModels, resolvedProvider.listedModels, resolvedProvider.bedrockRegionPrefix)
|
|
8449
|
+
: settingsAllowedModels;
|
|
8450
|
+
const models = await getAvailableModels(q, allowedModels, initializationResult.models, settingsManager, this.logger, creationOpts.resume !== undefined, sessionId, await resumedModelHint, resolvedProvider?.listedModels !== undefined);
|
|
8356
8451
|
timing.phase("models");
|
|
8357
8452
|
// Resolve the current model's capabilities separately from the stable
|
|
8358
8453
|
// permission-mode catalog advertised to ACP clients.
|
|
@@ -8510,6 +8605,8 @@ export class ClaudeAcpAgent {
|
|
|
8510
8605
|
emittedToolCalls: new Set(),
|
|
8511
8606
|
eagerToolCallSessions: new Map(),
|
|
8512
8607
|
liveBackgroundTasks: new Map(),
|
|
8608
|
+
stopsWorkflowsOnCancel: options.perTaskStopAffordance === true &&
|
|
8609
|
+
!clientSupportsAsyncTasks(this.clientCapabilities),
|
|
8513
8610
|
nativeSubagentsByTaskId: new Map(),
|
|
8514
8611
|
nativeSubagentTaskIdByToolUseId: new Map(),
|
|
8515
8612
|
nativeSubagentParentByToolUseId: new Map(),
|
|
@@ -8542,6 +8639,21 @@ export class ClaudeAcpAgent {
|
|
|
8542
8639
|
async enqueueProviderUpdate(config) {
|
|
8543
8640
|
const previous = this.providerUpdate?.catch(() => undefined) ?? Promise.resolve();
|
|
8544
8641
|
const update = previous.then(async () => {
|
|
8642
|
+
// The listing runs in the queue, so `providers/set`, `providers/disable`
|
|
8643
|
+
// and logout apply in the order they arrived. A failed listing fails this
|
|
8644
|
+
// `providers/set` before the provider replaces the current one.
|
|
8645
|
+
if (config) {
|
|
8646
|
+
try {
|
|
8647
|
+
Object.assign(config, await this.listProviderModels(config));
|
|
8648
|
+
}
|
|
8649
|
+
catch (error) {
|
|
8650
|
+
if (error instanceof GatewayListingError) {
|
|
8651
|
+
throw RequestError.internalError({ providerId: PROVIDER_ID, apiType: config.apiType, baseUrl: config.baseUrl }, `Model discovery for provider "${PROVIDER_ID}" failed: ${error.message}`);
|
|
8652
|
+
}
|
|
8653
|
+
throw error;
|
|
8654
|
+
}
|
|
8655
|
+
this.logger.log(`[providers/set] listedModels=${config.listedModels?.length ?? "none"} bedrockRegionPrefix=${config.bedrockRegionPrefix ?? "none"}`);
|
|
8656
|
+
}
|
|
8545
8657
|
const sessions = Object.entries(this.sessions);
|
|
8546
8658
|
const activeTurns = sessions.flatMap(([, session]) => (session.turnQueue ?? []).flatMap((turn) => (turn.completion ? [turn.completion] : [])));
|
|
8547
8659
|
if (activeTurns.length > 0) {
|
|
@@ -8986,9 +9098,12 @@ function createEnvForProvider(config) {
|
|
|
8986
9098
|
return {
|
|
8987
9099
|
...resetRouting,
|
|
8988
9100
|
CLAUDE_CODE_USE_BEDROCK: "1",
|
|
8989
|
-
AWS_BEARER_TOKEN_BEDROCK:
|
|
9101
|
+
AWS_BEARER_TOKEN_BEDROCK: PROVIDER_AUTH_TOKEN_PLACEHOLDER, // Bypass local AWS credential checks
|
|
8990
9102
|
ANTHROPIC_BEDROCK_BASE_URL: config.baseUrl,
|
|
8991
9103
|
ANTHROPIC_CUSTOM_HEADERS: customHeaders,
|
|
9104
|
+
...(config.bedrockRegionPrefix
|
|
9105
|
+
? { ANTHROPIC_BEDROCK_REGION_PREFIX: config.bedrockRegionPrefix }
|
|
9106
|
+
: {}),
|
|
8992
9107
|
};
|
|
8993
9108
|
}
|
|
8994
9109
|
if (config.apiType === "vertex") {
|
|
@@ -9013,9 +9128,13 @@ function createEnvForProvider(config) {
|
|
|
9013
9128
|
...resetRouting,
|
|
9014
9129
|
ANTHROPIC_BASE_URL: config.baseUrl,
|
|
9015
9130
|
ANTHROPIC_CUSTOM_HEADERS: customHeaders,
|
|
9016
|
-
ANTHROPIC_AUTH_TOKEN:
|
|
9131
|
+
ANTHROPIC_AUTH_TOKEN: PROVIDER_AUTH_TOKEN_PLACEHOLDER, // Bypass local Claude login checks
|
|
9017
9132
|
};
|
|
9018
9133
|
}
|
|
9134
|
+
function sameHeaders(a, b) {
|
|
9135
|
+
const aKeys = Object.keys(a);
|
|
9136
|
+
return aKeys.length === Object.keys(b).length && aKeys.every((key) => b[key] === a[key]);
|
|
9137
|
+
}
|
|
9019
9138
|
/**
|
|
9020
9139
|
* Validate a provider base URL: must be a non-empty absolute http(s) URL.
|
|
9021
9140
|
*/
|
|
@@ -9171,10 +9290,12 @@ export function resolveFastModeEnabled(params) {
|
|
|
9171
9290
|
throw new Error(`Invalid value for config option ${FAST_MODE_CONFIG_ID}: ${value}`);
|
|
9172
9291
|
}
|
|
9173
9292
|
export function buildConfigOptions(modes, models, modelInfos, currentEffortLevel, agents = [], currentAgent = DEFAULT_AGENT_ID, fastMode, presentation) {
|
|
9174
|
-
const options = [
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
|
|
9293
|
+
const options = [SessionModeManager.configOption(modes)];
|
|
9294
|
+
// A gateway that lists none of the SDK's models leaves no model to offer, so
|
|
9295
|
+
// there is no model option at all.
|
|
9296
|
+
if (models.availableModels.length > 0) {
|
|
9297
|
+
options.push(buildModelConfigOption(models, modelInfos, presentation?.useRecommendedValue === true));
|
|
9298
|
+
}
|
|
9178
9299
|
const effort = buildEffortConfigOption(modelInfos, models.currentModelId, currentEffortLevel, presentation?.useRecommendedValue === true);
|
|
9179
9300
|
if (effort)
|
|
9180
9301
|
options.push(effort);
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model discovery for a gateway set via `providers/set`.
|
|
3
|
+
*
|
|
4
|
+
* An organization can restrict which models its gateway serves, and the
|
|
5
|
+
* gateway's listing returns only those: `GET /v1/models` for an `anthropic`
|
|
6
|
+
* gateway, `GET /foundation-models` (Bedrock `ListFoundationModels`) for a
|
|
7
|
+
* `bedrock` one. The adapter lists them once when the provider is set, and the
|
|
8
|
+
* model picker then offers only the SDK models the gateway listed (see
|
|
9
|
+
* `narrowToGatewayModels` in `session-model.ts`). A listing that fails fails
|
|
10
|
+
* `providers/set` with a {@link GatewayListingError}.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* The bearer token `createEnvForProvider` sets as `ANTHROPIC_AUTH_TOKEN` and
|
|
14
|
+
* `AWS_BEARER_TOKEN_BEDROCK`, so the CLI sends `Authorization: Bearer acp-proxy`
|
|
15
|
+
* unless the provider headers replace it. The listing sends the same, so the
|
|
16
|
+
* gateway sees the same auth as on chat requests.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PROVIDER_AUTH_TOKEN_PLACEHOLDER = "acp-proxy";
|
|
19
|
+
type ListingLogger = {
|
|
20
|
+
log: (...args: any[]) => void;
|
|
21
|
+
error: (...args: any[]) => void;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* A gateway listing that failed: a network error, a status other than 2xx or
|
|
25
|
+
* 4xx, a body that is not the expected listing, or the 10 s timeout. The
|
|
26
|
+
* message names the request path and the reason, never a header value.
|
|
27
|
+
*/
|
|
28
|
+
export declare class GatewayListingError extends Error {
|
|
29
|
+
name: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Lists the model ids an `anthropic` gateway at `baseUrl` serves, following
|
|
33
|
+
* `has_more` / `last_id` pagination. Returns `undefined` when the gateway
|
|
34
|
+
* answers 4xx: it has no listing, and nothing is narrowed. Throws a
|
|
35
|
+
* {@link GatewayListingError} when the listing fails. Header values are never
|
|
36
|
+
* logged.
|
|
37
|
+
*/
|
|
38
|
+
export declare function listGatewayModels(baseUrl: string, providerHeaders: Record<string, string>, logger: ListingLogger): Promise<string[] | undefined>;
|
|
39
|
+
/**
|
|
40
|
+
* Lists the Anthropic models a `bedrock` gateway at `baseUrl` serves
|
|
41
|
+
* (`GET /foundation-models`, Bedrock `ListFoundationModels`, one page), the
|
|
42
|
+
* listing AI Router answers on its Bedrock route. Returns the listed ids, such
|
|
43
|
+
* as `global.anthropic.claude-sonnet-5-5`; `undefined` and the errors are
|
|
44
|
+
* those of {@link listGatewayModels}.
|
|
45
|
+
*/
|
|
46
|
+
export declare function listBedrockModels(baseUrl: string, providerHeaders: Record<string, string>, logger: ListingLogger): Promise<string[] | undefined>;
|
|
47
|
+
/** The cross-region prefix of a Bedrock model id or ARN, if it has one. */
|
|
48
|
+
export declare function bedrockRegionPrefix(modelId: string): string | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Picks the region of the listed Bedrock models: `global` when the gateway
|
|
51
|
+
* lists it, else the prefix of the first id that has one. A gateway that lists
|
|
52
|
+
* `eu.*` and `us.*` ids gets the prefix that comes first, and the ids of the
|
|
53
|
+
* other prefixes are dropped, so the picker offers only models the CLI can
|
|
54
|
+
* call under that prefix. Ids without a prefix (`anthropic.claude-…`) are
|
|
55
|
+
* dropped too once a prefix is picked; without any prefix every id is kept.
|
|
56
|
+
*/
|
|
57
|
+
export declare function selectBedrockRegion(modelIds: readonly string[]): {
|
|
58
|
+
regionPrefix?: string;
|
|
59
|
+
modelIds: string[];
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=gateway-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-models.d.ts","sourceRoot":"","sources":["../src/gateway-models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,cAAc,CAAC;AAW3D,KAAK,aAAa,GAAG;IAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAAE,CAAC;AAIxF;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,SAAyB;CACvC;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAkB/B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAa/B;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGvE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAUA"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model discovery for a gateway set via `providers/set`.
|
|
3
|
+
*
|
|
4
|
+
* An organization can restrict which models its gateway serves, and the
|
|
5
|
+
* gateway's listing returns only those: `GET /v1/models` for an `anthropic`
|
|
6
|
+
* gateway, `GET /foundation-models` (Bedrock `ListFoundationModels`) for a
|
|
7
|
+
* `bedrock` one. The adapter lists them once when the provider is set, and the
|
|
8
|
+
* model picker then offers only the SDK models the gateway listed (see
|
|
9
|
+
* `narrowToGatewayModels` in `session-model.ts`). A listing that fails fails
|
|
10
|
+
* `providers/set` with a {@link GatewayListingError}.
|
|
11
|
+
*/
|
|
12
|
+
const LISTING_TIMEOUT_MS = 10_000;
|
|
13
|
+
const ANTHROPIC_PAGE_LIMIT = "1000";
|
|
14
|
+
const MAX_LISTING_PAGES = 20;
|
|
15
|
+
const MAX_LOGGED_BODY_CHARS = 500;
|
|
16
|
+
const ANTHROPIC_VERSION = "2023-06-01";
|
|
17
|
+
/**
|
|
18
|
+
* The bearer token `createEnvForProvider` sets as `ANTHROPIC_AUTH_TOKEN` and
|
|
19
|
+
* `AWS_BEARER_TOKEN_BEDROCK`, so the CLI sends `Authorization: Bearer acp-proxy`
|
|
20
|
+
* unless the provider headers replace it. The listing sends the same, so the
|
|
21
|
+
* gateway sees the same auth as on chat requests.
|
|
22
|
+
*/
|
|
23
|
+
export const PROVIDER_AUTH_TOKEN_PLACEHOLDER = "acp-proxy";
|
|
24
|
+
/**
|
|
25
|
+
* The cross-region inference profile prefixes the CLI knows:
|
|
26
|
+
* `eu.anthropic.claude-sonnet-5`. `ANTHROPIC_BEDROCK_REGION_PREFIX` accepts all
|
|
27
|
+
* of them but `us-gov`, which the CLI takes only from a `us-gov-*` AWS region;
|
|
28
|
+
* a gateway listing only `us-gov.*` ids would then get an empty picker. That
|
|
29
|
+
* case is theoretical, so it is left as is.
|
|
30
|
+
*/
|
|
31
|
+
const BEDROCK_REGION_PREFIXES = ["us", "eu", "apac", "jp", "au", "us-gov", "global"];
|
|
32
|
+
/**
|
|
33
|
+
* A gateway listing that failed: a network error, a status other than 2xx or
|
|
34
|
+
* 4xx, a body that is not the expected listing, or the 10 s timeout. The
|
|
35
|
+
* message names the request path and the reason, never a header value.
|
|
36
|
+
*/
|
|
37
|
+
export class GatewayListingError extends Error {
|
|
38
|
+
name = "GatewayListingError";
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Lists the model ids an `anthropic` gateway at `baseUrl` serves, following
|
|
42
|
+
* `has_more` / `last_id` pagination. Returns `undefined` when the gateway
|
|
43
|
+
* answers 4xx: it has no listing, and nothing is narrowed. Throws a
|
|
44
|
+
* {@link GatewayListingError} when the listing fails. Header values are never
|
|
45
|
+
* logged.
|
|
46
|
+
*/
|
|
47
|
+
export async function listGatewayModels(baseUrl, providerHeaders, logger) {
|
|
48
|
+
return listPages(`${baseUrl.replace(/\/+$/, "")}/v1/models`, { limit: ANTHROPIC_PAGE_LIMIT }, listingHeaders(providerHeaders, { "anthropic-version": ANTHROPIC_VERSION }), logger, (body) => {
|
|
49
|
+
const page = body;
|
|
50
|
+
if (!Array.isArray(page.data))
|
|
51
|
+
return undefined;
|
|
52
|
+
return {
|
|
53
|
+
ids: stringField(page.data, "id"),
|
|
54
|
+
nextQuery: page.has_more === true && typeof page.last_id === "string"
|
|
55
|
+
? { limit: ANTHROPIC_PAGE_LIMIT, after_id: page.last_id }
|
|
56
|
+
: undefined,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Lists the Anthropic models a `bedrock` gateway at `baseUrl` serves
|
|
62
|
+
* (`GET /foundation-models`, Bedrock `ListFoundationModels`, one page), the
|
|
63
|
+
* listing AI Router answers on its Bedrock route. Returns the listed ids, such
|
|
64
|
+
* as `global.anthropic.claude-sonnet-5-5`; `undefined` and the errors are
|
|
65
|
+
* those of {@link listGatewayModels}.
|
|
66
|
+
*/
|
|
67
|
+
export async function listBedrockModels(baseUrl, providerHeaders, logger) {
|
|
68
|
+
const ids = await listPages(`${baseUrl.replace(/\/+$/, "")}/foundation-models`, {}, listingHeaders(providerHeaders, {}), logger, (body) => {
|
|
69
|
+
const page = body;
|
|
70
|
+
if (!Array.isArray(page.modelSummaries))
|
|
71
|
+
return undefined;
|
|
72
|
+
return { ids: stringField(page.modelSummaries, "modelId") };
|
|
73
|
+
});
|
|
74
|
+
return ids?.filter((id) => id.includes("anthropic."));
|
|
75
|
+
}
|
|
76
|
+
/** The cross-region prefix of a Bedrock model id or ARN, if it has one. */
|
|
77
|
+
export function bedrockRegionPrefix(modelId) {
|
|
78
|
+
const id = modelId.slice(modelId.lastIndexOf("/") + 1).toLowerCase();
|
|
79
|
+
return BEDROCK_REGION_PREFIXES.find((prefix) => id.startsWith(`${prefix}.anthropic.`));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Picks the region of the listed Bedrock models: `global` when the gateway
|
|
83
|
+
* lists it, else the prefix of the first id that has one. A gateway that lists
|
|
84
|
+
* `eu.*` and `us.*` ids gets the prefix that comes first, and the ids of the
|
|
85
|
+
* other prefixes are dropped, so the picker offers only models the CLI can
|
|
86
|
+
* call under that prefix. Ids without a prefix (`anthropic.claude-…`) are
|
|
87
|
+
* dropped too once a prefix is picked; without any prefix every id is kept.
|
|
88
|
+
*/
|
|
89
|
+
export function selectBedrockRegion(modelIds) {
|
|
90
|
+
const prefixes = modelIds.map(bedrockRegionPrefix);
|
|
91
|
+
const regionPrefix = prefixes.includes("global")
|
|
92
|
+
? "global"
|
|
93
|
+
: prefixes.find((prefix) => prefix !== undefined);
|
|
94
|
+
if (!regionPrefix)
|
|
95
|
+
return { modelIds: [...modelIds] };
|
|
96
|
+
return {
|
|
97
|
+
regionPrefix,
|
|
98
|
+
modelIds: modelIds.filter((id) => bedrockRegionPrefix(id) === regionPrefix),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Provider headers win over the defaults, matched case-insensitively, the way
|
|
102
|
+
// `ANTHROPIC_CUSTOM_HEADERS` overrides the CLI's own headers.
|
|
103
|
+
function listingHeaders(providerHeaders, protocolHeaders) {
|
|
104
|
+
const headers = new Headers({
|
|
105
|
+
authorization: `Bearer ${PROVIDER_AUTH_TOKEN_PLACEHOLDER}`,
|
|
106
|
+
accept: "application/json",
|
|
107
|
+
...protocolHeaders,
|
|
108
|
+
});
|
|
109
|
+
for (const [name, value] of Object.entries(providerHeaders)) {
|
|
110
|
+
// `Headers.set` puts an invalid value into its error message, so name only the header.
|
|
111
|
+
try {
|
|
112
|
+
headers.set(name, value);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
throw new GatewayListingError(`Model listing cannot send the invalid header "${name}"`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return headers;
|
|
119
|
+
}
|
|
120
|
+
function stringField(entries, field) {
|
|
121
|
+
return entries.flatMap((entry) => {
|
|
122
|
+
const value = entry?.[field];
|
|
123
|
+
return typeof value === "string" && value.trim() !== "" ? [value] : [];
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Reads `endpoint` page by page; `parse` returns `undefined` for a body it does
|
|
128
|
+
* not understand. A 4xx answer on any page means the gateway has no listing:
|
|
129
|
+
* the result is `undefined`, and nothing is narrowed.
|
|
130
|
+
*/
|
|
131
|
+
async function listPages(endpoint, firstQuery, headers, logger, parse) {
|
|
132
|
+
const { pathname: path, username, password } = new URL(endpoint);
|
|
133
|
+
const failure = (reason) => {
|
|
134
|
+
const error = new GatewayListingError(`Model listing GET ${path} ${reason}`);
|
|
135
|
+
logger.error(`[providers/set] ${error.message}`);
|
|
136
|
+
return error;
|
|
137
|
+
};
|
|
138
|
+
// fetch refuses such a URL and repeats it, credentials included, in its error.
|
|
139
|
+
if (username || password)
|
|
140
|
+
throw failure("cannot be sent: the base URL carries credentials");
|
|
141
|
+
const signal = AbortSignal.timeout(LISTING_TIMEOUT_MS);
|
|
142
|
+
const ids = [];
|
|
143
|
+
let query = firstQuery;
|
|
144
|
+
for (let page = 0; page < MAX_LISTING_PAGES && query; page++) {
|
|
145
|
+
const url = new URL(endpoint);
|
|
146
|
+
for (const [name, value] of Object.entries(query))
|
|
147
|
+
url.searchParams.set(name, value);
|
|
148
|
+
let response;
|
|
149
|
+
let body;
|
|
150
|
+
try {
|
|
151
|
+
response = await fetch(url, { headers, signal });
|
|
152
|
+
body = await response.text();
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
throw failure(`failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
156
|
+
}
|
|
157
|
+
if (response.status >= 400 && response.status < 500) {
|
|
158
|
+
logger.log(`[providers/set] Model listing GET ${path} returned ${response.status}: the gateway has no listing, models are not narrowed`);
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
if (!response.ok) {
|
|
162
|
+
throw failure(`returned ${response.status}: ${body.slice(0, MAX_LOGGED_BODY_CHARS)}`);
|
|
163
|
+
}
|
|
164
|
+
let parsed;
|
|
165
|
+
try {
|
|
166
|
+
parsed = parse(JSON.parse(body));
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
parsed = undefined;
|
|
170
|
+
}
|
|
171
|
+
if (!parsed)
|
|
172
|
+
throw failure("returned an unexpected body");
|
|
173
|
+
ids.push(...parsed.ids);
|
|
174
|
+
query = parsed.nextQuery;
|
|
175
|
+
}
|
|
176
|
+
if (query) {
|
|
177
|
+
logger.error(`[providers/set] Model listing GET ${path} still had more pages after ${MAX_LISTING_PAGES}; using what was read`);
|
|
178
|
+
}
|
|
179
|
+
return ids;
|
|
180
|
+
}
|
|
@@ -34,6 +34,9 @@ export type NativeSubagent = {
|
|
|
34
34
|
missingError?: boolean;
|
|
35
35
|
/** The RFD form: the open permission and question requests of the child. */
|
|
36
36
|
openRequests?: number;
|
|
37
|
+
/** The RFD form: how many times the client cancelled the child (see
|
|
38
|
+
* `NativeSubagentRuntime.cancelChild`). */
|
|
39
|
+
cancels?: number;
|
|
37
40
|
/** The RFD form: the ids of the prompt messages in the child's transcript. */
|
|
38
41
|
promptIds?: Set<string>;
|
|
39
42
|
/** The RFD form: the calls that delegated to the child, whose runs ended. */
|
|
@@ -185,19 +188,32 @@ export declare class NativeSubagentRuntime {
|
|
|
185
188
|
* the cancel, for {@link awaitingUser}.
|
|
186
189
|
*/
|
|
187
190
|
parentCancelled(deliver: Publish): Promise<void>;
|
|
191
|
+
/**
|
|
192
|
+
* The RFD form: the client sent `session/cancel` for the child session
|
|
193
|
+
* `sessionId`, which the child's `cancel` capability permits (see
|
|
194
|
+
* `announceNativeSubagent`). `stop` stops the child's task, as
|
|
195
|
+
* `Query.stopTask` does: Claude Code stops the child's current work and the
|
|
196
|
+
* foreground subagents that it waits on, and the parent's work goes on. The
|
|
197
|
+
* SDK's task events report each stopped child `idle` with `cancelled` (see
|
|
198
|
+
* {@link finishTask}). Accepting the stop is no evidence that the child
|
|
199
|
+
* stopped, so nothing is reported here, and a child whose work already ended
|
|
200
|
+
* keeps its outcome. Returns false when `sessionId` is not a child session
|
|
201
|
+
* of this runtime. AIR's draft grants no `cancel`.
|
|
202
|
+
*/
|
|
203
|
+
cancelChild(sessionId: string, stop: (taskId: string) => Promise<void>): Promise<boolean>;
|
|
188
204
|
/**
|
|
189
205
|
* Runs `request`, a permission or question request of the session
|
|
190
206
|
* `sessionId`. In the RFD form, a child waiting on it is `requires_action`
|
|
191
207
|
* until its last open request ends, and then `running` again.
|
|
192
208
|
*
|
|
193
209
|
* `signal` aborts when Claude Code withdraws the request, which is not an
|
|
194
|
-
* answer. If the
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* `running`, which would show a child
|
|
198
|
-
* Without a cancel, something else
|
|
199
|
-
*
|
|
200
|
-
* reports `running`.
|
|
210
|
+
* answer. If the root session, the child, or an ancestor of the child was
|
|
211
|
+
* cancelled while the request was open, Claude Code withdrew it as it
|
|
212
|
+
* stopped the child, and the SDK's events report the child `idle` next. The
|
|
213
|
+
* end of the request then reports no `running`, which would show a child
|
|
214
|
+
* that is being stopped as working. Without a cancel, something else
|
|
215
|
+
* answered the request in the user's place, such as a `PermissionRequest`
|
|
216
|
+
* hook, and the child runs on, so the end reports `running`.
|
|
201
217
|
*/
|
|
202
218
|
awaitingUser<T>(sessionId: string, request: () => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
203
219
|
discardPending(parentToolUseId: string): void;
|
|
@@ -269,6 +285,13 @@ export declare class NativeSubagentRuntime {
|
|
|
269
285
|
*/
|
|
270
286
|
private rememberSendMessage;
|
|
271
287
|
private rememberToolCallOwner;
|
|
288
|
+
/**
|
|
289
|
+
* The RFD form: how many cancels the client sent for `child`, its
|
|
290
|
+
* ancestors, and the root session. Each cancel stops the foreground work
|
|
291
|
+
* under it, and the counts only grow, so a changed sum shows that a cancel
|
|
292
|
+
* that reaches the child came.
|
|
293
|
+
*/
|
|
294
|
+
private cancelsAbove;
|
|
272
295
|
/** The child generation with the ACP session `sessionId`, if one exists. */
|
|
273
296
|
private childOfSession;
|
|
274
297
|
clear(): void;
|
|
@@ -299,8 +322,10 @@ export declare class NativeSubagentRuntime {
|
|
|
299
322
|
/**
|
|
300
323
|
* Announces the child on its parent, once, before any update of the child.
|
|
301
324
|
* The RFD form announces it as running and then sends the prompt as the
|
|
302
|
-
* first message of the child.
|
|
303
|
-
*
|
|
325
|
+
* first message of the child. It grants the child `cancel`: the client may
|
|
326
|
+
* stop the child's current work with `session/cancel` (see
|
|
327
|
+
* `NativeSubagentRuntime.cancelChild`), and nothing else. AIR's draft grants
|
|
328
|
+
* no capabilities.
|
|
304
329
|
*/
|
|
305
330
|
export declare function announceNativeSubagent(child: NativeSubagent, publish: Publish, form: SubagentForm): Promise<void>;
|
|
306
331
|
export declare function finishNativeSubagent(session: NativeSubagentSession, taskId: string, state: SubagentState, publish: Publish): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-subagents.d.ts","sourceRoot":"","sources":["../src/native-subagents.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"native-subagents.d.ts","sourceRoot":"","sources":["../src/native-subagents.ts"],"names":[],"mappings":"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"}
|
package/dist/native-subagents.js
CHANGED
|
@@ -372,25 +372,49 @@ export class NativeSubagentRuntime {
|
|
|
372
372
|
else
|
|
373
373
|
this.parentCancels++;
|
|
374
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* The RFD form: the client sent `session/cancel` for the child session
|
|
377
|
+
* `sessionId`, which the child's `cancel` capability permits (see
|
|
378
|
+
* `announceNativeSubagent`). `stop` stops the child's task, as
|
|
379
|
+
* `Query.stopTask` does: Claude Code stops the child's current work and the
|
|
380
|
+
* foreground subagents that it waits on, and the parent's work goes on. The
|
|
381
|
+
* SDK's task events report each stopped child `idle` with `cancelled` (see
|
|
382
|
+
* {@link finishTask}). Accepting the stop is no evidence that the child
|
|
383
|
+
* stopped, so nothing is reported here, and a child whose work already ended
|
|
384
|
+
* keeps its outcome. Returns false when `sessionId` is not a child session
|
|
385
|
+
* of this runtime. AIR's draft grants no `cancel`.
|
|
386
|
+
*/
|
|
387
|
+
async cancelChild(sessionId, stop) {
|
|
388
|
+
if (this.form !== "rfd")
|
|
389
|
+
return false;
|
|
390
|
+
for (const [taskId, child] of this.children) {
|
|
391
|
+
if (child.sessionId !== sessionId || !child.announced)
|
|
392
|
+
continue;
|
|
393
|
+
child.cancels = (child.cancels ?? 0) + 1;
|
|
394
|
+
await stop(taskId);
|
|
395
|
+
return true;
|
|
396
|
+
}
|
|
397
|
+
return false;
|
|
398
|
+
}
|
|
375
399
|
/**
|
|
376
400
|
* Runs `request`, a permission or question request of the session
|
|
377
401
|
* `sessionId`. In the RFD form, a child waiting on it is `requires_action`
|
|
378
402
|
* until its last open request ends, and then `running` again.
|
|
379
403
|
*
|
|
380
404
|
* `signal` aborts when Claude Code withdraws the request, which is not an
|
|
381
|
-
* answer. If the
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
* `running`, which would show a child
|
|
385
|
-
* Without a cancel, something else
|
|
386
|
-
*
|
|
387
|
-
* reports `running`.
|
|
405
|
+
* answer. If the root session, the child, or an ancestor of the child was
|
|
406
|
+
* cancelled while the request was open, Claude Code withdrew it as it
|
|
407
|
+
* stopped the child, and the SDK's events report the child `idle` next. The
|
|
408
|
+
* end of the request then reports no `running`, which would show a child
|
|
409
|
+
* that is being stopped as working. Without a cancel, something else
|
|
410
|
+
* answered the request in the user's place, such as a `PermissionRequest`
|
|
411
|
+
* hook, and the child runs on, so the end reports `running`.
|
|
388
412
|
*/
|
|
389
413
|
async awaitingUser(sessionId, request, signal) {
|
|
390
414
|
const child = this.form === "rfd" ? this.childOfSession(sessionId) : undefined;
|
|
391
415
|
if (!child?.announced)
|
|
392
416
|
return request();
|
|
393
|
-
const cancelsAtOpen = this.
|
|
417
|
+
const cancelsAtOpen = this.cancelsAbove(child);
|
|
394
418
|
child.openRequests = (child.openRequests ?? 0) + 1;
|
|
395
419
|
if (child.openRequests === 1 && child.workState === "running") {
|
|
396
420
|
await this.reportState(child, { state: "requires_action" }).catch((error) => this.logger.log(`Failed to report that subagent ${child.sessionId} waits: ${error}`));
|
|
@@ -401,7 +425,7 @@ export class NativeSubagentRuntime {
|
|
|
401
425
|
finally {
|
|
402
426
|
child.openRequests = (child.openRequests ?? 1) - 1;
|
|
403
427
|
// Withdrawn after a cancel that came while the request was open.
|
|
404
|
-
const stopped = signal?.aborted === true && this.
|
|
428
|
+
const stopped = signal?.aborted === true && this.cancelsAbove(child) !== cancelsAtOpen;
|
|
405
429
|
if (child.openRequests === 0 && child.workState === "requires_action" && !stopped) {
|
|
406
430
|
await this.reportState(child, { state: "running" }).catch((error) => this.logger.log(`Failed to report that subagent ${child.sessionId} runs: ${error}`));
|
|
407
431
|
}
|
|
@@ -604,6 +628,23 @@ export class NativeSubagentRuntime {
|
|
|
604
628
|
this.childByToolCall.delete(oldest);
|
|
605
629
|
}
|
|
606
630
|
}
|
|
631
|
+
/**
|
|
632
|
+
* The RFD form: how many cancels the client sent for `child`, its
|
|
633
|
+
* ancestors, and the root session. Each cancel stops the foreground work
|
|
634
|
+
* under it, and the counts only grow, so a changed sum shows that a cancel
|
|
635
|
+
* that reaches the child came.
|
|
636
|
+
*/
|
|
637
|
+
cancelsAbove(child) {
|
|
638
|
+
let cancels = this.parentCancels;
|
|
639
|
+
const seen = new Set();
|
|
640
|
+
let next = child;
|
|
641
|
+
while (next && !seen.has(next)) {
|
|
642
|
+
seen.add(next);
|
|
643
|
+
cancels += next.cancels ?? 0;
|
|
644
|
+
next = this.childOfSession(next.parentSessionId);
|
|
645
|
+
}
|
|
646
|
+
return cancels;
|
|
647
|
+
}
|
|
607
648
|
/** The child generation with the ACP session `sessionId`, if one exists. */
|
|
608
649
|
childOfSession(sessionId) {
|
|
609
650
|
if (sessionId === this.rootSessionId)
|
|
@@ -716,8 +757,10 @@ export class NativeSubagentRuntime {
|
|
|
716
757
|
/**
|
|
717
758
|
* Announces the child on its parent, once, before any update of the child.
|
|
718
759
|
* The RFD form announces it as running and then sends the prompt as the
|
|
719
|
-
* first message of the child.
|
|
720
|
-
*
|
|
760
|
+
* first message of the child. It grants the child `cancel`: the client may
|
|
761
|
+
* stop the child's current work with `session/cancel` (see
|
|
762
|
+
* `NativeSubagentRuntime.cancelChild`), and nothing else. AIR's draft grants
|
|
763
|
+
* no capabilities.
|
|
721
764
|
*/
|
|
722
765
|
export async function announceNativeSubagent(child, publish, form) {
|
|
723
766
|
if (child.announced)
|
|
@@ -734,6 +777,7 @@ export async function announceNativeSubagent(child, publish, form) {
|
|
|
734
777
|
sessionId: child.sessionId,
|
|
735
778
|
...(child.title ? { title: child.title } : {}),
|
|
736
779
|
...(child.description ? { description: child.description } : {}),
|
|
780
|
+
capabilities: { cancel: {} },
|
|
737
781
|
state: { state: "running" },
|
|
738
782
|
},
|
|
739
783
|
});
|
package/dist/session-model.d.ts
CHANGED
|
@@ -46,6 +46,26 @@ export declare function isDeniedModel(modelId: string, deniedModels: readonly st
|
|
|
46
46
|
* dropped even though the CLI would otherwise leave it unmatched.
|
|
47
47
|
*/
|
|
48
48
|
export declare function applyAvailableModelsAllowlist(sdkModels: ModelInfo[], allowlist: string[], settingsModelOverrides?: Record<string, string>, deniedModels?: readonly string[]): ModelInfo[];
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Keep the SDK models the `providers/set` gateway listed (`listGatewayModels`,
|
|
51
|
+
* `listBedrockModels`). A row matches when its `resolvedModel` (or
|
|
52
|
+
* its `value` when the SDK gives none) names a listed model in any spelling:
|
|
53
|
+
* `claude-sonnet-5[1m]` matches a listed `claude-sonnet-5-20260101`, and
|
|
54
|
+
* `eu.anthropic.claude-sonnet-5` matches a listed `eu.anthropic.claude-sonnet-5-v1:0`.
|
|
55
|
+
*
|
|
56
|
+
* With a Bedrock `regionPrefix`, a row resolved to another cross-region prefix
|
|
57
|
+
* (`us.anthropic.claude-sonnet-5` under `eu`) is dropped even when the same
|
|
58
|
+
* model is listed under `eu`: the CLI would call it in the other region.
|
|
59
|
+
*
|
|
60
|
+
* A row the SDK gives no `resolvedModel` names its model only by an alias, so
|
|
61
|
+
* it is checked as far as the alias allows: `default` is kept, and a family
|
|
62
|
+
* alias such as `opus` is kept when the gateway lists a model of that family.
|
|
63
|
+
*
|
|
64
|
+
* When no row matches by its model (a `default` row kept only for lacking a
|
|
65
|
+
* `resolvedModel` does not count), the gateway serves none of the SDK's
|
|
66
|
+
* models, and nothing is left: the session offers no model.
|
|
67
|
+
*/
|
|
68
|
+
export declare function narrowToGatewayModels(models: ModelInfo[], listedModelIds: readonly string[], regionPrefix?: string): ModelInfo[];
|
|
69
|
+
export declare function getAvailableModels(query: Query, models: ModelInfo[], sdkModels: ModelInfo[], settingsManager: ModelSettingsSource, logger: ModelLogger, isResumedSession: boolean, sessionId: string, resumedModelHint?: string, narrowedByGateway?: boolean): Promise<SessionModelState>;
|
|
50
70
|
export {};
|
|
51
71
|
//# sourceMappingURL=session-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-model.d.ts","sourceRoot":"","sources":["../src/session-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-model.d.ts","sourceRoot":"","sources":["../src/session-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIjF,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChF,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC,CAAC;AACF,KAAK,mBAAmB,GAAG;IAAE,WAAW,IAAI,QAAQ,CAAA;CAAE,CAAC;AAmGvD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CA2ChG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAyBnF;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,mBAAmB,EAAE,OAAO,GAC3B,mBAAmB,CAsDrB;AAkCD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CASvF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,EACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/C,YAAY,GAAE,SAAS,MAAM,EAAO,GACnC,SAAS,EAAE,CA6Db;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EAAE,EACnB,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,YAAY,CAAC,EAAE,MAAM,GACpB,SAAS,EAAE,CAiBb;AAWD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,SAAS,EAAE,EACnB,SAAS,EAAE,SAAS,EAAE,EACtB,eAAe,EAAE,mBAAmB,EACpC,MAAM,EAAE,WAAW,EACnB,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,EACzB,iBAAiB,UAAQ,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAoJ5B"}
|
package/dist/session-model.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AIR_RECOMMENDED_CONFIG_VALUE_CAPABILITY, withAirMeta } from "./air-extension.js";
|
|
2
|
+
import { bedrockRegionPrefix } from "./gateway-models.js";
|
|
2
3
|
export const MODEL_CONFIG_ID = "model";
|
|
3
4
|
const MODEL_CONTEXT_HINT_PATTERN = /\[(\d+m)\]$/i;
|
|
4
5
|
const CONTEXT_HINT_SUFFIX_PATTERN = /-(\d+m)$/i;
|
|
@@ -218,9 +219,10 @@ function resolveSettingsModel(models, settingsModel, logger) {
|
|
|
218
219
|
return resolveModelPreference(models, settingsModel);
|
|
219
220
|
}
|
|
220
221
|
const MODEL_FAMILY_ALIASES = new Set(["opus", "sonnet", "haiku", "fable"]);
|
|
221
|
-
/** A model id without the spellings
|
|
222
|
-
* prefixes, dates, version suffixes, `-fast` and context hints.
|
|
223
|
-
|
|
222
|
+
/** A model id without the spellings that name the same model: provider
|
|
223
|
+
* prefixes, dates, version suffixes, `-fast` and context hints. `deniedModels`
|
|
224
|
+
* and gateway listings both match on it. */
|
|
225
|
+
function normalizeModelId(value) {
|
|
224
226
|
let id = stripContextHints(value.trim().toLowerCase());
|
|
225
227
|
const providerPrefix = id.lastIndexOf("anthropic.");
|
|
226
228
|
if (providerPrefix !== -1)
|
|
@@ -239,11 +241,11 @@ function normalizeDeniedModelId(value) {
|
|
|
239
241
|
* the enforcer; this only keeps the picker from offering a refused row.
|
|
240
242
|
*/
|
|
241
243
|
export function isDeniedModel(modelId, deniedModels) {
|
|
242
|
-
const id =
|
|
244
|
+
const id = normalizeModelId(modelId);
|
|
243
245
|
if (!id)
|
|
244
246
|
return false;
|
|
245
247
|
return deniedModels.some((entry) => {
|
|
246
|
-
const denied =
|
|
248
|
+
const denied = normalizeModelId(entry);
|
|
247
249
|
if (!denied)
|
|
248
250
|
return false;
|
|
249
251
|
if (MODEL_FAMILY_ALIASES.has(denied))
|
|
@@ -324,6 +326,46 @@ export function applyAvailableModelsAllowlist(sdkModels, allowlist, settingsMode
|
|
|
324
326
|
}
|
|
325
327
|
return result;
|
|
326
328
|
}
|
|
329
|
+
/**
|
|
330
|
+
* Keep the SDK models the `providers/set` gateway listed (`listGatewayModels`,
|
|
331
|
+
* `listBedrockModels`). A row matches when its `resolvedModel` (or
|
|
332
|
+
* its `value` when the SDK gives none) names a listed model in any spelling:
|
|
333
|
+
* `claude-sonnet-5[1m]` matches a listed `claude-sonnet-5-20260101`, and
|
|
334
|
+
* `eu.anthropic.claude-sonnet-5` matches a listed `eu.anthropic.claude-sonnet-5-v1:0`.
|
|
335
|
+
*
|
|
336
|
+
* With a Bedrock `regionPrefix`, a row resolved to another cross-region prefix
|
|
337
|
+
* (`us.anthropic.claude-sonnet-5` under `eu`) is dropped even when the same
|
|
338
|
+
* model is listed under `eu`: the CLI would call it in the other region.
|
|
339
|
+
*
|
|
340
|
+
* A row the SDK gives no `resolvedModel` names its model only by an alias, so
|
|
341
|
+
* it is checked as far as the alias allows: `default` is kept, and a family
|
|
342
|
+
* alias such as `opus` is kept when the gateway lists a model of that family.
|
|
343
|
+
*
|
|
344
|
+
* When no row matches by its model (a `default` row kept only for lacking a
|
|
345
|
+
* `resolvedModel` does not count), the gateway serves none of the SDK's
|
|
346
|
+
* models, and nothing is left: the session offers no model.
|
|
347
|
+
*/
|
|
348
|
+
export function narrowToGatewayModels(models, listedModelIds, regionPrefix) {
|
|
349
|
+
const listed = new Set(listedModelIds.map(normalizeModelId).filter(Boolean));
|
|
350
|
+
const narrowed = models.filter((model) => {
|
|
351
|
+
const modelId = model.resolvedModel ?? model.value;
|
|
352
|
+
const prefix = bedrockRegionPrefix(modelId);
|
|
353
|
+
if (regionPrefix !== undefined && prefix !== undefined && prefix !== regionPrefix) {
|
|
354
|
+
return false;
|
|
355
|
+
}
|
|
356
|
+
const id = normalizeModelId(modelId);
|
|
357
|
+
if (listed.has(id))
|
|
358
|
+
return true;
|
|
359
|
+
if (model.resolvedModel !== undefined)
|
|
360
|
+
return false;
|
|
361
|
+
if (model.value === "default")
|
|
362
|
+
return true;
|
|
363
|
+
return MODEL_FAMILY_ALIASES.has(id) && [...listed].some((entry) => entry.includes(`-${id}`));
|
|
364
|
+
});
|
|
365
|
+
return narrowed.some((model) => listed.has(normalizeModelId(model.resolvedModel ?? model.value)))
|
|
366
|
+
? narrowed
|
|
367
|
+
: [];
|
|
368
|
+
}
|
|
327
369
|
/** Whether a rejected `setModel` was vetoed by a user-configured
|
|
328
370
|
* PreModelSwitch hook. The CLI's rejection message is the stable,
|
|
329
371
|
* distinguishable marker ("Model switch blocked by a PreModelSwitch hook:
|
|
@@ -332,7 +374,16 @@ export function applyAvailableModelsAllowlist(sdkModels, allowlist, settingsMode
|
|
|
332
374
|
function isPreModelSwitchHookBlock(error) {
|
|
333
375
|
return error instanceof Error && error.message.includes("blocked by a PreModelSwitch hook");
|
|
334
376
|
}
|
|
335
|
-
export async function getAvailableModels(query, models, sdkModels, settingsManager, logger, isResumedSession, sessionId, resumedModelHint) {
|
|
377
|
+
export async function getAvailableModels(query, models, sdkModels, settingsManager, logger, isResumedSession, sessionId, resumedModelHint, narrowedByGateway = false) {
|
|
378
|
+
// A gateway that lists none of the SDK's models leaves none to offer
|
|
379
|
+
// (`narrowToGatewayModels`). The session stays on the model the SDK runs,
|
|
380
|
+
// and the gateway refuses its requests.
|
|
381
|
+
if (models.length === 0) {
|
|
382
|
+
return {
|
|
383
|
+
availableModels: [],
|
|
384
|
+
currentModelId: (isResumedSession && resumedModelHint) || sdkModels[0]?.value || "default",
|
|
385
|
+
};
|
|
386
|
+
}
|
|
336
387
|
const settings = settingsManager.getSettings();
|
|
337
388
|
let currentModel = models[0];
|
|
338
389
|
let resolvedFromInput;
|
|
@@ -377,8 +428,31 @@ export async function getAvailableModels(query, models, sdkModels, settingsManag
|
|
|
377
428
|
// be re-asserted to keep the reported model truthful.
|
|
378
429
|
// Anything else (fuzzy match, allowlist-synthesized value, alias) gets a
|
|
379
430
|
// setModel call so we don't drift from the user's intended pin.
|
|
431
|
+
// Case (a) does not hold when `narrowToGatewayModels` left the SDK on a
|
|
432
|
+
// model the gateway does not list: the dropped `default` row of a fresh or
|
|
433
|
+
// transcript-less session, or a resumed transcript model outside the list.
|
|
434
|
+
// Such a session switches to models[0].
|
|
380
435
|
const sdkSawSameValue = sdkModels.some((m) => m.value === currentModel.value);
|
|
381
|
-
const
|
|
436
|
+
const sdkDefault = sdkModels.find((m) => m.value === "default");
|
|
437
|
+
const sdkDefaultDropped = sdkDefault !== undefined && !models.some((m) => m.value === "default");
|
|
438
|
+
let switchToListed = false;
|
|
439
|
+
if (resolvedFromInput === undefined) {
|
|
440
|
+
if (!isResumedSession || !resumedModelHint) {
|
|
441
|
+
switchToListed = sdkDefaultDropped;
|
|
442
|
+
}
|
|
443
|
+
else if (narrowedByGateway &&
|
|
444
|
+
(!models.some((m) => m.value === currentModel.value) ||
|
|
445
|
+
// A loose match can map the transcript's model onto a listed row of
|
|
446
|
+
// another version, which the CLI does not resume on.
|
|
447
|
+
(currentModel.resolvedModel !== undefined &&
|
|
448
|
+
normalizeModelId(currentModel.resolvedModel) !== normalizeModelId(resumedModelHint)))) {
|
|
449
|
+
currentModel = models[0];
|
|
450
|
+
switchToListed = true;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
// When the switch fails, the SDK stays on the model it ran before it.
|
|
454
|
+
const modelBeforeSwitch = () => switchToListed && sdkDefault !== undefined ? sdkDefault : models[0];
|
|
455
|
+
const skipSetModel = (resolvedFromInput === undefined && !switchToListed) ||
|
|
382
456
|
(!isResumedSession && currentModel.value === resolvedFromInput && sdkSawSameValue);
|
|
383
457
|
if (!skipSetModel) {
|
|
384
458
|
const setModelStartedAt = performance.now();
|
|
@@ -407,14 +481,18 @@ export async function getAvailableModels(query, models, sdkModels, settingsManag
|
|
|
407
481
|
// live model back on this path: getContextUsage isn't serviced on a
|
|
408
482
|
// fresh session until the first prompt turn (issues #886/#880).
|
|
409
483
|
if (!isResumedSession) {
|
|
410
|
-
|
|
484
|
+
// A switch onto a listed model is advisory too: the session stays on
|
|
485
|
+
// the model the SDK runs and reports it.
|
|
486
|
+
if (!switchToListed && !isPreModelSwitchHookBlock(error))
|
|
411
487
|
throw error;
|
|
412
|
-
logger.error(`Model
|
|
413
|
-
currentModel =
|
|
488
|
+
logger.error(`Model switch to "${currentModel.value}" failed or was vetoed by a PreModelSwitch hook; staying on the default model:`, error);
|
|
489
|
+
currentModel = modelBeforeSwitch();
|
|
414
490
|
}
|
|
415
491
|
else {
|
|
416
492
|
logger.error(`Failed to re-assert model "${currentModel.value}" on resume:`, error);
|
|
417
|
-
currentModel = resumedModelHint
|
|
493
|
+
currentModel = resumedModelHint
|
|
494
|
+
? matchResumedModel(models, resumedModelHint)
|
|
495
|
+
: modelBeforeSwitch();
|
|
418
496
|
}
|
|
419
497
|
}
|
|
420
498
|
}
|
package/package.json
CHANGED