@a5c-ai/genty-ui 5.1.1-staging.00ceebd28cf2

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 (514) hide show
  1. package/README.md +94 -0
  2. package/dist/client/GatewayClient.d.ts +72 -0
  3. package/dist/client/GatewayClient.d.ts.map +1 -0
  4. package/dist/client/GatewayClient.js +239 -0
  5. package/dist/client/GatewayClient.js.map +1 -0
  6. package/dist/client/backoff.d.ts +6 -0
  7. package/dist/client/backoff.d.ts.map +1 -0
  8. package/dist/client/backoff.js +9 -0
  9. package/dist/client/backoff.js.map +1 -0
  10. package/dist/client/errors.d.ts +9 -0
  11. package/dist/client/errors.d.ts.map +1 -0
  12. package/dist/client/errors.js +19 -0
  13. package/dist/client/errors.js.map +1 -0
  14. package/dist/client/transports/ws-browser.d.ts +12 -0
  15. package/dist/client/transports/ws-browser.d.ts.map +1 -0
  16. package/dist/client/transports/ws-browser.js +24 -0
  17. package/dist/client/transports/ws-browser.js.map +1 -0
  18. package/dist/client/transports/ws-node.d.ts +2 -0
  19. package/dist/client/transports/ws-node.d.ts.map +1 -0
  20. package/dist/client/transports/ws-node.js +25 -0
  21. package/dist/client/transports/ws-node.js.map +1 -0
  22. package/dist/client/transports/ws-react-native.d.ts +2 -0
  23. package/dist/client/transports/ws-react-native.d.ts.map +1 -0
  24. package/dist/client/transports/ws-react-native.js +24 -0
  25. package/dist/client/transports/ws-react-native.js.map +1 -0
  26. package/dist/codegen/kotlin-types.d.ts +1 -0
  27. package/dist/codegen/kotlin-types.d.ts.map +1 -0
  28. package/dist/codegen/kotlin-types.js +236 -0
  29. package/dist/codegen/kotlin-types.js.map +1 -0
  30. package/dist/codegen/swift-types.d.ts +1 -0
  31. package/dist/codegen/swift-types.d.ts.map +1 -0
  32. package/dist/codegen/swift-types.js +298 -0
  33. package/dist/codegen/swift-types.js.map +1 -0
  34. package/dist/components/Agent/AgentAppearanceEditor.d.ts +23 -0
  35. package/dist/components/Agent/AgentAppearanceEditor.d.ts.map +1 -0
  36. package/dist/components/Agent/AgentAppearanceEditor.js +10 -0
  37. package/dist/components/Agent/AgentAppearanceEditor.js.map +1 -0
  38. package/dist/components/Agent/AgentCreateWizard.d.ts +26 -0
  39. package/dist/components/Agent/AgentCreateWizard.d.ts.map +1 -0
  40. package/dist/components/Agent/AgentCreateWizard.js +136 -0
  41. package/dist/components/Agent/AgentCreateWizard.js.map +1 -0
  42. package/dist/components/Agent/AgentDirectory.d.ts +8 -0
  43. package/dist/components/Agent/AgentDirectory.d.ts.map +1 -0
  44. package/dist/components/Agent/AgentDirectory.js +19 -0
  45. package/dist/components/Agent/AgentDirectory.js.map +1 -0
  46. package/dist/components/Agent/AgentPersonaEditor.d.ts +23 -0
  47. package/dist/components/Agent/AgentPersonaEditor.d.ts.map +1 -0
  48. package/dist/components/Agent/AgentPersonaEditor.js +29 -0
  49. package/dist/components/Agent/AgentPersonaEditor.js.map +1 -0
  50. package/dist/components/Agent/AgentProfileCard.d.ts +39 -0
  51. package/dist/components/Agent/AgentProfileCard.d.ts.map +1 -0
  52. package/dist/components/Agent/AgentProfileCard.js +27 -0
  53. package/dist/components/Agent/AgentProfileCard.js.map +1 -0
  54. package/dist/components/Agent/AgentProfilePage.d.ts +68 -0
  55. package/dist/components/Agent/AgentProfilePage.d.ts.map +1 -0
  56. package/dist/components/Agent/AgentProfilePage.js +31 -0
  57. package/dist/components/Agent/AgentProfilePage.js.map +1 -0
  58. package/dist/components/Agent/AgentSoulEditor.d.ts +5 -0
  59. package/dist/components/Agent/AgentSoulEditor.d.ts.map +1 -0
  60. package/dist/components/Agent/AgentSoulEditor.js +5 -0
  61. package/dist/components/Agent/AgentSoulEditor.js.map +1 -0
  62. package/dist/components/Agent/AgentVoiceEditor.d.ts +17 -0
  63. package/dist/components/Agent/AgentVoiceEditor.d.ts.map +1 -0
  64. package/dist/components/Agent/AgentVoiceEditor.js +29 -0
  65. package/dist/components/Agent/AgentVoiceEditor.js.map +1 -0
  66. package/dist/components/Agent/ApprovalActions.d.ts +5 -0
  67. package/dist/components/Agent/ApprovalActions.d.ts.map +1 -0
  68. package/dist/components/Agent/ApprovalActions.js +55 -0
  69. package/dist/components/Agent/ApprovalActions.js.map +1 -0
  70. package/dist/components/Agent/DispatchButton.d.ts +37 -0
  71. package/dist/components/Agent/DispatchButton.d.ts.map +1 -0
  72. package/dist/components/Agent/DispatchButton.js +111 -0
  73. package/dist/components/Agent/DispatchButton.js.map +1 -0
  74. package/dist/components/Agent/index.d.ts +20 -0
  75. package/dist/components/Agent/index.d.ts.map +1 -0
  76. package/dist/components/Agent/index.js +11 -0
  77. package/dist/components/Agent/index.js.map +1 -0
  78. package/dist/components/AgentPicker.d.ts +5 -0
  79. package/dist/components/AgentPicker.d.ts.map +1 -0
  80. package/dist/components/AgentPicker.js +7 -0
  81. package/dist/components/AgentPicker.js.map +1 -0
  82. package/dist/components/Chat/ChatMessages.d.ts +32 -0
  83. package/dist/components/Chat/ChatMessages.d.ts.map +1 -0
  84. package/dist/components/Chat/ChatMessages.js +146 -0
  85. package/dist/components/Chat/ChatMessages.js.map +1 -0
  86. package/dist/components/Chat/chatStyles.d.ts +41 -0
  87. package/dist/components/Chat/chatStyles.d.ts.map +1 -0
  88. package/dist/components/Chat/chatStyles.js +181 -0
  89. package/dist/components/Chat/chatStyles.js.map +1 -0
  90. package/dist/components/Chat/index.d.ts +2 -0
  91. package/dist/components/Chat/index.d.ts.map +1 -0
  92. package/dist/components/Chat/index.js +3 -0
  93. package/dist/components/Chat/index.js.map +1 -0
  94. package/dist/components/ConnectionBanner.d.ts +4 -0
  95. package/dist/components/ConnectionBanner.d.ts.map +1 -0
  96. package/dist/components/ConnectionBanner.js +9 -0
  97. package/dist/components/ConnectionBanner.js.map +1 -0
  98. package/dist/components/CostMeter.d.ts +3 -0
  99. package/dist/components/CostMeter.d.ts.map +1 -0
  100. package/dist/components/CostMeter.js +7 -0
  101. package/dist/components/CostMeter.js.map +1 -0
  102. package/dist/components/EventList.d.ts +9 -0
  103. package/dist/components/EventList.d.ts.map +1 -0
  104. package/dist/components/EventList.js +21 -0
  105. package/dist/components/EventList.js.map +1 -0
  106. package/dist/components/HookApprovalPrompt.d.ts +10 -0
  107. package/dist/components/HookApprovalPrompt.d.ts.map +1 -0
  108. package/dist/components/HookApprovalPrompt.js +20 -0
  109. package/dist/components/HookApprovalPrompt.js.map +1 -0
  110. package/dist/components/InputBar.d.ts +5 -0
  111. package/dist/components/InputBar.d.ts.map +1 -0
  112. package/dist/components/InputBar.js +9 -0
  113. package/dist/components/InputBar.js.map +1 -0
  114. package/dist/components/Kanban/KanbanBoard.d.ts +14 -0
  115. package/dist/components/Kanban/KanbanBoard.d.ts.map +1 -0
  116. package/dist/components/Kanban/KanbanBoard.js +183 -0
  117. package/dist/components/Kanban/KanbanBoard.js.map +1 -0
  118. package/dist/components/Kanban/KanbanCard.d.ts +13 -0
  119. package/dist/components/Kanban/KanbanCard.d.ts.map +1 -0
  120. package/dist/components/Kanban/KanbanCard.js +75 -0
  121. package/dist/components/Kanban/KanbanCard.js.map +1 -0
  122. package/dist/components/Kanban/KanbanColumn.d.ts +25 -0
  123. package/dist/components/Kanban/KanbanColumn.d.ts.map +1 -0
  124. package/dist/components/Kanban/KanbanColumn.js +130 -0
  125. package/dist/components/Kanban/KanbanColumn.js.map +1 -0
  126. package/dist/components/Kanban/KanbanFilters.d.ts +16 -0
  127. package/dist/components/Kanban/KanbanFilters.d.ts.map +1 -0
  128. package/dist/components/Kanban/KanbanFilters.js +45 -0
  129. package/dist/components/Kanban/KanbanFilters.js.map +1 -0
  130. package/dist/components/Kanban/index.d.ts +5 -0
  131. package/dist/components/Kanban/index.d.ts.map +1 -0
  132. package/dist/components/Kanban/index.js +6 -0
  133. package/dist/components/Kanban/index.js.map +1 -0
  134. package/dist/components/Kanban/kanbanHelpers.d.ts +76 -0
  135. package/dist/components/Kanban/kanbanHelpers.d.ts.map +1 -0
  136. package/dist/components/Kanban/kanbanHelpers.js +160 -0
  137. package/dist/components/Kanban/kanbanHelpers.js.map +1 -0
  138. package/dist/components/Memory/MemoryOntologyEditor.d.ts +27 -0
  139. package/dist/components/Memory/MemoryOntologyEditor.d.ts.map +1 -0
  140. package/dist/components/Memory/MemoryOntologyEditor.js +225 -0
  141. package/dist/components/Memory/MemoryOntologyEditor.js.map +1 -0
  142. package/dist/components/Memory/MemorySearchForm.d.ts +46 -0
  143. package/dist/components/Memory/MemorySearchForm.d.ts.map +1 -0
  144. package/dist/components/Memory/MemorySearchForm.js +194 -0
  145. package/dist/components/Memory/MemorySearchForm.js.map +1 -0
  146. package/dist/components/Memory/index.d.ts +4 -0
  147. package/dist/components/Memory/index.d.ts.map +1 -0
  148. package/dist/components/Memory/index.js +3 -0
  149. package/dist/components/Memory/index.js.map +1 -0
  150. package/dist/components/ModelPicker.d.ts +5 -0
  151. package/dist/components/ModelPicker.d.ts.map +1 -0
  152. package/dist/components/ModelPicker.js +7 -0
  153. package/dist/components/ModelPicker.js.map +1 -0
  154. package/dist/components/Observability/ActivityFeed.d.ts +13 -0
  155. package/dist/components/Observability/ActivityFeed.d.ts.map +1 -0
  156. package/dist/components/Observability/ActivityFeed.js +155 -0
  157. package/dist/components/Observability/ActivityFeed.js.map +1 -0
  158. package/dist/components/Observability/ToolInspector.d.ts +22 -0
  159. package/dist/components/Observability/ToolInspector.d.ts.map +1 -0
  160. package/dist/components/Observability/ToolInspector.js +166 -0
  161. package/dist/components/Observability/ToolInspector.js.map +1 -0
  162. package/dist/components/Observability/index.d.ts +4 -0
  163. package/dist/components/Observability/index.d.ts.map +1 -0
  164. package/dist/components/Observability/index.js +3 -0
  165. package/dist/components/Observability/index.js.map +1 -0
  166. package/dist/components/Rendering/EffectTreeView.d.ts +20 -0
  167. package/dist/components/Rendering/EffectTreeView.d.ts.map +1 -0
  168. package/dist/components/Rendering/EffectTreeView.js +123 -0
  169. package/dist/components/Rendering/EffectTreeView.js.map +1 -0
  170. package/dist/components/Rendering/MessageTypeRenderer.d.ts +4 -0
  171. package/dist/components/Rendering/MessageTypeRenderer.d.ts.map +1 -0
  172. package/dist/components/Rendering/MessageTypeRenderer.js +108 -0
  173. package/dist/components/Rendering/MessageTypeRenderer.js.map +1 -0
  174. package/dist/components/Rendering/ProgressStatusLine.d.ts +9 -0
  175. package/dist/components/Rendering/ProgressStatusLine.d.ts.map +1 -0
  176. package/dist/components/Rendering/ProgressStatusLine.js +57 -0
  177. package/dist/components/Rendering/ProgressStatusLine.js.map +1 -0
  178. package/dist/components/Rendering/StreamingOutputPanel.d.ts +20 -0
  179. package/dist/components/Rendering/StreamingOutputPanel.d.ts.map +1 -0
  180. package/dist/components/Rendering/StreamingOutputPanel.js +75 -0
  181. package/dist/components/Rendering/StreamingOutputPanel.js.map +1 -0
  182. package/dist/components/Rendering/StructuredDiffView.d.ts +13 -0
  183. package/dist/components/Rendering/StructuredDiffView.d.ts.map +1 -0
  184. package/dist/components/Rendering/StructuredDiffView.js +106 -0
  185. package/dist/components/Rendering/StructuredDiffView.js.map +1 -0
  186. package/dist/components/Rendering/SubagentDrillDown.d.ts +46 -0
  187. package/dist/components/Rendering/SubagentDrillDown.d.ts.map +1 -0
  188. package/dist/components/Rendering/SubagentDrillDown.js +101 -0
  189. package/dist/components/Rendering/SubagentDrillDown.js.map +1 -0
  190. package/dist/components/Rendering/index.d.ts +12 -0
  191. package/dist/components/Rendering/index.d.ts.map +1 -0
  192. package/dist/components/Rendering/index.js +10 -0
  193. package/dist/components/Rendering/index.js.map +1 -0
  194. package/dist/components/RunStatusBadge.d.ts +3 -0
  195. package/dist/components/RunStatusBadge.d.ts.map +1 -0
  196. package/dist/components/RunStatusBadge.js +7 -0
  197. package/dist/components/RunStatusBadge.js.map +1 -0
  198. package/dist/components/Session/SessionCost.d.ts +22 -0
  199. package/dist/components/Session/SessionCost.d.ts.map +1 -0
  200. package/dist/components/Session/SessionCost.js +168 -0
  201. package/dist/components/Session/SessionCost.js.map +1 -0
  202. package/dist/components/Session/SessionShell.d.ts +63 -0
  203. package/dist/components/Session/SessionShell.d.ts.map +1 -0
  204. package/dist/components/Session/SessionShell.js +150 -0
  205. package/dist/components/Session/SessionShell.js.map +1 -0
  206. package/dist/components/Session/SessionTabs.d.ts +6 -0
  207. package/dist/components/Session/SessionTabs.d.ts.map +1 -0
  208. package/dist/components/Session/SessionTabs.js +7 -0
  209. package/dist/components/Session/SessionTabs.js.map +1 -0
  210. package/dist/components/Session/index.d.ts +7 -0
  211. package/dist/components/Session/index.d.ts.map +1 -0
  212. package/dist/components/Session/index.js +5 -0
  213. package/dist/components/Session/index.js.map +1 -0
  214. package/dist/components/Session/sessionUtils.d.ts +31 -0
  215. package/dist/components/Session/sessionUtils.d.ts.map +1 -0
  216. package/dist/components/Session/sessionUtils.js +90 -0
  217. package/dist/components/Session/sessionUtils.js.map +1 -0
  218. package/dist/components/SessionListItem.d.ts +5 -0
  219. package/dist/components/SessionListItem.d.ts.map +1 -0
  220. package/dist/components/SessionListItem.js +8 -0
  221. package/dist/components/SessionListItem.js.map +1 -0
  222. package/dist/components/Workspace/WorkspaceAssociations.d.ts +10 -0
  223. package/dist/components/Workspace/WorkspaceAssociations.d.ts.map +1 -0
  224. package/dist/components/Workspace/WorkspaceAssociations.js +72 -0
  225. package/dist/components/Workspace/WorkspaceAssociations.js.map +1 -0
  226. package/dist/components/Workspace/WorkspaceCodespace.d.ts +18 -0
  227. package/dist/components/Workspace/WorkspaceCodespace.d.ts.map +1 -0
  228. package/dist/components/Workspace/WorkspaceCodespace.js +91 -0
  229. package/dist/components/Workspace/WorkspaceCodespace.js.map +1 -0
  230. package/dist/components/Workspace/WorkspacePanel.d.ts +89 -0
  231. package/dist/components/Workspace/WorkspacePanel.d.ts.map +1 -0
  232. package/dist/components/Workspace/WorkspacePanel.js +451 -0
  233. package/dist/components/Workspace/WorkspacePanel.js.map +1 -0
  234. package/dist/components/Workspace/index.d.ts +6 -0
  235. package/dist/components/Workspace/index.d.ts.map +1 -0
  236. package/dist/components/Workspace/index.js +4 -0
  237. package/dist/components/Workspace/index.js.map +1 -0
  238. package/dist/components/event-cards/TextDeltaBubble.d.ts +3 -0
  239. package/dist/components/event-cards/TextDeltaBubble.d.ts.map +1 -0
  240. package/dist/components/event-cards/TextDeltaBubble.js +7 -0
  241. package/dist/components/event-cards/TextDeltaBubble.js.map +1 -0
  242. package/dist/components/event-cards/ThinkingBubble.d.ts +3 -0
  243. package/dist/components/event-cards/ThinkingBubble.d.ts.map +1 -0
  244. package/dist/components/event-cards/ThinkingBubble.js +7 -0
  245. package/dist/components/event-cards/ThinkingBubble.js.map +1 -0
  246. package/dist/components/event-cards/ToolCallCard.d.ts +7 -0
  247. package/dist/components/event-cards/ToolCallCard.d.ts.map +1 -0
  248. package/dist/components/event-cards/ToolCallCard.js +27 -0
  249. package/dist/components/event-cards/ToolCallCard.js.map +1 -0
  250. package/dist/components/event-cards/ToolResultCard.d.ts +7 -0
  251. package/dist/components/event-cards/ToolResultCard.d.ts.map +1 -0
  252. package/dist/components/event-cards/ToolResultCard.js +20 -0
  253. package/dist/components/event-cards/ToolResultCard.js.map +1 -0
  254. package/dist/components/event-cards/builtins.d.ts +1 -0
  255. package/dist/components/event-cards/builtins.d.ts.map +1 -0
  256. package/dist/components/event-cards/builtins.js +31 -0
  257. package/dist/components/event-cards/builtins.js.map +1 -0
  258. package/dist/components/event-cards/index.d.ts +6 -0
  259. package/dist/components/event-cards/index.d.ts.map +1 -0
  260. package/dist/components/event-cards/index.js +6 -0
  261. package/dist/components/event-cards/index.js.map +1 -0
  262. package/dist/components/event-cards/registry.d.ts +24 -0
  263. package/dist/components/event-cards/registry.d.ts.map +1 -0
  264. package/dist/components/event-cards/registry.js +24 -0
  265. package/dist/components/event-cards/registry.js.map +1 -0
  266. package/dist/components/event-cards/renderers/bash.d.ts +2 -0
  267. package/dist/components/event-cards/renderers/bash.d.ts.map +1 -0
  268. package/dist/components/event-cards/renderers/bash.js +8 -0
  269. package/dist/components/event-cards/renderers/bash.js.map +1 -0
  270. package/dist/components/event-cards/renderers/edit.d.ts +2 -0
  271. package/dist/components/event-cards/renderers/edit.d.ts.map +1 -0
  272. package/dist/components/event-cards/renderers/edit.js +8 -0
  273. package/dist/components/event-cards/renderers/edit.js.map +1 -0
  274. package/dist/components/event-cards/renderers/generic.d.ts +2 -0
  275. package/dist/components/event-cards/renderers/generic.d.ts.map +1 -0
  276. package/dist/components/event-cards/renderers/generic.js +33 -0
  277. package/dist/components/event-cards/renderers/generic.js.map +1 -0
  278. package/dist/components/event-cards/renderers/glob.d.ts +2 -0
  279. package/dist/components/event-cards/renderers/glob.d.ts.map +1 -0
  280. package/dist/components/event-cards/renderers/glob.js +8 -0
  281. package/dist/components/event-cards/renderers/glob.js.map +1 -0
  282. package/dist/components/event-cards/renderers/grep.d.ts +2 -0
  283. package/dist/components/event-cards/renderers/grep.d.ts.map +1 -0
  284. package/dist/components/event-cards/renderers/grep.js +8 -0
  285. package/dist/components/event-cards/renderers/grep.js.map +1 -0
  286. package/dist/components/event-cards/renderers/read.d.ts +2 -0
  287. package/dist/components/event-cards/renderers/read.d.ts.map +1 -0
  288. package/dist/components/event-cards/renderers/read.js +8 -0
  289. package/dist/components/event-cards/renderers/read.js.map +1 -0
  290. package/dist/components/event-cards/renderers/web-fetch.d.ts +2 -0
  291. package/dist/components/event-cards/renderers/web-fetch.d.ts.map +1 -0
  292. package/dist/components/event-cards/renderers/web-fetch.js +8 -0
  293. package/dist/components/event-cards/renderers/web-fetch.js.map +1 -0
  294. package/dist/components/event-cards/renderers/web-search.d.ts +2 -0
  295. package/dist/components/event-cards/renderers/web-search.d.ts.map +1 -0
  296. package/dist/components/event-cards/renderers/web-search.js +8 -0
  297. package/dist/components/event-cards/renderers/web-search.js.map +1 -0
  298. package/dist/components/event-cards/renderers/write.d.ts +2 -0
  299. package/dist/components/event-cards/renderers/write.d.ts.map +1 -0
  300. package/dist/components/event-cards/renderers/write.js +8 -0
  301. package/dist/components/event-cards/renderers/write.js.map +1 -0
  302. package/dist/components/primitives/Button.d.ts +5 -0
  303. package/dist/components/primitives/Button.d.ts.map +1 -0
  304. package/dist/components/primitives/Button.js +19 -0
  305. package/dist/components/primitives/Button.js.map +1 -0
  306. package/dist/components/primitives/Card.d.ts +2 -0
  307. package/dist/components/primitives/Card.d.ts.map +1 -0
  308. package/dist/components/primitives/Card.js +22 -0
  309. package/dist/components/primitives/Card.js.map +1 -0
  310. package/dist/components/primitives/CommandPalette.d.ts +21 -0
  311. package/dist/components/primitives/CommandPalette.d.ts.map +1 -0
  312. package/dist/components/primitives/CommandPalette.js +229 -0
  313. package/dist/components/primitives/CommandPalette.js.map +1 -0
  314. package/dist/components/primitives/ConfirmDialog.d.ts +19 -0
  315. package/dist/components/primitives/ConfirmDialog.d.ts.map +1 -0
  316. package/dist/components/primitives/ConfirmDialog.js +78 -0
  317. package/dist/components/primitives/ConfirmDialog.js.map +1 -0
  318. package/dist/components/primitives/NotificationBell.d.ts +5 -0
  319. package/dist/components/primitives/NotificationBell.d.ts.map +1 -0
  320. package/dist/components/primitives/NotificationBell.js +202 -0
  321. package/dist/components/primitives/NotificationBell.js.map +1 -0
  322. package/dist/components/primitives/Pagination.d.ts +14 -0
  323. package/dist/components/primitives/Pagination.d.ts.map +1 -0
  324. package/dist/components/primitives/Pagination.js +46 -0
  325. package/dist/components/primitives/Pagination.js.map +1 -0
  326. package/dist/components/primitives/ScrollContainer.d.ts +2 -0
  327. package/dist/components/primitives/ScrollContainer.d.ts.map +1 -0
  328. package/dist/components/primitives/ScrollContainer.js +17 -0
  329. package/dist/components/primitives/ScrollContainer.js.map +1 -0
  330. package/dist/components/primitives/Text.d.ts +2 -0
  331. package/dist/components/primitives/Text.d.ts.map +1 -0
  332. package/dist/components/primitives/Text.js +14 -0
  333. package/dist/components/primitives/Text.js.map +1 -0
  334. package/dist/components/primitives/index.d.ts +13 -0
  335. package/dist/components/primitives/index.d.ts.map +1 -0
  336. package/dist/components/primitives/index.js +9 -0
  337. package/dist/components/primitives/index.js.map +1 -0
  338. package/dist/components/primitives/theme.d.ts +8 -0
  339. package/dist/components/primitives/theme.d.ts.map +1 -0
  340. package/dist/components/primitives/theme.js +10 -0
  341. package/dist/components/primitives/theme.js.map +1 -0
  342. package/dist/components/session-flow/SessionFlowView.d.ts +9 -0
  343. package/dist/components/session-flow/SessionFlowView.d.ts.map +1 -0
  344. package/dist/components/session-flow/SessionFlowView.js +228 -0
  345. package/dist/components/session-flow/SessionFlowView.js.map +1 -0
  346. package/dist/gateway.d.ts +8 -0
  347. package/dist/gateway.d.ts.map +1 -0
  348. package/dist/gateway.js +8 -0
  349. package/dist/gateway.js.map +1 -0
  350. package/dist/hooks/GatewayProvider.d.ts +10 -0
  351. package/dist/hooks/GatewayProvider.d.ts.map +1 -0
  352. package/dist/hooks/GatewayProvider.js +84 -0
  353. package/dist/hooks/GatewayProvider.js.map +1 -0
  354. package/dist/hooks/useAgents.d.ts +1 -0
  355. package/dist/hooks/useAgents.d.ts.map +1 -0
  356. package/dist/hooks/useAgents.js +7 -0
  357. package/dist/hooks/useAgents.js.map +1 -0
  358. package/dist/hooks/useConnection.d.ts +1 -0
  359. package/dist/hooks/useConnection.d.ts.map +1 -0
  360. package/dist/hooks/useConnection.js +7 -0
  361. package/dist/hooks/useConnection.js.map +1 -0
  362. package/dist/hooks/useCostTotals.d.ts +3 -0
  363. package/dist/hooks/useCostTotals.d.ts.map +1 -0
  364. package/dist/hooks/useCostTotals.js +8 -0
  365. package/dist/hooks/useCostTotals.js.map +1 -0
  366. package/dist/hooks/useGateway.d.ts +4 -0
  367. package/dist/hooks/useGateway.d.ts.map +1 -0
  368. package/dist/hooks/useGateway.js +11 -0
  369. package/dist/hooks/useGateway.js.map +1 -0
  370. package/dist/hooks/useHookRequests.d.ts +1 -0
  371. package/dist/hooks/useHookRequests.d.ts.map +1 -0
  372. package/dist/hooks/useHookRequests.js +9 -0
  373. package/dist/hooks/useHookRequests.js.map +1 -0
  374. package/dist/hooks/useRun.d.ts +1 -0
  375. package/dist/hooks/useRun.d.ts.map +1 -0
  376. package/dist/hooks/useRun.js +7 -0
  377. package/dist/hooks/useRun.js.map +1 -0
  378. package/dist/hooks/useRunEvents.d.ts +8 -0
  379. package/dist/hooks/useRunEvents.d.ts.map +1 -0
  380. package/dist/hooks/useRunEvents.js +8 -0
  381. package/dist/hooks/useRunEvents.js.map +1 -0
  382. package/dist/hooks/useSendSessionMessage.d.ts +6 -0
  383. package/dist/hooks/useSendSessionMessage.d.ts.map +1 -0
  384. package/dist/hooks/useSendSessionMessage.js +19 -0
  385. package/dist/hooks/useSendSessionMessage.js.map +1 -0
  386. package/dist/hooks/useSession.d.ts +1 -0
  387. package/dist/hooks/useSession.d.ts.map +1 -0
  388. package/dist/hooks/useSession.js +7 -0
  389. package/dist/hooks/useSession.js.map +1 -0
  390. package/dist/hooks/useSessions.d.ts +1 -0
  391. package/dist/hooks/useSessions.d.ts.map +1 -0
  392. package/dist/hooks/useSessions.js +8 -0
  393. package/dist/hooks/useSessions.js.map +1 -0
  394. package/dist/hooks/useStartSession.d.ts +10 -0
  395. package/dist/hooks/useStartSession.d.ts.map +1 -0
  396. package/dist/hooks/useStartSession.js +29 -0
  397. package/dist/hooks/useStartSession.js.map +1 -0
  398. package/dist/hooks/useStopRun.d.ts +1 -0
  399. package/dist/hooks/useStopRun.d.ts.map +1 -0
  400. package/dist/hooks/useStopRun.js +11 -0
  401. package/dist/hooks/useStopRun.js.map +1 -0
  402. package/dist/index.d.ts +49 -0
  403. package/dist/index.d.ts.map +1 -0
  404. package/dist/index.js +46 -0
  405. package/dist/index.js.map +1 -0
  406. package/dist/protocol/v1.d.ts +111 -0
  407. package/dist/protocol/v1.d.ts.map +1 -0
  408. package/dist/protocol/v1.js +2 -0
  409. package/dist/protocol/v1.js.map +1 -0
  410. package/dist/screens/AgentsScreen.d.ts +4 -0
  411. package/dist/screens/AgentsScreen.d.ts.map +1 -0
  412. package/dist/screens/AgentsScreen.js +9 -0
  413. package/dist/screens/AgentsScreen.js.map +1 -0
  414. package/dist/screens/HookInboxScreen.d.ts +1 -0
  415. package/dist/screens/HookInboxScreen.d.ts.map +1 -0
  416. package/dist/screens/HookInboxScreen.js +19 -0
  417. package/dist/screens/HookInboxScreen.js.map +1 -0
  418. package/dist/screens/NewRunScreen.d.ts +6 -0
  419. package/dist/screens/NewRunScreen.d.ts.map +1 -0
  420. package/dist/screens/NewRunScreen.js +35 -0
  421. package/dist/screens/NewRunScreen.js.map +1 -0
  422. package/dist/screens/SessionDetailScreen.d.ts +3 -0
  423. package/dist/screens/SessionDetailScreen.d.ts.map +1 -0
  424. package/dist/screens/SessionDetailScreen.js +46 -0
  425. package/dist/screens/SessionDetailScreen.js.map +1 -0
  426. package/dist/screens/SessionListScreen.d.ts +3 -0
  427. package/dist/screens/SessionListScreen.d.ts.map +1 -0
  428. package/dist/screens/SessionListScreen.js +9 -0
  429. package/dist/screens/SessionListScreen.js.map +1 -0
  430. package/dist/screens/SettingsScreen.d.ts +1 -0
  431. package/dist/screens/SettingsScreen.d.ts.map +1 -0
  432. package/dist/screens/SettingsScreen.js +9 -0
  433. package/dist/screens/SettingsScreen.js.map +1 -0
  434. package/dist/session-flow/adapters.d.ts +36 -0
  435. package/dist/session-flow/adapters.d.ts.map +1 -0
  436. package/dist/session-flow/adapters.js +362 -0
  437. package/dist/session-flow/adapters.js.map +1 -0
  438. package/dist/session-flow/cost.d.ts +2 -0
  439. package/dist/session-flow/cost.d.ts.map +1 -0
  440. package/dist/session-flow/cost.js +30 -0
  441. package/dist/session-flow/cost.js.map +1 -0
  442. package/dist/session-flow/file-attention.d.ts +3 -0
  443. package/dist/session-flow/file-attention.d.ts.map +1 -0
  444. package/dist/session-flow/file-attention.js +43 -0
  445. package/dist/session-flow/file-attention.js.map +1 -0
  446. package/dist/session-flow/model.d.ts +6 -0
  447. package/dist/session-flow/model.d.ts.map +1 -0
  448. package/dist/session-flow/model.js +110 -0
  449. package/dist/session-flow/model.js.map +1 -0
  450. package/dist/session-flow/native.d.ts +3 -0
  451. package/dist/session-flow/native.d.ts.map +1 -0
  452. package/dist/session-flow/native.js +185 -0
  453. package/dist/session-flow/native.js.map +1 -0
  454. package/dist/session-flow/projector.d.ts +8 -0
  455. package/dist/session-flow/projector.d.ts.map +1 -0
  456. package/dist/session-flow/projector.js +392 -0
  457. package/dist/session-flow/projector.js.map +1 -0
  458. package/dist/session-flow/types.d.ts +87 -0
  459. package/dist/session-flow/types.d.ts.map +1 -0
  460. package/dist/session-flow/types.js +2 -0
  461. package/dist/session-flow/types.js.map +1 -0
  462. package/dist/session-flow/utils.d.ts +11 -0
  463. package/dist/session-flow/utils.d.ts.map +1 -0
  464. package/dist/session-flow/utils.js +118 -0
  465. package/dist/session-flow/utils.js.map +1 -0
  466. package/dist/session-flow.d.ts +7 -0
  467. package/dist/session-flow.d.ts.map +1 -0
  468. package/dist/session-flow.js +6 -0
  469. package/dist/session-flow.js.map +1 -0
  470. package/dist/store/index.d.ts +72 -0
  471. package/dist/store/index.d.ts.map +1 -0
  472. package/dist/store/index.js +145 -0
  473. package/dist/store/index.js.map +1 -0
  474. package/dist/store/selectors.d.ts +15 -0
  475. package/dist/store/selectors.d.ts.map +1 -0
  476. package/dist/store/selectors.js +72 -0
  477. package/dist/store/selectors.js.map +1 -0
  478. package/dist/store/slices/agents.d.ts +2 -0
  479. package/dist/store/slices/agents.d.ts.map +1 -0
  480. package/dist/store/slices/agents.js +4 -0
  481. package/dist/store/slices/agents.js.map +1 -0
  482. package/dist/store/slices/connection.d.ts +2 -0
  483. package/dist/store/slices/connection.d.ts.map +1 -0
  484. package/dist/store/slices/connection.js +4 -0
  485. package/dist/store/slices/connection.js.map +1 -0
  486. package/dist/store/slices/events.d.ts +2 -0
  487. package/dist/store/slices/events.d.ts.map +1 -0
  488. package/dist/store/slices/events.js +4 -0
  489. package/dist/store/slices/events.js.map +1 -0
  490. package/dist/store/slices/hooks.d.ts +2 -0
  491. package/dist/store/slices/hooks.d.ts.map +1 -0
  492. package/dist/store/slices/hooks.js +4 -0
  493. package/dist/store/slices/hooks.js.map +1 -0
  494. package/dist/store/slices/runs.d.ts +2 -0
  495. package/dist/store/slices/runs.d.ts.map +1 -0
  496. package/dist/store/slices/runs.js +4 -0
  497. package/dist/store/slices/runs.js.map +1 -0
  498. package/dist/store/slices/sessions.d.ts +2 -0
  499. package/dist/store/slices/sessions.d.ts.map +1 -0
  500. package/dist/store/slices/sessions.js +4 -0
  501. package/dist/store/slices/sessions.js.map +1 -0
  502. package/dist/theme/dark.d.ts +2 -0
  503. package/dist/theme/dark.d.ts.map +1 -0
  504. package/dist/theme/dark.js +21 -0
  505. package/dist/theme/dark.js.map +1 -0
  506. package/dist/theme/light.d.ts +2 -0
  507. package/dist/theme/light.d.ts.map +1 -0
  508. package/dist/theme/light.js +21 -0
  509. package/dist/theme/light.js.map +1 -0
  510. package/dist/theme/tokens.d.ts +20 -0
  511. package/dist/theme/tokens.d.ts.map +1 -0
  512. package/dist/theme/tokens.js +2 -0
  513. package/dist/theme/tokens.js.map +1 -0
  514. package/package.json +152 -0
@@ -0,0 +1,166 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ function tryParseJson(value) {
4
+ if (value == null)
5
+ return value;
6
+ if (typeof value !== 'string')
7
+ return value;
8
+ try {
9
+ return JSON.parse(value);
10
+ }
11
+ catch {
12
+ return value;
13
+ }
14
+ }
15
+ function formatJson(value) {
16
+ if (value == null)
17
+ return '';
18
+ if (typeof value === 'string')
19
+ return value;
20
+ try {
21
+ return JSON.stringify(value, null, 2);
22
+ }
23
+ catch {
24
+ return String(value);
25
+ }
26
+ }
27
+ function truncate(text, maxLen) {
28
+ if (!text || text.length <= maxLen)
29
+ return text || '';
30
+ return text.slice(0, maxLen) + '...';
31
+ }
32
+ const STATUS_COLOR = {
33
+ completed: '#22c55e',
34
+ error: '#ef4444',
35
+ running: '#f59e0b',
36
+ };
37
+ function statusColor(status) {
38
+ return STATUS_COLOR[status] || '#94a3b8';
39
+ }
40
+ const TOOL_META = {
41
+ bash: { label: 'Bash', prefix: '$' },
42
+ read: { label: 'Read', prefix: 'R' },
43
+ write: { label: 'Write', prefix: 'W' },
44
+ edit: { label: 'Edit', prefix: 'E' },
45
+ glob: { label: 'Glob', prefix: 'G' },
46
+ grep: { label: 'Grep', prefix: '/' },
47
+ web_fetch: { label: 'Fetch', prefix: 'F' },
48
+ web_search: { label: 'Search', prefix: 'S' },
49
+ };
50
+ function resolveToolMeta(toolName) {
51
+ const key = (toolName || '').toLowerCase().replace(/[^a-z_]/g, '');
52
+ return TOOL_META[key] || { label: toolName || 'Tool', prefix: 'T' };
53
+ }
54
+ function inputSummary(toolName, input) {
55
+ const parsed = typeof input === 'string' ? tryParseJson(input) : input;
56
+ if (!parsed)
57
+ return '';
58
+ const p = parsed;
59
+ const key = (toolName || '').toLowerCase().replace(/[^a-z_]/g, '');
60
+ if (key === 'bash')
61
+ return truncate(String(p?.command || JSON.stringify(parsed)), 120);
62
+ if (key === 'read')
63
+ return String(p?.file_path || p?.path || JSON.stringify(parsed));
64
+ if (key === 'write' || key === 'edit')
65
+ return String(p?.file_path || JSON.stringify(parsed));
66
+ if (key === 'glob')
67
+ return String(p?.pattern || JSON.stringify(parsed));
68
+ if (key === 'grep')
69
+ return String(p?.pattern || JSON.stringify(parsed));
70
+ if (key === 'web_fetch')
71
+ return String(p?.url || JSON.stringify(parsed));
72
+ if (key === 'web_search')
73
+ return String(p?.query || JSON.stringify(parsed));
74
+ return truncate(typeof parsed === 'string' ? parsed : JSON.stringify(parsed), 120);
75
+ }
76
+ export function ToolCallInspector({ toolName, input, output, status = 'completed', durationMs, }) {
77
+ const [open, setOpen] = useState(false);
78
+ const meta = resolveToolMeta(toolName);
79
+ const color = statusColor(status);
80
+ const summary = inputSummary(toolName, input);
81
+ const parsedInput = typeof input === 'string' ? tryParseJson(input) : input;
82
+ const parsedOutput = typeof output === 'string' ? tryParseJson(output) : output;
83
+ return (_jsxs("details", { open: open, onToggle: (e) => setOpen(e.target.open), "aria-label": `Tool call: ${meta.label} - ${summary || 'no input'}`, style: {
84
+ border: '1px solid #e2e8f0',
85
+ borderLeft: `3px solid ${color}`,
86
+ borderRadius: 4,
87
+ marginBottom: 6,
88
+ fontSize: 12,
89
+ backgroundColor: '#fafafa',
90
+ }, children: [_jsxs("summary", { style: {
91
+ cursor: 'pointer',
92
+ padding: '6px 10px',
93
+ display: 'flex',
94
+ alignItems: 'center',
95
+ gap: 6,
96
+ listStyle: 'none',
97
+ userSelect: 'none',
98
+ }, children: [_jsx("span", { style: {
99
+ fontFamily: 'monospace',
100
+ fontSize: 10,
101
+ color: '#fff',
102
+ backgroundColor: color,
103
+ borderRadius: 3,
104
+ padding: '1px 5px',
105
+ fontWeight: 700,
106
+ flexShrink: 0,
107
+ }, children: meta.prefix }), _jsx("strong", { style: { fontSize: 11, color: '#1e293b', flexShrink: 0 }, children: meta.label }), _jsx("span", { style: {
108
+ fontFamily: 'monospace',
109
+ fontSize: 11,
110
+ color: 'var(--text)',
111
+ flex: 1,
112
+ overflow: 'hidden',
113
+ textOverflow: 'ellipsis',
114
+ whiteSpace: 'nowrap',
115
+ }, children: summary }), durationMs != null && (_jsx("span", { style: { fontSize: 10, color: 'var(--text-muted)', flexShrink: 0 }, children: durationMs < 1000 ? `${durationMs}ms` : `${(durationMs / 1000).toFixed(1)}s` })), _jsx("span", { style: { fontSize: 10, color: 'var(--text-muted)', flexShrink: 0, marginLeft: 4 }, children: open ? '▲' : '▼' })] }), _jsxs("div", { style: { padding: '8px 10px', borderTop: '1px solid #e2e8f0' }, children: [_jsxs("div", { style: { marginBottom: parsedOutput != null ? 8 : 0 }, children: [_jsx("span", { style: {
116
+ fontSize: 10,
117
+ fontWeight: 600,
118
+ color: 'var(--text-muted)',
119
+ textTransform: 'uppercase',
120
+ letterSpacing: '0.05em',
121
+ display: 'block',
122
+ marginBottom: 4,
123
+ }, children: "Input" }), _jsx("pre", { style: {
124
+ margin: 0,
125
+ fontFamily: 'monospace',
126
+ fontSize: 11,
127
+ color: '#1e293b',
128
+ backgroundColor: '#f1f5f9',
129
+ border: '1px solid #e2e8f0',
130
+ borderRadius: 3,
131
+ padding: '6px 8px',
132
+ whiteSpace: 'pre-wrap',
133
+ wordBreak: 'break-word',
134
+ maxHeight: 200,
135
+ overflow: 'auto',
136
+ }, children: parsedInput != null ? formatJson(parsedInput) : '(empty)' })] }), parsedOutput != null && (_jsxs("div", { children: [_jsx("span", { style: {
137
+ fontSize: 10,
138
+ fontWeight: 600,
139
+ color: 'var(--text-muted)',
140
+ textTransform: 'uppercase',
141
+ letterSpacing: '0.05em',
142
+ display: 'block',
143
+ marginBottom: 4,
144
+ }, children: "Output" }), _jsx("pre", { style: {
145
+ margin: 0,
146
+ fontFamily: 'monospace',
147
+ fontSize: 11,
148
+ color: status === 'error' ? '#dc2626' : '#374151',
149
+ backgroundColor: status === 'error' ? '#fef2f2' : '#f8fafc',
150
+ border: `1px solid ${status === 'error' ? '#fca5a5' : '#e2e8f0'}`,
151
+ borderRadius: 3,
152
+ padding: '6px 8px',
153
+ whiteSpace: 'pre-wrap',
154
+ wordBreak: 'break-word',
155
+ maxHeight: 300,
156
+ overflow: 'auto',
157
+ }, children: formatJson(parsedOutput) })] }))] })] }));
158
+ }
159
+ export function ToolCallList({ messages }) {
160
+ const toolMessages = (messages || []).filter((m) => m.role === 'tool' || m.role === 'tool_use' || m.role === 'tool_result');
161
+ if (!toolMessages.length) {
162
+ return (_jsx("p", { style: { fontSize: 13, color: 'var(--text-muted)', padding: '8px 0' }, children: "No tool calls in this transcript." }));
163
+ }
164
+ return (_jsx("div", { role: "list", "aria-label": "Tool calls", children: toolMessages.map((msg, i) => (_jsx(ToolCallInspector, { toolName: msg.toolName || msg.name || 'Tool', input: msg.input || msg.content, output: msg.output, status: msg.status || 'completed', durationMs: msg.durationMs }, i))) }));
165
+ }
166
+ //# sourceMappingURL=ToolInspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolInspector.js","sourceRoot":"","sources":["../../../src/components/Observability/ToolInspector.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { ToolCallInspector, ToolCallList } from './ToolInspector.js';
2
+ export type { ToolCallInspectorProps, ToolCallListProps, ToolMessage } from './ToolInspector.js';
3
+ export { ActivityFeed } from './ActivityFeed.js';
4
+ export type { ActivityFeedProps, ActivityItem } from './ActivityFeed.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ToolCallInspector, ToolCallList } from './ToolInspector.js';
2
+ export { ActivityFeed } from './ActivityFeed.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export type EffectStatus = 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
2
+ export interface EffectTreeNode {
3
+ id: string;
4
+ parentId: string | null;
5
+ kind: string;
6
+ title: string;
7
+ status: EffectStatus;
8
+ children: EffectTreeNode[];
9
+ depth: number;
10
+ }
11
+ export interface FlatEffect {
12
+ id: string;
13
+ parentId?: string | null;
14
+ kind: string;
15
+ title: string;
16
+ status: EffectStatus;
17
+ }
18
+ export declare function buildEffectTree(effects: FlatEffect[]): EffectTreeNode[];
19
+ export declare function formatEffectTreeText(tree: EffectTreeNode[]): string;
20
+ export declare function renderEffectTreeHtml(tree: EffectTreeNode[]): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EffectTreeView.d.ts","sourceRoot":"","sources":["../../../src/components/Rendering/EffectTreeView.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;CACtB;AAMD,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,CAuCvE;AAyBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAenE;AA2CD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CASnE"}
@@ -0,0 +1,123 @@
1
+ // EffectTreeView.ts — Effect tree construction and rendering (GAP-UX-001 + UX-001a)
2
+ // Pure TypeScript: builds a tree from a flat effect list, renders ASCII or HTML.
3
+ // ---------------------------------------------------------------------------
4
+ // Tree construction
5
+ // ---------------------------------------------------------------------------
6
+ export function buildEffectTree(effects) {
7
+ const nodeMap = new Map();
8
+ // First pass: create nodes
9
+ for (const effect of effects) {
10
+ nodeMap.set(effect.id, {
11
+ id: effect.id,
12
+ parentId: effect.parentId ?? null,
13
+ kind: effect.kind,
14
+ title: effect.title,
15
+ status: effect.status,
16
+ children: [],
17
+ depth: 0,
18
+ });
19
+ }
20
+ // Second pass: wire parent-child relationships
21
+ const roots = [];
22
+ for (const node of nodeMap.values()) {
23
+ if (node.parentId && nodeMap.has(node.parentId)) {
24
+ nodeMap.get(node.parentId).children.push(node);
25
+ }
26
+ else {
27
+ roots.push(node);
28
+ }
29
+ }
30
+ // Third pass: compute depths
31
+ function setDepth(node, depth) {
32
+ node.depth = depth;
33
+ for (const child of node.children) {
34
+ setDepth(child, depth + 1);
35
+ }
36
+ }
37
+ for (const root of roots) {
38
+ setDepth(root, 0);
39
+ }
40
+ return roots;
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // ASCII tree rendering (terminal)
44
+ // ---------------------------------------------------------------------------
45
+ const STATUS_ICON = {
46
+ pending: '○', // ○
47
+ running: '◔', // ◔
48
+ completed: '✔', // ✔
49
+ failed: '✘', // ✘
50
+ skipped: '–', // –
51
+ };
52
+ function renderNodeText(node, prefix, isLast, lines) {
53
+ const connector = isLast ? '└── ' : '├── ';
54
+ const icon = STATUS_ICON[node.status] ?? '?';
55
+ lines.push(`${prefix}${connector}${icon} [${node.kind}] ${node.title} (${node.status})`);
56
+ const childPrefix = prefix + (isLast ? ' ' : '│ ');
57
+ for (let i = 0; i < node.children.length; i++) {
58
+ renderNodeText(node.children[i], childPrefix, i === node.children.length - 1, lines);
59
+ }
60
+ }
61
+ export function formatEffectTreeText(tree) {
62
+ if (tree.length === 0)
63
+ return '(empty tree)';
64
+ const lines = [];
65
+ for (let i = 0; i < tree.length; i++) {
66
+ const root = tree[i];
67
+ const icon = STATUS_ICON[root.status] ?? '?';
68
+ lines.push(`${icon} [${root.kind}] ${root.title} (${root.status})`);
69
+ const childPrefix = i < tree.length - 1 ? '│ ' : ' ';
70
+ for (let j = 0; j < root.children.length; j++) {
71
+ renderNodeText(root.children[j], childPrefix, j === root.children.length - 1, lines);
72
+ }
73
+ }
74
+ return lines.join('\n');
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // HTML tree rendering (collapsible)
78
+ // ---------------------------------------------------------------------------
79
+ const STATUS_CLASS = {
80
+ pending: 'effect-pending',
81
+ running: 'effect-running',
82
+ completed: 'effect-completed',
83
+ failed: 'effect-failed',
84
+ skipped: 'effect-skipped',
85
+ };
86
+ function escapeHtml(text) {
87
+ return text
88
+ .replace(/&/g, '&amp;')
89
+ .replace(/</g, '&lt;')
90
+ .replace(/>/g, '&gt;')
91
+ .replace(/"/g, '&quot;');
92
+ }
93
+ function renderNodeHtml(node) {
94
+ const cls = STATUS_CLASS[node.status] ?? 'effect-pending';
95
+ const icon = STATUS_ICON[node.status] ?? '?';
96
+ const hasChildren = node.children.length > 0;
97
+ let html = `<li class="effect-node ${cls}" data-effect-id="${escapeHtml(node.id)}" data-depth="${node.depth}">`;
98
+ if (hasChildren) {
99
+ html += `<details open>`;
100
+ html += `<summary>${icon} <span class="effect-kind">[${escapeHtml(node.kind)}]</span> ${escapeHtml(node.title)} <span class="effect-status">(${node.status})</span></summary>`;
101
+ html += `<ul>`;
102
+ for (const child of node.children) {
103
+ html += renderNodeHtml(child);
104
+ }
105
+ html += `</ul></details>`;
106
+ }
107
+ else {
108
+ html += `${icon} <span class="effect-kind">[${escapeHtml(node.kind)}]</span> ${escapeHtml(node.title)} <span class="effect-status">(${node.status})</span>`;
109
+ }
110
+ html += `</li>`;
111
+ return html;
112
+ }
113
+ export function renderEffectTreeHtml(tree) {
114
+ if (tree.length === 0)
115
+ return '<ul class="effect-tree"><li>(empty tree)</li></ul>';
116
+ let html = '<ul class="effect-tree">';
117
+ for (const root of tree) {
118
+ html += renderNodeHtml(root);
119
+ }
120
+ html += '</ul>';
121
+ return html;
122
+ }
123
+ //# sourceMappingURL=EffectTreeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EffectTreeView.js","sourceRoot":"","sources":["../../../src/components/Rendering/EffectTreeView.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type MessageType = 'text' | 'code' | 'tool_call' | 'tool_result' | 'thinking' | 'error' | 'system';
2
+ export declare function detectMessageType(content: string): MessageType;
3
+ export declare function formatMessageText(content: string, type: MessageType): string;
4
+ export declare function formatMessageHtml(content: string, type: MessageType): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageTypeRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/Rendering/MessageTypeRenderer.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAa1G,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAW9D;AAkCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAa5E;AAwBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAsB5E"}
@@ -0,0 +1,108 @@
1
+ // MessageTypeRenderer.ts — Message type detection and rendering (GAP-UX-001d)
2
+ // Pure TypeScript: detects message types and renders with appropriate formatting.
3
+ // ---------------------------------------------------------------------------
4
+ // Message type detection
5
+ // ---------------------------------------------------------------------------
6
+ const CODE_BLOCK_PATTERN = /^```[\s\S]*```$/m;
7
+ const TOOL_CALL_PATTERN = /^\s*\{[\s\S]*"tool_name"\s*:/;
8
+ const TOOL_RESULT_PATTERN = /^\s*\{[\s\S]*"tool_result"\s*:/;
9
+ const THINKING_PATTERN = /^<thinking>[\s\S]*<\/thinking>$/;
10
+ const ERROR_PATTERN = /^(Error|ERROR|Exception|FATAL|Traceback)[\s:]/;
11
+ const SYSTEM_PATTERN = /^\[system\]|^\[SYSTEM\]/;
12
+ export function detectMessageType(content) {
13
+ const trimmed = content.trim();
14
+ if (SYSTEM_PATTERN.test(trimmed))
15
+ return 'system';
16
+ if (ERROR_PATTERN.test(trimmed))
17
+ return 'error';
18
+ if (THINKING_PATTERN.test(trimmed))
19
+ return 'thinking';
20
+ if (TOOL_CALL_PATTERN.test(trimmed))
21
+ return 'tool_call';
22
+ if (TOOL_RESULT_PATTERN.test(trimmed))
23
+ return 'tool_result';
24
+ if (CODE_BLOCK_PATTERN.test(trimmed))
25
+ return 'code';
26
+ return 'text';
27
+ }
28
+ // ---------------------------------------------------------------------------
29
+ // Text formatting
30
+ // ---------------------------------------------------------------------------
31
+ const TYPE_PREFIX = {
32
+ text: '',
33
+ code: '┌─ code ──────────────────\n',
34
+ tool_call: '⇒ Tool Call:\n',
35
+ tool_result: '⇐ Tool Result:\n',
36
+ thinking: '\u{1F4AD} Thinking:\n',
37
+ error: '⚠ Error:\n',
38
+ system: 'ℹ System:\n',
39
+ };
40
+ const TYPE_SUFFIX = {
41
+ text: '',
42
+ code: '\n└─────────────────────────┘',
43
+ tool_call: '',
44
+ tool_result: '',
45
+ thinking: '',
46
+ error: '',
47
+ system: '',
48
+ };
49
+ function stripCodeFences(content) {
50
+ return content.replace(/^```\w*\n?/, '').replace(/\n?```$/, '');
51
+ }
52
+ function stripThinkingTags(content) {
53
+ return content.replace(/^<thinking>\n?/, '').replace(/\n?<\/thinking>$/, '');
54
+ }
55
+ export function formatMessageText(content, type) {
56
+ let body = content;
57
+ switch (type) {
58
+ case 'code':
59
+ body = stripCodeFences(body.trim());
60
+ break;
61
+ case 'thinking':
62
+ body = stripThinkingTags(body.trim());
63
+ break;
64
+ }
65
+ return `${TYPE_PREFIX[type]}${body}${TYPE_SUFFIX[type]}`;
66
+ }
67
+ // ---------------------------------------------------------------------------
68
+ // HTML rendering
69
+ // ---------------------------------------------------------------------------
70
+ function escapeHtml(text) {
71
+ return text
72
+ .replace(/&/g, '&amp;')
73
+ .replace(/</g, '&lt;')
74
+ .replace(/>/g, '&gt;')
75
+ .replace(/"/g, '&quot;');
76
+ }
77
+ const TYPE_HTML_CLASS = {
78
+ text: 'msg-text',
79
+ code: 'msg-code',
80
+ tool_call: 'msg-tool-call',
81
+ tool_result: 'msg-tool-result',
82
+ thinking: 'msg-thinking',
83
+ error: 'msg-error',
84
+ system: 'msg-system',
85
+ };
86
+ export function formatMessageHtml(content, type) {
87
+ const cls = TYPE_HTML_CLASS[type];
88
+ let body = content;
89
+ switch (type) {
90
+ case 'code':
91
+ body = stripCodeFences(body.trim());
92
+ return `<div class="${cls}"><pre><code>${escapeHtml(body)}</code></pre></div>`;
93
+ case 'thinking':
94
+ body = stripThinkingTags(body.trim());
95
+ return `<div class="${cls}"><em>${escapeHtml(body)}</em></div>`;
96
+ case 'error':
97
+ return `<div class="${cls}"><strong>${escapeHtml(body)}</strong></div>`;
98
+ case 'tool_call':
99
+ return `<div class="${cls}"><pre class="tool-call">${escapeHtml(body)}</pre></div>`;
100
+ case 'tool_result':
101
+ return `<div class="${cls}"><pre class="tool-result">${escapeHtml(body)}</pre></div>`;
102
+ case 'system':
103
+ return `<div class="${cls}"><span class="system-msg">${escapeHtml(body)}</span></div>`;
104
+ default:
105
+ return `<div class="${cls}"><p>${escapeHtml(body)}</p></div>`;
106
+ }
107
+ }
108
+ //# sourceMappingURL=MessageTypeRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageTypeRenderer.js","sourceRoot":"","sources":["../../../src/components/Rendering/MessageTypeRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface ProgressData {
2
+ current: number;
3
+ total: number;
4
+ label: string;
5
+ startedAt: number;
6
+ estimatedCompletion?: number;
7
+ }
8
+ export declare function formatProgressBar(data: ProgressData, width?: number): string;
9
+ export declare function formatStatusLine(data: ProgressData, now?: number): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressStatusLine.d.ts","sourceRoot":"","sources":["../../../src/components/Rendering/ProgressStatusLine.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AASD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CAQhF;AAqCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAQzE"}
@@ -0,0 +1,57 @@
1
+ // ProgressStatusLine.ts — Progress bar and status line formatting (GAP-UX-001e)
2
+ // Pure TypeScript: renders progress bars and status lines as strings.
3
+ // ---------------------------------------------------------------------------
4
+ // Progress bar rendering
5
+ // ---------------------------------------------------------------------------
6
+ const FILL_CHAR = '█'; // █
7
+ const EMPTY_CHAR = '░'; // ░
8
+ export function formatProgressBar(data, width = 20) {
9
+ const safeTotal = Math.max(data.total, 1);
10
+ const ratio = Math.min(Math.max(data.current / safeTotal, 0), 1);
11
+ const filled = Math.round(ratio * width);
12
+ const empty = width - filled;
13
+ const percent = Math.round(ratio * 100);
14
+ return `[${FILL_CHAR.repeat(filled)}${EMPTY_CHAR.repeat(empty)}] ${percent}%`;
15
+ }
16
+ // ---------------------------------------------------------------------------
17
+ // Time remaining
18
+ // ---------------------------------------------------------------------------
19
+ function formatDuration(ms) {
20
+ if (ms < 0)
21
+ return '0s';
22
+ const totalSeconds = Math.floor(ms / 1000);
23
+ if (totalSeconds < 60)
24
+ return `${totalSeconds}s`;
25
+ const minutes = Math.floor(totalSeconds / 60);
26
+ const seconds = totalSeconds % 60;
27
+ if (minutes < 60)
28
+ return seconds > 0 ? `${minutes}m ${seconds}s` : `${minutes}m`;
29
+ const hours = Math.floor(minutes / 60);
30
+ const remainingMinutes = minutes % 60;
31
+ return remainingMinutes > 0 ? `${hours}h ${remainingMinutes}m` : `${hours}h`;
32
+ }
33
+ function estimateRemaining(data, now) {
34
+ if (data.estimatedCompletion != null) {
35
+ const remaining = data.estimatedCompletion - now;
36
+ return remaining > 0 ? formatDuration(remaining) : 'any moment';
37
+ }
38
+ // Derive from elapsed time and progress
39
+ const elapsed = now - data.startedAt;
40
+ if (elapsed <= 0 || data.current <= 0)
41
+ return null;
42
+ const totalEstimate = (elapsed / data.current) * data.total;
43
+ const remaining = totalEstimate - elapsed;
44
+ return remaining > 0 ? formatDuration(remaining) : 'any moment';
45
+ }
46
+ // ---------------------------------------------------------------------------
47
+ // Status line rendering
48
+ // ---------------------------------------------------------------------------
49
+ export function formatStatusLine(data, now) {
50
+ const currentTime = now ?? Date.now();
51
+ const bar = formatProgressBar(data);
52
+ const stepLabel = `Step ${data.current}/${data.total}`;
53
+ const remaining = estimateRemaining(data, currentTime);
54
+ const remainingText = remaining ? ` (${remaining} remaining)` : '';
55
+ return `${stepLabel} — ${data.label} ${bar}${remainingText}`;
56
+ }
57
+ //# sourceMappingURL=ProgressStatusLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressStatusLine.js","sourceRoot":"","sources":["../../../src/components/Rendering/ProgressStatusLine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface StreamPanel {
2
+ id: string;
3
+ title: string;
4
+ lines: string[];
5
+ maxLines: number;
6
+ autoScroll: boolean;
7
+ }
8
+ export declare class StreamPanelManager {
9
+ private panels;
10
+ addPanel(id: string, title: string, opts?: {
11
+ maxLines?: number;
12
+ autoScroll?: boolean;
13
+ }): StreamPanel;
14
+ appendLine(panelId: string, line: string): void;
15
+ getPanel(id: string): StreamPanel | undefined;
16
+ listPanels(): StreamPanel[];
17
+ removePanel(id: string): boolean;
18
+ clear(panelId: string): void;
19
+ }
20
+ export declare function formatPanelOutput(panel: StreamPanel, width?: number): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingOutputPanel.d.ts","sourceRoot":"","sources":["../../../src/components/Rendering/StreamingOutputPanel.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAkC;IAEhD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,WAAW;IAYpG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAW/C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI7C,UAAU,IAAI,WAAW,EAAE;IAI3B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAI7B;AAUD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CA6BhF"}