@flanksource/clicky-ui 0.3.15 → 0.3.16
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/NOTICE.md +10 -0
- package/dist/ai.cjs +33 -4
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +31 -2
- package/dist/ai.js.map +1 -1
- package/dist/chat.cjs +6 -0
- package/dist/chat.cjs.map +1 -1
- package/dist/chat.js +7 -1
- package/dist/chat.js.map +1 -1
- package/dist/components/Combobox.cjs +92 -170
- package/dist/components/Combobox.cjs.map +1 -1
- package/dist/components/Combobox.d.ts +2 -111
- package/dist/components/Combobox.d.ts.map +1 -1
- package/dist/components/Combobox.js +95 -173
- package/dist/components/Combobox.js.map +1 -1
- package/dist/components/ComboboxActions.cjs +70 -0
- package/dist/components/ComboboxActions.cjs.map +1 -0
- package/dist/components/ComboboxActions.d.ts +8 -0
- package/dist/components/ComboboxActions.d.ts.map +1 -0
- package/dist/components/ComboboxActions.js +70 -0
- package/dist/components/ComboboxActions.js.map +1 -0
- package/dist/components/ComboboxMenu.cjs +160 -0
- package/dist/components/ComboboxMenu.cjs.map +1 -0
- package/dist/components/ComboboxMenu.d.ts +22 -0
- package/dist/components/ComboboxMenu.d.ts.map +1 -0
- package/dist/components/ComboboxMenu.js +160 -0
- package/dist/components/ComboboxMenu.js.map +1 -0
- package/dist/components/EndpointSelector.cjs +407 -0
- package/dist/components/EndpointSelector.cjs.map +1 -0
- package/dist/components/EndpointSelector.d.ts +3 -0
- package/dist/components/EndpointSelector.d.ts.map +1 -0
- package/dist/components/EndpointSelector.js +407 -0
- package/dist/components/EndpointSelector.js.map +1 -0
- package/dist/components/EndpointSelector.model.d.ts +52 -0
- package/dist/components/EndpointSelector.model.d.ts.map +1 -0
- package/dist/components/FilterBar.cjs +12 -0
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +4 -0
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +12 -0
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/InputField.cjs +11 -12
- package/dist/components/InputField.cjs.map +1 -1
- package/dist/components/InputField.d.ts +7 -0
- package/dist/components/InputField.d.ts.map +1 -1
- package/dist/components/InputField.js +12 -13
- package/dist/components/InputField.js.map +1 -1
- package/dist/components/JsonSchemaForm.cjs +22 -16
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +22 -16
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/MultiSelect.cjs +3 -3
- package/dist/components/MultiSelect.cjs.map +1 -1
- package/dist/components/MultiSelect.d.ts.map +1 -1
- package/dist/components/MultiSelect.js +3 -3
- package/dist/components/MultiSelect.js.map +1 -1
- package/dist/components/SecretKeySelector.cjs +150 -77
- package/dist/components/SecretKeySelector.cjs.map +1 -1
- package/dist/components/SecretKeySelector.d.ts.map +1 -1
- package/dist/components/SecretKeySelector.js +151 -78
- package/dist/components/SecretKeySelector.js.map +1 -1
- package/dist/components/WorkloadPicker.cjs +2 -1
- package/dist/components/WorkloadPicker.cjs.map +1 -1
- package/dist/components/WorkloadPicker.d.ts +6 -1
- package/dist/components/WorkloadPicker.d.ts.map +1 -1
- package/dist/components/WorkloadPicker.js +2 -1
- package/dist/components/WorkloadPicker.js.map +1 -1
- package/dist/components/combobox-types.d.ts +107 -0
- package/dist/components/combobox-types.d.ts.map +1 -0
- package/dist/components/combobox-utils.cjs +21 -0
- package/dist/components/combobox-utils.cjs.map +1 -0
- package/dist/components/combobox-utils.d.ts +15 -0
- package/dist/components/combobox-utils.d.ts.map +1 -0
- package/dist/components/combobox-utils.js +21 -0
- package/dist/components/combobox-utils.js.map +1 -0
- package/dist/components/endpoint-port.cjs +12 -0
- package/dist/components/endpoint-port.cjs.map +1 -0
- package/dist/components/endpoint-port.d.ts +4 -0
- package/dist/components/endpoint-port.d.ts.map +1 -0
- package/dist/components/endpoint-port.js +12 -0
- package/dist/components/endpoint-port.js.map +1 -0
- package/dist/components/json-schema-form-array.cjs +12 -23
- 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 +12 -23
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-discriminator.cjs +6 -2
- package/dist/components/json-schema-form-discriminator.cjs.map +1 -1
- package/dist/components/json-schema-form-discriminator.d.ts.map +1 -1
- package/dist/components/json-schema-form-discriminator.js +6 -2
- package/dist/components/json-schema-form-discriminator.js.map +1 -1
- package/dist/components/json-schema-form-error-display.cjs +50 -0
- package/dist/components/json-schema-form-error-display.cjs.map +1 -0
- package/dist/components/json-schema-form-error-display.d.ts +12 -0
- package/dist/components/json-schema-form-error-display.d.ts.map +1 -0
- package/dist/components/json-schema-form-error-display.js +50 -0
- package/dist/components/json-schema-form-error-display.js.map +1 -0
- package/dist/components/json-schema-form-error-types.d.ts +26 -0
- package/dist/components/json-schema-form-error-types.d.ts.map +1 -0
- package/dist/components/json-schema-form-errors.cjs +169 -0
- package/dist/components/json-schema-form-errors.cjs.map +1 -0
- package/dist/components/json-schema-form-errors.d.ts +14 -0
- package/dist/components/json-schema-form-errors.d.ts.map +1 -0
- package/dist/components/json-schema-form-errors.js +169 -0
- package/dist/components/json-schema-form-errors.js.map +1 -0
- package/dist/components/json-schema-form-object.cjs +12 -2
- 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 +12 -2
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-refs.cjs +84 -19
- package/dist/components/json-schema-form-refs.cjs.map +1 -1
- package/dist/components/json-schema-form-refs.d.ts.map +1 -1
- package/dist/components/json-schema-form-refs.js +84 -19
- package/dist/components/json-schema-form-refs.js.map +1 -1
- package/dist/components/json-schema-form-render.cjs +33 -10
- 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 +34 -11
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +16 -4
- 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 +17 -5
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +4 -3
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components.cjs +13 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +8 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +15 -2
- package/dist/components.js.map +1 -1
- package/dist/data/DataTable.cjs +177 -6
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +39 -0
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.grouping.cjs +21 -0
- package/dist/data/DataTable.grouping.cjs.map +1 -0
- package/dist/data/DataTable.grouping.d.ts +26 -0
- package/dist/data/DataTable.grouping.d.ts.map +1 -0
- package/dist/data/DataTable.grouping.js +21 -0
- package/dist/data/DataTable.grouping.js.map +1 -0
- package/dist/data/DataTable.js +177 -6
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/Markdown.cjs +45 -1
- package/dist/data/Markdown.cjs.map +1 -1
- package/dist/data/Markdown.d.ts +3 -2
- package/dist/data/Markdown.d.ts.map +1 -1
- package/dist/data/Markdown.js +45 -1
- package/dist/data/Markdown.js.map +1 -1
- package/dist/data/MarkdownEditor.cjs +4 -3
- package/dist/data/MarkdownEditor.cjs.map +1 -1
- package/dist/data/MarkdownEditor.d.ts +6 -2
- package/dist/data/MarkdownEditor.d.ts.map +1 -1
- package/dist/data/MarkdownEditor.js +4 -3
- package/dist/data/MarkdownEditor.js.map +1 -1
- package/dist/data/StatStrip.cjs +99 -0
- package/dist/data/StatStrip.cjs.map +1 -0
- package/dist/data/StatStrip.d.ts +41 -0
- package/dist/data/StatStrip.d.ts.map +1 -0
- package/dist/data/StatStrip.js +99 -0
- package/dist/data/StatStrip.js.map +1 -0
- package/dist/data/TaskManager.cjs +20 -1
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts +3 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +20 -1
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskManagerButton.cjs +49 -0
- package/dist/data/TaskManagerButton.cjs.map +1 -0
- package/dist/data/TaskManagerButton.d.ts +8 -0
- package/dist/data/TaskManagerButton.d.ts.map +1 -0
- package/dist/data/TaskManagerButton.js +49 -0
- package/dist/data/TaskManagerButton.js.map +1 -0
- package/dist/data/TaskProcessDetails.cjs +113 -0
- package/dist/data/TaskProcessDetails.cjs.map +1 -0
- package/dist/data/TaskProcessDetails.d.ts +6 -0
- package/dist/data/TaskProcessDetails.d.ts.map +1 -0
- package/dist/data/TaskProcessDetails.js +113 -0
- package/dist/data/TaskProcessDetails.js.map +1 -0
- package/dist/data/TaskProgress.cjs +106 -19
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +4 -2
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +107 -20
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +43 -0
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/Tree.cjs +91 -82
- package/dist/data/Tree.cjs.map +1 -1
- package/dist/data/Tree.d.ts +3 -1
- package/dist/data/Tree.d.ts.map +1 -1
- package/dist/data/Tree.js +91 -82
- package/dist/data/Tree.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 +2 -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/ChatWindow.cjs +9 -140
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts +2 -40
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +6 -137
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.models.cjs +11 -0
- package/dist/data/ai/ChatWindow.models.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.models.d.ts +3 -0
- package/dist/data/ai/ChatWindow.models.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.models.js +11 -0
- package/dist/data/ai/ChatWindow.models.js.map +1 -0
- package/dist/data/ai/ChatWindow.preferences.cjs +57 -0
- package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.preferences.d.ts +13 -0
- package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.preferences.js +57 -0
- package/dist/data/ai/ChatWindow.preferences.js.map +1 -0
- package/dist/data/ai/ChatWindow.tool-catalog.cjs +99 -0
- package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.tool-catalog.d.ts +3 -0
- package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.tool-catalog.js +99 -0
- package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -0
- package/dist/data/ai/ChatWindow.types.d.ts +41 -0
- package/dist/data/ai/ChatWindow.types.d.ts.map +1 -0
- package/dist/data/ai/ContextBadges.cjs +76 -46
- package/dist/data/ai/ContextBadges.cjs.map +1 -1
- package/dist/data/ai/ContextBadges.d.ts.map +1 -1
- package/dist/data/ai/ContextBadges.js +77 -47
- package/dist/data/ai/ContextBadges.js.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.cjs +151 -32
- package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts +7 -4
- package/dist/data/ai/PromptPicker/PromptPicker.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.js +152 -33
- package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
- package/dist/data/ai/PromptPicker/PromptSourceRepair.cjs +133 -0
- package/dist/data/ai/PromptPicker/PromptSourceRepair.cjs.map +1 -0
- package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +11 -0
- package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts.map +1 -0
- package/dist/data/ai/PromptPicker/PromptSourceRepair.js +133 -0
- package/dist/data/ai/PromptPicker/PromptSourceRepair.js.map +1 -0
- package/dist/data/ai/PromptPicker/index.d.ts +2 -1
- package/dist/data/ai/PromptPicker/index.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/types.cjs +7 -0
- package/dist/data/ai/PromptPicker/types.cjs.map +1 -0
- package/dist/data/ai/PromptPicker/types.d.ts +18 -2
- package/dist/data/ai/PromptPicker/types.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/types.js +7 -0
- package/dist/data/ai/PromptPicker/types.js.map +1 -0
- package/dist/data/ai/PromptRunEditor/index.cjs +82 -14
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +5 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +83 -15
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/RuntimeBar.cjs +336 -0
- package/dist/data/ai/RuntimeBar.cjs.map +1 -0
- package/dist/data/ai/RuntimeBar.d.ts +27 -0
- package/dist/data/ai/RuntimeBar.d.ts.map +1 -0
- package/dist/data/ai/RuntimeBar.js +336 -0
- package/dist/data/ai/RuntimeBar.js.map +1 -0
- package/dist/data/ai/SessionChatComposer.cjs +56 -0
- package/dist/data/ai/SessionChatComposer.cjs.map +1 -0
- package/dist/data/ai/SessionChatComposer.d.ts +24 -0
- package/dist/data/ai/SessionChatComposer.d.ts.map +1 -0
- package/dist/data/ai/SessionChatComposer.js +56 -0
- package/dist/data/ai/SessionChatComposer.js.map +1 -0
- package/dist/data/ai/SessionInspector.cjs +222 -382
- package/dist/data/ai/SessionInspector.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.collection-types.d.ts +55 -0
- package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.collection.cjs +377 -0
- package/dist/data/ai/SessionInspector.collection.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.collection.d.ts +15 -0
- package/dist/data/ai/SessionInspector.collection.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.collection.js +377 -0
- package/dist/data/ai/SessionInspector.collection.js.map +1 -0
- package/dist/data/ai/SessionInspector.d.ts +9 -4
- package/dist/data/ai/SessionInspector.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.files.cjs +162 -0
- package/dist/data/ai/SessionInspector.files.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.files.d.ts +5 -0
- package/dist/data/ai/SessionInspector.files.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.files.js +162 -0
- package/dist/data/ai/SessionInspector.files.js.map +1 -0
- package/dist/data/ai/SessionInspector.hierarchy-state.cjs +148 -0
- package/dist/data/ai/SessionInspector.hierarchy-state.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +15 -0
- package/dist/data/ai/SessionInspector.hierarchy-state.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.hierarchy-state.js +148 -0
- package/dist/data/ai/SessionInspector.hierarchy-state.js.map +1 -0
- package/dist/data/ai/SessionInspector.hierarchy.cjs +256 -0
- package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +9 -0
- package/dist/data/ai/SessionInspector.hierarchy.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.hierarchy.js +256 -0
- package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -0
- package/dist/data/ai/SessionInspector.js +224 -384
- package/dist/data/ai/SessionInspector.js.map +1 -1
- package/dist/data/ai/SessionInspector.model.cjs +125 -0
- package/dist/data/ai/SessionInspector.model.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.model.d.ts +14 -0
- package/dist/data/ai/SessionInspector.model.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.model.js +125 -0
- package/dist/data/ai/SessionInspector.model.js.map +1 -0
- package/dist/data/ai/SessionInspector.panels.cjs +265 -0
- package/dist/data/ai/SessionInspector.panels.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.panels.d.ts +10 -0
- package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.panels.js +265 -0
- package/dist/data/ai/SessionInspector.panels.js.map +1 -0
- package/dist/data/ai/SessionInspector.plan.cjs +77 -0
- package/dist/data/ai/SessionInspector.plan.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.plan.d.ts +6 -0
- package/dist/data/ai/SessionInspector.plan.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.plan.js +77 -0
- package/dist/data/ai/SessionInspector.plan.js.map +1 -0
- package/dist/data/ai/SessionInspector.summary.cjs +182 -0
- package/dist/data/ai/SessionInspector.summary.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.summary.d.ts +8 -0
- package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.summary.js +182 -0
- package/dist/data/ai/SessionInspector.summary.js.map +1 -0
- package/dist/data/ai/SessionInspector.transcript.cjs +94 -0
- package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.transcript.d.ts +7 -0
- package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.transcript.js +94 -0
- package/dist/data/ai/SessionInspector.transcript.js.map +1 -0
- package/dist/data/ai/SessionInspector.turns.d.ts +11 -0
- package/dist/data/ai/SessionInspector.turns.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.cjs +86 -121
- package/dist/data/ai/SessionViewer.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +8 -1
- package/dist/data/ai/SessionViewer.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.fixtures.d.ts +2 -0
- package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.header.cjs +110 -0
- package/dist/data/ai/SessionViewer.header.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.header.d.ts +11 -0
- package/dist/data/ai/SessionViewer.header.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.header.js +110 -0
- package/dist/data/ai/SessionViewer.header.js.map +1 -0
- package/dist/data/ai/SessionViewer.js +87 -122
- package/dist/data/ai/SessionViewer.js.map +1 -1
- package/dist/data/ai/SessionViewer.model.cjs +109 -39
- package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.model.d.ts +2 -0
- package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.model.js +109 -39
- package/dist/data/ai/SessionViewer.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.row-metadata.cjs +132 -0
- package/dist/data/ai/SessionViewer.row-metadata.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.row-metadata.d.ts +14 -0
- package/dist/data/ai/SessionViewer.row-metadata.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.row-metadata.js +132 -0
- package/dist/data/ai/SessionViewer.row-metadata.js.map +1 -0
- package/dist/data/ai/SessionViewer.row-time.cjs +15 -0
- package/dist/data/ai/SessionViewer.row-time.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.row-time.d.ts +3 -0
- package/dist/data/ai/SessionViewer.row-time.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.row-time.js +15 -0
- package/dist/data/ai/SessionViewer.row-time.js.map +1 -0
- package/dist/data/ai/SessionViewer.rows.cjs +37 -424
- package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +5 -2
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.rows.js +31 -418
- package/dist/data/ai/SessionViewer.rows.js.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.cjs +65 -0
- package/dist/data/ai/SessionViewer.tool-details.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tool-details.d.ts +20 -0
- package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tool-details.js +65 -0
- package/dist/data/ai/SessionViewer.tool-details.js.map +1 -0
- package/dist/data/ai/SessionViewer.tool-row.cjs +404 -0
- package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tool-row.d.ts +12 -0
- package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tool-row.js +404 -0
- package/dist/data/ai/SessionViewer.tool-row.js.map +1 -0
- package/dist/data/ai/SessionViewer.unified.d.ts +10 -2
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +44 -26
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +47 -29
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +45 -153
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +51 -159
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +0 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +0 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +0 -5
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +0 -5
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.cjs +19 -6
- package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts +5 -2
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.js +19 -6
- package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.cjs +67 -10
- package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts +31 -4
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.js +67 -10
- package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
- package/dist/data/ai/ToolPreferences.cjs +2 -1
- package/dist/data/ai/ToolPreferences.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.js +2 -1
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/agent-action-icons.cjs +7 -10
- package/dist/data/ai/agent-action-icons.cjs.map +1 -1
- package/dist/data/ai/agent-action-icons.d.ts +1 -2
- package/dist/data/ai/agent-action-icons.d.ts.map +1 -1
- package/dist/data/ai/agent-action-icons.js +8 -11
- package/dist/data/ai/agent-action-icons.js.map +1 -1
- package/dist/data/ai/context.cjs.map +1 -1
- package/dist/data/ai/context.d.ts +4 -0
- package/dist/data/ai/context.d.ts.map +1 -1
- package/dist/data/ai/context.js.map +1 -1
- package/dist/data/ai/examples/sessions/claude-complete.cjs +513 -0
- package/dist/data/ai/examples/sessions/claude-complete.cjs.map +1 -0
- package/dist/data/ai/examples/sessions/claude-complete.d.ts +3 -0
- package/dist/data/ai/examples/sessions/claude-complete.d.ts.map +1 -0
- package/dist/data/ai/examples/sessions/claude-complete.js +513 -0
- package/dist/data/ai/examples/sessions/claude-complete.js.map +1 -0
- package/dist/data/ai/examples/sessions/claude.cjs +252 -0
- package/dist/data/ai/examples/sessions/claude.cjs.map +1 -0
- package/dist/data/ai/examples/sessions/claude.d.ts +3 -0
- package/dist/data/ai/examples/sessions/claude.d.ts.map +1 -0
- package/dist/data/ai/examples/sessions/claude.js +252 -0
- package/dist/data/ai/examples/sessions/claude.js.map +1 -0
- package/dist/data/ai/examples/sessions/codex-complete.cjs +394 -0
- package/dist/data/ai/examples/sessions/codex-complete.cjs.map +1 -0
- package/dist/data/ai/examples/sessions/codex-complete.d.ts +3 -0
- package/dist/data/ai/examples/sessions/codex-complete.d.ts.map +1 -0
- package/dist/data/ai/examples/sessions/codex-complete.js +394 -0
- package/dist/data/ai/examples/sessions/codex-complete.js.map +1 -0
- package/dist/data/ai/examples/sessions/codex.cjs +236 -0
- package/dist/data/ai/examples/sessions/codex.cjs.map +1 -0
- package/dist/data/ai/examples/sessions/codex.d.ts +3 -0
- package/dist/data/ai/examples/sessions/codex.d.ts.map +1 -0
- package/dist/data/ai/examples/sessions/codex.js +236 -0
- package/dist/data/ai/examples/sessions/codex.js.map +1 -0
- package/dist/data/ai/examples/sessions/index.cjs +21 -0
- package/dist/data/ai/examples/sessions/index.cjs.map +1 -0
- package/dist/data/ai/examples/sessions/index.d.ts +10 -0
- package/dist/data/ai/examples/sessions/index.d.ts.map +1 -0
- package/dist/data/ai/examples/sessions/index.js +21 -0
- package/dist/data/ai/examples/sessions/index.js.map +1 -0
- package/dist/data/ai/index.d.ts +8 -3
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/runtime-mode.cjs +62 -0
- package/dist/data/ai/runtime-mode.cjs.map +1 -1
- package/dist/data/ai/runtime-mode.d.ts +27 -0
- package/dist/data/ai/runtime-mode.d.ts.map +1 -1
- package/dist/data/ai/runtime-mode.js +62 -0
- package/dist/data/ai/runtime-mode.js.map +1 -1
- package/dist/data/cells/EntityCell.cjs +64 -0
- package/dist/data/cells/EntityCell.cjs.map +1 -0
- package/dist/data/cells/EntityCell.d.ts +27 -0
- package/dist/data/cells/EntityCell.d.ts.map +1 -0
- package/dist/data/cells/EntityCell.js +64 -0
- package/dist/data/cells/EntityCell.js.map +1 -0
- package/dist/data/chat/Attachment.cjs +53 -13
- package/dist/data/chat/Attachment.cjs.map +1 -1
- package/dist/data/chat/Attachment.d.ts +9 -3
- package/dist/data/chat/Attachment.d.ts.map +1 -1
- package/dist/data/chat/Attachment.js +54 -14
- package/dist/data/chat/Attachment.js.map +1 -1
- package/dist/data/chat/Chat.cjs +25 -17
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +8 -4
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.js +22 -14
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ContextMeter.cjs +142 -39
- package/dist/data/chat/ContextMeter.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.d.ts +4 -1
- package/dist/data/chat/ContextMeter.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.js +143 -40
- package/dist/data/chat/ContextMeter.js.map +1 -1
- package/dist/data/chat/Conversation.cjs +55 -3
- package/dist/data/chat/Conversation.cjs.map +1 -1
- package/dist/data/chat/Conversation.d.ts +5 -1
- package/dist/data/chat/Conversation.d.ts.map +1 -1
- package/dist/data/chat/Conversation.js +55 -3
- package/dist/data/chat/Conversation.js.map +1 -1
- package/dist/data/chat/ModelSelector.cjs +8 -10
- package/dist/data/chat/ModelSelector.cjs.map +1 -1
- package/dist/data/chat/ModelSelector.d.ts.map +1 -1
- package/dist/data/chat/ModelSelector.js +9 -11
- package/dist/data/chat/ModelSelector.js.map +1 -1
- package/dist/data/chat/PromptInput.cjs +56 -5
- package/dist/data/chat/PromptInput.cjs.map +1 -1
- package/dist/data/chat/PromptInput.d.ts +10 -1
- package/dist/data/chat/PromptInput.d.ts.map +1 -1
- package/dist/data/chat/PromptInput.js +57 -6
- package/dist/data/chat/PromptInput.js.map +1 -1
- package/dist/data/chat/attachment-upload.cjs +33 -0
- package/dist/data/chat/attachment-upload.cjs.map +1 -0
- package/dist/data/chat/attachment-upload.d.ts +21 -0
- package/dist/data/chat/attachment-upload.d.ts.map +1 -0
- package/dist/data/chat/attachment-upload.js +33 -0
- package/dist/data/chat/attachment-upload.js.map +1 -0
- package/dist/data/chat/effort-icons.cjs +36 -6
- package/dist/data/chat/effort-icons.cjs.map +1 -1
- package/dist/data/chat/effort-icons.d.ts +6 -3
- package/dist/data/chat/effort-icons.d.ts.map +1 -1
- package/dist/data/chat/effort-icons.js +37 -7
- package/dist/data/chat/effort-icons.js.map +1 -1
- package/dist/data/chat/index.d.ts +3 -1
- package/dist/data/chat/index.d.ts.map +1 -1
- package/dist/data/chat/models.cjs +8 -0
- package/dist/data/chat/models.cjs.map +1 -0
- package/dist/data/chat/models.d.ts +11 -0
- package/dist/data/chat/models.d.ts.map +1 -0
- package/dist/data/chat/models.js +8 -0
- package/dist/data/chat/models.js.map +1 -0
- package/dist/data/chat/provider-icons.cjs +49 -16
- package/dist/data/chat/provider-icons.cjs.map +1 -1
- package/dist/data/chat/provider-icons.d.ts +2 -0
- package/dist/data/chat/provider-icons.d.ts.map +1 -1
- package/dist/data/chat/provider-icons.js +50 -17
- package/dist/data/chat/provider-icons.js.map +1 -1
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +9 -0
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/examples/markdown-preview-mock.cjs +45 -0
- package/dist/data/examples/markdown-preview-mock.cjs.map +1 -0
- package/dist/data/examples/markdown-preview-mock.d.ts +23 -0
- package/dist/data/examples/markdown-preview-mock.d.ts.map +1 -0
- package/dist/data/examples/markdown-preview-mock.js +45 -0
- package/dist/data/examples/markdown-preview-mock.js.map +1 -0
- package/dist/data/examples/markdown-syntax.cjs +36 -0
- package/dist/data/examples/markdown-syntax.cjs.map +1 -0
- package/dist/data/examples/markdown-syntax.d.ts +12 -0
- package/dist/data/examples/markdown-syntax.d.ts.map +1 -0
- package/dist/data/examples/markdown-syntax.js +36 -0
- package/dist/data/examples/markdown-syntax.js.map +1 -0
- package/dist/data/examples/markdown-syntax.md.cjs +4 -0
- package/dist/data/examples/markdown-syntax.md.cjs.map +1 -0
- package/dist/data/examples/markdown-syntax.md.js +5 -0
- package/dist/data/examples/markdown-syntax.md.js.map +1 -0
- package/dist/data/task-process-details.cjs +48 -0
- package/dist/data/task-process-details.cjs.map +1 -0
- package/dist/data/task-process-details.d.ts +5 -0
- package/dist/data/task-process-details.d.ts.map +1 -0
- package/dist/data/task-process-details.js +48 -0
- package/dist/data/task-process-details.js.map +1 -0
- package/dist/data/version-info.cjs +2 -2
- package/dist/data/version-info.js +2 -2
- package/dist/data.cjs +30 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +7 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +30 -0
- package/dist/data.js.map +1 -1
- package/dist/hooks/use-hotkey.cjs +98 -0
- package/dist/hooks/use-hotkey.cjs.map +1 -0
- package/dist/hooks/use-hotkey.d.ts +42 -0
- package/dist/hooks/use-hotkey.d.ts.map +1 -0
- package/dist/hooks/use-hotkey.js +98 -0
- package/dist/hooks/use-hotkey.js.map +1 -0
- package/dist/hooks/use-task-run.cjs +23 -1
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +23 -1
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/hooks.cjs +4 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +1 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +4 -0
- package/dist/hooks.js.map +1 -1
- package/dist/icons/components/UiBank.cjs +15 -0
- package/dist/icons/components/UiBank.cjs.map +1 -0
- package/dist/icons/components/UiBank.d.ts +15 -0
- package/dist/icons/components/UiBank.d.ts.map +1 -0
- package/dist/icons/components/UiBank.js +15 -0
- package/dist/icons/components/UiBank.js.map +1 -0
- package/dist/icons/components/UiChartOfAccounts.cjs +15 -0
- package/dist/icons/components/UiChartOfAccounts.cjs.map +1 -0
- package/dist/icons/components/UiChartOfAccounts.d.ts +15 -0
- package/dist/icons/components/UiChartOfAccounts.d.ts.map +1 -0
- package/dist/icons/components/UiChartOfAccounts.js +15 -0
- package/dist/icons/components/UiChartOfAccounts.js.map +1 -0
- package/dist/icons/components/UiCloudUpload.cjs +15 -0
- package/dist/icons/components/UiCloudUpload.cjs.map +1 -0
- package/dist/icons/components/UiCloudUpload.d.ts +15 -0
- package/dist/icons/components/UiCloudUpload.d.ts.map +1 -0
- package/dist/icons/components/UiCloudUpload.js +15 -0
- package/dist/icons/components/UiCloudUpload.js.map +1 -0
- package/dist/icons/components/UiLedger.cjs +15 -0
- package/dist/icons/components/UiLedger.cjs.map +1 -0
- package/dist/icons/components/UiLedger.d.ts +15 -0
- package/dist/icons/components/UiLedger.d.ts.map +1 -0
- package/dist/icons/components/UiLedger.js +15 -0
- package/dist/icons/components/UiLedger.js.map +1 -0
- package/dist/icons/components/UiReceipt.cjs +15 -0
- package/dist/icons/components/UiReceipt.cjs.map +1 -0
- package/dist/icons/components/UiReceipt.d.ts +15 -0
- package/dist/icons/components/UiReceipt.d.ts.map +1 -0
- package/dist/icons/components/UiReceipt.js +15 -0
- package/dist/icons/components/UiReceipt.js.map +1 -0
- package/dist/icons/index.d.ts +10 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons.cjs +15 -0
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +15 -0
- package/dist/icons.js.map +1 -1
- package/dist/index.cjs +47 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +49 -2
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.cjs +270 -238
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +9 -0
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.debug.cjs +53 -0
- package/dist/layout/AppShell.debug.cjs.map +1 -0
- package/dist/layout/AppShell.debug.d.ts +6 -0
- package/dist/layout/AppShell.debug.d.ts.map +1 -0
- package/dist/layout/AppShell.debug.js +53 -0
- package/dist/layout/AppShell.debug.js.map +1 -0
- package/dist/layout/AppShell.js +269 -237
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppShell.nav.cjs +90 -0
- package/dist/layout/AppShell.nav.cjs.map +1 -0
- package/dist/layout/AppShell.nav.d.ts +7 -0
- package/dist/layout/AppShell.nav.d.ts.map +1 -0
- package/dist/layout/AppShell.nav.js +90 -0
- package/dist/layout/AppShell.nav.js.map +1 -0
- package/dist/layout/AppSidebar.cjs +35 -5
- package/dist/layout/AppSidebar.cjs.map +1 -1
- package/dist/layout/AppSidebar.d.ts +4 -1
- package/dist/layout/AppSidebar.d.ts.map +1 -1
- package/dist/layout/AppSidebar.js +35 -5
- package/dist/layout/AppSidebar.js.map +1 -1
- package/dist/layout/Panel.cjs +25 -41
- package/dist/layout/Panel.cjs.map +1 -1
- package/dist/layout/Panel.d.ts +2 -1
- package/dist/layout/Panel.d.ts.map +1 -1
- package/dist/layout/Panel.js +26 -42
- package/dist/layout/Panel.js.map +1 -1
- package/dist/layout/PanelFrame.cjs +56 -0
- package/dist/layout/PanelFrame.cjs.map +1 -0
- package/dist/layout/PanelFrame.d.ts +15 -0
- package/dist/layout/PanelFrame.d.ts.map +1 -0
- package/dist/layout/PanelFrame.js +56 -0
- package/dist/layout/PanelFrame.js.map +1 -0
- package/dist/layout/Section.cjs +51 -41
- package/dist/layout/Section.cjs.map +1 -1
- package/dist/layout/Section.d.ts +3 -2
- package/dist/layout/Section.d.ts.map +1 -1
- package/dist/layout/Section.js +51 -41
- package/dist/layout/Section.js.map +1 -1
- package/dist/layout/content-width.cjs +8 -0
- package/dist/layout/content-width.cjs.map +1 -0
- package/dist/layout/content-width.d.ts +3 -0
- package/dist/layout/content-width.d.ts.map +1 -0
- package/dist/layout/content-width.js +8 -0
- package/dist/layout/content-width.js.map +1 -0
- package/dist/overlay/CommandPalette.cjs +207 -0
- package/dist/overlay/CommandPalette.cjs.map +1 -0
- package/dist/overlay/CommandPalette.d.ts +71 -0
- package/dist/overlay/CommandPalette.d.ts.map +1 -0
- package/dist/overlay/CommandPalette.js +207 -0
- package/dist/overlay/CommandPalette.js.map +1 -0
- package/dist/overlay/CommandPalette.model.cjs +70 -0
- package/dist/overlay/CommandPalette.model.cjs.map +1 -0
- package/dist/overlay/CommandPalette.model.d.ts +71 -0
- package/dist/overlay/CommandPalette.model.d.ts.map +1 -0
- package/dist/overlay/CommandPalette.model.js +70 -0
- package/dist/overlay/CommandPalette.model.js.map +1 -0
- package/dist/overlay/CommandPaletteList.cjs +88 -0
- package/dist/overlay/CommandPaletteList.cjs.map +1 -0
- package/dist/overlay/CommandPaletteList.d.ts +23 -0
- package/dist/overlay/CommandPaletteList.d.ts.map +1 -0
- package/dist/overlay/CommandPaletteList.js +88 -0
- package/dist/overlay/CommandPaletteList.js.map +1 -0
- package/dist/overlay/CommandPaletteTrigger.cjs +36 -0
- package/dist/overlay/CommandPaletteTrigger.cjs.map +1 -0
- package/dist/overlay/CommandPaletteTrigger.d.ts +22 -0
- package/dist/overlay/CommandPaletteTrigger.d.ts.map +1 -0
- package/dist/overlay/CommandPaletteTrigger.js +36 -0
- package/dist/overlay/CommandPaletteTrigger.js.map +1 -0
- package/dist/overlay/Modal.cjs +12 -5
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +12 -5
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/modalStack.js +1 -1
- package/dist/overlay/zIndex.cjs +2 -0
- package/dist/overlay/zIndex.cjs.map +1 -1
- package/dist/overlay/zIndex.js +2 -0
- package/dist/overlay/zIndex.js.map +1 -1
- package/dist/rpc/EntityExplorerApp.cjs +6 -0
- package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.js +6 -0
- package/dist/rpc/EntityExplorerApp.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +49 -52
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +17 -2
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +49 -52
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/clickyMetadata.cjs +2 -1
- package/dist/rpc/clickyMetadata.cjs.map +1 -1
- package/dist/rpc/clickyMetadata.d.ts.map +1 -1
- package/dist/rpc/clickyMetadata.js +2 -1
- package/dist/rpc/clickyMetadata.js.map +1 -1
- package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts.map +1 -1
- package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts.map +1 -1
- package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts +25 -2
- package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts.map +1 -1
- package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts.map +1 -1
- package/dist/rpc/rpc-story.fixtures.d.ts +2 -1
- package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -1
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +1 -0
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +11 -0
- package/dist/tailwind-preset.cjs.map +1 -1
- package/dist/tailwind-preset.d.ts.map +1 -1
- package/dist/tailwind-preset.js +11 -0
- package/dist/tailwind-preset.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const button = require("../../components/button.cjs");
|
|
6
|
+
const MdxEditorField = require("../../components/MdxEditorField.cjs");
|
|
7
|
+
const Icon = require("../Icon.cjs");
|
|
8
|
+
const Markdown = require("../Markdown.cjs");
|
|
9
|
+
const UiFileText = require("../../icons/components/UiFileText.cjs");
|
|
10
|
+
const UiCheck = require("../../icons/components/UiCheck.cjs");
|
|
11
|
+
const UiEdit = require("../../icons/components/UiEdit.cjs");
|
|
12
|
+
function SessionPlanPanel({
|
|
13
|
+
plan,
|
|
14
|
+
onChange
|
|
15
|
+
}) {
|
|
16
|
+
var _a;
|
|
17
|
+
const [editing, setEditing] = react.useState(false);
|
|
18
|
+
const [content, setContent] = react.useState((plan == null ? void 0 : plan.content) ?? "");
|
|
19
|
+
react.useEffect(() => setContent((plan == null ? void 0 : plan.content) ?? ""), [plan == null ? void 0 : plan.content]);
|
|
20
|
+
if (!plan) {
|
|
21
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground", children: "No plan metadata." });
|
|
22
|
+
}
|
|
23
|
+
const updateContent = (next) => {
|
|
24
|
+
setContent(next);
|
|
25
|
+
onChange == null ? void 0 : onChange(next);
|
|
26
|
+
};
|
|
27
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
28
|
+
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2", children: [
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
+
Icon.Icon,
|
|
31
|
+
{
|
|
32
|
+
icon: UiFileText.UiFileText,
|
|
33
|
+
className: "size-4 shrink-0 text-muted-foreground"
|
|
34
|
+
}
|
|
35
|
+
),
|
|
36
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
37
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-mono text-xs text-foreground", children: plan.path || plan.slug || "Session plan" }),
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[11px] text-muted-foreground", children: [
|
|
39
|
+
((_a = plan.events) == null ? void 0 : _a.length) ?? 0,
|
|
40
|
+
" events",
|
|
41
|
+
plan.explicit ? " · explicit" : ""
|
|
42
|
+
] })
|
|
43
|
+
] }),
|
|
44
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
45
|
+
button.Button,
|
|
46
|
+
{
|
|
47
|
+
type: "button",
|
|
48
|
+
variant: "ghost",
|
|
49
|
+
size: "sm",
|
|
50
|
+
"aria-label": editing ? "Done editing plan" : "Edit plan",
|
|
51
|
+
onClick: () => setEditing((value) => !value),
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: editing ? UiCheck.UiCheck : UiEdit.UiEdit }),
|
|
54
|
+
editing ? "Done" : "Edit"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] }),
|
|
59
|
+
editing ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-density-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
60
|
+
MdxEditorField.MdxEditorField,
|
|
61
|
+
{
|
|
62
|
+
value: content,
|
|
63
|
+
onChange: updateContent,
|
|
64
|
+
"aria-label": "Plan markdown",
|
|
65
|
+
toolbar: true,
|
|
66
|
+
headings: true,
|
|
67
|
+
lists: true,
|
|
68
|
+
links: true,
|
|
69
|
+
codeBlocks: true,
|
|
70
|
+
codeMirror: true,
|
|
71
|
+
className: "min-h-80"
|
|
72
|
+
}
|
|
73
|
+
) }) : content ? /* @__PURE__ */ jsxRuntime.jsx(Markdown.Markdown, { text: content, className: "px-density-1 py-density-4" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-density-6 text-center text-sm text-muted-foreground", children: "The plan is empty." })
|
|
74
|
+
] });
|
|
75
|
+
}
|
|
76
|
+
exports.SessionPlanPanel = SessionPlanPanel;
|
|
77
|
+
//# sourceMappingURL=SessionInspector.plan.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionInspector.plan.cjs","sources":["../../../src/data/ai/SessionInspector.plan.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { UiCheck, UiEdit, UiFileText } from \"../../icons\";\nimport { Button } from \"../../components/button\";\nimport { MdxEditorField } from \"../../components/MdxEditorField\";\nimport { Icon } from \"../Icon\";\nimport { Markdown } from \"../Markdown\";\nimport type { SessionPlan } from \"./SessionViewer.unified\";\n\nexport function SessionPlanPanel({\n plan,\n onChange,\n}: {\n plan: SessionPlan | undefined;\n onChange?: (content: string) => void;\n}) {\n const [editing, setEditing] = useState(false);\n const [content, setContent] = useState(plan?.content ?? \"\");\n\n useEffect(() => setContent(plan?.content ?? \"\"), [plan?.content]);\n\n if (!plan) {\n return (\n <div className=\"rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground\">\n No plan metadata.\n </div>\n );\n }\n\n const updateContent = (next: string) => {\n setContent(next);\n onChange?.(next);\n };\n\n return (\n <section>\n <header className=\"flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2\">\n <Icon\n icon={UiFileText}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate font-mono text-xs text-foreground\">\n {plan.path || plan.slug || \"Session plan\"}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {plan.events?.length ?? 0} events\n {plan.explicit ? \" · explicit\" : \"\"}\n </div>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label={editing ? \"Done editing plan\" : \"Edit plan\"}\n onClick={() => setEditing((value) => !value)}\n >\n <Icon icon={editing ? UiCheck : UiEdit} />\n {editing ? \"Done\" : \"Edit\"}\n </Button>\n </header>\n {editing ? (\n <div className=\"pt-density-3\">\n <MdxEditorField\n value={content}\n onChange={updateContent}\n aria-label=\"Plan markdown\"\n toolbar\n headings\n lists\n links\n codeBlocks\n codeMirror\n className=\"min-h-80\"\n />\n </div>\n ) : content ? (\n <Markdown text={content} className=\"px-density-1 py-density-4\" />\n ) : (\n <div className=\"p-density-6 text-center text-sm text-muted-foreground\">\n The plan is empty.\n </div>\n )}\n </section>\n );\n}\n"],"names":["useState","useEffect","jsx","jsxs","Icon","UiFileText","Button","UiCheck","UiEdit","MdxEditorField","Markdown"],"mappings":";;;;;;;;;;;AAQO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,GAGG;;AACD,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAS,KAAK;AAC5C,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,UAAS,6BAAM,YAAW,EAAE;AAE1DC,kBAAU,MAAM,YAAW,6BAAM,YAAW,EAAE,GAAG,CAAC,6BAAM,OAAO,CAAC;AAEhE,MAAI,CAAC,MAAM;AACT,WACEC,2BAAAA,IAAC,OAAA,EAAI,WAAU,uGAAsG,UAAA,qBAErH;AAAA,EAEJ;AAEA,QAAM,gBAAgB,CAAC,SAAiB;AACtC,eAAW,IAAI;AACf,yCAAW;AAAA,EACb;AAEA,yCACG,WAAA,EACC,UAAA;AAAA,IAAAC,2BAAAA,KAAC,UAAA,EAAO,WAAU,4FAChB,UAAA;AAAA,MAAAD,2BAAAA;AAAAA,QAACE,KAAAA;AAAAA,QAAA;AAAA,UACC,MAAMC,WAAAA;AAAAA,UACN,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZF,2BAAAA,KAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAAD,2BAAAA,IAAC,SAAI,WAAU,8CACZ,eAAK,QAAQ,KAAK,QAAQ,eAAA,CAC7B;AAAA,QACAC,2BAAAA,KAAC,OAAA,EAAI,WAAU,qCACZ,UAAA;AAAA,YAAA,UAAK,WAAL,mBAAa,WAAU;AAAA,UAAE;AAAA,UACzB,KAAK,WAAW,gBAAgB;AAAA,QAAA,EAAA,CACnC;AAAA,MAAA,GACF;AAAA,MACAA,2BAAAA;AAAAA,QAACG,OAAAA;AAAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,cAAY,UAAU,sBAAsB;AAAA,UAC5C,SAAS,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK;AAAA,UAE3C,UAAA;AAAA,YAAAJ,2BAAAA,IAACE,KAAAA,MAAA,EAAK,MAAM,UAAUG,QAAAA,UAAUC,OAAAA,QAAQ;AAAA,YACvC,UAAU,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,GACF;AAAA,IACC,UACCN,2BAAAA,IAAC,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAAA;AAAAA,MAACO,eAAAA;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAW;AAAA,QACX,SAAO;AAAA,QACP,UAAQ;AAAA,QACR,OAAK;AAAA,QACL,OAAK;AAAA,QACL,YAAU;AAAA,QACV,YAAU;AAAA,QACV,WAAU;AAAA,MAAA;AAAA,IAAA,EACZ,CACF,IACE,UACFP,2BAAAA,IAACQ,SAAAA,YAAS,MAAM,SAAS,WAAU,4BAAA,CAA4B,IAE/DR,2BAAAA,IAAC,OAAA,EAAI,WAAU,yDAAwD,UAAA,qBAAA,CAEvE;AAAA,EAAA,GAEJ;AAEJ;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SessionPlan } from './SessionViewer.unified';
|
|
2
|
+
export declare function SessionPlanPanel({ plan, onChange, }: {
|
|
3
|
+
plan: SessionPlan | undefined;
|
|
4
|
+
onChange?: (content: string) => void;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=SessionInspector.plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionInspector.plan.d.ts","sourceRoot":"","sources":["../../../src/data/ai/SessionInspector.plan.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,2CAsEA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import { Button } from "../../components/button.js";
|
|
4
|
+
import { MdxEditorField } from "../../components/MdxEditorField.js";
|
|
5
|
+
import { Icon } from "../Icon.js";
|
|
6
|
+
import { Markdown } from "../Markdown.js";
|
|
7
|
+
import { UiFileText } from "../../icons/components/UiFileText.js";
|
|
8
|
+
import { UiCheck } from "../../icons/components/UiCheck.js";
|
|
9
|
+
import { UiEdit } from "../../icons/components/UiEdit.js";
|
|
10
|
+
function SessionPlanPanel({
|
|
11
|
+
plan,
|
|
12
|
+
onChange
|
|
13
|
+
}) {
|
|
14
|
+
var _a;
|
|
15
|
+
const [editing, setEditing] = useState(false);
|
|
16
|
+
const [content, setContent] = useState((plan == null ? void 0 : plan.content) ?? "");
|
|
17
|
+
useEffect(() => setContent((plan == null ? void 0 : plan.content) ?? ""), [plan == null ? void 0 : plan.content]);
|
|
18
|
+
if (!plan) {
|
|
19
|
+
return /* @__PURE__ */ jsx("div", { className: "rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground", children: "No plan metadata." });
|
|
20
|
+
}
|
|
21
|
+
const updateContent = (next) => {
|
|
22
|
+
setContent(next);
|
|
23
|
+
onChange == null ? void 0 : onChange(next);
|
|
24
|
+
};
|
|
25
|
+
return /* @__PURE__ */ jsxs("section", { children: [
|
|
26
|
+
/* @__PURE__ */ jsxs("header", { className: "flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2", children: [
|
|
27
|
+
/* @__PURE__ */ jsx(
|
|
28
|
+
Icon,
|
|
29
|
+
{
|
|
30
|
+
icon: UiFileText,
|
|
31
|
+
className: "size-4 shrink-0 text-muted-foreground"
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
35
|
+
/* @__PURE__ */ jsx("div", { className: "truncate font-mono text-xs text-foreground", children: plan.path || plan.slug || "Session plan" }),
|
|
36
|
+
/* @__PURE__ */ jsxs("div", { className: "text-[11px] text-muted-foreground", children: [
|
|
37
|
+
((_a = plan.events) == null ? void 0 : _a.length) ?? 0,
|
|
38
|
+
" events",
|
|
39
|
+
plan.explicit ? " · explicit" : ""
|
|
40
|
+
] })
|
|
41
|
+
] }),
|
|
42
|
+
/* @__PURE__ */ jsxs(
|
|
43
|
+
Button,
|
|
44
|
+
{
|
|
45
|
+
type: "button",
|
|
46
|
+
variant: "ghost",
|
|
47
|
+
size: "sm",
|
|
48
|
+
"aria-label": editing ? "Done editing plan" : "Edit plan",
|
|
49
|
+
onClick: () => setEditing((value) => !value),
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsx(Icon, { icon: editing ? UiCheck : UiEdit }),
|
|
52
|
+
editing ? "Done" : "Edit"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
] }),
|
|
57
|
+
editing ? /* @__PURE__ */ jsx("div", { className: "pt-density-3", children: /* @__PURE__ */ jsx(
|
|
58
|
+
MdxEditorField,
|
|
59
|
+
{
|
|
60
|
+
value: content,
|
|
61
|
+
onChange: updateContent,
|
|
62
|
+
"aria-label": "Plan markdown",
|
|
63
|
+
toolbar: true,
|
|
64
|
+
headings: true,
|
|
65
|
+
lists: true,
|
|
66
|
+
links: true,
|
|
67
|
+
codeBlocks: true,
|
|
68
|
+
codeMirror: true,
|
|
69
|
+
className: "min-h-80"
|
|
70
|
+
}
|
|
71
|
+
) }) : content ? /* @__PURE__ */ jsx(Markdown, { text: content, className: "px-density-1 py-density-4" }) : /* @__PURE__ */ jsx("div", { className: "p-density-6 text-center text-sm text-muted-foreground", children: "The plan is empty." })
|
|
72
|
+
] });
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
SessionPlanPanel
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=SessionInspector.plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionInspector.plan.js","sources":["../../../src/data/ai/SessionInspector.plan.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { UiCheck, UiEdit, UiFileText } from \"../../icons\";\nimport { Button } from \"../../components/button\";\nimport { MdxEditorField } from \"../../components/MdxEditorField\";\nimport { Icon } from \"../Icon\";\nimport { Markdown } from \"../Markdown\";\nimport type { SessionPlan } from \"./SessionViewer.unified\";\n\nexport function SessionPlanPanel({\n plan,\n onChange,\n}: {\n plan: SessionPlan | undefined;\n onChange?: (content: string) => void;\n}) {\n const [editing, setEditing] = useState(false);\n const [content, setContent] = useState(plan?.content ?? \"\");\n\n useEffect(() => setContent(plan?.content ?? \"\"), [plan?.content]);\n\n if (!plan) {\n return (\n <div className=\"rounded-md border border-dashed border-border p-density-6 text-center text-sm text-muted-foreground\">\n No plan metadata.\n </div>\n );\n }\n\n const updateContent = (next: string) => {\n setContent(next);\n onChange?.(next);\n };\n\n return (\n <section>\n <header className=\"flex min-w-0 items-center gap-density-2 border-b border-border px-density-1 pb-density-2\">\n <Icon\n icon={UiFileText}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate font-mono text-xs text-foreground\">\n {plan.path || plan.slug || \"Session plan\"}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {plan.events?.length ?? 0} events\n {plan.explicit ? \" · explicit\" : \"\"}\n </div>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label={editing ? \"Done editing plan\" : \"Edit plan\"}\n onClick={() => setEditing((value) => !value)}\n >\n <Icon icon={editing ? UiCheck : UiEdit} />\n {editing ? \"Done\" : \"Edit\"}\n </Button>\n </header>\n {editing ? (\n <div className=\"pt-density-3\">\n <MdxEditorField\n value={content}\n onChange={updateContent}\n aria-label=\"Plan markdown\"\n toolbar\n headings\n lists\n links\n codeBlocks\n codeMirror\n className=\"min-h-80\"\n />\n </div>\n ) : content ? (\n <Markdown text={content} className=\"px-density-1 py-density-4\" />\n ) : (\n <div className=\"p-density-6 text-center text-sm text-muted-foreground\">\n The plan is empty.\n </div>\n )}\n </section>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AAQO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,GAGG;;AACD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,SAAS,UAAU,IAAI,UAAS,6BAAM,YAAW,EAAE;AAE1D,YAAU,MAAM,YAAW,6BAAM,YAAW,EAAE,GAAG,CAAC,6BAAM,OAAO,CAAC;AAEhE,MAAI,CAAC,MAAM;AACT,WACE,oBAAC,OAAA,EAAI,WAAU,uGAAsG,UAAA,qBAErH;AAAA,EAEJ;AAEA,QAAM,gBAAgB,CAAC,SAAiB;AACtC,eAAW,IAAI;AACf,yCAAW;AAAA,EACb;AAEA,8BACG,WAAA,EACC,UAAA;AAAA,IAAA,qBAAC,UAAA,EAAO,WAAU,4FAChB,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ,qBAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAA,oBAAC,SAAI,WAAU,8CACZ,eAAK,QAAQ,KAAK,QAAQ,eAAA,CAC7B;AAAA,QACA,qBAAC,OAAA,EAAI,WAAU,qCACZ,UAAA;AAAA,YAAA,UAAK,WAAL,mBAAa,WAAU;AAAA,UAAE;AAAA,UACzB,KAAK,WAAW,gBAAgB;AAAA,QAAA,EAAA,CACnC;AAAA,MAAA,GACF;AAAA,MACA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,cAAY,UAAU,sBAAsB;AAAA,UAC5C,SAAS,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK;AAAA,UAE3C,UAAA;AAAA,YAAA,oBAAC,MAAA,EAAK,MAAM,UAAU,UAAU,QAAQ;AAAA,YACvC,UAAU,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,GACF;AAAA,IACC,UACC,oBAAC,OAAA,EAAI,WAAU,gBACb,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAW;AAAA,QACX,SAAO;AAAA,QACP,UAAQ;AAAA,QACR,OAAK;AAAA,QACL,OAAK;AAAA,QACL,YAAU;AAAA,QACV,YAAU;AAAA,QACV,WAAU;AAAA,MAAA;AAAA,IAAA,EACZ,CACF,IACE,UACF,oBAAC,YAAS,MAAM,SAAS,WAAU,4BAAA,CAA4B,IAE/D,oBAAC,OAAA,EAAI,WAAU,yDAAwD,UAAA,qBAAA,CAEvE;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const Icon = require("../Icon.cjs");
|
|
5
|
+
const effortIcons = require("../chat/effort-icons.cjs");
|
|
6
|
+
const providerIcons = require("../chat/provider-icons.cjs");
|
|
7
|
+
const agentActionIcons = require("./agent-action-icons.cjs");
|
|
8
|
+
const sessionCost = require("./session-cost.cjs");
|
|
9
|
+
const SessionInspector_model = require("./SessionInspector.model.cjs");
|
|
10
|
+
const SessionViewer_header = require("./SessionViewer.header.cjs");
|
|
11
|
+
const SessionViewer_model = require("./SessionViewer.model.cjs");
|
|
12
|
+
const UiRobotAi = require("../../icons/components/UiRobotAi.cjs");
|
|
13
|
+
const UiTimer = require("../../icons/components/UiTimer.cjs");
|
|
14
|
+
const UiClock = require("../../icons/components/UiClock.cjs");
|
|
15
|
+
const UiServerProcess = require("../../icons/components/UiServerProcess.cjs");
|
|
16
|
+
const UiFingerprint = require("../../icons/components/UiFingerprint.cjs");
|
|
17
|
+
const UiCoins = require("../../icons/components/UiCoins.cjs");
|
|
18
|
+
const tokens = require("../../lib/tokens.cjs");
|
|
19
|
+
function SessionInspectorHeader({
|
|
20
|
+
session
|
|
21
|
+
}) {
|
|
22
|
+
var _a, _b, _c;
|
|
23
|
+
const provider = SessionInspector_model.runtimeDescriptor(session.backend);
|
|
24
|
+
const providerId = session.provider || (provider == null ? void 0 : provider.family);
|
|
25
|
+
const ProviderIcon = providerIcons.providerIcon(providerId) ?? UiRobotAi.UiRobotAi;
|
|
26
|
+
const providerColor = providerIcons.providerIconColor(providerId);
|
|
27
|
+
const effortValue = (_a = session.reasoningEffort) == null ? void 0 : _a.trim();
|
|
28
|
+
const effort = effortValue ? agentActionIcons.effortIcon(effortValue) : void 0;
|
|
29
|
+
const title = ((_b = session.title) == null ? void 0 : _b.trim()) || ((_c = session.initialPrompt) == null ? void 0 : _c.trim()) || session.model || (provider == null ? void 0 : provider.family) || session.provider || "Session";
|
|
30
|
+
const metadata = SessionViewer_model.getSessionMetadata(session);
|
|
31
|
+
const showMeter = Boolean(metadata == null ? void 0 : metadata.context);
|
|
32
|
+
return /* @__PURE__ */ jsxRuntime.jsx("header", { className: "shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-start gap-density-3", children: [
|
|
33
|
+
showMeter && metadata ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "-ml-1.5 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(SessionViewer_header.SessionContextMeter, { metadata, mode: "gauge" }) }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
34
|
+
Icon.Icon,
|
|
35
|
+
{
|
|
36
|
+
icon: ProviderIcon,
|
|
37
|
+
size: "md",
|
|
38
|
+
...providerColor ? { className: providerColor } : {}
|
|
39
|
+
}
|
|
40
|
+
) }),
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
42
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-density-2", children: [
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground", children: title }),
|
|
44
|
+
effortValue ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0", children: [
|
|
45
|
+
effort ? /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: effort.icon, size: "xs" }) : null,
|
|
46
|
+
effortIcons.effortLevelLabel(effortValue)
|
|
47
|
+
] }) : null
|
|
48
|
+
] }),
|
|
49
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground", children: session.startedAt ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
|
|
50
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiTimer.UiTimer, size: "xs" }),
|
|
51
|
+
SessionInspector_model.durationLabel(session.startedAt, session.endedAt)
|
|
52
|
+
] }) : null })
|
|
53
|
+
] })
|
|
54
|
+
] }) });
|
|
55
|
+
}
|
|
56
|
+
function SessionInspectorSidebar({
|
|
57
|
+
session
|
|
58
|
+
}) {
|
|
59
|
+
var _a;
|
|
60
|
+
const runtime = SessionInspector_model.runtimeDescriptor(session.backend);
|
|
61
|
+
const RuntimeIcon = (runtime == null ? void 0 : runtime.icon) ?? UiRobotAi.UiRobotAi;
|
|
62
|
+
const usage = session.usage ?? session.cost;
|
|
63
|
+
const tokens$1 = sessionCost.tokenTotal(usage);
|
|
64
|
+
const cost = sessionCost.costTotal(session.cost);
|
|
65
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0", children: [
|
|
66
|
+
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Session details" }),
|
|
68
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-density-3 space-y-density-3", children: [
|
|
69
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
70
|
+
DetailRow,
|
|
71
|
+
{
|
|
72
|
+
icon: UiClock.UiClock,
|
|
73
|
+
label: "Started",
|
|
74
|
+
value: SessionInspector_model.formatDate(session.startedAt)
|
|
75
|
+
}
|
|
76
|
+
),
|
|
77
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
78
|
+
DetailRow,
|
|
79
|
+
{
|
|
80
|
+
icon: UiRobotAi.UiRobotAi,
|
|
81
|
+
label: "Connection",
|
|
82
|
+
value: session.provider || session.source
|
|
83
|
+
}
|
|
84
|
+
),
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { "data-testid": "session-runtime-mode", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
+
DetailRow,
|
|
87
|
+
{
|
|
88
|
+
icon: RuntimeIcon,
|
|
89
|
+
label: "Mode",
|
|
90
|
+
value: (runtime == null ? void 0 : runtime.mode) || session.backend,
|
|
91
|
+
...(runtime == null ? void 0 : runtime.title) ? { title: runtime.title } : {}
|
|
92
|
+
}
|
|
93
|
+
) }),
|
|
94
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
95
|
+
DetailRow,
|
|
96
|
+
{
|
|
97
|
+
icon: UiServerProcess.UiServerProcess,
|
|
98
|
+
label: "PID",
|
|
99
|
+
value: (_a = session.live) == null ? void 0 : _a.pid
|
|
100
|
+
}
|
|
101
|
+
),
|
|
102
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
103
|
+
DetailRow,
|
|
104
|
+
{
|
|
105
|
+
icon: UiFingerprint.UiFingerprint,
|
|
106
|
+
label: "Session ID",
|
|
107
|
+
value: session.id,
|
|
108
|
+
mono: true
|
|
109
|
+
}
|
|
110
|
+
)
|
|
111
|
+
] })
|
|
112
|
+
] }),
|
|
113
|
+
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm", children: [
|
|
114
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: [
|
|
115
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiCoins.UiCoins, size: "xs" }),
|
|
116
|
+
"Usage"
|
|
117
|
+
] }),
|
|
118
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-density-3 grid grid-cols-2 gap-density-3", children: [
|
|
119
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
120
|
+
UsageMetric,
|
|
121
|
+
{
|
|
122
|
+
label: "Tokens",
|
|
123
|
+
value: tokens$1 ? preciseTokens(tokens$1) : "-"
|
|
124
|
+
}
|
|
125
|
+
),
|
|
126
|
+
/* @__PURE__ */ jsxRuntime.jsx(UsageMetric, { label: "Cost", value: cost ? tokens.formatCost(cost) : "-" }),
|
|
127
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
128
|
+
UsageMetric,
|
|
129
|
+
{
|
|
130
|
+
label: "Input",
|
|
131
|
+
value: (usage == null ? void 0 : usage.inputTokens) ? tokens.compactTokens(usage.inputTokens) : "-"
|
|
132
|
+
}
|
|
133
|
+
),
|
|
134
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
135
|
+
UsageMetric,
|
|
136
|
+
{
|
|
137
|
+
label: "Output",
|
|
138
|
+
value: (usage == null ? void 0 : usage.outputTokens) ? tokens.compactTokens(usage.outputTokens) : "-"
|
|
139
|
+
}
|
|
140
|
+
)
|
|
141
|
+
] })
|
|
142
|
+
] })
|
|
143
|
+
] });
|
|
144
|
+
}
|
|
145
|
+
function DetailRow({
|
|
146
|
+
icon,
|
|
147
|
+
label,
|
|
148
|
+
value,
|
|
149
|
+
title,
|
|
150
|
+
mono = false
|
|
151
|
+
}) {
|
|
152
|
+
if (value === void 0 || value === null || value === "") return null;
|
|
153
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2", children: [
|
|
154
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon, size: "xs", className: "mt-0.5 text-muted-foreground" }),
|
|
155
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
156
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "text-[11px] text-muted-foreground", children: label }),
|
|
157
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
158
|
+
"dd",
|
|
159
|
+
{
|
|
160
|
+
className: mono ? "truncate font-mono text-xs text-foreground" : "truncate text-sm text-foreground",
|
|
161
|
+
title,
|
|
162
|
+
children: value
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
] })
|
|
166
|
+
] });
|
|
167
|
+
}
|
|
168
|
+
function UsageMetric({ label, value }) {
|
|
169
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
170
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[11px] text-muted-foreground", children: label }),
|
|
171
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 text-sm font-semibold tabular-nums text-foreground", children: value })
|
|
172
|
+
] });
|
|
173
|
+
}
|
|
174
|
+
function preciseTokens(value) {
|
|
175
|
+
if (value >= 1e3 && value < 1e4 && value % 1e3 !== 0) {
|
|
176
|
+
return `${(value / 1e3).toFixed(1)}k`;
|
|
177
|
+
}
|
|
178
|
+
return tokens.compactTokens(value);
|
|
179
|
+
}
|
|
180
|
+
exports.SessionInspectorHeader = SessionInspectorHeader;
|
|
181
|
+
exports.SessionInspectorSidebar = SessionInspectorSidebar;
|
|
182
|
+
//# sourceMappingURL=SessionInspector.summary.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionInspector.summary.cjs","sources":["../../../src/data/ai/SessionInspector.summary.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n UiClock,\n UiCoins,\n UiFingerprint,\n UiRobotAi,\n UiServerProcess,\n UiTimer,\n} from \"../../icons\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { effortLevelLabel } from \"../chat/effort-icons\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport { effortIcon } from \"./agent-action-icons\";\nimport {\n compactTokens,\n costTotal,\n formatCost,\n tokenTotal,\n} from \"./session-cost\";\nimport {\n durationLabel,\n formatDate,\n runtimeDescriptor,\n} from \"./SessionInspector.model\";\nimport { SessionContextMeter } from \"./SessionViewer.header\";\nimport { getSessionMetadata } from \"./SessionViewer.model\";\nimport type { UnifiedSessionInput } from \"./SessionViewer.unified\";\n\nexport function SessionInspectorHeader({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const provider = runtimeDescriptor(session.backend);\n const providerId = session.provider || provider?.family;\n const ProviderIcon = providerIcon(providerId) ?? UiRobotAi;\n const providerColor = providerIconColor(providerId);\n const effortValue = session.reasoningEffort?.trim();\n const effort = effortValue ? effortIcon(effortValue) : undefined;\n const title =\n session.title?.trim() ||\n session.initialPrompt?.trim() ||\n session.model ||\n provider?.family ||\n session.provider ||\n \"Session\";\n const metadata = getSessionMetadata(session);\n const showMeter = Boolean(metadata?.context);\n\n return (\n <header className=\"shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3\">\n <div className=\"flex min-w-0 items-start gap-density-3\">\n {showMeter && metadata ? (\n <div className=\"-ml-1.5 shrink-0\">\n <SessionContextMeter metadata={metadata} mode=\"gauge\" />\n </div>\n ) : (\n <span className=\"mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm\">\n <Icon\n icon={ProviderIcon}\n size=\"md\"\n {...(providerColor ? { className: providerColor } : {})}\n />\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-center gap-density-2\">\n <h2 className=\"min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground\">\n {title}\n </h2>\n {effortValue ? (\n <span className=\"inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0\">\n {effort ? <Icon icon={effort.icon} size=\"xs\" /> : null}\n {effortLevelLabel(effortValue)}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground\">\n {session.startedAt ? (\n <span className=\"inline-flex items-center gap-1\">\n <Icon icon={UiTimer} size=\"xs\" />\n {durationLabel(session.startedAt, session.endedAt)}\n </span>\n ) : null}\n </div>\n </div>\n </div>\n </header>\n );\n}\n\nexport function SessionInspectorSidebar({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const runtime = runtimeDescriptor(session.backend);\n const RuntimeIcon = runtime?.icon ?? UiRobotAi;\n const usage = session.usage ?? session.cost;\n const tokens = tokenTotal(usage);\n const cost = costTotal(session.cost);\n\n return (\n <aside className=\"border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0\">\n <section>\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Session details\n </h3>\n <dl className=\"mt-density-3 space-y-density-3\">\n <DetailRow\n icon={UiClock}\n label=\"Started\"\n value={formatDate(session.startedAt)}\n />\n <DetailRow\n icon={UiRobotAi}\n label=\"Connection\"\n value={session.provider || session.source}\n />\n <div data-testid=\"session-runtime-mode\">\n <DetailRow\n icon={RuntimeIcon}\n label=\"Mode\"\n value={runtime?.mode || session.backend}\n {...(runtime?.title ? { title: runtime.title } : {})}\n />\n </div>\n <DetailRow\n icon={UiServerProcess}\n label=\"PID\"\n value={session.live?.pid}\n />\n <DetailRow\n icon={UiFingerprint}\n label=\"Session ID\"\n value={session.id}\n mono\n />\n </dl>\n </section>\n\n <section className=\"mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm\">\n <div className=\"flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n <Icon icon={UiCoins} size=\"xs\" />\n Usage\n </div>\n <div className=\"mt-density-3 grid grid-cols-2 gap-density-3\">\n <UsageMetric\n label=\"Tokens\"\n value={tokens ? preciseTokens(tokens) : \"-\"}\n />\n <UsageMetric label=\"Cost\" value={cost ? formatCost(cost) : \"-\"} />\n <UsageMetric\n label=\"Input\"\n value={usage?.inputTokens ? compactTokens(usage.inputTokens) : \"-\"}\n />\n <UsageMetric\n label=\"Output\"\n value={\n usage?.outputTokens ? compactTokens(usage.outputTokens) : \"-\"\n }\n />\n </div>\n </section>\n </aside>\n );\n}\n\nfunction DetailRow({\n icon,\n label,\n value,\n title,\n mono = false,\n}: {\n icon: StaticIconComponent;\n label: string;\n value: ReactNode;\n title?: string;\n mono?: boolean;\n}) {\n if (value === undefined || value === null || value === \"\") return null;\n return (\n <div className=\"grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2\">\n <Icon icon={icon} size=\"xs\" className=\"mt-0.5 text-muted-foreground\" />\n <div className=\"min-w-0\">\n <dt className=\"text-[11px] text-muted-foreground\">{label}</dt>\n <dd\n className={\n mono\n ? \"truncate font-mono text-xs text-foreground\"\n : \"truncate text-sm text-foreground\"\n }\n title={title}\n >\n {value}\n </dd>\n </div>\n </div>\n );\n}\n\nfunction UsageMetric({ label, value }: { label: string; value: ReactNode }) {\n return (\n <div>\n <div className=\"text-[11px] text-muted-foreground\">{label}</div>\n <div className=\"mt-0.5 text-sm font-semibold tabular-nums text-foreground\">\n {value}\n </div>\n </div>\n );\n}\n\nfunction preciseTokens(value: number) {\n if (value >= 1_000 && value < 10_000 && value % 1_000 !== 0) {\n return `${(value / 1_000).toFixed(1)}k`;\n }\n return compactTokens(value);\n}\n"],"names":["runtimeDescriptor","providerIcon","UiRobotAi","providerIconColor","effortIcon","getSessionMetadata","jsxs","jsx","SessionContextMeter","Icon","effortLevelLabel","UiTimer","durationLabel","tokens","tokenTotal","costTotal","UiClock","formatDate","UiServerProcess","UiFingerprint","UiCoins","formatCost","compactTokens"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { UnifiedSessionInput } from './SessionViewer.unified';
|
|
2
|
+
export declare function SessionInspectorHeader({ session, }: {
|
|
3
|
+
session: UnifiedSessionInput;
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function SessionInspectorSidebar({ session, }: {
|
|
6
|
+
session: UnifiedSessionInput;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=SessionInspector.summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionInspector.summary.d.ts","sourceRoot":"","sources":["../../../src/data/ai/SessionInspector.summary.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,GACR,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;CAC9B,2CAyDA;AAED,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,GACR,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;CAC9B,2CAuEA"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Icon } from "../Icon.js";
|
|
3
|
+
import { effortLevelLabel } from "../chat/effort-icons.js";
|
|
4
|
+
import { providerIcon, providerIconColor } from "../chat/provider-icons.js";
|
|
5
|
+
import { effortIcon } from "./agent-action-icons.js";
|
|
6
|
+
import { tokenTotal, costTotal } from "./session-cost.js";
|
|
7
|
+
import { runtimeDescriptor, durationLabel, formatDate } from "./SessionInspector.model.js";
|
|
8
|
+
import { SessionContextMeter } from "./SessionViewer.header.js";
|
|
9
|
+
import { getSessionMetadata } from "./SessionViewer.model.js";
|
|
10
|
+
import { UiRobotAi } from "../../icons/components/UiRobotAi.js";
|
|
11
|
+
import { UiTimer } from "../../icons/components/UiTimer.js";
|
|
12
|
+
import { UiClock } from "../../icons/components/UiClock.js";
|
|
13
|
+
import { UiServerProcess } from "../../icons/components/UiServerProcess.js";
|
|
14
|
+
import { UiFingerprint } from "../../icons/components/UiFingerprint.js";
|
|
15
|
+
import { UiCoins } from "../../icons/components/UiCoins.js";
|
|
16
|
+
import { formatCost, compactTokens } from "../../lib/tokens.js";
|
|
17
|
+
function SessionInspectorHeader({
|
|
18
|
+
session
|
|
19
|
+
}) {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
const provider = runtimeDescriptor(session.backend);
|
|
22
|
+
const providerId = session.provider || (provider == null ? void 0 : provider.family);
|
|
23
|
+
const ProviderIcon = providerIcon(providerId) ?? UiRobotAi;
|
|
24
|
+
const providerColor = providerIconColor(providerId);
|
|
25
|
+
const effortValue = (_a = session.reasoningEffort) == null ? void 0 : _a.trim();
|
|
26
|
+
const effort = effortValue ? effortIcon(effortValue) : void 0;
|
|
27
|
+
const title = ((_b = session.title) == null ? void 0 : _b.trim()) || ((_c = session.initialPrompt) == null ? void 0 : _c.trim()) || session.model || (provider == null ? void 0 : provider.family) || session.provider || "Session";
|
|
28
|
+
const metadata = getSessionMetadata(session);
|
|
29
|
+
const showMeter = Boolean(metadata == null ? void 0 : metadata.context);
|
|
30
|
+
return /* @__PURE__ */ jsx("header", { className: "shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3", children: /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-start gap-density-3", children: [
|
|
31
|
+
showMeter && metadata ? /* @__PURE__ */ jsx("div", { className: "-ml-1.5 shrink-0", children: /* @__PURE__ */ jsx(SessionContextMeter, { metadata, mode: "gauge" }) }) : /* @__PURE__ */ jsx("span", { className: "mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm", children: /* @__PURE__ */ jsx(
|
|
32
|
+
Icon,
|
|
33
|
+
{
|
|
34
|
+
icon: ProviderIcon,
|
|
35
|
+
size: "md",
|
|
36
|
+
...providerColor ? { className: providerColor } : {}
|
|
37
|
+
}
|
|
38
|
+
) }),
|
|
39
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
40
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-density-2", children: [
|
|
41
|
+
/* @__PURE__ */ jsx("h2", { className: "min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground", children: title }),
|
|
42
|
+
effortValue ? /* @__PURE__ */ jsxs("span", { className: "inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0", children: [
|
|
43
|
+
effort ? /* @__PURE__ */ jsx(Icon, { icon: effort.icon, size: "xs" }) : null,
|
|
44
|
+
effortLevelLabel(effortValue)
|
|
45
|
+
] }) : null
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ jsx("div", { className: "mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground", children: session.startedAt ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1", children: [
|
|
48
|
+
/* @__PURE__ */ jsx(Icon, { icon: UiTimer, size: "xs" }),
|
|
49
|
+
durationLabel(session.startedAt, session.endedAt)
|
|
50
|
+
] }) : null })
|
|
51
|
+
] })
|
|
52
|
+
] }) });
|
|
53
|
+
}
|
|
54
|
+
function SessionInspectorSidebar({
|
|
55
|
+
session
|
|
56
|
+
}) {
|
|
57
|
+
var _a;
|
|
58
|
+
const runtime = runtimeDescriptor(session.backend);
|
|
59
|
+
const RuntimeIcon = (runtime == null ? void 0 : runtime.icon) ?? UiRobotAi;
|
|
60
|
+
const usage = session.usage ?? session.cost;
|
|
61
|
+
const tokens = tokenTotal(usage);
|
|
62
|
+
const cost = costTotal(session.cost);
|
|
63
|
+
return /* @__PURE__ */ jsxs("aside", { className: "border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0", children: [
|
|
64
|
+
/* @__PURE__ */ jsxs("section", { children: [
|
|
65
|
+
/* @__PURE__ */ jsx("h3", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Session details" }),
|
|
66
|
+
/* @__PURE__ */ jsxs("dl", { className: "mt-density-3 space-y-density-3", children: [
|
|
67
|
+
/* @__PURE__ */ jsx(
|
|
68
|
+
DetailRow,
|
|
69
|
+
{
|
|
70
|
+
icon: UiClock,
|
|
71
|
+
label: "Started",
|
|
72
|
+
value: formatDate(session.startedAt)
|
|
73
|
+
}
|
|
74
|
+
),
|
|
75
|
+
/* @__PURE__ */ jsx(
|
|
76
|
+
DetailRow,
|
|
77
|
+
{
|
|
78
|
+
icon: UiRobotAi,
|
|
79
|
+
label: "Connection",
|
|
80
|
+
value: session.provider || session.source
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
/* @__PURE__ */ jsx("div", { "data-testid": "session-runtime-mode", children: /* @__PURE__ */ jsx(
|
|
84
|
+
DetailRow,
|
|
85
|
+
{
|
|
86
|
+
icon: RuntimeIcon,
|
|
87
|
+
label: "Mode",
|
|
88
|
+
value: (runtime == null ? void 0 : runtime.mode) || session.backend,
|
|
89
|
+
...(runtime == null ? void 0 : runtime.title) ? { title: runtime.title } : {}
|
|
90
|
+
}
|
|
91
|
+
) }),
|
|
92
|
+
/* @__PURE__ */ jsx(
|
|
93
|
+
DetailRow,
|
|
94
|
+
{
|
|
95
|
+
icon: UiServerProcess,
|
|
96
|
+
label: "PID",
|
|
97
|
+
value: (_a = session.live) == null ? void 0 : _a.pid
|
|
98
|
+
}
|
|
99
|
+
),
|
|
100
|
+
/* @__PURE__ */ jsx(
|
|
101
|
+
DetailRow,
|
|
102
|
+
{
|
|
103
|
+
icon: UiFingerprint,
|
|
104
|
+
label: "Session ID",
|
|
105
|
+
value: session.id,
|
|
106
|
+
mono: true
|
|
107
|
+
}
|
|
108
|
+
)
|
|
109
|
+
] })
|
|
110
|
+
] }),
|
|
111
|
+
/* @__PURE__ */ jsxs("section", { className: "mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm", children: [
|
|
112
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: [
|
|
113
|
+
/* @__PURE__ */ jsx(Icon, { icon: UiCoins, size: "xs" }),
|
|
114
|
+
"Usage"
|
|
115
|
+
] }),
|
|
116
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-density-3 grid grid-cols-2 gap-density-3", children: [
|
|
117
|
+
/* @__PURE__ */ jsx(
|
|
118
|
+
UsageMetric,
|
|
119
|
+
{
|
|
120
|
+
label: "Tokens",
|
|
121
|
+
value: tokens ? preciseTokens(tokens) : "-"
|
|
122
|
+
}
|
|
123
|
+
),
|
|
124
|
+
/* @__PURE__ */ jsx(UsageMetric, { label: "Cost", value: cost ? formatCost(cost) : "-" }),
|
|
125
|
+
/* @__PURE__ */ jsx(
|
|
126
|
+
UsageMetric,
|
|
127
|
+
{
|
|
128
|
+
label: "Input",
|
|
129
|
+
value: (usage == null ? void 0 : usage.inputTokens) ? compactTokens(usage.inputTokens) : "-"
|
|
130
|
+
}
|
|
131
|
+
),
|
|
132
|
+
/* @__PURE__ */ jsx(
|
|
133
|
+
UsageMetric,
|
|
134
|
+
{
|
|
135
|
+
label: "Output",
|
|
136
|
+
value: (usage == null ? void 0 : usage.outputTokens) ? compactTokens(usage.outputTokens) : "-"
|
|
137
|
+
}
|
|
138
|
+
)
|
|
139
|
+
] })
|
|
140
|
+
] })
|
|
141
|
+
] });
|
|
142
|
+
}
|
|
143
|
+
function DetailRow({
|
|
144
|
+
icon,
|
|
145
|
+
label,
|
|
146
|
+
value,
|
|
147
|
+
title,
|
|
148
|
+
mono = false
|
|
149
|
+
}) {
|
|
150
|
+
if (value === void 0 || value === null || value === "") return null;
|
|
151
|
+
return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2", children: [
|
|
152
|
+
/* @__PURE__ */ jsx(Icon, { icon, size: "xs", className: "mt-0.5 text-muted-foreground" }),
|
|
153
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
154
|
+
/* @__PURE__ */ jsx("dt", { className: "text-[11px] text-muted-foreground", children: label }),
|
|
155
|
+
/* @__PURE__ */ jsx(
|
|
156
|
+
"dd",
|
|
157
|
+
{
|
|
158
|
+
className: mono ? "truncate font-mono text-xs text-foreground" : "truncate text-sm text-foreground",
|
|
159
|
+
title,
|
|
160
|
+
children: value
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
] })
|
|
164
|
+
] });
|
|
165
|
+
}
|
|
166
|
+
function UsageMetric({ label, value }) {
|
|
167
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
168
|
+
/* @__PURE__ */ jsx("div", { className: "text-[11px] text-muted-foreground", children: label }),
|
|
169
|
+
/* @__PURE__ */ jsx("div", { className: "mt-0.5 text-sm font-semibold tabular-nums text-foreground", children: value })
|
|
170
|
+
] });
|
|
171
|
+
}
|
|
172
|
+
function preciseTokens(value) {
|
|
173
|
+
if (value >= 1e3 && value < 1e4 && value % 1e3 !== 0) {
|
|
174
|
+
return `${(value / 1e3).toFixed(1)}k`;
|
|
175
|
+
}
|
|
176
|
+
return compactTokens(value);
|
|
177
|
+
}
|
|
178
|
+
export {
|
|
179
|
+
SessionInspectorHeader,
|
|
180
|
+
SessionInspectorSidebar
|
|
181
|
+
};
|
|
182
|
+
//# sourceMappingURL=SessionInspector.summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionInspector.summary.js","sources":["../../../src/data/ai/SessionInspector.summary.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n UiClock,\n UiCoins,\n UiFingerprint,\n UiRobotAi,\n UiServerProcess,\n UiTimer,\n} from \"../../icons\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { effortLevelLabel } from \"../chat/effort-icons\";\nimport { providerIcon, providerIconColor } from \"../chat/provider-icons\";\nimport { effortIcon } from \"./agent-action-icons\";\nimport {\n compactTokens,\n costTotal,\n formatCost,\n tokenTotal,\n} from \"./session-cost\";\nimport {\n durationLabel,\n formatDate,\n runtimeDescriptor,\n} from \"./SessionInspector.model\";\nimport { SessionContextMeter } from \"./SessionViewer.header\";\nimport { getSessionMetadata } from \"./SessionViewer.model\";\nimport type { UnifiedSessionInput } from \"./SessionViewer.unified\";\n\nexport function SessionInspectorHeader({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const provider = runtimeDescriptor(session.backend);\n const providerId = session.provider || provider?.family;\n const ProviderIcon = providerIcon(providerId) ?? UiRobotAi;\n const providerColor = providerIconColor(providerId);\n const effortValue = session.reasoningEffort?.trim();\n const effort = effortValue ? effortIcon(effortValue) : undefined;\n const title =\n session.title?.trim() ||\n session.initialPrompt?.trim() ||\n session.model ||\n provider?.family ||\n session.provider ||\n \"Session\";\n const metadata = getSessionMetadata(session);\n const showMeter = Boolean(metadata?.context);\n\n return (\n <header className=\"shrink-0 border-b border-border bg-muted/20 px-density-2 py-density-3\">\n <div className=\"flex min-w-0 items-start gap-density-3\">\n {showMeter && metadata ? (\n <div className=\"-ml-1.5 shrink-0\">\n <SessionContextMeter metadata={metadata} mode=\"gauge\" />\n </div>\n ) : (\n <span className=\"mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-background text-foreground shadow-sm\">\n <Icon\n icon={ProviderIcon}\n size=\"md\"\n {...(providerColor ? { className: providerColor } : {})}\n />\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-center gap-density-2\">\n <h2 className=\"min-w-0 max-w-full truncate text-base font-semibold tracking-tight text-foreground\">\n {title}\n </h2>\n {effortValue ? (\n <span className=\"inline-flex shrink-0 items-center gap-1 rounded-full border border-border bg-background px-2 py-0.5 text-xs max-sm:basis-full max-sm:border-0 max-sm:bg-transparent max-sm:px-0\">\n {effort ? <Icon icon={effort.icon} size=\"xs\" /> : null}\n {effortLevelLabel(effortValue)}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex flex-wrap items-center gap-x-density-3 gap-y-1 text-xs text-muted-foreground\">\n {session.startedAt ? (\n <span className=\"inline-flex items-center gap-1\">\n <Icon icon={UiTimer} size=\"xs\" />\n {durationLabel(session.startedAt, session.endedAt)}\n </span>\n ) : null}\n </div>\n </div>\n </div>\n </header>\n );\n}\n\nexport function SessionInspectorSidebar({\n session,\n}: {\n session: UnifiedSessionInput;\n}) {\n const runtime = runtimeDescriptor(session.backend);\n const RuntimeIcon = runtime?.icon ?? UiRobotAi;\n const usage = session.usage ?? session.cost;\n const tokens = tokenTotal(usage);\n const cost = costTotal(session.cost);\n\n return (\n <aside className=\"border-t border-border bg-muted/10 p-density-4 lg:min-h-0 lg:overflow-auto lg:border-l lg:border-t-0\">\n <section>\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Session details\n </h3>\n <dl className=\"mt-density-3 space-y-density-3\">\n <DetailRow\n icon={UiClock}\n label=\"Started\"\n value={formatDate(session.startedAt)}\n />\n <DetailRow\n icon={UiRobotAi}\n label=\"Connection\"\n value={session.provider || session.source}\n />\n <div data-testid=\"session-runtime-mode\">\n <DetailRow\n icon={RuntimeIcon}\n label=\"Mode\"\n value={runtime?.mode || session.backend}\n {...(runtime?.title ? { title: runtime.title } : {})}\n />\n </div>\n <DetailRow\n icon={UiServerProcess}\n label=\"PID\"\n value={session.live?.pid}\n />\n <DetailRow\n icon={UiFingerprint}\n label=\"Session ID\"\n value={session.id}\n mono\n />\n </dl>\n </section>\n\n <section className=\"mt-density-5 rounded-lg border border-border bg-background p-density-3 shadow-sm\">\n <div className=\"flex items-center gap-density-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n <Icon icon={UiCoins} size=\"xs\" />\n Usage\n </div>\n <div className=\"mt-density-3 grid grid-cols-2 gap-density-3\">\n <UsageMetric\n label=\"Tokens\"\n value={tokens ? preciseTokens(tokens) : \"-\"}\n />\n <UsageMetric label=\"Cost\" value={cost ? formatCost(cost) : \"-\"} />\n <UsageMetric\n label=\"Input\"\n value={usage?.inputTokens ? compactTokens(usage.inputTokens) : \"-\"}\n />\n <UsageMetric\n label=\"Output\"\n value={\n usage?.outputTokens ? compactTokens(usage.outputTokens) : \"-\"\n }\n />\n </div>\n </section>\n </aside>\n );\n}\n\nfunction DetailRow({\n icon,\n label,\n value,\n title,\n mono = false,\n}: {\n icon: StaticIconComponent;\n label: string;\n value: ReactNode;\n title?: string;\n mono?: boolean;\n}) {\n if (value === undefined || value === null || value === \"\") return null;\n return (\n <div className=\"grid grid-cols-[1rem_minmax(0,1fr)] gap-x-density-2\">\n <Icon icon={icon} size=\"xs\" className=\"mt-0.5 text-muted-foreground\" />\n <div className=\"min-w-0\">\n <dt className=\"text-[11px] text-muted-foreground\">{label}</dt>\n <dd\n className={\n mono\n ? \"truncate font-mono text-xs text-foreground\"\n : \"truncate text-sm text-foreground\"\n }\n title={title}\n >\n {value}\n </dd>\n </div>\n </div>\n );\n}\n\nfunction UsageMetric({ label, value }: { label: string; value: ReactNode }) {\n return (\n <div>\n <div className=\"text-[11px] text-muted-foreground\">{label}</div>\n <div className=\"mt-0.5 text-sm font-semibold tabular-nums text-foreground\">\n {value}\n </div>\n </div>\n );\n}\n\nfunction preciseTokens(value: number) {\n if (value >= 1_000 && value < 10_000 && value % 1_000 !== 0) {\n return `${(value / 1_000).toFixed(1)}k`;\n }\n return compactTokens(value);\n}\n"],"names":[],"mappings":"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"}
|