@nuvin/session 0.4.0-rc.10 → 0.4.0-rc.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.
Files changed (37) hide show
  1. package/dist/chunk-4AOFJGGN.js +141 -0
  2. package/dist/{chunk-U6V6IQJR.js → chunk-B54P6RLO.js} +158 -10
  3. package/dist/{chunk-Y7JPSYTH.js → chunk-STY4IJ7W.js} +43 -1
  4. package/dist/client/control-center-socket.d.ts +14 -0
  5. package/dist/client/control-center-socket.d.ts.map +1 -0
  6. package/dist/client/daemon-client.d.ts.map +1 -1
  7. package/dist/client/data-client.d.ts +2 -1
  8. package/dist/client/data-client.d.ts.map +1 -1
  9. package/dist/client/http-data-client.d.ts.map +1 -1
  10. package/dist/client/index.js +209 -5
  11. package/dist/client/session-client.d.ts +4 -2
  12. package/dist/client/session-client.d.ts.map +1 -1
  13. package/dist/controller/agent-channel.d.ts +7 -2
  14. package/dist/controller/agent-channel.d.ts.map +1 -1
  15. package/dist/controller/index.js +394 -65
  16. package/dist/controller/session-controller.d.ts +25 -5
  17. package/dist/controller/session-controller.d.ts.map +1 -1
  18. package/dist/protocol/control-center.d.ts +141 -0
  19. package/dist/protocol/control-center.d.ts.map +1 -0
  20. package/dist/protocol/data-rpc.d.ts +5 -0
  21. package/dist/protocol/data-rpc.d.ts.map +1 -1
  22. package/dist/protocol/index.d.ts +2 -0
  23. package/dist/protocol/index.d.ts.map +1 -1
  24. package/dist/protocol/index.js +12 -2
  25. package/dist/protocol/submission-recovery.d.ts +6 -0
  26. package/dist/protocol/submission-recovery.d.ts.map +1 -0
  27. package/dist/protocol/types.d.ts +71 -6
  28. package/dist/protocol/types.d.ts.map +1 -1
  29. package/dist/protocol/version.d.ts +1 -1
  30. package/dist/state/index.js +9 -1
  31. package/dist/state/messages.d.ts +6 -2
  32. package/dist/state/messages.d.ts.map +1 -1
  33. package/dist/state/session.d.ts +4 -1
  34. package/dist/state/session.d.ts.map +1 -1
  35. package/dist/test-utils/index.js +2 -2
  36. package/package.json +2 -2
  37. package/dist/chunk-5PHEC5GZ.js +0 -85
@@ -0,0 +1,141 @@
1
+ // src/protocol/control-center.ts
2
+ function isRecord(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value);
4
+ }
5
+ function isStringArray(value) {
6
+ return Array.isArray(value) && value.every((entry) => typeof entry === "string");
7
+ }
8
+ function isScope(value) {
9
+ return isRecord(value) && ["profile", "workspace", "cwd"].every(
10
+ (key) => value[key] === void 0 || typeof value[key] === "string"
11
+ );
12
+ }
13
+ function isAgentDefinition(value) {
14
+ return isRecord(value) && ["filename", "name", "description", "systemPrompt"].every(
15
+ (key) => typeof value[key] === "string"
16
+ ) && (value.model === void 0 || typeof value.model === "string") && typeof value.enabled === "boolean" && isStringArray(value.tools) && isStringArray(value.skills);
17
+ }
18
+ function isAgentMutation(value) {
19
+ return isRecord(value) && ["sourceKey", "agentId", "expectedRevision"].every((key) => typeof value[key] === "string");
20
+ }
21
+ var noArgs = (args) => args.length === 0;
22
+ var oneString = (args) => args.length === 1 && typeof args[0] === "string";
23
+ var argumentValidators = {
24
+ getState: noArgs,
25
+ completeSlashCommand: (args) => args.length === 2 && args.every((value) => typeof value === "string"),
26
+ runSlashCommand: oneString,
27
+ setConfig: (args) => args.length === 1 && Array.isArray(args[0]) && args[0].every(
28
+ (patch) => isRecord(patch) && typeof patch.key === "string" && Object.hasOwn(patch, "value") && patch.value !== void 0 && (patch.scope === "global" || patch.scope === "local")
29
+ ),
30
+ listSkills: noArgs,
31
+ getSkill: oneString,
32
+ listAgents: noArgs,
33
+ getAgent: oneString,
34
+ getAgentEditorData: (args) => args.length === 0 || args.length === 1 && (args[0] === void 0 || typeof args[0] === "string"),
35
+ createAgent: (args) => args.length === 1 && isAgentDefinition(args[0]),
36
+ updateAgent: (args) => args.length === 1 && isAgentMutation(args[0]) && isAgentDefinition(args[0].definition),
37
+ deleteAgent: (args) => args.length === 1 && isAgentMutation(args[0]),
38
+ getCommand: oneString,
39
+ listMcpServers: noArgs,
40
+ mcpAction: (args) => args.length === 2 && ["enable", "disable", "reload", "login"].includes(args[0]) && typeof args[1] === "string",
41
+ listWorkspaceMemories: noArgs,
42
+ getWorkspaceMemory: oneString,
43
+ removeWorkspaceMemory: oneString,
44
+ listConsolidateProposals: noArgs,
45
+ getConsolidateProposal: oneString,
46
+ decideConsolidateProposal: (args) => (args.length === 2 || args.length === 3) && typeof args[0] === "string" && (args[1] === "approve" || args[1] === "reject") && (args.length === 2 || args[2] === void 0 || isStringArray(args[2])),
47
+ runConsolidate: noArgs
48
+ };
49
+ function parseControlCenterRequest(value) {
50
+ if (!isRecord(value) || !isScope(value.scope) || typeof value.operation !== "string" || !Object.hasOwn(argumentValidators, value.operation) || !Array.isArray(value.args) || !argumentValidators[value.operation](value.args)) {
51
+ throw new Error("Invalid management request.");
52
+ }
53
+ return value;
54
+ }
55
+
56
+ // src/protocol/history-text.ts
57
+ function stripTerminalStringSequences(value) {
58
+ let sanitized = "";
59
+ for (let index = 0; index < value.length; ) {
60
+ const code = value.charCodeAt(index);
61
+ const next = value.charCodeAt(index + 1);
62
+ const isSevenBitSequence = code === 27 && [80, 88, 93, 94, 95].includes(next);
63
+ const isEightBitSequence = [144, 152, 157, 158, 159].includes(code);
64
+ if (!isSevenBitSequence && !isEightBitSequence) {
65
+ sanitized += value[index];
66
+ index += 1;
67
+ continue;
68
+ }
69
+ index += isSevenBitSequence ? 2 : 1;
70
+ while (index < value.length) {
71
+ const terminator = value.charCodeAt(index);
72
+ if (terminator === 7 || terminator === 156) {
73
+ index += 1;
74
+ break;
75
+ }
76
+ if (terminator === 27 && value.charCodeAt(index + 1) === 92) {
77
+ index += 2;
78
+ break;
79
+ }
80
+ index += 1;
81
+ }
82
+ }
83
+ return sanitized;
84
+ }
85
+ function stripTerminalControlSequences(value) {
86
+ let sanitized = "";
87
+ for (let index = 0; index < value.length; ) {
88
+ const code = value.charCodeAt(index);
89
+ const isCsi = code === 155 || code === 27 && value.charCodeAt(index + 1) === 91;
90
+ if (isCsi) {
91
+ index += code === 27 ? 2 : 1;
92
+ while (index < value.length) {
93
+ const current = value.charCodeAt(index);
94
+ index += 1;
95
+ if (current >= 64 && current <= 126) break;
96
+ }
97
+ continue;
98
+ }
99
+ if (code === 27) {
100
+ index += 1;
101
+ while (index < value.length) {
102
+ const current = value.charCodeAt(index);
103
+ index += 1;
104
+ if (current < 32 || current > 47) break;
105
+ }
106
+ continue;
107
+ }
108
+ sanitized += value[index];
109
+ index += 1;
110
+ }
111
+ return sanitized;
112
+ }
113
+ function sanitizeHistoryDisplayText(value) {
114
+ return stripTerminalControlSequences(stripTerminalStringSequences(value.normalize("NFKC"))).replace(new RegExp("\\p{Cc}", "gu"), (control) => /\s/u.test(control) ? " " : "").replace(/\s+/gu, " ").trim();
115
+ }
116
+ function normalizeHistoryText(value) {
117
+ return sanitizeHistoryDisplayText(value).toLowerCase();
118
+ }
119
+ function escapeLikeLiteral(value) {
120
+ return value.replaceAll("\\", "\\\\").replaceAll("%", "\\%").replaceAll("_", "\\_");
121
+ }
122
+
123
+ // src/protocol/model-identity.ts
124
+ function modelNameFromIdentity(modelIdentity) {
125
+ const separator = modelIdentity.indexOf(":");
126
+ return separator === -1 ? modelIdentity : modelIdentity.slice(separator + 1);
127
+ }
128
+ function providerFromIdentity(modelIdentity) {
129
+ const separator = modelIdentity.indexOf(":");
130
+ if (separator <= 0) return void 0;
131
+ return modelIdentity.slice(0, separator);
132
+ }
133
+
134
+ export {
135
+ parseControlCenterRequest,
136
+ sanitizeHistoryDisplayText,
137
+ normalizeHistoryText,
138
+ escapeLikeLiteral,
139
+ modelNameFromIdentity,
140
+ providerFromIdentity
141
+ };
@@ -164,6 +164,7 @@ function scopedToolKey(toolCallPath, toolCallId) {
164
164
  }
165
165
 
166
166
  // src/state/messages.ts
167
+ import { isModelUsageTotals } from "@nuvin/agent-core/agent";
167
168
  import { getReasoningTextFromMessage, getTextFromMessage } from "@nuvin/agent-core/formats";
168
169
  function isProviderRetryMessage(message) {
169
170
  return message.role === "warning" && message.providerRetry !== void 0;
@@ -177,8 +178,77 @@ function withUpdatedMessage(state, id, update) {
177
178
  messages: state.messages.map((message) => message.id === id ? update(message) : message)
178
179
  };
179
180
  }
181
+ function cloneDelegatedMetrics(metrics) {
182
+ const base = {
183
+ runId: metrics.runId,
184
+ turnNumber: metrics.turnNumber,
185
+ ...metrics.turnId === void 0 ? {} : { turnId: metrics.turnId },
186
+ cumulativeUsage: { ...metrics.cumulativeUsage }
187
+ };
188
+ if (metrics.phase === "start") return { ...base, phase: "start", revision: 0 };
189
+ if (metrics.phase === "terminal")
190
+ return { ...base, phase: "terminal", revision: metrics.revision };
191
+ return {
192
+ ...base,
193
+ phase: "active",
194
+ revision: metrics.revision,
195
+ ...metrics.live === void 0 ? {} : {
196
+ live: {
197
+ requestId: metrics.live.requestId,
198
+ attempt: metrics.live.attempt,
199
+ estimatedOutputTokensPerSecond: metrics.live.estimatedOutputTokensPerSecond
200
+ }
201
+ }
202
+ };
203
+ }
204
+ function isNonemptyString(value) {
205
+ return typeof value === "string" && value.length > 0;
206
+ }
207
+ function isNonnegativeSafeInteger(value) {
208
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
209
+ }
210
+ function isValidDelegatedMetrics(metrics, source) {
211
+ if (typeof metrics !== "object" || metrics === null || Array.isArray(metrics)) return false;
212
+ if (!isNonemptyString(metrics.runId) || metrics.turnId !== void 0 && !isNonemptyString(metrics.turnId) || !isNonnegativeSafeInteger(metrics.turnNumber) || !isNonnegativeSafeInteger(metrics.revision) || !isModelUsageTotals(metrics.cumulativeUsage))
213
+ return false;
214
+ if (source === "recovery") {
215
+ return metrics.phase === "terminal" && metrics.revision === 0 && metrics.live === void 0 && (metrics.turnNumber > 0 || metrics.turnId === void 0);
216
+ }
217
+ if (metrics.turnNumber === 0) return false;
218
+ if (metrics.phase === "start") return metrics.revision === 0 && metrics.live === void 0;
219
+ if (metrics.phase !== "active" && metrics.phase !== "terminal") return false;
220
+ if (metrics.revision === 0) return false;
221
+ if (metrics.phase === "terminal") return metrics.live === void 0;
222
+ const live = metrics.live;
223
+ return live === void 0 || typeof live === "object" && live !== null && !Array.isArray(live) && isNonemptyString(live.requestId) && isNonnegativeSafeInteger(live.attempt) && typeof live.estimatedOutputTokensPerSecond === "number" && Number.isFinite(live.estimatedOutputTokensPerSecond) && live.estimatedOutputTokensPerSecond >= 0;
224
+ }
225
+ function withDelegatedMetrics(message, metrics, source) {
226
+ if (message.toolName !== "AssignTask" || !isValidDelegatedMetrics(metrics, source))
227
+ return message;
228
+ const bindings = delegatedRunBindings(message);
229
+ if (bindings.some((runId) => runId !== metrics.runId)) return message;
230
+ if (bindings.length === 0 && !(source === "event" && metrics.phase === "start") && !(source === "recovery" && metrics.phase === "terminal"))
231
+ return message;
232
+ if (message.delegatedModel !== void 0 && message.delegatedModel.turnNumber > metrics.turnNumber)
233
+ return message;
234
+ const prior = message.delegatedMetrics;
235
+ if (prior !== void 0) {
236
+ if (metrics.turnNumber < prior.turnNumber) return message;
237
+ if (metrics.turnNumber === prior.turnNumber && (prior.phase === "terminal" || prior.turnId !== metrics.turnId || metrics.revision <= prior.revision))
238
+ return message;
239
+ }
240
+ return { ...message, delegatedMetrics: cloneDelegatedMetrics(metrics) };
241
+ }
242
+ function delegatedRunBindings(message) {
243
+ return [
244
+ message.structured?.runId,
245
+ message.delegatedModel?.runId,
246
+ message.delegatedMetrics?.runId
247
+ ].filter((runId) => typeof runId === "string");
248
+ }
180
249
  function withDelegatedModel(message, model) {
181
250
  if (message.toolName !== "AssignTask") return message;
251
+ if (delegatedRunBindings(message).some((runId) => runId !== model.runId)) return message;
182
252
  const prior = message.delegatedModel;
183
253
  if (prior !== void 0) {
184
254
  if (prior.runId !== model.runId || prior.turnNumber > model.turnNumber) return message;
@@ -638,13 +708,14 @@ function createMessageState() {
638
708
  }
639
709
  function createMessageStateFromMessages(messages) {
640
710
  const normalizedMessages = messages.map((message) => {
641
- const toolCallPath = cloneToolCallPath(message.toolCallPath);
642
- if (toolCallPath) return { ...message, toolCallPath };
643
- if (message.toolCallPath !== void 0) {
644
- const { toolCallPath: _toolCallPath, ...rootMessage } = message;
711
+ const cloned = message.role === "tool" && message.delegatedMetrics !== void 0 ? { ...message, delegatedMetrics: cloneDelegatedMetrics(message.delegatedMetrics) } : message;
712
+ const toolCallPath = cloneToolCallPath(cloned.toolCallPath);
713
+ if (toolCallPath) return { ...cloned, toolCallPath };
714
+ if (cloned.toolCallPath !== void 0) {
715
+ const { toolCallPath: _toolCallPath, ...rootMessage } = cloned;
645
716
  return rootMessage;
646
717
  }
647
- return message;
718
+ return cloned;
648
719
  });
649
720
  const nextId = normalizedMessages.reduce((max, message) => {
650
721
  const match = /^message-(\d+)$/.exec(message.id);
@@ -670,14 +741,15 @@ function createMessageStateFromMessages(messages) {
670
741
  toolMessageIds
671
742
  };
672
743
  }
673
- function appendUserMessage(state, text, attachmentLabels, createdAt, steeredAt) {
744
+ function appendUserMessage(state, text, attachmentLabels, createdAt, steeredAt, submissionId) {
674
745
  return addMessage(state, {
675
746
  id: createMessageId(state),
676
747
  role: "user",
677
748
  text,
678
749
  ...attachmentLabels && attachmentLabels.length > 0 ? { attachmentLabels } : {},
679
750
  ...createdAt !== void 0 ? { createdAt } : {},
680
- ...steeredAt !== void 0 ? { steeredAt } : {}
751
+ ...steeredAt !== void 0 ? { steeredAt } : {},
752
+ ...submissionId === void 0 ? {} : { submissionId }
681
753
  });
682
754
  }
683
755
  function appendErrorMessage(state, text) {
@@ -858,6 +930,13 @@ function applyAgentEvent(state, event, toolCallPath, now = Date.now()) {
858
930
  toolCallPath,
859
931
  now
860
932
  );
933
+ case "delegated_metrics": {
934
+ const id = state.toolMessageIds[scopedToolKey(toolCallPath, event.parentToolCallId)];
935
+ const message = state.messages.find((item) => item.id === id);
936
+ if (message?.role !== "tool") return state;
937
+ const updated = withDelegatedMetrics(message, event, "event");
938
+ return updated === message ? state : withUpdatedMessage(state, message.id, () => updated);
939
+ }
861
940
  case "delegated_model_resolved": {
862
941
  const id = state.toolMessageIds[scopedToolKey(toolCallPath, event.parentToolCallId)];
863
942
  if (id === void 0) return state;
@@ -1031,7 +1110,11 @@ function cloneQuestion2(question) {
1031
1110
  return toolCallPath && toolCallPath.length > 0 ? { ...rootQuestion, toolCallPath: [...toolCallPath] } : rootQuestion;
1032
1111
  }
1033
1112
  function cloneMessage(message) {
1034
- const cloned = message.role === "tool" && message.delegatedModel !== void 0 ? { ...message, delegatedModel: { ...message.delegatedModel } } : message;
1113
+ const cloned = message.role === "tool" ? {
1114
+ ...message,
1115
+ ...message.delegatedModel === void 0 ? {} : { delegatedModel: { ...message.delegatedModel } },
1116
+ ...message.delegatedMetrics === void 0 ? {} : { delegatedMetrics: cloneDelegatedMetrics(message.delegatedMetrics) }
1117
+ } : message;
1035
1118
  const { toolCallPath, ...rootMessage } = cloned;
1036
1119
  return toolCallPath && toolCallPath.length > 0 ? { ...rootMessage, toolCallPath: [...toolCallPath] } : rootMessage;
1037
1120
  }
@@ -1047,6 +1130,8 @@ function cloneBackgroundWorkActive(active) {
1047
1130
  function normalizeResetState(state) {
1048
1131
  return {
1049
1132
  ...state,
1133
+ recall: copyRecallState(state.recall),
1134
+ activeHumanSubmission: state.activeHumanSubmission === null ? null : structuredClone(state.activeHumanSubmission),
1050
1135
  backgroundAgents: {
1051
1136
  ...state.backgroundAgents,
1052
1137
  runningRunIds: [...state.backgroundAgents.runningRunIds]
@@ -1074,6 +1159,8 @@ function normalizeResetState(state) {
1074
1159
  }
1075
1160
  function createSessionViewState() {
1076
1161
  return {
1162
+ recall: { identity: null, entries: [] },
1163
+ activeHumanSubmission: null,
1077
1164
  approval: createApprovalQueueState(),
1078
1165
  authFlow: null,
1079
1166
  backgroundAgents: { running: 0, queued: 0, runningRunIds: [] },
@@ -1090,6 +1177,32 @@ function createSessionViewState() {
1090
1177
  }
1091
1178
  function reduceSessionEvent(state, event) {
1092
1179
  switch (event.type) {
1180
+ case "active-human-submission":
1181
+ return {
1182
+ ...state,
1183
+ activeHumanSubmission: event.key === null ? null : structuredClone(event.key)
1184
+ };
1185
+ case "submission-retracted": {
1186
+ const { key, rawText } = event.result;
1187
+ const identity = state.recall.identity;
1188
+ if (identity === null || identity.profile !== key.identity.profile || identity.workspace !== key.identity.workspace || identity.sessionId !== key.identity.sessionId)
1189
+ return state;
1190
+ const recall = appendRecallEntry(state.recall, { key, rawText, retracted: true });
1191
+ const removed = new Set(event.removedMessageIds);
1192
+ return {
1193
+ ...state,
1194
+ recall,
1195
+ activeHumanSubmission: state.activeHumanSubmission?.submissionId === key.submissionId ? null : state.activeHumanSubmission,
1196
+ messages: {
1197
+ ...state.messages,
1198
+ messages: state.messages.messages.filter(
1199
+ (message) => !(message.role === "user" && message.submissionId === key.submissionId && removed.has(message.id))
1200
+ )
1201
+ }
1202
+ };
1203
+ }
1204
+ case "recall-state":
1205
+ return { ...state, recall: copyRecallState(event.recall) };
1093
1206
  case "agent-event": {
1094
1207
  let messages = applyAgentEvent(
1095
1208
  state.messages,
@@ -1123,7 +1236,8 @@ function reduceSessionEvent(state, event) {
1123
1236
  event.text,
1124
1237
  event.attachmentLabels,
1125
1238
  event.at,
1126
- event.steeredAt
1239
+ event.steeredAt,
1240
+ event.submissionId
1127
1241
  )
1128
1242
  };
1129
1243
  case "approval-requested":
@@ -1217,6 +1331,36 @@ function reduceSessionEvent(state, event) {
1217
1331
  return state;
1218
1332
  }
1219
1333
  }
1334
+ function appendRecallEntry(state, entry) {
1335
+ const identity = state.identity;
1336
+ if (identity === null || identity.profile !== entry.key.identity.profile || identity.workspace !== entry.key.identity.workspace || identity.sessionId !== entry.key.identity.sessionId)
1337
+ return state;
1338
+ if (typeof entry.key.submissionId !== "string" || entry.key.submissionId.trim().length === 0 || typeof entry.rawText !== "string" || typeof entry.retracted !== "boolean") {
1339
+ throw new Error("Invalid recall entry");
1340
+ }
1341
+ const index = state.entries.findIndex((item) => item.key.submissionId === entry.key.submissionId);
1342
+ const previous = state.entries[index];
1343
+ if (previous !== void 0) {
1344
+ if (previous.rawText !== entry.rawText) throw new Error("Conflicting submission raw text");
1345
+ if (previous.retracted || !entry.retracted) return state;
1346
+ const entries = [...state.entries];
1347
+ entries[index] = { ...previous, retracted: true };
1348
+ return { ...state, entries };
1349
+ }
1350
+ return { ...state, entries: [structuredClone(entry), ...state.entries] };
1351
+ }
1352
+ function copyRecallState(recall) {
1353
+ let copy = {
1354
+ identity: recall.identity === null ? null : { ...recall.identity },
1355
+ entries: []
1356
+ };
1357
+ for (const entry of [...recall.entries].reverse()) {
1358
+ if (copy.identity === null || copy.identity.profile !== entry.key.identity.profile || copy.identity.workspace !== entry.key.identity.workspace || copy.identity.sessionId !== entry.key.identity.sessionId)
1359
+ throw new Error("Recall entry identity mismatch");
1360
+ copy = appendRecallEntry(copy, entry);
1361
+ }
1362
+ return copy;
1363
+ }
1220
1364
 
1221
1365
  export {
1222
1366
  BACKGROUNDLESS_TOOLS,
@@ -1231,6 +1375,8 @@ export {
1231
1375
  asJsonObject,
1232
1376
  scopedToolKey,
1233
1377
  isProviderRetryMessage,
1378
+ cloneDelegatedMetrics,
1379
+ withDelegatedMetrics,
1234
1380
  withDelegatedModel,
1235
1381
  settleAllProviderRetries,
1236
1382
  settleAllLiveReasoning,
@@ -1254,5 +1400,7 @@ export {
1254
1400
  splitSanitizableDelivery,
1255
1401
  sanitizeCoordinatorDeliveryText,
1256
1402
  createSessionViewState,
1257
- reduceSessionEvent
1403
+ reduceSessionEvent,
1404
+ appendRecallEntry,
1405
+ copyRecallState
1258
1406
  };
@@ -197,8 +197,46 @@ function parseBackgroundWorkCancellation(value) {
197
197
  return { workId: value.workId, outcome: value.outcome };
198
198
  }
199
199
 
200
+ // src/protocol/submission-recovery.ts
201
+ function record(value) {
202
+ return value !== null && typeof value === "object" && !Array.isArray(value);
203
+ }
204
+ function exact(value, fields) {
205
+ return Object.keys(value).length === fields.length && fields.every((field) => Object.hasOwn(value, field));
206
+ }
207
+ function text(value) {
208
+ return typeof value === "string" && value.trim().length > 0;
209
+ }
210
+ function isSubmissionKey(value) {
211
+ return record(value) && exact(value, ["identity", "submissionId"]) && text(value.submissionId) && record(value.identity) && exact(value.identity, ["profile", "workspace", "sessionId"]) && text(value.identity.profile) && text(value.identity.workspace) && text(value.identity.sessionId);
212
+ }
213
+ function sameSubmissionKey(left, right) {
214
+ return left === null || right === null ? left === right : left.submissionId === right.submissionId && left.identity.profile === right.identity.profile && left.identity.workspace === right.identity.workspace && left.identity.sessionId === right.identity.sessionId;
215
+ }
216
+ function parseAbortRecoveryRequest(value) {
217
+ if (!record(value) || !exact(value, ["target"]) || value.target !== null && !isSubmissionKey(value.target))
218
+ throw new Error("Invalid abort recovery request");
219
+ return structuredClone(value);
220
+ }
221
+ function parseAbortRecoveryResult(value, request) {
222
+ if (!record(value)) throw new Error("Invalid abort recovery result");
223
+ let key;
224
+ if (value.status === "retracted" && exact(value, ["status", "key", "rawText"]) && isSubmissionKey(value.key) && typeof value.rawText === "string")
225
+ key = value.key;
226
+ else if (value.status === "not-retracted" && exact(value, ["status", "target", "reason"]) && (value.target === null || isSubmissionKey(value.target)) && typeof value.reason === "string" && ["no-active-human", "target-mismatch", "activity-started", "already-finished"].includes(
227
+ value.reason
228
+ ))
229
+ key = value.target;
230
+ else if (value.status === "failed" && exact(value, ["status", "target", "code", "message"]) && (value.target === null || isSubmissionKey(value.target)) && typeof value.code === "string" && ["abort-failed", "persistence-failed", "persistence-unavailable"].includes(value.code) && typeof value.message === "string")
231
+ key = value.target;
232
+ else throw new Error("Invalid abort recovery result");
233
+ if (request !== void 0 && !sameSubmissionKey(key, request.target))
234
+ throw new Error("Mismatched abort recovery result");
235
+ return structuredClone(value);
236
+ }
237
+
200
238
  // src/protocol/version.ts
201
- var PROTOCOL_VERSION = 68;
239
+ var PROTOCOL_VERSION = 72;
202
240
 
203
241
  export {
204
242
  BACKGROUND_WORK_PROTOCOL_LIMITS,
@@ -207,5 +245,9 @@ export {
207
245
  parseBackgroundWorkPage,
208
246
  parseBackgroundWorkInspection,
209
247
  parseBackgroundWorkCancellation,
248
+ isSubmissionKey,
249
+ sameSubmissionKey,
250
+ parseAbortRecoveryRequest,
251
+ parseAbortRecoveryResult,
210
252
  PROTOCOL_VERSION
211
253
  };
@@ -0,0 +1,14 @@
1
+ import type { ControlCenterRequest, ControlCenterResult } from "../protocol/control-center.ts";
2
+ import type { GetEndpoint } from "./endpoint.ts";
3
+ import type { TransportSocket } from "./socket.ts";
4
+ export declare const CONTROL_CENTER_UNSUPPORTED = "Control Center is unavailable on this daemon. Update or restart the daemon and try again.";
5
+ /** A dedicated, authenticated management connection. It never sends attach. */
6
+ export declare function createControlCenterSocketClient(options: {
7
+ getEndpoint: GetEndpoint;
8
+ socketFactory: (url: string) => TransportSocket;
9
+ timeoutMs?: number;
10
+ }): {
11
+ request(input: ControlCenterRequest): Promise<ControlCenterResult>;
12
+ close(): void;
13
+ };
14
+ //# sourceMappingURL=control-center-socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-center-socket.d.ts","sourceRoot":"","sources":["../../src/client/control-center-socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,0BAA0B,8FACsD,CAAC;AAE9F,+EAA+E;AAC/E,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;mBA2IwB,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;aAwB/D,IAAI;EAMhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-client.d.ts","sourceRoot":"","sources":["../../src/client/daemon-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,KAAK,CAAC;IAChD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACnF,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,KAAK,CAAC;AAEV,MAAM,MAAM,qBAAqB,GAAG;KACjC,CAAC,IAAI,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,wBAAwB,CAAC;IACpC,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,yBAAyB,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,iBAAiB,IAAI,qBAAqB,CAAC;IAC3C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,iBAAiB,CAAC;IACtF,KAAK,IAAI,IAAI,CAAC;CACf;AASD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,qBAAqB,CA0BvB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,gBAAqB,GAC1B,YAAY,CA8Md"}
1
+ {"version":3,"file":"daemon-client.d.ts","sourceRoot":"","sources":["../../src/client/daemon-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,KAAK,CAAC;IAChD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACnF,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,KAAK,CAAC;AAEV,MAAM,MAAM,qBAAqB,GAAG;KACjC,CAAC,IAAI,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,wBAAwB,CAAC;IACpC,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,yBAAyB,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,iBAAiB,IAAI,qBAAqB,CAAC;IAC3C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,iBAAiB,CAAC;IACtF,KAAK,IAAI,IAAI,CAAC;CACf;AASD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,qBAAqB,CA2BvB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,gBAAqB,GAC1B,YAAY,CA2Nd"}
@@ -1,4 +1,4 @@
1
- import type { AddProviderInput, AgentModelSetsView, AgentModelTierMappings, ConfigMutationResult, DaemonDirectoryRow, HistoryPage, ListHistoryParams, ListHistoryWorkspacesParams, ListHistoryWorkspacesResult, ListWorkspaceHistoryParams, ModelReasoningCapabilityView, PersistenceIdentity, ProfileSummary, ProviderConfigSummary, ProviderCredentialInput, SessionSnapshot, UpdateWorkspaceInput, WorkspaceConfigSummary, WorkspaceHistoryPage } from "../protocol/index.ts";
1
+ import type { AddProviderInput, AgentModelSetsView, AgentModelTierMappings, ConfigMutationResult, ControlCenterRequest, ControlCenterResult, DaemonDirectoryRow, HistoryPage, ListHistoryParams, ListHistoryWorkspacesParams, ListHistoryWorkspacesResult, ListWorkspaceHistoryParams, ModelReasoningCapabilityView, PersistenceIdentity, ProfileSummary, ProviderConfigSummary, ProviderCredentialInput, SessionSnapshot, UpdateWorkspaceInput, WorkspaceConfigSummary, WorkspaceHistoryPage } from "../protocol/index.ts";
2
2
  import type { TransportCredential } from "./endpoint.ts";
3
3
  /** Discovery payload: the daemon directory (account-scoped cloud, machine-scoped local). */
4
4
  export type DaemonDirectory = {
@@ -35,6 +35,7 @@ export interface DaemonDirectoryClient {
35
35
  * message; everything else is a plain `Error`.
36
36
  */
37
37
  export interface DaemonDataClient {
38
+ controlCenter(daemonId: string, input: ControlCenterRequest): Promise<ControlCenterResult>;
38
39
  fetchTranscript(daemonId: string, identity: PersistenceIdentity): Promise<SessionSnapshot>;
39
40
  fetchHistory(daemonId: string, opts?: ListHistoryParams): Promise<HistoryPage>;
40
41
  listHistoryWorkspaces(daemonId: string, opts?: ListHistoryWorkspacesParams & {
@@ -1 +1 @@
1
- {"version":3,"file":"data-client.d.ts","sourceRoot":"","sources":["../../src/client/data-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-client.d.ts","sourceRoot":"","sources":["../../src/client/data-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-data-client.d.ts","sourceRoot":"","sources":["../../src/client/http-data-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,YAAY,EASb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAmC,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGpF,MAAM,MAAM,qBAAqB,GAAG;IAClC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;gBAA1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EACnC,OAAO,EAAE,MAAM;CAKlB;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvD;AA6CD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,UAAU,CA6epF"}
1
+ {"version":3,"file":"http-data-client.d.ts","sourceRoot":"","sources":["../../src/client/http-data-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,YAAY,EASb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAmC,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGpF,MAAM,MAAM,qBAAqB,GAAG;IAClC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;gBAA1B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EACnC,OAAO,EAAE,MAAM;CAKlB;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvD;AA6CD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,UAAU,CAmgBpF"}