@linnlabs/linnkit 0.9.0 → 0.10.0

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 (81) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/bin/linnkit.cjs +7 -0
  3. package/dist/{agentSpec-EkmviZjy.d.cts → agentSpec-Du4Iye0q.d.cts} +16 -1
  4. package/dist/{agentSpec-EkmviZjy.d.ts → agentSpec-Du4Iye0q.d.ts} +16 -1
  5. package/dist/cli.cjs +118 -65
  6. package/dist/cli.cjs.map +1 -1
  7. package/dist/cli.js +118 -65
  8. package/dist/cli.js.map +1 -1
  9. package/dist/context-manager.cjs +234 -32
  10. package/dist/context-manager.cjs.map +1 -1
  11. package/dist/context-manager.d.cts +52 -15
  12. package/dist/context-manager.d.ts +52 -15
  13. package/dist/context-manager.js +234 -33
  14. package/dist/context-manager.js.map +1 -1
  15. package/dist/{context-trace-HE2qY5Q-.d.cts → context-trace-BHKDS-eq.d.cts} +2 -2
  16. package/dist/{context-trace-DRi5M4lX.d.ts → context-trace-CHbqHmyE.d.ts} +2 -2
  17. package/dist/contracts.cjs +3 -1
  18. package/dist/contracts.cjs.map +1 -1
  19. package/dist/contracts.d.cts +3 -3
  20. package/dist/contracts.d.ts +3 -3
  21. package/dist/contracts.js +3 -1
  22. package/dist/contracts.js.map +1 -1
  23. package/dist/{defaultGraphExecutor-BBswR8wn.d.ts → defaultGraphExecutor-B29_qTHy.d.ts} +16 -15
  24. package/dist/{defaultGraphExecutor-BIjJj7WF.d.cts → defaultGraphExecutor-C2E59v_R.d.cts} +16 -15
  25. package/dist/{index-BanRABEt.d.cts → index-BAaUP9yU.d.cts} +26 -14
  26. package/dist/{index-Z8NXKNwI.d.ts → index-BaVpVNi2.d.ts} +26 -14
  27. package/dist/{index-DO4dQgf2.d.cts → index-BnYCS8Zg.d.cts} +2 -2
  28. package/dist/{index-CJeWHopy.d.ts → index-C0DAjsdX.d.ts} +2 -2
  29. package/dist/{index-Dl5PLgAv.d.cts → index-CKQzzZ5Y.d.cts} +2 -2
  30. package/dist/{index-CHqwkvGp.d.ts → index-D0mKxTR5.d.ts} +2 -2
  31. package/dist/index.cjs +186 -85
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +10 -10
  34. package/dist/index.d.ts +10 -10
  35. package/dist/index.js +186 -85
  36. package/dist/index.js.map +1 -1
  37. package/dist/{ports-DnLuKfpE.d.ts → ports-DpPTFhSd.d.ts} +2 -2
  38. package/dist/{ports-DaatKJXp.d.cts → ports-s-tSp3sB.d.cts} +2 -2
  39. package/dist/quickstart.cjs +119 -65
  40. package/dist/quickstart.cjs.map +1 -1
  41. package/dist/quickstart.d.cts +7 -7
  42. package/dist/quickstart.d.ts +7 -7
  43. package/dist/quickstart.js +119 -65
  44. package/dist/quickstart.js.map +1 -1
  45. package/dist/{runAgent-CPj_9e58.d.ts → runAgent-C6F-399C.d.ts} +5 -5
  46. package/dist/{runAgent-HYKlXbVr.d.cts → runAgent-ilEj66Ik.d.cts} +5 -5
  47. package/dist/{runHandle-D3gPsD7B.d.cts → runHandle-BNOqS-Bl.d.cts} +3 -3
  48. package/dist/{runHandle-CyXvzgzk.d.ts → runHandle-BdLXOFqF.d.ts} +3 -3
  49. package/dist/runtime-kernel/events.cjs +1 -0
  50. package/dist/runtime-kernel/events.cjs.map +1 -1
  51. package/dist/runtime-kernel/events.d.cts +4 -4
  52. package/dist/runtime-kernel/events.d.ts +4 -4
  53. package/dist/runtime-kernel/events.js +1 -0
  54. package/dist/runtime-kernel/events.js.map +1 -1
  55. package/dist/runtime-kernel.cjs +181 -82
  56. package/dist/runtime-kernel.cjs.map +1 -1
  57. package/dist/runtime-kernel.d.cts +8 -8
  58. package/dist/runtime-kernel.d.ts +8 -8
  59. package/dist/runtime-kernel.js +181 -83
  60. package/dist/runtime-kernel.js.map +1 -1
  61. package/dist/testkit.cjs +181 -82
  62. package/dist/testkit.cjs.map +1 -1
  63. package/dist/testkit.d.cts +8 -8
  64. package/dist/testkit.d.ts +8 -8
  65. package/dist/testkit.js +181 -82
  66. package/dist/testkit.js.map +1 -1
  67. package/dist/{todo-B1PmDlp3.d.cts → todo-Ca8llpRQ.d.cts} +1 -1
  68. package/dist/{todo-B1PmDlp3.d.ts → todo-Ca8llpRQ.d.ts} +1 -1
  69. package/dist/{toolContracts-CLkQmhTG.d.cts → toolContracts-Bm3EZ1UM.d.cts} +13 -2
  70. package/dist/{toolContracts-Blll0241.d.ts → toolContracts-f8lzZBNa.d.ts} +13 -2
  71. package/docs/integration/README.md +1 -1
  72. package/docs/integration/agent-registration-guide.md +1 -1
  73. package/docs/integration/child-runs.md +4 -1
  74. package/docs/integration/context-engineering.md +30 -15
  75. package/docs/integration/context-fences.md +32 -3
  76. package/docs/integration/llm-provider.md +1 -1
  77. package/docs/integration/persistence.md +1 -0
  78. package/docs/integration/run-supervisor.md +3 -0
  79. package/docs/integration/tool-development-guide.md +7 -5
  80. package/docs/integration/tool-history.md +43 -17
  81. package/package.json +4 -3
@@ -40,6 +40,7 @@ var Logger = class {
40
40
  constructor(moduleName) {
41
41
  this.moduleName = moduleName;
42
42
  }
43
+ moduleName;
43
44
  debug(message, data) {
44
45
  this.log(0 /* DEBUG */, "debug", message, data);
45
46
  }
@@ -262,6 +263,7 @@ var AgentSpecBudgetPolicy = z.object({
262
263
  });
263
264
  var AgentSpecToolHistoryPolicy = z.object({
264
265
  strategy: z.enum(["per-pair", "per-run", "none"]).optional(),
266
+ retentionMode: z.enum(["drop", "compress"]).optional(),
265
267
  keepLatestToolPairs: z.number().int().nonnegative().optional(),
266
268
  keepLatestRuns: z.number().int().nonnegative().optional(),
267
269
  maxInteractionGroups: z.number().int().nonnegative().optional(),
@@ -1018,6 +1020,17 @@ var logger = new Logger("GraphExecutor");
1018
1020
  function asLocalRecord(local) {
1019
1021
  return local && typeof local === "object" ? { ...local } : {};
1020
1022
  }
1023
+ function readNonEmptyString(value) {
1024
+ return typeof value === "string" && value.trim().length > 0 ? value : void 0;
1025
+ }
1026
+ function readRuntimeConversationId(state) {
1027
+ const local = state?.local && typeof state.local === "object" ? state.local : void 0;
1028
+ return readNonEmptyString(local?.conversationId);
1029
+ }
1030
+ function readRuntimeTurnId(state) {
1031
+ const local = state?.local && typeof state.local === "object" ? state.local : void 0;
1032
+ return readNonEmptyString(local?.turnId);
1033
+ }
1021
1034
  var GraphExecutor = class {
1022
1035
  constructor(checkpointer, config = {}) {
1023
1036
  this.checkpointer = checkpointer;
@@ -1027,6 +1040,7 @@ var GraphExecutor = class {
1027
1040
  };
1028
1041
  this.telemetryPort = config.telemetryPort ?? noopTelemetry;
1029
1042
  }
1043
+ checkpointer;
1030
1044
  nodes = /* @__PURE__ */ new Map();
1031
1045
  ephemeralLocals = /* @__PURE__ */ new Map();
1032
1046
  config;
@@ -1034,8 +1048,8 @@ var GraphExecutor = class {
1034
1048
  registerNode(node) {
1035
1049
  this.nodes.set(node.id, node);
1036
1050
  }
1037
- async peekCheckpoint(conversationId) {
1038
- return await this.checkpointer.load(conversationId);
1051
+ async peekCheckpoint(checkpointKey) {
1052
+ return await this.checkpointer.load(checkpointKey);
1039
1053
  }
1040
1054
  sanitize(state) {
1041
1055
  const local = asLocalRecord(state.local);
@@ -1047,8 +1061,8 @@ var GraphExecutor = class {
1047
1061
  local
1048
1062
  };
1049
1063
  }
1050
- async prime(conversationId, local, nodeId = "user") {
1051
- this.ephemeralLocals.set(conversationId, { ...local || {} });
1064
+ async prime(checkpointKey, local, nodeId = "user") {
1065
+ this.ephemeralLocals.set(checkpointKey, { ...local || {} });
1052
1066
  const localSansMemory = { ...local || {} };
1053
1067
  if ("memory" in localSansMemory) delete localSansMemory.memory;
1054
1068
  const state = {
@@ -1056,10 +1070,10 @@ var GraphExecutor = class {
1056
1070
  schemaVersion: ENGINE_STATE_SCHEMA_VERSION,
1057
1071
  local: localSansMemory
1058
1072
  };
1059
- await this.checkpointer.save(conversationId, state);
1073
+ await this.checkpointer.save(checkpointKey, state);
1060
1074
  }
1061
- async setNode(conversationId, nodeId, localPatch) {
1062
- const current = await this.checkpointer.load(conversationId) || {
1075
+ async setNode(checkpointKey, nodeId, localPatch) {
1076
+ const current = await this.checkpointer.load(checkpointKey) || {
1063
1077
  schemaVersion: ENGINE_STATE_SCHEMA_VERSION,
1064
1078
  local: {}
1065
1079
  };
@@ -1070,19 +1084,46 @@ var GraphExecutor = class {
1070
1084
  schemaVersion: current.schemaVersion ?? ENGINE_STATE_SCHEMA_VERSION,
1071
1085
  local: mergedLocal
1072
1086
  };
1073
- await this.checkpointer.save(conversationId, next);
1087
+ await this.checkpointer.save(checkpointKey, next);
1074
1088
  }
1075
- async runUntilYield(conversationId) {
1089
+ async runUntilYield(checkpointKey) {
1076
1090
  const runId = `run_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
1077
1091
  let lifecyclePhase = "completed";
1092
+ let initialState = null;
1093
+ try {
1094
+ initialState = await this.loadInitialState(checkpointKey);
1095
+ } catch (err) {
1096
+ lifecyclePhase = "failed";
1097
+ this.telemetryPort.emit({
1098
+ kind: "run_lifecycle",
1099
+ runId,
1100
+ phase: "spawned",
1101
+ scope: {}
1102
+ });
1103
+ this.telemetryPort.emit({
1104
+ kind: "run_lifecycle",
1105
+ runId,
1106
+ phase: lifecyclePhase,
1107
+ scope: {}
1108
+ });
1109
+ throw err;
1110
+ }
1111
+ let lifecycleConversationId = readRuntimeConversationId(initialState);
1112
+ let lifecycleTurnId = readRuntimeTurnId(initialState);
1078
1113
  this.telemetryPort.emit({
1079
1114
  kind: "run_lifecycle",
1080
1115
  runId,
1081
1116
  phase: "spawned",
1082
- scope: { conversationId: conversationId || void 0 }
1117
+ scope: {
1118
+ conversationId: lifecycleConversationId,
1119
+ turnId: lifecycleTurnId
1120
+ }
1083
1121
  });
1084
1122
  try {
1085
- return await this.runUntilYieldInternal(conversationId);
1123
+ const result = await this.runUntilYieldInternal(checkpointKey, initialState);
1124
+ lifecycleConversationId = readRuntimeConversationId(result.checkpoint);
1125
+ lifecycleTurnId = readRuntimeTurnId(result.checkpoint);
1126
+ return result;
1086
1127
  } catch (err) {
1087
1128
  lifecyclePhase = err?.name === "AbortError" ? "cancelled" : "failed";
1088
1129
  throw err;
@@ -1091,17 +1132,23 @@ var GraphExecutor = class {
1091
1132
  kind: "run_lifecycle",
1092
1133
  runId,
1093
1134
  phase: lifecyclePhase,
1094
- scope: { conversationId: conversationId || void 0 }
1135
+ scope: {
1136
+ conversationId: lifecycleConversationId,
1137
+ turnId: lifecycleTurnId
1138
+ }
1095
1139
  });
1096
1140
  }
1097
1141
  }
1098
- async runUntilYieldInternal(conversationId) {
1099
- let state = await this.checkpointer.load(conversationId) || {
1142
+ async loadInitialState(checkpointKey) {
1143
+ return await this.checkpointer.load(checkpointKey) || {
1100
1144
  nodeId: "user",
1101
1145
  schemaVersion: ENGINE_STATE_SCHEMA_VERSION,
1102
1146
  local: {}
1103
1147
  };
1104
- const ephemeral = this.ephemeralLocals.get(conversationId) || {};
1148
+ }
1149
+ async runUntilYieldInternal(checkpointKey, initialState) {
1150
+ let state = initialState;
1151
+ const ephemeral = this.ephemeralLocals.get(checkpointKey) || {};
1105
1152
  state = {
1106
1153
  ...state,
1107
1154
  schemaVersion: state.schemaVersion ?? ENGINE_STATE_SCHEMA_VERSION,
@@ -1130,7 +1177,7 @@ var GraphExecutor = class {
1130
1177
  const signalRaw = state.local?.signal;
1131
1178
  if (isAbortSignal2(signalRaw) && signalRaw.aborted) {
1132
1179
  logger.warn("[GraphExecutor] \u6536\u5230 AbortSignal\uFF0C\u7ACB\u5373\u505C\u6B62\u63A8\u7406\u5FAA\u73AF");
1133
- this.ephemeralLocals.delete(conversationId);
1180
+ this.ephemeralLocals.delete(checkpointKey);
1134
1181
  throwAbortError();
1135
1182
  }
1136
1183
  const isLastStep = cycleStepCount >= this.config.maxSteps;
@@ -1178,8 +1225,8 @@ var GraphExecutor = class {
1178
1225
  checkpointCount
1179
1226
  });
1180
1227
  const cp2 = this.sanitize(state);
1181
- await this.checkpointer.save(conversationId, cp2);
1182
- this.ephemeralLocals.delete(conversationId);
1228
+ await this.checkpointer.save(checkpointKey, cp2);
1229
+ this.ephemeralLocals.delete(checkpointKey);
1183
1230
  return { events: allEvents, checkpoint: cp2, stepCount };
1184
1231
  }
1185
1232
  logger.info("[GraphExecutor] \u8282\u70B9\u5207\u6362", {
@@ -1190,18 +1237,18 @@ var GraphExecutor = class {
1190
1237
  });
1191
1238
  const nodeRunStartedAt = Date.now();
1192
1239
  const nodeIdForTelemetry = state.nodeId;
1240
+ const conversationIdForTelemetry = readRuntimeConversationId(state);
1193
1241
  let result;
1194
1242
  try {
1195
1243
  result = await node.run(state);
1196
1244
  } finally {
1197
- const turnIdForTelemetry = typeof state.local?.turnId === "string" ? state.local.turnId : void 0;
1198
1245
  this.telemetryPort.emit({
1199
1246
  kind: "graph_node",
1200
1247
  nodeId: nodeIdForTelemetry,
1201
1248
  durationMs: Date.now() - nodeRunStartedAt,
1202
1249
  scope: {
1203
- conversationId: conversationId || void 0,
1204
- turnId: turnIdForTelemetry
1250
+ conversationId: conversationIdForTelemetry,
1251
+ turnId: readRuntimeTurnId(state)
1205
1252
  }
1206
1253
  });
1207
1254
  }
@@ -1240,7 +1287,7 @@ var GraphExecutor = class {
1240
1287
  });
1241
1288
  state = { ...state, nodeId: nextNodeId };
1242
1289
  const cp2 = this.sanitize(state);
1243
- await this.checkpointer.save(conversationId, cp2);
1290
+ await this.checkpointer.save(checkpointKey, cp2);
1244
1291
  continue;
1245
1292
  }
1246
1293
  if (result.kind === "yield") {
@@ -1251,7 +1298,7 @@ var GraphExecutor = class {
1251
1298
  checkpointCount
1252
1299
  });
1253
1300
  const cp2 = this.sanitize(state);
1254
- await this.checkpointer.save(conversationId, cp2);
1301
+ await this.checkpointer.save(checkpointKey, cp2);
1255
1302
  return { events: allEvents, checkpoint: cp2, stepCount };
1256
1303
  }
1257
1304
  if (result.kind === "pause") {
@@ -1262,7 +1309,7 @@ var GraphExecutor = class {
1262
1309
  checkpointCount
1263
1310
  });
1264
1311
  const cp2 = this.sanitize(state);
1265
- await this.checkpointer.save(conversationId, cp2);
1312
+ await this.checkpointer.save(checkpointKey, cp2);
1266
1313
  return { events: allEvents, checkpoint: cp2, stepCount };
1267
1314
  }
1268
1315
  }
@@ -1273,8 +1320,8 @@ var GraphExecutor = class {
1273
1320
  checkpointCount
1274
1321
  });
1275
1322
  const cp = this.sanitize(state);
1276
- await this.checkpointer.save(conversationId, cp);
1277
- this.ephemeralLocals.delete(conversationId);
1323
+ await this.checkpointer.save(checkpointKey, cp);
1324
+ this.ephemeralLocals.delete(checkpointKey);
1278
1325
  return { events: allEvents, checkpoint: cp, stepCount };
1279
1326
  }
1280
1327
  };
@@ -1471,15 +1518,15 @@ function splitConcatenatedJsonObjects(input) {
1471
1518
  }
1472
1519
 
1473
1520
  // src/runtime-kernel/graph-engine/tick-pipeline/helpers.ts
1474
- function readNonEmptyString(value) {
1521
+ function readNonEmptyString2(value) {
1475
1522
  if (typeof value !== "string") return void 0;
1476
1523
  const trimmed = value.trim();
1477
1524
  return trimmed.length > 0 ? trimmed : void 0;
1478
1525
  }
1479
1526
  function resolveConversationIdForRuntimeEvents(toolContext) {
1480
- const fromCamel = readNonEmptyString(toolContext?.conversationId);
1527
+ const fromCamel = readNonEmptyString2(toolContext?.conversationId);
1481
1528
  if (fromCamel) return fromCamel;
1482
- const fromSnake = toolContext ? readNonEmptyString(toolContext["conversation_id"]) : void 0;
1529
+ const fromSnake = toolContext ? readNonEmptyString2(toolContext["conversation_id"]) : void 0;
1483
1530
  if (fromSnake) return fromSnake;
1484
1531
  return generateMessageId();
1485
1532
  }
@@ -1838,7 +1885,7 @@ var runModelLockMiddleware = async (ctx, stage, next) => {
1838
1885
  if (stage.id !== "execute_llm") {
1839
1886
  return;
1840
1887
  }
1841
- const normalized = readNonEmptyString(ctx.cloudQuotaFallbackAppliedModelId);
1888
+ const normalized = readNonEmptyString2(ctx.cloudQuotaFallbackAppliedModelId);
1842
1889
  if (!normalized) {
1843
1890
  return;
1844
1891
  }
@@ -2439,7 +2486,7 @@ function createExecuteLlmStage(dependencies) {
2439
2486
  streamEventHandler,
2440
2487
  ctx.signal,
2441
2488
  (fallbackModelId) => {
2442
- ctx.cloudQuotaFallbackAppliedModelId = readNonEmptyString(fallbackModelId);
2489
+ ctx.cloudQuotaFallbackAppliedModelId = readNonEmptyString2(fallbackModelId);
2443
2490
  },
2444
2491
  (info) => {
2445
2492
  ctx.modelFallbackAudit = info;
@@ -2483,7 +2530,7 @@ function createPrepareCallStage(dependencies) {
2483
2530
  return {
2484
2531
  id: "prepare_call",
2485
2532
  async run(ctx) {
2486
- const lockedRunModelId = readNonEmptyString(ctx.executorLocal?.runLockedModelId);
2533
+ const lockedRunModelId = readNonEmptyString2(ctx.executorLocal?.runLockedModelId);
2487
2534
  const requestedModelId = lockedRunModelId ?? ctx.request.model_id;
2488
2535
  ctx.modelId = dependencies.modelResolver.resolveModelId(requestedModelId);
2489
2536
  await emitAuditEnvelope(ctx.audit, {
@@ -2555,7 +2602,7 @@ var GraphAgentExecutor = class {
2555
2602
  this.llmCaller = dependencies.llmCaller;
2556
2603
  this.toolRuntime = dependencies.toolRuntime;
2557
2604
  this.contextBuilder = dependencies.contextBuilder;
2558
- this.cloudQuotaFallbackModelId = readNonEmptyString(dependencies.cloudQuotaFallbackModelId);
2605
+ this.cloudQuotaFallbackModelId = readNonEmptyString2(dependencies.cloudQuotaFallbackModelId);
2559
2606
  this.modelCatalog = dependencies.modelCatalog ?? createEmptyModelCatalog();
2560
2607
  this.modelResolver = dependencies.modelResolver ?? new ModelResolver({
2561
2608
  modelCatalog: this.modelCatalog
@@ -2603,7 +2650,7 @@ var GraphAgentExecutor = class {
2603
2650
  llmMessages: [],
2604
2651
  mode: input.request.mode === "chat" ? "chat" : "agent",
2605
2652
  conversationId: resolveConversationIdForRuntimeEvents(input.toolContext),
2606
- turnId: readNonEmptyString(input.toolContext?.turnId) ?? `turn_${Date.now()}`,
2653
+ turnId: readNonEmptyString2(input.toolContext?.turnId) ?? `turn_${Date.now()}`,
2607
2654
  telemetry: this.telemetryPort,
2608
2655
  audit: this.auditPort
2609
2656
  };
@@ -2653,18 +2700,18 @@ function isSummarizationCallbacks(value) {
2653
2700
  function isGraphSseSink(value) {
2654
2701
  return typeof value === "function";
2655
2702
  }
2656
- function readNonEmptyString2(value) {
2703
+ function readNonEmptyString3(value) {
2657
2704
  if (typeof value !== "string") return void 0;
2658
2705
  const trimmed = value.trim();
2659
2706
  return trimmed.length > 0 ? trimmed : void 0;
2660
2707
  }
2661
2708
  function readGraphAgentLocal(local) {
2662
2709
  const source = local ?? {};
2663
- const answerId = readNonEmptyString2(source.answerId);
2710
+ const answerId = readNonEmptyString3(source.answerId);
2664
2711
  const chunkSeq = Number.isInteger(source.chunkSeq) ? Number(source.chunkSeq) : 0;
2665
2712
  return {
2666
- conversationId: readNonEmptyString2(source.conversationId) ?? "",
2667
- turnId: readNonEmptyString2(source.turnId),
2713
+ conversationId: readNonEmptyString3(source.conversationId) ?? "",
2714
+ turnId: readNonEmptyString3(source.turnId),
2668
2715
  request: isAgentInvocationRequest(source.request) ? source.request : void 0,
2669
2716
  toolContext: isToolExecutionContext(source.toolContext) ? source.toolContext : void 0,
2670
2717
  history: isRuntimeEventArray(source.history) ? source.history : [],
@@ -3429,7 +3476,7 @@ var LlmNode = class {
3429
3476
  function isRecord8(value) {
3430
3477
  return typeof value === "object" && value !== null && !Array.isArray(value);
3431
3478
  }
3432
- function readNonEmptyString3(value) {
3479
+ function readNonEmptyString4(value) {
3433
3480
  if (typeof value !== "string") {
3434
3481
  return void 0;
3435
3482
  }
@@ -3451,7 +3498,7 @@ function resolveFinalAnswerFromToolResult(toolName, parsedResult) {
3451
3498
  return void 0;
3452
3499
  }
3453
3500
  if (toolName === "write_report") {
3454
- const report = readNonEmptyString3(data.report);
3501
+ const report = readNonEmptyString4(data.report);
3455
3502
  if (!report) {
3456
3503
  throw new Error("[write_report] \u5DE5\u5177\u8F93\u51FA\u7F3A\u5C11 data.report\uFF08\u5FC5\u987B\u63D0\u4F9B\u5B8C\u6574\u62A5\u544A\u6B63\u6587\uFF09");
3457
3504
  }
@@ -3461,7 +3508,7 @@ function resolveFinalAnswerFromToolResult(toolName, parsedResult) {
3461
3508
  if (data.success !== true) {
3462
3509
  return void 0;
3463
3510
  }
3464
- const finalAnswer = readNonEmptyString3(data.final_answer);
3511
+ const finalAnswer = readNonEmptyString4(data.final_answer);
3465
3512
  if (!finalAnswer) {
3466
3513
  throw new Error("[research_run_writer] \u5DE5\u5177\u8F93\u51FA\u7F3A\u5C11 data.final_answer\uFF08success=true \u65F6\u5FC5\u987B\u63D0\u4F9B\u6700\u7EC8\u62A5\u544A\u6B63\u6587\uFF09");
3467
3514
  }
@@ -4006,6 +4053,31 @@ function ensureToolContextRuntimeCapability(params) {
4006
4053
  function getToolContextRuntimeBinding(context) {
4007
4054
  return readBinding(context);
4008
4055
  }
4056
+ function copyToolContextRuntimeCapability(source, target) {
4057
+ const sourceBinding = readBinding(source);
4058
+ if (!sourceBinding) {
4059
+ return void 0;
4060
+ }
4061
+ const existingTargetBinding = readBinding(target);
4062
+ if (existingTargetBinding) {
4063
+ exposeCompatibilitySurface(target, existingTargetBinding);
4064
+ return existingTargetBinding;
4065
+ }
4066
+ const targetBinding = createRuntimeBinding({
4067
+ context: target,
4068
+ persistedHistory: () => sourceBinding.getPersistedHistoryEvents(),
4069
+ workingHistory: () => sourceBinding.getWorkingHistoryEvents(),
4070
+ executionMeta: sourceBinding.readExecutionMeta()
4071
+ });
4072
+ Object.defineProperty(target, TOOL_CONTEXT_RUNTIME_BINDING_KEY, {
4073
+ value: targetBinding,
4074
+ enumerable: false,
4075
+ configurable: true,
4076
+ writable: false
4077
+ });
4078
+ exposeCompatibilitySurface(target, targetBinding);
4079
+ return targetBinding;
4080
+ }
4009
4081
  function readToolContextWorkingHistory(context) {
4010
4082
  if (context.conversationView) {
4011
4083
  return context.conversationView.getWorkingHistoryEvents();
@@ -4857,12 +4929,12 @@ function asRecord(value) {
4857
4929
  }
4858
4930
  return value;
4859
4931
  }
4860
- function summarizeCheckpoint(conversationId, state, savedAt) {
4932
+ function summarizeCheckpoint(checkpointKey, state, savedAt) {
4861
4933
  const local = asRecord(state.local);
4862
4934
  const executorLocal = asRecord(local?.executorLocal);
4863
4935
  const pendingToolCalls = local?.pendingToolCalls;
4864
4936
  return {
4865
- conversationId,
4937
+ checkpointKey,
4866
4938
  schemaVersion: state.schemaVersion ?? 1,
4867
4939
  savedAt,
4868
4940
  currentNode: state.nodeId,
@@ -4881,25 +4953,25 @@ var MemoryCheckpointer = class {
4881
4953
  local: state.local && typeof state.local === "object" && !Array.isArray(state.local) ? { ...state.local } : state.local
4882
4954
  };
4883
4955
  }
4884
- async load(conversationId) {
4885
- const entry = this.store.get(conversationId);
4956
+ async load(checkpointKey) {
4957
+ const entry = this.store.get(checkpointKey);
4886
4958
  return entry ? this.cloneState(entry.state) : null;
4887
4959
  }
4888
- async save(conversationId, state) {
4889
- this.store.set(conversationId, {
4960
+ async save(checkpointKey, state) {
4961
+ this.store.set(checkpointKey, {
4890
4962
  state: this.cloneState(state),
4891
4963
  savedAt: Date.now()
4892
4964
  });
4893
4965
  }
4894
- async clear(conversationId) {
4895
- this.store.delete(conversationId);
4966
+ async clear(checkpointKey) {
4967
+ this.store.delete(checkpointKey);
4896
4968
  }
4897
- async peekMeta(conversationId) {
4898
- const entry = this.store.get(conversationId);
4899
- return entry ? summarizeCheckpoint(conversationId, entry.state, entry.savedAt) : null;
4969
+ async peekMeta(checkpointKey) {
4970
+ const entry = this.store.get(checkpointKey);
4971
+ return entry ? summarizeCheckpoint(checkpointKey, entry.state, entry.savedAt) : null;
4900
4972
  }
4901
4973
  async list(filter = {}) {
4902
- const summaries = Array.from(this.store.entries()).map(([conversationId, entry]) => summarizeCheckpoint(conversationId, entry.state, entry.savedAt)).filter((summary) => filter.savedAfter === void 0 ? true : summary.savedAt > filter.savedAfter).sort((left, right) => right.savedAt - left.savedAt);
4974
+ const summaries = Array.from(this.store.entries()).map(([checkpointKey, entry]) => summarizeCheckpoint(checkpointKey, entry.state, entry.savedAt)).filter((summary) => filter.savedAfter === void 0 ? true : summary.savedAt > filter.savedAfter).sort((left, right) => right.savedAt - left.savedAt);
4903
4975
  if (filter.limit === void 0) {
4904
4976
  return summaries;
4905
4977
  }
@@ -4971,6 +5043,7 @@ __export(tools_exports, {
4971
5043
  CommonParameterTypes: () => CommonParameterTypes,
4972
5044
  ContextCheckpointTool: () => ContextCheckpointTool,
4973
5045
  computeToolIdempotencyKey: () => computeToolIdempotencyKey,
5046
+ copyToolContextRuntimeCapability: () => copyToolContextRuntimeCapability,
4974
5047
  createContextCheckpointTool: () => createContextCheckpointTool,
4975
5048
  ensureToolContextRuntimeCapability: () => ensureToolContextRuntimeCapability,
4976
5049
  findCachedToolOutputByIdempotencyKey: () => findCachedToolOutputByIdempotencyKey,
@@ -5164,7 +5237,7 @@ function createContextCheckpointTool(options) {
5164
5237
  function isRecord15(value) {
5165
5238
  return !!value && typeof value === "object" && !Array.isArray(value);
5166
5239
  }
5167
- function readNonEmptyString4(value) {
5240
+ function readNonEmptyString5(value) {
5168
5241
  if (typeof value !== "string") {
5169
5242
  return void 0;
5170
5243
  }
@@ -5184,13 +5257,13 @@ function readToolContextUserQuery(context) {
5184
5257
  if (!context) {
5185
5258
  return void 0;
5186
5259
  }
5187
- return readNonEmptyString4(context["user_query"]);
5260
+ return readNonEmptyString5(context["user_query"]);
5188
5261
  }
5189
5262
  function readToolContextModelId(context) {
5190
5263
  if (!context) {
5191
5264
  return void 0;
5192
5265
  }
5193
- return readNonEmptyString4(context["modelId"]);
5266
+ return readNonEmptyString5(context["modelId"]);
5194
5267
  }
5195
5268
  function readToolContextRunContext(context) {
5196
5269
  if (!context) {
@@ -6898,6 +6971,7 @@ var DefaultTokenizerPort = class {
6898
6971
  constructor(config = {}) {
6899
6972
  this.config = config;
6900
6973
  }
6974
+ config;
6901
6975
  estimateText(text, _modelId) {
6902
6976
  return TokenCalculator.estimateTokens(text, {
6903
6977
  encoding: this.config.encoding,
@@ -6925,7 +6999,6 @@ __export(child_runs_exports, {
6925
6999
 
6926
7000
  // src/runtime-kernel/child-runs/childToolContext.ts
6927
7001
  function createChildRunToolContext(params) {
6928
- const inheritedConversationId = typeof params.parentToolContext.conversationId === "string" && params.parentToolContext.conversationId.trim().length > 0 ? params.parentToolContext.conversationId.trim() : void 0;
6929
7002
  const inheritedContext = stripRuntimeReservedToolContextPatch(params.parentToolContext);
6930
7003
  const childToolContext = {
6931
7004
  ...inheritedContext,
@@ -6937,7 +7010,7 @@ function createChildRunToolContext(params) {
6937
7010
  persistedHistory: params.seedHistory,
6938
7011
  workingHistory: params.seedHistory,
6939
7012
  executionMeta: {
6940
- conversationId: inheritedConversationId ?? params.internalConversationId,
7013
+ conversationId: params.conversationId,
6941
7014
  turnId: params.turnId,
6942
7015
  runId: params.runId,
6943
7016
  parentRunId: params.parentRunId
@@ -7039,6 +7112,8 @@ var FinalAnswerCollector = class {
7039
7112
  this.conversationId = conversationId;
7040
7113
  this.turnId = turnId;
7041
7114
  }
7115
+ conversationId;
7116
+ turnId;
7042
7117
  answerId;
7043
7118
  chunks = [];
7044
7119
  chunkCount = 0;
@@ -7255,7 +7330,7 @@ function readCheckpointHistory(checkpoint) {
7255
7330
  });
7256
7331
  }
7257
7332
  async function recoverChildRunEventsFromCheckpoint(params) {
7258
- const checkpoint = await params.checkpointer.load(params.conversationId);
7333
+ const checkpoint = await params.checkpointer.load(params.checkpointKey);
7259
7334
  const history = readCheckpointHistory(checkpoint);
7260
7335
  if (history.length === 0) {
7261
7336
  return [];
@@ -7263,7 +7338,7 @@ async function recoverChildRunEventsFromCheckpoint(params) {
7263
7338
  if (hasSeedHistoryPrefix(history, params.seedHistory)) {
7264
7339
  return history.slice(params.seedHistory.length);
7265
7340
  }
7266
- return history.filter((event) => event.conversation_id === params.internalConversationId);
7341
+ return history.filter((event) => event.conversation_id === params.childConversationId);
7267
7342
  }
7268
7343
 
7269
7344
  // src/runtime-kernel/child-runs/childRunInvoker.ts
@@ -7292,6 +7367,7 @@ var ChildRunInvoker = class {
7292
7367
  agentConfig,
7293
7368
  userMessage,
7294
7369
  parentToolContext,
7370
+ conversationId,
7295
7371
  runId,
7296
7372
  parentRunId,
7297
7373
  subrunTracePublisher,
@@ -7300,12 +7376,18 @@ var ChildRunInvoker = class {
7300
7376
  modelId,
7301
7377
  abortSignal
7302
7378
  } = config;
7303
- const internalConversationId = `internal_${generateMessageId()}`;
7379
+ const internalCheckpointKey = `internal_${generateMessageId()}`;
7380
+ const runtimeConversationId = resolveChildRunConversationId({
7381
+ explicitConversationId: conversationId,
7382
+ parentToolContext,
7383
+ fallbackConversationId: internalCheckpointKey
7384
+ });
7304
7385
  const turnId = `turn_${Date.now()}`;
7305
- const childRunId = typeof runId === "string" && runId.trim().length > 0 ? runId.trim() : internalConversationId;
7386
+ const childRunId = typeof runId === "string" && runId.trim().length > 0 ? runId.trim() : internalCheckpointKey;
7306
7387
  const resolvedParentRunId = typeof parentRunId === "string" && parentRunId.trim().length > 0 ? parentRunId.trim() : typeof parentToolContext.runId === "string" && parentToolContext.runId.trim().length > 0 ? parentToolContext.runId.trim() : void 0;
7307
7388
  logger13.info(`\u542F\u52A8 child-run: ${agentConfig.id}`, {
7308
- conversationId: internalConversationId,
7389
+ conversationId: runtimeConversationId,
7390
+ checkpointKey: internalCheckpointKey,
7309
7391
  maxSteps,
7310
7392
  userMessage: userMessage.slice(0, 100) + (userMessage.length > 100 ? "..." : "")
7311
7393
  });
@@ -7366,7 +7448,7 @@ var ChildRunInvoker = class {
7366
7448
  const seedHistory = Array.isArray(seedHistoryEvents) ? seedHistoryEvents : [];
7367
7449
  const childToolContext = createChildRunToolContext({
7368
7450
  parentToolContext,
7369
- internalConversationId,
7451
+ conversationId: runtimeConversationId,
7370
7452
  turnId,
7371
7453
  runId: childRunId,
7372
7454
  parentRunId: resolvedParentRunId,
@@ -7375,13 +7457,13 @@ var ChildRunInvoker = class {
7375
7457
  });
7376
7458
  const subrunSseSink = subrunTracePublisher ? createChildRunTraceSink({
7377
7459
  publisher: subrunTracePublisher,
7378
- conversationId: internalConversationId,
7460
+ conversationId: runtimeConversationId,
7379
7461
  turnId
7380
7462
  }) : void 0;
7381
7463
  const initialLocal = {
7382
7464
  request,
7383
7465
  history: seedHistory,
7384
- conversationId: internalConversationId,
7466
+ conversationId: runtimeConversationId,
7385
7467
  turnId,
7386
7468
  toolContext: childToolContext,
7387
7469
  ...abortSignal ? { signal: abortSignal } : {},
@@ -7389,7 +7471,7 @@ var ChildRunInvoker = class {
7389
7471
  ...subrunSseSink ? { sseSink: subrunSseSink } : {},
7390
7472
  systemPrompt
7391
7473
  };
7392
- await graphExecutor.prime(internalConversationId, initialLocal, "llm");
7474
+ await graphExecutor.prime(internalCheckpointKey, initialLocal, "llm");
7393
7475
  const allEvents = [];
7394
7476
  let stepCount = 0;
7395
7477
  let finalAnswer;
@@ -7401,7 +7483,7 @@ var ChildRunInvoker = class {
7401
7483
  err.name = "AbortError";
7402
7484
  throw err;
7403
7485
  }
7404
- const result = await graphExecutor.runUntilYield(internalConversationId);
7486
+ const result = await graphExecutor.runUntilYield(internalCheckpointKey);
7405
7487
  appendUniqueEvents(allEvents, result.events);
7406
7488
  stepCount = result.stepCount;
7407
7489
  if (subrunSseSink && typeof subrunSseSink.finalize === "function") {
@@ -7435,8 +7517,8 @@ var ChildRunInvoker = class {
7435
7517
  }
7436
7518
  const recoveredEvents = await recoverChildRunEventsFromCheckpoint({
7437
7519
  checkpointer,
7438
- conversationId: internalConversationId,
7439
- internalConversationId,
7520
+ checkpointKey: internalCheckpointKey,
7521
+ childConversationId: runtimeConversationId,
7440
7522
  seedHistory
7441
7523
  });
7442
7524
  appendUniqueEvents(allEvents, recoveredEvents);
@@ -7453,7 +7535,7 @@ var ChildRunInvoker = class {
7453
7535
  stack: err.stack
7454
7536
  } : { error: String(err) });
7455
7537
  }
7456
- await checkpointer.clear(internalConversationId);
7538
+ await checkpointer.clear(internalCheckpointKey);
7457
7539
  return {
7458
7540
  success: !error,
7459
7541
  runId: childRunId,
@@ -7466,6 +7548,16 @@ var ChildRunInvoker = class {
7466
7548
  };
7467
7549
  }
7468
7550
  };
7551
+ function readNonEmptyString6(value) {
7552
+ if (typeof value !== "string") {
7553
+ return void 0;
7554
+ }
7555
+ const trimmed = value.trim();
7556
+ return trimmed.length > 0 ? trimmed : void 0;
7557
+ }
7558
+ function resolveChildRunConversationId(params) {
7559
+ return readNonEmptyString6(params.explicitConversationId) ?? readNonEmptyString6(params.parentToolContext.conversationId) ?? params.fallbackConversationId;
7560
+ }
7469
7561
  function resolveChildRunSystemReminderPolicy(agentConfig) {
7470
7562
  const configured = agentConfig.systemReminderPolicy ?? agentConfig.contextPolicy?.systemReminder;
7471
7563
  const threshold = agentConfig.stepPolicy?.lastStepsHintThreshold;
@@ -7656,7 +7748,7 @@ function cloneRunRecord(record) {
7656
7748
  ...record,
7657
7749
  iterationBudget: record.iterationBudget ? { ...record.iterationBudget } : void 0,
7658
7750
  errorIfAny: record.errorIfAny ? { ...record.errorIfAny } : void 0,
7659
- metadata: record.metadata ? { ...record.metadata } : void 0
7751
+ metadata: record.metadata ? structuredClone(record.metadata) : void 0
7660
7752
  };
7661
7753
  }
7662
7754
  function matchesStatus(candidate, filter) {
@@ -8068,7 +8160,7 @@ function isTerminalStatus(status) {
8068
8160
  return status === "completed" || status === "failed" || status === "cancelled";
8069
8161
  }
8070
8162
  function cloneMetadata(metadata) {
8071
- return metadata ? { ...metadata } : void 0;
8163
+ return metadata ? structuredClone(metadata) : void 0;
8072
8164
  }
8073
8165
  function recordToSnapshot(record) {
8074
8166
  return {
@@ -8155,7 +8247,7 @@ var DefaultRunSupervisor = class {
8155
8247
  startedAt,
8156
8248
  updatedAt: startedAt,
8157
8249
  iterationBudget: spec.iterationBudget ? { ...spec.iterationBudget } : void 0,
8158
- metadata: spec.metadata ? { ...spec.metadata } : void 0
8250
+ metadata: cloneMetadata(spec.metadata)
8159
8251
  };
8160
8252
  await this.registryStore.save(record);
8161
8253
  const handle = new DefaultRunHandle({
@@ -8329,12 +8421,13 @@ var DefaultRunSupervisor = class {
8329
8421
  }
8330
8422
  try {
8331
8423
  await handle.markRunning({ currentNode: "detached" });
8424
+ const registeredRecord = await this.registryStore.load(handle.runId);
8332
8425
  const executorOutcome = await this.executor.execute({
8333
8426
  runId: handle.runId,
8334
- parentRunId: spec.parentRunId,
8335
- conversationId: spec.conversationId,
8336
- agentSpec: spec.agentSpec,
8337
- request: spec.request,
8427
+ parentRunId: handle.parentRunId,
8428
+ conversationId: registeredRecord?.conversationId ?? spec.conversationId,
8429
+ agentSpec: await handle.spec(),
8430
+ request: await handle.request(),
8338
8431
  signal: handle.signal,
8339
8432
  eventBus: spec.eventBus,
8340
8433
  eventStore: spec.eventStore,
@@ -8343,7 +8436,7 @@ var DefaultRunSupervisor = class {
8343
8436
  contextFences: spec.contextFences,
8344
8437
  wakeSource: spec.wakeSource,
8345
8438
  ephemeral: spec.ephemeral,
8346
- metadata: spec.metadata
8439
+ metadata: cloneMetadata(registeredRecord?.metadata ?? spec.metadata)
8347
8440
  });
8348
8441
  const outcome = await this.persistExecutorOutcome(handle, executorOutcome);
8349
8442
  this.notifyTerminalWaiters(outcome);
@@ -8407,10 +8500,14 @@ var DefaultRunSupervisor = class {
8407
8500
  await this.registryStore.save(record);
8408
8501
  }
8409
8502
  const completedAt = executorOutcome?.completedAt ?? this.now();
8503
+ const fallbackMeta = record ? void 0 : await handle.meta();
8410
8504
  const outcome = recordToTerminalOutcome(record ?? {
8411
8505
  runId: handle.runId,
8412
8506
  parentRunId: handle.parentRunId,
8413
- status: executorOutcome?.status ?? "completed"}, completedAt);
8507
+ conversationId: fallbackMeta?.conversationId ?? "",
8508
+ agentSpecId: fallbackMeta?.agentSpecId,
8509
+ status: executorOutcome?.status ?? "completed",
8510
+ startedAt: fallbackMeta?.startedAt ?? completedAt}, completedAt);
8414
8511
  const nextOutcome = {
8415
8512
  ...outcome,
8416
8513
  metadata: {
@@ -8638,6 +8735,7 @@ function createGraphLoopHarness(options) {
8638
8735
  };
8639
8736
  return {
8640
8737
  async run() {
8738
+ const checkpointKey = options.conversationId;
8641
8739
  const executor = createDefaultGraphExecutor({
8642
8740
  llmNode: options.createLlmNode({
8643
8741
  llmCaller: options.llmCaller,
@@ -8666,8 +8764,8 @@ function createGraphLoopHarness(options) {
8666
8764
  signal: options.signal ?? options.toolContext.abortSignal,
8667
8765
  executorLocal
8668
8766
  };
8669
- await executor.prime(options.conversationId, local, "user");
8670
- const result = await executor.runUntilYield(options.conversationId);
8767
+ await executor.prime(checkpointKey, local, "user");
8768
+ const result = await executor.runUntilYield(checkpointKey);
8671
8769
  return {
8672
8770
  checkpointNodeId: result.checkpoint.nodeId,
8673
8771
  stepCount: result.stepCount
@@ -8676,6 +8774,6 @@ function createGraphLoopHarness(options) {
8676
8774
  };
8677
8775
  }
8678
8776
 
8679
- export { AnswerNode, AuditEnvelopePersistenceError, BUILTIN_SYSTEM_REMINDER_TEMPLATES, BUILTIN_SYSTEM_REMINDER_TRIGGERS, BaseTool, CommonParameterTypes, CompositeAuditPort, ContextCheckpointTool, DEFAULT_CONTEXT_CHECKPOINT_TOOL_NAME, DefaultTokenizerPort, ENGINE_ERROR_CODES, ENGINE_STATE_SCHEMA_VERSION, EventBusSubRunTracePublisher, EventStoreAuditPort, FileAuditPort, GraphAgentExecutor, GraphExecutor, LLMPolicyEngine, LlmCaller, LlmNode, MemoryCheckpointer, MemoryEventStore, ModelResolver, SYSTEM_REMINDER_RULES, SystemReminderRegistry, ToolNode, UserNode, WaitUserNode, agentHasToolTrigger, appendStreamingProviderReasoningDetails, applySystemReminders, audit_exports as audit, budgetWarningTrigger, child_run_trace_exports as childRunTrace, child_runs_exports as childRuns, compactProviderReasoningDetails, compactReasoningDetailsInValue, computeToolIdempotencyKey, consoleAudit, contextBudgetWarningTemplate, countToolCallsInCurrentRequest, createCompositeAudit, createConsoleAudit, createContextCheckpointTool, createDefaultGraphExecutor, createDefaultSystemReminderRegistry, createDefaultTokenizerPort, createEventStoreAudit, createFileAudit, createGraphLoopHarness, createMonotonicEventIdFactory, createSystemReminderRules, defaultPolicyEngine, defaultSystemReminderRegistry, emitAuditEnvelope, emitSandboxDecisionAudit, enrichment_exports as enrichment, ensureToolContextRuntimeCapability, events_exports as events, execution_exports as execution, findCachedToolOutputByIdempotencyKey, getToolContextRuntimeBinding, graph_engine_exports as graph, lastStepsHintTemplate, llm_exports as llm, maxStepsForceFinalAnswerTemplate, noopAudit, normalizeToolArgs, periodicTaskstateReflectionTemplate, phaseEqualsTrigger, readContextCheckpointToolName, readNonEmptyStrings, readToolContextModelId, readToolContextPersistedHistory, readToolContextRunContext, readToolContextUserQuery, readToolContextWorkingHistory, remainingStepsLeqTrigger, requestEnricherRegistry, run_context_exports as runContext, run_supervisor_exports as runSupervisor, stepCountModuloTrigger, stripRuntimeReservedToolContextPatch, summarizeCheckpoint, system_reminder_exports as systemReminder, telemetry_exports as telemetry, toDisplayStep, toolCallStreakTemplate, toolCallStreakTrigger, tools_exports as tools };
8777
+ export { AnswerNode, AuditEnvelopePersistenceError, BUILTIN_SYSTEM_REMINDER_TEMPLATES, BUILTIN_SYSTEM_REMINDER_TRIGGERS, BaseTool, CommonParameterTypes, CompositeAuditPort, ContextCheckpointTool, DEFAULT_CONTEXT_CHECKPOINT_TOOL_NAME, DefaultTokenizerPort, ENGINE_ERROR_CODES, ENGINE_STATE_SCHEMA_VERSION, EventBusSubRunTracePublisher, EventStoreAuditPort, FileAuditPort, GraphAgentExecutor, GraphExecutor, LLMPolicyEngine, LlmCaller, LlmNode, MemoryCheckpointer, MemoryEventStore, ModelResolver, SYSTEM_REMINDER_RULES, SystemReminderRegistry, ToolNode, UserNode, WaitUserNode, agentHasToolTrigger, appendStreamingProviderReasoningDetails, applySystemReminders, audit_exports as audit, budgetWarningTrigger, child_run_trace_exports as childRunTrace, child_runs_exports as childRuns, compactProviderReasoningDetails, compactReasoningDetailsInValue, computeToolIdempotencyKey, consoleAudit, contextBudgetWarningTemplate, copyToolContextRuntimeCapability, countToolCallsInCurrentRequest, createCompositeAudit, createConsoleAudit, createContextCheckpointTool, createDefaultGraphExecutor, createDefaultSystemReminderRegistry, createDefaultTokenizerPort, createEventStoreAudit, createFileAudit, createGraphLoopHarness, createMonotonicEventIdFactory, createSystemReminderRules, defaultPolicyEngine, defaultSystemReminderRegistry, emitAuditEnvelope, emitSandboxDecisionAudit, enrichment_exports as enrichment, ensureToolContextRuntimeCapability, events_exports as events, execution_exports as execution, findCachedToolOutputByIdempotencyKey, getToolContextRuntimeBinding, graph_engine_exports as graph, lastStepsHintTemplate, llm_exports as llm, maxStepsForceFinalAnswerTemplate, noopAudit, normalizeToolArgs, periodicTaskstateReflectionTemplate, phaseEqualsTrigger, readContextCheckpointToolName, readNonEmptyStrings, readToolContextModelId, readToolContextPersistedHistory, readToolContextRunContext, readToolContextUserQuery, readToolContextWorkingHistory, remainingStepsLeqTrigger, requestEnricherRegistry, run_context_exports as runContext, run_supervisor_exports as runSupervisor, stepCountModuloTrigger, stripRuntimeReservedToolContextPatch, summarizeCheckpoint, system_reminder_exports as systemReminder, telemetry_exports as telemetry, toDisplayStep, toolCallStreakTemplate, toolCallStreakTrigger, tools_exports as tools };
8680
8778
  //# sourceMappingURL=runtime-kernel.js.map
8681
8779
  //# sourceMappingURL=runtime-kernel.js.map