@orion-agents/orion-code 0.2.2 → 0.3.1

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 (217) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/README.md +89 -14
  3. package/README.zh-CN.md +77 -14
  4. package/bin/orion +15 -4
  5. package/dist/cli.js +51 -172
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/model-command-handlers.d.ts +2 -2
  8. package/dist/commands/model-command-handlers.d.ts.map +1 -1
  9. package/dist/commands/model-command-handlers.js +113 -32
  10. package/dist/commands/model-command-handlers.js.map +1 -1
  11. package/dist/commands/session-command-handlers.d.ts.map +1 -1
  12. package/dist/commands/session-command-handlers.js +106 -15
  13. package/dist/commands/session-command-handlers.js.map +1 -1
  14. package/dist/commands/types.d.ts +13 -3
  15. package/dist/commands/types.d.ts.map +1 -1
  16. package/dist/commands/types.js +1 -1
  17. package/dist/commands/types.js.map +1 -1
  18. package/dist/core/tool-artifacts.d.ts +2 -0
  19. package/dist/core/tool-artifacts.d.ts.map +1 -1
  20. package/dist/core/tool-artifacts.js +27 -1
  21. package/dist/core/tool-artifacts.js.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/runtime/agent-loop.d.ts.map +1 -1
  25. package/dist/runtime/agent-loop.js +3 -3
  26. package/dist/runtime/agent-loop.js.map +1 -1
  27. package/dist/runtime/agent-runtime-controller.d.ts +32 -1
  28. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  29. package/dist/runtime/agent-runtime-controller.js +241 -27
  30. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  31. package/dist/runtime/agent-runtime-protocol.d.ts +4 -0
  32. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  33. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  34. package/dist/runtime/agent-runtime-runner.d.ts +2 -1
  35. package/dist/runtime/agent-runtime-runner.d.ts.map +1 -1
  36. package/dist/runtime/durable-tool-receipt-reader.d.ts +32 -0
  37. package/dist/runtime/durable-tool-receipt-reader.d.ts.map +1 -0
  38. package/dist/runtime/durable-tool-receipt-reader.js +130 -0
  39. package/dist/runtime/durable-tool-receipt-reader.js.map +1 -0
  40. package/dist/runtime/legacy-thread-materializer.d.ts +31 -0
  41. package/dist/runtime/legacy-thread-materializer.d.ts.map +1 -1
  42. package/dist/runtime/legacy-thread-materializer.js +71 -17
  43. package/dist/runtime/legacy-thread-materializer.js.map +1 -1
  44. package/dist/runtime/orion-runtime-v1.d.ts +2 -0
  45. package/dist/runtime/orion-runtime-v1.d.ts.map +1 -1
  46. package/dist/runtime/orion-runtime-v1.js +7 -1
  47. package/dist/runtime/orion-runtime-v1.js.map +1 -1
  48. package/dist/runtime/orion-session-runner.d.ts +7 -2
  49. package/dist/runtime/orion-session-runner.d.ts.map +1 -1
  50. package/dist/runtime/orion-session-runner.js +16 -6
  51. package/dist/runtime/orion-session-runner.js.map +1 -1
  52. package/dist/runtime/product-bootstrap.d.ts +22 -0
  53. package/dist/runtime/product-bootstrap.d.ts.map +1 -0
  54. package/dist/runtime/product-bootstrap.js +374 -0
  55. package/dist/runtime/product-bootstrap.js.map +1 -0
  56. package/dist/runtime/product-orion-runtime.d.ts +2 -1
  57. package/dist/runtime/product-orion-runtime.d.ts.map +1 -1
  58. package/dist/runtime/product-orion-runtime.js +83 -13
  59. package/dist/runtime/product-orion-runtime.js.map +1 -1
  60. package/dist/runtime/protocol/runtime-protocol-v1.d.ts +1 -1
  61. package/dist/runtime/protocol/runtime-protocol-v1.js +1 -1
  62. package/dist/runtime/protocol/runtime-protocol-v1.js.map +1 -1
  63. package/dist/runtime/release-receipts.d.ts +66 -3
  64. package/dist/runtime/release-receipts.d.ts.map +1 -1
  65. package/dist/runtime/release-receipts.js +340 -7
  66. package/dist/runtime/release-receipts.js.map +1 -1
  67. package/dist/runtime/step-snapshot.d.ts.map +1 -1
  68. package/dist/runtime/step-snapshot.js +22 -2
  69. package/dist/runtime/step-snapshot.js.map +1 -1
  70. package/dist/runtime/subagents/runtime-integration.d.ts +1 -1
  71. package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
  72. package/dist/runtime/subagents/runtime-integration.js +5 -2
  73. package/dist/runtime/subagents/runtime-integration.js.map +1 -1
  74. package/dist/runtime/thread-event-store.d.ts +80 -0
  75. package/dist/runtime/thread-event-store.d.ts.map +1 -1
  76. package/dist/runtime/thread-event-store.js +456 -22
  77. package/dist/runtime/thread-event-store.js.map +1 -1
  78. package/dist/runtime/thread-projection.d.ts +10 -0
  79. package/dist/runtime/thread-projection.d.ts.map +1 -1
  80. package/dist/runtime/thread-projection.js +40 -0
  81. package/dist/runtime/thread-projection.js.map +1 -1
  82. package/dist/runtime/thread-runtime.d.ts +3 -1
  83. package/dist/runtime/thread-runtime.d.ts.map +1 -1
  84. package/dist/runtime/thread-runtime.js +6 -0
  85. package/dist/runtime/thread-runtime.js.map +1 -1
  86. package/dist/runtime/thread-session-index.d.ts +84 -0
  87. package/dist/runtime/thread-session-index.d.ts.map +1 -0
  88. package/dist/runtime/thread-session-index.js +503 -0
  89. package/dist/runtime/thread-session-index.js.map +1 -0
  90. package/dist/runtime/thread-session-view.d.ts +70 -9
  91. package/dist/runtime/thread-session-view.d.ts.map +1 -1
  92. package/dist/runtime/thread-session-view.js +200 -82
  93. package/dist/runtime/thread-session-view.js.map +1 -1
  94. package/dist/runtime/thread-ui-adapter.d.ts +2 -0
  95. package/dist/runtime/thread-ui-adapter.d.ts.map +1 -1
  96. package/dist/runtime/thread-ui-adapter.js +86 -4
  97. package/dist/runtime/thread-ui-adapter.js.map +1 -1
  98. package/dist/runtime/tool-detail-repository.d.ts.map +1 -1
  99. package/dist/runtime/tool-detail-repository.js +23 -19
  100. package/dist/runtime/tool-detail-repository.js.map +1 -1
  101. package/dist/runtime/tool-receipt-validator.d.ts +21 -0
  102. package/dist/runtime/tool-receipt-validator.d.ts.map +1 -0
  103. package/dist/runtime/tool-receipt-validator.js +157 -0
  104. package/dist/runtime/tool-receipt-validator.js.map +1 -0
  105. package/dist/runtime/ui-events.d.ts +35 -0
  106. package/dist/runtime/ui-events.d.ts.map +1 -1
  107. package/dist/runtime/ui-events.js +1 -0
  108. package/dist/runtime/ui-events.js.map +1 -1
  109. package/dist/runtime/ui-view-model.d.ts +2 -0
  110. package/dist/runtime/ui-view-model.d.ts.map +1 -1
  111. package/dist/runtime/ui-view-model.js +7 -3
  112. package/dist/runtime/ui-view-model.js.map +1 -1
  113. package/dist/services/global-config.d.ts +25 -0
  114. package/dist/services/global-config.d.ts.map +1 -1
  115. package/dist/services/global-config.js +373 -5
  116. package/dist/services/global-config.js.map +1 -1
  117. package/dist/services/redaction.d.ts +4 -0
  118. package/dist/services/redaction.d.ts.map +1 -1
  119. package/dist/services/redaction.js +63 -0
  120. package/dist/services/redaction.js.map +1 -1
  121. package/dist/services/session-index.d.ts +16 -0
  122. package/dist/services/session-index.d.ts.map +1 -1
  123. package/dist/services/session-index.js +45 -36
  124. package/dist/services/session-index.js.map +1 -1
  125. package/dist/services/session-storage.d.ts +59 -0
  126. package/dist/services/session-storage.d.ts.map +1 -1
  127. package/dist/services/session-storage.js +306 -107
  128. package/dist/services/session-storage.js.map +1 -1
  129. package/dist/services/settings-coordinator.d.ts +174 -0
  130. package/dist/services/settings-coordinator.d.ts.map +1 -0
  131. package/dist/services/settings-coordinator.js +605 -0
  132. package/dist/services/settings-coordinator.js.map +1 -0
  133. package/dist/services/settings-document-repository.d.ts +138 -0
  134. package/dist/services/settings-document-repository.d.ts.map +1 -0
  135. package/dist/services/settings-document-repository.js +551 -0
  136. package/dist/services/settings-document-repository.js.map +1 -0
  137. package/dist/services/workspace-registry.d.ts +42 -0
  138. package/dist/services/workspace-registry.d.ts.map +1 -0
  139. package/dist/services/workspace-registry.js +222 -0
  140. package/dist/services/workspace-registry.js.map +1 -0
  141. package/dist/terminal-ui/launch.d.ts.map +1 -1
  142. package/dist/terminal-ui/launch.js +5 -0
  143. package/dist/terminal-ui/launch.js.map +1 -1
  144. package/dist/tui-ui/state.d.ts.map +1 -1
  145. package/dist/tui-ui/state.js +5 -0
  146. package/dist/tui-ui/state.js.map +1 -1
  147. package/dist/web/errors.d.ts +6 -0
  148. package/dist/web/errors.d.ts.map +1 -0
  149. package/dist/web/errors.js +13 -0
  150. package/dist/web/errors.js.map +1 -0
  151. package/dist/web/event-hub.d.ts +43 -0
  152. package/dist/web/event-hub.d.ts.map +1 -0
  153. package/dist/web/event-hub.js +323 -0
  154. package/dist/web/event-hub.js.map +1 -0
  155. package/dist/web/file-read-service.d.ts +55 -0
  156. package/dist/web/file-read-service.d.ts.map +1 -0
  157. package/dist/web/file-read-service.js +399 -0
  158. package/dist/web/file-read-service.js.map +1 -0
  159. package/dist/web/git-read-model-service.d.ts +77 -0
  160. package/dist/web/git-read-model-service.d.ts.map +1 -0
  161. package/dist/web/git-read-model-service.js +631 -0
  162. package/dist/web/git-read-model-service.js.map +1 -0
  163. package/dist/web/index.d.ts +6 -0
  164. package/dist/web/index.d.ts.map +1 -0
  165. package/dist/web/index.js +28 -0
  166. package/dist/web/index.js.map +1 -0
  167. package/dist/web/launch.d.ts +9 -0
  168. package/dist/web/launch.d.ts.map +1 -0
  169. package/dist/web/launch.js +64 -0
  170. package/dist/web/launch.js.map +1 -0
  171. package/dist/web/protocol.d.ts +408 -0
  172. package/dist/web/protocol.d.ts.map +1 -0
  173. package/dist/web/protocol.js +369 -0
  174. package/dist/web/protocol.js.map +1 -0
  175. package/dist/web/review-service.d.ts +38 -0
  176. package/dist/web/review-service.d.ts.map +1 -0
  177. package/dist/web/review-service.js +74 -0
  178. package/dist/web/review-service.js.map +1 -0
  179. package/dist/web/server.d.ts +20 -0
  180. package/dist/web/server.d.ts.map +1 -0
  181. package/dist/web/server.js +744 -0
  182. package/dist/web/server.js.map +1 -0
  183. package/dist/web/terminal-manager.d.ts +155 -0
  184. package/dist/web/terminal-manager.d.ts.map +1 -0
  185. package/dist/web/terminal-manager.js +728 -0
  186. package/dist/web/terminal-manager.js.map +1 -0
  187. package/dist/web/terminal-server.d.ts +8 -0
  188. package/dist/web/terminal-server.d.ts.map +1 -0
  189. package/dist/web/terminal-server.js +275 -0
  190. package/dist/web/terminal-server.js.map +1 -0
  191. package/dist/web/workbench-controller.d.ts +99 -0
  192. package/dist/web/workbench-controller.d.ts.map +1 -0
  193. package/dist/web/workbench-controller.js +1267 -0
  194. package/dist/web/workbench-controller.js.map +1 -0
  195. package/dist/web-client/assets/DiffViewer-DpKoD07C.js +5 -0
  196. package/dist/web-client/assets/FilesPanel-BkoLmgjR.js +2 -0
  197. package/dist/web-client/assets/GitPanel-D20StcdG.js +1 -0
  198. package/dist/web-client/assets/ReviewPanel-3MVWbMQV.js +1 -0
  199. package/dist/web-client/assets/TerminalPanel-BLQ592Fb.js +21 -0
  200. package/dist/web-client/assets/TerminalPanel-DLuoa74B.css +1 -0
  201. package/dist/web-client/assets/index-BkIDl_xk.js +16 -0
  202. package/dist/web-client/assets/index-DXMpnWE8.css +1 -0
  203. package/dist/web-client/index.html +16 -0
  204. package/docs/architecture/v0.3.0-web-api.yaml +1340 -0
  205. package/docs/architecture/v0.3.1-web-api.yaml +2290 -0
  206. package/docs/migration/v0.2.2-to-v0.3.0-settings.md +114 -0
  207. package/docs/migration/v0.2.2-to-v0.3.0.md +55 -0
  208. package/docs/migration/v0.3.0-to-v0.3.1.md +88 -0
  209. package/docs/orion.example.json +9 -2
  210. package/docs/plan/v0.3.0-node-runtime-compatibility-plan.md +57 -0
  211. package/docs/plan/v0.3.0-settings-integration-plan.md +740 -0
  212. package/docs/plan/v0.3.0-web-workbench-plan.md +376 -0
  213. package/docs/plan/v0.3.1-web-workbench-professional-shell-plan.md +848 -0
  214. package/docs/readme.md +22 -1
  215. package/docs/test/v0.3.1-web-workbench-e2e-plan.md +140 -0
  216. package/npm-shrinkwrap.json +1229 -45
  217. package/package.json +47 -11
@@ -1 +1 @@
1
- {"version":3,"file":"thread-session-view.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-session-view.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACpC,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,gCAAgC,EAAE,CAAC;CAC1E;AAED,2EAA2E;AAC3E,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;IAC5D,QAAQ,CAAC,WAAW,EAAE,SAAS,kCAAkC,EAAE,CAAC;CACrE;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,uCAAuC;gBAExC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,mBAAmB,GAAG,SAAS,CAsCjC;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,sBAAsB,GAAG,SAAS,CAEpC"}
1
+ {"version":3,"file":"thread-session-view.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-session-view.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ThreadSessionViewError = void 0;
4
4
  exports.loadThreadSessionViewV1 = loadThreadSessionViewV1;
5
+ exports.openThreadSessionViewV1 = openThreadSessionViewV1;
6
+ exports.openThreadSessionRuntimeActivationV1 = openThreadSessionRuntimeActivationV1;
5
7
  exports.loadThreadSessionSummaryV1 = loadThreadSessionSummaryV1;
8
+ exports.loadThreadSessionSnapshotPageV1 = loadThreadSessionSnapshotPageV1;
6
9
  const fs_1 = require("fs");
7
- const paths_1 = require("../product/paths");
10
+ const path_1 = require("path");
8
11
  const legacy_thread_materializer_1 = require("./legacy-thread-materializer");
9
12
  const session_history_recovery_1 = require("./session-history-recovery");
10
- const thread_event_store_1 = require("./thread-event-store");
13
+ const thread_session_index_1 = require("./thread-session-index");
11
14
  class ThreadSessionViewError extends Error {
12
15
  constructor(message) {
13
16
  super(message);
@@ -24,6 +27,10 @@ exports.ThreadSessionViewError = ThreadSessionViewError;
24
27
  * identity, replay, or projection data still fails closed.
25
28
  */
26
29
  function loadThreadSessionViewV1(projectPath, sessionId) {
30
+ return openThreadSessionViewV1(projectPath, sessionId)?.view;
31
+ }
32
+ /** Capture the restore view and retain its already-verified Store for Runtime activation. */
33
+ function openThreadSessionViewV1(projectPath, sessionId) {
27
34
  const captured = captureThreadSessionV1(projectPath, sessionId, true);
28
35
  if (!captured)
29
36
  return undefined;
@@ -50,34 +57,129 @@ function loadThreadSessionViewV1(projectPath, sessionId) {
50
57
  else {
51
58
  recovery = (0, session_history_recovery_1.normalizeSessionModelHistoryV1)(transcriptHistory, 'transcript');
52
59
  }
53
- return deepFreeze({
60
+ const view = deepFreeze({
54
61
  ...captured.summary,
55
62
  modelHistory: recovery.messages,
56
63
  modelHistorySource: recovery.source,
57
64
  diagnostics: recovery.diagnostics,
65
+ ...(captured.latestTurnCommit ? { latestTurnCommit: captured.latestTurnCommit } : {}),
66
+ ...(captured.latestPlanTurnCommit
67
+ ? { latestPlanTurnCommit: captured.latestPlanTurnCommit }
68
+ : {}),
69
+ });
70
+ return Object.freeze({
71
+ view,
72
+ runtimeActivation: createRuntimeActivation(projectPath, sessionId, captured, view),
73
+ });
74
+ }
75
+ /**
76
+ * Open only the verified Runtime hand-off. This is used after an atomic legacy
77
+ * cutover, where the provider history was already captured from the legacy
78
+ * source and rebuilding the complete transcript view would be duplicate work.
79
+ */
80
+ function openThreadSessionRuntimeActivationV1(projectPath, sessionId) {
81
+ const opened = (0, legacy_thread_materializer_1.openSessionStorageV1)(projectPath, sessionId);
82
+ if (opened.resolution.kind === 'legacy' || !('store' in opened))
83
+ return undefined;
84
+ const projection = opened.store.loadProjection();
85
+ return Object.freeze({
86
+ version: 1,
87
+ projectPath: (0, fs_1.realpathSync)((0, path_1.resolve)(projectPath)),
88
+ sessionId,
89
+ threadId: opened.resolution.threadId,
90
+ cursor: projection.cursor,
91
+ projectionDigest: projection.digest,
92
+ cutoverGeneration: opened.resolution.generation,
93
+ store: opened.store,
58
94
  });
59
95
  }
60
96
  /** Load list/picker metadata without allowing model-history damage to fan out. */
61
97
  function loadThreadSessionSummaryV1(projectPath, sessionId) {
62
98
  return captureThreadSessionV1(projectPath, sessionId, false)?.summary;
63
99
  }
64
- function captureThreadSessionV1(projectPath, sessionId, includeDurableHistory) {
65
- const resolution = (0, legacy_thread_materializer_1.resolveSessionStorageV1)(projectPath, sessionId);
66
- if (resolution.kind === 'legacy')
100
+ /**
101
+ * Load one revision-bound transcript page without materializing the complete
102
+ * projection/history. A missing or stale derived index is rebuilt once from
103
+ * the authoritative Thread and then reused by later processes.
104
+ */
105
+ function loadThreadSessionSnapshotPageV1(projectPath, sessionId, cursor, pageSize = 50) {
106
+ const checkpoint = (0, legacy_thread_materializer_1.openSessionCheckpointStorageV1)(projectPath, sessionId);
107
+ if (checkpoint) {
108
+ const head = checkpointIndexHead(checkpoint.head);
109
+ try {
110
+ const page = (0, thread_session_index_1.loadThreadSessionIndexedPageV1)({
111
+ rootDir: checkpoint.store.rootDir,
112
+ threadId: checkpoint.store.threadId,
113
+ head,
114
+ cursor,
115
+ pageSize,
116
+ });
117
+ if (page) {
118
+ return snapshotPageFromIndex(sessionId, checkpoint.resolution.generation, page);
119
+ }
120
+ }
121
+ catch (error) {
122
+ if (!(error instanceof thread_session_index_1.ThreadSessionIndexError) || error.code !== 'ORION_THREAD_SESSION_INDEX_CORRUPT') {
123
+ throw error;
124
+ }
125
+ }
126
+ }
127
+ const opened = (0, legacy_thread_materializer_1.openSessionStorageV1)(projectPath, sessionId);
128
+ if (opened.resolution.kind === 'legacy' || !('store' in opened))
67
129
  return undefined;
68
- const store = new thread_event_store_1.ThreadEventStore((0, paths_1.getProjectThreadsV2Dir)(projectPath), resolution.threadId, {
69
- maxReplayEvents: Math.max(10000, resolution.cursor),
130
+ const captured = captureStableThreadView(opened.store, opened.resolution.cursor, opened.resolution.projectionDigest, false);
131
+ const head = sessionIndexHead(captured.readModelHead);
132
+ (0, thread_session_index_1.buildThreadSessionIndexV1)({
133
+ rootDir: opened.store.rootDir,
134
+ threadId: opened.store.threadId,
135
+ projection: captured.projection,
136
+ events: captured.events,
137
+ head,
70
138
  });
71
- const { projection, events, durableHistory } = captureStableThreadView(store, resolution.cursor, resolution.projectionDigest, includeDurableHistory);
72
- const transcriptMessages = projectTranscriptMessages(projection.items, events);
139
+ const page = (0, thread_session_index_1.loadThreadSessionIndexedPageV1)({
140
+ rootDir: opened.store.rootDir,
141
+ threadId: opened.store.threadId,
142
+ head,
143
+ cursor,
144
+ pageSize,
145
+ });
146
+ if (!page) {
147
+ throw new ThreadSessionViewError(`Thread ${opened.store.threadId} transcript index was not published.`);
148
+ }
149
+ return snapshotPageFromIndex(sessionId, opened.resolution.generation, page);
150
+ }
151
+ function captureThreadSessionV1(projectPath, sessionId, includeDurableHistory) {
152
+ const opened = (0, legacy_thread_materializer_1.openSessionStorageV1)(projectPath, sessionId);
153
+ const { resolution } = opened;
154
+ if (resolution.kind === 'legacy' || !('store' in opened))
155
+ return undefined;
156
+ const { store } = opened;
157
+ const { projection, events, durableHistory, readModelHead } = captureStableThreadView(store, resolution.cursor, resolution.projectionDigest, includeDurableHistory);
158
+ const transcriptMessages = (0, thread_session_index_1.projectTranscriptMessages)(projection.items, events);
73
159
  const startedAt = events[0]?.timestamp ?? 0;
74
160
  const updatedAt = events.at(-1)?.timestamp ?? startedAt;
75
- let historySizeBytes;
76
- try {
77
- historySizeBytes = (0, fs_1.statSync)(store.logPath).size;
78
- }
79
- catch (error) {
80
- throw new ThreadSessionViewError(`Thread ${resolution.threadId} event log size is unavailable: ${errorMessage(error)}`);
161
+ const turnCommits = Object.values(projection.turns)
162
+ .flatMap(turn => (turn.commit ? [{ seq: turn.commit.seq, receipt: turn.commit.receipt }] : []))
163
+ .sort((left, right) => left.seq - right.seq);
164
+ const latestTurnCommit = turnCommits.at(-1);
165
+ const latestPlanTurnCommit = [...turnCommits]
166
+ .reverse()
167
+ .find(commit => turnCommitContainsPlan(commit.receipt));
168
+ const indexHead = sessionIndexHead(readModelHead);
169
+ if (!(0, thread_session_index_1.loadThreadSessionIndexManifestV1)(store.rootDir, store.threadId, indexHead)) {
170
+ try {
171
+ (0, thread_session_index_1.buildThreadSessionIndexV1)({
172
+ rootDir: store.rootDir,
173
+ threadId: store.threadId,
174
+ projection,
175
+ events,
176
+ head: indexHead,
177
+ });
178
+ }
179
+ catch {
180
+ // The Session index is derived. Failing to publish it must not make an
181
+ // otherwise verified authoritative Thread unreadable.
182
+ }
81
183
  }
82
184
  return {
83
185
  summary: deepFreeze({
@@ -88,13 +190,90 @@ function captureThreadSessionV1(projectPath, sessionId, includeDurableHistory) {
88
190
  projectionDigest: projection.digest,
89
191
  startedAt,
90
192
  updatedAt,
91
- historySizeBytes,
193
+ historySizeBytes: readModelHead.log.bytes,
92
194
  messageCount: transcriptMessages.length,
93
195
  transcriptMessages,
196
+ readModel: {
197
+ cutoverGeneration: resolution.generation,
198
+ lastRecordHash: readModelHead.lastRecordHash,
199
+ log: readModelHead.log,
200
+ },
94
201
  }),
95
202
  durableHistory,
203
+ store,
204
+ cutoverGeneration: resolution.generation,
205
+ ...(latestTurnCommit ? { latestTurnCommit: Object.freeze(latestTurnCommit) } : {}),
206
+ ...(latestPlanTurnCommit ? { latestPlanTurnCommit: Object.freeze(latestPlanTurnCommit) } : {}),
207
+ };
208
+ }
209
+ function createRuntimeActivation(projectPath, sessionId, captured, view) {
210
+ return Object.freeze({
211
+ version: 1,
212
+ projectPath: (0, fs_1.realpathSync)((0, path_1.resolve)(projectPath)),
213
+ sessionId,
214
+ threadId: captured.summary.threadId,
215
+ cursor: captured.summary.cursor,
216
+ projectionDigest: captured.summary.projectionDigest,
217
+ cutoverGeneration: captured.cutoverGeneration,
218
+ store: captured.store,
219
+ view,
220
+ });
221
+ }
222
+ function turnCommitContainsPlan(receipt) {
223
+ try {
224
+ const parsed = JSON.parse(receipt);
225
+ return typeof parsed.planReceipt === 'string' && parsed.planReceipt.length > 0;
226
+ }
227
+ catch {
228
+ return false;
229
+ }
230
+ }
231
+ function sessionIndexHead(readModelHead) {
232
+ return {
233
+ cursor: readModelHead.projection.cursor,
234
+ projectionDigest: readModelHead.projection.digest,
235
+ lastEventTimestamp: readModelHead.lastEventTimestamp,
236
+ lastRecordHash: readModelHead.lastRecordHash,
237
+ log: readModelHead.log,
238
+ };
239
+ }
240
+ function checkpointIndexHead(head) {
241
+ return {
242
+ cursor: head.cursor,
243
+ projectionDigest: head.projectionDigest,
244
+ lastEventTimestamp: head.lastEventTimestamp,
245
+ lastRecordHash: head.lastRecordHash,
246
+ log: head.log,
96
247
  };
97
248
  }
249
+ function snapshotPageFromIndex(sessionId, cutoverGeneration, page) {
250
+ const manifest = page.manifest;
251
+ return deepFreeze({
252
+ version: 1,
253
+ sessionId,
254
+ threadId: manifest.threadId,
255
+ cursor: manifest.cursor,
256
+ projectionDigest: manifest.projectionDigest,
257
+ startedAt: manifest.startedAt,
258
+ updatedAt: manifest.updatedAt,
259
+ historySizeBytes: manifest.log.bytes,
260
+ messageCount: manifest.messageCount,
261
+ transcript: {
262
+ items: page.items,
263
+ offset: page.offset,
264
+ nextCursor: page.nextCursor,
265
+ },
266
+ readModel: {
267
+ cutoverGeneration,
268
+ lastRecordHash: manifest.lastRecordHash,
269
+ log: manifest.log,
270
+ },
271
+ ...(manifest.latestTurnCommit ? { latestTurnCommit: manifest.latestTurnCommit } : {}),
272
+ ...(manifest.latestPlanTurnCommit
273
+ ? { latestPlanTurnCommit: manifest.latestPlanTurnCommit }
274
+ : {}),
275
+ });
276
+ }
98
277
  function captureStableThreadView(store, minimumCursor, minimumProjectionDigest, includeDurableHistory) {
99
278
  for (let attempt = 0; attempt < 3; attempt += 1) {
100
279
  const projection = store.loadProjection();
@@ -108,8 +287,10 @@ function captureStableThreadView(store, minimumCursor, minimumProjectionDigest,
108
287
  const durableHistory = includeDurableHistory
109
288
  ? store.loadAuthoritativeModelHistory()
110
289
  : undefined;
111
- if (store.getCursor() === projection.cursor) {
112
- return { projection, events, durableHistory };
290
+ const readModelHead = store.captureReadModelHead();
291
+ if (readModelHead.projection.cursor === projection.cursor &&
292
+ readModelHead.projection.digest === projection.digest) {
293
+ return { projection, events, durableHistory, readModelHead };
113
294
  }
114
295
  }
115
296
  throw new ThreadSessionViewError(`Thread ${store.threadId} remained active while its Session view was being captured.`);
@@ -133,60 +314,6 @@ function replayAll(store, cursor) {
133
314
  }
134
315
  return events;
135
316
  }
136
- function projectTranscriptMessages(items, events) {
137
- const timestamps = new Map();
138
- for (const event of events) {
139
- if (!event.itemId || !isItemTerminalEvent(event))
140
- continue;
141
- timestamps.set(event.itemId, event.timestamp);
142
- }
143
- return Object.values(items)
144
- .filter(item => item.kind === 'message' && item.status !== 'started' && isMessageRole(item.role))
145
- .sort((left, right) => left.startedSeq - right.startedSeq)
146
- .map(item => {
147
- const legacy = parseLegacyTranscriptReceipt(item.receipt);
148
- if (legacy)
149
- return legacy;
150
- return {
151
- role: item.role,
152
- content: item.content ?? item.summary ?? item.error ?? '',
153
- timestamp: timestamps.get(item.itemId) ?? 0,
154
- };
155
- });
156
- }
157
- function parseLegacyTranscriptReceipt(receipt) {
158
- if (!receipt)
159
- return undefined;
160
- let parsed;
161
- try {
162
- parsed = JSON.parse(receipt);
163
- }
164
- catch {
165
- return undefined;
166
- }
167
- if (!isRecord(parsed) || !isRecord(parsed.legacyRecord))
168
- return undefined;
169
- const record = parsed.legacyRecord;
170
- if (!isMessageRole(record.role) || typeof record.content !== 'string')
171
- return undefined;
172
- if (!Number.isFinite(record.timestamp))
173
- return undefined;
174
- const toolCalls = parseToolCalls(record.tool_calls);
175
- const appliedSkills = Array.isArray(record.appliedSkills)
176
- ? record.appliedSkills.filter((value) => typeof value === 'string')
177
- : undefined;
178
- return {
179
- role: record.role,
180
- content: record.content,
181
- timestamp: record.timestamp,
182
- ...(typeof record.modelVisibleContent === 'string'
183
- ? { modelVisibleContent: record.modelVisibleContent }
184
- : {}),
185
- ...(typeof record.toolCallId === 'string' ? { toolCallId: record.toolCallId } : {}),
186
- ...(toolCalls ? { tool_calls: toolCalls } : {}),
187
- ...(appliedSkills ? { appliedSkills } : {}),
188
- };
189
- }
190
317
  function parseModelHistory(history) {
191
318
  return history.map((value, index) => {
192
319
  if (!isRecord(value) || !isMessageRole(value.role) || typeof value.content !== 'string') {
@@ -238,21 +365,12 @@ function parseToolCalls(value) {
238
365
  }
239
366
  return result;
240
367
  }
241
- function isItemTerminalEvent(event) {
242
- return (event.payload.type === 'item.completed' ||
243
- event.payload.type === 'item.failed' ||
244
- event.payload.type === 'item.interrupted' ||
245
- event.payload.type === 'item.indeterminate');
246
- }
247
368
  function isMessageRole(value) {
248
369
  return value === 'system' || value === 'user' || value === 'assistant' || value === 'tool';
249
370
  }
250
371
  function isRecord(value) {
251
372
  return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
252
373
  }
253
- function errorMessage(error) {
254
- return error instanceof Error ? error.message : String(error);
255
- }
256
374
  function deepFreeze(value) {
257
375
  if (value && typeof value === 'object' && !Object.isFrozen(value)) {
258
376
  Object.freeze(value);
@@ -1 +1 @@
1
- {"version":3,"file":"thread-session-view.js","sourceRoot":"","sources":["../../src/runtime/thread-session-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-session-view.js","sourceRoot":"","sources":["../../src/runtime/thread-session-view.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ export declare class ThreadUiAdapterV1 implements AgentRuntimeRunnerV1 {
47
47
  private readonly mode;
48
48
  private readonly initialReplayTarget;
49
49
  private readonly presentations;
50
+ private readonly toolReceiptFacts;
50
51
  private cursorValue;
51
52
  private initialReplayComplete;
52
53
  private closed;
@@ -69,6 +70,7 @@ export declare class ThreadUiAdapterV1 implements AgentRuntimeRunnerV1 {
69
70
  private startItem;
70
71
  private updateItem;
71
72
  private finishItem;
73
+ private rememberToolReceipt;
72
74
  private ensurePresentation;
73
75
  private resolveMode;
74
76
  private projectCompletedPlanMode;
@@ -1 +1 @@
1
- {"version":3,"file":"thread-ui-adapter.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-ui-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-ui-adapter.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-ui-adapter.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ exports.ThreadUiAdmissionError = exports.ThreadUiAdapterError = exports.ThreadUi
4
4
  const agent_runtime_protocol_1 = require("./agent-runtime-protocol");
5
5
  const goal_runtime_coordinator_1 = require("./goal-runtime-coordinator");
6
6
  const runtime_protocol_v1_1 = require("./protocol/runtime-protocol-v1");
7
+ const tool_receipt_validator_1 = require("./tool-receipt-validator");
7
8
  const turn_commit_1 = require("./turn-commit");
8
9
  exports.THREAD_UI_ADAPTER_VERSION = 1;
9
10
  /**
@@ -16,6 +17,7 @@ class ThreadUiAdapterV1 {
16
17
  constructor(options) {
17
18
  this.version = exports.THREAD_UI_ADAPTER_VERSION;
18
19
  this.presentations = new Map();
20
+ this.toolReceiptFacts = new Map();
19
21
  this.initialReplayComplete = false;
20
22
  this.closed = false;
21
23
  if (Boolean(options.eventSink) === Boolean(options.uiEventSink)) {
@@ -94,6 +96,7 @@ class ThreadUiAdapterV1 {
94
96
  this.runtime.unsubscribe(this.consumerId);
95
97
  this.runtime.close(reason);
96
98
  this.presentations.clear();
99
+ this.toolReceiptFacts.clear();
97
100
  }
98
101
  snapshot() {
99
102
  return Object.freeze({
@@ -264,7 +267,9 @@ class ThreadUiAdapterV1 {
264
267
  case 'thread.forked':
265
268
  case 'step.snapshot':
266
269
  case 'capability.receipt':
270
+ return;
267
271
  case 'tool.receipt':
272
+ this.rememberToolReceipt(event);
268
273
  return;
269
274
  case 'turn.committed':
270
275
  this.projectGoalCommit(event.payload.data.receipt);
@@ -373,7 +378,25 @@ class ThreadUiAdapterV1 {
373
378
  if (!presentation.content && terminal.summary)
374
379
  presentation.content = terminal.summary;
375
380
  if (isToolItem(presentation.kind)) {
376
- const success = event.payload.type === 'item.completed';
381
+ const durableReceiptFact = this.toolReceiptFacts.get(presentation.itemId);
382
+ let receipt;
383
+ if (terminal.receipt && durableReceiptFact) {
384
+ try {
385
+ receipt = (0, tool_receipt_validator_1.validateDurableToolInvocationReceiptV1)({
386
+ terminalEvent: event,
387
+ factEvent: durableReceiptFact,
388
+ item: { itemId: presentation.itemId, toolName: presentation.name },
389
+ });
390
+ }
391
+ catch (error) {
392
+ if (error instanceof tool_receipt_validator_1.DurableToolReceiptValidationError) {
393
+ throw new ThreadUiAdapterError(error.message);
394
+ }
395
+ throw error;
396
+ }
397
+ }
398
+ this.toolReceiptFacts.delete(presentation.itemId);
399
+ const success = receipt?.success ?? event.payload.type === 'item.completed';
377
400
  this.emit({
378
401
  type: 'tool_finished',
379
402
  event: {
@@ -388,6 +411,13 @@ class ThreadUiAdapterV1 {
388
411
  ...(presentation.content
389
412
  ? { outputBytes: Buffer.byteLength(presentation.content, 'utf8') }
390
413
  : {}),
414
+ ...(receipt
415
+ ? {
416
+ authorization: projectToolAuthorization(receipt),
417
+ executionPolicyDigest: receipt.executionPolicyDigest,
418
+ receiptDigest: receipt.digest,
419
+ }
420
+ : {}),
391
421
  },
392
422
  });
393
423
  }
@@ -404,6 +434,15 @@ class ThreadUiAdapterV1 {
404
434
  }
405
435
  this.presentations.delete(presentation.itemId);
406
436
  }
437
+ rememberToolReceipt(event) {
438
+ if (event.payload.type !== 'tool.receipt')
439
+ return;
440
+ const fact = event.payload.data;
441
+ if (event.itemId && event.itemId !== fact.invocationId) {
442
+ throw new ThreadUiAdapterError('Durable tool receipt identity does not match its Item.');
443
+ }
444
+ this.toolReceiptFacts.set(fact.invocationId, event);
445
+ }
407
446
  ensurePresentation(event) {
408
447
  if (!event.itemId)
409
448
  throw new ThreadUiAdapterError(`${event.payload.type} has no itemId.`);
@@ -543,17 +582,60 @@ function terminalItemData(event) {
543
582
  return {
544
583
  content: event.payload.data.content,
545
584
  summary: event.payload.data.summary,
585
+ receipt: event.payload.data.receipt,
546
586
  };
547
587
  case 'item.failed':
548
- return { error: event.payload.data.error };
588
+ return { error: event.payload.data.error, receipt: event.payload.data.receipt };
549
589
  case 'item.interrupted':
550
- return { error: event.payload.data.reason || 'Item interrupted.' };
590
+ return {
591
+ error: event.payload.data.reason || 'Item interrupted.',
592
+ receipt: event.payload.data.receipt,
593
+ };
551
594
  case 'item.indeterminate':
552
- return { error: event.payload.data.reason };
595
+ return { error: event.payload.data.reason, receipt: event.payload.data.receipt };
553
596
  default:
554
597
  throw new ThreadUiAdapterError(`${event.payload.type} is not an Item terminal event.`);
555
598
  }
556
599
  }
600
+ /**
601
+ * Project presentation provenance only after the canonical receipt and its
602
+ * separate durable `tool.receipt` fact have both passed validation.
603
+ */
604
+ function projectToolAuthorization(receipt) {
605
+ const policy = receipt.policy;
606
+ const approval = receipt.approval;
607
+ if (!policy) {
608
+ return {
609
+ approved: false,
610
+ behavior: 'deny',
611
+ source: 'tool_policy',
612
+ reason: receipt.result.error ??
613
+ `Tool invocation stopped during the ${receipt.terminalPhase} authorization phase.`,
614
+ };
615
+ }
616
+ return {
617
+ behavior: policy.behavior,
618
+ approved: policy.behavior === 'allow' || (policy.behavior === 'ask' && approval?.approved === true),
619
+ source: normalizeToolAuthorizationSource(policy.behavior, policy.source, approval?.source, approval?.approved),
620
+ ...(approval?.reason || policy.reason ? { reason: approval?.reason ?? policy.reason } : {}),
621
+ };
622
+ }
623
+ function normalizeToolAuthorizationSource(behavior, policySource, approvalSource, approvalApproved) {
624
+ if (approvalSource === 'user')
625
+ return 'user';
626
+ if (approvalSource === 'authority')
627
+ return approvalApproved ? 'config_allow' : 'config_deny';
628
+ if (approvalSource === 'unavailable')
629
+ return 'missing_confirmation';
630
+ if (policySource.startsWith('allowlist:')) {
631
+ return behavior === 'allow'
632
+ ? 'allowlist_allow'
633
+ : behavior === 'deny'
634
+ ? 'allowlist_deny'
635
+ : 'allowlist_ask';
636
+ }
637
+ return 'tool_policy';
638
+ }
557
639
  function isItemRole(value) {
558
640
  return value === 'user' || value === 'assistant' || value === 'system' || value === 'tool';
559
641
  }