@qduc/term2 0.31.1 → 0.32.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 (269) hide show
  1. package/README.md +52 -370
  2. package/dist/agent.d.ts +2 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +11 -1
  5. package/dist/agent.js.map +1 -1
  6. package/dist/app.d.ts +3 -1
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +44 -4
  9. package/dist/app.js.map +1 -1
  10. package/dist/build-info.json +2 -2
  11. package/dist/cli.js +13 -3
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/goal-command.d.ts.map +1 -1
  14. package/dist/commands/goal-command.js +9 -8
  15. package/dist/commands/goal-command.js.map +1 -1
  16. package/dist/commands/retry-failed-turn-command.d.ts.map +1 -1
  17. package/dist/commands/retry-failed-turn-command.js +3 -4
  18. package/dist/commands/retry-failed-turn-command.js.map +1 -1
  19. package/dist/components/InputBox.js +4 -6
  20. package/dist/components/InputBox.js.map +1 -1
  21. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  22. package/dist/components/layout/BottomArea.js +13 -11
  23. package/dist/components/layout/BottomArea.js.map +1 -1
  24. package/dist/components/message/MessageList.d.ts +3 -1
  25. package/dist/components/message/MessageList.d.ts.map +1 -1
  26. package/dist/components/message/MessageList.js +5 -2
  27. package/dist/components/message/MessageList.js.map +1 -1
  28. package/dist/components/message/SessionBoundary.d.ts +11 -0
  29. package/dist/components/message/SessionBoundary.d.ts.map +1 -0
  30. package/dist/components/message/SessionBoundary.js +22 -0
  31. package/dist/components/message/SessionBoundary.js.map +1 -0
  32. package/dist/contracts/provider-input.d.ts +10 -0
  33. package/dist/contracts/provider-input.d.ts.map +1 -1
  34. package/dist/contracts/provider-input.js.map +1 -1
  35. package/dist/contracts/run-termination.d.ts +3 -1
  36. package/dist/contracts/run-termination.d.ts.map +1 -1
  37. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  38. package/dist/hooks/settings-completion-config.js +1 -0
  39. package/dist/hooks/settings-completion-config.js.map +1 -1
  40. package/dist/lib/agent-chat-service.d.ts +6 -0
  41. package/dist/lib/agent-chat-service.d.ts.map +1 -1
  42. package/dist/lib/agent-chat-service.js +27 -3
  43. package/dist/lib/agent-chat-service.js.map +1 -1
  44. package/dist/lib/agent-client.d.ts +6 -0
  45. package/dist/lib/agent-client.d.ts.map +1 -1
  46. package/dist/lib/agent-client.js +80 -22
  47. package/dist/lib/agent-client.js.map +1 -1
  48. package/dist/lib/agent-configuration.d.ts +2 -0
  49. package/dist/lib/agent-configuration.d.ts.map +1 -1
  50. package/dist/lib/agent-configuration.js +5 -0
  51. package/dist/lib/agent-configuration.js.map +1 -1
  52. package/dist/lib/agent-factory.d.ts.map +1 -1
  53. package/dist/lib/agent-factory.js +15 -4
  54. package/dist/lib/agent-factory.js.map +1 -1
  55. package/dist/non-interactive.d.ts +5 -0
  56. package/dist/non-interactive.d.ts.map +1 -1
  57. package/dist/non-interactive.js +63 -6
  58. package/dist/non-interactive.js.map +1 -1
  59. package/dist/prompts/durable-goal-context.d.ts.map +1 -1
  60. package/dist/prompts/durable-goal-context.js +12 -2
  61. package/dist/prompts/durable-goal-context.js.map +1 -1
  62. package/dist/prompts/durable-goal-context.test.ts +11 -0
  63. package/dist/prompts/durable-goal-context.ts +13 -2
  64. package/dist/providers/ai-sdk-openrouter.provider.js +3 -2
  65. package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -1
  66. package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
  67. package/dist/providers/ai-sdk-streamed-model.js +12 -2
  68. package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
  69. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  70. package/dist/providers/codex-responses-model.js +35 -16
  71. package/dist/providers/codex-responses-model.js.map +1 -1
  72. package/dist/providers/openai-chat-completions-model.d.ts.map +1 -1
  73. package/dist/providers/openai-chat-completions-model.js +11 -3
  74. package/dist/providers/openai-chat-completions-model.js.map +1 -1
  75. package/dist/services/agent-runtime/application-run-loop.d.ts +34 -1
  76. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  77. package/dist/services/agent-runtime/application-run-loop.js +174 -33
  78. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  79. package/dist/services/agent-runtime/context-compaction/index.d.ts.map +1 -1
  80. package/dist/services/agent-runtime/context-compaction/index.js +65 -16
  81. package/dist/services/agent-runtime/context-compaction/index.js.map +1 -1
  82. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts +7 -1
  83. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
  84. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +115 -20
  85. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
  86. package/dist/services/agent-runtime/model-context-policy.d.ts +21 -0
  87. package/dist/services/agent-runtime/model-context-policy.d.ts.map +1 -0
  88. package/dist/services/agent-runtime/model-context-policy.js +46 -0
  89. package/dist/services/agent-runtime/model-context-policy.js.map +1 -0
  90. package/dist/services/agent-runtime/request-input-limit.d.ts +31 -0
  91. package/dist/services/agent-runtime/request-input-limit.d.ts.map +1 -0
  92. package/dist/services/agent-runtime/request-input-limit.js +86 -0
  93. package/dist/services/agent-runtime/request-input-limit.js.map +1 -0
  94. package/dist/services/agent-runtime/run-budget.d.ts +3 -5
  95. package/dist/services/agent-runtime/run-budget.d.ts.map +1 -1
  96. package/dist/services/agent-runtime/run-budget.js.map +1 -1
  97. package/dist/services/agent-runtime/tool-call-execution.d.ts +24 -2
  98. package/dist/services/agent-runtime/tool-call-execution.d.ts.map +1 -1
  99. package/dist/services/agent-runtime/tool-call-execution.js +36 -6
  100. package/dist/services/agent-runtime/tool-call-execution.js.map +1 -1
  101. package/dist/services/agent-runtime/tool-invocation-context.d.ts +24 -12
  102. package/dist/services/agent-runtime/tool-invocation-context.d.ts.map +1 -1
  103. package/dist/services/agent-runtime/tool-invocation-context.js +38 -27
  104. package/dist/services/agent-runtime/tool-invocation-context.js.map +1 -1
  105. package/dist/services/approval/approval-replay.d.ts +15 -24
  106. package/dist/services/approval/approval-replay.d.ts.map +1 -1
  107. package/dist/services/approval/approval-replay.js +12 -30
  108. package/dist/services/approval/approval-replay.js.map +1 -1
  109. package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
  110. package/dist/services/approval/non-interactive-approval-policy.js +11 -0
  111. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  112. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  113. package/dist/services/approval/tool-approval-batch-coordinator.js +0 -5
  114. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  115. package/dist/services/conversation/conversation-checkpoint-provenance.d.ts.map +1 -1
  116. package/dist/services/conversation/conversation-checkpoint-provenance.js +10 -2
  117. package/dist/services/conversation/conversation-checkpoint-provenance.js.map +1 -1
  118. package/dist/services/conversation/conversation-events.d.ts +2 -0
  119. package/dist/services/conversation/conversation-events.d.ts.map +1 -1
  120. package/dist/services/conversation/conversation-events.js.map +1 -1
  121. package/dist/services/conversation/conversation-orchestrator.d.ts +1 -1
  122. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  123. package/dist/services/conversation/conversation-orchestrator.js +14 -2
  124. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  125. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  126. package/dist/services/conversation/conversation-replay.js +78 -3
  127. package/dist/services/conversation/conversation-replay.js.map +1 -1
  128. package/dist/services/conversation/conversation-service.d.ts +2 -2
  129. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  130. package/dist/services/conversation/conversation-service.js +5 -1
  131. package/dist/services/conversation/conversation-service.js.map +1 -1
  132. package/dist/services/conversation/conversation-state-projector.d.ts +1 -0
  133. package/dist/services/conversation/conversation-state-projector.d.ts.map +1 -1
  134. package/dist/services/conversation/conversation-state-projector.js +5 -1
  135. package/dist/services/conversation/conversation-state-projector.js.map +1 -1
  136. package/dist/services/conversation/durable-goal-stop-check.d.ts +141 -0
  137. package/dist/services/conversation/durable-goal-stop-check.d.ts.map +1 -0
  138. package/dist/services/conversation/durable-goal-stop-check.js +351 -0
  139. package/dist/services/conversation/durable-goal-stop-check.js.map +1 -0
  140. package/dist/services/conversation/durable-goal.d.ts +16 -1
  141. package/dist/services/conversation/durable-goal.d.ts.map +1 -1
  142. package/dist/services/conversation/durable-goal.js +8 -0
  143. package/dist/services/conversation/durable-goal.js.map +1 -1
  144. package/dist/services/conversation/local-checkpoint-projection.d.ts.map +1 -1
  145. package/dist/services/conversation/local-checkpoint-projection.js +12 -1
  146. package/dist/services/conversation/local-checkpoint-projection.js.map +1 -1
  147. package/dist/services/conversation/session-browser.d.ts +2 -0
  148. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  149. package/dist/services/conversation/session-browser.js +23 -8
  150. package/dist/services/conversation/session-browser.js.map +1 -1
  151. package/dist/services/conversation/session-index/session-index-worker-client.d.ts +3 -0
  152. package/dist/services/conversation/session-index/session-index-worker-client.d.ts.map +1 -1
  153. package/dist/services/conversation/session-index/session-index-worker-client.js +6 -1
  154. package/dist/services/conversation/session-index/session-index-worker-client.js.map +1 -1
  155. package/dist/services/conversation/session-index/session-index-worker.d.ts +16 -1
  156. package/dist/services/conversation/session-index/session-index-worker.d.ts.map +1 -1
  157. package/dist/services/conversation/session-index/session-index-worker.js +16 -0
  158. package/dist/services/conversation/session-index/session-index-worker.js.map +1 -1
  159. package/dist/services/conversation-agent-client.d.ts +1 -0
  160. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  161. package/dist/services/logging/conversation-log-events.d.ts +7 -0
  162. package/dist/services/logging/conversation-log-events.d.ts.map +1 -1
  163. package/dist/services/logging/conversation-log-events.js.map +1 -1
  164. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  165. package/dist/services/retry/retry-classifier.js +2 -1
  166. package/dist/services/retry/retry-classifier.js.map +1 -1
  167. package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
  168. package/dist/services/retry/retry-error-classification.js +1 -0
  169. package/dist/services/retry/retry-error-classification.js.map +1 -1
  170. package/dist/services/service-interfaces.d.ts +2 -0
  171. package/dist/services/service-interfaces.d.ts.map +1 -1
  172. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  173. package/dist/services/session/initial-turn-recovery-handler.js +6 -0
  174. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  175. package/dist/services/session/session-composition.d.ts.map +1 -1
  176. package/dist/services/session/session-composition.js +7 -5
  177. package/dist/services/session/session-composition.js.map +1 -1
  178. package/dist/services/session/session-manager.d.ts +2 -0
  179. package/dist/services/session/session-manager.d.ts.map +1 -1
  180. package/dist/services/session/session-manager.js +10 -0
  181. package/dist/services/session/session-manager.js.map +1 -1
  182. package/dist/services/session/session-tool-tracker.d.ts +1 -0
  183. package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
  184. package/dist/services/session/session-tool-tracker.js +8 -0
  185. package/dist/services/session/session-tool-tracker.js.map +1 -1
  186. package/dist/services/session/terminal-result-collector.d.ts.map +1 -1
  187. package/dist/services/session/terminal-result-collector.js +3 -0
  188. package/dist/services/session/terminal-result-collector.js.map +1 -1
  189. package/dist/services/session/turn-workflow.d.ts.map +1 -1
  190. package/dist/services/session/turn-workflow.js +3 -0
  191. package/dist/services/session/turn-workflow.js.map +1 -1
  192. package/dist/services/settings/settings-env.d.ts.map +1 -1
  193. package/dist/services/settings/settings-env.js +6 -0
  194. package/dist/services/settings/settings-env.js.map +1 -1
  195. package/dist/services/settings/settings-persistence.d.ts +2 -1
  196. package/dist/services/settings/settings-persistence.d.ts.map +1 -1
  197. package/dist/services/settings/settings-persistence.js +1 -1
  198. package/dist/services/settings/settings-persistence.js.map +1 -1
  199. package/dist/services/settings/settings-schema.d.ts +7 -1
  200. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  201. package/dist/services/settings/settings-schema.js +17 -6
  202. package/dist/services/settings/settings-schema.js.map +1 -1
  203. package/dist/services/settings/settings-service.d.ts +3 -0
  204. package/dist/services/settings/settings-service.d.ts.map +1 -1
  205. package/dist/services/settings/settings-service.js +74 -31
  206. package/dist/services/settings/settings-service.js.map +1 -1
  207. package/dist/services/settings/settings-sources.d.ts +1 -0
  208. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  209. package/dist/services/settings/settings-sources.js +1 -0
  210. package/dist/services/settings/settings-sources.js.map +1 -1
  211. package/dist/services/settings/settings-ui-metadata.js +1 -1
  212. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  213. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +1 -1
  214. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  215. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +1 -0
  216. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  217. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  218. package/dist/services/subagents/execution-runner.js +16 -3
  219. package/dist/services/subagents/execution-runner.js.map +1 -1
  220. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  221. package/dist/services/subagents/nested-runner.js +3 -2
  222. package/dist/services/subagents/nested-runner.js.map +1 -1
  223. package/dist/services/tool-execution-ledger.d.ts +22 -0
  224. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  225. package/dist/services/tool-execution-ledger.js +40 -3
  226. package/dist/services/tool-execution-ledger.js.map +1 -1
  227. package/dist/services/workflow-evolution/cli.d.ts +2 -0
  228. package/dist/services/workflow-evolution/cli.d.ts.map +1 -0
  229. package/dist/services/workflow-evolution/cli.js +26 -0
  230. package/dist/services/workflow-evolution/cli.js.map +1 -0
  231. package/dist/services/workflow-evolution/demo.d.ts +18 -0
  232. package/dist/services/workflow-evolution/demo.d.ts.map +1 -0
  233. package/dist/services/workflow-evolution/demo.js +177 -0
  234. package/dist/services/workflow-evolution/demo.js.map +1 -0
  235. package/dist/services/workflow-evolution/experiment.d.ts +304 -0
  236. package/dist/services/workflow-evolution/experiment.d.ts.map +1 -0
  237. package/dist/services/workflow-evolution/experiment.js +251 -0
  238. package/dist/services/workflow-evolution/experiment.js.map +1 -0
  239. package/dist/services/workflow-evolution/ledger.d.ts +5 -0
  240. package/dist/services/workflow-evolution/ledger.d.ts.map +1 -0
  241. package/dist/services/workflow-evolution/ledger.js +57 -0
  242. package/dist/services/workflow-evolution/ledger.js.map +1 -0
  243. package/dist/skins/rail/status.d.ts.map +1 -1
  244. package/dist/skins/rail/status.js +21 -11
  245. package/dist/skins/rail/status.js.map +1 -1
  246. package/dist/tools/agent/goal-check.d.ts +23 -0
  247. package/dist/tools/agent/goal-check.d.ts.map +1 -0
  248. package/dist/tools/agent/goal-check.js +79 -0
  249. package/dist/tools/agent/goal-check.js.map +1 -0
  250. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
  251. package/dist/tools/system/run-code/run-code-runtime.js +3 -1
  252. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
  253. package/dist/tools/tool-names.d.ts +1 -0
  254. package/dist/tools/tool-names.d.ts.map +1 -1
  255. package/dist/tools/tool-names.js +1 -0
  256. package/dist/tools/tool-names.js.map +1 -1
  257. package/dist/tools/types.d.ts +21 -0
  258. package/dist/tools/types.d.ts.map +1 -1
  259. package/dist/tools/types.js +7 -0
  260. package/dist/tools/types.js.map +1 -1
  261. package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
  262. package/dist/utils/conversation/conversation-event-handler.js +4 -0
  263. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  264. package/dist/utils/output/text-snippet.js +25 -33
  265. package/dist/utils/output/text-snippet.js.map +1 -1
  266. package/dist/utils/value-suggestions.d.ts.map +1 -1
  267. package/dist/utils/value-suggestions.js +1 -0
  268. package/dist/utils/value-suggestions.js.map +1 -1
  269. package/package.json +1 -1
@@ -0,0 +1,351 @@
1
+ import { z } from 'zod';
2
+ import { TOOL_NAME_GOAL_CHECK } from '../../tools/tool-names.js';
3
+ import { MAX_GOAL_FIELD_LENGTH } from './durable-goal.js';
4
+ /**
5
+ * Active-goal stop check.
6
+ *
7
+ * While the session's durable goal is `active`, a root turn may not end
8
+ * normally until the working model reports, through `goal_check`, whether the
9
+ * goal is achieved, blocked, still not achieved, or deferred because the
10
+ * latest user message asked for something else. This module owns the report
11
+ * contract and the stop decision; `ApplicationRunLoop` only asks it at its
12
+ * normal-stop seam, and the turn continues through the loop's existing
13
+ * request boundary when the decision is `continue`.
14
+ *
15
+ * Authority: a recorded, valid `achieved` check that ends the turn closes the
16
+ * goal. `createGoalStopPolicy` hands the achieved goal to the session surface,
17
+ * which persists it through the same `goal_changed` path as `/goal achieved`
18
+ * (marked `source: 'goal_check'`). Nothing else the model reports changes
19
+ * status: blocked, deferred, and not_achieved leave the goal active, and so does
20
+ * any check that was denied, failed, unrecorded, or superseded by later work.
21
+ * The user still sets, replaces, abandons, and reopens goals.
22
+ */
23
+ export const GOAL_CHECK_STATUSES = ['achieved', 'blocked', 'not_achieved', 'deferred'];
24
+ export const goalCheckParameters = z.object({
25
+ status: z
26
+ .enum(GOAL_CHECK_STATUSES)
27
+ .describe('achieved: the outcome holds now, verified against concrete evidence; this marks the goal achieved. blocked: progress needs user input or a capability you do not have. ' +
28
+ 'not_achieved: more work is needed and you can do it. deferred: the latest user message asked for ' +
29
+ 'something else, asked you to pause, or superseded the goal.'),
30
+ evidence: z
31
+ .string()
32
+ .trim()
33
+ .min(1)
34
+ .max(MAX_GOAL_FIELD_LENGTH)
35
+ .describe('achieved: concrete evidence that the outcome holds (commands run, results, files). blocked: the concrete ' +
36
+ 'blocker and exactly what is needed from the user. not_achieved: what remains and your next step. ' +
37
+ 'deferred: which newer user request or pause took priority.'),
38
+ criteriaEvidence: z
39
+ .string()
40
+ .trim()
41
+ .max(MAX_GOAL_FIELD_LENGTH)
42
+ .optional()
43
+ .describe('Required for achieved when the goal has success criteria: evidence for each criterion.'),
44
+ });
45
+ /** One validation path for the tool's execution and the stop decision. */
46
+ export function validateGoalCheck(raw, goal) {
47
+ if (goal?.status !== 'active')
48
+ return { ok: false, problem: 'there is no active durable goal to check' };
49
+ const parsed = goalCheckParameters.safeParse(raw);
50
+ if (!parsed.success) {
51
+ const issue = parsed.error.issues[0];
52
+ const field = issue?.path.join('.') || 'input';
53
+ return { ok: false, problem: `${field}: ${issue?.message ?? 'invalid'}` };
54
+ }
55
+ const check = parsed.data;
56
+ if (check.status === 'achieved' && goal.successCriteria && !check.criteriaEvidence) {
57
+ return {
58
+ ok: false,
59
+ problem: 'criteriaEvidence is required for achieved because the goal has success criteria',
60
+ };
61
+ }
62
+ return { ok: true, check };
63
+ }
64
+ /**
65
+ * Consecutive stop-check reminders allowed without intervening work.
66
+ *
67
+ * One reminder covers a model that simply forgot the check; the second covers
68
+ * one malformed or premature retry. A third consecutive idle stop is evidence
69
+ * the check/continuation exchange itself is looping, so control returns to the
70
+ * user visibly. Real work (any other tool call) resets this count, which is why
71
+ * it is paired with {@link MAX_GOAL_STOP_REMINDERS_PER_TURN}.
72
+ */
73
+ export const MAX_GOAL_STOP_REMINDERS_WITHOUT_WORK = 2;
74
+ /**
75
+ * Total stop-check reminders per user instruction, whatever work happens in
76
+ * between. Nothing resets it except a new user message.
77
+ *
78
+ * The guard must bound its own continuations: the run budget can be set to
79
+ * `warn` or `disabled`, and the root run's `maxTurns` is superseded by the run
80
+ * budget, so neither may be relied on to stop harness-forced work. Six is three
81
+ * resumed work segments with the idle allowance of two each: the model may try
82
+ * to stop early, be sent back, do more work, and still have room for one
83
+ * malformed retry, three times over. A seventh attempted stop without a valid
84
+ * check is no longer "forgot the check" evidence; it is the harness overriding
85
+ * the model's own judgment that the turn is over, so control returns to the user.
86
+ */
87
+ export const MAX_GOAL_STOP_REMINDERS_PER_TURN = 6;
88
+ /**
89
+ * Every successful `goal_check` result starts with this text. Only a check
90
+ * whose recorded result carries it counts: a denied, rejected, or failed call
91
+ * leaves the tool's own result text absent.
92
+ */
93
+ export const GOAL_CHECK_RECORDED_PREFIX = 'Self-check recorded:';
94
+ /**
95
+ * The recorded result names the goal the check judged, read from the session
96
+ * at execution time. The goal can change while a turn runs (`/goal set` from
97
+ * the prompt or the control socket mid-turn adds no history), so the stop seam
98
+ * counts a check only for the goal it was made against: identity is the goal
99
+ * id, which only a new goal mints (status changes keep id, outcome, and
100
+ * criteria).
101
+ */
102
+ export function formatRecordedGoalCheck(goalId, text) {
103
+ return `${GOAL_CHECK_RECORDED_PREFIX} [goal ${goalId}] ${text}`;
104
+ }
105
+ const RECORDED_GOAL_ID = /^\[goal ([^\]\s]+)\]/;
106
+ /** Marks the harness reminder so the decision can count it in the turn history. */
107
+ export const GOAL_STOP_REMINDER_PREFIX = 'Durable goal stop check';
108
+ /** The run loop admits harness reminders with this prefix (see `#queuePendingSystemNotice`). */
109
+ const MODE_NOTICE_PREFIX = '[Mode Notice] ';
110
+ export const GOAL_CHECK_UNRESOLVED_CAUSE = 'goal_check_unresolved';
111
+ export const GOAL_CHECK_UNRESOLVED_NOTICE = 'Goal stop check unresolved: the turn ended without a valid goal self-check after repeated reminders. ' +
112
+ 'The durable goal is still active and control is back with you.';
113
+ const TOOL_ITEM_TYPES = new Set([
114
+ 'function_call',
115
+ 'custom_tool_call',
116
+ 'function_call_result',
117
+ 'function_call_output',
118
+ 'custom_tool_call_output',
119
+ ]);
120
+ const TOOL_CALL_TYPES = new Set(['function_call', 'custom_tool_call']);
121
+ const messageText = (item) => {
122
+ if (typeof item.content === 'string')
123
+ return item.content;
124
+ if (!Array.isArray(item.content))
125
+ return '';
126
+ return item.content
127
+ .map((part) => (part && typeof part === 'object' && typeof part.text === 'string' ? part.text : ''))
128
+ .join('');
129
+ };
130
+ const isUserMessage = (item) => (item.type === 'message' || item.type === undefined) && item.role === 'user';
131
+ const isGoalStopReminder = (item) => isUserMessage(item) && messageText(item).startsWith(`${MODE_NOTICE_PREFIX}${GOAL_STOP_REMINDER_PREFIX}`);
132
+ /** Harness notices are not user instructions; anything else from the user starts the window. */
133
+ const isUserInstruction = (item) => isUserMessage(item) && !messageText(item).startsWith(MODE_NOTICE_PREFIX);
134
+ const callIdOf = (item) => item.callId ?? item.call_id;
135
+ const outputText = (output) => {
136
+ if (typeof output === 'string')
137
+ return output;
138
+ if (!Array.isArray(output))
139
+ return '';
140
+ return output
141
+ .map((part) => (part && typeof part === 'object' && typeof part.text === 'string' ? part.text : ''))
142
+ .join('');
143
+ };
144
+ /**
145
+ * The goal id the call's own result was recorded for, when that result is the
146
+ * tool's success text; `undefined` when the call was not recorded. A recorded
147
+ * result without a goal id (written before results named their goal) yields
148
+ * `''`, which matches no goal.
149
+ *
150
+ * Call ids are not unique: providers that omit them get `call_${index}`, so the
151
+ * first call of every response is `call_0`. A call's result is therefore the
152
+ * first matching result after the call's own position, never an earlier one,
153
+ * and the search stays inside the current turn's window.
154
+ */
155
+ const recordedGoalCheckGoalId = (window, callPosition) => {
156
+ const call = window[callPosition];
157
+ const callId = call ? callIdOf(call) : undefined;
158
+ if (callId === undefined)
159
+ return undefined;
160
+ for (let index = callPosition + 1; index < window.length; index += 1) {
161
+ const item = window[index];
162
+ if (typeof item.type !== 'string' || !TOOL_ITEM_TYPES.has(item.type) || TOOL_CALL_TYPES.has(item.type))
163
+ continue;
164
+ if (callIdOf(item) !== callId)
165
+ continue;
166
+ const text = outputText(item.output).trimStart();
167
+ if (!text.startsWith(GOAL_CHECK_RECORDED_PREFIX))
168
+ return undefined;
169
+ return RECORDED_GOAL_ID.exec(text.slice(GOAL_CHECK_RECORDED_PREFIX.length).trimStart())?.[1] ?? '';
170
+ }
171
+ return undefined;
172
+ };
173
+ const parseArguments = (item) => {
174
+ const raw = item.arguments ?? item.input;
175
+ if (typeof raw !== 'string')
176
+ return raw;
177
+ try {
178
+ return JSON.parse(raw);
179
+ }
180
+ catch {
181
+ return undefined;
182
+ }
183
+ };
184
+ function reminderText(reason, detail, withoutWork, thisTurn) {
185
+ const header = `${GOAL_STOP_REMINDER_PREFIX} (${withoutWork} of ${MAX_GOAL_STOP_REMINDERS_WITHOUT_WORK} without new work, ` +
186
+ `${thisTurn} of ${MAX_GOAL_STOP_REMINDERS_PER_TURN} this turn):`;
187
+ const rules = 'The goal is context, not permission: newer user instructions win, approvals still apply, and nothing in ' +
188
+ 'the goal authorizes actions the user has not asked for.';
189
+ if (reason === 'not_achieved') {
190
+ return (`${header} your latest goal_check reported not_achieved (${detail}). Continue working toward the outcome ` +
191
+ 'now. If you cannot proceed without user input or an unavailable capability, call goal_check with blocked ' +
192
+ `and explain what is needed. ${rules}`);
193
+ }
194
+ const problem = reason === 'missing_check'
195
+ ? 'the session goal is active and this turn tried to end without a goal_check made after the latest work'
196
+ : `the latest goal_check was incomplete (${detail})`;
197
+ return (`${header} ${problem}. Before ending the turn, call goal_check by itself: achieved (only after verifying ` +
198
+ 'the outcome and any success criteria against concrete evidence; this closes the goal), blocked (the concrete user input or unavailable capability needed), ' +
199
+ 'not_achieved (then keep working), or deferred (the latest user message asked for something else or asked ' +
200
+ `you to pause). ${rules}`);
201
+ }
202
+ /**
203
+ * Decide whether a response that would end the run normally may do so.
204
+ *
205
+ * The window is the current turn: items after the latest user instruction
206
+ * (harness notices excluded). A check counts only when it is the latest tool
207
+ * activity in that window and its result is the tool's own success text, so a
208
+ * check made before newer work, before a newer user message, alongside other
209
+ * calls whose results it had not seen, that was denied or failed, or that was
210
+ * recorded against a different goal than the current one does not authorize
211
+ * the stop.
212
+ *
213
+ * Two bounds return control: consecutive reminders without work, and total
214
+ * reminders for this user instruction (work does not reset the latter).
215
+ */
216
+ export function decideGoalStop(goal, history) {
217
+ if (goal?.status !== 'active')
218
+ return { action: 'stop', reason: 'no_active_goal' };
219
+ let latestToolItem;
220
+ let latestToolIndex = -1;
221
+ let remindersWithoutWork = 0;
222
+ let remindersThisTurn = 0;
223
+ let sawWork = false;
224
+ let windowStart = 0;
225
+ for (let index = history.length - 1; index >= 0; index -= 1) {
226
+ const item = history[index];
227
+ if (isGoalStopReminder(item)) {
228
+ remindersThisTurn += 1;
229
+ if (!sawWork)
230
+ remindersWithoutWork += 1;
231
+ continue;
232
+ }
233
+ if (isUserInstruction(item)) {
234
+ windowStart = index + 1;
235
+ break;
236
+ }
237
+ if (typeof item.type !== 'string' || !TOOL_ITEM_TYPES.has(item.type))
238
+ continue;
239
+ const isGoalCheck = item.name === TOOL_NAME_GOAL_CHECK;
240
+ if (!latestToolItem && (!isGoalCheck || TOOL_CALL_TYPES.has(item.type))) {
241
+ latestToolItem = item;
242
+ latestToolIndex = index;
243
+ }
244
+ if (!isGoalCheck)
245
+ sawWork = true;
246
+ }
247
+ let reason = 'missing_check';
248
+ let detail = '';
249
+ if (latestToolItem?.name === TOOL_NAME_GOAL_CHECK) {
250
+ const validation = validateGoalCheck(parseArguments(latestToolItem), goal);
251
+ const window = history.slice(windowStart);
252
+ const recordedFor = validation.ok ? recordedGoalCheckGoalId(window, latestToolIndex - windowStart) : undefined;
253
+ if (validation.ok && recordedFor === undefined) {
254
+ reason = 'incomplete_check';
255
+ detail = 'it was not recorded: the call was denied, rejected, or failed';
256
+ }
257
+ else if (validation.ok && recordedFor !== goal.id) {
258
+ reason = 'incomplete_check';
259
+ detail = 'it was made for a different goal: the session goal changed since, so check the current goal';
260
+ }
261
+ else if (validation.ok) {
262
+ if (validation.check.status !== 'not_achieved')
263
+ return { action: 'stop', reason: validation.check.status };
264
+ reason = 'not_achieved';
265
+ detail = validation.check.evidence.slice(0, 200);
266
+ }
267
+ else {
268
+ reason = 'incomplete_check';
269
+ detail = validation.problem;
270
+ }
271
+ }
272
+ const limitReached = remindersWithoutWork >= MAX_GOAL_STOP_REMINDERS_WITHOUT_WORK
273
+ ? 'without_work'
274
+ : remindersThisTurn >= MAX_GOAL_STOP_REMINDERS_PER_TURN
275
+ ? 'per_turn'
276
+ : undefined;
277
+ if (limitReached) {
278
+ return {
279
+ action: 'stop',
280
+ reason: 'unresolved',
281
+ terminalCause: GOAL_CHECK_UNRESOLVED_CAUSE,
282
+ limitReached,
283
+ remindersWithoutWork,
284
+ remindersThisTurn,
285
+ lastProblem: reason,
286
+ };
287
+ }
288
+ return {
289
+ action: 'continue',
290
+ reason,
291
+ reminder: reminderText(reason, detail, remindersWithoutWork + 1, remindersThisTurn + 1),
292
+ remindersWithoutWork,
293
+ remindersThisTurn,
294
+ };
295
+ }
296
+ /**
297
+ * Adapt `decideGoalStop` to the run loop's normal-stop seam.
298
+ *
299
+ * Inert unless the agent can actually call `goal_check`: a profile or client
300
+ * without the tool must never be asked for a check it cannot make.
301
+ *
302
+ * The achieved write lives here, not in the tool's execution: only at the stop
303
+ * seam is the check known to be the turn's final tool activity with its own
304
+ * recorded result, so a check followed by more work, made alongside unseen
305
+ * results, or denied/failed never closes the goal. The seam runs once per run
306
+ * end and the write flips the goal out of `active`, so any later evaluation
307
+ * (another turn, an approval resume) sees no active goal and cannot write again.
308
+ * Only root clients get this policy, and `run_code` cannot call `goal_check`.
309
+ * The check must name the goal read here (`formatRecordedGoalCheck`): a check
310
+ * recorded for a goal that was replaced mid-turn never closes its successor.
311
+ */
312
+ export function createGoalStopPolicy(getGoal, onGoalAchieved) {
313
+ return (history, agent) => {
314
+ if (!agent.tools.some((tool) => tool.name === TOOL_NAME_GOAL_CHECK))
315
+ return { action: 'stop' };
316
+ const goal = getGoal();
317
+ const decision = decideGoalStop(goal, history);
318
+ if (decision.reason === 'no_active_goal')
319
+ return { action: 'stop' };
320
+ let goalMarkedAchieved;
321
+ if (decision.reason === 'achieved' && goal?.status === 'active' && onGoalAchieved) {
322
+ try {
323
+ onGoalAchieved({ ...goal, status: 'achieved' });
324
+ goalMarkedAchieved = true;
325
+ }
326
+ catch {
327
+ // The surface reports its own persistence failure; the turn still stops.
328
+ goalMarkedAchieved = false;
329
+ }
330
+ }
331
+ const diagnostics = {
332
+ guard: 'goal_stop_check',
333
+ guardClass: 'runaway',
334
+ reason: decision.reason,
335
+ limit: MAX_GOAL_STOP_REMINDERS_WITHOUT_WORK,
336
+ turnLimit: MAX_GOAL_STOP_REMINDERS_PER_TURN,
337
+ ...('remindersWithoutWork' in decision ? { remindersWithoutWork: decision.remindersWithoutWork } : {}),
338
+ ...('remindersThisTurn' in decision ? { remindersThisTurn: decision.remindersThisTurn } : {}),
339
+ ...('limitReached' in decision ? { limitReached: decision.limitReached } : {}),
340
+ ...('lastProblem' in decision ? { lastProblem: decision.lastProblem } : {}),
341
+ ...(goalMarkedAchieved !== undefined ? { goalMarkedAchieved } : {}),
342
+ };
343
+ if (decision.action === 'continue')
344
+ return { action: 'continue', reminder: decision.reminder, diagnostics };
345
+ if (decision.reason === 'unresolved') {
346
+ return { action: 'stop', terminalCause: decision.terminalCause, diagnostics };
347
+ }
348
+ return { action: 'stop', diagnostics };
349
+ };
350
+ }
351
+ //# sourceMappingURL=durable-goal-stop-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-goal-stop-check.js","sourceRoot":"","sources":["../../../source/services/conversation/durable-goal-stop-check.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,19 @@
1
- import type { DurableGoal, GoalStatus } from '../logging/conversation-log-events.js';
1
+ import type { DurableGoal, GoalChangedEvent, GoalStatus } from '../logging/conversation-log-events.js';
2
2
  export declare const MAX_GOAL_FIELD_LENGTH = 2000;
3
3
  export declare function createDurableGoal(outcome: string, successCriteria?: string, status?: GoalStatus): DurableGoal;
4
+ /** The `/goal` status line, shared by every surface that reports a goal. */
5
+ export declare function formatGoalStatus(goal: DurableGoal): string;
6
+ /** How the TUI and non-interactive mode announce a goal closed by the model's self-check. */
7
+ export declare function formatGoalClosedByCheck(goal: DurableGoal): string;
8
+ /** Who wrote a goal change; see `GoalChangedEvent.source`. */
9
+ export type GoalChangeSource = NonNullable<GoalChangedEvent['source']>;
10
+ /**
11
+ * Where a root client hands over a goal that a recorded achieved `goal_check`
12
+ * closed. The active surface (the TUI or non-interactive mode) installs the
13
+ * handler and persists the goal through its own goal-write path, the same one
14
+ * `/goal achieved` or the launch goal uses. With no handler nothing is written.
15
+ */
16
+ export interface GoalAchievedSlot {
17
+ handler?: (goal: DurableGoal) => void;
18
+ }
4
19
  //# sourceMappingURL=durable-goal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"durable-goal.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/durable-goal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAErF,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,GAAE,UAAqB,GAC5B,WAAW,CAgBb"}
1
+ {"version":3,"file":"durable-goal.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/durable-goal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAEvG,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,GAAE,UAAqB,GAC5B,WAAW,CAgBb;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAI1D;AAED,6FAA6F;AAC7F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEjE;AAED,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACvC"}
@@ -18,4 +18,12 @@ export function createDurableGoal(outcome, successCriteria, status = 'active') {
18
18
  status,
19
19
  };
20
20
  }
21
+ /** The `/goal` status line, shared by every surface that reports a goal. */
22
+ export function formatGoalStatus(goal) {
23
+ return `Goal (${goal.status}): ${goal.outcome}${goal.successCriteria ? `\nSuccess criteria: ${goal.successCriteria}` : ''}`;
24
+ }
25
+ /** How the TUI and non-interactive mode announce a goal closed by the model's self-check. */
26
+ export function formatGoalClosedByCheck(goal) {
27
+ return `${formatGoalStatus(goal)}\nMarked achieved by the model's goal_check. Use /goal set to start a new goal.`;
28
+ }
21
29
  //# sourceMappingURL=durable-goal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"durable-goal.js","sourceRoot":"","sources":["../../../source/services/conversation/durable-goal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,eAAwB,EACxB,MAAM,GAAe,QAAQ;IAE7B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,kBAAkB,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,iBAAiB;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3E,IAAI,iBAAiB,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,gCAAgC,qBAAqB,cAAc,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,iCAAiC,qBAAqB,cAAc,CAAC,CAAC;IACxF,CAAC;IACD,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,OAAO,EAAE,iBAAiB;QAC1B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM;KACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"durable-goal.js","sourceRoot":"","sources":["../../../source/services/conversation/durable-goal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,eAAwB,EACxB,MAAM,GAAe,QAAQ;IAE7B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,kBAAkB,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,CAAC,iBAAiB;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3E,IAAI,iBAAiB,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,gCAAgC,qBAAqB,cAAc,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,iCAAiC,qBAAqB,cAAc,CAAC,CAAC;IACxF,CAAC;IACD,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,OAAO,EAAE,iBAAiB;QAC1B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM;KACP,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,OAAO,SAAS,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,OAAO,GAC3C,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EACzE,EAAE,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,uBAAuB,CAAC,IAAiB;IACvD,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,iFAAiF,CAAC;AACpH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-checkpoint-projection.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/local-checkpoint-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAMtE,KAAK,gBAAgB,GACjB;IAAE,MAAM,EAAE,eAAe,GAAG,SAAS,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAAC,2BAA2B,EAAE,OAAO,CAAA;CAAE,CAAC;AAO9F;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,eAAe,EAAE,SAAS,iBAAiB,EAAE,GAC5C,gBAAgB,CAqNlB"}
1
+ {"version":3,"file":"local-checkpoint-projection.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/local-checkpoint-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAOtE,KAAK,gBAAgB,GACjB;IAAE,MAAM,EAAE,eAAe,GAAG,SAAS,CAAA;CAAE,GACvC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAAC,2BAA2B,EAAE,OAAO,CAAA;CAAE,CAAC;AAO9F;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,SAAS,oBAAoB,EAAE,EAC1C,eAAe,EAAE,SAAS,iBAAiB,EAAE,GAC5C,gBAAgB,CAqOlB"}
@@ -3,6 +3,7 @@ import { isTruncatedLogEvent } from '../logging/conversation-log-events.js';
3
3
  import { projectModelRequestHistory } from './conversation-state-projector.js';
4
4
  import { repairConversationHistory } from './conversation-history-repair.js';
5
5
  import { synthesizeHistoryFromAssistantTurn } from './conversation-turn-items.js';
6
+ import { projectConversationMessage } from './conversation-message-projection.js';
6
7
  import { createCheckpointSourceDigest } from './conversation-checkpoint-provenance.js';
7
8
  const refKey = (ref) => JSON.stringify([ref.logId, ref.eventId]);
8
9
  const envelopeKey = (envelope) => envelope.logId && envelope.eventId ? refKey({ logId: envelope.logId, eventId: envelope.eventId }) : null;
@@ -161,7 +162,17 @@ export function deriveLocalCheckpointRequestHistory(envelopes, replayedHistory)
161
162
  const coveredAssistants = [...covered].filter((key) => byRef.get(key)?.event.type === 'assistant_turn').length;
162
163
  if (coveredUsers === 0 || coveredAssistants < coveredUsers)
163
164
  return { status: 'refused' };
164
- const history = [clone(checkpoint.item)];
165
+ const protectedUsers = checkpoint.item.contextSummary?.protectedUsers;
166
+ if (protectedUsers) {
167
+ const sourceUsers = coldPrefixEnvelopes.flatMap((envelope) => !isTruncatedLogEvent(envelope.event) && envelope.event.type === 'user_message'
168
+ ? [envelope.event.message.text ?? '']
169
+ : []);
170
+ const retainedUsers = protectedUsers.map((item) => projectConversationMessage(item));
171
+ if (retainedUsers.length !== sourceUsers.length ||
172
+ retainedUsers.some((message, index) => message?.role !== 'user' || message.isSynthetic || message.text !== sourceUsers[index]))
173
+ return { status: 'refused' };
174
+ }
175
+ const history = [clone(checkpoint.item), ...clone(protectedUsers ?? [])];
165
176
  let hasPostCheckpointSnapshot = false;
166
177
  const correlatedFinalizedTurns = [...journalTurnIds]
167
178
  .map((turnId) => finalizedTurnForJournal(turnId))
@@ -1 +1 @@
1
- {"version":3,"file":"local-checkpoint-projection.js","sourceRoot":"","sources":["../../../source/services/conversation/local-checkpoint-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-checkpoint-projection.js","sourceRoot":"","sources":["../../../source/services/conversation/local-checkpoint-projection.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,8 @@ export type SessionReadInput = {
45
45
  export interface SessionBrowserOptions {
46
46
  backend?: 'canonical' | 'indexed';
47
47
  indexService?: SessionIndexService;
48
+ /** Separate opaque handles for the canonical fallback worker. */
49
+ cursorPrefix?: 'c' | 'f';
48
50
  }
49
51
  export declare class SessionBrowser {
50
52
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"session-browser.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/session-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-browser.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/session-browser.ts"],"names":[],"mappings":"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"}