@stigmer/react 3.0.9-dev.20260616060535 → 3.1.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 (426) hide show
  1. package/execution/ApprovalCard.d.ts +47 -3
  2. package/execution/ApprovalCard.d.ts.map +1 -1
  3. package/execution/ApprovalCard.js +138 -70
  4. package/execution/ApprovalCard.js.map +1 -1
  5. package/execution/ApprovalContext.d.ts +72 -0
  6. package/execution/ApprovalContext.d.ts.map +1 -0
  7. package/execution/ApprovalContext.js +41 -0
  8. package/execution/ApprovalContext.js.map +1 -0
  9. package/execution/ArtifactCard.d.ts.map +1 -1
  10. package/execution/ArtifactCard.js +3 -1
  11. package/execution/ArtifactCard.js.map +1 -1
  12. package/execution/ArtifactPreviewModal.d.ts.map +1 -1
  13. package/execution/ArtifactPreviewModal.js +5 -3
  14. package/execution/ArtifactPreviewModal.js.map +1 -1
  15. package/execution/EmptyChangeNotice.d.ts +38 -0
  16. package/execution/EmptyChangeNotice.d.ts.map +1 -0
  17. package/execution/EmptyChangeNotice.js +27 -0
  18. package/execution/EmptyChangeNotice.js.map +1 -0
  19. package/execution/FileChangesView.d.ts +81 -0
  20. package/execution/FileChangesView.d.ts.map +1 -0
  21. package/execution/FileChangesView.js +164 -0
  22. package/execution/FileChangesView.js.map +1 -0
  23. package/execution/FilePathLink.d.ts +24 -4
  24. package/execution/FilePathLink.d.ts.map +1 -1
  25. package/execution/FilePathLink.js +31 -9
  26. package/execution/FilePathLink.js.map +1 -1
  27. package/execution/FileReviewCard.d.ts +111 -0
  28. package/execution/FileReviewCard.d.ts.map +1 -0
  29. package/execution/FileReviewCard.js +558 -0
  30. package/execution/FileReviewCard.js.map +1 -0
  31. package/execution/FileReviewContext.d.ts +35 -0
  32. package/execution/FileReviewContext.d.ts.map +1 -0
  33. package/execution/FileReviewContext.js +23 -0
  34. package/execution/FileReviewContext.js.map +1 -0
  35. package/execution/FileReviewDock.d.ts +73 -0
  36. package/execution/FileReviewDock.d.ts.map +1 -0
  37. package/execution/FileReviewDock.js +65 -0
  38. package/execution/FileReviewDock.js.map +1 -0
  39. package/execution/McpToolDetail.d.ts.map +1 -1
  40. package/execution/McpToolDetail.js +38 -5
  41. package/execution/McpToolDetail.js.map +1 -1
  42. package/execution/MessageThread.d.ts +42 -3
  43. package/execution/MessageThread.d.ts.map +1 -1
  44. package/execution/MessageThread.js +263 -18
  45. package/execution/MessageThread.js.map +1 -1
  46. package/execution/PlanArtifactCard.d.ts.map +1 -1
  47. package/execution/PlanArtifactCard.js +3 -1
  48. package/execution/PlanArtifactCard.js.map +1 -1
  49. package/execution/PlanCompletionCard.d.ts +1 -1
  50. package/execution/PlanCompletionCard.js +1 -1
  51. package/execution/ResultView.d.ts +19 -1
  52. package/execution/ResultView.d.ts.map +1 -1
  53. package/execution/ResultView.js +141 -40
  54. package/execution/ResultView.js.map +1 -1
  55. package/execution/SubAgentSection.d.ts.map +1 -1
  56. package/execution/SubAgentSection.js +45 -6
  57. package/execution/SubAgentSection.js.map +1 -1
  58. package/execution/TerminalSession.d.ts +34 -0
  59. package/execution/TerminalSession.d.ts.map +1 -0
  60. package/execution/TerminalSession.js +34 -0
  61. package/execution/TerminalSession.js.map +1 -0
  62. package/execution/TodoCard.d.ts +53 -0
  63. package/execution/TodoCard.d.ts.map +1 -0
  64. package/execution/TodoCard.js +77 -0
  65. package/execution/TodoCard.js.map +1 -0
  66. package/execution/ToolArgsView.d.ts +7 -1
  67. package/execution/ToolArgsView.d.ts.map +1 -1
  68. package/execution/ToolArgsView.js +10 -9
  69. package/execution/ToolArgsView.js.map +1 -1
  70. package/execution/ToolCallDetail.d.ts +10 -1
  71. package/execution/ToolCallDetail.d.ts.map +1 -1
  72. package/execution/ToolCallDetail.js +66 -19
  73. package/execution/ToolCallDetail.js.map +1 -1
  74. package/execution/ToolCallGroup.d.ts +28 -18
  75. package/execution/ToolCallGroup.d.ts.map +1 -1
  76. package/execution/ToolCallGroup.js +39 -148
  77. package/execution/ToolCallGroup.js.map +1 -1
  78. package/execution/ToolCallItem.d.ts +36 -8
  79. package/execution/ToolCallItem.d.ts.map +1 -1
  80. package/execution/ToolCallItem.js +140 -21
  81. package/execution/ToolCallItem.js.map +1 -1
  82. package/execution/ToolRunGroup.d.ts +48 -0
  83. package/execution/ToolRunGroup.d.ts.map +1 -0
  84. package/execution/ToolRunGroup.js +168 -0
  85. package/execution/ToolRunGroup.js.map +1 -0
  86. package/execution/approval-provenance.d.ts +2 -0
  87. package/execution/approval-provenance.d.ts.map +1 -0
  88. package/execution/approval-provenance.js +6 -0
  89. package/execution/approval-provenance.js.map +1 -0
  90. package/execution/artifact-utils.d.ts +0 -10
  91. package/execution/artifact-utils.d.ts.map +1 -1
  92. package/execution/artifact-utils.js +0 -17
  93. package/execution/artifact-utils.js.map +1 -1
  94. package/execution/execution-phases.d.ts +1 -6
  95. package/execution/execution-phases.d.ts.map +1 -1
  96. package/execution/execution-phases.js +4 -14
  97. package/execution/execution-phases.js.map +1 -1
  98. package/execution/file-path-resolver.d.ts +28 -0
  99. package/execution/file-path-resolver.d.ts.map +1 -1
  100. package/execution/file-path-resolver.js +24 -0
  101. package/execution/file-path-resolver.js.map +1 -1
  102. package/execution/file-review-status.d.ts +127 -0
  103. package/execution/file-review-status.d.ts.map +1 -0
  104. package/execution/file-review-status.js +135 -0
  105. package/execution/file-review-status.js.map +1 -0
  106. package/execution/index.d.ts +39 -5
  107. package/execution/index.d.ts.map +1 -1
  108. package/execution/index.js +23 -3
  109. package/execution/index.js.map +1 -1
  110. package/execution/segment-tool-calls.d.ts +46 -0
  111. package/execution/segment-tool-calls.d.ts.map +1 -0
  112. package/execution/segment-tool-calls.js +71 -0
  113. package/execution/segment-tool-calls.js.map +1 -0
  114. package/execution/tool-categories.d.ts +62 -1
  115. package/execution/tool-categories.d.ts.map +1 -1
  116. package/execution/tool-categories.js +96 -2
  117. package/execution/tool-categories.js.map +1 -1
  118. package/execution/tool-presenter.d.ts +38 -2
  119. package/execution/tool-presenter.d.ts.map +1 -1
  120. package/execution/tool-presenter.js +23 -1
  121. package/execution/tool-presenter.js.map +1 -1
  122. package/execution/tool-rendering-primitives.d.ts.map +1 -1
  123. package/execution/tool-rendering-primitives.js +3 -2
  124. package/execution/tool-rendering-primitives.js.map +1 -1
  125. package/execution/useArtifactDownload.d.ts +44 -0
  126. package/execution/useArtifactDownload.d.ts.map +1 -0
  127. package/execution/useArtifactDownload.js +80 -0
  128. package/execution/useArtifactDownload.js.map +1 -0
  129. package/execution/useArtifactDownloadUrl.d.ts +67 -0
  130. package/execution/useArtifactDownloadUrl.d.ts.map +1 -0
  131. package/execution/useArtifactDownloadUrl.js +59 -0
  132. package/execution/useArtifactDownloadUrl.js.map +1 -0
  133. package/execution/useFileChangeContent.d.ts +61 -0
  134. package/execution/useFileChangeContent.d.ts.map +1 -0
  135. package/execution/useFileChangeContent.js +89 -0
  136. package/execution/useFileChangeContent.js.map +1 -0
  137. package/execution/useFileReview.d.ts +89 -0
  138. package/execution/useFileReview.d.ts.map +1 -0
  139. package/execution/useFileReview.js +106 -0
  140. package/execution/useFileReview.js.map +1 -0
  141. package/execution/useSubmitApproval.d.ts +17 -2
  142. package/execution/useSubmitApproval.d.ts.map +1 -1
  143. package/execution/useSubmitApproval.js +27 -23
  144. package/execution/useSubmitApproval.js.map +1 -1
  145. package/execution/useToolOutputContent.d.ts +44 -0
  146. package/execution/useToolOutputContent.d.ts.map +1 -0
  147. package/execution/useToolOutputContent.js +31 -0
  148. package/execution/useToolOutputContent.js.map +1 -0
  149. package/index.d.ts +6 -6
  150. package/index.d.ts.map +1 -1
  151. package/index.js +3 -3
  152. package/index.js.map +1 -1
  153. package/internal/ApprovalPeekBar.d.ts +23 -0
  154. package/internal/ApprovalPeekBar.d.ts.map +1 -0
  155. package/internal/ApprovalPeekBar.js +25 -0
  156. package/internal/ApprovalPeekBar.js.map +1 -0
  157. package/internal/BoundedContent.d.ts +49 -0
  158. package/internal/BoundedContent.d.ts.map +1 -0
  159. package/internal/BoundedContent.js +50 -0
  160. package/internal/BoundedContent.js.map +1 -0
  161. package/internal/DecisionButton.d.ts +47 -0
  162. package/internal/DecisionButton.d.ts.map +1 -0
  163. package/internal/DecisionButton.js +42 -0
  164. package/internal/DecisionButton.js.map +1 -0
  165. package/internal/InCardDecisionError.d.ts +31 -0
  166. package/internal/InCardDecisionError.d.ts.map +1 -0
  167. package/internal/InCardDecisionError.js +23 -0
  168. package/internal/InCardDecisionError.js.map +1 -0
  169. package/internal/RevealToggle.d.ts +36 -0
  170. package/internal/RevealToggle.d.ts.map +1 -0
  171. package/internal/RevealToggle.js +32 -0
  172. package/internal/RevealToggle.js.map +1 -0
  173. package/internal/VirtualizedThread.d.ts +7 -1
  174. package/internal/VirtualizedThread.d.ts.map +1 -1
  175. package/internal/VirtualizedThread.js +7 -3
  176. package/internal/VirtualizedThread.js.map +1 -1
  177. package/internal/useAutoDisclosure.d.ts +34 -0
  178. package/internal/useAutoDisclosure.d.ts.map +1 -0
  179. package/internal/useAutoDisclosure.js +53 -0
  180. package/internal/useAutoDisclosure.js.map +1 -0
  181. package/internal/useElapsedSince.d.ts +30 -0
  182. package/internal/useElapsedSince.d.ts.map +1 -0
  183. package/internal/useElapsedSince.js +70 -0
  184. package/internal/useElapsedSince.js.map +1 -0
  185. package/internal/useIsOverflowing.d.ts +30 -0
  186. package/internal/useIsOverflowing.d.ts.map +1 -0
  187. package/internal/useIsOverflowing.js +47 -0
  188. package/internal/useIsOverflowing.js.map +1 -0
  189. package/internal/useIsTextTruncated.d.ts +24 -0
  190. package/internal/useIsTextTruncated.d.ts.map +1 -0
  191. package/internal/useIsTextTruncated.js +41 -0
  192. package/internal/useIsTextTruncated.js.map +1 -0
  193. package/internal/useKeyedSubmission.d.ts +49 -0
  194. package/internal/useKeyedSubmission.d.ts.map +1 -0
  195. package/internal/useKeyedSubmission.js +67 -0
  196. package/internal/useKeyedSubmission.js.map +1 -0
  197. package/package.json +4 -4
  198. package/session/SessionViewer.d.ts +2 -2
  199. package/session/SessionViewer.d.ts.map +1 -1
  200. package/session/SessionViewer.js +10 -4
  201. package/session/SessionViewer.js.map +1 -1
  202. package/session/index.d.ts +2 -0
  203. package/session/index.d.ts.map +1 -1
  204. package/session/index.js +1 -0
  205. package/session/index.js.map +1 -1
  206. package/session/inspector/ChangesTab.d.ts +8 -5
  207. package/session/inspector/ChangesTab.d.ts.map +1 -1
  208. package/session/inspector/ChangesTab.js +11 -8
  209. package/session/inspector/ChangesTab.js.map +1 -1
  210. package/session/inspector/SessionInspector.d.ts +4 -4
  211. package/session/inspector/SessionInspector.d.ts.map +1 -1
  212. package/session/inspector/SessionInspector.js +4 -4
  213. package/session/inspector/SessionInspector.js.map +1 -1
  214. package/session/inspector/index.d.ts +0 -2
  215. package/session/inspector/index.d.ts.map +1 -1
  216. package/session/inspector/index.js +0 -1
  217. package/session/inspector/index.js.map +1 -1
  218. package/session/inspector/useSessionInspector.d.ts +8 -4
  219. package/session/inspector/useSessionInspector.d.ts.map +1 -1
  220. package/session/inspector/useSessionInspector.js +27 -20
  221. package/session/inspector/useSessionInspector.js.map +1 -1
  222. package/session/useSessionConversation.d.ts +37 -3
  223. package/session/useSessionConversation.d.ts.map +1 -1
  224. package/session/useSessionConversation.js +18 -2
  225. package/session/useSessionConversation.js.map +1 -1
  226. package/session/useSessionFileChanges.d.ts +74 -0
  227. package/session/useSessionFileChanges.d.ts.map +1 -0
  228. package/session/useSessionFileChanges.js +178 -0
  229. package/session/useSessionFileChanges.js.map +1 -0
  230. package/src/__tests__/styles-border-layer-invariant.test.ts +105 -0
  231. package/src/execution/ApprovalCard.tsx +368 -230
  232. package/src/execution/ApprovalContext.ts +109 -0
  233. package/src/execution/ArtifactCard.tsx +10 -6
  234. package/src/execution/ArtifactPreviewModal.tsx +12 -6
  235. package/src/execution/EmptyChangeNotice.tsx +62 -0
  236. package/src/execution/FileChangesView.tsx +383 -0
  237. package/src/execution/FilePathLink.tsx +65 -12
  238. package/src/execution/FileReviewCard.tsx +1118 -0
  239. package/src/execution/FileReviewContext.ts +53 -0
  240. package/src/execution/FileReviewDock.tsx +157 -0
  241. package/src/execution/McpToolDetail.tsx +98 -32
  242. package/src/execution/MessageThread.tsx +374 -9
  243. package/src/execution/PlanArtifactCard.tsx +9 -6
  244. package/src/execution/PlanCompletionCard.tsx +1 -1
  245. package/src/execution/ResultView.tsx +333 -162
  246. package/src/execution/SubAgentSection.tsx +58 -11
  247. package/src/execution/TerminalSession.tsx +91 -0
  248. package/src/execution/TodoCard.tsx +186 -0
  249. package/src/execution/ToolArgsView.tsx +28 -17
  250. package/src/execution/ToolCallDetail.tsx +137 -26
  251. package/src/execution/ToolCallGroup.tsx +68 -296
  252. package/src/execution/ToolCallItem.tsx +265 -67
  253. package/src/execution/ToolRunGroup.tsx +302 -0
  254. package/src/execution/__tests__/ApprovalCard.test.tsx +395 -5
  255. package/src/execution/__tests__/ArtifactPreviewModal.test.tsx +0 -1
  256. package/src/execution/__tests__/EmptyChangeNotice.test.tsx +24 -0
  257. package/src/execution/__tests__/FileChangesView.test.tsx +296 -0
  258. package/src/execution/__tests__/FilePathLink.test.tsx +92 -0
  259. package/src/execution/__tests__/FileReviewCard.test.tsx +1044 -0
  260. package/src/execution/__tests__/FileReviewDock.test.tsx +134 -0
  261. package/src/execution/__tests__/McpToolDetail.test.tsx +79 -0
  262. package/src/execution/__tests__/MessageThread.test.tsx +324 -0
  263. package/src/execution/__tests__/PlanArtifactCard.test.tsx +37 -16
  264. package/src/execution/__tests__/ResultView.test.tsx +280 -2
  265. package/src/execution/__tests__/SubAgentSection.test.tsx +180 -0
  266. package/src/execution/__tests__/TerminalSession.test.tsx +72 -0
  267. package/src/execution/__tests__/TodoCard.test.tsx +102 -0
  268. package/src/execution/__tests__/ToolArgsView.test.tsx +48 -0
  269. package/src/execution/__tests__/ToolCallDetail.test.tsx +195 -0
  270. package/src/execution/__tests__/ToolCallGroup.test.tsx +132 -0
  271. package/src/execution/__tests__/ToolCallItem.test.tsx +521 -0
  272. package/src/execution/__tests__/ToolRunGroup.test.tsx +137 -0
  273. package/src/execution/__tests__/blanked-narration.test.tsx +149 -0
  274. package/src/execution/__tests__/buildThreadItems-approvals.test.ts +304 -0
  275. package/src/execution/__tests__/buildThreadItems-file-review.test.ts +331 -0
  276. package/src/execution/__tests__/file-path-resolver.test.ts +44 -0
  277. package/src/execution/__tests__/file-review-status.test.ts +343 -0
  278. package/src/execution/__tests__/segment-tool-calls.test.ts +124 -0
  279. package/src/execution/__tests__/subagent-file-review-badge.test.tsx +273 -0
  280. package/src/execution/__tests__/thread-keys.test.ts +195 -0
  281. package/src/execution/__tests__/tool-presenter.test.tsx +95 -0
  282. package/src/execution/__tests__/useArtifactDownload.test.tsx +67 -0
  283. package/src/execution/__tests__/useArtifactDownloadUrl.test.tsx +51 -0
  284. package/src/execution/__tests__/useFileChangeContent.test.tsx +240 -0
  285. package/src/execution/__tests__/useFileReview.test.tsx +236 -0
  286. package/src/execution/__tests__/useSubmitApproval.test.tsx +165 -0
  287. package/src/execution/__tests__/useToolOutputContent.test.tsx +82 -0
  288. package/src/execution/approval-provenance.ts +8 -0
  289. package/src/execution/artifact-utils.ts +0 -18
  290. package/src/execution/execution-phases.ts +4 -16
  291. package/src/execution/file-path-resolver.ts +38 -0
  292. package/src/execution/file-review-status.ts +219 -0
  293. package/src/execution/index.ts +84 -4
  294. package/src/execution/segment-tool-calls.ts +101 -0
  295. package/src/execution/tool-categories.ts +128 -1
  296. package/src/execution/tool-presenter.ts +58 -3
  297. package/src/execution/tool-rendering-primitives.tsx +11 -14
  298. package/src/execution/useArtifactDownload.ts +109 -0
  299. package/src/execution/useArtifactDownloadUrl.ts +116 -0
  300. package/src/execution/useFileChangeContent.ts +149 -0
  301. package/src/execution/useFileReview.ts +197 -0
  302. package/src/execution/useSubmitApproval.ts +49 -27
  303. package/src/execution/useToolOutputContent.ts +70 -0
  304. package/src/index.ts +60 -1
  305. package/src/internal/ApprovalPeekBar.tsx +73 -0
  306. package/src/internal/BoundedContent.tsx +97 -0
  307. package/src/internal/DecisionButton.tsx +127 -0
  308. package/src/internal/InCardDecisionError.tsx +47 -0
  309. package/src/internal/RevealToggle.tsx +91 -0
  310. package/src/internal/VirtualizedThread.tsx +28 -2
  311. package/src/internal/__tests__/ApprovalPeekBar.test.tsx +34 -0
  312. package/src/internal/__tests__/BoundedContent.test.tsx +92 -0
  313. package/src/internal/__tests__/DecisionButton.test.tsx +107 -0
  314. package/src/internal/__tests__/RevealToggle.test.tsx +61 -0
  315. package/src/internal/__tests__/useAutoDisclosure.test.ts +74 -0
  316. package/src/internal/__tests__/useElapsedSince.test.tsx +68 -0
  317. package/src/internal/__tests__/useIsOverflowing.test.ts +36 -0
  318. package/src/internal/__tests__/useKeyedSubmission.test.tsx +126 -0
  319. package/src/internal/useAutoDisclosure.ts +58 -0
  320. package/src/internal/useElapsedSince.ts +72 -0
  321. package/src/internal/useIsOverflowing.ts +61 -0
  322. package/src/internal/useIsTextTruncated.ts +55 -0
  323. package/src/internal/useKeyedSubmission.ts +101 -0
  324. package/src/session/SessionViewer.tsx +21 -4
  325. package/src/session/__tests__/SessionViewer-fileReviewDock.test.tsx +198 -0
  326. package/src/session/__tests__/audienceWiring.test.tsx +4 -0
  327. package/src/session/__tests__/useSessionFileChanges.test.ts +303 -0
  328. package/src/session/index.ts +3 -0
  329. package/src/session/inspector/ChangesTab.tsx +20 -17
  330. package/src/session/inspector/SessionInspector.tsx +12 -10
  331. package/src/session/inspector/__tests__/ArtifactsTab.test.tsx +0 -1
  332. package/src/session/inspector/__tests__/ChangesTab.test.tsx +38 -0
  333. package/src/session/inspector/__tests__/useSessionInspector.test.ts +46 -61
  334. package/src/session/inspector/index.ts +0 -3
  335. package/src/session/inspector/useSessionInspector.ts +27 -20
  336. package/src/session/useSessionConversation.ts +80 -3
  337. package/src/session/useSessionFileChanges.ts +207 -0
  338. package/src/styles.css +35 -10
  339. package/src/version-history/DiffViewer.tsx +10 -7
  340. package/src/version-history/UnifiedDiffView.tsx +66 -0
  341. package/src/version-history/__tests__/DiffViewer.test.tsx +57 -0
  342. package/src/version-history/__tests__/UnifiedDiffView.test.tsx +50 -0
  343. package/src/version-history/__tests__/computeDiff.test.ts +35 -0
  344. package/src/version-history/__tests__/parseUnifiedDiff.test.ts +82 -0
  345. package/src/version-history/computeDiff.ts +6 -37
  346. package/src/version-history/diff-hunks.ts +63 -0
  347. package/src/version-history/index.ts +1 -0
  348. package/src/version-history/parseUnifiedDiff.ts +34 -0
  349. package/src/workflow/WorkflowExecutionApprovalCard.tsx +49 -24
  350. package/src/workflow/WorkflowExecutionTimeline.tsx +15 -4
  351. package/src/workflow/WorkflowExecutionTimelineEvent.tsx +8 -3
  352. package/src/workflow/WorkflowExecutionViewer.tsx +72 -28
  353. package/src/workflow/WorkflowFileReviewList.tsx +152 -0
  354. package/src/workflow/WorkflowTaskApprovalCard.tsx +37 -85
  355. package/src/workflow/__tests__/ExecutionInspector.test.tsx +30 -2
  356. package/src/workflow/__tests__/WorkflowExecutionApprovalCard.test.tsx +129 -0
  357. package/src/workflow/__tests__/WorkflowFileReviewList.test.tsx +129 -0
  358. package/src/workflow/__tests__/WorkflowTaskApprovalCard.test.tsx +43 -11
  359. package/src/workflow/__tests__/useWorkflowExecutionActions.test.tsx +276 -0
  360. package/src/workflow/execution-inspector/ExecutionInspector.tsx +42 -18
  361. package/src/workflow/index.ts +5 -0
  362. package/src/workflow/useWorkflowExecutionActions.ts +177 -29
  363. package/styles.css +1 -1
  364. package/version-history/DiffViewer.d.ts.map +1 -1
  365. package/version-history/DiffViewer.js +9 -3
  366. package/version-history/DiffViewer.js.map +1 -1
  367. package/version-history/UnifiedDiffView.d.ts +29 -0
  368. package/version-history/UnifiedDiffView.d.ts.map +1 -0
  369. package/version-history/UnifiedDiffView.js +36 -0
  370. package/version-history/UnifiedDiffView.js.map +1 -0
  371. package/version-history/computeDiff.d.ts +3 -1
  372. package/version-history/computeDiff.d.ts.map +1 -1
  373. package/version-history/computeDiff.js +5 -35
  374. package/version-history/computeDiff.js.map +1 -1
  375. package/version-history/diff-hunks.d.ts +21 -0
  376. package/version-history/diff-hunks.d.ts.map +1 -0
  377. package/version-history/diff-hunks.js +58 -0
  378. package/version-history/diff-hunks.js.map +1 -0
  379. package/version-history/index.d.ts +1 -0
  380. package/version-history/index.d.ts.map +1 -1
  381. package/version-history/index.js +1 -0
  382. package/version-history/index.js.map +1 -1
  383. package/version-history/parseUnifiedDiff.d.ts +22 -0
  384. package/version-history/parseUnifiedDiff.d.ts.map +1 -0
  385. package/version-history/parseUnifiedDiff.js +34 -0
  386. package/version-history/parseUnifiedDiff.js.map +1 -0
  387. package/workflow/WorkflowExecutionApprovalCard.d.ts +8 -1
  388. package/workflow/WorkflowExecutionApprovalCard.d.ts.map +1 -1
  389. package/workflow/WorkflowExecutionApprovalCard.js +17 -3
  390. package/workflow/WorkflowExecutionApprovalCard.js.map +1 -1
  391. package/workflow/WorkflowExecutionTimeline.d.ts +11 -2
  392. package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -1
  393. package/workflow/WorkflowExecutionTimeline.js +2 -2
  394. package/workflow/WorkflowExecutionTimeline.js.map +1 -1
  395. package/workflow/WorkflowExecutionTimelineEvent.d.ts +4 -1
  396. package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +1 -1
  397. package/workflow/WorkflowExecutionTimelineEvent.js +2 -2
  398. package/workflow/WorkflowExecutionTimelineEvent.js.map +1 -1
  399. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  400. package/workflow/WorkflowExecutionViewer.js +18 -10
  401. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  402. package/workflow/WorkflowFileReviewList.d.ts +46 -0
  403. package/workflow/WorkflowFileReviewList.d.ts.map +1 -0
  404. package/workflow/WorkflowFileReviewList.js +48 -0
  405. package/workflow/WorkflowFileReviewList.js.map +1 -0
  406. package/workflow/WorkflowTaskApprovalCard.d.ts +8 -1
  407. package/workflow/WorkflowTaskApprovalCard.d.ts.map +1 -1
  408. package/workflow/WorkflowTaskApprovalCard.js +12 -19
  409. package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
  410. package/workflow/execution-inspector/ExecutionInspector.d.ts +21 -4
  411. package/workflow/execution-inspector/ExecutionInspector.d.ts.map +1 -1
  412. package/workflow/execution-inspector/ExecutionInspector.js +6 -3
  413. package/workflow/execution-inspector/ExecutionInspector.js.map +1 -1
  414. package/workflow/index.d.ts +1 -0
  415. package/workflow/index.d.ts.map +1 -1
  416. package/workflow/index.js +1 -0
  417. package/workflow/index.js.map +1 -1
  418. package/workflow/useWorkflowExecutionActions.d.ts +62 -4
  419. package/workflow/useWorkflowExecutionActions.d.ts.map +1 -1
  420. package/workflow/useWorkflowExecutionActions.js +94 -18
  421. package/workflow/useWorkflowExecutionActions.js.map +1 -1
  422. package/session/inspector/PlanTab.d.ts +0 -15
  423. package/session/inspector/PlanTab.d.ts.map +0 -1
  424. package/session/inspector/PlanTab.js +0 -19
  425. package/session/inspector/PlanTab.js.map +0 -1
  426. package/src/session/inspector/PlanTab.tsx +0 -31
@@ -2,33 +2,37 @@
2
2
  import { useCallback, useRef, useState } from "react";
3
3
  import { isTerminalPhase } from "../../execution/execution-phases";
4
4
  /**
5
- * Compute the system-suggested tab from execution phase and selection.
5
+ * Compute the system-suggested tab from selection.
6
6
  *
7
7
  * Priority:
8
8
  * 1. Thread item selected -> "inspect"
9
- * 2. No execution or terminal phase (idle / ready for follow-up) -> "workspace"
10
- * 3. Actively running -> "plan"
9
+ * 2. Otherwise -> "workspace"
10
+ *
11
+ * Live execution progress (the agent's plan and todos) now renders inline in
12
+ * the message thread as a {@link TodoCard}, not in a sidebar tab — so a running
13
+ * execution no longer steers the inspector to a dedicated facet.
11
14
  */
12
- function deriveAutoTab(phase, selectedItem) {
15
+ function deriveAutoTab(selectedItem) {
13
16
  if (selectedItem)
14
17
  return "inspect";
15
- if (phase === null || isTerminalPhase(phase))
16
- return "workspace";
17
- return "plan";
18
+ return "workspace";
18
19
  }
19
20
  /**
20
21
  * Build the contextual tab list with badges.
21
22
  *
22
23
  * Tab order follows the user's mental model — context before output:
23
- * Workspace → Config → Plan → Usage. Changes and Artifacts appear
24
- * after Plan when data exists; Inspect appears last when a thread item
25
- * is selected.
24
+ * Workspace → Config → Usage. Changes and Artifacts appear after Config
25
+ * when data exists; Inspect appears last when a thread item is selected.
26
+ *
27
+ * The Changes tab surfaces only when git write-backs (PRs) exist, badged
28
+ * with their count. Local-workspace file edits never surface a tab: they
29
+ * render in the transcript (stamped edit rows + the per-turn decision bar),
30
+ * which is their single review surface.
26
31
  */
27
32
  export function buildVisibleTabs(opts) {
28
33
  const tabs = [
29
34
  { id: "workspace", label: "Workspace" },
30
35
  { id: "configure", label: "Config" },
31
- { id: "plan", label: "Plan" },
32
36
  ];
33
37
  if (opts.hasWriteBacks) {
34
38
  tabs.push({
@@ -62,10 +66,13 @@ export function buildVisibleTabs(opts) {
62
66
  export function useSessionInspector(opts) {
63
67
  const { phase, hasWriteBacks, writeBackCount, hasArtifacts, artifactCount, hasUsage, selectedItem } = opts;
64
68
  const tabs = buildVisibleTabs({ hasWriteBacks, writeBackCount, hasArtifacts, artifactCount, hasUsage, selectedItem });
65
- const [activeTab, setActiveTab] = useState(() => deriveAutoTab(phase, selectedItem));
69
+ // A write-back (the session's only tab-worthy change source) surfaces and
70
+ // auto-selects the Changes tab on first arrival.
71
+ const hasChanges = hasWriteBacks;
72
+ const [activeTab, setActiveTab] = useState(() => deriveAutoTab(selectedItem));
66
73
  const [prevPhase, setPrevPhase] = useState(phase);
67
74
  const [prevSelected, setPrevSelected] = useState(selectedItem);
68
- const [prevHasWriteBacks, setPrevHasWriteBacks] = useState(hasWriteBacks);
75
+ const [prevHasChanges, setPrevHasChanges] = useState(hasChanges);
69
76
  const userPickedTabRef = useRef(false);
70
77
  // Selection changed → auto-switch to inspect (unless user picked)
71
78
  if (selectedItem !== prevSelected) {
@@ -74,7 +81,7 @@ export function useSessionInspector(opts) {
74
81
  setActiveTab("inspect");
75
82
  }
76
83
  if (!selectedItem && activeTab === "inspect") {
77
- setActiveTab(deriveAutoTab(phase, null));
84
+ setActiveTab(deriveAutoTab(null));
78
85
  userPickedTabRef.current = false;
79
86
  }
80
87
  }
@@ -85,23 +92,23 @@ export function useSessionInspector(opts) {
85
92
  setPrevPhase(phase);
86
93
  if (wasTerminal !== isNowTerminal) {
87
94
  userPickedTabRef.current = false;
88
- setActiveTab(deriveAutoTab(phase, selectedItem));
95
+ setActiveTab(deriveAutoTab(selectedItem));
89
96
  }
90
97
  }
91
98
  // First write-back arrived → auto-switch to changes
92
- if (hasWriteBacks && !prevHasWriteBacks) {
93
- setPrevHasWriteBacks(hasWriteBacks);
99
+ if (hasChanges && !prevHasChanges) {
100
+ setPrevHasChanges(hasChanges);
94
101
  if (!userPickedTabRef.current) {
95
102
  setActiveTab("changes");
96
103
  }
97
104
  }
98
- if (hasWriteBacks !== prevHasWriteBacks) {
99
- setPrevHasWriteBacks(hasWriteBacks);
105
+ if (hasChanges !== prevHasChanges) {
106
+ setPrevHasChanges(hasChanges);
100
107
  }
101
108
  // Ensure active tab is valid (the selected tab may have been removed)
102
109
  const effectiveTab = tabs.some((t) => t.id === activeTab)
103
110
  ? activeTab
104
- : deriveAutoTab(phase, selectedItem);
111
+ : deriveAutoTab(selectedItem);
105
112
  const onTabChange = useCallback((tabId) => {
106
113
  userPickedTabRef.current = true;
107
114
  setActiveTab(tabId);
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionInspector.js","sourceRoot":"","sources":["../../../src/session/inspector/useSessionInspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSessionInspector.js","sourceRoot":"","sources":["../../../src/session/inspector/useSessionInspector.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
2
2
  import type { PendingApproval } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/approval_pb";
3
- import { ApprovalAction, ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
3
+ import type { FileChangeSet } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
4
+ import { ApprovalAction, ExecutionPhase, FileDecisionAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
4
5
  import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
5
6
  import type { McpServerUsage as ProtoMcpServerUsage } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/spec_pb";
6
7
  import type { WorkspaceEntry as ProtoWorkspaceEntry } from "@stigmer/protos/ai/stigmer/agentic/session/v1/workspace_pb";
7
8
  import type { ApiResourceReference as ProtoApiResourceReference } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
8
9
  import type { AttachmentInput, EnvVarInput, McpServerUsageInput, ResourceRef, WorkspaceEntryInput } from "@stigmer/sdk";
10
+ import { type FileDecisionOptions } from "../execution/useFileReview";
9
11
  /**
10
12
  * Options for {@link UseSessionConversationReturn.sendFollowUp}.
11
13
  *
@@ -149,10 +151,42 @@ export interface UseSessionConversationReturn {
149
151
  readonly submitApproval: (toolCallId: string, action: ApprovalAction, comment?: string) => Promise<void>;
150
152
  /** Set of tool call IDs currently being submitted for approval. */
151
153
  readonly submittingApprovalIds: ReadonlySet<string>;
152
- /** Error from the last approval submission, or `null` when healthy. */
154
+ /**
155
+ * Per-tool-call approval failures, keyed by `toolCallId` — surfaced in-card by
156
+ * {@link MessageThread}/{@link ApprovalCard} beside the gate that failed
157
+ * (inline row or bottom backstop). The keyed parallel of
158
+ * {@link submittingApprovalIds}.
159
+ */
160
+ readonly approvalErrors: ReadonlyMap<string, Error>;
161
+ /**
162
+ * Error from the last approval submission, or `null` when healthy — the scalar
163
+ * mirror of {@link approvalErrors} (symmetric with `fileReviewError`), for a
164
+ * headless consumer wanting a single error value (e.g. the `ink` surface).
165
+ */
153
166
  readonly approvalError: Error | null;
154
- /** Reset `approvalError` to `null`. */
167
+ /** Reset every approval error (both {@link approvalErrors} and `approvalError`). */
155
168
  readonly clearApprovalError: () => void;
169
+ /** Captured change sets awaiting file review on the active execution, empty when none. */
170
+ readonly fileChangeSets: readonly FileChangeSet[];
171
+ /** Submit a file-review decision for a change set. The executionId is managed internally. */
172
+ readonly submitFileDecision: (changeSetId: string, action: FileDecisionAction, options?: FileDecisionOptions) => Promise<void>;
173
+ /** Decision keys ({@link fileDecisionKey}) currently being submitted. */
174
+ readonly submittingFileDecisionKeys: ReadonlySet<string>;
175
+ /**
176
+ * Per-decision failures, keyed by {@link fileDecisionKey} — surfaced in-card
177
+ * by {@link MessageThread}/{@link FileReviewCard} beside the failed control.
178
+ */
179
+ readonly fileDecisionErrors: ReadonlyMap<string, Error>;
180
+ /** Clear the error for one decision key (e.g. before a retry of that target). */
181
+ readonly clearFileDecisionError: (key: string) => void;
182
+ /**
183
+ * The most-recent file-review failure, or `null` when healthy — the scalar
184
+ * mirror of {@link fileDecisionErrors} (symmetric with `approvalError`), for a
185
+ * headless consumer wanting a single error value.
186
+ */
187
+ readonly fileReviewError: Error | null;
188
+ /** Reset every file-review error (both {@link fileDecisionErrors} and `fileReviewError`). */
189
+ readonly clearFileReviewError: () => void;
156
190
  /**
157
191
  * `true` when the active execution can be stopped — i.e. it is in a phase
158
192
  * the backend accepts a cancel/terminate from (`PENDING` or `IN_PROGRESS`).
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionConversation.d.ts","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSessionConversation.d.ts","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
- import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
3
+ import { ExecutionPhase, FileChangeSetStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
4
4
  import { isTerminalPhase } from "../execution/execution-phases";
5
5
  import { useStigmer } from "../hooks";
6
6
  import { toError } from "../internal/toError";
@@ -9,6 +9,7 @@ import { useCreateAgentExecution } from "../execution/useCreateAgentExecution";
9
9
  import { useExecutionStream } from "../execution/useExecutionStream";
10
10
  import { useAgentExecutionActions } from "../execution/useAgentExecutionActions";
11
11
  import { useSubmitApproval } from "../execution/useSubmitApproval";
12
+ import { useFileReview } from "../execution/useFileReview";
12
13
  import { useSession } from "./useSession";
13
14
  import { useSessionExecutions } from "./useSessionExecutions";
14
15
  import { useUpdateSession } from "./useUpdateSession";
@@ -84,7 +85,8 @@ export function useSessionConversation(sessionId, org) {
84
85
  });
85
86
  const { create, isCreating, clearError: clearCreateError, } = useCreateAgentExecution();
86
87
  const { update: updateSession } = useUpdateSession();
87
- const { submitApproval: rawSubmitApproval, submittingToolCallIds, error: approvalError, clearError: clearApprovalError, } = useSubmitApproval();
88
+ const { submitApproval: rawSubmitApproval, submittingToolCallIds, errorsByToolCallId: approvalErrors, error: approvalError, clearError: clearApprovalError, } = useSubmitApproval();
89
+ const { submitFileDecision: rawSubmitFileDecision, submittingDecisionKeys, decisionErrors: fileDecisionErrors, clearDecisionError: clearFileDecisionError, error: fileReviewError, clearError: clearFileReviewError, } = useFileReview();
88
90
  // Local execution: attach the session's runner worker while it is open and
89
91
  // detach it on close. No-op for cloud sessions or when no adapter is set.
90
92
  useLocalSessionWorker(sessionId, session);
@@ -256,6 +258,12 @@ export function useSessionConversation(sessionId, org) {
256
258
  return;
257
259
  await rawSubmitApproval(activeExecutionId, toolCallId, action, comment);
258
260
  }, [activeExecutionId, rawSubmitApproval]);
261
+ const fileChangeSets = useMemo(() => (activeStreamExecution?.status?.fileChangeSets ?? []).filter((cs) => cs.status === FileChangeSetStatus.AWAITING_REVIEW), [activeStreamExecution]);
262
+ const submitFileDecision = useCallback(async (changeSetId, action, options) => {
263
+ if (!activeExecutionId)
264
+ return;
265
+ await rawSubmitFileDecision(activeExecutionId, changeSetId, action, options);
266
+ }, [activeExecutionId, rawSubmitFileDecision]);
259
267
  const isLoading = sessionLoading || executionsLoading;
260
268
  const loadError = sessionError || executionsError;
261
269
  return {
@@ -278,8 +286,16 @@ export function useSessionConversation(sessionId, org) {
278
286
  pendingApprovals,
279
287
  submitApproval,
280
288
  submittingApprovalIds: submittingToolCallIds,
289
+ approvalErrors,
281
290
  approvalError,
282
291
  clearApprovalError,
292
+ fileChangeSets,
293
+ submitFileDecision,
294
+ submittingFileDecisionKeys: submittingDecisionKeys,
295
+ fileDecisionErrors,
296
+ clearFileDecisionError,
297
+ fileReviewError,
298
+ clearFileReviewError,
283
299
  isStoppable,
284
300
  stop,
285
301
  isStopping: stopActions.isSubmitting,
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionConversation.js","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSessionConversation.js","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
2
+ import type { FileChange } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
3
+ /** Return value of {@link useSessionFileChanges}. */
4
+ export interface UseSessionFileChangesReturn {
5
+ /**
6
+ * One {@link FileChange} per file touched in the session — the *net*
7
+ * change for that path (see the net-diff note below) — ordered for a
8
+ * file-list (modified, then created/renamed, then deleted; alphabetical
9
+ * within each group).
10
+ */
11
+ readonly fileChanges: readonly FileChange[];
12
+ /** `true` when at least one file was changed across all executions. */
13
+ readonly hasFileChanges: boolean;
14
+ /** Number of distinct files changed. */
15
+ readonly fileChangeCount: number;
16
+ }
17
+ /**
18
+ * Pure derivation hook that aggregates an agent's file changes across every
19
+ * execution in a session into one net change per file. A headless building
20
+ * block for platform builders composing a consolidated session-changes surface
21
+ * (typically paired with {@link FileChangesView}); the Console itself renders
22
+ * file changes in the transcript (stamped edit rows + the per-turn decision
23
+ * bar) and does not consume this hook.
24
+ *
25
+ * **Source (ledger-first).** Under apply-then-review the changes live in the
26
+ * file-review ledger; {@link displayFileChangeSets} reads the server's live
27
+ * projection or folds the durable ledger for a terminal execution (whose
28
+ * projection is nil), and each captured change is projected onto the display
29
+ * {@link FileChange} via {@link toDisplayFileChange}. A pre-capture
30
+ * (legacy) execution has no ledger, so it falls back to the tool-call-coupled
31
+ * `ToolCall.file_changes` (#186; removed in a later slice with that field). The
32
+ * two sources are mutually exclusive per execution, so there is no double count.
33
+ *
34
+ * **Traversal.** The ledger is execution-scoped and already includes sub-agent
35
+ * captures (DD-19), so the primary path is one pass per execution. The legacy
36
+ * fallback walks the same surfaces the server-side approval recompute and
37
+ * `MessageThread` walk: `status.messages[].toolCalls` **and**
38
+ * `status.subAgentExecutions[].messages[].toolCalls`. Executions are visited in
39
+ * chronological order, so each path's change list is chronological.
40
+ *
41
+ * **Net-diff (not latest-wins).** `useSessionWriteBacks`/`useSessionArtifacts`
42
+ * dedup by "latest wins" because each entry is a *snapshot* (a PR; a file's
43
+ * final bytes). A {@link FileChange} is a *delta* — an agent often rewrites the
44
+ * same file several times in a turn, and showing only the last edit's diff
45
+ * would misrepresent what changed. So changes to the same path are reduced to a
46
+ * single net change: `before` from the first change, `after` from the last.
47
+ * Because a WHOLE_FILE `after` is a complete file snapshot, `first.before →
48
+ * last.after` is exactly the net change. A group with one change (the common
49
+ * case) is passed through untouched; multi-edit groups synthesize a net
50
+ * {@link FileChange} so every consumer speaks one proto type (DD-007).
51
+ *
52
+ * Counts and unified diffs for whole-file captures stay derivable by the
53
+ * presentation layer (the runner emits 0/"" sentinels), matching the contract
54
+ * the SDK `tool-view` established.
55
+ *
56
+ * @param executions - All executions for a session, in chronological order.
57
+ * Pass both completed and active-stream executions.
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * const allExecutions = [
62
+ * ...conv.completedExecutions,
63
+ * ...(conv.activeStreamExecution ? [conv.activeStreamExecution] : []),
64
+ * ];
65
+ * const { fileChanges, hasFileChanges } = useSessionFileChanges(allExecutions);
66
+ * ```
67
+ *
68
+ * @see useSessionWriteBacks — git-mode (PR) counterpart, which does drive the
69
+ * inspector's Changes tab
70
+ * @see useFileChangeContent — resolves a change's before/after text for diffing
71
+ * @see FileChangesView — component that renders this data
72
+ */
73
+ export declare function useSessionFileChanges(executions: readonly AgentExecution[]): UseSessionFileChangesReturn;
74
+ //# sourceMappingURL=useSessionFileChanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionFileChanges.d.ts","sourceRoot":"","sources":["../../src/session/useSessionFileChanges.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iEAAiE,CAAC;AAQlG,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,wCAAwC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,SAAS,cAAc,EAAE,GACpC,2BAA2B,CAkC7B"}
@@ -0,0 +1,178 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { create } from "@bufbuild/protobuf";
4
+ import { FileChangeSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
5
+ import { FileChangeCaptureLevel, FileChangeType, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
6
+ import { displayFileChangeSets, toDisplayFileChange } from "@stigmer/sdk";
7
+ /**
8
+ * Pure derivation hook that aggregates an agent's file changes across every
9
+ * execution in a session into one net change per file. A headless building
10
+ * block for platform builders composing a consolidated session-changes surface
11
+ * (typically paired with {@link FileChangesView}); the Console itself renders
12
+ * file changes in the transcript (stamped edit rows + the per-turn decision
13
+ * bar) and does not consume this hook.
14
+ *
15
+ * **Source (ledger-first).** Under apply-then-review the changes live in the
16
+ * file-review ledger; {@link displayFileChangeSets} reads the server's live
17
+ * projection or folds the durable ledger for a terminal execution (whose
18
+ * projection is nil), and each captured change is projected onto the display
19
+ * {@link FileChange} via {@link toDisplayFileChange}. A pre-capture
20
+ * (legacy) execution has no ledger, so it falls back to the tool-call-coupled
21
+ * `ToolCall.file_changes` (#186; removed in a later slice with that field). The
22
+ * two sources are mutually exclusive per execution, so there is no double count.
23
+ *
24
+ * **Traversal.** The ledger is execution-scoped and already includes sub-agent
25
+ * captures (DD-19), so the primary path is one pass per execution. The legacy
26
+ * fallback walks the same surfaces the server-side approval recompute and
27
+ * `MessageThread` walk: `status.messages[].toolCalls` **and**
28
+ * `status.subAgentExecutions[].messages[].toolCalls`. Executions are visited in
29
+ * chronological order, so each path's change list is chronological.
30
+ *
31
+ * **Net-diff (not latest-wins).** `useSessionWriteBacks`/`useSessionArtifacts`
32
+ * dedup by "latest wins" because each entry is a *snapshot* (a PR; a file's
33
+ * final bytes). A {@link FileChange} is a *delta* — an agent often rewrites the
34
+ * same file several times in a turn, and showing only the last edit's diff
35
+ * would misrepresent what changed. So changes to the same path are reduced to a
36
+ * single net change: `before` from the first change, `after` from the last.
37
+ * Because a WHOLE_FILE `after` is a complete file snapshot, `first.before →
38
+ * last.after` is exactly the net change. A group with one change (the common
39
+ * case) is passed through untouched; multi-edit groups synthesize a net
40
+ * {@link FileChange} so every consumer speaks one proto type (DD-007).
41
+ *
42
+ * Counts and unified diffs for whole-file captures stay derivable by the
43
+ * presentation layer (the runner emits 0/"" sentinels), matching the contract
44
+ * the SDK `tool-view` established.
45
+ *
46
+ * @param executions - All executions for a session, in chronological order.
47
+ * Pass both completed and active-stream executions.
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * const allExecutions = [
52
+ * ...conv.completedExecutions,
53
+ * ...(conv.activeStreamExecution ? [conv.activeStreamExecution] : []),
54
+ * ];
55
+ * const { fileChanges, hasFileChanges } = useSessionFileChanges(allExecutions);
56
+ * ```
57
+ *
58
+ * @see useSessionWriteBacks — git-mode (PR) counterpart, which does drive the
59
+ * inspector's Changes tab
60
+ * @see useFileChangeContent — resolves a change's before/after text for diffing
61
+ * @see FileChangesView — component that renders this data
62
+ */
63
+ export function useSessionFileChanges(executions) {
64
+ return useMemo(() => {
65
+ // Path -> chronological list of raw changes to that path.
66
+ const groups = new Map();
67
+ // Preserve first-seen path order as a stable tiebreaker before sorting.
68
+ const collect = (change) => {
69
+ const key = change.path || change.absolutePath;
70
+ if (!key)
71
+ return;
72
+ const list = groups.get(key);
73
+ if (list)
74
+ list.push(change);
75
+ else
76
+ groups.set(key, [change]);
77
+ };
78
+ for (const execution of executions) {
79
+ // The file-review ledger is the single source under apply-then-review: the
80
+ // display seam reads the live projection or folds the durable ledger for a
81
+ // terminal execution, and the execution-scoped ledger already covers
82
+ // sub-agent captures (DD-19), so one pass suffices. Each CapturedFileChange
83
+ // is projected onto the display FileChange the net-collapse + renderer speak.
84
+ const capturedChanges = displayFileChangeSets(execution.status).flatMap((set) => set.changes);
85
+ for (const captured of capturedChanges)
86
+ collect(toDisplayFileChange(captured));
87
+ }
88
+ const fileChanges = Array.from(groups.values(), netChange);
89
+ fileChanges.sort(fileChangeComparator);
90
+ return {
91
+ fileChanges,
92
+ hasFileChanges: fileChanges.length > 0,
93
+ fileChangeCount: fileChanges.length,
94
+ };
95
+ }, [executions]);
96
+ }
97
+ /**
98
+ * Reduces a path's chronological change list to a single net change.
99
+ * A one-change group is returned as-is (the common path, no allocation);
100
+ * multi-edit groups synthesize a net {@link FileChange}.
101
+ */
102
+ function netChange(changes) {
103
+ if (changes.length === 1)
104
+ return changes[0];
105
+ const first = changes[0];
106
+ const last = changes[changes.length - 1];
107
+ const changeType = netChangeType(first, last);
108
+ // Whole-file only when both chosen sides come from whole-file captures;
109
+ // otherwise fall back to the last change's hunk diff. A path edited by a
110
+ // single harness won't mix levels — this just stays honest if it ever does.
111
+ const wholeFile = first.captureLevel === FileChangeCaptureLevel.WHOLE_FILE &&
112
+ last.captureLevel === FileChangeCaptureLevel.WHOLE_FILE;
113
+ if (wholeFile) {
114
+ return create(FileChangeSchema, {
115
+ path: last.path,
116
+ absolutePath: last.absolutePath,
117
+ changeType,
118
+ captureLevel: FileChangeCaptureLevel.WHOLE_FILE,
119
+ before: first.before,
120
+ after: last.after,
121
+ renameFrom: changeType === FileChangeType.RENAME ? first.renameFrom : "",
122
+ });
123
+ }
124
+ return create(FileChangeSchema, {
125
+ path: last.path,
126
+ absolutePath: last.absolutePath,
127
+ changeType,
128
+ captureLevel: FileChangeCaptureLevel.HUNK_ONLY,
129
+ unifiedDiff: last.unifiedDiff,
130
+ linesAdded: last.linesAdded,
131
+ linesRemoved: last.linesRemoved,
132
+ renameFrom: changeType === FileChangeType.RENAME ? first.renameFrom : "",
133
+ });
134
+ }
135
+ /**
136
+ * Reconciles the net `change_type` of a path from its first and last change.
137
+ *
138
+ * Intent: the badge should describe the file's journey across the *whole*
139
+ * session, anchored on its two endpoints, in this precedence:
140
+ *
141
+ * 1. Ends deleted (`last` is DELETE) → DELETE. The file is gone, regardless of
142
+ * how it got there — this includes create-then-delete, which we deliberately
143
+ * surface as DELETE rather than hiding the path. (`before` then comes from
144
+ * the first change, which for a created-then-deleted file is empty, so the
145
+ * diff reads as the removal of whatever briefly existed.)
146
+ * 2. Started created (`first` is CREATE) and still exists → CREATE. A file born
147
+ * this session and later modified is, on net, a new file.
148
+ * 3. Started renamed (`first` is RENAME) and still exists → RENAME, carrying the
149
+ * original `rename_from` so the move is preserved across later edits.
150
+ * 4. Otherwise → MODIFY (the common multi-edit case).
151
+ */
152
+ function netChangeType(first, last) {
153
+ if (last.changeType === FileChangeType.DELETE)
154
+ return FileChangeType.DELETE;
155
+ if (first.changeType === FileChangeType.CREATE)
156
+ return FileChangeType.CREATE;
157
+ if (first.changeType === FileChangeType.RENAME)
158
+ return FileChangeType.RENAME;
159
+ return FileChangeType.MODIFY;
160
+ }
161
+ // Most-actionable first (modified), then additions (create/rename), then
162
+ // deletions — mirroring GitHub's file-list convention — alphabetical within
163
+ // each group so the list is stable and scannable.
164
+ const CHANGE_TYPE_ORDER = {
165
+ [FileChangeType.MODIFY]: 0,
166
+ [FileChangeType.CREATE]: 1,
167
+ [FileChangeType.RENAME]: 1,
168
+ [FileChangeType.DELETE]: 2,
169
+ [FileChangeType.UNSPECIFIED]: 3,
170
+ };
171
+ function fileChangeComparator(a, b) {
172
+ const order = (CHANGE_TYPE_ORDER[a.changeType] ?? 3) -
173
+ (CHANGE_TYPE_ORDER[b.changeType] ?? 3);
174
+ if (order !== 0)
175
+ return order;
176
+ return a.path.localeCompare(b.path, undefined, { sensitivity: "base" });
177
+ }
178
+ //# sourceMappingURL=useSessionFileChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionFileChanges.js","sourceRoot":"","sources":["../../src/session/useSessionFileChanges.ts"],"names":[],"mappings":"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"}