@stigmer/react 3.1.1 → 3.1.3

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 (483) hide show
  1. package/composer/SessionComposer.d.ts +25 -1
  2. package/composer/SessionComposer.d.ts.map +1 -1
  3. package/composer/SessionComposer.js +19 -8
  4. package/composer/SessionComposer.js.map +1 -1
  5. package/execution/ArtifactContentRenderer.d.ts +11 -1
  6. package/execution/ArtifactContentRenderer.d.ts.map +1 -1
  7. package/execution/ArtifactContentRenderer.js +39 -15
  8. package/execution/ArtifactContentRenderer.js.map +1 -1
  9. package/execution/ArtifactPreviewModal.d.ts +5 -5
  10. package/execution/ArtifactPreviewModal.js +4 -4
  11. package/execution/ArtifactPreviewModal.js.map +1 -1
  12. package/execution/FileChangeProgressBar.d.ts +47 -0
  13. package/execution/FileChangeProgressBar.d.ts.map +1 -0
  14. package/execution/FileChangeProgressBar.js +49 -0
  15. package/execution/FileChangeProgressBar.js.map +1 -0
  16. package/execution/FileChangesView.d.ts.map +1 -1
  17. package/execution/FileChangesView.js +19 -4
  18. package/execution/FileChangesView.js.map +1 -1
  19. package/execution/FilePathContext.d.ts +8 -1
  20. package/execution/FilePathContext.d.ts.map +1 -1
  21. package/execution/FilePathContext.js.map +1 -1
  22. package/execution/FilePathLink.d.ts.map +1 -1
  23. package/execution/FilePathLink.js +21 -6
  24. package/execution/FilePathLink.js.map +1 -1
  25. package/execution/FileReviewAtoms.d.ts +27 -0
  26. package/execution/FileReviewAtoms.d.ts.map +1 -0
  27. package/execution/FileReviewAtoms.js +64 -0
  28. package/execution/FileReviewAtoms.js.map +1 -0
  29. package/execution/FileReviewCard.d.ts +2 -2
  30. package/execution/FileReviewCard.d.ts.map +1 -1
  31. package/execution/FileReviewCard.js +32 -62
  32. package/execution/FileReviewCard.js.map +1 -1
  33. package/execution/MessageEntry.d.ts +20 -0
  34. package/execution/MessageEntry.d.ts.map +1 -1
  35. package/execution/MessageEntry.js +19 -5
  36. package/execution/MessageEntry.js.map +1 -1
  37. package/execution/MessageThread.d.ts +75 -13
  38. package/execution/MessageThread.d.ts.map +1 -1
  39. package/execution/MessageThread.js +195 -27
  40. package/execution/MessageThread.js.map +1 -1
  41. package/execution/PlanArtifactCard.d.ts +36 -21
  42. package/execution/PlanArtifactCard.d.ts.map +1 -1
  43. package/execution/PlanArtifactCard.js +39 -25
  44. package/execution/PlanArtifactCard.js.map +1 -1
  45. package/execution/PlanCompletionCard.d.ts +4 -4
  46. package/execution/PlanCompletionCard.d.ts.map +1 -1
  47. package/execution/PlanCompletionCard.js +4 -4
  48. package/execution/PlanCompletionCard.js.map +1 -1
  49. package/execution/PlanDocumentMessage.d.ts +32 -0
  50. package/execution/PlanDocumentMessage.d.ts.map +1 -0
  51. package/execution/PlanDocumentMessage.js +37 -0
  52. package/execution/PlanDocumentMessage.js.map +1 -0
  53. package/execution/PlanStreamingCard.d.ts +50 -0
  54. package/execution/PlanStreamingCard.d.ts.map +1 -0
  55. package/execution/PlanStreamingCard.js +40 -0
  56. package/execution/PlanStreamingCard.js.map +1 -0
  57. package/execution/index.d.ts +9 -1
  58. package/execution/index.d.ts.map +1 -1
  59. package/execution/index.js +4 -0
  60. package/execution/index.js.map +1 -1
  61. package/execution/use-build-from-plan-hotkey.d.ts +1 -1
  62. package/execution/use-build-from-plan-hotkey.js +1 -1
  63. package/execution/useArtifactCopy.d.ts +51 -0
  64. package/execution/useArtifactCopy.d.ts.map +1 -0
  65. package/execution/useArtifactCopy.js +75 -0
  66. package/execution/useArtifactCopy.js.map +1 -0
  67. package/execution/useArtifactDownload.d.ts.map +1 -1
  68. package/execution/useArtifactDownload.js +17 -5
  69. package/execution/useArtifactDownload.js.map +1 -1
  70. package/execution/useCreateAgentExecution.d.ts +12 -0
  71. package/execution/useCreateAgentExecution.d.ts.map +1 -1
  72. package/execution/useCreateAgentExecution.js +5 -1
  73. package/execution/useCreateAgentExecution.js.map +1 -1
  74. package/github/decodeGitHubContent.d.ts +29 -0
  75. package/github/decodeGitHubContent.d.ts.map +1 -0
  76. package/github/decodeGitHubContent.js +72 -0
  77. package/github/decodeGitHubContent.js.map +1 -0
  78. package/github/index.d.ts +1 -0
  79. package/github/index.d.ts.map +1 -1
  80. package/github/index.js +1 -0
  81. package/github/index.js.map +1 -1
  82. package/github/useGitHubFileReader.d.ts +26 -0
  83. package/github/useGitHubFileReader.d.ts.map +1 -0
  84. package/github/useGitHubFileReader.js +106 -0
  85. package/github/useGitHubFileReader.js.map +1 -0
  86. package/github/useGitHubTreeLister.d.ts.map +1 -1
  87. package/github/useGitHubTreeLister.js +6 -2
  88. package/github/useGitHubTreeLister.js.map +1 -1
  89. package/index.d.ts +9 -9
  90. package/index.d.ts.map +1 -1
  91. package/index.js +5 -5
  92. package/index.js.map +1 -1
  93. package/internal/ResizableSplit.d.ts +72 -22
  94. package/internal/ResizableSplit.d.ts.map +1 -1
  95. package/internal/ResizableSplit.js +96 -38
  96. package/internal/ResizableSplit.js.map +1 -1
  97. package/internal/VirtualizedThread.d.ts +5 -3
  98. package/internal/VirtualizedThread.d.ts.map +1 -1
  99. package/internal/VirtualizedThread.js +6 -4
  100. package/internal/VirtualizedThread.js.map +1 -1
  101. package/internal/file-icons/index.d.ts +17 -0
  102. package/internal/file-icons/index.d.ts.map +1 -0
  103. package/internal/file-icons/index.js +60 -0
  104. package/internal/file-icons/index.js.map +1 -0
  105. package/internal/file-tree/FileTreeNode.d.ts +18 -1
  106. package/internal/file-tree/FileTreeNode.d.ts.map +1 -1
  107. package/internal/file-tree/FileTreeNode.js +11 -2
  108. package/internal/file-tree/FileTreeNode.js.map +1 -1
  109. package/internal/markdown-components.d.ts +38 -1
  110. package/internal/markdown-components.d.ts.map +1 -1
  111. package/internal/markdown-components.js +86 -11
  112. package/internal/markdown-components.js.map +1 -1
  113. package/{workflow → internal}/motion-preference.d.ts +7 -4
  114. package/internal/motion-preference.d.ts.map +1 -0
  115. package/{workflow → internal}/motion-preference.js +7 -4
  116. package/internal/motion-preference.js.map +1 -0
  117. package/internal/store/index.d.ts +33 -0
  118. package/internal/store/index.d.ts.map +1 -1
  119. package/internal/store/index.js +59 -0
  120. package/internal/store/index.js.map +1 -1
  121. package/internal/store/workspace-editors-store.d.ts +145 -0
  122. package/internal/store/workspace-editors-store.d.ts.map +1 -0
  123. package/internal/store/workspace-editors-store.js +208 -0
  124. package/internal/store/workspace-editors-store.js.map +1 -0
  125. package/internal/store/workspace-file-selection-store.d.ts +38 -0
  126. package/internal/store/workspace-file-selection-store.d.ts.map +1 -0
  127. package/internal/store/workspace-file-selection-store.js +62 -0
  128. package/internal/store/workspace-file-selection-store.js.map +1 -0
  129. package/internal/useRevealLine.d.ts +49 -0
  130. package/internal/useRevealLine.d.ts.map +1 -0
  131. package/internal/useRevealLine.js +43 -0
  132. package/internal/useRevealLine.js.map +1 -0
  133. package/library/detect-plan-artifact.d.ts +43 -4
  134. package/library/detect-plan-artifact.d.ts.map +1 -1
  135. package/library/detect-plan-artifact.js +45 -5
  136. package/library/detect-plan-artifact.js.map +1 -1
  137. package/library/detect-streaming-plan.d.ts +45 -0
  138. package/library/detect-streaming-plan.d.ts.map +1 -0
  139. package/library/detect-streaming-plan.js +83 -0
  140. package/library/detect-streaming-plan.js.map +1 -0
  141. package/library/index.d.ts +4 -1
  142. package/library/index.d.ts.map +1 -1
  143. package/library/index.js +2 -1
  144. package/library/index.js.map +1 -1
  145. package/package.json +4 -4
  146. package/session/NewSessionViewer.d.ts +19 -4
  147. package/session/NewSessionViewer.d.ts.map +1 -1
  148. package/session/NewSessionViewer.js +52 -25
  149. package/session/NewSessionViewer.js.map +1 -1
  150. package/session/PlanEditor.d.ts +55 -0
  151. package/session/PlanEditor.d.ts.map +1 -0
  152. package/session/PlanEditor.js +88 -0
  153. package/session/PlanEditor.js.map +1 -0
  154. package/session/PlanStreamingDocument.d.ts +30 -0
  155. package/session/PlanStreamingDocument.d.ts.map +1 -0
  156. package/session/PlanStreamingDocument.js +37 -0
  157. package/session/PlanStreamingDocument.js.map +1 -0
  158. package/session/SessionPanelChip.d.ts +26 -0
  159. package/session/SessionPanelChip.d.ts.map +1 -0
  160. package/session/SessionPanelChip.js +40 -0
  161. package/session/SessionPanelChip.js.map +1 -0
  162. package/session/SessionViewer.d.ts +34 -7
  163. package/session/SessionViewer.d.ts.map +1 -1
  164. package/session/SessionViewer.js +334 -33
  165. package/session/SessionViewer.js.map +1 -1
  166. package/session/{inspector → facets}/ArtifactsTab.d.ts +10 -2
  167. package/session/facets/ArtifactsTab.d.ts.map +1 -0
  168. package/session/{inspector → facets}/ArtifactsTab.js +8 -3
  169. package/session/facets/ArtifactsTab.js.map +1 -0
  170. package/session/{inspector → facets}/ChangesTab.d.ts +3 -3
  171. package/session/facets/ChangesTab.d.ts.map +1 -0
  172. package/session/{inspector → facets}/ChangesTab.js +3 -3
  173. package/session/facets/ChangesTab.js.map +1 -0
  174. package/session/facets/InspectTab.d.ts.map +1 -0
  175. package/session/facets/InspectTab.js.map +1 -0
  176. package/session/{inspector → facets}/SetupTab.d.ts +11 -2
  177. package/session/facets/SetupTab.d.ts.map +1 -0
  178. package/session/{inspector → facets}/SetupTab.js +4 -3
  179. package/session/facets/SetupTab.js.map +1 -0
  180. package/session/{inspector → facets}/UsageTab.d.ts +1 -1
  181. package/session/facets/UsageTab.d.ts.map +1 -0
  182. package/session/{inspector → facets}/UsageTab.js +1 -1
  183. package/session/facets/UsageTab.js.map +1 -0
  184. package/session/{inspector → facets}/index.d.ts +0 -6
  185. package/session/facets/index.d.ts.map +1 -0
  186. package/session/{inspector → facets}/index.js +0 -3
  187. package/session/facets/index.js.map +1 -0
  188. package/session/index.d.ts +11 -2
  189. package/session/index.d.ts.map +1 -1
  190. package/session/index.js +15 -2
  191. package/session/index.js.map +1 -1
  192. package/session/plan-document.d.ts +21 -0
  193. package/session/plan-document.d.ts.map +1 -0
  194. package/session/plan-document.js +28 -0
  195. package/session/plan-document.js.map +1 -0
  196. package/session/useOpenFileChange.d.ts +20 -0
  197. package/session/useOpenFileChange.d.ts.map +1 -0
  198. package/session/useOpenFileChange.js +31 -0
  199. package/session/useOpenFileChange.js.map +1 -0
  200. package/session/usePlanDraft.d.ts +52 -0
  201. package/session/usePlanDraft.d.ts.map +1 -0
  202. package/session/usePlanDraft.js +63 -0
  203. package/session/usePlanDraft.js.map +1 -0
  204. package/session/useSessionConversation.d.ts +14 -1
  205. package/session/useSessionConversation.d.ts.map +1 -1
  206. package/session/useSessionConversation.js +20 -2
  207. package/session/useSessionConversation.js.map +1 -1
  208. package/session/useSessionPageFlow.d.ts.map +1 -1
  209. package/session/useSessionPageFlow.js +1 -0
  210. package/session/useSessionPageFlow.js.map +1 -1
  211. package/session/useSessionPanel.d.ts +120 -0
  212. package/session/useSessionPanel.d.ts.map +1 -0
  213. package/session/useSessionPanel.js +130 -0
  214. package/session/useSessionPanel.js.map +1 -0
  215. package/session/useSessionRailViews.d.ts +45 -0
  216. package/session/useSessionRailViews.d.ts.map +1 -0
  217. package/session/useSessionRailViews.js +105 -0
  218. package/session/useSessionRailViews.js.map +1 -0
  219. package/src/composer/SessionComposer.tsx +53 -10
  220. package/src/composer/__tests__/SessionComposer-contract.test.tsx +58 -4
  221. package/src/execution/ArtifactContentRenderer.tsx +101 -24
  222. package/src/execution/ArtifactPreviewModal.tsx +9 -9
  223. package/src/execution/FileChangeProgressBar.tsx +121 -0
  224. package/src/execution/FileChangesView.tsx +18 -4
  225. package/src/execution/FilePathContext.tsx +8 -1
  226. package/src/execution/FilePathLink.tsx +22 -6
  227. package/src/execution/FileReviewAtoms.tsx +89 -0
  228. package/src/execution/FileReviewCard.tsx +57 -90
  229. package/src/execution/MessageEntry.tsx +49 -1
  230. package/src/execution/MessageThread.tsx +308 -39
  231. package/src/execution/PlanArtifactCard.tsx +174 -64
  232. package/src/execution/PlanCompletionCard.tsx +5 -5
  233. package/src/execution/PlanDocumentMessage.tsx +96 -0
  234. package/src/execution/PlanStreamingCard.tsx +141 -0
  235. package/src/execution/__tests__/ArtifactContentRenderer.test.tsx +80 -1
  236. package/src/execution/__tests__/ArtifactPreviewModal.test.tsx +6 -6
  237. package/src/execution/__tests__/FileChangeProgressBar.test.tsx +125 -0
  238. package/src/execution/__tests__/FilePathLink.test.tsx +87 -0
  239. package/src/execution/__tests__/FileReviewCard.test.tsx +66 -7
  240. package/src/execution/__tests__/MessageThread.test.tsx +102 -1
  241. package/src/execution/__tests__/PlanArtifactCard.test.tsx +114 -26
  242. package/src/execution/__tests__/PlanCompletionCard.test.tsx +2 -2
  243. package/src/execution/__tests__/PlanDocumentMessage.test.tsx +55 -0
  244. package/src/execution/__tests__/PlanStreamingCard.test.tsx +56 -0
  245. package/src/execution/__tests__/buildThreadItems-plan-completion.test.ts +600 -22
  246. package/src/execution/__tests__/message-entry.test.tsx +17 -0
  247. package/src/execution/__tests__/useArtifactCopy.test.tsx +90 -0
  248. package/src/execution/__tests__/useArtifactDownload.test.tsx +2 -0
  249. package/src/execution/__tests__/useCreateAgentExecution.test.tsx +85 -0
  250. package/src/execution/index.ts +13 -1
  251. package/src/execution/use-build-from-plan-hotkey.ts +1 -1
  252. package/src/execution/useArtifactCopy.ts +109 -0
  253. package/src/execution/useArtifactDownload.ts +17 -5
  254. package/src/execution/useCreateAgentExecution.ts +18 -1
  255. package/src/github/__tests__/decodeGitHubContent.test.ts +102 -0
  256. package/src/github/__tests__/useGitHubFileReader.test.ts +183 -0
  257. package/src/github/decodeGitHubContent.ts +83 -0
  258. package/src/github/index.ts +1 -0
  259. package/src/github/useGitHubFileReader.ts +152 -0
  260. package/src/github/useGitHubTreeLister.ts +6 -2
  261. package/src/index.ts +69 -9
  262. package/src/internal/ResizableSplit.tsx +184 -51
  263. package/src/internal/VirtualizedThread.tsx +12 -4
  264. package/src/internal/__tests__/ResizableSplit.test.tsx +125 -3
  265. package/src/internal/__tests__/markdown-components.test.tsx +68 -0
  266. package/src/internal/__tests__/useRevealLine.test.tsx +97 -0
  267. package/src/internal/file-icons/__tests__/file-icons.test.tsx +35 -0
  268. package/src/internal/file-icons/index.tsx +137 -0
  269. package/src/internal/file-tree/FileTreeNode.tsx +56 -5
  270. package/src/internal/file-tree/__tests__/FileTreeNode-explorer.test.tsx +86 -0
  271. package/src/internal/markdown-components.tsx +116 -11
  272. package/src/{workflow → internal}/motion-preference.ts +7 -4
  273. package/src/internal/store/__tests__/workspace-editors-store.test.ts +216 -0
  274. package/src/internal/store/__tests__/workspace-file-selection-store.test.ts +118 -0
  275. package/src/internal/store/index.ts +94 -0
  276. package/src/internal/store/workspace-editors-store.ts +315 -0
  277. package/src/internal/store/workspace-file-selection-store.ts +88 -0
  278. package/src/internal/useRevealLine.ts +81 -0
  279. package/src/library/__tests__/detect-plan-artifact.test.ts +69 -0
  280. package/src/library/__tests__/detect-streaming-plan.test.ts +234 -0
  281. package/src/library/detect-plan-artifact.ts +62 -5
  282. package/src/library/detect-streaming-plan.ts +108 -0
  283. package/src/library/index.ts +7 -0
  284. package/src/session/NewSessionViewer.tsx +123 -55
  285. package/src/session/PlanEditor.tsx +361 -0
  286. package/src/session/PlanStreamingDocument.tsx +97 -0
  287. package/src/session/SessionPanelChip.tsx +103 -0
  288. package/src/session/SessionViewer.tsx +655 -96
  289. package/src/session/__tests__/NewSessionViewer.test.tsx +148 -0
  290. package/src/session/__tests__/PlanEditor.test.tsx +217 -0
  291. package/src/session/__tests__/PlanStreamingDocument.test.tsx +50 -0
  292. package/src/session/__tests__/SessionPanelChip.test.tsx +42 -0
  293. package/src/session/__tests__/SessionViewer-fileReviewDock.test.tsx +66 -4
  294. package/src/session/__tests__/SessionViewer-transcriptFileOpen.test.tsx +205 -0
  295. package/src/session/__tests__/audienceWiring.test.tsx +55 -19
  296. package/src/session/__tests__/useOpenFileChange.test.tsx +82 -0
  297. package/src/session/__tests__/usePlanDraft.test.ts +102 -0
  298. package/src/session/__tests__/useSessionConversation.test.tsx +44 -0
  299. package/src/session/__tests__/useSessionPanel.test.ts +298 -0
  300. package/src/session/__tests__/useSessionRailViews.test.tsx +124 -0
  301. package/src/session/{inspector → facets}/ArtifactsTab.tsx +27 -5
  302. package/src/session/{inspector → facets}/ChangesTab.tsx +3 -3
  303. package/src/session/{inspector → facets}/SetupTab.tsx +13 -1
  304. package/src/session/{inspector → facets}/UsageTab.tsx +1 -1
  305. package/src/session/{inspector → facets}/__tests__/ArtifactsTab.test.tsx +42 -8
  306. package/src/session/facets/__tests__/SetupTab.test.tsx +44 -0
  307. package/src/session/{inspector → facets}/index.ts +0 -16
  308. package/src/session/index.ts +30 -13
  309. package/src/session/plan-document.ts +30 -0
  310. package/src/session/useOpenFileChange.ts +53 -0
  311. package/src/session/usePlanDraft.ts +109 -0
  312. package/src/session/useSessionConversation.ts +38 -3
  313. package/src/session/useSessionPageFlow.ts +1 -0
  314. package/src/session/useSessionPanel.ts +288 -0
  315. package/src/session/useSessionRailViews.tsx +200 -0
  316. package/src/workflow/WorkflowExecutionGraph.tsx +1 -1
  317. package/src/workflow/index.ts +1 -1
  318. package/src/workflow/useFollowExecution.ts +1 -1
  319. package/src/workspace/EditorTabs.tsx +174 -0
  320. package/src/workspace/ExplorerTree.tsx +253 -0
  321. package/src/workspace/FileViewer.tsx +537 -0
  322. package/src/workspace/WorkspaceContentSearch.tsx +502 -0
  323. package/src/workspace/WorkspaceContentSearcher.ts +70 -0
  324. package/src/workspace/WorkspaceEditor.tsx +19 -16
  325. package/src/workspace/WorkspaceFileLister.ts +11 -0
  326. package/src/workspace/WorkspaceFileReader.ts +57 -0
  327. package/src/workspace/WorkspaceFileSearch.tsx +452 -0
  328. package/src/workspace/WorkspaceSurface.tsx +839 -0
  329. package/src/workspace/__tests__/EditorTabs.test.tsx +102 -0
  330. package/src/workspace/__tests__/ExplorerTree.test.tsx +204 -0
  331. package/src/workspace/__tests__/FileViewer.test.tsx +439 -0
  332. package/src/workspace/__tests__/WorkspaceContentSearch.test.tsx +229 -0
  333. package/src/workspace/__tests__/WorkspaceEditor-initialPanel.test.tsx +19 -0
  334. package/src/workspace/__tests__/WorkspaceFileSearch.test.tsx +227 -0
  335. package/src/workspace/__tests__/WorkspaceSurface.test.tsx +418 -0
  336. package/src/workspace/__tests__/a11y/harness.tsx +140 -0
  337. package/src/workspace/__tests__/a11y/mock-capabilities.ts +138 -0
  338. package/src/workspace/__tests__/a11y/workspace-editor.a11y.test.tsx +65 -0
  339. package/src/workspace/__tests__/a11y/workspace-explorer-search.a11y.test.tsx +112 -0
  340. package/src/workspace/__tests__/a11y/workspace-viewer-tabs.a11y.test.tsx +69 -0
  341. package/src/workspace/__tests__/findChangeForSelection.test.ts +132 -0
  342. package/src/workspace/__tests__/matchContentPreview.test.ts +55 -0
  343. package/src/workspace/__tests__/matchWorkspaceFiles.test.ts +104 -0
  344. package/src/workspace/__tests__/resolveWorkspaceFileSelection.test.ts +135 -0
  345. package/src/workspace/__tests__/useWorkspaceContentSearch.test.tsx +196 -0
  346. package/src/workspace/__tests__/useWorkspaceFileContent.test.tsx +190 -0
  347. package/src/workspace/__tests__/useWorkspaceFileSearch.test.tsx +162 -0
  348. package/src/workspace/findChangeForSelection.ts +61 -0
  349. package/src/workspace/index.ts +56 -2
  350. package/src/workspace/matchContentPreview.ts +51 -0
  351. package/src/workspace/matchWorkspaceFiles.ts +86 -0
  352. package/src/workspace/resolveWorkspaceFileSelection.ts +119 -0
  353. package/src/workspace/useWorkspaceContentSearch.ts +228 -0
  354. package/src/workspace/useWorkspaceFileContent.ts +129 -0
  355. package/src/workspace/useWorkspaceFileSearch.ts +184 -0
  356. package/src/workspace/useWorkspaceFiles.ts +27 -27
  357. package/src/workspace/workspaceListingCache.ts +93 -0
  358. package/styles.css +1 -1
  359. package/workflow/WorkflowExecutionGraph.js +1 -1
  360. package/workflow/WorkflowExecutionGraph.js.map +1 -1
  361. package/workflow/index.d.ts +1 -1
  362. package/workflow/index.d.ts.map +1 -1
  363. package/workflow/index.js +1 -1
  364. package/workflow/index.js.map +1 -1
  365. package/workflow/useFollowExecution.js +1 -1
  366. package/workflow/useFollowExecution.js.map +1 -1
  367. package/workspace/EditorTabs.d.ts +47 -0
  368. package/workspace/EditorTabs.d.ts.map +1 -0
  369. package/workspace/EditorTabs.js +78 -0
  370. package/workspace/EditorTabs.js.map +1 -0
  371. package/workspace/ExplorerTree.d.ts +32 -0
  372. package/workspace/ExplorerTree.d.ts.map +1 -0
  373. package/workspace/ExplorerTree.js +49 -0
  374. package/workspace/ExplorerTree.js.map +1 -0
  375. package/workspace/FileViewer.d.ts +93 -0
  376. package/workspace/FileViewer.d.ts.map +1 -0
  377. package/workspace/FileViewer.js +193 -0
  378. package/workspace/FileViewer.js.map +1 -0
  379. package/workspace/WorkspaceContentSearch.d.ts +41 -0
  380. package/workspace/WorkspaceContentSearch.d.ts.map +1 -0
  381. package/workspace/WorkspaceContentSearch.js +216 -0
  382. package/workspace/WorkspaceContentSearch.js.map +1 -0
  383. package/workspace/WorkspaceContentSearcher.d.ts +59 -0
  384. package/workspace/WorkspaceContentSearcher.d.ts.map +1 -0
  385. package/workspace/WorkspaceContentSearcher.js +7 -0
  386. package/workspace/WorkspaceContentSearcher.js.map +1 -0
  387. package/workspace/WorkspaceEditor.d.ts.map +1 -1
  388. package/workspace/WorkspaceEditor.js +8 -10
  389. package/workspace/WorkspaceEditor.js.map +1 -1
  390. package/workspace/WorkspaceFileLister.d.ts +11 -0
  391. package/workspace/WorkspaceFileLister.d.ts.map +1 -1
  392. package/workspace/WorkspaceFileReader.d.ts +48 -0
  393. package/workspace/WorkspaceFileReader.d.ts.map +1 -0
  394. package/workspace/WorkspaceFileReader.js +11 -0
  395. package/workspace/WorkspaceFileReader.js.map +1 -0
  396. package/workspace/WorkspaceFileSearch.d.ts +32 -0
  397. package/workspace/WorkspaceFileSearch.d.ts.map +1 -0
  398. package/workspace/WorkspaceFileSearch.js +175 -0
  399. package/workspace/WorkspaceFileSearch.js.map +1 -0
  400. package/workspace/WorkspaceSurface.d.ts +151 -0
  401. package/workspace/WorkspaceSurface.d.ts.map +1 -0
  402. package/workspace/WorkspaceSurface.js +220 -0
  403. package/workspace/WorkspaceSurface.js.map +1 -0
  404. package/workspace/findChangeForSelection.d.ts +19 -0
  405. package/workspace/findChangeForSelection.d.ts.map +1 -0
  406. package/workspace/findChangeForSelection.js +46 -0
  407. package/workspace/findChangeForSelection.js.map +1 -0
  408. package/workspace/index.d.ts +24 -2
  409. package/workspace/index.d.ts.map +1 -1
  410. package/workspace/index.js +13 -1
  411. package/workspace/index.js.map +1 -1
  412. package/workspace/matchContentPreview.d.ts +21 -0
  413. package/workspace/matchContentPreview.d.ts.map +1 -0
  414. package/workspace/matchContentPreview.js +36 -0
  415. package/workspace/matchContentPreview.js.map +1 -0
  416. package/workspace/matchWorkspaceFiles.d.ts +30 -0
  417. package/workspace/matchWorkspaceFiles.d.ts.map +1 -0
  418. package/workspace/matchWorkspaceFiles.js +58 -0
  419. package/workspace/matchWorkspaceFiles.js.map +1 -0
  420. package/workspace/resolveWorkspaceFileSelection.d.ts +19 -0
  421. package/workspace/resolveWorkspaceFileSelection.d.ts.map +1 -0
  422. package/workspace/resolveWorkspaceFileSelection.js +115 -0
  423. package/workspace/resolveWorkspaceFileSelection.js.map +1 -0
  424. package/workspace/useWorkspaceContentSearch.d.ts +69 -0
  425. package/workspace/useWorkspaceContentSearch.d.ts.map +1 -0
  426. package/workspace/useWorkspaceContentSearch.js +154 -0
  427. package/workspace/useWorkspaceContentSearch.js.map +1 -0
  428. package/workspace/useWorkspaceFileContent.d.ts +73 -0
  429. package/workspace/useWorkspaceFileContent.d.ts.map +1 -0
  430. package/workspace/useWorkspaceFileContent.js +57 -0
  431. package/workspace/useWorkspaceFileContent.js.map +1 -0
  432. package/workspace/useWorkspaceFileSearch.d.ts +61 -0
  433. package/workspace/useWorkspaceFileSearch.d.ts.map +1 -0
  434. package/workspace/useWorkspaceFileSearch.js +119 -0
  435. package/workspace/useWorkspaceFileSearch.js.map +1 -0
  436. package/workspace/useWorkspaceFiles.d.ts +13 -5
  437. package/workspace/useWorkspaceFiles.d.ts.map +1 -1
  438. package/workspace/useWorkspaceFiles.js +18 -19
  439. package/workspace/useWorkspaceFiles.js.map +1 -1
  440. package/workspace/workspaceListingCache.d.ts +47 -0
  441. package/workspace/workspaceListingCache.d.ts.map +1 -0
  442. package/workspace/workspaceListingCache.js +55 -0
  443. package/workspace/workspaceListingCache.js.map +1 -0
  444. package/session/inspector/ArtifactsTab.d.ts.map +0 -1
  445. package/session/inspector/ArtifactsTab.js.map +0 -1
  446. package/session/inspector/ChangesTab.d.ts.map +0 -1
  447. package/session/inspector/ChangesTab.js.map +0 -1
  448. package/session/inspector/InspectTab.d.ts.map +0 -1
  449. package/session/inspector/InspectTab.js.map +0 -1
  450. package/session/inspector/SessionInspector.d.ts +0 -64
  451. package/session/inspector/SessionInspector.d.ts.map +0 -1
  452. package/session/inspector/SessionInspector.js +0 -53
  453. package/session/inspector/SessionInspector.js.map +0 -1
  454. package/session/inspector/SetupTab.d.ts.map +0 -1
  455. package/session/inspector/SetupTab.js.map +0 -1
  456. package/session/inspector/UsageTab.d.ts.map +0 -1
  457. package/session/inspector/UsageTab.js.map +0 -1
  458. package/session/inspector/WorkspaceTab.d.ts +0 -35
  459. package/session/inspector/WorkspaceTab.d.ts.map +0 -1
  460. package/session/inspector/WorkspaceTab.js +0 -75
  461. package/session/inspector/WorkspaceTab.js.map +0 -1
  462. package/session/inspector/index.d.ts.map +0 -1
  463. package/session/inspector/index.js.map +0 -1
  464. package/session/inspector/useSessionInspector.d.ts +0 -49
  465. package/session/inspector/useSessionInspector.d.ts.map +0 -1
  466. package/session/inspector/useSessionInspector.js +0 -122
  467. package/session/inspector/useSessionInspector.js.map +0 -1
  468. package/src/session/inspector/SessionInspector.tsx +0 -162
  469. package/src/session/inspector/WorkspaceTab.tsx +0 -245
  470. package/src/session/inspector/__tests__/useSessionInspector.test.ts +0 -251
  471. package/src/session/inspector/useSessionInspector.ts +0 -178
  472. package/src/workspace/WorkspaceEntryFiles.tsx +0 -196
  473. package/workflow/motion-preference.d.ts.map +0 -1
  474. package/workflow/motion-preference.js.map +0 -1
  475. package/workspace/WorkspaceEntryFiles.d.ts +0 -22
  476. package/workspace/WorkspaceEntryFiles.d.ts.map +0 -1
  477. package/workspace/WorkspaceEntryFiles.js +0 -58
  478. package/workspace/WorkspaceEntryFiles.js.map +0 -1
  479. /package/session/{inspector → facets}/InspectTab.d.ts +0 -0
  480. /package/session/{inspector → facets}/InspectTab.js +0 -0
  481. /package/src/{workflow → internal}/__tests__/motion-preference.test.ts +0 -0
  482. /package/src/session/{inspector → facets}/InspectTab.tsx +0 -0
  483. /package/src/session/{inspector → facets}/__tests__/ChangesTab.test.tsx +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkspaceTab.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/WorkspaceTab.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAkB,MAAM,wCAAwC,CAAC;AACxG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAElF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAErF;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IACtD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CACpD;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CAwD1D"}
@@ -1,75 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useCallback, useState } from "react";
4
- import { cn } from "@stigmer/theme";
5
- import { WorkspaceEntryFiles } from "../../workspace/WorkspaceEntryFiles.js";
6
- /**
7
- * Dedicated workspace tab for the SessionInspector.
8
- *
9
- * Provides a full-height layout for managing workspace entries:
10
- * - Entry list with expandable file trees (accordion, one at a time)
11
- * - Add actions: Browse Folder and Connect GitHub
12
- * - Short display names with full path on hover
13
- *
14
- * Entries start collapsed by default to avoid expensive file-listing
15
- * fetches until the user explicitly expands one.
16
- *
17
- * All visual properties flow through `--stgm-*` tokens (DD-005).
18
- */
19
- export function WorkspaceTab({ actions }) {
20
- const { workspace, enableGitHub = true, enableLocal = false, onBrowseLocalFolder, workspaceFileLister, } = actions;
21
- const canBrowse = enableLocal && onBrowseLocalFolder;
22
- const hasEntries = workspace.entries.length > 0;
23
- return (_jsxs("div", { className: "flex h-full flex-col gap-3", children: [hasEntries && (_jsx(WorkspaceEntryList, { entries: workspace.entries, onRemove: workspace.remove, lister: workspaceFileLister })), !hasEntries && (_jsx(EmptyState, {})), _jsxs("div", { className: "flex flex-col gap-0.5", children: [canBrowse && (_jsxs("button", { type: "button", onClick: async () => {
24
- const path = await onBrowseLocalFolder();
25
- if (path)
26
- workspace.addLocalPath(path);
27
- }, className: "flex w-full items-center gap-2 rounded-md px-2.5 py-2 text-xs text-foreground transition-colors hover:bg-accent-hover", children: [_jsx(FolderPlusIcon, {}), _jsx("span", { className: "flex-1 text-left", children: "Browse Folder" })] })), enableGitHub && (_jsxs("button", { type: "button", onClick: () => {
28
- /* GitHub picker is handled via the composer's Configure menu.
29
- This button is a placeholder affordance for visual parity. */
30
- }, className: "flex w-full items-center gap-2 rounded-md px-2.5 py-2 text-xs text-foreground transition-colors hover:bg-accent-hover", children: [_jsx(GitHubIcon, {}), _jsx("span", { className: "flex-1 text-left", children: "Connect GitHub" })] }))] })] }));
31
- }
32
- // ---------------------------------------------------------------------------
33
- // Workspace entry list — accordion with file tree expansion
34
- // ---------------------------------------------------------------------------
35
- function WorkspaceEntryList({ entries, onRemove, lister, }) {
36
- const [expandedId, setExpandedId] = useState(null);
37
- const toggleExpand = useCallback((id) => {
38
- setExpandedId((prev) => (prev === id ? null : id));
39
- }, []);
40
- return (_jsx("div", { className: "flex flex-col gap-1.5", children: entries.map((entry) => {
41
- const isExpandable = !!lister;
42
- const isExpanded = expandedId === entry.id;
43
- return (_jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: cn("flex items-center gap-2 rounded-md border border-border bg-muted-faint px-2.5 py-2 text-xs", isExpandable && "cursor-pointer hover:bg-muted transition-colors"), onClick: isExpandable ? () => toggleExpand(entry.id) : undefined, role: isExpandable ? "button" : undefined, "aria-expanded": isExpandable ? isExpanded : undefined, tabIndex: isExpandable ? 0 : undefined, onKeyDown: isExpandable ? (e) => {
44
- if (e.key === "Enter" || e.key === " ") {
45
- e.preventDefault();
46
- toggleExpand(entry.id);
47
- }
48
- } : undefined, children: [isExpandable && (_jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground-subtle", children: isExpanded ? "▼" : "▶" })), entry.type === "git" ? (_jsx(GitHubIcon, {})) : (_jsx(FolderIcon, {})), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block truncate font-medium text-foreground", title: entry.type === "local" ? entry.localPath : entry.gitUrl, children: entry.name }), entry.type === "git" && entry.gitBranch && (_jsx("span", { className: "block truncate text-[0.6rem] text-muted-foreground", children: entry.gitBranch }))] }), _jsx("button", { type: "button", onClick: (e) => {
49
- e.stopPropagation();
50
- onRemove(entry.id);
51
- }, className: "shrink-0 text-muted-foreground hover:text-destructive transition-colors", "aria-label": `Remove ${entry.name}`, children: _jsx(XIcon, {}) })] }), isExpandable && lister && (_jsx(WorkspaceEntryFiles, { entry: entry, lister: lister, isExpanded: isExpanded }))] }, entry.id));
52
- }) }));
53
- }
54
- // ---------------------------------------------------------------------------
55
- // Empty state
56
- // ---------------------------------------------------------------------------
57
- function EmptyState() {
58
- return (_jsxs("div", { className: "flex flex-col items-center justify-center gap-2 py-8 text-center", children: [_jsx(FolderIcon, { className: "h-8 w-8 text-muted-foreground/40" }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-xs font-medium text-foreground", children: "No workspace attached" }), _jsx("p", { className: "text-[0.65rem] text-muted-foreground", children: "Add a folder or GitHub repo for the agent to work with." })] })] }));
59
- }
60
- // ---------------------------------------------------------------------------
61
- // Inline SVG icons (SDK independence — no lucide dependency)
62
- // ---------------------------------------------------------------------------
63
- function XIcon() {
64
- return (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M4 4L10 10M10 4L4 10" }) }));
65
- }
66
- function FolderIcon({ className: cls }) {
67
- return (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: cn("shrink-0 text-muted-foreground", cls), children: _jsx("path", { d: "M1.5 3.5V11a1 1 0 001 1h9a1 1 0 001-1V5.5a1 1 0 00-1-1H7L5.5 3H2.5a1 1 0 00-1 .5z" }) }));
68
- }
69
- function FolderPlusIcon() {
70
- return (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "shrink-0 text-muted-foreground", children: [_jsx("path", { d: "M1.5 3.5V11a1 1 0 001 1h9a1 1 0 001-1V5.5a1 1 0 00-1-1H7L5.5 3H2.5a1 1 0 00-1 .5z" }), _jsx("path", { d: "M7 7v3M5.5 8.5h3" })] }));
71
- }
72
- function GitHubIcon() {
73
- return (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "currentColor", className: "shrink-0 text-muted-foreground", children: _jsx("path", { d: "M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" }) }));
74
- }
75
- //# sourceMappingURL=WorkspaceTab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkspaceTab.js","sourceRoot":"","sources":["../../../src/session/inspector/WorkspaceTab.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjF,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session/inspector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAOjF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,49 +0,0 @@
1
- import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
2
- import type { TabItem } from "../../tabs/Tabs.js";
3
- import type { SelectedThreadItem } from "../../internal/store/selection-store.js";
4
- export type SessionInspectorTabId = "workspace" | "configure" | "changes" | "artifacts" | "usage" | "inspect";
5
- export interface UseSessionInspectorOptions {
6
- readonly phase: ExecutionPhase | null;
7
- readonly hasWriteBacks: boolean;
8
- readonly writeBackCount: number;
9
- readonly hasArtifacts: boolean;
10
- readonly artifactCount: number;
11
- readonly hasUsage: boolean;
12
- readonly selectedItem: SelectedThreadItem | null;
13
- }
14
- export interface UseSessionInspectorReturn {
15
- readonly tabs: readonly TabItem[];
16
- readonly activeTab: SessionInspectorTabId;
17
- readonly onTabChange: (tabId: string) => void;
18
- }
19
- /**
20
- * Build the contextual tab list with badges.
21
- *
22
- * Tab order follows the user's mental model — context before output:
23
- * Workspace → Config → Usage. Changes and Artifacts appear after Config
24
- * when data exists; Inspect appears last when a thread item is selected.
25
- *
26
- * The Changes tab surfaces only when git write-backs (PRs) exist, badged
27
- * with their count. Local-workspace file edits never surface a tab: they
28
- * render in the transcript (stamped edit rows + the per-turn decision bar),
29
- * which is their single review surface.
30
- */
31
- export declare function buildVisibleTabs(opts: {
32
- hasWriteBacks: boolean;
33
- writeBackCount: number;
34
- hasArtifacts: boolean;
35
- artifactCount: number;
36
- hasUsage: boolean;
37
- selectedItem: SelectedThreadItem | null;
38
- }): TabItem[];
39
- /**
40
- * Behavior hook for SessionInspector tab state management.
41
- *
42
- * Uses the "adjust state during render" pattern from the workflow
43
- * `ExecutionInspector`: shadow `prevPhase`/`prevSelected` state,
44
- * `userPickedTabRef` for sticky manual picks, and `deriveAutoTab`
45
- * for system suggestions. Keeps the user's tab pick sticky until
46
- * a meaningful state change resets it.
47
- */
48
- export declare function useSessionInspector(opts: UseSessionInspectorOptions): UseSessionInspectorReturn;
49
- //# sourceMappingURL=useSessionInspector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSessionInspector.d.ts","sourceRoot":"","sources":["../../../src/session/inspector/useSessionInspector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAElF,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAoBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzC,GAAG,OAAO,EAAE,CA6BZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,0BAA0B,GAC/B,yBAAyB,CAkE3B"}
@@ -1,122 +0,0 @@
1
- "use client";
2
- import { useCallback, useRef, useState } from "react";
3
- import { isTerminalPhase } from "../../execution/execution-phases.js";
4
- /**
5
- * Compute the system-suggested tab from selection.
6
- *
7
- * Priority:
8
- * 1. Thread item selected -> "inspect"
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.
14
- */
15
- function deriveAutoTab(selectedItem) {
16
- if (selectedItem)
17
- return "inspect";
18
- return "workspace";
19
- }
20
- /**
21
- * Build the contextual tab list with badges.
22
- *
23
- * Tab order follows the user's mental model — context before output:
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.
31
- */
32
- export function buildVisibleTabs(opts) {
33
- const tabs = [
34
- { id: "workspace", label: "Workspace" },
35
- { id: "configure", label: "Config" },
36
- ];
37
- if (opts.hasWriteBacks) {
38
- tabs.push({
39
- id: "changes",
40
- label: "Changes",
41
- badge: opts.writeBackCount,
42
- });
43
- }
44
- if (opts.hasArtifacts) {
45
- tabs.push({
46
- id: "artifacts",
47
- label: "Artifacts",
48
- badge: opts.artifactCount,
49
- });
50
- }
51
- tabs.push({ id: "usage", label: "Usage" });
52
- if (opts.selectedItem) {
53
- tabs.push({ id: "inspect", label: "Inspect" });
54
- }
55
- return tabs;
56
- }
57
- /**
58
- * Behavior hook for SessionInspector tab state management.
59
- *
60
- * Uses the "adjust state during render" pattern from the workflow
61
- * `ExecutionInspector`: shadow `prevPhase`/`prevSelected` state,
62
- * `userPickedTabRef` for sticky manual picks, and `deriveAutoTab`
63
- * for system suggestions. Keeps the user's tab pick sticky until
64
- * a meaningful state change resets it.
65
- */
66
- export function useSessionInspector(opts) {
67
- const { phase, hasWriteBacks, writeBackCount, hasArtifacts, artifactCount, hasUsage, selectedItem } = opts;
68
- const tabs = buildVisibleTabs({ hasWriteBacks, writeBackCount, hasArtifacts, artifactCount, hasUsage, 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));
73
- const [prevPhase, setPrevPhase] = useState(phase);
74
- const [prevSelected, setPrevSelected] = useState(selectedItem);
75
- const [prevHasChanges, setPrevHasChanges] = useState(hasChanges);
76
- const userPickedTabRef = useRef(false);
77
- // Selection changed → auto-switch to inspect (unless user picked)
78
- if (selectedItem !== prevSelected) {
79
- setPrevSelected(selectedItem);
80
- if (selectedItem && !userPickedTabRef.current) {
81
- setActiveTab("inspect");
82
- }
83
- if (!selectedItem && activeTab === "inspect") {
84
- setActiveTab(deriveAutoTab(null));
85
- userPickedTabRef.current = false;
86
- }
87
- }
88
- // Phase changed → reset user pick if transitioning from non-terminal to terminal or vice versa
89
- if (phase !== prevPhase) {
90
- const wasTerminal = prevPhase !== null && isTerminalPhase(prevPhase);
91
- const isNowTerminal = phase !== null && isTerminalPhase(phase);
92
- setPrevPhase(phase);
93
- if (wasTerminal !== isNowTerminal) {
94
- userPickedTabRef.current = false;
95
- setActiveTab(deriveAutoTab(selectedItem));
96
- }
97
- }
98
- // First write-back arrived → auto-switch to changes
99
- if (hasChanges && !prevHasChanges) {
100
- setPrevHasChanges(hasChanges);
101
- if (!userPickedTabRef.current) {
102
- setActiveTab("changes");
103
- }
104
- }
105
- if (hasChanges !== prevHasChanges) {
106
- setPrevHasChanges(hasChanges);
107
- }
108
- // Ensure active tab is valid (the selected tab may have been removed)
109
- const effectiveTab = tabs.some((t) => t.id === activeTab)
110
- ? activeTab
111
- : deriveAutoTab(selectedItem);
112
- const onTabChange = useCallback((tabId) => {
113
- userPickedTabRef.current = true;
114
- setActiveTab(tabId);
115
- }, []);
116
- return {
117
- tabs,
118
- activeTab: effectiveTab,
119
- onTabChange,
120
- };
121
- }
122
- //# sourceMappingURL=useSessionInspector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSessionInspector.js","sourceRoot":"","sources":["../../../src/session/inspector/useSessionInspector.ts"],"names":[],"mappings":"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"}
@@ -1,162 +0,0 @@
1
- "use client";
2
-
3
- import { memo } from "react";
4
- import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
5
- import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
6
- import { cn } from "@stigmer/theme";
7
- import { Tabs } from "../../tabs/Tabs.js";
8
- import { ExecutionPhaseBadge } from "../../execution/ExecutionPhaseBadge.js";
9
- import { useSessionArtifacts } from "../useSessionArtifacts.js";
10
- import { useSessionWriteBacks } from "../useSessionWriteBacks.js";
11
- import { useSessionUsage } from "../useSessionUsage.js";
12
- import { useSessionInspector } from "./useSessionInspector.js";
13
- import { ChangesTab } from "./ChangesTab.js";
14
- import { ArtifactsTab } from "./ArtifactsTab.js";
15
- import { UsageTab } from "./UsageTab.js";
16
- import { InspectTab } from "./InspectTab.js";
17
- import { SetupTab, type SetupTabProps } from "./SetupTab.js";
18
- import { WorkspaceTab, type WorkspaceTabProps } from "./WorkspaceTab.js";
19
- import type { SelectedThreadItem } from "../../internal/store/selection-store.js";
20
- import type { ApplyResourceResult } from "../../library/useApplyResource.js";
21
-
22
- /** Props for {@link SessionInspector}. */
23
- export interface SessionInspectorProps {
24
- /**
25
- * The most relevant execution — the active streaming execution,
26
- * or the last completed one. Drives the run-status header (phase badge).
27
- */
28
- readonly displayExecution: AgentExecution | null;
29
- /**
30
- * All executions in the session (completed + active stream).
31
- * Drives aggregation hooks for Changes, Artifacts, and Usage.
32
- */
33
- readonly allExecutions: readonly AgentExecution[];
34
- /** Organization slug for artifact Apply CTA. */
35
- readonly org: string;
36
- /** Currently selected thread item, or null. */
37
- readonly selectedItem: SelectedThreadItem | null;
38
- /** Called after a resource is applied from the Artifacts tab. */
39
- readonly onApplied?: (result: ApplyResourceResult) => void;
40
- /**
41
- * Implement a plan from the Artifacts tab. When provided, plan
42
- * artifacts (`plan.md`) surface an Implement action in their preview.
43
- */
44
- readonly onImplementPlan?: () => void;
45
- /**
46
- * Session-level configuration for the Configure tab.
47
- * Includes core config fields and optional interactive
48
- * mutation callbacks. When mutation callbacks are absent,
49
- * sections render read-only (DD-011 backward compatibility).
50
- */
51
- readonly sessionConfig?: SetupTabProps;
52
- /**
53
- * Workspace tab configuration. When provided, the Workspace tab
54
- * renders interactive workspace actions (add/remove entries, file
55
- * tree browsing). When absent, the tab shows an empty state.
56
- */
57
- readonly workspaceConfig?: WorkspaceTabProps;
58
- /** Additional CSS classes. */
59
- readonly className?: string;
60
- }
61
-
62
- /**
63
- * Tabbed right-side inspector panel for agent sessions.
64
- *
65
- * Displays an always-visible run-status header (phase badge) above
66
- * contextual tabs: Workspace, Config, Changes, Artifacts, Usage, and
67
- * Inspect (when a thread item is selected). The agent's plan/todos render
68
- * inline in the message thread (see {@link TodoCard}), not as a tab here.
69
- *
70
- * Mirrors the `ExecutionInspector` architecture from the workflow
71
- * view — same `Tabs` primitive, same tab-FSM behavior hook, same
72
- * contextual visibility pattern.
73
- *
74
- * `React.memo`'d to prevent re-renders from parent layout changes
75
- * that don't affect inspector data.
76
- *
77
- * All visual properties flow through `--stgm-*` tokens. Zero
78
- * Console/Next/Tauri dependencies (DD-004).
79
- */
80
- export const SessionInspector = memo(function SessionInspector({
81
- displayExecution,
82
- allExecutions,
83
- org,
84
- selectedItem,
85
- onApplied,
86
- onImplementPlan,
87
- sessionConfig,
88
- workspaceConfig,
89
- className,
90
- }: SessionInspectorProps) {
91
- const phase =
92
- displayExecution?.status?.phase ??
93
- ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
94
-
95
- const { hasWriteBacks, writeBackCount } = useSessionWriteBacks(allExecutions);
96
- const { hasArtifacts, artifactCount } = useSessionArtifacts(allExecutions);
97
- const { hasUsage } = useSessionUsage(allExecutions);
98
-
99
- const { tabs, activeTab, onTabChange } = useSessionInspector({
100
- phase: phase === ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED ? null : phase,
101
- hasWriteBacks,
102
- writeBackCount,
103
- hasArtifacts,
104
- artifactCount,
105
- hasUsage,
106
- selectedItem,
107
- });
108
-
109
- return (
110
- <div className={cn("flex h-full flex-col", className)}>
111
- {/* Always-visible run-status header. Labeled as a region so the phase
112
- badge is reachable as "Execution progress" by assistive tech and
113
- E2E selectors, independent of which tab is active. */}
114
- <div
115
- role="region"
116
- aria-label="Execution progress"
117
- className="flex items-center gap-2 border-b border-border px-3 py-2.5"
118
- >
119
- {phase !== ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED ? (
120
- <ExecutionPhaseBadge phase={phase} />
121
- ) : (
122
- <span className="text-xs text-muted-foreground">No execution</span>
123
- )}
124
- </div>
125
-
126
- {/* Tabs + content */}
127
- <Tabs
128
- tabs={tabs}
129
- activeTab={activeTab}
130
- onTabChange={onTabChange}
131
- aria-label="Session details"
132
- className="min-h-0 flex-1"
133
- >
134
- <div className="h-full min-h-0 overflow-y-auto px-3 py-3">
135
- {activeTab === "workspace" && workspaceConfig && (
136
- <WorkspaceTab {...workspaceConfig} />
137
- )}
138
- {activeTab === "configure" && sessionConfig && (
139
- <SetupTab {...sessionConfig} />
140
- )}
141
- {activeTab === "changes" && (
142
- <ChangesTab executions={allExecutions} />
143
- )}
144
- {activeTab === "artifacts" && (
145
- <ArtifactsTab
146
- executions={allExecutions}
147
- org={org}
148
- onApplied={onApplied}
149
- onImplementPlan={onImplementPlan}
150
- />
151
- )}
152
- {activeTab === "usage" && (
153
- <UsageTab executions={allExecutions} />
154
- )}
155
- {activeTab === "inspect" && (
156
- <InspectTab selectedItem={selectedItem} />
157
- )}
158
- </div>
159
- </Tabs>
160
- </div>
161
- );
162
- });