@agentknight/sdk 0.9.35 → 0.9.36
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/dist/chunks/{acp-adapter-4N2QCTAL.js → acp-adapter-QK4MVTNN.js} +3 -3
- package/dist/chunks/{chunk-JFHUAIRY.js → chunk-7JRY2FRZ.js} +11 -3
- package/dist/chunks/{chunk-AHJSR7OY.js → chunk-DSHLLGE2.js} +1 -1
- package/dist/chunks/{chunk-W3PG2W3C.js → chunk-IXV2BIUR.js} +1 -1
- package/dist/chunks/{chunk-ZKAN2FO7.js → chunk-N2LIXMIM.js} +13 -1
- package/dist/chunks/{chunk-MVUOCZFL.js → chunk-QLGX7333.js} +1 -1
- package/dist/chunks/{chunk-C7XDS2KG.js → chunk-U2HBI4SH.js} +1 -1
- package/dist/chunks/{chunk-SJHJER3B.js → chunk-UJZPAP64.js} +1 -1
- package/dist/chunks/{chunk-ATMWDEPF.js → chunk-VXZ25DKC.js} +2 -2
- package/dist/chunks/{copilot-adapter-CLIDIK2S.js → copilot-adapter-ULOIFWJ3.js} +13 -9
- package/dist/chunks/{managed-agent-adapter-HP5VE3AH.js → managed-agent-adapter-4W4HC67T.js} +5 -5
- package/dist/chunks/{pi-adapter-GSDVA7EG.js → pi-adapter-IFNN3F4N.js} +3 -3
- package/dist/index.js +81 -19
- package/dist/runtime.js +2 -2
- package/package.json +1 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
latestPreviewItems
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QLGX7333.js";
|
|
4
4
|
import {
|
|
5
5
|
UnsupportedAgentOperationError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UJZPAP64.js";
|
|
7
7
|
import {
|
|
8
8
|
ConversationItemSchema,
|
|
9
9
|
PromptImageAttachmentSchema,
|
|
10
10
|
SESSION_TIMELINE_PAGE_SIZE,
|
|
11
11
|
SessionSummarySchema
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-N2LIXMIM.js";
|
|
13
13
|
|
|
14
14
|
// src/acp-adapter.ts
|
|
15
15
|
import { spawn } from "node:child_process";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isContentfulAssistant
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QLGX7333.js";
|
|
4
4
|
import {
|
|
5
5
|
SessionOperationError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UJZPAP64.js";
|
|
7
7
|
import {
|
|
8
8
|
CONVERSATION_SOURCE_ID_LIMIT,
|
|
9
9
|
SESSION_DIRECTORY_LIST_OPERATION,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
WorkbenchInsightsSchema,
|
|
22
22
|
WorkbenchQueueMutationResultSchema,
|
|
23
23
|
WorkbenchQueueSnapshotSchema
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-N2LIXMIM.js";
|
|
25
25
|
|
|
26
26
|
// src/operation-diagnostics.ts
|
|
27
27
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -831,6 +831,7 @@ var ConversationNormalizer = class {
|
|
|
831
831
|
sourceMessageIds: [event.id]
|
|
832
832
|
} : { kind: "human-message", actor: "human" },
|
|
833
833
|
sourceEventIds: [event.id],
|
|
834
|
+
...event.data.messageId === void 0 ? {} : { sourceMessageIds: [protocolId(event.data.messageId)] },
|
|
834
835
|
...event.data.interactionId === void 0 ? {} : { sourceInteractionIds: [protocolId(event.data.interactionId)] },
|
|
835
836
|
content: limitSummary(event.data.content, 1e5),
|
|
836
837
|
attachments: event.data.attachments?.slice(0, 100).map(projectAttachment).map(boundAttachment) ?? []
|
|
@@ -1594,6 +1595,7 @@ var SessionRuntime = class {
|
|
|
1594
1595
|
initializingEvents: void 0
|
|
1595
1596
|
};
|
|
1596
1597
|
activity = {
|
|
1598
|
+
revision: 0,
|
|
1597
1599
|
activeRootTurn: false,
|
|
1598
1600
|
busy: false,
|
|
1599
1601
|
turnEndIdleTimer: void 0
|
|
@@ -1646,6 +1648,7 @@ var SessionRuntime = class {
|
|
|
1646
1648
|
this.live.initializingEvents = void 0;
|
|
1647
1649
|
}
|
|
1648
1650
|
prepareReload(preserveTimelineState) {
|
|
1651
|
+
this.activity.revision += 1;
|
|
1649
1652
|
this.timelineReads.invalidate();
|
|
1650
1653
|
this.connection.sendReady = false;
|
|
1651
1654
|
this.stopFollower();
|
|
@@ -1658,6 +1661,7 @@ var SessionRuntime = class {
|
|
|
1658
1661
|
this.live.initializingEvents = this.watched ? [] : void 0;
|
|
1659
1662
|
}
|
|
1660
1663
|
stopResources() {
|
|
1664
|
+
this.activity.revision += 1;
|
|
1661
1665
|
this.timelineReads.invalidate();
|
|
1662
1666
|
this.stopFollower();
|
|
1663
1667
|
this.clearFollowerRecovery();
|
|
@@ -1908,6 +1912,7 @@ ${state.deltaContent}`).slice(0, 4096),
|
|
|
1908
1912
|
}
|
|
1909
1913
|
const runtime = this.ports.state(sessionId);
|
|
1910
1914
|
if (event.type === "session.resume" && event.data.sessionWasActive === true) {
|
|
1915
|
+
runtime.activity.revision += 1;
|
|
1911
1916
|
this.#clearTurnEndIdleTimer(sessionId);
|
|
1912
1917
|
if (!runtime.activity.busy) {
|
|
1913
1918
|
runtime.activity.busy = true;
|
|
@@ -1920,6 +1925,7 @@ ${state.deltaContent}`).slice(0, 4096),
|
|
|
1920
1925
|
return;
|
|
1921
1926
|
}
|
|
1922
1927
|
if (event.type === "assistant.turn_start") {
|
|
1928
|
+
runtime.activity.revision += 1;
|
|
1923
1929
|
this.#clearTurnEndIdleTimer(sessionId);
|
|
1924
1930
|
runtime.activity.activeRootTurn = true;
|
|
1925
1931
|
if (!runtime.activity.busy) {
|
|
@@ -1933,6 +1939,7 @@ ${state.deltaContent}`).slice(0, 4096),
|
|
|
1933
1939
|
return;
|
|
1934
1940
|
}
|
|
1935
1941
|
if (event.type === "assistant.turn_end") {
|
|
1942
|
+
runtime.activity.revision += 1;
|
|
1936
1943
|
runtime.activity.activeRootTurn = false;
|
|
1937
1944
|
this.#scheduleTurnEndIdleFallback(sessionId, event.timestamp);
|
|
1938
1945
|
return;
|
|
@@ -1959,6 +1966,7 @@ ${state.deltaContent}`).slice(0, 4096),
|
|
|
1959
1966
|
markSessionIdle(sessionId, occurredAt) {
|
|
1960
1967
|
this.#clearTurnEndIdleTimer(sessionId);
|
|
1961
1968
|
const runtime = this.ports.state(sessionId);
|
|
1969
|
+
runtime.activity.revision += 1;
|
|
1962
1970
|
if (runtime.activity.busy) {
|
|
1963
1971
|
runtime.activity.busy = false;
|
|
1964
1972
|
this.ports.callbacks()?.onSessionActivity?.(sessionId, "idle", occurredAt);
|
|
@@ -34,6 +34,7 @@ var SESSION_LIST_UPDATES_CAPABILITY = "session-list-updates";
|
|
|
34
34
|
var SESSION_WORKTREE_CREATION_CAPABILITY = "session-worktree-creation";
|
|
35
35
|
var MANAGED_SESSION_SELECTION_CAPABILITY = "coding-agent:managed";
|
|
36
36
|
var AGENT_CONTROLS_CAPABILITY = "coding-agent-controls-v1";
|
|
37
|
+
var SESSION_OPTIONS_PARTIAL_CAPABILITY = "session-options-partial-v1";
|
|
37
38
|
var GroupChatParticipantSchema = z3.object({
|
|
38
39
|
sessionId: IdSchema,
|
|
39
40
|
title: z3.string().trim().min(1).max(260)
|
|
@@ -238,7 +239,17 @@ var SessionOptionsResultSchema = z3.discriminatedUnion("ok", [
|
|
|
238
239
|
requestId: IdSchema,
|
|
239
240
|
machineId: IdSchema,
|
|
240
241
|
sessionId: IdSchema.optional(),
|
|
241
|
-
error: ProtocolFailureSchema
|
|
242
|
+
error: ProtocolFailureSchema,
|
|
243
|
+
failureStage: z3.enum(["models", "configuration", "workspaces"]).optional(),
|
|
244
|
+
models: z3.array(CopilotModelOptionSchema).min(1).optional(),
|
|
245
|
+
agentModes: z3.array(SessionAgentModeSchema).min(1).optional(),
|
|
246
|
+
reasoningEffortConfigurationSupported: z3.literal(true).optional(),
|
|
247
|
+
fileAttachmentsSupported: z3.boolean().optional(),
|
|
248
|
+
currentModelId: IdSchema.optional(),
|
|
249
|
+
currentAgentMode: SessionAgentModeSchema.optional(),
|
|
250
|
+
currentReasoningEffort: CurrentReasoningEffortSchema.optional(),
|
|
251
|
+
agentName: z3.string().trim().min(1).max(260).optional(),
|
|
252
|
+
configOptions: z3.array(AgentConfigurationOptionSchema).max(32).optional()
|
|
242
253
|
})
|
|
243
254
|
]);
|
|
244
255
|
var SessionCreateRequestSchema = z3.object({
|
|
@@ -2545,6 +2556,7 @@ export {
|
|
|
2545
2556
|
SESSION_WORKTREE_CREATION_CAPABILITY,
|
|
2546
2557
|
MANAGED_SESSION_SELECTION_CAPABILITY,
|
|
2547
2558
|
AGENT_CONTROLS_CAPABILITY,
|
|
2559
|
+
SESSION_OPTIONS_PARTIAL_CAPABILITY,
|
|
2548
2560
|
GroupChatParticipantSchema,
|
|
2549
2561
|
GroupChatInfoSchema,
|
|
2550
2562
|
SessionSummarySchema,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentSessionRenameError,
|
|
3
3
|
validateSessionName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-UJZPAP64.js";
|
|
5
5
|
import {
|
|
6
6
|
ConversationItemSchema,
|
|
7
7
|
GroupChatInfoSchema,
|
|
8
8
|
GroupChatParticipantSchema,
|
|
9
9
|
SESSION_TIMELINE_PAGE_SIZE,
|
|
10
10
|
SessionSummarySchema
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-N2LIXMIM.js";
|
|
12
12
|
|
|
13
13
|
// src/group-chat.ts
|
|
14
14
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -17,24 +17,24 @@ import {
|
|
|
17
17
|
recordOperationTimelineRead,
|
|
18
18
|
resolveGitProjectIdentity,
|
|
19
19
|
sanitizeGitRemoteUrl
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-7JRY2FRZ.js";
|
|
21
21
|
import {
|
|
22
22
|
assertMainSessionId,
|
|
23
23
|
isResearchSessionId
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-DSHLLGE2.js";
|
|
25
25
|
import {
|
|
26
26
|
GroupChatError,
|
|
27
27
|
GroupChatMessageSchema,
|
|
28
28
|
GroupChatRuntime
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-VXZ25DKC.js";
|
|
30
30
|
import {
|
|
31
31
|
isContentfulAssistant
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-QLGX7333.js";
|
|
33
33
|
import {
|
|
34
34
|
AgentSessionRenameError,
|
|
35
35
|
SessionOperationError,
|
|
36
36
|
validateSessionName
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-UJZPAP64.js";
|
|
38
38
|
import {
|
|
39
39
|
ConversationItemSchema,
|
|
40
40
|
CopilotModelOptionSchema,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
WorkbenchScheduleEntrySchema,
|
|
55
55
|
WorkbenchScheduleProposalSchema,
|
|
56
56
|
WorkbenchScheduleSnapshotSchema
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-N2LIXMIM.js";
|
|
58
58
|
|
|
59
59
|
// src/copilot-adapter.ts
|
|
60
60
|
import { createHash as createHash4, randomUUID as randomUUID6 } from "node:crypto";
|
|
@@ -1061,6 +1061,7 @@ var SessionConnections = class {
|
|
|
1061
1061
|
throw new Error("Prompt or attachment is required");
|
|
1062
1062
|
}
|
|
1063
1063
|
const runtime = this.#sessionRuntimes.getOrCreate(sessionId);
|
|
1064
|
+
const generation = runtime.connection.generation;
|
|
1064
1065
|
runtime.timelineReads.invalidate();
|
|
1065
1066
|
runtime.connection.sendInProgressCount += 1;
|
|
1066
1067
|
try {
|
|
@@ -1075,6 +1076,7 @@ var SessionConnections = class {
|
|
|
1075
1076
|
const wasBusy = runtime.activity.busy;
|
|
1076
1077
|
const sdkMode = mode === "immediate" && !wasBusy ? "enqueue" : mode;
|
|
1077
1078
|
const submittedAt = this.ports.runtime().client.supportsLocalSubmissionTime === true ? (/* @__PURE__ */ new Date()).toISOString() : void 0;
|
|
1079
|
+
const activityRevision = runtime.activity.revision;
|
|
1078
1080
|
onDispatch?.();
|
|
1079
1081
|
const messageId = await measureOperationStage("session-send", () => session.send({
|
|
1080
1082
|
prompt,
|
|
@@ -1082,7 +1084,7 @@ var SessionConnections = class {
|
|
|
1082
1084
|
...displayPrompt === void 0 ? {} : { displayPrompt },
|
|
1083
1085
|
...sdkAttachments.length === 0 ? {} : { attachments: sdkAttachments }
|
|
1084
1086
|
}));
|
|
1085
|
-
if (!wasBusy) {
|
|
1087
|
+
if (!wasBusy && !runtime.activity.busy && runtime.activity.revision === activityRevision && runtime.connection.generation === generation) {
|
|
1086
1088
|
runtime.activity.busy = true;
|
|
1087
1089
|
this.ports.activity?.(
|
|
1088
1090
|
sessionId,
|
|
@@ -1537,7 +1539,7 @@ var PlanSnapshots = class {
|
|
|
1537
1539
|
return [{
|
|
1538
1540
|
id,
|
|
1539
1541
|
title: title.slice(0, 1024),
|
|
1540
|
-
...row.description
|
|
1542
|
+
...row.description == null ? {} : { description: row.description.slice(0, 4096) },
|
|
1541
1543
|
status: (row.status?.trim() || "pending").slice(0, 64),
|
|
1542
1544
|
dependsOn: (dependencies.get(id) ?? []).filter(
|
|
1543
1545
|
(dependsOn) => dependsOn.length > 0 && dependsOn.length <= 256
|
|
@@ -1667,7 +1669,7 @@ var PlanSnapshots = class {
|
|
|
1667
1669
|
{
|
|
1668
1670
|
id,
|
|
1669
1671
|
title: title.slice(0, 1024),
|
|
1670
|
-
...row.description
|
|
1672
|
+
...row.description == null ? {} : { description: row.description.slice(0, 4096) },
|
|
1671
1673
|
status: (row.status?.trim() || "pending").slice(0, 64),
|
|
1672
1674
|
dependsOn: (dependencies.get(id) ?? []).filter(
|
|
1673
1675
|
(dependsOn) => dependsOn.length > 0 && dependsOn.length <= 256
|
|
@@ -1722,6 +1724,7 @@ var EnvelopeSchema = z2.object({
|
|
|
1722
1724
|
});
|
|
1723
1725
|
var HumanSchema = z2.object({
|
|
1724
1726
|
content: z2.string(),
|
|
1727
|
+
messageId: z2.string().optional(),
|
|
1725
1728
|
interactionId: z2.string().optional(),
|
|
1726
1729
|
source: z2.string().optional(),
|
|
1727
1730
|
isAutopilotContinuation: z2.boolean().optional()
|
|
@@ -1791,6 +1794,7 @@ function metadataEvent(value, preview = false) {
|
|
|
1791
1794
|
if (data.isAutopilotContinuation === true) return void 0;
|
|
1792
1795
|
return { ...base, type: "user.message", data: {
|
|
1793
1796
|
content: data.content,
|
|
1797
|
+
...data.messageId === void 0 ? {} : { messageId: data.messageId },
|
|
1794
1798
|
...data.interactionId === void 0 ? {} : { interactionId: data.interactionId },
|
|
1795
1799
|
...data.source === void 0 ? {} : { source: data.source }
|
|
1796
1800
|
} };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentSelectionSchema,
|
|
3
3
|
assertSelectionSnapshotFits
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-U2HBI4SH.js";
|
|
5
5
|
import {
|
|
6
6
|
isResearchSessionId
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-DSHLLGE2.js";
|
|
8
8
|
import {
|
|
9
9
|
GroupChatError
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VXZ25DKC.js";
|
|
11
11
|
import {
|
|
12
12
|
AgentModelListingError,
|
|
13
13
|
AgentSessionRenameError,
|
|
@@ -15,11 +15,11 @@ import {
|
|
|
15
15
|
UnsupportedAgentOperationError,
|
|
16
16
|
captureWorkbenchAccess,
|
|
17
17
|
validateSessionName
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-UJZPAP64.js";
|
|
19
19
|
import {
|
|
20
20
|
InteractionResponseSchema,
|
|
21
21
|
SessionSummarySchema
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-N2LIXMIM.js";
|
|
23
23
|
|
|
24
24
|
// src/managed-agent-adapter.ts
|
|
25
25
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
latestPreviewItems
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QLGX7333.js";
|
|
4
4
|
import {
|
|
5
5
|
AgentSessionRenameError,
|
|
6
6
|
UnsupportedAgentOperationError,
|
|
7
7
|
validateSessionName
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UJZPAP64.js";
|
|
9
9
|
import {
|
|
10
10
|
InteractionRequestSchema,
|
|
11
11
|
REASONING_EFFORTS,
|
|
12
12
|
SESSION_TIMELINE_PAGE_SIZE
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-N2LIXMIM.js";
|
|
14
14
|
|
|
15
15
|
// src/pi-adapter.ts
|
|
16
16
|
import { createHash as createHash2, randomUUID } from "node:crypto";
|
package/dist/index.js
CHANGED
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
PeerChatRequestSchema,
|
|
5
5
|
PeerChatResultSchema,
|
|
6
6
|
validateDataDirectory
|
|
7
|
-
} from "./chunks/chunk-
|
|
7
|
+
} from "./chunks/chunk-IXV2BIUR.js";
|
|
8
8
|
import {
|
|
9
9
|
AgentSelectionSchema,
|
|
10
10
|
assertSelectionSnapshotFits,
|
|
11
11
|
supportsAgentSelection
|
|
12
|
-
} from "./chunks/chunk-
|
|
12
|
+
} from "./chunks/chunk-U2HBI4SH.js";
|
|
13
13
|
import {
|
|
14
14
|
ConversationNormalizer,
|
|
15
15
|
LiveTimelineProjection,
|
|
@@ -30,16 +30,16 @@ import {
|
|
|
30
30
|
resolveGitProjectIdentity,
|
|
31
31
|
sessionRestoreFailure,
|
|
32
32
|
validateOperationResponse
|
|
33
|
-
} from "./chunks/chunk-
|
|
33
|
+
} from "./chunks/chunk-7JRY2FRZ.js";
|
|
34
34
|
import {
|
|
35
35
|
GROUP_CHAT_MAX_TURNS,
|
|
36
36
|
GroupChatError
|
|
37
|
-
} from "./chunks/chunk-
|
|
37
|
+
} from "./chunks/chunk-VXZ25DKC.js";
|
|
38
38
|
import {
|
|
39
39
|
assistantPreview,
|
|
40
40
|
isContentfulAssistant,
|
|
41
41
|
userPreview
|
|
42
|
-
} from "./chunks/chunk-
|
|
42
|
+
} from "./chunks/chunk-QLGX7333.js";
|
|
43
43
|
import {
|
|
44
44
|
AgentModelListingError,
|
|
45
45
|
AgentSessionRenameError,
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
UnsupportedAgentOperationError,
|
|
49
49
|
captureResearchAccess,
|
|
50
50
|
captureWorkbenchAccess
|
|
51
|
-
} from "./chunks/chunk-
|
|
51
|
+
} from "./chunks/chunk-UJZPAP64.js";
|
|
52
52
|
import {
|
|
53
53
|
A2aRelayRequestSchema,
|
|
54
54
|
A2aRelayResponseSchema,
|
|
@@ -109,6 +109,7 @@ import {
|
|
|
109
109
|
SESSION_FILE_READ_OPERATION,
|
|
110
110
|
SESSION_FILE_READ_VERSION,
|
|
111
111
|
SESSION_LIST_UPDATES_CAPABILITY,
|
|
112
|
+
SESSION_OPTIONS_PARTIAL_CAPABILITY,
|
|
112
113
|
SESSION_PROJECT_IDENTITY_OPERATION,
|
|
113
114
|
SESSION_PROJECT_IDENTITY_VERSION,
|
|
114
115
|
SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY,
|
|
@@ -196,7 +197,7 @@ import {
|
|
|
196
197
|
sessionCommunicationError,
|
|
197
198
|
sessionCommunicationOperationCapability,
|
|
198
199
|
workbenchCapability
|
|
199
|
-
} from "./chunks/chunk-
|
|
200
|
+
} from "./chunks/chunk-N2LIXMIM.js";
|
|
200
201
|
|
|
201
202
|
// src/initialize.ts
|
|
202
203
|
import { createHash as createHash13 } from "node:crypto";
|
|
@@ -274,7 +275,7 @@ async function createCodingAgentAdapter(config, onDiagnostic, owner) {
|
|
|
274
275
|
switch (engine.kind) {
|
|
275
276
|
case "managed": {
|
|
276
277
|
if (owner === void 0) throw new Error("Managed coding agents require the PC owner identity");
|
|
277
|
-
const { ManagedCodingAgentAdapter } = await import("./chunks/managed-agent-adapter-
|
|
278
|
+
const { ManagedCodingAgentAdapter } = await import("./chunks/managed-agent-adapter-4W4HC67T.js");
|
|
278
279
|
return new ManagedCodingAgentAdapter({
|
|
279
280
|
dataDirectory: config.dataDirectory,
|
|
280
281
|
owner,
|
|
@@ -313,7 +314,7 @@ async function createCodingAgentAdapter(config, onDiagnostic, owner) {
|
|
|
313
314
|
});
|
|
314
315
|
}
|
|
315
316
|
case "copilot": {
|
|
316
|
-
const { GithubCopilotAdapter } = await import("./chunks/copilot-adapter-
|
|
317
|
+
const { GithubCopilotAdapter } = await import("./chunks/copilot-adapter-ULOIFWJ3.js");
|
|
317
318
|
if (owner !== void 0) {
|
|
318
319
|
return new GithubCopilotAdapter(void 0, void 0, void 0, {
|
|
319
320
|
dataDirectory: config.dataDirectory,
|
|
@@ -333,13 +334,13 @@ async function createCodingAgentAdapter(config, onDiagnostic, owner) {
|
|
|
333
334
|
}
|
|
334
335
|
case "pi": {
|
|
335
336
|
assertPiRuntimeSupported();
|
|
336
|
-
const { PiCodingAgentAdapter } = await import("./chunks/pi-adapter-
|
|
337
|
+
const { PiCodingAgentAdapter } = await import("./chunks/pi-adapter-IFNN3F4N.js");
|
|
337
338
|
return new PiCodingAgentAdapter(
|
|
338
339
|
engine.agentDirectory === void 0 ? {} : { agentDirectory: resolve(engine.agentDirectory) }
|
|
339
340
|
);
|
|
340
341
|
}
|
|
341
342
|
case "acp": {
|
|
342
|
-
const { AcpCodingAgentAdapter } = await import("./chunks/acp-adapter-
|
|
343
|
+
const { AcpCodingAgentAdapter } = await import("./chunks/acp-adapter-QK4MVTNN.js");
|
|
343
344
|
return new AcpCodingAgentAdapter({
|
|
344
345
|
command: engine.command,
|
|
345
346
|
args: engine.args,
|
|
@@ -3105,6 +3106,7 @@ var SessionOptionsHandler = class {
|
|
|
3105
3106
|
this.#planErrors = new RepeatedErrorDiagnostics(options.logger, "copilot.session.plan.unavailable");
|
|
3106
3107
|
this.#modelErrors = new RepeatedErrorDiagnostics(options.logger, "agent.models.refresh.failed");
|
|
3107
3108
|
this.#partialModelErrors = new RepeatedErrorDiagnostics(options.logger, "agent.models.refresh.partial");
|
|
3109
|
+
this.#capabilityErrors = new RepeatedErrorDiagnostics(options.logger, "agent.session.capabilities.unavailable");
|
|
3108
3110
|
}
|
|
3109
3111
|
options;
|
|
3110
3112
|
#errors;
|
|
@@ -3112,10 +3114,14 @@ var SessionOptionsHandler = class {
|
|
|
3112
3114
|
#planErrors;
|
|
3113
3115
|
#modelErrors;
|
|
3114
3116
|
#partialModelErrors;
|
|
3117
|
+
#capabilityErrors;
|
|
3115
3118
|
async handle(request, scope) {
|
|
3116
3119
|
const { adapter, config, machineId, logger, emit } = this.options;
|
|
3117
3120
|
const diagnostics = new OperationDiagnostics();
|
|
3118
3121
|
const errorKey = JSON.stringify([request.machineId, request.sessionId, request.workspaceId]);
|
|
3122
|
+
let availableModels;
|
|
3123
|
+
let configuration;
|
|
3124
|
+
let failureStage;
|
|
3119
3125
|
try {
|
|
3120
3126
|
if (scope.clientId !== void 0 && request.capabilities !== void 0) {
|
|
3121
3127
|
this.options.negotiateAgentControls(scope.clientId, request.capabilities);
|
|
@@ -3159,7 +3165,7 @@ var SessionOptionsHandler = class {
|
|
|
3159
3165
|
});
|
|
3160
3166
|
return void 0;
|
|
3161
3167
|
});
|
|
3162
|
-
const [
|
|
3168
|
+
const [workspaceResult, modelResult, configurationResult] = await diagnostics.run(() => Promise.allSettled([
|
|
3163
3169
|
sessionWorkingDirectories.then((workingDirectories) => listSelectableWorkspaces(workingDirectories, config.workspaceRoot)),
|
|
3164
3170
|
adapter.listModels(request.sessionId).then((models2) => {
|
|
3165
3171
|
if (models2.length > 0) {
|
|
@@ -3170,17 +3176,45 @@ var SessionOptionsHandler = class {
|
|
|
3170
3176
|
}).catch((error) => {
|
|
3171
3177
|
if (isSessionRestoreFailure(error)) throw error;
|
|
3172
3178
|
modelRefreshError = toErrorDetails(error).message.slice(0, 4096) || "Coding-agent models are unavailable.";
|
|
3173
|
-
const
|
|
3174
|
-
if (
|
|
3175
|
-
(
|
|
3176
|
-
return
|
|
3179
|
+
const availableModels2 = error instanceof AgentModelListingError ? error.availableModels : [];
|
|
3180
|
+
if (availableModels2.length === 0) modelFailure = error;
|
|
3181
|
+
(availableModels2.length === 0 ? this.#modelErrors : this.#partialModelErrors).failure(errorKey, error, diagnosticRequest(request));
|
|
3182
|
+
return availableModels2;
|
|
3177
3183
|
}),
|
|
3178
|
-
request.sessionId === void 0 ? Promise.resolve(void 0) : adapter.getSessionConfiguration(request.sessionId)
|
|
3179
|
-
sessionEnvironment
|
|
3184
|
+
request.sessionId === void 0 ? Promise.resolve(void 0) : adapter.getSessionConfiguration(request.sessionId)
|
|
3180
3185
|
]));
|
|
3186
|
+
if (modelResult.status === "fulfilled" && modelResult.value.length > 0) availableModels = modelResult.value;
|
|
3187
|
+
if (configurationResult.status === "fulfilled") configuration = configurationResult.value;
|
|
3188
|
+
for (const [stage, result] of [
|
|
3189
|
+
["configuration", configurationResult],
|
|
3190
|
+
["models", modelResult],
|
|
3191
|
+
["workspaces", workspaceResult]
|
|
3192
|
+
]) {
|
|
3193
|
+
if (result.status === "rejected" && isSessionRestoreFailure(result.reason)) {
|
|
3194
|
+
failureStage = stage;
|
|
3195
|
+
throw result.reason;
|
|
3196
|
+
}
|
|
3197
|
+
}
|
|
3198
|
+
if (configurationResult.status === "rejected") {
|
|
3199
|
+
failureStage = "configuration";
|
|
3200
|
+
throw configurationResult.reason;
|
|
3201
|
+
}
|
|
3202
|
+
if (modelResult.status === "rejected") {
|
|
3203
|
+
failureStage = "models";
|
|
3204
|
+
throw modelResult.reason;
|
|
3205
|
+
}
|
|
3206
|
+
if (workspaceResult.status === "rejected") {
|
|
3207
|
+
failureStage = "workspaces";
|
|
3208
|
+
throw workspaceResult.reason;
|
|
3209
|
+
}
|
|
3210
|
+
const workspaces = workspaceResult.value;
|
|
3211
|
+
const models = modelResult.value;
|
|
3212
|
+
const current = configurationResult.value;
|
|
3181
3213
|
if (models.length === 0) {
|
|
3214
|
+
failureStage = "models";
|
|
3182
3215
|
throw modelFailure ?? new Error("No coding-agent models are available. Select an authenticated coding agent on the PC.");
|
|
3183
3216
|
}
|
|
3217
|
+
const environment = await sessionEnvironment;
|
|
3184
3218
|
const worktreeCreationSupported = request.sessionId === void 0 && request.capabilities?.includes(SESSION_WORKTREE_CREATION_CAPABILITY) === true;
|
|
3185
3219
|
let worktreeChoices;
|
|
3186
3220
|
if (worktreeCreationSupported && request.workspaceId !== void 0) {
|
|
@@ -3222,9 +3256,37 @@ var SessionOptionsHandler = class {
|
|
|
3222
3256
|
} catch (error) {
|
|
3223
3257
|
this.#errors.failure(errorKey, error, {
|
|
3224
3258
|
...diagnosticRequest(request),
|
|
3225
|
-
...diagnostics.details()
|
|
3259
|
+
...diagnostics.details(),
|
|
3260
|
+
failureStage
|
|
3226
3261
|
});
|
|
3262
|
+
const partial = {};
|
|
3263
|
+
const negotiatedPartial = request.capabilities?.includes(SESSION_OPTIONS_PARTIAL_CAPABILITY) === true;
|
|
3264
|
+
if (negotiatedPartial && failureStage !== void 0) partial.failureStage = failureStage;
|
|
3265
|
+
if (request.sessionId !== void 0 && !isSessionRestoreFailure(error)) {
|
|
3266
|
+
try {
|
|
3267
|
+
const capabilities = adapter.getSessionCapabilities?.(request.sessionId) ?? adapter;
|
|
3268
|
+
this.#capabilityErrors.recovered(errorKey);
|
|
3269
|
+
if (request.capabilities?.includes(SESSION_FILE_ATTACHMENTS_CAPABILITY) === true) {
|
|
3270
|
+
partial.fileAttachmentsSupported = (capabilities.supportsFileAttachments ?? adapter.supportsFileAttachments) === true;
|
|
3271
|
+
}
|
|
3272
|
+
if (negotiatedPartial) {
|
|
3273
|
+
if (availableModels !== void 0) partial.models = availableModels;
|
|
3274
|
+
if (configuration !== void 0) {
|
|
3275
|
+
partial.agentModes = [...capabilities.agentModes];
|
|
3276
|
+
if (capabilities.supportsReasoningEffort) partial.reasoningEffortConfigurationSupported = true;
|
|
3277
|
+
if (configuration.modelId !== void 0) partial.currentModelId = configuration.modelId;
|
|
3278
|
+
partial.currentAgentMode = configuration.agentMode;
|
|
3279
|
+
partial.currentReasoningEffort = configuration.reasoningEffort;
|
|
3280
|
+
if (configuration.configOptions !== void 0) partial.configOptions = configuration.configOptions;
|
|
3281
|
+
partial.agentName = "agentName" in capabilities && typeof capabilities.agentName === "string" ? capabilities.agentName : codingAgentPresentation(adapter.agentId).name;
|
|
3282
|
+
}
|
|
3283
|
+
}
|
|
3284
|
+
} catch (capabilityError) {
|
|
3285
|
+
this.#capabilityErrors.failure(errorKey, capabilityError, diagnosticRequest(request));
|
|
3286
|
+
}
|
|
3287
|
+
}
|
|
3227
3288
|
emit("session.options.result", {
|
|
3289
|
+
...partial,
|
|
3228
3290
|
ok: false,
|
|
3229
3291
|
requestId: request.requestId,
|
|
3230
3292
|
machineId,
|
package/dist/runtime.js
CHANGED
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
PEER_CHAT_TIMEOUT_MS,
|
|
4
4
|
PeerChatRequestSchema,
|
|
5
5
|
PeerChatResultSchema
|
|
6
|
-
} from "./chunks/chunk-
|
|
7
|
-
import "./chunks/chunk-
|
|
6
|
+
} from "./chunks/chunk-IXV2BIUR.js";
|
|
7
|
+
import "./chunks/chunk-N2LIXMIM.js";
|
|
8
8
|
export {
|
|
9
9
|
DataDirectoryLease,
|
|
10
10
|
PEER_CHAT_TIMEOUT_MS,
|