@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
|
@@ -3,8 +3,10 @@ import { useState } from "react";
|
|
|
3
3
|
import { cn } from "../../lib/utils.js";
|
|
4
4
|
import { Button } from "../../components/button.js";
|
|
5
5
|
import { Icon } from "../Icon.js";
|
|
6
|
-
import { CodeBlock } from "../CodeBlock.js";
|
|
7
6
|
import { toolPartName } from "./types.js";
|
|
7
|
+
import { normalizeToolOutput } from "./tool-render/normalize.js";
|
|
8
|
+
import { useToolRenderRegistry } from "./tool-render/context.js";
|
|
9
|
+
import { defaultToolInputView, defaultToolOutputView } from "./tool-render/defaults.js";
|
|
8
10
|
import { UiCircleX } from "../../icons/components/UiCircleX.js";
|
|
9
11
|
import { UiCheck } from "../../icons/components/UiCheck.js";
|
|
10
12
|
import { UiClock } from "../../icons/components/UiClock.js";
|
|
@@ -23,17 +25,49 @@ const STATUS_LABEL = {
|
|
|
23
25
|
const STATUS_ICON = {
|
|
24
26
|
"approval-requested": { icon: UiClock, className: "text-amber-600" },
|
|
25
27
|
"approval-responded": { icon: UiCheck, className: "text-sky-600" },
|
|
26
|
-
"input-streaming": {
|
|
27
|
-
|
|
28
|
+
"input-streaming": {
|
|
29
|
+
icon: UiCircleOutline,
|
|
30
|
+
className: "text-muted-foreground"
|
|
31
|
+
},
|
|
32
|
+
"input-available": {
|
|
33
|
+
icon: UiClock,
|
|
34
|
+
className: "text-muted-foreground animate-pulse"
|
|
35
|
+
},
|
|
28
36
|
"output-available": { icon: UiCheck, className: "text-emerald-600" },
|
|
29
37
|
"output-denied": { icon: UiCircleX, className: "text-orange-600" },
|
|
30
38
|
"output-error": { icon: UiCircleX, className: "text-destructive" }
|
|
31
39
|
};
|
|
32
|
-
function ToolCall({
|
|
40
|
+
function ToolCall({
|
|
41
|
+
part,
|
|
42
|
+
defaultOpen = false,
|
|
43
|
+
onApprove,
|
|
44
|
+
renderToolResult,
|
|
45
|
+
tool,
|
|
46
|
+
registry: registryProp,
|
|
47
|
+
className
|
|
48
|
+
}) {
|
|
33
49
|
const needsApproval = part.state === "approval-requested";
|
|
34
50
|
const [open, setOpen] = useState(defaultOpen || needsApproval);
|
|
51
|
+
const contextRegistry = useToolRenderRegistry();
|
|
52
|
+
const registry = registryProp ?? contextRegistry;
|
|
35
53
|
const status = STATUS_ICON[part.state];
|
|
36
54
|
const name = toolPartName(part);
|
|
55
|
+
const meta = tool ?? registry.tool(name);
|
|
56
|
+
const normalized = normalizeToolOutput(
|
|
57
|
+
part.state === "output-available" ? part.output : void 0
|
|
58
|
+
);
|
|
59
|
+
const base = {
|
|
60
|
+
part,
|
|
61
|
+
toolName: name,
|
|
62
|
+
tool: meta,
|
|
63
|
+
state: part.state,
|
|
64
|
+
input: part.input,
|
|
65
|
+
output: normalized.value,
|
|
66
|
+
isError: normalized.isError || part.state === "output-error",
|
|
67
|
+
options: registry.options
|
|
68
|
+
};
|
|
69
|
+
const inputView = defaultToolInputView(base);
|
|
70
|
+
const summary = registry.resolveSummary({ ...base, defaultView: null });
|
|
37
71
|
return /* @__PURE__ */ jsxs("div", { className: cn("not-prose mb-1 w-full", className), children: [
|
|
38
72
|
/* @__PURE__ */ jsxs(
|
|
39
73
|
"button",
|
|
@@ -53,21 +87,34 @@ function ToolCall({ part, defaultOpen = false, onApprove, renderToolResult, clas
|
|
|
53
87
|
title: STATUS_LABEL[part.state],
|
|
54
88
|
className: cn("size-3 shrink-0", status.className)
|
|
55
89
|
}
|
|
56
|
-
)
|
|
90
|
+
),
|
|
91
|
+
!open && summary ? /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-xs", children: summary }) : null
|
|
57
92
|
] }),
|
|
58
93
|
/* @__PURE__ */ jsx(
|
|
59
94
|
Icon,
|
|
60
95
|
{
|
|
61
96
|
icon: UiChevronDown,
|
|
62
|
-
className: cn(
|
|
97
|
+
className: cn(
|
|
98
|
+
"size-3 shrink-0 transition-transform",
|
|
99
|
+
open && "rotate-180"
|
|
100
|
+
)
|
|
63
101
|
}
|
|
64
102
|
)
|
|
65
103
|
]
|
|
66
104
|
}
|
|
67
105
|
),
|
|
68
|
-
open && /* @__PURE__ */ jsxs("div", { className: "space-y-1 pl-4 pt-0.5", children: [
|
|
69
|
-
|
|
70
|
-
/* @__PURE__ */ jsx(
|
|
106
|
+
open && /* @__PURE__ */ jsxs("div", { "data-slot": "tool-call-details", className: "space-y-1 pl-4 pt-0.5", children: [
|
|
107
|
+
registry.resolveInput({ ...base, defaultView: inputView }) ?? inputView,
|
|
108
|
+
/* @__PURE__ */ jsx(
|
|
109
|
+
ToolOutput,
|
|
110
|
+
{
|
|
111
|
+
part,
|
|
112
|
+
base,
|
|
113
|
+
registry,
|
|
114
|
+
output: normalized.value,
|
|
115
|
+
...renderToolResult ? { renderToolResult } : {}
|
|
116
|
+
}
|
|
117
|
+
)
|
|
71
118
|
] }),
|
|
72
119
|
needsApproval && /* @__PURE__ */ jsx(ApprovalControls, { part, onApprove })
|
|
73
120
|
] });
|
|
@@ -79,7 +126,15 @@ function ApprovalControls({
|
|
|
79
126
|
const approval = "approval" in part ? part.approval : void 0;
|
|
80
127
|
if (!approval || !onApprove) return null;
|
|
81
128
|
return /* @__PURE__ */ jsxs("div", { className: "mt-1.5 flex items-center gap-2 pl-4", children: [
|
|
82
|
-
/* @__PURE__ */ jsx(
|
|
129
|
+
/* @__PURE__ */ jsx(
|
|
130
|
+
Button,
|
|
131
|
+
{
|
|
132
|
+
type: "button",
|
|
133
|
+
size: "sm",
|
|
134
|
+
onClick: () => onApprove(approval.id, true),
|
|
135
|
+
children: "Approve"
|
|
136
|
+
}
|
|
137
|
+
),
|
|
83
138
|
/* @__PURE__ */ jsx(
|
|
84
139
|
Button,
|
|
85
140
|
{
|
|
@@ -92,27 +147,34 @@ function ApprovalControls({
|
|
|
92
147
|
)
|
|
93
148
|
] });
|
|
94
149
|
}
|
|
95
|
-
function ToolInput({ input }) {
|
|
96
|
-
if (input === void 0 || input === null) {
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
return /* @__PURE__ */ jsx("div", { className: "overflow-hidden text-xs", children: /* @__PURE__ */ jsx(CodeBlock, { language: "json", source: JSON.stringify(input, null, 2) }) });
|
|
100
|
-
}
|
|
101
150
|
function ToolOutput({
|
|
102
151
|
part,
|
|
152
|
+
base,
|
|
153
|
+
registry,
|
|
154
|
+
output,
|
|
103
155
|
renderToolResult
|
|
104
156
|
}) {
|
|
105
157
|
const errorText = part.state === "output-error" ? part.errorText : void 0;
|
|
106
|
-
const
|
|
107
|
-
if (
|
|
158
|
+
const hasOutput = part.state === "output-available" && output !== void 0;
|
|
159
|
+
if (!hasOutput && errorText === void 0) {
|
|
108
160
|
return null;
|
|
109
161
|
}
|
|
110
|
-
const
|
|
111
|
-
const custom =
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
162
|
+
const defaultView = hasOutput ? defaultToolOutputView(base) : null;
|
|
163
|
+
const custom = hasOutput ? renderToolResult == null ? void 0 : renderToolResult({ part, toolName: base.toolName, output }) : null;
|
|
164
|
+
const resolved = hasOutput ? registry.resolveOutput({ ...base, defaultView }) : null;
|
|
165
|
+
return /* @__PURE__ */ jsxs(
|
|
166
|
+
"div",
|
|
167
|
+
{
|
|
168
|
+
className: cn(
|
|
169
|
+
"overflow-x-auto text-xs",
|
|
170
|
+
errorText ? "text-destructive" : "text-muted-foreground"
|
|
171
|
+
),
|
|
172
|
+
children: [
|
|
173
|
+
errorText !== void 0 && /* @__PURE__ */ jsx("div", { children: errorText }),
|
|
174
|
+
custom ?? resolved ?? defaultView
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
);
|
|
116
178
|
}
|
|
117
179
|
export {
|
|
118
180
|
ToolCall
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCall.js","sources":["../../../src/data/chat/ToolCall.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { CodeBlock } from \"../CodeBlock\";\nimport {\n UiCheck,\n UiChevronDown,\n UiCircleOutline,\n UiCircleX,\n UiClock,\n UiWrench,\n} from \"../../icons\";\nimport type { AnyToolPart, ToolResultRenderer } from \"./types\";\nimport { toolPartName } from \"./types\";\n\nexport type ToolCallProps = {\n /** The tool part from an assistant message (typed or dynamic). */\n part: AnyToolPart;\n /** Whether the call body starts expanded. Defaults to false. */\n defaultOpen?: boolean;\n /** Respond to an approval request (only used when state is\n * `approval-requested`). Receives the approval id, the decision, and an\n * optional reason. */\n onApprove?: ((approvalId: string, approved: boolean, reason?: string) => void) | undefined;\n renderToolResult?: ToolResultRenderer;\n className?: string;\n};\n\ntype ToolState = AnyToolPart[\"state\"];\n\nconst STATUS_LABEL: Record<ToolState, string> = {\n \"approval-requested\": \"Awaiting approval\",\n \"approval-responded\": \"Responded\",\n \"input-streaming\": \"Pending\",\n \"input-available\": \"Running\",\n \"output-available\": \"Completed\",\n \"output-denied\": \"Denied\",\n \"output-error\": \"Error\",\n};\n\nconst STATUS_ICON: Record<ToolState, { icon: StaticIconComponent; className: string }> = {\n \"approval-requested\": { icon: UiClock, className: \"text-amber-600\" },\n \"approval-responded\": { icon: UiCheck, className: \"text-sky-600\" },\n \"input-streaming\": { icon: UiCircleOutline, className: \"text-muted-foreground\" },\n \"input-available\": { icon: UiClock, className: \"text-muted-foreground animate-pulse\" },\n \"output-available\": { icon: UiCheck, className: \"text-emerald-600\" },\n \"output-denied\": { icon: UiCircleX, className: \"text-orange-600\" },\n \"output-error\": { icon: UiCircleX, className: \"text-destructive\" },\n};\n\n/** Generic display of a single AI tool call: a collapsible header showing the\n * tool name + status, expanding to its JSON input and (once available) output\n * or error. Renders both clicky `dynamic-tool` parts and typed `tool-<name>`\n * parts, keyed off `part.state`. */\nexport function ToolCall({ part, defaultOpen = false, onApprove, renderToolResult, className }: ToolCallProps) {\n const needsApproval = part.state === \"approval-requested\";\n const [open, setOpen] = useState(defaultOpen || needsApproval);\n const status = STATUS_ICON[part.state];\n const name = toolPartName(part);\n\n return (\n <div className={cn(\"not-prose mb-1 w-full\", className)}>\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={() => setOpen((v) => !v)}\n className=\"flex w-full items-center justify-between gap-2 py-0.5 text-muted-foreground hover:text-foreground\"\n >\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <Icon icon={UiWrench} className=\"size-3 shrink-0\" />\n <span className=\"truncate font-mono text-xs\">{name}</span>\n <Icon\n icon={status.icon}\n title={STATUS_LABEL[part.state]}\n className={cn(\"size-3 shrink-0\", status.className)}\n />\n </span>\n <Icon\n icon={UiChevronDown}\n className={cn(\"size-3 shrink-0 transition-transform\", open && \"rotate-180\")}\n />\n </button>\n\n {open && (\n <div className=\"space-y-1 pl-4 pt-0.5\">\n <ToolInput input={part.input} />\n <ToolOutput part={part} {...(renderToolResult ? { renderToolResult } : {})} />\n </div>\n )}\n\n {needsApproval && <ApprovalControls part={part} onApprove={onApprove} />}\n </div>\n );\n}\n\n/** Approve/Deny controls shown while a tool call awaits human approval. The\n * approval id comes from the part's `approval` envelope (AI SDK v6). */\nfunction ApprovalControls({\n part,\n onApprove,\n}: {\n part: AnyToolPart;\n onApprove: ToolCallProps[\"onApprove\"];\n}) {\n const approval = \"approval\" in part ? part.approval : undefined;\n if (!approval || !onApprove) return null;\n return (\n <div className=\"mt-1.5 flex items-center gap-2 pl-4\">\n <Button type=\"button\" size=\"sm\" onClick={() => onApprove(approval.id, true)}>\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={() => onApprove(approval.id, false)}\n >\n Deny\n </Button>\n </div>\n );\n}\n\nfunction ToolInput({ input }: { input: AnyToolPart[\"input\"] }) {\n if (input === undefined || input === null) {\n return null;\n }\n return (\n <div className=\"overflow-hidden text-xs\">\n <CodeBlock language=\"json\" source={JSON.stringify(input, null, 2)} />\n </div>\n );\n}\n\nfunction ToolOutput({\n part,\n renderToolResult,\n}: {\n part: AnyToolPart;\n renderToolResult?: ToolResultRenderer | undefined;\n}) {\n const errorText = part.state === \"output-error\" ? part.errorText : undefined;\n const output = part.state === \"output-available\" ? part.output : undefined;\n if (output === undefined && errorText === undefined) {\n return null;\n }\n const name = toolPartName(part);\n const custom = output !== undefined ? renderToolResult?.({ part, toolName: name, output }) : null;\n return (\n <div className={cn(\"overflow-x-auto text-xs\", errorText ? \"text-destructive\" : \"text-muted-foreground\")}>\n {errorText !== undefined && <div>{errorText}</div>}\n {custom ?? (output !== undefined && (\n <CodeBlock language=\"json\" source={typeof output === \"string\" ? output : JSON.stringify(output, null, 2)} />\n ))}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToolCall.js","sources":["../../../src/data/chat/ToolCall.tsx"],"sourcesContent":["import { useState, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/button\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport {\n UiCheck,\n UiChevronDown,\n UiCircleOutline,\n UiCircleX,\n UiClock,\n UiWrench,\n} from \"../../icons\";\nimport type { AnyToolPart, ToolMeta, ToolResultRenderer } from \"./types\";\nimport { toolPartName } from \"./types\";\nimport { normalizeToolOutput } from \"./tool-render/normalize\";\nimport { useToolRenderRegistry } from \"./tool-render/context\";\nimport {\n defaultToolInputView,\n defaultToolOutputView,\n type ToolRenderBaseContext,\n} from \"./tool-render/defaults\";\nimport type { ToolRenderRegistry } from \"./tool-render/adapter\";\n\nexport type ToolCallProps = {\n /** The tool part from an assistant message (typed or dynamic). */\n part: AnyToolPart;\n /** Whether the call body starts expanded. Defaults to false. */\n defaultOpen?: boolean;\n /** Respond to an approval request (only used when state is\n * `approval-requested`). Receives the approval id, the decision, and an\n * optional reason. */\n onApprove?:\n | ((approvalId: string, approved: boolean, reason?: string) => void)\n | undefined;\n renderToolResult?: ToolResultRenderer;\n /** Catalog entry for this tool. Defaults to the registry's catalog lookup. */\n tool?: ToolMeta | undefined;\n /** Renderer registry override. Defaults to the provided context registry. */\n registry?: ToolRenderRegistry | undefined;\n className?: string;\n};\n\ntype ToolState = AnyToolPart[\"state\"];\n\nconst STATUS_LABEL: Record<ToolState, string> = {\n \"approval-requested\": \"Awaiting approval\",\n \"approval-responded\": \"Responded\",\n \"input-streaming\": \"Pending\",\n \"input-available\": \"Running\",\n \"output-available\": \"Completed\",\n \"output-denied\": \"Denied\",\n \"output-error\": \"Error\",\n};\n\nconst STATUS_ICON: Record<\n ToolState,\n { icon: StaticIconComponent; className: string }\n> = {\n \"approval-requested\": { icon: UiClock, className: \"text-amber-600\" },\n \"approval-responded\": { icon: UiCheck, className: \"text-sky-600\" },\n \"input-streaming\": {\n icon: UiCircleOutline,\n className: \"text-muted-foreground\",\n },\n \"input-available\": {\n icon: UiClock,\n className: \"text-muted-foreground animate-pulse\",\n },\n \"output-available\": { icon: UiCheck, className: \"text-emerald-600\" },\n \"output-denied\": { icon: UiCircleX, className: \"text-orange-600\" },\n \"output-error\": { icon: UiCircleX, className: \"text-destructive\" },\n};\n\n/** Generic display of a single AI tool call: a collapsible header showing the\n * tool name, status and compact input args, expanding to its input params and\n * (once available) output or error. Input and output rendering go through the\n * tool render registry, so a host can contribute domain views. Renders both\n * clicky `dynamic-tool` parts and typed `tool-<name>` parts, keyed off\n * `part.state`. */\nexport function ToolCall({\n part,\n defaultOpen = false,\n onApprove,\n renderToolResult,\n tool,\n registry: registryProp,\n className,\n}: ToolCallProps) {\n const needsApproval = part.state === \"approval-requested\";\n const [open, setOpen] = useState(defaultOpen || needsApproval);\n const contextRegistry = useToolRenderRegistry();\n const registry = registryProp ?? contextRegistry;\n const status = STATUS_ICON[part.state];\n const name = toolPartName(part);\n const meta = tool ?? registry.tool(name);\n\n // The transport double-encodes tool results as `{output: \"<json>\"}`; every\n // surface — including a host's renderToolResult — sees the unwrapped value.\n const normalized = normalizeToolOutput(\n part.state === \"output-available\" ? part.output : undefined,\n );\n const base: ToolRenderBaseContext = {\n part,\n toolName: name,\n tool: meta,\n state: part.state,\n input: part.input,\n output: normalized.value,\n isError: normalized.isError || part.state === \"output-error\",\n options: registry.options,\n };\n\n const inputView = defaultToolInputView(base);\n // The header keeps the tool name in its own element; a summary renders beside\n // it (ToolCall.test.tsx matches the name by exact text).\n const summary = registry.resolveSummary({ ...base, defaultView: null });\n\n return (\n <div className={cn(\"not-prose mb-1 w-full\", className)}>\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={() => setOpen((v) => !v)}\n className=\"flex w-full items-center justify-between gap-2 py-0.5 text-muted-foreground hover:text-foreground\"\n >\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <Icon icon={UiWrench} className=\"size-3 shrink-0\" />\n <span className=\"truncate font-mono text-xs\">{name}</span>\n <Icon\n icon={status.icon}\n title={STATUS_LABEL[part.state]}\n className={cn(\"size-3 shrink-0\", status.className)}\n />\n {!open && summary ? (\n <span className=\"min-w-0 flex-1 truncate text-xs\">{summary}</span>\n ) : null}\n </span>\n <Icon\n icon={UiChevronDown}\n className={cn(\n \"size-3 shrink-0 transition-transform\",\n open && \"rotate-180\",\n )}\n />\n </button>\n\n {open && (\n <div data-slot=\"tool-call-details\" className=\"space-y-1 pl-4 pt-0.5\">\n {/* An approval-requested call force-opens, so this params table is\n what the user reads before approving a write. */}\n {registry.resolveInput({ ...base, defaultView: inputView }) ??\n inputView}\n <ToolOutput\n part={part}\n base={base}\n registry={registry}\n output={normalized.value}\n {...(renderToolResult ? { renderToolResult } : {})}\n />\n </div>\n )}\n\n {needsApproval && <ApprovalControls part={part} onApprove={onApprove} />}\n </div>\n );\n}\n\n/** Approve/Deny controls shown while a tool call awaits human approval. The\n * approval id comes from the part's `approval` envelope (AI SDK v6). */\nfunction ApprovalControls({\n part,\n onApprove,\n}: {\n part: AnyToolPart;\n onApprove: ToolCallProps[\"onApprove\"];\n}) {\n const approval = \"approval\" in part ? part.approval : undefined;\n if (!approval || !onApprove) return null;\n return (\n <div className=\"mt-1.5 flex items-center gap-2 pl-4\">\n <Button\n type=\"button\"\n size=\"sm\"\n onClick={() => onApprove(approval.id, true)}\n >\n Approve\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={() => onApprove(approval.id, false)}\n >\n Deny\n </Button>\n </div>\n );\n}\n\n/** The output surface. Priority: the host's `renderToolResult` prop (the\n * pre-registry API, still supported), then a matching adapter, then the\n * built-in shape heuristics. */\nfunction ToolOutput({\n part,\n base,\n registry,\n output,\n renderToolResult,\n}: {\n part: AnyToolPart;\n base: ToolRenderBaseContext;\n registry: ToolRenderRegistry;\n output: unknown;\n renderToolResult?: ToolResultRenderer | undefined;\n}) {\n const errorText = part.state === \"output-error\" ? part.errorText : undefined;\n const hasOutput = part.state === \"output-available\" && output !== undefined;\n if (!hasOutput && errorText === undefined) {\n return null;\n }\n\n const defaultView: ReactNode = hasOutput ? defaultToolOutputView(base) : null;\n\n const custom = hasOutput\n ? renderToolResult?.({ part, toolName: base.toolName, output })\n : null;\n const resolved = hasOutput\n ? registry.resolveOutput({ ...base, defaultView })\n : null;\n\n return (\n <div\n className={cn(\n \"overflow-x-auto text-xs\",\n errorText ? \"text-destructive\" : \"text-muted-foreground\",\n )}\n >\n {errorText !== undefined && <div>{errorText}</div>}\n {custom ?? resolved ?? defaultView}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
async function getChatSession(sessionsApi, sessionId, fetcher = fetch) {
|
|
4
|
+
if (!sessionId.trim()) {
|
|
5
|
+
throw new Error("A session id is required to load this chat.");
|
|
6
|
+
}
|
|
7
|
+
const response = await fetcher(sessionEndpoint(sessionsApi, sessionId), {
|
|
8
|
+
headers: { Accept: "application/json" }
|
|
9
|
+
});
|
|
10
|
+
if (!response.ok) {
|
|
11
|
+
throw await responseError("Chat session request", response);
|
|
12
|
+
}
|
|
13
|
+
return parseSession(await response.json());
|
|
14
|
+
}
|
|
3
15
|
async function postToolApproval(decision, fetcher = fetch) {
|
|
4
|
-
if (!decision.
|
|
5
|
-
throw new Error("A
|
|
16
|
+
if (!decision.sessionId.trim()) {
|
|
17
|
+
throw new Error("A session id is required to resolve this tool approval.");
|
|
6
18
|
}
|
|
7
|
-
const
|
|
8
|
-
|
|
19
|
+
const endpoint = `${sessionEndpoint(
|
|
20
|
+
decision.sessionsApi,
|
|
21
|
+
decision.sessionId
|
|
22
|
+
)}/approvals/${encodeURIComponent(decision.approvalId)}`;
|
|
9
23
|
const response = await fetcher(endpoint, {
|
|
10
24
|
method: "POST",
|
|
11
|
-
headers: {
|
|
25
|
+
headers: {
|
|
26
|
+
Accept: "application/json",
|
|
27
|
+
"Content-Type": "application/json"
|
|
28
|
+
},
|
|
12
29
|
body: JSON.stringify(
|
|
13
30
|
decision.reason ? { approved: decision.approved, reason: decision.reason } : { approved: decision.approved }
|
|
14
31
|
)
|
|
15
32
|
});
|
|
16
33
|
if (!response.ok) {
|
|
17
|
-
throw
|
|
34
|
+
throw await responseError("Tool approval", response);
|
|
18
35
|
}
|
|
36
|
+
return parseSession(await response.json());
|
|
37
|
+
}
|
|
38
|
+
function sessionEndpoint(sessionsApi, sessionId) {
|
|
39
|
+
return `${stripTrailingSlashes(sessionsApi)}/${encodeURIComponent(sessionId)}`;
|
|
40
|
+
}
|
|
41
|
+
function stripTrailingSlashes(value) {
|
|
42
|
+
let end = value.length;
|
|
43
|
+
while (end > 0 && value[end - 1] === "/") end--;
|
|
44
|
+
return value.slice(0, end);
|
|
45
|
+
}
|
|
46
|
+
function parseSession(value) {
|
|
47
|
+
if (typeof value !== "object" || value === null || !("id" in value) || typeof value.id !== "string") {
|
|
48
|
+
throw new Error("Captain chat session response is invalid.");
|
|
49
|
+
}
|
|
50
|
+
const messages = "messages" in value ? value.messages : [];
|
|
51
|
+
if (!Array.isArray(messages)) {
|
|
52
|
+
throw new Error("Captain chat session response is invalid.");
|
|
53
|
+
}
|
|
54
|
+
return { ...value, messages };
|
|
55
|
+
}
|
|
56
|
+
async function responseError(label, response) {
|
|
57
|
+
const detail = (await response.text()).trim();
|
|
58
|
+
return new Error(
|
|
59
|
+
`${label} failed with status ${response.status}${detail ? `: ${detail}` : "."}`
|
|
60
|
+
);
|
|
19
61
|
}
|
|
62
|
+
exports.getChatSession = getChatSession;
|
|
20
63
|
exports.postToolApproval = postToolApproval;
|
|
21
64
|
//# sourceMappingURL=approval.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.cjs","sources":["../../../src/data/chat/approval.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"approval.cjs","sources":["../../../src/data/chat/approval.ts"],"sourcesContent":["import type { UIMessage } from \"ai\";\n\nexport type CaptainChatSession = {\n id: string;\n revision?: number;\n messages: UIMessage[];\n};\n\nexport type ToolApprovalDecision = {\n sessionsApi: string;\n sessionId: string;\n approvalId: string;\n approved: boolean;\n reason?: string;\n};\n\ntype SessionFetch = (\n input: RequestInfo | URL,\n init?: RequestInit,\n) => Promise<Response>;\n\nexport async function getChatSession(\n sessionsApi: string,\n sessionId: string,\n fetcher: SessionFetch = fetch,\n): Promise<CaptainChatSession> {\n if (!sessionId.trim()) {\n throw new Error(\"A session id is required to load this chat.\");\n }\n const response = await fetcher(sessionEndpoint(sessionsApi, sessionId), {\n headers: { Accept: \"application/json\" },\n });\n if (!response.ok) {\n throw await responseError(\"Chat session request\", response);\n }\n return parseSession(await response.json());\n}\n\nexport async function postToolApproval(\n decision: ToolApprovalDecision,\n fetcher: SessionFetch = fetch,\n): Promise<CaptainChatSession> {\n if (!decision.sessionId.trim()) {\n throw new Error(\"A session id is required to resolve this tool approval.\");\n }\n const endpoint = `${sessionEndpoint(\n decision.sessionsApi,\n decision.sessionId,\n )}/approvals/${encodeURIComponent(decision.approvalId)}`;\n const response = await fetcher(endpoint, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(\n decision.reason\n ? { approved: decision.approved, reason: decision.reason }\n : { approved: decision.approved },\n ),\n });\n if (!response.ok) {\n throw await responseError(\"Tool approval\", response);\n }\n return parseSession(await response.json());\n}\n\nfunction sessionEndpoint(sessionsApi: string, sessionId: string): string {\n return `${stripTrailingSlashes(sessionsApi)}/${encodeURIComponent(sessionId)}`;\n}\n\n// Linear scan instead of `.replace(/\\/+$/, \"\")`: the regex backtracks\n// polynomially on caller-supplied base URLs with many trailing slashes.\nfunction stripTrailingSlashes(value: string): string {\n let end = value.length;\n while (end > 0 && value[end - 1] === \"/\") end--;\n return value.slice(0, end);\n}\n\nfunction parseSession(value: unknown): CaptainChatSession {\n if (\n typeof value !== \"object\" ||\n value === null ||\n !(\"id\" in value) ||\n typeof value.id !== \"string\"\n ) {\n throw new Error(\"Captain chat session response is invalid.\");\n }\n const messages = \"messages\" in value ? value.messages : [];\n if (!Array.isArray(messages)) {\n throw new Error(\"Captain chat session response is invalid.\");\n }\n return { ...value, messages } as CaptainChatSession;\n}\n\nasync function responseError(\n label: string,\n response: Response,\n): Promise<Error> {\n const detail = (await response.text()).trim();\n return new Error(\n `${label} failed with status ${response.status}${\n detail ? `: ${detail}` : \".\"\n }`,\n );\n}\n"],"names":[],"mappings":";;AAqBA,eAAsB,eACpB,aACA,WACA,UAAwB,OACK;AAC7B,MAAI,CAAC,UAAU,QAAQ;AACrB,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACA,QAAM,WAAW,MAAM,QAAQ,gBAAgB,aAAa,SAAS,GAAG;AAAA,IACtE,SAAS,EAAE,QAAQ,mBAAA;AAAA,EAAmB,CACvC;AACD,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,MAAM,cAAc,wBAAwB,QAAQ;AAAA,EAC5D;AACA,SAAO,aAAa,MAAM,SAAS,MAAM;AAC3C;AAEA,eAAsB,iBACpB,UACA,UAAwB,OACK;AAC7B,MAAI,CAAC,SAAS,UAAU,QAAQ;AAC9B,UAAM,IAAI,MAAM,yDAAyD;AAAA,EAC3E;AACA,QAAM,WAAW,GAAG;AAAA,IAClB,SAAS;AAAA,IACT,SAAS;AAAA,EAAA,CACV,cAAc,mBAAmB,SAAS,UAAU,CAAC;AACtD,QAAM,WAAW,MAAM,QAAQ,UAAU;AAAA,IACvC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,gBAAgB;AAAA,IAAA;AAAA,IAElB,MAAM,KAAK;AAAA,MACT,SAAS,SACL,EAAE,UAAU,SAAS,UAAU,QAAQ,SAAS,OAAA,IAChD,EAAE,UAAU,SAAS,SAAA;AAAA,IAAS;AAAA,EACpC,CACD;AACD,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,MAAM,cAAc,iBAAiB,QAAQ;AAAA,EACrD;AACA,SAAO,aAAa,MAAM,SAAS,MAAM;AAC3C;AAEA,SAAS,gBAAgB,aAAqB,WAA2B;AACvE,SAAO,GAAG,qBAAqB,WAAW,CAAC,IAAI,mBAAmB,SAAS,CAAC;AAC9E;AAIA,SAAS,qBAAqB,OAAuB;AACnD,MAAI,MAAM,MAAM;AAChB,SAAO,MAAM,KAAK,MAAM,MAAM,CAAC,MAAM,IAAK;AAC1C,SAAO,MAAM,MAAM,GAAG,GAAG;AAC3B;AAEA,SAAS,aAAa,OAAoC;AACxD,MACE,OAAO,UAAU,YACjB,UAAU,QACV,EAAE,QAAQ,UACV,OAAO,MAAM,OAAO,UACpB;AACA,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACA,QAAM,WAAW,cAAc,QAAQ,MAAM,WAAW,CAAA;AACxD,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC5B,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACA,SAAO,EAAE,GAAG,OAAO,SAAA;AACrB;AAEA,eAAe,cACb,OACA,UACgB;AAChB,QAAM,UAAU,MAAM,SAAS,KAAA,GAAQ,KAAA;AACvC,SAAO,IAAI;AAAA,IACT,GAAG,KAAK,uBAAuB,SAAS,MAAM,GAC5C,SAAS,KAAK,MAAM,KAAK,GAC3B;AAAA,EAAA;AAEJ;;;"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
import { UIMessage } from 'ai';
|
|
2
|
+
export type CaptainChatSession = {
|
|
3
|
+
id: string;
|
|
4
|
+
revision?: number;
|
|
5
|
+
messages: UIMessage[];
|
|
6
|
+
};
|
|
1
7
|
export type ToolApprovalDecision = {
|
|
2
|
-
|
|
3
|
-
|
|
8
|
+
sessionsApi: string;
|
|
9
|
+
sessionId: string;
|
|
4
10
|
approvalId: string;
|
|
5
11
|
approved: boolean;
|
|
6
12
|
reason?: string;
|
|
7
13
|
};
|
|
8
|
-
type
|
|
9
|
-
export declare function
|
|
14
|
+
type SessionFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
15
|
+
export declare function getChatSession(sessionsApi: string, sessionId: string, fetcher?: SessionFetch): Promise<CaptainChatSession>;
|
|
16
|
+
export declare function postToolApproval(decision: ToolApprovalDecision, fetcher?: SessionFetch): Promise<CaptainChatSession>;
|
|
10
17
|
export {};
|
|
11
18
|
//# sourceMappingURL=approval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../../src/data/chat/approval.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../../src/data/chat/approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,YAAY,GAAG,CAClB,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAW7B;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,GAAE,YAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAwB7B"}
|
|
@@ -1,21 +1,64 @@
|
|
|
1
|
+
async function getChatSession(sessionsApi, sessionId, fetcher = fetch) {
|
|
2
|
+
if (!sessionId.trim()) {
|
|
3
|
+
throw new Error("A session id is required to load this chat.");
|
|
4
|
+
}
|
|
5
|
+
const response = await fetcher(sessionEndpoint(sessionsApi, sessionId), {
|
|
6
|
+
headers: { Accept: "application/json" }
|
|
7
|
+
});
|
|
8
|
+
if (!response.ok) {
|
|
9
|
+
throw await responseError("Chat session request", response);
|
|
10
|
+
}
|
|
11
|
+
return parseSession(await response.json());
|
|
12
|
+
}
|
|
1
13
|
async function postToolApproval(decision, fetcher = fetch) {
|
|
2
|
-
if (!decision.
|
|
3
|
-
throw new Error("A
|
|
14
|
+
if (!decision.sessionId.trim()) {
|
|
15
|
+
throw new Error("A session id is required to resolve this tool approval.");
|
|
4
16
|
}
|
|
5
|
-
const
|
|
6
|
-
|
|
17
|
+
const endpoint = `${sessionEndpoint(
|
|
18
|
+
decision.sessionsApi,
|
|
19
|
+
decision.sessionId
|
|
20
|
+
)}/approvals/${encodeURIComponent(decision.approvalId)}`;
|
|
7
21
|
const response = await fetcher(endpoint, {
|
|
8
22
|
method: "POST",
|
|
9
|
-
headers: {
|
|
23
|
+
headers: {
|
|
24
|
+
Accept: "application/json",
|
|
25
|
+
"Content-Type": "application/json"
|
|
26
|
+
},
|
|
10
27
|
body: JSON.stringify(
|
|
11
28
|
decision.reason ? { approved: decision.approved, reason: decision.reason } : { approved: decision.approved }
|
|
12
29
|
)
|
|
13
30
|
});
|
|
14
31
|
if (!response.ok) {
|
|
15
|
-
throw
|
|
32
|
+
throw await responseError("Tool approval", response);
|
|
16
33
|
}
|
|
34
|
+
return parseSession(await response.json());
|
|
35
|
+
}
|
|
36
|
+
function sessionEndpoint(sessionsApi, sessionId) {
|
|
37
|
+
return `${stripTrailingSlashes(sessionsApi)}/${encodeURIComponent(sessionId)}`;
|
|
38
|
+
}
|
|
39
|
+
function stripTrailingSlashes(value) {
|
|
40
|
+
let end = value.length;
|
|
41
|
+
while (end > 0 && value[end - 1] === "/") end--;
|
|
42
|
+
return value.slice(0, end);
|
|
43
|
+
}
|
|
44
|
+
function parseSession(value) {
|
|
45
|
+
if (typeof value !== "object" || value === null || !("id" in value) || typeof value.id !== "string") {
|
|
46
|
+
throw new Error("Captain chat session response is invalid.");
|
|
47
|
+
}
|
|
48
|
+
const messages = "messages" in value ? value.messages : [];
|
|
49
|
+
if (!Array.isArray(messages)) {
|
|
50
|
+
throw new Error("Captain chat session response is invalid.");
|
|
51
|
+
}
|
|
52
|
+
return { ...value, messages };
|
|
53
|
+
}
|
|
54
|
+
async function responseError(label, response) {
|
|
55
|
+
const detail = (await response.text()).trim();
|
|
56
|
+
return new Error(
|
|
57
|
+
`${label} failed with status ${response.status}${detail ? `: ${detail}` : "."}`
|
|
58
|
+
);
|
|
17
59
|
}
|
|
18
60
|
export {
|
|
61
|
+
getChatSession,
|
|
19
62
|
postToolApproval
|
|
20
63
|
};
|
|
21
64
|
//# sourceMappingURL=approval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sources":["../../../src/data/chat/approval.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"approval.js","sources":["../../../src/data/chat/approval.ts"],"sourcesContent":["import type { UIMessage } from \"ai\";\n\nexport type CaptainChatSession = {\n id: string;\n revision?: number;\n messages: UIMessage[];\n};\n\nexport type ToolApprovalDecision = {\n sessionsApi: string;\n sessionId: string;\n approvalId: string;\n approved: boolean;\n reason?: string;\n};\n\ntype SessionFetch = (\n input: RequestInfo | URL,\n init?: RequestInit,\n) => Promise<Response>;\n\nexport async function getChatSession(\n sessionsApi: string,\n sessionId: string,\n fetcher: SessionFetch = fetch,\n): Promise<CaptainChatSession> {\n if (!sessionId.trim()) {\n throw new Error(\"A session id is required to load this chat.\");\n }\n const response = await fetcher(sessionEndpoint(sessionsApi, sessionId), {\n headers: { Accept: \"application/json\" },\n });\n if (!response.ok) {\n throw await responseError(\"Chat session request\", response);\n }\n return parseSession(await response.json());\n}\n\nexport async function postToolApproval(\n decision: ToolApprovalDecision,\n fetcher: SessionFetch = fetch,\n): Promise<CaptainChatSession> {\n if (!decision.sessionId.trim()) {\n throw new Error(\"A session id is required to resolve this tool approval.\");\n }\n const endpoint = `${sessionEndpoint(\n decision.sessionsApi,\n decision.sessionId,\n )}/approvals/${encodeURIComponent(decision.approvalId)}`;\n const response = await fetcher(endpoint, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(\n decision.reason\n ? { approved: decision.approved, reason: decision.reason }\n : { approved: decision.approved },\n ),\n });\n if (!response.ok) {\n throw await responseError(\"Tool approval\", response);\n }\n return parseSession(await response.json());\n}\n\nfunction sessionEndpoint(sessionsApi: string, sessionId: string): string {\n return `${stripTrailingSlashes(sessionsApi)}/${encodeURIComponent(sessionId)}`;\n}\n\n// Linear scan instead of `.replace(/\\/+$/, \"\")`: the regex backtracks\n// polynomially on caller-supplied base URLs with many trailing slashes.\nfunction stripTrailingSlashes(value: string): string {\n let end = value.length;\n while (end > 0 && value[end - 1] === \"/\") end--;\n return value.slice(0, end);\n}\n\nfunction parseSession(value: unknown): CaptainChatSession {\n if (\n typeof value !== \"object\" ||\n value === null ||\n !(\"id\" in value) ||\n typeof value.id !== \"string\"\n ) {\n throw new Error(\"Captain chat session response is invalid.\");\n }\n const messages = \"messages\" in value ? value.messages : [];\n if (!Array.isArray(messages)) {\n throw new Error(\"Captain chat session response is invalid.\");\n }\n return { ...value, messages } as CaptainChatSession;\n}\n\nasync function responseError(\n label: string,\n response: Response,\n): Promise<Error> {\n const detail = (await response.text()).trim();\n return new Error(\n `${label} failed with status ${response.status}${\n detail ? `: ${detail}` : \".\"\n }`,\n );\n}\n"],"names":[],"mappings":"AAqBA,eAAsB,eACpB,aACA,WACA,UAAwB,OACK;AAC7B,MAAI,CAAC,UAAU,QAAQ;AACrB,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACA,QAAM,WAAW,MAAM,QAAQ,gBAAgB,aAAa,SAAS,GAAG;AAAA,IACtE,SAAS,EAAE,QAAQ,mBAAA;AAAA,EAAmB,CACvC;AACD,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,MAAM,cAAc,wBAAwB,QAAQ;AAAA,EAC5D;AACA,SAAO,aAAa,MAAM,SAAS,MAAM;AAC3C;AAEA,eAAsB,iBACpB,UACA,UAAwB,OACK;AAC7B,MAAI,CAAC,SAAS,UAAU,QAAQ;AAC9B,UAAM,IAAI,MAAM,yDAAyD;AAAA,EAC3E;AACA,QAAM,WAAW,GAAG;AAAA,IAClB,SAAS;AAAA,IACT,SAAS;AAAA,EAAA,CACV,cAAc,mBAAmB,SAAS,UAAU,CAAC;AACtD,QAAM,WAAW,MAAM,QAAQ,UAAU;AAAA,IACvC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,gBAAgB;AAAA,IAAA;AAAA,IAElB,MAAM,KAAK;AAAA,MACT,SAAS,SACL,EAAE,UAAU,SAAS,UAAU,QAAQ,SAAS,OAAA,IAChD,EAAE,UAAU,SAAS,SAAA;AAAA,IAAS;AAAA,EACpC,CACD;AACD,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,MAAM,cAAc,iBAAiB,QAAQ;AAAA,EACrD;AACA,SAAO,aAAa,MAAM,SAAS,MAAM;AAC3C;AAEA,SAAS,gBAAgB,aAAqB,WAA2B;AACvE,SAAO,GAAG,qBAAqB,WAAW,CAAC,IAAI,mBAAmB,SAAS,CAAC;AAC9E;AAIA,SAAS,qBAAqB,OAAuB;AACnD,MAAI,MAAM,MAAM;AAChB,SAAO,MAAM,KAAK,MAAM,MAAM,CAAC,MAAM,IAAK;AAC1C,SAAO,MAAM,MAAM,GAAG,GAAG;AAC3B;AAEA,SAAS,aAAa,OAAoC;AACxD,MACE,OAAO,UAAU,YACjB,UAAU,QACV,EAAE,QAAQ,UACV,OAAO,MAAM,OAAO,UACpB;AACA,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACA,QAAM,WAAW,cAAc,QAAQ,MAAM,WAAW,CAAA;AACxD,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC5B,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACA,SAAO,EAAE,GAAG,OAAO,SAAA;AACrB;AAEA,eAAe,cACb,OACA,UACgB;AAChB,QAAM,UAAU,MAAM,SAAS,KAAA,GAAQ,KAAA;AACvC,SAAO,IAAI;AAAA,IACT,GAAG,KAAK,uBAAuB,SAAS,MAAM,GAC5C,SAAS,KAAK,MAAM,KAAK,GAC3B;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
export { Chat, type ChatProps } from './Chat';
|
|
2
2
|
export { Conversation, type ConversationProps } from './Conversation';
|
|
3
|
-
export { Message, type MessageProps, type MessageActionHandlers } from './Message';
|
|
3
|
+
export { Message, type MessageProps, type MessageActionHandlers, } from './Message';
|
|
4
4
|
export { MessageActions, type MessageActionsProps } from './MessageActions';
|
|
5
5
|
export { Reasoning, type ReasoningProps } from './Reasoning';
|
|
6
6
|
export { PromptInput, type PromptInputProps } from './PromptInput';
|
|
7
|
+
export { RuntimeBar, type RuntimeBarProps, type RuntimeBarValue, } from '../runtime/RuntimeBar';
|
|
7
8
|
export { ToolCall, type ToolCallProps } from './ToolCall';
|
|
8
9
|
export { Suggestions, type SuggestionsProps } from './Suggestion';
|
|
9
10
|
export { ModelSelector, type ModelSelectorProps, EffortSelector, type EffortSelectorProps, ProviderSelector, type ProviderSelectorOption, type ProviderSelectorProps, BudgetSelector, type BudgetSelectorProps, } from './ModelSelector';
|
|
10
|
-
export { providerIcon, providerIconColor, type ProviderGlyph } from './provider-icons';
|
|
11
|
+
export { providerIcon, providerIconColor, type ProviderGlyph, } from './provider-icons';
|
|
11
12
|
export { defaultChatModelId } from './models';
|
|
12
13
|
export { ContextMeter, type ContextMeterProps, type ContextMeterMode, type ContextMeterTokens, type ContextMeterCost, type ContextMeterBudget, } from './ContextMeter';
|
|
13
14
|
export { AttachmentButton, type AttachmentButtonProps, AttachmentList, type AttachmentListProps, } from './Attachment';
|
|
14
15
|
export { createAttachmentUploadAdapter, DEFAULT_ATTACHMENT_LIMITS, type AttachmentFilePart, type AttachmentLimits, type AttachmentUploadAdapter, } from './attachment-upload';
|
|
15
16
|
export { clickyOperationsToTools, operationToTool, } from './clickyOperationsToTools';
|
|
17
|
+
export { ToolRenderRegistry, createToolRenderRegistry, toToolRenderRegistry, toolNameAdapter, ToolRenderRegistryProvider, useToolRenderRegistry, defaultToolInputView, defaultToolOutputView, defaultToolRenderAdapters, knownToolRenderAdapters, defaultToolSummary, summarizeToolValue, normalizeToolOutput, classifyToolValue, deriveColumns, fieldMetaFromSchema, listItemsSchema, orderFieldKeys, ToolParams, ToolFieldValue, ToolArgs, ToolValue, type ToolRenderAdapter, type ToolRenderAdapterContext, type ToolRenderBaseContext, type ToolRenderRegistryOptions, type ToolRenderSurface, type NormalizedToolOutput, type ClassifiedToolValue, type ToolValueShape, type ToolPageInfo, type ToolFieldMeta, type ToolParamsProps, type ToolArgsProps, type ToolValueProps, } from './tool-render';
|
|
16
18
|
export { mockChatTransport, MOCK_MODELS } from './Chat.fixtures';
|
|
17
|
-
export { isDynamicToolPart, isTypedToolPart, isReasoningPart, isFilePart, toolPartName, suggestionLabel, suggestionPrompt, CLAUDE_PERMISSION_MODES, CLAUDE_PERMISSION_MODE_OPTIONS, type AnyToolPart, type ChatModel, type ChatMessageMetadata, type ChatUsageSummary, type ChatBudgetConfig, type ChatUsageBreakdown, type ChatCostBreakdown, type ChatStatus, type ChatToolInputSchema, type ClaudePermissionMode, type ClaudePermissionModeOption, type ToolResultRenderArgs, type ToolResultRenderer, type ToolAnnotations, type ToolMeta, type ToolMode, type DynamicToolUIPart, type FileUIPart, type JSONSchemaProperty, type ReasoningUIPart, type Suggestion, type ToolUIPart, type UIMessage, } from './types';
|
|
19
|
+
export { isDynamicToolPart, isTypedToolPart, isReasoningPart, isFilePart, toolPartName, suggestionLabel, suggestionPrompt, CLAUDE_PERMISSION_MODES, CLAUDE_PERMISSION_MODE_OPTIONS, type AnyToolPart, type ChatModel, type ChatModelRuntime, type RuntimeAvailability, type RuntimeAvailabilityState, type ChatMessageMetadata, type ChatUsageSummary, type ChatBudgetConfig, type ChatUsageBreakdown, type ChatCostBreakdown, type ChatStatus, type ChatToolInputSchema, type ClaudePermissionMode, type ClaudePermissionModeOption, type ToolResultRenderArgs, type ToolResultRenderer, type ToolAnnotations, type ToolMeta, type ToolMode, type DynamicToolUIPart, type FileUIPart, type JSONSchemaProperty, type ReasoningUIPart, type Suggestion, type ToolUIPart, type UIMessage, } from './types';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/chat/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/chat/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const ARG_VALUE_LIMIT = 120;
|
|
5
|
+
function compactValue(value) {
|
|
6
|
+
let text;
|
|
7
|
+
if (typeof value === "string") {
|
|
8
|
+
text = value.replace(/\s+/g, " ").trim();
|
|
9
|
+
} else if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
|
|
10
|
+
text = String(value);
|
|
11
|
+
} else {
|
|
12
|
+
const serialized = JSON.stringify(value);
|
|
13
|
+
if (serialized === void 0) {
|
|
14
|
+
throw new Error(`Cannot render tool argument of type ${typeof value}.`);
|
|
15
|
+
}
|
|
16
|
+
text = serialized;
|
|
17
|
+
}
|
|
18
|
+
return text.length > ARG_VALUE_LIMIT ? `${text.slice(0, ARG_VALUE_LIMIT)}…` : text;
|
|
19
|
+
}
|
|
20
|
+
function toolArgs(input) {
|
|
21
|
+
if (input === void 0 || input === null || input === "") return [];
|
|
22
|
+
if (typeof input !== "object" || Array.isArray(input)) {
|
|
23
|
+
return [{ key: "input", value: compactValue(input) }];
|
|
24
|
+
}
|
|
25
|
+
return Object.entries(input).flatMap(([key, value]) => {
|
|
26
|
+
if (value === void 0 || value === null || value === "") return [];
|
|
27
|
+
return [{ key, value: compactValue(value) }];
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function ToolArgs({ input }) {
|
|
31
|
+
const args = toolArgs(input);
|
|
32
|
+
if (args.length === 0) return null;
|
|
33
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
34
|
+
"span",
|
|
35
|
+
{
|
|
36
|
+
"data-slot": "tool-call-args",
|
|
37
|
+
"data-testid": "tool-call-args",
|
|
38
|
+
className: "min-w-0 flex-1 truncate font-mono text-xs",
|
|
39
|
+
children: args.map((arg) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "[&:not(:first-child)]:ml-2", children: [
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/60", children: arg.key }),
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
|
|
42
|
+
": ",
|
|
43
|
+
arg.value
|
|
44
|
+
] })
|
|
45
|
+
] }, arg.key))
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
exports.ToolArgs = ToolArgs;
|
|
50
|
+
//# sourceMappingURL=ToolArgs.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolArgs.cjs","sources":["../../../../src/data/chat/tool-render/ToolArgs.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nexport type ToolArgsProps = {\n input: unknown;\n};\n\ntype ToolArg = {\n key: string;\n value: string;\n};\n\nconst ARG_VALUE_LIMIT = 120;\n\nfunction compactValue(value: unknown): string {\n let text: string;\n if (typeof value === \"string\") {\n text = value.replace(/\\s+/g, \" \").trim();\n } else if (\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n text = String(value);\n } else {\n const serialized = JSON.stringify(value);\n if (serialized === undefined) {\n throw new Error(`Cannot render tool argument of type ${typeof value}.`);\n }\n text = serialized;\n }\n return text.length > ARG_VALUE_LIMIT\n ? `${text.slice(0, ARG_VALUE_LIMIT)}…`\n : text;\n}\n\nfunction toolArgs(input: unknown): ToolArg[] {\n if (input === undefined || input === null || input === \"\") return [];\n if (typeof input !== \"object\" || Array.isArray(input)) {\n return [{ key: \"input\", value: compactValue(input) }];\n }\n return Object.entries(input).flatMap(([key, value]) => {\n if (value === undefined || value === null || value === \"\") return [];\n return [{ key, value: compactValue(value) }];\n });\n}\n\n/** Compact, single-line input arguments for a collapsed tool call. */\nexport function ToolArgs({ input }: ToolArgsProps): ReactNode {\n const args = toolArgs(input);\n if (args.length === 0) return null;\n\n return (\n <span\n data-slot=\"tool-call-args\"\n data-testid=\"tool-call-args\"\n className=\"min-w-0 flex-1 truncate font-mono text-xs\"\n >\n {args.map((arg) => (\n <span key={arg.key} className=\"[&:not(:first-child)]:ml-2\">\n <span className=\"text-muted-foreground/60\">{arg.key}</span>\n <span className=\"text-muted-foreground\">: {arg.value}</span>\n </span>\n ))}\n </span>\n );\n}\n"],"names":["jsx","jsxs"],"mappings":";;;AAWA,MAAM,kBAAkB;AAExB,SAAS,aAAa,OAAwB;AAC5C,MAAI;AACJ,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,MAAM,QAAQ,QAAQ,GAAG,EAAE,KAAA;AAAA,EACpC,WACE,OAAO,UAAU,YACjB,OAAO,UAAU,aACjB,OAAO,UAAU,UACjB;AACA,WAAO,OAAO,KAAK;AAAA,EACrB,OAAO;AACL,UAAM,aAAa,KAAK,UAAU,KAAK;AACvC,QAAI,eAAe,QAAW;AAC5B,YAAM,IAAI,MAAM,uCAAuC,OAAO,KAAK,GAAG;AAAA,IACxE;AACA,WAAO;AAAA,EACT;AACA,SAAO,KAAK,SAAS,kBACjB,GAAG,KAAK,MAAM,GAAG,eAAe,CAAC,MACjC;AACN;AAEA,SAAS,SAAS,OAA2B;AAC3C,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,WAAW,CAAA;AAClE,MAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AACrD,WAAO,CAAC,EAAE,KAAK,SAAS,OAAO,aAAa,KAAK,GAAG;AAAA,EACtD;AACA,SAAO,OAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,QAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,WAAW,CAAA;AAClE,WAAO,CAAC,EAAE,KAAK,OAAO,aAAa,KAAK,GAAG;AAAA,EAC7C,CAAC;AACH;AAGO,SAAS,SAAS,EAAE,SAAmC;AAC5D,QAAM,OAAO,SAAS,KAAK;AAC3B,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,WAAU;AAAA,MAET,eAAK,IAAI,CAAC,QACTC,gCAAC,QAAA,EAAmB,WAAU,8BAC5B,UAAA;AAAA,QAAAD,2BAAAA,IAAC,QAAA,EAAK,WAAU,4BAA4B,UAAA,IAAI,KAAI;AAAA,QACpDC,2BAAAA,KAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA;AAAA,UAAA;AAAA,UAAG,IAAI;AAAA,QAAA,EAAA,CAAM;AAAA,MAAA,EAAA,GAF5C,IAAI,GAGf,CACD;AAAA,IAAA;AAAA,EAAA;AAGP;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type ToolArgsProps = {
|
|
3
|
+
input: unknown;
|
|
4
|
+
};
|
|
5
|
+
/** Compact, single-line input arguments for a collapsed tool call. */
|
|
6
|
+
export declare function ToolArgs({ input }: ToolArgsProps): ReactNode;
|
|
7
|
+
//# sourceMappingURL=ToolArgs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolArgs.d.ts","sourceRoot":"","sources":["../../../../src/data/chat/tool-render/ToolArgs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AA0CF,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,GAAG,SAAS,CAkB5D"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
const ARG_VALUE_LIMIT = 120;
|
|
3
|
+
function compactValue(value) {
|
|
4
|
+
let text;
|
|
5
|
+
if (typeof value === "string") {
|
|
6
|
+
text = value.replace(/\s+/g, " ").trim();
|
|
7
|
+
} else if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
|
|
8
|
+
text = String(value);
|
|
9
|
+
} else {
|
|
10
|
+
const serialized = JSON.stringify(value);
|
|
11
|
+
if (serialized === void 0) {
|
|
12
|
+
throw new Error(`Cannot render tool argument of type ${typeof value}.`);
|
|
13
|
+
}
|
|
14
|
+
text = serialized;
|
|
15
|
+
}
|
|
16
|
+
return text.length > ARG_VALUE_LIMIT ? `${text.slice(0, ARG_VALUE_LIMIT)}…` : text;
|
|
17
|
+
}
|
|
18
|
+
function toolArgs(input) {
|
|
19
|
+
if (input === void 0 || input === null || input === "") return [];
|
|
20
|
+
if (typeof input !== "object" || Array.isArray(input)) {
|
|
21
|
+
return [{ key: "input", value: compactValue(input) }];
|
|
22
|
+
}
|
|
23
|
+
return Object.entries(input).flatMap(([key, value]) => {
|
|
24
|
+
if (value === void 0 || value === null || value === "") return [];
|
|
25
|
+
return [{ key, value: compactValue(value) }];
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function ToolArgs({ input }) {
|
|
29
|
+
const args = toolArgs(input);
|
|
30
|
+
if (args.length === 0) return null;
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
"span",
|
|
33
|
+
{
|
|
34
|
+
"data-slot": "tool-call-args",
|
|
35
|
+
"data-testid": "tool-call-args",
|
|
36
|
+
className: "min-w-0 flex-1 truncate font-mono text-xs",
|
|
37
|
+
children: args.map((arg) => /* @__PURE__ */ jsxs("span", { className: "[&:not(:first-child)]:ml-2", children: [
|
|
38
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground/60", children: arg.key }),
|
|
39
|
+
/* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
40
|
+
": ",
|
|
41
|
+
arg.value
|
|
42
|
+
] })
|
|
43
|
+
] }, arg.key))
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
ToolArgs
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=ToolArgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolArgs.js","sources":["../../../../src/data/chat/tool-render/ToolArgs.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nexport type ToolArgsProps = {\n input: unknown;\n};\n\ntype ToolArg = {\n key: string;\n value: string;\n};\n\nconst ARG_VALUE_LIMIT = 120;\n\nfunction compactValue(value: unknown): string {\n let text: string;\n if (typeof value === \"string\") {\n text = value.replace(/\\s+/g, \" \").trim();\n } else if (\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n text = String(value);\n } else {\n const serialized = JSON.stringify(value);\n if (serialized === undefined) {\n throw new Error(`Cannot render tool argument of type ${typeof value}.`);\n }\n text = serialized;\n }\n return text.length > ARG_VALUE_LIMIT\n ? `${text.slice(0, ARG_VALUE_LIMIT)}…`\n : text;\n}\n\nfunction toolArgs(input: unknown): ToolArg[] {\n if (input === undefined || input === null || input === \"\") return [];\n if (typeof input !== \"object\" || Array.isArray(input)) {\n return [{ key: \"input\", value: compactValue(input) }];\n }\n return Object.entries(input).flatMap(([key, value]) => {\n if (value === undefined || value === null || value === \"\") return [];\n return [{ key, value: compactValue(value) }];\n });\n}\n\n/** Compact, single-line input arguments for a collapsed tool call. */\nexport function ToolArgs({ input }: ToolArgsProps): ReactNode {\n const args = toolArgs(input);\n if (args.length === 0) return null;\n\n return (\n <span\n data-slot=\"tool-call-args\"\n data-testid=\"tool-call-args\"\n className=\"min-w-0 flex-1 truncate font-mono text-xs\"\n >\n {args.map((arg) => (\n <span key={arg.key} className=\"[&:not(:first-child)]:ml-2\">\n <span className=\"text-muted-foreground/60\">{arg.key}</span>\n <span className=\"text-muted-foreground\">: {arg.value}</span>\n </span>\n ))}\n </span>\n );\n}\n"],"names":[],"mappings":";AAWA,MAAM,kBAAkB;AAExB,SAAS,aAAa,OAAwB;AAC5C,MAAI;AACJ,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,MAAM,QAAQ,QAAQ,GAAG,EAAE,KAAA;AAAA,EACpC,WACE,OAAO,UAAU,YACjB,OAAO,UAAU,aACjB,OAAO,UAAU,UACjB;AACA,WAAO,OAAO,KAAK;AAAA,EACrB,OAAO;AACL,UAAM,aAAa,KAAK,UAAU,KAAK;AACvC,QAAI,eAAe,QAAW;AAC5B,YAAM,IAAI,MAAM,uCAAuC,OAAO,KAAK,GAAG;AAAA,IACxE;AACA,WAAO;AAAA,EACT;AACA,SAAO,KAAK,SAAS,kBACjB,GAAG,KAAK,MAAM,GAAG,eAAe,CAAC,MACjC;AACN;AAEA,SAAS,SAAS,OAA2B;AAC3C,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,WAAW,CAAA;AAClE,MAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AACrD,WAAO,CAAC,EAAE,KAAK,SAAS,OAAO,aAAa,KAAK,GAAG;AAAA,EACtD;AACA,SAAO,OAAO,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,QAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,WAAW,CAAA;AAClE,WAAO,CAAC,EAAE,KAAK,OAAO,aAAa,KAAK,GAAG;AAAA,EAC7C,CAAC;AACH;AAGO,SAAS,SAAS,EAAE,SAAmC;AAC5D,QAAM,OAAO,SAAS,KAAK;AAC3B,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,WAAU;AAAA,MAET,eAAK,IAAI,CAAC,QACT,qBAAC,QAAA,EAAmB,WAAU,8BAC5B,UAAA;AAAA,QAAA,oBAAC,QAAA,EAAK,WAAU,4BAA4B,UAAA,IAAI,KAAI;AAAA,QACpD,qBAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA;AAAA,UAAA;AAAA,UAAG,IAAI;AAAA,QAAA,EAAA,CAAM;AAAA,MAAA,EAAA,GAF5C,IAAI,GAGf,CACD;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|