@adhdev/mesh-shared 1.0.60-rc.72 → 1.0.60-rc.74

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/index.js CHANGED
@@ -47,10 +47,8 @@ __export(index_exports, {
47
47
  DISPATCH_FAILURE_REASONS: () => DISPATCH_FAILURE_REASONS,
48
48
  EVIDENCE_ENVELOPE_FIELD_SPECS: () => EVIDENCE_ENVELOPE_FIELD_SPECS,
49
49
  EVIDENCE_SOURCE_IDS: () => EVIDENCE_SOURCE_IDS,
50
- GRAPH_AUDIT_EVENTS: () => GRAPH_AUDIT_EVENTS,
51
50
  HOLD_REASONS: () => HOLD_REASONS,
52
51
  LIVENESS_RESULTS: () => LIVENESS_RESULTS,
53
- MAGI_RAW_ANSWER_CAP: () => MAGI_RAW_ANSWER_CAP,
54
52
  MAX_MESH_RECORD_STRING: () => MAX_MESH_RECORD_STRING,
55
53
  MAX_OWNED_PATHS: () => MAX_OWNED_PATHS,
56
54
  MESH_CHUNK_KIND: () => MESH_CHUNK_KIND,
@@ -61,7 +59,6 @@ __export(index_exports, {
61
59
  MESH_MAX_CHUNKS: () => MESH_MAX_CHUNKS,
62
60
  MESH_MAX_INLINE_FRAME_BYTES: () => MESH_MAX_INLINE_FRAME_BYTES,
63
61
  MESH_MAX_REASSEMBLED_BYTES: () => MESH_MAX_REASSEMBLED_BYTES,
64
- MESH_MISSION_SOURCES: () => MESH_MISSION_SOURCES,
65
62
  MESH_MISSION_STATUSES: () => MESH_MISSION_STATUSES,
66
63
  MESH_P2P_SIGNAL_TYPES: () => MESH_P2P_SIGNAL_TYPES,
67
64
  MESH_RECORD_PAYLOAD_KEYS: () => MESH_RECORD_PAYLOAD_KEYS,
@@ -95,6 +92,7 @@ __export(index_exports, {
95
92
  RECENT_SESSION_BUCKETS: () => RECENT_SESSION_BUCKETS,
96
93
  RECLAIMING_SEND_REFUSALS: () => RECLAIMING_SEND_REFUSALS,
97
94
  RELEASE_CHANNELS: () => RELEASE_CHANNELS,
95
+ REMOVED_MESH_TOOLS: () => REMOVED_MESH_TOOLS,
98
96
  RETIRED_MESH_TOOLS: () => RETIRED_MESH_TOOLS,
99
97
  SEND_POLICY_MODES: () => SEND_POLICY_MODES,
100
98
  SEND_REFUSAL_REASONS: () => SEND_REFUSAL_REASONS,
@@ -138,7 +136,6 @@ __export(index_exports, {
138
136
  WORKER_TOOLS: () => WORKER_TOOLS,
139
137
  appendWorkerProtocolFooter: () => appendWorkerProtocolFooter,
140
138
  argsCarryStatusProbeMarker: () => argsCarryStatusProbeMarker,
141
- buildMagiPanelProposal: () => buildMagiPanelProposal,
142
139
  buildSlotProposal: () => buildSlotProposal,
143
140
  canonicalDaemonId: () => canonicalDaemonId,
144
141
  classifySessionStatus: () => classifySessionStatus,
@@ -154,18 +151,6 @@ __export(index_exports, {
154
151
  decodeDashboardToUserSession: () => decodeDashboardToUserSession,
155
152
  decodeDirectDispatchRecordRequest: () => decodeDirectDispatchRecordRequest,
156
153
  decodeDirectDispatchRecordResponse: () => decodeDirectDispatchRecordResponse,
157
- decodeGraphAuditRecordRequest: () => decodeGraphAuditRecordRequest,
158
- decodeGraphAuditRecordResponse: () => decodeGraphAuditRecordResponse,
159
- decodeGraphGateAbandonRequest: () => decodeGraphGateAbandonRequest,
160
- decodeGraphGateAbandonResponse: () => decodeGraphGateAbandonResponse,
161
- decodeGraphGateClaimRequest: () => decodeGraphGateClaimRequest,
162
- decodeGraphGateClaimResponse: () => decodeGraphGateClaimResponse,
163
- decodeGraphGateReleaseRequest: () => decodeGraphGateReleaseRequest,
164
- decodeGraphGateReleaseResponse: () => decodeGraphGateReleaseResponse,
165
- decodeGraphNodePatchRequest: () => decodeGraphNodePatchRequest,
166
- decodeGraphNodePatchResponse: () => decodeGraphNodePatchResponse,
167
- decodeGraphViewQueryRequest: () => decodeGraphViewQueryRequest,
168
- decodeGraphViewQueryResponse: () => decodeGraphViewQueryResponse,
169
154
  decodeLedgerQueryRequest: () => decodeLedgerQueryRequest,
170
155
  decodeLedgerQueryResponse: () => decodeLedgerQueryResponse,
171
156
  decodeMeshIndexQueryRequest: () => decodeMeshIndexQueryRequest,
@@ -190,8 +175,8 @@ __export(index_exports, {
190
175
  decodePruneStaleDirectResponse: () => decodePruneStaleDirectResponse,
191
176
  decodeQueueCancelRequest: () => decodeQueueCancelRequest,
192
177
  decodeQueueCancelResponse: () => decodeQueueCancelResponse,
193
- decodeQueueEnqueueGraphRequest: () => decodeQueueEnqueueGraphRequest,
194
- decodeQueueEnqueueGraphResponse: () => decodeQueueEnqueueGraphResponse,
178
+ decodeQueueEnqueueBatchRequest: () => decodeQueueEnqueueBatchRequest,
179
+ decodeQueueEnqueueBatchResponse: () => decodeQueueEnqueueBatchResponse,
195
180
  decodeQueueEnqueueRequest: () => decodeQueueEnqueueRequest,
196
181
  decodeQueueEnqueueResponse: () => decodeQueueEnqueueResponse,
197
182
  decodeQueueQueryRequest: () => decodeQueueQueryRequest,
@@ -230,8 +215,6 @@ __export(index_exports, {
230
215
  hasGitStatusEvidence: () => hasGitStatusEvidence,
231
216
  hasWorkerProtocolFooter: () => hasWorkerProtocolFooter,
232
217
  interpolateString: () => interpolateString,
233
- isActiveWorkQueryRequest: () => isActiveWorkQueryRequest,
234
- isActiveWorkQueryResponse: () => isActiveWorkQueryResponse,
235
218
  isBlockedStatus: () => isBlockedStatus,
236
219
  isBusyStatus: () => isBusyStatus,
237
220
  isChunkType: () => isChunkType,
@@ -247,38 +230,16 @@ __export(index_exports, {
247
230
  isDashboardToDaemonP2PType: () => isDashboardToDaemonP2PType,
248
231
  isDashboardToUserSessionType: () => isDashboardToUserSessionType,
249
232
  isDeadStatus: () => isDeadStatus,
250
- isDirectDispatchRecordRequest: () => isDirectDispatchRecordRequest,
251
- isDirectDispatchRecordResponse: () => isDirectDispatchRecordResponse,
252
233
  isDowngrade: () => isDowngrade,
253
234
  isEvidenceIdentifier: () => isEvidenceIdentifier,
254
235
  isFiniteNumber: () => isFiniteNumber,
255
- isGraphAuditEvent: () => isGraphAuditEvent,
256
- isGraphAuditRecordRequest: () => isGraphAuditRecordRequest,
257
- isGraphAuditRecordResponse: () => isGraphAuditRecordResponse,
258
- isGraphGateAbandonRequest: () => isGraphGateAbandonRequest,
259
- isGraphGateAbandonResponse: () => isGraphGateAbandonResponse,
260
- isGraphGateClaimRequest: () => isGraphGateClaimRequest,
261
- isGraphGateClaimResponse: () => isGraphGateClaimResponse,
262
- isGraphGateReleaseRequest: () => isGraphGateReleaseRequest,
263
- isGraphGateReleaseResponse: () => isGraphGateReleaseResponse,
264
- isGraphNodePatchRequest: () => isGraphNodePatchRequest,
265
- isGraphNodePatchResponse: () => isGraphNodePatchResponse,
266
- isGraphViewQueryRequest: () => isGraphViewQueryRequest,
267
- isGraphViewQueryResponse: () => isGraphViewQueryResponse,
268
236
  isIdleSessionState: () => isIdleSessionState,
269
237
  isInputEnvelopeWire: () => isInputEnvelopeWire,
270
- isLedgerQueryRequest: () => isLedgerQueryRequest,
271
- isLedgerQueryResponse: () => isLedgerQueryResponse,
272
238
  isMeshDeliveryMode: () => isMeshDeliveryMode,
273
- isMeshIndexQueryRequest: () => isMeshIndexQueryRequest,
274
239
  isMeshIndexQueryResponse: () => isMeshIndexQueryResponse,
275
- isMeshIndexQueryWriterScope: () => isMeshIndexQueryWriterScope,
276
- isMeshMissionSourceValue: () => isMeshMissionSourceValue,
277
240
  isMeshMissionStatusValue: () => isMeshMissionStatusValue,
278
241
  isMeshP2PSignalType: () => isMeshP2PSignalType,
279
242
  isMeshRecordPayload: () => isMeshRecordPayload,
280
- isMeshRecordRequest: () => isMeshRecordRequest,
281
- isMeshRecordResponse: () => isMeshRecordResponse,
282
243
  isMeshTaskDifficulty: () => isMeshTaskDifficulty,
283
244
  isMeshTaskMode: () => isMeshTaskMode,
284
245
  isMeshTaskPriority: () => isMeshTaskPriority,
@@ -286,49 +247,17 @@ __export(index_exports, {
286
247
  isMeshTerminalTaskStatus: () => isMeshTerminalTaskStatus,
287
248
  isMeshTopicEntry: () => isMeshTopicEntry,
288
249
  isMessageId: () => isMessageId,
289
- isMissionListQueryRequest: () => isMissionListQueryRequest,
290
- isMissionListQueryResponse: () => isMissionListQueryResponse,
291
- isMissionQueryRequest: () => isMissionQueryRequest,
292
- isMissionQueryResponse: () => isMissionQueryResponse,
293
- isMissionUpsertRequest: () => isMissionUpsertRequest,
294
250
  isMissionUpsertResponse: () => isMissionUpsertResponse,
295
251
  isModelAxisSource: () => isModelAxisSource,
296
252
  isNonEmptyString: () => isNonEmptyString,
297
- isNoteForgetRequest: () => isNoteForgetRequest,
298
- isNoteForgetResponse: () => isNoteForgetResponse,
299
- isNoteUpsertRequest: () => isNoteUpsertRequest,
300
- isNoteUpsertResponse: () => isNoteUpsertResponse,
301
253
  isNotifyKind: () => isNotifyKind,
302
- isOperatingNoteCategory: () => isOperatingNoteCategory,
303
- isOperatorStatusReasonValue: () => isOperatorStatusReasonValue,
304
- isOperatorStatusRequest: () => isOperatorStatusRequest,
305
- isOperatorStatusResponse: () => isOperatorStatusResponse,
306
- isOperatorStatusValue: () => isOperatorStatusValue,
307
- isOrphanedPinNotifyRequest: () => isOrphanedPinNotifyRequest,
308
- isOrphanedPinNotifyResponse: () => isOrphanedPinNotifyResponse,
309
254
  isOutboundMessage: () => isOutboundMessage,
310
255
  isOutboundMessageOrigin: () => isOutboundMessageOrigin,
311
256
  isP2PSignalType: () => isP2PSignalType,
312
257
  isPhantomDaemonEntry: () => isPhantomDaemonEntry,
313
- isPruneStaleDirectRequest: () => isPruneStaleDirectRequest,
314
- isPruneStaleDirectResponse: () => isPruneStaleDirectResponse,
315
- isQueueCancelRequest: () => isQueueCancelRequest,
316
- isQueueCancelResponse: () => isQueueCancelResponse,
317
- isQueueEnqueueGraphRequest: () => isQueueEnqueueGraphRequest,
318
- isQueueEnqueueGraphResponse: () => isQueueEnqueueGraphResponse,
319
- isQueueEnqueueRequest: () => isQueueEnqueueRequest,
320
- isQueueEnqueueResponse: () => isQueueEnqueueResponse,
321
- isQueueQueryRequest: () => isQueueQueryRequest,
322
- isQueueQueryResponse: () => isQueueQueryResponse,
323
- isQueueRequeueRequest: () => isQueueRequeueRequest,
324
- isQueueRequeueResponse: () => isQueueRequeueResponse,
325
258
  isRawDaemonDoId: () => isRawDaemonDoId,
326
259
  isReadyStatus: () => isReadyStatus,
327
260
  isRecord: () => isRecord,
328
- isRecordLocalRequest: () => isRecordLocalRequest,
329
- isRecordLocalResponse: () => isRecordLocalResponse,
330
- isRecoveryContextQueryRequest: () => isRecoveryContextQueryRequest,
331
- isRecoveryContextQueryResponse: () => isRecoveryContextQueryResponse,
332
261
  isSendPolicy: () => isSendPolicy,
333
262
  isSendPolicyMode: () => isSendPolicyMode,
334
263
  isSendRefusal: () => isSendRefusal,
@@ -339,26 +268,14 @@ __export(index_exports, {
339
268
  isSharedSessionToViewerType: () => isSharedSessionToViewerType,
340
269
  isSubmitOutcome: () => isSubmitOutcome,
341
270
  isSummaryRef: () => isSummaryRef,
342
- isTaskStatsQueryRequest: () => isTaskStatsQueryRequest,
343
- isTaskStatsQueryResponse: () => isTaskStatsQueryResponse,
344
271
  isTerminalSessionRecordStatus: () => isTerminalSessionRecordStatus,
345
- isToolCallRecordRequest: () => isToolCallRecordRequest,
346
- isToolCallRecordResponse: () => isToolCallRecordResponse,
347
- isToolCallerRole: () => isToolCallerRole,
348
272
  isTurnAttemptRef: () => isTurnAttemptRef,
349
- isTurnCancelRequest: () => isTurnCancelRequest,
350
- isTurnCancelResponse: () => isTurnCancelResponse,
351
273
  isTurnEvidence: () => isTurnEvidence,
352
274
  isTurnEvidenceKind: () => isTurnEvidenceKind,
353
275
  isTurnIpcCommand: () => isTurnIpcCommand,
354
276
  isTurnIpcError: () => isTurnIpcError,
355
277
  isTurnIpcErrorCode: () => isTurnIpcErrorCode,
356
- isTurnObserveRequest: () => isTurnObserveRequest,
357
- isTurnObserveResponse: () => isTurnObserveResponse,
358
- isTurnObserveVerdict: () => isTurnObserveVerdict,
359
278
  isTurnOutcome: () => isTurnOutcome,
360
- isTurnQueryRequest: () => isTurnQueryRequest,
361
- isTurnQueryResponse: () => isTurnQueryResponse,
362
279
  isTurnReason: () => isTurnReason,
363
280
  isUserSessionToDashboardType: () => isUserSessionToDashboardType,
364
281
  isViewerToSharedSessionType: () => isViewerToSharedSessionType,
@@ -394,14 +311,17 @@ __export(index_exports, {
394
311
  parseSessionLaunchRecord: () => parseSessionLaunchRecord,
395
312
  pathsOverlap: () => pathsOverlap,
396
313
  pickBestTransitGitStatus: () => pickBestTransitGitStatus,
314
+ projectFileDiffRow: () => projectFileDiffRow,
397
315
  projectTurnEvidenceEntry: () => projectTurnEvidenceEntry,
398
316
  readBoolean: () => readBoolean,
399
317
  readEnvelopeFields: () => readEnvelopeFields,
400
318
  readGitSubmodules: () => readGitSubmodules,
401
319
  readNumber: () => readNumber,
320
+ readOptionalRecord: () => readOptionalRecord,
402
321
  readRecord: () => readRecord,
403
322
  readString: () => readString,
404
323
  readStringArray: () => readStringArray,
324
+ readText: () => readText,
405
325
  renderCoordinatorWorkerSection: () => renderCoordinatorWorkerSection,
406
326
  renderMissionBriefBlock: () => renderMissionBriefBlock,
407
327
  renderWorkerProtocolFooter: () => renderWorkerProtocolFooter,
@@ -426,6 +346,9 @@ module.exports = __toCommonJS(index_exports);
426
346
  function readRecord(value) {
427
347
  return value && typeof value === "object" && !Array.isArray(value) ? value : {};
428
348
  }
349
+ function readOptionalRecord(value) {
350
+ return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
351
+ }
429
352
  function readString(...values) {
430
353
  for (const value of values) {
431
354
  if (typeof value !== "string") continue;
@@ -434,6 +357,9 @@ function readString(...values) {
434
357
  }
435
358
  return void 0;
436
359
  }
360
+ function readText(...values) {
361
+ return readString(...values) ?? "";
362
+ }
437
363
  function readNumber(...values) {
438
364
  for (const value of values) {
439
365
  if (typeof value === "number" && Number.isFinite(value)) return value;
@@ -801,8 +727,29 @@ function summarizeGitShape(status) {
801
727
  };
802
728
  }
803
729
 
804
- // src/magi.ts
805
- var MAGI_RAW_ANSWER_CAP = 4e3;
730
+ // src/git-diff.ts
731
+ function truncateDiffText(text, maxLines) {
732
+ const lines = text.split("\n");
733
+ const truncated = lines.length > maxLines;
734
+ return {
735
+ diff: truncated ? lines.slice(0, maxLines).join("\n") + "\n... (truncated)" : text,
736
+ truncated
737
+ };
738
+ }
739
+ function projectFileDiffRow(file, rawResult, maxLines) {
740
+ const raw = readRecord(rawResult);
741
+ const d = readRecord(raw.diff ?? rawResult);
742
+ const text = typeof d.diff === "string" ? d.diff : "";
743
+ const { diff, truncated } = truncateDiffText(text, maxLines);
744
+ return {
745
+ path: file.path,
746
+ old_path: file.oldPath ?? null,
747
+ status: file.status ?? "M",
748
+ diff,
749
+ truncated,
750
+ binary: typeof d.binary === "boolean" ? d.binary : false
751
+ };
752
+ }
806
753
 
807
754
  // src/brain-routing.ts
808
755
  var MESH_TASK_DIFFICULTIES = ["easy", "medium", "difficult", "freeform"];
@@ -1043,23 +990,6 @@ function buildSlotProposal(detected, currentSlots = []) {
1043
990
  destructive: droppedSlots.length > 0
1044
991
  };
1045
992
  }
1046
- function buildMagiPanelProposal(detected, opts = {}) {
1047
- const providers = dedupeDetected(detected ?? []);
1048
- const tableOrder = Object.keys(CLI_SLOT_RECIPES);
1049
- const rank = (type) => {
1050
- const i = tableOrder.indexOf(type);
1051
- return i === -1 ? Number.MAX_SAFE_INTEGER : i;
1052
- };
1053
- const ordered = [...providers].sort((a, b) => rank(a.type) - rank(b.type));
1054
- const limit = Number.isFinite(opts.maxSlots) && opts.maxSlots > 0 ? Math.floor(opts.maxSlots) : ordered.length;
1055
- return ordered.slice(0, limit).map((p) => ({
1056
- ...opts.nodeId ? { nodeId: opts.nodeId } : {},
1057
- provider: p.type
1058
- // A model is intentionally NOT pinned: the panel's job is cross-provider
1059
- // independence, and pinning models here would silently couple the panel
1060
- // to this table's cost assumptions rather than to review quality.
1061
- }));
1062
- }
1063
993
 
1064
994
  // src/interpolation.ts
1065
995
  function interpolateString(template, ctx) {
@@ -1074,14 +1004,10 @@ var CANONICAL_MESH_TOOL_NAMES = [
1074
1004
  "mesh_status",
1075
1005
  "mesh_route_preview",
1076
1006
  "mesh_list_nodes",
1077
- // GRAPH-ORCHESTRATION Phase F — batch before task, mirroring ALL_MESH_TOOLS.
1007
+ // Batch before task, mirroring ALL_MESH_TOOLS.
1078
1008
  "mesh_enqueue_batch",
1079
1009
  "mesh_enqueue_task",
1080
1010
  "mesh_view_queue",
1081
- // GRAPH-ORCHESTRATION Phase E — the coordinator gate + graph view surface.
1082
- "mesh_graph_view",
1083
- "mesh_graph_gate",
1084
- "mesh_graph_node_patch",
1085
1011
  "mesh_queue_cancel",
1086
1012
  "mesh_queue_requeue",
1087
1013
  "mesh_send_task",
@@ -1116,29 +1042,14 @@ var CANONICAL_MESH_TOOL_NAMES = [
1116
1042
  "mesh_mission_upsert",
1117
1043
  "mesh_mission_list",
1118
1044
  "mesh_review_inbox",
1119
- "mesh_magi_review",
1120
- "mesh_magi_collect",
1121
- "mesh_magi_kind_panel",
1122
1045
  "mesh_node_slots",
1123
1046
  "mesh_coordinator_prompt_append"
1124
1047
  ];
1125
1048
  var CANONICAL_MESH_TOOL_COUNT = CANONICAL_MESH_TOOL_NAMES.length;
1126
1049
  var RETIRED_MESH_TOOLS = {
1127
- mesh_graph_gate_claim: {
1128
- tool: "mesh_graph_gate",
1129
- args: { action: "claim" },
1130
- note: 'The extend-only form (claim with extend_seconds) is now action: "extend" with the same extend_seconds.'
1131
- },
1132
- mesh_graph_gate_release: { tool: "mesh_graph_gate", args: { action: "release" } },
1133
- mesh_graph_gate_abandon: { tool: "mesh_graph_gate", args: { action: "abandon" } },
1134
- // Never a published tool (it is the daemon command behind the extend verb),
1135
- // but an older gate-expiry notice told coordinators to call it by this name.
1136
- mesh_graph_gate_extend: { tool: "mesh_graph_gate", args: { action: "extend" } },
1137
1050
  mesh_node_slots_set: { tool: "mesh_node_slots", args: { action: "set" } },
1138
1051
  mesh_node_slots_list: { tool: "mesh_node_slots", args: { action: "list" } },
1139
1052
  mesh_node_slots_propose: { tool: "mesh_node_slots", args: { action: "propose" } },
1140
- mesh_magi_kind_panel_set: { tool: "mesh_magi_kind_panel", args: { action: "set" } },
1141
- mesh_magi_kind_panel_list: { tool: "mesh_magi_kind_panel", args: { action: "list" } },
1142
1053
  mesh_coordinator_prompt_append_get: { tool: "mesh_coordinator_prompt_append", args: { action: "get" } },
1143
1054
  mesh_coordinator_prompt_append_set: { tool: "mesh_coordinator_prompt_append", args: { action: "set" } },
1144
1055
  mesh_record_note: { tool: "mesh_note", args: { action: "record" } },
@@ -1150,7 +1061,17 @@ var RETIRED_MESH_TOOLS = {
1150
1061
  mesh_plan_onboarding: { tool: "mesh_create", args: { mode: "plan" } },
1151
1062
  mesh_prune_stale_direct: { tool: "mesh_cleanup_sessions", args: { mode: "prune_stale_direct" } }
1152
1063
  };
1064
+ var REMOVED_MESH_TOOLS = {
1065
+ mesh_magi_review: "For a multi-perspective review, send the same question to 2-3 workers on different providers with mesh_send_task, wait for their report_completion, then synthesize the answers yourself.",
1066
+ mesh_magi_collect: "Worker answers arrive as report_completion events; synthesize them yourself.",
1067
+ mesh_magi_kind_panel: "There are no review panels any more; pick the workers per review with mesh_send_task.",
1068
+ mesh_magi_kind_panel_set: "There are no review panels any more; pick the workers per review with mesh_send_task.",
1069
+ mesh_magi_kind_panel_list: "There are no review panels any more; pick the workers per review with mesh_send_task."
1070
+ };
1153
1071
  function retiredMeshToolError(name) {
1072
+ if (Object.prototype.hasOwnProperty.call(REMOVED_MESH_TOOLS, name)) {
1073
+ return `Tool "${name}" was removed. ${REMOVED_MESH_TOOLS[name]}`;
1074
+ }
1154
1075
  const entry = Object.prototype.hasOwnProperty.call(RETIRED_MESH_TOOLS, name) ? RETIRED_MESH_TOOLS[name] : void 0;
1155
1076
  if (!entry) return null;
1156
1077
  const discriminator = Object.entries(entry.args).map(([k, v]) => `${k}: "${v}"`).join(", ");
@@ -1447,7 +1368,6 @@ var DAEMON_TO_SERVER_TYPES = [
1447
1368
  "command_result",
1448
1369
  "error",
1449
1370
  "agent_event",
1450
- "beacon_vectors",
1451
1371
  "daemon_mesh_command",
1452
1372
  "p2p_offer",
1453
1373
  "p2p_ice"
@@ -1480,7 +1400,6 @@ var SERVER_TO_DAEMON_CONTROL_TYPES = [
1480
1400
  "command",
1481
1401
  "agent_command",
1482
1402
  "resolve_action",
1483
- "beacon_vectors_result",
1484
1403
  "daemon_mesh_result",
1485
1404
  "p2p_ready",
1486
1405
  "p2p_offer",
@@ -1505,18 +1424,9 @@ function decodeServerToDaemon(raw) {
1505
1424
  ...readEnvelopeFields(raw),
1506
1425
  ...isNonEmptyString(raw.source) ? { source: raw.source } : {}
1507
1426
  };
1508
- if (raw.type === "beacon_vectors_result" || raw.type === "daemon_mesh_result") {
1427
+ if (raw.type === "daemon_mesh_result") {
1509
1428
  if (!isNonEmptyString(raw.requestId)) return null;
1510
1429
  const base = { requestId: raw.requestId, success: raw.success === true };
1511
- if (raw.type === "beacon_vectors_result") {
1512
- return {
1513
- type: "beacon_vectors_result",
1514
- ...base,
1515
- ...Array.isArray(raw.reports) ? { reports: raw.reports } : {},
1516
- ...typeof raw.truncated === "number" ? { truncated: raw.truncated } : {},
1517
- ...typeof raw.error === "string" ? { error: raw.error } : {}
1518
- };
1519
- }
1520
1430
  return {
1521
1431
  type: "daemon_mesh_result",
1522
1432
  ...base,
@@ -2493,9 +2403,6 @@ function sanitizeModelIdentifier(value) {
2493
2403
  const trimmed = value.trim();
2494
2404
  return MODEL_IDENTIFIER_PATTERN.test(trimmed) ? trimmed : void 0;
2495
2405
  }
2496
- function readString2(value) {
2497
- return typeof value === "string" && value.trim() ? value.trim() : void 0;
2498
- }
2499
2406
  function readFiniteNumber(value) {
2500
2407
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
2501
2408
  }
@@ -2507,17 +2414,17 @@ function parseModelSelection(raw) {
2507
2414
  for (const entry of record.history) {
2508
2415
  if (!entry || typeof entry !== "object") continue;
2509
2416
  const e = entry;
2510
- const value = readString2(e.value);
2417
+ const value = readString(e.value);
2511
2418
  const at = readFiniteNumber(e.at);
2512
2419
  const via = e.via === "launch" || e.via === "change_model" || e.via === "observed" ? e.via : void 0;
2513
2420
  if (value && at !== void 0 && via) history.push({ at, value, via });
2514
2421
  }
2515
2422
  }
2516
- const requested = readString2(record.requested);
2517
- const launchValue = readString2(record.launchValue);
2518
- const resolvedDefault = readString2(record.resolvedDefault);
2519
- const current = readString2(record.current);
2520
- const observed = readString2(record.observed);
2423
+ const requested = readString(record.requested);
2424
+ const launchValue = readString(record.launchValue);
2425
+ const resolvedDefault = readString(record.resolvedDefault);
2426
+ const current = readString(record.current);
2427
+ const observed = readString(record.observed);
2521
2428
  const observedAt = readFiniteNumber(record.observedAt);
2522
2429
  return {
2523
2430
  source: isModelAxisSource(record.source) ? record.source : "unspecified",
@@ -2533,15 +2440,15 @@ function parseModelSelection(raw) {
2533
2440
  function parseSessionLaunchRecord(raw) {
2534
2441
  if (!raw || typeof raw !== "object") return void 0;
2535
2442
  const record = raw;
2536
- const sessionId = readString2(record.sessionId);
2537
- const providerType = readString2(record.providerType);
2443
+ const sessionId = readString(record.sessionId);
2444
+ const providerType = readString(record.providerType);
2538
2445
  const launchedAt = readFiniteNumber(record.launchedAt);
2539
2446
  const model = parseModelSelection(record.model);
2540
2447
  const thinkingLevel = parseModelSelection(record.thinkingLevel);
2541
2448
  if (!sessionId || !providerType || launchedAt === void 0 || !model || !thinkingLevel) return void 0;
2542
- const providerVersion = readString2(record.providerVersion);
2543
- const workspace = readString2(record.workspace);
2544
- const autoApproveModeId = readString2(record.autoApproveModeId);
2449
+ const providerVersion = readString(record.providerVersion);
2450
+ const workspace = readString(record.workspace);
2451
+ const autoApproveModeId = readString(record.autoApproveModeId);
2545
2452
  return {
2546
2453
  sessionId,
2547
2454
  providerType,
@@ -2556,7 +2463,7 @@ function parseSessionLaunchRecord(raw) {
2556
2463
  };
2557
2464
  }
2558
2465
 
2559
- // src/turn-ipc.ts
2466
+ // src/turn-ipc-guards.ts
2560
2467
  var TURN_IPC_PROTOCOL_VERSION = 1;
2561
2468
  function isFiniteNumber3(value) {
2562
2469
  return typeof value === "number" && Number.isFinite(value);
@@ -2573,15 +2480,30 @@ function hasOnlyKeys2(value, allowed) {
2573
2480
  }
2574
2481
  return true;
2575
2482
  }
2576
- var TURN_IPC_ERROR_CODES = ["daemon_required", "turn_ledger_unavailable", "ledger_not_owner"];
2577
2483
  function makeGuard3(values) {
2578
2484
  const set = new Set(values);
2579
2485
  return (value) => typeof value === "string" && set.has(value);
2580
2486
  }
2581
- var isTurnIpcErrorCode = makeGuard3(TURN_IPC_ERROR_CODES);
2582
- function isTurnIpcError(value) {
2583
- return isRecord(value) && hasOnlyKeys2(value, ["code", "detail"]) && isTurnIpcErrorCode(value.code) && (value.detail === void 0 || typeof value.detail === "string");
2487
+ function isStringArray(value) {
2488
+ return Array.isArray(value) && value.every((v) => typeof v === "string");
2584
2489
  }
2490
+ function isOptionalShortString(value, max = 512) {
2491
+ return value === void 0 || typeof value === "string" && value.trim().length > 0 && value.length <= max;
2492
+ }
2493
+ function isRecordArray(value) {
2494
+ return Array.isArray(value) && value.every(isRecord);
2495
+ }
2496
+ function isOptionalRecord(value) {
2497
+ return value === void 0 || isRecord(value);
2498
+ }
2499
+ function isOptionalBoolean(value) {
2500
+ return value === void 0 || typeof value === "boolean";
2501
+ }
2502
+ function isOptionalString(value) {
2503
+ return value === void 0 || typeof value === "string";
2504
+ }
2505
+
2506
+ // src/turn-ipc-turn.ts
2585
2507
  var TURN_OBSERVE_VERDICTS = ["applied", "recorded", "rejected"];
2586
2508
  var isTurnObserveVerdict = makeGuard3(TURN_OBSERVE_VERDICTS);
2587
2509
  function isTurnObserveRequest(value) {
@@ -2810,13 +2732,10 @@ function isMeshIndexQueryResponse(value) {
2810
2732
  function decodeMeshIndexQueryResponse(value) {
2811
2733
  return isMeshIndexQueryResponse(value) ? value : null;
2812
2734
  }
2735
+
2736
+ // src/turn-ipc-mission.ts
2813
2737
  var MESH_MISSION_STATUSES = ["active", "paused", "completed", "abandoned"];
2814
2738
  var isMeshMissionStatusValue = makeGuard3(MESH_MISSION_STATUSES);
2815
- var MESH_MISSION_SOURCES = ["magi", "coordinator"];
2816
- var isMeshMissionSourceValue = makeGuard3(MESH_MISSION_SOURCES);
2817
- function isStringArray(value) {
2818
- return Array.isArray(value) && value.every((v) => typeof v === "string");
2819
- }
2820
2739
  function isMissionBriefWire(value) {
2821
2740
  if (!isRecord(value) || !hasOnlyKeys2(value, ["goal", "constraints", "doneCriteria", "handoffNotes", "ownedPaths"])) return false;
2822
2741
  if (typeof value.goal !== "string" || value.goal.trim().length === 0) return false;
@@ -2826,23 +2745,21 @@ function isMissionBriefWire(value) {
2826
2745
  return true;
2827
2746
  }
2828
2747
  function isMeshMissionRecordWire(value) {
2829
- if (!isRecord(value) || !hasOnlyKeys2(value, ["id", "meshId", "title", "goal", "status", "source", "brief"])) return false;
2748
+ if (!isRecord(value) || !hasOnlyKeys2(value, ["id", "meshId", "title", "goal", "status", "brief"])) return false;
2830
2749
  if (!isEvidenceIdentifier(value.id) || !isEvidenceIdentifier(value.meshId)) return false;
2831
2750
  if (typeof value.title !== "string" || typeof value.goal !== "string") return false;
2832
2751
  if (!isMeshMissionStatusValue(value.status)) return false;
2833
- if (value.source !== void 0 && !isMeshMissionSourceValue(value.source)) return false;
2834
2752
  if (value.brief !== void 0 && !isMissionBriefWire(value.brief)) return false;
2835
2753
  return true;
2836
2754
  }
2837
2755
  function isMissionUpsertRequest(value) {
2838
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "id", "title", "goal", "status", "source", "brief"])) return false;
2756
+ if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "id", "title", "goal", "status", "brief"])) return false;
2839
2757
  if (value.v !== TURN_IPC_PROTOCOL_VERSION) return false;
2840
2758
  if (!isEvidenceIdentifier(value.meshId)) return false;
2841
2759
  if (value.id !== void 0 && !isEvidenceIdentifier(value.id)) return false;
2842
2760
  if (typeof value.title !== "string" || value.title.trim().length === 0) return false;
2843
2761
  if (value.goal !== void 0 && typeof value.goal !== "string") return false;
2844
2762
  if (value.status !== void 0 && !isMeshMissionStatusValue(value.status)) return false;
2845
- if (value.source !== void 0 && !isMeshMissionSourceValue(value.source)) return false;
2846
2763
  if (value.brief !== void 0 && value.brief !== null && !isMissionBriefWire(value.brief)) return false;
2847
2764
  return true;
2848
2765
  }
@@ -2876,7 +2793,7 @@ function decodeMissionQueryResponse(value) {
2876
2793
  return isMissionQueryResponse(value) ? value : null;
2877
2794
  }
2878
2795
  function isMissionListQueryRequest(value) {
2879
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "statuses", "verbose", "includeMagi", "withStats", "limit", "historyIdLimit", "meshStatusView"])) return false;
2796
+ if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "statuses", "verbose", "withStats", "limit", "historyIdLimit", "meshStatusView"])) return false;
2880
2797
  if (value.meshStatusView !== void 0 && value.meshStatusView !== "compact" && value.meshStatusView !== "verbose") return false;
2881
2798
  if (value.v !== TURN_IPC_PROTOCOL_VERSION) return false;
2882
2799
  if (!isEvidenceIdentifier(value.meshId)) return false;
@@ -2885,7 +2802,6 @@ function isMissionListQueryRequest(value) {
2885
2802
  if (!value.statuses.every(isMeshMissionStatusValue)) return false;
2886
2803
  }
2887
2804
  if (value.verbose !== void 0 && typeof value.verbose !== "boolean") return false;
2888
- if (value.includeMagi !== void 0 && typeof value.includeMagi !== "boolean") return false;
2889
2805
  if (value.withStats !== void 0 && typeof value.withStats !== "boolean") return false;
2890
2806
  if (value.limit !== void 0 && !isNonNegativeInt(value.limit)) return false;
2891
2807
  if (value.historyIdLimit !== void 0 && !isNonNegativeInt(value.historyIdLimit)) return false;
@@ -2918,13 +2834,12 @@ function isMissionListSummaryWire(value) {
2918
2834
  const hasGoal = "goal" in value;
2919
2835
  const hasPreview = "goalPreview" in value && "goalTruncated" in value;
2920
2836
  if (hasGoal === hasPreview) return false;
2921
- const baseKeys = ["id", "meshId", "title", "status", "source", "tasks", "stats", "brief", "createdAt", "updatedAt", "closeCandidateEmittedAt"];
2837
+ const baseKeys = ["id", "meshId", "title", "status", "tasks", "stats", "brief", "createdAt", "updatedAt", "closeCandidateEmittedAt"];
2922
2838
  const allowed = hasGoal ? [...baseKeys, "goal"] : [...baseKeys, "goalPreview", "goalTruncated"];
2923
2839
  if (!hasOnlyKeys2(value, allowed)) return false;
2924
2840
  if (!isEvidenceIdentifier(value.id) || !isEvidenceIdentifier(value.meshId)) return false;
2925
2841
  if (typeof value.title !== "string") return false;
2926
2842
  if (!isMeshMissionStatusValue(value.status)) return false;
2927
- if (value.source !== void 0 && !isMeshMissionSourceValue(value.source)) return false;
2928
2843
  if (!isMeshMissionTaskAggregateWire(value.tasks)) return false;
2929
2844
  if (value.stats !== void 0 && !isMeshMissionStatsWire(value.stats)) return false;
2930
2845
  if (value.brief !== void 0 && !isMissionBriefWire(value.brief)) return false;
@@ -2956,9 +2871,6 @@ function decodeMissionListQueryResponse(value) {
2956
2871
  }
2957
2872
  var OPERATING_NOTE_CATEGORIES = ["provider_quirk", "pattern_to_avoid", "recovery_lesson"];
2958
2873
  var isOperatingNoteCategory = makeGuard3(OPERATING_NOTE_CATEGORIES);
2959
- function isOptionalShortString(value, max = 512) {
2960
- return value === void 0 || typeof value === "string" && value.trim().length > 0 && value.length <= max;
2961
- }
2962
2874
  function isNoteUpsertRequest(value) {
2963
2875
  if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "text", "category", "pinned", "expiresAt", "supersedes", "subjectKey", "sourceCoordinator"])) return false;
2964
2876
  if (value.v !== TURN_IPC_PROTOCOL_VERSION) return false;
@@ -3052,18 +2964,8 @@ function isLedgerQueryResponse(value) {
3052
2964
  function decodeLedgerQueryResponse(value) {
3053
2965
  return isLedgerQueryResponse(value) ? value : null;
3054
2966
  }
3055
- function isRecordArray(value) {
3056
- return Array.isArray(value) && value.every(isRecord);
3057
- }
3058
- function isOptionalRecord(value) {
3059
- return value === void 0 || isRecord(value);
3060
- }
3061
- function isOptionalBoolean(value) {
3062
- return value === void 0 || typeof value === "boolean";
3063
- }
3064
- function isOptionalString(value) {
3065
- return value === void 0 || typeof value === "string";
3066
- }
2967
+
2968
+ // src/turn-ipc-queue.ts
3067
2969
  function isQueueEntryWire(value) {
3068
2970
  return isRecord(value) && isEvidenceIdentifier(value.id) && typeof value.status === "string";
3069
2971
  }
@@ -3090,7 +2992,7 @@ function decodeQueueQueryRequest(value) {
3090
2992
  return isQueueQueryRequest(value) ? value : null;
3091
2993
  }
3092
2994
  function isQueueDependencyHeadWire(value) {
3093
- return isRecord(value) && hasOnlyKeys2(value, ["id", "status", "blockedReason", "cancelReason"]) && typeof value.id === "string" && typeof value.status === "string" && (value.blockedReason === void 0 || typeof value.blockedReason === "string") && (value.cancelReason === void 0 || typeof value.cancelReason === "string");
2995
+ return isRecord(value) && hasOnlyKeys2(value, ["id", "status", "cancelReason"]) && typeof value.id === "string" && typeof value.status === "string" && (value.cancelReason === void 0 || typeof value.cancelReason === "string");
3094
2996
  }
3095
2997
  function isQueueQueryResponse(value) {
3096
2998
  if (!isRecord(value) || !hasOnlyKeys2(value, ["entries", "counts", "oldHistoricalCount", "dependencyHeads"])) return false;
@@ -3104,7 +3006,7 @@ function decodeQueueQueryResponse(value) {
3104
3006
  return isQueueQueryResponse(value) ? value : null;
3105
3007
  }
3106
3008
  function isQueueEnqueueRequest(value) {
3107
- return isRecord(value) && hasOnlyKeys2(value, ["v", "meshId", "message", "options", "decision"]) && value.v === TURN_IPC_PROTOCOL_VERSION && isEvidenceIdentifier(value.meshId) && typeof value.message === "string" && isOptionalRecord(value.options) && isOptionalRecord(value.decision);
3009
+ return isRecord(value) && hasOnlyKeys2(value, ["v", "meshId", "message", "options"]) && value.v === TURN_IPC_PROTOCOL_VERSION && isEvidenceIdentifier(value.meshId) && typeof value.message === "string" && isOptionalRecord(value.options);
3108
3010
  }
3109
3011
  function decodeQueueEnqueueRequest(value) {
3110
3012
  return isQueueEnqueueRequest(value) ? value : null;
@@ -3115,28 +3017,24 @@ function isQueueEnqueueResponse(value) {
3115
3017
  function decodeQueueEnqueueResponse(value) {
3116
3018
  return isQueueEnqueueResponse(value) ? value : null;
3117
3019
  }
3118
- function isQueueEnqueueGraphRequest(value) {
3119
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "mode", "specs", "plan", "audit"])) return false;
3120
- if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId)) return false;
3121
- if (value.mode === "compat") return isRecordArray(value.specs) && value.plan === void 0 && isOptionalRecord(value.audit);
3122
- if (value.mode === "graph") return isRecord(value.plan) && value.specs === void 0 && isOptionalRecord(value.audit);
3123
- return false;
3020
+ function isQueueEnqueueBatchRequest(value) {
3021
+ return isRecord(value) && hasOnlyKeys2(value, ["v", "meshId", "specs"]) && value.v === TURN_IPC_PROTOCOL_VERSION && isEvidenceIdentifier(value.meshId) && isRecordArray(value.specs);
3124
3022
  }
3125
- function decodeQueueEnqueueGraphRequest(value) {
3126
- return isQueueEnqueueGraphRequest(value) ? value : null;
3023
+ function decodeQueueEnqueueBatchRequest(value) {
3024
+ return isQueueEnqueueBatchRequest(value) ? value : null;
3127
3025
  }
3128
- function isQueueEnqueueGraphResponse(value) {
3026
+ function isQueueEnqueueBatchResponse(value) {
3129
3027
  if (!isRecord(value)) return false;
3130
3028
  if (value.ok === true) {
3131
- return hasOnlyKeys2(value, ["ok", "tasks", "graph"]) && Array.isArray(value.tasks) && value.tasks.every(isQueueEntryWire) && isOptionalRecord(value.graph);
3029
+ return hasOnlyKeys2(value, ["ok", "tasks"]) && Array.isArray(value.tasks) && value.tasks.every(isQueueEntryWire);
3132
3030
  }
3133
3031
  if (value.ok === false) {
3134
3032
  return hasOnlyKeys2(value, ["ok", "refusalCode", "message", "extra"]) && typeof value.message === "string" && isOptionalString(value.refusalCode) && isOptionalRecord(value.extra);
3135
3033
  }
3136
3034
  return false;
3137
3035
  }
3138
- function decodeQueueEnqueueGraphResponse(value) {
3139
- return isQueueEnqueueGraphResponse(value) ? value : null;
3036
+ function decodeQueueEnqueueBatchResponse(value) {
3037
+ return isQueueEnqueueBatchResponse(value) ? value : null;
3140
3038
  }
3141
3039
  function isQueueCancelRequest(value) {
3142
3040
  return isRecord(value) && hasOnlyKeys2(value, ["v", "meshId", "taskId", "reason"]) && value.v === TURN_IPC_PROTOCOL_VERSION && isEvidenceIdentifier(value.meshId) && isEvidenceIdentifier(value.taskId) && isOptionalString(value.reason);
@@ -3163,31 +3061,17 @@ function decodeQueueRequeueResponse(value) {
3163
3061
  return isQueueRequeueResponse(value) ? value : null;
3164
3062
  }
3165
3063
  function isDirectDispatchRecordRequest(value) {
3166
- return isRecord(value) && hasOnlyKeys2(value, ["v", "meshId", "taskId", "message", "task", "decision"]) && value.v === TURN_IPC_PROTOCOL_VERSION && isEvidenceIdentifier(value.meshId) && isEvidenceIdentifier(value.taskId) && typeof value.message === "string" && isOptionalRecord(value.task) && isOptionalRecord(value.decision);
3064
+ return isRecord(value) && hasOnlyKeys2(value, ["v", "meshId", "taskId", "message", "task"]) && value.v === TURN_IPC_PROTOCOL_VERSION && isEvidenceIdentifier(value.meshId) && isEvidenceIdentifier(value.taskId) && typeof value.message === "string" && isOptionalRecord(value.task);
3167
3065
  }
3168
3066
  function decodeDirectDispatchRecordRequest(value) {
3169
3067
  return isDirectDispatchRecordRequest(value) ? value : null;
3170
3068
  }
3171
3069
  function isDirectDispatchRecordResponse(value) {
3172
- return isRecord(value) && hasOnlyKeys2(value, ["taskRecorded", "decisionRecorded"]) && typeof value.taskRecorded === "boolean" && typeof value.decisionRecorded === "boolean";
3070
+ return isRecord(value) && hasOnlyKeys2(value, ["taskRecorded"]) && typeof value.taskRecorded === "boolean";
3173
3071
  }
3174
3072
  function decodeDirectDispatchRecordResponse(value) {
3175
3073
  return isDirectDispatchRecordResponse(value) ? value : null;
3176
3074
  }
3177
- var GRAPH_AUDIT_EVENTS = ["gate_claimed", "gate_released", "gate_abandoned", "node_patched"];
3178
- var isGraphAuditEvent = makeGuard3(GRAPH_AUDIT_EVENTS);
3179
- function isGraphAuditRecordRequest(value) {
3180
- return isRecord(value) && hasOnlyKeys2(value, ["v", "meshId", "event", "fields"]) && value.v === TURN_IPC_PROTOCOL_VERSION && isEvidenceIdentifier(value.meshId) && isGraphAuditEvent(value.event) && isRecord(value.fields);
3181
- }
3182
- function decodeGraphAuditRecordRequest(value) {
3183
- return isGraphAuditRecordRequest(value) ? value : null;
3184
- }
3185
- function isGraphAuditRecordResponse(value) {
3186
- return isRecord(value) && hasOnlyKeys2(value, ["recorded"]) && typeof value.recorded === "boolean";
3187
- }
3188
- function decodeGraphAuditRecordResponse(value) {
3189
- return isGraphAuditRecordResponse(value) ? value : null;
3190
- }
3191
3075
  function isActiveWorkQueryRequest(value) {
3192
3076
  if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "nodes", "queue", "recordTail", "includeTerminalDirect", "compute", "includeInputs", "includeSummary", "includeSchedulingRuntime", "mesh"])) return false;
3193
3077
  if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId)) return false;
@@ -3235,122 +3119,8 @@ function isRecoveryContextQueryResponse(value) {
3235
3119
  function decodeRecoveryContextQueryResponse(value) {
3236
3120
  return isRecoveryContextQueryResponse(value) ? value : null;
3237
3121
  }
3238
- function isGraphGateClaimRequest(value) {
3239
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "gateId", "coordinatorSessionId", "leaseSeconds", "extendDeadlineSeconds", "probeConvergenceEvidence"])) return false;
3240
- if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId) || !isEvidenceIdentifier(value.gateId) || !isEvidenceIdentifier(value.coordinatorSessionId)) return false;
3241
- if (value.leaseSeconds !== void 0 && !isFiniteNumber3(value.leaseSeconds)) return false;
3242
- if (value.extendDeadlineSeconds !== void 0 && !isFiniteNumber3(value.extendDeadlineSeconds)) return false;
3243
- return isOptionalBoolean(value.probeConvergenceEvidence);
3244
- }
3245
- function decodeGraphGateClaimRequest(value) {
3246
- return isGraphGateClaimRequest(value) ? value : null;
3247
- }
3248
- function isGraphGateClaimResponse(value) {
3249
- if (!isRecord(value) || !hasOnlyKeys2(value, ["claimed", "reason", "gate", "leaseGeneration", "fencingToken", "leaseExpiresAt", "deadlineAt", "ambiguousExternalOutcome", "previousLeaseOwnerSessionId", "convergenceEvidence"])) return false;
3250
- if (typeof value.claimed !== "boolean") return false;
3251
- return isOptionalRecord(value.gate) && isOptionalRecord(value.convergenceEvidence) && isOptionalBoolean(value.ambiguousExternalOutcome);
3252
- }
3253
- function decodeGraphGateClaimResponse(value) {
3254
- return isGraphGateClaimResponse(value) ? value : null;
3255
- }
3256
- function isGraphGateReleaseRequest(value) {
3257
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "gateId", "fencingToken", "leaseGeneration", "idempotencyKey", "outcome", "result", "evidence", "patches"])) return false;
3258
- if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId) || !isEvidenceIdentifier(value.gateId)) return false;
3259
- if (typeof value.fencingToken !== "string" || !value.fencingToken) return false;
3260
- if (!isFiniteNumber3(value.leaseGeneration)) return false;
3261
- if (typeof value.idempotencyKey !== "string" || !value.idempotencyKey) return false;
3262
- if (typeof value.outcome !== "string" || !value.outcome) return false;
3263
- if (value.patches !== void 0) {
3264
- if (!Array.isArray(value.patches)) return false;
3265
- for (const p of value.patches) {
3266
- if (!isRecord(p) || typeof p.node !== "string" || !p.node || !isRecord(p.baseSpecPatch)) return false;
3267
- }
3268
- }
3269
- return true;
3270
- }
3271
- function decodeGraphGateReleaseRequest(value) {
3272
- return isGraphGateReleaseRequest(value) ? value : null;
3273
- }
3274
- function isGraphGateReleaseResponse(value) {
3275
- if (!isRecord(value)) return false;
3276
- if (value.released === true) {
3277
- if (!hasOnlyKeys2(value, ["released", "duplicate", "gate", "materializedNodeIds", "downstreamNodeCount", "graphCompleted"])) return false;
3278
- if (typeof value.duplicate !== "boolean") return false;
3279
- if (!Array.isArray(value.materializedNodeIds) || !value.materializedNodeIds.every((n) => typeof n === "string")) return false;
3280
- if (value.downstreamNodeCount !== void 0 && !isNonNegativeInt(value.downstreamNodeCount)) return false;
3281
- return isOptionalRecord(value.gate) && isOptionalBoolean(value.graphCompleted);
3282
- }
3283
- if (value.released === false) {
3284
- return hasOnlyKeys2(value, ["released", "refusalCode", "message"]) && typeof value.message === "string" && isOptionalString(value.refusalCode);
3285
- }
3286
- return false;
3287
- }
3288
- function decodeGraphGateReleaseResponse(value) {
3289
- return isGraphGateReleaseResponse(value) ? value : null;
3290
- }
3291
- function isGraphGateAbandonRequest(value) {
3292
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "gateId", "reason", "coordinatorSessionId", "force"])) return false;
3293
- if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId) || !isEvidenceIdentifier(value.gateId)) return false;
3294
- if (typeof value.reason !== "string" || !value.reason) return false;
3295
- if (value.coordinatorSessionId !== void 0 && !isEvidenceIdentifier(value.coordinatorSessionId)) return false;
3296
- return isOptionalBoolean(value.force);
3297
- }
3298
- function decodeGraphGateAbandonRequest(value) {
3299
- return isGraphGateAbandonRequest(value) ? value : null;
3300
- }
3301
- function isGraphGateAbandonResponse(value) {
3302
- if (!isRecord(value) || !hasOnlyKeys2(value, ["abandoned", "reason", "gate", "cancelledNodeIds", "cancelledTaskIds", "graphStatus"])) return false;
3303
- if (typeof value.abandoned !== "boolean") return false;
3304
- if (!Array.isArray(value.cancelledNodeIds) || !value.cancelledNodeIds.every((n) => typeof n === "string")) return false;
3305
- if (!Array.isArray(value.cancelledTaskIds) || !value.cancelledTaskIds.every((n) => typeof n === "string")) return false;
3306
- return isOptionalRecord(value.gate);
3307
- }
3308
- function decodeGraphGateAbandonResponse(value) {
3309
- return isGraphGateAbandonResponse(value) ? value : null;
3310
- }
3311
- function isGraphNodePatchRequest(value) {
3312
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "node", "graphId", "baseSpecPatch"])) return false;
3313
- if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId)) return false;
3314
- if (typeof value.node !== "string" || !value.node) return false;
3315
- if (value.graphId !== void 0 && !isEvidenceIdentifier(value.graphId)) return false;
3316
- return isRecord(value.baseSpecPatch) && Object.keys(value.baseSpecPatch).length > 0;
3317
- }
3318
- function decodeGraphNodePatchRequest(value) {
3319
- return isGraphNodePatchRequest(value) ? value : null;
3320
- }
3321
- function isGraphNodePatchResponse(value) {
3322
- if (!isRecord(value)) return false;
3323
- if (value.patched === true) {
3324
- if (!hasOnlyKeys2(value, ["patched", "graphId", "nodeId", "ref", "queueTaskId", "materializationVersion", "state", "outcomeKind", "skippedReason", "blockedReason"])) return false;
3325
- if (!isEvidenceIdentifier(value.graphId) || !isEvidenceIdentifier(value.nodeId)) return false;
3326
- if (!isNonNegativeInt(value.materializationVersion)) return false;
3327
- return typeof value.state === "string" && typeof value.outcomeKind === "string";
3328
- }
3329
- if (value.patched === false) {
3330
- return hasOnlyKeys2(value, ["patched", "refusalCode", "message"]) && typeof value.message === "string" && isOptionalString(value.refusalCode);
3331
- }
3332
- return false;
3333
- }
3334
- function decodeGraphNodePatchResponse(value) {
3335
- return isGraphNodePatchResponse(value) ? value : null;
3336
- }
3337
- function isGraphViewQueryRequest(value) {
3338
- if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "graphId", "batchId", "activeOnly", "limit", "probeGateEvidence"])) return false;
3339
- if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId)) return false;
3340
- if (value.graphId !== void 0 && !isEvidenceIdentifier(value.graphId)) return false;
3341
- if (value.batchId !== void 0 && !isEvidenceIdentifier(value.batchId)) return false;
3342
- if (value.limit !== void 0 && !isNonNegativeInt(value.limit)) return false;
3343
- return isOptionalBoolean(value.activeOnly) && isOptionalBoolean(value.probeGateEvidence);
3344
- }
3345
- function decodeGraphViewQueryRequest(value) {
3346
- return isGraphViewQueryRequest(value) ? value : null;
3347
- }
3348
- function isGraphViewQueryResponse(value) {
3349
- return isRecord(value) && hasOnlyKeys2(value, ["graphs"]) && isRecordArray(value.graphs);
3350
- }
3351
- function decodeGraphViewQueryResponse(value) {
3352
- return isGraphViewQueryResponse(value) ? value : null;
3353
- }
3122
+
3123
+ // src/turn-ipc-stats.ts
3354
3124
  function isTaskStatsQueryRequest(value) {
3355
3125
  if (!isRecord(value) || !hasOnlyKeys2(value, ["v", "meshId", "taskIds", "missionId", "tail", "rollup", "missionIds"])) return false;
3356
3126
  if (value.v !== TURN_IPC_PROTOCOL_VERSION || !isEvidenceIdentifier(value.meshId)) return false;
@@ -3418,6 +3188,13 @@ function isOrphanedPinNotifyResponse(value) {
3418
3188
  function decodeOrphanedPinNotifyResponse(value) {
3419
3189
  return isOrphanedPinNotifyResponse(value) ? value : null;
3420
3190
  }
3191
+
3192
+ // src/turn-ipc.ts
3193
+ var TURN_IPC_ERROR_CODES = ["daemon_required", "turn_ledger_unavailable", "ledger_not_owner"];
3194
+ var isTurnIpcErrorCode = makeGuard3(TURN_IPC_ERROR_CODES);
3195
+ function isTurnIpcError(value) {
3196
+ return isRecord(value) && hasOnlyKeys2(value, ["code", "detail"]) && isTurnIpcErrorCode(value.code) && (value.detail === void 0 || typeof value.detail === "string");
3197
+ }
3421
3198
  var TURN_IPC_COMMANDS = [
3422
3199
  "turn_observe",
3423
3200
  "mesh_record",
@@ -3437,21 +3214,15 @@ var TURN_IPC_COMMANDS = [
3437
3214
  "record_local",
3438
3215
  "queue_query",
3439
3216
  "queue_enqueue",
3440
- "queue_enqueue_graph",
3217
+ "queue_enqueue_batch",
3441
3218
  "queue_cancel",
3442
3219
  "queue_requeue",
3443
3220
  "direct_dispatch_record",
3444
- "graph_audit_record",
3445
3221
  "active_work_query",
3446
3222
  "recovery_context_query",
3447
3223
  // C-W9c additions (2026-09-24 19:00 stamp — the last mcp-server in-process
3448
- // daemon-core paths: graph gates/plan/patch, mission reads (MAGI), task/
3449
- // mission stats, orphaned-pin helpers, one prune audit):
3450
- "graph_gate_claim",
3451
- "graph_gate_release",
3452
- "graph_gate_abandon",
3453
- "graph_node_patch",
3454
- "graph_view_query",
3224
+ // daemon-core paths: mission reads, task/mission stats, orphaned-pin
3225
+ // helpers, one prune audit):
3455
3226
  "task_stats_query",
3456
3227
  "prune_stale_direct",
3457
3228
  "orphaned_pin_notify"
@@ -3901,10 +3672,8 @@ function stableMeshNodeRow(row) {
3901
3672
  DISPATCH_FAILURE_REASONS,
3902
3673
  EVIDENCE_ENVELOPE_FIELD_SPECS,
3903
3674
  EVIDENCE_SOURCE_IDS,
3904
- GRAPH_AUDIT_EVENTS,
3905
3675
  HOLD_REASONS,
3906
3676
  LIVENESS_RESULTS,
3907
- MAGI_RAW_ANSWER_CAP,
3908
3677
  MAX_MESH_RECORD_STRING,
3909
3678
  MAX_OWNED_PATHS,
3910
3679
  MESH_CHUNK_KIND,
@@ -3915,7 +3684,6 @@ function stableMeshNodeRow(row) {
3915
3684
  MESH_MAX_CHUNKS,
3916
3685
  MESH_MAX_INLINE_FRAME_BYTES,
3917
3686
  MESH_MAX_REASSEMBLED_BYTES,
3918
- MESH_MISSION_SOURCES,
3919
3687
  MESH_MISSION_STATUSES,
3920
3688
  MESH_P2P_SIGNAL_TYPES,
3921
3689
  MESH_RECORD_PAYLOAD_KEYS,
@@ -3949,6 +3717,7 @@ function stableMeshNodeRow(row) {
3949
3717
  RECENT_SESSION_BUCKETS,
3950
3718
  RECLAIMING_SEND_REFUSALS,
3951
3719
  RELEASE_CHANNELS,
3720
+ REMOVED_MESH_TOOLS,
3952
3721
  RETIRED_MESH_TOOLS,
3953
3722
  SEND_POLICY_MODES,
3954
3723
  SEND_REFUSAL_REASONS,
@@ -3992,7 +3761,6 @@ function stableMeshNodeRow(row) {
3992
3761
  WORKER_TOOLS,
3993
3762
  appendWorkerProtocolFooter,
3994
3763
  argsCarryStatusProbeMarker,
3995
- buildMagiPanelProposal,
3996
3764
  buildSlotProposal,
3997
3765
  canonicalDaemonId,
3998
3766
  classifySessionStatus,
@@ -4008,18 +3776,6 @@ function stableMeshNodeRow(row) {
4008
3776
  decodeDashboardToUserSession,
4009
3777
  decodeDirectDispatchRecordRequest,
4010
3778
  decodeDirectDispatchRecordResponse,
4011
- decodeGraphAuditRecordRequest,
4012
- decodeGraphAuditRecordResponse,
4013
- decodeGraphGateAbandonRequest,
4014
- decodeGraphGateAbandonResponse,
4015
- decodeGraphGateClaimRequest,
4016
- decodeGraphGateClaimResponse,
4017
- decodeGraphGateReleaseRequest,
4018
- decodeGraphGateReleaseResponse,
4019
- decodeGraphNodePatchRequest,
4020
- decodeGraphNodePatchResponse,
4021
- decodeGraphViewQueryRequest,
4022
- decodeGraphViewQueryResponse,
4023
3779
  decodeLedgerQueryRequest,
4024
3780
  decodeLedgerQueryResponse,
4025
3781
  decodeMeshIndexQueryRequest,
@@ -4044,8 +3800,8 @@ function stableMeshNodeRow(row) {
4044
3800
  decodePruneStaleDirectResponse,
4045
3801
  decodeQueueCancelRequest,
4046
3802
  decodeQueueCancelResponse,
4047
- decodeQueueEnqueueGraphRequest,
4048
- decodeQueueEnqueueGraphResponse,
3803
+ decodeQueueEnqueueBatchRequest,
3804
+ decodeQueueEnqueueBatchResponse,
4049
3805
  decodeQueueEnqueueRequest,
4050
3806
  decodeQueueEnqueueResponse,
4051
3807
  decodeQueueQueryRequest,
@@ -4084,8 +3840,6 @@ function stableMeshNodeRow(row) {
4084
3840
  hasGitStatusEvidence,
4085
3841
  hasWorkerProtocolFooter,
4086
3842
  interpolateString,
4087
- isActiveWorkQueryRequest,
4088
- isActiveWorkQueryResponse,
4089
3843
  isBlockedStatus,
4090
3844
  isBusyStatus,
4091
3845
  isChunkType,
@@ -4101,38 +3855,16 @@ function stableMeshNodeRow(row) {
4101
3855
  isDashboardToDaemonP2PType,
4102
3856
  isDashboardToUserSessionType,
4103
3857
  isDeadStatus,
4104
- isDirectDispatchRecordRequest,
4105
- isDirectDispatchRecordResponse,
4106
3858
  isDowngrade,
4107
3859
  isEvidenceIdentifier,
4108
3860
  isFiniteNumber,
4109
- isGraphAuditEvent,
4110
- isGraphAuditRecordRequest,
4111
- isGraphAuditRecordResponse,
4112
- isGraphGateAbandonRequest,
4113
- isGraphGateAbandonResponse,
4114
- isGraphGateClaimRequest,
4115
- isGraphGateClaimResponse,
4116
- isGraphGateReleaseRequest,
4117
- isGraphGateReleaseResponse,
4118
- isGraphNodePatchRequest,
4119
- isGraphNodePatchResponse,
4120
- isGraphViewQueryRequest,
4121
- isGraphViewQueryResponse,
4122
3861
  isIdleSessionState,
4123
3862
  isInputEnvelopeWire,
4124
- isLedgerQueryRequest,
4125
- isLedgerQueryResponse,
4126
3863
  isMeshDeliveryMode,
4127
- isMeshIndexQueryRequest,
4128
3864
  isMeshIndexQueryResponse,
4129
- isMeshIndexQueryWriterScope,
4130
- isMeshMissionSourceValue,
4131
3865
  isMeshMissionStatusValue,
4132
3866
  isMeshP2PSignalType,
4133
3867
  isMeshRecordPayload,
4134
- isMeshRecordRequest,
4135
- isMeshRecordResponse,
4136
3868
  isMeshTaskDifficulty,
4137
3869
  isMeshTaskMode,
4138
3870
  isMeshTaskPriority,
@@ -4140,49 +3872,17 @@ function stableMeshNodeRow(row) {
4140
3872
  isMeshTerminalTaskStatus,
4141
3873
  isMeshTopicEntry,
4142
3874
  isMessageId,
4143
- isMissionListQueryRequest,
4144
- isMissionListQueryResponse,
4145
- isMissionQueryRequest,
4146
- isMissionQueryResponse,
4147
- isMissionUpsertRequest,
4148
3875
  isMissionUpsertResponse,
4149
3876
  isModelAxisSource,
4150
3877
  isNonEmptyString,
4151
- isNoteForgetRequest,
4152
- isNoteForgetResponse,
4153
- isNoteUpsertRequest,
4154
- isNoteUpsertResponse,
4155
3878
  isNotifyKind,
4156
- isOperatingNoteCategory,
4157
- isOperatorStatusReasonValue,
4158
- isOperatorStatusRequest,
4159
- isOperatorStatusResponse,
4160
- isOperatorStatusValue,
4161
- isOrphanedPinNotifyRequest,
4162
- isOrphanedPinNotifyResponse,
4163
3879
  isOutboundMessage,
4164
3880
  isOutboundMessageOrigin,
4165
3881
  isP2PSignalType,
4166
3882
  isPhantomDaemonEntry,
4167
- isPruneStaleDirectRequest,
4168
- isPruneStaleDirectResponse,
4169
- isQueueCancelRequest,
4170
- isQueueCancelResponse,
4171
- isQueueEnqueueGraphRequest,
4172
- isQueueEnqueueGraphResponse,
4173
- isQueueEnqueueRequest,
4174
- isQueueEnqueueResponse,
4175
- isQueueQueryRequest,
4176
- isQueueQueryResponse,
4177
- isQueueRequeueRequest,
4178
- isQueueRequeueResponse,
4179
3883
  isRawDaemonDoId,
4180
3884
  isReadyStatus,
4181
3885
  isRecord,
4182
- isRecordLocalRequest,
4183
- isRecordLocalResponse,
4184
- isRecoveryContextQueryRequest,
4185
- isRecoveryContextQueryResponse,
4186
3886
  isSendPolicy,
4187
3887
  isSendPolicyMode,
4188
3888
  isSendRefusal,
@@ -4193,26 +3893,14 @@ function stableMeshNodeRow(row) {
4193
3893
  isSharedSessionToViewerType,
4194
3894
  isSubmitOutcome,
4195
3895
  isSummaryRef,
4196
- isTaskStatsQueryRequest,
4197
- isTaskStatsQueryResponse,
4198
3896
  isTerminalSessionRecordStatus,
4199
- isToolCallRecordRequest,
4200
- isToolCallRecordResponse,
4201
- isToolCallerRole,
4202
3897
  isTurnAttemptRef,
4203
- isTurnCancelRequest,
4204
- isTurnCancelResponse,
4205
3898
  isTurnEvidence,
4206
3899
  isTurnEvidenceKind,
4207
3900
  isTurnIpcCommand,
4208
3901
  isTurnIpcError,
4209
3902
  isTurnIpcErrorCode,
4210
- isTurnObserveRequest,
4211
- isTurnObserveResponse,
4212
- isTurnObserveVerdict,
4213
3903
  isTurnOutcome,
4214
- isTurnQueryRequest,
4215
- isTurnQueryResponse,
4216
3904
  isTurnReason,
4217
3905
  isUserSessionToDashboardType,
4218
3906
  isViewerToSharedSessionType,
@@ -4248,14 +3936,17 @@ function stableMeshNodeRow(row) {
4248
3936
  parseSessionLaunchRecord,
4249
3937
  pathsOverlap,
4250
3938
  pickBestTransitGitStatus,
3939
+ projectFileDiffRow,
4251
3940
  projectTurnEvidenceEntry,
4252
3941
  readBoolean,
4253
3942
  readEnvelopeFields,
4254
3943
  readGitSubmodules,
4255
3944
  readNumber,
3945
+ readOptionalRecord,
4256
3946
  readRecord,
4257
3947
  readString,
4258
3948
  readStringArray,
3949
+ readText,
4259
3950
  renderCoordinatorWorkerSection,
4260
3951
  renderMissionBriefBlock,
4261
3952
  renderWorkerProtocolFooter,