@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeBarSegments.js","sources":["../../../src/data/runtime/RuntimeBarSegments.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { InputField } from \"../../components/InputField\";\nimport { UiCheck, UiChevronDown } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport {\n DropdownMenu,\n type DropdownMenuItem,\n} from \"../../overlay/DropdownMenu\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport {\n effortLevelColor,\n effortLevelIcon,\n effortLevelLabel,\n} from \"../chat/effort-icons\";\nimport { providerIcon } from \"../chat/provider-icons\";\nimport type { ChatModel } from \"../chat/types\";\nimport { runtimeFamilyBrand } from \"./RuntimeBar.model\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { isUnavailable } from \"./availability\";\nimport {\n modelsForFamily,\n type SpecRuntimeFamily,\n type SpecRuntimeModeOption,\n} from \"./runtime-mode\";\n\nexport type RuntimeBarSegmentsProps = {\n value: RuntimeBarValue;\n models: ChatModel[];\n modelOptions: ChatModel[];\n resolvedModel: ChatModel | undefined;\n selectedModelUnavailable: boolean;\n families: SpecRuntimeFamily[];\n family: SpecRuntimeFamily;\n mode: SpecRuntimeModeOption;\n selectedMode: string;\n reasoningEfforts: string[];\n supportedEfforts: string[];\n ariaLabel: string;\n className?: string | undefined;\n onBackendChange: (familyId: string, modeId: string) => void;\n onCustomModel: (model: string) => void;\n onModelSelect: (model: ChatModel) => void;\n onModelClear: () => void;\n onEffortChange: (effort: string) => void;\n};\n\nexport function RuntimeBarSegments({\n value,\n models,\n modelOptions,\n resolvedModel,\n selectedModelUnavailable,\n families,\n family,\n mode,\n selectedMode,\n reasoningEfforts,\n supportedEfforts,\n ariaLabel,\n className,\n onBackendChange,\n onCustomModel,\n onModelSelect,\n onModelClear,\n onEffortChange,\n}: RuntimeBarSegmentsProps) {\n const brand = runtimeFamilyBrand(family);\n const modelLabel = selectedModelUnavailable\n ? \"Unavailable selection\"\n : (resolvedModel?.label ?? value.model ?? \"Default\");\n\n return (\n <div\n role=\"group\"\n aria-label={ariaLabel}\n className={cn(\n \"inline-flex h-control-h w-fit max-w-full items-stretch overflow-hidden rounded-md border border-input bg-background\",\n className,\n )}\n >\n <RuntimeSegment\n menuLabel=\"Family\"\n title={`Family — ${family.label}`}\n items={familyItems({\n families,\n models,\n selectedId: family.id,\n onSelect: (familyId) => onBackendChange(familyId, selectedMode),\n })}\n >\n {brand.icon && (\n <Icon\n icon={brand.icon}\n className={cn(\"size-4 shrink-0\", brand.color)}\n />\n )}\n <span className={CAPTION_CLASS}>{family.label}</span>\n </RuntimeSegment>\n <RuntimeSegment\n menuLabel=\"Runtime mode\"\n title={mode.title ?? \"Runtime mode\"}\n items={modeItems({\n family,\n selectedId: selectedMode,\n onSelect: (modeId) => onBackendChange(family.id, modeId),\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={CAPTION_CLASS}>{mode.label}</span>\n </RuntimeSegment>\n <RuntimeSegment\n menuLabel=\"Model\"\n title={\n selectedModelUnavailable\n ? \"Model — unavailable selection\"\n : value.model\n ? `Model — ${value.model}`\n : \"Model — prompt default\"\n }\n className=\"min-w-0 max-w-56 flex-1 [&>span]:min-w-0 [&>span]:w-full [&>span>button]:w-full\"\n header={\n <div className=\"grid gap-1\">\n <span className={KEY_CLASS}>Model id</span>\n <InputField\n value={selectedModelUnavailable ? \"\" : (value.model ?? \"\")}\n onChange={onCustomModel}\n {...(selectedModelUnavailable\n ? { placeholder: \"Unavailable selection\" }\n : {})}\n aria-label=\"Model id\"\n inputClassName=\"font-mono text-xs\"\n className=\"bg-background\"\n />\n </div>\n }\n items={modelItems({\n models: modelOptions,\n group: `${family.label} models`,\n selectedId: selectedModelUnavailable\n ? undefined\n : (resolvedModel?.id ?? value.model),\n onSelect: onModelSelect,\n onClear: onModelClear,\n })}\n >\n <span className=\"min-w-0 truncate font-mono text-xs text-foreground\">\n {modelLabel}\n </span>\n </RuntimeSegment>\n {supportedEfforts.length > 0 && (\n <RuntimeSegment\n menuLabel=\"Reasoning effort\"\n title=\"Reasoning effort\"\n items={effortItems({\n offered: effortUniverse(\n reasoningEfforts,\n supportedEfforts,\n value.effort,\n ),\n supported: supportedEfforts,\n selected: value.effort,\n onSelect: onEffortChange,\n })}\n >\n <span className={KEY_CLASS}>Effort</span>\n <EffortGlyph effort={value.effort} />\n <span className={CAPTION_CLASS}>\n {value.effort ? effortLevelLabel(value.effort) : \"None\"}\n </span>\n </RuntimeSegment>\n )}\n </div>\n );\n}\n\nconst CAPTION_CLASS = \"truncate text-xs font-semibold text-foreground\";\nconst KEY_CLASS =\n \"text-[11px] font-semibold uppercase leading-none tracking-wide text-muted-foreground\";\n\nfunction RuntimeSegment({\n items,\n menuLabel,\n title,\n header,\n className,\n children,\n}: {\n items: DropdownMenuItem[];\n menuLabel: string;\n title: string;\n header?: ReactNode;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <DropdownMenu\n align=\"left\"\n menuLabel={menuLabel}\n items={items}\n {...(header ? { header } : {})}\n menuClassName=\"min-w-56 max-w-80\"\n className={cn(\"border-l border-border first:border-l-0\", className)}\n trigger={\n <button\n type=\"button\"\n title={title}\n className=\"inline-flex h-full min-w-0 items-center gap-1.5 px-density-2 transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring [[aria-expanded=true]_&]:bg-muted\"\n >\n {children}\n <Icon\n icon={UiChevronDown}\n className=\"size-3 shrink-0 text-muted-foreground/70\"\n />\n </button>\n }\n />\n );\n}\n\nfunction EffortGlyph({ effort }: { effort?: string | undefined }) {\n const glyph = effort ? effortLevelIcon(effort) : undefined;\n if (!glyph) return null;\n return (\n <Icon\n icon={glyph}\n className={cn(\n \"size-4 shrink-0\",\n effort ? effortLevelColor(effort) : undefined,\n )}\n />\n );\n}\n\nfunction itemLabel({\n text,\n hint,\n selected,\n stacked = false,\n}: {\n text: string;\n hint?: string | undefined;\n selected: boolean;\n stacked?: boolean | undefined;\n}): ReactNode {\n return (\n <>\n <span className=\"min-w-0 flex-1\">\n <span className={cn(\"block truncate\", selected && \"font-semibold\")}>\n {text}\n </span>\n {hint && stacked && (\n <span className=\"block whitespace-normal text-[11px] leading-4 text-muted-foreground\">\n {hint}\n </span>\n )}\n </span>\n {hint && !stacked && (\n <span className=\"shrink-0 text-[11px] text-muted-foreground\">\n {hint}\n </span>\n )}\n <Icon\n icon={UiCheck}\n className={cn(\n \"size-3.5 shrink-0 text-primary\",\n !selected && \"invisible\",\n )}\n />\n </>\n );\n}\n\nfunction familyItems({\n families,\n models,\n selectedId,\n onSelect,\n}: {\n families: SpecRuntimeFamily[];\n models: ChatModel[];\n selectedId: string;\n onSelect: (familyId: string) => void;\n}): DropdownMenuItem[] {\n return families\n .filter((family) =>\n family.modes.some((mode) => !isUnavailable(mode.availability)),\n )\n .map((family) => {\n const brand = runtimeFamilyBrand(family);\n const count = modelsForFamily(models, family).length;\n return {\n group: \"Family\",\n label: itemLabel({\n text: family.label,\n ...(count > 0 ? { hint: `${count} models` } : {}),\n selected: family.id === selectedId,\n }),\n ...(brand.icon ? { icon: brand.icon } : {}),\n onSelect: () => onSelect(family.id),\n };\n });\n}\n\nfunction modeItems({\n family,\n selectedId,\n onSelect,\n}: {\n family: SpecRuntimeFamily;\n selectedId: string;\n onSelect: (modeId: string) => void;\n}): DropdownMenuItem[] {\n return family.modes\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => ({\n group: \"Mode · runtime\",\n label: itemLabel({\n text: mode.label,\n ...(mode.title ? { hint: mode.title } : {}),\n selected: mode.id === selectedId,\n }),\n ...(mode.icon ? { icon: mode.icon } : {}),\n ...(mode.title ? { title: mode.title } : {}),\n onSelect: () => onSelect(mode.id),\n }));\n}\n\nfunction modelItems({\n models,\n group,\n selectedId,\n onSelect,\n onClear,\n}: {\n models: ChatModel[];\n group: string;\n selectedId?: string | undefined;\n onSelect: (model: ChatModel) => void;\n onClear: () => void;\n}): DropdownMenuItem[] {\n const clear: DropdownMenuItem = {\n group: \"Model\",\n label: itemLabel({\n text: \"Prompt default\",\n hint: \"no override\",\n selected: !selectedId,\n }),\n onSelect: onClear,\n };\n return [\n clear,\n ...models.map((model) => {\n const glyph: StaticIconComponent | undefined = providerIcon(\n model.provider,\n );\n return {\n group,\n label: itemLabel({\n text: model.label,\n ...(model.id === model.label ? {} : { hint: model.id }),\n selected: model.id === selectedId,\n stacked: true,\n }),\n ...(glyph ? { icon: glyph } : {}),\n onSelect: () => onSelect(model),\n };\n }),\n ];\n}\n\nfunction effortItems({\n offered,\n supported,\n selected,\n onSelect,\n}: {\n offered: string[];\n supported: string[];\n selected?: string | undefined;\n onSelect: (effort: string) => void;\n}): DropdownMenuItem[] {\n const current = selected?.trim() ?? \"\";\n const none: DropdownMenuItem = {\n group: \"Reasoning effort\",\n label: itemLabel({\n text: \"None\",\n hint: \"single pass\",\n selected: current === \"\",\n }),\n onSelect: () => onSelect(\"\"),\n };\n return [\n none,\n ...offered.map((effort) => {\n const glyph = effortLevelIcon(effort);\n const usable = supported.includes(effort);\n return {\n group: \"Reasoning effort\",\n label: itemLabel({\n text: effortLevelLabel(effort),\n ...(usable ? {} : { hint: \"unsupported\" }),\n selected: effort === current,\n }),\n ...(glyph ? { icon: glyph } : {}),\n disabled: !usable,\n onSelect: () => onSelect(effort),\n };\n }),\n ];\n}\n\nfunction effortUniverse(\n offered: readonly string[],\n supported: readonly string[],\n selected: string | undefined,\n): string[] {\n const all = [...offered, ...supported, selected ?? \"\"]\n .map((effort) => effort.trim())\n .filter(Boolean);\n return [...new Set(all)];\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function isUnavailable(availability) {
|
|
4
|
+
return Boolean(availability && availability.state !== "available");
|
|
5
|
+
}
|
|
6
|
+
function isSelectableModel(model) {
|
|
7
|
+
return model.configured !== false && !isUnavailable(model.availability);
|
|
8
|
+
}
|
|
9
|
+
exports.isSelectableModel = isSelectableModel;
|
|
10
|
+
exports.isUnavailable = isUnavailable;
|
|
11
|
+
//# sourceMappingURL=availability.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"availability.cjs","sources":["../../../src/data/runtime/availability.ts"],"sourcesContent":["import type { ChatModel, RuntimeAvailability } from \"../chat/types\";\n\nexport function availabilityText(\n availability: RuntimeAvailability | undefined\n): string | undefined {\n if (!availability || availability.state === \"available\") return undefined;\n return [availability.reason, availability.remediation]\n .map((part) => part?.trim())\n .filter(Boolean)\n .join(\" \");\n}\n\nexport function isUnavailable(\n availability: RuntimeAvailability | undefined\n): boolean {\n return Boolean(availability && availability.state !== \"available\");\n}\n\nexport function isSelectableModel(model: ChatModel): boolean {\n return model.configured !== false && !isUnavailable(model.availability);\n}\n\nexport function unsupportedAvailability(\n familyLabel: string,\n modeLabel: string,\n supportedLabels: string[]\n): RuntimeAvailability {\n return {\n state: \"unsupported\",\n reason: `${familyLabel} does not provide ${modeLabel} mode.`,\n remediation: `Choose ${formatChoices(supportedLabels)}.`,\n };\n}\n\nfunction formatChoices(choices: string[]): string {\n if (choices.length === 0) return \"a supported mode\";\n if (choices.length === 1) return choices[0]!;\n return `${choices.slice(0, -1).join(\", \")} or ${choices.at(-1)}`;\n}\n"],"names":[],"mappings":";;AAYO,SAAS,cACd,cACS;AACT,SAAO,QAAQ,gBAAgB,aAAa,UAAU,WAAW;AACnE;AAEO,SAAS,kBAAkB,OAA2B;AAC3D,SAAO,MAAM,eAAe,SAAS,CAAC,cAAc,MAAM,YAAY;AACxE;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ChatModel, RuntimeAvailability } from '../chat/types';
|
|
2
|
+
export declare function availabilityText(availability: RuntimeAvailability | undefined): string | undefined;
|
|
3
|
+
export declare function isUnavailable(availability: RuntimeAvailability | undefined): boolean;
|
|
4
|
+
export declare function isSelectableModel(model: ChatModel): boolean;
|
|
5
|
+
export declare function unsupportedAvailability(familyLabel: string, modeLabel: string, supportedLabels: string[]): RuntimeAvailability;
|
|
6
|
+
//# sourceMappingURL=availability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"availability.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/availability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpE,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,mBAAmB,GAAG,SAAS,GAC5C,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,aAAa,CAC3B,YAAY,EAAE,mBAAmB,GAAG,SAAS,GAC5C,OAAO,CAET;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EAAE,GACxB,mBAAmB,CAMrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function isUnavailable(availability) {
|
|
2
|
+
return Boolean(availability && availability.state !== "available");
|
|
3
|
+
}
|
|
4
|
+
function isSelectableModel(model) {
|
|
5
|
+
return model.configured !== false && !isUnavailable(model.availability);
|
|
6
|
+
}
|
|
7
|
+
export {
|
|
8
|
+
isSelectableModel,
|
|
9
|
+
isUnavailable
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=availability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"availability.js","sources":["../../../src/data/runtime/availability.ts"],"sourcesContent":["import type { ChatModel, RuntimeAvailability } from \"../chat/types\";\n\nexport function availabilityText(\n availability: RuntimeAvailability | undefined\n): string | undefined {\n if (!availability || availability.state === \"available\") return undefined;\n return [availability.reason, availability.remediation]\n .map((part) => part?.trim())\n .filter(Boolean)\n .join(\" \");\n}\n\nexport function isUnavailable(\n availability: RuntimeAvailability | undefined\n): boolean {\n return Boolean(availability && availability.state !== \"available\");\n}\n\nexport function isSelectableModel(model: ChatModel): boolean {\n return model.configured !== false && !isUnavailable(model.availability);\n}\n\nexport function unsupportedAvailability(\n familyLabel: string,\n modeLabel: string,\n supportedLabels: string[]\n): RuntimeAvailability {\n return {\n state: \"unsupported\",\n reason: `${familyLabel} does not provide ${modeLabel} mode.`,\n remediation: `Choose ${formatChoices(supportedLabels)}.`,\n };\n}\n\nfunction formatChoices(choices: string[]): string {\n if (choices.length === 0) return \"a supported mode\";\n if (choices.length === 1) return choices[0]!;\n return `${choices.slice(0, -1).join(\", \")} or ${choices.at(-1)}`;\n}\n"],"names":[],"mappings":"AAYO,SAAS,cACd,cACS;AACT,SAAO,QAAQ,gBAAgB,aAAa,UAAU,WAAW;AACnE;AAEO,SAAS,kBAAkB,OAA2B;AAC3D,SAAO,MAAM,eAAe,SAAS,CAAC,cAAc,MAAM,YAAY;AACxE;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-capabilities.cjs","sources":["../../../src/data/runtime/model-capabilities.ts"],"sourcesContent":["import type { ChatModel, ChatModelRuntime } from \"../chat/types\";\n\n// A runtime control edits exactly the wire value a catalog row\n// carries (`reconcileModelCapabilities` copies one onto the other), so it stays\n// one declaration — a field added to the catalog shape cannot drift out of the\n// editable shape.\nexport type ModelRuntimeSelection = ChatModelRuntime;\n\nexport function effortOptionsForModel(\n model: ChatModel | undefined,\n fallbackEfforts: readonly string[],\n): string[] {\n if (!model?.capabilitiesKnown) return [...fallbackEfforts];\n if (!model.reasoning) return [];\n return [...(model.supportedEfforts ?? [])];\n}\n\nexport function reconcileModelCapabilities<T extends ModelRuntimeSelection>(\n value: T,\n model: ChatModel | undefined,\n fallbackEfforts: readonly string[],\n): T {\n const next = { ...value } as ModelRuntimeSelection;\n if (model?.runtime) {\n delete next.model;\n delete next.id;\n delete next.backend;\n delete next.temperature;\n delete next.effort;\n delete next.noCache;\n delete next.fallbacks;\n Object.assign(next, model.runtime);\n } else if (model) {\n next.model = model.id;\n }\n\n const efforts = effortOptionsForModel(model, fallbackEfforts);\n if (model?.capabilitiesKnown && efforts.length === 0) {\n delete next.effort;\n } else if (\n efforts.length > 0 &&\n (!next.effort || !efforts.includes(next.effort))\n ) {\n const preferred = model?.defaultEffort;\n next.effort =\n preferred && efforts.includes(preferred)\n ? preferred\n : efforts.includes(\"medium\")\n ? \"medium\"\n : efforts[0]!;\n }\n\n if (model?.temperature === false) delete next.temperature;\n return next as T;\n}\n"],"names":[],"mappings":";;AAQO,SAAS,sBACd,OACA,iBACU;AACV,MAAI,EAAC,+BAAO,mBAAmB,QAAO,CAAC,GAAG,eAAe;AACzD,MAAI,CAAC,MAAM,UAAW,QAAO,CAAA;AAC7B,SAAO,CAAC,GAAI,MAAM,oBAAoB,EAAG;AAC3C;AAEO,SAAS,2BACd,OACA,OACA,iBACG;AACH,QAAM,OAAO,EAAE,GAAG,MAAA;AAClB,MAAI,+BAAO,SAAS;AAClB,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,OAAO,MAAM,MAAM,OAAO;AAAA,EACnC,WAAW,OAAO;AAChB,SAAK,QAAQ,MAAM;AAAA,EACrB;AAEA,QAAM,UAAU,sBAAsB,OAAO,eAAe;AAC5D,OAAI,+BAAO,sBAAqB,QAAQ,WAAW,GAAG;AACpD,WAAO,KAAK;AAAA,EACd,WACE,QAAQ,SAAS,MAChB,CAAC,KAAK,UAAU,CAAC,QAAQ,SAAS,KAAK,MAAM,IAC9C;AACA,UAAM,YAAY,+BAAO;AACzB,SAAK,SACH,aAAa,QAAQ,SAAS,SAAS,IACnC,YACA,QAAQ,SAAS,QAAQ,IACvB,WACF,QAAQ,CAAC;AAAA,EACjB;AAEA,OAAI,+BAAO,iBAAgB,MAAO,QAAO,KAAK;AAC9C,SAAO;AACT;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-capabilities.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/model-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjE,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAErD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,MAAM,EAAE,CAIV;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,qBAAqB,EACxE,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,SAAS,GAAG,SAAS,EAC5B,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,CAAC,CAiCH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-capabilities.js","sources":["../../../src/data/runtime/model-capabilities.ts"],"sourcesContent":["import type { ChatModel, ChatModelRuntime } from \"../chat/types\";\n\n// A runtime control edits exactly the wire value a catalog row\n// carries (`reconcileModelCapabilities` copies one onto the other), so it stays\n// one declaration — a field added to the catalog shape cannot drift out of the\n// editable shape.\nexport type ModelRuntimeSelection = ChatModelRuntime;\n\nexport function effortOptionsForModel(\n model: ChatModel | undefined,\n fallbackEfforts: readonly string[],\n): string[] {\n if (!model?.capabilitiesKnown) return [...fallbackEfforts];\n if (!model.reasoning) return [];\n return [...(model.supportedEfforts ?? [])];\n}\n\nexport function reconcileModelCapabilities<T extends ModelRuntimeSelection>(\n value: T,\n model: ChatModel | undefined,\n fallbackEfforts: readonly string[],\n): T {\n const next = { ...value } as ModelRuntimeSelection;\n if (model?.runtime) {\n delete next.model;\n delete next.id;\n delete next.backend;\n delete next.temperature;\n delete next.effort;\n delete next.noCache;\n delete next.fallbacks;\n Object.assign(next, model.runtime);\n } else if (model) {\n next.model = model.id;\n }\n\n const efforts = effortOptionsForModel(model, fallbackEfforts);\n if (model?.capabilitiesKnown && efforts.length === 0) {\n delete next.effort;\n } else if (\n efforts.length > 0 &&\n (!next.effort || !efforts.includes(next.effort))\n ) {\n const preferred = model?.defaultEffort;\n next.effort =\n preferred && efforts.includes(preferred)\n ? preferred\n : efforts.includes(\"medium\")\n ? \"medium\"\n : efforts[0]!;\n }\n\n if (model?.temperature === false) delete next.temperature;\n return next as T;\n}\n"],"names":[],"mappings":"AAQO,SAAS,sBACd,OACA,iBACU;AACV,MAAI,EAAC,+BAAO,mBAAmB,QAAO,CAAC,GAAG,eAAe;AACzD,MAAI,CAAC,MAAM,UAAW,QAAO,CAAA;AAC7B,SAAO,CAAC,GAAI,MAAM,oBAAoB,EAAG;AAC3C;AAEO,SAAS,2BACd,OACA,OACA,iBACG;AACH,QAAM,OAAO,EAAE,GAAG,MAAA;AAClB,MAAI,+BAAO,SAAS;AAClB,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,KAAK;AACZ,WAAO,OAAO,MAAM,MAAM,OAAO;AAAA,EACnC,WAAW,OAAO;AAChB,SAAK,QAAQ,MAAM;AAAA,EACrB;AAEA,QAAM,UAAU,sBAAsB,OAAO,eAAe;AAC5D,OAAI,+BAAO,sBAAqB,QAAQ,WAAW,GAAG;AACpD,WAAO,KAAK;AAAA,EACd,WACE,QAAQ,SAAS,MAChB,CAAC,KAAK,UAAU,CAAC,QAAQ,SAAS,KAAK,MAAM,IAC9C;AACA,UAAM,YAAY,+BAAO;AACzB,SAAK,SACH,aAAa,QAAQ,SAAS,SAAS,IACnC,YACA,QAAQ,SAAS,QAAQ,IACvB,WACF,QAAQ,CAAC;AAAA,EACjB;AAEA,OAAI,+BAAO,iBAAgB,MAAO,QAAO,KAAK;AAC9C,SAAO;AACT;"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const availability = require("./availability.cjs");
|
|
4
|
+
function providerStatusGroups(models, families) {
|
|
5
|
+
const unmatched = new Set(models);
|
|
6
|
+
const groups = families.map((family) => {
|
|
7
|
+
const providers = /* @__PURE__ */ new Set([
|
|
8
|
+
family.provider,
|
|
9
|
+
...family.modes.map((mode) => mode.provider).filter(isString)
|
|
10
|
+
]);
|
|
11
|
+
const familyModels = models.filter(
|
|
12
|
+
(model) => providers.has(model.provider)
|
|
13
|
+
);
|
|
14
|
+
for (const model of familyModels) unmatched.delete(model);
|
|
15
|
+
return buildProviderGroup(
|
|
16
|
+
family.id,
|
|
17
|
+
family.label,
|
|
18
|
+
family.id,
|
|
19
|
+
family.modes.map((mode) => ({
|
|
20
|
+
id: mode.backend,
|
|
21
|
+
label: mode.label,
|
|
22
|
+
availability: mode.availability ?? AVAILABLE
|
|
23
|
+
})),
|
|
24
|
+
familyModels
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
const modelsByProvider = /* @__PURE__ */ new Map();
|
|
28
|
+
for (const model of unmatched) {
|
|
29
|
+
const providerModels = modelsByProvider.get(model.provider) ?? [];
|
|
30
|
+
providerModels.push(model);
|
|
31
|
+
modelsByProvider.set(model.provider, providerModels);
|
|
32
|
+
}
|
|
33
|
+
for (const [provider, providerModels] of modelsByProvider) {
|
|
34
|
+
groups.push(
|
|
35
|
+
buildProviderGroup(
|
|
36
|
+
provider,
|
|
37
|
+
providerLabel(provider),
|
|
38
|
+
provider,
|
|
39
|
+
[],
|
|
40
|
+
providerModels
|
|
41
|
+
)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
return groups;
|
|
45
|
+
}
|
|
46
|
+
function modelAvailability(model) {
|
|
47
|
+
if (model.availability) return model.availability;
|
|
48
|
+
if (model.configured === false) {
|
|
49
|
+
return {
|
|
50
|
+
state: "missing_credentials",
|
|
51
|
+
reason: "This model's provider is not configured.",
|
|
52
|
+
remediation: "Configure provider credentials, then refresh."
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return AVAILABLE;
|
|
56
|
+
}
|
|
57
|
+
const AVAILABLE = { state: "available" };
|
|
58
|
+
function buildProviderGroup(id, label, iconProvider, modes, models) {
|
|
59
|
+
const modeIssues = modes.filter((mode) => availability.isUnavailable(mode.availability)).map((mode) => ({
|
|
60
|
+
id: `${id}:mode:${mode.id}`,
|
|
61
|
+
kind: "mode",
|
|
62
|
+
label: `${mode.label} mode`,
|
|
63
|
+
availability: mode.availability
|
|
64
|
+
}));
|
|
65
|
+
const modelIssues = models.filter((model) => !availability.isSelectableModel(model)).map((model) => ({
|
|
66
|
+
id: `${id}:model:${model.id}`,
|
|
67
|
+
kind: "model",
|
|
68
|
+
label: model.label,
|
|
69
|
+
availability: modelAvailability(model)
|
|
70
|
+
}));
|
|
71
|
+
const issues = [...modeIssues, ...modelIssues];
|
|
72
|
+
return {
|
|
73
|
+
id,
|
|
74
|
+
label,
|
|
75
|
+
iconProvider,
|
|
76
|
+
readiness: providerReadiness(issues, modes, models),
|
|
77
|
+
availableModes: modes.length - modeIssues.length,
|
|
78
|
+
totalModes: modes.length,
|
|
79
|
+
availableModels: models.filter(availability.isSelectableModel).length,
|
|
80
|
+
totalModels: models.length,
|
|
81
|
+
issues
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function providerReadiness(issues, modes, models) {
|
|
85
|
+
if (issues.length === 0) return "ready";
|
|
86
|
+
const states = issues.map((issue) => issue.availability.state);
|
|
87
|
+
if (states.every((state) => state === "disabled")) return "disabled";
|
|
88
|
+
const hasAvailableMode = modes.some(
|
|
89
|
+
(mode) => !availability.isUnavailable(mode.availability)
|
|
90
|
+
);
|
|
91
|
+
const hasAvailableModel = models.some(availability.isSelectableModel);
|
|
92
|
+
return hasAvailableMode || hasAvailableModel ? "attention" : "unavailable";
|
|
93
|
+
}
|
|
94
|
+
function providerLabel(provider) {
|
|
95
|
+
return provider.split(/[-_]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
|
|
96
|
+
}
|
|
97
|
+
function isString(value) {
|
|
98
|
+
return Boolean(value);
|
|
99
|
+
}
|
|
100
|
+
function availabilityStateLabel(state) {
|
|
101
|
+
return state.replaceAll("_", " ");
|
|
102
|
+
}
|
|
103
|
+
exports.availabilityStateLabel = availabilityStateLabel;
|
|
104
|
+
exports.modelAvailability = modelAvailability;
|
|
105
|
+
exports.providerStatusGroups = providerStatusGroups;
|
|
106
|
+
//# sourceMappingURL=provider-status.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-status.cjs","sources":["../../../src/data/runtime/provider-status.ts"],"sourcesContent":["import type {\n ChatModel,\n RuntimeAvailability,\n RuntimeAvailabilityState,\n} from \"../chat/types\";\nimport { isSelectableModel, isUnavailable } from \"./availability\";\nimport type { SpecRuntimeFamily } from \"./runtime-mode\";\n\nexport type ProviderReadiness =\n | \"ready\"\n | \"attention\"\n | \"disabled\"\n | \"unavailable\";\n\nexport type ProviderStatusIssue = {\n id: string;\n kind: \"mode\" | \"model\";\n label: string;\n availability: RuntimeAvailability;\n};\n\nexport type ProviderStatusGroup = {\n id: string;\n label: string;\n iconProvider: string;\n readiness: ProviderReadiness;\n availableModes: number;\n totalModes: number;\n availableModels: number;\n totalModels: number;\n issues: ProviderStatusIssue[];\n};\n\nexport function providerStatusGroups(\n models: ChatModel[],\n families: SpecRuntimeFamily[]\n): ProviderStatusGroup[] {\n const unmatched = new Set(models);\n const groups = families.map((family) => {\n const providers = new Set([\n family.provider,\n ...family.modes.map((mode) => mode.provider).filter(isString),\n ]);\n const familyModels = models.filter((model) =>\n providers.has(model.provider)\n );\n for (const model of familyModels) unmatched.delete(model);\n return buildProviderGroup(\n family.id,\n family.label,\n family.id,\n family.modes.map((mode) => ({\n id: mode.backend,\n label: mode.label,\n availability: mode.availability ?? AVAILABLE,\n })),\n familyModels\n );\n });\n\n const modelsByProvider = new Map<string, ChatModel[]>();\n for (const model of unmatched) {\n const providerModels = modelsByProvider.get(model.provider) ?? [];\n providerModels.push(model);\n modelsByProvider.set(model.provider, providerModels);\n }\n for (const [provider, providerModels] of modelsByProvider) {\n groups.push(\n buildProviderGroup(\n provider,\n providerLabel(provider),\n provider,\n [],\n providerModels\n )\n );\n }\n return groups;\n}\n\nexport function modelAvailability(model: ChatModel): RuntimeAvailability {\n if (model.availability) return model.availability;\n if (model.configured === false) {\n return {\n state: \"missing_credentials\",\n reason: \"This model's provider is not configured.\",\n remediation: \"Configure provider credentials, then refresh.\",\n };\n }\n return AVAILABLE;\n}\n\ntype ModeStatus = {\n id: string;\n label: string;\n availability: RuntimeAvailability;\n};\n\nconst AVAILABLE: RuntimeAvailability = { state: \"available\" };\n\nfunction buildProviderGroup(\n id: string,\n label: string,\n iconProvider: string,\n modes: ModeStatus[],\n models: ChatModel[]\n): ProviderStatusGroup {\n const modeIssues = modes\n .filter((mode) => isUnavailable(mode.availability))\n .map((mode) => ({\n id: `${id}:mode:${mode.id}`,\n kind: \"mode\" as const,\n label: `${mode.label} mode`,\n availability: mode.availability,\n }));\n const modelIssues = models\n .filter((model) => !isSelectableModel(model))\n .map((model) => ({\n id: `${id}:model:${model.id}`,\n kind: \"model\" as const,\n label: model.label,\n availability: modelAvailability(model),\n }));\n const issues = [...modeIssues, ...modelIssues];\n return {\n id,\n label,\n iconProvider,\n readiness: providerReadiness(issues, modes, models),\n availableModes: modes.length - modeIssues.length,\n totalModes: modes.length,\n availableModels: models.filter(isSelectableModel).length,\n totalModels: models.length,\n issues,\n };\n}\n\nfunction providerReadiness(\n issues: ProviderStatusIssue[],\n modes: ModeStatus[],\n models: ChatModel[]\n): ProviderReadiness {\n if (issues.length === 0) return \"ready\";\n const states = issues.map((issue) => issue.availability.state);\n if (states.every((state) => state === \"disabled\")) return \"disabled\";\n const hasAvailableMode = modes.some(\n (mode) => !isUnavailable(mode.availability)\n );\n const hasAvailableModel = models.some(isSelectableModel);\n return hasAvailableMode || hasAvailableModel ? \"attention\" : \"unavailable\";\n}\n\nfunction providerLabel(provider: string): string {\n return provider\n .split(/[-_]/)\n .filter(Boolean)\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(\" \");\n}\n\nfunction isString(value: string | undefined): value is string {\n return Boolean(value);\n}\n\nexport function availabilityStateLabel(\n state: RuntimeAvailabilityState\n): string {\n return state.replaceAll(\"_\", \" \");\n}\n"],"names":["isUnavailable","isSelectableModel"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChatModel, RuntimeAvailability, RuntimeAvailabilityState } from '../chat/types';
|
|
2
|
+
import { SpecRuntimeFamily } from './runtime-mode';
|
|
3
|
+
export type ProviderReadiness = "ready" | "attention" | "disabled" | "unavailable";
|
|
4
|
+
export type ProviderStatusIssue = {
|
|
5
|
+
id: string;
|
|
6
|
+
kind: "mode" | "model";
|
|
7
|
+
label: string;
|
|
8
|
+
availability: RuntimeAvailability;
|
|
9
|
+
};
|
|
10
|
+
export type ProviderStatusGroup = {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
iconProvider: string;
|
|
14
|
+
readiness: ProviderReadiness;
|
|
15
|
+
availableModes: number;
|
|
16
|
+
totalModes: number;
|
|
17
|
+
availableModels: number;
|
|
18
|
+
totalModels: number;
|
|
19
|
+
issues: ProviderStatusIssue[];
|
|
20
|
+
};
|
|
21
|
+
export declare function providerStatusGroups(models: ChatModel[], families: SpecRuntimeFamily[]): ProviderStatusGroup[];
|
|
22
|
+
export declare function modelAvailability(model: ChatModel): RuntimeAvailability;
|
|
23
|
+
export declare function availabilityStateLabel(state: RuntimeAvailabilityState): string;
|
|
24
|
+
//# sourceMappingURL=provider-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-status.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/provider-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,WAAW,GACX,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,mBAAmB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EAAE,EACnB,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,mBAAmB,EAAE,CA0CvB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,mBAAmB,CAUvE;AA0ED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAER"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { isUnavailable, isSelectableModel } from "./availability.js";
|
|
2
|
+
function providerStatusGroups(models, families) {
|
|
3
|
+
const unmatched = new Set(models);
|
|
4
|
+
const groups = families.map((family) => {
|
|
5
|
+
const providers = /* @__PURE__ */ new Set([
|
|
6
|
+
family.provider,
|
|
7
|
+
...family.modes.map((mode) => mode.provider).filter(isString)
|
|
8
|
+
]);
|
|
9
|
+
const familyModels = models.filter(
|
|
10
|
+
(model) => providers.has(model.provider)
|
|
11
|
+
);
|
|
12
|
+
for (const model of familyModels) unmatched.delete(model);
|
|
13
|
+
return buildProviderGroup(
|
|
14
|
+
family.id,
|
|
15
|
+
family.label,
|
|
16
|
+
family.id,
|
|
17
|
+
family.modes.map((mode) => ({
|
|
18
|
+
id: mode.backend,
|
|
19
|
+
label: mode.label,
|
|
20
|
+
availability: mode.availability ?? AVAILABLE
|
|
21
|
+
})),
|
|
22
|
+
familyModels
|
|
23
|
+
);
|
|
24
|
+
});
|
|
25
|
+
const modelsByProvider = /* @__PURE__ */ new Map();
|
|
26
|
+
for (const model of unmatched) {
|
|
27
|
+
const providerModels = modelsByProvider.get(model.provider) ?? [];
|
|
28
|
+
providerModels.push(model);
|
|
29
|
+
modelsByProvider.set(model.provider, providerModels);
|
|
30
|
+
}
|
|
31
|
+
for (const [provider, providerModels] of modelsByProvider) {
|
|
32
|
+
groups.push(
|
|
33
|
+
buildProviderGroup(
|
|
34
|
+
provider,
|
|
35
|
+
providerLabel(provider),
|
|
36
|
+
provider,
|
|
37
|
+
[],
|
|
38
|
+
providerModels
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
return groups;
|
|
43
|
+
}
|
|
44
|
+
function modelAvailability(model) {
|
|
45
|
+
if (model.availability) return model.availability;
|
|
46
|
+
if (model.configured === false) {
|
|
47
|
+
return {
|
|
48
|
+
state: "missing_credentials",
|
|
49
|
+
reason: "This model's provider is not configured.",
|
|
50
|
+
remediation: "Configure provider credentials, then refresh."
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return AVAILABLE;
|
|
54
|
+
}
|
|
55
|
+
const AVAILABLE = { state: "available" };
|
|
56
|
+
function buildProviderGroup(id, label, iconProvider, modes, models) {
|
|
57
|
+
const modeIssues = modes.filter((mode) => isUnavailable(mode.availability)).map((mode) => ({
|
|
58
|
+
id: `${id}:mode:${mode.id}`,
|
|
59
|
+
kind: "mode",
|
|
60
|
+
label: `${mode.label} mode`,
|
|
61
|
+
availability: mode.availability
|
|
62
|
+
}));
|
|
63
|
+
const modelIssues = models.filter((model) => !isSelectableModel(model)).map((model) => ({
|
|
64
|
+
id: `${id}:model:${model.id}`,
|
|
65
|
+
kind: "model",
|
|
66
|
+
label: model.label,
|
|
67
|
+
availability: modelAvailability(model)
|
|
68
|
+
}));
|
|
69
|
+
const issues = [...modeIssues, ...modelIssues];
|
|
70
|
+
return {
|
|
71
|
+
id,
|
|
72
|
+
label,
|
|
73
|
+
iconProvider,
|
|
74
|
+
readiness: providerReadiness(issues, modes, models),
|
|
75
|
+
availableModes: modes.length - modeIssues.length,
|
|
76
|
+
totalModes: modes.length,
|
|
77
|
+
availableModels: models.filter(isSelectableModel).length,
|
|
78
|
+
totalModels: models.length,
|
|
79
|
+
issues
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function providerReadiness(issues, modes, models) {
|
|
83
|
+
if (issues.length === 0) return "ready";
|
|
84
|
+
const states = issues.map((issue) => issue.availability.state);
|
|
85
|
+
if (states.every((state) => state === "disabled")) return "disabled";
|
|
86
|
+
const hasAvailableMode = modes.some(
|
|
87
|
+
(mode) => !isUnavailable(mode.availability)
|
|
88
|
+
);
|
|
89
|
+
const hasAvailableModel = models.some(isSelectableModel);
|
|
90
|
+
return hasAvailableMode || hasAvailableModel ? "attention" : "unavailable";
|
|
91
|
+
}
|
|
92
|
+
function providerLabel(provider) {
|
|
93
|
+
return provider.split(/[-_]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
|
|
94
|
+
}
|
|
95
|
+
function isString(value) {
|
|
96
|
+
return Boolean(value);
|
|
97
|
+
}
|
|
98
|
+
function availabilityStateLabel(state) {
|
|
99
|
+
return state.replaceAll("_", " ");
|
|
100
|
+
}
|
|
101
|
+
export {
|
|
102
|
+
availabilityStateLabel,
|
|
103
|
+
modelAvailability,
|
|
104
|
+
providerStatusGroups
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=provider-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-status.js","sources":["../../../src/data/runtime/provider-status.ts"],"sourcesContent":["import type {\n ChatModel,\n RuntimeAvailability,\n RuntimeAvailabilityState,\n} from \"../chat/types\";\nimport { isSelectableModel, isUnavailable } from \"./availability\";\nimport type { SpecRuntimeFamily } from \"./runtime-mode\";\n\nexport type ProviderReadiness =\n | \"ready\"\n | \"attention\"\n | \"disabled\"\n | \"unavailable\";\n\nexport type ProviderStatusIssue = {\n id: string;\n kind: \"mode\" | \"model\";\n label: string;\n availability: RuntimeAvailability;\n};\n\nexport type ProviderStatusGroup = {\n id: string;\n label: string;\n iconProvider: string;\n readiness: ProviderReadiness;\n availableModes: number;\n totalModes: number;\n availableModels: number;\n totalModels: number;\n issues: ProviderStatusIssue[];\n};\n\nexport function providerStatusGroups(\n models: ChatModel[],\n families: SpecRuntimeFamily[]\n): ProviderStatusGroup[] {\n const unmatched = new Set(models);\n const groups = families.map((family) => {\n const providers = new Set([\n family.provider,\n ...family.modes.map((mode) => mode.provider).filter(isString),\n ]);\n const familyModels = models.filter((model) =>\n providers.has(model.provider)\n );\n for (const model of familyModels) unmatched.delete(model);\n return buildProviderGroup(\n family.id,\n family.label,\n family.id,\n family.modes.map((mode) => ({\n id: mode.backend,\n label: mode.label,\n availability: mode.availability ?? AVAILABLE,\n })),\n familyModels\n );\n });\n\n const modelsByProvider = new Map<string, ChatModel[]>();\n for (const model of unmatched) {\n const providerModels = modelsByProvider.get(model.provider) ?? [];\n providerModels.push(model);\n modelsByProvider.set(model.provider, providerModels);\n }\n for (const [provider, providerModels] of modelsByProvider) {\n groups.push(\n buildProviderGroup(\n provider,\n providerLabel(provider),\n provider,\n [],\n providerModels\n )\n );\n }\n return groups;\n}\n\nexport function modelAvailability(model: ChatModel): RuntimeAvailability {\n if (model.availability) return model.availability;\n if (model.configured === false) {\n return {\n state: \"missing_credentials\",\n reason: \"This model's provider is not configured.\",\n remediation: \"Configure provider credentials, then refresh.\",\n };\n }\n return AVAILABLE;\n}\n\ntype ModeStatus = {\n id: string;\n label: string;\n availability: RuntimeAvailability;\n};\n\nconst AVAILABLE: RuntimeAvailability = { state: \"available\" };\n\nfunction buildProviderGroup(\n id: string,\n label: string,\n iconProvider: string,\n modes: ModeStatus[],\n models: ChatModel[]\n): ProviderStatusGroup {\n const modeIssues = modes\n .filter((mode) => isUnavailable(mode.availability))\n .map((mode) => ({\n id: `${id}:mode:${mode.id}`,\n kind: \"mode\" as const,\n label: `${mode.label} mode`,\n availability: mode.availability,\n }));\n const modelIssues = models\n .filter((model) => !isSelectableModel(model))\n .map((model) => ({\n id: `${id}:model:${model.id}`,\n kind: \"model\" as const,\n label: model.label,\n availability: modelAvailability(model),\n }));\n const issues = [...modeIssues, ...modelIssues];\n return {\n id,\n label,\n iconProvider,\n readiness: providerReadiness(issues, modes, models),\n availableModes: modes.length - modeIssues.length,\n totalModes: modes.length,\n availableModels: models.filter(isSelectableModel).length,\n totalModels: models.length,\n issues,\n };\n}\n\nfunction providerReadiness(\n issues: ProviderStatusIssue[],\n modes: ModeStatus[],\n models: ChatModel[]\n): ProviderReadiness {\n if (issues.length === 0) return \"ready\";\n const states = issues.map((issue) => issue.availability.state);\n if (states.every((state) => state === \"disabled\")) return \"disabled\";\n const hasAvailableMode = modes.some(\n (mode) => !isUnavailable(mode.availability)\n );\n const hasAvailableModel = models.some(isSelectableModel);\n return hasAvailableMode || hasAvailableModel ? \"attention\" : \"unavailable\";\n}\n\nfunction providerLabel(provider: string): string {\n return provider\n .split(/[-_]/)\n .filter(Boolean)\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(\" \");\n}\n\nfunction isString(value: string | undefined): value is string {\n return Boolean(value);\n}\n\nexport function availabilityStateLabel(\n state: RuntimeAvailabilityState\n): string {\n return state.replaceAll(\"_\", \" \");\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const availability = require("./availability.cjs");
|
|
3
4
|
const UiRobotAi = require("../../icons/components/UiRobotAi.cjs");
|
|
4
5
|
const UiTerminal = require("../../icons/components/UiTerminal.cjs");
|
|
5
6
|
const UiColumns = require("../../icons/components/UiColumns.cjs");
|
|
@@ -10,9 +11,27 @@ const SPEC_RUNTIME_FAMILIES = [
|
|
|
10
11
|
label: "Claude",
|
|
11
12
|
provider: "claude-agent",
|
|
12
13
|
modes: [
|
|
13
|
-
{
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
{
|
|
15
|
+
id: "agent",
|
|
16
|
+
label: "Agent",
|
|
17
|
+
backend: "claude-agent",
|
|
18
|
+
icon: UiRobotAi.UiRobotAi,
|
|
19
|
+
title: "Claude Agent SDK"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: "cli",
|
|
23
|
+
label: "CLI",
|
|
24
|
+
backend: "claude-cli",
|
|
25
|
+
icon: UiTerminal.UiTerminal,
|
|
26
|
+
title: "Claude Code CLI"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "cmux",
|
|
30
|
+
label: "cmux",
|
|
31
|
+
backend: "claude-cmux",
|
|
32
|
+
icon: UiColumns.UiColumns,
|
|
33
|
+
title: "Claude multiplexer"
|
|
34
|
+
}
|
|
16
35
|
]
|
|
17
36
|
},
|
|
18
37
|
{
|
|
@@ -20,37 +39,91 @@ const SPEC_RUNTIME_FAMILIES = [
|
|
|
20
39
|
label: "Codex",
|
|
21
40
|
provider: "codex-cli",
|
|
22
41
|
modes: [
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
42
|
+
{
|
|
43
|
+
id: "agent",
|
|
44
|
+
label: "Agent",
|
|
45
|
+
backend: "codex-agent",
|
|
46
|
+
icon: UiRobotAi.UiRobotAi,
|
|
47
|
+
title: "Codex agent"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: "cli",
|
|
51
|
+
label: "CLI",
|
|
52
|
+
backend: "codex-cli",
|
|
53
|
+
icon: UiTerminal.UiTerminal,
|
|
54
|
+
title: "Codex CLI"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "cmux",
|
|
58
|
+
label: "cmux",
|
|
59
|
+
backend: "codex-cmux",
|
|
60
|
+
icon: UiColumns.UiColumns,
|
|
61
|
+
title: "Codex multiplexer"
|
|
62
|
+
}
|
|
26
63
|
]
|
|
27
64
|
},
|
|
28
65
|
{
|
|
29
66
|
id: "openai",
|
|
30
67
|
label: "OpenAI",
|
|
31
68
|
provider: "openai",
|
|
32
|
-
modes: [
|
|
69
|
+
modes: [
|
|
70
|
+
{
|
|
71
|
+
id: "api",
|
|
72
|
+
label: "API",
|
|
73
|
+
backend: "openai",
|
|
74
|
+
icon: UiCloud.UiCloud,
|
|
75
|
+
title: "OpenAI API"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
33
78
|
},
|
|
34
79
|
{
|
|
35
80
|
id: "anthropic",
|
|
36
81
|
label: "Anthropic",
|
|
37
82
|
provider: "anthropic",
|
|
38
|
-
modes: [
|
|
83
|
+
modes: [
|
|
84
|
+
{
|
|
85
|
+
id: "api",
|
|
86
|
+
label: "API",
|
|
87
|
+
backend: "anthropic",
|
|
88
|
+
icon: UiCloud.UiCloud,
|
|
89
|
+
title: "Anthropic API"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
39
92
|
},
|
|
40
93
|
{
|
|
41
94
|
id: "gemini",
|
|
42
95
|
label: "Gemini",
|
|
43
96
|
provider: "googleai",
|
|
44
97
|
modes: [
|
|
45
|
-
{
|
|
46
|
-
|
|
98
|
+
{
|
|
99
|
+
id: "api",
|
|
100
|
+
label: "API",
|
|
101
|
+
backend: "gemini",
|
|
102
|
+
icon: UiCloud.UiCloud,
|
|
103
|
+
title: "Gemini API"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: "cli",
|
|
107
|
+
label: "CLI",
|
|
108
|
+
backend: "gemini-cli",
|
|
109
|
+
icon: UiTerminal.UiTerminal,
|
|
110
|
+
title: "Gemini CLI"
|
|
111
|
+
}
|
|
47
112
|
]
|
|
48
113
|
},
|
|
49
114
|
{
|
|
50
115
|
id: "deepseek",
|
|
51
116
|
label: "DeepSeek",
|
|
52
117
|
provider: "deepseek",
|
|
53
|
-
modes: [
|
|
118
|
+
modes: [
|
|
119
|
+
{
|
|
120
|
+
id: "api",
|
|
121
|
+
label: "API",
|
|
122
|
+
backend: "deepseek",
|
|
123
|
+
icon: UiCloud.UiCloud,
|
|
124
|
+
title: "DeepSeek API"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
54
127
|
}
|
|
55
128
|
];
|
|
56
129
|
const MODE_ICONS = {
|
|
@@ -59,7 +132,11 @@ const MODE_ICONS = {
|
|
|
59
132
|
cli: UiTerminal.UiTerminal,
|
|
60
133
|
cmux: UiColumns.UiColumns
|
|
61
134
|
};
|
|
62
|
-
const MODE_LABELS = {
|
|
135
|
+
const MODE_LABELS = {
|
|
136
|
+
api: "API",
|
|
137
|
+
cli: "CLI",
|
|
138
|
+
cmux: "cmux"
|
|
139
|
+
};
|
|
63
140
|
const MODE_TITLES = {
|
|
64
141
|
api: "API",
|
|
65
142
|
agent: "Agent SDK",
|
|
@@ -75,14 +152,21 @@ function familiesFromRuntimeCatalog(catalog) {
|
|
|
75
152
|
const families = [];
|
|
76
153
|
for (const entry of catalog) {
|
|
77
154
|
const label = FAMILY_LABELS[entry.family] ?? titleCase(entry.family);
|
|
78
|
-
const modes = entry.modes.
|
|
155
|
+
const modes = entry.modes.map((mode) => ({
|
|
79
156
|
id: mode.mode,
|
|
80
157
|
label: MODE_LABELS[mode.mode] ?? titleCase(mode.mode),
|
|
81
158
|
backend: mode.backend,
|
|
82
159
|
icon: MODE_ICONS[mode.mode],
|
|
83
|
-
title: `${label} ${MODE_TITLES[mode.mode] ?? titleCase(mode.mode)}
|
|
160
|
+
title: `${label} ${MODE_TITLES[mode.mode] ?? titleCase(mode.mode)}`,
|
|
161
|
+
provider: mode.catalogProvider ?? entry.catalogPrefix,
|
|
162
|
+
...mode.availability ? { availability: mode.availability } : mode.disabled ? {
|
|
163
|
+
availability: {
|
|
164
|
+
state: "disabled",
|
|
165
|
+
reason: `Disabled by ${mode.disabledReason ?? mode.backend} in Captain configuration.`,
|
|
166
|
+
remediation: `Enable ${mode.disabledReason ?? mode.backend} on the Whoami page, then refresh.`
|
|
167
|
+
}
|
|
168
|
+
} : {}
|
|
84
169
|
}));
|
|
85
|
-
if (!modes.length) continue;
|
|
86
170
|
families.push({
|
|
87
171
|
id: entry.family,
|
|
88
172
|
label,
|
|
@@ -100,9 +184,11 @@ function familyById(families, id) {
|
|
|
100
184
|
return first;
|
|
101
185
|
}
|
|
102
186
|
function firstMode(family) {
|
|
103
|
-
const mode = family.modes[0];
|
|
187
|
+
const mode = family.modes.find((candidate) => !availability.isUnavailable(candidate.availability)) ?? family.modes[0];
|
|
104
188
|
if (!mode) {
|
|
105
|
-
throw new Error(
|
|
189
|
+
throw new Error(
|
|
190
|
+
`SpecRuntimeFamily "${family.id}" must have at least one mode`
|
|
191
|
+
);
|
|
106
192
|
}
|
|
107
193
|
return mode;
|
|
108
194
|
}
|
|
@@ -115,12 +201,15 @@ function runtimeModeOptions(families) {
|
|
|
115
201
|
}
|
|
116
202
|
return [...modes.values()];
|
|
117
203
|
}
|
|
118
|
-
function unsupportedModeTitle(family) {
|
|
119
|
-
return `not on ${family.label}`;
|
|
120
|
-
}
|
|
121
204
|
function backendForFamilyMode(families, familyId, modeId) {
|
|
122
205
|
const family = familyById(families, familyId);
|
|
123
|
-
const
|
|
206
|
+
const requested = family.modes.find((candidate) => candidate.id === modeId);
|
|
207
|
+
const mode = requested && !availability.isUnavailable(requested.availability) ? requested : firstMode(family);
|
|
208
|
+
if (availability.isUnavailable(mode.availability)) {
|
|
209
|
+
throw new Error(
|
|
210
|
+
`SpecRuntimeFamily "${family.id}" has no available runtime modes`
|
|
211
|
+
);
|
|
212
|
+
}
|
|
124
213
|
return mode.backend;
|
|
125
214
|
}
|
|
126
215
|
function selectionForBackend(families, backend) {
|
|
@@ -164,21 +253,25 @@ function labelForBackend(backend, families = SPEC_RUNTIME_FAMILIES) {
|
|
|
164
253
|
return "Prompt default";
|
|
165
254
|
}
|
|
166
255
|
function modelsForFamily(models, family, backend) {
|
|
167
|
-
|
|
256
|
+
var _a;
|
|
257
|
+
if (!family) return models.filter(availability.isSelectableModel);
|
|
258
|
+
const provider = ((_a = family.modes.find((mode) => mode.backend === backend)) == null ? void 0 : _a.provider) ?? family.provider;
|
|
168
259
|
return models.filter(
|
|
169
|
-
(model) => model.provider ===
|
|
260
|
+
(model) => availability.isSelectableModel(model) && model.provider === provider && modelMatchesBackend(model, backend)
|
|
170
261
|
);
|
|
171
262
|
}
|
|
172
263
|
function modelBelongsToFamily(modelId, models, family, backend) {
|
|
264
|
+
var _a;
|
|
173
265
|
if (!modelId) return true;
|
|
174
266
|
const selected = models.find(
|
|
175
267
|
(model) => {
|
|
176
|
-
var
|
|
177
|
-
return model.id === modelId || ((
|
|
268
|
+
var _a2, _b;
|
|
269
|
+
return availability.isSelectableModel(model) && (model.id === modelId || ((_a2 = model.runtime) == null ? void 0 : _a2.model) === modelId || ((_b = model.runtime) == null ? void 0 : _b.id) === modelId);
|
|
178
270
|
}
|
|
179
271
|
);
|
|
180
272
|
if (!selected) return false;
|
|
181
|
-
const
|
|
273
|
+
const provider = ((_a = family == null ? void 0 : family.modes.find((mode) => mode.backend === backend)) == null ? void 0 : _a.provider) ?? (family == null ? void 0 : family.provider);
|
|
274
|
+
const providerMatches = !provider || selected.provider === provider;
|
|
182
275
|
return providerMatches && modelMatchesBackend(selected, backend);
|
|
183
276
|
}
|
|
184
277
|
function modelMatchesBackend(model, backend) {
|
|
@@ -200,5 +293,4 @@ exports.modelBelongsToFamily = modelBelongsToFamily;
|
|
|
200
293
|
exports.modelsForFamily = modelsForFamily;
|
|
201
294
|
exports.runtimeModeOptions = runtimeModeOptions;
|
|
202
295
|
exports.selectionForBackend = selectionForBackend;
|
|
203
|
-
exports.unsupportedModeTitle = unsupportedModeTitle;
|
|
204
296
|
//# sourceMappingURL=runtime-mode.cjs.map
|