@flanksource/clicky-ui 0.3.17 → 0.3.19
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.
- package/dist/ai.cjs +12 -6
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +10 -4
- package/dist/ai.js.map +1 -1
- package/dist/chat.cjs +36 -0
- package/dist/chat.cjs.map +1 -1
- package/dist/chat.js +37 -1
- package/dist/chat.js.map +1 -1
- package/dist/components/Combobox.cjs +122 -153
- package/dist/components/Combobox.cjs.map +1 -1
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +124 -155
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/ComboboxControl.cjs +145 -0
- package/dist/components/ComboboxControl.cjs.map +1 -0
- package/dist/components/ComboboxControl.d.ts +37 -0
- package/dist/components/ComboboxControl.d.ts.map +1 -0
- package/dist/components/ComboboxControl.js +145 -0
- package/dist/components/ComboboxControl.js.map +1 -0
- package/dist/components/ComboboxMenu.cjs +35 -14
- package/dist/components/ComboboxMenu.cjs.map +1 -1
- package/dist/components/ComboboxMenu.d.ts.map +1 -1
- package/dist/components/ComboboxMenu.js +35 -14
- package/dist/components/ComboboxMenu.js.map +1 -1
- package/dist/components/ComboboxTags.cjs +40 -0
- package/dist/components/ComboboxTags.cjs.map +1 -0
- package/dist/components/ComboboxTags.d.ts +8 -0
- package/dist/components/ComboboxTags.d.ts.map +1 -0
- package/dist/components/ComboboxTags.js +40 -0
- package/dist/components/ComboboxTags.js.map +1 -0
- package/dist/components/EndpointSelector.model.cjs +96 -0
- package/dist/components/EndpointSelector.model.cjs.map +1 -0
- package/dist/components/EndpointSelector.model.d.ts +2 -0
- package/dist/components/EndpointSelector.model.d.ts.map +1 -1
- package/dist/components/EndpointSelector.model.js +96 -0
- package/dist/components/EndpointSelector.model.js.map +1 -0
- package/dist/components/ErrorWrapper.cjs +168 -0
- package/dist/components/ErrorWrapper.cjs.map +1 -0
- package/dist/components/ErrorWrapper.d.ts +19 -0
- package/dist/components/ErrorWrapper.d.ts.map +1 -0
- package/dist/components/ErrorWrapper.js +168 -0
- package/dist/components/ErrorWrapper.js.map +1 -0
- package/dist/components/FilterBar.cjs +116 -4
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +37 -2
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +116 -4
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/JSONPathField.cjs +112 -0
- package/dist/components/JSONPathField.cjs.map +1 -0
- package/dist/components/JSONPathField.d.ts +36 -0
- package/dist/components/JSONPathField.d.ts.map +1 -0
- package/dist/components/JSONPathField.js +112 -0
- package/dist/components/JSONPathField.js.map +1 -0
- package/dist/components/JSONPathPlayground.cjs +225 -0
- package/dist/components/JSONPathPlayground.cjs.map +1 -0
- package/dist/components/JSONPathPlayground.d.ts +59 -0
- package/dist/components/JSONPathPlayground.d.ts.map +1 -0
- package/dist/components/JSONPathPlayground.js +225 -0
- package/dist/components/JSONPathPlayground.js.map +1 -0
- package/dist/components/JsonSchemaForm.cjs +8 -4
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +8 -4
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/OnePasswordSelector.cjs +178 -0
- package/dist/components/OnePasswordSelector.cjs.map +1 -0
- package/dist/components/OnePasswordSelector.d.ts +8 -0
- package/dist/components/OnePasswordSelector.d.ts.map +1 -0
- package/dist/components/OnePasswordSelector.js +178 -0
- package/dist/components/OnePasswordSelector.js.map +1 -0
- package/dist/components/OnePasswordSelector.model.cjs +31 -0
- package/dist/components/OnePasswordSelector.model.cjs.map +1 -0
- package/dist/components/OnePasswordSelector.model.d.ts +27 -0
- package/dist/components/OnePasswordSelector.model.d.ts.map +1 -0
- package/dist/components/OnePasswordSelector.model.js +31 -0
- package/dist/components/OnePasswordSelector.model.js.map +1 -0
- package/dist/components/SecretFormField.cjs +142 -0
- package/dist/components/SecretFormField.cjs.map +1 -0
- package/dist/components/SecretFormField.d.ts +9 -0
- package/dist/components/SecretFormField.d.ts.map +1 -0
- package/dist/components/SecretFormField.js +142 -0
- package/dist/components/SecretFormField.js.map +1 -0
- package/dist/components/SecretKeySelector.cjs +20 -14
- package/dist/components/SecretKeySelector.cjs.map +1 -1
- package/dist/components/SecretKeySelector.d.ts +4 -1
- package/dist/components/SecretKeySelector.d.ts.map +1 -1
- package/dist/components/SecretKeySelector.js +20 -14
- package/dist/components/SecretKeySelector.js.map +1 -1
- package/dist/components/TreePickerField.cjs +71 -27
- package/dist/components/TreePickerField.cjs.map +1 -1
- package/dist/components/TreePickerField.d.ts +31 -2
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TreePickerField.js +72 -28
- package/dist/components/TreePickerField.js.map +1 -1
- package/dist/components/TriStateToggle.cjs +53 -0
- package/dist/components/TriStateToggle.cjs.map +1 -0
- package/dist/components/TriStateToggle.d.ts +27 -0
- package/dist/components/TriStateToggle.d.ts.map +1 -0
- package/dist/components/TriStateToggle.js +53 -0
- package/dist/components/TriStateToggle.js.map +1 -0
- package/dist/components/combobox-types.d.ts +25 -1
- package/dist/components/combobox-types.d.ts.map +1 -1
- package/dist/components/combobox-utils.cjs +26 -0
- package/dist/components/combobox-utils.cjs.map +1 -1
- package/dist/components/combobox-utils.d.ts +10 -0
- package/dist/components/combobox-utils.d.ts.map +1 -1
- package/dist/components/combobox-utils.js +26 -0
- package/dist/components/combobox-utils.js.map +1 -1
- package/dist/components/filter-bar-utils.cjs +12 -0
- package/dist/components/filter-bar-utils.cjs.map +1 -1
- package/dist/components/filter-bar-utils.d.ts.map +1 -1
- package/dist/components/filter-bar-utils.js +12 -0
- package/dist/components/filter-bar-utils.js.map +1 -1
- package/dist/components/jotai-bindings-core.cjs.map +1 -1
- package/dist/components/jotai-bindings-core.d.ts +4 -1
- package/dist/components/jotai-bindings-core.d.ts.map +1 -1
- package/dist/components/jotai-bindings-core.js.map +1 -1
- package/dist/components/json-schema-form-accordion-array.cjs +290 -0
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -0
- package/dist/components/json-schema-form-accordion-array.d.ts +7 -0
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -0
- package/dist/components/json-schema-form-accordion-array.js +290 -0
- package/dist/components/json-schema-form-accordion-array.js.map +1 -0
- package/dist/components/json-schema-form-array.cjs +99 -110
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +98 -109
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-error-display.cjs +4 -2
- package/dist/components/json-schema-form-error-display.cjs.map +1 -1
- package/dist/components/json-schema-form-error-display.d.ts +4 -2
- package/dist/components/json-schema-form-error-display.d.ts.map +1 -1
- package/dist/components/json-schema-form-error-display.js +4 -2
- package/dist/components/json-schema-form-error-display.js.map +1 -1
- package/dist/components/json-schema-form-extensions.cjs +10 -0
- package/dist/components/json-schema-form-extensions.cjs.map +1 -0
- package/dist/components/json-schema-form-extensions.d.ts +8 -0
- package/dist/components/json-schema-form-extensions.d.ts.map +1 -0
- package/dist/components/json-schema-form-extensions.js +10 -0
- package/dist/components/json-schema-form-extensions.js.map +1 -0
- package/dist/components/json-schema-form-fields.cjs +25 -101
- package/dist/components/json-schema-form-fields.cjs.map +1 -1
- package/dist/components/json-schema-form-fields.d.ts +1 -32
- package/dist/components/json-schema-form-fields.d.ts.map +1 -1
- package/dist/components/json-schema-form-fields.js +28 -104
- package/dist/components/json-schema-form-fields.js.map +1 -1
- package/dist/components/json-schema-form-item-summary.cjs +131 -0
- package/dist/components/json-schema-form-item-summary.cjs.map +1 -0
- package/dist/components/json-schema-form-item-summary.d.ts +13 -0
- package/dist/components/json-schema-form-item-summary.d.ts.map +1 -0
- package/dist/components/json-schema-form-item-summary.js +131 -0
- package/dist/components/json-schema-form-item-summary.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +156 -0
- package/dist/components/json-schema-form-layout.cjs.map +1 -0
- package/dist/components/json-schema-form-layout.d.ts +43 -0
- package/dist/components/json-schema-form-layout.d.ts.map +1 -0
- package/dist/components/json-schema-form-layout.js +156 -0
- package/dist/components/json-schema-form-layout.js.map +1 -0
- package/dist/components/json-schema-form-lookup-tree.cjs +149 -0
- package/dist/components/json-schema-form-lookup-tree.cjs.map +1 -0
- package/dist/components/json-schema-form-lookup-tree.d.ts +22 -0
- package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -0
- package/dist/components/json-schema-form-lookup-tree.js +149 -0
- package/dist/components/json-schema-form-lookup-tree.js.map +1 -0
- package/dist/components/json-schema-form-object.cjs +11 -4
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +11 -4
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +53 -29
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +53 -29
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +62 -13
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts +1 -0
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +62 -13
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-table-array.cjs +123 -0
- package/dist/components/json-schema-form-table-array.cjs.map +1 -0
- package/dist/components/json-schema-form-table-array.d.ts +7 -0
- package/dist/components/json-schema-form-table-array.d.ts.map +1 -0
- package/dist/components/json-schema-form-table-array.js +123 -0
- package/dist/components/json-schema-form-table-array.js.map +1 -0
- package/dist/components/json-schema-form-tone.cjs +34 -0
- package/dist/components/json-schema-form-tone.cjs.map +1 -0
- package/dist/components/json-schema-form-tone.d.ts +8 -0
- package/dist/components/json-schema-form-tone.d.ts.map +1 -0
- package/dist/components/json-schema-form-tone.js +34 -0
- package/dist/components/json-schema-form-tone.js.map +1 -0
- package/dist/components/json-schema-form-types.d.ts +88 -10
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +47 -4
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +19 -4
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +47 -4
- package/dist/components/json-schema-form-utils.js.map +1 -1
- package/dist/components/jsonPathTree.cjs +189 -0
- package/dist/components/jsonPathTree.cjs.map +1 -0
- package/dist/components/jsonPathTree.d.ts +92 -0
- package/dist/components/jsonPathTree.d.ts.map +1 -0
- package/dist/components/jsonPathTree.js +189 -0
- package/dist/components/jsonPathTree.js.map +1 -0
- package/dist/components/secret-form-extension.cjs +30 -0
- package/dist/components/secret-form-extension.cjs.map +1 -0
- package/dist/components/secret-form-extension.d.ts +23 -0
- package/dist/components/secret-form-extension.d.ts.map +1 -0
- package/dist/components/secret-form-extension.js +30 -0
- package/dist/components/secret-form-extension.js.map +1 -0
- package/dist/components/tri-state.cjs +8 -0
- package/dist/components/tri-state.cjs.map +1 -0
- package/dist/components/tri-state.d.ts +5 -0
- package/dist/components/tri-state.d.ts.map +1 -0
- package/dist/components/tri-state.js +8 -0
- package/dist/components/tri-state.js.map +1 -0
- package/dist/components/useComboboxLayout.cjs +59 -0
- package/dist/components/useComboboxLayout.cjs.map +1 -0
- package/dist/components/useComboboxLayout.d.ts +5 -0
- package/dist/components/useComboboxLayout.d.ts.map +1 -0
- package/dist/components/useComboboxLayout.js +59 -0
- package/dist/components/useComboboxLayout.js.map +1 -0
- package/dist/components.cjs +37 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +20 -4
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +38 -1
- package/dist/components.js.map +1 -1
- package/dist/data/Clicky.cjs +51 -2
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.d.ts +10 -1
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.js +51 -2
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/DataTable.cjs +185 -53
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +63 -3
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +185 -53
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/LogsTable.cjs +10 -1
- package/dist/data/LogsTable.cjs.map +1 -1
- package/dist/data/LogsTable.d.ts +3 -1
- package/dist/data/LogsTable.d.ts.map +1 -1
- package/dist/data/LogsTable.js +10 -1
- package/dist/data/LogsTable.js.map +1 -1
- package/dist/data/TaskExecDetails.cjs +40 -0
- package/dist/data/TaskExecDetails.cjs.map +1 -0
- package/dist/data/TaskExecDetails.d.ts +5 -0
- package/dist/data/TaskExecDetails.d.ts.map +1 -0
- package/dist/data/TaskExecDetails.js +40 -0
- package/dist/data/TaskExecDetails.js.map +1 -0
- package/dist/data/TaskManager.cjs +99 -14
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +100 -15
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskProgress.cjs +59 -14
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +2 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +59 -14
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +12 -1
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/TreeNode.cjs +3 -0
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +3 -0
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.cjs +289 -0
- package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -0
- package/dist/data/ai/AdvancedChatConfig.d.ts +21 -0
- package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -0
- package/dist/data/ai/AdvancedChatConfig.js +289 -0
- package/dist/data/ai/AdvancedChatConfig.js.map +1 -0
- package/dist/data/ai/AdvancedCostsPanel.cjs +120 -0
- package/dist/data/ai/AdvancedCostsPanel.cjs.map +1 -0
- package/dist/data/ai/AdvancedCostsPanel.d.ts +16 -0
- package/dist/data/ai/AdvancedCostsPanel.d.ts.map +1 -0
- package/dist/data/ai/AdvancedCostsPanel.js +120 -0
- package/dist/data/ai/AdvancedCostsPanel.js.map +1 -0
- package/dist/data/ai/ChatWindow.catalogs.cjs +74 -0
- package/dist/data/ai/ChatWindow.catalogs.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.catalogs.d.ts +16 -0
- package/dist/data/ai/ChatWindow.catalogs.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.catalogs.js +74 -0
- package/dist/data/ai/ChatWindow.catalogs.js.map +1 -0
- package/dist/data/ai/ChatWindow.cjs +78 -100
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +80 -102
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.preferences.d.ts +2 -4
- package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.preferences.js.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.cjs +120 -0
- package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.runtime.d.ts +20 -0
- package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.runtime.js +120 -0
- package/dist/data/ai/ChatWindow.runtime.js.map +1 -0
- package/dist/data/ai/ChatWindow.thread.cjs +1 -1
- package/dist/data/ai/ChatWindow.thread.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.thread.js +1 -1
- package/dist/data/ai/ChatWindow.thread.js.map +1 -1
- package/dist/data/ai/ChatWindow.tool-catalog.cjs +20 -0
- package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.tool-catalog.d.ts +17 -1
- package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.tool-catalog.js +20 -0
- package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -1
- package/dist/data/ai/ChatWindow.types.d.ts +13 -5
- package/dist/data/ai/ChatWindow.types.d.ts.map +1 -1
- package/dist/data/ai/ChatWindowManager.cjs +3 -1
- package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
- package/dist/data/ai/ChatWindowManager.js +3 -1
- package/dist/data/ai/ChatWindowManager.js.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.cjs +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.js +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.cjs +2 -2
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +2 -2
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/RuntimeModePicker.cjs +1 -1
- package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
- package/dist/data/ai/RuntimeModePicker.js +1 -1
- package/dist/data/ai/RuntimeModePicker.js.map +1 -1
- package/dist/data/ai/SessionInspector.files.cjs +26 -43
- package/dist/data/ai/SessionInspector.files.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.files.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.files.js +26 -43
- package/dist/data/ai/SessionInspector.files.js.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
- package/dist/data/ai/SessionInspector.model.cjs +1 -1
- package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.model.js +1 -1
- package/dist/data/ai/SessionInspector.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.rows.cjs +4 -16
- package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.rows.js +4 -16
- package/dist/data/ai/SessionViewer.rows.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +12 -3
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +12 -3
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/fields.js +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +2 -2
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
- package/dist/data/ai/ThreadPicker.cjs +65 -3
- package/dist/data/ai/ThreadPicker.cjs.map +1 -1
- package/dist/data/ai/ThreadPicker.d.ts +11 -5
- package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
- package/dist/data/ai/ThreadPicker.js +65 -3
- package/dist/data/ai/ThreadPicker.js.map +1 -1
- package/dist/data/ai/ToolPreferences.cjs +65 -685
- package/dist/data/ai/ToolPreferences.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts +15 -17
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.js +64 -683
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/ToolPreferences.model.cjs +148 -0
- package/dist/data/ai/ToolPreferences.model.cjs.map +1 -0
- package/dist/data/ai/ToolPreferences.model.d.ts +31 -0
- package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -0
- package/dist/data/ai/ToolPreferences.model.js +148 -0
- package/dist/data/ai/ToolPreferences.model.js.map +1 -0
- package/dist/data/ai/ToolPreferencesList.cjs +270 -0
- package/dist/data/ai/ToolPreferencesList.cjs.map +1 -0
- package/dist/data/ai/ToolPreferencesList.d.ts +18 -0
- package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -0
- package/dist/data/ai/ToolPreferencesList.js +270 -0
- package/dist/data/ai/ToolPreferencesList.js.map +1 -0
- package/dist/data/ai/agent-action-icons.cjs.map +1 -1
- package/dist/data/ai/agent-action-icons.js.map +1 -1
- package/dist/data/ai/chat-window-context.cjs +4 -1
- package/dist/data/ai/chat-window-context.cjs.map +1 -1
- package/dist/data/ai/chat-window-context.d.ts +7 -0
- package/dist/data/ai/chat-window-context.d.ts.map +1 -1
- package/dist/data/ai/chat-window-context.js +4 -1
- package/dist/data/ai/chat-window-context.js.map +1 -1
- package/dist/data/ai/index.d.ts +6 -3
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/session-tones.cjs +67 -0
- package/dist/data/ai/session-tones.cjs.map +1 -0
- package/dist/data/ai/session-tones.d.ts +34 -0
- package/dist/data/ai/session-tones.d.ts.map +1 -0
- package/dist/data/ai/session-tones.js +67 -0
- package/dist/data/ai/session-tones.js.map +1 -0
- package/dist/data/ai/thread-costs.cjs +39 -0
- package/dist/data/ai/thread-costs.cjs.map +1 -0
- package/dist/data/ai/thread-costs.d.ts +62 -0
- package/dist/data/ai/thread-costs.d.ts.map +1 -0
- package/dist/data/ai/thread-costs.js +39 -0
- package/dist/data/ai/thread-costs.js.map +1 -0
- package/dist/data/cells/CellFilterActions.cjs +68 -0
- package/dist/data/cells/CellFilterActions.cjs.map +1 -0
- package/dist/data/cells/CellFilterActions.d.ts +15 -0
- package/dist/data/cells/CellFilterActions.d.ts.map +1 -0
- package/dist/data/cells/CellFilterActions.js +68 -0
- package/dist/data/cells/CellFilterActions.js.map +1 -0
- package/dist/data/chat/Chat.cjs +156 -113
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +24 -7
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.cjs +48 -3
- package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
- package/dist/data/chat/Chat.fixtures.d.ts +1 -1
- package/dist/data/chat/Chat.fixtures.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.js +48 -3
- package/dist/data/chat/Chat.fixtures.js.map +1 -1
- package/dist/data/chat/Chat.js +160 -117
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/Chat.runtime.cjs +63 -0
- package/dist/data/chat/Chat.runtime.cjs.map +1 -0
- package/dist/data/chat/Chat.runtime.d.ts +16 -0
- package/dist/data/chat/Chat.runtime.d.ts.map +1 -0
- package/dist/data/chat/Chat.runtime.js +63 -0
- package/dist/data/chat/Chat.runtime.js.map +1 -0
- package/dist/data/chat/ChatRuntimeToolbar.cjs +62 -0
- package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -0
- package/dist/data/chat/ChatRuntimeToolbar.d.ts +14 -0
- package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -0
- package/dist/data/chat/ChatRuntimeToolbar.js +62 -0
- package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -0
- package/dist/data/chat/ToolCall.cjs +86 -24
- package/dist/data/chat/ToolCall.cjs.map +1 -1
- package/dist/data/chat/ToolCall.d.ts +12 -5
- package/dist/data/chat/ToolCall.d.ts.map +1 -1
- package/dist/data/chat/ToolCall.js +86 -24
- package/dist/data/chat/ToolCall.js.map +1 -1
- package/dist/data/chat/approval.cjs +49 -6
- package/dist/data/chat/approval.cjs.map +1 -1
- package/dist/data/chat/approval.d.ts +11 -4
- package/dist/data/chat/approval.d.ts.map +1 -1
- package/dist/data/chat/approval.js +49 -6
- package/dist/data/chat/approval.js.map +1 -1
- package/dist/data/chat/index.d.ts +5 -3
- package/dist/data/chat/index.d.ts.map +1 -1
- package/dist/data/chat/tool-render/ToolArgs.cjs +50 -0
- package/dist/data/chat/tool-render/ToolArgs.cjs.map +1 -0
- package/dist/data/chat/tool-render/ToolArgs.d.ts +7 -0
- package/dist/data/chat/tool-render/ToolArgs.d.ts.map +1 -0
- package/dist/data/chat/tool-render/ToolArgs.js +50 -0
- package/dist/data/chat/tool-render/ToolArgs.js.map +1 -0
- package/dist/data/chat/tool-render/ToolParams.cjs +155 -0
- package/dist/data/chat/tool-render/ToolParams.cjs.map +1 -0
- package/dist/data/chat/tool-render/ToolParams.d.ts +20 -0
- package/dist/data/chat/tool-render/ToolParams.d.ts.map +1 -0
- package/dist/data/chat/tool-render/ToolParams.js +155 -0
- package/dist/data/chat/tool-render/ToolParams.js.map +1 -0
- package/dist/data/chat/tool-render/ToolValue.cjs +140 -0
- package/dist/data/chat/tool-render/ToolValue.cjs.map +1 -0
- package/dist/data/chat/tool-render/ToolValue.d.ts +16 -0
- package/dist/data/chat/tool-render/ToolValue.d.ts.map +1 -0
- package/dist/data/chat/tool-render/ToolValue.js +140 -0
- package/dist/data/chat/tool-render/ToolValue.js.map +1 -0
- package/dist/data/chat/tool-render/adapter.cjs +48 -0
- package/dist/data/chat/tool-render/adapter.cjs.map +1 -0
- package/dist/data/chat/tool-render/adapter.d.ts +57 -0
- package/dist/data/chat/tool-render/adapter.d.ts.map +1 -0
- package/dist/data/chat/tool-render/adapter.js +48 -0
- package/dist/data/chat/tool-render/adapter.js.map +1 -0
- package/dist/data/chat/tool-render/context.cjs +16 -0
- package/dist/data/chat/tool-render/context.cjs.map +1 -0
- package/dist/data/chat/tool-render/context.d.ts +6 -0
- package/dist/data/chat/tool-render/context.d.ts.map +1 -0
- package/dist/data/chat/tool-render/context.js +16 -0
- package/dist/data/chat/tool-render/context.js.map +1 -0
- package/dist/data/chat/tool-render/defaults.cjs +45 -0
- package/dist/data/chat/tool-render/defaults.cjs.map +1 -0
- package/dist/data/chat/tool-render/defaults.d.ts +11 -0
- package/dist/data/chat/tool-render/defaults.d.ts.map +1 -0
- package/dist/data/chat/tool-render/defaults.js +45 -0
- package/dist/data/chat/tool-render/defaults.js.map +1 -0
- package/dist/data/chat/tool-render/index.d.ts +13 -0
- package/dist/data/chat/tool-render/index.d.ts.map +1 -0
- package/dist/data/chat/tool-render/known-tool-views.cjs +208 -0
- package/dist/data/chat/tool-render/known-tool-views.cjs.map +1 -0
- package/dist/data/chat/tool-render/known-tool-views.d.ts +10 -0
- package/dist/data/chat/tool-render/known-tool-views.d.ts.map +1 -0
- package/dist/data/chat/tool-render/known-tool-views.js +208 -0
- package/dist/data/chat/tool-render/known-tool-views.js.map +1 -0
- package/dist/data/chat/tool-render/known-tools.cjs +58 -0
- package/dist/data/chat/tool-render/known-tools.cjs.map +1 -0
- package/dist/data/chat/tool-render/known-tools.d.ts +4 -0
- package/dist/data/chat/tool-render/known-tools.d.ts.map +1 -0
- package/dist/data/chat/tool-render/known-tools.js +58 -0
- package/dist/data/chat/tool-render/known-tools.js.map +1 -0
- package/dist/data/chat/tool-render/normalize.cjs +42 -0
- package/dist/data/chat/tool-render/normalize.cjs.map +1 -0
- package/dist/data/chat/tool-render/normalize.d.ts +13 -0
- package/dist/data/chat/tool-render/normalize.d.ts.map +1 -0
- package/dist/data/chat/tool-render/normalize.js +42 -0
- package/dist/data/chat/tool-render/normalize.js.map +1 -0
- package/dist/data/chat/tool-render/registry.cjs +14 -0
- package/dist/data/chat/tool-render/registry.cjs.map +1 -0
- package/dist/data/chat/tool-render/registry.d.ts +7 -0
- package/dist/data/chat/tool-render/registry.d.ts.map +1 -0
- package/dist/data/chat/tool-render/registry.js +14 -0
- package/dist/data/chat/tool-render/registry.js.map +1 -0
- package/dist/data/chat/tool-render/schema.cjs +57 -0
- package/dist/data/chat/tool-render/schema.cjs.map +1 -0
- package/dist/data/chat/tool-render/schema.d.ts +28 -0
- package/dist/data/chat/tool-render/schema.d.ts.map +1 -0
- package/dist/data/chat/tool-render/schema.js +57 -0
- package/dist/data/chat/tool-render/schema.js.map +1 -0
- package/dist/data/chat/tool-render/shape.cjs +94 -0
- package/dist/data/chat/tool-render/shape.cjs.map +1 -0
- package/dist/data/chat/tool-render/shape.d.ts +39 -0
- package/dist/data/chat/tool-render/shape.d.ts.map +1 -0
- package/dist/data/chat/tool-render/shape.js +94 -0
- package/dist/data/chat/tool-render/shape.js.map +1 -0
- package/dist/data/chat/tool-render/summary.cjs +34 -0
- package/dist/data/chat/tool-render/summary.cjs.map +1 -0
- package/dist/data/chat/tool-render/summary.d.ts +8 -0
- package/dist/data/chat/tool-render/summary.d.ts.map +1 -0
- package/dist/data/chat/tool-render/summary.js +34 -0
- package/dist/data/chat/tool-render/summary.js.map +1 -0
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +7 -0
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/chat/usage-snapshot.cjs +17 -0
- package/dist/data/chat/usage-snapshot.cjs.map +1 -0
- package/dist/data/chat/usage-snapshot.d.ts +21 -0
- package/dist/data/chat/usage-snapshot.d.ts.map +1 -0
- package/dist/data/chat/usage-snapshot.js +17 -0
- package/dist/data/chat/usage-snapshot.js.map +1 -0
- package/dist/data/data-table-filter-values.cjs +103 -0
- package/dist/data/data-table-filter-values.cjs.map +1 -0
- package/dist/data/data-table-filter-values.d.ts +34 -0
- package/dist/data/data-table-filter-values.d.ts.map +1 -0
- package/dist/data/data-table-filter-values.js +103 -0
- package/dist/data/data-table-filter-values.js.map +1 -0
- package/dist/data/data-table-server-filters.cjs +165 -0
- package/dist/data/data-table-server-filters.cjs.map +1 -0
- package/dist/data/data-table-server-filters.d.ts +128 -0
- package/dist/data/data-table-server-filters.d.ts.map +1 -0
- package/dist/data/data-table-server-filters.js +165 -0
- package/dist/data/data-table-server-filters.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.cjs +204 -155
- package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
- package/dist/data/query-browser/QueryBrowser.d.ts +2 -41
- package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
- package/dist/data/query-browser/QueryBrowser.editor.cjs +88 -0
- package/dist/data/query-browser/QueryBrowser.editor.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.editor.d.ts +12 -0
- package/dist/data/query-browser/QueryBrowser.editor.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.editor.js +88 -0
- package/dist/data/query-browser/QueryBrowser.editor.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.js +205 -156
- package/dist/data/query-browser/QueryBrowser.js.map +1 -1
- package/dist/data/query-browser/QueryBrowser.types.cjs +11 -0
- package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts +92 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.js +11 -0
- package/dist/data/query-browser/QueryBrowser.types.js.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +56 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +5 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +56 -0
- package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.cjs +80 -0
- package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.d.ts +16 -0
- package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -0
- package/dist/data/query-browser/QueryBrowserResults.js +80 -0
- package/dist/data/query-browser/QueryBrowserResults.js.map +1 -0
- package/dist/data/query-browser/index.d.ts +2 -1
- package/dist/data/query-browser/index.d.ts.map +1 -1
- package/dist/data/runtime/ProviderStatusPanel.cjs +187 -0
- package/dist/data/runtime/ProviderStatusPanel.cjs.map +1 -0
- package/dist/data/runtime/ProviderStatusPanel.d.ts +10 -0
- package/dist/data/runtime/ProviderStatusPanel.d.ts.map +1 -0
- package/dist/data/runtime/ProviderStatusPanel.js +187 -0
- package/dist/data/runtime/ProviderStatusPanel.js.map +1 -0
- package/dist/data/runtime/RuntimeBar.cjs +147 -0
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBar.d.ts +8 -6
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.js +147 -0
- package/dist/data/runtime/RuntimeBar.js.map +1 -0
- package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBar.model.d.ts +2 -2
- package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.model.js.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBarCombo.cjs +25 -30
- package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBarCombo.d.ts +4 -3
- package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -0
- package/dist/data/{ai → runtime}/RuntimeBarCombo.js +25 -30
- package/dist/data/runtime/RuntimeBarCombo.js.map +1 -0
- package/dist/data/{ai/RuntimeBar.cjs → runtime/RuntimeBarSegments.cjs} +54 -120
- package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -0
- package/dist/data/runtime/RuntimeBarSegments.d.ts +25 -0
- package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -0
- package/dist/data/{ai/RuntimeBar.js → runtime/RuntimeBarSegments.js} +58 -124
- package/dist/data/runtime/RuntimeBarSegments.js.map +1 -0
- package/dist/data/runtime/availability.cjs +11 -0
- package/dist/data/runtime/availability.cjs.map +1 -0
- package/dist/data/runtime/availability.d.ts +6 -0
- package/dist/data/runtime/availability.d.ts.map +1 -0
- package/dist/data/runtime/availability.js +11 -0
- package/dist/data/runtime/availability.js.map +1 -0
- package/dist/data/runtime/model-capabilities.cjs.map +1 -0
- package/dist/data/runtime/model-capabilities.d.ts.map +1 -0
- package/dist/data/runtime/model-capabilities.js.map +1 -0
- package/dist/data/runtime/provider-status.cjs +106 -0
- package/dist/data/runtime/provider-status.cjs.map +1 -0
- package/dist/data/runtime/provider-status.d.ts +24 -0
- package/dist/data/runtime/provider-status.d.ts.map +1 -0
- package/dist/data/runtime/provider-status.js +106 -0
- package/dist/data/runtime/provider-status.js.map +1 -0
- package/dist/data/{ai → runtime}/runtime-mode.cjs +119 -27
- package/dist/data/runtime/runtime-mode.cjs.map +1 -0
- package/dist/data/{ai → runtime}/runtime-mode.d.ts +7 -1
- package/dist/data/runtime/runtime-mode.d.ts.map +1 -0
- package/dist/data/{ai → runtime}/runtime-mode.js +120 -28
- package/dist/data/runtime/runtime-mode.js.map +1 -0
- package/dist/data/task-exec-details.cjs +9 -0
- package/dist/data/task-exec-details.cjs.map +1 -0
- package/dist/data/task-exec-details.d.ts +3 -0
- package/dist/data/task-exec-details.d.ts.map +1 -0
- package/dist/data/task-exec-details.js +9 -0
- package/dist/data/task-exec-details.js.map +1 -0
- package/dist/data/task-query-keys.cjs +26 -0
- package/dist/data/task-query-keys.cjs.map +1 -0
- package/dist/data/task-query-keys.d.ts +27 -0
- package/dist/data/task-query-keys.d.ts.map +1 -0
- package/dist/data/task-query-keys.js +26 -0
- package/dist/data/task-query-keys.js.map +1 -0
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +18 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +6 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +18 -0
- package/dist/data.js.map +1 -1
- package/dist/hooks/use-hotkey.cjs +6 -1
- package/dist/hooks/use-hotkey.cjs.map +1 -1
- package/dist/hooks/use-hotkey.d.ts.map +1 -1
- package/dist/hooks/use-hotkey.js +6 -1
- package/dist/hooks/use-hotkey.js.map +1 -1
- package/dist/hooks/use-task-run.cjs +7 -4
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts +12 -0
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +7 -4
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/registry.cjs +692 -0
- package/dist/icons/registry.cjs.map +1 -0
- package/dist/icons/registry.d.ts +21 -0
- package/dist/icons/registry.d.ts.map +1 -0
- package/dist/icons/registry.js +692 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/icons.cjs +3 -0
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +4 -1
- package/dist/icons.js.map +1 -1
- package/dist/index.cjs +65 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +67 -2
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.cjs +92 -56
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +49 -1
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +92 -56
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppShell.nav.cjs +144 -19
- package/dist/layout/AppShell.nav.cjs.map +1 -1
- package/dist/layout/AppShell.nav.d.ts +6 -1
- package/dist/layout/AppShell.nav.d.ts.map +1 -1
- package/dist/layout/AppShell.nav.js +144 -19
- package/dist/layout/AppShell.nav.js.map +1 -1
- package/dist/layout/SplitPane.cjs +23 -7
- package/dist/layout/SplitPane.cjs.map +1 -1
- package/dist/layout/SplitPane.d.ts +3 -1
- package/dist/layout/SplitPane.d.ts.map +1 -1
- package/dist/layout/SplitPane.js +23 -7
- package/dist/layout/SplitPane.js.map +1 -1
- package/dist/lib/format.cjs +86 -4
- package/dist/lib/format.cjs.map +1 -1
- package/dist/lib/format.d.ts +69 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +86 -4
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/path-tree.cjs +69 -0
- package/dist/lib/path-tree.cjs.map +1 -0
- package/dist/lib/path-tree.d.ts +54 -0
- package/dist/lib/path-tree.d.ts.map +1 -0
- package/dist/lib/path-tree.js +69 -0
- package/dist/lib/path-tree.js.map +1 -0
- package/dist/monaco.d.ts +1 -0
- package/dist/monaco.d.ts.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.cjs +13 -7
- package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
- package/dist/overlay/DropdownMenuSubmenu.js +13 -7
- package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
- package/dist/overlay/Tour.cjs +173 -0
- package/dist/overlay/Tour.cjs.map +1 -0
- package/dist/overlay/Tour.d.ts +61 -0
- package/dist/overlay/Tour.d.ts.map +1 -0
- package/dist/overlay/Tour.js +173 -0
- package/dist/overlay/Tour.js.map +1 -0
- package/dist/overlay/TourCard.cjs +108 -0
- package/dist/overlay/TourCard.cjs.map +1 -0
- package/dist/overlay/TourCard.d.ts +23 -0
- package/dist/overlay/TourCard.d.ts.map +1 -0
- package/dist/overlay/TourCard.js +108 -0
- package/dist/overlay/TourCard.js.map +1 -0
- package/dist/overlay/TourProvider.cjs +160 -0
- package/dist/overlay/TourProvider.cjs.map +1 -0
- package/dist/overlay/TourProvider.d.ts +31 -0
- package/dist/overlay/TourProvider.d.ts.map +1 -0
- package/dist/overlay/TourProvider.js +160 -0
- package/dist/overlay/TourProvider.js.map +1 -0
- package/dist/overlay/TourSpotlight.cjs +47 -0
- package/dist/overlay/TourSpotlight.cjs.map +1 -0
- package/dist/overlay/TourSpotlight.d.ts +12 -0
- package/dist/overlay/TourSpotlight.d.ts.map +1 -0
- package/dist/overlay/TourSpotlight.js +47 -0
- package/dist/overlay/TourSpotlight.js.map +1 -0
- package/dist/overlay/modalStack.cjs +18 -4
- package/dist/overlay/modalStack.cjs.map +1 -1
- package/dist/overlay/modalStack.d.ts +10 -2
- package/dist/overlay/modalStack.d.ts.map +1 -1
- package/dist/overlay/modalStack.js +19 -5
- package/dist/overlay/modalStack.js.map +1 -1
- package/dist/overlay/tour-anchor.cjs +114 -0
- package/dist/overlay/tour-anchor.cjs.map +1 -0
- package/dist/overlay/tour-anchor.d.ts +30 -0
- package/dist/overlay/tour-anchor.d.ts.map +1 -0
- package/dist/overlay/tour-anchor.js +114 -0
- package/dist/overlay/tour-anchor.js.map +1 -0
- package/dist/overlay/tour-context.cjs +12 -0
- package/dist/overlay/tour-context.cjs.map +1 -0
- package/dist/overlay/tour-context.d.ts +40 -0
- package/dist/overlay/tour-context.d.ts.map +1 -0
- package/dist/overlay/tour-context.js +12 -0
- package/dist/overlay/tour-context.js.map +1 -0
- package/dist/overlay/tour-geometry.cjs +65 -0
- package/dist/overlay/tour-geometry.cjs.map +1 -0
- package/dist/overlay/tour-geometry.d.ts +47 -0
- package/dist/overlay/tour-geometry.d.ts.map +1 -0
- package/dist/overlay/tour-geometry.js +65 -0
- package/dist/overlay/tour-geometry.js.map +1 -0
- package/dist/overlay/tour-model.cjs +79 -0
- package/dist/overlay/tour-model.cjs.map +1 -0
- package/dist/overlay/tour-model.d.ts +29 -0
- package/dist/overlay/tour-model.d.ts.map +1 -0
- package/dist/overlay/tour-model.js +79 -0
- package/dist/overlay/tour-model.js.map +1 -0
- package/dist/overlay/tour-progress.cjs +54 -0
- package/dist/overlay/tour-progress.cjs.map +1 -0
- package/dist/overlay/tour-progress.d.ts +40 -0
- package/dist/overlay/tour-progress.d.ts.map +1 -0
- package/dist/overlay/tour-progress.js +54 -0
- package/dist/overlay/tour-progress.js.map +1 -0
- package/dist/overlay/tour-types.d.ts +144 -0
- package/dist/overlay/tour-types.d.ts.map +1 -0
- package/dist/overlay/use-tour-anchor.cjs +43 -0
- package/dist/overlay/use-tour-anchor.cjs.map +1 -0
- package/dist/overlay/use-tour-anchor.d.ts +23 -0
- package/dist/overlay/use-tour-anchor.d.ts.map +1 -0
- package/dist/overlay/use-tour-anchor.js +43 -0
- package/dist/overlay/use-tour-anchor.js.map +1 -0
- package/dist/overlay/use-tour-rect.cjs +33 -0
- package/dist/overlay/use-tour-rect.cjs.map +1 -0
- package/dist/overlay/use-tour-rect.d.ts +12 -0
- package/dist/overlay/use-tour-rect.d.ts.map +1 -0
- package/dist/overlay/use-tour-rect.js +33 -0
- package/dist/overlay/use-tour-rect.js.map +1 -0
- package/dist/overlay/use-tour-step.cjs +66 -0
- package/dist/overlay/use-tour-step.cjs.map +1 -0
- package/dist/overlay/use-tour-step.d.ts +45 -0
- package/dist/overlay/use-tour-step.d.ts.map +1 -0
- package/dist/overlay/use-tour-step.js +66 -0
- package/dist/overlay/use-tour-step.js.map +1 -0
- package/dist/overlay/zIndex.cjs +8 -0
- package/dist/overlay/zIndex.cjs.map +1 -1
- package/dist/overlay/zIndex.d.ts +8 -0
- package/dist/overlay/zIndex.d.ts.map +1 -1
- package/dist/overlay/zIndex.js +8 -0
- package/dist/overlay/zIndex.js.map +1 -1
- package/dist/rpc/CommandOutput.cjs +8 -0
- package/dist/rpc/CommandOutput.cjs.map +1 -1
- package/dist/rpc/CommandOutput.d.ts +4 -1
- package/dist/rpc/CommandOutput.d.ts.map +1 -1
- package/dist/rpc/CommandOutput.js +8 -0
- package/dist/rpc/CommandOutput.js.map +1 -1
- package/dist/rpc/EntityExplorerApp.cjs +10 -16
- package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.js +10 -16
- package/dist/rpc/EntityExplorerApp.js.map +1 -1
- package/dist/rpc/FilterForm.cjs +20 -0
- package/dist/rpc/FilterForm.cjs.map +1 -1
- package/dist/rpc/FilterForm.js +20 -0
- package/dist/rpc/FilterForm.js.map +1 -1
- package/dist/rpc/OperationActionBar.cjs +1 -1
- package/dist/rpc/OperationActionBar.cjs.map +1 -1
- package/dist/rpc/OperationActionBar.js +1 -1
- package/dist/rpc/OperationActionBar.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +83 -7
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +84 -8
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationResultView.cjs +2 -0
- package/dist/rpc/OperationResultView.cjs.map +1 -1
- package/dist/rpc/OperationResultView.d.ts +6 -0
- package/dist/rpc/OperationResultView.d.ts.map +1 -1
- package/dist/rpc/OperationResultView.js +2 -0
- package/dist/rpc/OperationResultView.js.map +1 -1
- package/dist/rpc/SchemaActionForm.cjs +2 -21
- package/dist/rpc/SchemaActionForm.cjs.map +1 -1
- package/dist/rpc/SchemaActionForm.d.ts.map +1 -1
- package/dist/rpc/SchemaActionForm.js +3 -22
- package/dist/rpc/SchemaActionForm.js.map +1 -1
- package/dist/rpc/apiClient.cjs +16 -2
- package/dist/rpc/apiClient.cjs.map +1 -1
- package/dist/rpc/apiClient.d.ts.map +1 -1
- package/dist/rpc/apiClient.js +16 -2
- package/dist/rpc/apiClient.js.map +1 -1
- package/dist/rpc/formMetadata.cjs +123 -49
- package/dist/rpc/formMetadata.cjs.map +1 -1
- package/dist/rpc/formMetadata.d.ts +14 -6
- package/dist/rpc/formMetadata.d.ts.map +1 -1
- package/dist/rpc/formMetadata.js +121 -47
- package/dist/rpc/formMetadata.js.map +1 -1
- package/dist/rpc/operationFilterSearch.cjs +23 -0
- package/dist/rpc/operationFilterSearch.cjs.map +1 -0
- package/dist/rpc/operationFilterSearch.d.ts +22 -0
- package/dist/rpc/operationFilterSearch.d.ts.map +1 -0
- package/dist/rpc/operationFilterSearch.js +23 -0
- package/dist/rpc/operationFilterSearch.js.map +1 -0
- package/dist/rpc/operationLookupFetcher.cjs +28 -0
- package/dist/rpc/operationLookupFetcher.cjs.map +1 -0
- package/dist/rpc/operationLookupFetcher.d.ts +17 -0
- package/dist/rpc/operationLookupFetcher.d.ts.map +1 -0
- package/dist/rpc/operationLookupFetcher.js +28 -0
- package/dist/rpc/operationLookupFetcher.js.map +1 -0
- package/dist/rpc/surfaceNav.cjs +77 -0
- package/dist/rpc/surfaceNav.cjs.map +1 -0
- package/dist/rpc/surfaceNav.d.ts +19 -0
- package/dist/rpc/surfaceNav.d.ts.map +1 -0
- package/dist/rpc/surfaceNav.js +77 -0
- package/dist/rpc/surfaceNav.js.map +1 -0
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +21 -2
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/rpc.cjs +2 -0
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +1 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -0
- package/dist/rpc.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils.cjs +8 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +10 -2
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/data/ai/RuntimeBar.cjs.map +0 -1
- package/dist/data/ai/RuntimeBar.d.ts.map +0 -1
- package/dist/data/ai/RuntimeBar.js.map +0 -1
- package/dist/data/ai/RuntimeBar.model.cjs.map +0 -1
- package/dist/data/ai/RuntimeBar.model.d.ts.map +0 -1
- package/dist/data/ai/RuntimeBar.model.js.map +0 -1
- package/dist/data/ai/RuntimeBarCombo.cjs.map +0 -1
- package/dist/data/ai/RuntimeBarCombo.d.ts.map +0 -1
- package/dist/data/ai/RuntimeBarCombo.js.map +0 -1
- package/dist/data/ai/model-capabilities.cjs.map +0 -1
- package/dist/data/ai/model-capabilities.d.ts.map +0 -1
- package/dist/data/ai/model-capabilities.js.map +0 -1
- package/dist/data/ai/runtime-mode.cjs.map +0 -1
- package/dist/data/ai/runtime-mode.d.ts.map +0 -1
- package/dist/data/ai/runtime-mode.js.map +0 -1
- /package/dist/data/{ai → runtime}/RuntimeBar.model.cjs +0 -0
- /package/dist/data/{ai → runtime}/RuntimeBar.model.js +0 -0
- /package/dist/data/{ai → runtime}/model-capabilities.cjs +0 -0
- /package/dist/data/{ai → runtime}/model-capabilities.d.ts +0 -0
- /package/dist/data/{ai → runtime}/model-capabilities.js +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { ChatModel } from '../chat/types';
|
|
2
|
-
import { AISpecRuntimeValue } from './SpecRuntimeEditor.model';
|
|
1
|
+
import { ChatModel, ChatModelRuntime } from '../chat/types';
|
|
3
2
|
import { SpecRuntimeFamily } from './runtime-mode';
|
|
4
|
-
export type
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
export type RuntimeBarValue = ChatModelRuntime & {
|
|
4
|
+
cliArgs?: Record<string, unknown>;
|
|
5
|
+
};
|
|
6
|
+
export type RuntimeBarProps<T extends RuntimeBarValue = RuntimeBarValue> = {
|
|
7
|
+
value: T;
|
|
8
|
+
onChange: (value: T) => void;
|
|
7
9
|
/** `segmented` uses field triggers; `combo` uses one direct-edit menu. */
|
|
8
10
|
variant?: "combo" | "segmented";
|
|
9
11
|
/** Model catalog. Only the selected family's models are listed; a family the
|
|
@@ -16,5 +18,5 @@ export type RuntimeBarProps = {
|
|
|
16
18
|
className?: string | undefined;
|
|
17
19
|
};
|
|
18
20
|
/** Self-describing runtime controls with segmented and combo presentations. */
|
|
19
|
-
export declare function RuntimeBar({ value, onChange, variant, models, families, reasoningEfforts, ariaLabel, className, }: RuntimeBarProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function RuntimeBar<T extends RuntimeBarValue>({ value, onChange, variant, models, families, reasoningEfforts, ariaLabel, className, }: RuntimeBarProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
20
22
|
//# sourceMappingURL=RuntimeBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBar.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AASjE,OAAO,EAQL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IACzE,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAChC;gFAC4E;IAC5E,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC3C,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAAE,EACpD,KAAK,EACL,QAAQ,EACR,OAAqB,EACrB,MAAW,EACX,QAAgC,EAChC,gBAA4C,EAC5C,SAAqB,EACrB,SAAS,GACV,EAAE,eAAe,CAAC,CAAC,CAAC,2CA2HpB"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { DEFAULT_REASONING_EFFORTS } from "../chat/effort-icons.js";
|
|
3
|
+
import { runtimeModelMatches } from "./RuntimeBar.model.js";
|
|
4
|
+
import { RuntimeBarCombo } from "./RuntimeBarCombo.js";
|
|
5
|
+
import { RuntimeBarSegments } from "./RuntimeBarSegments.js";
|
|
6
|
+
import { isSelectableModel } from "./availability.js";
|
|
7
|
+
import { effortOptionsForModel, reconcileModelCapabilities } from "./model-capabilities.js";
|
|
8
|
+
import { selectionForBackend, SPEC_RUNTIME_FAMILIES, familyById, firstMode, modelsForFamily, backendForFamilyMode, modelBelongsToFamily } from "./runtime-mode.js";
|
|
9
|
+
function RuntimeBar({
|
|
10
|
+
value,
|
|
11
|
+
onChange,
|
|
12
|
+
variant = "segmented",
|
|
13
|
+
models = [],
|
|
14
|
+
families = SPEC_RUNTIME_FAMILIES,
|
|
15
|
+
reasoningEfforts = DEFAULT_REASONING_EFFORTS,
|
|
16
|
+
ariaLabel = "Runtime",
|
|
17
|
+
className
|
|
18
|
+
}) {
|
|
19
|
+
const selection = selectionForBackend(families, value.backend);
|
|
20
|
+
const family = familyById(families, selection.family);
|
|
21
|
+
const mode = family.modes.find((entry) => entry.id === selection.mode) ?? firstMode(family);
|
|
22
|
+
const modelOptions = modelsForFamily(models, family, value.backend);
|
|
23
|
+
const selectedModel = models.find(
|
|
24
|
+
(entry) => {
|
|
25
|
+
var _a;
|
|
26
|
+
return isSelectableModel(entry) && ((_a = entry.runtime) == null ? void 0 : _a.backend) === value.backend && runtimeModelMatches(entry, value);
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
const resolvedModel = selectedModel ?? models.find(
|
|
30
|
+
(entry) => isSelectableModel(entry) && runtimeModelMatches(entry, value)
|
|
31
|
+
);
|
|
32
|
+
const selectedModelUnavailable = Boolean(
|
|
33
|
+
value.model && models.some(
|
|
34
|
+
(entry) => !isSelectableModel(entry) && runtimeModelMatches(entry, value)
|
|
35
|
+
)
|
|
36
|
+
);
|
|
37
|
+
const supportedEfforts = effortOptionsForModel(
|
|
38
|
+
resolvedModel,
|
|
39
|
+
reasoningEfforts
|
|
40
|
+
);
|
|
41
|
+
const applyBackend = (familyId, modeId) => {
|
|
42
|
+
const backend = backendForFamilyMode(families, familyId, modeId);
|
|
43
|
+
if (backend === (value.backend ?? "")) return;
|
|
44
|
+
let next = withOptionalRuntimeValue(
|
|
45
|
+
withRuntimeValue(value, { backend }),
|
|
46
|
+
"cliArgs",
|
|
47
|
+
void 0
|
|
48
|
+
);
|
|
49
|
+
if (!modelBelongsToFamily(
|
|
50
|
+
value.model,
|
|
51
|
+
models,
|
|
52
|
+
familyById(families, familyId),
|
|
53
|
+
backend
|
|
54
|
+
)) {
|
|
55
|
+
next = withoutCatalogModel(next);
|
|
56
|
+
}
|
|
57
|
+
onChange(next);
|
|
58
|
+
};
|
|
59
|
+
const applyCustomModel = (model) => onChange(
|
|
60
|
+
withOptionalRuntimeValue(withoutCatalogModel(value), "model", model)
|
|
61
|
+
);
|
|
62
|
+
const applyModel = (model) => {
|
|
63
|
+
const next = reconcileModelCapabilities(value, model, reasoningEfforts);
|
|
64
|
+
if (!mode.provider || model.provider !== mode.provider) {
|
|
65
|
+
onChange(next);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
onChange(
|
|
69
|
+
withOptionalRuntimeValue(
|
|
70
|
+
withOptionalRuntimeValue(next, "backend", mode.backend),
|
|
71
|
+
"mode",
|
|
72
|
+
mode.id
|
|
73
|
+
)
|
|
74
|
+
);
|
|
75
|
+
};
|
|
76
|
+
const clearModel = () => onChange(withoutCatalogModel(value));
|
|
77
|
+
const applyEffort = (effort) => onChange(withOptionalRuntimeValue(value, "effort", effort));
|
|
78
|
+
if (variant === "combo") {
|
|
79
|
+
return /* @__PURE__ */ jsx(
|
|
80
|
+
RuntimeBarCombo,
|
|
81
|
+
{
|
|
82
|
+
value,
|
|
83
|
+
families,
|
|
84
|
+
family,
|
|
85
|
+
mode,
|
|
86
|
+
selectedMode: selection.mode,
|
|
87
|
+
models: modelOptions,
|
|
88
|
+
selectedModel: resolvedModel,
|
|
89
|
+
selectedModelUnavailable,
|
|
90
|
+
supportedEfforts,
|
|
91
|
+
ariaLabel,
|
|
92
|
+
className,
|
|
93
|
+
onFamilyChange: (familyId) => applyBackend(familyId, selection.mode),
|
|
94
|
+
onModeChange: (modeId) => applyBackend(family.id, modeId),
|
|
95
|
+
onModelSelect: applyModel,
|
|
96
|
+
onModelClear: clearModel,
|
|
97
|
+
onEffortChange: applyEffort
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
return /* @__PURE__ */ jsx(
|
|
102
|
+
RuntimeBarSegments,
|
|
103
|
+
{
|
|
104
|
+
value,
|
|
105
|
+
models,
|
|
106
|
+
modelOptions,
|
|
107
|
+
resolvedModel,
|
|
108
|
+
selectedModelUnavailable,
|
|
109
|
+
families,
|
|
110
|
+
family,
|
|
111
|
+
mode,
|
|
112
|
+
selectedMode: selection.mode,
|
|
113
|
+
reasoningEfforts,
|
|
114
|
+
supportedEfforts,
|
|
115
|
+
ariaLabel,
|
|
116
|
+
className,
|
|
117
|
+
onBackendChange: applyBackend,
|
|
118
|
+
onCustomModel: applyCustomModel,
|
|
119
|
+
onModelSelect: applyModel,
|
|
120
|
+
onModelClear: clearModel,
|
|
121
|
+
onEffortChange: applyEffort
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
function withoutCatalogModel(value) {
|
|
126
|
+
return withOptionalRuntimeValue(
|
|
127
|
+
withOptionalRuntimeValue(value, "model", void 0),
|
|
128
|
+
"id",
|
|
129
|
+
void 0
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
function withRuntimeValue(value, patch) {
|
|
133
|
+
return { ...value, ...patch };
|
|
134
|
+
}
|
|
135
|
+
function withOptionalRuntimeValue(value, key, next) {
|
|
136
|
+
const updated = { ...value };
|
|
137
|
+
if (next === void 0 || next === "") {
|
|
138
|
+
delete updated[key];
|
|
139
|
+
} else {
|
|
140
|
+
updated[key] = next;
|
|
141
|
+
}
|
|
142
|
+
return updated;
|
|
143
|
+
}
|
|
144
|
+
export {
|
|
145
|
+
RuntimeBar
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=RuntimeBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBar.js","sources":["../../../src/data/runtime/RuntimeBar.tsx"],"sourcesContent":["import { DEFAULT_REASONING_EFFORTS } from \"../chat/effort-icons\";\nimport type { ChatModel, ChatModelRuntime } from \"../chat/types\";\nimport { runtimeModelMatches } from \"./RuntimeBar.model\";\nimport { RuntimeBarCombo } from \"./RuntimeBarCombo\";\nimport { RuntimeBarSegments } from \"./RuntimeBarSegments\";\nimport { isSelectableModel } from \"./availability\";\nimport {\n effortOptionsForModel,\n reconcileModelCapabilities,\n} from \"./model-capabilities\";\nimport {\n SPEC_RUNTIME_FAMILIES,\n backendForFamilyMode,\n familyById,\n firstMode,\n modelBelongsToFamily,\n modelsForFamily,\n selectionForBackend,\n type SpecRuntimeFamily,\n} from \"./runtime-mode\";\n\nexport type RuntimeBarValue = ChatModelRuntime & {\n cliArgs?: Record<string, unknown>;\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 /** Effort tiers offered when the catalog does not describe the model. */\n reasoningEfforts?: string[] | 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 reasoningEfforts = DEFAULT_REASONING_EFFORTS,\n ariaLabel = \"Runtime\",\n className,\n}: RuntimeBarProps<T>) {\n const selection = selectionForBackend(families, value.backend);\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, value.backend);\n const selectedModel = models.find(\n (entry) =>\n isSelectableModel(entry) &&\n entry.runtime?.backend === value.backend &&\n runtimeModelMatches(entry, value)\n );\n const resolvedModel =\n selectedModel ??\n models.find(\n (entry) => isSelectableModel(entry) && runtimeModelMatches(entry, value)\n );\n const selectedModelUnavailable = Boolean(\n value.model &&\n models.some(\n (entry) =>\n !isSelectableModel(entry) && runtimeModelMatches(entry, value)\n )\n );\n const supportedEfforts = effortOptionsForModel(\n resolvedModel,\n reasoningEfforts\n );\n\n const applyBackend = (familyId: string, modeId: string) => {\n const backend = backendForFamilyMode(families, familyId, modeId);\n if (backend === (value.backend ?? \"\")) return;\n let next = withOptionalRuntimeValue(\n withRuntimeValue(value, { backend }),\n \"cliArgs\",\n undefined\n );\n if (\n !modelBelongsToFamily(\n value.model,\n models,\n familyById(families, familyId),\n backend\n )\n ) {\n next = withoutCatalogModel(next);\n }\n onChange(next);\n };\n\n const applyCustomModel = (model: string) =>\n onChange(\n withOptionalRuntimeValue(withoutCatalogModel(value), \"model\", model)\n );\n // A menu row carries the backend of the catalog it was listed under, and one\n // catalog serves several backends — claude-cli and claude-cmux models are\n // listed as claude-agent rows. Copying the row's runtime verbatim would let\n // picking a model silently move the user off the mode they chose, so a row\n // drawn from the selected mode's own catalog keeps that mode.\n const applyModel = (model: ChatModel) => {\n const next = reconcileModelCapabilities(value, model, reasoningEfforts);\n if (!mode.provider || model.provider !== mode.provider) {\n onChange(next);\n return;\n }\n onChange(\n withOptionalRuntimeValue(\n withOptionalRuntimeValue(next, \"backend\", mode.backend),\n \"mode\",\n mode.id\n )\n );\n };\n const clearModel = () => onChange(withoutCatalogModel(value));\n const applyEffort = (effort: string) =>\n onChange(withOptionalRuntimeValue(value, \"effort\", effort));\n\n if (variant === \"combo\") {\n return (\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 supportedEfforts={supportedEfforts}\n ariaLabel={ariaLabel}\n className={className}\n onFamilyChange={(familyId) => applyBackend(familyId, selection.mode)}\n onModeChange={(modeId) => applyBackend(family.id, modeId)}\n onModelSelect={applyModel}\n onModelClear={clearModel}\n onEffortChange={applyEffort}\n />\n );\n }\n\n return (\n <RuntimeBarSegments\n value={value}\n models={models}\n modelOptions={modelOptions}\n resolvedModel={resolvedModel}\n selectedModelUnavailable={selectedModelUnavailable}\n families={families}\n family={family}\n mode={mode}\n selectedMode={selection.mode}\n reasoningEfforts={reasoningEfforts}\n supportedEfforts={supportedEfforts}\n ariaLabel={ariaLabel}\n className={className}\n onBackendChange={applyBackend}\n onCustomModel={applyCustomModel}\n onModelSelect={applyModel}\n onModelClear={clearModel}\n onEffortChange={applyEffort}\n />\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 withRuntimeValue<T extends RuntimeBarValue>(\n value: T,\n patch: Partial<RuntimeBarValue>\n): T {\n return { ...value, ...patch };\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 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBar.model.cjs","sources":["../../../src/data/runtime/RuntimeBar.model.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport type { SpecRuntimeFamily } from \"./runtime-mode\";\n\nexport function runtimeFamilyBrand(family: SpecRuntimeFamily): {\n icon: StaticIconComponent | undefined;\n color: string | undefined;\n} {\n const key = providerIcon(family.id) ? family.id : family.provider;\n return { icon: providerIcon(key), color: providerIconColor(key) };\n}\n\nexport function runtimeModelMatches(\n model: ChatModel,\n value: RuntimeBarValue,\n): boolean {\n return (\n (value.id !== undefined &&\n (model.id === value.id || model.runtime?.id === value.id)) ||\n (value.model !== undefined &&\n (model.id === value.model || model.runtime?.model === value.model))\n );\n}\n"],"names":["providerIcon","providerIconColor"],"mappings":";;;AAMO,SAAS,mBAAmB,QAGjC;AACA,QAAM,MAAMA,cAAAA,aAAa,OAAO,EAAE,IAAI,OAAO,KAAK,OAAO;AACzD,SAAO,EAAE,MAAMA,2BAAa,GAAG,GAAG,OAAOC,cAAAA,kBAAkB,GAAG,EAAA;AAChE;AAEO,SAAS,oBACd,OACA,OACS;;AACT,SACG,MAAM,OAAO,WACX,MAAM,OAAO,MAAM,QAAM,WAAM,YAAN,mBAAe,QAAO,MAAM,OACvD,MAAM,UAAU,WACd,MAAM,OAAO,MAAM,WAAS,WAAM,YAAN,mBAAe,WAAU,MAAM;AAElE;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { StaticIconComponent } from '../Icon';
|
|
2
2
|
import { ChatModel } from '../chat/types';
|
|
3
|
-
import {
|
|
3
|
+
import { RuntimeBarValue } from './RuntimeBar';
|
|
4
4
|
import { SpecRuntimeFamily } from './runtime-mode';
|
|
5
5
|
export declare function runtimeFamilyBrand(family: SpecRuntimeFamily): {
|
|
6
6
|
icon: StaticIconComponent | undefined;
|
|
7
7
|
color: string | undefined;
|
|
8
8
|
};
|
|
9
|
-
export declare function runtimeModelMatches(model: ChatModel, value:
|
|
9
|
+
export declare function runtimeModelMatches(model: ChatModel, value: RuntimeBarValue): boolean;
|
|
10
10
|
//# sourceMappingURL=RuntimeBar.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBar.model.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBar.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAC7D,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACtC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAGA;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,eAAe,GACrB,OAAO,CAOT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBar.model.js","sources":["../../../src/data/runtime/RuntimeBar.model.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport type { SpecRuntimeFamily } from \"./runtime-mode\";\n\nexport function runtimeFamilyBrand(family: SpecRuntimeFamily): {\n icon: StaticIconComponent | undefined;\n color: string | undefined;\n} {\n const key = providerIcon(family.id) ? family.id : family.provider;\n return { icon: providerIcon(key), color: providerIconColor(key) };\n}\n\nexport function runtimeModelMatches(\n model: ChatModel,\n value: RuntimeBarValue,\n): boolean {\n return (\n (value.id !== undefined &&\n (model.id === value.id || model.runtime?.id === value.id)) ||\n (value.model !== undefined &&\n (model.id === value.model || model.runtime?.model === value.model))\n );\n}\n"],"names":[],"mappings":";AAMO,SAAS,mBAAmB,QAGjC;AACA,QAAM,MAAM,aAAa,OAAO,EAAE,IAAI,OAAO,KAAK,OAAO;AACzD,SAAO,EAAE,MAAM,aAAa,GAAG,GAAG,OAAO,kBAAkB,GAAG,EAAA;AAChE;AAEO,SAAS,oBACd,OACA,OACS;;AACT,SACG,MAAM,OAAO,WACX,MAAM,OAAO,MAAM,QAAM,WAAM,YAAN,mBAAe,QAAO,MAAM,OACvD,MAAM,UAAU,WACd,MAAM,OAAO,MAAM,WAAS,WAAM,YAAN,mBAAe,WAAU,MAAM;AAElE;"}
|
|
@@ -9,7 +9,7 @@ const Icon = require("../Icon.cjs");
|
|
|
9
9
|
const effortIcons = require("../chat/effort-icons.cjs");
|
|
10
10
|
const providerIcons = require("../chat/provider-icons.cjs");
|
|
11
11
|
const RuntimeBar_model = require("./RuntimeBar.model.cjs");
|
|
12
|
-
const
|
|
12
|
+
const availability = require("./availability.cjs");
|
|
13
13
|
const UiChevronDown = require("../../icons/components/UiChevronDown.cjs");
|
|
14
14
|
const UiCheck = require("../../icons/components/UiCheck.cjs");
|
|
15
15
|
function RuntimeBarCombo({
|
|
@@ -20,6 +20,7 @@ function RuntimeBarCombo({
|
|
|
20
20
|
selectedMode,
|
|
21
21
|
models,
|
|
22
22
|
selectedModel,
|
|
23
|
+
selectedModelUnavailable,
|
|
23
24
|
supportedEfforts,
|
|
24
25
|
ariaLabel,
|
|
25
26
|
className,
|
|
@@ -30,7 +31,7 @@ function RuntimeBarCombo({
|
|
|
30
31
|
onEffortChange
|
|
31
32
|
}) {
|
|
32
33
|
const brand = RuntimeBar_model.runtimeFamilyBrand(family);
|
|
33
|
-
const modelLabel = (selectedModel == null ? void 0 : selectedModel.label) ?? value.model ?? "Prompt default";
|
|
34
|
+
const modelLabel = selectedModelUnavailable ? "Unavailable selection" : (selectedModel == null ? void 0 : selectedModel.label) ?? value.model ?? "Prompt default";
|
|
34
35
|
const effortLabel = value.effort ? effortIcons.effortLevelLabel(value.effort) : "None";
|
|
35
36
|
const effortIcon = value.effort ? effortIcons.effortLevelIcon(value.effort) : void 0;
|
|
36
37
|
const summary = `${ariaLabel}: ${family.label}, ${mode.label}, ${modelLabel}, effort ${effortLabel}`;
|
|
@@ -99,7 +100,6 @@ function RuntimeBarCombo({
|
|
|
99
100
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
100
101
|
ModeSegments,
|
|
101
102
|
{
|
|
102
|
-
families,
|
|
103
103
|
family,
|
|
104
104
|
value: selectedMode,
|
|
105
105
|
onChange: onModeChange
|
|
@@ -142,7 +142,9 @@ function FamilySegments({
|
|
|
142
142
|
value,
|
|
143
143
|
onChange,
|
|
144
144
|
className: "w-full",
|
|
145
|
-
options: families.
|
|
145
|
+
options: families.filter(
|
|
146
|
+
(family) => family.modes.some((mode) => !availability.isUnavailable(mode.availability))
|
|
147
|
+
).map((family) => {
|
|
146
148
|
const brand = RuntimeBar_model.runtimeFamilyBrand(family);
|
|
147
149
|
return {
|
|
148
150
|
id: family.id,
|
|
@@ -154,7 +156,6 @@ function FamilySegments({
|
|
|
154
156
|
);
|
|
155
157
|
}
|
|
156
158
|
function ModeSegments({
|
|
157
|
-
families,
|
|
158
159
|
family,
|
|
159
160
|
value,
|
|
160
161
|
onChange
|
|
@@ -167,16 +168,12 @@ function ModeSegments({
|
|
|
167
168
|
value,
|
|
168
169
|
onChange,
|
|
169
170
|
className: "w-full",
|
|
170
|
-
options:
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
disabled: !supported,
|
|
177
|
-
...mode.icon ? { icon: mode.icon } : {}
|
|
178
|
-
};
|
|
179
|
-
})
|
|
171
|
+
options: family.modes.filter((mode) => !availability.isUnavailable(mode.availability)).map((mode) => ({
|
|
172
|
+
id: mode.id,
|
|
173
|
+
label: mode.label,
|
|
174
|
+
...mode.title ? { title: mode.title } : {},
|
|
175
|
+
...mode.icon ? { icon: mode.icon } : {}
|
|
176
|
+
}))
|
|
180
177
|
}
|
|
181
178
|
);
|
|
182
179
|
}
|
|
@@ -204,7 +201,6 @@ function ModelChoices({
|
|
|
204
201
|
label: model.label,
|
|
205
202
|
title: model.id,
|
|
206
203
|
selected: model.id === selectedId,
|
|
207
|
-
disabled: model.configured === false,
|
|
208
204
|
...icon ? {
|
|
209
205
|
icon,
|
|
210
206
|
iconColor: providerIcons.providerIconColor(model.provider) ?? familyBrand.color
|
|
@@ -219,8 +215,8 @@ function ModelChoices({
|
|
|
219
215
|
function ModelChoice({
|
|
220
216
|
label,
|
|
221
217
|
title,
|
|
218
|
+
detail,
|
|
222
219
|
selected,
|
|
223
|
-
disabled = false,
|
|
224
220
|
icon,
|
|
225
221
|
iconColor,
|
|
226
222
|
onClick
|
|
@@ -230,23 +226,22 @@ function ModelChoice({
|
|
|
230
226
|
{
|
|
231
227
|
variant: "ghost",
|
|
232
228
|
type: "button",
|
|
233
|
-
disabled,
|
|
234
229
|
onClick,
|
|
235
|
-
"aria-label": label,
|
|
230
|
+
"aria-label": detail ? `${label}. ${detail}` : label,
|
|
236
231
|
...title ? { title } : {},
|
|
237
|
-
className: "group flex h-8 w-full items-center justify-start gap-2 rounded-md px-2 text-left hover:bg-muted",
|
|
232
|
+
className: "group flex min-h-8 w-full items-center justify-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted",
|
|
238
233
|
children: [
|
|
239
234
|
icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex size-6 shrink-0 items-center justify-center rounded-md bg-muted/70 ring-1 ring-border/60 group-hover:bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon, className: utils.cn("size-3.5", iconColor) }) }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-6 shrink-0" }),
|
|
240
|
-
/* @__PURE__ */ jsxRuntime.
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
"
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
),
|
|
235
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
236
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
237
|
+
"span",
|
|
238
|
+
{
|
|
239
|
+
className: utils.cn("block truncate text-sm", selected && "font-semibold"),
|
|
240
|
+
children: label
|
|
241
|
+
}
|
|
242
|
+
),
|
|
243
|
+
detail && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block whitespace-normal text-[11px] leading-4 text-muted-foreground", children: detail })
|
|
244
|
+
] }),
|
|
250
245
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
251
246
|
Icon.Icon,
|
|
252
247
|
{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBarCombo.cjs","sources":["../../../src/data/runtime/RuntimeBarCombo.tsx"],"sourcesContent":["import { Button } from \"../../components/button\";\nimport { SegmentedControl } from \"../../components/SegmentedControl\";\nimport { UiCheck, UiChevronDown } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport { DropdownMenu } from \"../../overlay/DropdownMenu\";\nimport { Icon } from \"../Icon\";\nimport {\n effortLevelColor,\n effortLevelIcon,\n effortLevelLabel,\n} from \"../chat/effort-icons\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { runtimeFamilyBrand } from \"./RuntimeBar.model\";\nimport { isUnavailable } from \"./availability\";\nimport {\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"./runtime-mode\";\n\nexport type RuntimeBarComboProps = {\n value: RuntimeBarValue;\n families: SpecRuntimeFamily[];\n family: SpecRuntimeFamily;\n mode: SpecRuntimeModeOption;\n selectedMode: string;\n models: ChatModel[];\n selectedModel: ChatModel | undefined;\n selectedModelUnavailable: boolean;\n supportedEfforts: string[];\n ariaLabel: string;\n className?: string | undefined;\n onFamilyChange: (familyId: string) => void;\n onModeChange: (modeId: string) => void;\n onModelSelect: (model: ChatModel) => void;\n onModelClear: () => void;\n onEffortChange: (effort: string) => void;\n};\n\nexport function RuntimeBarCombo({\n value,\n families,\n family,\n mode,\n selectedMode,\n models,\n selectedModel,\n selectedModelUnavailable,\n supportedEfforts,\n ariaLabel,\n className,\n onFamilyChange,\n onModeChange,\n onModelSelect,\n onModelClear,\n onEffortChange,\n}: RuntimeBarComboProps) {\n const brand = runtimeFamilyBrand(family);\n const modelLabel = selectedModelUnavailable\n ? \"Unavailable selection\"\n : selectedModel?.label ?? value.model ?? \"Prompt default\";\n const effortLabel = value.effort ? effortLevelLabel(value.effort) : \"None\";\n const effortIcon = value.effort ? effortLevelIcon(value.effort) : undefined;\n const summary = `${ariaLabel}: ${family.label}, ${mode.label}, ${modelLabel}, effort ${effortLabel}`;\n\n return (\n <DropdownMenu\n align=\"left\"\n menuLabel={`${ariaLabel} controls`}\n {...(className ? { className } : {})}\n menuClassName=\"max-h-[70vh] w-80 max-w-[calc(100vw-24px)] overflow-y-auto\"\n trigger={\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n title={summary}\n aria-label={summary}\n className=\"max-w-full gap-1.5 px-density-2\"\n >\n {brand.icon && (\n <Icon\n icon={brand.icon}\n className={cn(\"size-4 shrink-0\", brand.color)}\n />\n )}\n {mode.icon && (\n <Icon\n icon={mode.icon}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n )}\n <span className=\"min-w-0 truncate text-xs font-semibold text-foreground\">\n {modelLabel}\n </span>\n {effortIcon && (\n <Icon\n icon={effortIcon}\n className={cn(\n \"size-4 shrink-0\",\n value.effort ? effortLevelColor(value.effort) : undefined\n )}\n />\n )}\n <Icon\n icon={UiChevronDown}\n className=\"size-3 shrink-0 text-muted-foreground/70\"\n />\n </Button>\n }\n >\n {() => (\n <div className=\"p-1 text-xs\">\n <div className=\"space-y-2 border-b border-border px-2 pb-3 pt-2\">\n <FamilySegments\n families={families}\n value={family.id}\n onChange={onFamilyChange}\n />\n <ModeSegments\n family={family}\n value={selectedMode}\n onChange={onModeChange}\n />\n <EffortSlider\n value={value.effort}\n efforts={supportedEfforts}\n onChange={onEffortChange}\n />\n </div>\n <ModelChoices\n models={models}\n familyBrand={brand}\n selectedId={selectedModel?.id ?? value.model}\n onSelect={onModelSelect}\n onClear={onModelClear}\n />\n </div>\n )}\n </DropdownMenu>\n );\n}\n\nfunction FamilySegments({\n families,\n value,\n onChange,\n}: {\n families: SpecRuntimeFamily[];\n value: string;\n onChange: (familyId: string) => void;\n}) {\n return (\n <SegmentedControl\n aria-label=\"Family\"\n size=\"sm\"\n wrap\n value={value}\n onChange={onChange}\n className=\"w-full\"\n options={families\n .filter((family) =>\n family.modes.some((mode) => !isUnavailable(mode.availability))\n )\n .map((family) => {\n const brand = runtimeFamilyBrand(family);\n return {\n id: family.id,\n label: family.label,\n ...(brand.icon ? { icon: brand.icon } : {}),\n };\n })}\n />\n );\n}\n\nfunction ModeSegments({\n family,\n value,\n onChange,\n}: {\n family: SpecRuntimeFamily;\n value: string;\n onChange: (modeId: string) => void;\n}) {\n return (\n <SegmentedControl\n aria-label=\"Runtime mode\"\n size=\"sm\"\n value={value}\n onChange={onChange}\n className=\"w-full\"\n options={family.modes\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => ({\n id: mode.id,\n label: mode.label,\n ...(mode.title ? { title: mode.title } : {}),\n ...(mode.icon ? { icon: mode.icon } : {}),\n }))}\n />\n );\n}\n\nfunction ModelChoices({\n models,\n familyBrand,\n selectedId,\n onSelect,\n onClear,\n}: {\n models: ChatModel[];\n familyBrand: ReturnType<typeof runtimeFamilyBrand>;\n selectedId?: string | undefined;\n onSelect: (model: ChatModel) => void;\n onClear: () => void;\n}) {\n return (\n <div className=\"space-y-0.5 py-1\">\n <ModelChoice\n label=\"Prompt default\"\n selected={!selectedId}\n onClick={onClear}\n />\n {models.map((model) => {\n const icon = providerIcon(model.provider) ?? familyBrand.icon;\n return (\n <ModelChoice\n key={model.id}\n label={model.label}\n title={model.id}\n selected={model.id === selectedId}\n {...(icon\n ? {\n icon,\n iconColor:\n providerIconColor(model.provider) ?? familyBrand.color,\n }\n : {})}\n onClick={() => onSelect(model)}\n />\n );\n })}\n </div>\n );\n}\n\nfunction ModelChoice({\n label,\n title,\n detail,\n selected,\n icon,\n iconColor,\n onClick,\n}: {\n label: string;\n title?: string | undefined;\n detail?: string | undefined;\n selected: boolean;\n icon?: NonNullable<ReturnType<typeof providerIcon>>;\n iconColor?: string | undefined;\n onClick: () => void;\n}) {\n return (\n <Button\n variant=\"ghost\"\n type=\"button\"\n onClick={onClick}\n aria-label={detail ? `${label}. ${detail}` : label}\n {...(title ? { title } : {})}\n className=\"group flex min-h-8 w-full items-center justify-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted\"\n >\n {icon ? (\n <span className=\"inline-flex size-6 shrink-0 items-center justify-center rounded-md bg-muted/70 ring-1 ring-border/60 group-hover:bg-background\">\n <Icon icon={icon} className={cn(\"size-3.5\", iconColor)} />\n </span>\n ) : (\n <span className=\"size-6 shrink-0\" />\n )}\n <span className=\"min-w-0 flex-1\">\n <span\n className={cn(\"block truncate text-sm\", selected && \"font-semibold\")}\n >\n {label}\n </span>\n {detail && (\n <span className=\"block whitespace-normal text-[11px] leading-4 text-muted-foreground\">\n {detail}\n </span>\n )}\n </span>\n <Icon\n icon={UiCheck}\n className={cn(\n \"size-3.5 shrink-0 text-primary\",\n !selected && \"invisible\"\n )}\n />\n </Button>\n );\n}\n\nfunction EffortSlider({\n value,\n efforts,\n onChange,\n}: {\n value?: string | undefined;\n efforts: string[];\n onChange: (effort: string) => void;\n}) {\n const supported = [\n ...new Set(efforts.map((effort) => effort.trim()).filter(Boolean)),\n ];\n if (supported.length === 0) {\n return (\n <div className=\"flex h-8 items-center justify-center text-[11px] text-muted-foreground\">\n Fixed effort for this model\n </div>\n );\n }\n\n const options = [\"\", ...supported];\n const current = value?.trim() ?? \"\";\n const currentIndex = options.indexOf(current);\n const sliderIndex = currentIndex >= 0 ? currentIndex : 0;\n const label =\n currentIndex >= 0\n ? current\n ? effortLevelLabel(current)\n : \"None\"\n : `${effortLevelLabel(current)} unsupported`;\n const percent = (sliderIndex / (options.length - 1)) * 100;\n const firstIcon = effortLevelIcon(supported[0]!);\n const lastIcon = effortLevelIcon(supported[supported.length - 1]!);\n const selectedIcon = current ? effortLevelIcon(current) : undefined;\n\n return (\n <div\n className=\"grid grid-cols-[auto_minmax(0,1fr)_auto] items-start gap-1.5\"\n aria-label=\"Model effort\"\n >\n {firstIcon ? (\n <Icon\n icon={firstIcon}\n className={cn(\"mt-3 size-3.5\", effortLevelColor(supported[0]!))}\n />\n ) : (\n <span className=\"size-3.5\" />\n )}\n <div className=\"relative h-11 pt-1\">\n <input\n type=\"range\"\n min={0}\n max={options.length - 1}\n step={1}\n value={sliderIndex}\n aria-label=\"Reasoning effort\"\n aria-valuetext={label}\n aria-invalid={currentIndex < 0}\n onChange={(event) => {\n const next = options[Number(event.target.value)];\n if (next === undefined) {\n throw new Error(\n `Invalid reasoning effort index: ${event.target.value}`\n );\n }\n onChange(next);\n }}\n className=\"h-1 w-full cursor-pointer appearance-none rounded-full bg-muted accent-foreground [&::-moz-range-thumb]:size-3 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-background [&::-moz-range-thumb]:bg-foreground [&::-webkit-slider-thumb]:size-3 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-background [&::-webkit-slider-thumb]:bg-foreground [&::-webkit-slider-thumb]:shadow-sm\"\n />\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute top-7 -translate-x-1/2\"\n style={{ left: `${percent}%` }}\n >\n <span\n className={cn(\n \"inline-flex h-5 shrink-0 items-center gap-1 rounded-full border px-1.5 text-[10px] font-semibold leading-none\",\n currentIndex < 0\n ? \"border-destructive/25 bg-destructive/10 text-destructive\"\n : current\n ? cn(\"border-current/25 bg-muted\", effortLevelColor(current))\n : \"border-border bg-muted text-muted-foreground\"\n )}\n title={`Effort: ${label}`}\n >\n {selectedIcon && <Icon icon={selectedIcon} className=\"size-3\" />}\n {label}\n </span>\n </span>\n </div>\n {lastIcon ? (\n <Icon\n icon={lastIcon}\n className={cn(\n \"mt-3 size-3.5\",\n effortLevelColor(supported[supported.length - 1]!)\n )}\n />\n ) : (\n <span className=\"size-3.5\" />\n )}\n </div>\n );\n}\n"],"names":["runtimeFamilyBrand","effortLevelLabel","effortLevelIcon","jsx","DropdownMenu","jsxs","Button","Icon","cn","effortLevelColor","UiChevronDown","SegmentedControl","isUnavailable","providerIcon","providerIconColor","UiCheck"],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { ChatModel } from '../chat/types';
|
|
2
|
-
import {
|
|
2
|
+
import { RuntimeBarValue } from './RuntimeBar';
|
|
3
3
|
import { SpecRuntimeFamily, SpecRuntimeModeOption } from './runtime-mode';
|
|
4
4
|
export type RuntimeBarComboProps = {
|
|
5
|
-
value:
|
|
5
|
+
value: RuntimeBarValue;
|
|
6
6
|
families: SpecRuntimeFamily[];
|
|
7
7
|
family: SpecRuntimeFamily;
|
|
8
8
|
mode: SpecRuntimeModeOption;
|
|
9
9
|
selectedMode: string;
|
|
10
10
|
models: ChatModel[];
|
|
11
11
|
selectedModel: ChatModel | undefined;
|
|
12
|
+
selectedModelUnavailable: boolean;
|
|
12
13
|
supportedEfforts: string[];
|
|
13
14
|
ariaLabel: string;
|
|
14
15
|
className?: string | undefined;
|
|
@@ -18,5 +19,5 @@ export type RuntimeBarComboProps = {
|
|
|
18
19
|
onModelClear: () => void;
|
|
19
20
|
onEffortChange: (effort: string) => void;
|
|
20
21
|
};
|
|
21
|
-
export declare function RuntimeBarCombo({ value, families, family, mode, selectedMode, models, selectedModel, supportedEfforts, ariaLabel, className, onFamilyChange, onModeChange, onModelSelect, onModelClear, onEffortChange, }: RuntimeBarComboProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function RuntimeBarCombo({ value, families, family, mode, selectedMode, models, selectedModel, selectedModelUnavailable, supportedEfforts, ariaLabel, className, onFamilyChange, onModeChange, onModelSelect, onModelClear, onEffortChange, }: RuntimeBarComboProps): import("react/jsx-runtime").JSX.Element;
|
|
22
23
|
//# sourceMappingURL=RuntimeBarCombo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBarCombo.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarCombo.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,wBAAwB,EAAE,OAAO,CAAC;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,GACf,EAAE,oBAAoB,2CAqFtB"}
|
|
@@ -7,7 +7,7 @@ import { Icon } from "../Icon.js";
|
|
|
7
7
|
import { effortLevelLabel, effortLevelIcon, effortLevelColor } from "../chat/effort-icons.js";
|
|
8
8
|
import { providerIcon, providerIconColor } from "../chat/provider-icons.js";
|
|
9
9
|
import { runtimeFamilyBrand } from "./RuntimeBar.model.js";
|
|
10
|
-
import {
|
|
10
|
+
import { isUnavailable } from "./availability.js";
|
|
11
11
|
import { UiChevronDown } from "../../icons/components/UiChevronDown.js";
|
|
12
12
|
import { UiCheck } from "../../icons/components/UiCheck.js";
|
|
13
13
|
function RuntimeBarCombo({
|
|
@@ -18,6 +18,7 @@ function RuntimeBarCombo({
|
|
|
18
18
|
selectedMode,
|
|
19
19
|
models,
|
|
20
20
|
selectedModel,
|
|
21
|
+
selectedModelUnavailable,
|
|
21
22
|
supportedEfforts,
|
|
22
23
|
ariaLabel,
|
|
23
24
|
className,
|
|
@@ -28,7 +29,7 @@ function RuntimeBarCombo({
|
|
|
28
29
|
onEffortChange
|
|
29
30
|
}) {
|
|
30
31
|
const brand = runtimeFamilyBrand(family);
|
|
31
|
-
const modelLabel = (selectedModel == null ? void 0 : selectedModel.label) ?? value.model ?? "Prompt default";
|
|
32
|
+
const modelLabel = selectedModelUnavailable ? "Unavailable selection" : (selectedModel == null ? void 0 : selectedModel.label) ?? value.model ?? "Prompt default";
|
|
32
33
|
const effortLabel = value.effort ? effortLevelLabel(value.effort) : "None";
|
|
33
34
|
const effortIcon = value.effort ? effortLevelIcon(value.effort) : void 0;
|
|
34
35
|
const summary = `${ariaLabel}: ${family.label}, ${mode.label}, ${modelLabel}, effort ${effortLabel}`;
|
|
@@ -97,7 +98,6 @@ function RuntimeBarCombo({
|
|
|
97
98
|
/* @__PURE__ */ jsx(
|
|
98
99
|
ModeSegments,
|
|
99
100
|
{
|
|
100
|
-
families,
|
|
101
101
|
family,
|
|
102
102
|
value: selectedMode,
|
|
103
103
|
onChange: onModeChange
|
|
@@ -140,7 +140,9 @@ function FamilySegments({
|
|
|
140
140
|
value,
|
|
141
141
|
onChange,
|
|
142
142
|
className: "w-full",
|
|
143
|
-
options: families.
|
|
143
|
+
options: families.filter(
|
|
144
|
+
(family) => family.modes.some((mode) => !isUnavailable(mode.availability))
|
|
145
|
+
).map((family) => {
|
|
144
146
|
const brand = runtimeFamilyBrand(family);
|
|
145
147
|
return {
|
|
146
148
|
id: family.id,
|
|
@@ -152,7 +154,6 @@ function FamilySegments({
|
|
|
152
154
|
);
|
|
153
155
|
}
|
|
154
156
|
function ModeSegments({
|
|
155
|
-
families,
|
|
156
157
|
family,
|
|
157
158
|
value,
|
|
158
159
|
onChange
|
|
@@ -165,16 +166,12 @@ function ModeSegments({
|
|
|
165
166
|
value,
|
|
166
167
|
onChange,
|
|
167
168
|
className: "w-full",
|
|
168
|
-
options:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
disabled: !supported,
|
|
175
|
-
...mode.icon ? { icon: mode.icon } : {}
|
|
176
|
-
};
|
|
177
|
-
})
|
|
169
|
+
options: family.modes.filter((mode) => !isUnavailable(mode.availability)).map((mode) => ({
|
|
170
|
+
id: mode.id,
|
|
171
|
+
label: mode.label,
|
|
172
|
+
...mode.title ? { title: mode.title } : {},
|
|
173
|
+
...mode.icon ? { icon: mode.icon } : {}
|
|
174
|
+
}))
|
|
178
175
|
}
|
|
179
176
|
);
|
|
180
177
|
}
|
|
@@ -202,7 +199,6 @@ function ModelChoices({
|
|
|
202
199
|
label: model.label,
|
|
203
200
|
title: model.id,
|
|
204
201
|
selected: model.id === selectedId,
|
|
205
|
-
disabled: model.configured === false,
|
|
206
202
|
...icon ? {
|
|
207
203
|
icon,
|
|
208
204
|
iconColor: providerIconColor(model.provider) ?? familyBrand.color
|
|
@@ -217,8 +213,8 @@ function ModelChoices({
|
|
|
217
213
|
function ModelChoice({
|
|
218
214
|
label,
|
|
219
215
|
title,
|
|
216
|
+
detail,
|
|
220
217
|
selected,
|
|
221
|
-
disabled = false,
|
|
222
218
|
icon,
|
|
223
219
|
iconColor,
|
|
224
220
|
onClick
|
|
@@ -228,23 +224,22 @@ function ModelChoice({
|
|
|
228
224
|
{
|
|
229
225
|
variant: "ghost",
|
|
230
226
|
type: "button",
|
|
231
|
-
disabled,
|
|
232
227
|
onClick,
|
|
233
|
-
"aria-label": label,
|
|
228
|
+
"aria-label": detail ? `${label}. ${detail}` : label,
|
|
234
229
|
...title ? { title } : {},
|
|
235
|
-
className: "group flex h-8 w-full items-center justify-start gap-2 rounded-md px-2 text-left hover:bg-muted",
|
|
230
|
+
className: "group flex min-h-8 w-full items-center justify-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted",
|
|
236
231
|
children: [
|
|
237
232
|
icon ? /* @__PURE__ */ jsx("span", { className: "inline-flex size-6 shrink-0 items-center justify-center rounded-md bg-muted/70 ring-1 ring-border/60 group-hover:bg-background", children: /* @__PURE__ */ jsx(Icon, { icon, className: cn("size-3.5", iconColor) }) }) : /* @__PURE__ */ jsx("span", { className: "size-6 shrink-0" }),
|
|
238
|
-
/* @__PURE__ */
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
"
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
),
|
|
233
|
+
/* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
234
|
+
/* @__PURE__ */ jsx(
|
|
235
|
+
"span",
|
|
236
|
+
{
|
|
237
|
+
className: cn("block truncate text-sm", selected && "font-semibold"),
|
|
238
|
+
children: label
|
|
239
|
+
}
|
|
240
|
+
),
|
|
241
|
+
detail && /* @__PURE__ */ jsx("span", { className: "block whitespace-normal text-[11px] leading-4 text-muted-foreground", children: detail })
|
|
242
|
+
] }),
|
|
248
243
|
/* @__PURE__ */ jsx(
|
|
249
244
|
Icon,
|
|
250
245
|
{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBarCombo.js","sources":["../../../src/data/runtime/RuntimeBarCombo.tsx"],"sourcesContent":["import { Button } from \"../../components/button\";\nimport { SegmentedControl } from \"../../components/SegmentedControl\";\nimport { UiCheck, UiChevronDown } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport { DropdownMenu } from \"../../overlay/DropdownMenu\";\nimport { Icon } from \"../Icon\";\nimport {\n effortLevelColor,\n effortLevelIcon,\n effortLevelLabel,\n} from \"../chat/effort-icons\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { runtimeFamilyBrand } from \"./RuntimeBar.model\";\nimport { isUnavailable } from \"./availability\";\nimport {\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"./runtime-mode\";\n\nexport type RuntimeBarComboProps = {\n value: RuntimeBarValue;\n families: SpecRuntimeFamily[];\n family: SpecRuntimeFamily;\n mode: SpecRuntimeModeOption;\n selectedMode: string;\n models: ChatModel[];\n selectedModel: ChatModel | undefined;\n selectedModelUnavailable: boolean;\n supportedEfforts: string[];\n ariaLabel: string;\n className?: string | undefined;\n onFamilyChange: (familyId: string) => void;\n onModeChange: (modeId: string) => void;\n onModelSelect: (model: ChatModel) => void;\n onModelClear: () => void;\n onEffortChange: (effort: string) => void;\n};\n\nexport function RuntimeBarCombo({\n value,\n families,\n family,\n mode,\n selectedMode,\n models,\n selectedModel,\n selectedModelUnavailable,\n supportedEfforts,\n ariaLabel,\n className,\n onFamilyChange,\n onModeChange,\n onModelSelect,\n onModelClear,\n onEffortChange,\n}: RuntimeBarComboProps) {\n const brand = runtimeFamilyBrand(family);\n const modelLabel = selectedModelUnavailable\n ? \"Unavailable selection\"\n : selectedModel?.label ?? value.model ?? \"Prompt default\";\n const effortLabel = value.effort ? effortLevelLabel(value.effort) : \"None\";\n const effortIcon = value.effort ? effortLevelIcon(value.effort) : undefined;\n const summary = `${ariaLabel}: ${family.label}, ${mode.label}, ${modelLabel}, effort ${effortLabel}`;\n\n return (\n <DropdownMenu\n align=\"left\"\n menuLabel={`${ariaLabel} controls`}\n {...(className ? { className } : {})}\n menuClassName=\"max-h-[70vh] w-80 max-w-[calc(100vw-24px)] overflow-y-auto\"\n trigger={\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n title={summary}\n aria-label={summary}\n className=\"max-w-full gap-1.5 px-density-2\"\n >\n {brand.icon && (\n <Icon\n icon={brand.icon}\n className={cn(\"size-4 shrink-0\", brand.color)}\n />\n )}\n {mode.icon && (\n <Icon\n icon={mode.icon}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n )}\n <span className=\"min-w-0 truncate text-xs font-semibold text-foreground\">\n {modelLabel}\n </span>\n {effortIcon && (\n <Icon\n icon={effortIcon}\n className={cn(\n \"size-4 shrink-0\",\n value.effort ? effortLevelColor(value.effort) : undefined\n )}\n />\n )}\n <Icon\n icon={UiChevronDown}\n className=\"size-3 shrink-0 text-muted-foreground/70\"\n />\n </Button>\n }\n >\n {() => (\n <div className=\"p-1 text-xs\">\n <div className=\"space-y-2 border-b border-border px-2 pb-3 pt-2\">\n <FamilySegments\n families={families}\n value={family.id}\n onChange={onFamilyChange}\n />\n <ModeSegments\n family={family}\n value={selectedMode}\n onChange={onModeChange}\n />\n <EffortSlider\n value={value.effort}\n efforts={supportedEfforts}\n onChange={onEffortChange}\n />\n </div>\n <ModelChoices\n models={models}\n familyBrand={brand}\n selectedId={selectedModel?.id ?? value.model}\n onSelect={onModelSelect}\n onClear={onModelClear}\n />\n </div>\n )}\n </DropdownMenu>\n );\n}\n\nfunction FamilySegments({\n families,\n value,\n onChange,\n}: {\n families: SpecRuntimeFamily[];\n value: string;\n onChange: (familyId: string) => void;\n}) {\n return (\n <SegmentedControl\n aria-label=\"Family\"\n size=\"sm\"\n wrap\n value={value}\n onChange={onChange}\n className=\"w-full\"\n options={families\n .filter((family) =>\n family.modes.some((mode) => !isUnavailable(mode.availability))\n )\n .map((family) => {\n const brand = runtimeFamilyBrand(family);\n return {\n id: family.id,\n label: family.label,\n ...(brand.icon ? { icon: brand.icon } : {}),\n };\n })}\n />\n );\n}\n\nfunction ModeSegments({\n family,\n value,\n onChange,\n}: {\n family: SpecRuntimeFamily;\n value: string;\n onChange: (modeId: string) => void;\n}) {\n return (\n <SegmentedControl\n aria-label=\"Runtime mode\"\n size=\"sm\"\n value={value}\n onChange={onChange}\n className=\"w-full\"\n options={family.modes\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => ({\n id: mode.id,\n label: mode.label,\n ...(mode.title ? { title: mode.title } : {}),\n ...(mode.icon ? { icon: mode.icon } : {}),\n }))}\n />\n );\n}\n\nfunction ModelChoices({\n models,\n familyBrand,\n selectedId,\n onSelect,\n onClear,\n}: {\n models: ChatModel[];\n familyBrand: ReturnType<typeof runtimeFamilyBrand>;\n selectedId?: string | undefined;\n onSelect: (model: ChatModel) => void;\n onClear: () => void;\n}) {\n return (\n <div className=\"space-y-0.5 py-1\">\n <ModelChoice\n label=\"Prompt default\"\n selected={!selectedId}\n onClick={onClear}\n />\n {models.map((model) => {\n const icon = providerIcon(model.provider) ?? familyBrand.icon;\n return (\n <ModelChoice\n key={model.id}\n label={model.label}\n title={model.id}\n selected={model.id === selectedId}\n {...(icon\n ? {\n icon,\n iconColor:\n providerIconColor(model.provider) ?? familyBrand.color,\n }\n : {})}\n onClick={() => onSelect(model)}\n />\n );\n })}\n </div>\n );\n}\n\nfunction ModelChoice({\n label,\n title,\n detail,\n selected,\n icon,\n iconColor,\n onClick,\n}: {\n label: string;\n title?: string | undefined;\n detail?: string | undefined;\n selected: boolean;\n icon?: NonNullable<ReturnType<typeof providerIcon>>;\n iconColor?: string | undefined;\n onClick: () => void;\n}) {\n return (\n <Button\n variant=\"ghost\"\n type=\"button\"\n onClick={onClick}\n aria-label={detail ? `${label}. ${detail}` : label}\n {...(title ? { title } : {})}\n className=\"group flex min-h-8 w-full items-center justify-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted\"\n >\n {icon ? (\n <span className=\"inline-flex size-6 shrink-0 items-center justify-center rounded-md bg-muted/70 ring-1 ring-border/60 group-hover:bg-background\">\n <Icon icon={icon} className={cn(\"size-3.5\", iconColor)} />\n </span>\n ) : (\n <span className=\"size-6 shrink-0\" />\n )}\n <span className=\"min-w-0 flex-1\">\n <span\n className={cn(\"block truncate text-sm\", selected && \"font-semibold\")}\n >\n {label}\n </span>\n {detail && (\n <span className=\"block whitespace-normal text-[11px] leading-4 text-muted-foreground\">\n {detail}\n </span>\n )}\n </span>\n <Icon\n icon={UiCheck}\n className={cn(\n \"size-3.5 shrink-0 text-primary\",\n !selected && \"invisible\"\n )}\n />\n </Button>\n );\n}\n\nfunction EffortSlider({\n value,\n efforts,\n onChange,\n}: {\n value?: string | undefined;\n efforts: string[];\n onChange: (effort: string) => void;\n}) {\n const supported = [\n ...new Set(efforts.map((effort) => effort.trim()).filter(Boolean)),\n ];\n if (supported.length === 0) {\n return (\n <div className=\"flex h-8 items-center justify-center text-[11px] text-muted-foreground\">\n Fixed effort for this model\n </div>\n );\n }\n\n const options = [\"\", ...supported];\n const current = value?.trim() ?? \"\";\n const currentIndex = options.indexOf(current);\n const sliderIndex = currentIndex >= 0 ? currentIndex : 0;\n const label =\n currentIndex >= 0\n ? current\n ? effortLevelLabel(current)\n : \"None\"\n : `${effortLevelLabel(current)} unsupported`;\n const percent = (sliderIndex / (options.length - 1)) * 100;\n const firstIcon = effortLevelIcon(supported[0]!);\n const lastIcon = effortLevelIcon(supported[supported.length - 1]!);\n const selectedIcon = current ? effortLevelIcon(current) : undefined;\n\n return (\n <div\n className=\"grid grid-cols-[auto_minmax(0,1fr)_auto] items-start gap-1.5\"\n aria-label=\"Model effort\"\n >\n {firstIcon ? (\n <Icon\n icon={firstIcon}\n className={cn(\"mt-3 size-3.5\", effortLevelColor(supported[0]!))}\n />\n ) : (\n <span className=\"size-3.5\" />\n )}\n <div className=\"relative h-11 pt-1\">\n <input\n type=\"range\"\n min={0}\n max={options.length - 1}\n step={1}\n value={sliderIndex}\n aria-label=\"Reasoning effort\"\n aria-valuetext={label}\n aria-invalid={currentIndex < 0}\n onChange={(event) => {\n const next = options[Number(event.target.value)];\n if (next === undefined) {\n throw new Error(\n `Invalid reasoning effort index: ${event.target.value}`\n );\n }\n onChange(next);\n }}\n className=\"h-1 w-full cursor-pointer appearance-none rounded-full bg-muted accent-foreground [&::-moz-range-thumb]:size-3 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-background [&::-moz-range-thumb]:bg-foreground [&::-webkit-slider-thumb]:size-3 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-background [&::-webkit-slider-thumb]:bg-foreground [&::-webkit-slider-thumb]:shadow-sm\"\n />\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute top-7 -translate-x-1/2\"\n style={{ left: `${percent}%` }}\n >\n <span\n className={cn(\n \"inline-flex h-5 shrink-0 items-center gap-1 rounded-full border px-1.5 text-[10px] font-semibold leading-none\",\n currentIndex < 0\n ? \"border-destructive/25 bg-destructive/10 text-destructive\"\n : current\n ? cn(\"border-current/25 bg-muted\", effortLevelColor(current))\n : \"border-border bg-muted text-muted-foreground\"\n )}\n title={`Effort: ${label}`}\n >\n {selectedIcon && <Icon icon={selectedIcon} className=\"size-3\" />}\n {label}\n </span>\n </span>\n </div>\n {lastIcon ? (\n <Icon\n icon={lastIcon}\n className={cn(\n \"mt-3 size-3.5\",\n effortLevelColor(supported[supported.length - 1]!)\n )}\n />\n ) : (\n <span className=\"size-3.5\" />\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|