@flanksource/clicky-ui 0.3.40 → 0.3.42

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 (759) hide show
  1. package/README.md +24 -0
  2. package/dist/ai.cjs +14 -0
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +14 -0
  5. package/dist/ai.js.map +1 -1
  6. package/dist/comments/CommentCard.cjs +3 -1
  7. package/dist/comments/CommentCard.cjs.map +1 -1
  8. package/dist/comments/CommentCard.d.ts.map +1 -1
  9. package/dist/comments/CommentCard.js +4 -2
  10. package/dist/comments/CommentCard.js.map +1 -1
  11. package/dist/comments/CommentCardParts.cjs +16 -0
  12. package/dist/comments/CommentCardParts.cjs.map +1 -1
  13. package/dist/comments/CommentCardParts.d.ts +4 -1
  14. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  15. package/dist/comments/CommentCardParts.js +16 -0
  16. package/dist/comments/CommentCardParts.js.map +1 -1
  17. package/dist/comments/comment-types.cjs.map +1 -1
  18. package/dist/comments/comment-types.d.ts +4 -0
  19. package/dist/comments/comment-types.d.ts.map +1 -1
  20. package/dist/comments/comment-types.js.map +1 -1
  21. package/dist/components/AccordionList.cjs +5 -1
  22. package/dist/components/AccordionList.cjs.map +1 -1
  23. package/dist/components/AccordionList.d.ts +3 -1
  24. package/dist/components/AccordionList.d.ts.map +1 -1
  25. package/dist/components/AccordionList.js +5 -1
  26. package/dist/components/AccordionList.js.map +1 -1
  27. package/dist/components/Combobox.cjs +54 -8
  28. package/dist/components/Combobox.cjs.map +1 -1
  29. package/dist/components/Combobox.d.ts.map +1 -1
  30. package/dist/components/Combobox.js +56 -10
  31. package/dist/components/Combobox.js.map +1 -1
  32. package/dist/components/ComboboxMenu.cjs +139 -113
  33. package/dist/components/ComboboxMenu.cjs.map +1 -1
  34. package/dist/components/ComboboxMenu.d.ts +3 -1
  35. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  36. package/dist/components/ComboboxMenu.js +139 -113
  37. package/dist/components/ComboboxMenu.js.map +1 -1
  38. package/dist/components/ComboboxMenuTrigger.cjs +87 -0
  39. package/dist/components/ComboboxMenuTrigger.cjs.map +1 -0
  40. package/dist/components/ComboboxMenuTrigger.d.ts +23 -0
  41. package/dist/components/ComboboxMenuTrigger.d.ts.map +1 -0
  42. package/dist/components/ComboboxMenuTrigger.js +87 -0
  43. package/dist/components/ComboboxMenuTrigger.js.map +1 -0
  44. package/dist/components/JsonSchemaForm.cjs +39 -11
  45. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  46. package/dist/components/JsonSchemaForm.d.ts +1 -1
  47. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  48. package/dist/components/JsonSchemaForm.js +38 -10
  49. package/dist/components/JsonSchemaForm.js.map +1 -1
  50. package/dist/components/SegmentedControl.cjs +20 -3
  51. package/dist/components/SegmentedControl.cjs.map +1 -1
  52. package/dist/components/SegmentedControl.d.ts +11 -0
  53. package/dist/components/SegmentedControl.d.ts.map +1 -1
  54. package/dist/components/SegmentedControl.js +21 -4
  55. package/dist/components/SegmentedControl.js.map +1 -1
  56. package/dist/components/combobox-types.d.ts +8 -0
  57. package/dist/components/combobox-types.d.ts.map +1 -1
  58. package/dist/components/json-schema-form-accordion-array.cjs +3 -1
  59. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  60. package/dist/components/json-schema-form-accordion-array.d.ts +4 -1
  61. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  62. package/dist/components/json-schema-form-accordion-array.js +3 -1
  63. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  64. package/dist/components/json-schema-form-array-view.cjs +63 -0
  65. package/dist/components/json-schema-form-array-view.cjs.map +1 -0
  66. package/dist/components/json-schema-form-array-view.d.ts +21 -0
  67. package/dist/components/json-schema-form-array-view.d.ts.map +1 -0
  68. package/dist/components/json-schema-form-array-view.js +63 -0
  69. package/dist/components/json-schema-form-array-view.js.map +1 -0
  70. package/dist/components/json-schema-form-array.cjs +3 -7
  71. package/dist/components/json-schema-form-array.cjs.map +1 -1
  72. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  73. package/dist/components/json-schema-form-array.js +3 -7
  74. package/dist/components/json-schema-form-array.js.map +1 -1
  75. package/dist/components/json-schema-form-conditionals.cjs +67 -0
  76. package/dist/components/json-schema-form-conditionals.cjs.map +1 -0
  77. package/dist/components/json-schema-form-conditionals.d.ts +9 -0
  78. package/dist/components/json-schema-form-conditionals.d.ts.map +1 -0
  79. package/dist/components/json-schema-form-conditionals.js +67 -0
  80. package/dist/components/json-schema-form-conditionals.js.map +1 -0
  81. package/dist/components/json-schema-form-debug-badge.cjs +108 -0
  82. package/dist/components/json-schema-form-debug-badge.cjs.map +1 -0
  83. package/dist/components/json-schema-form-debug-badge.d.ts +10 -0
  84. package/dist/components/json-schema-form-debug-badge.d.ts.map +1 -0
  85. package/dist/components/json-schema-form-debug-badge.js +108 -0
  86. package/dist/components/json-schema-form-debug-badge.js.map +1 -0
  87. package/dist/components/json-schema-form-debug-glyph-map.cjs +129 -0
  88. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -0
  89. package/dist/components/json-schema-form-debug-glyph-map.d.ts +20 -0
  90. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -0
  91. package/dist/components/json-schema-form-debug-glyph-map.js +129 -0
  92. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -0
  93. package/dist/components/json-schema-form-debug-glyph.cjs +13 -0
  94. package/dist/components/json-schema-form-debug-glyph.cjs.map +1 -0
  95. package/dist/components/json-schema-form-debug-glyph.d.ts +6 -0
  96. package/dist/components/json-schema-form-debug-glyph.d.ts.map +1 -0
  97. package/dist/components/json-schema-form-debug-glyph.js +13 -0
  98. package/dist/components/json-schema-form-debug-glyph.js.map +1 -0
  99. package/dist/components/json-schema-form-debug-groups.cjs +56 -0
  100. package/dist/components/json-schema-form-debug-groups.cjs.map +1 -0
  101. package/dist/components/json-schema-form-debug-groups.d.ts +8 -0
  102. package/dist/components/json-schema-form-debug-groups.d.ts.map +1 -0
  103. package/dist/components/json-schema-form-debug-groups.js +56 -0
  104. package/dist/components/json-schema-form-debug-groups.js.map +1 -0
  105. package/dist/components/json-schema-form-debug-keywords.cjs +159 -0
  106. package/dist/components/json-schema-form-debug-keywords.cjs.map +1 -0
  107. package/dist/components/json-schema-form-debug-keywords.d.ts +6 -0
  108. package/dist/components/json-schema-form-debug-keywords.d.ts.map +1 -0
  109. package/dist/components/json-schema-form-debug-keywords.js +159 -0
  110. package/dist/components/json-schema-form-debug-keywords.js.map +1 -0
  111. package/dist/components/json-schema-form-debug-listeners.cjs +102 -0
  112. package/dist/components/json-schema-form-debug-listeners.cjs.map +1 -0
  113. package/dist/components/json-schema-form-debug-listeners.d.ts +6 -0
  114. package/dist/components/json-schema-form-debug-listeners.d.ts.map +1 -0
  115. package/dist/components/json-schema-form-debug-listeners.js +102 -0
  116. package/dist/components/json-schema-form-debug-listeners.js.map +1 -0
  117. package/dist/components/json-schema-form-debug.cjs +31 -0
  118. package/dist/components/json-schema-form-debug.cjs.map +1 -0
  119. package/dist/components/json-schema-form-debug.d.ts +11 -0
  120. package/dist/components/json-schema-form-debug.d.ts.map +1 -0
  121. package/dist/components/json-schema-form-debug.js +31 -0
  122. package/dist/components/json-schema-form-debug.js.map +1 -0
  123. package/dist/components/json-schema-form-defaults.cjs +68 -0
  124. package/dist/components/json-schema-form-defaults.cjs.map +1 -0
  125. package/dist/components/json-schema-form-defaults.d.ts +4 -0
  126. package/dist/components/json-schema-form-defaults.d.ts.map +1 -0
  127. package/dist/components/json-schema-form-defaults.js +68 -0
  128. package/dist/components/json-schema-form-defaults.js.map +1 -0
  129. package/dist/components/json-schema-form-enum-choice.cjs +114 -0
  130. package/dist/components/json-schema-form-enum-choice.cjs.map +1 -0
  131. package/dist/components/json-schema-form-enum-choice.d.ts +14 -0
  132. package/dist/components/json-schema-form-enum-choice.d.ts.map +1 -0
  133. package/dist/components/json-schema-form-enum-choice.js +114 -0
  134. package/dist/components/json-schema-form-enum-choice.js.map +1 -0
  135. package/dist/components/json-schema-form-errors.cjs +49 -31
  136. package/dist/components/json-schema-form-errors.cjs.map +1 -1
  137. package/dist/components/json-schema-form-errors.d.ts +4 -2
  138. package/dist/components/json-schema-form-errors.d.ts.map +1 -1
  139. package/dist/components/json-schema-form-errors.js +51 -33
  140. package/dist/components/json-schema-form-errors.js.map +1 -1
  141. package/dist/components/json-schema-form-fields.cjs +3 -93
  142. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  143. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  144. package/dist/components/json-schema-form-fields.js +1 -91
  145. package/dist/components/json-schema-form-fields.js.map +1 -1
  146. package/dist/components/json-schema-form-filter.cjs +2 -1
  147. package/dist/components/json-schema-form-filter.cjs.map +1 -1
  148. package/dist/components/json-schema-form-filter.js +2 -1
  149. package/dist/components/json-schema-form-filter.js.map +1 -1
  150. package/dist/components/json-schema-form-item-summary.cjs +6 -2
  151. package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
  152. package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
  153. package/dist/components/json-schema-form-item-summary.js +6 -2
  154. package/dist/components/json-schema-form-item-summary.js.map +1 -1
  155. package/dist/components/json-schema-form-layout.cjs +28 -19
  156. package/dist/components/json-schema-form-layout.cjs.map +1 -1
  157. package/dist/components/json-schema-form-layout.d.ts +8 -6
  158. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  159. package/dist/components/json-schema-form-layout.js +29 -20
  160. package/dist/components/json-schema-form-layout.js.map +1 -1
  161. package/dist/components/json-schema-form-listener-paths.cjs +52 -0
  162. package/dist/components/json-schema-form-listener-paths.cjs.map +1 -0
  163. package/dist/components/json-schema-form-listener-paths.d.ts +10 -0
  164. package/dist/components/json-schema-form-listener-paths.d.ts.map +1 -0
  165. package/dist/components/json-schema-form-listener-paths.js +52 -0
  166. package/dist/components/json-schema-form-listener-paths.js.map +1 -0
  167. package/dist/components/json-schema-form-listener-types.d.ts +22 -0
  168. package/dist/components/json-schema-form-listener-types.d.ts.map +1 -0
  169. package/dist/components/json-schema-form-listeners.cjs +256 -0
  170. package/dist/components/json-schema-form-listeners.cjs.map +1 -0
  171. package/dist/components/json-schema-form-listeners.d.ts +13 -0
  172. package/dist/components/json-schema-form-listeners.d.ts.map +1 -0
  173. package/dist/components/json-schema-form-listeners.js +256 -0
  174. package/dist/components/json-schema-form-listeners.js.map +1 -0
  175. package/dist/components/json-schema-form-object-array-view.cjs +62 -0
  176. package/dist/components/json-schema-form-object-array-view.cjs.map +1 -0
  177. package/dist/components/json-schema-form-object-array-view.d.ts +14 -0
  178. package/dist/components/json-schema-form-object-array-view.d.ts.map +1 -0
  179. package/dist/components/json-schema-form-object-array-view.js +62 -0
  180. package/dist/components/json-schema-form-object-array-view.js.map +1 -0
  181. package/dist/components/json-schema-form-object.cjs +3 -0
  182. package/dist/components/json-schema-form-object.cjs.map +1 -1
  183. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  184. package/dist/components/json-schema-form-object.js +3 -0
  185. package/dist/components/json-schema-form-object.js.map +1 -1
  186. package/dist/components/json-schema-form-preferences.cjs +1 -0
  187. package/dist/components/json-schema-form-preferences.cjs.map +1 -1
  188. package/dist/components/json-schema-form-preferences.d.ts +1 -0
  189. package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
  190. package/dist/components/json-schema-form-preferences.js +1 -0
  191. package/dist/components/json-schema-form-preferences.js.map +1 -1
  192. package/dist/components/json-schema-form-render.cjs +36 -12
  193. package/dist/components/json-schema-form-render.cjs.map +1 -1
  194. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  195. package/dist/components/json-schema-form-render.js +38 -14
  196. package/dist/components/json-schema-form-render.js.map +1 -1
  197. package/dist/components/json-schema-form-resolve.cjs +6 -99
  198. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  199. package/dist/components/json-schema-form-resolve.d.ts +1 -8
  200. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  201. package/dist/components/json-schema-form-resolve.js +5 -98
  202. package/dist/components/json-schema-form-resolve.js.map +1 -1
  203. package/dist/components/json-schema-form-runtime-types.d.ts +16 -0
  204. package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -1
  205. package/dist/components/json-schema-form-table-array.cjs +67 -16
  206. package/dist/components/json-schema-form-table-array.cjs.map +1 -1
  207. package/dist/components/json-schema-form-table-array.d.ts +4 -1
  208. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  209. package/dist/components/json-schema-form-table-array.js +70 -19
  210. package/dist/components/json-schema-form-table-array.js.map +1 -1
  211. package/dist/components/json-schema-form-tone.cjs +12 -0
  212. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  213. package/dist/components/json-schema-form-tone.js +12 -0
  214. package/dist/components/json-schema-form-tone.js.map +1 -1
  215. package/dist/components/json-schema-form-types.d.ts +17 -0
  216. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  217. package/dist/components/json-schema-form-utils.cjs +7 -1
  218. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  219. package/dist/components/json-schema-form-utils.d.ts +2 -1
  220. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  221. package/dist/components/json-schema-form-utils.js +7 -1
  222. package/dist/components/json-schema-form-utils.js.map +1 -1
  223. package/dist/components.cjs +3 -2
  224. package/dist/components.cjs.map +1 -1
  225. package/dist/components.d.ts +3 -2
  226. package/dist/components.d.ts.map +1 -1
  227. package/dist/components.js +2 -1
  228. package/dist/components.js.map +1 -1
  229. package/dist/data/DataTable.cjs +9 -3
  230. package/dist/data/DataTable.cjs.map +1 -1
  231. package/dist/data/DataTable.d.ts +6 -0
  232. package/dist/data/DataTable.d.ts.map +1 -1
  233. package/dist/data/DataTable.js +9 -3
  234. package/dist/data/DataTable.js.map +1 -1
  235. package/dist/data/FixtureEditor/FixtureEditor.cjs +43 -24
  236. package/dist/data/FixtureEditor/FixtureEditor.cjs.map +1 -1
  237. package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -1
  238. package/dist/data/FixtureEditor/FixtureEditor.js +43 -24
  239. package/dist/data/FixtureEditor/FixtureEditor.js.map +1 -1
  240. package/dist/data/GraphDiagram.cjs +125 -138
  241. package/dist/data/GraphDiagram.cjs.map +1 -1
  242. package/dist/data/GraphDiagram.d.ts +30 -23
  243. package/dist/data/GraphDiagram.d.ts.map +1 -1
  244. package/dist/data/GraphDiagram.js +128 -141
  245. package/dist/data/GraphDiagram.js.map +1 -1
  246. package/dist/data/GraphDiagramEdges.cjs +208 -0
  247. package/dist/data/GraphDiagramEdges.cjs.map +1 -0
  248. package/dist/data/GraphDiagramEdges.d.ts +40 -0
  249. package/dist/data/GraphDiagramEdges.d.ts.map +1 -0
  250. package/dist/data/GraphDiagramEdges.js +208 -0
  251. package/dist/data/GraphDiagramEdges.js.map +1 -0
  252. package/dist/data/GraphDiagramNodes.cjs +142 -0
  253. package/dist/data/GraphDiagramNodes.cjs.map +1 -0
  254. package/dist/data/GraphDiagramNodes.d.ts +22 -0
  255. package/dist/data/GraphDiagramNodes.d.ts.map +1 -0
  256. package/dist/data/GraphDiagramNodes.js +142 -0
  257. package/dist/data/GraphDiagramNodes.js.map +1 -0
  258. package/dist/data/Tree.cjs +10 -2
  259. package/dist/data/Tree.cjs.map +1 -1
  260. package/dist/data/Tree.d.ts +6 -1
  261. package/dist/data/Tree.d.ts.map +1 -1
  262. package/dist/data/Tree.js +10 -2
  263. package/dist/data/Tree.js.map +1 -1
  264. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs +8 -3
  265. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs.map +1 -1
  266. package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts.map +1 -1
  267. package/dist/data/ai/PromptRunEditor/RuntimeRows.js +8 -3
  268. package/dist/data/ai/PromptRunEditor/RuntimeRows.js.map +1 -1
  269. package/dist/data/ai/PromptRunEditor/index.cjs +37 -43
  270. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  271. package/dist/data/ai/PromptRunEditor/index.d.ts +3 -1
  272. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  273. package/dist/data/ai/PromptRunEditor/index.js +38 -44
  274. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  275. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +16 -5
  276. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
  277. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +4 -1
  278. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
  279. package/dist/data/ai/PromptRunEditor/runtimeActions.js +17 -6
  280. package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
  281. package/dist/data/ai/SessionInspector.approvals-model.cjs +12 -0
  282. package/dist/data/ai/SessionInspector.approvals-model.cjs.map +1 -1
  283. package/dist/data/ai/SessionInspector.approvals-model.d.ts +11 -2
  284. package/dist/data/ai/SessionInspector.approvals-model.d.ts.map +1 -1
  285. package/dist/data/ai/SessionInspector.approvals-model.js +12 -0
  286. package/dist/data/ai/SessionInspector.approvals-model.js.map +1 -1
  287. package/dist/data/ai/SessionInspector.approvals.cjs +25 -1
  288. package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
  289. package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -1
  290. package/dist/data/ai/SessionInspector.approvals.js +26 -2
  291. package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
  292. package/dist/data/ai/SessionInspector.cjs +143 -167
  293. package/dist/data/ai/SessionInspector.cjs.map +1 -1
  294. package/dist/data/ai/SessionInspector.collection-types.d.ts +5 -0
  295. package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -1
  296. package/dist/data/ai/SessionInspector.collection.cjs +18 -5
  297. package/dist/data/ai/SessionInspector.collection.cjs.map +1 -1
  298. package/dist/data/ai/SessionInspector.collection.d.ts +2 -0
  299. package/dist/data/ai/SessionInspector.collection.d.ts.map +1 -1
  300. package/dist/data/ai/SessionInspector.collection.fixtures.d.ts +6 -0
  301. package/dist/data/ai/SessionInspector.collection.fixtures.d.ts.map +1 -0
  302. package/dist/data/ai/SessionInspector.collection.js +18 -5
  303. package/dist/data/ai/SessionInspector.collection.js.map +1 -1
  304. package/dist/data/ai/SessionInspector.d.ts +24 -2
  305. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  306. package/dist/data/ai/SessionInspector.hierarchy-state.cjs +105 -7
  307. package/dist/data/ai/SessionInspector.hierarchy-state.cjs.map +1 -1
  308. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +12 -1
  309. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts.map +1 -1
  310. package/dist/data/ai/SessionInspector.hierarchy-state.js +107 -9
  311. package/dist/data/ai/SessionInspector.hierarchy-state.js.map +1 -1
  312. package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
  313. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
  314. package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
  315. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
  316. package/dist/data/ai/SessionInspector.js +144 -168
  317. package/dist/data/ai/SessionInspector.js.map +1 -1
  318. package/dist/data/ai/SessionInspector.legacy.cjs +116 -0
  319. package/dist/data/ai/SessionInspector.legacy.cjs.map +1 -0
  320. package/dist/data/ai/SessionInspector.legacy.d.ts +19 -0
  321. package/dist/data/ai/SessionInspector.legacy.d.ts.map +1 -0
  322. package/dist/data/ai/SessionInspector.legacy.js +116 -0
  323. package/dist/data/ai/SessionInspector.legacy.js.map +1 -0
  324. package/dist/data/ai/SessionInspector.panels.cjs +3 -0
  325. package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
  326. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
  327. package/dist/data/ai/SessionInspector.panels.js +3 -0
  328. package/dist/data/ai/SessionInspector.panels.js.map +1 -1
  329. package/dist/data/ai/SessionInspector.plan.cjs +29 -12
  330. package/dist/data/ai/SessionInspector.plan.cjs.map +1 -1
  331. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -1
  332. package/dist/data/ai/SessionInspector.plan.js +30 -13
  333. package/dist/data/ai/SessionInspector.plan.js.map +1 -1
  334. package/dist/data/ai/SessionInspector.remote-view.cjs +44 -0
  335. package/dist/data/ai/SessionInspector.remote-view.cjs.map +1 -0
  336. package/dist/data/ai/SessionInspector.remote-view.d.ts +11 -0
  337. package/dist/data/ai/SessionInspector.remote-view.d.ts.map +1 -0
  338. package/dist/data/ai/SessionInspector.remote-view.js +44 -0
  339. package/dist/data/ai/SessionInspector.remote-view.js.map +1 -0
  340. package/dist/data/ai/SessionInspector.remote.cjs +275 -0
  341. package/dist/data/ai/SessionInspector.remote.cjs.map +1 -0
  342. package/dist/data/ai/SessionInspector.remote.d.ts +57 -0
  343. package/dist/data/ai/SessionInspector.remote.d.ts.map +1 -0
  344. package/dist/data/ai/SessionInspector.remote.js +275 -0
  345. package/dist/data/ai/SessionInspector.remote.js.map +1 -0
  346. package/dist/data/ai/SessionInspector.summary.cjs +9 -159
  347. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
  348. package/dist/data/ai/SessionInspector.summary.d.ts +0 -3
  349. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  350. package/dist/data/ai/SessionInspector.summary.js +11 -161
  351. package/dist/data/ai/SessionInspector.summary.js.map +1 -1
  352. package/dist/data/ai/SessionInspector.tab-state.cjs +15 -0
  353. package/dist/data/ai/SessionInspector.tab-state.cjs.map +1 -0
  354. package/dist/data/ai/SessionInspector.tab-state.d.ts +3 -0
  355. package/dist/data/ai/SessionInspector.tab-state.d.ts.map +1 -0
  356. package/dist/data/ai/SessionInspector.tab-state.js +15 -0
  357. package/dist/data/ai/SessionInspector.tab-state.js.map +1 -0
  358. package/dist/data/ai/SessionInspector.tabs.model.cjs +31 -18
  359. package/dist/data/ai/SessionInspector.tabs.model.cjs.map +1 -1
  360. package/dist/data/ai/SessionInspector.tabs.model.d.ts +3 -1
  361. package/dist/data/ai/SessionInspector.tabs.model.d.ts.map +1 -1
  362. package/dist/data/ai/SessionInspector.tabs.model.js +32 -19
  363. package/dist/data/ai/SessionInspector.tabs.model.js.map +1 -1
  364. package/dist/data/ai/SessionInspector.transcript.cjs +4 -0
  365. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -1
  366. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  367. package/dist/data/ai/SessionInspector.transcript.js +4 -0
  368. package/dist/data/ai/SessionInspector.transcript.js.map +1 -1
  369. package/dist/data/ai/SessionInspector.verification.cjs +53 -0
  370. package/dist/data/ai/SessionInspector.verification.cjs.map +1 -0
  371. package/dist/data/ai/SessionInspector.verification.d.ts +7 -0
  372. package/dist/data/ai/SessionInspector.verification.d.ts.map +1 -0
  373. package/dist/data/ai/SessionInspector.verification.js +53 -0
  374. package/dist/data/ai/SessionInspector.verification.js.map +1 -0
  375. package/dist/data/ai/SessionViewer.approval-body.cjs +146 -0
  376. package/dist/data/ai/SessionViewer.approval-body.cjs.map +1 -0
  377. package/dist/data/ai/SessionViewer.approval-body.d.ts +11 -0
  378. package/dist/data/ai/SessionViewer.approval-body.d.ts.map +1 -0
  379. package/dist/data/ai/SessionViewer.approval-body.js +146 -0
  380. package/dist/data/ai/SessionViewer.approval-body.js.map +1 -0
  381. package/dist/data/ai/SessionViewer.approval-forms.cjs +150 -0
  382. package/dist/data/ai/SessionViewer.approval-forms.cjs.map +1 -0
  383. package/dist/data/ai/SessionViewer.approval-forms.d.ts +23 -0
  384. package/dist/data/ai/SessionViewer.approval-forms.d.ts.map +1 -0
  385. package/dist/data/ai/SessionViewer.approval-forms.js +150 -0
  386. package/dist/data/ai/SessionViewer.approval-forms.js.map +1 -0
  387. package/dist/data/ai/SessionViewer.cjs +57 -20
  388. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  389. package/dist/data/ai/SessionViewer.d.ts +13 -3
  390. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  391. package/dist/data/ai/SessionViewer.decision-controls.cjs +313 -0
  392. package/dist/data/ai/SessionViewer.decision-controls.cjs.map +1 -0
  393. package/dist/data/ai/SessionViewer.decision-controls.d.ts +43 -0
  394. package/dist/data/ai/SessionViewer.decision-controls.d.ts.map +1 -0
  395. package/dist/data/ai/SessionViewer.decision-controls.js +313 -0
  396. package/dist/data/ai/SessionViewer.decision-controls.js.map +1 -0
  397. package/dist/data/ai/SessionViewer.decision.cjs +21 -0
  398. package/dist/data/ai/SessionViewer.decision.cjs.map +1 -0
  399. package/dist/data/ai/SessionViewer.decision.d.ts +12 -0
  400. package/dist/data/ai/SessionViewer.decision.d.ts.map +1 -0
  401. package/dist/data/ai/SessionViewer.decision.js +21 -0
  402. package/dist/data/ai/SessionViewer.decision.js.map +1 -0
  403. package/dist/data/ai/SessionViewer.input.cjs +14 -0
  404. package/dist/data/ai/SessionViewer.input.cjs.map +1 -1
  405. package/dist/data/ai/SessionViewer.input.d.ts +5 -0
  406. package/dist/data/ai/SessionViewer.input.d.ts.map +1 -1
  407. package/dist/data/ai/SessionViewer.input.js +14 -0
  408. package/dist/data/ai/SessionViewer.input.js.map +1 -1
  409. package/dist/data/ai/SessionViewer.js +58 -21
  410. package/dist/data/ai/SessionViewer.js.map +1 -1
  411. package/dist/data/ai/SessionViewer.model.cjs +7 -1
  412. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  413. package/dist/data/ai/SessionViewer.model.d.ts +25 -3
  414. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  415. package/dist/data/ai/SessionViewer.model.js +7 -1
  416. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  417. package/dist/data/ai/SessionViewer.rows.cjs +6 -3
  418. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  419. package/dist/data/ai/SessionViewer.rows.d.ts +2 -1
  420. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  421. package/dist/data/ai/SessionViewer.rows.js +6 -3
  422. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  423. package/dist/data/ai/SessionViewer.tool-row.cjs +29 -237
  424. package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
  425. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  426. package/dist/data/ai/SessionViewer.tool-row.js +27 -235
  427. package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
  428. package/dist/data/ai/SessionViewer.unified.d.ts +17 -0
  429. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  430. package/dist/data/ai/SessionViewerMenu.cjs +8 -2
  431. package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
  432. package/dist/data/ai/SessionViewerMenu.d.ts +4 -1
  433. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  434. package/dist/data/ai/SessionViewerMenu.js +8 -2
  435. package/dist/data/ai/SessionViewerMenu.js.map +1 -1
  436. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +28 -17
  437. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  438. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +10 -2
  439. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  440. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +29 -18
  441. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  442. package/dist/data/ai/SpecRuntimeEditor/index.cjs +9 -1
  443. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  444. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +9 -2
  445. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  446. package/dist/data/ai/SpecRuntimeEditor/index.js +9 -1
  447. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  448. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +1 -1
  449. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +1 -1
  450. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  451. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +8 -2
  452. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  453. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  454. package/dist/data/ai/SpecRuntimeEditor/update.cjs +14 -6
  455. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  456. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -0
  457. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  458. package/dist/data/ai/SpecRuntimeEditor/update.js +14 -6
  459. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  460. package/dist/data/ai/approval-request.cjs +75 -0
  461. package/dist/data/ai/approval-request.cjs.map +1 -0
  462. package/dist/data/ai/approval-request.d.ts +155 -0
  463. package/dist/data/ai/approval-request.d.ts.map +1 -0
  464. package/dist/data/ai/approval-request.js +75 -0
  465. package/dist/data/ai/approval-request.js.map +1 -0
  466. package/dist/data/ai/index.d.ts +6 -1
  467. package/dist/data/ai/index.d.ts.map +1 -1
  468. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs +125 -0
  469. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs.map +1 -0
  470. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts +11 -0
  471. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts.map +1 -0
  472. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js +125 -0
  473. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js.map +1 -0
  474. package/dist/data/ai/runtime-preset-menu/index.d.ts +3 -0
  475. package/dist/data/ai/runtime-preset-menu/index.d.ts.map +1 -0
  476. package/dist/data/ai/runtime-preset-menu/model.cjs +73 -0
  477. package/dist/data/ai/runtime-preset-menu/model.cjs.map +1 -0
  478. package/dist/data/ai/runtime-preset-menu/model.d.ts +13 -0
  479. package/dist/data/ai/runtime-preset-menu/model.d.ts.map +1 -0
  480. package/dist/data/ai/runtime-preset-menu/model.js +73 -0
  481. package/dist/data/ai/runtime-preset-menu/model.js.map +1 -0
  482. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs +149 -0
  483. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs.map +1 -0
  484. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts +15 -0
  485. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts.map +1 -0
  486. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js +149 -0
  487. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js.map +1 -0
  488. package/dist/data/ai/runtime-spec-fields.cjs +166 -0
  489. package/dist/data/ai/runtime-spec-fields.cjs.map +1 -0
  490. package/dist/data/ai/runtime-spec-fields.d.ts +13 -0
  491. package/dist/data/ai/runtime-spec-fields.d.ts.map +1 -0
  492. package/dist/data/ai/runtime-spec-fields.js +166 -0
  493. package/dist/data/ai/runtime-spec-fields.js.map +1 -0
  494. package/dist/data/ai/session-categories.cjs +4 -0
  495. package/dist/data/ai/session-categories.cjs.map +1 -1
  496. package/dist/data/ai/session-categories.d.ts +1 -0
  497. package/dist/data/ai/session-categories.d.ts.map +1 -1
  498. package/dist/data/ai/session-categories.js +4 -0
  499. package/dist/data/ai/session-categories.js.map +1 -1
  500. package/dist/data/ai/use-session-scroll.cjs +49 -21
  501. package/dist/data/ai/use-session-scroll.cjs.map +1 -1
  502. package/dist/data/ai/use-session-scroll.d.ts +2 -0
  503. package/dist/data/ai/use-session-scroll.d.ts.map +1 -1
  504. package/dist/data/ai/use-session-scroll.js +49 -21
  505. package/dist/data/ai/use-session-scroll.js.map +1 -1
  506. package/dist/data/chat/Chat.runtime.cjs +1 -1
  507. package/dist/data/chat/Chat.runtime.cjs.map +1 -1
  508. package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
  509. package/dist/data/chat/Chat.runtime.js +1 -1
  510. package/dist/data/chat/Chat.runtime.js.map +1 -1
  511. package/dist/data/graph-columns-layout.cjs +216 -0
  512. package/dist/data/graph-columns-layout.cjs.map +1 -0
  513. package/dist/data/graph-columns-layout.d.ts +56 -0
  514. package/dist/data/graph-columns-layout.d.ts.map +1 -0
  515. package/dist/data/graph-columns-layout.js +216 -0
  516. package/dist/data/graph-columns-layout.js.map +1 -0
  517. package/dist/data/graph-diagram-model.cjs +73 -0
  518. package/dist/data/graph-diagram-model.cjs.map +1 -0
  519. package/dist/data/graph-diagram-model.d.ts +90 -0
  520. package/dist/data/graph-diagram-model.d.ts.map +1 -0
  521. package/dist/data/graph-diagram-model.js +73 -0
  522. package/dist/data/graph-diagram-model.js.map +1 -0
  523. package/dist/data/graph-edge-routing.cjs +235 -0
  524. package/dist/data/graph-edge-routing.cjs.map +1 -0
  525. package/dist/data/graph-edge-routing.d.ts +73 -0
  526. package/dist/data/graph-edge-routing.d.ts.map +1 -0
  527. package/dist/data/graph-edge-routing.js +235 -0
  528. package/dist/data/graph-edge-routing.js.map +1 -0
  529. package/dist/data/graph-layout.cjs +0 -82
  530. package/dist/data/graph-layout.cjs.map +1 -1
  531. package/dist/data/graph-layout.d.ts +1 -28
  532. package/dist/data/graph-layout.d.ts.map +1 -1
  533. package/dist/data/graph-layout.js +1 -83
  534. package/dist/data/graph-layout.js.map +1 -1
  535. package/dist/data/har/HarPanel.cjs +129 -33
  536. package/dist/data/har/HarPanel.cjs.map +1 -1
  537. package/dist/data/har/HarPanel.d.ts +13 -1
  538. package/dist/data/har/HarPanel.d.ts.map +1 -1
  539. package/dist/data/har/HarPanel.js +130 -34
  540. package/dist/data/har/HarPanel.js.map +1 -1
  541. package/dist/data/har/fixtures.d.ts +12 -0
  542. package/dist/data/har/fixtures.d.ts.map +1 -1
  543. package/dist/data/har/types.d.ts +12 -0
  544. package/dist/data/har/types.d.ts.map +1 -1
  545. package/dist/data/runtime/RuntimeBar.cjs +67 -84
  546. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  547. package/dist/data/runtime/RuntimeBar.d.ts +4 -5
  548. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  549. package/dist/data/runtime/RuntimeBar.fields.cjs +170 -0
  550. package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -0
  551. package/dist/data/runtime/RuntimeBar.fields.d.ts +16 -0
  552. package/dist/data/runtime/RuntimeBar.fields.d.ts.map +1 -0
  553. package/dist/data/runtime/RuntimeBar.fields.js +170 -0
  554. package/dist/data/runtime/RuntimeBar.fields.js.map +1 -0
  555. package/dist/data/runtime/RuntimeBar.js +70 -87
  556. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  557. package/dist/data/runtime/RuntimeBar.selection.cjs +56 -0
  558. package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -0
  559. package/dist/data/runtime/RuntimeBar.selection.d.ts +20 -0
  560. package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -0
  561. package/dist/data/runtime/RuntimeBar.selection.js +56 -0
  562. package/dist/data/runtime/RuntimeBar.selection.js.map +1 -0
  563. package/dist/data/runtime/RuntimeBarActions.cjs +10 -6
  564. package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
  565. package/dist/data/runtime/RuntimeBarActions.d.ts +8 -1
  566. package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
  567. package/dist/data/runtime/RuntimeBarActions.js +10 -6
  568. package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
  569. package/dist/data/runtime/RuntimeBarIdentity.cjs +166 -0
  570. package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -0
  571. package/dist/data/runtime/RuntimeBarIdentity.d.ts +25 -0
  572. package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -0
  573. package/dist/data/runtime/RuntimeBarIdentity.js +166 -0
  574. package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -0
  575. package/dist/data/runtime/RuntimeBarLayout.cjs +95 -0
  576. package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -0
  577. package/dist/data/runtime/RuntimeBarLayout.d.ts +9 -0
  578. package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -0
  579. package/dist/data/runtime/RuntimeBarLayout.js +95 -0
  580. package/dist/data/runtime/RuntimeBarLayout.js.map +1 -0
  581. package/dist/data/runtime/RuntimeBarSegment.cjs +25 -14
  582. package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
  583. package/dist/data/runtime/RuntimeBarSegment.d.ts +4 -0
  584. package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
  585. package/dist/data/runtime/RuntimeBarSegment.js +25 -14
  586. package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
  587. package/dist/data/runtime/RuntimeLimitInput.cjs +41 -0
  588. package/dist/data/runtime/RuntimeLimitInput.cjs.map +1 -0
  589. package/dist/data/runtime/RuntimeLimitInput.d.ts +9 -0
  590. package/dist/data/runtime/RuntimeLimitInput.d.ts.map +1 -0
  591. package/dist/data/runtime/RuntimeLimitInput.js +41 -0
  592. package/dist/data/runtime/RuntimeLimitInput.js.map +1 -0
  593. package/dist/data/runtime/use-runtime-bar-overflow.cjs +70 -0
  594. package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -0
  595. package/dist/data/runtime/use-runtime-bar-overflow.d.ts +13 -0
  596. package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -0
  597. package/dist/data/runtime/use-runtime-bar-overflow.js +70 -0
  598. package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -0
  599. package/dist/data/use-edge-focus.cjs +20 -0
  600. package/dist/data/use-edge-focus.cjs.map +1 -0
  601. package/dist/data/use-edge-focus.d.ts +23 -0
  602. package/dist/data/use-edge-focus.d.ts.map +1 -0
  603. package/dist/data/use-edge-focus.js +20 -0
  604. package/dist/data/use-edge-focus.js.map +1 -0
  605. package/dist/data/use-pan-zoom.cjs +159 -0
  606. package/dist/data/use-pan-zoom.cjs.map +1 -0
  607. package/dist/data/use-pan-zoom.d.ts +79 -0
  608. package/dist/data/use-pan-zoom.d.ts.map +1 -0
  609. package/dist/data/use-pan-zoom.js +159 -0
  610. package/dist/data/use-pan-zoom.js.map +1 -0
  611. package/dist/data/version-info.cjs +3 -3
  612. package/dist/data/version-info.js +3 -3
  613. package/dist/data.cjs +5 -1
  614. package/dist/data.cjs.map +1 -1
  615. package/dist/data.d.ts +4 -3
  616. package/dist/data.d.ts.map +1 -1
  617. package/dist/data.js +6 -2
  618. package/dist/data.js.map +1 -1
  619. package/dist/devtools/useDebugStream.cjs +5 -1
  620. package/dist/devtools/useDebugStream.cjs.map +1 -1
  621. package/dist/devtools/useDebugStream.d.ts.map +1 -1
  622. package/dist/devtools/useDebugStream.js +6 -2
  623. package/dist/devtools/useDebugStream.js.map +1 -1
  624. package/dist/hooks/event-source-provider.cjs +9 -0
  625. package/dist/hooks/event-source-provider.cjs.map +1 -0
  626. package/dist/hooks/event-source-provider.d.ts +15 -0
  627. package/dist/hooks/event-source-provider.d.ts.map +1 -0
  628. package/dist/hooks/event-source-provider.js +9 -0
  629. package/dist/hooks/event-source-provider.js.map +1 -0
  630. package/dist/hooks/event-source.cjs +11 -0
  631. package/dist/hooks/event-source.cjs.map +1 -0
  632. package/dist/hooks/event-source.d.ts +22 -0
  633. package/dist/hooks/event-source.d.ts.map +1 -0
  634. package/dist/hooks/event-source.js +11 -0
  635. package/dist/hooks/event-source.js.map +1 -0
  636. package/dist/hooks/use-log-tail.cjs +5 -1
  637. package/dist/hooks/use-log-tail.cjs.map +1 -1
  638. package/dist/hooks/use-log-tail.d.ts.map +1 -1
  639. package/dist/hooks/use-log-tail.js +5 -1
  640. package/dist/hooks/use-log-tail.js.map +1 -1
  641. package/dist/hooks/use-prompts.cjs +5 -1
  642. package/dist/hooks/use-prompts.cjs.map +1 -1
  643. package/dist/hooks/use-prompts.d.ts.map +1 -1
  644. package/dist/hooks/use-prompts.js +6 -2
  645. package/dist/hooks/use-prompts.js.map +1 -1
  646. package/dist/hooks/use-task-run.cjs +9 -2
  647. package/dist/hooks/use-task-run.cjs.map +1 -1
  648. package/dist/hooks/use-task-run.d.ts.map +1 -1
  649. package/dist/hooks/use-task-run.js +10 -3
  650. package/dist/hooks/use-task-run.js.map +1 -1
  651. package/dist/hooks.cjs +4 -0
  652. package/dist/hooks.cjs.map +1 -1
  653. package/dist/hooks.d.ts +2 -0
  654. package/dist/hooks.d.ts.map +1 -1
  655. package/dist/hooks.js +4 -0
  656. package/dist/hooks.js.map +1 -1
  657. package/dist/icons/programmingCatalog.cjs +34 -34
  658. package/dist/icons/programmingCatalog.cjs.map +1 -1
  659. package/dist/icons/programmingCatalog.js +34 -34
  660. package/dist/icons/programmingCatalog.js.map +1 -1
  661. package/dist/index.cjs +14 -3
  662. package/dist/index.cjs.map +1 -1
  663. package/dist/index.js +14 -3
  664. package/dist/index.js.map +1 -1
  665. package/dist/monaco/MonacoEditor.cjs +4 -1
  666. package/dist/monaco/MonacoEditor.cjs.map +1 -1
  667. package/dist/monaco/MonacoEditor.d.ts +1 -1
  668. package/dist/monaco/MonacoEditor.d.ts.map +1 -1
  669. package/dist/monaco/MonacoEditor.js +4 -1
  670. package/dist/monaco/MonacoEditor.js.map +1 -1
  671. package/dist/monaco/types.d.ts +2 -1
  672. package/dist/monaco/types.d.ts.map +1 -1
  673. package/dist/overlay/CommandPalette.cjs +14 -4
  674. package/dist/overlay/CommandPalette.cjs.map +1 -1
  675. package/dist/overlay/CommandPalette.d.ts +5 -1
  676. package/dist/overlay/CommandPalette.d.ts.map +1 -1
  677. package/dist/overlay/CommandPalette.js +14 -4
  678. package/dist/overlay/CommandPalette.js.map +1 -1
  679. package/dist/overlay/CommandPaletteList.cjs +5 -0
  680. package/dist/overlay/CommandPaletteList.cjs.map +1 -1
  681. package/dist/overlay/CommandPaletteList.d.ts +4 -2
  682. package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
  683. package/dist/overlay/CommandPaletteList.js +5 -0
  684. package/dist/overlay/CommandPaletteList.js.map +1 -1
  685. package/dist/overlay/DropdownMenu.cjs +2 -0
  686. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  687. package/dist/overlay/DropdownMenu.d.ts +4 -0
  688. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  689. package/dist/overlay/DropdownMenu.js +2 -0
  690. package/dist/overlay/DropdownMenu.js.map +1 -1
  691. package/dist/overlay/DropdownMenuSubmenu.cjs +31 -15
  692. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  693. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  694. package/dist/overlay/DropdownMenuSubmenu.js +31 -15
  695. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  696. package/dist/rpc/OperationCatalog.cjs +32 -27
  697. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  698. package/dist/rpc/OperationCatalog.d.ts +11 -1
  699. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  700. package/dist/rpc/OperationCatalog.js +32 -27
  701. package/dist/rpc/OperationCatalog.js.map +1 -1
  702. package/dist/rpc/OperationEntityContextPicker.cjs +62 -256
  703. package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
  704. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  705. package/dist/rpc/OperationEntityContextPicker.js +64 -258
  706. package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
  707. package/dist/rpc/OperationEntityPicker.cjs +185 -0
  708. package/dist/rpc/OperationEntityPicker.cjs.map +1 -0
  709. package/dist/rpc/OperationEntityPicker.d.ts +51 -0
  710. package/dist/rpc/OperationEntityPicker.d.ts.map +1 -0
  711. package/dist/rpc/OperationEntityPicker.js +185 -0
  712. package/dist/rpc/OperationEntityPicker.js.map +1 -0
  713. package/dist/rpc/OperationEntityPicker.model.cjs +39 -0
  714. package/dist/rpc/OperationEntityPicker.model.cjs.map +1 -0
  715. package/dist/rpc/OperationEntityPicker.model.d.ts +27 -0
  716. package/dist/rpc/OperationEntityPicker.model.d.ts.map +1 -0
  717. package/dist/rpc/OperationEntityPicker.model.js +39 -0
  718. package/dist/rpc/OperationEntityPicker.model.js.map +1 -0
  719. package/dist/rpc/operationCatalogRowSelection.cjs +85 -0
  720. package/dist/rpc/operationCatalogRowSelection.cjs.map +1 -0
  721. package/dist/rpc/operationCatalogRowSelection.d.ts +57 -0
  722. package/dist/rpc/operationCatalogRowSelection.d.ts.map +1 -0
  723. package/dist/rpc/operationCatalogRowSelection.js +85 -0
  724. package/dist/rpc/operationCatalogRowSelection.js.map +1 -0
  725. package/dist/rpc/operationEntityPicker.fixtures.d.ts +13 -0
  726. package/dist/rpc/operationEntityPicker.fixtures.d.ts.map +1 -0
  727. package/dist/rpc/useOperationPages.cjs +6 -1
  728. package/dist/rpc/useOperationPages.cjs.map +1 -1
  729. package/dist/rpc/useOperationPages.d.ts +3 -1
  730. package/dist/rpc/useOperationPages.d.ts.map +1 -1
  731. package/dist/rpc/useOperationPages.js +6 -1
  732. package/dist/rpc/useOperationPages.js.map +1 -1
  733. package/dist/rpc.cjs +2 -0
  734. package/dist/rpc.cjs.map +1 -1
  735. package/dist/rpc.d.ts +2 -0
  736. package/dist/rpc.d.ts.map +1 -1
  737. package/dist/rpc.js +2 -0
  738. package/dist/rpc.js.map +1 -1
  739. package/dist/styles.css +1 -1
  740. package/package.json +4 -1
  741. package/schemas/json-schema-form.schema.json +571 -0
  742. package/dist/data/runtime/RuntimeBarCombo.cjs +0 -423
  743. package/dist/data/runtime/RuntimeBarCombo.cjs.map +0 -1
  744. package/dist/data/runtime/RuntimeBarCombo.d.ts +0 -33
  745. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +0 -1
  746. package/dist/data/runtime/RuntimeBarCombo.js +0 -423
  747. package/dist/data/runtime/RuntimeBarCombo.js.map +0 -1
  748. package/dist/data/runtime/RuntimeBarLimits.cjs +0 -262
  749. package/dist/data/runtime/RuntimeBarLimits.cjs.map +0 -1
  750. package/dist/data/runtime/RuntimeBarLimits.d.ts +0 -17
  751. package/dist/data/runtime/RuntimeBarLimits.d.ts.map +0 -1
  752. package/dist/data/runtime/RuntimeBarLimits.js +0 -262
  753. package/dist/data/runtime/RuntimeBarLimits.js.map +0 -1
  754. package/dist/data/runtime/RuntimeBarSegments.cjs +0 -346
  755. package/dist/data/runtime/RuntimeBarSegments.cjs.map +0 -1
  756. package/dist/data/runtime/RuntimeBarSegments.d.ts +0 -37
  757. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +0 -1
  758. package/dist/data/runtime/RuntimeBarSegments.js +0 -346
  759. package/dist/data/runtime/RuntimeBarSegments.js.map +0 -1
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const InputField = require("../../components/InputField.cjs");
5
+ const Icon = require("../Icon.cjs");
6
+ const RuntimeBarSegment = require("../runtime/RuntimeBarSegment.cjs");
7
+ const unspecified = require("../runtime/unspecified.cjs");
8
+ const runtimeActions = require("./PromptRunEditor/runtimeActions.cjs");
9
+ const update = require("./SpecRuntimeEditor/update.cjs");
10
+ const UiGitBranch = require("../../icons/components/UiGitBranch.cjs");
11
+ const UiGitCommit = require("../../icons/components/UiGitCommit.cjs");
12
+ const SOURCE_OPTIONS = [
13
+ { value: "new", label: "New worktree" },
14
+ { value: "existing", label: "Existing worktree" },
15
+ { value: "none", label: "HEAD" }
16
+ ];
17
+ const COMMIT_OPTIONS = [
18
+ { value: "none", label: "Never" },
19
+ { value: "turn", label: "Every turn" },
20
+ { value: "agent", label: "After the loop" },
21
+ { value: "run", label: "End of run" }
22
+ ];
23
+ function runtimeSpecFields({
24
+ value,
25
+ onChange,
26
+ families,
27
+ models = [],
28
+ effectiveMode,
29
+ effectiveModel
30
+ }) {
31
+ const permission = runtimeActions.permissionField({
32
+ spec: value,
33
+ families,
34
+ models,
35
+ effectiveMode,
36
+ effectiveModel,
37
+ onChange
38
+ });
39
+ return [
40
+ ...permission ? [{ ...permission, label: "Permission mode" }] : [],
41
+ sourceField({ value, onChange }),
42
+ commitField({ value, onChange })
43
+ ];
44
+ }
45
+ function sourceField({
46
+ value,
47
+ onChange
48
+ }) {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
50
+ const mode = (_c = (_b = (_a = value.setup) == null ? void 0 : _a.checkout) == null ? void 0 : _b.worktree) == null ? void 0 : _c.mode;
51
+ const label = ((_d = SOURCE_OPTIONS.find((option) => option.value === mode)) == null ? void 0 : _d.label) ?? unspecified.UNSPECIFIED_LABEL;
52
+ return {
53
+ id: "setup.checkout.worktree.mode",
54
+ label: "Source",
55
+ title: `Source — ${label}`,
56
+ icon: UiGitBranch.UiGitBranch,
57
+ isSet: Boolean(mode),
58
+ caption: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
59
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: RuntimeBarSegment.SEGMENT_KEY_CLASS, children: "Source" }),
60
+ /* @__PURE__ */ jsxRuntime.jsx(
61
+ Icon.Icon,
62
+ {
63
+ icon: UiGitBranch.UiGitBranch,
64
+ className: "size-4 shrink-0 text-muted-foreground"
65
+ }
66
+ ),
67
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: RuntimeBarSegment.SEGMENT_CAPTION_CLASS, children: label })
68
+ ] }),
69
+ ...mode === "existing" || mode === "new" ? {
70
+ header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1", children: [
71
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: RuntimeBarSegment.SEGMENT_KEY_CLASS, children: "Worktree path" }),
72
+ /* @__PURE__ */ jsxRuntime.jsx(
73
+ InputField.InputField,
74
+ {
75
+ "aria-label": "Worktree path",
76
+ value: ((_g = (_f = (_e = value.setup) == null ? void 0 : _e.checkout) == null ? void 0 : _f.worktree) == null ? void 0 : _g.path) ?? "",
77
+ invalid: mode === "existing" && !((_k = (_j = (_i = (_h = value.setup) == null ? void 0 : _h.checkout) == null ? void 0 : _i.worktree) == null ? void 0 : _j.path) == null ? void 0 : _k.trim()),
78
+ onChange: (path) => onChange(update.withWorktree(value, { path })),
79
+ inputClassName: "font-mono text-xs"
80
+ }
81
+ )
82
+ ] })
83
+ } : {},
84
+ items: [
85
+ {
86
+ label: /* @__PURE__ */ jsxRuntime.jsx(
87
+ RuntimeBarSegment.SegmentItemLabel,
88
+ {
89
+ text: unspecified.UNSPECIFIED_LABEL,
90
+ hint: unspecified.unspecifiedHint(),
91
+ selected: !mode
92
+ }
93
+ ),
94
+ onSelect: () => onChange(update.withWorktree(value, { mode: "" }))
95
+ },
96
+ ...SOURCE_OPTIONS.map((option) => ({
97
+ label: /* @__PURE__ */ jsxRuntime.jsx(
98
+ RuntimeBarSegment.SegmentItemLabel,
99
+ {
100
+ text: option.label,
101
+ selected: mode === option.value
102
+ }
103
+ ),
104
+ onSelect: () => onChange(update.withWorktreeMode(value, option.value))
105
+ }))
106
+ ]
107
+ };
108
+ }
109
+ function commitField({
110
+ value,
111
+ onChange
112
+ }) {
113
+ var _a;
114
+ const isSet = ((_a = value.workflow) == null ? void 0 : _a.commits) !== void 0;
115
+ const phase = update.commitPhase(value);
116
+ const label = isSet ? COMMIT_OPTIONS.find((option) => option.value === phase).label : unspecified.UNSPECIFIED_LABEL;
117
+ return {
118
+ id: "workflow.commits",
119
+ label: "Commit",
120
+ title: `Commit — ${label}`,
121
+ icon: UiGitCommit.UiGitCommit,
122
+ isSet,
123
+ caption: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
124
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: RuntimeBarSegment.SEGMENT_KEY_CLASS, children: "Commit" }),
125
+ /* @__PURE__ */ jsxRuntime.jsx(
126
+ Icon.Icon,
127
+ {
128
+ icon: UiGitCommit.UiGitCommit,
129
+ className: "size-4 shrink-0 text-muted-foreground"
130
+ }
131
+ ),
132
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: RuntimeBarSegment.SEGMENT_CAPTION_CLASS, children: label })
133
+ ] }),
134
+ items: [
135
+ {
136
+ label: /* @__PURE__ */ jsxRuntime.jsx(
137
+ RuntimeBarSegment.SegmentItemLabel,
138
+ {
139
+ text: unspecified.UNSPECIFIED_LABEL,
140
+ hint: unspecified.unspecifiedHint(),
141
+ selected: !isSet
142
+ }
143
+ ),
144
+ onSelect: () => {
145
+ const workflow = { ...value.workflow };
146
+ delete workflow.commits;
147
+ const next = { ...value, workflow };
148
+ if (Object.keys(workflow).length === 0) delete next.workflow;
149
+ onChange(next);
150
+ }
151
+ },
152
+ ...COMMIT_OPTIONS.map((option) => ({
153
+ label: /* @__PURE__ */ jsxRuntime.jsx(
154
+ RuntimeBarSegment.SegmentItemLabel,
155
+ {
156
+ text: option.label,
157
+ selected: isSet && phase === option.value
158
+ }
159
+ ),
160
+ onSelect: () => onChange(update.withCommitPhase(value, option.value))
161
+ }))
162
+ ]
163
+ };
164
+ }
165
+ exports.runtimeSpecFields = runtimeSpecFields;
166
+ //# sourceMappingURL=runtime-spec-fields.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-spec-fields.cjs","sources":["../../../src/data/ai/runtime-spec-fields.tsx"],"sourcesContent":["import { InputField } from \"../../components/InputField\";\nimport { UiGitBranch, UiGitCommit } from \"../../icons\";\nimport { Icon } from \"../Icon\";\nimport type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarAction } from \"../runtime/RuntimeBarActions\";\nimport {\n SEGMENT_CAPTION_CLASS,\n SEGMENT_KEY_CLASS,\n SegmentItemLabel,\n} from \"../runtime/RuntimeBarSegment\";\nimport type { SpecRuntimeFamily } from \"../runtime/runtime-mode\";\nimport { UNSPECIFIED_LABEL, unspecifiedHint } from \"../runtime/unspecified\";\nimport { permissionField } from \"./PromptRunEditor/runtimeActions\";\nimport type {\n AISpecRuntimeValue,\n SpecCommitPhase,\n SpecWorktreeMode,\n} from \"./SpecRuntimeEditor.model\";\nimport {\n commitPhase,\n withCommitPhase,\n withWorktree,\n withWorktreeMode,\n} from \"./SpecRuntimeEditor/update\";\n\nconst SOURCE_OPTIONS: { value: SpecWorktreeMode; label: string }[] = [\n { value: \"new\", label: \"New worktree\" },\n { value: \"existing\", label: \"Existing worktree\" },\n { value: \"none\", label: \"HEAD\" },\n];\nconst COMMIT_OPTIONS: { value: SpecCommitPhase | \"none\"; label: string }[] = [\n { value: \"none\", label: \"Never\" },\n { value: \"turn\", label: \"Every turn\" },\n { value: \"agent\", label: \"After the loop\" },\n { value: \"run\", label: \"End of run\" },\n];\n\nexport function runtimeSpecFields({\n value,\n onChange,\n families,\n models = [],\n effectiveMode,\n effectiveModel,\n}: {\n value: AISpecRuntimeValue;\n onChange: (next: AISpecRuntimeValue) => void;\n families: SpecRuntimeFamily[];\n models?: ChatModel[];\n effectiveMode?: string | undefined;\n effectiveModel?: string | undefined;\n}): RuntimeBarAction[] {\n const permission = permissionField({\n spec: value,\n families,\n models,\n effectiveMode,\n effectiveModel,\n onChange,\n });\n return [\n ...(permission ? [{ ...permission, label: \"Permission mode\" }] : []),\n sourceField({ value, onChange }),\n commitField({ value, onChange }),\n ];\n}\n\nfunction sourceField({\n value,\n onChange,\n}: {\n value: AISpecRuntimeValue;\n onChange: (next: AISpecRuntimeValue) => void;\n}): RuntimeBarAction {\n const mode = value.setup?.checkout?.worktree?.mode;\n const label =\n SOURCE_OPTIONS.find((option) => option.value === mode)?.label ??\n UNSPECIFIED_LABEL;\n return {\n id: \"setup.checkout.worktree.mode\",\n label: \"Source\",\n title: `Source — ${label}`,\n icon: UiGitBranch,\n isSet: Boolean(mode),\n caption: (\n <>\n <span className={SEGMENT_KEY_CLASS}>Source</span>\n <Icon\n icon={UiGitBranch}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <span className={SEGMENT_CAPTION_CLASS}>{label}</span>\n </>\n ),\n ...(mode === \"existing\" || mode === \"new\"\n ? {\n header: (\n <div className=\"grid gap-1\">\n <span className={SEGMENT_KEY_CLASS}>Worktree path</span>\n <InputField\n aria-label=\"Worktree path\"\n value={value.setup?.checkout?.worktree?.path ?? \"\"}\n invalid={\n mode === \"existing\" &&\n !value.setup?.checkout?.worktree?.path?.trim()\n }\n onChange={(path) => onChange(withWorktree(value, { path }))}\n inputClassName=\"font-mono text-xs\"\n />\n </div>\n ),\n }\n : {}),\n items: [\n {\n label: (\n <SegmentItemLabel\n text={UNSPECIFIED_LABEL}\n hint={unspecifiedHint()}\n selected={!mode}\n />\n ),\n onSelect: () => onChange(withWorktree(value, { mode: \"\" })),\n },\n ...SOURCE_OPTIONS.map((option) => ({\n label: (\n <SegmentItemLabel\n text={option.label}\n selected={mode === option.value}\n />\n ),\n onSelect: () => onChange(withWorktreeMode(value, option.value)),\n })),\n ],\n };\n}\n\nfunction commitField({\n value,\n onChange,\n}: {\n value: AISpecRuntimeValue;\n onChange: (next: AISpecRuntimeValue) => void;\n}): RuntimeBarAction {\n const isSet = value.workflow?.commits !== undefined;\n const phase = commitPhase(value);\n const label = isSet\n ? COMMIT_OPTIONS.find((option) => option.value === phase)!.label\n : UNSPECIFIED_LABEL;\n return {\n id: \"workflow.commits\",\n label: \"Commit\",\n title: `Commit — ${label}`,\n icon: UiGitCommit,\n isSet,\n caption: (\n <>\n <span className={SEGMENT_KEY_CLASS}>Commit</span>\n <Icon\n icon={UiGitCommit}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <span className={SEGMENT_CAPTION_CLASS}>{label}</span>\n </>\n ),\n items: [\n {\n label: (\n <SegmentItemLabel\n text={UNSPECIFIED_LABEL}\n hint={unspecifiedHint()}\n selected={!isSet}\n />\n ),\n onSelect: () => {\n const workflow = { ...value.workflow };\n delete workflow.commits;\n const next: AISpecRuntimeValue = { ...value, workflow };\n if (Object.keys(workflow).length === 0) delete next.workflow;\n onChange(next);\n },\n },\n ...COMMIT_OPTIONS.map((option) => ({\n label: (\n <SegmentItemLabel\n text={option.label}\n selected={isSet && phase === option.value}\n />\n ),\n onSelect: () => onChange(withCommitPhase(value, option.value)),\n })),\n ],\n };\n}\n"],"names":["permissionField","UNSPECIFIED_LABEL","UiGitBranch","jsxs","Fragment","jsx","SEGMENT_KEY_CLASS","Icon","SEGMENT_CAPTION_CLASS","InputField","withWorktree","SegmentItemLabel","unspecifiedHint","withWorktreeMode","commitPhase","UiGitCommit","withCommitPhase"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { ChatModel } from '../chat/types.js';
2
+ import { RuntimeBarAction } from '../runtime/RuntimeBarActions.js';
3
+ import { SpecRuntimeFamily } from '../runtime/runtime-mode.js';
4
+ import { AISpecRuntimeValue } from './SpecRuntimeEditor.model.js';
5
+ export declare function runtimeSpecFields({ value, onChange, families, models, effectiveMode, effectiveModel, }: {
6
+ value: AISpecRuntimeValue;
7
+ onChange: (next: AISpecRuntimeValue) => void;
8
+ families: SpecRuntimeFamily[];
9
+ models?: ChatModel[];
10
+ effectiveMode?: string | undefined;
11
+ effectiveModel?: string | undefined;
12
+ }): RuntimeBarAction[];
13
+ //# sourceMappingURL=runtime-spec-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-spec-fields.d.ts","sourceRoot":"","sources":["../../../src/data/ai/runtime-spec-fields.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,2BAA2B,CAAC;AAoBnC,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAW,EACX,aAAa,EACb,cAAc,GACf,EAAE;IACD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GAAG,gBAAgB,EAAE,CAcrB"}
@@ -0,0 +1,166 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { InputField } from "../../components/InputField.js";
3
+ import { Icon } from "../Icon.js";
4
+ import { SegmentItemLabel, SEGMENT_KEY_CLASS, SEGMENT_CAPTION_CLASS } from "../runtime/RuntimeBarSegment.js";
5
+ import { UNSPECIFIED_LABEL, unspecifiedHint } from "../runtime/unspecified.js";
6
+ import { permissionField } from "./PromptRunEditor/runtimeActions.js";
7
+ import { withWorktree, withWorktreeMode, commitPhase, withCommitPhase } from "./SpecRuntimeEditor/update.js";
8
+ import { UiGitBranch } from "../../icons/components/UiGitBranch.js";
9
+ import { UiGitCommit } from "../../icons/components/UiGitCommit.js";
10
+ const SOURCE_OPTIONS = [
11
+ { value: "new", label: "New worktree" },
12
+ { value: "existing", label: "Existing worktree" },
13
+ { value: "none", label: "HEAD" }
14
+ ];
15
+ const COMMIT_OPTIONS = [
16
+ { value: "none", label: "Never" },
17
+ { value: "turn", label: "Every turn" },
18
+ { value: "agent", label: "After the loop" },
19
+ { value: "run", label: "End of run" }
20
+ ];
21
+ function runtimeSpecFields({
22
+ value,
23
+ onChange,
24
+ families,
25
+ models = [],
26
+ effectiveMode,
27
+ effectiveModel
28
+ }) {
29
+ const permission = permissionField({
30
+ spec: value,
31
+ families,
32
+ models,
33
+ effectiveMode,
34
+ effectiveModel,
35
+ onChange
36
+ });
37
+ return [
38
+ ...permission ? [{ ...permission, label: "Permission mode" }] : [],
39
+ sourceField({ value, onChange }),
40
+ commitField({ value, onChange })
41
+ ];
42
+ }
43
+ function sourceField({
44
+ value,
45
+ onChange
46
+ }) {
47
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
48
+ const mode = (_c = (_b = (_a = value.setup) == null ? void 0 : _a.checkout) == null ? void 0 : _b.worktree) == null ? void 0 : _c.mode;
49
+ const label = ((_d = SOURCE_OPTIONS.find((option) => option.value === mode)) == null ? void 0 : _d.label) ?? UNSPECIFIED_LABEL;
50
+ return {
51
+ id: "setup.checkout.worktree.mode",
52
+ label: "Source",
53
+ title: `Source — ${label}`,
54
+ icon: UiGitBranch,
55
+ isSet: Boolean(mode),
56
+ caption: /* @__PURE__ */ jsxs(Fragment, { children: [
57
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_KEY_CLASS, children: "Source" }),
58
+ /* @__PURE__ */ jsx(
59
+ Icon,
60
+ {
61
+ icon: UiGitBranch,
62
+ className: "size-4 shrink-0 text-muted-foreground"
63
+ }
64
+ ),
65
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_CAPTION_CLASS, children: label })
66
+ ] }),
67
+ ...mode === "existing" || mode === "new" ? {
68
+ header: /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
69
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_KEY_CLASS, children: "Worktree path" }),
70
+ /* @__PURE__ */ jsx(
71
+ InputField,
72
+ {
73
+ "aria-label": "Worktree path",
74
+ value: ((_g = (_f = (_e = value.setup) == null ? void 0 : _e.checkout) == null ? void 0 : _f.worktree) == null ? void 0 : _g.path) ?? "",
75
+ invalid: mode === "existing" && !((_k = (_j = (_i = (_h = value.setup) == null ? void 0 : _h.checkout) == null ? void 0 : _i.worktree) == null ? void 0 : _j.path) == null ? void 0 : _k.trim()),
76
+ onChange: (path) => onChange(withWorktree(value, { path })),
77
+ inputClassName: "font-mono text-xs"
78
+ }
79
+ )
80
+ ] })
81
+ } : {},
82
+ items: [
83
+ {
84
+ label: /* @__PURE__ */ jsx(
85
+ SegmentItemLabel,
86
+ {
87
+ text: UNSPECIFIED_LABEL,
88
+ hint: unspecifiedHint(),
89
+ selected: !mode
90
+ }
91
+ ),
92
+ onSelect: () => onChange(withWorktree(value, { mode: "" }))
93
+ },
94
+ ...SOURCE_OPTIONS.map((option) => ({
95
+ label: /* @__PURE__ */ jsx(
96
+ SegmentItemLabel,
97
+ {
98
+ text: option.label,
99
+ selected: mode === option.value
100
+ }
101
+ ),
102
+ onSelect: () => onChange(withWorktreeMode(value, option.value))
103
+ }))
104
+ ]
105
+ };
106
+ }
107
+ function commitField({
108
+ value,
109
+ onChange
110
+ }) {
111
+ var _a;
112
+ const isSet = ((_a = value.workflow) == null ? void 0 : _a.commits) !== void 0;
113
+ const phase = commitPhase(value);
114
+ const label = isSet ? COMMIT_OPTIONS.find((option) => option.value === phase).label : UNSPECIFIED_LABEL;
115
+ return {
116
+ id: "workflow.commits",
117
+ label: "Commit",
118
+ title: `Commit — ${label}`,
119
+ icon: UiGitCommit,
120
+ isSet,
121
+ caption: /* @__PURE__ */ jsxs(Fragment, { children: [
122
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_KEY_CLASS, children: "Commit" }),
123
+ /* @__PURE__ */ jsx(
124
+ Icon,
125
+ {
126
+ icon: UiGitCommit,
127
+ className: "size-4 shrink-0 text-muted-foreground"
128
+ }
129
+ ),
130
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_CAPTION_CLASS, children: label })
131
+ ] }),
132
+ items: [
133
+ {
134
+ label: /* @__PURE__ */ jsx(
135
+ SegmentItemLabel,
136
+ {
137
+ text: UNSPECIFIED_LABEL,
138
+ hint: unspecifiedHint(),
139
+ selected: !isSet
140
+ }
141
+ ),
142
+ onSelect: () => {
143
+ const workflow = { ...value.workflow };
144
+ delete workflow.commits;
145
+ const next = { ...value, workflow };
146
+ if (Object.keys(workflow).length === 0) delete next.workflow;
147
+ onChange(next);
148
+ }
149
+ },
150
+ ...COMMIT_OPTIONS.map((option) => ({
151
+ label: /* @__PURE__ */ jsx(
152
+ SegmentItemLabel,
153
+ {
154
+ text: option.label,
155
+ selected: isSet && phase === option.value
156
+ }
157
+ ),
158
+ onSelect: () => onChange(withCommitPhase(value, option.value))
159
+ }))
160
+ ]
161
+ };
162
+ }
163
+ export {
164
+ runtimeSpecFields
165
+ };
166
+ //# sourceMappingURL=runtime-spec-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-spec-fields.js","sources":["../../../src/data/ai/runtime-spec-fields.tsx"],"sourcesContent":["import { InputField } from \"../../components/InputField\";\nimport { UiGitBranch, UiGitCommit } from \"../../icons\";\nimport { Icon } from \"../Icon\";\nimport type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarAction } from \"../runtime/RuntimeBarActions\";\nimport {\n SEGMENT_CAPTION_CLASS,\n SEGMENT_KEY_CLASS,\n SegmentItemLabel,\n} from \"../runtime/RuntimeBarSegment\";\nimport type { SpecRuntimeFamily } from \"../runtime/runtime-mode\";\nimport { UNSPECIFIED_LABEL, unspecifiedHint } from \"../runtime/unspecified\";\nimport { permissionField } from \"./PromptRunEditor/runtimeActions\";\nimport type {\n AISpecRuntimeValue,\n SpecCommitPhase,\n SpecWorktreeMode,\n} from \"./SpecRuntimeEditor.model\";\nimport {\n commitPhase,\n withCommitPhase,\n withWorktree,\n withWorktreeMode,\n} from \"./SpecRuntimeEditor/update\";\n\nconst SOURCE_OPTIONS: { value: SpecWorktreeMode; label: string }[] = [\n { value: \"new\", label: \"New worktree\" },\n { value: \"existing\", label: \"Existing worktree\" },\n { value: \"none\", label: \"HEAD\" },\n];\nconst COMMIT_OPTIONS: { value: SpecCommitPhase | \"none\"; label: string }[] = [\n { value: \"none\", label: \"Never\" },\n { value: \"turn\", label: \"Every turn\" },\n { value: \"agent\", label: \"After the loop\" },\n { value: \"run\", label: \"End of run\" },\n];\n\nexport function runtimeSpecFields({\n value,\n onChange,\n families,\n models = [],\n effectiveMode,\n effectiveModel,\n}: {\n value: AISpecRuntimeValue;\n onChange: (next: AISpecRuntimeValue) => void;\n families: SpecRuntimeFamily[];\n models?: ChatModel[];\n effectiveMode?: string | undefined;\n effectiveModel?: string | undefined;\n}): RuntimeBarAction[] {\n const permission = permissionField({\n spec: value,\n families,\n models,\n effectiveMode,\n effectiveModel,\n onChange,\n });\n return [\n ...(permission ? [{ ...permission, label: \"Permission mode\" }] : []),\n sourceField({ value, onChange }),\n commitField({ value, onChange }),\n ];\n}\n\nfunction sourceField({\n value,\n onChange,\n}: {\n value: AISpecRuntimeValue;\n onChange: (next: AISpecRuntimeValue) => void;\n}): RuntimeBarAction {\n const mode = value.setup?.checkout?.worktree?.mode;\n const label =\n SOURCE_OPTIONS.find((option) => option.value === mode)?.label ??\n UNSPECIFIED_LABEL;\n return {\n id: \"setup.checkout.worktree.mode\",\n label: \"Source\",\n title: `Source — ${label}`,\n icon: UiGitBranch,\n isSet: Boolean(mode),\n caption: (\n <>\n <span className={SEGMENT_KEY_CLASS}>Source</span>\n <Icon\n icon={UiGitBranch}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <span className={SEGMENT_CAPTION_CLASS}>{label}</span>\n </>\n ),\n ...(mode === \"existing\" || mode === \"new\"\n ? {\n header: (\n <div className=\"grid gap-1\">\n <span className={SEGMENT_KEY_CLASS}>Worktree path</span>\n <InputField\n aria-label=\"Worktree path\"\n value={value.setup?.checkout?.worktree?.path ?? \"\"}\n invalid={\n mode === \"existing\" &&\n !value.setup?.checkout?.worktree?.path?.trim()\n }\n onChange={(path) => onChange(withWorktree(value, { path }))}\n inputClassName=\"font-mono text-xs\"\n />\n </div>\n ),\n }\n : {}),\n items: [\n {\n label: (\n <SegmentItemLabel\n text={UNSPECIFIED_LABEL}\n hint={unspecifiedHint()}\n selected={!mode}\n />\n ),\n onSelect: () => onChange(withWorktree(value, { mode: \"\" })),\n },\n ...SOURCE_OPTIONS.map((option) => ({\n label: (\n <SegmentItemLabel\n text={option.label}\n selected={mode === option.value}\n />\n ),\n onSelect: () => onChange(withWorktreeMode(value, option.value)),\n })),\n ],\n };\n}\n\nfunction commitField({\n value,\n onChange,\n}: {\n value: AISpecRuntimeValue;\n onChange: (next: AISpecRuntimeValue) => void;\n}): RuntimeBarAction {\n const isSet = value.workflow?.commits !== undefined;\n const phase = commitPhase(value);\n const label = isSet\n ? COMMIT_OPTIONS.find((option) => option.value === phase)!.label\n : UNSPECIFIED_LABEL;\n return {\n id: \"workflow.commits\",\n label: \"Commit\",\n title: `Commit — ${label}`,\n icon: UiGitCommit,\n isSet,\n caption: (\n <>\n <span className={SEGMENT_KEY_CLASS}>Commit</span>\n <Icon\n icon={UiGitCommit}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <span className={SEGMENT_CAPTION_CLASS}>{label}</span>\n </>\n ),\n items: [\n {\n label: (\n <SegmentItemLabel\n text={UNSPECIFIED_LABEL}\n hint={unspecifiedHint()}\n selected={!isSet}\n />\n ),\n onSelect: () => {\n const workflow = { ...value.workflow };\n delete workflow.commits;\n const next: AISpecRuntimeValue = { ...value, workflow };\n if (Object.keys(workflow).length === 0) delete next.workflow;\n onChange(next);\n },\n },\n ...COMMIT_OPTIONS.map((option) => ({\n label: (\n <SegmentItemLabel\n text={option.label}\n selected={isSet && phase === option.value}\n />\n ),\n onSelect: () => onChange(withCommitPhase(value, option.value)),\n })),\n ],\n };\n}\n"],"names":[],"mappings":"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"}
@@ -214,6 +214,9 @@ function eventCategory(event) {
214
214
  if (event.kind !== "tool") return null;
215
215
  return classifyToolCategory(event.tool ?? "", event.toolInput);
216
216
  }
217
+ function isEncryptedReasoning(event) {
218
+ return event.kind === "thinking" && /^\d+ encrypted reasoning records? (?:at|over) \S/.test(event.text ?? "");
219
+ }
217
220
  function isEventVisible(event, v) {
218
221
  if (event.pending) return true;
219
222
  if (event.kind === "thinking") return v.showThinking;
@@ -249,5 +252,6 @@ exports.classifyCommand = classifyCommand;
249
252
  exports.classifyToolCategory = classifyToolCategory;
250
253
  exports.collectSessionFilters = collectSessionFilters;
251
254
  exports.eventCategory = eventCategory;
255
+ exports.isEncryptedReasoning = isEncryptedReasoning;
252
256
  exports.isEventVisible = isEventVisible;
253
257
  //# sourceMappingURL=session-categories.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-categories.cjs","sources":["../../../src/data/ai/session-categories.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport {\n UiBeaker,\n UiBox,\n UiBoxes,\n UiCloudDownload,\n UiEye,\n UiGitBranch,\n UiPackage,\n UiPencilSimpleLine,\n UiPlayCircle,\n UiQuestion,\n UiSearch,\n UiShieldCheck,\n UiStrategy,\n UiTrash,\n UiWrench,\n} from \"../../icons\";\nimport { getSessionAction, type SessionEvent } from \"./SessionViewer.model\";\n\n// ── Captain category taxonomy ───────────────────────────────────────────────\n// A faithful TypeScript port of captain's `pkg/bash` category classifier\n// (`category.go` + `category_config.yaml`) so the SessionViewer's filter mirrors\n// what `captain history --category` / `--tool` expose. A tool maps to a category\n// either directly (Read → explore, Edit → edit, …) or, for Bash, by classifying\n// the command string.\n\nexport type SessionCategory =\n | \"build\"\n | \"test\"\n | \"install\"\n | \"explore\"\n | \"lint\"\n | \"cleanup\"\n | \"git\"\n | \"docker\"\n | \"k8s\"\n | \"run\"\n | \"plan\"\n | \"edit\"\n | \"clarify\"\n | \"read\"\n | \"other\";\n\nexport const CATEGORY_LABELS: Record<SessionCategory, string> = {\n build: \"Build\",\n test: \"Test\",\n install: \"Install\",\n explore: \"Explore\",\n lint: \"Lint\",\n cleanup: \"Cleanup\",\n git: \"Git\",\n docker: \"Docker\",\n k8s: \"Kubernetes\",\n run: \"Run\",\n plan: \"Plan\",\n edit: \"Edit\",\n clarify: \"Clarify\",\n read: \"Read\",\n other: \"Other\",\n};\n\n// Per-category glyph, following the \"Agent Action Icons\" workflow palette — run\n// plays, plan strategizes, verify-adjacent categories (test/lint) carry their\n// own marks so the filter menu reads at a glance.\nexport const CATEGORY_ICONS: Record<SessionCategory, StaticIconComponent> = {\n build: UiPackage,\n test: UiBeaker,\n install: UiCloudDownload,\n explore: UiSearch,\n lint: UiShieldCheck,\n cleanup: UiTrash,\n git: UiGitBranch,\n docker: UiBox,\n k8s: UiBoxes,\n run: UiPlayCircle,\n plan: UiStrategy,\n edit: UiPencilSimpleLine,\n clarify: UiQuestion,\n read: UiEye,\n other: UiWrench,\n};\n\nconst CATEGORY_PRIORITY: Record<SessionCategory, number> = {\n install: 100,\n edit: 90,\n run: 80,\n test: 70,\n build: 60,\n cleanup: 50,\n docker: 40,\n k8s: 40,\n git: 30,\n explore: 20,\n lint: 20,\n plan: 20,\n read: 15,\n clarify: 10,\n other: 0,\n};\n\ninterface CategoryRule {\n tools?: string[];\n commands?: string[];\n patterns?: string[];\n}\n\n// Mirrors pkg/bash/category_config.yaml. Order is irrelevant — ties resolve by\n// match specificity, then priority, then category name (see chooseBetterMatch).\nconst CATEGORY_CONFIG: Array<[SessionCategory, CategoryRule]> = [\n [\n \"build\",\n {\n commands: [\"go build\", \"make build\", \"make all\", \"cargo build\", \"npm run build\", \"yarn build\", \"task build\", \"gradle build\", \"mvn compile\", \"mvn package\", \"dotnet build\", \"pnpm build\", \"bun build\", \"mage\", \"bazel build\", \"nx build\", \"turbo build\", \"javac\"],\n patterns: [\".*gradle.*(build|compile|bootJar|jar).*\", \".*mvn.*(compile|package)\", \"^go build\", \"^make\\\\s*$\", \"^make\\\\s+(build|all)\\\\b\", \"^cargo build\", \"^task build\"],\n },\n ],\n [\n \"test\",\n {\n commands: [\"go test\", \"pytest\", \"npm test\", \"yarn test\", \"task test\", \"make test\", \"cargo test\", \"mvn test\", \"gradle test\", \"vitest\", \"jest\", \"bun test\", \"dotnet test\", \"ginkgo\", \"gotestsum\", \"zig test\"],\n patterns: [\".*gradle.*test\", \".*mvn.*test\", \"^go test\", \"^pytest\", \"^npm (run )?test\", \"^make\\\\s+test\", \"^vitest\", \"^jest\", \"^bun test\", \"^ginkgo\", \"^gotestsum\"],\n },\n ],\n [\n \"install\",\n {\n commands: [\"npm install\", \"npm i\", \"yarn install\", \"yarn add\", \"go mod tidy\", \"go mod download\", \"go get\", \"pip install\", \"pip3 install\", \"cargo add\", \"brew install\", \"apt install\", \"apt-get install\", \"pnpm install\", \"pnpm add\", \"bun install\", \"bun add\", \"poetry install\", \"poetry add\", \"uv pip install\", \"pdm install\", \"pdm add\"],\n patterns: [\"^npm (install|i)\\\\b\", \"^yarn (install|add)\\\\b\", \"^pip3? install\", \"^go (mod tidy|mod download|get)\", \"^pnpm (install|add)\\\\b\", \"^bun (install|add)\\\\b\", \"^poetry (install|add)\\\\b\", \"^uv pip install\", \"^pdm (install|add)\\\\b\"],\n },\n ],\n [\n \"explore\",\n {\n tools: [\"Read\", \"Grep\", \"Glob\", \"LSP\", \"WebFetch\", \"WebSearch\"],\n commands: [\"ls\", \"md5\", \"echo\", \"find\", \"grep\", \"rg\", \"ag\", \"cat\", \"head\", \"tail\", \"less\", \"more\", \"tree\", \"wc\", \"file\", \"stat\", \"du\", \"df\", \"pwd\", \"which\", \"whereis\", \"type\", \"fd\", \"bat\", \"exa\", \"eza\", \"fzf\", \"jq\", \"yq\", \"ripgrep\", \"sd\", \"diff\", \"go list\", \"git status\", \"git diff\", \"git log\", \"ps\", \"printenv\", \"sed\"],\n patterns: [\"^ls\\\\b\", \"^find\\\\b\", \"^grep\\\\b\", \"^rg\\\\b\", \"^cat\\\\b\", \"^head\\\\b\", \"^tail\\\\b\", \"^tree\\\\b\", \"^fd\\\\b\", \"^bat\\\\b\", \"^exa\\\\b\", \"^eza\\\\b\", \"^jq\\\\b\", \"^yq\\\\b\", \"^diff\\\\b\", \"^go list\\\\b\", \"^git\\\\s+(status|diff|log)\\\\b\"],\n },\n ],\n [\n \"lint\",\n {\n commands: [\"golangci-lint\", \"eslint\", \"gofmt\", \"go fmt\", \"prettier\", \"black\", \"flake8\", \"pylint\", \"rubocop\", \"shellcheck\", \"task fmt\", \"make fmt\", \"make lint\", \"biome\", \"ruff\", \"mypy\", \"staticcheck\", \"buf lint\", \"deno lint\", \"oxlint\"],\n patterns: [\"lint\", \"^go fmt\", \"^gofmt\", \"^prettier\", \"^black\\\\b\", \"^biome\\\\b\", \"^ruff\\\\b\", \"^mypy\\\\b\", \"^staticcheck\\\\b\"],\n },\n ],\n [\n \"cleanup\",\n {\n commands: [\"rm\", \"rmdir\", \"git clean\", \"make clean\", \"cargo clean\", \"go clean\", \"npm cache clean\", \"docker prune\", \"docker system prune\"],\n patterns: [\"^rm\\\\b\", \"^rmdir\\\\b\", \"clean\\\\b\", \"prune\\\\b\"],\n },\n ],\n [\n \"git\",\n {\n commands: [\"git show\", \"git branch\", \"git checkout\", \"git switch\", \"git commit\", \"git push\", \"git pull\", \"git fetch\", \"git merge\", \"git rebase\", \"git stash\", \"git add\", \"git reset\", \"git clone\", \"git remote\", \"git tag\"],\n patterns: [\"^git\\\\b\"],\n },\n ],\n [\n \"docker\",\n {\n commands: [\"docker run\", \"docker build\", \"docker push\", \"docker pull\", \"docker ps\", \"docker images\", \"docker logs\", \"docker exec\", \"docker stop\", \"docker start\", \"docker rm\", \"docker rmi\", \"docker-compose\", \"podman\"],\n patterns: [\"^docker\\\\b\", \"^docker-compose\\\\b\", \"^podman\\\\b\"],\n },\n ],\n [\n \"k8s\",\n {\n commands: [\"kubectl\", \"helm\", \"k9s\", \"kubectx\", \"kubens\", \"kustomize\", \"minikube\", \"kind\"],\n patterns: [\"^kubectl\\\\b\", \"^helm\\\\b\", \"^k9s\\\\b\", \"^kubectx\\\\b\", \"^kubens\\\\b\", \"^kustomize\\\\b\", \"^minikube\\\\b\", \"^kind\\\\b\"],\n },\n ],\n [\n \"run\",\n {\n tools: [\"KillShell\"],\n commands: [\"go run\", \"python\", \"python3\", \"node\", \"bun run\", \"deno run\", \"ruby\", \"perl\", \"php\", \"java\"],\n patterns: [\".*gradle.*run.*\", \"^go run\\\\b\", \"^python3?\\\\b\", \"^node\\\\b\", \"^bun run\\\\b\", \"^deno run\\\\b\", \"^ruby\\\\b\", \"^perl\\\\b\", \"^php\\\\b\", \"^java\\\\s+-jar\\\\b\", \"^\\\\./[\\\\w.-]+\\\\.(sh|bash|py|rb|pl)$\", \"^bash\\\\s+\\\\S+\\\\.sh\"],\n },\n ],\n [\n \"plan\",\n {\n tools: [\"Task\", \"TodoWrite\", \"EnterPlanMode\"],\n commands: [\"task\", \"make help\", \"task explore\", \"task plan\", \"task todos\", \"task todo\"],\n patterns: [\"^task\\\\s*$\", \"^task\\\\s+--list\", \"^make\\\\s+help\"],\n },\n ],\n [\n \"edit\",\n {\n tools: [\"Edit\", \"Write\", \"NotebookEdit\"],\n commands: [\"mkdir\"],\n patterns: [\"sed.* -i\"],\n },\n ],\n [\"clarify\", { tools: [\"AskUserQuestion\", \"ExitPlanMode\", \"TaskOutput\"] }],\n];\n\nconst COMPILED: Array<[SessionCategory, RegExp[]]> = CATEGORY_CONFIG.map(([cat, rule]) => [\n cat,\n (rule.patterns ?? []).map((p) => new RegExp(p)),\n]);\n\ninterface CategoryMatch {\n category: SessionCategory;\n specificity: number;\n matched: boolean;\n}\n\n// Port of betterCategoryMatch: prefer higher match specificity, then higher\n// category priority, then the lexicographically smaller name.\nfunction chooseBetterMatch(current: CategoryMatch, candidate: CategoryMatch): CategoryMatch {\n if (!candidate.matched || candidate.category === \"other\") return current;\n if (!current.matched || current.category === \"other\") return candidate;\n if (candidate.specificity > current.specificity) return candidate;\n if (candidate.specificity < current.specificity) return current;\n const cp = CATEGORY_PRIORITY[candidate.category];\n const kp = CATEGORY_PRIORITY[current.category];\n if (cp > kp) return candidate;\n if (cp < kp) return current;\n return candidate.category < current.category ? candidate : current;\n}\n\n/** Classify a raw shell command, mirroring captain's `Classify`. */\nexport function classifyCommand(command: string): SessionCategory {\n const cmd = command.trim();\n if (!cmd) return \"other\";\n let best: CategoryMatch = { category: \"other\", specificity: 0, matched: false };\n for (const [cat, rule] of CATEGORY_CONFIG) {\n for (const prefix of rule.commands ?? []) {\n if (cmd === prefix || cmd.startsWith(`${prefix} `)) {\n best = chooseBetterMatch(best, { category: cat, specificity: prefix.length, matched: true });\n }\n }\n }\n for (const [cat, regexps] of COMPILED) {\n for (const re of regexps) {\n if (re.test(cmd)) {\n best = chooseBetterMatch(best, { category: cat, specificity: re.source.length, matched: true });\n }\n }\n }\n return best.category;\n}\n\nfunction classifyTool(tool: string): SessionCategory {\n for (const [cat, rule] of CATEGORY_CONFIG) {\n if (rule.tools?.includes(tool)) return cat;\n }\n return \"other\";\n}\n\nfunction inputString(input: Record<string, unknown> | undefined, key: string): string {\n return typeof input?.[key] === \"string\" ? (input[key] as string) : \"\";\n}\n\n/** Category for a tool invocation, mirroring captain's classifyToolUse: a\n * `.claude/plans/` path is plan; a Bash command falls through to command\n * classification when the tool itself is uncategorized. */\nexport function classifyToolCategory(tool: string, input?: Record<string, unknown>): SessionCategory {\n const filePath =\n inputString(input, \"file_path\") || inputString(input, \"notebook_path\") || inputString(input, \"path\");\n if (filePath.includes(\"/.claude/plans/\")) return \"plan\";\n const cat = classifyTool(tool);\n if (cat === \"other\" && tool === \"Bash\") return classifyCommand(inputString(input, \"command\"));\n return cat;\n}\n\n/** The category of a normalized event, or null for non-tool events. */\nexport function eventCategory(event: SessionEvent): SessionCategory | null {\n if (event.kind !== \"tool\") return null;\n return classifyToolCategory(event.tool ?? \"\", event.toolInput);\n}\n\nexport interface SessionFilters {\n /** Distinct categories present, ordered by descending impact priority. */\n categories: SessionCategory[];\n /** Distinct tools present, with display labels, ordered by label. */\n tools: Array<{ key: string; label: string }>;\n /** Distinct sources present (e.g. \"claude\", \"codex\"). */\n sources: string[];\n}\n\nexport interface SessionVisibility {\n hiddenCategories: ReadonlySet<SessionCategory>;\n hiddenTools: ReadonlySet<string>;\n hiddenSources: ReadonlySet<string>;\n /** When false, reasoning (\"thinking\") events are hidden. */\n showThinking: boolean;\n}\n\n/** Whether an event survives the active filters. Tool events are gated by their\n * tool, category and source; reasoning by `showThinking`; everything else\n * (user/assistant/error) is always shown. */\nexport function isEventVisible(event: SessionEvent, v: SessionVisibility): boolean {\n if (event.pending) return true;\n if (event.kind === \"thinking\") return v.showThinking;\n if (event.kind !== \"tool\") return true;\n const tool = event.tool ?? \"\";\n if (v.hiddenTools.has(tool)) return false;\n if (v.hiddenCategories.has(classifyToolCategory(tool, event.toolInput))) return false;\n if (event.source && v.hiddenSources.has(event.source)) return false;\n return true;\n}\n\n/** Collect the filter facets (category / tool / source) present in a session. */\nexport function collectSessionFilters(events: SessionEvent[]): SessionFilters {\n const categories = new Set<SessionCategory>();\n const tools = new Map<string, string>();\n const sources = new Set<string>();\n for (const event of events) {\n if (event.kind !== \"tool\") continue;\n const tool = event.tool ?? \"\";\n categories.add(classifyToolCategory(tool, event.toolInput));\n if (!tools.has(tool)) tools.set(tool, getSessionAction(tool).label);\n if (event.source) sources.add(event.source);\n }\n return {\n categories: [...categories].sort(\n (a, b) => CATEGORY_PRIORITY[b] - CATEGORY_PRIORITY[a] || a.localeCompare(b),\n ),\n tools: [...tools].map(([key, label]) => ({ key, label })).sort((a, b) => a.label.localeCompare(b.label)),\n sources: [...sources].sort(),\n };\n}\n"],"names":["UiPackage","UiBeaker","UiCloudDownload","UiSearch","UiShieldCheck","UiTrash","UiGitBranch","UiBox","UiBoxes","UiPlayCircle","UiStrategy","UiPencilSimpleLine","UiQuestion","UiEye","UiWrench","getSessionAction"],"mappings":"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"}
1
+ {"version":3,"file":"session-categories.cjs","sources":["../../../src/data/ai/session-categories.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport {\n UiBeaker,\n UiBox,\n UiBoxes,\n UiCloudDownload,\n UiEye,\n UiGitBranch,\n UiPackage,\n UiPencilSimpleLine,\n UiPlayCircle,\n UiQuestion,\n UiSearch,\n UiShieldCheck,\n UiStrategy,\n UiTrash,\n UiWrench,\n} from \"../../icons\";\nimport { getSessionAction, type SessionEvent } from \"./SessionViewer.model\";\n\n// ── Captain category taxonomy ───────────────────────────────────────────────\n// A faithful TypeScript port of captain's `pkg/bash` category classifier\n// (`category.go` + `category_config.yaml`) so the SessionViewer's filter mirrors\n// what `captain history --category` / `--tool` expose. A tool maps to a category\n// either directly (Read → explore, Edit → edit, …) or, for Bash, by classifying\n// the command string.\n\nexport type SessionCategory =\n | \"build\"\n | \"test\"\n | \"install\"\n | \"explore\"\n | \"lint\"\n | \"cleanup\"\n | \"git\"\n | \"docker\"\n | \"k8s\"\n | \"run\"\n | \"plan\"\n | \"edit\"\n | \"clarify\"\n | \"read\"\n | \"other\";\n\nexport const CATEGORY_LABELS: Record<SessionCategory, string> = {\n build: \"Build\",\n test: \"Test\",\n install: \"Install\",\n explore: \"Explore\",\n lint: \"Lint\",\n cleanup: \"Cleanup\",\n git: \"Git\",\n docker: \"Docker\",\n k8s: \"Kubernetes\",\n run: \"Run\",\n plan: \"Plan\",\n edit: \"Edit\",\n clarify: \"Clarify\",\n read: \"Read\",\n other: \"Other\",\n};\n\n// Per-category glyph, following the \"Agent Action Icons\" workflow palette — run\n// plays, plan strategizes, verify-adjacent categories (test/lint) carry their\n// own marks so the filter menu reads at a glance.\nexport const CATEGORY_ICONS: Record<SessionCategory, StaticIconComponent> = {\n build: UiPackage,\n test: UiBeaker,\n install: UiCloudDownload,\n explore: UiSearch,\n lint: UiShieldCheck,\n cleanup: UiTrash,\n git: UiGitBranch,\n docker: UiBox,\n k8s: UiBoxes,\n run: UiPlayCircle,\n plan: UiStrategy,\n edit: UiPencilSimpleLine,\n clarify: UiQuestion,\n read: UiEye,\n other: UiWrench,\n};\n\nconst CATEGORY_PRIORITY: Record<SessionCategory, number> = {\n install: 100,\n edit: 90,\n run: 80,\n test: 70,\n build: 60,\n cleanup: 50,\n docker: 40,\n k8s: 40,\n git: 30,\n explore: 20,\n lint: 20,\n plan: 20,\n read: 15,\n clarify: 10,\n other: 0,\n};\n\ninterface CategoryRule {\n tools?: string[];\n commands?: string[];\n patterns?: string[];\n}\n\n// Mirrors pkg/bash/category_config.yaml. Order is irrelevant — ties resolve by\n// match specificity, then priority, then category name (see chooseBetterMatch).\nconst CATEGORY_CONFIG: Array<[SessionCategory, CategoryRule]> = [\n [\n \"build\",\n {\n commands: [\"go build\", \"make build\", \"make all\", \"cargo build\", \"npm run build\", \"yarn build\", \"task build\", \"gradle build\", \"mvn compile\", \"mvn package\", \"dotnet build\", \"pnpm build\", \"bun build\", \"mage\", \"bazel build\", \"nx build\", \"turbo build\", \"javac\"],\n patterns: [\".*gradle.*(build|compile|bootJar|jar).*\", \".*mvn.*(compile|package)\", \"^go build\", \"^make\\\\s*$\", \"^make\\\\s+(build|all)\\\\b\", \"^cargo build\", \"^task build\"],\n },\n ],\n [\n \"test\",\n {\n commands: [\"go test\", \"pytest\", \"npm test\", \"yarn test\", \"task test\", \"make test\", \"cargo test\", \"mvn test\", \"gradle test\", \"vitest\", \"jest\", \"bun test\", \"dotnet test\", \"ginkgo\", \"gotestsum\", \"zig test\"],\n patterns: [\".*gradle.*test\", \".*mvn.*test\", \"^go test\", \"^pytest\", \"^npm (run )?test\", \"^make\\\\s+test\", \"^vitest\", \"^jest\", \"^bun test\", \"^ginkgo\", \"^gotestsum\"],\n },\n ],\n [\n \"install\",\n {\n commands: [\"npm install\", \"npm i\", \"yarn install\", \"yarn add\", \"go mod tidy\", \"go mod download\", \"go get\", \"pip install\", \"pip3 install\", \"cargo add\", \"brew install\", \"apt install\", \"apt-get install\", \"pnpm install\", \"pnpm add\", \"bun install\", \"bun add\", \"poetry install\", \"poetry add\", \"uv pip install\", \"pdm install\", \"pdm add\"],\n patterns: [\"^npm (install|i)\\\\b\", \"^yarn (install|add)\\\\b\", \"^pip3? install\", \"^go (mod tidy|mod download|get)\", \"^pnpm (install|add)\\\\b\", \"^bun (install|add)\\\\b\", \"^poetry (install|add)\\\\b\", \"^uv pip install\", \"^pdm (install|add)\\\\b\"],\n },\n ],\n [\n \"explore\",\n {\n tools: [\"Read\", \"Grep\", \"Glob\", \"LSP\", \"WebFetch\", \"WebSearch\"],\n commands: [\"ls\", \"md5\", \"echo\", \"find\", \"grep\", \"rg\", \"ag\", \"cat\", \"head\", \"tail\", \"less\", \"more\", \"tree\", \"wc\", \"file\", \"stat\", \"du\", \"df\", \"pwd\", \"which\", \"whereis\", \"type\", \"fd\", \"bat\", \"exa\", \"eza\", \"fzf\", \"jq\", \"yq\", \"ripgrep\", \"sd\", \"diff\", \"go list\", \"git status\", \"git diff\", \"git log\", \"ps\", \"printenv\", \"sed\"],\n patterns: [\"^ls\\\\b\", \"^find\\\\b\", \"^grep\\\\b\", \"^rg\\\\b\", \"^cat\\\\b\", \"^head\\\\b\", \"^tail\\\\b\", \"^tree\\\\b\", \"^fd\\\\b\", \"^bat\\\\b\", \"^exa\\\\b\", \"^eza\\\\b\", \"^jq\\\\b\", \"^yq\\\\b\", \"^diff\\\\b\", \"^go list\\\\b\", \"^git\\\\s+(status|diff|log)\\\\b\"],\n },\n ],\n [\n \"lint\",\n {\n commands: [\"golangci-lint\", \"eslint\", \"gofmt\", \"go fmt\", \"prettier\", \"black\", \"flake8\", \"pylint\", \"rubocop\", \"shellcheck\", \"task fmt\", \"make fmt\", \"make lint\", \"biome\", \"ruff\", \"mypy\", \"staticcheck\", \"buf lint\", \"deno lint\", \"oxlint\"],\n patterns: [\"lint\", \"^go fmt\", \"^gofmt\", \"^prettier\", \"^black\\\\b\", \"^biome\\\\b\", \"^ruff\\\\b\", \"^mypy\\\\b\", \"^staticcheck\\\\b\"],\n },\n ],\n [\n \"cleanup\",\n {\n commands: [\"rm\", \"rmdir\", \"git clean\", \"make clean\", \"cargo clean\", \"go clean\", \"npm cache clean\", \"docker prune\", \"docker system prune\"],\n patterns: [\"^rm\\\\b\", \"^rmdir\\\\b\", \"clean\\\\b\", \"prune\\\\b\"],\n },\n ],\n [\n \"git\",\n {\n commands: [\"git show\", \"git branch\", \"git checkout\", \"git switch\", \"git commit\", \"git push\", \"git pull\", \"git fetch\", \"git merge\", \"git rebase\", \"git stash\", \"git add\", \"git reset\", \"git clone\", \"git remote\", \"git tag\"],\n patterns: [\"^git\\\\b\"],\n },\n ],\n [\n \"docker\",\n {\n commands: [\"docker run\", \"docker build\", \"docker push\", \"docker pull\", \"docker ps\", \"docker images\", \"docker logs\", \"docker exec\", \"docker stop\", \"docker start\", \"docker rm\", \"docker rmi\", \"docker-compose\", \"podman\"],\n patterns: [\"^docker\\\\b\", \"^docker-compose\\\\b\", \"^podman\\\\b\"],\n },\n ],\n [\n \"k8s\",\n {\n commands: [\"kubectl\", \"helm\", \"k9s\", \"kubectx\", \"kubens\", \"kustomize\", \"minikube\", \"kind\"],\n patterns: [\"^kubectl\\\\b\", \"^helm\\\\b\", \"^k9s\\\\b\", \"^kubectx\\\\b\", \"^kubens\\\\b\", \"^kustomize\\\\b\", \"^minikube\\\\b\", \"^kind\\\\b\"],\n },\n ],\n [\n \"run\",\n {\n tools: [\"KillShell\"],\n commands: [\"go run\", \"python\", \"python3\", \"node\", \"bun run\", \"deno run\", \"ruby\", \"perl\", \"php\", \"java\"],\n patterns: [\".*gradle.*run.*\", \"^go run\\\\b\", \"^python3?\\\\b\", \"^node\\\\b\", \"^bun run\\\\b\", \"^deno run\\\\b\", \"^ruby\\\\b\", \"^perl\\\\b\", \"^php\\\\b\", \"^java\\\\s+-jar\\\\b\", \"^\\\\./[\\\\w.-]+\\\\.(sh|bash|py|rb|pl)$\", \"^bash\\\\s+\\\\S+\\\\.sh\"],\n },\n ],\n [\n \"plan\",\n {\n tools: [\"Task\", \"TodoWrite\", \"EnterPlanMode\"],\n commands: [\"task\", \"make help\", \"task explore\", \"task plan\", \"task todos\", \"task todo\"],\n patterns: [\"^task\\\\s*$\", \"^task\\\\s+--list\", \"^make\\\\s+help\"],\n },\n ],\n [\n \"edit\",\n {\n tools: [\"Edit\", \"Write\", \"NotebookEdit\"],\n commands: [\"mkdir\"],\n patterns: [\"sed.* -i\"],\n },\n ],\n [\"clarify\", { tools: [\"AskUserQuestion\", \"ExitPlanMode\", \"TaskOutput\"] }],\n];\n\nconst COMPILED: Array<[SessionCategory, RegExp[]]> = CATEGORY_CONFIG.map(([cat, rule]) => [\n cat,\n (rule.patterns ?? []).map((p) => new RegExp(p)),\n]);\n\ninterface CategoryMatch {\n category: SessionCategory;\n specificity: number;\n matched: boolean;\n}\n\n// Port of betterCategoryMatch: prefer higher match specificity, then higher\n// category priority, then the lexicographically smaller name.\nfunction chooseBetterMatch(current: CategoryMatch, candidate: CategoryMatch): CategoryMatch {\n if (!candidate.matched || candidate.category === \"other\") return current;\n if (!current.matched || current.category === \"other\") return candidate;\n if (candidate.specificity > current.specificity) return candidate;\n if (candidate.specificity < current.specificity) return current;\n const cp = CATEGORY_PRIORITY[candidate.category];\n const kp = CATEGORY_PRIORITY[current.category];\n if (cp > kp) return candidate;\n if (cp < kp) return current;\n return candidate.category < current.category ? candidate : current;\n}\n\n/** Classify a raw shell command, mirroring captain's `Classify`. */\nexport function classifyCommand(command: string): SessionCategory {\n const cmd = command.trim();\n if (!cmd) return \"other\";\n let best: CategoryMatch = { category: \"other\", specificity: 0, matched: false };\n for (const [cat, rule] of CATEGORY_CONFIG) {\n for (const prefix of rule.commands ?? []) {\n if (cmd === prefix || cmd.startsWith(`${prefix} `)) {\n best = chooseBetterMatch(best, { category: cat, specificity: prefix.length, matched: true });\n }\n }\n }\n for (const [cat, regexps] of COMPILED) {\n for (const re of regexps) {\n if (re.test(cmd)) {\n best = chooseBetterMatch(best, { category: cat, specificity: re.source.length, matched: true });\n }\n }\n }\n return best.category;\n}\n\nfunction classifyTool(tool: string): SessionCategory {\n for (const [cat, rule] of CATEGORY_CONFIG) {\n if (rule.tools?.includes(tool)) return cat;\n }\n return \"other\";\n}\n\nfunction inputString(input: Record<string, unknown> | undefined, key: string): string {\n return typeof input?.[key] === \"string\" ? (input[key] as string) : \"\";\n}\n\n/** Category for a tool invocation, mirroring captain's classifyToolUse: a\n * `.claude/plans/` path is plan; a Bash command falls through to command\n * classification when the tool itself is uncategorized. */\nexport function classifyToolCategory(tool: string, input?: Record<string, unknown>): SessionCategory {\n const filePath =\n inputString(input, \"file_path\") || inputString(input, \"notebook_path\") || inputString(input, \"path\");\n if (filePath.includes(\"/.claude/plans/\")) return \"plan\";\n const cat = classifyTool(tool);\n if (cat === \"other\" && tool === \"Bash\") return classifyCommand(inputString(input, \"command\"));\n return cat;\n}\n\n/** The category of a normalized event, or null for non-tool events. */\nexport function eventCategory(event: SessionEvent): SessionCategory | null {\n if (event.kind !== \"tool\") return null;\n return classifyToolCategory(event.tool ?? \"\", event.toolInput);\n}\n\nexport interface SessionFilters {\n /** Distinct categories present, ordered by descending impact priority. */\n categories: SessionCategory[];\n /** Distinct tools present, with display labels, ordered by label. */\n tools: Array<{ key: string; label: string }>;\n /** Distinct sources present (e.g. \"claude\", \"codex\"). */\n sources: string[];\n}\n\nexport interface SessionVisibility {\n hiddenCategories: ReadonlySet<SessionCategory>;\n hiddenTools: ReadonlySet<string>;\n hiddenSources: ReadonlySet<string>;\n /** When false, reasoning (\"thinking\") events are hidden. */\n showThinking: boolean;\n}\n\nexport function isEncryptedReasoning(event: SessionEvent): boolean {\n return event.kind === \"thinking\" && /^\\d+ encrypted reasoning records? (?:at|over) \\S/.test(event.text ?? \"\");\n}\n\n/** Whether an event survives the active filters. Tool events are gated by their\n * tool, category and source; reasoning by `showThinking`; everything else\n * (user/assistant/error) is always shown. */\nexport function isEventVisible(event: SessionEvent, v: SessionVisibility): boolean {\n if (event.pending) return true;\n if (event.kind === \"thinking\") return v.showThinking;\n if (event.kind !== \"tool\") return true;\n const tool = event.tool ?? \"\";\n if (v.hiddenTools.has(tool)) return false;\n if (v.hiddenCategories.has(classifyToolCategory(tool, event.toolInput))) return false;\n if (event.source && v.hiddenSources.has(event.source)) return false;\n return true;\n}\n\n/** Collect the filter facets (category / tool / source) present in a session. */\nexport function collectSessionFilters(events: SessionEvent[]): SessionFilters {\n const categories = new Set<SessionCategory>();\n const tools = new Map<string, string>();\n const sources = new Set<string>();\n for (const event of events) {\n if (event.kind !== \"tool\") continue;\n const tool = event.tool ?? \"\";\n categories.add(classifyToolCategory(tool, event.toolInput));\n if (!tools.has(tool)) tools.set(tool, getSessionAction(tool).label);\n if (event.source) sources.add(event.source);\n }\n return {\n categories: [...categories].sort(\n (a, b) => CATEGORY_PRIORITY[b] - CATEGORY_PRIORITY[a] || a.localeCompare(b),\n ),\n tools: [...tools].map(([key, label]) => ({ key, label })).sort((a, b) => a.label.localeCompare(b.label)),\n sources: [...sources].sort(),\n };\n}\n"],"names":["UiPackage","UiBeaker","UiCloudDownload","UiSearch","UiShieldCheck","UiTrash","UiGitBranch","UiBox","UiBoxes","UiPlayCircle","UiStrategy","UiPencilSimpleLine","UiQuestion","UiEye","UiWrench","getSessionAction"],"mappings":"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"}
@@ -29,6 +29,7 @@ export interface SessionVisibility {
29
29
  /** When false, reasoning ("thinking") events are hidden. */
30
30
  showThinking: boolean;
31
31
  }
32
+ export declare function isEncryptedReasoning(event: SessionEvent): boolean;
32
33
  /** Whether an event survives the active filters. Tool events are gated by their
33
34
  * tool, category and source; reasoning by `showThinking`; everything else
34
35
  * (user/assistant/error) is always shown. */
@@ -1 +1 @@
1
- {"version":3,"file":"session-categories.d.ts","sourceRoot":"","sources":["../../../src/data/ai/session-categories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAkBnD,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAS5E,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AAEZ,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAgB3D,CAAC;AAKF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAgBvE,CAAC;AAiJF,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAmBhE;AAaD;;4DAE4D;AAC5D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAOnG;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI,CAGzE;AAED,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,qEAAqE;IACrE,KAAK,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAC/C,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;8CAE8C;AAC9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CASjF;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,CAkB5E"}
1
+ {"version":3,"file":"session-categories.d.ts","sourceRoot":"","sources":["../../../src/data/ai/session-categories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAkBnD,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAS5E,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AAEZ,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAgB3D,CAAC;AAKF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAgBvE,CAAC;AAiJF,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAmBhE;AAaD;;4DAE4D;AAC5D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAOnG;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI,CAGzE;AAED,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,qEAAqE;IACrE,KAAK,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAC/C,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEjE;AAED;;8CAE8C;AAC9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CASjF;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,CAkB5E"}
@@ -212,6 +212,9 @@ function eventCategory(event) {
212
212
  if (event.kind !== "tool") return null;
213
213
  return classifyToolCategory(event.tool ?? "", event.toolInput);
214
214
  }
215
+ function isEncryptedReasoning(event) {
216
+ return event.kind === "thinking" && /^\d+ encrypted reasoning records? (?:at|over) \S/.test(event.text ?? "");
217
+ }
215
218
  function isEventVisible(event, v) {
216
219
  if (event.pending) return true;
217
220
  if (event.kind === "thinking") return v.showThinking;
@@ -248,6 +251,7 @@ export {
248
251
  classifyToolCategory,
249
252
  collectSessionFilters,
250
253
  eventCategory,
254
+ isEncryptedReasoning,
251
255
  isEventVisible
252
256
  };
253
257
  //# sourceMappingURL=session-categories.js.map