@flanksource/clicky-ui 0.3.40 → 0.3.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (759) hide show
  1. package/README.md +24 -0
  2. package/dist/ai.cjs +14 -0
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +14 -0
  5. package/dist/ai.js.map +1 -1
  6. package/dist/comments/CommentCard.cjs +3 -1
  7. package/dist/comments/CommentCard.cjs.map +1 -1
  8. package/dist/comments/CommentCard.d.ts.map +1 -1
  9. package/dist/comments/CommentCard.js +4 -2
  10. package/dist/comments/CommentCard.js.map +1 -1
  11. package/dist/comments/CommentCardParts.cjs +16 -0
  12. package/dist/comments/CommentCardParts.cjs.map +1 -1
  13. package/dist/comments/CommentCardParts.d.ts +4 -1
  14. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  15. package/dist/comments/CommentCardParts.js +16 -0
  16. package/dist/comments/CommentCardParts.js.map +1 -1
  17. package/dist/comments/comment-types.cjs.map +1 -1
  18. package/dist/comments/comment-types.d.ts +4 -0
  19. package/dist/comments/comment-types.d.ts.map +1 -1
  20. package/dist/comments/comment-types.js.map +1 -1
  21. package/dist/components/AccordionList.cjs +5 -1
  22. package/dist/components/AccordionList.cjs.map +1 -1
  23. package/dist/components/AccordionList.d.ts +3 -1
  24. package/dist/components/AccordionList.d.ts.map +1 -1
  25. package/dist/components/AccordionList.js +5 -1
  26. package/dist/components/AccordionList.js.map +1 -1
  27. package/dist/components/Combobox.cjs +54 -8
  28. package/dist/components/Combobox.cjs.map +1 -1
  29. package/dist/components/Combobox.d.ts.map +1 -1
  30. package/dist/components/Combobox.js +56 -10
  31. package/dist/components/Combobox.js.map +1 -1
  32. package/dist/components/ComboboxMenu.cjs +139 -113
  33. package/dist/components/ComboboxMenu.cjs.map +1 -1
  34. package/dist/components/ComboboxMenu.d.ts +3 -1
  35. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  36. package/dist/components/ComboboxMenu.js +139 -113
  37. package/dist/components/ComboboxMenu.js.map +1 -1
  38. package/dist/components/ComboboxMenuTrigger.cjs +87 -0
  39. package/dist/components/ComboboxMenuTrigger.cjs.map +1 -0
  40. package/dist/components/ComboboxMenuTrigger.d.ts +23 -0
  41. package/dist/components/ComboboxMenuTrigger.d.ts.map +1 -0
  42. package/dist/components/ComboboxMenuTrigger.js +87 -0
  43. package/dist/components/ComboboxMenuTrigger.js.map +1 -0
  44. package/dist/components/JsonSchemaForm.cjs +39 -11
  45. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  46. package/dist/components/JsonSchemaForm.d.ts +1 -1
  47. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  48. package/dist/components/JsonSchemaForm.js +38 -10
  49. package/dist/components/JsonSchemaForm.js.map +1 -1
  50. package/dist/components/SegmentedControl.cjs +20 -3
  51. package/dist/components/SegmentedControl.cjs.map +1 -1
  52. package/dist/components/SegmentedControl.d.ts +11 -0
  53. package/dist/components/SegmentedControl.d.ts.map +1 -1
  54. package/dist/components/SegmentedControl.js +21 -4
  55. package/dist/components/SegmentedControl.js.map +1 -1
  56. package/dist/components/combobox-types.d.ts +8 -0
  57. package/dist/components/combobox-types.d.ts.map +1 -1
  58. package/dist/components/json-schema-form-accordion-array.cjs +3 -1
  59. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  60. package/dist/components/json-schema-form-accordion-array.d.ts +4 -1
  61. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  62. package/dist/components/json-schema-form-accordion-array.js +3 -1
  63. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  64. package/dist/components/json-schema-form-array-view.cjs +63 -0
  65. package/dist/components/json-schema-form-array-view.cjs.map +1 -0
  66. package/dist/components/json-schema-form-array-view.d.ts +21 -0
  67. package/dist/components/json-schema-form-array-view.d.ts.map +1 -0
  68. package/dist/components/json-schema-form-array-view.js +63 -0
  69. package/dist/components/json-schema-form-array-view.js.map +1 -0
  70. package/dist/components/json-schema-form-array.cjs +3 -7
  71. package/dist/components/json-schema-form-array.cjs.map +1 -1
  72. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  73. package/dist/components/json-schema-form-array.js +3 -7
  74. package/dist/components/json-schema-form-array.js.map +1 -1
  75. package/dist/components/json-schema-form-conditionals.cjs +67 -0
  76. package/dist/components/json-schema-form-conditionals.cjs.map +1 -0
  77. package/dist/components/json-schema-form-conditionals.d.ts +9 -0
  78. package/dist/components/json-schema-form-conditionals.d.ts.map +1 -0
  79. package/dist/components/json-schema-form-conditionals.js +67 -0
  80. package/dist/components/json-schema-form-conditionals.js.map +1 -0
  81. package/dist/components/json-schema-form-debug-badge.cjs +108 -0
  82. package/dist/components/json-schema-form-debug-badge.cjs.map +1 -0
  83. package/dist/components/json-schema-form-debug-badge.d.ts +10 -0
  84. package/dist/components/json-schema-form-debug-badge.d.ts.map +1 -0
  85. package/dist/components/json-schema-form-debug-badge.js +108 -0
  86. package/dist/components/json-schema-form-debug-badge.js.map +1 -0
  87. package/dist/components/json-schema-form-debug-glyph-map.cjs +129 -0
  88. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -0
  89. package/dist/components/json-schema-form-debug-glyph-map.d.ts +20 -0
  90. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -0
  91. package/dist/components/json-schema-form-debug-glyph-map.js +129 -0
  92. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -0
  93. package/dist/components/json-schema-form-debug-glyph.cjs +13 -0
  94. package/dist/components/json-schema-form-debug-glyph.cjs.map +1 -0
  95. package/dist/components/json-schema-form-debug-glyph.d.ts +6 -0
  96. package/dist/components/json-schema-form-debug-glyph.d.ts.map +1 -0
  97. package/dist/components/json-schema-form-debug-glyph.js +13 -0
  98. package/dist/components/json-schema-form-debug-glyph.js.map +1 -0
  99. package/dist/components/json-schema-form-debug-groups.cjs +56 -0
  100. package/dist/components/json-schema-form-debug-groups.cjs.map +1 -0
  101. package/dist/components/json-schema-form-debug-groups.d.ts +8 -0
  102. package/dist/components/json-schema-form-debug-groups.d.ts.map +1 -0
  103. package/dist/components/json-schema-form-debug-groups.js +56 -0
  104. package/dist/components/json-schema-form-debug-groups.js.map +1 -0
  105. package/dist/components/json-schema-form-debug-keywords.cjs +159 -0
  106. package/dist/components/json-schema-form-debug-keywords.cjs.map +1 -0
  107. package/dist/components/json-schema-form-debug-keywords.d.ts +6 -0
  108. package/dist/components/json-schema-form-debug-keywords.d.ts.map +1 -0
  109. package/dist/components/json-schema-form-debug-keywords.js +159 -0
  110. package/dist/components/json-schema-form-debug-keywords.js.map +1 -0
  111. package/dist/components/json-schema-form-debug-listeners.cjs +102 -0
  112. package/dist/components/json-schema-form-debug-listeners.cjs.map +1 -0
  113. package/dist/components/json-schema-form-debug-listeners.d.ts +6 -0
  114. package/dist/components/json-schema-form-debug-listeners.d.ts.map +1 -0
  115. package/dist/components/json-schema-form-debug-listeners.js +102 -0
  116. package/dist/components/json-schema-form-debug-listeners.js.map +1 -0
  117. package/dist/components/json-schema-form-debug.cjs +31 -0
  118. package/dist/components/json-schema-form-debug.cjs.map +1 -0
  119. package/dist/components/json-schema-form-debug.d.ts +11 -0
  120. package/dist/components/json-schema-form-debug.d.ts.map +1 -0
  121. package/dist/components/json-schema-form-debug.js +31 -0
  122. package/dist/components/json-schema-form-debug.js.map +1 -0
  123. package/dist/components/json-schema-form-defaults.cjs +68 -0
  124. package/dist/components/json-schema-form-defaults.cjs.map +1 -0
  125. package/dist/components/json-schema-form-defaults.d.ts +4 -0
  126. package/dist/components/json-schema-form-defaults.d.ts.map +1 -0
  127. package/dist/components/json-schema-form-defaults.js +68 -0
  128. package/dist/components/json-schema-form-defaults.js.map +1 -0
  129. package/dist/components/json-schema-form-enum-choice.cjs +114 -0
  130. package/dist/components/json-schema-form-enum-choice.cjs.map +1 -0
  131. package/dist/components/json-schema-form-enum-choice.d.ts +14 -0
  132. package/dist/components/json-schema-form-enum-choice.d.ts.map +1 -0
  133. package/dist/components/json-schema-form-enum-choice.js +114 -0
  134. package/dist/components/json-schema-form-enum-choice.js.map +1 -0
  135. package/dist/components/json-schema-form-errors.cjs +49 -31
  136. package/dist/components/json-schema-form-errors.cjs.map +1 -1
  137. package/dist/components/json-schema-form-errors.d.ts +4 -2
  138. package/dist/components/json-schema-form-errors.d.ts.map +1 -1
  139. package/dist/components/json-schema-form-errors.js +51 -33
  140. package/dist/components/json-schema-form-errors.js.map +1 -1
  141. package/dist/components/json-schema-form-fields.cjs +3 -93
  142. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  143. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  144. package/dist/components/json-schema-form-fields.js +1 -91
  145. package/dist/components/json-schema-form-fields.js.map +1 -1
  146. package/dist/components/json-schema-form-filter.cjs +2 -1
  147. package/dist/components/json-schema-form-filter.cjs.map +1 -1
  148. package/dist/components/json-schema-form-filter.js +2 -1
  149. package/dist/components/json-schema-form-filter.js.map +1 -1
  150. package/dist/components/json-schema-form-item-summary.cjs +6 -2
  151. package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
  152. package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
  153. package/dist/components/json-schema-form-item-summary.js +6 -2
  154. package/dist/components/json-schema-form-item-summary.js.map +1 -1
  155. package/dist/components/json-schema-form-layout.cjs +28 -19
  156. package/dist/components/json-schema-form-layout.cjs.map +1 -1
  157. package/dist/components/json-schema-form-layout.d.ts +8 -6
  158. package/dist/components/json-schema-form-layout.d.ts.map +1 -1
  159. package/dist/components/json-schema-form-layout.js +29 -20
  160. package/dist/components/json-schema-form-layout.js.map +1 -1
  161. package/dist/components/json-schema-form-listener-paths.cjs +52 -0
  162. package/dist/components/json-schema-form-listener-paths.cjs.map +1 -0
  163. package/dist/components/json-schema-form-listener-paths.d.ts +10 -0
  164. package/dist/components/json-schema-form-listener-paths.d.ts.map +1 -0
  165. package/dist/components/json-schema-form-listener-paths.js +52 -0
  166. package/dist/components/json-schema-form-listener-paths.js.map +1 -0
  167. package/dist/components/json-schema-form-listener-types.d.ts +22 -0
  168. package/dist/components/json-schema-form-listener-types.d.ts.map +1 -0
  169. package/dist/components/json-schema-form-listeners.cjs +256 -0
  170. package/dist/components/json-schema-form-listeners.cjs.map +1 -0
  171. package/dist/components/json-schema-form-listeners.d.ts +13 -0
  172. package/dist/components/json-schema-form-listeners.d.ts.map +1 -0
  173. package/dist/components/json-schema-form-listeners.js +256 -0
  174. package/dist/components/json-schema-form-listeners.js.map +1 -0
  175. package/dist/components/json-schema-form-object-array-view.cjs +62 -0
  176. package/dist/components/json-schema-form-object-array-view.cjs.map +1 -0
  177. package/dist/components/json-schema-form-object-array-view.d.ts +14 -0
  178. package/dist/components/json-schema-form-object-array-view.d.ts.map +1 -0
  179. package/dist/components/json-schema-form-object-array-view.js +62 -0
  180. package/dist/components/json-schema-form-object-array-view.js.map +1 -0
  181. package/dist/components/json-schema-form-object.cjs +3 -0
  182. package/dist/components/json-schema-form-object.cjs.map +1 -1
  183. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  184. package/dist/components/json-schema-form-object.js +3 -0
  185. package/dist/components/json-schema-form-object.js.map +1 -1
  186. package/dist/components/json-schema-form-preferences.cjs +1 -0
  187. package/dist/components/json-schema-form-preferences.cjs.map +1 -1
  188. package/dist/components/json-schema-form-preferences.d.ts +1 -0
  189. package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
  190. package/dist/components/json-schema-form-preferences.js +1 -0
  191. package/dist/components/json-schema-form-preferences.js.map +1 -1
  192. package/dist/components/json-schema-form-render.cjs +36 -12
  193. package/dist/components/json-schema-form-render.cjs.map +1 -1
  194. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  195. package/dist/components/json-schema-form-render.js +38 -14
  196. package/dist/components/json-schema-form-render.js.map +1 -1
  197. package/dist/components/json-schema-form-resolve.cjs +6 -99
  198. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  199. package/dist/components/json-schema-form-resolve.d.ts +1 -8
  200. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  201. package/dist/components/json-schema-form-resolve.js +5 -98
  202. package/dist/components/json-schema-form-resolve.js.map +1 -1
  203. package/dist/components/json-schema-form-runtime-types.d.ts +16 -0
  204. package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -1
  205. package/dist/components/json-schema-form-table-array.cjs +67 -16
  206. package/dist/components/json-schema-form-table-array.cjs.map +1 -1
  207. package/dist/components/json-schema-form-table-array.d.ts +4 -1
  208. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  209. package/dist/components/json-schema-form-table-array.js +70 -19
  210. package/dist/components/json-schema-form-table-array.js.map +1 -1
  211. package/dist/components/json-schema-form-tone.cjs +12 -0
  212. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  213. package/dist/components/json-schema-form-tone.js +12 -0
  214. package/dist/components/json-schema-form-tone.js.map +1 -1
  215. package/dist/components/json-schema-form-types.d.ts +17 -0
  216. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  217. package/dist/components/json-schema-form-utils.cjs +7 -1
  218. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  219. package/dist/components/json-schema-form-utils.d.ts +2 -1
  220. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  221. package/dist/components/json-schema-form-utils.js +7 -1
  222. package/dist/components/json-schema-form-utils.js.map +1 -1
  223. package/dist/components.cjs +3 -2
  224. package/dist/components.cjs.map +1 -1
  225. package/dist/components.d.ts +3 -2
  226. package/dist/components.d.ts.map +1 -1
  227. package/dist/components.js +2 -1
  228. package/dist/components.js.map +1 -1
  229. package/dist/data/DataTable.cjs +9 -3
  230. package/dist/data/DataTable.cjs.map +1 -1
  231. package/dist/data/DataTable.d.ts +6 -0
  232. package/dist/data/DataTable.d.ts.map +1 -1
  233. package/dist/data/DataTable.js +9 -3
  234. package/dist/data/DataTable.js.map +1 -1
  235. package/dist/data/FixtureEditor/FixtureEditor.cjs +43 -24
  236. package/dist/data/FixtureEditor/FixtureEditor.cjs.map +1 -1
  237. package/dist/data/FixtureEditor/FixtureEditor.d.ts.map +1 -1
  238. package/dist/data/FixtureEditor/FixtureEditor.js +43 -24
  239. package/dist/data/FixtureEditor/FixtureEditor.js.map +1 -1
  240. package/dist/data/GraphDiagram.cjs +125 -138
  241. package/dist/data/GraphDiagram.cjs.map +1 -1
  242. package/dist/data/GraphDiagram.d.ts +30 -23
  243. package/dist/data/GraphDiagram.d.ts.map +1 -1
  244. package/dist/data/GraphDiagram.js +128 -141
  245. package/dist/data/GraphDiagram.js.map +1 -1
  246. package/dist/data/GraphDiagramEdges.cjs +208 -0
  247. package/dist/data/GraphDiagramEdges.cjs.map +1 -0
  248. package/dist/data/GraphDiagramEdges.d.ts +40 -0
  249. package/dist/data/GraphDiagramEdges.d.ts.map +1 -0
  250. package/dist/data/GraphDiagramEdges.js +208 -0
  251. package/dist/data/GraphDiagramEdges.js.map +1 -0
  252. package/dist/data/GraphDiagramNodes.cjs +142 -0
  253. package/dist/data/GraphDiagramNodes.cjs.map +1 -0
  254. package/dist/data/GraphDiagramNodes.d.ts +22 -0
  255. package/dist/data/GraphDiagramNodes.d.ts.map +1 -0
  256. package/dist/data/GraphDiagramNodes.js +142 -0
  257. package/dist/data/GraphDiagramNodes.js.map +1 -0
  258. package/dist/data/Tree.cjs +10 -2
  259. package/dist/data/Tree.cjs.map +1 -1
  260. package/dist/data/Tree.d.ts +6 -1
  261. package/dist/data/Tree.d.ts.map +1 -1
  262. package/dist/data/Tree.js +10 -2
  263. package/dist/data/Tree.js.map +1 -1
  264. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs +8 -3
  265. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs.map +1 -1
  266. package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts.map +1 -1
  267. package/dist/data/ai/PromptRunEditor/RuntimeRows.js +8 -3
  268. package/dist/data/ai/PromptRunEditor/RuntimeRows.js.map +1 -1
  269. package/dist/data/ai/PromptRunEditor/index.cjs +37 -43
  270. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  271. package/dist/data/ai/PromptRunEditor/index.d.ts +3 -1
  272. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  273. package/dist/data/ai/PromptRunEditor/index.js +38 -44
  274. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  275. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +16 -5
  276. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
  277. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +4 -1
  278. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
  279. package/dist/data/ai/PromptRunEditor/runtimeActions.js +17 -6
  280. package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
  281. package/dist/data/ai/SessionInspector.approvals-model.cjs +12 -0
  282. package/dist/data/ai/SessionInspector.approvals-model.cjs.map +1 -1
  283. package/dist/data/ai/SessionInspector.approvals-model.d.ts +11 -2
  284. package/dist/data/ai/SessionInspector.approvals-model.d.ts.map +1 -1
  285. package/dist/data/ai/SessionInspector.approvals-model.js +12 -0
  286. package/dist/data/ai/SessionInspector.approvals-model.js.map +1 -1
  287. package/dist/data/ai/SessionInspector.approvals.cjs +25 -1
  288. package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
  289. package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -1
  290. package/dist/data/ai/SessionInspector.approvals.js +26 -2
  291. package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
  292. package/dist/data/ai/SessionInspector.cjs +143 -167
  293. package/dist/data/ai/SessionInspector.cjs.map +1 -1
  294. package/dist/data/ai/SessionInspector.collection-types.d.ts +5 -0
  295. package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -1
  296. package/dist/data/ai/SessionInspector.collection.cjs +18 -5
  297. package/dist/data/ai/SessionInspector.collection.cjs.map +1 -1
  298. package/dist/data/ai/SessionInspector.collection.d.ts +2 -0
  299. package/dist/data/ai/SessionInspector.collection.d.ts.map +1 -1
  300. package/dist/data/ai/SessionInspector.collection.fixtures.d.ts +6 -0
  301. package/dist/data/ai/SessionInspector.collection.fixtures.d.ts.map +1 -0
  302. package/dist/data/ai/SessionInspector.collection.js +18 -5
  303. package/dist/data/ai/SessionInspector.collection.js.map +1 -1
  304. package/dist/data/ai/SessionInspector.d.ts +24 -2
  305. package/dist/data/ai/SessionInspector.d.ts.map +1 -1
  306. package/dist/data/ai/SessionInspector.hierarchy-state.cjs +105 -7
  307. package/dist/data/ai/SessionInspector.hierarchy-state.cjs.map +1 -1
  308. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +12 -1
  309. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts.map +1 -1
  310. package/dist/data/ai/SessionInspector.hierarchy-state.js +107 -9
  311. package/dist/data/ai/SessionInspector.hierarchy-state.js.map +1 -1
  312. package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
  313. package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
  314. package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
  315. package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
  316. package/dist/data/ai/SessionInspector.js +144 -168
  317. package/dist/data/ai/SessionInspector.js.map +1 -1
  318. package/dist/data/ai/SessionInspector.legacy.cjs +116 -0
  319. package/dist/data/ai/SessionInspector.legacy.cjs.map +1 -0
  320. package/dist/data/ai/SessionInspector.legacy.d.ts +19 -0
  321. package/dist/data/ai/SessionInspector.legacy.d.ts.map +1 -0
  322. package/dist/data/ai/SessionInspector.legacy.js +116 -0
  323. package/dist/data/ai/SessionInspector.legacy.js.map +1 -0
  324. package/dist/data/ai/SessionInspector.panels.cjs +3 -0
  325. package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
  326. package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
  327. package/dist/data/ai/SessionInspector.panels.js +3 -0
  328. package/dist/data/ai/SessionInspector.panels.js.map +1 -1
  329. package/dist/data/ai/SessionInspector.plan.cjs +29 -12
  330. package/dist/data/ai/SessionInspector.plan.cjs.map +1 -1
  331. package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -1
  332. package/dist/data/ai/SessionInspector.plan.js +30 -13
  333. package/dist/data/ai/SessionInspector.plan.js.map +1 -1
  334. package/dist/data/ai/SessionInspector.remote-view.cjs +44 -0
  335. package/dist/data/ai/SessionInspector.remote-view.cjs.map +1 -0
  336. package/dist/data/ai/SessionInspector.remote-view.d.ts +11 -0
  337. package/dist/data/ai/SessionInspector.remote-view.d.ts.map +1 -0
  338. package/dist/data/ai/SessionInspector.remote-view.js +44 -0
  339. package/dist/data/ai/SessionInspector.remote-view.js.map +1 -0
  340. package/dist/data/ai/SessionInspector.remote.cjs +275 -0
  341. package/dist/data/ai/SessionInspector.remote.cjs.map +1 -0
  342. package/dist/data/ai/SessionInspector.remote.d.ts +57 -0
  343. package/dist/data/ai/SessionInspector.remote.d.ts.map +1 -0
  344. package/dist/data/ai/SessionInspector.remote.js +275 -0
  345. package/dist/data/ai/SessionInspector.remote.js.map +1 -0
  346. package/dist/data/ai/SessionInspector.summary.cjs +9 -159
  347. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
  348. package/dist/data/ai/SessionInspector.summary.d.ts +0 -3
  349. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  350. package/dist/data/ai/SessionInspector.summary.js +11 -161
  351. package/dist/data/ai/SessionInspector.summary.js.map +1 -1
  352. package/dist/data/ai/SessionInspector.tab-state.cjs +15 -0
  353. package/dist/data/ai/SessionInspector.tab-state.cjs.map +1 -0
  354. package/dist/data/ai/SessionInspector.tab-state.d.ts +3 -0
  355. package/dist/data/ai/SessionInspector.tab-state.d.ts.map +1 -0
  356. package/dist/data/ai/SessionInspector.tab-state.js +15 -0
  357. package/dist/data/ai/SessionInspector.tab-state.js.map +1 -0
  358. package/dist/data/ai/SessionInspector.tabs.model.cjs +31 -18
  359. package/dist/data/ai/SessionInspector.tabs.model.cjs.map +1 -1
  360. package/dist/data/ai/SessionInspector.tabs.model.d.ts +3 -1
  361. package/dist/data/ai/SessionInspector.tabs.model.d.ts.map +1 -1
  362. package/dist/data/ai/SessionInspector.tabs.model.js +32 -19
  363. package/dist/data/ai/SessionInspector.tabs.model.js.map +1 -1
  364. package/dist/data/ai/SessionInspector.transcript.cjs +4 -0
  365. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -1
  366. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  367. package/dist/data/ai/SessionInspector.transcript.js +4 -0
  368. package/dist/data/ai/SessionInspector.transcript.js.map +1 -1
  369. package/dist/data/ai/SessionInspector.verification.cjs +53 -0
  370. package/dist/data/ai/SessionInspector.verification.cjs.map +1 -0
  371. package/dist/data/ai/SessionInspector.verification.d.ts +7 -0
  372. package/dist/data/ai/SessionInspector.verification.d.ts.map +1 -0
  373. package/dist/data/ai/SessionInspector.verification.js +53 -0
  374. package/dist/data/ai/SessionInspector.verification.js.map +1 -0
  375. package/dist/data/ai/SessionViewer.approval-body.cjs +146 -0
  376. package/dist/data/ai/SessionViewer.approval-body.cjs.map +1 -0
  377. package/dist/data/ai/SessionViewer.approval-body.d.ts +11 -0
  378. package/dist/data/ai/SessionViewer.approval-body.d.ts.map +1 -0
  379. package/dist/data/ai/SessionViewer.approval-body.js +146 -0
  380. package/dist/data/ai/SessionViewer.approval-body.js.map +1 -0
  381. package/dist/data/ai/SessionViewer.approval-forms.cjs +150 -0
  382. package/dist/data/ai/SessionViewer.approval-forms.cjs.map +1 -0
  383. package/dist/data/ai/SessionViewer.approval-forms.d.ts +23 -0
  384. package/dist/data/ai/SessionViewer.approval-forms.d.ts.map +1 -0
  385. package/dist/data/ai/SessionViewer.approval-forms.js +150 -0
  386. package/dist/data/ai/SessionViewer.approval-forms.js.map +1 -0
  387. package/dist/data/ai/SessionViewer.cjs +57 -20
  388. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  389. package/dist/data/ai/SessionViewer.d.ts +13 -3
  390. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  391. package/dist/data/ai/SessionViewer.decision-controls.cjs +313 -0
  392. package/dist/data/ai/SessionViewer.decision-controls.cjs.map +1 -0
  393. package/dist/data/ai/SessionViewer.decision-controls.d.ts +43 -0
  394. package/dist/data/ai/SessionViewer.decision-controls.d.ts.map +1 -0
  395. package/dist/data/ai/SessionViewer.decision-controls.js +313 -0
  396. package/dist/data/ai/SessionViewer.decision-controls.js.map +1 -0
  397. package/dist/data/ai/SessionViewer.decision.cjs +21 -0
  398. package/dist/data/ai/SessionViewer.decision.cjs.map +1 -0
  399. package/dist/data/ai/SessionViewer.decision.d.ts +12 -0
  400. package/dist/data/ai/SessionViewer.decision.d.ts.map +1 -0
  401. package/dist/data/ai/SessionViewer.decision.js +21 -0
  402. package/dist/data/ai/SessionViewer.decision.js.map +1 -0
  403. package/dist/data/ai/SessionViewer.input.cjs +14 -0
  404. package/dist/data/ai/SessionViewer.input.cjs.map +1 -1
  405. package/dist/data/ai/SessionViewer.input.d.ts +5 -0
  406. package/dist/data/ai/SessionViewer.input.d.ts.map +1 -1
  407. package/dist/data/ai/SessionViewer.input.js +14 -0
  408. package/dist/data/ai/SessionViewer.input.js.map +1 -1
  409. package/dist/data/ai/SessionViewer.js +58 -21
  410. package/dist/data/ai/SessionViewer.js.map +1 -1
  411. package/dist/data/ai/SessionViewer.model.cjs +7 -1
  412. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  413. package/dist/data/ai/SessionViewer.model.d.ts +25 -3
  414. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  415. package/dist/data/ai/SessionViewer.model.js +7 -1
  416. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  417. package/dist/data/ai/SessionViewer.rows.cjs +6 -3
  418. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  419. package/dist/data/ai/SessionViewer.rows.d.ts +2 -1
  420. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  421. package/dist/data/ai/SessionViewer.rows.js +6 -3
  422. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  423. package/dist/data/ai/SessionViewer.tool-row.cjs +29 -237
  424. package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
  425. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  426. package/dist/data/ai/SessionViewer.tool-row.js +27 -235
  427. package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
  428. package/dist/data/ai/SessionViewer.unified.d.ts +17 -0
  429. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  430. package/dist/data/ai/SessionViewerMenu.cjs +8 -2
  431. package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
  432. package/dist/data/ai/SessionViewerMenu.d.ts +4 -1
  433. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  434. package/dist/data/ai/SessionViewerMenu.js +8 -2
  435. package/dist/data/ai/SessionViewerMenu.js.map +1 -1
  436. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +28 -17
  437. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  438. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +10 -2
  439. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  440. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +29 -18
  441. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  442. package/dist/data/ai/SpecRuntimeEditor/index.cjs +9 -1
  443. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  444. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +9 -2
  445. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  446. package/dist/data/ai/SpecRuntimeEditor/index.js +9 -1
  447. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  448. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +1 -1
  449. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +1 -1
  450. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  451. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +8 -2
  452. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  453. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  454. package/dist/data/ai/SpecRuntimeEditor/update.cjs +14 -6
  455. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  456. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -0
  457. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  458. package/dist/data/ai/SpecRuntimeEditor/update.js +14 -6
  459. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  460. package/dist/data/ai/approval-request.cjs +75 -0
  461. package/dist/data/ai/approval-request.cjs.map +1 -0
  462. package/dist/data/ai/approval-request.d.ts +155 -0
  463. package/dist/data/ai/approval-request.d.ts.map +1 -0
  464. package/dist/data/ai/approval-request.js +75 -0
  465. package/dist/data/ai/approval-request.js.map +1 -0
  466. package/dist/data/ai/index.d.ts +6 -1
  467. package/dist/data/ai/index.d.ts.map +1 -1
  468. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs +125 -0
  469. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs.map +1 -0
  470. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts +11 -0
  471. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts.map +1 -0
  472. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js +125 -0
  473. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js.map +1 -0
  474. package/dist/data/ai/runtime-preset-menu/index.d.ts +3 -0
  475. package/dist/data/ai/runtime-preset-menu/index.d.ts.map +1 -0
  476. package/dist/data/ai/runtime-preset-menu/model.cjs +73 -0
  477. package/dist/data/ai/runtime-preset-menu/model.cjs.map +1 -0
  478. package/dist/data/ai/runtime-preset-menu/model.d.ts +13 -0
  479. package/dist/data/ai/runtime-preset-menu/model.d.ts.map +1 -0
  480. package/dist/data/ai/runtime-preset-menu/model.js +73 -0
  481. package/dist/data/ai/runtime-preset-menu/model.js.map +1 -0
  482. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs +149 -0
  483. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs.map +1 -0
  484. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts +15 -0
  485. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts.map +1 -0
  486. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js +149 -0
  487. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js.map +1 -0
  488. package/dist/data/ai/runtime-spec-fields.cjs +166 -0
  489. package/dist/data/ai/runtime-spec-fields.cjs.map +1 -0
  490. package/dist/data/ai/runtime-spec-fields.d.ts +13 -0
  491. package/dist/data/ai/runtime-spec-fields.d.ts.map +1 -0
  492. package/dist/data/ai/runtime-spec-fields.js +166 -0
  493. package/dist/data/ai/runtime-spec-fields.js.map +1 -0
  494. package/dist/data/ai/session-categories.cjs +4 -0
  495. package/dist/data/ai/session-categories.cjs.map +1 -1
  496. package/dist/data/ai/session-categories.d.ts +1 -0
  497. package/dist/data/ai/session-categories.d.ts.map +1 -1
  498. package/dist/data/ai/session-categories.js +4 -0
  499. package/dist/data/ai/session-categories.js.map +1 -1
  500. package/dist/data/ai/use-session-scroll.cjs +49 -21
  501. package/dist/data/ai/use-session-scroll.cjs.map +1 -1
  502. package/dist/data/ai/use-session-scroll.d.ts +2 -0
  503. package/dist/data/ai/use-session-scroll.d.ts.map +1 -1
  504. package/dist/data/ai/use-session-scroll.js +49 -21
  505. package/dist/data/ai/use-session-scroll.js.map +1 -1
  506. package/dist/data/chat/Chat.runtime.cjs +1 -1
  507. package/dist/data/chat/Chat.runtime.cjs.map +1 -1
  508. package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
  509. package/dist/data/chat/Chat.runtime.js +1 -1
  510. package/dist/data/chat/Chat.runtime.js.map +1 -1
  511. package/dist/data/graph-columns-layout.cjs +216 -0
  512. package/dist/data/graph-columns-layout.cjs.map +1 -0
  513. package/dist/data/graph-columns-layout.d.ts +56 -0
  514. package/dist/data/graph-columns-layout.d.ts.map +1 -0
  515. package/dist/data/graph-columns-layout.js +216 -0
  516. package/dist/data/graph-columns-layout.js.map +1 -0
  517. package/dist/data/graph-diagram-model.cjs +73 -0
  518. package/dist/data/graph-diagram-model.cjs.map +1 -0
  519. package/dist/data/graph-diagram-model.d.ts +90 -0
  520. package/dist/data/graph-diagram-model.d.ts.map +1 -0
  521. package/dist/data/graph-diagram-model.js +73 -0
  522. package/dist/data/graph-diagram-model.js.map +1 -0
  523. package/dist/data/graph-edge-routing.cjs +235 -0
  524. package/dist/data/graph-edge-routing.cjs.map +1 -0
  525. package/dist/data/graph-edge-routing.d.ts +73 -0
  526. package/dist/data/graph-edge-routing.d.ts.map +1 -0
  527. package/dist/data/graph-edge-routing.js +235 -0
  528. package/dist/data/graph-edge-routing.js.map +1 -0
  529. package/dist/data/graph-layout.cjs +0 -82
  530. package/dist/data/graph-layout.cjs.map +1 -1
  531. package/dist/data/graph-layout.d.ts +1 -28
  532. package/dist/data/graph-layout.d.ts.map +1 -1
  533. package/dist/data/graph-layout.js +1 -83
  534. package/dist/data/graph-layout.js.map +1 -1
  535. package/dist/data/har/HarPanel.cjs +129 -33
  536. package/dist/data/har/HarPanel.cjs.map +1 -1
  537. package/dist/data/har/HarPanel.d.ts +13 -1
  538. package/dist/data/har/HarPanel.d.ts.map +1 -1
  539. package/dist/data/har/HarPanel.js +130 -34
  540. package/dist/data/har/HarPanel.js.map +1 -1
  541. package/dist/data/har/fixtures.d.ts +12 -0
  542. package/dist/data/har/fixtures.d.ts.map +1 -1
  543. package/dist/data/har/types.d.ts +12 -0
  544. package/dist/data/har/types.d.ts.map +1 -1
  545. package/dist/data/runtime/RuntimeBar.cjs +67 -84
  546. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  547. package/dist/data/runtime/RuntimeBar.d.ts +4 -5
  548. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  549. package/dist/data/runtime/RuntimeBar.fields.cjs +170 -0
  550. package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -0
  551. package/dist/data/runtime/RuntimeBar.fields.d.ts +16 -0
  552. package/dist/data/runtime/RuntimeBar.fields.d.ts.map +1 -0
  553. package/dist/data/runtime/RuntimeBar.fields.js +170 -0
  554. package/dist/data/runtime/RuntimeBar.fields.js.map +1 -0
  555. package/dist/data/runtime/RuntimeBar.js +70 -87
  556. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  557. package/dist/data/runtime/RuntimeBar.selection.cjs +56 -0
  558. package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -0
  559. package/dist/data/runtime/RuntimeBar.selection.d.ts +20 -0
  560. package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -0
  561. package/dist/data/runtime/RuntimeBar.selection.js +56 -0
  562. package/dist/data/runtime/RuntimeBar.selection.js.map +1 -0
  563. package/dist/data/runtime/RuntimeBarActions.cjs +10 -6
  564. package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
  565. package/dist/data/runtime/RuntimeBarActions.d.ts +8 -1
  566. package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
  567. package/dist/data/runtime/RuntimeBarActions.js +10 -6
  568. package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
  569. package/dist/data/runtime/RuntimeBarIdentity.cjs +166 -0
  570. package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -0
  571. package/dist/data/runtime/RuntimeBarIdentity.d.ts +25 -0
  572. package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -0
  573. package/dist/data/runtime/RuntimeBarIdentity.js +166 -0
  574. package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -0
  575. package/dist/data/runtime/RuntimeBarLayout.cjs +95 -0
  576. package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -0
  577. package/dist/data/runtime/RuntimeBarLayout.d.ts +9 -0
  578. package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -0
  579. package/dist/data/runtime/RuntimeBarLayout.js +95 -0
  580. package/dist/data/runtime/RuntimeBarLayout.js.map +1 -0
  581. package/dist/data/runtime/RuntimeBarSegment.cjs +25 -14
  582. package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
  583. package/dist/data/runtime/RuntimeBarSegment.d.ts +4 -0
  584. package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
  585. package/dist/data/runtime/RuntimeBarSegment.js +25 -14
  586. package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
  587. package/dist/data/runtime/RuntimeLimitInput.cjs +41 -0
  588. package/dist/data/runtime/RuntimeLimitInput.cjs.map +1 -0
  589. package/dist/data/runtime/RuntimeLimitInput.d.ts +9 -0
  590. package/dist/data/runtime/RuntimeLimitInput.d.ts.map +1 -0
  591. package/dist/data/runtime/RuntimeLimitInput.js +41 -0
  592. package/dist/data/runtime/RuntimeLimitInput.js.map +1 -0
  593. package/dist/data/runtime/use-runtime-bar-overflow.cjs +70 -0
  594. package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -0
  595. package/dist/data/runtime/use-runtime-bar-overflow.d.ts +13 -0
  596. package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -0
  597. package/dist/data/runtime/use-runtime-bar-overflow.js +70 -0
  598. package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -0
  599. package/dist/data/use-edge-focus.cjs +20 -0
  600. package/dist/data/use-edge-focus.cjs.map +1 -0
  601. package/dist/data/use-edge-focus.d.ts +23 -0
  602. package/dist/data/use-edge-focus.d.ts.map +1 -0
  603. package/dist/data/use-edge-focus.js +20 -0
  604. package/dist/data/use-edge-focus.js.map +1 -0
  605. package/dist/data/use-pan-zoom.cjs +159 -0
  606. package/dist/data/use-pan-zoom.cjs.map +1 -0
  607. package/dist/data/use-pan-zoom.d.ts +79 -0
  608. package/dist/data/use-pan-zoom.d.ts.map +1 -0
  609. package/dist/data/use-pan-zoom.js +159 -0
  610. package/dist/data/use-pan-zoom.js.map +1 -0
  611. package/dist/data/version-info.cjs +3 -3
  612. package/dist/data/version-info.js +3 -3
  613. package/dist/data.cjs +5 -1
  614. package/dist/data.cjs.map +1 -1
  615. package/dist/data.d.ts +4 -3
  616. package/dist/data.d.ts.map +1 -1
  617. package/dist/data.js +6 -2
  618. package/dist/data.js.map +1 -1
  619. package/dist/devtools/useDebugStream.cjs +5 -1
  620. package/dist/devtools/useDebugStream.cjs.map +1 -1
  621. package/dist/devtools/useDebugStream.d.ts.map +1 -1
  622. package/dist/devtools/useDebugStream.js +6 -2
  623. package/dist/devtools/useDebugStream.js.map +1 -1
  624. package/dist/hooks/event-source-provider.cjs +9 -0
  625. package/dist/hooks/event-source-provider.cjs.map +1 -0
  626. package/dist/hooks/event-source-provider.d.ts +15 -0
  627. package/dist/hooks/event-source-provider.d.ts.map +1 -0
  628. package/dist/hooks/event-source-provider.js +9 -0
  629. package/dist/hooks/event-source-provider.js.map +1 -0
  630. package/dist/hooks/event-source.cjs +11 -0
  631. package/dist/hooks/event-source.cjs.map +1 -0
  632. package/dist/hooks/event-source.d.ts +22 -0
  633. package/dist/hooks/event-source.d.ts.map +1 -0
  634. package/dist/hooks/event-source.js +11 -0
  635. package/dist/hooks/event-source.js.map +1 -0
  636. package/dist/hooks/use-log-tail.cjs +5 -1
  637. package/dist/hooks/use-log-tail.cjs.map +1 -1
  638. package/dist/hooks/use-log-tail.d.ts.map +1 -1
  639. package/dist/hooks/use-log-tail.js +5 -1
  640. package/dist/hooks/use-log-tail.js.map +1 -1
  641. package/dist/hooks/use-prompts.cjs +5 -1
  642. package/dist/hooks/use-prompts.cjs.map +1 -1
  643. package/dist/hooks/use-prompts.d.ts.map +1 -1
  644. package/dist/hooks/use-prompts.js +6 -2
  645. package/dist/hooks/use-prompts.js.map +1 -1
  646. package/dist/hooks/use-task-run.cjs +9 -2
  647. package/dist/hooks/use-task-run.cjs.map +1 -1
  648. package/dist/hooks/use-task-run.d.ts.map +1 -1
  649. package/dist/hooks/use-task-run.js +10 -3
  650. package/dist/hooks/use-task-run.js.map +1 -1
  651. package/dist/hooks.cjs +4 -0
  652. package/dist/hooks.cjs.map +1 -1
  653. package/dist/hooks.d.ts +2 -0
  654. package/dist/hooks.d.ts.map +1 -1
  655. package/dist/hooks.js +4 -0
  656. package/dist/hooks.js.map +1 -1
  657. package/dist/icons/programmingCatalog.cjs +34 -34
  658. package/dist/icons/programmingCatalog.cjs.map +1 -1
  659. package/dist/icons/programmingCatalog.js +34 -34
  660. package/dist/icons/programmingCatalog.js.map +1 -1
  661. package/dist/index.cjs +14 -3
  662. package/dist/index.cjs.map +1 -1
  663. package/dist/index.js +14 -3
  664. package/dist/index.js.map +1 -1
  665. package/dist/monaco/MonacoEditor.cjs +4 -1
  666. package/dist/monaco/MonacoEditor.cjs.map +1 -1
  667. package/dist/monaco/MonacoEditor.d.ts +1 -1
  668. package/dist/monaco/MonacoEditor.d.ts.map +1 -1
  669. package/dist/monaco/MonacoEditor.js +4 -1
  670. package/dist/monaco/MonacoEditor.js.map +1 -1
  671. package/dist/monaco/types.d.ts +2 -1
  672. package/dist/monaco/types.d.ts.map +1 -1
  673. package/dist/overlay/CommandPalette.cjs +14 -4
  674. package/dist/overlay/CommandPalette.cjs.map +1 -1
  675. package/dist/overlay/CommandPalette.d.ts +5 -1
  676. package/dist/overlay/CommandPalette.d.ts.map +1 -1
  677. package/dist/overlay/CommandPalette.js +14 -4
  678. package/dist/overlay/CommandPalette.js.map +1 -1
  679. package/dist/overlay/CommandPaletteList.cjs +5 -0
  680. package/dist/overlay/CommandPaletteList.cjs.map +1 -1
  681. package/dist/overlay/CommandPaletteList.d.ts +4 -2
  682. package/dist/overlay/CommandPaletteList.d.ts.map +1 -1
  683. package/dist/overlay/CommandPaletteList.js +5 -0
  684. package/dist/overlay/CommandPaletteList.js.map +1 -1
  685. package/dist/overlay/DropdownMenu.cjs +2 -0
  686. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  687. package/dist/overlay/DropdownMenu.d.ts +4 -0
  688. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  689. package/dist/overlay/DropdownMenu.js +2 -0
  690. package/dist/overlay/DropdownMenu.js.map +1 -1
  691. package/dist/overlay/DropdownMenuSubmenu.cjs +31 -15
  692. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  693. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  694. package/dist/overlay/DropdownMenuSubmenu.js +31 -15
  695. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  696. package/dist/rpc/OperationCatalog.cjs +32 -27
  697. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  698. package/dist/rpc/OperationCatalog.d.ts +11 -1
  699. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  700. package/dist/rpc/OperationCatalog.js +32 -27
  701. package/dist/rpc/OperationCatalog.js.map +1 -1
  702. package/dist/rpc/OperationEntityContextPicker.cjs +62 -256
  703. package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
  704. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  705. package/dist/rpc/OperationEntityContextPicker.js +64 -258
  706. package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
  707. package/dist/rpc/OperationEntityPicker.cjs +185 -0
  708. package/dist/rpc/OperationEntityPicker.cjs.map +1 -0
  709. package/dist/rpc/OperationEntityPicker.d.ts +51 -0
  710. package/dist/rpc/OperationEntityPicker.d.ts.map +1 -0
  711. package/dist/rpc/OperationEntityPicker.js +185 -0
  712. package/dist/rpc/OperationEntityPicker.js.map +1 -0
  713. package/dist/rpc/OperationEntityPicker.model.cjs +39 -0
  714. package/dist/rpc/OperationEntityPicker.model.cjs.map +1 -0
  715. package/dist/rpc/OperationEntityPicker.model.d.ts +27 -0
  716. package/dist/rpc/OperationEntityPicker.model.d.ts.map +1 -0
  717. package/dist/rpc/OperationEntityPicker.model.js +39 -0
  718. package/dist/rpc/OperationEntityPicker.model.js.map +1 -0
  719. package/dist/rpc/operationCatalogRowSelection.cjs +85 -0
  720. package/dist/rpc/operationCatalogRowSelection.cjs.map +1 -0
  721. package/dist/rpc/operationCatalogRowSelection.d.ts +57 -0
  722. package/dist/rpc/operationCatalogRowSelection.d.ts.map +1 -0
  723. package/dist/rpc/operationCatalogRowSelection.js +85 -0
  724. package/dist/rpc/operationCatalogRowSelection.js.map +1 -0
  725. package/dist/rpc/operationEntityPicker.fixtures.d.ts +13 -0
  726. package/dist/rpc/operationEntityPicker.fixtures.d.ts.map +1 -0
  727. package/dist/rpc/useOperationPages.cjs +6 -1
  728. package/dist/rpc/useOperationPages.cjs.map +1 -1
  729. package/dist/rpc/useOperationPages.d.ts +3 -1
  730. package/dist/rpc/useOperationPages.d.ts.map +1 -1
  731. package/dist/rpc/useOperationPages.js +6 -1
  732. package/dist/rpc/useOperationPages.js.map +1 -1
  733. package/dist/rpc.cjs +2 -0
  734. package/dist/rpc.cjs.map +1 -1
  735. package/dist/rpc.d.ts +2 -0
  736. package/dist/rpc.d.ts.map +1 -1
  737. package/dist/rpc.js +2 -0
  738. package/dist/rpc.js.map +1 -1
  739. package/dist/styles.css +1 -1
  740. package/package.json +4 -1
  741. package/schemas/json-schema-form.schema.json +571 -0
  742. package/dist/data/runtime/RuntimeBarCombo.cjs +0 -423
  743. package/dist/data/runtime/RuntimeBarCombo.cjs.map +0 -1
  744. package/dist/data/runtime/RuntimeBarCombo.d.ts +0 -33
  745. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +0 -1
  746. package/dist/data/runtime/RuntimeBarCombo.js +0 -423
  747. package/dist/data/runtime/RuntimeBarCombo.js.map +0 -1
  748. package/dist/data/runtime/RuntimeBarLimits.cjs +0 -262
  749. package/dist/data/runtime/RuntimeBarLimits.cjs.map +0 -1
  750. package/dist/data/runtime/RuntimeBarLimits.d.ts +0 -17
  751. package/dist/data/runtime/RuntimeBarLimits.d.ts.map +0 -1
  752. package/dist/data/runtime/RuntimeBarLimits.js +0 -262
  753. package/dist/data/runtime/RuntimeBarLimits.js.map +0 -1
  754. package/dist/data/runtime/RuntimeBarSegments.cjs +0 -346
  755. package/dist/data/runtime/RuntimeBarSegments.cjs.map +0 -1
  756. package/dist/data/runtime/RuntimeBarSegments.d.ts +0 -37
  757. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +0 -1
  758. package/dist/data/runtime/RuntimeBarSegments.js +0 -346
  759. package/dist/data/runtime/RuntimeBarSegments.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { RuntimeBarAction } from './RuntimeBarActions.js';
2
+ export declare function timeoutField({ value, onChange, }: {
3
+ value: string | undefined;
4
+ onChange: (next: string | undefined) => void;
5
+ }): RuntimeBarAction;
6
+ export declare function budgetField({ value, onChange, }: {
7
+ value: number | undefined;
8
+ onChange: (next: number | undefined) => void;
9
+ }): RuntimeBarAction;
10
+ export declare function effortField({ value, offered, supported, onChange, }: {
11
+ value: string | undefined;
12
+ offered: string[];
13
+ supported: string[];
14
+ onChange: (next: string) => void;
15
+ }): RuntimeBarAction;
16
+ //# sourceMappingURL=RuntimeBar.fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeBar.fields.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBar.fields.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAgB5D,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9C,GAAG,gBAAgB,CAgBnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC9C,GAAG,gBAAgB,CAgBnB;AAsED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,GAAG,gBAAgB,CAsDnB"}
@@ -0,0 +1,170 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { Icon } from "../Icon.js";
4
+ import { effortLevelIcon, effortLevelColor, effortLevelLabel } from "../chat/effort-icons.js";
5
+ import { COST_PRESETS, formatCost, TIMEOUT_PRESETS, parseTimeout, parseCost } from "./RuntimeBar.limits.js";
6
+ import { RuntimeLimitInput } from "./RuntimeLimitInput.js";
7
+ import { SegmentItemLabel, SEGMENT_KEY_CLASS, SEGMENT_CAPTION_CLASS } from "./RuntimeBarSegment.js";
8
+ import { UNSPECIFIED_HINT, UNSPECIFIED_LABEL } from "./unspecified.js";
9
+ import { UiBrain } from "../../icons/components/UiBrain.js";
10
+ import { UiTimer } from "../../icons/components/UiTimer.js";
11
+ import { UiCurrencyDollar } from "../../icons/components/UiCurrencyDollar.js";
12
+ function timeoutField({
13
+ value,
14
+ onChange
15
+ }) {
16
+ return limitField({
17
+ id: "budget.timeout",
18
+ label: "Timeout",
19
+ inputLabel: "Timeout duration",
20
+ icon: UiTimer,
21
+ current: value,
22
+ text: value ?? "",
23
+ placeholder: "45m",
24
+ presets: TIMEOUT_PRESETS.map((timeout) => ({
25
+ label: timeout,
26
+ value: timeout
27
+ })),
28
+ parse: parseTimeout,
29
+ onChange
30
+ });
31
+ }
32
+ function budgetField({
33
+ value,
34
+ onChange
35
+ }) {
36
+ return limitField({
37
+ id: "budget.cost",
38
+ label: "Budget",
39
+ inputLabel: "Budget (USD)",
40
+ icon: UiCurrencyDollar,
41
+ current: formatCost(value),
42
+ text: value === void 0 ? "" : String(value),
43
+ placeholder: "2.50",
44
+ presets: COST_PRESETS.map((cost) => ({
45
+ label: formatCost(cost),
46
+ value: cost
47
+ })),
48
+ parse: parseCost,
49
+ onChange
50
+ });
51
+ }
52
+ function limitField({
53
+ id,
54
+ label,
55
+ inputLabel,
56
+ icon,
57
+ current,
58
+ text,
59
+ placeholder,
60
+ presets,
61
+ parse,
62
+ onChange
63
+ }) {
64
+ return {
65
+ id,
66
+ label,
67
+ icon,
68
+ isSet: current !== void 0,
69
+ title: `${label} — ${current ?? "no limit"}`,
70
+ caption: /* @__PURE__ */ jsxs(Fragment, { children: [
71
+ /* @__PURE__ */ jsx(Icon, { icon, className: "size-4 shrink-0 text-muted-foreground" }),
72
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_CAPTION_CLASS, children: current })
73
+ ] }),
74
+ header: /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
75
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_KEY_CLASS, children: inputLabel }),
76
+ /* @__PURE__ */ jsx(
77
+ RuntimeLimitInput,
78
+ {
79
+ inputLabel,
80
+ text,
81
+ placeholder,
82
+ parse,
83
+ current,
84
+ onChange
85
+ }
86
+ )
87
+ ] }),
88
+ items: [
89
+ {
90
+ label: /* @__PURE__ */ jsx(SegmentItemLabel, { text: "No limit", selected: current === void 0 }),
91
+ onSelect: () => onChange(void 0)
92
+ },
93
+ ...presets.map((preset) => ({
94
+ label: /* @__PURE__ */ jsx(
95
+ SegmentItemLabel,
96
+ {
97
+ text: preset.label,
98
+ selected: preset.label === current
99
+ }
100
+ ),
101
+ onSelect: () => onChange(preset.value)
102
+ }))
103
+ ]
104
+ };
105
+ }
106
+ function effortField({
107
+ value,
108
+ offered,
109
+ supported,
110
+ onChange
111
+ }) {
112
+ const glyph = value ? effortLevelIcon(value) : void 0;
113
+ return {
114
+ id: "effort",
115
+ label: "Effort",
116
+ title: "Reasoning effort",
117
+ isSet: Boolean(value),
118
+ icon: UiBrain,
119
+ iconClassName: "text-muted-foreground",
120
+ caption: /* @__PURE__ */ jsxs(Fragment, { children: [
121
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_KEY_CLASS, children: "Effort" }),
122
+ glyph && /* @__PURE__ */ jsx(
123
+ Icon,
124
+ {
125
+ icon: glyph,
126
+ className: cn("size-4 shrink-0", effortLevelColor(value))
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsx("span", { className: SEGMENT_CAPTION_CLASS, children: value ? effortLevelLabel(value) : UNSPECIFIED_LABEL })
130
+ ] }),
131
+ items: [
132
+ {
133
+ label: /* @__PURE__ */ jsx(
134
+ SegmentItemLabel,
135
+ {
136
+ text: UNSPECIFIED_LABEL,
137
+ hint: UNSPECIFIED_HINT,
138
+ selected: !value
139
+ }
140
+ ),
141
+ onSelect: () => onChange("")
142
+ },
143
+ ...[
144
+ .../* @__PURE__ */ new Set([...offered, ...supported, ...value ? [value] : []])
145
+ ].map((effort) => {
146
+ const icon = effortLevelIcon(effort);
147
+ return {
148
+ label: /* @__PURE__ */ jsx(
149
+ SegmentItemLabel,
150
+ {
151
+ text: effortLevelLabel(effort),
152
+ selected: value === effort,
153
+ ...supported.includes(effort) ? {} : { hint: "unsupported" }
154
+ }
155
+ ),
156
+ ...icon ? { icon } : {},
157
+ iconClassName: effortLevelColor(effort),
158
+ disabled: !supported.includes(effort),
159
+ onSelect: () => onChange(effort)
160
+ };
161
+ })
162
+ ]
163
+ };
164
+ }
165
+ export {
166
+ budgetField,
167
+ effortField,
168
+ timeoutField
169
+ };
170
+ //# sourceMappingURL=RuntimeBar.fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeBar.fields.js","sources":["../../../src/data/runtime/RuntimeBar.fields.tsx"],"sourcesContent":["import { UiBrain, UiCurrencyDollar, UiTimer } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport {\n effortLevelColor,\n effortLevelIcon,\n effortLevelLabel,\n} from \"../chat/effort-icons\";\nimport type { RuntimeBarAction } from \"./RuntimeBarActions\";\nimport {\n COST_PRESETS,\n TIMEOUT_PRESETS,\n formatCost,\n parseCost,\n parseTimeout,\n} from \"./RuntimeBar.limits\";\nimport { RuntimeLimitInput } from \"./RuntimeLimitInput\";\nimport {\n SEGMENT_CAPTION_CLASS,\n SEGMENT_KEY_CLASS,\n SegmentItemLabel,\n} from \"./RuntimeBarSegment\";\nimport { UNSPECIFIED_LABEL, UNSPECIFIED_HINT } from \"./unspecified\";\n\nexport function timeoutField({\n value,\n onChange,\n}: {\n value: string | undefined;\n onChange: (next: string | undefined) => void;\n}): RuntimeBarAction {\n return limitField({\n id: \"budget.timeout\",\n label: \"Timeout\",\n inputLabel: \"Timeout duration\",\n icon: UiTimer,\n current: value,\n text: value ?? \"\",\n placeholder: \"45m\",\n presets: TIMEOUT_PRESETS.map((timeout) => ({\n label: timeout,\n value: timeout,\n })),\n parse: parseTimeout,\n onChange,\n });\n}\n\nexport function budgetField({\n value,\n onChange,\n}: {\n value: number | undefined;\n onChange: (next: number | undefined) => void;\n}): RuntimeBarAction {\n return limitField({\n id: \"budget.cost\",\n label: \"Budget\",\n inputLabel: \"Budget (USD)\",\n icon: UiCurrencyDollar,\n current: formatCost(value),\n text: value === undefined ? \"\" : String(value),\n placeholder: \"2.50\",\n presets: COST_PRESETS.map((cost) => ({\n label: formatCost(cost)!,\n value: cost,\n })),\n parse: parseCost,\n onChange,\n });\n}\n\nfunction limitField<V extends string | number>({\n id,\n label,\n inputLabel,\n icon,\n current,\n text,\n placeholder,\n presets,\n parse,\n onChange,\n}: {\n id: string;\n label: string;\n inputLabel: string;\n icon: StaticIconComponent;\n current: string | undefined;\n text: string;\n placeholder: string;\n presets: { label: string; value: V }[];\n parse: (text: string) => V | undefined;\n onChange: (next: V | undefined) => void;\n}): RuntimeBarAction {\n return {\n id,\n label,\n icon,\n isSet: current !== undefined,\n title: `${label} — ${current ?? \"no limit\"}`,\n caption: (\n <>\n <Icon icon={icon} className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className={SEGMENT_CAPTION_CLASS}>{current}</span>\n </>\n ),\n header: (\n <div className=\"grid gap-1\">\n <span className={SEGMENT_KEY_CLASS}>{inputLabel}</span>\n <RuntimeLimitInput\n inputLabel={inputLabel}\n text={text}\n placeholder={placeholder}\n parse={parse}\n current={current}\n onChange={onChange}\n />\n </div>\n ),\n items: [\n {\n label: (\n <SegmentItemLabel text=\"No limit\" selected={current === undefined} />\n ),\n onSelect: () => onChange(undefined),\n },\n ...presets.map((preset) => ({\n label: (\n <SegmentItemLabel\n text={preset.label}\n selected={preset.label === current}\n />\n ),\n onSelect: () => onChange(preset.value),\n })),\n ],\n };\n}\n\nexport function effortField({\n value,\n offered,\n supported,\n onChange,\n}: {\n value: string | undefined;\n offered: string[];\n supported: string[];\n onChange: (next: string) => void;\n}): RuntimeBarAction {\n const glyph = value ? effortLevelIcon(value) : undefined;\n return {\n id: \"effort\",\n label: \"Effort\",\n title: \"Reasoning effort\",\n isSet: Boolean(value),\n icon: UiBrain,\n iconClassName: \"text-muted-foreground\",\n caption: (\n <>\n <span className={SEGMENT_KEY_CLASS}>Effort</span>\n {glyph && (\n <Icon\n icon={glyph}\n className={cn(\"size-4 shrink-0\", effortLevelColor(value!))}\n />\n )}\n <span className={SEGMENT_CAPTION_CLASS}>\n {value ? effortLevelLabel(value) : UNSPECIFIED_LABEL}\n </span>\n </>\n ),\n items: [\n {\n label: (\n <SegmentItemLabel\n text={UNSPECIFIED_LABEL}\n hint={UNSPECIFIED_HINT}\n selected={!value}\n />\n ),\n onSelect: () => onChange(\"\"),\n },\n ...[\n ...new Set([...offered, ...supported, ...(value ? [value] : [])]),\n ].map((effort) => {\n const icon = effortLevelIcon(effort);\n return {\n label: (\n <SegmentItemLabel\n text={effortLevelLabel(effort)}\n selected={value === effort}\n {...(supported.includes(effort) ? {} : { hint: \"unsupported\" })}\n />\n ),\n ...(icon ? { icon } : {}),\n iconClassName: effortLevelColor(effort),\n disabled: !supported.includes(effort),\n onSelect: () => onChange(effort),\n };\n }),\n ],\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
3
  import { DEFAULT_REASONING_EFFORTS } from "../chat/effort-icons.js";
4
- import { cn } from "../../lib/utils.js";
5
4
  import { withBudgetLimit } from "./RuntimeBar.limits.js";
6
- import { runtimeModelForValue, applyRuntimeMode } from "./RuntimeBar.model.js";
7
- import { RuntimeBarCombo } from "./RuntimeBarCombo.js";
8
- import { RuntimeBarSegments } from "./RuntimeBarSegments.js";
5
+ import { runtimeModelForValue } from "./RuntimeBar.model.js";
6
+ import { RuntimeBarLayout } from "./RuntimeBarLayout.js";
7
+ import { effortField, budgetField, timeoutField } from "./RuntimeBar.fields.js";
8
+ import { runtimeModes, modelGroupsForMode, withRuntimeMode } from "./RuntimeBar.selection.js";
9
9
  import { RuntimeBarVariantContext } from "./RuntimeBar.context.js";
10
10
  import { isSelectableModel } from "./availability.js";
11
11
  import { effortOptionsForModel, reconcileModelCapabilities } from "./model-capabilities.js";
12
- import { selectionForRuntime, SPEC_RUNTIME_FAMILIES, familyById, firstMode, modelsForFamily } from "./runtime-mode.js";
12
+ import { selectionForRuntime, SPEC_RUNTIME_FAMILIES, familyById } from "./runtime-mode.js";
13
13
  import { runtimeModeFromModel } from "../../lib/runtime-family.js";
14
14
  function RuntimeBar({
15
15
  value,
@@ -29,24 +29,32 @@ function RuntimeBar({
29
29
  ariaLabel = "Runtime",
30
30
  className
31
31
  }) {
32
- var _a, _b;
32
+ var _a, _b, _c, _d;
33
33
  const [preference, setPreference] = useState({ model: effectiveModel, family: void 0 });
34
34
  if (preference.model !== effectiveModel) {
35
35
  setPreference({ model: effectiveModel, family: void 0 });
36
36
  }
37
37
  const preferredFamily = preference.model === effectiveModel ? preference.family : void 0;
38
- const specMode = runtimeModeFromModel(value.model) || ((_a = value.mode) == null ? void 0 : _a.trim()) || (effectiveMode == null ? void 0 : effectiveMode.trim());
38
+ const specMode = ((_a = value.mode) == null ? void 0 : _a.trim()) || runtimeModeFromModel(value.model) || (effectiveMode == null ? void 0 : effectiveMode.trim());
39
39
  const selection = selectionForRuntime(
40
40
  families,
41
41
  specMode,
42
- value.model || (preferredFamily ? void 0 : effectiveModel),
42
+ value.id || value.model || (preferredFamily ? void 0 : effectiveModel),
43
43
  models,
44
44
  preferredFamily
45
45
  );
46
46
  const family = familyById(families, selection.family);
47
- const mode = family.modes.find((entry) => entry.id === selection.mode) ?? firstMode(family);
48
- const modelOptions = modelsForFamily(models, family, specMode);
49
- const resolvedModel = runtimeModelForValue(models, value, isSelectableModel);
47
+ const modes = runtimeModes(families);
48
+ const mode = modes.find((entry) => entry.id === selection.mode);
49
+ if (!mode)
50
+ throw new Error(
51
+ `No available runtime mode for ${JSON.stringify(selection.mode)}`
52
+ );
53
+ const groups = modelGroupsForMode({ models, families, mode: mode.id });
54
+ const resolvedModel = runtimeModelForValue(
55
+ groups.flatMap((group) => group.models),
56
+ value
57
+ );
50
58
  const selectedModelUnavailable = Boolean(
51
59
  !resolvedModel && (value.id || value.model) && runtimeModelForValue(models, value, (entry) => !isSelectableModel(entry))
52
60
  );
@@ -61,14 +69,13 @@ function RuntimeBar({
61
69
  )) == null ? void 0 : _b.label) ?? effectiveModel;
62
70
  const applyMode = (familyId, modeId) => {
63
71
  setPreference({ model: effectiveModel, family: familyId });
64
- const next = applyRuntimeMode(
72
+ const next = withRuntimeMode({
65
73
  value,
66
74
  models,
67
75
  families,
68
- familyId,
69
- modeId,
76
+ mode: modeId,
70
77
  reasoningEfforts
71
- );
78
+ });
72
79
  if (next !== value) onChange(next);
73
80
  };
74
81
  const applyCustomModel = (model) => {
@@ -89,80 +96,56 @@ function RuntimeBar({
89
96
  onChange(withoutCatalogModel(value));
90
97
  };
91
98
  const applyEffort = (effort) => onChange(withOptionalRuntimeValue(value, "effort", effort));
92
- if (variant === "combo") {
93
- return /* @__PURE__ */ jsx(RuntimeBarVariantContext.Provider, { value: "combo", children: /* @__PURE__ */ jsxs(
94
- "div",
95
- {
96
- role: "group",
97
- "aria-label": ariaLabel,
98
- "data-runtime-bar-variant": "combo",
99
- className: cn("inline-flex max-w-full flex-wrap items-stretch gap-1", className),
100
- children: [
101
- /* @__PURE__ */ jsx(
102
- RuntimeBarCombo,
103
- {
104
- value,
105
- families,
106
- family,
107
- mode,
108
- selectedMode: selection.mode,
109
- models: modelOptions,
110
- selectedModel: resolvedModel,
111
- selectedModelUnavailable,
112
- inheritedModelLabel,
113
- supportedEfforts,
114
- locked,
115
- showModel,
116
- showEffort,
117
- showTimeout,
118
- showCost,
119
- ariaLabel,
120
- className: "max-w-full",
121
- onFamilyChange: (familyId) => applyMode(familyId, selection.mode),
122
- onModeChange: (modeId) => applyMode(family.id, modeId),
123
- onModelSelect: applyModel,
124
- onModelClear: clearModel,
125
- onCustomModel: applyCustomModel,
126
- onEffortChange: applyEffort,
127
- onTimeoutChange: (timeout) => onChange(withBudgetLimit(value, "timeout", timeout)),
128
- onCostChange: (cost) => onChange(withBudgetLimit(value, "cost", cost))
129
- }
130
- ),
131
- actions
132
- ]
133
- }
134
- ) });
135
- }
136
- return /* @__PURE__ */ jsx(RuntimeBarVariantContext.Provider, { value: "segmented", children: /* @__PURE__ */ jsx(
137
- RuntimeBarSegments,
99
+ const fields = [
100
+ ...showEffort && supportedEfforts.length > 0 ? [
101
+ effortField({
102
+ value: value.effort,
103
+ offered: reasoningEfforts,
104
+ supported: supportedEfforts,
105
+ onChange: applyEffort
106
+ })
107
+ ] : [],
108
+ ...(actions == null ? void 0 : actions.fields) ?? [],
109
+ ...showCost ? [
110
+ budgetField({
111
+ value: (_c = value.budget) == null ? void 0 : _c.cost,
112
+ onChange: (cost) => onChange(withBudgetLimit(value, "cost", cost))
113
+ })
114
+ ] : [],
115
+ ...showTimeout ? [
116
+ timeoutField({
117
+ value: (_d = value.budget) == null ? void 0 : _d.timeout,
118
+ onChange: (timeout) => onChange(withBudgetLimit(value, "timeout", timeout))
119
+ })
120
+ ] : []
121
+ ];
122
+ return /* @__PURE__ */ jsx(RuntimeBarVariantContext.Provider, { value: variant, children: /* @__PURE__ */ jsx(
123
+ RuntimeBarLayout,
138
124
  {
139
- value,
140
- models,
141
- modelOptions,
142
- resolvedModel,
143
- selectedModelUnavailable,
144
- inheritedModelLabel,
145
- families,
146
- family,
147
- mode,
148
- selectedMode: selection.mode,
149
- reasoningEfforts,
150
- supportedEfforts,
151
- locked,
152
- showModel,
153
- showEffort,
154
- showTimeout,
155
- showCost,
156
- actions,
157
125
  ariaLabel,
158
126
  className,
159
- onModeChange: applyMode,
160
- onCustomModel: applyCustomModel,
161
- onModelSelect: applyModel,
162
- onModelClear: clearModel,
163
- onEffortChange: applyEffort,
164
- onTimeoutChange: (timeout) => onChange(withBudgetLimit(value, "timeout", timeout)),
165
- onCostChange: (cost) => onChange(withBudgetLimit(value, "cost", cost))
127
+ actions: { ...actions, fields },
128
+ identity: {
129
+ family,
130
+ mode,
131
+ modes,
132
+ groups,
133
+ selectedModel: resolvedModel,
134
+ model: value.model,
135
+ unavailable: selectedModelUnavailable,
136
+ inheritedModelLabel,
137
+ locked,
138
+ showModel,
139
+ variant,
140
+ onModeChange: (modeId) => applyMode(family.id, modeId),
141
+ onCustomModel: applyCustomModel,
142
+ onModelSelect: applyModel,
143
+ onModelClear: clearModel,
144
+ onFamilySelect: (familyId) => {
145
+ setPreference({ model: effectiveModel, family: familyId });
146
+ onChange(withoutCatalogModel(value));
147
+ }
148
+ }
166
149
  }
167
150
  ) });
168
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeBar.js","sources":["../../../src/data/runtime/RuntimeBar.tsx"],"sourcesContent":["import { useState, type ReactNode } from \"react\";\nimport { DEFAULT_REASONING_EFFORTS } from \"../chat/effort-icons\";\nimport { cn } from \"../../lib/utils\";\nimport type { ChatModel, ChatModelRuntime } from \"../chat/types\";\nimport { withBudgetLimit, type RuntimeBarBudget } from \"./RuntimeBar.limits\";\nimport { applyRuntimeMode, runtimeModelForValue } from \"./RuntimeBar.model\";\nimport { RuntimeBarCombo } from \"./RuntimeBarCombo\";\nimport { RuntimeBarSegments } from \"./RuntimeBarSegments\";\nimport { RuntimeBarVariantContext } from \"./RuntimeBar.context\";\nimport { isSelectableModel } from \"./availability\";\nimport {\n effortOptionsForModel,\n reconcileModelCapabilities,\n} from \"./model-capabilities\";\nimport {\n SPEC_RUNTIME_FAMILIES,\n familyById,\n firstMode,\n modelsForFamily,\n selectionForRuntime,\n runtimeModeFromModel,\n type SpecRuntimeFamily,\n} from \"./runtime-mode\";\n\nexport type RuntimeBarValue = ChatModelRuntime & {\n cliArgs?: Record<string, unknown>;\n /** Run limits edited by the opt-in timeout and max cost controls. */\n budget?: RuntimeBarBudget;\n};\n\nexport type RuntimeBarProps<T extends RuntimeBarValue = RuntimeBarValue> = {\n value: T;\n onChange: (value: T) => void;\n /** `segmented` uses field triggers; `combo` uses one direct-edit menu. */\n variant?: \"combo\" | \"segmented\";\n /** Model catalog. Only the selected family's models are listed; a family the\n * catalog does not describe is served by the segment's free-text entry. */\n models?: ChatModel[] | undefined;\n families?: SpecRuntimeFamily[] | undefined;\n /** Resolved mode shown when the editable value inherits it from another layer. */\n effectiveMode?: string | undefined;\n /** Resolved model used to identify the inherited provider family without persisting it. */\n effectiveModel?: string | undefined;\n /** Effort tiers offered when the catalog does not describe the model. */\n reasoningEfforts?: string[] | undefined;\n /** Locks model identity (family, mode, and model) while leaving effort editable. */\n locked?: boolean | undefined;\n /** Whether the selected runtime exposes a model argument. */\n showModel?: boolean | undefined;\n /** Whether the selected runtime exposes reasoning effort. */\n showEffort?: boolean | undefined;\n /** Opt-in control for `budget.timeout`. */\n showTimeout?: boolean | undefined;\n /** Opt-in control for `budget.cost`. */\n showCost?: boolean | undefined;\n /** Host-level settings belonging to the surrounding spec rather than this runtime row. */\n actions?: ReactNode | undefined;\n ariaLabel?: string | undefined;\n className?: string | undefined;\n};\n\n/** Self-describing runtime controls with segmented and combo presentations. */\nexport function RuntimeBar<T extends RuntimeBarValue>({\n value,\n onChange,\n variant = \"segmented\",\n models = [],\n families = SPEC_RUNTIME_FAMILIES,\n effectiveMode,\n effectiveModel,\n reasoningEfforts = DEFAULT_REASONING_EFFORTS,\n locked = false,\n showModel = true,\n showEffort = true,\n showTimeout = false,\n showCost = false,\n actions,\n ariaLabel = \"Runtime\",\n className,\n}: RuntimeBarProps<T>) {\n const [preference, setPreference] = useState<{\n model: string | undefined;\n family: string | undefined;\n }>({ model: effectiveModel, family: undefined });\n if (preference.model !== effectiveModel) {\n setPreference({ model: effectiveModel, family: undefined });\n }\n const preferredFamily = preference.model === effectiveModel ? preference.family : undefined;\n const specMode =\n runtimeModeFromModel(value.model) ||\n value.mode?.trim() ||\n effectiveMode?.trim();\n const selection = selectionForRuntime(\n families,\n specMode,\n value.model || (preferredFamily ? undefined : effectiveModel),\n models,\n preferredFamily,\n );\n const family = familyById(families, selection.family);\n const mode =\n family.modes.find((entry) => entry.id === selection.mode) ??\n firstMode(family);\n const modelOptions = modelsForFamily(models, family, specMode);\n const resolvedModel = runtimeModelForValue(models, value, isSelectableModel);\n const selectedModelUnavailable = Boolean(\n !resolvedModel &&\n (value.id || value.model) &&\n runtimeModelForValue(models, value, (entry) => !isSelectableModel(entry)),\n );\n const supportedEfforts = effortOptionsForModel(\n resolvedModel,\n reasoningEfforts,\n );\n // The name an Unspecified model would resolve to, so the picker can say what\n // it inherits instead of leaving the operator guessing.\n const inheritedModelLabel =\n value.model || value.id\n ? undefined\n : (runtimeModelForValue(\n models,\n effectiveModel !== undefined ? { model: effectiveModel } : {},\n isSelectableModel,\n )?.label ?? effectiveModel);\n\n const applyMode = (familyId: string, modeId: string) => {\n setPreference({ model: effectiveModel, family: familyId });\n const next = applyRuntimeMode(\n value,\n models,\n families,\n familyId,\n modeId,\n reasoningEfforts,\n );\n if (next !== value) onChange(next);\n };\n\n const applyCustomModel = (model: string) => {\n onChange(\n withOptionalRuntimeValue(withoutCatalogModel(value), \"model\", model),\n );\n };\n // A family's model catalog can serve several modes. Selecting a row must not\n // silently move the user away from the mode they chose.\n const applyModel = (model: ChatModel) => {\n const next = reconcileModelCapabilities(\n withoutCatalogModel(value),\n model,\n reasoningEfforts,\n { mode: mode.id },\n );\n onChange(next);\n };\n const clearModel = () => {\n onChange(withoutCatalogModel(value));\n };\n const applyEffort = (effort: string) =>\n onChange(withOptionalRuntimeValue(value, \"effort\", effort));\n\n if (variant === \"combo\") {\n return (\n <RuntimeBarVariantContext.Provider value=\"combo\">\n <div\n role=\"group\"\n aria-label={ariaLabel}\n data-runtime-bar-variant=\"combo\"\n className={cn(\"inline-flex max-w-full flex-wrap items-stretch gap-1\", className)}\n >\n <RuntimeBarCombo\n value={value}\n families={families}\n family={family}\n mode={mode}\n selectedMode={selection.mode}\n models={modelOptions}\n selectedModel={resolvedModel}\n selectedModelUnavailable={selectedModelUnavailable}\n inheritedModelLabel={inheritedModelLabel}\n supportedEfforts={supportedEfforts}\n locked={locked}\n showModel={showModel}\n showEffort={showEffort}\n showTimeout={showTimeout}\n showCost={showCost}\n ariaLabel={ariaLabel}\n className=\"max-w-full\"\n onFamilyChange={(familyId) => applyMode(familyId, selection.mode)}\n onModeChange={(modeId) => applyMode(family.id, modeId)}\n onModelSelect={applyModel}\n onModelClear={clearModel}\n onCustomModel={applyCustomModel}\n onEffortChange={applyEffort}\n onTimeoutChange={(timeout) => onChange(withBudgetLimit(value, \"timeout\", timeout))}\n onCostChange={(cost) => onChange(withBudgetLimit(value, \"cost\", cost))}\n />\n {actions}\n </div>\n </RuntimeBarVariantContext.Provider>\n );\n }\n\n return (\n <RuntimeBarVariantContext.Provider value=\"segmented\">\n <RuntimeBarSegments\n value={value}\n models={models}\n modelOptions={modelOptions}\n resolvedModel={resolvedModel}\n selectedModelUnavailable={selectedModelUnavailable}\n inheritedModelLabel={inheritedModelLabel}\n families={families}\n family={family}\n mode={mode}\n selectedMode={selection.mode}\n reasoningEfforts={reasoningEfforts}\n supportedEfforts={supportedEfforts}\n locked={locked}\n showModel={showModel}\n showEffort={showEffort}\n showTimeout={showTimeout}\n showCost={showCost}\n actions={actions}\n ariaLabel={ariaLabel}\n className={className}\n onModeChange={applyMode}\n onCustomModel={applyCustomModel}\n onModelSelect={applyModel}\n onModelClear={clearModel}\n onEffortChange={applyEffort}\n onTimeoutChange={(timeout) => onChange(withBudgetLimit(value, \"timeout\", timeout))}\n onCostChange={(cost) => onChange(withBudgetLimit(value, \"cost\", cost))}\n />\n </RuntimeBarVariantContext.Provider>\n );\n}\n\nfunction withoutCatalogModel<T extends RuntimeBarValue>(value: T): T {\n return withOptionalRuntimeValue(\n withOptionalRuntimeValue(value, \"model\", undefined),\n \"id\",\n undefined,\n );\n}\n\nfunction withOptionalRuntimeValue<T extends RuntimeBarValue>(\n value: T,\n key: keyof RuntimeBarValue,\n next: unknown,\n): T {\n const updated = { ...value } as Record<string, unknown>;\n if (next === undefined || next === \"\") {\n delete updated[key];\n } else {\n updated[key] = next;\n }\n return updated as T;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeBar.js","sources":["../../../src/data/runtime/RuntimeBar.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { DEFAULT_REASONING_EFFORTS } from \"../chat/effort-icons\";\nimport type { ChatModel, ChatModelRuntime } from \"../chat/types\";\nimport { withBudgetLimit, type RuntimeBarBudget } from \"./RuntimeBar.limits\";\nimport { runtimeModelForValue } from \"./RuntimeBar.model\";\nimport { RuntimeBarLayout } from \"./RuntimeBarLayout\";\nimport type { RuntimeBarActionsProps } from \"./RuntimeBarActions\";\nimport { timeoutField, budgetField, effortField } from \"./RuntimeBar.fields\";\nimport {\n modelGroupsForMode,\n runtimeModes,\n withRuntimeMode,\n} from \"./RuntimeBar.selection\";\nimport { RuntimeBarVariantContext } from \"./RuntimeBar.context\";\nimport { isSelectableModel } from \"./availability\";\nimport {\n effortOptionsForModel,\n reconcileModelCapabilities,\n} from \"./model-capabilities\";\nimport {\n SPEC_RUNTIME_FAMILIES,\n familyById,\n selectionForRuntime,\n runtimeModeFromModel,\n type SpecRuntimeFamily,\n} from \"./runtime-mode\";\n\nexport type RuntimeBarValue = ChatModelRuntime & {\n cliArgs?: Record<string, unknown>;\n /** Run limits edited by the opt-in timeout and max cost controls. */\n budget?: RuntimeBarBudget;\n};\n\nexport type RuntimeBarProps<T extends RuntimeBarValue = RuntimeBarValue> = {\n value: T;\n onChange: (value: T) => void;\n /** Fused field triggers or individually bordered controls. */\n variant?: \"combo\" | \"segmented\";\n /** Model catalog grouped by family and filtered by the selected mode. */\n models?: ChatModel[] | undefined;\n families?: SpecRuntimeFamily[] | undefined;\n /** Resolved mode shown when the editable value inherits it from another layer. */\n effectiveMode?: string | undefined;\n /** Resolved model used to identify the inherited provider family without persisting it. */\n effectiveModel?: string | undefined;\n /** Effort tiers offered when the catalog does not describe the model. */\n reasoningEfforts?: string[] | undefined;\n /** Locks model identity (family, mode, and model) while leaving effort editable. */\n locked?: boolean | undefined;\n /** Whether the selected runtime exposes a model argument. */\n showModel?: boolean | undefined;\n /** Whether the selected runtime exposes reasoning effort. */\n showEffort?: boolean | undefined;\n /** Opt-in control for `budget.timeout`. */\n showTimeout?: boolean | undefined;\n /** Opt-in control for `budget.cost`. */\n showCost?: boolean | undefined;\n /** Host-level settings belonging to the surrounding spec rather than this runtime row. */\n actions?:\n | Pick<RuntimeBarActionsProps, \"fields\" | \"menu\" | \"menuLabel\">\n | undefined;\n ariaLabel?: string | undefined;\n className?: string | undefined;\n};\n\n/** Self-describing runtime controls with segmented and combo presentations. */\nexport function RuntimeBar<T extends RuntimeBarValue>({\n value,\n onChange,\n variant = \"segmented\",\n models = [],\n families = SPEC_RUNTIME_FAMILIES,\n effectiveMode,\n effectiveModel,\n reasoningEfforts = DEFAULT_REASONING_EFFORTS,\n locked = false,\n showModel = true,\n showEffort = true,\n showTimeout = false,\n showCost = false,\n actions,\n ariaLabel = \"Runtime\",\n className,\n}: RuntimeBarProps<T>) {\n const [preference, setPreference] = useState<{\n model: string | undefined;\n family: string | undefined;\n }>({ model: effectiveModel, family: undefined });\n if (preference.model !== effectiveModel) {\n setPreference({ model: effectiveModel, family: undefined });\n }\n const preferredFamily =\n preference.model === effectiveModel ? preference.family : undefined;\n const specMode =\n value.mode?.trim() ||\n runtimeModeFromModel(value.model) ||\n effectiveMode?.trim();\n const selection = selectionForRuntime(\n families,\n specMode,\n value.id || value.model || (preferredFamily ? undefined : effectiveModel),\n models,\n preferredFamily,\n );\n const family = familyById(families, selection.family);\n const modes = runtimeModes(families);\n const mode = modes.find((entry) => entry.id === selection.mode);\n if (!mode)\n throw new Error(\n `No available runtime mode for ${JSON.stringify(selection.mode)}`,\n );\n const groups = modelGroupsForMode({ models, families, mode: mode.id });\n const resolvedModel = runtimeModelForValue(\n groups.flatMap((group) => group.models),\n value,\n );\n const selectedModelUnavailable = Boolean(\n !resolvedModel &&\n (value.id || value.model) &&\n runtimeModelForValue(models, value, (entry) => !isSelectableModel(entry)),\n );\n const supportedEfforts = effortOptionsForModel(\n resolvedModel,\n reasoningEfforts,\n );\n // The name an Unspecified model would resolve to, so the picker can say what\n // it inherits instead of leaving the operator guessing.\n const inheritedModelLabel =\n value.model || value.id\n ? undefined\n : (runtimeModelForValue(\n models,\n effectiveModel !== undefined ? { model: effectiveModel } : {},\n isSelectableModel,\n )?.label ?? effectiveModel);\n\n const applyMode = (familyId: string, modeId: string) => {\n setPreference({ model: effectiveModel, family: familyId });\n const next = withRuntimeMode({\n value,\n models,\n families,\n mode: modeId,\n reasoningEfforts,\n });\n if (next !== value) onChange(next);\n };\n\n const applyCustomModel = (model: string) => {\n onChange(\n withOptionalRuntimeValue(withoutCatalogModel(value), \"model\", model),\n );\n };\n // A family's model catalog can serve several modes. Selecting a row must not\n // silently move the user away from the mode they chose.\n const applyModel = (model: ChatModel) => {\n const next = reconcileModelCapabilities(\n withoutCatalogModel(value),\n model,\n reasoningEfforts,\n { mode: mode.id },\n );\n onChange(next);\n };\n const clearModel = () => {\n onChange(withoutCatalogModel(value));\n };\n const applyEffort = (effort: string) =>\n onChange(withOptionalRuntimeValue(value, \"effort\", effort));\n\n const fields = [\n ...(showEffort && supportedEfforts.length > 0\n ? [\n effortField({\n value: value.effort,\n offered: reasoningEfforts,\n supported: supportedEfforts,\n onChange: applyEffort,\n }),\n ]\n : []),\n ...(actions?.fields ?? []),\n ...(showCost\n ? [\n budgetField({\n value: value.budget?.cost,\n onChange: (cost) => onChange(withBudgetLimit(value, \"cost\", cost)),\n }),\n ]\n : []),\n ...(showTimeout\n ? [\n timeoutField({\n value: value.budget?.timeout,\n onChange: (timeout) =>\n onChange(withBudgetLimit(value, \"timeout\", timeout)),\n }),\n ]\n : []),\n ];\n return (\n <RuntimeBarVariantContext.Provider value={variant}>\n <RuntimeBarLayout\n ariaLabel={ariaLabel}\n className={className}\n actions={{ ...actions, fields }}\n identity={{\n family,\n mode,\n modes,\n groups,\n selectedModel: resolvedModel,\n model: value.model,\n unavailable: selectedModelUnavailable,\n inheritedModelLabel,\n locked,\n showModel,\n variant,\n onModeChange: (modeId) => applyMode(family.id, modeId),\n onCustomModel: applyCustomModel,\n onModelSelect: applyModel,\n onModelClear: clearModel,\n onFamilySelect: (familyId) => {\n setPreference({ model: effectiveModel, family: familyId });\n onChange(withoutCatalogModel(value));\n },\n }}\n />\n </RuntimeBarVariantContext.Provider>\n );\n}\n\nfunction withoutCatalogModel<T extends RuntimeBarValue>(value: T): T {\n return withOptionalRuntimeValue(\n withOptionalRuntimeValue(value, \"model\", undefined),\n \"id\",\n undefined,\n );\n}\n\nfunction withOptionalRuntimeValue<T extends RuntimeBarValue>(\n value: T,\n key: keyof RuntimeBarValue,\n next: unknown,\n): T {\n const updated = { ...value } as Record<string, unknown>;\n if (next === undefined || next === \"\") {\n delete updated[key];\n } else {\n updated[key] = next;\n }\n return updated as T;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const availability = require("./availability.cjs");
4
+ const modelCapabilities = require("./model-capabilities.cjs");
5
+ const RuntimeBar_model = require("./RuntimeBar.model.cjs");
6
+ const runtimeMode = require("./runtime-mode.cjs");
7
+ const runtimeFamily = require("../../lib/runtime-family.cjs");
8
+ function runtimeModes(families) {
9
+ return [
10
+ ...new Map(
11
+ families.flatMap((family) => family.modes).filter((mode) => !availability.isUnavailable(mode.availability)).map((mode) => [mode.id, mode])
12
+ ).values()
13
+ ];
14
+ }
15
+ function modelGroupsForMode({
16
+ models,
17
+ families,
18
+ mode
19
+ }) {
20
+ return families.filter(
21
+ (family) => family.modes.some(
22
+ (entry) => entry.id === mode && !availability.isUnavailable(entry.availability)
23
+ )
24
+ ).map((family) => ({
25
+ family,
26
+ models: runtimeMode.modelsForFamily(models, family, mode).filter((model) => {
27
+ var _a, _b;
28
+ const modelMode = ((_a = model.runtime) == null ? void 0 : _a.mode) ?? runtimeFamily.runtimeModeFromModel(((_b = model.runtime) == null ? void 0 : _b.model) ?? model.id);
29
+ return modelMode === void 0 || modelMode === mode;
30
+ })
31
+ }));
32
+ }
33
+ function withRuntimeMode({
34
+ value,
35
+ models,
36
+ families,
37
+ mode,
38
+ reasoningEfforts
39
+ }) {
40
+ if (!runtimeModes(families).some((entry) => entry.id === mode)) {
41
+ throw new Error(`Runtime mode ${JSON.stringify(mode)} is unavailable`);
42
+ }
43
+ const eligible = modelGroupsForMode({ models, families, mode }).flatMap(
44
+ (group) => group.models
45
+ );
46
+ const model = RuntimeBar_model.runtimeModelForValue(eligible, { ...value, mode });
47
+ const next = { ...value, mode };
48
+ delete next.id;
49
+ delete next.model;
50
+ delete next.cliArgs;
51
+ return model ? modelCapabilities.reconcileModelCapabilities(next, model, reasoningEfforts, { mode }) : next;
52
+ }
53
+ exports.modelGroupsForMode = modelGroupsForMode;
54
+ exports.runtimeModes = runtimeModes;
55
+ exports.withRuntimeMode = withRuntimeMode;
56
+ //# sourceMappingURL=RuntimeBar.selection.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeBar.selection.cjs","sources":["../../../src/data/runtime/RuntimeBar.selection.ts"],"sourcesContent":["import type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { isUnavailable } from \"./availability\";\nimport { reconcileModelCapabilities } from \"./model-capabilities\";\nimport { runtimeModelForValue } from \"./RuntimeBar.model\";\nimport {\n modelsForFamily,\n runtimeModeFromModel,\n type SpecRuntimeFamily,\n} from \"./runtime-mode\";\n\nexport function runtimeModes(families: SpecRuntimeFamily[]) {\n return [\n ...new Map(\n families\n .flatMap((family) => family.modes)\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => [mode.id, mode]),\n ).values(),\n ];\n}\n\nexport function modelGroupsForMode({\n models,\n families,\n mode,\n}: {\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n}) {\n return families\n .filter((family) =>\n family.modes.some(\n (entry) => entry.id === mode && !isUnavailable(entry.availability),\n ),\n )\n .map((family) => ({\n family,\n models: modelsForFamily(models, family, mode).filter((model) => {\n const modelMode =\n model.runtime?.mode ??\n runtimeModeFromModel(model.runtime?.model ?? model.id);\n return modelMode === undefined || modelMode === mode;\n }),\n }));\n}\n\nexport function withRuntimeMode<T extends RuntimeBarValue>({\n value,\n models,\n families,\n mode,\n reasoningEfforts,\n}: {\n value: T;\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n reasoningEfforts: readonly string[];\n}): T {\n if (!runtimeModes(families).some((entry) => entry.id === mode)) {\n throw new Error(`Runtime mode ${JSON.stringify(mode)} is unavailable`);\n }\n const eligible = modelGroupsForMode({ models, families, mode }).flatMap(\n (group) => group.models,\n );\n const model = runtimeModelForValue(eligible, { ...value, mode });\n const next = { ...value, mode };\n delete next.id;\n delete next.model;\n delete next.cliArgs;\n return model\n ? reconcileModelCapabilities(next, model, reasoningEfforts, { mode })\n : next;\n}\n"],"names":["isUnavailable","modelsForFamily","runtimeModeFromModel","runtimeModelForValue","reconcileModelCapabilities"],"mappings":";;;;;;;AAWO,SAAS,aAAa,UAA+B;AAC1D,SAAO;AAAA,IACL,GAAG,IAAI;AAAA,MACL,SACG,QAAQ,CAAC,WAAW,OAAO,KAAK,EAChC,OAAO,CAAC,SAAS,CAACA,aAAAA,cAAc,KAAK,YAAY,CAAC,EAClD,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC;AAAA,IAAA,EAChC,OAAA;AAAA,EAAO;AAEb;AAEO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO,SACJ;AAAA,IAAO,CAAC,WACP,OAAO,MAAM;AAAA,MACX,CAAC,UAAU,MAAM,OAAO,QAAQ,CAACA,aAAAA,cAAc,MAAM,YAAY;AAAA,IAAA;AAAA,EACnE,EAED,IAAI,CAAC,YAAY;AAAA,IAChB;AAAA,IACA,QAAQC,YAAAA,gBAAgB,QAAQ,QAAQ,IAAI,EAAE,OAAO,CAAC,UAAU;;AAC9D,YAAM,cACJ,WAAM,YAAN,mBAAe,SACfC,cAAAA,uBAAqB,WAAM,YAAN,mBAAe,UAAS,MAAM,EAAE;AACvD,aAAO,cAAc,UAAa,cAAc;AAAA,IAClD,CAAC;AAAA,EAAA,EACD;AACN;AAEO,SAAS,gBAA2C;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMM;AACJ,MAAI,CAAC,aAAa,QAAQ,EAAE,KAAK,CAAC,UAAU,MAAM,OAAO,IAAI,GAAG;AAC9D,UAAM,IAAI,MAAM,gBAAgB,KAAK,UAAU,IAAI,CAAC,iBAAiB;AAAA,EACvE;AACA,QAAM,WAAW,mBAAmB,EAAE,QAAQ,UAAU,KAAA,CAAM,EAAE;AAAA,IAC9D,CAAC,UAAU,MAAM;AAAA,EAAA;AAEnB,QAAM,QAAQC,iBAAAA,qBAAqB,UAAU,EAAE,GAAG,OAAO,MAAM;AAC/D,QAAM,OAAO,EAAE,GAAG,OAAO,KAAA;AACzB,SAAO,KAAK;AACZ,SAAO,KAAK;AACZ,SAAO,KAAK;AACZ,SAAO,QACHC,kBAAAA,2BAA2B,MAAM,OAAO,kBAAkB,EAAE,KAAA,CAAM,IAClE;AACN;;;;"}
@@ -0,0 +1,20 @@
1
+ import { ChatModel } from '../chat/types.js';
2
+ import { RuntimeBarValue } from './RuntimeBar.js';
3
+ import { SpecRuntimeFamily } from './runtime-mode.js';
4
+ export declare function runtimeModes(families: SpecRuntimeFamily[]): import('./runtime-mode.js').SpecRuntimeModeOption[];
5
+ export declare function modelGroupsForMode({ models, families, mode, }: {
6
+ models: ChatModel[];
7
+ families: SpecRuntimeFamily[];
8
+ mode: string;
9
+ }): {
10
+ family: SpecRuntimeFamily;
11
+ models: ChatModel[];
12
+ }[];
13
+ export declare function withRuntimeMode<T extends RuntimeBarValue>({ value, models, families, mode, reasoningEfforts, }: {
14
+ value: T;
15
+ models: ChatModel[];
16
+ families: SpecRuntimeFamily[];
17
+ mode: string;
18
+ reasoningEfforts: readonly string[];
19
+ }): T;
20
+ //# sourceMappingURL=RuntimeBar.selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeBar.selection.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBar.selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,oDASzD;AAED,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,IAAI,GACL,EAAE;IACD,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;;;IAgBA;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,eAAe,EAAE,EACzD,KAAK,EACL,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,GAAG,CAAC,CAeJ"}
@@ -0,0 +1,56 @@
1
+ import { isUnavailable } from "./availability.js";
2
+ import { reconcileModelCapabilities } from "./model-capabilities.js";
3
+ import { runtimeModelForValue } from "./RuntimeBar.model.js";
4
+ import { modelsForFamily } from "./runtime-mode.js";
5
+ import { runtimeModeFromModel } from "../../lib/runtime-family.js";
6
+ function runtimeModes(families) {
7
+ return [
8
+ ...new Map(
9
+ families.flatMap((family) => family.modes).filter((mode) => !isUnavailable(mode.availability)).map((mode) => [mode.id, mode])
10
+ ).values()
11
+ ];
12
+ }
13
+ function modelGroupsForMode({
14
+ models,
15
+ families,
16
+ mode
17
+ }) {
18
+ return families.filter(
19
+ (family) => family.modes.some(
20
+ (entry) => entry.id === mode && !isUnavailable(entry.availability)
21
+ )
22
+ ).map((family) => ({
23
+ family,
24
+ models: modelsForFamily(models, family, mode).filter((model) => {
25
+ var _a, _b;
26
+ const modelMode = ((_a = model.runtime) == null ? void 0 : _a.mode) ?? runtimeModeFromModel(((_b = model.runtime) == null ? void 0 : _b.model) ?? model.id);
27
+ return modelMode === void 0 || modelMode === mode;
28
+ })
29
+ }));
30
+ }
31
+ function withRuntimeMode({
32
+ value,
33
+ models,
34
+ families,
35
+ mode,
36
+ reasoningEfforts
37
+ }) {
38
+ if (!runtimeModes(families).some((entry) => entry.id === mode)) {
39
+ throw new Error(`Runtime mode ${JSON.stringify(mode)} is unavailable`);
40
+ }
41
+ const eligible = modelGroupsForMode({ models, families, mode }).flatMap(
42
+ (group) => group.models
43
+ );
44
+ const model = runtimeModelForValue(eligible, { ...value, mode });
45
+ const next = { ...value, mode };
46
+ delete next.id;
47
+ delete next.model;
48
+ delete next.cliArgs;
49
+ return model ? reconcileModelCapabilities(next, model, reasoningEfforts, { mode }) : next;
50
+ }
51
+ export {
52
+ modelGroupsForMode,
53
+ runtimeModes,
54
+ withRuntimeMode
55
+ };
56
+ //# sourceMappingURL=RuntimeBar.selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeBar.selection.js","sources":["../../../src/data/runtime/RuntimeBar.selection.ts"],"sourcesContent":["import type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { isUnavailable } from \"./availability\";\nimport { reconcileModelCapabilities } from \"./model-capabilities\";\nimport { runtimeModelForValue } from \"./RuntimeBar.model\";\nimport {\n modelsForFamily,\n runtimeModeFromModel,\n type SpecRuntimeFamily,\n} from \"./runtime-mode\";\n\nexport function runtimeModes(families: SpecRuntimeFamily[]) {\n return [\n ...new Map(\n families\n .flatMap((family) => family.modes)\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => [mode.id, mode]),\n ).values(),\n ];\n}\n\nexport function modelGroupsForMode({\n models,\n families,\n mode,\n}: {\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n}) {\n return families\n .filter((family) =>\n family.modes.some(\n (entry) => entry.id === mode && !isUnavailable(entry.availability),\n ),\n )\n .map((family) => ({\n family,\n models: modelsForFamily(models, family, mode).filter((model) => {\n const modelMode =\n model.runtime?.mode ??\n runtimeModeFromModel(model.runtime?.model ?? model.id);\n return modelMode === undefined || modelMode === mode;\n }),\n }));\n}\n\nexport function withRuntimeMode<T extends RuntimeBarValue>({\n value,\n models,\n families,\n mode,\n reasoningEfforts,\n}: {\n value: T;\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n reasoningEfforts: readonly string[];\n}): T {\n if (!runtimeModes(families).some((entry) => entry.id === mode)) {\n throw new Error(`Runtime mode ${JSON.stringify(mode)} is unavailable`);\n }\n const eligible = modelGroupsForMode({ models, families, mode }).flatMap(\n (group) => group.models,\n );\n const model = runtimeModelForValue(eligible, { ...value, mode });\n const next = { ...value, mode };\n delete next.id;\n delete next.model;\n delete next.cliArgs;\n return model\n ? reconcileModelCapabilities(next, model, reasoningEfforts, { mode })\n : next;\n}\n"],"names":[],"mappings":";;;;;AAWO,SAAS,aAAa,UAA+B;AAC1D,SAAO;AAAA,IACL,GAAG,IAAI;AAAA,MACL,SACG,QAAQ,CAAC,WAAW,OAAO,KAAK,EAChC,OAAO,CAAC,SAAS,CAAC,cAAc,KAAK,YAAY,CAAC,EAClD,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC;AAAA,IAAA,EAChC,OAAA;AAAA,EAAO;AAEb;AAEO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO,SACJ;AAAA,IAAO,CAAC,WACP,OAAO,MAAM;AAAA,MACX,CAAC,UAAU,MAAM,OAAO,QAAQ,CAAC,cAAc,MAAM,YAAY;AAAA,IAAA;AAAA,EACnE,EAED,IAAI,CAAC,YAAY;AAAA,IAChB;AAAA,IACA,QAAQ,gBAAgB,QAAQ,QAAQ,IAAI,EAAE,OAAO,CAAC,UAAU;;AAC9D,YAAM,cACJ,WAAM,YAAN,mBAAe,SACf,uBAAqB,WAAM,YAAN,mBAAe,UAAS,MAAM,EAAE;AACvD,aAAO,cAAc,UAAa,cAAc;AAAA,IAClD,CAAC;AAAA,EAAA,EACD;AACN;AAEO,SAAS,gBAA2C;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMM;AACJ,MAAI,CAAC,aAAa,QAAQ,EAAE,KAAK,CAAC,UAAU,MAAM,OAAO,IAAI,GAAG;AAC9D,UAAM,IAAI,MAAM,gBAAgB,KAAK,UAAU,IAAI,CAAC,iBAAiB;AAAA,EACvE;AACA,QAAM,WAAW,mBAAmB,EAAE,QAAQ,UAAU,KAAA,CAAM,EAAE;AAAA,IAC9D,CAAC,UAAU,MAAM;AAAA,EAAA;AAEnB,QAAM,QAAQ,qBAAqB,UAAU,EAAE,GAAG,OAAO,MAAM;AAC/D,QAAM,OAAO,EAAE,GAAG,OAAO,KAAA;AACzB,SAAO,KAAK;AACZ,SAAO,KAAK;AACZ,SAAO,KAAK;AACZ,SAAO,QACH,2BAA2B,MAAM,OAAO,kBAAkB,EAAE,KAAA,CAAM,IAClE;AACN;"}