@flanksource/clicky-ui 0.3.27 → 0.3.29

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 (1438) hide show
  1. package/NOTICE.md +14 -0
  2. package/dist/ai.cjs +52 -6
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +53 -7
  5. package/dist/ai.js.map +1 -1
  6. package/dist/comments/CommentAuthor.d.ts +1 -1
  7. package/dist/comments/CommentAuthor.d.ts.map +1 -1
  8. package/dist/comments/CommentCard.cjs +24 -39
  9. package/dist/comments/CommentCard.cjs.map +1 -1
  10. package/dist/comments/CommentCard.d.ts +11 -4
  11. package/dist/comments/CommentCard.d.ts.map +1 -1
  12. package/dist/comments/CommentCard.js +24 -39
  13. package/dist/comments/CommentCard.js.map +1 -1
  14. package/dist/comments/CommentComposer.d.ts +1 -1
  15. package/dist/comments/CommentComposer.d.ts.map +1 -1
  16. package/dist/comments/CommentFilterBar.d.ts +1 -1
  17. package/dist/comments/CommentFilterBar.d.ts.map +1 -1
  18. package/dist/comments/CommentMarkdown.d.ts +1 -1
  19. package/dist/comments/CommentMarkdown.d.ts.map +1 -1
  20. package/dist/comments/CommentProgress.d.ts +1 -1
  21. package/dist/comments/CommentProgress.d.ts.map +1 -1
  22. package/dist/comments/CommentProvider.cjs +4 -3
  23. package/dist/comments/CommentProvider.cjs.map +1 -1
  24. package/dist/comments/CommentProvider.d.ts +7 -2
  25. package/dist/comments/CommentProvider.d.ts.map +1 -1
  26. package/dist/comments/CommentProvider.js +4 -3
  27. package/dist/comments/CommentProvider.js.map +1 -1
  28. package/dist/comments/CommentSidePanel.cjs +65 -52
  29. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  30. package/dist/comments/CommentSidePanel.d.ts +1 -1
  31. package/dist/comments/CommentSidePanel.d.ts.map +1 -1
  32. package/dist/comments/CommentSidePanel.js +67 -54
  33. package/dist/comments/CommentSidePanel.js.map +1 -1
  34. package/dist/comments/CommentThread.cjs +2 -2
  35. package/dist/comments/CommentThread.cjs.map +1 -1
  36. package/dist/comments/CommentThread.d.ts +4 -4
  37. package/dist/comments/CommentThread.d.ts.map +1 -1
  38. package/dist/comments/CommentThread.js +2 -2
  39. package/dist/comments/CommentThread.js.map +1 -1
  40. package/dist/comments/CommentThreadList.cjs +85 -37
  41. package/dist/comments/CommentThreadList.cjs.map +1 -1
  42. package/dist/comments/CommentThreadList.d.ts +4 -4
  43. package/dist/comments/CommentThreadList.d.ts.map +1 -1
  44. package/dist/comments/CommentThreadList.js +86 -38
  45. package/dist/comments/CommentThreadList.js.map +1 -1
  46. package/dist/comments/GroupedComments.d.ts +1 -1
  47. package/dist/comments/GroupedComments.d.ts.map +1 -1
  48. package/dist/comments/MentionTextarea.d.ts +1 -1
  49. package/dist/comments/comment-context.d.ts +4 -4
  50. package/dist/comments/comment-fixtures.d.ts +1 -1
  51. package/dist/comments/comment-types.d.ts +1 -1
  52. package/dist/comments/comment-utils.cjs +26 -0
  53. package/dist/comments/comment-utils.cjs.map +1 -1
  54. package/dist/comments/comment-utils.d.ts +11 -0
  55. package/dist/comments/comment-utils.d.ts.map +1 -1
  56. package/dist/comments/comment-utils.js +26 -0
  57. package/dist/comments/comment-utils.js.map +1 -1
  58. package/dist/comments.cjs +2 -0
  59. package/dist/comments.cjs.map +1 -1
  60. package/dist/comments.js +3 -1
  61. package/dist/components/AccordionList.cjs +3 -0
  62. package/dist/components/AccordionList.cjs.map +1 -1
  63. package/dist/components/AccordionList.d.ts +4 -2
  64. package/dist/components/AccordionList.d.ts.map +1 -1
  65. package/dist/components/AccordionList.js +3 -0
  66. package/dist/components/AccordionList.js.map +1 -1
  67. package/dist/components/Combobox.cjs +6 -6
  68. package/dist/components/Combobox.cjs.map +1 -1
  69. package/dist/components/Combobox.d.ts +1 -1
  70. package/dist/components/Combobox.d.ts.map +1 -1
  71. package/dist/components/Combobox.js +2 -2
  72. package/dist/components/Combobox.js.map +1 -1
  73. package/dist/components/ComboboxActions.d.ts +1 -1
  74. package/dist/components/ComboboxActions.d.ts.map +1 -1
  75. package/dist/components/ComboboxControl.cjs +3 -2
  76. package/dist/components/ComboboxControl.cjs.map +1 -1
  77. package/dist/components/ComboboxControl.d.ts +5 -5
  78. package/dist/components/ComboboxControl.d.ts.map +1 -1
  79. package/dist/components/ComboboxControl.js +2 -1
  80. package/dist/components/ComboboxControl.js.map +1 -1
  81. package/dist/components/ComboboxMenu.cjs +154 -134
  82. package/dist/components/ComboboxMenu.cjs.map +1 -1
  83. package/dist/components/ComboboxMenu.d.ts +4 -4
  84. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  85. package/dist/components/ComboboxMenu.js +154 -134
  86. package/dist/components/ComboboxMenu.js.map +1 -1
  87. package/dist/components/ComboboxTags.d.ts +1 -1
  88. package/dist/components/ComboboxTags.d.ts.map +1 -1
  89. package/dist/components/ConnectionLoggingPolicy.d.ts +1 -1
  90. package/dist/components/ConnectionLoggingPolicy.d.ts.map +1 -1
  91. package/dist/components/CopyButton.cjs +35 -0
  92. package/dist/components/CopyButton.cjs.map +1 -0
  93. package/dist/components/CopyButton.d.ts +20 -0
  94. package/dist/components/CopyButton.d.ts.map +1 -0
  95. package/dist/components/CopyButton.js +35 -0
  96. package/dist/components/CopyButton.js.map +1 -0
  97. package/dist/components/CountryFlag.d.ts +1 -1
  98. package/dist/components/CountryFlag.d.ts.map +1 -1
  99. package/dist/components/CountryPicker.d.ts +1 -1
  100. package/dist/components/CountryPicker.d.ts.map +1 -1
  101. package/dist/components/DaemonSetIcon.d.ts +1 -1
  102. package/dist/components/DaemonSetIcon.d.ts.map +1 -1
  103. package/dist/components/DateField.d.ts +3 -3
  104. package/dist/components/DatePicker.d.ts +3 -3
  105. package/dist/components/DateTimePicker.d.ts +3 -3
  106. package/dist/components/DimensionField.d.ts +1 -1
  107. package/dist/components/DimensionField.d.ts.map +1 -1
  108. package/dist/components/EndpointSelector.d.ts +1 -1
  109. package/dist/components/EndpointSelector.d.ts.map +1 -1
  110. package/dist/components/ErrorWrapper.d.ts +2 -2
  111. package/dist/components/Field.d.ts +2 -2
  112. package/dist/components/Field.d.ts.map +1 -1
  113. package/dist/components/FilterBar.cjs +129 -91
  114. package/dist/components/FilterBar.cjs.map +1 -1
  115. package/dist/components/FilterBar.d.ts +13 -4
  116. package/dist/components/FilterBar.d.ts.map +1 -1
  117. package/dist/components/FilterBar.js +130 -92
  118. package/dist/components/FilterBar.js.map +1 -1
  119. package/dist/components/FormLookupProvider.d.ts +2 -2
  120. package/dist/components/FormLookupProvider.d.ts.map +1 -1
  121. package/dist/components/FormatOptionsDropdown.d.ts +2 -2
  122. package/dist/components/FormatOptionsDropdown.d.ts.map +1 -1
  123. package/dist/components/IconButton.d.ts +3 -3
  124. package/dist/components/InputField.d.ts +2 -2
  125. package/dist/components/ItemActions.d.ts +2 -2
  126. package/dist/components/ItemActions.d.ts.map +1 -1
  127. package/dist/components/JSONPathField.d.ts +1 -1
  128. package/dist/components/JSONPathField.d.ts.map +1 -1
  129. package/dist/components/JSONPathPlayground.d.ts +1 -1
  130. package/dist/components/JSONPathPlayground.d.ts.map +1 -1
  131. package/dist/components/JsonSchemaForm.d.ts +1 -1
  132. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  133. package/dist/components/ListMenu.cjs +4 -1
  134. package/dist/components/ListMenu.cjs.map +1 -1
  135. package/dist/components/ListMenu.d.ts +10 -6
  136. package/dist/components/ListMenu.d.ts.map +1 -1
  137. package/dist/components/ListMenu.js +4 -1
  138. package/dist/components/ListMenu.js.map +1 -1
  139. package/dist/components/MdxEditorCallout.d.ts +2 -2
  140. package/dist/components/MdxEditorCallout.d.ts.map +1 -1
  141. package/dist/components/MdxEditorField.d.ts +1 -1
  142. package/dist/components/MdxEditorField.d.ts.map +1 -1
  143. package/dist/components/MdxEditorToolbar.d.ts +1 -1
  144. package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
  145. package/dist/components/MultiSelect.d.ts +2 -2
  146. package/dist/components/MultiSelect.d.ts.map +1 -1
  147. package/dist/components/NamespacePicker.d.ts +1 -1
  148. package/dist/components/NamespacePicker.d.ts.map +1 -1
  149. package/dist/components/OnePasswordSelector.d.ts +1 -1
  150. package/dist/components/OnePasswordSelector.d.ts.map +1 -1
  151. package/dist/components/RangeSlider.d.ts +1 -1
  152. package/dist/components/RangeSlider.d.ts.map +1 -1
  153. package/dist/components/SearchInput.d.ts +2 -2
  154. package/dist/components/SearchInput.d.ts.map +1 -1
  155. package/dist/components/SecretFormField.d.ts +1 -1
  156. package/dist/components/SecretFormField.d.ts.map +1 -1
  157. package/dist/components/SecretKeySelector.d.ts +1 -1
  158. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  159. package/dist/components/SegmentedControl.cjs +4 -2
  160. package/dist/components/SegmentedControl.cjs.map +1 -1
  161. package/dist/components/SegmentedControl.d.ts +6 -2
  162. package/dist/components/SegmentedControl.d.ts.map +1 -1
  163. package/dist/components/SegmentedControl.js +4 -2
  164. package/dist/components/SegmentedControl.js.map +1 -1
  165. package/dist/components/SplitButton.d.ts +2 -2
  166. package/dist/components/SplitButton.d.ts.map +1 -1
  167. package/dist/components/Switch.d.ts +2 -2
  168. package/dist/components/Switch.d.ts.map +1 -1
  169. package/dist/components/TimeRange.d.ts +1 -1
  170. package/dist/components/TimeRange.d.ts.map +1 -1
  171. package/dist/components/TreePickerField.d.ts +2 -2
  172. package/dist/components/TreePickerField.d.ts.map +1 -1
  173. package/dist/components/TriStateToggle.d.ts +1 -1
  174. package/dist/components/TriStateToggle.d.ts.map +1 -1
  175. package/dist/components/UnitStepControls.d.ts +2 -2
  176. package/dist/components/UnitStepControls.d.ts.map +1 -1
  177. package/dist/components/WorkloadPicker.d.ts +1 -1
  178. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  179. package/dist/components/button.d.ts +3 -3
  180. package/dist/components/clipboard.cjs +60 -0
  181. package/dist/components/clipboard.cjs.map +1 -0
  182. package/dist/components/clipboard.d.ts +13 -0
  183. package/dist/components/clipboard.d.ts.map +1 -0
  184. package/dist/components/clipboard.js +60 -0
  185. package/dist/components/clipboard.js.map +1 -0
  186. package/dist/components/combobox-types.d.ts +1 -1
  187. package/dist/components/density-switcher.d.ts +1 -1
  188. package/dist/components/filter-bar-context.d.ts +1 -1
  189. package/dist/components/filter-bar-field-utils.d.ts +2 -2
  190. package/dist/components/filter-bar-field-utils.js +1 -1
  191. package/dist/components/filter-bar-multi.d.ts +3 -3
  192. package/dist/components/filter-bar-multi.d.ts.map +1 -1
  193. package/dist/components/form-lookup-context.d.ts +1 -1
  194. package/dist/components/icon-menu-picker.cjs.map +1 -1
  195. package/dist/components/icon-menu-picker.d.ts +2 -2
  196. package/dist/components/icon-menu-picker.d.ts.map +1 -1
  197. package/dist/components/icon-menu-picker.js.map +1 -1
  198. package/dist/components/jotai-bindings.d.ts +2 -2
  199. package/dist/components/jotai-bindings.d.ts.map +1 -1
  200. package/dist/components/json-schema-form-accordion-array.d.ts +1 -1
  201. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  202. package/dist/components/json-schema-form-array.cjs +15 -1
  203. package/dist/components/json-schema-form-array.cjs.map +1 -1
  204. package/dist/components/json-schema-form-array.d.ts +1 -1
  205. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  206. package/dist/components/json-schema-form-array.js +15 -1
  207. package/dist/components/json-schema-form-array.js.map +1 -1
  208. package/dist/components/json-schema-form-cards-array.d.ts +1 -1
  209. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
  210. package/dist/components/json-schema-form-discriminator.d.ts +1 -1
  211. package/dist/components/json-schema-form-error-display.d.ts +3 -3
  212. package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
  213. package/dist/components/json-schema-form-extensions.d.ts +1 -1
  214. package/dist/components/json-schema-form-fields.d.ts +12 -12
  215. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  216. package/dist/components/json-schema-form-grid.d.ts +1 -1
  217. package/dist/components/json-schema-form-grid.d.ts.map +1 -1
  218. package/dist/components/json-schema-form-item-row.d.ts +4 -4
  219. package/dist/components/json-schema-form-item-row.d.ts.map +1 -1
  220. package/dist/components/json-schema-form-layout.d.ts +6 -6
  221. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  222. package/dist/components/json-schema-form-list-array.cjs +113 -0
  223. package/dist/components/json-schema-form-list-array.cjs.map +1 -0
  224. package/dist/components/json-schema-form-list-array.d.ts +7 -0
  225. package/dist/components/json-schema-form-list-array.d.ts.map +1 -0
  226. package/dist/components/json-schema-form-list-array.js +113 -0
  227. package/dist/components/json-schema-form-list-array.js.map +1 -0
  228. package/dist/components/json-schema-form-lookup-tree.d.ts +1 -1
  229. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -1
  230. package/dist/components/json-schema-form-object.d.ts +2 -2
  231. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  232. package/dist/components/json-schema-form-render.d.ts +1 -1
  233. package/dist/components/json-schema-form-resolve.cjs +1 -1
  234. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  235. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  236. package/dist/components/json-schema-form-resolve.js +1 -1
  237. package/dist/components/json-schema-form-resolve.js.map +1 -1
  238. package/dist/components/json-schema-form-table-array.d.ts +1 -1
  239. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  240. package/dist/components/json-schema-form-tags-combobox.cjs +2 -2
  241. package/dist/components/json-schema-form-tags-combobox.cjs.map +1 -1
  242. package/dist/components/json-schema-form-tags-combobox.d.ts +1 -1
  243. package/dist/components/json-schema-form-tags-combobox.d.ts.map +1 -1
  244. package/dist/components/json-schema-form-tags-combobox.js +1 -1
  245. package/dist/components/json-schema-form-tags-combobox.js.map +1 -1
  246. package/dist/components/json-schema-form-template-menu.d.ts +2 -2
  247. package/dist/components/json-schema-form-template-menu.d.ts.map +1 -1
  248. package/dist/components/json-schema-form-template.d.ts +1 -1
  249. package/dist/components/json-schema-form-types.d.ts +2 -2
  250. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  251. package/dist/components/loading.d.ts +4 -4
  252. package/dist/components/mdx-editor-callout.d.ts +1 -1
  253. package/dist/components/mdx-editor-options.d.ts +1 -1
  254. package/dist/components/select.d.ts +3 -3
  255. package/dist/components/theme-switcher.d.ts +1 -1
  256. package/dist/components/use-list-menu-selection.d.ts +1 -1
  257. package/dist/components/useComboboxLayout.cjs +37 -27
  258. package/dist/components/useComboboxLayout.cjs.map +1 -1
  259. package/dist/components/useComboboxLayout.d.ts +4 -4
  260. package/dist/components/useComboboxLayout.d.ts.map +1 -1
  261. package/dist/components/useComboboxLayout.js +38 -28
  262. package/dist/components/useComboboxLayout.js.map +1 -1
  263. package/dist/components/workload-picker-utils.d.ts +1 -1
  264. package/dist/components.cjs +5 -0
  265. package/dist/components.cjs.map +1 -1
  266. package/dist/components.d.ts +3 -0
  267. package/dist/components.d.ts.map +1 -1
  268. package/dist/components.js +5 -0
  269. package/dist/components.js.map +1 -1
  270. package/dist/data/AnsiHtml.d.ts +1 -1
  271. package/dist/data/AnsiHtml.d.ts.map +1 -1
  272. package/dist/data/Avatar.d.ts +2 -2
  273. package/dist/data/Avatar.d.ts.map +1 -1
  274. package/dist/data/AvatarBadge.d.ts +2 -2
  275. package/dist/data/AvatarBadge.d.ts.map +1 -1
  276. package/dist/data/Badge.d.ts +2 -2
  277. package/dist/data/Badge.d.ts.map +1 -1
  278. package/dist/data/Callout.d.ts +2 -2
  279. package/dist/data/Callout.d.ts.map +1 -1
  280. package/dist/data/Clicky.cjs +4 -1
  281. package/dist/data/Clicky.cjs.map +1 -1
  282. package/dist/data/Clicky.d.ts +3 -3
  283. package/dist/data/Clicky.d.ts.map +1 -1
  284. package/dist/data/Clicky.js +4 -1
  285. package/dist/data/Clicky.js.map +1 -1
  286. package/dist/data/CodeBlock.cjs +1 -1
  287. package/dist/data/CodeBlock.cjs.map +1 -1
  288. package/dist/data/CodeBlock.d.ts +1 -1
  289. package/dist/data/CodeBlock.d.ts.map +1 -1
  290. package/dist/data/CodeBlock.js +1 -1
  291. package/dist/data/CodeBlock.js.map +1 -1
  292. package/dist/data/CodeDiff.d.ts +1 -1
  293. package/dist/data/CodeDiff.d.ts.map +1 -1
  294. package/dist/data/DataTable.cjs +256 -58
  295. package/dist/data/DataTable.cjs.map +1 -1
  296. package/dist/data/DataTable.d.ts +174 -5
  297. package/dist/data/DataTable.d.ts.map +1 -1
  298. package/dist/data/DataTable.grouping.d.ts +1 -1
  299. package/dist/data/DataTable.js +256 -58
  300. package/dist/data/DataTable.js.map +1 -1
  301. package/dist/data/DataTableGroupingControls.d.ts +1 -1
  302. package/dist/data/DataTableGroupingControls.d.ts.map +1 -1
  303. package/dist/data/ExecutionTree.d.ts +2 -2
  304. package/dist/data/ExecutionTree.d.ts.map +1 -1
  305. package/dist/data/FilterPill.d.ts +4 -4
  306. package/dist/data/FilterPill.d.ts.map +1 -1
  307. package/dist/data/FixtureEditor/FenceForm.d.ts +1 -1
  308. package/dist/data/FixtureEditor/FenceForm.d.ts.map +1 -1
  309. package/dist/data/FixtureEditor/FixtureEditor.d.ts +1 -1
  310. package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -1
  311. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +1 -1
  312. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts.map +1 -1
  313. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs +1 -1
  314. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs.map +1 -1
  315. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +1 -1
  316. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts.map +1 -1
  317. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js +1 -1
  318. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js.map +1 -1
  319. package/dist/data/FixtureEditor/RawFenceEditor.d.ts +2 -2
  320. package/dist/data/FixtureEditor/RawFenceEditor.d.ts.map +1 -1
  321. package/dist/data/FixtureEditor/fixture-frontmatter.cjs +8 -10
  322. package/dist/data/FixtureEditor/fixture-frontmatter.cjs.map +1 -1
  323. package/dist/data/FixtureEditor/fixture-frontmatter.d.ts.map +1 -1
  324. package/dist/data/FixtureEditor/fixture-frontmatter.js +8 -10
  325. package/dist/data/FixtureEditor/fixture-frontmatter.js.map +1 -1
  326. package/dist/data/FixtureEditor/types.d.ts +1 -1
  327. package/dist/data/Gauge.d.ts +2 -2
  328. package/dist/data/Gauge.d.ts.map +1 -1
  329. package/dist/data/GaugeHoverCard.d.ts +2 -2
  330. package/dist/data/GaugeHoverCard.d.ts.map +1 -1
  331. package/dist/data/HighlightedTokens.d.ts +1 -1
  332. package/dist/data/HighlightedTokens.d.ts.map +1 -1
  333. package/dist/data/Icon.cjs.map +1 -1
  334. package/dist/data/Icon.d.ts +3 -3
  335. package/dist/data/Icon.d.ts.map +1 -1
  336. package/dist/data/Icon.js.map +1 -1
  337. package/dist/data/JsonView.d.ts +1 -1
  338. package/dist/data/JsonView.d.ts.map +1 -1
  339. package/dist/data/KeyValueList.d.ts +2 -2
  340. package/dist/data/KeyValueList.d.ts.map +1 -1
  341. package/dist/data/LogDetails.d.ts +1 -1
  342. package/dist/data/LogDetails.d.ts.map +1 -1
  343. package/dist/data/LogViewer.d.ts +1 -1
  344. package/dist/data/LogViewer.d.ts.map +1 -1
  345. package/dist/data/LogsTable.d.ts +1 -1
  346. package/dist/data/LogsTable.d.ts.map +1 -1
  347. package/dist/data/Markdown.d.ts +1 -1
  348. package/dist/data/Markdown.d.ts.map +1 -1
  349. package/dist/data/MarkdownEditor.d.ts +2 -2
  350. package/dist/data/MarkdownEditor.d.ts.map +1 -1
  351. package/dist/data/MatrixTable.d.ts +2 -2
  352. package/dist/data/MatrixTable.d.ts.map +1 -1
  353. package/dist/data/MethodBadge.d.ts +1 -1
  354. package/dist/data/MethodBadge.d.ts.map +1 -1
  355. package/dist/data/ObjectGraph.d.ts +2 -2
  356. package/dist/data/ObjectGraph.d.ts.map +1 -1
  357. package/dist/data/ProgressBar.d.ts +1 -1
  358. package/dist/data/ProgressBar.d.ts.map +1 -1
  359. package/dist/data/ProgressBars.d.ts +2 -2
  360. package/dist/data/ProgressBars.d.ts.map +1 -1
  361. package/dist/data/PromptBanner.d.ts +1 -1
  362. package/dist/data/PromptBanner.d.ts.map +1 -1
  363. package/dist/data/PromptDialog.d.ts +1 -1
  364. package/dist/data/PromptDialog.d.ts.map +1 -1
  365. package/dist/data/Properties.d.ts +2 -2
  366. package/dist/data/Properties.d.ts.map +1 -1
  367. package/dist/data/RadialGauge.d.ts +2 -2
  368. package/dist/data/RadialGauge.d.ts.map +1 -1
  369. package/dist/data/SchemaViewer.d.ts +4 -4
  370. package/dist/data/SchemaViewer.d.ts.map +1 -1
  371. package/dist/data/SelectionActionBar.cjs +242 -0
  372. package/dist/data/SelectionActionBar.cjs.map +1 -0
  373. package/dist/data/SelectionActionBar.d.ts +28 -0
  374. package/dist/data/SelectionActionBar.d.ts.map +1 -0
  375. package/dist/data/SelectionActionBar.js +242 -0
  376. package/dist/data/SelectionActionBar.js.map +1 -0
  377. package/dist/data/ServerTimingBadge.d.ts +1 -1
  378. package/dist/data/ServerTimingBadge.d.ts.map +1 -1
  379. package/dist/data/SignedDeltaBar.d.ts +1 -1
  380. package/dist/data/SignedDeltaBar.d.ts.map +1 -1
  381. package/dist/data/SortableHeader.d.ts +2 -2
  382. package/dist/data/SortableHeader.d.ts.map +1 -1
  383. package/dist/data/StatStrip.d.ts +2 -2
  384. package/dist/data/StatStrip.d.ts.map +1 -1
  385. package/dist/data/StatusBreakdown.d.ts +3 -3
  386. package/dist/data/StatusBreakdown.d.ts.map +1 -1
  387. package/dist/data/TabButton.d.ts +2 -2
  388. package/dist/data/TabButton.d.ts.map +1 -1
  389. package/dist/data/TaskExecDetails.d.ts +2 -2
  390. package/dist/data/TaskExecDetails.d.ts.map +1 -1
  391. package/dist/data/TaskManager.cjs +34 -12
  392. package/dist/data/TaskManager.cjs.map +1 -1
  393. package/dist/data/TaskManager.d.ts +1 -1
  394. package/dist/data/TaskManager.d.ts.map +1 -1
  395. package/dist/data/TaskManager.js +34 -12
  396. package/dist/data/TaskManager.js.map +1 -1
  397. package/dist/data/TaskManagerButton.cjs +11 -7
  398. package/dist/data/TaskManagerButton.cjs.map +1 -1
  399. package/dist/data/TaskManagerButton.d.ts +1 -1
  400. package/dist/data/TaskManagerButton.d.ts.map +1 -1
  401. package/dist/data/TaskManagerButton.js +11 -7
  402. package/dist/data/TaskManagerButton.js.map +1 -1
  403. package/dist/data/TaskProcessDetails.d.ts +1 -1
  404. package/dist/data/TaskProcessDetails.d.ts.map +1 -1
  405. package/dist/data/TaskProgress.cjs +55 -11
  406. package/dist/data/TaskProgress.cjs.map +1 -1
  407. package/dist/data/TaskProgress.d.ts +1 -1
  408. package/dist/data/TaskProgress.d.ts.map +1 -1
  409. package/dist/data/TaskProgress.js +53 -9
  410. package/dist/data/TaskProgress.js.map +1 -1
  411. package/dist/data/Timeline.d.ts +2 -2
  412. package/dist/data/Timeline.d.ts.map +1 -1
  413. package/dist/data/TimeseriesCoreBars.d.ts +1 -1
  414. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  415. package/dist/data/TimeseriesGauge.d.ts +1 -1
  416. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  417. package/dist/data/TimeseriesPanel.d.ts +1 -1
  418. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  419. package/dist/data/Tree.d.ts +2 -2
  420. package/dist/data/Tree.d.ts.map +1 -1
  421. package/dist/data/TreeGroupHeader.d.ts +2 -2
  422. package/dist/data/TreeGroupHeader.d.ts.map +1 -1
  423. package/dist/data/TreeNode.d.ts +2 -2
  424. package/dist/data/TreeNode.d.ts.map +1 -1
  425. package/dist/data/Version.d.ts +3 -3
  426. package/dist/data/WorkloadCard.d.ts +1 -1
  427. package/dist/data/WorkloadCard.d.ts.map +1 -1
  428. package/dist/data/ai/AdvancedChatConfig.d.ts +1 -1
  429. package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
  430. package/dist/data/ai/AdvancedCostsPanel.d.ts +1 -1
  431. package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -1
  432. package/dist/data/ai/ChatButton.d.ts +1 -1
  433. package/dist/data/ai/ChatButton.d.ts.map +1 -1
  434. package/dist/data/ai/ChatFab.d.ts +1 -1
  435. package/dist/data/ai/ChatFab.d.ts.map +1 -1
  436. package/dist/data/ai/ChatWindow.cjs +2 -4
  437. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  438. package/dist/data/ai/ChatWindow.d.ts +2 -2
  439. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  440. package/dist/data/ai/ChatWindow.js +2 -4
  441. package/dist/data/ai/ChatWindow.js.map +1 -1
  442. package/dist/data/ai/ChatWindow.runtime.cjs +1 -2
  443. package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -1
  444. package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -1
  445. package/dist/data/ai/ChatWindow.runtime.js +1 -2
  446. package/dist/data/ai/ChatWindow.runtime.js.map +1 -1
  447. package/dist/data/ai/ChatWindow.test-utils.d.ts +1 -1
  448. package/dist/data/ai/ChatWindow.thread-status.d.ts +1 -1
  449. package/dist/data/ai/ChatWindow.thread-status.d.ts.map +1 -1
  450. package/dist/data/ai/ChatWindow.types.d.ts +1 -1
  451. package/dist/data/ai/ChatWindowManager.d.ts +2 -2
  452. package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
  453. package/dist/data/ai/ContextBadges.d.ts +2 -2
  454. package/dist/data/ai/ContextBadges.d.ts.map +1 -1
  455. package/dist/data/ai/PolicyTree.d.ts +2 -2
  456. package/dist/data/ai/PolicyTree.d.ts.map +1 -1
  457. package/dist/data/ai/PromptCatalog/PromptCatalogTable.cjs +262 -0
  458. package/dist/data/ai/PromptCatalog/PromptCatalogTable.cjs.map +1 -0
  459. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +16 -0
  460. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts.map +1 -0
  461. package/dist/data/ai/PromptCatalog/PromptCatalogTable.js +262 -0
  462. package/dist/data/ai/PromptCatalog/PromptCatalogTable.js.map +1 -0
  463. package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs +77 -0
  464. package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs.map +1 -0
  465. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +8 -0
  466. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts.map +1 -0
  467. package/dist/data/ai/PromptCatalog/PromptLayerStrip.js +77 -0
  468. package/dist/data/ai/PromptCatalog/PromptLayerStrip.js.map +1 -0
  469. package/dist/data/ai/PromptCatalog/PromptPage.cjs +332 -0
  470. package/dist/data/ai/PromptCatalog/PromptPage.cjs.map +1 -0
  471. package/dist/data/ai/PromptCatalog/PromptPage.d.ts +17 -0
  472. package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -0
  473. package/dist/data/ai/PromptCatalog/PromptPage.js +332 -0
  474. package/dist/data/ai/PromptCatalog/PromptPage.js.map +1 -0
  475. package/dist/data/ai/PromptCatalog/PromptPageEditor.cjs +102 -0
  476. package/dist/data/ai/PromptCatalog/PromptPageEditor.cjs.map +1 -0
  477. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +16 -0
  478. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts.map +1 -0
  479. package/dist/data/ai/PromptCatalog/PromptPageEditor.js +102 -0
  480. package/dist/data/ai/PromptCatalog/PromptPageEditor.js.map +1 -0
  481. package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs +102 -0
  482. package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs.map +1 -0
  483. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +10 -0
  484. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -0
  485. package/dist/data/ai/PromptCatalog/PromptPageHeader.js +102 -0
  486. package/dist/data/ai/PromptCatalog/PromptPageHeader.js.map +1 -0
  487. package/dist/data/ai/PromptCatalog/PromptPagePreview.cjs +90 -0
  488. package/dist/data/ai/PromptCatalog/PromptPagePreview.cjs.map +1 -0
  489. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +8 -0
  490. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts.map +1 -0
  491. package/dist/data/ai/PromptCatalog/PromptPagePreview.js +90 -0
  492. package/dist/data/ai/PromptCatalog/PromptPagePreview.js.map +1 -0
  493. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs +168 -0
  494. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs.map +1 -0
  495. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +17 -0
  496. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -0
  497. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js +168 -0
  498. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js.map +1 -0
  499. package/dist/data/ai/PromptCatalog/PromptSourceBadge.cjs +36 -0
  500. package/dist/data/ai/PromptCatalog/PromptSourceBadge.cjs.map +1 -0
  501. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +7 -0
  502. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts.map +1 -0
  503. package/dist/data/ai/PromptCatalog/PromptSourceBadge.js +36 -0
  504. package/dist/data/ai/PromptCatalog/PromptSourceBadge.js.map +1 -0
  505. package/dist/data/ai/PromptCatalog/index.d.ts +9 -0
  506. package/dist/data/ai/PromptCatalog/index.d.ts.map +1 -0
  507. package/dist/data/ai/PromptCatalog/prompt-catalog-model.cjs +137 -0
  508. package/dist/data/ai/PromptCatalog/prompt-catalog-model.cjs.map +1 -0
  509. package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts +28 -0
  510. package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts.map +1 -0
  511. package/dist/data/ai/PromptCatalog/prompt-catalog-model.js +137 -0
  512. package/dist/data/ai/PromptCatalog/prompt-catalog-model.js.map +1 -0
  513. package/dist/data/ai/PromptCatalog/prompt-page-model.cjs +114 -0
  514. package/dist/data/ai/PromptCatalog/prompt-page-model.cjs.map +1 -0
  515. package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts +45 -0
  516. package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts.map +1 -0
  517. package/dist/data/ai/PromptCatalog/prompt-page-model.js +114 -0
  518. package/dist/data/ai/PromptCatalog/prompt-page-model.js.map +1 -0
  519. package/dist/data/ai/PromptCatalog/types.d.ts +70 -0
  520. package/dist/data/ai/PromptCatalog/types.d.ts.map +1 -0
  521. package/dist/data/ai/PromptPicker/PromptPicker.cjs +9 -12
  522. package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
  523. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +2 -2
  524. package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
  525. package/dist/data/ai/PromptPicker/PromptPicker.js +9 -12
  526. package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
  527. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +1 -1
  528. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -1
  529. package/dist/data/ai/PromptPicker/index.d.ts +1 -1
  530. package/dist/data/ai/PromptPicker/index.d.ts.map +1 -1
  531. package/dist/data/ai/PromptPicker/types.cjs.map +1 -1
  532. package/dist/data/ai/PromptPicker/types.d.ts +9 -0
  533. package/dist/data/ai/PromptPicker/types.d.ts.map +1 -1
  534. package/dist/data/ai/PromptPicker/types.js.map +1 -1
  535. package/dist/data/ai/PromptRunEditor/index.cjs +2 -2
  536. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  537. package/dist/data/ai/PromptRunEditor/index.d.ts +2 -2
  538. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  539. package/dist/data/ai/PromptRunEditor/index.js +3 -3
  540. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  541. package/dist/data/ai/PromptRunEditor/model.cjs +0 -1
  542. package/dist/data/ai/PromptRunEditor/model.cjs.map +1 -1
  543. package/dist/data/ai/PromptRunEditor/model.d.ts +1 -1
  544. package/dist/data/ai/PromptRunEditor/model.d.ts.map +1 -1
  545. package/dist/data/ai/PromptRunEditor/model.js +0 -1
  546. package/dist/data/ai/PromptRunEditor/model.js.map +1 -1
  547. package/dist/data/ai/RuntimeModePicker.cjs +15 -6
  548. package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
  549. package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
  550. package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
  551. package/dist/data/ai/RuntimeModePicker.js +17 -8
  552. package/dist/data/ai/RuntimeModePicker.js.map +1 -1
  553. package/dist/data/ai/SandboxConnectionsSection.d.ts +1 -1
  554. package/dist/data/ai/SandboxConnectionsSection.d.ts.map +1 -1
  555. package/dist/data/ai/SandboxCreateWizard.d.ts +1 -1
  556. package/dist/data/ai/SandboxCreateWizard.d.ts.map +1 -1
  557. package/dist/data/ai/SessionChatComposer.d.ts +2 -2
  558. package/dist/data/ai/SessionChatComposer.d.ts.map +1 -1
  559. package/dist/data/ai/SessionInspector.collection-types.d.ts +1 -1
  560. package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -1
  561. package/dist/data/ai/SessionInspector.collection.cjs +3 -3
  562. package/dist/data/ai/SessionInspector.collection.cjs.map +1 -1
  563. package/dist/data/ai/SessionInspector.collection.js +3 -3
  564. package/dist/data/ai/SessionInspector.collection.js.map +1 -1
  565. package/dist/data/ai/SessionInspector.d.ts +2 -2
  566. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  567. package/dist/data/ai/SessionInspector.files.d.ts +1 -1
  568. package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
  569. package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
  570. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
  571. package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
  572. package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -1
  573. package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
  574. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
  575. package/dist/data/ai/SessionInspector.model.cjs +3 -3
  576. package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
  577. package/dist/data/ai/SessionInspector.model.d.ts +1 -1
  578. package/dist/data/ai/SessionInspector.model.d.ts.map +1 -1
  579. package/dist/data/ai/SessionInspector.model.js +3 -3
  580. package/dist/data/ai/SessionInspector.model.js.map +1 -1
  581. package/dist/data/ai/SessionInspector.panels.cjs +1 -1
  582. package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
  583. package/dist/data/ai/SessionInspector.panels.d.ts +1 -1
  584. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
  585. package/dist/data/ai/SessionInspector.panels.js +1 -1
  586. package/dist/data/ai/SessionInspector.panels.js.map +1 -1
  587. package/dist/data/ai/SessionInspector.plan.d.ts +1 -1
  588. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -1
  589. package/dist/data/ai/SessionInspector.summary.cjs +3 -3
  590. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
  591. package/dist/data/ai/SessionInspector.summary.d.ts +2 -2
  592. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  593. package/dist/data/ai/SessionInspector.summary.js +3 -3
  594. package/dist/data/ai/SessionInspector.summary.js.map +1 -1
  595. package/dist/data/ai/SessionInspector.transcript.d.ts +1 -1
  596. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  597. package/dist/data/ai/SessionInspector.turns.d.ts +2 -2
  598. package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -1
  599. package/dist/data/ai/SessionViewer.d.ts +2 -2
  600. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  601. package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
  602. package/dist/data/ai/SessionViewer.header.d.ts +2 -2
  603. package/dist/data/ai/SessionViewer.header.d.ts.map +1 -1
  604. package/dist/data/ai/SessionViewer.row-metadata.d.ts +3 -3
  605. package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -1
  606. package/dist/data/ai/SessionViewer.rows.d.ts +3 -3
  607. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  608. package/dist/data/ai/SessionViewer.tool-details.d.ts +5 -5
  609. package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
  610. package/dist/data/ai/SessionViewer.tool-row.d.ts +1 -1
  611. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  612. package/dist/data/ai/SessionViewer.unified.d.ts +3 -2
  613. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  614. package/dist/data/ai/SessionViewerMenu.d.ts +1 -1
  615. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  616. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +1 -1
  617. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts.map +1 -1
  618. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +18 -30
  619. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  620. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +1 -1
  621. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  622. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +19 -31
  623. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  624. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs +71 -86
  625. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs.map +1 -1
  626. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +2 -2
  627. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -1
  628. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js +72 -87
  629. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js.map +1 -1
  630. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +2 -2
  631. package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts.map +1 -1
  632. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.cjs +99 -0
  633. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.cjs.map +1 -0
  634. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +13 -0
  635. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts.map +1 -0
  636. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.js +99 -0
  637. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.js.map +1 -0
  638. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +34 -23
  639. package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
  640. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +8 -4
  641. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
  642. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +35 -24
  643. package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
  644. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs +114 -0
  645. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs.map +1 -0
  646. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +10 -0
  647. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts.map +1 -0
  648. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js +114 -0
  649. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js.map +1 -0
  650. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.cjs +160 -0
  651. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.cjs.map +1 -0
  652. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +9 -0
  653. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts.map +1 -0
  654. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.js +160 -0
  655. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.js.map +1 -0
  656. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +27 -241
  657. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -1
  658. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +6 -7
  659. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -1
  660. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +25 -239
  661. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -1
  662. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts +1 -1
  663. package/dist/data/ai/SpecRuntimeEditor/PresetCards.d.ts.map +1 -1
  664. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +21 -8
  665. package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
  666. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +6 -3
  667. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
  668. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +22 -9
  669. package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
  670. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +2 -2
  671. package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts.map +1 -1
  672. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs +207 -164
  673. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs.map +1 -1
  674. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +5 -4
  675. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -1
  676. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js +210 -167
  677. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js.map +1 -1
  678. package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs +15 -15
  679. package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs.map +1 -1
  680. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +2 -2
  681. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -1
  682. package/dist/data/ai/SpecRuntimeEditor/SectionCard.js +15 -15
  683. package/dist/data/ai/SpecRuntimeEditor/SectionCard.js.map +1 -1
  684. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
  685. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
  686. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +120 -42
  687. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -1
  688. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +5 -2
  689. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
  690. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +123 -45
  691. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -1
  692. package/dist/data/ai/SpecRuntimeEditor/env-model.cjs.map +1 -1
  693. package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts.map +1 -1
  694. package/dist/data/ai/SpecRuntimeEditor/env-model.js.map +1 -1
  695. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +12 -12
  696. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -1
  697. package/dist/data/ai/SpecRuntimeEditor/index.cjs +136 -48
  698. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  699. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +14 -4
  700. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  701. package/dist/data/ai/SpecRuntimeEditor/index.js +137 -49
  702. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  703. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +93 -0
  704. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs.map +1 -0
  705. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts +6 -0
  706. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts.map +1 -0
  707. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +93 -0
  708. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js.map +1 -0
  709. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs +35 -0
  710. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs.map +1 -0
  711. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts +5 -0
  712. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts.map +1 -0
  713. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js +35 -0
  714. package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js.map +1 -0
  715. package/dist/data/ai/SpecRuntimeEditor/presets.cjs +2 -9
  716. package/dist/data/ai/SpecRuntimeEditor/presets.cjs.map +1 -1
  717. package/dist/data/ai/SpecRuntimeEditor/presets.d.ts +1 -2
  718. package/dist/data/ai/SpecRuntimeEditor/presets.d.ts.map +1 -1
  719. package/dist/data/ai/SpecRuntimeEditor/presets.js +2 -9
  720. package/dist/data/ai/SpecRuntimeEditor/presets.js.map +1 -1
  721. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  722. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +1 -1
  723. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  724. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  725. package/dist/data/ai/SpecRuntimeEditor/types.cjs +2 -7
  726. package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -1
  727. package/dist/data/ai/SpecRuntimeEditor/types.d.ts +0 -1
  728. package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -1
  729. package/dist/data/ai/SpecRuntimeEditor/types.js +3 -8
  730. package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -1
  731. package/dist/data/ai/SpecRuntimeEditor/update.cjs +43 -33
  732. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  733. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +7 -13
  734. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  735. package/dist/data/ai/SpecRuntimeEditor/update.js +43 -33
  736. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  737. package/dist/data/ai/SpecRuntimeEditor.model.cjs +33 -49
  738. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  739. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +52 -29
  740. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  741. package/dist/data/ai/SpecRuntimeEditor.model.js +33 -48
  742. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  743. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs +276 -0
  744. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs.map +1 -0
  745. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts +58 -0
  746. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts.map +1 -0
  747. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js +276 -0
  748. package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js.map +1 -0
  749. package/dist/data/ai/ThreadPicker.cjs +55 -42
  750. package/dist/data/ai/ThreadPicker.cjs.map +1 -1
  751. package/dist/data/ai/ThreadPicker.d.ts +1 -1
  752. package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
  753. package/dist/data/ai/ThreadPicker.js +56 -43
  754. package/dist/data/ai/ThreadPicker.js.map +1 -1
  755. package/dist/data/ai/ToolPreferences.cjs +9 -1
  756. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  757. package/dist/data/ai/ToolPreferences.d.ts +1 -1
  758. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  759. package/dist/data/ai/ToolPreferences.js +9 -1
  760. package/dist/data/ai/ToolPreferences.js.map +1 -1
  761. package/dist/data/ai/ToolPreferencesList.d.ts +2 -2
  762. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
  763. package/dist/data/ai/ToolSchemaBrowser.cjs +41 -487
  764. package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -1
  765. package/dist/data/ai/ToolSchemaBrowser.d.ts +7 -2
  766. package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
  767. package/dist/data/ai/ToolSchemaBrowser.detail.cjs +238 -0
  768. package/dist/data/ai/ToolSchemaBrowser.detail.cjs.map +1 -0
  769. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +8 -0
  770. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts.map +1 -0
  771. package/dist/data/ai/ToolSchemaBrowser.detail.js +238 -0
  772. package/dist/data/ai/ToolSchemaBrowser.detail.js.map +1 -0
  773. package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs +57 -0
  774. package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs.map +1 -0
  775. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +9 -0
  776. package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -0
  777. package/dist/data/ai/ToolSchemaBrowser.directory-header.js +57 -0
  778. package/dist/data/ai/ToolSchemaBrowser.directory-header.js.map +1 -0
  779. package/dist/data/ai/ToolSchemaBrowser.js +42 -488
  780. package/dist/data/ai/ToolSchemaBrowser.js.map +1 -1
  781. package/dist/data/ai/ToolSchemaBrowser.model.cjs +130 -0
  782. package/dist/data/ai/ToolSchemaBrowser.model.cjs.map +1 -0
  783. package/dist/data/ai/ToolSchemaBrowser.model.d.ts +35 -0
  784. package/dist/data/ai/ToolSchemaBrowser.model.d.ts.map +1 -0
  785. package/dist/data/ai/ToolSchemaBrowser.model.js +130 -0
  786. package/dist/data/ai/ToolSchemaBrowser.model.js.map +1 -0
  787. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs +57 -0
  788. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs.map +1 -0
  789. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +7 -0
  790. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +1 -0
  791. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js +57 -0
  792. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js.map +1 -0
  793. package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs +389 -0
  794. package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs.map +1 -0
  795. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +23 -0
  796. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -0
  797. package/dist/data/ai/ToolSchemaBrowser.sidebar.js +389 -0
  798. package/dist/data/ai/ToolSchemaBrowser.sidebar.js.map +1 -0
  799. package/dist/data/ai/agent-action-icons.cjs +14 -6
  800. package/dist/data/ai/agent-action-icons.cjs.map +1 -1
  801. package/dist/data/ai/agent-action-icons.d.ts.map +1 -1
  802. package/dist/data/ai/agent-action-icons.js +14 -6
  803. package/dist/data/ai/agent-action-icons.js.map +1 -1
  804. package/dist/data/ai/chat-window-context.d.ts +1 -1
  805. package/dist/data/ai/examples/sessions/claude-complete.cjs +17 -9
  806. package/dist/data/ai/examples/sessions/claude-complete.cjs.map +1 -1
  807. package/dist/data/ai/examples/sessions/claude-complete.d.ts.map +1 -1
  808. package/dist/data/ai/examples/sessions/claude-complete.js +17 -9
  809. package/dist/data/ai/examples/sessions/claude-complete.js.map +1 -1
  810. package/dist/data/ai/examples/sessions/claude.cjs +7 -4
  811. package/dist/data/ai/examples/sessions/claude.cjs.map +1 -1
  812. package/dist/data/ai/examples/sessions/claude.d.ts.map +1 -1
  813. package/dist/data/ai/examples/sessions/claude.js +7 -4
  814. package/dist/data/ai/examples/sessions/claude.js.map +1 -1
  815. package/dist/data/ai/examples/sessions/codex-complete.cjs +17 -10
  816. package/dist/data/ai/examples/sessions/codex-complete.cjs.map +1 -1
  817. package/dist/data/ai/examples/sessions/codex-complete.d.ts.map +1 -1
  818. package/dist/data/ai/examples/sessions/codex-complete.js +17 -10
  819. package/dist/data/ai/examples/sessions/codex-complete.js.map +1 -1
  820. package/dist/data/ai/examples/sessions/codex.cjs +7 -4
  821. package/dist/data/ai/examples/sessions/codex.cjs.map +1 -1
  822. package/dist/data/ai/examples/sessions/codex.d.ts.map +1 -1
  823. package/dist/data/ai/examples/sessions/codex.js +7 -4
  824. package/dist/data/ai/examples/sessions/codex.js.map +1 -1
  825. package/dist/data/ai/index.d.ts +6 -3
  826. package/dist/data/ai/index.d.ts.map +1 -1
  827. package/dist/data/ai/runtime-profile.cjs +93 -0
  828. package/dist/data/ai/runtime-profile.cjs.map +1 -0
  829. package/dist/data/ai/runtime-profile.d.ts +73 -0
  830. package/dist/data/ai/runtime-profile.d.ts.map +1 -0
  831. package/dist/data/ai/runtime-profile.js +93 -0
  832. package/dist/data/ai/runtime-profile.js.map +1 -0
  833. package/dist/data/ai/sandbox-kind-meta.cjs +38 -4
  834. package/dist/data/ai/sandbox-kind-meta.cjs.map +1 -1
  835. package/dist/data/ai/sandbox-kind-meta.d.ts +3 -0
  836. package/dist/data/ai/sandbox-kind-meta.d.ts.map +1 -1
  837. package/dist/data/ai/sandbox-kind-meta.js +38 -4
  838. package/dist/data/ai/sandbox-kind-meta.js.map +1 -1
  839. package/dist/data/ai/use-session-scroll.d.ts +1 -1
  840. package/dist/data/cache-browser/CacheBrowser.d.ts +1 -1
  841. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -1
  842. package/dist/data/cache-browser/CacheDetailPanel.d.ts +1 -1
  843. package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -1
  844. package/dist/data/cache-browser/CacheStatsOverview.d.ts +1 -1
  845. package/dist/data/cache-browser/CacheStatsOverview.d.ts.map +1 -1
  846. package/dist/data/cache-browser/CacheTree.d.ts +2 -2
  847. package/dist/data/cache-browser/CacheTree.d.ts.map +1 -1
  848. package/dist/data/cache-browser/CacheValue.d.ts +1 -1
  849. package/dist/data/cache-browser/CacheValue.d.ts.map +1 -1
  850. package/dist/data/cache-browser/adapter.d.ts +1 -1
  851. package/dist/data/cells/CellFilterActions.d.ts +2 -2
  852. package/dist/data/cells/CellFilterActions.d.ts.map +1 -1
  853. package/dist/data/cells/EntityCell.d.ts +2 -2
  854. package/dist/data/cells/EntityCell.d.ts.map +1 -1
  855. package/dist/data/cells/StatusDot.d.ts +1 -1
  856. package/dist/data/cells/StatusDot.d.ts.map +1 -1
  857. package/dist/data/cells/TagList.d.ts +3 -3
  858. package/dist/data/cells/TagList.d.ts.map +1 -1
  859. package/dist/data/cells/Timestamp.d.ts +1 -1
  860. package/dist/data/cells/Timestamp.d.ts.map +1 -1
  861. package/dist/data/cells/tag-utils.d.ts +1 -1
  862. package/dist/data/chat/Attachment.d.ts +2 -2
  863. package/dist/data/chat/Attachment.d.ts.map +1 -1
  864. package/dist/data/chat/Chat.cjs +13 -3
  865. package/dist/data/chat/Chat.cjs.map +1 -1
  866. package/dist/data/chat/Chat.d.ts +1 -1
  867. package/dist/data/chat/Chat.d.ts.map +1 -1
  868. package/dist/data/chat/Chat.fixtures.cjs +3 -3
  869. package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
  870. package/dist/data/chat/Chat.fixtures.js +3 -3
  871. package/dist/data/chat/Chat.fixtures.js.map +1 -1
  872. package/dist/data/chat/Chat.js +14 -4
  873. package/dist/data/chat/Chat.js.map +1 -1
  874. package/dist/data/chat/Chat.runtime.cjs +4 -9
  875. package/dist/data/chat/Chat.runtime.cjs.map +1 -1
  876. package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
  877. package/dist/data/chat/Chat.runtime.js +4 -9
  878. package/dist/data/chat/Chat.runtime.js.map +1 -1
  879. package/dist/data/chat/ChatRuntimeToolbar.cjs +5 -5
  880. package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -1
  881. package/dist/data/chat/ChatRuntimeToolbar.d.ts +1 -1
  882. package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
  883. package/dist/data/chat/ChatRuntimeToolbar.js +5 -5
  884. package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -1
  885. package/dist/data/chat/ContextMeter.cjs +3 -3
  886. package/dist/data/chat/ContextMeter.cjs.map +1 -1
  887. package/dist/data/chat/ContextMeter.d.ts +3 -3
  888. package/dist/data/chat/ContextMeter.d.ts.map +1 -1
  889. package/dist/data/chat/ContextMeter.js +3 -3
  890. package/dist/data/chat/ContextMeter.js.map +1 -1
  891. package/dist/data/chat/Conversation.d.ts +1 -1
  892. package/dist/data/chat/Conversation.d.ts.map +1 -1
  893. package/dist/data/chat/Message.d.ts +1 -1
  894. package/dist/data/chat/Message.d.ts.map +1 -1
  895. package/dist/data/chat/MessageActions.d.ts +1 -1
  896. package/dist/data/chat/MessageActions.d.ts.map +1 -1
  897. package/dist/data/chat/ModelSelector.d.ts +5 -5
  898. package/dist/data/chat/ModelSelector.d.ts.map +1 -1
  899. package/dist/data/chat/PromptInput.d.ts +2 -2
  900. package/dist/data/chat/PromptInput.d.ts.map +1 -1
  901. package/dist/data/chat/Reasoning.d.ts +1 -1
  902. package/dist/data/chat/Reasoning.d.ts.map +1 -1
  903. package/dist/data/chat/Suggestion.d.ts +1 -1
  904. package/dist/data/chat/Suggestion.d.ts.map +1 -1
  905. package/dist/data/chat/ToolCall.d.ts +1 -1
  906. package/dist/data/chat/ToolCall.d.ts.map +1 -1
  907. package/dist/data/chat/approval.cjs.map +1 -1
  908. package/dist/data/chat/approval.d.ts +21 -1
  909. package/dist/data/chat/approval.d.ts.map +1 -1
  910. package/dist/data/chat/approval.js.map +1 -1
  911. package/dist/data/chat/clickyOperationsToTools.cjs +5 -0
  912. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
  913. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
  914. package/dist/data/chat/clickyOperationsToTools.js +5 -0
  915. package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
  916. package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
  917. package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
  918. package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
  919. package/dist/data/chat/tool-render/adapter.d.ts +1 -1
  920. package/dist/data/chat/tool-render/context.d.ts +1 -1
  921. package/dist/data/chat/tool-render/defaults.d.ts +1 -1
  922. package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
  923. package/dist/data/chat/tool-render/summary.d.ts +1 -1
  924. package/dist/data/chat/types.cjs.map +1 -1
  925. package/dist/data/chat/types.d.ts +8 -6
  926. package/dist/data/chat/types.d.ts.map +1 -1
  927. package/dist/data/chat/types.js.map +1 -1
  928. package/dist/data/chat/usage-snapshot.cjs +21 -1
  929. package/dist/data/chat/usage-snapshot.cjs.map +1 -1
  930. package/dist/data/chat/usage-snapshot.d.ts +2 -0
  931. package/dist/data/chat/usage-snapshot.d.ts.map +1 -1
  932. package/dist/data/chat/usage-snapshot.js +22 -2
  933. package/dist/data/chat/usage-snapshot.js.map +1 -1
  934. package/dist/data/clicky-export/ClickyExportDialog.d.ts +1 -1
  935. package/dist/data/clicky-export/ClickyExportDialog.d.ts.map +1 -1
  936. package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
  937. package/dist/data/code-block-actions.d.ts +1 -1
  938. package/dist/data/code-block-actions.d.ts.map +1 -1
  939. package/dist/data/data-table-server-filters.d.ts +1 -1
  940. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +2 -2
  941. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  942. package/dist/data/diagnostics/DiagnosticsTree.d.ts +1 -1
  943. package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -1
  944. package/dist/data/diagnostics/ErrorDetails.d.ts +4 -4
  945. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  946. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  947. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  948. package/dist/data/diagnostics/GoroutineCard.d.ts +1 -1
  949. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
  950. package/dist/data/diagnostics/JvmStackTrace.d.ts +1 -1
  951. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  952. package/dist/data/diagnostics/RenderedStackTrace.d.ts +1 -1
  953. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
  954. package/dist/data/diagnostics/StackFrameRow.d.ts +2 -2
  955. package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -1
  956. package/dist/data/diagnostics/ThreadCard.d.ts +1 -1
  957. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  958. package/dist/data/git/GitChangeList.d.ts +5 -5
  959. package/dist/data/git/GitChangeList.d.ts.map +1 -1
  960. package/dist/data/har/HarPanel.d.ts +1 -1
  961. package/dist/data/har/HarPanel.d.ts.map +1 -1
  962. package/dist/data/icon-fallback.d.ts +1 -1
  963. package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
  964. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  965. package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
  966. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +1 -1
  967. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -1
  968. package/dist/data/query-browser/QueryBrowserResults.d.ts +1 -1
  969. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -1
  970. package/dist/data/runtime/ProviderStatusPanel.d.ts +1 -1
  971. package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -1
  972. package/dist/data/runtime/RuntimeBar.cjs +29 -16
  973. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  974. package/dist/data/runtime/RuntimeBar.d.ts +10 -2
  975. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  976. package/dist/data/runtime/RuntimeBar.js +31 -18
  977. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  978. package/dist/data/runtime/RuntimeBar.model.cjs +10 -20
  979. package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -1
  980. package/dist/data/runtime/RuntimeBar.model.d.ts +2 -2
  981. package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -1
  982. package/dist/data/runtime/RuntimeBar.model.js +11 -21
  983. package/dist/data/runtime/RuntimeBar.model.js.map +1 -1
  984. package/dist/data/runtime/RuntimeBarCombo.cjs +11 -6
  985. package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -1
  986. package/dist/data/runtime/RuntimeBarCombo.d.ts +3 -1
  987. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -1
  988. package/dist/data/runtime/RuntimeBarCombo.js +11 -6
  989. package/dist/data/runtime/RuntimeBarCombo.js.map +1 -1
  990. package/dist/data/runtime/RuntimeBarSegments.cjs +7 -5
  991. package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -1
  992. package/dist/data/runtime/RuntimeBarSegments.d.ts +4 -2
  993. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -1
  994. package/dist/data/runtime/RuntimeBarSegments.js +7 -5
  995. package/dist/data/runtime/RuntimeBarSegments.js.map +1 -1
  996. package/dist/data/runtime/model-capabilities.cjs +0 -3
  997. package/dist/data/runtime/model-capabilities.cjs.map +1 -1
  998. package/dist/data/runtime/model-capabilities.d.ts +0 -1
  999. package/dist/data/runtime/model-capabilities.d.ts.map +1 -1
  1000. package/dist/data/runtime/model-capabilities.js +0 -3
  1001. package/dist/data/runtime/model-capabilities.js.map +1 -1
  1002. package/dist/data/runtime/provider-status.cjs +1 -1
  1003. package/dist/data/runtime/provider-status.cjs.map +1 -1
  1004. package/dist/data/runtime/provider-status.js +1 -1
  1005. package/dist/data/runtime/provider-status.js.map +1 -1
  1006. package/dist/data/runtime/runtime-field-support.cjs +63 -0
  1007. package/dist/data/runtime/runtime-field-support.cjs.map +1 -0
  1008. package/dist/data/runtime/runtime-field-support.d.ts +13 -0
  1009. package/dist/data/runtime/runtime-field-support.d.ts.map +1 -0
  1010. package/dist/data/runtime/runtime-field-support.js +63 -0
  1011. package/dist/data/runtime/runtime-field-support.js.map +1 -0
  1012. package/dist/data/runtime/runtime-mode.cjs +158 -116
  1013. package/dist/data/runtime/runtime-mode.cjs.map +1 -1
  1014. package/dist/data/runtime/runtime-mode.d.ts +57 -19
  1015. package/dist/data/runtime/runtime-mode.d.ts.map +1 -1
  1016. package/dist/data/runtime/runtime-mode.js +158 -116
  1017. package/dist/data/runtime/runtime-mode.js.map +1 -1
  1018. package/dist/data/selectionActionSplit.cjs +33 -0
  1019. package/dist/data/selectionActionSplit.cjs.map +1 -0
  1020. package/dist/data/selectionActionSplit.d.ts +36 -0
  1021. package/dist/data/selectionActionSplit.d.ts.map +1 -0
  1022. package/dist/data/selectionActionSplit.js +33 -0
  1023. package/dist/data/selectionActionSplit.js.map +1 -0
  1024. package/dist/data/task-copy.cjs +76 -0
  1025. package/dist/data/task-copy.cjs.map +1 -0
  1026. package/dist/data/task-copy.d.ts +12 -0
  1027. package/dist/data/task-copy.d.ts.map +1 -0
  1028. package/dist/data/task-copy.js +76 -0
  1029. package/dist/data/task-copy.js.map +1 -0
  1030. package/dist/data/test-runner/TestDetailPanel.d.ts +1 -1
  1031. package/dist/data/test-runner/TestDetailPanel.d.ts.map +1 -1
  1032. package/dist/data/test-runner/TestFailureDetail.d.ts +3 -3
  1033. package/dist/data/test-runner/TestFailureDetail.d.ts.map +1 -1
  1034. package/dist/data/test-runner/TestFilterBar.d.ts +1 -1
  1035. package/dist/data/test-runner/TestFilterBar.d.ts.map +1 -1
  1036. package/dist/data/test-runner/TestRunSummary.d.ts +1 -1
  1037. package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
  1038. package/dist/data/test-runner/TestRunner.d.ts +2 -2
  1039. package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
  1040. package/dist/data/test-runner/TestTree.d.ts +1 -1
  1041. package/dist/data/test-runner/TestTree.d.ts.map +1 -1
  1042. package/dist/data/test-runner/TestTreeNode.cjs +16 -11
  1043. package/dist/data/test-runner/TestTreeNode.cjs.map +1 -1
  1044. package/dist/data/test-runner/TestTreeNode.d.ts +1 -1
  1045. package/dist/data/test-runner/TestTreeNode.d.ts.map +1 -1
  1046. package/dist/data/test-runner/TestTreeNode.js +16 -11
  1047. package/dist/data/test-runner/TestTreeNode.js.map +1 -1
  1048. package/dist/data/test-runner/adapter.d.ts +1 -1
  1049. package/dist/data/test-runner/context.d.ts +1 -1
  1050. package/dist/data/version-info.cjs +3 -3
  1051. package/dist/data/version-info.js +3 -3
  1052. package/dist/data.cjs +34 -0
  1053. package/dist/data.cjs.map +1 -1
  1054. package/dist/data.d.ts +4 -1
  1055. package/dist/data.d.ts.map +1 -1
  1056. package/dist/data.js +34 -0
  1057. package/dist/data.js.map +1 -1
  1058. package/dist/devtools/DebugConsole.d.ts +1 -1
  1059. package/dist/devtools/DebugConsole.d.ts.map +1 -1
  1060. package/dist/devtools/DebugConsoleButton.d.ts +1 -1
  1061. package/dist/devtools/DebugConsoleButton.d.ts.map +1 -1
  1062. package/dist/devtools/DebugConsoleDock.d.ts +1 -1
  1063. package/dist/devtools/DebugConsoleDock.d.ts.map +1 -1
  1064. package/dist/devtools/ExecutionDetail.d.ts +1 -1
  1065. package/dist/devtools/ExecutionDetail.d.ts.map +1 -1
  1066. package/dist/devtools/tabs/ConsoleTab.d.ts +1 -1
  1067. package/dist/devtools/tabs/ConsoleTab.d.ts.map +1 -1
  1068. package/dist/devtools/tabs/InspectionCaches.d.ts +1 -1
  1069. package/dist/devtools/tabs/InspectionCaches.d.ts.map +1 -1
  1070. package/dist/devtools/tabs/InspectionTab.d.ts +1 -1
  1071. package/dist/devtools/tabs/InspectionTab.d.ts.map +1 -1
  1072. package/dist/devtools/tabs/NetworkTab.d.ts +1 -1
  1073. package/dist/devtools/tabs/NetworkTab.d.ts.map +1 -1
  1074. package/dist/devtools/tabs/QueriesTab.d.ts +1 -1
  1075. package/dist/devtools/tabs/QueriesTab.d.ts.map +1 -1
  1076. package/dist/hooks/density-provider.d.ts +3 -3
  1077. package/dist/hooks/density-provider.d.ts.map +1 -1
  1078. package/dist/hooks/theme-provider.d.ts +2 -2
  1079. package/dist/hooks/theme-provider.d.ts.map +1 -1
  1080. package/dist/hooks/use-density.d.ts +1 -1
  1081. package/dist/hooks/use-task-run.cjs +24 -17
  1082. package/dist/hooks/use-task-run.cjs.map +1 -1
  1083. package/dist/hooks/use-task-run.d.ts +3 -1
  1084. package/dist/hooks/use-task-run.d.ts.map +1 -1
  1085. package/dist/hooks/use-task-run.js +25 -18
  1086. package/dist/hooks/use-task-run.js.map +1 -1
  1087. package/dist/hooks/use-theme.d.ts +1 -1
  1088. package/dist/icons/components/UiCalendarCheck.cjs +15 -0
  1089. package/dist/icons/components/UiCalendarCheck.cjs.map +1 -0
  1090. package/dist/icons/components/UiCalendarCheck.d.ts +15 -0
  1091. package/dist/icons/components/UiCalendarCheck.d.ts.map +1 -0
  1092. package/dist/icons/components/UiCalendarCheck.js +15 -0
  1093. package/dist/icons/components/UiCalendarCheck.js.map +1 -0
  1094. package/dist/icons/components/UiChartLineUp.cjs +15 -0
  1095. package/dist/icons/components/UiChartLineUp.cjs.map +1 -0
  1096. package/dist/icons/components/UiChartLineUp.d.ts +15 -0
  1097. package/dist/icons/components/UiChartLineUp.d.ts.map +1 -0
  1098. package/dist/icons/components/UiChartLineUp.js +15 -0
  1099. package/dist/icons/components/UiChartLineUp.js.map +1 -0
  1100. package/dist/icons/components/UiClockCountdown.cjs +15 -0
  1101. package/dist/icons/components/UiClockCountdown.cjs.map +1 -0
  1102. package/dist/icons/components/UiClockCountdown.d.ts +15 -0
  1103. package/dist/icons/components/UiClockCountdown.d.ts.map +1 -0
  1104. package/dist/icons/components/UiClockCountdown.js +15 -0
  1105. package/dist/icons/components/UiClockCountdown.js.map +1 -0
  1106. package/dist/icons/components/UiFactory.cjs +15 -0
  1107. package/dist/icons/components/UiFactory.cjs.map +1 -0
  1108. package/dist/icons/components/UiFactory.d.ts +15 -0
  1109. package/dist/icons/components/UiFactory.d.ts.map +1 -0
  1110. package/dist/icons/components/UiFactory.js +15 -0
  1111. package/dist/icons/components/UiFactory.js.map +1 -0
  1112. package/dist/icons/components/UiHandCoins.cjs +15 -0
  1113. package/dist/icons/components/UiHandCoins.cjs.map +1 -0
  1114. package/dist/icons/components/UiHandCoins.d.ts +15 -0
  1115. package/dist/icons/components/UiHandCoins.d.ts.map +1 -0
  1116. package/dist/icons/components/UiHandCoins.js +15 -0
  1117. package/dist/icons/components/UiHandCoins.js.map +1 -0
  1118. package/dist/icons/components/UiInvoice.cjs +15 -0
  1119. package/dist/icons/components/UiInvoice.cjs.map +1 -0
  1120. package/dist/icons/components/UiInvoice.d.ts +15 -0
  1121. package/dist/icons/components/UiInvoice.d.ts.map +1 -0
  1122. package/dist/icons/components/UiInvoice.js +15 -0
  1123. package/dist/icons/components/UiInvoice.js.map +1 -0
  1124. package/dist/icons/components/UiTax.cjs +15 -0
  1125. package/dist/icons/components/UiTax.cjs.map +1 -0
  1126. package/dist/icons/components/UiTax.d.ts +15 -0
  1127. package/dist/icons/components/UiTax.d.ts.map +1 -0
  1128. package/dist/icons/components/UiTax.js +15 -0
  1129. package/dist/icons/components/UiTax.js.map +1 -0
  1130. package/dist/icons/index.d.ts +14 -0
  1131. package/dist/icons/index.d.ts.map +1 -1
  1132. package/dist/icons/registry.cjs +14 -0
  1133. package/dist/icons/registry.cjs.map +1 -1
  1134. package/dist/icons/registry.d.ts +1 -1
  1135. package/dist/icons/registry.d.ts.map +1 -1
  1136. package/dist/icons/registry.js +14 -0
  1137. package/dist/icons/registry.js.map +1 -1
  1138. package/dist/icons/types.d.ts +1 -1
  1139. package/dist/icons.cjs +21 -0
  1140. package/dist/icons.cjs.map +1 -1
  1141. package/dist/icons.js +21 -0
  1142. package/dist/icons.js.map +1 -1
  1143. package/dist/index.cjs +43 -0
  1144. package/dist/index.cjs.map +1 -1
  1145. package/dist/index.js +44 -1
  1146. package/dist/index.js.map +1 -1
  1147. package/dist/layout/AppShell.cjs +17 -3
  1148. package/dist/layout/AppShell.cjs.map +1 -1
  1149. package/dist/layout/AppShell.d.ts +10 -2
  1150. package/dist/layout/AppShell.d.ts.map +1 -1
  1151. package/dist/layout/AppShell.debug.d.ts +1 -1
  1152. package/dist/layout/AppShell.debug.d.ts.map +1 -1
  1153. package/dist/layout/AppShell.js +17 -3
  1154. package/dist/layout/AppShell.js.map +1 -1
  1155. package/dist/layout/AppShell.nav.cjs +133 -76
  1156. package/dist/layout/AppShell.nav.cjs.map +1 -1
  1157. package/dist/layout/AppShell.nav.d.ts +1 -1
  1158. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  1159. package/dist/layout/AppShell.nav.drag.cjs +86 -0
  1160. package/dist/layout/AppShell.nav.drag.cjs.map +1 -0
  1161. package/dist/layout/AppShell.nav.drag.d.ts +52 -0
  1162. package/dist/layout/AppShell.nav.drag.d.ts.map +1 -0
  1163. package/dist/layout/AppShell.nav.drag.js +86 -0
  1164. package/dist/layout/AppShell.nav.drag.js.map +1 -0
  1165. package/dist/layout/AppShell.nav.js +133 -76
  1166. package/dist/layout/AppShell.nav.js.map +1 -1
  1167. package/dist/layout/AppSidebar.d.ts +3 -3
  1168. package/dist/layout/AppSidebar.d.ts.map +1 -1
  1169. package/dist/layout/Panel.d.ts +2 -2
  1170. package/dist/layout/Panel.d.ts.map +1 -1
  1171. package/dist/layout/PanelFrame.d.ts +2 -2
  1172. package/dist/layout/PanelFrame.d.ts.map +1 -1
  1173. package/dist/layout/Section.d.ts +3 -3
  1174. package/dist/layout/Section.d.ts.map +1 -1
  1175. package/dist/layout/SplitPane.d.ts +2 -2
  1176. package/dist/layout/SplitPane.d.ts.map +1 -1
  1177. package/dist/layout/Tabs.d.ts +2 -2
  1178. package/dist/layout/Tabs.d.ts.map +1 -1
  1179. package/dist/layout/Workspace.d.ts +2 -2
  1180. package/dist/layout/Workspace.d.ts.map +1 -1
  1181. package/dist/layout/Workspace.model.d.ts +1 -1
  1182. package/dist/layout/Workspace.regions.d.ts +2 -2
  1183. package/dist/layout/Workspace.regions.d.ts.map +1 -1
  1184. package/dist/{components/combobox-utils.cjs → lib/combobox-values.cjs} +1 -5
  1185. package/dist/lib/combobox-values.cjs.map +1 -0
  1186. package/dist/{components/combobox-utils.d.ts → lib/combobox-values.d.ts} +3 -13
  1187. package/dist/lib/combobox-values.d.ts.map +1 -0
  1188. package/dist/{components/combobox-utils.js → lib/combobox-values.js} +1 -5
  1189. package/dist/lib/combobox-values.js.map +1 -0
  1190. package/dist/lib/combobox.cjs +93 -0
  1191. package/dist/lib/combobox.cjs.map +1 -0
  1192. package/dist/lib/combobox.d.ts +20 -0
  1193. package/dist/lib/combobox.d.ts.map +1 -0
  1194. package/dist/lib/combobox.js +93 -0
  1195. package/dist/lib/combobox.js.map +1 -0
  1196. package/dist/monaco/MonacoEditor.d.ts +1 -1
  1197. package/dist/monaco/MonacoEditor.d.ts.map +1 -1
  1198. package/dist/monaco/MonacoProvider.d.ts +1 -1
  1199. package/dist/monaco/MonacoProvider.d.ts.map +1 -1
  1200. package/dist/monaco/MonacoSchemaEditor.cjs +4 -4
  1201. package/dist/monaco/MonacoSchemaEditor.cjs.map +1 -1
  1202. package/dist/monaco/MonacoSchemaEditor.d.ts +1 -1
  1203. package/dist/monaco/MonacoSchemaEditor.d.ts.map +1 -1
  1204. package/dist/monaco/MonacoSchemaEditor.js +4 -4
  1205. package/dist/monaco/MonacoSchemaEditor.js.map +1 -1
  1206. package/dist/monaco/types.d.ts +1 -1
  1207. package/dist/monaco/use-monaco-worker.d.ts +1 -1
  1208. package/dist/overlay/CellActions.d.ts +3 -3
  1209. package/dist/overlay/CellActions.d.ts.map +1 -1
  1210. package/dist/overlay/CommandPalette.d.ts +2 -2
  1211. package/dist/overlay/CommandPalette.model.d.ts +1 -1
  1212. package/dist/overlay/CommandPaletteList.cjs.map +1 -1
  1213. package/dist/overlay/CommandPaletteList.d.ts +3 -3
  1214. package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
  1215. package/dist/overlay/CommandPaletteList.js.map +1 -1
  1216. package/dist/overlay/CommandPaletteTrigger.d.ts +1 -1
  1217. package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -1
  1218. package/dist/overlay/ContextMenu.d.ts +1 -1
  1219. package/dist/overlay/ContextMenu.d.ts.map +1 -1
  1220. package/dist/overlay/DropdownMenu.cjs +46 -35
  1221. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  1222. package/dist/overlay/DropdownMenu.d.ts +2 -2
  1223. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  1224. package/dist/overlay/DropdownMenu.js +46 -35
  1225. package/dist/overlay/DropdownMenu.js.map +1 -1
  1226. package/dist/overlay/DropdownMenuSubmenu.d.ts +1 -1
  1227. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  1228. package/dist/overlay/HoverCard.d.ts +2 -2
  1229. package/dist/overlay/HoverCard.d.ts.map +1 -1
  1230. package/dist/overlay/Modal.cjs +105 -18
  1231. package/dist/overlay/Modal.cjs.map +1 -1
  1232. package/dist/overlay/Modal.d.ts +2 -2
  1233. package/dist/overlay/Modal.d.ts.map +1 -1
  1234. package/dist/overlay/Modal.js +105 -18
  1235. package/dist/overlay/Modal.js.map +1 -1
  1236. package/dist/overlay/Toast.d.ts +2 -2
  1237. package/dist/overlay/Toast.d.ts.map +1 -1
  1238. package/dist/overlay/Tour.d.ts +1 -1
  1239. package/dist/overlay/Tour.d.ts.map +1 -1
  1240. package/dist/overlay/TourCard.d.ts +2 -2
  1241. package/dist/overlay/TourCard.d.ts.map +1 -1
  1242. package/dist/overlay/TourProvider.d.ts +2 -2
  1243. package/dist/overlay/TourProvider.d.ts.map +1 -1
  1244. package/dist/overlay/TourSpotlight.d.ts +1 -1
  1245. package/dist/overlay/TourSpotlight.d.ts.map +1 -1
  1246. package/dist/overlay/dropdownMenuContext.d.ts +1 -1
  1247. package/dist/overlay/toast-context.d.ts +2 -2
  1248. package/dist/overlay/tour-context.d.ts +1 -1
  1249. package/dist/overlay/tour-types.d.ts +1 -1
  1250. package/dist/profiles/cel/celEditor.d.ts +4 -4
  1251. package/dist/profiles/cel/celEditor.d.ts.map +1 -1
  1252. package/dist/profiles/connections/catalogTree.d.ts +1 -1
  1253. package/dist/profiles/connections/catalogTree.d.ts.map +1 -1
  1254. package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
  1255. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +2 -2
  1256. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -1
  1257. package/dist/profiles/connections/inspectionStatus.d.ts +1 -1
  1258. package/dist/profiles/connections/inspectionStatus.d.ts.map +1 -1
  1259. package/dist/profiles/editor/profileBuilder.d.ts +3 -3
  1260. package/dist/profiles/editor/profileBuilder.d.ts.map +1 -1
  1261. package/dist/profiles/editor/profileBuilderWorkspace.d.ts +1 -1
  1262. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -1
  1263. package/dist/profiles/editor/profileEditor.d.ts +1 -1
  1264. package/dist/profiles/editor/profileEditor.d.ts.map +1 -1
  1265. package/dist/profiles/editor/profileEditorPreview.d.ts +1 -1
  1266. package/dist/profiles/editor/profileEditorPreview.d.ts.map +1 -1
  1267. package/dist/profiles/editor/profileEditorRail.d.ts +1 -1
  1268. package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -1
  1269. package/dist/profiles/editor/profileEditorRaw.d.ts +1 -1
  1270. package/dist/profiles/editor/profileEditorRaw.d.ts.map +1 -1
  1271. package/dist/profiles/editor/profileEditorSections.d.ts +3 -3
  1272. package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -1
  1273. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts +1 -1
  1274. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts.map +1 -1
  1275. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
  1276. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +2 -2
  1277. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -1
  1278. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts +1 -1
  1279. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts.map +1 -1
  1280. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +1 -1
  1281. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts.map +1 -1
  1282. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +2 -2
  1283. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts.map +1 -1
  1284. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +1 -1
  1285. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts.map +1 -1
  1286. package/dist/profiles/elasticsearch/esQueryPreview.d.ts +1 -1
  1287. package/dist/profiles/elasticsearch/esQueryPreview.d.ts.map +1 -1
  1288. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts +1 -1
  1289. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts.map +1 -1
  1290. package/dist/profiles/elasticsearch/esValueCombobox.d.ts +2 -2
  1291. package/dist/profiles/elasticsearch/esValueCombobox.d.ts.map +1 -1
  1292. package/dist/profiles/fields/profileColumnPicker.d.ts +1 -1
  1293. package/dist/profiles/fields/profileColumnPicker.d.ts.map +1 -1
  1294. package/dist/profiles/fields/profileFieldControls.d.ts +3 -3
  1295. package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -1
  1296. package/dist/profiles/fields/profileFieldEditor.d.ts +3 -3
  1297. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
  1298. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +1 -1
  1299. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -1
  1300. package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
  1301. package/dist/profiles/fields/profileFieldList.d.ts +2 -2
  1302. package/dist/profiles/fields/profileFieldList.d.ts.map +1 -1
  1303. package/dist/profiles/fields/profileFieldManager.d.ts +1 -1
  1304. package/dist/profiles/fields/profileFieldManager.d.ts.map +1 -1
  1305. package/dist/profiles/fields/profileFieldState.d.ts +1 -1
  1306. package/dist/profiles/processor/processorPipeline.d.ts +1 -1
  1307. package/dist/profiles/processor/processorPipeline.d.ts.map +1 -1
  1308. package/dist/profiles/processor/processorPipelineEditor.d.ts +1 -1
  1309. package/dist/profiles/processor/processorPipelineEditor.d.ts.map +1 -1
  1310. package/dist/profiles/processor/processorPreviewTable.d.ts +1 -1
  1311. package/dist/profiles/processor/processorPreviewTable.d.ts.map +1 -1
  1312. package/dist/profiles/query/jsonPathSample.d.ts +1 -1
  1313. package/dist/profiles/query/jsonPathSampleRow.d.ts +2 -2
  1314. package/dist/profiles/query/jsonPathSampleRow.d.ts.map +1 -1
  1315. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +1 -1
  1316. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts.map +1 -1
  1317. package/dist/profiles/query/prometheusResults.d.ts +2 -2
  1318. package/dist/profiles/query/prometheusResults.d.ts.map +1 -1
  1319. package/dist/profiles/query/queryRowLimits.d.ts +1 -1
  1320. package/dist/profiles/query/queryRowLimits.d.ts.map +1 -1
  1321. package/dist/profiles/query/queryTargetPicker.d.ts +1 -1
  1322. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -1
  1323. package/dist/profiles/wizard/profileWizard.d.ts +1 -1
  1324. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -1
  1325. package/dist/profiles/wizard/profileWizardQueryStep.d.ts +1 -1
  1326. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -1
  1327. package/dist/profiles/wizard/profileWizardSteps.d.ts +4 -4
  1328. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -1
  1329. package/dist/rpc/ChatLayer.d.ts +1 -1
  1330. package/dist/rpc/ChatLayer.d.ts.map +1 -1
  1331. package/dist/rpc/CommandForm.d.ts +1 -1
  1332. package/dist/rpc/CommandForm.d.ts.map +1 -1
  1333. package/dist/rpc/CommandOutput.d.ts +1 -1
  1334. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  1335. package/dist/rpc/EndpointList.d.ts +2 -2
  1336. package/dist/rpc/EndpointList.d.ts.map +1 -1
  1337. package/dist/rpc/EntityExplorerApp.d.ts +2 -2
  1338. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  1339. package/dist/rpc/ExecutionResult.d.ts +1 -1
  1340. package/dist/rpc/ExecutionResult.d.ts.map +1 -1
  1341. package/dist/rpc/FilterForm.cjs +26 -11
  1342. package/dist/rpc/FilterForm.cjs.map +1 -1
  1343. package/dist/rpc/FilterForm.d.ts +4 -1
  1344. package/dist/rpc/FilterForm.d.ts.map +1 -1
  1345. package/dist/rpc/FilterForm.js +26 -11
  1346. package/dist/rpc/FilterForm.js.map +1 -1
  1347. package/dist/rpc/FilterFormFields.cjs +3 -2
  1348. package/dist/rpc/FilterFormFields.cjs.map +1 -1
  1349. package/dist/rpc/FilterFormFields.d.ts +2 -1
  1350. package/dist/rpc/FilterFormFields.d.ts.map +1 -1
  1351. package/dist/rpc/FilterFormFields.js +3 -2
  1352. package/dist/rpc/FilterFormFields.js.map +1 -1
  1353. package/dist/rpc/InlineError.d.ts +1 -1
  1354. package/dist/rpc/InlineError.d.ts.map +1 -1
  1355. package/dist/rpc/OperationActionBar.cjs +81 -17
  1356. package/dist/rpc/OperationActionBar.cjs.map +1 -1
  1357. package/dist/rpc/OperationActionBar.d.ts +8 -3
  1358. package/dist/rpc/OperationActionBar.d.ts.map +1 -1
  1359. package/dist/rpc/OperationActionBar.js +82 -18
  1360. package/dist/rpc/OperationActionBar.js.map +1 -1
  1361. package/dist/rpc/OperationActionDialog.d.ts +1 -1
  1362. package/dist/rpc/OperationActionDialog.d.ts.map +1 -1
  1363. package/dist/rpc/OperationCatalog.cjs +129 -76
  1364. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  1365. package/dist/rpc/OperationCatalog.d.ts +6 -2
  1366. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  1367. package/dist/rpc/OperationCatalog.js +130 -77
  1368. package/dist/rpc/OperationCatalog.js.map +1 -1
  1369. package/dist/rpc/OperationCatalogActions.cjs +100 -0
  1370. package/dist/rpc/OperationCatalogActions.cjs.map +1 -0
  1371. package/dist/rpc/OperationCatalogActions.d.ts +22 -0
  1372. package/dist/rpc/OperationCatalogActions.d.ts.map +1 -0
  1373. package/dist/rpc/OperationCatalogActions.js +100 -0
  1374. package/dist/rpc/OperationCatalogActions.js.map +1 -0
  1375. package/dist/rpc/OperationCommandPage.d.ts +1 -1
  1376. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  1377. package/dist/rpc/OperationEntityContextPicker.cjs +129 -116
  1378. package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
  1379. package/dist/rpc/OperationEntityContextPicker.d.ts +18 -1
  1380. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  1381. package/dist/rpc/OperationEntityContextPicker.js +130 -117
  1382. package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
  1383. package/dist/rpc/OperationEntityPage.d.ts +2 -2
  1384. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  1385. package/dist/rpc/OperationResultView.cjs +7 -4
  1386. package/dist/rpc/OperationResultView.cjs.map +1 -1
  1387. package/dist/rpc/OperationResultView.d.ts +5 -3
  1388. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  1389. package/dist/rpc/OperationResultView.js +7 -4
  1390. package/dist/rpc/OperationResultView.js.map +1 -1
  1391. package/dist/rpc/RouterProvider.d.ts +2 -2
  1392. package/dist/rpc/RouterProvider.d.ts.map +1 -1
  1393. package/dist/rpc/SchemaActionForm.d.ts +2 -2
  1394. package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
  1395. package/dist/rpc/actionIconMap.cjs +11 -0
  1396. package/dist/rpc/actionIconMap.cjs.map +1 -0
  1397. package/dist/rpc/actionIconMap.d.ts +3 -0
  1398. package/dist/rpc/actionIconMap.d.ts.map +1 -0
  1399. package/dist/rpc/actionIconMap.js +11 -0
  1400. package/dist/rpc/actionIconMap.js.map +1 -0
  1401. package/dist/rpc/formMetadata.d.ts +1 -1
  1402. package/dist/rpc/operationCatalogUrl.cjs +28 -0
  1403. package/dist/rpc/operationCatalogUrl.cjs.map +1 -0
  1404. package/dist/rpc/operationCatalogUrl.d.ts +3 -0
  1405. package/dist/rpc/operationCatalogUrl.d.ts.map +1 -0
  1406. package/dist/rpc/operationCatalogUrl.js +28 -0
  1407. package/dist/rpc/operationCatalogUrl.js.map +1 -0
  1408. package/dist/rpc/operationErrorDiagnostics.d.ts +1 -1
  1409. package/dist/rpc/operationErrorDiagnostics.d.ts.map +1 -1
  1410. package/dist/rpc/router.d.ts +1 -1
  1411. package/dist/rpc/rowNavigation.cjs +4 -3
  1412. package/dist/rpc/rowNavigation.cjs.map +1 -1
  1413. package/dist/rpc/rowNavigation.d.ts +1 -1
  1414. package/dist/rpc/rowNavigation.d.ts.map +1 -1
  1415. package/dist/rpc/rowNavigation.js +4 -3
  1416. package/dist/rpc/rowNavigation.js.map +1 -1
  1417. package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
  1418. package/dist/rpc/types.cjs.map +1 -1
  1419. package/dist/rpc/types.d.ts +2 -2
  1420. package/dist/rpc/types.d.ts.map +1 -1
  1421. package/dist/rpc/types.js.map +1 -1
  1422. package/dist/rpc.cjs +2 -0
  1423. package/dist/rpc.cjs.map +1 -1
  1424. package/dist/rpc.d.ts +2 -1
  1425. package/dist/rpc.d.ts.map +1 -1
  1426. package/dist/rpc.js +2 -0
  1427. package/dist/rpc.js.map +1 -1
  1428. package/dist/runtime-profile.cjs +7 -0
  1429. package/dist/runtime-profile.cjs.map +1 -0
  1430. package/dist/runtime-profile.d.ts +2 -0
  1431. package/dist/runtime-profile.d.ts.map +1 -0
  1432. package/dist/runtime-profile.js +7 -0
  1433. package/dist/runtime-profile.js.map +1 -0
  1434. package/dist/styles.css +1 -1
  1435. package/package.json +8 -3
  1436. package/dist/components/combobox-utils.cjs.map +0 -1
  1437. package/dist/components/combobox-utils.d.ts.map +0 -1
  1438. package/dist/components/combobox-utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-mode-visuals.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/permission-mode-visuals.ts"],"sourcesContent":["import type { AgentActionMeta } from \"../agent-action-icons\";\nimport { PERMISSION_MODE_ICONS } from \"../agent-action-icons\";\nimport {\n SPEC_PERMISSION_MODES,\n type SpecPermissionMode,\n} from \"../SpecRuntimeEditor.model\";\nimport type { RuntimePermissionSupport } from \"../../runtime/runtime-mode\";\nimport {\n UiHandPalm,\n UiLock,\n UiLockOpen,\n UiPauseCircle,\n UiPencilSimpleLine,\n UiShieldSlash,\n} from \"../../../icons\";\n\ntype PermissionModeVisuals = Record<SpecPermissionMode, AgentActionMeta>;\ntype AliasPair = readonly [SpecPermissionMode, SpecPermissionMode];\n\nconst CODEX_PERMISSION_MODES: PermissionModeVisuals = {\n default: { icon: UiLock, tone: \"slate\", label: \"Read only\" },\n acceptEdits: {\n icon: UiHandPalm,\n tone: \"sky\",\n label: \"Ask for approval\",\n },\n auto: { icon: UiHandPalm, tone: \"sky\", label: \"Ask for approval\" },\n bypassPermissions: {\n icon: UiLockOpen,\n tone: \"rose\",\n label: \"Full access\",\n },\n dontAsk: { icon: UiShieldSlash, tone: \"rose\", label: \"Don't ask\" },\n plan: { icon: UiPauseCircle, tone: \"teal\", label: \"Plan\" },\n};\n\nconst GEMINI_PERMISSION_MODES: PermissionModeVisuals = {\n default: { icon: UiHandPalm, tone: \"indigo\", label: \"Manual\" },\n acceptEdits: {\n icon: UiPencilSimpleLine,\n tone: \"amber\",\n label: \"Auto edit\",\n },\n auto: { icon: UiPencilSimpleLine, tone: \"amber\", label: \"Auto edit\" },\n bypassPermissions: { icon: UiShieldSlash, tone: \"rose\", label: \"YOLO\" },\n dontAsk: { icon: UiShieldSlash, tone: \"rose\", label: \"YOLO\" },\n plan: { icon: UiPauseCircle, tone: \"emerald\", label: \"Plan\" },\n};\n\nconst PROVIDER_VISUALS: Partial<Record<string, PermissionModeVisuals>> = {\n claude: PERMISSION_MODE_ICONS,\n codex: CODEX_PERMISSION_MODES,\n gemini: GEMINI_PERMISSION_MODES,\n};\n\nconst PROVIDER_ALIASES: Partial<Record<string, AliasPair[]>> = {\n codex: [[\"acceptEdits\", \"auto\"]],\n gemini: [\n [\"acceptEdits\", \"auto\"],\n [\"bypassPermissions\", \"dontAsk\"],\n ],\n};\n\nexport function permissionModeVisual(\n family: string | undefined,\n mode: SpecPermissionMode,\n): AgentActionMeta {\n return PROVIDER_VISUALS[family ?? \"\"]?.[mode] ?? PERMISSION_MODE_ICONS[mode];\n}\n\nexport function collapsePermissionModeAliases(\n family: string | undefined,\n available: SpecPermissionMode[],\n current: SpecPermissionMode | undefined,\n support: Record<string, RuntimePermissionSupport>,\n): SpecPermissionMode[] {\n const hidden = new Set<SpecPermissionMode>();\n for (const pair of PROVIDER_ALIASES[family ?? \"\"] ?? []) {\n if (!pair.every((mode) => available.includes(mode))) continue;\n if (!equivalentEnforcement(support[pair[0]], support[pair[1]])) continue;\n const keep = aliasRepresentative(pair, current, support);\n hidden.add(pair[0] === keep ? pair[1] : pair[0]);\n }\n return SPEC_PERMISSION_MODES.filter(\n (mode) => available.includes(mode) && !hidden.has(mode),\n );\n}\n\nfunction aliasRepresentative(\n pair: AliasPair,\n current: SpecPermissionMode | undefined,\n support: Record<string, RuntimePermissionSupport>,\n): SpecPermissionMode {\n if (current && pair.includes(current)) return current;\n const [left, right] = pair;\n if (support[right]?.kind === \"native\" && support[left]?.kind !== \"native\") {\n return right;\n }\n return left;\n}\n\nconst ENFORCEMENT_EFFECT_KEYS = [\"flag\", \"sandbox\", \"approval\"] as const;\n\nfunction equivalentEnforcement(\n left: RuntimePermissionSupport | undefined,\n right: RuntimePermissionSupport | undefined,\n): boolean {\n const publishesEnforcement = ENFORCEMENT_EFFECT_KEYS.some(\n (key) =>\n left?.effects?.[key] !== undefined || right?.effects?.[key] !== undefined,\n );\n return (\n publishesEnforcement &&\n ENFORCEMENT_EFFECT_KEYS.every(\n (key) => left?.effects?.[key] === right?.effects?.[key],\n )\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAmBA,MAAM,yBAAgD;AAAA,EACpD,SAAS,EAAE,MAAM,QAAQ,MAAM,SAAS,OAAO,YAAA;AAAA,EAC/C,aAAa;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,MAAM,EAAE,MAAM,YAAY,MAAM,OAAO,OAAO,mBAAA;AAAA,EAC9C,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,OAAO,YAAA;AAAA,EACrD,MAAM,EAAE,MAAM,eAAe,MAAM,QAAQ,OAAO,OAAA;AACpD;AAEA,MAAM,0BAAiD;AAAA,EACrD,SAAS,EAAE,MAAM,YAAY,MAAM,UAAU,OAAO,SAAA;AAAA,EACpD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,MAAM,EAAE,MAAM,oBAAoB,MAAM,SAAS,OAAO,YAAA;AAAA,EACxD,mBAAmB,EAAE,MAAM,eAAe,MAAM,QAAQ,OAAO,OAAA;AAAA,EAC/D,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,OAAO,OAAA;AAAA,EACrD,MAAM,EAAE,MAAM,eAAe,MAAM,WAAW,OAAO,OAAA;AACvD;AAEA,MAAM,mBAAmE;AAAA,EACvE,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,MAAM,mBAAyD;AAAA,EAC7D,OAAO,CAAC,CAAC,eAAe,MAAM,CAAC;AAAA,EAC/B,QAAQ;AAAA,IACN,CAAC,eAAe,MAAM;AAAA,IACtB,CAAC,qBAAqB,SAAS;AAAA,EAAA;AAEnC;AAEO,SAAS,qBACd,QACA,MACiB;;AACjB,WAAO,sBAAiB,UAAU,EAAE,MAA7B,mBAAiC,UAAS,sBAAsB,IAAI;AAC7E;AAEO,SAAS,8BACd,QACA,WACA,SACA,SACsB;AACtB,QAAM,6BAAa,IAAA;AACnB,aAAW,QAAQ,iBAAiB,UAAU,EAAE,KAAK,CAAA,GAAI;AACvD,QAAI,CAAC,KAAK,MAAM,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC,EAAG;AACrD,QAAI,CAAC,sBAAsB,QAAQ,KAAK,CAAC,CAAC,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAG;AAChE,UAAM,OAAO,oBAAoB,MAAM,SAAS,OAAO;AACvD,WAAO,IAAI,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;AAAA,EACjD;AACA,SAAO,sBAAsB;AAAA,IAC3B,CAAC,SAAS,UAAU,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI;AAAA,EAAA;AAE1D;AAEA,SAAS,oBACP,MACA,SACA,SACoB;;AACpB,MAAI,WAAW,KAAK,SAAS,OAAO,EAAG,QAAO;AAC9C,QAAM,CAAC,MAAM,KAAK,IAAI;AACtB,QAAI,aAAQ,KAAK,MAAb,mBAAgB,UAAS,cAAY,aAAQ,IAAI,MAAZ,mBAAe,UAAS,UAAU;AACzE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,0BAA0B,CAAC,QAAQ,WAAW,UAAU;AAE9D,SAAS,sBACP,MACA,OACS;AACT,QAAM,uBAAuB,wBAAwB;AAAA,IACnD,CAAC,QAAA;;AACC,iDAAM,YAAN,mBAAgB,UAAS,YAAa,oCAAO,YAAP,mBAAiB,UAAS;AAAA;AAAA,EAAA;AAEpE,SACE,wBACA,wBAAwB;AAAA,IACtB,CAAC;;AAAQ,iDAAM,YAAN,mBAAgB,YAAS,oCAAO,YAAP,mBAAiB;AAAA;AAAA,EAAG;AAG5D;"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const presets = require("./presets.cjs");
4
+ function readSavedPermissionPresets() {
5
+ if (typeof window === "undefined") return [];
6
+ try {
7
+ const raw = window.localStorage.getItem(presets.SPEC_PERMISSION_PRESET_STORAGE_KEY);
8
+ if (!raw) return [];
9
+ const parsed = JSON.parse(raw);
10
+ if (!Array.isArray(parsed)) return [];
11
+ return parsed.filter(isSavedPermissionPreset);
12
+ } catch {
13
+ return [];
14
+ }
15
+ }
16
+ function writeSavedPermissionPresets(presets$1) {
17
+ if (typeof window === "undefined") return;
18
+ window.localStorage.setItem(
19
+ presets.SPEC_PERMISSION_PRESET_STORAGE_KEY,
20
+ JSON.stringify(presets$1)
21
+ );
22
+ }
23
+ function permissionPresetSlug(value) {
24
+ const slug = value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
25
+ return slug || "preset";
26
+ }
27
+ function isSavedPermissionPreset(value) {
28
+ if (!value || typeof value !== "object") return false;
29
+ const item = value;
30
+ return typeof item.id === "string" && typeof item.label === "string" && typeof item.updatedAt === "string" && !!item.snapshot && typeof item.snapshot === "object" && !!item.snapshot.permissions;
31
+ }
32
+ exports.permissionPresetSlug = permissionPresetSlug;
33
+ exports.readSavedPermissionPresets = readSavedPermissionPresets;
34
+ exports.writeSavedPermissionPresets = writeSavedPermissionPresets;
35
+ //# sourceMappingURL=permission-preset-storage.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-preset-storage.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/permission-preset-storage.ts"],"sourcesContent":["import {\n SPEC_PERMISSION_PRESET_STORAGE_KEY,\n type SavedPermissionPreset,\n} from \"./presets\";\n\nexport function readSavedPermissionPresets(): SavedPermissionPreset[] {\n if (typeof window === \"undefined\") return [];\n try {\n const raw = window.localStorage.getItem(SPEC_PERMISSION_PRESET_STORAGE_KEY);\n if (!raw) return [];\n const parsed = JSON.parse(raw);\n if (!Array.isArray(parsed)) return [];\n return parsed.filter(isSavedPermissionPreset);\n } catch {\n return [];\n }\n}\n\nexport function writeSavedPermissionPresets(presets: SavedPermissionPreset[]) {\n if (typeof window === \"undefined\") return;\n window.localStorage.setItem(\n SPEC_PERMISSION_PRESET_STORAGE_KEY,\n JSON.stringify(presets),\n );\n}\n\nexport function permissionPresetSlug(value: string) {\n const slug = value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return slug || \"preset\";\n}\n\nfunction isSavedPermissionPreset(\n value: unknown,\n): value is SavedPermissionPreset {\n if (!value || typeof value !== \"object\") return false;\n const item = value as Partial<SavedPermissionPreset>;\n return (\n typeof item.id === \"string\" &&\n typeof item.label === \"string\" &&\n typeof item.updatedAt === \"string\" &&\n !!item.snapshot &&\n typeof item.snapshot === \"object\" &&\n !!item.snapshot.permissions\n );\n}\n"],"names":["SPEC_PERMISSION_PRESET_STORAGE_KEY","presets"],"mappings":";;;AAKO,SAAS,6BAAsD;AACpE,MAAI,OAAO,WAAW,YAAa,QAAO,CAAA;AAC1C,MAAI;AACF,UAAM,MAAM,OAAO,aAAa,QAAQA,QAAAA,kCAAkC;AAC1E,QAAI,CAAC,IAAK,QAAO,CAAA;AACjB,UAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,QAAI,CAAC,MAAM,QAAQ,MAAM,UAAU,CAAA;AACnC,WAAO,OAAO,OAAO,uBAAuB;AAAA,EAC9C,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF;AAEO,SAAS,4BAA4BC,WAAkC;AAC5E,MAAI,OAAO,WAAW,YAAa;AACnC,SAAO,aAAa;AAAA,IAClBD,QAAAA;AAAAA,IACA,KAAK,UAAUC,SAAO;AAAA,EAAA;AAE1B;AAEO,SAAS,qBAAqB,OAAe;AAClD,QAAM,OAAO,MACV,KAAA,EACA,YAAA,EACA,QAAQ,eAAe,GAAG,EAC1B,QAAQ,YAAY,EAAE;AACzB,SAAO,QAAQ;AACjB;AAEA,SAAS,wBACP,OACgC;AAChC,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,QAAM,OAAO;AACb,SACE,OAAO,KAAK,OAAO,YACnB,OAAO,KAAK,UAAU,YACtB,OAAO,KAAK,cAAc,YAC1B,CAAC,CAAC,KAAK,YACP,OAAO,KAAK,aAAa,YACzB,CAAC,CAAC,KAAK,SAAS;AAEpB;;;;"}
@@ -0,0 +1,5 @@
1
+ import { SavedPermissionPreset } from './presets';
2
+ export declare function readSavedPermissionPresets(): SavedPermissionPreset[];
3
+ export declare function writeSavedPermissionPresets(presets: SavedPermissionPreset[]): void;
4
+ export declare function permissionPresetSlug(value: string): string;
5
+ //# sourceMappingURL=permission-preset-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-preset-storage.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/permission-preset-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,WAAW,CAAC;AAEnB,wBAAgB,0BAA0B,IAAI,qBAAqB,EAAE,CAWpE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,qBAAqB,EAAE,QAM3E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,UAOjD"}
@@ -0,0 +1,35 @@
1
+ import { SPEC_PERMISSION_PRESET_STORAGE_KEY } from "./presets.js";
2
+ function readSavedPermissionPresets() {
3
+ if (typeof window === "undefined") return [];
4
+ try {
5
+ const raw = window.localStorage.getItem(SPEC_PERMISSION_PRESET_STORAGE_KEY);
6
+ if (!raw) return [];
7
+ const parsed = JSON.parse(raw);
8
+ if (!Array.isArray(parsed)) return [];
9
+ return parsed.filter(isSavedPermissionPreset);
10
+ } catch {
11
+ return [];
12
+ }
13
+ }
14
+ function writeSavedPermissionPresets(presets) {
15
+ if (typeof window === "undefined") return;
16
+ window.localStorage.setItem(
17
+ SPEC_PERMISSION_PRESET_STORAGE_KEY,
18
+ JSON.stringify(presets)
19
+ );
20
+ }
21
+ function permissionPresetSlug(value) {
22
+ const slug = value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
23
+ return slug || "preset";
24
+ }
25
+ function isSavedPermissionPreset(value) {
26
+ if (!value || typeof value !== "object") return false;
27
+ const item = value;
28
+ return typeof item.id === "string" && typeof item.label === "string" && typeof item.updatedAt === "string" && !!item.snapshot && typeof item.snapshot === "object" && !!item.snapshot.permissions;
29
+ }
30
+ export {
31
+ permissionPresetSlug,
32
+ readSavedPermissionPresets,
33
+ writeSavedPermissionPresets
34
+ };
35
+ //# sourceMappingURL=permission-preset-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-preset-storage.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/permission-preset-storage.ts"],"sourcesContent":["import {\n SPEC_PERMISSION_PRESET_STORAGE_KEY,\n type SavedPermissionPreset,\n} from \"./presets\";\n\nexport function readSavedPermissionPresets(): SavedPermissionPreset[] {\n if (typeof window === \"undefined\") return [];\n try {\n const raw = window.localStorage.getItem(SPEC_PERMISSION_PRESET_STORAGE_KEY);\n if (!raw) return [];\n const parsed = JSON.parse(raw);\n if (!Array.isArray(parsed)) return [];\n return parsed.filter(isSavedPermissionPreset);\n } catch {\n return [];\n }\n}\n\nexport function writeSavedPermissionPresets(presets: SavedPermissionPreset[]) {\n if (typeof window === \"undefined\") return;\n window.localStorage.setItem(\n SPEC_PERMISSION_PRESET_STORAGE_KEY,\n JSON.stringify(presets),\n );\n}\n\nexport function permissionPresetSlug(value: string) {\n const slug = value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return slug || \"preset\";\n}\n\nfunction isSavedPermissionPreset(\n value: unknown,\n): value is SavedPermissionPreset {\n if (!value || typeof value !== \"object\") return false;\n const item = value as Partial<SavedPermissionPreset>;\n return (\n typeof item.id === \"string\" &&\n typeof item.label === \"string\" &&\n typeof item.updatedAt === \"string\" &&\n !!item.snapshot &&\n typeof item.snapshot === \"object\" &&\n !!item.snapshot.permissions\n );\n}\n"],"names":[],"mappings":";AAKO,SAAS,6BAAsD;AACpE,MAAI,OAAO,WAAW,YAAa,QAAO,CAAA;AAC1C,MAAI;AACF,UAAM,MAAM,OAAO,aAAa,QAAQ,kCAAkC;AAC1E,QAAI,CAAC,IAAK,QAAO,CAAA;AACjB,UAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,QAAI,CAAC,MAAM,QAAQ,MAAM,UAAU,CAAA;AACnC,WAAO,OAAO,OAAO,uBAAuB;AAAA,EAC9C,QAAQ;AACN,WAAO,CAAA;AAAA,EACT;AACF;AAEO,SAAS,4BAA4B,SAAkC;AAC5E,MAAI,OAAO,WAAW,YAAa;AACnC,SAAO,aAAa;AAAA,IAClB;AAAA,IACA,KAAK,UAAU,OAAO;AAAA,EAAA;AAE1B;AAEO,SAAS,qBAAqB,OAAe;AAClD,QAAM,OAAO,MACV,KAAA,EACA,YAAA,EACA,QAAQ,eAAe,GAAG,EAC1B,QAAQ,YAAY,EAAE;AACzB,SAAO,QAAQ;AACjB;AAEA,SAAS,wBACP,OACgC;AAChC,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,QAAM,OAAO;AACb,SACE,OAAO,KAAK,OAAO,YACnB,OAAO,KAAK,UAAU,YACtB,OAAO,KAAK,cAAc,YAC1B,CAAC,CAAC,KAAK,YACP,OAAO,KAAK,aAAa,YACzB,CAAC,CAAC,KAAK,SAAS;AAEpB;"}
@@ -6,7 +6,6 @@ const SPEC_RUNTIME_PRESETS = [
6
6
  id: "edit",
7
7
  label: "Edit",
8
8
  description: "Edits auto, shell and web ask.",
9
- mode: "acceptEdits",
10
9
  policies: {
11
10
  Read: "allow",
12
11
  Edit: "auto",
@@ -23,7 +22,6 @@ const SPEC_RUNTIME_PRESETS = [
23
22
  id: "plan",
24
23
  label: "Plan",
25
24
  description: "Read and web ask, writes off.",
26
- mode: "plan",
27
25
  policies: {
28
26
  Read: "allow",
29
27
  Edit: "deny",
@@ -40,7 +38,6 @@ const SPEC_RUNTIME_PRESETS = [
40
38
  id: "readonly",
41
39
  label: "Read-only",
42
40
  description: "No writes, shell, network, or resources.",
43
- mode: "default",
44
41
  policies: {
45
42
  Read: "ask",
46
43
  Edit: "deny",
@@ -74,10 +71,7 @@ function applyPermissionPresetSnapshot(value, snapshot) {
74
71
  return memory ? { ...next, memory } : next;
75
72
  }
76
73
  function buildPermissionPresetSnapshot(value, entries) {
77
- var _a;
78
- const permissions = {
79
- mode: ((_a = value.permissions) == null ? void 0 : _a.mode) || "default"
80
- };
74
+ const permissions = {};
81
75
  const tools = {};
82
76
  const mcp = {};
83
77
  const plugins = {};
@@ -119,7 +113,7 @@ function savedPresetMatches(value, entries, preset) {
119
113
  return canonicalSnapshot(buildPermissionPresetSnapshot(value, entries)) === canonicalSnapshot(preset.snapshot);
120
114
  }
121
115
  function buildBuiltinPermissionSnapshot(preset, entries) {
122
- const permissions = { mode: preset.mode };
116
+ const permissions = {};
123
117
  const tools = {};
124
118
  const mcp = {};
125
119
  const plugins = {};
@@ -162,7 +156,6 @@ function presetMemory(value) {
162
156
  }
163
157
  function clonePermissions(value) {
164
158
  const permissions = {};
165
- if (value.mode) permissions.mode = value.mode;
166
159
  if (value.tools)
167
160
  permissions.tools = { ...value.tools };
168
161
  if (value.mcp) {
@@ -1 +1 @@
1
- {"version":3,"file":"presets.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/presets.ts"],"sourcesContent":["import type {\n AISpecRuntimeMCPPermissions,\n AISpecRuntimeMemory,\n AISpecRuntimePermissions,\n AISpecRuntimeResourcePolicies,\n AISpecRuntimeToolPolicies,\n AISpecRuntimeValue,\n SpecPermissionMode,\n SpecResourceMode,\n SpecToolPolicy,\n} from \"../SpecRuntimeEditor.model\";\nimport type {\n PermissionDomain,\n PermissionListEntry,\n} from \"./permissions-model\";\n\nexport type SpecRuntimePresetId = \"edit\" | \"plan\" | \"readonly\";\n\nexport type SpecRuntimePermissionSnapshot = {\n permissions: AISpecRuntimePermissions;\n memory?: AISpecRuntimeMemory | undefined;\n};\n\nexport type SavedPermissionPreset = {\n id: string;\n label: string;\n snapshot: SpecRuntimePermissionSnapshot;\n updatedAt: string;\n};\n\nexport type SpecRuntimePreset = {\n id: SpecRuntimePresetId;\n label: string;\n description: string;\n mode: SpecPermissionMode;\n /** Per-tool policies applied by id. */\n policies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools by group, when not named in policies. */\n groupPolicies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools without an explicit or group policy. */\n defaultToolPolicy: SpecToolPolicy;\n /** Resource policies applied to MCP servers, plugins, and skills. */\n resources: Record<Exclude<PermissionDomain, \"tools\">, SpecResourceMode>;\n};\n\nexport const SPEC_PERMISSION_PRESET_STORAGE_KEY =\n \"clicky-ui:spec-runtime-editor:permission-presets:v1\";\n\nexport const SPEC_RUNTIME_PRESETS: SpecRuntimePreset[] = [\n {\n id: \"edit\",\n label: \"Edit\",\n description: \"Edits auto, shell and web ask.\",\n mode: \"acceptEdits\",\n policies: {\n Read: \"allow\",\n Edit: \"auto\",\n Write: \"auto\",\n Bash: \"ask\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"auto\", Shell: \"ask\", Web: \"ask\" },\n defaultToolPolicy: \"ask\",\n resources: { mcp: \"enabled\", plugins: \"enabled\", skills: \"enabled\" },\n },\n {\n id: \"plan\",\n label: \"Plan\",\n description: \"Read and web ask, writes off.\",\n mode: \"plan\",\n policies: {\n Read: \"allow\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"ask\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"enabled\" },\n },\n {\n id: \"readonly\",\n label: \"Read-only\",\n description: \"No writes, shell, network, or resources.\",\n mode: \"default\",\n policies: {\n Read: \"ask\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"deny\",\n WebFetch: \"deny\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"deny\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"disabled\" },\n },\n];\n\n// Applies a built-in preset as a complete permission-tree snapshot for the\n// current catalog. Manual resource/tool edits are intentionally replaced.\nexport function applySpecPreset(\n value: AISpecRuntimeValue,\n presetId: SpecRuntimePresetId,\n entries: PermissionListEntry[],\n): AISpecRuntimeValue {\n const preset = SPEC_RUNTIME_PRESETS.find((item) => item.id === presetId);\n if (!preset) {\n throw new Error(`unknown spec runtime preset ${JSON.stringify(presetId)}`);\n }\n return applyPermissionPresetSnapshot(\n value,\n buildBuiltinPermissionSnapshot(preset, entries),\n );\n}\n\nexport function applyPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n snapshot: SpecRuntimePermissionSnapshot,\n): AISpecRuntimeValue {\n const { permissions: _permissions, memory: _memory, ...rest } = value;\n const next: AISpecRuntimeValue = {\n ...rest,\n permissions: clonePermissions(snapshot.permissions),\n };\n const memory = cloneMemory(snapshot.memory);\n return memory ? { ...next, memory } : next;\n}\n\nexport function buildPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = {\n mode: value.permissions?.mode || \"default\",\n };\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = entry.mode as SpecToolPolicy;\n } else if (entry.domain === \"mcp\") {\n const mode = entry.mode as SpecResourceMode;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = entry.mode as SpecResourceMode;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = entry.mode as SpecResourceMode;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n\n const memory = presetMemory(value.memory);\n return memory ? { permissions, memory } : { permissions };\n}\n\n// A preset is active when the normalized current permission tree exactly\n// matches the normalized built-in snapshot for the current catalog.\nexport function activeSpecPreset(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePresetId | undefined {\n const current = canonicalSnapshot(\n buildPermissionPresetSnapshot(value, entries),\n );\n return SPEC_RUNTIME_PRESETS.find(\n (preset) =>\n canonicalSnapshot(buildBuiltinPermissionSnapshot(preset, entries)) ===\n current,\n )?.id;\n}\n\nexport function savedPresetMatches(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n preset: SavedPermissionPreset,\n) {\n return (\n canonicalSnapshot(buildPermissionPresetSnapshot(value, entries)) ===\n canonicalSnapshot(preset.snapshot)\n );\n}\n\nfunction buildBuiltinPermissionSnapshot(\n preset: SpecRuntimePreset,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = { mode: preset.mode };\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = presetPolicyFor(preset, entry);\n } else if (entry.domain === \"mcp\") {\n const mode = preset.resources.mcp;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = preset.resources.plugins;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = preset.resources.skills;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n return { permissions };\n}\n\nfunction presetPolicyFor(\n preset: SpecRuntimePreset,\n entry: PermissionListEntry,\n): SpecToolPolicy {\n return (\n preset.policies[entry.id] ??\n preset.groupPolicies[entry.group] ??\n preset.defaultToolPolicy\n );\n}\n\nfunction presetMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n if (!value) return undefined;\n const memory: AISpecRuntimeMemory = {};\n if (value.skipProject) memory.skipProject = true;\n if (value.skipUser) memory.skipUser = true;\n if (value.skipHooks) memory.skipHooks = true;\n if (value.skipMemory) memory.skipMemory = true;\n if (value.bare) memory.bare = true;\n return Object.keys(memory).length > 0 ? memory : undefined;\n}\n\nfunction clonePermissions(\n value: AISpecRuntimePermissions,\n): AISpecRuntimePermissions {\n const permissions: AISpecRuntimePermissions = {};\n if (value.mode) permissions.mode = value.mode;\n if (value.tools)\n permissions.tools = { ...(value.tools as AISpecRuntimeToolPolicies) };\n if (value.mcp) {\n const mcp: AISpecRuntimeMCPPermissions = {};\n for (const [key, mode] of Object.entries(value.mcp)) {\n if (Array.isArray(mode)) mcp[key] = [...mode];\n else mcp[key] = mode;\n }\n permissions.mcp = mcp;\n }\n if (value.plugins && !Array.isArray(value.plugins)) {\n permissions.plugins = { ...value.plugins };\n } else if (Array.isArray(value.plugins)) {\n permissions.plugins = [...value.plugins];\n }\n if (value.skills && !Array.isArray(value.skills)) {\n permissions.skills = { ...value.skills };\n } else if (Array.isArray(value.skills)) {\n permissions.skills = [...value.skills];\n }\n return permissions;\n}\n\nfunction cloneMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n const memory = presetMemory(value);\n return memory ? { ...memory } : undefined;\n}\n\nfunction canonicalSnapshot(snapshot: SpecRuntimePermissionSnapshot) {\n return JSON.stringify(sortValue(snapshot));\n}\n\nfunction sortValue(value: unknown): unknown {\n if (Array.isArray(value)) return [...value].sort();\n if (value && typeof value === \"object\") {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value).sort()) {\n const item = (value as Record<string, unknown>)[key];\n if (item !== undefined) out[key] = sortValue(item);\n }\n return out;\n }\n return value;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/presets.ts"],"sourcesContent":["import type {\n AISpecRuntimeMCPPermissions,\n AISpecRuntimeMemory,\n AISpecRuntimePermissions,\n AISpecRuntimeResourcePolicies,\n AISpecRuntimeToolPolicies,\n AISpecRuntimeValue,\n SpecResourceMode,\n SpecToolPolicy,\n} from \"../SpecRuntimeEditor.model\";\nimport type {\n PermissionDomain,\n PermissionListEntry,\n} from \"./permissions-model\";\n\nexport type SpecRuntimePresetId = \"edit\" | \"plan\" | \"readonly\";\n\nexport type SpecRuntimePermissionSnapshot = {\n permissions: AISpecRuntimePermissions;\n memory?: AISpecRuntimeMemory | undefined;\n};\n\nexport type SavedPermissionPreset = {\n id: string;\n label: string;\n snapshot: SpecRuntimePermissionSnapshot;\n updatedAt: string;\n};\n\nexport type SpecRuntimePreset = {\n id: SpecRuntimePresetId;\n label: string;\n description: string;\n /** Per-tool policies applied by id. */\n policies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools by group, when not named in policies. */\n groupPolicies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools without an explicit or group policy. */\n defaultToolPolicy: SpecToolPolicy;\n /** Resource policies applied to MCP servers, plugins, and skills. */\n resources: Record<Exclude<PermissionDomain, \"tools\">, SpecResourceMode>;\n};\n\nexport const SPEC_PERMISSION_PRESET_STORAGE_KEY =\n \"clicky-ui:spec-runtime-editor:permission-presets:v1\";\n\nexport const SPEC_RUNTIME_PRESETS: SpecRuntimePreset[] = [\n {\n id: \"edit\",\n label: \"Edit\",\n description: \"Edits auto, shell and web ask.\",\n policies: {\n Read: \"allow\",\n Edit: \"auto\",\n Write: \"auto\",\n Bash: \"ask\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"auto\", Shell: \"ask\", Web: \"ask\" },\n defaultToolPolicy: \"ask\",\n resources: { mcp: \"enabled\", plugins: \"enabled\", skills: \"enabled\" },\n },\n {\n id: \"plan\",\n label: \"Plan\",\n description: \"Read and web ask, writes off.\",\n policies: {\n Read: \"allow\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"ask\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"enabled\" },\n },\n {\n id: \"readonly\",\n label: \"Read-only\",\n description: \"No writes, shell, network, or resources.\",\n policies: {\n Read: \"ask\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"deny\",\n WebFetch: \"deny\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"deny\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"disabled\" },\n },\n];\n\n// Applies a built-in preset as a complete permission-tree snapshot for the\n// current catalog. Manual resource/tool edits are intentionally replaced.\nexport function applySpecPreset(\n value: AISpecRuntimeValue,\n presetId: SpecRuntimePresetId,\n entries: PermissionListEntry[],\n): AISpecRuntimeValue {\n const preset = SPEC_RUNTIME_PRESETS.find((item) => item.id === presetId);\n if (!preset) {\n throw new Error(`unknown spec runtime preset ${JSON.stringify(presetId)}`);\n }\n return applyPermissionPresetSnapshot(\n value,\n buildBuiltinPermissionSnapshot(preset, entries),\n );\n}\n\nexport function applyPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n snapshot: SpecRuntimePermissionSnapshot,\n): AISpecRuntimeValue {\n const { permissions: _permissions, memory: _memory, ...rest } = value;\n const next: AISpecRuntimeValue = {\n ...rest,\n permissions: clonePermissions(snapshot.permissions),\n };\n const memory = cloneMemory(snapshot.memory);\n return memory ? { ...next, memory } : next;\n}\n\nexport function buildPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = {};\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = entry.mode as SpecToolPolicy;\n } else if (entry.domain === \"mcp\") {\n const mode = entry.mode as SpecResourceMode;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = entry.mode as SpecResourceMode;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = entry.mode as SpecResourceMode;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n\n const memory = presetMemory(value.memory);\n return memory ? { permissions, memory } : { permissions };\n}\n\n// A preset is active when the normalized current permission tree exactly\n// matches the normalized built-in snapshot for the current catalog.\nexport function activeSpecPreset(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePresetId | undefined {\n const current = canonicalSnapshot(\n buildPermissionPresetSnapshot(value, entries),\n );\n return SPEC_RUNTIME_PRESETS.find(\n (preset) =>\n canonicalSnapshot(buildBuiltinPermissionSnapshot(preset, entries)) ===\n current,\n )?.id;\n}\n\nexport function savedPresetMatches(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n preset: SavedPermissionPreset,\n) {\n return (\n canonicalSnapshot(buildPermissionPresetSnapshot(value, entries)) ===\n canonicalSnapshot(preset.snapshot)\n );\n}\n\nfunction buildBuiltinPermissionSnapshot(\n preset: SpecRuntimePreset,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = {};\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = presetPolicyFor(preset, entry);\n } else if (entry.domain === \"mcp\") {\n const mode = preset.resources.mcp;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = preset.resources.plugins;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = preset.resources.skills;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n return { permissions };\n}\n\nfunction presetPolicyFor(\n preset: SpecRuntimePreset,\n entry: PermissionListEntry,\n): SpecToolPolicy {\n return (\n preset.policies[entry.id] ??\n preset.groupPolicies[entry.group] ??\n preset.defaultToolPolicy\n );\n}\n\nfunction presetMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n if (!value) return undefined;\n const memory: AISpecRuntimeMemory = {};\n if (value.skipProject) memory.skipProject = true;\n if (value.skipUser) memory.skipUser = true;\n if (value.skipHooks) memory.skipHooks = true;\n if (value.skipMemory) memory.skipMemory = true;\n if (value.bare) memory.bare = true;\n return Object.keys(memory).length > 0 ? memory : undefined;\n}\n\nfunction clonePermissions(\n value: AISpecRuntimePermissions,\n): AISpecRuntimePermissions {\n const permissions: AISpecRuntimePermissions = {};\n if (value.tools)\n permissions.tools = { ...(value.tools as AISpecRuntimeToolPolicies) };\n if (value.mcp) {\n const mcp: AISpecRuntimeMCPPermissions = {};\n for (const [key, mode] of Object.entries(value.mcp)) {\n if (Array.isArray(mode)) mcp[key] = [...mode];\n else mcp[key] = mode;\n }\n permissions.mcp = mcp;\n }\n if (value.plugins && !Array.isArray(value.plugins)) {\n permissions.plugins = { ...value.plugins };\n } else if (Array.isArray(value.plugins)) {\n permissions.plugins = [...value.plugins];\n }\n if (value.skills && !Array.isArray(value.skills)) {\n permissions.skills = { ...value.skills };\n } else if (Array.isArray(value.skills)) {\n permissions.skills = [...value.skills];\n }\n return permissions;\n}\n\nfunction cloneMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n const memory = presetMemory(value);\n return memory ? { ...memory } : undefined;\n}\n\nfunction canonicalSnapshot(snapshot: SpecRuntimePermissionSnapshot) {\n return JSON.stringify(sortValue(snapshot));\n}\n\nfunction sortValue(value: unknown): unknown {\n if (Array.isArray(value)) return [...value].sort();\n if (value && typeof value === \"object\") {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value).sort()) {\n const item = (value as Record<string, unknown>)[key];\n if (item !== undefined) out[key] = sortValue(item);\n }\n return out;\n }\n return value;\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AISpecRuntimeMemory, AISpecRuntimePermissions, AISpecRuntimeValue, SpecPermissionMode, SpecResourceMode, SpecToolPolicy } from '../SpecRuntimeEditor.model';
1
+ import { AISpecRuntimeMemory, AISpecRuntimePermissions, AISpecRuntimeValue, SpecResourceMode, SpecToolPolicy } from '../SpecRuntimeEditor.model';
2
2
  import { PermissionDomain, PermissionListEntry } from './permissions-model';
3
3
  export type SpecRuntimePresetId = "edit" | "plan" | "readonly";
4
4
  export type SpecRuntimePermissionSnapshot = {
@@ -15,7 +15,6 @@ export type SpecRuntimePreset = {
15
15
  id: SpecRuntimePresetId;
16
16
  label: string;
17
17
  description: string;
18
- mode: SpecPermissionMode;
19
18
  /** Per-tool policies applied by id. */
20
19
  policies: Record<string, SpecToolPolicy>;
21
20
  /** Fallback policy for catalog tools by group, when not named in policies. */
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,wBAAwB,EAGxB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,wBAAwB,CAAC;IACtC,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,6BAA6B,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,mBAAmB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,kBAAkB,CAAC;IACzB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,6EAA6E;IAC7E,iBAAiB,EAAE,cAAc,CAAC;IAClC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;CACzE,CAAC;AAEF,eAAO,MAAM,kCAAkC,wDACQ,CAAC;AAExD,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAoDnD,CAAC;AAIF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,mBAAmB,EAAE,GAC7B,kBAAkB,CASpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,6BAA6B,GACtC,kBAAkB,CAQpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,6BAA6B,CAkC/B;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,mBAAmB,GAAG,SAAS,CASjC;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,MAAM,EAAE,qBAAqB,WAM9B"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,wBAAwB,EAGxB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,wBAAwB,CAAC;IACtC,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,6BAA6B,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,mBAAmB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,6EAA6E;IAC7E,iBAAiB,EAAE,cAAc,CAAC;IAClC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;CACzE,CAAC;AAEF,eAAO,MAAM,kCAAkC,wDACQ,CAAC;AAExD,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAiDnD,CAAC;AAIF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,mBAAmB,EAAE,GAC7B,kBAAkB,CASpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,6BAA6B,GACtC,kBAAkB,CAQpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,6BAA6B,CAgC/B;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,mBAAmB,GAAG,SAAS,CASjC;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,MAAM,EAAE,qBAAqB,WAM9B"}
@@ -4,7 +4,6 @@ const SPEC_RUNTIME_PRESETS = [
4
4
  id: "edit",
5
5
  label: "Edit",
6
6
  description: "Edits auto, shell and web ask.",
7
- mode: "acceptEdits",
8
7
  policies: {
9
8
  Read: "allow",
10
9
  Edit: "auto",
@@ -21,7 +20,6 @@ const SPEC_RUNTIME_PRESETS = [
21
20
  id: "plan",
22
21
  label: "Plan",
23
22
  description: "Read and web ask, writes off.",
24
- mode: "plan",
25
23
  policies: {
26
24
  Read: "allow",
27
25
  Edit: "deny",
@@ -38,7 +36,6 @@ const SPEC_RUNTIME_PRESETS = [
38
36
  id: "readonly",
39
37
  label: "Read-only",
40
38
  description: "No writes, shell, network, or resources.",
41
- mode: "default",
42
39
  policies: {
43
40
  Read: "ask",
44
41
  Edit: "deny",
@@ -72,10 +69,7 @@ function applyPermissionPresetSnapshot(value, snapshot) {
72
69
  return memory ? { ...next, memory } : next;
73
70
  }
74
71
  function buildPermissionPresetSnapshot(value, entries) {
75
- var _a;
76
- const permissions = {
77
- mode: ((_a = value.permissions) == null ? void 0 : _a.mode) || "default"
78
- };
72
+ const permissions = {};
79
73
  const tools = {};
80
74
  const mcp = {};
81
75
  const plugins = {};
@@ -117,7 +111,7 @@ function savedPresetMatches(value, entries, preset) {
117
111
  return canonicalSnapshot(buildPermissionPresetSnapshot(value, entries)) === canonicalSnapshot(preset.snapshot);
118
112
  }
119
113
  function buildBuiltinPermissionSnapshot(preset, entries) {
120
- const permissions = { mode: preset.mode };
114
+ const permissions = {};
121
115
  const tools = {};
122
116
  const mcp = {};
123
117
  const plugins = {};
@@ -160,7 +154,6 @@ function presetMemory(value) {
160
154
  }
161
155
  function clonePermissions(value) {
162
156
  const permissions = {};
163
- if (value.mode) permissions.mode = value.mode;
164
157
  if (value.tools)
165
158
  permissions.tools = { ...value.tools };
166
159
  if (value.mcp) {
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/presets.ts"],"sourcesContent":["import type {\n AISpecRuntimeMCPPermissions,\n AISpecRuntimeMemory,\n AISpecRuntimePermissions,\n AISpecRuntimeResourcePolicies,\n AISpecRuntimeToolPolicies,\n AISpecRuntimeValue,\n SpecPermissionMode,\n SpecResourceMode,\n SpecToolPolicy,\n} from \"../SpecRuntimeEditor.model\";\nimport type {\n PermissionDomain,\n PermissionListEntry,\n} from \"./permissions-model\";\n\nexport type SpecRuntimePresetId = \"edit\" | \"plan\" | \"readonly\";\n\nexport type SpecRuntimePermissionSnapshot = {\n permissions: AISpecRuntimePermissions;\n memory?: AISpecRuntimeMemory | undefined;\n};\n\nexport type SavedPermissionPreset = {\n id: string;\n label: string;\n snapshot: SpecRuntimePermissionSnapshot;\n updatedAt: string;\n};\n\nexport type SpecRuntimePreset = {\n id: SpecRuntimePresetId;\n label: string;\n description: string;\n mode: SpecPermissionMode;\n /** Per-tool policies applied by id. */\n policies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools by group, when not named in policies. */\n groupPolicies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools without an explicit or group policy. */\n defaultToolPolicy: SpecToolPolicy;\n /** Resource policies applied to MCP servers, plugins, and skills. */\n resources: Record<Exclude<PermissionDomain, \"tools\">, SpecResourceMode>;\n};\n\nexport const SPEC_PERMISSION_PRESET_STORAGE_KEY =\n \"clicky-ui:spec-runtime-editor:permission-presets:v1\";\n\nexport const SPEC_RUNTIME_PRESETS: SpecRuntimePreset[] = [\n {\n id: \"edit\",\n label: \"Edit\",\n description: \"Edits auto, shell and web ask.\",\n mode: \"acceptEdits\",\n policies: {\n Read: \"allow\",\n Edit: \"auto\",\n Write: \"auto\",\n Bash: \"ask\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"auto\", Shell: \"ask\", Web: \"ask\" },\n defaultToolPolicy: \"ask\",\n resources: { mcp: \"enabled\", plugins: \"enabled\", skills: \"enabled\" },\n },\n {\n id: \"plan\",\n label: \"Plan\",\n description: \"Read and web ask, writes off.\",\n mode: \"plan\",\n policies: {\n Read: \"allow\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"ask\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"enabled\" },\n },\n {\n id: \"readonly\",\n label: \"Read-only\",\n description: \"No writes, shell, network, or resources.\",\n mode: \"default\",\n policies: {\n Read: \"ask\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"deny\",\n WebFetch: \"deny\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"deny\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"disabled\" },\n },\n];\n\n// Applies a built-in preset as a complete permission-tree snapshot for the\n// current catalog. Manual resource/tool edits are intentionally replaced.\nexport function applySpecPreset(\n value: AISpecRuntimeValue,\n presetId: SpecRuntimePresetId,\n entries: PermissionListEntry[],\n): AISpecRuntimeValue {\n const preset = SPEC_RUNTIME_PRESETS.find((item) => item.id === presetId);\n if (!preset) {\n throw new Error(`unknown spec runtime preset ${JSON.stringify(presetId)}`);\n }\n return applyPermissionPresetSnapshot(\n value,\n buildBuiltinPermissionSnapshot(preset, entries),\n );\n}\n\nexport function applyPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n snapshot: SpecRuntimePermissionSnapshot,\n): AISpecRuntimeValue {\n const { permissions: _permissions, memory: _memory, ...rest } = value;\n const next: AISpecRuntimeValue = {\n ...rest,\n permissions: clonePermissions(snapshot.permissions),\n };\n const memory = cloneMemory(snapshot.memory);\n return memory ? { ...next, memory } : next;\n}\n\nexport function buildPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = {\n mode: value.permissions?.mode || \"default\",\n };\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = entry.mode as SpecToolPolicy;\n } else if (entry.domain === \"mcp\") {\n const mode = entry.mode as SpecResourceMode;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = entry.mode as SpecResourceMode;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = entry.mode as SpecResourceMode;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n\n const memory = presetMemory(value.memory);\n return memory ? { permissions, memory } : { permissions };\n}\n\n// A preset is active when the normalized current permission tree exactly\n// matches the normalized built-in snapshot for the current catalog.\nexport function activeSpecPreset(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePresetId | undefined {\n const current = canonicalSnapshot(\n buildPermissionPresetSnapshot(value, entries),\n );\n return SPEC_RUNTIME_PRESETS.find(\n (preset) =>\n canonicalSnapshot(buildBuiltinPermissionSnapshot(preset, entries)) ===\n current,\n )?.id;\n}\n\nexport function savedPresetMatches(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n preset: SavedPermissionPreset,\n) {\n return (\n canonicalSnapshot(buildPermissionPresetSnapshot(value, entries)) ===\n canonicalSnapshot(preset.snapshot)\n );\n}\n\nfunction buildBuiltinPermissionSnapshot(\n preset: SpecRuntimePreset,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = { mode: preset.mode };\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = presetPolicyFor(preset, entry);\n } else if (entry.domain === \"mcp\") {\n const mode = preset.resources.mcp;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = preset.resources.plugins;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = preset.resources.skills;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n return { permissions };\n}\n\nfunction presetPolicyFor(\n preset: SpecRuntimePreset,\n entry: PermissionListEntry,\n): SpecToolPolicy {\n return (\n preset.policies[entry.id] ??\n preset.groupPolicies[entry.group] ??\n preset.defaultToolPolicy\n );\n}\n\nfunction presetMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n if (!value) return undefined;\n const memory: AISpecRuntimeMemory = {};\n if (value.skipProject) memory.skipProject = true;\n if (value.skipUser) memory.skipUser = true;\n if (value.skipHooks) memory.skipHooks = true;\n if (value.skipMemory) memory.skipMemory = true;\n if (value.bare) memory.bare = true;\n return Object.keys(memory).length > 0 ? memory : undefined;\n}\n\nfunction clonePermissions(\n value: AISpecRuntimePermissions,\n): AISpecRuntimePermissions {\n const permissions: AISpecRuntimePermissions = {};\n if (value.mode) permissions.mode = value.mode;\n if (value.tools)\n permissions.tools = { ...(value.tools as AISpecRuntimeToolPolicies) };\n if (value.mcp) {\n const mcp: AISpecRuntimeMCPPermissions = {};\n for (const [key, mode] of Object.entries(value.mcp)) {\n if (Array.isArray(mode)) mcp[key] = [...mode];\n else mcp[key] = mode;\n }\n permissions.mcp = mcp;\n }\n if (value.plugins && !Array.isArray(value.plugins)) {\n permissions.plugins = { ...value.plugins };\n } else if (Array.isArray(value.plugins)) {\n permissions.plugins = [...value.plugins];\n }\n if (value.skills && !Array.isArray(value.skills)) {\n permissions.skills = { ...value.skills };\n } else if (Array.isArray(value.skills)) {\n permissions.skills = [...value.skills];\n }\n return permissions;\n}\n\nfunction cloneMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n const memory = presetMemory(value);\n return memory ? { ...memory } : undefined;\n}\n\nfunction canonicalSnapshot(snapshot: SpecRuntimePermissionSnapshot) {\n return JSON.stringify(sortValue(snapshot));\n}\n\nfunction sortValue(value: unknown): unknown {\n if (Array.isArray(value)) return [...value].sort();\n if (value && typeof value === \"object\") {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value).sort()) {\n const item = (value as Record<string, unknown>)[key];\n if (item !== undefined) out[key] = sortValue(item);\n }\n return out;\n }\n return value;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/presets.ts"],"sourcesContent":["import type {\n AISpecRuntimeMCPPermissions,\n AISpecRuntimeMemory,\n AISpecRuntimePermissions,\n AISpecRuntimeResourcePolicies,\n AISpecRuntimeToolPolicies,\n AISpecRuntimeValue,\n SpecResourceMode,\n SpecToolPolicy,\n} from \"../SpecRuntimeEditor.model\";\nimport type {\n PermissionDomain,\n PermissionListEntry,\n} from \"./permissions-model\";\n\nexport type SpecRuntimePresetId = \"edit\" | \"plan\" | \"readonly\";\n\nexport type SpecRuntimePermissionSnapshot = {\n permissions: AISpecRuntimePermissions;\n memory?: AISpecRuntimeMemory | undefined;\n};\n\nexport type SavedPermissionPreset = {\n id: string;\n label: string;\n snapshot: SpecRuntimePermissionSnapshot;\n updatedAt: string;\n};\n\nexport type SpecRuntimePreset = {\n id: SpecRuntimePresetId;\n label: string;\n description: string;\n /** Per-tool policies applied by id. */\n policies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools by group, when not named in policies. */\n groupPolicies: Record<string, SpecToolPolicy>;\n /** Fallback policy for catalog tools without an explicit or group policy. */\n defaultToolPolicy: SpecToolPolicy;\n /** Resource policies applied to MCP servers, plugins, and skills. */\n resources: Record<Exclude<PermissionDomain, \"tools\">, SpecResourceMode>;\n};\n\nexport const SPEC_PERMISSION_PRESET_STORAGE_KEY =\n \"clicky-ui:spec-runtime-editor:permission-presets:v1\";\n\nexport const SPEC_RUNTIME_PRESETS: SpecRuntimePreset[] = [\n {\n id: \"edit\",\n label: \"Edit\",\n description: \"Edits auto, shell and web ask.\",\n policies: {\n Read: \"allow\",\n Edit: \"auto\",\n Write: \"auto\",\n Bash: \"ask\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"auto\", Shell: \"ask\", Web: \"ask\" },\n defaultToolPolicy: \"ask\",\n resources: { mcp: \"enabled\", plugins: \"enabled\", skills: \"enabled\" },\n },\n {\n id: \"plan\",\n label: \"Plan\",\n description: \"Read and web ask, writes off.\",\n policies: {\n Read: \"allow\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"ask\",\n WebFetch: \"ask\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"ask\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"enabled\" },\n },\n {\n id: \"readonly\",\n label: \"Read-only\",\n description: \"No writes, shell, network, or resources.\",\n policies: {\n Read: \"ask\",\n Edit: \"deny\",\n Write: \"deny\",\n Bash: \"deny\",\n WebSearch: \"deny\",\n WebFetch: \"deny\",\n },\n groupPolicies: { Files: \"deny\", Shell: \"deny\", Web: \"deny\" },\n defaultToolPolicy: \"deny\",\n resources: { mcp: \"disabled\", plugins: \"disabled\", skills: \"disabled\" },\n },\n];\n\n// Applies a built-in preset as a complete permission-tree snapshot for the\n// current catalog. Manual resource/tool edits are intentionally replaced.\nexport function applySpecPreset(\n value: AISpecRuntimeValue,\n presetId: SpecRuntimePresetId,\n entries: PermissionListEntry[],\n): AISpecRuntimeValue {\n const preset = SPEC_RUNTIME_PRESETS.find((item) => item.id === presetId);\n if (!preset) {\n throw new Error(`unknown spec runtime preset ${JSON.stringify(presetId)}`);\n }\n return applyPermissionPresetSnapshot(\n value,\n buildBuiltinPermissionSnapshot(preset, entries),\n );\n}\n\nexport function applyPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n snapshot: SpecRuntimePermissionSnapshot,\n): AISpecRuntimeValue {\n const { permissions: _permissions, memory: _memory, ...rest } = value;\n const next: AISpecRuntimeValue = {\n ...rest,\n permissions: clonePermissions(snapshot.permissions),\n };\n const memory = cloneMemory(snapshot.memory);\n return memory ? { ...next, memory } : next;\n}\n\nexport function buildPermissionPresetSnapshot(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = {};\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = entry.mode as SpecToolPolicy;\n } else if (entry.domain === \"mcp\") {\n const mode = entry.mode as SpecResourceMode;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = entry.mode as SpecResourceMode;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = entry.mode as SpecResourceMode;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n\n const memory = presetMemory(value.memory);\n return memory ? { permissions, memory } : { permissions };\n}\n\n// A preset is active when the normalized current permission tree exactly\n// matches the normalized built-in snapshot for the current catalog.\nexport function activeSpecPreset(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): SpecRuntimePresetId | undefined {\n const current = canonicalSnapshot(\n buildPermissionPresetSnapshot(value, entries),\n );\n return SPEC_RUNTIME_PRESETS.find(\n (preset) =>\n canonicalSnapshot(buildBuiltinPermissionSnapshot(preset, entries)) ===\n current,\n )?.id;\n}\n\nexport function savedPresetMatches(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n preset: SavedPermissionPreset,\n) {\n return (\n canonicalSnapshot(buildPermissionPresetSnapshot(value, entries)) ===\n canonicalSnapshot(preset.snapshot)\n );\n}\n\nfunction buildBuiltinPermissionSnapshot(\n preset: SpecRuntimePreset,\n entries: PermissionListEntry[],\n): SpecRuntimePermissionSnapshot {\n const permissions: AISpecRuntimePermissions = {};\n const tools: AISpecRuntimeToolPolicies = {};\n const mcp: AISpecRuntimeMCPPermissions = {};\n const plugins: AISpecRuntimeResourcePolicies = {};\n const skills: AISpecRuntimeResourcePolicies = {};\n const mcpServers: string[] = [];\n\n for (const entry of entries) {\n if (entry.domain === \"tools\") {\n tools[entry.id] = presetPolicyFor(preset, entry);\n } else if (entry.domain === \"mcp\") {\n const mode = preset.resources.mcp;\n mcp[entry.id] = mode;\n if (mode === \"enabled\") mcpServers.push(entry.id);\n } else if (entry.domain === \"plugins\") {\n plugins[entry.id] = preset.resources.plugins;\n } else if (entry.domain === \"skills\") {\n skills[entry.id] = preset.resources.skills;\n }\n }\n\n if (Object.keys(tools).length > 0) permissions.tools = tools;\n if (Object.keys(mcp).length > 0 || mcpServers.length > 0) {\n if (mcpServers.length > 0) mcp.servers = mcpServers;\n permissions.mcp = mcp;\n }\n if (Object.keys(plugins).length > 0) permissions.plugins = plugins;\n if (Object.keys(skills).length > 0) permissions.skills = skills;\n return { permissions };\n}\n\nfunction presetPolicyFor(\n preset: SpecRuntimePreset,\n entry: PermissionListEntry,\n): SpecToolPolicy {\n return (\n preset.policies[entry.id] ??\n preset.groupPolicies[entry.group] ??\n preset.defaultToolPolicy\n );\n}\n\nfunction presetMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n if (!value) return undefined;\n const memory: AISpecRuntimeMemory = {};\n if (value.skipProject) memory.skipProject = true;\n if (value.skipUser) memory.skipUser = true;\n if (value.skipHooks) memory.skipHooks = true;\n if (value.skipMemory) memory.skipMemory = true;\n if (value.bare) memory.bare = true;\n return Object.keys(memory).length > 0 ? memory : undefined;\n}\n\nfunction clonePermissions(\n value: AISpecRuntimePermissions,\n): AISpecRuntimePermissions {\n const permissions: AISpecRuntimePermissions = {};\n if (value.tools)\n permissions.tools = { ...(value.tools as AISpecRuntimeToolPolicies) };\n if (value.mcp) {\n const mcp: AISpecRuntimeMCPPermissions = {};\n for (const [key, mode] of Object.entries(value.mcp)) {\n if (Array.isArray(mode)) mcp[key] = [...mode];\n else mcp[key] = mode;\n }\n permissions.mcp = mcp;\n }\n if (value.plugins && !Array.isArray(value.plugins)) {\n permissions.plugins = { ...value.plugins };\n } else if (Array.isArray(value.plugins)) {\n permissions.plugins = [...value.plugins];\n }\n if (value.skills && !Array.isArray(value.skills)) {\n permissions.skills = { ...value.skills };\n } else if (Array.isArray(value.skills)) {\n permissions.skills = [...value.skills];\n }\n return permissions;\n}\n\nfunction cloneMemory(\n value: AISpecRuntimeMemory | undefined,\n): AISpecRuntimeMemory | undefined {\n const memory = presetMemory(value);\n return memory ? { ...memory } : undefined;\n}\n\nfunction canonicalSnapshot(snapshot: SpecRuntimePermissionSnapshot) {\n return JSON.stringify(sortValue(snapshot));\n}\n\nfunction sortValue(value: unknown): unknown {\n if (Array.isArray(value)) return [...value].sort();\n if (value && typeof value === \"object\") {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value).sort()) {\n const item = (value as Record<string, unknown>)[key];\n if (item !== undefined) out[key] = sortValue(item);\n }\n return out;\n }\n return value;\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"summaries.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/summaries.ts"],"sourcesContent":["import type { ChatModel } from \"../../chat/types\";\nimport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nimport { checkoutMode, commitPhase, worktreeMode } from \"./update\";\nimport { isDenyMode, type PermissionListEntry } from \"./permissions-model\";\n\nexport function summarizeModel(\n value: AISpecRuntimeValue,\n models: ChatModel[] = [],\n): string {\n const parts: string[] = [];\n const model = value.model?.trim();\n if (model) {\n parts.push(models.find((m) => m.id === model)?.label ?? model);\n }\n if (value.effort) parts.push(value.effort);\n return parts.length > 0 ? parts.join(\" · \") : \"Default model\";\n}\n\nexport function summarizePrompt(value: AISpecRuntimeValue): string {\n const overrides = [\n value.prompt?.user,\n value.prompt?.system,\n value.prompt?.appendSystem,\n ].filter((text) => Boolean(text?.trim())).length;\n if (overrides === 0) return \"Base prompt only\";\n return `${overrides} override${overrides > 1 ? \"s\" : \"\"} set`;\n}\n\nexport function summarizeWorkspace(value: AISpecRuntimeValue): string {\n const mode = checkoutMode(value);\n if (mode === \"none\") return \"No checkout\";\n const parts: string[] = [mode];\n const ref = value.setup?.checkout?.ref?.trim();\n if (ref) parts.push(ref);\n const worktree = worktreeMode(value);\n parts.push(worktree === \"none\" ? \"in-place\" : `${worktree} worktree`);\n return parts.join(\" · \");\n}\n\nexport function summarizePermissions(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): string {\n const parts: string[] = [value.permissions?.mode || \"default\"];\n const denied = entries.filter(\n (entry) => entry.domain === \"tools\" && entry.mode === \"deny\",\n ).length;\n const off = entries.filter(\n (entry) => entry.domain !== \"tools\" && isDenyMode(entry.mode),\n ).length;\n if (denied > 0) parts.push(`${denied} denied`);\n if (off > 0) parts.push(`${off} off`);\n return parts.join(\" · \");\n}\n\nexport function summarizeEnvironment(value: AISpecRuntimeValue): string {\n const vars = (value.setup?.envVars ?? []).filter((item) =>\n Boolean(item.name?.trim()),\n );\n if (vars.length === 0) return \"No variables\";\n const secrets = vars.filter((item) => {\n if (typeof item.valueFrom === \"string\") {\n return item.valueFrom.trim().startsWith(\"secret://\");\n }\n return Boolean(item.valueFrom?.secretKeyRef);\n }).length;\n const parts = [`${vars.length} var${vars.length !== 1 ? \"s\" : \"\"}`];\n if (secrets > 0) parts.push(`${secrets} secret`);\n return parts.join(\" · \");\n}\n\nexport function summarizeVerify(value: AISpecRuntimeValue): string {\n const verify = value.workflow?.verify;\n if (!verify) return \"No fixture\";\n const parts: string[] = [];\n if (verify.fixture?.trim()) parts.push(\"Fixture\");\n if (verify.scope === \"changed\") parts.push(\"changed files\");\n if (verify.maxIterations != null && verify.maxIterations > 0) {\n parts.push(\n `${verify.maxIterations} iteration${verify.maxIterations !== 1 ? \"s\" : \"\"}`,\n );\n }\n return parts.length > 0 ? parts.join(\" · \") : \"No fixture\";\n}\n\nconst COMMIT_PHASE_SUMMARIES = {\n none: \"Leave uncommitted\",\n turn: \"Commit every turn\",\n agent: \"Commit after the loop\",\n run: \"Commit changes\",\n} as const;\n\nexport function summarizeCommit(value: AISpecRuntimeValue): string {\n const phase = commitPhase(value);\n const summary = COMMIT_PHASE_SUMMARIES[phase];\n return value.workflow?.commits?.[0]?.dryRun\n ? `${summary} · dry run`\n : summary;\n}\n\nexport function summarizeCLIArgs(value: AISpecRuntimeValue): string {\n const flags = Object.entries(value.cliArgs ?? {}).filter(\n ([, item]) =>\n item !== undefined &&\n item !== \"\" &&\n item !== false &&\n (!Array.isArray(item) || item.length > 0),\n ).length;\n if (flags === 0) return \"Defaults\";\n return `${flags} flag${flags !== 1 ? \"s\" : \"\"} set`;\n}\n\n// The rail target chip: repo (from checkout URL or local path) plus ref.\nexport function summarizeTarget(value: AISpecRuntimeValue): string | undefined {\n const checkout = value.setup?.checkout;\n const source = checkout?.url?.trim() || checkout?.path?.trim();\n if (!source) return undefined;\n // Split-and-filter instead of `.replace(/\\/+$/, \"\")`: the trailing-slash\n // strip was a polynomial (ReDoS) match on many-`/` inputs. Empty segments\n // from trailing/duplicate slashes are dropped, so the last one is the repo.\n const segments = source.split(\"/\").filter(Boolean);\n const repo = segments[segments.length - 1]?.replace(/\\.git$/, \"\");\n if (!repo) return undefined;\n const ref = checkout?.ref?.trim();\n return ref ? `${repo} · ${ref}` : repo;\n}\n"],"names":[],"mappings":";;AAiHO,SAAS,gBAAgB,OAA+C;;AAC7E,QAAM,YAAW,WAAM,UAAN,mBAAa;AAC9B,QAAM,WAAS,0CAAU,QAAV,mBAAe,aAAU,0CAAU,SAAV,mBAAgB;AACxD,MAAI,CAAC,OAAQ,QAAO;AAIpB,QAAM,WAAW,OAAO,MAAM,GAAG,EAAE,OAAO,OAAO;AACjD,QAAM,QAAO,cAAS,SAAS,SAAS,CAAC,MAA5B,mBAA+B,QAAQ,UAAU;AAC9D,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,OAAM,0CAAU,QAAV,mBAAe;AAC3B,SAAO,MAAM,GAAG,IAAI,MAAM,GAAG,KAAK;AACpC;;"}
1
+ {"version":3,"file":"summaries.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/summaries.ts"],"sourcesContent":["import type { ChatModel } from \"../../chat/types\";\nimport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nimport { checkoutMode, commitPhase, worktreeMode } from \"./update\";\nimport { isDenyMode, type PermissionListEntry } from \"./permissions-model\";\n\nexport function summarizeModel(\n value: AISpecRuntimeValue,\n models: ChatModel[] = [],\n): string {\n const parts: string[] = [];\n const model = value.model?.trim();\n if (model) {\n parts.push(models.find((m) => m.id === model)?.label ?? model);\n }\n if (value.effort) parts.push(value.effort);\n return parts.length > 0 ? parts.join(\" · \") : \"Default model\";\n}\n\nexport function summarizePrompt(value: AISpecRuntimeValue): string {\n const overrides = [\n value.prompt?.user,\n value.prompt?.system,\n value.prompt?.appendSystem,\n ].filter((text) => Boolean(text?.trim())).length;\n if (overrides === 0) return \"Base prompt only\";\n return `${overrides} override${overrides > 1 ? \"s\" : \"\"} set`;\n}\n\nexport function summarizeWorkspace(value: AISpecRuntimeValue): string {\n const mode = checkoutMode(value);\n if (mode === \"none\") return \"No checkout\";\n const parts: string[] = [mode];\n const ref = value.setup?.checkout?.ref?.trim();\n if (ref) parts.push(ref);\n const worktree = worktreeMode(value);\n parts.push(worktree === \"none\" ? \"in-place\" : `${worktree} worktree`);\n return parts.join(\" · \");\n}\n\nexport function summarizePermissions(\n _value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): string {\n const parts: string[] = [];\n const denied = entries.filter(\n (entry) => entry.domain === \"tools\" && entry.mode === \"deny\",\n ).length;\n const off = entries.filter(\n (entry) => entry.domain !== \"tools\" && isDenyMode(entry.mode),\n ).length;\n if (denied > 0) parts.push(`${denied} denied`);\n if (off > 0) parts.push(`${off} off`);\n return parts.length > 0 ? parts.join(\" · \") : \"No overrides\";\n}\n\nexport function summarizeEnvironment(value: AISpecRuntimeValue): string {\n const vars = (value.setup?.envVars ?? []).filter((item) =>\n Boolean(item.name?.trim()),\n );\n if (vars.length === 0) return \"No variables\";\n const secrets = vars.filter((item) => {\n if (typeof item.valueFrom === \"string\") {\n return item.valueFrom.trim().startsWith(\"secret://\");\n }\n return Boolean(item.valueFrom?.secretKeyRef);\n }).length;\n const parts = [`${vars.length} var${vars.length !== 1 ? \"s\" : \"\"}`];\n if (secrets > 0) parts.push(`${secrets} secret`);\n return parts.join(\" · \");\n}\n\nexport function summarizeVerify(value: AISpecRuntimeValue): string {\n const verify = value.workflow?.verify;\n if (!verify) return \"No fixture\";\n const parts: string[] = [];\n if (verify.fixture?.trim()) parts.push(\"Fixture\");\n if (verify.scope === \"changed\") parts.push(\"changed files\");\n if (verify.maxIterations != null && verify.maxIterations > 0) {\n parts.push(\n `${verify.maxIterations} iteration${verify.maxIterations !== 1 ? \"s\" : \"\"}`,\n );\n }\n return parts.length > 0 ? parts.join(\" · \") : \"No fixture\";\n}\n\nconst COMMIT_PHASE_SUMMARIES = {\n none: \"Leave uncommitted\",\n turn: \"Commit every turn\",\n agent: \"Commit after the loop\",\n run: \"Commit changes\",\n} as const;\n\nexport function summarizeCommit(value: AISpecRuntimeValue): string {\n const phase = commitPhase(value);\n const summary = COMMIT_PHASE_SUMMARIES[phase];\n return value.workflow?.commits?.[0]?.dryRun\n ? `${summary} · dry run`\n : summary;\n}\n\nexport function summarizeCLIArgs(value: AISpecRuntimeValue): string {\n const flags = Object.entries(value.cliArgs ?? {}).filter(\n ([, item]) =>\n item !== undefined &&\n item !== \"\" &&\n item !== false &&\n (!Array.isArray(item) || item.length > 0),\n ).length;\n if (flags === 0) return \"Defaults\";\n return `${flags} flag${flags !== 1 ? \"s\" : \"\"} set`;\n}\n\n// The rail target chip: repo (from checkout URL or local path) plus ref.\nexport function summarizeTarget(value: AISpecRuntimeValue): string | undefined {\n const checkout = value.setup?.checkout;\n const source = checkout?.url?.trim() || checkout?.path?.trim();\n if (!source) return undefined;\n // Split-and-filter instead of `.replace(/\\/+$/, \"\")`: the trailing-slash\n // strip was a polynomial (ReDoS) match on many-`/` inputs. Empty segments\n // from trailing/duplicate slashes are dropped, so the last one is the repo.\n const segments = source.split(\"/\").filter(Boolean);\n const repo = segments[segments.length - 1]?.replace(/\\.git$/, \"\");\n if (!repo) return undefined;\n const ref = checkout?.ref?.trim();\n return ref ? `${repo} · ${ref}` : repo;\n}\n"],"names":[],"mappings":";;AAiHO,SAAS,gBAAgB,OAA+C;;AAC7E,QAAM,YAAW,WAAM,UAAN,mBAAa;AAC9B,QAAM,WAAS,0CAAU,QAAV,mBAAe,aAAU,0CAAU,SAAV,mBAAgB;AACxD,MAAI,CAAC,OAAQ,QAAO;AAIpB,QAAM,WAAW,OAAO,MAAM,GAAG,EAAE,OAAO,OAAO;AACjD,QAAM,QAAO,cAAS,SAAS,SAAS,CAAC,MAA5B,mBAA+B,QAAQ,UAAU;AAC9D,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,OAAM,0CAAU,QAAV,mBAAe;AAC3B,SAAO,MAAM,GAAG,IAAI,MAAM,GAAG,KAAK;AACpC;;"}
@@ -4,7 +4,7 @@ import { PermissionListEntry } from './permissions-model';
4
4
  export declare function summarizeModel(value: AISpecRuntimeValue, models?: ChatModel[]): string;
5
5
  export declare function summarizePrompt(value: AISpecRuntimeValue): string;
6
6
  export declare function summarizeWorkspace(value: AISpecRuntimeValue): string;
7
- export declare function summarizePermissions(value: AISpecRuntimeValue, entries: PermissionListEntry[]): string;
7
+ export declare function summarizePermissions(_value: AISpecRuntimeValue, entries: PermissionListEntry[]): string;
8
8
  export declare function summarizeEnvironment(value: AISpecRuntimeValue): string;
9
9
  export declare function summarizeVerify(value: AISpecRuntimeValue): string;
10
10
  export declare function summarizeCommit(value: AISpecRuntimeValue): string;
@@ -1 +1 @@
1
- {"version":3,"file":"summaries.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/summaries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,wBAAgB,cAAc,CAC5B,KAAK,EAAE,kBAAkB,EACzB,MAAM,GAAE,SAAS,EAAO,GACvB,MAAM,CAQR;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAQjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CASpE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,MAAM,CAWR;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CActE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAYjE;AASD,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAMjE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAUlE;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAY7E"}
1
+ {"version":3,"file":"summaries.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/summaries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,wBAAgB,cAAc,CAC5B,KAAK,EAAE,kBAAkB,EACzB,MAAM,GAAE,SAAS,EAAO,GACvB,MAAM,CAQR;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAQjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CASpE;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,mBAAmB,EAAE,GAC7B,MAAM,CAWR;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CActE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAYjE;AASD,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAMjE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAUlE;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAY7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"summaries.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/summaries.ts"],"sourcesContent":["import type { ChatModel } from \"../../chat/types\";\nimport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nimport { checkoutMode, commitPhase, worktreeMode } from \"./update\";\nimport { isDenyMode, type PermissionListEntry } from \"./permissions-model\";\n\nexport function summarizeModel(\n value: AISpecRuntimeValue,\n models: ChatModel[] = [],\n): string {\n const parts: string[] = [];\n const model = value.model?.trim();\n if (model) {\n parts.push(models.find((m) => m.id === model)?.label ?? model);\n }\n if (value.effort) parts.push(value.effort);\n return parts.length > 0 ? parts.join(\" · \") : \"Default model\";\n}\n\nexport function summarizePrompt(value: AISpecRuntimeValue): string {\n const overrides = [\n value.prompt?.user,\n value.prompt?.system,\n value.prompt?.appendSystem,\n ].filter((text) => Boolean(text?.trim())).length;\n if (overrides === 0) return \"Base prompt only\";\n return `${overrides} override${overrides > 1 ? \"s\" : \"\"} set`;\n}\n\nexport function summarizeWorkspace(value: AISpecRuntimeValue): string {\n const mode = checkoutMode(value);\n if (mode === \"none\") return \"No checkout\";\n const parts: string[] = [mode];\n const ref = value.setup?.checkout?.ref?.trim();\n if (ref) parts.push(ref);\n const worktree = worktreeMode(value);\n parts.push(worktree === \"none\" ? \"in-place\" : `${worktree} worktree`);\n return parts.join(\" · \");\n}\n\nexport function summarizePermissions(\n value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): string {\n const parts: string[] = [value.permissions?.mode || \"default\"];\n const denied = entries.filter(\n (entry) => entry.domain === \"tools\" && entry.mode === \"deny\",\n ).length;\n const off = entries.filter(\n (entry) => entry.domain !== \"tools\" && isDenyMode(entry.mode),\n ).length;\n if (denied > 0) parts.push(`${denied} denied`);\n if (off > 0) parts.push(`${off} off`);\n return parts.join(\" · \");\n}\n\nexport function summarizeEnvironment(value: AISpecRuntimeValue): string {\n const vars = (value.setup?.envVars ?? []).filter((item) =>\n Boolean(item.name?.trim()),\n );\n if (vars.length === 0) return \"No variables\";\n const secrets = vars.filter((item) => {\n if (typeof item.valueFrom === \"string\") {\n return item.valueFrom.trim().startsWith(\"secret://\");\n }\n return Boolean(item.valueFrom?.secretKeyRef);\n }).length;\n const parts = [`${vars.length} var${vars.length !== 1 ? \"s\" : \"\"}`];\n if (secrets > 0) parts.push(`${secrets} secret`);\n return parts.join(\" · \");\n}\n\nexport function summarizeVerify(value: AISpecRuntimeValue): string {\n const verify = value.workflow?.verify;\n if (!verify) return \"No fixture\";\n const parts: string[] = [];\n if (verify.fixture?.trim()) parts.push(\"Fixture\");\n if (verify.scope === \"changed\") parts.push(\"changed files\");\n if (verify.maxIterations != null && verify.maxIterations > 0) {\n parts.push(\n `${verify.maxIterations} iteration${verify.maxIterations !== 1 ? \"s\" : \"\"}`,\n );\n }\n return parts.length > 0 ? parts.join(\" · \") : \"No fixture\";\n}\n\nconst COMMIT_PHASE_SUMMARIES = {\n none: \"Leave uncommitted\",\n turn: \"Commit every turn\",\n agent: \"Commit after the loop\",\n run: \"Commit changes\",\n} as const;\n\nexport function summarizeCommit(value: AISpecRuntimeValue): string {\n const phase = commitPhase(value);\n const summary = COMMIT_PHASE_SUMMARIES[phase];\n return value.workflow?.commits?.[0]?.dryRun\n ? `${summary} · dry run`\n : summary;\n}\n\nexport function summarizeCLIArgs(value: AISpecRuntimeValue): string {\n const flags = Object.entries(value.cliArgs ?? {}).filter(\n ([, item]) =>\n item !== undefined &&\n item !== \"\" &&\n item !== false &&\n (!Array.isArray(item) || item.length > 0),\n ).length;\n if (flags === 0) return \"Defaults\";\n return `${flags} flag${flags !== 1 ? \"s\" : \"\"} set`;\n}\n\n// The rail target chip: repo (from checkout URL or local path) plus ref.\nexport function summarizeTarget(value: AISpecRuntimeValue): string | undefined {\n const checkout = value.setup?.checkout;\n const source = checkout?.url?.trim() || checkout?.path?.trim();\n if (!source) return undefined;\n // Split-and-filter instead of `.replace(/\\/+$/, \"\")`: the trailing-slash\n // strip was a polynomial (ReDoS) match on many-`/` inputs. Empty segments\n // from trailing/duplicate slashes are dropped, so the last one is the repo.\n const segments = source.split(\"/\").filter(Boolean);\n const repo = segments[segments.length - 1]?.replace(/\\.git$/, \"\");\n if (!repo) return undefined;\n const ref = checkout?.ref?.trim();\n return ref ? `${repo} · ${ref}` : repo;\n}\n"],"names":[],"mappings":"AAiHO,SAAS,gBAAgB,OAA+C;AAAxE;AACL,QAAM,YAAW,WAAM,UAAN,mBAAa;AAC9B,QAAM,WAAS,0CAAU,QAAV,mBAAe,aAAU,0CAAU,SAAV,mBAAgB;AACxD,MAAI,CAAC,OAAQ,QAAO;AAIpB,QAAM,WAAW,OAAO,MAAM,GAAG,EAAE,OAAO,OAAO;AACjD,QAAM,QAAO,cAAS,SAAS,SAAS,CAAC,MAA5B,mBAA+B,QAAQ,UAAU;AAC9D,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,OAAM,0CAAU,QAAV,mBAAe;AAC3B,SAAO,MAAM,GAAG,IAAI,MAAM,GAAG,KAAK;AACpC;"}
1
+ {"version":3,"file":"summaries.js","sources":["../../../../src/data/ai/SpecRuntimeEditor/summaries.ts"],"sourcesContent":["import type { ChatModel } from \"../../chat/types\";\nimport type { AISpecRuntimeValue } from \"../SpecRuntimeEditor.model\";\nimport { checkoutMode, commitPhase, worktreeMode } from \"./update\";\nimport { isDenyMode, type PermissionListEntry } from \"./permissions-model\";\n\nexport function summarizeModel(\n value: AISpecRuntimeValue,\n models: ChatModel[] = [],\n): string {\n const parts: string[] = [];\n const model = value.model?.trim();\n if (model) {\n parts.push(models.find((m) => m.id === model)?.label ?? model);\n }\n if (value.effort) parts.push(value.effort);\n return parts.length > 0 ? parts.join(\" · \") : \"Default model\";\n}\n\nexport function summarizePrompt(value: AISpecRuntimeValue): string {\n const overrides = [\n value.prompt?.user,\n value.prompt?.system,\n value.prompt?.appendSystem,\n ].filter((text) => Boolean(text?.trim())).length;\n if (overrides === 0) return \"Base prompt only\";\n return `${overrides} override${overrides > 1 ? \"s\" : \"\"} set`;\n}\n\nexport function summarizeWorkspace(value: AISpecRuntimeValue): string {\n const mode = checkoutMode(value);\n if (mode === \"none\") return \"No checkout\";\n const parts: string[] = [mode];\n const ref = value.setup?.checkout?.ref?.trim();\n if (ref) parts.push(ref);\n const worktree = worktreeMode(value);\n parts.push(worktree === \"none\" ? \"in-place\" : `${worktree} worktree`);\n return parts.join(\" · \");\n}\n\nexport function summarizePermissions(\n _value: AISpecRuntimeValue,\n entries: PermissionListEntry[],\n): string {\n const parts: string[] = [];\n const denied = entries.filter(\n (entry) => entry.domain === \"tools\" && entry.mode === \"deny\",\n ).length;\n const off = entries.filter(\n (entry) => entry.domain !== \"tools\" && isDenyMode(entry.mode),\n ).length;\n if (denied > 0) parts.push(`${denied} denied`);\n if (off > 0) parts.push(`${off} off`);\n return parts.length > 0 ? parts.join(\" · \") : \"No overrides\";\n}\n\nexport function summarizeEnvironment(value: AISpecRuntimeValue): string {\n const vars = (value.setup?.envVars ?? []).filter((item) =>\n Boolean(item.name?.trim()),\n );\n if (vars.length === 0) return \"No variables\";\n const secrets = vars.filter((item) => {\n if (typeof item.valueFrom === \"string\") {\n return item.valueFrom.trim().startsWith(\"secret://\");\n }\n return Boolean(item.valueFrom?.secretKeyRef);\n }).length;\n const parts = [`${vars.length} var${vars.length !== 1 ? \"s\" : \"\"}`];\n if (secrets > 0) parts.push(`${secrets} secret`);\n return parts.join(\" · \");\n}\n\nexport function summarizeVerify(value: AISpecRuntimeValue): string {\n const verify = value.workflow?.verify;\n if (!verify) return \"No fixture\";\n const parts: string[] = [];\n if (verify.fixture?.trim()) parts.push(\"Fixture\");\n if (verify.scope === \"changed\") parts.push(\"changed files\");\n if (verify.maxIterations != null && verify.maxIterations > 0) {\n parts.push(\n `${verify.maxIterations} iteration${verify.maxIterations !== 1 ? \"s\" : \"\"}`,\n );\n }\n return parts.length > 0 ? parts.join(\" · \") : \"No fixture\";\n}\n\nconst COMMIT_PHASE_SUMMARIES = {\n none: \"Leave uncommitted\",\n turn: \"Commit every turn\",\n agent: \"Commit after the loop\",\n run: \"Commit changes\",\n} as const;\n\nexport function summarizeCommit(value: AISpecRuntimeValue): string {\n const phase = commitPhase(value);\n const summary = COMMIT_PHASE_SUMMARIES[phase];\n return value.workflow?.commits?.[0]?.dryRun\n ? `${summary} · dry run`\n : summary;\n}\n\nexport function summarizeCLIArgs(value: AISpecRuntimeValue): string {\n const flags = Object.entries(value.cliArgs ?? {}).filter(\n ([, item]) =>\n item !== undefined &&\n item !== \"\" &&\n item !== false &&\n (!Array.isArray(item) || item.length > 0),\n ).length;\n if (flags === 0) return \"Defaults\";\n return `${flags} flag${flags !== 1 ? \"s\" : \"\"} set`;\n}\n\n// The rail target chip: repo (from checkout URL or local path) plus ref.\nexport function summarizeTarget(value: AISpecRuntimeValue): string | undefined {\n const checkout = value.setup?.checkout;\n const source = checkout?.url?.trim() || checkout?.path?.trim();\n if (!source) return undefined;\n // Split-and-filter instead of `.replace(/\\/+$/, \"\")`: the trailing-slash\n // strip was a polynomial (ReDoS) match on many-`/` inputs. Empty segments\n // from trailing/duplicate slashes are dropped, so the last one is the repo.\n const segments = source.split(\"/\").filter(Boolean);\n const repo = segments[segments.length - 1]?.replace(/\\.git$/, \"\");\n if (!repo) return undefined;\n const ref = checkout?.ref?.trim();\n return ref ? `${repo} · ${ref}` : repo;\n}\n"],"names":[],"mappings":"AAiHO,SAAS,gBAAgB,OAA+C;AAAxE;AACL,QAAM,YAAW,WAAM,UAAN,mBAAa;AAC9B,QAAM,WAAS,0CAAU,QAAV,mBAAe,aAAU,0CAAU,SAAV,mBAAgB;AACxD,MAAI,CAAC,OAAQ,QAAO;AAIpB,QAAM,WAAW,OAAO,MAAM,GAAG,EAAE,OAAO,OAAO;AACjD,QAAM,QAAO,cAAS,SAAS,SAAS,CAAC,MAA5B,mBAA+B,QAAQ,UAAU;AAC9D,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,OAAM,0CAAU,QAAV,mBAAe;AAC3B,SAAO,MAAM,GAAG,IAAI,MAAM,GAAG,KAAK;AACpC;"}
@@ -13,7 +13,7 @@ const SPEC_RUNTIME_SECTIONS = [
13
13
  {
14
14
  id: "model",
15
15
  label: "Model",
16
- hint: "Which model runs, how hard it reasons, and its budget ceiling.",
16
+ hint: "Which model runs, how it reasons, what it loads, and its budget ceiling.",
17
17
  icon: UiRobotAi.UiRobotAi,
18
18
  iconClassName: "text-indigo-500"
19
19
  },
@@ -44,7 +44,7 @@ const SPEC_RUNTIME_SECTIONS = [
44
44
  {
45
45
  id: "permissions",
46
46
  label: "Permissions",
47
- hint: "What the agent may do without asking. Overrides the preset above.",
47
+ hint: "Tool, MCP, and plugin access layered over the selected posture.",
48
48
  icon: UiShield.UiShield,
49
49
  iconClassName: "text-emerald-600 dark:text-emerald-400"
50
50
  },
@@ -76,10 +76,5 @@ const SPEC_RUNTIME_SECTIONS = [
76
76
  icon: UiTerminal.UiTerminal
77
77
  }
78
78
  ];
79
- function sectionNumber(id) {
80
- const index = SPEC_RUNTIME_SECTIONS.findIndex((section) => section.id === id);
81
- return String(index + 1).padStart(2, "0");
82
- }
83
79
  exports.SPEC_RUNTIME_SECTIONS = SPEC_RUNTIME_SECTIONS;
84
- exports.sectionNumber = sectionNumber;
85
80
  //# sourceMappingURL=types.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/types.ts"],"sourcesContent":["import type {\n KeyPreview,\n SecretKind,\n SecretResource,\n} from \"../../../components/SecretKeySelector\";\nimport type { StaticIconComponent } from \"../../Icon\";\nimport type { JsonSchemaObject } from \"../../../components/json-schema-form-types\";\nimport type { SpecSandboxCapability } from \"../SpecRuntimeEditor.model\";\nimport {\n UiBox,\n UiBraces,\n UiFileText,\n UiGitCommit,\n UiGitBranch,\n UiRobotAi,\n UiSealCheck,\n UiShield,\n UiTerminal,\n} from \"../../../icons\";\n\n/**\n * The sandbox surface a host serves alongside the spec schema (captain:\n * `GET /api/captain/ai/prompt/schema` → `sandboxes`, also\n * `GET /api/captain/sandboxes`). It is a projection of the adapter descriptor\n * table, so the editor can explain each choice and refuse invalid pairings\n * instead of failing at dispatch.\n */\nexport type SpecRuntimeSandboxCatalog = {\n /** The configured `sandbox.default` selector, when one is set. */\n default?: string | undefined;\n kinds?: SpecRuntimeSandboxKind[] | undefined;\n /**\n * Configured backends whose declared kind does not resolve to an adapter.\n * Reported rather than dropped, so a misconfigured backend reads as wrong\n * instead of missing — but never offered as a selectable choice.\n */\n invalid?: SpecRuntimeSandboxBackend[] | undefined;\n};\n\nexport type SpecRuntimeSandboxKind = {\n kind: string;\n description?: string | undefined;\n /** Host-owned schema for a named backend's adapter-specific options. */\n configSchema?: JsonSchemaObject | undefined;\n /** True when `sandbox.default` names this bare kind. */\n default?: boolean | undefined;\n capabilities?: SpecSandboxCapability[] | undefined;\n /** Runtime modes this adapter can serve; a pairing outside it is an error. */\n modes?: string[] | undefined;\n backends?: SpecRuntimeSandboxBackend[] | undefined;\n};\n\nexport type SpecRuntimeSandboxBackend = {\n name: string;\n kind?: string | undefined;\n /** True when `sandbox.default` names this backend. */\n default?: boolean | undefined;\n /** The endpoint a git-agent backend dispatches through. */\n url?: string | undefined;\n agents?: SpecRuntimeSandboxAgent[] | undefined;\n /** Why this backend cannot be selected; set only on `invalid` entries. */\n error?: string | undefined;\n};\n\nexport type SpecRuntimeSandboxAgent = {\n name: string;\n /** \"enrolled\", or \"pending until <expiry>\" for an unclaimed join token. */\n status?: string | undefined;\n /** The host has every transport-specific credential needed to run here. */\n dispatchable: boolean;\n /** Safe diagnostic for a non-dispatchable agent; never a credential path. */\n dispatchIssue?: string | undefined;\n};\n\nexport type SpecRuntimeSecretSelectorConfig = {\n loadResources: (kind: SecretKind) => Promise<SecretResource[]>;\n loadKeyPreview: (kind: SecretKind, name: string) => Promise<KeyPreview[]>;\n strict?: boolean | undefined;\n allowLiteral?: boolean | undefined;\n};\n\nexport type SpecSectionId =\n | \"model\"\n | \"prompt\"\n | \"workspace\"\n | \"sandbox\"\n | \"permissions\"\n | \"environment\"\n | \"verify\"\n | \"commit\"\n | \"cli\";\n\nexport type SpecSectionMeta = {\n id: SpecSectionId;\n label: string;\n hint: string;\n icon: StaticIconComponent;\n iconClassName?: string | undefined;\n};\n\n// Rail/nav order; section numbers (\"01\"…) derive from the index. The \"cli\"\n// section only renders when the host supplies a cliOptions schema.\nexport const SPEC_RUNTIME_SECTIONS: SpecSectionMeta[] = [\n {\n id: \"model\",\n label: \"Model\",\n hint: \"Which model runs, how hard it reasons, and its budget ceiling.\",\n icon: UiRobotAi,\n iconClassName: \"text-indigo-500\",\n },\n {\n id: \"prompt\",\n label: \"Prompt\",\n hint: \"Overrides layered on top of the base agent prompt.\",\n icon: UiFileText,\n iconClassName: \"text-primary\",\n },\n {\n id: \"workspace\",\n label: \"Workspace\",\n hint: \"Where the agent checks out code and runs.\",\n icon: UiGitBranch,\n iconClassName: \"text-sky-500\",\n },\n // Adjacent to Workspace on purpose: a sandbox declaring `isolate-workspace`\n // materializes its own tree, so it conflicts with a worktree or checkout set\n // in the section directly above.\n {\n id: \"sandbox\",\n label: \"Sandbox\",\n hint: \"What confines the run, and where it executes.\",\n icon: UiBox,\n iconClassName: \"text-amber-500\",\n },\n {\n id: \"permissions\",\n label: \"Permissions\",\n hint: \"What the agent may do without asking. Overrides the preset above.\",\n icon: UiShield,\n iconClassName: \"text-emerald-600 dark:text-emerald-400\",\n },\n {\n id: \"environment\",\n label: \"Environment\",\n hint: \"Variables and secrets injected before the run.\",\n icon: UiBraces,\n iconClassName: \"text-amber-600 dark:text-amber-400\",\n },\n {\n id: \"verify\",\n label: \"Verify\",\n hint: \"How the work is checked before finalization.\",\n icon: UiSealCheck,\n iconClassName: \"text-emerald-600 dark:text-emerald-400\",\n },\n {\n id: \"commit\",\n label: \"Commit\",\n hint: \"Whether passing work is committed, previewed, or left as changes.\",\n icon: UiGitCommit,\n iconClassName: \"text-violet-600 dark:text-violet-400\",\n },\n {\n id: \"cli\",\n label: \"CLI flags\",\n hint: \"Extra interactive CLI flags passed straight to the agent binary.\",\n icon: UiTerminal,\n },\n];\n\nexport function sectionNumber(id: SpecSectionId): string {\n const index = SPEC_RUNTIME_SECTIONS.findIndex((section) => section.id === id);\n return String(index + 1).padStart(2, \"0\");\n}\n"],"names":["UiRobotAi","UiFileText","UiGitBranch","UiBox","UiShield","UiBraces","UiSealCheck","UiGitCommit","UiTerminal"],"mappings":";;;;;;;;;;;AAsGO,MAAM,wBAA2C;AAAA,EACtD;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMA,UAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,WAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,YAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,MAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,SAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,SAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,YAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,YAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,WAAAA;AAAAA,EAAA;AAEV;AAEO,SAAS,cAAc,IAA2B;AACvD,QAAM,QAAQ,sBAAsB,UAAU,CAAC,YAAY,QAAQ,OAAO,EAAE;AAC5E,SAAO,OAAO,QAAQ,CAAC,EAAE,SAAS,GAAG,GAAG;AAC1C;;;"}
1
+ {"version":3,"file":"types.cjs","sources":["../../../../src/data/ai/SpecRuntimeEditor/types.ts"],"sourcesContent":["import type {\n KeyPreview,\n SecretKind,\n SecretResource,\n} from \"../../../components/SecretKeySelector\";\nimport type { StaticIconComponent } from \"../../Icon\";\nimport type { JsonSchemaObject } from \"../../../components/json-schema-form-types\";\nimport type { SpecSandboxCapability } from \"../SpecRuntimeEditor.model\";\nimport {\n UiBox,\n UiBraces,\n UiFileText,\n UiGitCommit,\n UiGitBranch,\n UiRobotAi,\n UiSealCheck,\n UiShield,\n UiTerminal,\n} from \"../../../icons\";\n\n/**\n * The sandbox surface a host serves alongside the spec schema (captain:\n * `GET /api/captain/ai/prompt/schema` → `sandboxes`, also\n * `GET /api/captain/sandboxes`). It is a projection of the adapter descriptor\n * table, so the editor can explain each choice and refuse invalid pairings\n * instead of failing at dispatch.\n */\nexport type SpecRuntimeSandboxCatalog = {\n /** The configured `sandbox.default` selector, when one is set. */\n default?: string | undefined;\n kinds?: SpecRuntimeSandboxKind[] | undefined;\n /**\n * Configured backends whose declared kind does not resolve to an adapter.\n * Reported rather than dropped, so a misconfigured backend reads as wrong\n * instead of missing — but never offered as a selectable choice.\n */\n invalid?: SpecRuntimeSandboxBackend[] | undefined;\n};\n\nexport type SpecRuntimeSandboxKind = {\n kind: string;\n description?: string | undefined;\n /** Host-owned schema for a named backend's adapter-specific options. */\n configSchema?: JsonSchemaObject | undefined;\n /** True when `sandbox.default` names this bare kind. */\n default?: boolean | undefined;\n capabilities?: SpecSandboxCapability[] | undefined;\n /** Runtime modes this adapter can serve; a pairing outside it is an error. */\n modes?: string[] | undefined;\n backends?: SpecRuntimeSandboxBackend[] | undefined;\n};\n\nexport type SpecRuntimeSandboxBackend = {\n name: string;\n kind?: string | undefined;\n /** True when `sandbox.default` names this backend. */\n default?: boolean | undefined;\n /** The endpoint a git-agent backend dispatches through. */\n url?: string | undefined;\n agents?: SpecRuntimeSandboxAgent[] | undefined;\n /** Why this backend cannot be selected; set only on `invalid` entries. */\n error?: string | undefined;\n};\n\nexport type SpecRuntimeSandboxAgent = {\n name: string;\n /** \"enrolled\", or \"pending until <expiry>\" for an unclaimed join token. */\n status?: string | undefined;\n /** The host has every transport-specific credential needed to run here. */\n dispatchable: boolean;\n /** Safe diagnostic for a non-dispatchable agent; never a credential path. */\n dispatchIssue?: string | undefined;\n};\n\nexport type SpecRuntimeSecretSelectorConfig = {\n loadResources: (kind: SecretKind) => Promise<SecretResource[]>;\n loadKeyPreview: (kind: SecretKind, name: string) => Promise<KeyPreview[]>;\n strict?: boolean | undefined;\n allowLiteral?: boolean | undefined;\n};\n\nexport type SpecSectionId =\n | \"model\"\n | \"prompt\"\n | \"workspace\"\n | \"sandbox\"\n | \"permissions\"\n | \"environment\"\n | \"verify\"\n | \"commit\"\n | \"cli\";\n\nexport type SpecSectionMeta = {\n id: SpecSectionId;\n label: string;\n hint: string;\n icon: StaticIconComponent;\n iconClassName?: string | undefined;\n};\n\n// Rail/nav order; section numbers (\"01\"…) derive from the index. The \"cli\"\n// section only renders when the host supplies a cliOptions schema.\nexport const SPEC_RUNTIME_SECTIONS: SpecSectionMeta[] = [\n {\n id: \"model\",\n label: \"Model\",\n hint: \"Which model runs, how it reasons, what it loads, and its budget ceiling.\",\n icon: UiRobotAi,\n iconClassName: \"text-indigo-500\",\n },\n {\n id: \"prompt\",\n label: \"Prompt\",\n hint: \"Overrides layered on top of the base agent prompt.\",\n icon: UiFileText,\n iconClassName: \"text-primary\",\n },\n {\n id: \"workspace\",\n label: \"Workspace\",\n hint: \"Where the agent checks out code and runs.\",\n icon: UiGitBranch,\n iconClassName: \"text-sky-500\",\n },\n // Adjacent to Workspace on purpose: a sandbox declaring `isolate-workspace`\n // materializes its own tree, so it conflicts with a worktree or checkout set\n // in the section directly above.\n {\n id: \"sandbox\",\n label: \"Sandbox\",\n hint: \"What confines the run, and where it executes.\",\n icon: UiBox,\n iconClassName: \"text-amber-500\",\n },\n {\n id: \"permissions\",\n label: \"Permissions\",\n hint: \"Tool, MCP, and plugin access layered over the selected posture.\",\n icon: UiShield,\n iconClassName: \"text-emerald-600 dark:text-emerald-400\",\n },\n {\n id: \"environment\",\n label: \"Environment\",\n hint: \"Variables and secrets injected before the run.\",\n icon: UiBraces,\n iconClassName: \"text-amber-600 dark:text-amber-400\",\n },\n {\n id: \"verify\",\n label: \"Verify\",\n hint: \"How the work is checked before finalization.\",\n icon: UiSealCheck,\n iconClassName: \"text-emerald-600 dark:text-emerald-400\",\n },\n {\n id: \"commit\",\n label: \"Commit\",\n hint: \"Whether passing work is committed, previewed, or left as changes.\",\n icon: UiGitCommit,\n iconClassName: \"text-violet-600 dark:text-violet-400\",\n },\n {\n id: \"cli\",\n label: \"CLI flags\",\n hint: \"Extra interactive CLI flags passed straight to the agent binary.\",\n icon: UiTerminal,\n },\n];\n"],"names":["UiRobotAi","UiFileText","UiGitBranch","UiBox","UiShield","UiBraces","UiSealCheck","UiGitCommit","UiTerminal"],"mappings":";;;;;;;;;;;AAsGO,MAAM,wBAA2C;AAAA,EACtD;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMA,UAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,WAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,YAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,MAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,SAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,SAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,YAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,YAAAA;AAAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC,WAAAA;AAAAA,EAAA;AAEV;;"}
@@ -67,5 +67,4 @@ export type SpecSectionMeta = {
67
67
  iconClassName?: string | undefined;
68
68
  };
69
69
  export declare const SPEC_RUNTIME_SECTIONS: SpecSectionMeta[];
70
- export declare function sectionNumber(id: SpecSectionId): string;
71
70
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/data/ai/SpecRuntimeEditor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAaxE;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC7C;;;;OAIG;IACH,OAAO,CAAC,EAAE,yBAAyB,EAAE,GAAG,SAAS,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,wEAAwE;IACxE,YAAY,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC5C,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACnD,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,yBAAyB,EAAE,GAAG,SAAS,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,uBAAuB,EAAE,GAAG,SAAS,CAAC;IAC/C,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,SAAS,GACT,aAAa,GACb,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAIF,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAkElD,CAAC"}
@@ -11,7 +11,7 @@ const SPEC_RUNTIME_SECTIONS = [
11
11
  {
12
12
  id: "model",
13
13
  label: "Model",
14
- hint: "Which model runs, how hard it reasons, and its budget ceiling.",
14
+ hint: "Which model runs, how it reasons, what it loads, and its budget ceiling.",
15
15
  icon: UiRobotAi,
16
16
  iconClassName: "text-indigo-500"
17
17
  },
@@ -42,7 +42,7 @@ const SPEC_RUNTIME_SECTIONS = [
42
42
  {
43
43
  id: "permissions",
44
44
  label: "Permissions",
45
- hint: "What the agent may do without asking. Overrides the preset above.",
45
+ hint: "Tool, MCP, and plugin access layered over the selected posture.",
46
46
  icon: UiShield,
47
47
  iconClassName: "text-emerald-600 dark:text-emerald-400"
48
48
  },
@@ -74,12 +74,7 @@ const SPEC_RUNTIME_SECTIONS = [
74
74
  icon: UiTerminal
75
75
  }
76
76
  ];
77
- function sectionNumber(id) {
78
- const index = SPEC_RUNTIME_SECTIONS.findIndex((section) => section.id === id);
79
- return String(index + 1).padStart(2, "0");
80
- }
81
77
  export {
82
- SPEC_RUNTIME_SECTIONS,
83
- sectionNumber
78
+ SPEC_RUNTIME_SECTIONS
84
79
  };
85
80
  //# sourceMappingURL=types.js.map