@flanksource/clicky-ui 0.3.41 → 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 (472) hide show
  1. package/dist/ai.cjs +4 -0
  2. package/dist/ai.cjs.map +1 -1
  3. package/dist/ai.js +4 -0
  4. package/dist/ai.js.map +1 -1
  5. package/dist/comments/CommentCard.cjs +3 -1
  6. package/dist/comments/CommentCard.cjs.map +1 -1
  7. package/dist/comments/CommentCard.d.ts.map +1 -1
  8. package/dist/comments/CommentCard.js +4 -2
  9. package/dist/comments/CommentCard.js.map +1 -1
  10. package/dist/comments/CommentCardParts.cjs +16 -0
  11. package/dist/comments/CommentCardParts.cjs.map +1 -1
  12. package/dist/comments/CommentCardParts.d.ts +4 -1
  13. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  14. package/dist/comments/CommentCardParts.js +16 -0
  15. package/dist/comments/CommentCardParts.js.map +1 -1
  16. package/dist/comments/comment-types.cjs.map +1 -1
  17. package/dist/comments/comment-types.d.ts +4 -0
  18. package/dist/comments/comment-types.d.ts.map +1 -1
  19. package/dist/comments/comment-types.js.map +1 -1
  20. package/dist/components/Combobox.cjs +54 -8
  21. package/dist/components/Combobox.cjs.map +1 -1
  22. package/dist/components/Combobox.d.ts.map +1 -1
  23. package/dist/components/Combobox.js +56 -10
  24. package/dist/components/Combobox.js.map +1 -1
  25. package/dist/components/ComboboxMenu.cjs +139 -113
  26. package/dist/components/ComboboxMenu.cjs.map +1 -1
  27. package/dist/components/ComboboxMenu.d.ts +3 -1
  28. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  29. package/dist/components/ComboboxMenu.js +139 -113
  30. package/dist/components/ComboboxMenu.js.map +1 -1
  31. package/dist/components/ComboboxMenuTrigger.cjs +87 -0
  32. package/dist/components/ComboboxMenuTrigger.cjs.map +1 -0
  33. package/dist/components/ComboboxMenuTrigger.d.ts +23 -0
  34. package/dist/components/ComboboxMenuTrigger.d.ts.map +1 -0
  35. package/dist/components/ComboboxMenuTrigger.js +87 -0
  36. package/dist/components/ComboboxMenuTrigger.js.map +1 -0
  37. package/dist/components/JsonSchemaForm.cjs +30 -7
  38. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  39. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  40. package/dist/components/JsonSchemaForm.js +30 -7
  41. package/dist/components/JsonSchemaForm.js.map +1 -1
  42. package/dist/components/SegmentedControl.cjs +20 -3
  43. package/dist/components/SegmentedControl.cjs.map +1 -1
  44. package/dist/components/SegmentedControl.d.ts +11 -0
  45. package/dist/components/SegmentedControl.d.ts.map +1 -1
  46. package/dist/components/SegmentedControl.js +21 -4
  47. package/dist/components/SegmentedControl.js.map +1 -1
  48. package/dist/components/combobox-types.d.ts +8 -0
  49. package/dist/components/combobox-types.d.ts.map +1 -1
  50. package/dist/components/json-schema-form-debug-badge.cjs +108 -0
  51. package/dist/components/json-schema-form-debug-badge.cjs.map +1 -0
  52. package/dist/components/json-schema-form-debug-badge.d.ts +10 -0
  53. package/dist/components/json-schema-form-debug-badge.d.ts.map +1 -0
  54. package/dist/components/json-schema-form-debug-badge.js +108 -0
  55. package/dist/components/json-schema-form-debug-badge.js.map +1 -0
  56. package/dist/components/json-schema-form-debug-glyph-map.cjs +129 -0
  57. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -0
  58. package/dist/components/json-schema-form-debug-glyph-map.d.ts +20 -0
  59. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -0
  60. package/dist/components/json-schema-form-debug-glyph-map.js +129 -0
  61. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -0
  62. package/dist/components/json-schema-form-debug-glyph.cjs +13 -0
  63. package/dist/components/json-schema-form-debug-glyph.cjs.map +1 -0
  64. package/dist/components/json-schema-form-debug-glyph.d.ts +6 -0
  65. package/dist/components/json-schema-form-debug-glyph.d.ts.map +1 -0
  66. package/dist/components/json-schema-form-debug-glyph.js +13 -0
  67. package/dist/components/json-schema-form-debug-glyph.js.map +1 -0
  68. package/dist/components/json-schema-form-debug-groups.cjs +56 -0
  69. package/dist/components/json-schema-form-debug-groups.cjs.map +1 -0
  70. package/dist/components/json-schema-form-debug-groups.d.ts +8 -0
  71. package/dist/components/json-schema-form-debug-groups.d.ts.map +1 -0
  72. package/dist/components/json-schema-form-debug-groups.js +56 -0
  73. package/dist/components/json-schema-form-debug-groups.js.map +1 -0
  74. package/dist/components/json-schema-form-debug-keywords.cjs +159 -0
  75. package/dist/components/json-schema-form-debug-keywords.cjs.map +1 -0
  76. package/dist/components/json-schema-form-debug-keywords.d.ts +6 -0
  77. package/dist/components/json-schema-form-debug-keywords.d.ts.map +1 -0
  78. package/dist/components/json-schema-form-debug-keywords.js +159 -0
  79. package/dist/components/json-schema-form-debug-keywords.js.map +1 -0
  80. package/dist/components/json-schema-form-debug-listeners.cjs +102 -0
  81. package/dist/components/json-schema-form-debug-listeners.cjs.map +1 -0
  82. package/dist/components/json-schema-form-debug-listeners.d.ts +6 -0
  83. package/dist/components/json-schema-form-debug-listeners.d.ts.map +1 -0
  84. package/dist/components/json-schema-form-debug-listeners.js +102 -0
  85. package/dist/components/json-schema-form-debug-listeners.js.map +1 -0
  86. package/dist/components/json-schema-form-debug.cjs +31 -0
  87. package/dist/components/json-schema-form-debug.cjs.map +1 -0
  88. package/dist/components/json-schema-form-debug.d.ts +11 -0
  89. package/dist/components/json-schema-form-debug.d.ts.map +1 -0
  90. package/dist/components/json-schema-form-debug.js +31 -0
  91. package/dist/components/json-schema-form-debug.js.map +1 -0
  92. package/dist/components/json-schema-form-enum-choice.cjs +114 -0
  93. package/dist/components/json-schema-form-enum-choice.cjs.map +1 -0
  94. package/dist/components/json-schema-form-enum-choice.d.ts +14 -0
  95. package/dist/components/json-schema-form-enum-choice.d.ts.map +1 -0
  96. package/dist/components/json-schema-form-enum-choice.js +114 -0
  97. package/dist/components/json-schema-form-enum-choice.js.map +1 -0
  98. package/dist/components/json-schema-form-fields.cjs +3 -93
  99. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  100. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  101. package/dist/components/json-schema-form-fields.js +1 -91
  102. package/dist/components/json-schema-form-fields.js.map +1 -1
  103. package/dist/components/json-schema-form-listeners.cjs +7 -1
  104. package/dist/components/json-schema-form-listeners.cjs.map +1 -1
  105. package/dist/components/json-schema-form-listeners.d.ts.map +1 -1
  106. package/dist/components/json-schema-form-listeners.js +7 -1
  107. package/dist/components/json-schema-form-listeners.js.map +1 -1
  108. package/dist/components/json-schema-form-preferences.cjs +1 -0
  109. package/dist/components/json-schema-form-preferences.cjs.map +1 -1
  110. package/dist/components/json-schema-form-preferences.d.ts +1 -0
  111. package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
  112. package/dist/components/json-schema-form-preferences.js +1 -0
  113. package/dist/components/json-schema-form-preferences.js.map +1 -1
  114. package/dist/components/json-schema-form-render.cjs +21 -5
  115. package/dist/components/json-schema-form-render.cjs.map +1 -1
  116. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  117. package/dist/components/json-schema-form-render.js +21 -5
  118. package/dist/components/json-schema-form-render.js.map +1 -1
  119. package/dist/components/json-schema-form-runtime-types.d.ts +1 -0
  120. package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -1
  121. package/dist/components/json-schema-form-tone.cjs +12 -0
  122. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  123. package/dist/components/json-schema-form-tone.js +12 -0
  124. package/dist/components/json-schema-form-tone.js.map +1 -1
  125. package/dist/components/json-schema-form-types.d.ts +1 -0
  126. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  127. package/dist/data/GraphDiagram.cjs +125 -138
  128. package/dist/data/GraphDiagram.cjs.map +1 -1
  129. package/dist/data/GraphDiagram.d.ts +30 -23
  130. package/dist/data/GraphDiagram.d.ts.map +1 -1
  131. package/dist/data/GraphDiagram.js +128 -141
  132. package/dist/data/GraphDiagram.js.map +1 -1
  133. package/dist/data/GraphDiagramEdges.cjs +208 -0
  134. package/dist/data/GraphDiagramEdges.cjs.map +1 -0
  135. package/dist/data/GraphDiagramEdges.d.ts +40 -0
  136. package/dist/data/GraphDiagramEdges.d.ts.map +1 -0
  137. package/dist/data/GraphDiagramEdges.js +208 -0
  138. package/dist/data/GraphDiagramEdges.js.map +1 -0
  139. package/dist/data/GraphDiagramNodes.cjs +142 -0
  140. package/dist/data/GraphDiagramNodes.cjs.map +1 -0
  141. package/dist/data/GraphDiagramNodes.d.ts +22 -0
  142. package/dist/data/GraphDiagramNodes.d.ts.map +1 -0
  143. package/dist/data/GraphDiagramNodes.js +142 -0
  144. package/dist/data/GraphDiagramNodes.js.map +1 -0
  145. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs +8 -3
  146. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs.map +1 -1
  147. package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts.map +1 -1
  148. package/dist/data/ai/PromptRunEditor/RuntimeRows.js +8 -3
  149. package/dist/data/ai/PromptRunEditor/RuntimeRows.js.map +1 -1
  150. package/dist/data/ai/PromptRunEditor/index.cjs +37 -43
  151. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  152. package/dist/data/ai/PromptRunEditor/index.d.ts +3 -1
  153. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  154. package/dist/data/ai/PromptRunEditor/index.js +38 -44
  155. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  156. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +16 -5
  157. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
  158. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +4 -1
  159. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
  160. package/dist/data/ai/PromptRunEditor/runtimeActions.js +17 -6
  161. package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
  162. package/dist/data/ai/SessionInspector.approvals-model.cjs +12 -0
  163. package/dist/data/ai/SessionInspector.approvals-model.cjs.map +1 -1
  164. package/dist/data/ai/SessionInspector.approvals-model.d.ts +11 -2
  165. package/dist/data/ai/SessionInspector.approvals-model.d.ts.map +1 -1
  166. package/dist/data/ai/SessionInspector.approvals-model.js +12 -0
  167. package/dist/data/ai/SessionInspector.approvals-model.js.map +1 -1
  168. package/dist/data/ai/SessionInspector.approvals.cjs +25 -1
  169. package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
  170. package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -1
  171. package/dist/data/ai/SessionInspector.approvals.js +26 -2
  172. package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
  173. package/dist/data/ai/SessionInspector.summary.cjs +9 -3
  174. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
  175. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  176. package/dist/data/ai/SessionInspector.summary.js +9 -3
  177. package/dist/data/ai/SessionInspector.summary.js.map +1 -1
  178. package/dist/data/ai/SessionInspector.transcript.cjs +4 -0
  179. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -1
  180. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  181. package/dist/data/ai/SessionInspector.transcript.js +4 -0
  182. package/dist/data/ai/SessionInspector.transcript.js.map +1 -1
  183. package/dist/data/ai/SessionViewer.approval-body.cjs +146 -0
  184. package/dist/data/ai/SessionViewer.approval-body.cjs.map +1 -0
  185. package/dist/data/ai/SessionViewer.approval-body.d.ts +11 -0
  186. package/dist/data/ai/SessionViewer.approval-body.d.ts.map +1 -0
  187. package/dist/data/ai/SessionViewer.approval-body.js +146 -0
  188. package/dist/data/ai/SessionViewer.approval-body.js.map +1 -0
  189. package/dist/data/ai/SessionViewer.approval-forms.cjs +150 -0
  190. package/dist/data/ai/SessionViewer.approval-forms.cjs.map +1 -0
  191. package/dist/data/ai/SessionViewer.approval-forms.d.ts +23 -0
  192. package/dist/data/ai/SessionViewer.approval-forms.d.ts.map +1 -0
  193. package/dist/data/ai/SessionViewer.approval-forms.js +150 -0
  194. package/dist/data/ai/SessionViewer.approval-forms.js.map +1 -0
  195. package/dist/data/ai/SessionViewer.cjs +57 -20
  196. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  197. package/dist/data/ai/SessionViewer.d.ts +13 -3
  198. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  199. package/dist/data/ai/SessionViewer.decision-controls.cjs +313 -0
  200. package/dist/data/ai/SessionViewer.decision-controls.cjs.map +1 -0
  201. package/dist/data/ai/SessionViewer.decision-controls.d.ts +43 -0
  202. package/dist/data/ai/SessionViewer.decision-controls.d.ts.map +1 -0
  203. package/dist/data/ai/SessionViewer.decision-controls.js +313 -0
  204. package/dist/data/ai/SessionViewer.decision-controls.js.map +1 -0
  205. package/dist/data/ai/SessionViewer.decision.cjs +21 -0
  206. package/dist/data/ai/SessionViewer.decision.cjs.map +1 -0
  207. package/dist/data/ai/SessionViewer.decision.d.ts +12 -0
  208. package/dist/data/ai/SessionViewer.decision.d.ts.map +1 -0
  209. package/dist/data/ai/SessionViewer.decision.js +21 -0
  210. package/dist/data/ai/SessionViewer.decision.js.map +1 -0
  211. package/dist/data/ai/SessionViewer.input.cjs +14 -0
  212. package/dist/data/ai/SessionViewer.input.cjs.map +1 -1
  213. package/dist/data/ai/SessionViewer.input.d.ts +5 -0
  214. package/dist/data/ai/SessionViewer.input.d.ts.map +1 -1
  215. package/dist/data/ai/SessionViewer.input.js +14 -0
  216. package/dist/data/ai/SessionViewer.input.js.map +1 -1
  217. package/dist/data/ai/SessionViewer.js +58 -21
  218. package/dist/data/ai/SessionViewer.js.map +1 -1
  219. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  220. package/dist/data/ai/SessionViewer.model.d.ts +4 -0
  221. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  222. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  223. package/dist/data/ai/SessionViewer.rows.cjs +6 -3
  224. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  225. package/dist/data/ai/SessionViewer.rows.d.ts +2 -1
  226. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  227. package/dist/data/ai/SessionViewer.rows.js +6 -3
  228. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  229. package/dist/data/ai/SessionViewer.tool-row.cjs +29 -237
  230. package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
  231. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  232. package/dist/data/ai/SessionViewer.tool-row.js +27 -235
  233. package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
  234. package/dist/data/ai/SessionViewer.unified.d.ts +4 -0
  235. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  236. package/dist/data/ai/SessionViewerMenu.cjs +8 -2
  237. package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
  238. package/dist/data/ai/SessionViewerMenu.d.ts +4 -1
  239. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  240. package/dist/data/ai/SessionViewerMenu.js +8 -2
  241. package/dist/data/ai/SessionViewerMenu.js.map +1 -1
  242. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +28 -17
  243. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  244. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +10 -2
  245. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  246. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +29 -18
  247. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  248. package/dist/data/ai/SpecRuntimeEditor/index.cjs +9 -1
  249. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  250. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +9 -2
  251. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  252. package/dist/data/ai/SpecRuntimeEditor/index.js +9 -1
  253. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  254. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +1 -1
  255. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +1 -1
  256. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  257. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +8 -2
  258. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  259. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  260. package/dist/data/ai/SpecRuntimeEditor/update.cjs +14 -6
  261. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  262. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -0
  263. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  264. package/dist/data/ai/SpecRuntimeEditor/update.js +14 -6
  265. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  266. package/dist/data/ai/approval-request.cjs +75 -0
  267. package/dist/data/ai/approval-request.cjs.map +1 -0
  268. package/dist/data/ai/approval-request.d.ts +155 -0
  269. package/dist/data/ai/approval-request.d.ts.map +1 -0
  270. package/dist/data/ai/approval-request.js +75 -0
  271. package/dist/data/ai/approval-request.js.map +1 -0
  272. package/dist/data/ai/index.d.ts +3 -0
  273. package/dist/data/ai/index.d.ts.map +1 -1
  274. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs +125 -0
  275. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs.map +1 -0
  276. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts +11 -0
  277. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts.map +1 -0
  278. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js +125 -0
  279. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js.map +1 -0
  280. package/dist/data/ai/runtime-preset-menu/index.d.ts +3 -0
  281. package/dist/data/ai/runtime-preset-menu/index.d.ts.map +1 -0
  282. package/dist/data/ai/runtime-preset-menu/model.cjs +73 -0
  283. package/dist/data/ai/runtime-preset-menu/model.cjs.map +1 -0
  284. package/dist/data/ai/runtime-preset-menu/model.d.ts +13 -0
  285. package/dist/data/ai/runtime-preset-menu/model.d.ts.map +1 -0
  286. package/dist/data/ai/runtime-preset-menu/model.js +73 -0
  287. package/dist/data/ai/runtime-preset-menu/model.js.map +1 -0
  288. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs +149 -0
  289. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs.map +1 -0
  290. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts +15 -0
  291. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts.map +1 -0
  292. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js +149 -0
  293. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js.map +1 -0
  294. package/dist/data/ai/runtime-spec-fields.cjs +166 -0
  295. package/dist/data/ai/runtime-spec-fields.cjs.map +1 -0
  296. package/dist/data/ai/runtime-spec-fields.d.ts +13 -0
  297. package/dist/data/ai/runtime-spec-fields.d.ts.map +1 -0
  298. package/dist/data/ai/runtime-spec-fields.js +166 -0
  299. package/dist/data/ai/runtime-spec-fields.js.map +1 -0
  300. package/dist/data/ai/session-categories.cjs +4 -0
  301. package/dist/data/ai/session-categories.cjs.map +1 -1
  302. package/dist/data/ai/session-categories.d.ts +1 -0
  303. package/dist/data/ai/session-categories.d.ts.map +1 -1
  304. package/dist/data/ai/session-categories.js +4 -0
  305. package/dist/data/ai/session-categories.js.map +1 -1
  306. package/dist/data/ai/use-session-scroll.cjs +49 -21
  307. package/dist/data/ai/use-session-scroll.cjs.map +1 -1
  308. package/dist/data/ai/use-session-scroll.d.ts +2 -0
  309. package/dist/data/ai/use-session-scroll.d.ts.map +1 -1
  310. package/dist/data/ai/use-session-scroll.js +49 -21
  311. package/dist/data/ai/use-session-scroll.js.map +1 -1
  312. package/dist/data/chat/Chat.runtime.cjs +1 -1
  313. package/dist/data/chat/Chat.runtime.cjs.map +1 -1
  314. package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
  315. package/dist/data/chat/Chat.runtime.js +1 -1
  316. package/dist/data/chat/Chat.runtime.js.map +1 -1
  317. package/dist/data/graph-columns-layout.cjs +216 -0
  318. package/dist/data/graph-columns-layout.cjs.map +1 -0
  319. package/dist/data/graph-columns-layout.d.ts +56 -0
  320. package/dist/data/graph-columns-layout.d.ts.map +1 -0
  321. package/dist/data/graph-columns-layout.js +216 -0
  322. package/dist/data/graph-columns-layout.js.map +1 -0
  323. package/dist/data/graph-diagram-model.cjs +73 -0
  324. package/dist/data/graph-diagram-model.cjs.map +1 -0
  325. package/dist/data/graph-diagram-model.d.ts +90 -0
  326. package/dist/data/graph-diagram-model.d.ts.map +1 -0
  327. package/dist/data/graph-diagram-model.js +73 -0
  328. package/dist/data/graph-diagram-model.js.map +1 -0
  329. package/dist/data/graph-edge-routing.cjs +235 -0
  330. package/dist/data/graph-edge-routing.cjs.map +1 -0
  331. package/dist/data/graph-edge-routing.d.ts +73 -0
  332. package/dist/data/graph-edge-routing.d.ts.map +1 -0
  333. package/dist/data/graph-edge-routing.js +235 -0
  334. package/dist/data/graph-edge-routing.js.map +1 -0
  335. package/dist/data/graph-layout.cjs +0 -82
  336. package/dist/data/graph-layout.cjs.map +1 -1
  337. package/dist/data/graph-layout.d.ts +1 -28
  338. package/dist/data/graph-layout.d.ts.map +1 -1
  339. package/dist/data/graph-layout.js +1 -83
  340. package/dist/data/graph-layout.js.map +1 -1
  341. package/dist/data/har/HarPanel.cjs +129 -33
  342. package/dist/data/har/HarPanel.cjs.map +1 -1
  343. package/dist/data/har/HarPanel.d.ts +13 -1
  344. package/dist/data/har/HarPanel.d.ts.map +1 -1
  345. package/dist/data/har/HarPanel.js +130 -34
  346. package/dist/data/har/HarPanel.js.map +1 -1
  347. package/dist/data/har/fixtures.d.ts +12 -0
  348. package/dist/data/har/fixtures.d.ts.map +1 -1
  349. package/dist/data/har/types.d.ts +12 -0
  350. package/dist/data/har/types.d.ts.map +1 -1
  351. package/dist/data/runtime/RuntimeBar.cjs +67 -84
  352. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  353. package/dist/data/runtime/RuntimeBar.d.ts +4 -5
  354. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  355. package/dist/data/runtime/RuntimeBar.fields.cjs +170 -0
  356. package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -0
  357. package/dist/data/runtime/RuntimeBar.fields.d.ts +16 -0
  358. package/dist/data/runtime/RuntimeBar.fields.d.ts.map +1 -0
  359. package/dist/data/runtime/RuntimeBar.fields.js +170 -0
  360. package/dist/data/runtime/RuntimeBar.fields.js.map +1 -0
  361. package/dist/data/runtime/RuntimeBar.js +70 -87
  362. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  363. package/dist/data/runtime/RuntimeBar.selection.cjs +56 -0
  364. package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -0
  365. package/dist/data/runtime/RuntimeBar.selection.d.ts +20 -0
  366. package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -0
  367. package/dist/data/runtime/RuntimeBar.selection.js +56 -0
  368. package/dist/data/runtime/RuntimeBar.selection.js.map +1 -0
  369. package/dist/data/runtime/RuntimeBarActions.cjs +10 -6
  370. package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
  371. package/dist/data/runtime/RuntimeBarActions.d.ts +8 -1
  372. package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
  373. package/dist/data/runtime/RuntimeBarActions.js +10 -6
  374. package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
  375. package/dist/data/runtime/RuntimeBarIdentity.cjs +166 -0
  376. package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -0
  377. package/dist/data/runtime/RuntimeBarIdentity.d.ts +25 -0
  378. package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -0
  379. package/dist/data/runtime/RuntimeBarIdentity.js +166 -0
  380. package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -0
  381. package/dist/data/runtime/RuntimeBarLayout.cjs +95 -0
  382. package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -0
  383. package/dist/data/runtime/RuntimeBarLayout.d.ts +9 -0
  384. package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -0
  385. package/dist/data/runtime/RuntimeBarLayout.js +95 -0
  386. package/dist/data/runtime/RuntimeBarLayout.js.map +1 -0
  387. package/dist/data/runtime/RuntimeBarSegment.cjs +25 -14
  388. package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
  389. package/dist/data/runtime/RuntimeBarSegment.d.ts +4 -0
  390. package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
  391. package/dist/data/runtime/RuntimeBarSegment.js +25 -14
  392. package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
  393. package/dist/data/runtime/RuntimeLimitInput.cjs +41 -0
  394. package/dist/data/runtime/RuntimeLimitInput.cjs.map +1 -0
  395. package/dist/data/runtime/RuntimeLimitInput.d.ts +9 -0
  396. package/dist/data/runtime/RuntimeLimitInput.d.ts.map +1 -0
  397. package/dist/data/runtime/RuntimeLimitInput.js +41 -0
  398. package/dist/data/runtime/RuntimeLimitInput.js.map +1 -0
  399. package/dist/data/runtime/use-runtime-bar-overflow.cjs +70 -0
  400. package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -0
  401. package/dist/data/runtime/use-runtime-bar-overflow.d.ts +13 -0
  402. package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -0
  403. package/dist/data/runtime/use-runtime-bar-overflow.js +70 -0
  404. package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -0
  405. package/dist/data/use-edge-focus.cjs +20 -0
  406. package/dist/data/use-edge-focus.cjs.map +1 -0
  407. package/dist/data/use-edge-focus.d.ts +23 -0
  408. package/dist/data/use-edge-focus.d.ts.map +1 -0
  409. package/dist/data/use-edge-focus.js +20 -0
  410. package/dist/data/use-edge-focus.js.map +1 -0
  411. package/dist/data/use-pan-zoom.cjs +159 -0
  412. package/dist/data/use-pan-zoom.cjs.map +1 -0
  413. package/dist/data/use-pan-zoom.d.ts +79 -0
  414. package/dist/data/use-pan-zoom.d.ts.map +1 -0
  415. package/dist/data/use-pan-zoom.js +159 -0
  416. package/dist/data/use-pan-zoom.js.map +1 -0
  417. package/dist/data/version-info.cjs +3 -3
  418. package/dist/data/version-info.js +3 -3
  419. package/dist/data.cjs +5 -1
  420. package/dist/data.cjs.map +1 -1
  421. package/dist/data.d.ts +4 -3
  422. package/dist/data.d.ts.map +1 -1
  423. package/dist/data.js +6 -2
  424. package/dist/data.js.map +1 -1
  425. package/dist/index.cjs +5 -1
  426. package/dist/index.cjs.map +1 -1
  427. package/dist/index.js +6 -2
  428. package/dist/index.js.map +1 -1
  429. package/dist/overlay/DropdownMenu.cjs +1 -0
  430. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  431. package/dist/overlay/DropdownMenu.d.ts +4 -0
  432. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  433. package/dist/overlay/DropdownMenu.js +1 -0
  434. package/dist/overlay/DropdownMenu.js.map +1 -1
  435. package/dist/overlay/DropdownMenuSubmenu.cjs +31 -15
  436. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  437. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  438. package/dist/overlay/DropdownMenuSubmenu.js +31 -15
  439. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  440. package/dist/rpc/OperationCatalog.cjs +3 -1
  441. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  442. package/dist/rpc/OperationCatalog.d.ts +3 -1
  443. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  444. package/dist/rpc/OperationCatalog.js +3 -1
  445. package/dist/rpc/OperationCatalog.js.map +1 -1
  446. package/dist/rpc/useOperationPages.cjs +6 -1
  447. package/dist/rpc/useOperationPages.cjs.map +1 -1
  448. package/dist/rpc/useOperationPages.d.ts +3 -1
  449. package/dist/rpc/useOperationPages.d.ts.map +1 -1
  450. package/dist/rpc/useOperationPages.js +6 -1
  451. package/dist/rpc/useOperationPages.js.map +1 -1
  452. package/dist/styles.css +1 -1
  453. package/package.json +1 -1
  454. package/schemas/json-schema-form.schema.json +5 -0
  455. package/dist/data/runtime/RuntimeBarCombo.cjs +0 -423
  456. package/dist/data/runtime/RuntimeBarCombo.cjs.map +0 -1
  457. package/dist/data/runtime/RuntimeBarCombo.d.ts +0 -33
  458. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +0 -1
  459. package/dist/data/runtime/RuntimeBarCombo.js +0 -423
  460. package/dist/data/runtime/RuntimeBarCombo.js.map +0 -1
  461. package/dist/data/runtime/RuntimeBarLimits.cjs +0 -262
  462. package/dist/data/runtime/RuntimeBarLimits.cjs.map +0 -1
  463. package/dist/data/runtime/RuntimeBarLimits.d.ts +0 -17
  464. package/dist/data/runtime/RuntimeBarLimits.d.ts.map +0 -1
  465. package/dist/data/runtime/RuntimeBarLimits.js +0 -262
  466. package/dist/data/runtime/RuntimeBarLimits.js.map +0 -1
  467. package/dist/data/runtime/RuntimeBarSegments.cjs +0 -346
  468. package/dist/data/runtime/RuntimeBarSegments.cjs.map +0 -1
  469. package/dist/data/runtime/RuntimeBarSegments.d.ts +0 -37
  470. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +0 -1
  471. package/dist/data/runtime/RuntimeBarSegments.js +0 -346
  472. package/dist/data/runtime/RuntimeBarSegments.js.map +0 -1
@@ -0,0 +1,125 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useId, Fragment } from "react";
3
+ import { Button } from "../../../components/button.js";
4
+ import { Field } from "../../../components/Field.js";
5
+ import { InputField } from "../../../components/InputField.js";
6
+ import { uniqueName } from "../../../lib/runtime-profile-model.js";
7
+ import { Modal } from "../../../overlay/Modal.js";
8
+ import { effortLevelLabel } from "../../chat/effort-icons.js";
9
+ import { formatCost } from "../../runtime/RuntimeBar.limits.js";
10
+ import { permissionModeVisual } from "../SpecRuntimeEditor/permission-mode-visuals.js";
11
+ import { commitPhase } from "../SpecRuntimeEditor/update.js";
12
+ function SavePresetDialog({
13
+ draft,
14
+ catalog,
15
+ saving,
16
+ error,
17
+ onChange,
18
+ onSave,
19
+ onClose
20
+ }) {
21
+ const nameId = useId();
22
+ const valid = uniqueName(draft.name, draft.id, catalog);
23
+ return /* @__PURE__ */ jsx(
24
+ Modal,
25
+ {
26
+ open: true,
27
+ onClose,
28
+ title: "Save as preset",
29
+ size: "md",
30
+ closeOnEsc: !saving,
31
+ hideClose: saving,
32
+ closeOnBackdrop: !saving,
33
+ children: /* @__PURE__ */ jsxs(
34
+ "form",
35
+ {
36
+ className: "grid gap-density-4",
37
+ onSubmit: (event) => {
38
+ event.preventDefault();
39
+ if (valid && !saving) onSave({ ...draft, name: draft.name.trim() });
40
+ },
41
+ children: [
42
+ /* @__PURE__ */ jsx(
43
+ Field,
44
+ {
45
+ label: "Preset name",
46
+ htmlFor: nameId,
47
+ required: true,
48
+ error: !valid ? "A unique preset name is required." : void 0,
49
+ children: /* @__PURE__ */ jsx(
50
+ InputField,
51
+ {
52
+ id: nameId,
53
+ "aria-label": "Preset name",
54
+ value: draft.name,
55
+ required: true,
56
+ invalid: !valid,
57
+ disabled: saving,
58
+ onChange: (name) => onChange({ ...draft, name })
59
+ }
60
+ )
61
+ }
62
+ ),
63
+ /* @__PURE__ */ jsxs("section", { "aria-label": "Preset settings", className: "grid gap-density-2", children: [
64
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Save these bar settings as a reusable preset." }),
65
+ /* @__PURE__ */ jsx(PresetSettingsPreview, { preset: draft })
66
+ ] }),
67
+ error && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-destructive", children: error }),
68
+ /* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-density-2", children: [
69
+ /* @__PURE__ */ jsx(
70
+ Button,
71
+ {
72
+ type: "button",
73
+ variant: "outline",
74
+ disabled: saving,
75
+ onClick: onClose,
76
+ children: "Cancel"
77
+ }
78
+ ),
79
+ /* @__PURE__ */ jsx(Button, { type: "submit", disabled: !valid || saving, children: saving ? "Saving…" : "Save preset" })
80
+ ] })
81
+ ]
82
+ }
83
+ )
84
+ }
85
+ );
86
+ }
87
+ function PresetSettingsPreview({ preset }) {
88
+ var _a, _b, _c, _d, _e, _f;
89
+ const { spec } = preset;
90
+ const source = (_b = (_a = spec.setup) == null ? void 0 : _a.checkout) == null ? void 0 : _b.worktree;
91
+ const phase = commitPhase(spec);
92
+ const rows = [
93
+ ["Mode", spec.mode],
94
+ ["Model", spec.model ?? spec.id],
95
+ ["Effort", spec.effort ? effortLevelLabel(spec.effort) : void 0],
96
+ [
97
+ "Permissions",
98
+ ((_c = spec.permissions) == null ? void 0 : _c.mode) ? permissionModeVisual(void 0, spec.permissions.mode).label : void 0
99
+ ],
100
+ [
101
+ "Source",
102
+ (source == null ? void 0 : source.mode) ? { new: "New worktree", existing: "Existing worktree", none: "HEAD" }[source.mode] : void 0
103
+ ],
104
+ ["Worktree path", source == null ? void 0 : source.path],
105
+ [
106
+ "Commit",
107
+ ((_d = spec.workflow) == null ? void 0 : _d.commits) !== void 0 ? {
108
+ none: "Never",
109
+ turn: "Every turn",
110
+ agent: "After the loop",
111
+ run: "End of run"
112
+ }[phase] : void 0
113
+ ],
114
+ ["Cost", formatCost((_e = spec.budget) == null ? void 0 : _e.cost)],
115
+ ["Timeout", (_f = spec.budget) == null ? void 0 : _f.timeout]
116
+ ].filter((row) => row[1] !== void 0);
117
+ return rows.length > 0 ? /* @__PURE__ */ jsx("dl", { className: "grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 rounded-md border border-border p-density-3 text-xs", children: rows.map(([label, value]) => /* @__PURE__ */ jsxs(Fragment, { children: [
118
+ /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: label }),
119
+ /* @__PURE__ */ jsx("dd", { className: "break-words font-medium", children: value })
120
+ ] }, label)) }) : /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "No bar settings supplied." });
121
+ }
122
+ export {
123
+ SavePresetDialog
124
+ };
125
+ //# sourceMappingURL=SavePresetDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavePresetDialog.js","sources":["../../../../src/data/ai/runtime-preset-menu/SavePresetDialog.tsx"],"sourcesContent":["import { Fragment, useId } from \"react\";\nimport { Button } from \"../../../components/button\";\nimport { Field } from \"../../../components/Field\";\nimport { InputField } from \"../../../components/InputField\";\nimport { uniqueName } from \"../../../lib/runtime-profile-model\";\nimport { Modal } from \"../../../overlay/Modal\";\nimport { effortLevelLabel } from \"../../chat/effort-icons\";\nimport { formatCost } from \"../../runtime/RuntimeBar.limits\";\nimport { permissionModeVisual } from \"../SpecRuntimeEditor/permission-mode-visuals\";\nimport { commitPhase } from \"../SpecRuntimeEditor/update\";\nimport type { RuntimePreset } from \"../runtime-profile\";\n\nexport function SavePresetDialog({\n draft,\n catalog,\n saving,\n error,\n onChange,\n onSave,\n onClose,\n}: {\n draft: RuntimePreset;\n catalog: RuntimePreset[];\n saving: boolean;\n error: string | undefined;\n onChange: (draft: RuntimePreset) => void;\n onSave: (draft: RuntimePreset) => void;\n onClose: () => void;\n}) {\n const nameId = useId();\n const valid = uniqueName(draft.name, draft.id, catalog);\n return (\n <Modal\n open\n onClose={onClose}\n title=\"Save as preset\"\n size=\"md\"\n closeOnEsc={!saving}\n hideClose={saving}\n closeOnBackdrop={!saving}\n >\n <form\n className=\"grid gap-density-4\"\n onSubmit={(event) => {\n event.preventDefault();\n if (valid && !saving) onSave({ ...draft, name: draft.name.trim() });\n }}\n >\n <Field\n label=\"Preset name\"\n htmlFor={nameId}\n required\n error={!valid ? \"A unique preset name is required.\" : undefined}\n >\n <InputField\n id={nameId}\n aria-label=\"Preset name\"\n value={draft.name}\n required\n invalid={!valid}\n disabled={saving}\n onChange={(name) => onChange({ ...draft, name })}\n />\n </Field>\n <section aria-label=\"Preset settings\" className=\"grid gap-density-2\">\n <p className=\"text-xs text-muted-foreground\">\n Save these bar settings as a reusable preset.\n </p>\n <PresetSettingsPreview preset={draft} />\n </section>\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {error}\n </p>\n )}\n <div className=\"flex justify-end gap-density-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n disabled={saving}\n onClick={onClose}\n >\n Cancel\n </Button>\n <Button type=\"submit\" disabled={!valid || saving}>\n {saving ? \"Saving…\" : \"Save preset\"}\n </Button>\n </div>\n </form>\n </Modal>\n );\n}\n\nfunction PresetSettingsPreview({ preset }: { preset: RuntimePreset }) {\n const { spec } = preset;\n const source = spec.setup?.checkout?.worktree;\n const phase = commitPhase(spec);\n const rows = [\n [\"Mode\", spec.mode],\n [\"Model\", spec.model ?? spec.id],\n [\"Effort\", spec.effort ? effortLevelLabel(spec.effort) : undefined],\n [\n \"Permissions\",\n spec.permissions?.mode\n ? permissionModeVisual(undefined, spec.permissions.mode).label\n : undefined,\n ],\n [\n \"Source\",\n source?.mode\n ? { new: \"New worktree\", existing: \"Existing worktree\", none: \"HEAD\" }[\n source.mode\n ]\n : undefined,\n ],\n [\"Worktree path\", source?.path],\n [\n \"Commit\",\n spec.workflow?.commits !== undefined\n ? {\n none: \"Never\",\n turn: \"Every turn\",\n agent: \"After the loop\",\n run: \"End of run\",\n }[phase]\n : undefined,\n ],\n [\"Cost\", formatCost(spec.budget?.cost)],\n [\"Timeout\", spec.budget?.timeout],\n ].filter((row) => row[1] !== undefined);\n return rows.length > 0 ? (\n <dl className=\"grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 rounded-md border border-border p-density-3 text-xs\">\n {rows.map(([label, value]) => (\n <Fragment key={label}>\n <dt className=\"text-muted-foreground\">{label}</dt>\n <dd className=\"break-words font-medium\">{value}</dd>\n </Fragment>\n ))}\n </dl>\n ) : (\n <p className=\"text-xs text-muted-foreground\">No bar settings supplied.</p>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { useRuntimePresetMenu, type RuntimePresetMenuOptions, } from './use-runtime-preset-menu.js';
2
+ export type { RuntimePresetMenuValue } from './model.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/runtime-preset-menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const runtimeProfileModel = require("../../../lib/runtime-profile-model.cjs");
4
+ function runtimeBarPresetSpec(spec) {
5
+ var _a, _b, _c, _d, _e, _f, _g;
6
+ const captured = {};
7
+ for (const key of ["mode", "model", "id", "effort"]) {
8
+ if ((_a = spec[key]) == null ? void 0 : _a.trim()) captured[key] = spec[key];
9
+ }
10
+ const budget = {
11
+ ...((_b = spec.budget) == null ? void 0 : _b.cost) !== void 0 ? { cost: spec.budget.cost } : {},
12
+ ...((_c = spec.budget) == null ? void 0 : _c.timeout) ? { timeout: spec.budget.timeout } : {}
13
+ };
14
+ if (Object.keys(budget).length > 0) captured.budget = budget;
15
+ if ((_d = spec.permissions) == null ? void 0 : _d.mode)
16
+ captured.permissions = { mode: spec.permissions.mode };
17
+ const source = (_f = (_e = spec.setup) == null ? void 0 : _e.checkout) == null ? void 0 : _f.worktree;
18
+ if (source == null ? void 0 : source.mode) {
19
+ captured.setup = {
20
+ checkout: {
21
+ worktree: {
22
+ mode: source.mode,
23
+ ...source.mode !== "none" && source.path ? { path: source.path } : {}
24
+ }
25
+ }
26
+ };
27
+ }
28
+ if (((_g = spec.workflow) == null ? void 0 : _g.commits) !== void 0) {
29
+ captured.workflow = { commits: structuredClone(spec.workflow.commits) };
30
+ }
31
+ return captured;
32
+ }
33
+ function withRuntimePresetSelection({
34
+ value,
35
+ selected,
36
+ catalog
37
+ }) {
38
+ var _a, _b, _c, _d, _e;
39
+ const previous = new Set(
40
+ value.presets.map((ref) => {
41
+ var _a2;
42
+ return ((_a2 = runtimeProfileModel.presetForRef(ref, catalog)) == null ? void 0 : _a2.id) ?? ref;
43
+ })
44
+ );
45
+ const presets = [
46
+ ...new Set(selected.map((ref) => {
47
+ var _a2;
48
+ return ((_a2 = runtimeProfileModel.presetForRef(ref, catalog)) == null ? void 0 : _a2.id) ?? ref;
49
+ }))
50
+ ];
51
+ let spec = value.spec;
52
+ for (const ref of presets) {
53
+ if (previous.has(ref)) continue;
54
+ const preset = runtimeProfileModel.presetForRef(ref, catalog);
55
+ if (!preset)
56
+ throw new Error(`Preset ${JSON.stringify(ref)} is not in the catalog`);
57
+ const overlay = runtimeBarPresetSpec(preset.spec);
58
+ spec = { ...spec };
59
+ if (overlay.model !== void 0 || overlay.id !== void 0) {
60
+ delete spec.model;
61
+ delete spec.id;
62
+ }
63
+ if (((_c = (_b = (_a = overlay.setup) == null ? void 0 : _a.checkout) == null ? void 0 : _b.worktree) == null ? void 0 : _c.mode) === "none" && ((_e = (_d = spec.setup) == null ? void 0 : _d.checkout) == null ? void 0 : _e.worktree)) {
64
+ spec = structuredClone(spec);
65
+ delete spec.setup.checkout.worktree.path;
66
+ }
67
+ spec = runtimeProfileModel.mergeRuntimeSpec(spec, overlay);
68
+ }
69
+ return { spec, presets };
70
+ }
71
+ exports.runtimeBarPresetSpec = runtimeBarPresetSpec;
72
+ exports.withRuntimePresetSelection = withRuntimePresetSelection;
73
+ //# sourceMappingURL=model.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.cjs","sources":["../../../../src/data/ai/runtime-preset-menu/model.ts"],"sourcesContent":["import type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nimport type { RuntimePreset } from \"../runtime-profile\";\nimport {\n mergeRuntimeSpec,\n presetForRef,\n} from \"../../../lib/runtime-profile-model\";\n\nexport type RuntimePresetMenuValue = {\n spec: AISpecRuntimeValue;\n presets: string[];\n};\n\nexport function runtimeBarPresetSpec(\n spec: AISpecRuntimeValue,\n): AISpecRuntimeValue {\n const captured: AISpecRuntimeValue = {};\n for (const key of [\"mode\", \"model\", \"id\", \"effort\"] as const) {\n if (spec[key]?.trim()) captured[key] = spec[key];\n }\n const budget = {\n ...(spec.budget?.cost !== undefined ? { cost: spec.budget.cost } : {}),\n ...(spec.budget?.timeout ? { timeout: spec.budget.timeout } : {}),\n };\n if (Object.keys(budget).length > 0) captured.budget = budget;\n if (spec.permissions?.mode)\n captured.permissions = { mode: spec.permissions.mode };\n const source = spec.setup?.checkout?.worktree;\n if (source?.mode) {\n captured.setup = {\n checkout: {\n worktree: {\n mode: source.mode,\n ...(source.mode !== \"none\" && source.path\n ? { path: source.path }\n : {}),\n },\n },\n };\n }\n if (spec.workflow?.commits !== undefined) {\n captured.workflow = { commits: structuredClone(spec.workflow.commits) };\n }\n return captured;\n}\n\nexport function withRuntimePresetSelection({\n value,\n selected,\n catalog,\n}: {\n value: RuntimePresetMenuValue;\n selected: string[];\n catalog: RuntimePreset[];\n}): RuntimePresetMenuValue {\n const previous = new Set(\n value.presets.map((ref) => presetForRef(ref, catalog)?.id ?? ref),\n );\n const presets = [\n ...new Set(selected.map((ref) => presetForRef(ref, catalog)?.id ?? ref)),\n ];\n let spec = value.spec;\n for (const ref of presets) {\n if (previous.has(ref)) continue;\n const preset = presetForRef(ref, catalog);\n if (!preset)\n throw new Error(`Preset ${JSON.stringify(ref)} is not in the catalog`);\n const overlay = runtimeBarPresetSpec(preset.spec);\n spec = { ...spec };\n if (overlay.model !== undefined || overlay.id !== undefined) {\n delete spec.model;\n delete spec.id;\n }\n if (\n overlay.setup?.checkout?.worktree?.mode === \"none\" &&\n spec.setup?.checkout?.worktree\n ) {\n spec = structuredClone(spec);\n delete spec.setup!.checkout!.worktree!.path;\n }\n spec = mergeRuntimeSpec(spec, overlay);\n }\n return { spec, presets };\n}\n"],"names":["presetForRef","mergeRuntimeSpec"],"mappings":";;;AAYO,SAAS,qBACd,MACoB;;AACpB,QAAM,WAA+B,CAAA;AACrC,aAAW,OAAO,CAAC,QAAQ,SAAS,MAAM,QAAQ,GAAY;AAC5D,SAAI,UAAK,GAAG,MAAR,mBAAW,OAAQ,UAAS,GAAG,IAAI,KAAK,GAAG;AAAA,EACjD;AACA,QAAM,SAAS;AAAA,IACb,KAAI,UAAK,WAAL,mBAAa,UAAS,SAAY,EAAE,MAAM,KAAK,OAAO,KAAA,IAAS,CAAA;AAAA,IACnE,KAAI,UAAK,WAAL,mBAAa,WAAU,EAAE,SAAS,KAAK,OAAO,YAAY,CAAA;AAAA,EAAC;AAEjE,MAAI,OAAO,KAAK,MAAM,EAAE,SAAS,YAAY,SAAS;AACtD,OAAI,UAAK,gBAAL,mBAAkB;AACpB,aAAS,cAAc,EAAE,MAAM,KAAK,YAAY,KAAA;AAClD,QAAM,UAAS,gBAAK,UAAL,mBAAY,aAAZ,mBAAsB;AACrC,MAAI,iCAAQ,MAAM;AAChB,aAAS,QAAQ;AAAA,MACf,UAAU;AAAA,QACR,UAAU;AAAA,UACR,MAAM,OAAO;AAAA,UACb,GAAI,OAAO,SAAS,UAAU,OAAO,OACjC,EAAE,MAAM,OAAO,SACf,CAAA;AAAA,QAAC;AAAA,MACP;AAAA,IACF;AAAA,EAEJ;AACA,QAAI,UAAK,aAAL,mBAAe,aAAY,QAAW;AACxC,aAAS,WAAW,EAAE,SAAS,gBAAgB,KAAK,SAAS,OAAO,EAAA;AAAA,EACtE;AACA,SAAO;AACT;AAEO,SAAS,2BAA2B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACF,GAI2B;;AACzB,QAAM,WAAW,IAAI;AAAA,IACnB,MAAM,QAAQ,IAAI,CAAC,QAAA;;AAAQA,eAAAA,MAAAA,oBAAAA,aAAa,KAAK,OAAO,MAAzBA,gBAAAA,IAA4B,OAAM;AAAA,KAAG;AAAA,EAAA;AAElE,QAAM,UAAU;AAAA,IACd,GAAG,IAAI,IAAI,SAAS,IAAI,CAAC;;AAAQA,eAAAA,MAAAA,oBAAAA,aAAa,KAAK,OAAO,MAAzBA,gBAAAA,IAA4B,OAAM;AAAA,KAAG,CAAC;AAAA,EAAA;AAEzE,MAAI,OAAO,MAAM;AACjB,aAAW,OAAO,SAAS;AACzB,QAAI,SAAS,IAAI,GAAG,EAAG;AACvB,UAAM,SAASA,oBAAAA,aAAa,KAAK,OAAO;AACxC,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,UAAU,KAAK,UAAU,GAAG,CAAC,wBAAwB;AACvE,UAAM,UAAU,qBAAqB,OAAO,IAAI;AAChD,WAAO,EAAE,GAAG,KAAA;AACZ,QAAI,QAAQ,UAAU,UAAa,QAAQ,OAAO,QAAW;AAC3D,aAAO,KAAK;AACZ,aAAO,KAAK;AAAA,IACd;AACA,UACE,yBAAQ,UAAR,mBAAe,aAAf,mBAAyB,aAAzB,mBAAmC,UAAS,YAC5C,gBAAK,UAAL,mBAAY,aAAZ,mBAAsB,WACtB;AACA,aAAO,gBAAgB,IAAI;AAC3B,aAAO,KAAK,MAAO,SAAU,SAAU;AAAA,IACzC;AACA,WAAOC,oBAAAA,iBAAiB,MAAM,OAAO;AAAA,EACvC;AACA,SAAO,EAAE,MAAM,QAAA;AACjB;;;"}
@@ -0,0 +1,13 @@
1
+ import { AISpecRuntimeValue } from '../SpecRuntimeEditor.model.js';
2
+ import { RuntimePreset } from '../runtime-profile.js';
3
+ export type RuntimePresetMenuValue = {
4
+ spec: AISpecRuntimeValue;
5
+ presets: string[];
6
+ };
7
+ export declare function runtimeBarPresetSpec(spec: AISpecRuntimeValue): AISpecRuntimeValue;
8
+ export declare function withRuntimePresetSelection({ value, selected, catalog, }: {
9
+ value: RuntimePresetMenuValue;
10
+ selected: string[];
11
+ catalog: RuntimePreset[];
12
+ }): RuntimePresetMenuValue;
13
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/runtime-preset-menu/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,kBAAkB,GACvB,kBAAkB,CA6BpB;AAED,wBAAgB,0BAA0B,CAAC,EACzC,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE;IACD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B,GAAG,sBAAsB,CA6BzB"}
@@ -0,0 +1,73 @@
1
+ import { presetForRef, mergeRuntimeSpec } from "../../../lib/runtime-profile-model.js";
2
+ function runtimeBarPresetSpec(spec) {
3
+ var _a, _b, _c, _d, _e, _f, _g;
4
+ const captured = {};
5
+ for (const key of ["mode", "model", "id", "effort"]) {
6
+ if ((_a = spec[key]) == null ? void 0 : _a.trim()) captured[key] = spec[key];
7
+ }
8
+ const budget = {
9
+ ...((_b = spec.budget) == null ? void 0 : _b.cost) !== void 0 ? { cost: spec.budget.cost } : {},
10
+ ...((_c = spec.budget) == null ? void 0 : _c.timeout) ? { timeout: spec.budget.timeout } : {}
11
+ };
12
+ if (Object.keys(budget).length > 0) captured.budget = budget;
13
+ if ((_d = spec.permissions) == null ? void 0 : _d.mode)
14
+ captured.permissions = { mode: spec.permissions.mode };
15
+ const source = (_f = (_e = spec.setup) == null ? void 0 : _e.checkout) == null ? void 0 : _f.worktree;
16
+ if (source == null ? void 0 : source.mode) {
17
+ captured.setup = {
18
+ checkout: {
19
+ worktree: {
20
+ mode: source.mode,
21
+ ...source.mode !== "none" && source.path ? { path: source.path } : {}
22
+ }
23
+ }
24
+ };
25
+ }
26
+ if (((_g = spec.workflow) == null ? void 0 : _g.commits) !== void 0) {
27
+ captured.workflow = { commits: structuredClone(spec.workflow.commits) };
28
+ }
29
+ return captured;
30
+ }
31
+ function withRuntimePresetSelection({
32
+ value,
33
+ selected,
34
+ catalog
35
+ }) {
36
+ var _a, _b, _c, _d, _e;
37
+ const previous = new Set(
38
+ value.presets.map((ref) => {
39
+ var _a2;
40
+ return ((_a2 = presetForRef(ref, catalog)) == null ? void 0 : _a2.id) ?? ref;
41
+ })
42
+ );
43
+ const presets = [
44
+ ...new Set(selected.map((ref) => {
45
+ var _a2;
46
+ return ((_a2 = presetForRef(ref, catalog)) == null ? void 0 : _a2.id) ?? ref;
47
+ }))
48
+ ];
49
+ let spec = value.spec;
50
+ for (const ref of presets) {
51
+ if (previous.has(ref)) continue;
52
+ const preset = presetForRef(ref, catalog);
53
+ if (!preset)
54
+ throw new Error(`Preset ${JSON.stringify(ref)} is not in the catalog`);
55
+ const overlay = runtimeBarPresetSpec(preset.spec);
56
+ spec = { ...spec };
57
+ if (overlay.model !== void 0 || overlay.id !== void 0) {
58
+ delete spec.model;
59
+ delete spec.id;
60
+ }
61
+ if (((_c = (_b = (_a = overlay.setup) == null ? void 0 : _a.checkout) == null ? void 0 : _b.worktree) == null ? void 0 : _c.mode) === "none" && ((_e = (_d = spec.setup) == null ? void 0 : _d.checkout) == null ? void 0 : _e.worktree)) {
62
+ spec = structuredClone(spec);
63
+ delete spec.setup.checkout.worktree.path;
64
+ }
65
+ spec = mergeRuntimeSpec(spec, overlay);
66
+ }
67
+ return { spec, presets };
68
+ }
69
+ export {
70
+ runtimeBarPresetSpec,
71
+ withRuntimePresetSelection
72
+ };
73
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sources":["../../../../src/data/ai/runtime-preset-menu/model.ts"],"sourcesContent":["import type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nimport type { RuntimePreset } from \"../runtime-profile\";\nimport {\n mergeRuntimeSpec,\n presetForRef,\n} from \"../../../lib/runtime-profile-model\";\n\nexport type RuntimePresetMenuValue = {\n spec: AISpecRuntimeValue;\n presets: string[];\n};\n\nexport function runtimeBarPresetSpec(\n spec: AISpecRuntimeValue,\n): AISpecRuntimeValue {\n const captured: AISpecRuntimeValue = {};\n for (const key of [\"mode\", \"model\", \"id\", \"effort\"] as const) {\n if (spec[key]?.trim()) captured[key] = spec[key];\n }\n const budget = {\n ...(spec.budget?.cost !== undefined ? { cost: spec.budget.cost } : {}),\n ...(spec.budget?.timeout ? { timeout: spec.budget.timeout } : {}),\n };\n if (Object.keys(budget).length > 0) captured.budget = budget;\n if (spec.permissions?.mode)\n captured.permissions = { mode: spec.permissions.mode };\n const source = spec.setup?.checkout?.worktree;\n if (source?.mode) {\n captured.setup = {\n checkout: {\n worktree: {\n mode: source.mode,\n ...(source.mode !== \"none\" && source.path\n ? { path: source.path }\n : {}),\n },\n },\n };\n }\n if (spec.workflow?.commits !== undefined) {\n captured.workflow = { commits: structuredClone(spec.workflow.commits) };\n }\n return captured;\n}\n\nexport function withRuntimePresetSelection({\n value,\n selected,\n catalog,\n}: {\n value: RuntimePresetMenuValue;\n selected: string[];\n catalog: RuntimePreset[];\n}): RuntimePresetMenuValue {\n const previous = new Set(\n value.presets.map((ref) => presetForRef(ref, catalog)?.id ?? ref),\n );\n const presets = [\n ...new Set(selected.map((ref) => presetForRef(ref, catalog)?.id ?? ref)),\n ];\n let spec = value.spec;\n for (const ref of presets) {\n if (previous.has(ref)) continue;\n const preset = presetForRef(ref, catalog);\n if (!preset)\n throw new Error(`Preset ${JSON.stringify(ref)} is not in the catalog`);\n const overlay = runtimeBarPresetSpec(preset.spec);\n spec = { ...spec };\n if (overlay.model !== undefined || overlay.id !== undefined) {\n delete spec.model;\n delete spec.id;\n }\n if (\n overlay.setup?.checkout?.worktree?.mode === \"none\" &&\n spec.setup?.checkout?.worktree\n ) {\n spec = structuredClone(spec);\n delete spec.setup!.checkout!.worktree!.path;\n }\n spec = mergeRuntimeSpec(spec, overlay);\n }\n return { spec, presets };\n}\n"],"names":["_a"],"mappings":";AAYO,SAAS,qBACd,MACoB;;AACpB,QAAM,WAA+B,CAAA;AACrC,aAAW,OAAO,CAAC,QAAQ,SAAS,MAAM,QAAQ,GAAY;AAC5D,SAAI,UAAK,GAAG,MAAR,mBAAW,OAAQ,UAAS,GAAG,IAAI,KAAK,GAAG;AAAA,EACjD;AACA,QAAM,SAAS;AAAA,IACb,KAAI,UAAK,WAAL,mBAAa,UAAS,SAAY,EAAE,MAAM,KAAK,OAAO,KAAA,IAAS,CAAA;AAAA,IACnE,KAAI,UAAK,WAAL,mBAAa,WAAU,EAAE,SAAS,KAAK,OAAO,YAAY,CAAA;AAAA,EAAC;AAEjE,MAAI,OAAO,KAAK,MAAM,EAAE,SAAS,YAAY,SAAS;AACtD,OAAI,UAAK,gBAAL,mBAAkB;AACpB,aAAS,cAAc,EAAE,MAAM,KAAK,YAAY,KAAA;AAClD,QAAM,UAAS,gBAAK,UAAL,mBAAY,aAAZ,mBAAsB;AACrC,MAAI,iCAAQ,MAAM;AAChB,aAAS,QAAQ;AAAA,MACf,UAAU;AAAA,QACR,UAAU;AAAA,UACR,MAAM,OAAO;AAAA,UACb,GAAI,OAAO,SAAS,UAAU,OAAO,OACjC,EAAE,MAAM,OAAO,SACf,CAAA;AAAA,QAAC;AAAA,MACP;AAAA,IACF;AAAA,EAEJ;AACA,QAAI,UAAK,aAAL,mBAAe,aAAY,QAAW;AACxC,aAAS,WAAW,EAAE,SAAS,gBAAgB,KAAK,SAAS,OAAO,EAAA;AAAA,EACtE;AACA,SAAO;AACT;AAEO,SAAS,2BAA2B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACF,GAI2B;;AACzB,QAAM,WAAW,IAAI;AAAA,IACnB,MAAM,QAAQ,IAAI,CAAC,QAAA;;AAAQ,eAAAA,MAAA,aAAa,KAAK,OAAO,MAAzB,gBAAAA,IAA4B,OAAM;AAAA,KAAG;AAAA,EAAA;AAElE,QAAM,UAAU;AAAA,IACd,GAAG,IAAI,IAAI,SAAS,IAAI,CAAC;;AAAQ,eAAAA,MAAA,aAAa,KAAK,OAAO,MAAzB,gBAAAA,IAA4B,OAAM;AAAA,KAAG,CAAC;AAAA,EAAA;AAEzE,MAAI,OAAO,MAAM;AACjB,aAAW,OAAO,SAAS;AACzB,QAAI,SAAS,IAAI,GAAG,EAAG;AACvB,UAAM,SAAS,aAAa,KAAK,OAAO;AACxC,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,UAAU,KAAK,UAAU,GAAG,CAAC,wBAAwB;AACvE,UAAM,UAAU,qBAAqB,OAAO,IAAI;AAChD,WAAO,EAAE,GAAG,KAAA;AACZ,QAAI,QAAQ,UAAU,UAAa,QAAQ,OAAO,QAAW;AAC3D,aAAO,KAAK;AACZ,aAAO,KAAK;AAAA,IACd;AACA,UACE,yBAAQ,UAAR,mBAAe,aAAf,mBAAyB,aAAzB,mBAAmC,UAAS,YAC5C,gBAAK,UAAL,mBAAY,aAAZ,mBAAsB,WACtB;AACA,aAAO,gBAAgB,IAAI;AAC3B,aAAO,KAAK,MAAO,SAAU,SAAU;AAAA,IACzC;AACA,WAAO,iBAAiB,MAAM,OAAO;AAAA,EACvC;AACA,SAAO,EAAE,MAAM,QAAA;AACjB;"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const runtimeProfileModel = require("../../../lib/runtime-profile-model.cjs");
6
+ const Modal = require("../../../overlay/Modal.cjs");
7
+ const runtimeProfile = require("../runtime-profile.cjs");
8
+ const runtimeActions = require("../PromptRunEditor/runtimeActions.cjs");
9
+ const OrderedPresetSelect = require("../runtime-profiles/OrderedPresetSelect.cjs");
10
+ const model = require("./model.cjs");
11
+ const SavePresetDialog = require("./SavePresetDialog.cjs");
12
+ const UiLayers = require("../../../icons/components/UiLayers.cjs");
13
+ const UiSave = require("../../../icons/components/UiSave.cjs");
14
+ function useRuntimePresetMenu(options) {
15
+ const [ordering, setOrdering] = react.useState(false);
16
+ const [draft, setDraft] = react.useState();
17
+ const [created, setCreated] = react.useState([]);
18
+ const [saving, setSaving] = react.useState(false);
19
+ const [error, setError] = react.useState();
20
+ const pending = react.useRef(false);
21
+ const latest = react.useRef(options);
22
+ latest.current = options;
23
+ const catalog = [
24
+ ...options.presets,
25
+ ...created.filter(
26
+ (preset) => !options.presets.some((entry) => entry.id === preset.id)
27
+ )
28
+ ];
29
+ const select = (selected) => options.onChange(
30
+ model.withRuntimePresetSelection({
31
+ value: options.value,
32
+ selected,
33
+ catalog
34
+ })
35
+ );
36
+ const field = runtimeActions.presetsField({
37
+ presets: catalog,
38
+ value: options.value.presets,
39
+ onChange: select,
40
+ onReorder: () => setOrdering(true)
41
+ });
42
+ const save = async (next) => {
43
+ if (pending.current) return;
44
+ pending.current = true;
45
+ setSaving(true);
46
+ setError(void 0);
47
+ try {
48
+ if (!options.onCreatePreset)
49
+ throw new Error("Saving presets is unavailable");
50
+ const saved = await options.onCreatePreset(next);
51
+ if (!saved.id.trim() || !saved.name.trim())
52
+ throw new Error("Saved preset must have an id and name");
53
+ runtimeProfile.assertRuntimePresetSpec(saved.spec, "saved preset spec");
54
+ setCreated((records) => [
55
+ ...records.filter((preset) => preset.id !== saved.id),
56
+ saved
57
+ ]);
58
+ const current = latest.current.value;
59
+ const alreadySelected = current.presets.some(
60
+ (ref) => {
61
+ var _a;
62
+ return ref === saved.id || ((_a = runtimeProfileModel.presetForRef(ref, [...catalog, saved])) == null ? void 0 : _a.id) === saved.id;
63
+ }
64
+ );
65
+ latest.current.onChange({
66
+ ...current,
67
+ presets: alreadySelected ? current.presets : [...current.presets, saved.id]
68
+ });
69
+ setDraft(void 0);
70
+ } catch (cause) {
71
+ setError(cause instanceof Error ? cause.message : String(cause));
72
+ } finally {
73
+ pending.current = false;
74
+ setSaving(false);
75
+ }
76
+ };
77
+ const menu = [
78
+ {
79
+ label: "Presets",
80
+ icon: UiLayers.UiLayers,
81
+ iconClassName: "text-muted-foreground",
82
+ children: field.items.length > 0 ? field.items : [
83
+ {
84
+ label: "No presets yet",
85
+ disabled: true,
86
+ onSelect: () => {
87
+ }
88
+ }
89
+ ],
90
+ onSelect: () => {
91
+ }
92
+ }
93
+ ];
94
+ if (options.onCreatePreset)
95
+ menu.push({
96
+ label: "Save as preset…",
97
+ icon: UiSave.UiSave,
98
+ iconClassName: "text-muted-foreground",
99
+ onSelect: () => {
100
+ setError(void 0);
101
+ setDraft({
102
+ ...runtimeProfileModel.newPresetRecord(catalog, crypto.randomUUID()),
103
+ spec: model.runtimeBarPresetSpec(options.value.spec)
104
+ });
105
+ }
106
+ });
107
+ return {
108
+ menu,
109
+ dialogs: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
110
+ /* @__PURE__ */ jsxRuntime.jsx(
111
+ Modal.Modal,
112
+ {
113
+ open: ordering,
114
+ onClose: () => setOrdering(false),
115
+ title: "Presets",
116
+ size: "lg",
117
+ closeOnEsc: true,
118
+ children: /* @__PURE__ */ jsxRuntime.jsx(
119
+ OrderedPresetSelect.OrderedPresetSelect,
120
+ {
121
+ presets: catalog,
122
+ value: options.value.presets,
123
+ onChange: select
124
+ }
125
+ )
126
+ }
127
+ ),
128
+ draft && /* @__PURE__ */ jsxRuntime.jsx(
129
+ SavePresetDialog.SavePresetDialog,
130
+ {
131
+ draft,
132
+ catalog,
133
+ saving,
134
+ error,
135
+ onChange: (next) => {
136
+ setDraft(next);
137
+ setError(void 0);
138
+ },
139
+ onSave: (next) => void save(next),
140
+ onClose: () => {
141
+ if (!pending.current) setDraft(void 0);
142
+ }
143
+ }
144
+ )
145
+ ] })
146
+ };
147
+ }
148
+ exports.useRuntimePresetMenu = useRuntimePresetMenu;
149
+ //# sourceMappingURL=use-runtime-preset-menu.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-runtime-preset-menu.cjs","sources":["../../../../src/data/ai/runtime-preset-menu/use-runtime-preset-menu.tsx"],"sourcesContent":["import { useRef, useState, type ReactNode } from \"react\";\nimport { UiLayers, UiSave } from \"../../../icons\";\nimport {\n newPresetRecord,\n presetForRef,\n} from \"../../../lib/runtime-profile-model\";\nimport { Modal } from \"../../../overlay/Modal\";\nimport type { DropdownMenuItem } from \"../../../overlay/DropdownMenu\";\nimport {\n assertRuntimePresetSpec,\n type RuntimePreset,\n} from \"../runtime-profile\";\nimport { presetsField } from \"../PromptRunEditor/runtimeActions\";\nimport { OrderedPresetSelect } from \"../runtime-profiles/OrderedPresetSelect\";\nimport {\n runtimeBarPresetSpec,\n withRuntimePresetSelection,\n type RuntimePresetMenuValue,\n} from \"./model\";\nimport { SavePresetDialog } from \"./SavePresetDialog\";\n\nexport type RuntimePresetMenuOptions = {\n value: RuntimePresetMenuValue;\n onChange: (next: RuntimePresetMenuValue) => void;\n presets: RuntimePreset[];\n onCreatePreset?:\n | ((draft: RuntimePreset) => Promise<RuntimePreset>)\n | undefined;\n};\n\nexport function useRuntimePresetMenu(options: RuntimePresetMenuOptions): {\n menu: DropdownMenuItem[];\n dialogs: ReactNode;\n} {\n const [ordering, setOrdering] = useState(false);\n const [draft, setDraft] = useState<RuntimePreset>();\n const [created, setCreated] = useState<RuntimePreset[]>([]);\n const [saving, setSaving] = useState(false);\n const [error, setError] = useState<string>();\n const pending = useRef(false);\n const latest = useRef(options);\n latest.current = options;\n const catalog = [\n ...options.presets,\n ...created.filter(\n (preset) => !options.presets.some((entry) => entry.id === preset.id),\n ),\n ];\n const select = (selected: string[]) =>\n options.onChange(\n withRuntimePresetSelection({\n value: options.value,\n selected,\n catalog,\n }),\n );\n const field = presetsField({\n presets: catalog,\n value: options.value.presets,\n onChange: select,\n onReorder: () => setOrdering(true),\n });\n const save = async (next: RuntimePreset) => {\n if (pending.current) return;\n pending.current = true;\n setSaving(true);\n setError(undefined);\n try {\n if (!options.onCreatePreset)\n throw new Error(\"Saving presets is unavailable\");\n const saved = await options.onCreatePreset(next);\n if (!saved.id.trim() || !saved.name.trim())\n throw new Error(\"Saved preset must have an id and name\");\n assertRuntimePresetSpec(saved.spec, \"saved preset spec\");\n setCreated((records) => [\n ...records.filter((preset) => preset.id !== saved.id),\n saved,\n ]);\n const current = latest.current.value;\n const alreadySelected = current.presets.some(\n (ref) =>\n ref === saved.id ||\n presetForRef(ref, [...catalog, saved])?.id === saved.id,\n );\n latest.current.onChange({\n ...current,\n presets: alreadySelected\n ? current.presets\n : [...current.presets, saved.id],\n });\n setDraft(undefined);\n } catch (cause) {\n setError(cause instanceof Error ? cause.message : String(cause));\n } finally {\n pending.current = false;\n setSaving(false);\n }\n };\n const menu: DropdownMenuItem[] = [\n {\n label: \"Presets\",\n icon: UiLayers,\n iconClassName: \"text-muted-foreground\",\n children:\n field.items.length > 0\n ? field.items\n : [\n {\n label: \"No presets yet\",\n disabled: true,\n onSelect: () => {},\n },\n ],\n onSelect: () => {},\n },\n ];\n if (options.onCreatePreset)\n menu.push({\n label: \"Save as preset…\",\n icon: UiSave,\n iconClassName: \"text-muted-foreground\",\n onSelect: () => {\n setError(undefined);\n setDraft({\n ...newPresetRecord(catalog, crypto.randomUUID()),\n spec: runtimeBarPresetSpec(options.value.spec),\n });\n },\n });\n return {\n menu,\n dialogs: (\n <>\n <Modal\n open={ordering}\n onClose={() => setOrdering(false)}\n title=\"Presets\"\n size=\"lg\"\n closeOnEsc\n >\n <OrderedPresetSelect\n presets={catalog}\n value={options.value.presets}\n onChange={select}\n />\n </Modal>\n {draft && (\n <SavePresetDialog\n draft={draft}\n catalog={catalog}\n saving={saving}\n error={error}\n onChange={(next) => {\n setDraft(next);\n setError(undefined);\n }}\n onSave={(next) => void save(next)}\n onClose={() => {\n if (!pending.current) setDraft(undefined);\n }}\n />\n )}\n </>\n ),\n };\n}\n"],"names":["useState","useRef","withRuntimePresetSelection","presetsField","assertRuntimePresetSpec","presetForRef","UiLayers","UiSave","newPresetRecord","runtimeBarPresetSpec","jsxs","Fragment","jsx","Modal","OrderedPresetSelect","SavePresetDialog"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from 'react';
2
+ import { DropdownMenuItem } from '../../../overlay/DropdownMenu.js';
3
+ import { RuntimePreset } from '../runtime-profile.js';
4
+ import { RuntimePresetMenuValue } from './model.js';
5
+ export type RuntimePresetMenuOptions = {
6
+ value: RuntimePresetMenuValue;
7
+ onChange: (next: RuntimePresetMenuValue) => void;
8
+ presets: RuntimePreset[];
9
+ onCreatePreset?: ((draft: RuntimePreset) => Promise<RuntimePreset>) | undefined;
10
+ };
11
+ export declare function useRuntimePresetMenu(options: RuntimePresetMenuOptions): {
12
+ menu: DropdownMenuItem[];
13
+ dialogs: ReactNode;
14
+ };
15
+ //# sourceMappingURL=use-runtime-preset-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-runtime-preset-menu.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/runtime-preset-menu/use-runtime-preset-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAOzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,cAAc,CAAC,EACX,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,GAClD,SAAS,CAAC;CACf,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,GAAG;IACvE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,OAAO,EAAE,SAAS,CAAC;CACpB,CAoIA"}