@flanksource/clicky-ui 0.3.15 → 0.3.17

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 (823) hide show
  1. package/NOTICE.md +10 -0
  2. package/dist/ai.cjs +33 -4
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +31 -2
  5. package/dist/ai.js.map +1 -1
  6. package/dist/chat.cjs +6 -0
  7. package/dist/chat.cjs.map +1 -1
  8. package/dist/chat.js +7 -1
  9. package/dist/chat.js.map +1 -1
  10. package/dist/components/Combobox.cjs +92 -170
  11. package/dist/components/Combobox.cjs.map +1 -1
  12. package/dist/components/Combobox.d.ts +2 -111
  13. package/dist/components/Combobox.d.ts.map +1 -1
  14. package/dist/components/Combobox.js +95 -173
  15. package/dist/components/Combobox.js.map +1 -1
  16. package/dist/components/ComboboxActions.cjs +70 -0
  17. package/dist/components/ComboboxActions.cjs.map +1 -0
  18. package/dist/components/ComboboxActions.d.ts +8 -0
  19. package/dist/components/ComboboxActions.d.ts.map +1 -0
  20. package/dist/components/ComboboxActions.js +70 -0
  21. package/dist/components/ComboboxActions.js.map +1 -0
  22. package/dist/components/ComboboxMenu.cjs +160 -0
  23. package/dist/components/ComboboxMenu.cjs.map +1 -0
  24. package/dist/components/ComboboxMenu.d.ts +22 -0
  25. package/dist/components/ComboboxMenu.d.ts.map +1 -0
  26. package/dist/components/ComboboxMenu.js +160 -0
  27. package/dist/components/ComboboxMenu.js.map +1 -0
  28. package/dist/components/EndpointSelector.cjs +407 -0
  29. package/dist/components/EndpointSelector.cjs.map +1 -0
  30. package/dist/components/EndpointSelector.d.ts +3 -0
  31. package/dist/components/EndpointSelector.d.ts.map +1 -0
  32. package/dist/components/EndpointSelector.js +407 -0
  33. package/dist/components/EndpointSelector.js.map +1 -0
  34. package/dist/components/EndpointSelector.model.d.ts +52 -0
  35. package/dist/components/EndpointSelector.model.d.ts.map +1 -0
  36. package/dist/components/FilterBar.cjs +12 -0
  37. package/dist/components/FilterBar.cjs.map +1 -1
  38. package/dist/components/FilterBar.d.ts +4 -0
  39. package/dist/components/FilterBar.d.ts.map +1 -1
  40. package/dist/components/FilterBar.js +12 -0
  41. package/dist/components/FilterBar.js.map +1 -1
  42. package/dist/components/InputField.cjs +11 -12
  43. package/dist/components/InputField.cjs.map +1 -1
  44. package/dist/components/InputField.d.ts +7 -0
  45. package/dist/components/InputField.d.ts.map +1 -1
  46. package/dist/components/InputField.js +12 -13
  47. package/dist/components/InputField.js.map +1 -1
  48. package/dist/components/JsonSchemaForm.cjs +22 -16
  49. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  50. package/dist/components/JsonSchemaForm.d.ts +1 -1
  51. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  52. package/dist/components/JsonSchemaForm.js +22 -16
  53. package/dist/components/JsonSchemaForm.js.map +1 -1
  54. package/dist/components/MultiSelect.cjs +3 -3
  55. package/dist/components/MultiSelect.cjs.map +1 -1
  56. package/dist/components/MultiSelect.d.ts.map +1 -1
  57. package/dist/components/MultiSelect.js +3 -3
  58. package/dist/components/MultiSelect.js.map +1 -1
  59. package/dist/components/SecretKeySelector.cjs +150 -77
  60. package/dist/components/SecretKeySelector.cjs.map +1 -1
  61. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  62. package/dist/components/SecretKeySelector.js +151 -78
  63. package/dist/components/SecretKeySelector.js.map +1 -1
  64. package/dist/components/WorkloadPicker.cjs +2 -1
  65. package/dist/components/WorkloadPicker.cjs.map +1 -1
  66. package/dist/components/WorkloadPicker.d.ts +6 -1
  67. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  68. package/dist/components/WorkloadPicker.js +2 -1
  69. package/dist/components/WorkloadPicker.js.map +1 -1
  70. package/dist/components/combobox-types.d.ts +107 -0
  71. package/dist/components/combobox-types.d.ts.map +1 -0
  72. package/dist/components/combobox-utils.cjs +21 -0
  73. package/dist/components/combobox-utils.cjs.map +1 -0
  74. package/dist/components/combobox-utils.d.ts +15 -0
  75. package/dist/components/combobox-utils.d.ts.map +1 -0
  76. package/dist/components/combobox-utils.js +21 -0
  77. package/dist/components/combobox-utils.js.map +1 -0
  78. package/dist/components/endpoint-port.cjs +12 -0
  79. package/dist/components/endpoint-port.cjs.map +1 -0
  80. package/dist/components/endpoint-port.d.ts +4 -0
  81. package/dist/components/endpoint-port.d.ts.map +1 -0
  82. package/dist/components/endpoint-port.js +12 -0
  83. package/dist/components/endpoint-port.js.map +1 -0
  84. package/dist/components/json-schema-form-array.cjs +12 -23
  85. package/dist/components/json-schema-form-array.cjs.map +1 -1
  86. package/dist/components/json-schema-form-array.d.ts +1 -1
  87. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  88. package/dist/components/json-schema-form-array.js +12 -23
  89. package/dist/components/json-schema-form-array.js.map +1 -1
  90. package/dist/components/json-schema-form-discriminator.cjs +6 -2
  91. package/dist/components/json-schema-form-discriminator.cjs.map +1 -1
  92. package/dist/components/json-schema-form-discriminator.d.ts.map +1 -1
  93. package/dist/components/json-schema-form-discriminator.js +6 -2
  94. package/dist/components/json-schema-form-discriminator.js.map +1 -1
  95. package/dist/components/json-schema-form-error-display.cjs +50 -0
  96. package/dist/components/json-schema-form-error-display.cjs.map +1 -0
  97. package/dist/components/json-schema-form-error-display.d.ts +12 -0
  98. package/dist/components/json-schema-form-error-display.d.ts.map +1 -0
  99. package/dist/components/json-schema-form-error-display.js +50 -0
  100. package/dist/components/json-schema-form-error-display.js.map +1 -0
  101. package/dist/components/json-schema-form-error-types.d.ts +26 -0
  102. package/dist/components/json-schema-form-error-types.d.ts.map +1 -0
  103. package/dist/components/json-schema-form-errors.cjs +169 -0
  104. package/dist/components/json-schema-form-errors.cjs.map +1 -0
  105. package/dist/components/json-schema-form-errors.d.ts +14 -0
  106. package/dist/components/json-schema-form-errors.d.ts.map +1 -0
  107. package/dist/components/json-schema-form-errors.js +169 -0
  108. package/dist/components/json-schema-form-errors.js.map +1 -0
  109. package/dist/components/json-schema-form-object.cjs +12 -2
  110. package/dist/components/json-schema-form-object.cjs.map +1 -1
  111. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  112. package/dist/components/json-schema-form-object.js +12 -2
  113. package/dist/components/json-schema-form-object.js.map +1 -1
  114. package/dist/components/json-schema-form-refs.cjs +84 -19
  115. package/dist/components/json-schema-form-refs.cjs.map +1 -1
  116. package/dist/components/json-schema-form-refs.d.ts.map +1 -1
  117. package/dist/components/json-schema-form-refs.js +84 -19
  118. package/dist/components/json-schema-form-refs.js.map +1 -1
  119. package/dist/components/json-schema-form-render.cjs +33 -10
  120. package/dist/components/json-schema-form-render.cjs.map +1 -1
  121. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  122. package/dist/components/json-schema-form-render.js +34 -11
  123. package/dist/components/json-schema-form-render.js.map +1 -1
  124. package/dist/components/json-schema-form-resolve.cjs +16 -4
  125. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  126. package/dist/components/json-schema-form-resolve.d.ts +1 -0
  127. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  128. package/dist/components/json-schema-form-resolve.js +17 -5
  129. package/dist/components/json-schema-form-resolve.js.map +1 -1
  130. package/dist/components/json-schema-form-types.d.ts +4 -3
  131. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  132. package/dist/components.cjs +13 -0
  133. package/dist/components.cjs.map +1 -1
  134. package/dist/components.d.ts +8 -1
  135. package/dist/components.d.ts.map +1 -1
  136. package/dist/components.js +15 -2
  137. package/dist/components.js.map +1 -1
  138. package/dist/data/DataTable.cjs +205 -14
  139. package/dist/data/DataTable.cjs.map +1 -1
  140. package/dist/data/DataTable.d.ts +41 -0
  141. package/dist/data/DataTable.d.ts.map +1 -1
  142. package/dist/data/DataTable.grouping.cjs +21 -0
  143. package/dist/data/DataTable.grouping.cjs.map +1 -0
  144. package/dist/data/DataTable.grouping.d.ts +26 -0
  145. package/dist/data/DataTable.grouping.d.ts.map +1 -0
  146. package/dist/data/DataTable.grouping.js +21 -0
  147. package/dist/data/DataTable.grouping.js.map +1 -0
  148. package/dist/data/DataTable.js +205 -14
  149. package/dist/data/DataTable.js.map +1 -1
  150. package/dist/data/Markdown.cjs +45 -1
  151. package/dist/data/Markdown.cjs.map +1 -1
  152. package/dist/data/Markdown.d.ts +3 -2
  153. package/dist/data/Markdown.d.ts.map +1 -1
  154. package/dist/data/Markdown.js +45 -1
  155. package/dist/data/Markdown.js.map +1 -1
  156. package/dist/data/MarkdownEditor.cjs +4 -3
  157. package/dist/data/MarkdownEditor.cjs.map +1 -1
  158. package/dist/data/MarkdownEditor.d.ts +6 -2
  159. package/dist/data/MarkdownEditor.d.ts.map +1 -1
  160. package/dist/data/MarkdownEditor.js +4 -3
  161. package/dist/data/MarkdownEditor.js.map +1 -1
  162. package/dist/data/ServerTimingBadge.cjs +64 -0
  163. package/dist/data/ServerTimingBadge.cjs.map +1 -0
  164. package/dist/data/ServerTimingBadge.d.ts +9 -0
  165. package/dist/data/ServerTimingBadge.d.ts.map +1 -0
  166. package/dist/data/ServerTimingBadge.js +64 -0
  167. package/dist/data/ServerTimingBadge.js.map +1 -0
  168. package/dist/data/StatStrip.cjs +99 -0
  169. package/dist/data/StatStrip.cjs.map +1 -0
  170. package/dist/data/StatStrip.d.ts +41 -0
  171. package/dist/data/StatStrip.d.ts.map +1 -0
  172. package/dist/data/StatStrip.js +99 -0
  173. package/dist/data/StatStrip.js.map +1 -0
  174. package/dist/data/TaskManager.cjs +20 -1
  175. package/dist/data/TaskManager.cjs.map +1 -1
  176. package/dist/data/TaskManager.d.ts +3 -1
  177. package/dist/data/TaskManager.d.ts.map +1 -1
  178. package/dist/data/TaskManager.js +20 -1
  179. package/dist/data/TaskManager.js.map +1 -1
  180. package/dist/data/TaskManagerButton.cjs +49 -0
  181. package/dist/data/TaskManagerButton.cjs.map +1 -0
  182. package/dist/data/TaskManagerButton.d.ts +8 -0
  183. package/dist/data/TaskManagerButton.d.ts.map +1 -0
  184. package/dist/data/TaskManagerButton.js +49 -0
  185. package/dist/data/TaskManagerButton.js.map +1 -0
  186. package/dist/data/TaskProcessDetails.cjs +113 -0
  187. package/dist/data/TaskProcessDetails.cjs.map +1 -0
  188. package/dist/data/TaskProcessDetails.d.ts +6 -0
  189. package/dist/data/TaskProcessDetails.d.ts.map +1 -0
  190. package/dist/data/TaskProcessDetails.js +113 -0
  191. package/dist/data/TaskProcessDetails.js.map +1 -0
  192. package/dist/data/TaskProgress.cjs +106 -19
  193. package/dist/data/TaskProgress.cjs.map +1 -1
  194. package/dist/data/TaskProgress.d.ts +4 -2
  195. package/dist/data/TaskProgress.d.ts.map +1 -1
  196. package/dist/data/TaskProgress.js +107 -20
  197. package/dist/data/TaskProgress.js.map +1 -1
  198. package/dist/data/TaskSnapshot.cjs.map +1 -1
  199. package/dist/data/TaskSnapshot.d.ts +43 -0
  200. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  201. package/dist/data/TaskSnapshot.js.map +1 -1
  202. package/dist/data/Tree.cjs +91 -82
  203. package/dist/data/Tree.cjs.map +1 -1
  204. package/dist/data/Tree.d.ts +3 -1
  205. package/dist/data/Tree.d.ts.map +1 -1
  206. package/dist/data/Tree.js +91 -82
  207. package/dist/data/Tree.js.map +1 -1
  208. package/dist/data/TreeNode.cjs +3 -0
  209. package/dist/data/TreeNode.cjs.map +1 -1
  210. package/dist/data/TreeNode.d.ts +2 -1
  211. package/dist/data/TreeNode.d.ts.map +1 -1
  212. package/dist/data/TreeNode.js +3 -0
  213. package/dist/data/TreeNode.js.map +1 -1
  214. package/dist/data/ai/ChatWindow.cjs +18 -141
  215. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  216. package/dist/data/ai/ChatWindow.d.ts +2 -40
  217. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  218. package/dist/data/ai/ChatWindow.js +15 -138
  219. package/dist/data/ai/ChatWindow.js.map +1 -1
  220. package/dist/data/ai/ChatWindow.models.cjs +11 -0
  221. package/dist/data/ai/ChatWindow.models.cjs.map +1 -0
  222. package/dist/data/ai/ChatWindow.models.d.ts +3 -0
  223. package/dist/data/ai/ChatWindow.models.d.ts.map +1 -0
  224. package/dist/data/ai/ChatWindow.models.js +11 -0
  225. package/dist/data/ai/ChatWindow.models.js.map +1 -0
  226. package/dist/data/ai/ChatWindow.preferences.cjs +57 -0
  227. package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -0
  228. package/dist/data/ai/ChatWindow.preferences.d.ts +13 -0
  229. package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -0
  230. package/dist/data/ai/ChatWindow.preferences.js +57 -0
  231. package/dist/data/ai/ChatWindow.preferences.js.map +1 -0
  232. package/dist/data/ai/ChatWindow.thread-status.cjs +14 -0
  233. package/dist/data/ai/ChatWindow.thread-status.cjs.map +1 -0
  234. package/dist/data/ai/ChatWindow.thread-status.d.ts +5 -0
  235. package/dist/data/ai/ChatWindow.thread-status.d.ts.map +1 -0
  236. package/dist/data/ai/ChatWindow.thread-status.js +14 -0
  237. package/dist/data/ai/ChatWindow.thread-status.js.map +1 -0
  238. package/dist/data/ai/ChatWindow.thread.cjs +68 -0
  239. package/dist/data/ai/ChatWindow.thread.cjs.map +1 -0
  240. package/dist/data/ai/ChatWindow.thread.d.ts +16 -0
  241. package/dist/data/ai/ChatWindow.thread.d.ts.map +1 -0
  242. package/dist/data/ai/ChatWindow.thread.js +68 -0
  243. package/dist/data/ai/ChatWindow.thread.js.map +1 -0
  244. package/dist/data/ai/ChatWindow.tool-catalog.cjs +99 -0
  245. package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -0
  246. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +3 -0
  247. package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -0
  248. package/dist/data/ai/ChatWindow.tool-catalog.js +99 -0
  249. package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -0
  250. package/dist/data/ai/ChatWindow.types.d.ts +41 -0
  251. package/dist/data/ai/ChatWindow.types.d.ts.map +1 -0
  252. package/dist/data/ai/ContextBadges.cjs +76 -46
  253. package/dist/data/ai/ContextBadges.cjs.map +1 -1
  254. package/dist/data/ai/ContextBadges.d.ts.map +1 -1
  255. package/dist/data/ai/ContextBadges.js +77 -47
  256. package/dist/data/ai/ContextBadges.js.map +1 -1
  257. package/dist/data/ai/PromptPicker/PromptPicker.cjs +151 -32
  258. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
  259. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +7 -4
  260. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  261. package/dist/data/ai/PromptPicker/PromptPicker.js +152 -33
  262. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
  263. package/dist/data/ai/PromptPicker/PromptSourceRepair.cjs +133 -0
  264. package/dist/data/ai/PromptPicker/PromptSourceRepair.cjs.map +1 -0
  265. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +11 -0
  266. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -0
  267. package/dist/data/ai/PromptPicker/PromptSourceRepair.js +133 -0
  268. package/dist/data/ai/PromptPicker/PromptSourceRepair.js.map +1 -0
  269. package/dist/data/ai/PromptPicker/index.d.ts +2 -1
  270. package/dist/data/ai/PromptPicker/index.d.ts.map +1 -1
  271. package/dist/data/ai/PromptPicker/types.cjs +7 -0
  272. package/dist/data/ai/PromptPicker/types.cjs.map +1 -0
  273. package/dist/data/ai/PromptPicker/types.d.ts +18 -2
  274. package/dist/data/ai/PromptPicker/types.d.ts.map +1 -1
  275. package/dist/data/ai/PromptPicker/types.js +7 -0
  276. package/dist/data/ai/PromptPicker/types.js.map +1 -0
  277. package/dist/data/ai/PromptRunEditor/index.cjs +171 -91
  278. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  279. package/dist/data/ai/PromptRunEditor/index.d.ts +9 -9
  280. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  281. package/dist/data/ai/PromptRunEditor/index.js +175 -95
  282. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  283. package/dist/data/ai/PromptRunEditor/model.cjs +47 -0
  284. package/dist/data/ai/PromptRunEditor/model.cjs.map +1 -0
  285. package/dist/data/ai/PromptRunEditor/model.d.ts +17 -0
  286. package/dist/data/ai/PromptRunEditor/model.d.ts.map +1 -0
  287. package/dist/data/ai/PromptRunEditor/model.js +47 -0
  288. package/dist/data/ai/PromptRunEditor/model.js.map +1 -0
  289. package/dist/data/ai/RuntimeBar.cjs +408 -0
  290. package/dist/data/ai/RuntimeBar.cjs.map +1 -0
  291. package/dist/data/ai/RuntimeBar.d.ts +20 -0
  292. package/dist/data/ai/RuntimeBar.d.ts.map +1 -0
  293. package/dist/data/ai/RuntimeBar.js +408 -0
  294. package/dist/data/ai/RuntimeBar.js.map +1 -0
  295. package/dist/data/ai/RuntimeBar.model.cjs +14 -0
  296. package/dist/data/ai/RuntimeBar.model.cjs.map +1 -0
  297. package/dist/data/ai/RuntimeBar.model.d.ts +10 -0
  298. package/dist/data/ai/RuntimeBar.model.d.ts.map +1 -0
  299. package/dist/data/ai/RuntimeBar.model.js +14 -0
  300. package/dist/data/ai/RuntimeBar.model.js.map +1 -0
  301. package/dist/data/ai/RuntimeBarCombo.cjs +359 -0
  302. package/dist/data/ai/RuntimeBarCombo.cjs.map +1 -0
  303. package/dist/data/ai/RuntimeBarCombo.d.ts +22 -0
  304. package/dist/data/ai/RuntimeBarCombo.d.ts.map +1 -0
  305. package/dist/data/ai/RuntimeBarCombo.js +359 -0
  306. package/dist/data/ai/RuntimeBarCombo.js.map +1 -0
  307. package/dist/data/ai/SessionChatComposer.cjs +56 -0
  308. package/dist/data/ai/SessionChatComposer.cjs.map +1 -0
  309. package/dist/data/ai/SessionChatComposer.d.ts +24 -0
  310. package/dist/data/ai/SessionChatComposer.d.ts.map +1 -0
  311. package/dist/data/ai/SessionChatComposer.js +56 -0
  312. package/dist/data/ai/SessionChatComposer.js.map +1 -0
  313. package/dist/data/ai/SessionInspector.cjs +222 -382
  314. package/dist/data/ai/SessionInspector.cjs.map +1 -1
  315. package/dist/data/ai/SessionInspector.collection-types.d.ts +55 -0
  316. package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -0
  317. package/dist/data/ai/SessionInspector.collection.cjs +377 -0
  318. package/dist/data/ai/SessionInspector.collection.cjs.map +1 -0
  319. package/dist/data/ai/SessionInspector.collection.d.ts +15 -0
  320. package/dist/data/ai/SessionInspector.collection.d.ts.map +1 -0
  321. package/dist/data/ai/SessionInspector.collection.js +377 -0
  322. package/dist/data/ai/SessionInspector.collection.js.map +1 -0
  323. package/dist/data/ai/SessionInspector.d.ts +9 -4
  324. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  325. package/dist/data/ai/SessionInspector.files.cjs +162 -0
  326. package/dist/data/ai/SessionInspector.files.cjs.map +1 -0
  327. package/dist/data/ai/SessionInspector.files.d.ts +5 -0
  328. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -0
  329. package/dist/data/ai/SessionInspector.files.js +162 -0
  330. package/dist/data/ai/SessionInspector.files.js.map +1 -0
  331. package/dist/data/ai/SessionInspector.hierarchy-state.cjs +148 -0
  332. package/dist/data/ai/SessionInspector.hierarchy-state.cjs.map +1 -0
  333. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +15 -0
  334. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts.map +1 -0
  335. package/dist/data/ai/SessionInspector.hierarchy-state.js +148 -0
  336. package/dist/data/ai/SessionInspector.hierarchy-state.js.map +1 -0
  337. package/dist/data/ai/SessionInspector.hierarchy.cjs +256 -0
  338. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -0
  339. package/dist/data/ai/SessionInspector.hierarchy.d.ts +9 -0
  340. package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -0
  341. package/dist/data/ai/SessionInspector.hierarchy.js +256 -0
  342. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -0
  343. package/dist/data/ai/SessionInspector.js +224 -384
  344. package/dist/data/ai/SessionInspector.js.map +1 -1
  345. package/dist/data/ai/SessionInspector.model.cjs +125 -0
  346. package/dist/data/ai/SessionInspector.model.cjs.map +1 -0
  347. package/dist/data/ai/SessionInspector.model.d.ts +14 -0
  348. package/dist/data/ai/SessionInspector.model.d.ts.map +1 -0
  349. package/dist/data/ai/SessionInspector.model.js +125 -0
  350. package/dist/data/ai/SessionInspector.model.js.map +1 -0
  351. package/dist/data/ai/SessionInspector.panels.cjs +265 -0
  352. package/dist/data/ai/SessionInspector.panels.cjs.map +1 -0
  353. package/dist/data/ai/SessionInspector.panels.d.ts +10 -0
  354. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -0
  355. package/dist/data/ai/SessionInspector.panels.js +265 -0
  356. package/dist/data/ai/SessionInspector.panels.js.map +1 -0
  357. package/dist/data/ai/SessionInspector.plan.cjs +77 -0
  358. package/dist/data/ai/SessionInspector.plan.cjs.map +1 -0
  359. package/dist/data/ai/SessionInspector.plan.d.ts +6 -0
  360. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -0
  361. package/dist/data/ai/SessionInspector.plan.js +77 -0
  362. package/dist/data/ai/SessionInspector.plan.js.map +1 -0
  363. package/dist/data/ai/SessionInspector.summary.cjs +182 -0
  364. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -0
  365. package/dist/data/ai/SessionInspector.summary.d.ts +8 -0
  366. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -0
  367. package/dist/data/ai/SessionInspector.summary.js +182 -0
  368. package/dist/data/ai/SessionInspector.summary.js.map +1 -0
  369. package/dist/data/ai/SessionInspector.transcript.cjs +94 -0
  370. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -0
  371. package/dist/data/ai/SessionInspector.transcript.d.ts +7 -0
  372. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -0
  373. package/dist/data/ai/SessionInspector.transcript.js +94 -0
  374. package/dist/data/ai/SessionInspector.transcript.js.map +1 -0
  375. package/dist/data/ai/SessionInspector.turns.d.ts +11 -0
  376. package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -0
  377. package/dist/data/ai/SessionViewer.cjs +86 -121
  378. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  379. package/dist/data/ai/SessionViewer.d.ts +8 -1
  380. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  381. package/dist/data/ai/SessionViewer.fixtures.d.ts +2 -0
  382. package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
  383. package/dist/data/ai/SessionViewer.header.cjs +118 -0
  384. package/dist/data/ai/SessionViewer.header.cjs.map +1 -0
  385. package/dist/data/ai/SessionViewer.header.d.ts +11 -0
  386. package/dist/data/ai/SessionViewer.header.d.ts.map +1 -0
  387. package/dist/data/ai/SessionViewer.header.js +118 -0
  388. package/dist/data/ai/SessionViewer.header.js.map +1 -0
  389. package/dist/data/ai/SessionViewer.js +87 -122
  390. package/dist/data/ai/SessionViewer.js.map +1 -1
  391. package/dist/data/ai/SessionViewer.model.cjs +111 -39
  392. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  393. package/dist/data/ai/SessionViewer.model.d.ts +6 -0
  394. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  395. package/dist/data/ai/SessionViewer.model.js +111 -39
  396. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  397. package/dist/data/ai/SessionViewer.row-metadata.cjs +132 -0
  398. package/dist/data/ai/SessionViewer.row-metadata.cjs.map +1 -0
  399. package/dist/data/ai/SessionViewer.row-metadata.d.ts +14 -0
  400. package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -0
  401. package/dist/data/ai/SessionViewer.row-metadata.js +132 -0
  402. package/dist/data/ai/SessionViewer.row-metadata.js.map +1 -0
  403. package/dist/data/ai/SessionViewer.row-time.cjs +15 -0
  404. package/dist/data/ai/SessionViewer.row-time.cjs.map +1 -0
  405. package/dist/data/ai/SessionViewer.row-time.d.ts +3 -0
  406. package/dist/data/ai/SessionViewer.row-time.d.ts.map +1 -0
  407. package/dist/data/ai/SessionViewer.row-time.js +15 -0
  408. package/dist/data/ai/SessionViewer.row-time.js.map +1 -0
  409. package/dist/data/ai/SessionViewer.rows.cjs +37 -424
  410. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  411. package/dist/data/ai/SessionViewer.rows.d.ts +5 -2
  412. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  413. package/dist/data/ai/SessionViewer.rows.js +31 -418
  414. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  415. package/dist/data/ai/SessionViewer.tool-details.cjs +65 -0
  416. package/dist/data/ai/SessionViewer.tool-details.cjs.map +1 -0
  417. package/dist/data/ai/SessionViewer.tool-details.d.ts +20 -0
  418. package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -0
  419. package/dist/data/ai/SessionViewer.tool-details.js +65 -0
  420. package/dist/data/ai/SessionViewer.tool-details.js.map +1 -0
  421. package/dist/data/ai/SessionViewer.tool-row.cjs +404 -0
  422. package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -0
  423. package/dist/data/ai/SessionViewer.tool-row.d.ts +12 -0
  424. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -0
  425. package/dist/data/ai/SessionViewer.tool-row.js +404 -0
  426. package/dist/data/ai/SessionViewer.tool-row.js.map +1 -0
  427. package/dist/data/ai/SessionViewer.unified.d.ts +11 -2
  428. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  429. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +44 -26
  430. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  431. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  432. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +47 -29
  433. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  434. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +45 -153
  435. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  436. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  437. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +51 -159
  438. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  439. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +0 -1
  440. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
  441. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
  442. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +0 -1
  443. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
  444. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +0 -5
  445. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -1
  446. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
  447. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +0 -5
  448. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -1
  449. package/dist/data/ai/SpecRuntimeEditor/fields.js +1 -1
  450. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  451. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  452. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  453. package/dist/data/ai/SpecRuntimeEditor/update.cjs +19 -6
  454. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  455. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +5 -2
  456. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  457. package/dist/data/ai/SpecRuntimeEditor/update.js +19 -6
  458. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  459. package/dist/data/ai/SpecRuntimeEditor.model.cjs +67 -10
  460. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  461. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +31 -4
  462. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  463. package/dist/data/ai/SpecRuntimeEditor.model.js +67 -10
  464. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  465. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  466. package/dist/data/ai/ThreadPicker.d.ts +2 -0
  467. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  468. package/dist/data/ai/ThreadPicker.js.map +1 -1
  469. package/dist/data/ai/ToolPreferences.cjs +2 -1
  470. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  471. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  472. package/dist/data/ai/ToolPreferences.js +2 -1
  473. package/dist/data/ai/ToolPreferences.js.map +1 -1
  474. package/dist/data/ai/agent-action-icons.cjs +7 -10
  475. package/dist/data/ai/agent-action-icons.cjs.map +1 -1
  476. package/dist/data/ai/agent-action-icons.d.ts +1 -2
  477. package/dist/data/ai/agent-action-icons.d.ts.map +1 -1
  478. package/dist/data/ai/agent-action-icons.js +8 -11
  479. package/dist/data/ai/agent-action-icons.js.map +1 -1
  480. package/dist/data/ai/context.cjs.map +1 -1
  481. package/dist/data/ai/context.d.ts +4 -0
  482. package/dist/data/ai/context.d.ts.map +1 -1
  483. package/dist/data/ai/context.js.map +1 -1
  484. package/dist/data/ai/examples/sessions/claude-complete.cjs +513 -0
  485. package/dist/data/ai/examples/sessions/claude-complete.cjs.map +1 -0
  486. package/dist/data/ai/examples/sessions/claude-complete.d.ts +3 -0
  487. package/dist/data/ai/examples/sessions/claude-complete.d.ts.map +1 -0
  488. package/dist/data/ai/examples/sessions/claude-complete.js +513 -0
  489. package/dist/data/ai/examples/sessions/claude-complete.js.map +1 -0
  490. package/dist/data/ai/examples/sessions/claude.cjs +252 -0
  491. package/dist/data/ai/examples/sessions/claude.cjs.map +1 -0
  492. package/dist/data/ai/examples/sessions/claude.d.ts +3 -0
  493. package/dist/data/ai/examples/sessions/claude.d.ts.map +1 -0
  494. package/dist/data/ai/examples/sessions/claude.js +252 -0
  495. package/dist/data/ai/examples/sessions/claude.js.map +1 -0
  496. package/dist/data/ai/examples/sessions/codex-complete.cjs +394 -0
  497. package/dist/data/ai/examples/sessions/codex-complete.cjs.map +1 -0
  498. package/dist/data/ai/examples/sessions/codex-complete.d.ts +3 -0
  499. package/dist/data/ai/examples/sessions/codex-complete.d.ts.map +1 -0
  500. package/dist/data/ai/examples/sessions/codex-complete.js +394 -0
  501. package/dist/data/ai/examples/sessions/codex-complete.js.map +1 -0
  502. package/dist/data/ai/examples/sessions/codex.cjs +236 -0
  503. package/dist/data/ai/examples/sessions/codex.cjs.map +1 -0
  504. package/dist/data/ai/examples/sessions/codex.d.ts +3 -0
  505. package/dist/data/ai/examples/sessions/codex.d.ts.map +1 -0
  506. package/dist/data/ai/examples/sessions/codex.js +236 -0
  507. package/dist/data/ai/examples/sessions/codex.js.map +1 -0
  508. package/dist/data/ai/examples/sessions/index.cjs +21 -0
  509. package/dist/data/ai/examples/sessions/index.cjs.map +1 -0
  510. package/dist/data/ai/examples/sessions/index.d.ts +10 -0
  511. package/dist/data/ai/examples/sessions/index.d.ts.map +1 -0
  512. package/dist/data/ai/examples/sessions/index.js +21 -0
  513. package/dist/data/ai/examples/sessions/index.js.map +1 -0
  514. package/dist/data/ai/index.d.ts +9 -3
  515. package/dist/data/ai/index.d.ts.map +1 -1
  516. package/dist/data/ai/model-capabilities.cjs +12 -1
  517. package/dist/data/ai/model-capabilities.cjs.map +1 -1
  518. package/dist/data/ai/model-capabilities.d.ts +2 -6
  519. package/dist/data/ai/model-capabilities.d.ts.map +1 -1
  520. package/dist/data/ai/model-capabilities.js +12 -1
  521. package/dist/data/ai/model-capabilities.js.map +1 -1
  522. package/dist/data/ai/runtime-mode.cjs +72 -1
  523. package/dist/data/ai/runtime-mode.cjs.map +1 -1
  524. package/dist/data/ai/runtime-mode.d.ts +28 -0
  525. package/dist/data/ai/runtime-mode.d.ts.map +1 -1
  526. package/dist/data/ai/runtime-mode.js +73 -2
  527. package/dist/data/ai/runtime-mode.js.map +1 -1
  528. package/dist/data/cells/EntityCell.cjs +64 -0
  529. package/dist/data/cells/EntityCell.cjs.map +1 -0
  530. package/dist/data/cells/EntityCell.d.ts +27 -0
  531. package/dist/data/cells/EntityCell.d.ts.map +1 -0
  532. package/dist/data/cells/EntityCell.js +64 -0
  533. package/dist/data/cells/EntityCell.js.map +1 -0
  534. package/dist/data/chat/Attachment.cjs +53 -13
  535. package/dist/data/chat/Attachment.cjs.map +1 -1
  536. package/dist/data/chat/Attachment.d.ts +9 -3
  537. package/dist/data/chat/Attachment.d.ts.map +1 -1
  538. package/dist/data/chat/Attachment.js +54 -14
  539. package/dist/data/chat/Attachment.js.map +1 -1
  540. package/dist/data/chat/Chat.cjs +113 -36
  541. package/dist/data/chat/Chat.cjs.map +1 -1
  542. package/dist/data/chat/Chat.d.ts +11 -4
  543. package/dist/data/chat/Chat.d.ts.map +1 -1
  544. package/dist/data/chat/Chat.js +111 -34
  545. package/dist/data/chat/Chat.js.map +1 -1
  546. package/dist/data/chat/ContextMeter.cjs +240 -66
  547. package/dist/data/chat/ContextMeter.cjs.map +1 -1
  548. package/dist/data/chat/ContextMeter.d.ts +11 -3
  549. package/dist/data/chat/ContextMeter.d.ts.map +1 -1
  550. package/dist/data/chat/ContextMeter.js +241 -67
  551. package/dist/data/chat/ContextMeter.js.map +1 -1
  552. package/dist/data/chat/Conversation.cjs +55 -3
  553. package/dist/data/chat/Conversation.cjs.map +1 -1
  554. package/dist/data/chat/Conversation.d.ts +5 -1
  555. package/dist/data/chat/Conversation.d.ts.map +1 -1
  556. package/dist/data/chat/Conversation.js +55 -3
  557. package/dist/data/chat/Conversation.js.map +1 -1
  558. package/dist/data/chat/ModelSelector.cjs +8 -10
  559. package/dist/data/chat/ModelSelector.cjs.map +1 -1
  560. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  561. package/dist/data/chat/ModelSelector.js +9 -11
  562. package/dist/data/chat/ModelSelector.js.map +1 -1
  563. package/dist/data/chat/PromptInput.cjs +56 -5
  564. package/dist/data/chat/PromptInput.cjs.map +1 -1
  565. package/dist/data/chat/PromptInput.d.ts +10 -1
  566. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  567. package/dist/data/chat/PromptInput.js +57 -6
  568. package/dist/data/chat/PromptInput.js.map +1 -1
  569. package/dist/data/chat/approval.cjs +21 -0
  570. package/dist/data/chat/approval.cjs.map +1 -0
  571. package/dist/data/chat/approval.d.ts +11 -0
  572. package/dist/data/chat/approval.d.ts.map +1 -0
  573. package/dist/data/chat/approval.js +21 -0
  574. package/dist/data/chat/approval.js.map +1 -0
  575. package/dist/data/chat/attachment-upload.cjs +33 -0
  576. package/dist/data/chat/attachment-upload.cjs.map +1 -0
  577. package/dist/data/chat/attachment-upload.d.ts +21 -0
  578. package/dist/data/chat/attachment-upload.d.ts.map +1 -0
  579. package/dist/data/chat/attachment-upload.js +33 -0
  580. package/dist/data/chat/attachment-upload.js.map +1 -0
  581. package/dist/data/chat/effort-icons.cjs +36 -6
  582. package/dist/data/chat/effort-icons.cjs.map +1 -1
  583. package/dist/data/chat/effort-icons.d.ts +6 -3
  584. package/dist/data/chat/effort-icons.d.ts.map +1 -1
  585. package/dist/data/chat/effort-icons.js +37 -7
  586. package/dist/data/chat/effort-icons.js.map +1 -1
  587. package/dist/data/chat/index.d.ts +3 -1
  588. package/dist/data/chat/index.d.ts.map +1 -1
  589. package/dist/data/chat/models.cjs +8 -0
  590. package/dist/data/chat/models.cjs.map +1 -0
  591. package/dist/data/chat/models.d.ts +11 -0
  592. package/dist/data/chat/models.d.ts.map +1 -0
  593. package/dist/data/chat/models.js +8 -0
  594. package/dist/data/chat/models.js.map +1 -0
  595. package/dist/data/chat/provider-icons.cjs +49 -16
  596. package/dist/data/chat/provider-icons.cjs.map +1 -1
  597. package/dist/data/chat/provider-icons.d.ts +2 -0
  598. package/dist/data/chat/provider-icons.d.ts.map +1 -1
  599. package/dist/data/chat/provider-icons.js +50 -17
  600. package/dist/data/chat/provider-icons.js.map +1 -1
  601. package/dist/data/chat/types.cjs.map +1 -1
  602. package/dist/data/chat/types.d.ts +21 -0
  603. package/dist/data/chat/types.d.ts.map +1 -1
  604. package/dist/data/chat/types.js.map +1 -1
  605. package/dist/data/examples/markdown-preview-mock.cjs +45 -0
  606. package/dist/data/examples/markdown-preview-mock.cjs.map +1 -0
  607. package/dist/data/examples/markdown-preview-mock.d.ts +23 -0
  608. package/dist/data/examples/markdown-preview-mock.d.ts.map +1 -0
  609. package/dist/data/examples/markdown-preview-mock.js +45 -0
  610. package/dist/data/examples/markdown-preview-mock.js.map +1 -0
  611. package/dist/data/examples/markdown-syntax.cjs +36 -0
  612. package/dist/data/examples/markdown-syntax.cjs.map +1 -0
  613. package/dist/data/examples/markdown-syntax.d.ts +12 -0
  614. package/dist/data/examples/markdown-syntax.d.ts.map +1 -0
  615. package/dist/data/examples/markdown-syntax.js +36 -0
  616. package/dist/data/examples/markdown-syntax.js.map +1 -0
  617. package/dist/data/examples/markdown-syntax.md.cjs +4 -0
  618. package/dist/data/examples/markdown-syntax.md.cjs.map +1 -0
  619. package/dist/data/examples/markdown-syntax.md.js +5 -0
  620. package/dist/data/examples/markdown-syntax.md.js.map +1 -0
  621. package/dist/data/server-timing.cjs +120 -0
  622. package/dist/data/server-timing.cjs.map +1 -0
  623. package/dist/data/server-timing.d.ts +11 -0
  624. package/dist/data/server-timing.d.ts.map +1 -0
  625. package/dist/data/server-timing.js +120 -0
  626. package/dist/data/server-timing.js.map +1 -0
  627. package/dist/data/task-process-details.cjs +48 -0
  628. package/dist/data/task-process-details.cjs.map +1 -0
  629. package/dist/data/task-process-details.d.ts +5 -0
  630. package/dist/data/task-process-details.d.ts.map +1 -0
  631. package/dist/data/task-process-details.js +48 -0
  632. package/dist/data/task-process-details.js.map +1 -0
  633. package/dist/data/version-info.cjs +3 -3
  634. package/dist/data/version-info.js +3 -3
  635. package/dist/data.cjs +37 -0
  636. package/dist/data.cjs.map +1 -1
  637. package/dist/data.d.ts +9 -1
  638. package/dist/data.d.ts.map +1 -1
  639. package/dist/data.js +37 -0
  640. package/dist/data.js.map +1 -1
  641. package/dist/hooks/use-hotkey.cjs +98 -0
  642. package/dist/hooks/use-hotkey.cjs.map +1 -0
  643. package/dist/hooks/use-hotkey.d.ts +42 -0
  644. package/dist/hooks/use-hotkey.d.ts.map +1 -0
  645. package/dist/hooks/use-hotkey.js +98 -0
  646. package/dist/hooks/use-hotkey.js.map +1 -0
  647. package/dist/hooks/use-task-run.cjs +23 -1
  648. package/dist/hooks/use-task-run.cjs.map +1 -1
  649. package/dist/hooks/use-task-run.d.ts.map +1 -1
  650. package/dist/hooks/use-task-run.js +23 -1
  651. package/dist/hooks/use-task-run.js.map +1 -1
  652. package/dist/hooks.cjs +4 -0
  653. package/dist/hooks.cjs.map +1 -1
  654. package/dist/hooks.d.ts +1 -0
  655. package/dist/hooks.d.ts.map +1 -1
  656. package/dist/hooks.js +4 -0
  657. package/dist/hooks.js.map +1 -1
  658. package/dist/icons/components/UiBank.cjs +15 -0
  659. package/dist/icons/components/UiBank.cjs.map +1 -0
  660. package/dist/icons/components/UiBank.d.ts +15 -0
  661. package/dist/icons/components/UiBank.d.ts.map +1 -0
  662. package/dist/icons/components/UiBank.js +15 -0
  663. package/dist/icons/components/UiBank.js.map +1 -0
  664. package/dist/icons/components/UiChartOfAccounts.cjs +15 -0
  665. package/dist/icons/components/UiChartOfAccounts.cjs.map +1 -0
  666. package/dist/icons/components/UiChartOfAccounts.d.ts +15 -0
  667. package/dist/icons/components/UiChartOfAccounts.d.ts.map +1 -0
  668. package/dist/icons/components/UiChartOfAccounts.js +15 -0
  669. package/dist/icons/components/UiChartOfAccounts.js.map +1 -0
  670. package/dist/icons/components/UiCloudUpload.cjs +15 -0
  671. package/dist/icons/components/UiCloudUpload.cjs.map +1 -0
  672. package/dist/icons/components/UiCloudUpload.d.ts +15 -0
  673. package/dist/icons/components/UiCloudUpload.d.ts.map +1 -0
  674. package/dist/icons/components/UiCloudUpload.js +15 -0
  675. package/dist/icons/components/UiCloudUpload.js.map +1 -0
  676. package/dist/icons/components/UiLedger.cjs +15 -0
  677. package/dist/icons/components/UiLedger.cjs.map +1 -0
  678. package/dist/icons/components/UiLedger.d.ts +15 -0
  679. package/dist/icons/components/UiLedger.d.ts.map +1 -0
  680. package/dist/icons/components/UiLedger.js +15 -0
  681. package/dist/icons/components/UiLedger.js.map +1 -0
  682. package/dist/icons/components/UiReceipt.cjs +15 -0
  683. package/dist/icons/components/UiReceipt.cjs.map +1 -0
  684. package/dist/icons/components/UiReceipt.d.ts +15 -0
  685. package/dist/icons/components/UiReceipt.d.ts.map +1 -0
  686. package/dist/icons/components/UiReceipt.js +15 -0
  687. package/dist/icons/components/UiReceipt.js.map +1 -0
  688. package/dist/icons/index.d.ts +10 -0
  689. package/dist/icons/index.d.ts.map +1 -1
  690. package/dist/icons.cjs +15 -0
  691. package/dist/icons.cjs.map +1 -1
  692. package/dist/icons.js +15 -0
  693. package/dist/icons.js.map +1 -1
  694. package/dist/index.cjs +54 -0
  695. package/dist/index.cjs.map +1 -1
  696. package/dist/index.js +56 -2
  697. package/dist/index.js.map +1 -1
  698. package/dist/layout/AppShell.cjs +270 -238
  699. package/dist/layout/AppShell.cjs.map +1 -1
  700. package/dist/layout/AppShell.d.ts +9 -0
  701. package/dist/layout/AppShell.d.ts.map +1 -1
  702. package/dist/layout/AppShell.debug.cjs +53 -0
  703. package/dist/layout/AppShell.debug.cjs.map +1 -0
  704. package/dist/layout/AppShell.debug.d.ts +6 -0
  705. package/dist/layout/AppShell.debug.d.ts.map +1 -0
  706. package/dist/layout/AppShell.debug.js +53 -0
  707. package/dist/layout/AppShell.debug.js.map +1 -0
  708. package/dist/layout/AppShell.js +269 -237
  709. package/dist/layout/AppShell.js.map +1 -1
  710. package/dist/layout/AppShell.nav.cjs +90 -0
  711. package/dist/layout/AppShell.nav.cjs.map +1 -0
  712. package/dist/layout/AppShell.nav.d.ts +7 -0
  713. package/dist/layout/AppShell.nav.d.ts.map +1 -0
  714. package/dist/layout/AppShell.nav.js +90 -0
  715. package/dist/layout/AppShell.nav.js.map +1 -0
  716. package/dist/layout/AppSidebar.cjs +35 -5
  717. package/dist/layout/AppSidebar.cjs.map +1 -1
  718. package/dist/layout/AppSidebar.d.ts +4 -1
  719. package/dist/layout/AppSidebar.d.ts.map +1 -1
  720. package/dist/layout/AppSidebar.js +35 -5
  721. package/dist/layout/AppSidebar.js.map +1 -1
  722. package/dist/layout/Panel.cjs +25 -41
  723. package/dist/layout/Panel.cjs.map +1 -1
  724. package/dist/layout/Panel.d.ts +2 -1
  725. package/dist/layout/Panel.d.ts.map +1 -1
  726. package/dist/layout/Panel.js +26 -42
  727. package/dist/layout/Panel.js.map +1 -1
  728. package/dist/layout/PanelFrame.cjs +56 -0
  729. package/dist/layout/PanelFrame.cjs.map +1 -0
  730. package/dist/layout/PanelFrame.d.ts +15 -0
  731. package/dist/layout/PanelFrame.d.ts.map +1 -0
  732. package/dist/layout/PanelFrame.js +56 -0
  733. package/dist/layout/PanelFrame.js.map +1 -0
  734. package/dist/layout/Section.cjs +51 -41
  735. package/dist/layout/Section.cjs.map +1 -1
  736. package/dist/layout/Section.d.ts +3 -2
  737. package/dist/layout/Section.d.ts.map +1 -1
  738. package/dist/layout/Section.js +51 -41
  739. package/dist/layout/Section.js.map +1 -1
  740. package/dist/layout/content-width.cjs +8 -0
  741. package/dist/layout/content-width.cjs.map +1 -0
  742. package/dist/layout/content-width.d.ts +3 -0
  743. package/dist/layout/content-width.d.ts.map +1 -0
  744. package/dist/layout/content-width.js +8 -0
  745. package/dist/layout/content-width.js.map +1 -0
  746. package/dist/overlay/CommandPalette.cjs +207 -0
  747. package/dist/overlay/CommandPalette.cjs.map +1 -0
  748. package/dist/overlay/CommandPalette.d.ts +71 -0
  749. package/dist/overlay/CommandPalette.d.ts.map +1 -0
  750. package/dist/overlay/CommandPalette.js +207 -0
  751. package/dist/overlay/CommandPalette.js.map +1 -0
  752. package/dist/overlay/CommandPalette.model.cjs +70 -0
  753. package/dist/overlay/CommandPalette.model.cjs.map +1 -0
  754. package/dist/overlay/CommandPalette.model.d.ts +71 -0
  755. package/dist/overlay/CommandPalette.model.d.ts.map +1 -0
  756. package/dist/overlay/CommandPalette.model.js +70 -0
  757. package/dist/overlay/CommandPalette.model.js.map +1 -0
  758. package/dist/overlay/CommandPaletteList.cjs +88 -0
  759. package/dist/overlay/CommandPaletteList.cjs.map +1 -0
  760. package/dist/overlay/CommandPaletteList.d.ts +23 -0
  761. package/dist/overlay/CommandPaletteList.d.ts.map +1 -0
  762. package/dist/overlay/CommandPaletteList.js +88 -0
  763. package/dist/overlay/CommandPaletteList.js.map +1 -0
  764. package/dist/overlay/CommandPaletteTrigger.cjs +36 -0
  765. package/dist/overlay/CommandPaletteTrigger.cjs.map +1 -0
  766. package/dist/overlay/CommandPaletteTrigger.d.ts +22 -0
  767. package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -0
  768. package/dist/overlay/CommandPaletteTrigger.js +36 -0
  769. package/dist/overlay/CommandPaletteTrigger.js.map +1 -0
  770. package/dist/overlay/HoverCard.cjs.map +1 -1
  771. package/dist/overlay/HoverCard.d.ts +2 -2
  772. package/dist/overlay/HoverCard.d.ts.map +1 -1
  773. package/dist/overlay/HoverCard.js.map +1 -1
  774. package/dist/overlay/Modal.cjs +12 -5
  775. package/dist/overlay/Modal.cjs.map +1 -1
  776. package/dist/overlay/Modal.d.ts.map +1 -1
  777. package/dist/overlay/Modal.js +12 -5
  778. package/dist/overlay/Modal.js.map +1 -1
  779. package/dist/overlay/modalStack.js +1 -1
  780. package/dist/overlay/zIndex.cjs +2 -0
  781. package/dist/overlay/zIndex.cjs.map +1 -1
  782. package/dist/overlay/zIndex.js +2 -0
  783. package/dist/overlay/zIndex.js.map +1 -1
  784. package/dist/rpc/EntityExplorerApp.cjs +6 -0
  785. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  786. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  787. package/dist/rpc/EntityExplorerApp.js +6 -0
  788. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  789. package/dist/rpc/OperationCatalog.cjs +45 -71
  790. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  791. package/dist/rpc/OperationCatalog.d.ts +12 -2
  792. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  793. package/dist/rpc/OperationCatalog.js +46 -72
  794. package/dist/rpc/OperationCatalog.js.map +1 -1
  795. package/dist/rpc/OperationResultView.cjs +42 -0
  796. package/dist/rpc/OperationResultView.cjs.map +1 -1
  797. package/dist/rpc/OperationResultView.d.ts +2 -1
  798. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  799. package/dist/rpc/OperationResultView.js +42 -0
  800. package/dist/rpc/OperationResultView.js.map +1 -1
  801. package/dist/rpc/clickyMetadata.cjs +2 -1
  802. package/dist/rpc/clickyMetadata.cjs.map +1 -1
  803. package/dist/rpc/clickyMetadata.d.ts.map +1 -1
  804. package/dist/rpc/clickyMetadata.js +2 -1
  805. package/dist/rpc/clickyMetadata.js.map +1 -1
  806. package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts.map +1 -1
  807. package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts.map +1 -1
  808. package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts +25 -2
  809. package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts.map +1 -1
  810. package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts.map +1 -1
  811. package/dist/rpc/rpc-story.fixtures.d.ts +2 -1
  812. package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -1
  813. package/dist/rpc/types.cjs.map +1 -1
  814. package/dist/rpc/types.d.ts +1 -0
  815. package/dist/rpc/types.d.ts.map +1 -1
  816. package/dist/rpc/types.js.map +1 -1
  817. package/dist/styles.css +1 -1
  818. package/dist/tailwind-preset.cjs +15 -0
  819. package/dist/tailwind-preset.cjs.map +1 -1
  820. package/dist/tailwind-preset.d.ts.map +1 -1
  821. package/dist/tailwind-preset.js +15 -0
  822. package/dist/tailwind-preset.js.map +1 -1
  823. package/package.json +2 -2
@@ -0,0 +1,133 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
3
+ import { Button } from "../../../components/button.js";
4
+ import { SegmentedControl } from "../../../components/SegmentedControl.js";
5
+ import { Modal } from "../../../overlay/Modal.js";
6
+ const SOURCE_OPTIONS = [
7
+ { id: "inline", label: "Inline" },
8
+ { id: "file", label: "File" }
9
+ ];
10
+ function PromptSourceRepair({
11
+ open,
12
+ title,
13
+ detail,
14
+ saveDetail,
15
+ onClose,
16
+ onSaved
17
+ }) {
18
+ const [draft, setDraft] = useState(detail.raw);
19
+ const [source, setSource] = useState(
20
+ detail.source === "file" ? "file" : "inline"
21
+ );
22
+ const [path, setPath] = useState(detail.path ?? "");
23
+ const [error, setError] = useState("");
24
+ const [saving, setSaving] = useState(false);
25
+ useEffect(() => {
26
+ if (!open) return;
27
+ setDraft(detail.raw);
28
+ setSource(detail.source === "file" ? "file" : "inline");
29
+ setPath(detail.path ?? "");
30
+ setError("");
31
+ }, [detail, open]);
32
+ if (!open) return null;
33
+ const dirty = draft !== detail.raw || source !== (detail.source === "file" ? "file" : "inline") || path !== (detail.path ?? "");
34
+ const shownError = error || detail.parseError;
35
+ const canReset = detail.source !== "default";
36
+ async function save() {
37
+ setSaving(true);
38
+ setError("");
39
+ try {
40
+ const next = await saveDetail({
41
+ source,
42
+ path: source === "file" ? path : void 0,
43
+ raw: draft,
44
+ baseRaw: detail.raw
45
+ });
46
+ onSaved(next);
47
+ } catch (err) {
48
+ setError(err instanceof Error ? err.message : "save failed");
49
+ } finally {
50
+ setSaving(false);
51
+ }
52
+ }
53
+ async function resetDefault() {
54
+ setSaving(true);
55
+ setError("");
56
+ try {
57
+ const next = await saveDetail({ source: "default", baseRaw: detail.raw });
58
+ onSaved(next);
59
+ } catch (err) {
60
+ setError(err instanceof Error ? err.message : "reset failed");
61
+ } finally {
62
+ setSaving(false);
63
+ }
64
+ }
65
+ return /* @__PURE__ */ jsx(
66
+ Modal,
67
+ {
68
+ open,
69
+ onClose,
70
+ confirmClose: dirty,
71
+ title: `Repair prompt · ${title}`,
72
+ size: "2xl",
73
+ className: "h-[92vh]",
74
+ footer: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
75
+ /* @__PURE__ */ jsx("div", { className: "min-w-0", children: canReset ? /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: resetDefault, disabled: saving, children: "Reset to default" }) : null }),
76
+ /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 gap-2", children: [
77
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", onClick: onClose, disabled: saving, children: "Cancel" }),
78
+ /* @__PURE__ */ jsx(
79
+ Button,
80
+ {
81
+ type: "button",
82
+ onClick: save,
83
+ disabled: saving || source === "file" && path.trim() === "",
84
+ children: saving ? "Saving..." : "Save"
85
+ }
86
+ )
87
+ ] })
88
+ ] }),
89
+ children: /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-0 flex-col gap-3", children: [
90
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "This prompt's frontmatter could not be parsed. Fix the raw source below and save to restore it; the structured editor returns once it parses cleanly." }),
91
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
92
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Save to" }),
93
+ /* @__PURE__ */ jsx(
94
+ SegmentedControl,
95
+ {
96
+ size: "sm",
97
+ value: source,
98
+ options: SOURCE_OPTIONS,
99
+ onChange: setSource,
100
+ "aria-label": "Save location"
101
+ }
102
+ ),
103
+ source === "file" && /* @__PURE__ */ jsx(
104
+ "input",
105
+ {
106
+ type: "text",
107
+ className: "flex-1 rounded-md border border-border bg-background p-1.5 font-mono text-xs",
108
+ value: path,
109
+ placeholder: "./prompts/my-prompt.prompt",
110
+ spellCheck: false,
111
+ onChange: (event) => setPath(event.currentTarget.value)
112
+ }
113
+ )
114
+ ] }),
115
+ /* @__PURE__ */ jsx(
116
+ "textarea",
117
+ {
118
+ className: "min-h-0 w-full flex-1 resize-none rounded-md border border-border bg-background p-2 font-mono text-xs leading-relaxed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
119
+ value: draft,
120
+ spellCheck: false,
121
+ "aria-label": "Prompt source",
122
+ onChange: (event) => setDraft(event.currentTarget.value)
123
+ }
124
+ ),
125
+ shownError ? /* @__PURE__ */ jsx("span", { className: "whitespace-pre-wrap text-sm text-destructive", children: shownError }) : null
126
+ ] })
127
+ }
128
+ );
129
+ }
130
+ export {
131
+ PromptSourceRepair
132
+ };
133
+ //# sourceMappingURL=PromptSourceRepair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptSourceRepair.js","sources":["../../../../src/data/ai/PromptPicker/PromptSourceRepair.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { Button } from \"../../../components/button\";\nimport { SegmentedControl } from \"../../../components/SegmentedControl\";\nimport { Modal } from \"../../../overlay/Modal\";\nimport type {\n InvalidPromptSpecDetail,\n PromptSpecDetail,\n PromptSpecSavePayload,\n} from \"./types\";\n\nexport type PromptSourceRepairProps = {\n open: boolean;\n title: string;\n detail: InvalidPromptSpecDetail;\n saveDetail: (payload: PromptSpecSavePayload) => Promise<PromptSpecDetail>;\n onClose: () => void;\n onSaved: (detail: PromptSpecDetail) => void;\n};\n\nconst SOURCE_OPTIONS: Array<{ id: \"inline\" | \"file\"; label: string }> = [\n { id: \"inline\", label: \"Inline\" },\n { id: \"file\", label: \"File\" },\n];\n\n// PromptSourceRepair edits the raw .prompt source of an override whose\n// frontmatter failed to parse. It never parses the text locally — the draft is\n// submitted verbatim and the authoritative backend parser returns the precise\n// error, so a rejected save keeps the draft and dialog open for another attempt.\nexport function PromptSourceRepair({\n open,\n title,\n detail,\n saveDetail,\n onClose,\n onSaved,\n}: PromptSourceRepairProps) {\n const [draft, setDraft] = useState(detail.raw);\n const [source, setSource] = useState<\"inline\" | \"file\">(\n detail.source === \"file\" ? \"file\" : \"inline\",\n );\n const [path, setPath] = useState(detail.path ?? \"\");\n const [error, setError] = useState(\"\");\n const [saving, setSaving] = useState(false);\n\n useEffect(() => {\n if (!open) return;\n setDraft(detail.raw);\n setSource(detail.source === \"file\" ? \"file\" : \"inline\");\n setPath(detail.path ?? \"\");\n setError(\"\");\n }, [detail, open]);\n\n if (!open) return null;\n\n const dirty =\n draft !== detail.raw ||\n source !== (detail.source === \"file\" ? \"file\" : \"inline\") ||\n path !== (detail.path ?? \"\");\n const shownError = error || detail.parseError;\n const canReset = detail.source !== \"default\";\n\n async function save() {\n setSaving(true);\n setError(\"\");\n try {\n const next = await saveDetail({\n source,\n path: source === \"file\" ? path : undefined,\n raw: draft,\n baseRaw: detail.raw,\n });\n onSaved(next);\n } catch (err: unknown) {\n setError(err instanceof Error ? err.message : \"save failed\");\n } finally {\n setSaving(false);\n }\n }\n\n async function resetDefault() {\n setSaving(true);\n setError(\"\");\n try {\n const next = await saveDetail({ source: \"default\", baseRaw: detail.raw });\n onSaved(next);\n } catch (err: unknown) {\n setError(err instanceof Error ? err.message : \"reset failed\");\n } finally {\n setSaving(false);\n }\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n confirmClose={dirty}\n title={`Repair prompt · ${title}`}\n size=\"2xl\"\n className=\"h-[92vh]\"\n footer={\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n {canReset ? (\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={resetDefault} disabled={saving}>\n Reset to default\n </Button>\n ) : null}\n </div>\n <div className=\"flex shrink-0 gap-2\">\n <Button type=\"button\" variant=\"ghost\" onClick={onClose} disabled={saving}>\n Cancel\n </Button>\n <Button\n type=\"button\"\n onClick={save}\n disabled={saving || (source === \"file\" && path.trim() === \"\")}\n >\n {saving ? \"Saving...\" : \"Save\"}\n </Button>\n </div>\n </div>\n }\n >\n <div className=\"flex h-full min-h-0 flex-col gap-3\">\n <p className=\"text-xs text-muted-foreground\">\n This prompt&apos;s frontmatter could not be parsed. Fix the raw source below and save to\n restore it; the structured editor returns once it parses cleanly.\n </p>\n\n <div className=\"flex items-center gap-2\">\n <span className=\"text-xs font-medium text-muted-foreground\">Save to</span>\n <SegmentedControl\n size=\"sm\"\n value={source}\n options={SOURCE_OPTIONS}\n onChange={setSource}\n aria-label=\"Save location\"\n />\n {source === \"file\" && (\n <input\n type=\"text\"\n className=\"flex-1 rounded-md border border-border bg-background p-1.5 font-mono text-xs\"\n value={path}\n placeholder=\"./prompts/my-prompt.prompt\"\n spellCheck={false}\n onChange={(event) => setPath(event.currentTarget.value)}\n />\n )}\n </div>\n\n <textarea\n className=\"min-h-0 w-full flex-1 resize-none rounded-md border border-border bg-background p-2 font-mono text-xs leading-relaxed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n value={draft}\n spellCheck={false}\n aria-label=\"Prompt source\"\n onChange={(event) => setDraft(event.currentTarget.value)}\n />\n\n {shownError ? (\n <span className=\"whitespace-pre-wrap text-sm text-destructive\">{shownError}</span>\n ) : null}\n </div>\n </Modal>\n );\n}\n"],"names":[],"mappings":";;;;;AAmBA,MAAM,iBAAkE;AAAA,EACtE,EAAE,IAAI,UAAU,OAAO,SAAA;AAAA,EACvB,EAAE,IAAI,QAAQ,OAAO,OAAA;AACvB;AAMO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,OAAO,GAAG;AAC7C,QAAM,CAAC,QAAQ,SAAS,IAAI;AAAA,IAC1B,OAAO,WAAW,SAAS,SAAS;AAAA,EAAA;AAEtC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,OAAO,QAAQ,EAAE;AAClD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AACrC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAE1C,YAAU,MAAM;AACd,QAAI,CAAC,KAAM;AACX,aAAS,OAAO,GAAG;AACnB,cAAU,OAAO,WAAW,SAAS,SAAS,QAAQ;AACtD,YAAQ,OAAO,QAAQ,EAAE;AACzB,aAAS,EAAE;AAAA,EACb,GAAG,CAAC,QAAQ,IAAI,CAAC;AAEjB,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,QACJ,UAAU,OAAO,OACjB,YAAY,OAAO,WAAW,SAAS,SAAS,aAChD,UAAU,OAAO,QAAQ;AAC3B,QAAM,aAAa,SAAS,OAAO;AACnC,QAAM,WAAW,OAAO,WAAW;AAEnC,iBAAe,OAAO;AACpB,cAAU,IAAI;AACd,aAAS,EAAE;AACX,QAAI;AACF,YAAM,OAAO,MAAM,WAAW;AAAA,QAC5B;AAAA,QACA,MAAM,WAAW,SAAS,OAAO;AAAA,QACjC,KAAK;AAAA,QACL,SAAS,OAAO;AAAA,MAAA,CACjB;AACD,cAAQ,IAAI;AAAA,IACd,SAAS,KAAc;AACrB,eAAS,eAAe,QAAQ,IAAI,UAAU,aAAa;AAAA,IAC7D,UAAA;AACE,gBAAU,KAAK;AAAA,IACjB;AAAA,EACF;AAEA,iBAAe,eAAe;AAC5B,cAAU,IAAI;AACd,aAAS,EAAE;AACX,QAAI;AACF,YAAM,OAAO,MAAM,WAAW,EAAE,QAAQ,WAAW,SAAS,OAAO,KAAK;AACxE,cAAQ,IAAI;AAAA,IACd,SAAS,KAAc;AACrB,eAAS,eAAe,QAAQ,IAAI,UAAU,cAAc;AAAA,IAC9D,UAAA;AACE,gBAAU,KAAK;AAAA,IACjB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,OAAO,mBAAmB,KAAK;AAAA,MAC/B,MAAK;AAAA,MACL,WAAU;AAAA,MACV,QACE,qBAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,QAAA,oBAAC,SAAI,WAAU,WACZ,qBACC,oBAAC,QAAA,EAAO,MAAK,UAAS,SAAQ,SAAQ,MAAK,MAAK,SAAS,cAAc,UAAU,QAAQ,UAAA,oBAEzF,IACE,KAAA,CACN;AAAA,QACA,qBAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAO,MAAK,UAAS,SAAQ,SAAQ,SAAS,SAAS,UAAU,QAAQ,UAAA,SAAA,CAE1E;AAAA,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS;AAAA,cACT,UAAU,UAAW,WAAW,UAAU,KAAK,WAAW;AAAA,cAEzD,mBAAS,cAAc;AAAA,YAAA;AAAA,UAAA;AAAA,QAC1B,EAAA,CACF;AAAA,MAAA,GACF;AAAA,MAGF,UAAA,qBAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,QAAA,oBAAC,KAAA,EAAE,WAAU,iCAAgC,UAAA,yJAG7C;AAAA,QAEA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAK,WAAU,6CAA4C,UAAA,WAAO;AAAA,UACnE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAO;AAAA,cACP,SAAS;AAAA,cACT,UAAU;AAAA,cACV,cAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAEZ,WAAW,UACV;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAU;AAAA,cACV,OAAO;AAAA,cACP,aAAY;AAAA,cACZ,YAAY;AAAA,cACZ,UAAU,CAAC,UAAU,QAAQ,MAAM,cAAc,KAAK;AAAA,YAAA;AAAA,UAAA;AAAA,QACxD,GAEJ;AAAA,QAEA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,cAAW;AAAA,YACX,UAAU,CAAC,UAAU,SAAS,MAAM,cAAc,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,QAGxD,aACC,oBAAC,QAAA,EAAK,WAAU,gDAAgD,sBAAW,IACzE;AAAA,MAAA,EAAA,CACN;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,4 +1,5 @@
1
1
  export { PromptPickerField, SpecEditorDialog, type PromptPickerFieldProps, type SpecEditorDialogProps, } from './PromptPicker';
2
+ export { PromptSourceRepair, type PromptSourceRepairProps, } from './PromptSourceRepair';
2
3
  export { promptPreviewText, promptRuntimeValueToPayload, specToPromptRuntimeValue, } from './prompt-runtime';
3
- export type { PromptPickerValue, PromptSpecDetail, PromptSpecSavePayload, } from './types';
4
+ export { isValidPromptSpecDetail, type InvalidPromptSpecDetail, type PromptPickerValue, type PromptSpecDetail, type PromptSpecSavePayload, type ValidPromptSpecDetail, } from './types';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/PromptPicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/PromptPicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function isValidPromptSpecDetail(detail) {
4
+ return !detail.parseError;
5
+ }
6
+ exports.isValidPromptSpecDetail = isValidPromptSpecDetail;
7
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sources":["../../../../src/data/ai/PromptPicker/types.ts"],"sourcesContent":["import type { AISpecRuntimeSpec } from \"../SpecRuntimeEditor.model\";\n\nexport type PromptPickerValue = string | { inline?: string; file?: string };\n\n// PromptSpecDetailBase carries the identity + source of a resolved prompt for a\n// config layer, independent of whether its .prompt frontmatter parsed cleanly.\n// `raw` is always present so a malformed override can still be repaired.\ntype PromptSpecDetailBase = {\n id?: string | undefined;\n scope?: string | undefined;\n source: \"default\" | \"inline\" | \"file\";\n path?: string | undefined;\n raw: string;\n};\n\n// ValidPromptSpecDetail is a prompt whose frontmatter parsed: it carries the\n// parsed spec + body the structured editor binds to.\nexport type ValidPromptSpecDetail = PromptSpecDetailBase & {\n parseError?: undefined;\n spec: Record<string, unknown>;\n body: string;\n};\n\n// InvalidPromptSpecDetail is a prompt whose frontmatter failed to parse. It has\n// no spec/body — only the raw source and the parser message — so the row stays\n// actionable for a raw-source repair instead of being disabled.\nexport type InvalidPromptSpecDetail = PromptSpecDetailBase & {\n parseError: string;\n spec?: undefined;\n body?: undefined;\n};\n\nexport type PromptSpecDetail = ValidPromptSpecDetail | InvalidPromptSpecDetail;\n\n// isValidPromptSpecDetail narrows a detail to its parsed form so runtime/form\n// conversion is only ever run against a real spec + body.\nexport function isValidPromptSpecDetail(\n detail: PromptSpecDetail,\n): detail is ValidPromptSpecDetail {\n return !detail.parseError;\n}\n\nexport type PromptSpecSavePayload =\n | {\n source: \"default\";\n baseRaw?: string | undefined;\n }\n | {\n source: \"inline\" | \"file\";\n path?: string | undefined;\n spec: AISpecRuntimeSpec;\n body: string;\n baseRaw?: string | undefined;\n }\n | {\n source: \"inline\" | \"file\";\n path?: string | undefined;\n raw: string;\n baseRaw?: string | undefined;\n };\n"],"names":[],"mappings":";;AAoCO,SAAS,wBACd,QACiC;AACjC,SAAO,CAAC,OAAO;AACjB;;"}
@@ -3,15 +3,25 @@ export type PromptPickerValue = string | {
3
3
  inline?: string;
4
4
  file?: string;
5
5
  };
6
- export type PromptSpecDetail = {
6
+ type PromptSpecDetailBase = {
7
7
  id?: string | undefined;
8
8
  scope?: string | undefined;
9
9
  source: "default" | "inline" | "file";
10
10
  path?: string | undefined;
11
+ raw: string;
12
+ };
13
+ export type ValidPromptSpecDetail = PromptSpecDetailBase & {
14
+ parseError?: undefined;
11
15
  spec: Record<string, unknown>;
12
16
  body: string;
13
- raw: string;
14
17
  };
18
+ export type InvalidPromptSpecDetail = PromptSpecDetailBase & {
19
+ parseError: string;
20
+ spec?: undefined;
21
+ body?: undefined;
22
+ };
23
+ export type PromptSpecDetail = ValidPromptSpecDetail | InvalidPromptSpecDetail;
24
+ export declare function isValidPromptSpecDetail(detail: PromptSpecDetail): detail is ValidPromptSpecDetail;
15
25
  export type PromptSpecSavePayload = {
16
26
  source: "default";
17
27
  baseRaw?: string | undefined;
@@ -21,5 +31,11 @@ export type PromptSpecSavePayload = {
21
31
  spec: AISpecRuntimeSpec;
22
32
  body: string;
23
33
  baseRaw?: string | undefined;
34
+ } | {
35
+ source: "inline" | "file";
36
+ path?: string | undefined;
37
+ raw: string;
38
+ baseRaw?: string | undefined;
24
39
  };
40
+ export {};
25
41
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/PromptPicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,GACD;IACE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/PromptPicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAK5E,KAAK,oBAAoB,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAIF,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,GAAG;IACzD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAKF,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAI/E,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,GACvB,MAAM,IAAI,qBAAqB,CAEjC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,GACD;IACE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,GACD;IACE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC"}
@@ -0,0 +1,7 @@
1
+ function isValidPromptSpecDetail(detail) {
2
+ return !detail.parseError;
3
+ }
4
+ export {
5
+ isValidPromptSpecDetail
6
+ };
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../src/data/ai/PromptPicker/types.ts"],"sourcesContent":["import type { AISpecRuntimeSpec } from \"../SpecRuntimeEditor.model\";\n\nexport type PromptPickerValue = string | { inline?: string; file?: string };\n\n// PromptSpecDetailBase carries the identity + source of a resolved prompt for a\n// config layer, independent of whether its .prompt frontmatter parsed cleanly.\n// `raw` is always present so a malformed override can still be repaired.\ntype PromptSpecDetailBase = {\n id?: string | undefined;\n scope?: string | undefined;\n source: \"default\" | \"inline\" | \"file\";\n path?: string | undefined;\n raw: string;\n};\n\n// ValidPromptSpecDetail is a prompt whose frontmatter parsed: it carries the\n// parsed spec + body the structured editor binds to.\nexport type ValidPromptSpecDetail = PromptSpecDetailBase & {\n parseError?: undefined;\n spec: Record<string, unknown>;\n body: string;\n};\n\n// InvalidPromptSpecDetail is a prompt whose frontmatter failed to parse. It has\n// no spec/body — only the raw source and the parser message — so the row stays\n// actionable for a raw-source repair instead of being disabled.\nexport type InvalidPromptSpecDetail = PromptSpecDetailBase & {\n parseError: string;\n spec?: undefined;\n body?: undefined;\n};\n\nexport type PromptSpecDetail = ValidPromptSpecDetail | InvalidPromptSpecDetail;\n\n// isValidPromptSpecDetail narrows a detail to its parsed form so runtime/form\n// conversion is only ever run against a real spec + body.\nexport function isValidPromptSpecDetail(\n detail: PromptSpecDetail,\n): detail is ValidPromptSpecDetail {\n return !detail.parseError;\n}\n\nexport type PromptSpecSavePayload =\n | {\n source: \"default\";\n baseRaw?: string | undefined;\n }\n | {\n source: \"inline\" | \"file\";\n path?: string | undefined;\n spec: AISpecRuntimeSpec;\n body: string;\n baseRaw?: string | undefined;\n }\n | {\n source: \"inline\" | \"file\";\n path?: string | undefined;\n raw: string;\n baseRaw?: string | undefined;\n };\n"],"names":[],"mappings":"AAoCO,SAAS,wBACd,QACiC;AACjC,SAAO,CAAC,OAAO;AACjB;"}
@@ -7,15 +7,17 @@ const JsonSchemaForm = require("../../../components/JsonSchemaForm.cjs");
7
7
  const utils = require("../../../lib/utils.cjs");
8
8
  const Modal = require("../../../overlay/Modal.cjs");
9
9
  const Icon = require("../../Icon.cjs");
10
- const ModelSelector = require("../../chat/ModelSelector.cjs");
11
- const modelCapabilities = require("../model-capabilities.cjs");
12
- const RuntimeModePicker = require("../RuntimeModePicker.cjs");
10
+ const effortIcons = require("../../chat/effort-icons.cjs");
11
+ const Attachment = require("../../chat/Attachment.cjs");
12
+ const attachmentUpload = require("../../chat/attachment-upload.cjs");
13
+ const RuntimeBar = require("../RuntimeBar.cjs");
13
14
  const runtimeMode = require("../runtime-mode.cjs");
14
15
  const index = require("../SpecRuntimeEditor/index.cjs");
15
- const fields = require("../SpecRuntimeEditor/fields.cjs");
16
16
  const update = require("../SpecRuntimeEditor/update.cjs");
17
+ const model = require("./model.cjs");
18
+ const UiTrash = require("../../../icons/components/UiTrash.cjs");
19
+ const UiAdd = require("../../../icons/components/UiAdd.cjs");
17
20
  const UiGearSix = require("../../../icons/components/UiGearSix.cjs");
18
- const REASONING_EFFORTS = ["low", "medium", "high", "xhigh"];
19
21
  function PromptRunEditor({
20
22
  value,
21
23
  onChange,
@@ -25,15 +27,15 @@ function PromptRunEditor({
25
27
  permissionCatalog,
26
28
  secretSelector,
27
29
  cliOptions,
28
- reasoningEfforts = REASONING_EFFORTS,
29
- runtimeControls,
30
+ reasoningEfforts = effortIcons.DEFAULT_REASONING_EFFORTS,
30
31
  variablesSchema,
31
- variables,
32
- onVariablesChange,
33
32
  onVariablesValidityChange,
34
33
  promptEditor,
35
34
  promptLabel = "User prompt",
36
35
  promptPlaceholder = "Override the rendered user prompt",
36
+ enableAttachments = false,
37
+ attachmentUpload: attachmentUpload$1,
38
+ attachmentLimits,
37
39
  children,
38
40
  header,
39
41
  footer,
@@ -42,101 +44,179 @@ function PromptRunEditor({
42
44
  specModalTitle = "Runtime spec",
43
45
  specSections
44
46
  }) {
45
- var _a;
47
+ var _a, _b;
46
48
  const [specOpen, setSpecOpen] = react.useState(false);
47
- const selection = runtimeMode.selectionForBackend(families, value.backend);
48
- const family = runtimeMode.familyById(families, selection.family);
49
- const familyModels = runtimeMode.modelsForFamily(models, family, value.backend);
50
- const selectedModel = models.find((m) => m.id === value.model);
51
- const modelEfforts = modelCapabilities.effortOptionsForModel(selectedModel, reasoningEfforts);
52
- const showEffort = modelEfforts.length > 0;
49
+ const spec = value.spec ?? {};
50
+ const rows = model.runtimeRows(value);
51
+ const selectedModel = models.find(
52
+ (model2) => model2.id === spec.id || model2.id === spec.model
53
+ );
54
+ const resolvedAttachmentUpload = react.useMemo(
55
+ () => attachmentUpload$1 ?? attachmentUpload.createAttachmentUploadAdapter(),
56
+ [attachmentUpload$1]
57
+ );
58
+ const attachmentFiles = (((_a = spec.prompt) == null ? void 0 : _a.attachments) ?? []).map(
59
+ (attachment) => ({
60
+ type: "file",
61
+ url: attachment.id ? `/api/attachments/${attachment.id}` : attachment.url ?? "",
62
+ mediaType: attachment.mediaType ?? "application/octet-stream",
63
+ ...attachment.id ? { attachmentId: attachment.id } : {},
64
+ ...attachment.size != null ? { size: attachment.size } : {},
65
+ ...attachment.filename ? { filename: attachment.filename } : {},
66
+ ...!attachment.filename && attachment.path ? { filename: attachment.path } : {}
67
+ })
68
+ );
53
69
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("grid gap-density-4", className), children: [
54
70
  header,
55
71
  /* @__PURE__ */ jsxRuntime.jsxs(Block, { title: "Runtime", children: [
56
- runtimeControls ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
57
- /* @__PURE__ */ jsxRuntime.jsx(
58
- RuntimeModePicker.RuntimeModePicker,
72
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-density-2", children: [
73
+ rows.map((runtime, index2) => /* @__PURE__ */ jsxRuntime.jsxs(
74
+ "div",
59
75
  {
60
- value,
61
- onChange,
62
- families,
63
- models
64
- }
65
- ),
66
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-density-2 sm:grid-cols-2", children: [
67
- /* @__PURE__ */ jsxRuntime.jsx(fields.SpecField, { label: "Model", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-density-2", children: [
68
- familyModels.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
69
- ModelSelector.ModelSelector,
70
- {
71
- models: familyModels,
72
- value: value.model,
73
- onChange: (model) => onChange(
74
- modelCapabilities.reconcileModelCapabilities(
75
- value,
76
- models.find((item) => item.id === model),
77
- reasoningEfforts
78
- )
79
- ),
80
- size: "md",
81
- className: "w-full"
82
- }
83
- ) : /* @__PURE__ */ jsxRuntime.jsx(
84
- fields.SpecInput,
85
- {
86
- value: value.model,
87
- onChange: (model) => onChange(update.withRoot(value, { model })),
88
- placeholder: "frontmatter/default",
89
- mono: true
90
- }
91
- ),
92
- value.model && /* @__PURE__ */ jsxRuntime.jsx(
93
- button.Button,
94
- {
95
- size: "sm",
96
- variant: "ghost",
97
- onClick: () => onChange(update.withOptionalRoot(value, "model", void 0)),
98
- children: "Default"
99
- }
100
- )
101
- ] }) }),
102
- showEffort && /* @__PURE__ */ jsxRuntime.jsx(fields.SpecField, { label: "Effort", children: /* @__PURE__ */ jsxRuntime.jsx(
103
- ModelSelector.EffortSelector,
76
+ role: "group",
77
+ "aria-label": `Runtime ${index2 + 1}`,
78
+ className: "flex min-w-0 items-center gap-density-2",
79
+ children: [
80
+ /* @__PURE__ */ jsxRuntime.jsx(
81
+ RuntimeBar.RuntimeBar,
82
+ {
83
+ value: runtime,
84
+ onChange: (next) => onChange(
85
+ model.withRuntimeRows(
86
+ value,
87
+ rows.map(
88
+ (item, itemIndex) => itemIndex === index2 ? next : item
89
+ )
90
+ )
91
+ ),
92
+ models,
93
+ families,
94
+ reasoningEfforts,
95
+ ariaLabel: `Runtime ${index2 + 1} controls`
96
+ }
97
+ ),
98
+ rows.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
99
+ button.Button,
100
+ {
101
+ size: "sm",
102
+ variant: "ghost",
103
+ "aria-label": `Remove runtime ${index2 + 1}`,
104
+ onClick: () => onChange(
105
+ model.withRuntimeRows(
106
+ value,
107
+ rows.filter((_, itemIndex) => itemIndex !== index2)
108
+ )
109
+ ),
110
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiTrash.UiTrash, className: "size-4" })
111
+ }
112
+ )
113
+ ]
114
+ },
115
+ index2
116
+ )),
117
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-density-2", children: [
118
+ /* @__PURE__ */ jsxRuntime.jsxs(
119
+ button.Button,
104
120
  {
105
- efforts: modelEfforts,
106
- value: value.effort ?? "",
107
- onChange: (effort) => onChange(update.withRoot(value, { effort })),
108
- size: "md",
109
- className: "w-full"
121
+ size: "sm",
122
+ variant: "outline",
123
+ "aria-label": "Add runtime",
124
+ onClick: () => {
125
+ var _a2;
126
+ return onChange(
127
+ model.withRuntimeRows(value, [
128
+ ...rows,
129
+ ((_a2 = rows[0]) == null ? void 0 : _a2.backend) ? { backend: rows[0].backend } : {}
130
+ ])
131
+ );
132
+ },
133
+ children: [
134
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiAdd.UiAdd, className: "size-4" }),
135
+ "Add runtime"
136
+ ]
110
137
  }
111
- ) })
138
+ ),
139
+ /* @__PURE__ */ jsxRuntime.jsxs(button.Button, { size: "sm", variant: "outline", onClick: () => setSpecOpen(true), children: [
140
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiGearSix.UiGearSix, className: "size-4" }),
141
+ editSpecLabel
142
+ ] })
112
143
  ] })
113
144
  ] }),
114
- children,
115
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs(button.Button, { size: "sm", variant: "outline", onClick: () => setSpecOpen(true), children: [
116
- /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiGearSix.UiGearSix, className: "size-4" }),
117
- editSpecLabel
118
- ] }) })
145
+ children
119
146
  ] }),
120
- onVariablesChange && /* @__PURE__ */ jsxRuntime.jsx(Block, { title: "Variables", children: /* @__PURE__ */ jsxRuntime.jsx(
147
+ /* @__PURE__ */ jsxRuntime.jsx(Block, { title: "Variables", children: /* @__PURE__ */ jsxRuntime.jsx(
121
148
  VariablesField,
122
149
  {
123
150
  ...variablesSchema ? { schema: variablesSchema } : {},
124
- value: variables ?? {},
125
- onChange: onVariablesChange,
151
+ value: value.variables ?? {},
152
+ onChange: (variables) => onChange({ ...value, variables }),
126
153
  ...onVariablesValidityChange ? { onValidityChange: onVariablesValidityChange } : {}
127
154
  }
128
155
  ) }),
129
- /* @__PURE__ */ jsxRuntime.jsx(Block, { title: promptLabel, children: promptEditor ?? /* @__PURE__ */ jsxRuntime.jsx(
130
- "textarea",
131
- {
132
- value: ((_a = value.prompt) == null ? void 0 : _a.user) ?? "",
133
- onChange: (event) => onChange(update.withPrompt(value, { user: event.target.value })),
134
- spellCheck: false,
135
- placeholder: promptPlaceholder,
136
- "aria-label": promptLabel,
137
- className: "min-h-[7rem] w-full resize-y rounded-md border border-border bg-background px-density-2 py-density-1 text-sm outline-none focus:ring-2 focus:ring-ring"
138
- }
139
- ) }),
156
+ /* @__PURE__ */ jsxRuntime.jsxs(Block, { title: promptLabel, children: [
157
+ promptEditor ?? /* @__PURE__ */ jsxRuntime.jsx(
158
+ "textarea",
159
+ {
160
+ value: ((_b = spec.prompt) == null ? void 0 : _b.user) ?? "",
161
+ onChange: (event) => onChange({
162
+ ...value,
163
+ spec: update.withPrompt(spec, { user: event.target.value })
164
+ }),
165
+ spellCheck: false,
166
+ placeholder: promptPlaceholder,
167
+ "aria-label": promptLabel,
168
+ className: "min-h-[7rem] w-full resize-y rounded-md border border-border bg-background px-density-2 py-density-1 text-sm outline-none focus:ring-2 focus:ring-ring"
169
+ }
170
+ ),
171
+ enableAttachments && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-density-2", children: [
172
+ /* @__PURE__ */ jsxRuntime.jsx(
173
+ Attachment.AttachmentList,
174
+ {
175
+ files: attachmentFiles,
176
+ onRemove: (index2) => {
177
+ var _a2;
178
+ return onChange({
179
+ ...value,
180
+ spec: update.withPrompt(spec, {
181
+ attachments: (((_a2 = spec.prompt) == null ? void 0 : _a2.attachments) ?? []).filter(
182
+ (_, itemIndex) => itemIndex !== index2
183
+ )
184
+ })
185
+ });
186
+ }
187
+ }
188
+ ),
189
+ /* @__PURE__ */ jsxRuntime.jsx(
190
+ Attachment.AttachmentButton,
191
+ {
192
+ files: attachmentFiles,
193
+ upload: resolvedAttachmentUpload,
194
+ onAdd: (parts) => {
195
+ var _a2;
196
+ return onChange({
197
+ ...value,
198
+ spec: update.withPrompt(spec, {
199
+ attachments: [
200
+ ...((_a2 = spec.prompt) == null ? void 0 : _a2.attachments) ?? [],
201
+ ...parts.map((part) => {
202
+ const uploaded = part;
203
+ return {
204
+ id: uploaded.attachmentId,
205
+ mediaType: uploaded.mediaType,
206
+ size: uploaded.size,
207
+ ...uploaded.filename ? { filename: uploaded.filename } : {}
208
+ };
209
+ })
210
+ ]
211
+ })
212
+ });
213
+ },
214
+ ...(selectedModel == null ? void 0 : selectedModel.inputMediaTypes) ? { acceptedMediaTypes: selectedModel.inputMediaTypes } : {},
215
+ ...attachmentLimits ? { limits: attachmentLimits } : {}
216
+ }
217
+ )
218
+ ] })
219
+ ] }),
140
220
  footer,
141
221
  /* @__PURE__ */ jsxRuntime.jsx(
142
222
  Modal.Modal,
@@ -150,8 +230,8 @@ function PromptRunEditor({
150
230
  children: /* @__PURE__ */ jsxRuntime.jsx(
151
231
  index.SpecRuntimeEditor,
152
232
  {
153
- value,
154
- onChange,
233
+ value: spec,
234
+ onChange: (next) => onChange({ ...value, spec: next }),
155
235
  models,
156
236
  families,
157
237
  tools,
@@ -162,7 +242,7 @@ function PromptRunEditor({
162
242
  onSave: () => setSpecOpen(false),
163
243
  onCancel: () => setSpecOpen(false),
164
244
  saveLabel: "Done",
165
- footerStatus: runtimeMode.labelForBackend(value.backend, families)
245
+ footerStatus: runtimeMode.labelForBackend(spec.backend, families)
166
246
  }
167
247
  )
168
248
  }