@flanksource/clicky-ui 0.3.44 → 0.3.46
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/README.md +24 -0
- package/dist/ai.cjs +4 -2
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +3 -1
- package/dist/components/MdxEditorField.cjs +40 -22
- package/dist/components/MdxEditorField.cjs.map +1 -1
- package/dist/components/MdxEditorField.d.ts.map +1 -1
- package/dist/components/MdxEditorField.js +41 -23
- package/dist/components/MdxEditorField.js.map +1 -1
- package/dist/components/json-schema-form-item-summary.cjs +6 -1
- package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
- package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
- package/dist/components/json-schema-form-item-summary.js +6 -1
- package/dist/components/json-schema-form-item-summary.js.map +1 -1
- package/dist/data/AccessMark.cjs +23 -0
- package/dist/data/AccessMark.cjs.map +1 -0
- package/dist/data/AccessMark.d.ts +11 -0
- package/dist/data/AccessMark.d.ts.map +1 -0
- package/dist/data/AccessMark.js +23 -0
- package/dist/data/AccessMark.js.map +1 -0
- package/dist/data/CodeBlock.cjs +3 -2
- package/dist/data/CodeBlock.cjs.map +1 -1
- package/dist/data/CodeBlock.d.ts +3 -1
- package/dist/data/CodeBlock.d.ts.map +1 -1
- package/dist/data/CodeBlock.js +3 -2
- package/dist/data/CodeBlock.js.map +1 -1
- package/dist/data/CodeDiff.cjs +116 -23
- package/dist/data/CodeDiff.cjs.map +1 -1
- package/dist/data/CodeDiff.d.ts +26 -0
- package/dist/data/CodeDiff.d.ts.map +1 -1
- package/dist/data/CodeDiff.js +116 -23
- package/dist/data/CodeDiff.js.map +1 -1
- package/dist/data/GraphDiagram.cjs +75 -11
- package/dist/data/GraphDiagram.cjs.map +1 -1
- package/dist/data/GraphDiagram.d.ts +17 -2
- package/dist/data/GraphDiagram.d.ts.map +1 -1
- package/dist/data/GraphDiagram.js +76 -12
- package/dist/data/GraphDiagram.js.map +1 -1
- package/dist/data/GraphDiagramGroups.cjs +100 -0
- package/dist/data/GraphDiagramGroups.cjs.map +1 -0
- package/dist/data/GraphDiagramGroups.d.ts +24 -0
- package/dist/data/GraphDiagramGroups.d.ts.map +1 -0
- package/dist/data/GraphDiagramGroups.js +100 -0
- package/dist/data/GraphDiagramGroups.js.map +1 -0
- package/dist/data/GraphDiagramNodes.cjs +46 -51
- package/dist/data/GraphDiagramNodes.cjs.map +1 -1
- package/dist/data/GraphDiagramNodes.d.ts +8 -9
- package/dist/data/GraphDiagramNodes.d.ts.map +1 -1
- package/dist/data/GraphDiagramNodes.js +46 -51
- package/dist/data/GraphDiagramNodes.js.map +1 -1
- package/dist/data/JsonView.cjs +118 -49
- package/dist/data/JsonView.cjs.map +1 -1
- package/dist/data/JsonView.d.ts +13 -10
- package/dist/data/JsonView.d.ts.map +1 -1
- package/dist/data/JsonView.js +118 -49
- package/dist/data/JsonView.js.map +1 -1
- package/dist/data/MarkdownEditor.cjs +2 -2
- package/dist/data/MarkdownEditor.cjs.map +1 -1
- package/dist/data/MarkdownEditor.js +2 -2
- package/dist/data/MarkdownEditor.js.map +1 -1
- package/dist/data/TreeNode.cjs +1 -1
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +1 -1
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.cjs +90 -249
- package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.d.ts +2 -5
- package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.js +91 -250
- package/dist/data/ai/AdvancedChatConfig.js.map +1 -1
- package/dist/data/ai/ChatButton.cjs +2 -0
- package/dist/data/ai/ChatButton.cjs.map +1 -1
- package/dist/data/ai/ChatButton.d.ts +1 -1
- package/dist/data/ai/ChatButton.d.ts.map +1 -1
- package/dist/data/ai/ChatButton.js +2 -0
- package/dist/data/ai/ChatButton.js.map +1 -1
- package/dist/data/ai/ChatFab.cjs +5 -1
- package/dist/data/ai/ChatFab.cjs.map +1 -1
- package/dist/data/ai/ChatFab.d.ts +5 -1
- package/dist/data/ai/ChatFab.d.ts.map +1 -1
- package/dist/data/ai/ChatFab.js +5 -1
- package/dist/data/ai/ChatFab.js.map +1 -1
- package/dist/data/ai/ChatWindow.cjs +2 -8
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +2 -8
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.cjs +0 -5
- package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.d.ts +0 -2
- package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.js +0 -5
- package/dist/data/ai/ChatWindow.runtime.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +2 -2
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.js +2 -2
- package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
- package/dist/data/ai/SessionInspector.approvals.cjs +3 -6
- package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.approvals.js +3 -6
- package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
- package/dist/data/ai/SessionViewer.cjs +13 -4
- package/dist/data/ai/SessionViewer.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +5 -1
- package/dist/data/ai/SessionViewer.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.header.cjs +1 -1
- package/dist/data/ai/SessionViewer.header.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.header.js +1 -1
- package/dist/data/ai/SessionViewer.header.js.map +1 -1
- package/dist/data/ai/SessionViewer.js +13 -4
- package/dist/data/ai/SessionViewer.js.map +1 -1
- package/dist/data/ai/SessionViewer.model.cjs +2 -0
- package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.model.d.ts +1 -0
- package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.model.js +2 -0
- package/dist/data/ai/SessionViewer.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.rows.cjs +41 -27
- package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +4 -2
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.rows.js +41 -27
- package/dist/data/ai/SessionViewer.rows.js.map +1 -1
- package/dist/data/ai/SessionViewer.tokens.cjs +35 -0
- package/dist/data/ai/SessionViewer.tokens.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tokens.d.ts +5 -0
- package/dist/data/ai/SessionViewer.tokens.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tokens.js +35 -0
- package/dist/data/ai/SessionViewer.tokens.js.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.cjs +128 -0
- package/dist/data/ai/SessionViewer.tool-cost.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.d.ts +6 -0
- package/dist/data/ai/SessionViewer.tool-cost.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.js +128 -0
- package/dist/data/ai/SessionViewer.tool-cost.js.map +1 -0
- package/dist/data/ai/SessionViewer.tool-details.cjs +3 -1
- package/dist/data/ai/SessionViewer.tool-details.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.js +3 -1
- package/dist/data/ai/SessionViewer.tool-details.js.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.cjs +55 -35
- package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts +2 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.js +55 -35
- package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +4 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.cjs +18 -1
- package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
- package/dist/data/ai/SessionViewerMenu.d.ts +6 -1
- package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.js +18 -1
- package/dist/data/ai/SessionViewerMenu.js.map +1 -1
- package/dist/data/ai/ToolPreferences.cjs +149 -143
- package/dist/data/ai/ToolPreferences.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts +20 -6
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.js +151 -146
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/ToolPreferences.model.cjs +14 -10
- package/dist/data/ai/ToolPreferences.model.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.model.d.ts +1 -0
- package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.model.js +15 -11
- package/dist/data/ai/ToolPreferences.model.js.map +1 -1
- package/dist/data/ai/ToolPreferencesList.cjs +1 -0
- package/dist/data/ai/ToolPreferencesList.cjs.map +1 -1
- package/dist/data/ai/ToolPreferencesList.d.ts +4 -1
- package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferencesList.js +2 -1
- package/dist/data/ai/ToolPreferencesList.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.cjs +52 -53
- package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.d.ts +6 -3
- package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs +9 -13
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +5 -2
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js +9 -13
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.js +53 -54
- package/dist/data/ai/ToolSchemaBrowser.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.cjs +19 -27
- package/dist/data/ai/ToolSchemaBrowser.model.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts +9 -6
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.js +20 -28
- package/dist/data/ai/ToolSchemaBrowser.model.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs +12 -213
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +1 -3
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js +13 -214
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.strategies.cjs +54 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.d.ts +9 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.js +54 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.js.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.cjs +179 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.d.ts +20 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.js +179 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.js.map +1 -0
- package/dist/data/ai/index.d.ts +2 -2
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs +8 -28
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js +9 -29
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js.map +1 -1
- package/dist/data/ai/session-token-sizing.d.ts +32 -0
- package/dist/data/ai/session-token-sizing.d.ts.map +1 -0
- package/dist/data/ai/use-session-token-sizing.cjs +73 -0
- package/dist/data/ai/use-session-token-sizing.cjs.map +1 -0
- package/dist/data/ai/use-session-token-sizing.d.ts +21 -0
- package/dist/data/ai/use-session-token-sizing.d.ts.map +1 -0
- package/dist/data/ai/use-session-token-sizing.js +73 -0
- package/dist/data/ai/use-session-token-sizing.js.map +1 -0
- package/dist/data/call-graph/CallGraph.cjs +269 -0
- package/dist/data/call-graph/CallGraph.cjs.map +1 -0
- package/dist/data/call-graph/CallGraph.d.ts +78 -0
- package/dist/data/call-graph/CallGraph.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraph.js +269 -0
- package/dist/data/call-graph/CallGraph.js.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.cjs +39 -0
- package/dist/data/call-graph/CallGraphGlyphs.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.d.ts +19 -0
- package/dist/data/call-graph/CallGraphGlyphs.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.js +39 -0
- package/dist/data/call-graph/CallGraphGlyphs.js.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.cjs +51 -0
- package/dist/data/call-graph/CallGraphMembers.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.d.ts +22 -0
- package/dist/data/call-graph/CallGraphMembers.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.js +51 -0
- package/dist/data/call-graph/CallGraphMembers.js.map +1 -0
- package/dist/data/call-graph/CallGraphParts.cjs +204 -0
- package/dist/data/call-graph/CallGraphParts.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphParts.d.ts +44 -0
- package/dist/data/call-graph/CallGraphParts.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphParts.js +204 -0
- package/dist/data/call-graph/CallGraphParts.js.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.cjs +198 -0
- package/dist/data/call-graph/CallGraphToolbar.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts +55 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.js +198 -0
- package/dist/data/call-graph/CallGraphToolbar.js.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.cjs +75 -0
- package/dist/data/call-graph/call-graph-exclude.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.d.ts +31 -0
- package/dist/data/call-graph/call-graph-exclude.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.js +75 -0
- package/dist/data/call-graph/call-graph-exclude.js.map +1 -0
- package/dist/data/call-graph/call-graph-labels.cjs +96 -0
- package/dist/data/call-graph/call-graph-labels.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-labels.d.ts +53 -0
- package/dist/data/call-graph/call-graph-labels.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-labels.js +96 -0
- package/dist/data/call-graph/call-graph-labels.js.map +1 -0
- package/dist/data/call-graph/call-graph-model.cjs +312 -0
- package/dist/data/call-graph/call-graph-model.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-model.d.ts +138 -0
- package/dist/data/call-graph/call-graph-model.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-model.js +312 -0
- package/dist/data/call-graph/call-graph-model.js.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs +195 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts +76 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.js +195 -0
- package/dist/data/call-graph/call-graph-vocabulary.js.map +1 -0
- package/dist/data/call-graph/call-graph.fixtures.d.ts +63 -0
- package/dist/data/call-graph/call-graph.fixtures.d.ts.map +1 -0
- package/dist/data/call-graph/index.d.ts +7 -0
- package/dist/data/call-graph/index.d.ts.map +1 -0
- package/dist/data/call-graph/types.cjs +5 -0
- package/dist/data/call-graph/types.cjs.map +1 -0
- package/dist/data/call-graph/types.d.ts +140 -0
- package/dist/data/call-graph/types.d.ts.map +1 -0
- package/dist/data/call-graph/types.js +5 -0
- package/dist/data/call-graph/types.js.map +1 -0
- package/dist/data/call-graph/use-call-graph.cjs +93 -0
- package/dist/data/call-graph/use-call-graph.cjs.map +1 -0
- package/dist/data/call-graph/use-call-graph.d.ts +24 -0
- package/dist/data/call-graph/use-call-graph.d.ts.map +1 -0
- package/dist/data/call-graph/use-call-graph.js +93 -0
- package/dist/data/call-graph/use-call-graph.js.map +1 -0
- package/dist/data/chat/Chat.cjs +39 -15
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.cjs +2 -2
- package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
- package/dist/data/chat/Chat.fixtures.js +2 -2
- package/dist/data/chat/Chat.fixtures.js.map +1 -1
- package/dist/data/chat/Chat.js +40 -16
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.cjs +3 -6
- package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.js +3 -6
- package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -1
- package/dist/data/chat/ContextMeter.bar.cjs +5 -8
- package/dist/data/chat/ContextMeter.bar.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.bar.d.ts +1 -1
- package/dist/data/chat/ContextMeter.bar.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.bar.js +5 -8
- package/dist/data/chat/ContextMeter.bar.js.map +1 -1
- package/dist/data/chat/ContextMeter.cjs +18 -19
- package/dist/data/chat/ContextMeter.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.d.ts +1 -1
- package/dist/data/chat/ContextMeter.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.js +18 -19
- package/dist/data/chat/ContextMeter.js.map +1 -1
- package/dist/data/chat/Conversation.cjs +2 -1
- package/dist/data/chat/Conversation.cjs.map +1 -1
- package/dist/data/chat/Conversation.d.ts +4 -1
- package/dist/data/chat/Conversation.d.ts.map +1 -1
- package/dist/data/chat/Conversation.js +2 -1
- package/dist/data/chat/Conversation.js.map +1 -1
- package/dist/data/chat/Message.cjs +39 -12
- package/dist/data/chat/Message.cjs.map +1 -1
- package/dist/data/chat/Message.d.ts +1 -1
- package/dist/data/chat/Message.d.ts.map +1 -1
- package/dist/data/chat/Message.js +40 -13
- package/dist/data/chat/Message.js.map +1 -1
- package/dist/data/chat/ToolCall.cjs +60 -5
- package/dist/data/chat/ToolCall.cjs.map +1 -1
- package/dist/data/chat/ToolCall.d.ts +7 -2
- package/dist/data/chat/ToolCall.d.ts.map +1 -1
- package/dist/data/chat/ToolCall.js +60 -5
- package/dist/data/chat/ToolCall.js.map +1 -1
- package/dist/data/chat/approval.cjs.map +1 -1
- package/dist/data/chat/approval.d.ts +2 -2
- package/dist/data/chat/approval.d.ts.map +1 -1
- package/dist/data/chat/approval.js.map +1 -1
- package/dist/data/chat/tool-policy.cjs +59 -2
- package/dist/data/chat/tool-policy.cjs.map +1 -1
- package/dist/data/chat/tool-policy.d.ts +9 -0
- package/dist/data/chat/tool-policy.d.ts.map +1 -1
- package/dist/data/chat/tool-policy.js +59 -2
- package/dist/data/chat/tool-policy.js.map +1 -1
- package/dist/data/chat/types.cjs +6 -0
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +13 -4
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js +7 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/chat/usage-snapshot.cjs +11 -6
- package/dist/data/chat/usage-snapshot.cjs.map +1 -1
- package/dist/data/chat/usage-snapshot.d.ts +0 -1
- package/dist/data/chat/usage-snapshot.d.ts.map +1 -1
- package/dist/data/chat/usage-snapshot.js +11 -6
- package/dist/data/chat/usage-snapshot.js.map +1 -1
- package/dist/data/data-access.cjs +8 -0
- package/dist/data/data-access.cjs.map +1 -0
- package/dist/data/data-access.d.ts +5 -0
- package/dist/data/data-access.d.ts.map +1 -0
- package/dist/data/data-access.js +8 -0
- package/dist/data/data-access.js.map +1 -0
- package/dist/data/diagnostics/StackFrameRow.cjs +3 -3
- package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.js +3 -3
- package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
- package/dist/data/git/GitChangeList.cjs +6 -2
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +6 -1
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +6 -2
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/graph-columns-layout.cjs +61 -14
- package/dist/data/graph-columns-layout.cjs.map +1 -1
- package/dist/data/graph-columns-layout.d.ts +42 -0
- package/dist/data/graph-columns-layout.d.ts.map +1 -1
- package/dist/data/graph-columns-layout.js +61 -14
- package/dist/data/graph-columns-layout.js.map +1 -1
- package/dist/data/graph-diagram-model.cjs +5 -0
- package/dist/data/graph-diagram-model.cjs.map +1 -1
- package/dist/data/graph-diagram-model.d.ts +24 -0
- package/dist/data/graph-diagram-model.d.ts.map +1 -1
- package/dist/data/graph-diagram-model.js +5 -0
- package/dist/data/graph-diagram-model.js.map +1 -1
- package/dist/data/graph-edge-routing.cjs +9 -3
- package/dist/data/graph-edge-routing.cjs.map +1 -1
- package/dist/data/graph-edge-routing.d.ts +2 -0
- package/dist/data/graph-edge-routing.d.ts.map +1 -1
- package/dist/data/graph-edge-routing.js +9 -3
- package/dist/data/graph-edge-routing.js.map +1 -1
- package/dist/data/graph-group-window.cjs +60 -0
- package/dist/data/graph-group-window.cjs.map +1 -0
- package/dist/data/graph-group-window.d.ts +33 -0
- package/dist/data/graph-group-window.d.ts.map +1 -0
- package/dist/data/graph-group-window.js +60 -0
- package/dist/data/graph-group-window.js.map +1 -0
- package/dist/data/json-view/JsonSource.cjs +84 -0
- package/dist/data/json-view/JsonSource.cjs.map +1 -0
- package/dist/data/json-view/JsonSource.d.ts +7 -0
- package/dist/data/json-view/JsonSource.d.ts.map +1 -0
- package/dist/data/json-view/JsonSource.js +84 -0
- package/dist/data/json-view/JsonSource.js.map +1 -0
- package/dist/data/json-view/parse-prefix.cjs +132 -0
- package/dist/data/json-view/parse-prefix.cjs.map +1 -0
- package/dist/data/json-view/parse-prefix.d.ts +11 -0
- package/dist/data/json-view/parse-prefix.d.ts.map +1 -0
- package/dist/data/json-view/parse-prefix.js +132 -0
- package/dist/data/json-view/parse-prefix.js.map +1 -0
- package/dist/data/json-view/parse-source.cjs +62 -0
- package/dist/data/json-view/parse-source.cjs.map +1 -0
- package/dist/data/json-view/parse-source.d.ts +16 -0
- package/dist/data/json-view/parse-source.d.ts.map +1 -0
- package/dist/data/json-view/parse-source.js +62 -0
- package/dist/data/json-view/parse-source.js.map +1 -0
- package/dist/data/json-view/story-fixtures.d.ts +6 -0
- package/dist/data/json-view/story-fixtures.d.ts.map +1 -0
- package/dist/data/json-view/types.d.ts +14 -0
- package/dist/data/json-view/types.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.cjs +2 -5
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts +2 -4
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.fields.cjs +2 -2
- package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.fields.js +2 -2
- package/dist/data/runtime/RuntimeBar.fields.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +2 -5
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.cjs +4 -1
- package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.js +5 -2
- package/dist/data/runtime/RuntimeBar.selection.js.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.cjs +1 -5
- package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.d.ts +1 -1
- package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.js +1 -5
- package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.cjs +6 -14
- package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.d.ts +0 -1
- package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.js +6 -14
- package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.cjs +8 -27
- package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.js +8 -27
- package/dist/data/runtime/RuntimeBarLayout.js.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.cjs +1 -5
- package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.js +1 -5
- package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.cjs +4 -10
- package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.d.ts +1 -2
- package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.js +4 -10
- package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -1
- package/dist/data/test-runner/TestRunner.fixtures.d.ts +0 -20
- package/dist/data/test-runner/TestRunner.fixtures.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.large-fixtures.d.ts +22 -0
- package/dist/data/test-runner/TestRunner.large-fixtures.d.ts.map +1 -0
- package/dist/data/use-group-windows.cjs +50 -0
- package/dist/data/use-group-windows.cjs.map +1 -0
- package/dist/data/use-group-windows.d.ts +27 -0
- package/dist/data/use-group-windows.d.ts.map +1 -0
- package/dist/data/use-group-windows.js +50 -0
- package/dist/data/use-group-windows.js.map +1 -0
- package/dist/data/use-pan-zoom.cjs +23 -10
- package/dist/data/use-pan-zoom.cjs.map +1 -1
- package/dist/data/use-pan-zoom.d.ts +16 -2
- package/dist/data/use-pan-zoom.d.ts.map +1 -1
- package/dist/data/use-pan-zoom.js +23 -10
- package/dist/data/use-pan-zoom.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +36 -2
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +5 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +35 -1
- package/dist/data.js.map +1 -1
- package/dist/hooks/event-hub.cjs +229 -0
- package/dist/hooks/event-hub.cjs.map +1 -0
- package/dist/hooks/event-hub.d.ts +26 -0
- package/dist/hooks/event-hub.d.ts.map +1 -0
- package/dist/hooks/event-hub.js +229 -0
- package/dist/hooks/event-hub.js.map +1 -0
- package/dist/hooks.cjs +2 -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 +2 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +40 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +37 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/Workspace.cjs +13 -4
- package/dist/layout/Workspace.cjs.map +1 -1
- package/dist/layout/Workspace.d.ts +7 -2
- package/dist/layout/Workspace.d.ts.map +1 -1
- package/dist/layout/Workspace.js +13 -4
- package/dist/layout/Workspace.js.map +1 -1
- package/dist/lib/permission-strategies.cjs +71 -11
- package/dist/lib/permission-strategies.cjs.map +1 -1
- package/dist/lib/permission-strategies.d.ts +3 -0
- package/dist/lib/permission-strategies.d.ts.map +1 -1
- package/dist/lib/permission-strategies.js +71 -11
- package/dist/lib/permission-strategies.js.map +1 -1
- package/dist/overlay/modalStack.cjs +13 -6
- package/dist/overlay/modalStack.cjs.map +1 -1
- package/dist/overlay/modalStack.d.ts.map +1 -1
- package/dist/overlay/modalStack.js +13 -6
- package/dist/overlay/modalStack.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -3
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs +0 -57
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs.map +0 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +0 -7
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +0 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js +0 -57
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.cjs +0 -8
- package/dist/data/runtime/RuntimeBar.context.cjs.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.d.ts +0 -2
- package/dist/data/runtime/RuntimeBar.context.d.ts.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.js +0 -8
- package/dist/data/runtime/RuntimeBar.context.js.map +0 -1
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const react = require("react");
|
|
5
4
|
const IconButton = require("../../components/IconButton.cjs");
|
|
6
5
|
const SegmentedControl = require("../../components/SegmentedControl.cjs");
|
|
7
|
-
const ListMenu = require("../../components/ListMenu.cjs");
|
|
8
6
|
const DropdownMenu = require("../../overlay/DropdownMenu.cjs");
|
|
9
7
|
const utils = require("../../lib/utils.cjs");
|
|
10
8
|
const Icon = require("../Icon.cjs");
|
|
11
|
-
const
|
|
12
|
-
const ToolSchemaBrowser_selectionToolbar = require("./ToolSchemaBrowser.selection-toolbar.cjs");
|
|
9
|
+
const ToolSchemaBrowser_tree = require("./ToolSchemaBrowser.tree.cjs");
|
|
13
10
|
const ToolSchemaBrowser_model = require("./ToolSchemaBrowser.model.cjs");
|
|
14
11
|
const UiSearch = require("../../icons/components/UiSearch.cjs");
|
|
15
12
|
const UiListDashes = require("../../icons/components/UiListDashes.cjs");
|
|
@@ -19,7 +16,6 @@ const UiEye = require("../../icons/components/UiEye.cjs");
|
|
|
19
16
|
const UiWarningTriangle = require("../../icons/components/UiWarningTriangle.cjs");
|
|
20
17
|
const UiRepeat = require("../../icons/components/UiRepeat.cjs");
|
|
21
18
|
const UiGlobe = require("../../icons/components/UiGlobe.cjs");
|
|
22
|
-
const UiWrench = require("../../icons/components/UiWrench.cjs");
|
|
23
19
|
function ToolSchemaBrowserSidebar({
|
|
24
20
|
query,
|
|
25
21
|
view,
|
|
@@ -28,7 +24,6 @@ function ToolSchemaBrowserSidebar({
|
|
|
28
24
|
active,
|
|
29
25
|
filteredCount,
|
|
30
26
|
isOpen,
|
|
31
|
-
selection,
|
|
32
27
|
value,
|
|
33
28
|
onRule,
|
|
34
29
|
onQueryChange,
|
|
@@ -38,7 +33,6 @@ function ToolSchemaBrowserSidebar({
|
|
|
38
33
|
onToggle,
|
|
39
34
|
onSelect
|
|
40
35
|
}) {
|
|
41
|
-
const selected = (selection == null ? void 0 : selection.selected) ?? /* @__PURE__ */ new Set();
|
|
42
36
|
const activeFilterCount = Object.values(filters).filter(
|
|
43
37
|
(filter) => filter !== "any"
|
|
44
38
|
).length;
|
|
@@ -139,217 +133,22 @@ function ToolSchemaBrowserSidebar({
|
|
|
139
133
|
}
|
|
140
134
|
)
|
|
141
135
|
] }),
|
|
142
|
-
|
|
143
|
-
|
|
136
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
137
|
+
ToolSchemaBrowser_tree.ToolPolicyTree,
|
|
144
138
|
{
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
children: [
|
|
155
|
-
sections.map((section) => {
|
|
156
|
-
const sectionKey = `p:${section.label}`;
|
|
157
|
-
const sectionOpen = isOpen(sectionKey);
|
|
158
|
-
const sectionTools = section.children.flatMap((child) => child.tools);
|
|
159
|
-
const sectionNames = sectionTools.map((tool) => tool.name);
|
|
160
|
-
const sectionState = ToolSchemaBrowser_model.selectedToolState(selected, sectionNames);
|
|
161
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ListMenu.ListMenuSection, { children: [
|
|
162
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ListMenu.ListMenuHeader, { className: "px-0 py-0", children: [
|
|
163
|
-
selection && /* @__PURE__ */ jsxRuntime.jsx(
|
|
164
|
-
SelectionCheckbox,
|
|
165
|
-
{
|
|
166
|
-
label: `Select all visible tools in ${section.label}`,
|
|
167
|
-
checked: sectionState.checked,
|
|
168
|
-
mixed: sectionState.mixed,
|
|
169
|
-
onChange: () => selection.set(
|
|
170
|
-
ToolSchemaBrowser_model.updateSelectedTools(
|
|
171
|
-
selection.selectedKeys,
|
|
172
|
-
sectionNames
|
|
173
|
-
)
|
|
174
|
-
)
|
|
175
|
-
}
|
|
176
|
-
),
|
|
177
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
178
|
-
ToolSchemaBrowser_directoryHeader.ToolDirectoryHeader,
|
|
179
|
-
{
|
|
180
|
-
label: section.label,
|
|
181
|
-
count: section.count,
|
|
182
|
-
open: sectionOpen,
|
|
183
|
-
variant: "section",
|
|
184
|
-
onToggle: () => onToggle(sectionKey),
|
|
185
|
-
...onRule ? {
|
|
186
|
-
onAdd: () => onRule(
|
|
187
|
-
ToolSchemaBrowser_model.directoryPermissionRule({
|
|
188
|
-
tools: sectionTools,
|
|
189
|
-
view,
|
|
190
|
-
depth: "section"
|
|
191
|
-
})
|
|
192
|
-
)
|
|
193
|
-
} : {}
|
|
194
|
-
}
|
|
195
|
-
)
|
|
196
|
-
] }),
|
|
197
|
-
sectionOpen && section.children.map((child) => {
|
|
198
|
-
const childKey = `s:${section.label}///${child.label}`;
|
|
199
|
-
const childOpen = isOpen(childKey);
|
|
200
|
-
const childNames = child.tools.map((tool) => tool.name);
|
|
201
|
-
const childState = ToolSchemaBrowser_model.selectedToolState(selected, childNames);
|
|
202
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
203
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center border-b border-border bg-background pl-2", children: [
|
|
204
|
-
selection && /* @__PURE__ */ jsxRuntime.jsx(
|
|
205
|
-
SelectionCheckbox,
|
|
206
|
-
{
|
|
207
|
-
label: `Select all visible tools in ${child.label}`,
|
|
208
|
-
checked: childState.checked,
|
|
209
|
-
mixed: childState.mixed,
|
|
210
|
-
onChange: () => selection.set(
|
|
211
|
-
ToolSchemaBrowser_model.updateSelectedTools(
|
|
212
|
-
selection.selectedKeys,
|
|
213
|
-
childNames
|
|
214
|
-
)
|
|
215
|
-
)
|
|
216
|
-
}
|
|
217
|
-
),
|
|
218
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
219
|
-
ToolSchemaBrowser_directoryHeader.ToolDirectoryHeader,
|
|
220
|
-
{
|
|
221
|
-
label: child.label,
|
|
222
|
-
count: child.tools.length,
|
|
223
|
-
open: childOpen,
|
|
224
|
-
variant: "child",
|
|
225
|
-
onToggle: () => onToggle(childKey),
|
|
226
|
-
...onRule ? {
|
|
227
|
-
onAdd: () => onRule(
|
|
228
|
-
ToolSchemaBrowser_model.directoryPermissionRule({
|
|
229
|
-
tools: child.tools,
|
|
230
|
-
view,
|
|
231
|
-
depth: "child"
|
|
232
|
-
})
|
|
233
|
-
)
|
|
234
|
-
} : {}
|
|
235
|
-
}
|
|
236
|
-
)
|
|
237
|
-
] }),
|
|
238
|
-
childOpen && child.tools.map((tool) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
239
|
-
ToolSidebarRow,
|
|
240
|
-
{
|
|
241
|
-
tool,
|
|
242
|
-
active: (active == null ? void 0 : active.name) === tool.name,
|
|
243
|
-
policy: value == null ? void 0 : value[tool.name],
|
|
244
|
-
selectable: selection !== void 0,
|
|
245
|
-
onSelect: () => onSelect(tool.name)
|
|
246
|
-
},
|
|
247
|
-
tool.name
|
|
248
|
-
))
|
|
249
|
-
] }, childKey);
|
|
250
|
-
})
|
|
251
|
-
] }, sectionKey);
|
|
252
|
-
}),
|
|
253
|
-
filteredCount === 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-8 text-center text-xs text-muted-foreground", children: "No matching tools" })
|
|
254
|
-
]
|
|
139
|
+
sections: filteredCount === 0 ? [] : sections,
|
|
140
|
+
view,
|
|
141
|
+
value,
|
|
142
|
+
onRule,
|
|
143
|
+
isOpen,
|
|
144
|
+
onToggle,
|
|
145
|
+
activeName: active == null ? void 0 : active.name,
|
|
146
|
+
onSelect,
|
|
147
|
+
className: "min-h-0 flex-1 overflow-y-auto"
|
|
255
148
|
}
|
|
256
149
|
)
|
|
257
150
|
] });
|
|
258
151
|
}
|
|
259
|
-
function ToolSidebarRow({
|
|
260
|
-
tool,
|
|
261
|
-
active,
|
|
262
|
-
policy,
|
|
263
|
-
selectable,
|
|
264
|
-
onSelect
|
|
265
|
-
}) {
|
|
266
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
267
|
-
ListMenu.ListMenuItem,
|
|
268
|
-
{
|
|
269
|
-
active,
|
|
270
|
-
role: "button",
|
|
271
|
-
tabIndex: 0,
|
|
272
|
-
"aria-selected": active,
|
|
273
|
-
"aria-label": tool.label || tool.name,
|
|
274
|
-
className: utils.cn("px-2 py-2", selectable ? "pl-4" : "pl-6"),
|
|
275
|
-
onClick: onSelect,
|
|
276
|
-
onKeyDown: (event) => {
|
|
277
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
278
|
-
event.preventDefault();
|
|
279
|
-
onSelect();
|
|
280
|
-
}
|
|
281
|
-
},
|
|
282
|
-
...selectable ? {
|
|
283
|
-
itemKey: tool.name,
|
|
284
|
-
checkboxLabel: `Select ${tool.label || tool.name}`
|
|
285
|
-
} : {},
|
|
286
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1rem_minmax(0,1fr)_auto] items-center gap-2", children: [
|
|
287
|
-
tool.icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: tool.icon, className: "size-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiWrench.UiWrench, className: "size-3.5 text-muted-foreground" }),
|
|
288
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-xs font-medium", children: tool.label || tool.name }),
|
|
289
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
290
|
-
/* @__PURE__ */ jsxRuntime.jsx(ToolHintIcons, { tool }),
|
|
291
|
-
policy && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-muted px-1 py-0.5 text-[9px] font-medium capitalize text-muted-foreground", children: policy === "allow" ? "On" : policy === "deny" ? "Off" : policy })
|
|
292
|
-
] })
|
|
293
|
-
] })
|
|
294
|
-
}
|
|
295
|
-
);
|
|
296
|
-
}
|
|
297
|
-
function ToolHintIcons({ tool }) {
|
|
298
|
-
var _a, _b, _c, _d;
|
|
299
|
-
const hints = [
|
|
300
|
-
[
|
|
301
|
-
(_a = tool.annotations) == null ? void 0 : _a.readOnlyHint,
|
|
302
|
-
"Read only tool",
|
|
303
|
-
UiEye.UiEye,
|
|
304
|
-
"text-emerald-600"
|
|
305
|
-
],
|
|
306
|
-
[
|
|
307
|
-
(_b = tool.annotations) == null ? void 0 : _b.destructiveHint,
|
|
308
|
-
"Destructive tool",
|
|
309
|
-
UiWarningTriangle.UiWarningTriangle,
|
|
310
|
-
"text-red-600"
|
|
311
|
-
],
|
|
312
|
-
[
|
|
313
|
-
(_c = tool.annotations) == null ? void 0 : _c.idempotentHint,
|
|
314
|
-
"Idempotent tool",
|
|
315
|
-
UiRepeat.UiRepeat,
|
|
316
|
-
"text-sky-600"
|
|
317
|
-
],
|
|
318
|
-
[
|
|
319
|
-
(_d = tool.annotations) == null ? void 0 : _d.openWorldHint,
|
|
320
|
-
"Open world tool",
|
|
321
|
-
UiGlobe.UiGlobe,
|
|
322
|
-
"text-violet-600"
|
|
323
|
-
]
|
|
324
|
-
];
|
|
325
|
-
return hints.flatMap(
|
|
326
|
-
([enabled, label, icon, className]) => enabled ? [
|
|
327
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { role: "img", "aria-label": label, title: label, children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon, className: utils.cn("size-3", className) }) }, label)
|
|
328
|
-
] : []
|
|
329
|
-
);
|
|
330
|
-
}
|
|
331
|
-
function SelectionCheckbox({
|
|
332
|
-
label,
|
|
333
|
-
checked,
|
|
334
|
-
mixed,
|
|
335
|
-
onChange
|
|
336
|
-
}) {
|
|
337
|
-
const ref = react.useRef(null);
|
|
338
|
-
react.useEffect(() => {
|
|
339
|
-
if (ref.current) ref.current.indeterminate = mixed;
|
|
340
|
-
}, [mixed]);
|
|
341
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
342
|
-
"input",
|
|
343
|
-
{
|
|
344
|
-
ref,
|
|
345
|
-
type: "checkbox",
|
|
346
|
-
checked,
|
|
347
|
-
"aria-label": label,
|
|
348
|
-
onChange,
|
|
349
|
-
className: "ml-2 size-3.5 shrink-0 rounded border-input"
|
|
350
|
-
}
|
|
351
|
-
);
|
|
352
|
-
}
|
|
353
152
|
function ViewToggleButton({
|
|
354
153
|
active,
|
|
355
154
|
icon,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolSchemaBrowser.sidebar.cjs","sources":["../../../src/data/ai/ToolSchemaBrowser.sidebar.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { IconButton } from \"../../components/IconButton\";\nimport { SegmentedControl } from \"../../components/SegmentedControl\";\nimport {\n ListMenu,\n ListMenuHeader,\n ListMenuItem,\n ListMenuSection,\n} from \"../../components/ListMenu\";\nimport type { ListMenuSelection } from \"../../components/use-list-menu-selection\";\nimport { DropdownMenu } from \"../../overlay/DropdownMenu\";\nimport { cn } from \"../../lib/utils\";\nimport {\n UiEye,\n UiFilter,\n UiGlobe,\n UiLayers,\n UiListDashes,\n UiRepeat,\n UiSearch,\n UiWarningTriangle,\n UiWrench,\n} from \"../../icons\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport type { PermissionRule } from \"../chat/tool-policy\";\nimport type { ToolMeta, ToolPolicy } from \"../chat/types\";\nimport { ToolDirectoryHeader } from \"./ToolSchemaBrowser.directory-header\";\nimport { ToolSelectionStrategyToolbar } from \"./ToolSchemaBrowser.selection-toolbar\";\nimport {\n TOOL_HINTS,\n directoryPermissionRule,\n selectedToolState,\n updateSelectedTools,\n type ToolHintFilter,\n type ToolHintFilters,\n type ToolHintKey,\n type ToolSchemaViewMode,\n type ToolSection,\n} from \"./ToolSchemaBrowser.model\";\n\nexport function ToolSchemaBrowserSidebar({\n query,\n view,\n filters,\n sections,\n active,\n filteredCount,\n isOpen,\n selection,\n value,\n onRule,\n onQueryChange,\n onViewChange,\n onFilterChange,\n onClearFilters,\n onToggle,\n onSelect,\n}: {\n query: string;\n view: ToolSchemaViewMode;\n filters: ToolHintFilters;\n sections: ToolSection[];\n active: ToolMeta | undefined;\n filteredCount: number;\n isOpen: (key: string) => boolean;\n selection?: ListMenuSelection | undefined;\n value: Record<string, ToolPolicy> | undefined;\n onRule: ((rule: PermissionRule) => void) | undefined;\n onQueryChange: (query: string) => void;\n onViewChange: (view: ToolSchemaViewMode) => void;\n onFilterChange: (key: ToolHintKey, value: ToolHintFilter) => void;\n onClearFilters: () => void;\n onToggle: (key: string) => void;\n onSelect: (name: string) => void;\n}) {\n const selected = selection?.selected ?? new Set<string>();\n const activeFilterCount = Object.values(filters).filter(\n (filter) => filter !== \"any\",\n ).length;\n return (\n <>\n <label className=\"flex h-9 shrink-0 items-center gap-2 border-b border-border px-2 text-xs\">\n <Icon icon={UiSearch} className=\"size-3.5 text-muted-foreground\" />\n <input\n value={query}\n onChange={(event) => onQueryChange(event.target.value)}\n placeholder=\"Search tools\"\n className=\"min-w-0 flex-1 bg-transparent outline-none\"\n />\n </label>\n <div className=\"flex shrink-0 items-center gap-1 border-b border-border px-2 py-1\">\n <ViewToggleButton\n active={view === \"group\"}\n icon={UiListDashes}\n label=\"Group\"\n onClick={() => onViewChange(\"group\")}\n />\n <ViewToggleButton\n active={view === \"tree\"}\n icon={UiLayers}\n label=\"Tree\"\n onClick={() => onViewChange(\"tree\")}\n />\n <DropdownMenu\n align=\"right\"\n menuLabel=\"Tool annotation filters\"\n menuClassName=\"w-72 p-2\"\n className=\"ml-auto\"\n trigger={\n <span className=\"relative inline-flex\">\n <IconButton\n icon={UiFilter}\n label={\n activeFilterCount > 0\n ? `Filter tool annotations, ${activeFilterCount} active`\n : \"Filter tool annotations\"\n }\n className={cn(\n activeFilterCount > 0 && \"bg-primary/10 text-primary\",\n )}\n />\n {activeFilterCount > 0 && (\n <span className=\"pointer-events-none absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground\">\n {activeFilterCount}\n </span>\n )}\n </span>\n }\n >\n {() => (\n <div className=\"space-y-density-2\">\n <div className=\"flex items-center justify-between gap-density-2\">\n <span className=\"text-xs font-semibold\">Tool annotations</span>\n <button\n type=\"button\"\n disabled={activeFilterCount === 0}\n onClick={onClearFilters}\n className=\"text-[10px] font-medium text-primary disabled:text-muted-foreground\"\n >\n Clear all\n </button>\n </div>\n {TOOL_HINTS.map(({ key, label }) => (\n <div key={key} className=\"space-y-1\">\n <span className=\"flex items-center gap-1 text-[10px] font-medium text-muted-foreground\">\n <Icon\n icon={hintFilterIcon(key)}\n className={cn(\"size-3\", hintIconClass(key))}\n />\n {label}\n </span>\n <SegmentedControl<ToolHintFilter>\n aria-label={label}\n value={filters[key]}\n onChange={(next) => onFilterChange(key, next)}\n size=\"sm\"\n className=\"w-full\"\n options={[\n { id: \"any\", label: \"Any\" },\n { id: \"yes\", label: \"Yes\" },\n { id: \"no\", label: \"No\" },\n ]}\n />\n </div>\n ))}\n </div>\n )}\n </DropdownMenu>\n </div>\n {selection && onRule && selection.count > 0 && (\n <ToolSelectionStrategyToolbar\n selection={selection}\n onRule={onRule}\n />\n )}\n <ListMenu\n className=\"min-h-0 flex-1 overflow-y-auto divide-y-0\"\n {...(selection ? { selection } : {})}\n >\n {sections.map((section) => {\n const sectionKey = `p:${section.label}`;\n const sectionOpen = isOpen(sectionKey);\n const sectionTools = section.children.flatMap((child) => child.tools);\n const sectionNames = sectionTools.map((tool) => tool.name);\n const sectionState = selectedToolState(selected, sectionNames);\n return (\n <ListMenuSection key={sectionKey}>\n <ListMenuHeader className=\"px-0 py-0\">\n {selection && (\n <SelectionCheckbox\n label={`Select all visible tools in ${section.label}`}\n checked={sectionState.checked}\n mixed={sectionState.mixed}\n onChange={() =>\n selection.set(\n updateSelectedTools(\n selection.selectedKeys,\n sectionNames,\n ),\n )\n }\n />\n )}\n <ToolDirectoryHeader\n label={section.label}\n count={section.count}\n open={sectionOpen}\n variant=\"section\"\n onToggle={() => onToggle(sectionKey)}\n {...(onRule\n ? {\n onAdd: () =>\n onRule(\n directoryPermissionRule({\n tools: sectionTools,\n view,\n depth: \"section\",\n }),\n ),\n }\n : {})}\n />\n </ListMenuHeader>\n {sectionOpen &&\n section.children.map((child) => {\n const childKey = `s:${section.label}///${child.label}`;\n const childOpen = isOpen(childKey);\n const childNames = child.tools.map((tool) => tool.name);\n const childState = selectedToolState(selected, childNames);\n return (\n <div key={childKey}>\n <div className=\"flex items-center border-b border-border bg-background pl-2\">\n {selection && (\n <SelectionCheckbox\n label={`Select all visible tools in ${child.label}`}\n checked={childState.checked}\n mixed={childState.mixed}\n onChange={() =>\n selection.set(\n updateSelectedTools(\n selection.selectedKeys,\n childNames,\n ),\n )\n }\n />\n )}\n <ToolDirectoryHeader\n label={child.label}\n count={child.tools.length}\n open={childOpen}\n variant=\"child\"\n onToggle={() => onToggle(childKey)}\n {...(onRule\n ? {\n onAdd: () =>\n onRule(\n directoryPermissionRule({\n tools: child.tools,\n view,\n depth: \"child\",\n }),\n ),\n }\n : {})}\n />\n </div>\n {childOpen &&\n child.tools.map((tool) => (\n <ToolSidebarRow\n key={tool.name}\n tool={tool}\n active={active?.name === tool.name}\n policy={value?.[tool.name]}\n selectable={selection !== undefined}\n onSelect={() => onSelect(tool.name)}\n />\n ))}\n </div>\n );\n })}\n </ListMenuSection>\n );\n })}\n {filteredCount === 0 && (\n <div className=\"px-3 py-8 text-center text-xs text-muted-foreground\">\n No matching tools\n </div>\n )}\n </ListMenu>\n </>\n );\n}\n\nfunction ToolSidebarRow({\n tool,\n active,\n policy,\n selectable,\n onSelect,\n}: {\n tool: ToolMeta;\n active: boolean;\n policy: ToolPolicy | undefined;\n selectable: boolean;\n onSelect: () => void;\n}) {\n return (\n <ListMenuItem\n active={active}\n role=\"button\"\n tabIndex={0}\n aria-selected={active}\n aria-label={tool.label || tool.name}\n className={cn(\"px-2 py-2\", selectable ? \"pl-4\" : \"pl-6\")}\n onClick={onSelect}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n onSelect();\n }\n }}\n {...(selectable\n ? {\n itemKey: tool.name,\n checkboxLabel: `Select ${tool.label || tool.name}`,\n }\n : {})}\n >\n <div className=\"grid grid-cols-[1rem_minmax(0,1fr)_auto] items-center gap-2\">\n {tool.icon ? (\n <Icon name={tool.icon} className=\"size-3.5 text-muted-foreground\" />\n ) : (\n <Icon icon={UiWrench} className=\"size-3.5 text-muted-foreground\" />\n )}\n <span className=\"min-w-0 truncate text-xs font-medium\">\n {tool.label || tool.name}\n </span>\n <div className=\"flex items-center gap-1\">\n <ToolHintIcons tool={tool} />\n {policy && (\n <span className=\"rounded bg-muted px-1 py-0.5 text-[9px] font-medium capitalize text-muted-foreground\">\n {policy === \"allow\" ? \"On\" : policy === \"deny\" ? \"Off\" : policy}\n </span>\n )}\n </div>\n </div>\n </ListMenuItem>\n );\n}\n\nfunction ToolHintIcons({ tool }: { tool: ToolMeta }) {\n const hints = [\n [\n tool.annotations?.readOnlyHint,\n \"Read only tool\",\n UiEye,\n \"text-emerald-600\",\n ],\n [\n tool.annotations?.destructiveHint,\n \"Destructive tool\",\n UiWarningTriangle,\n \"text-red-600\",\n ],\n [\n tool.annotations?.idempotentHint,\n \"Idempotent tool\",\n UiRepeat,\n \"text-sky-600\",\n ],\n [\n tool.annotations?.openWorldHint,\n \"Open world tool\",\n UiGlobe,\n \"text-violet-600\",\n ],\n ] as const;\n return hints.flatMap(([enabled, label, icon, className]) =>\n enabled\n ? [\n <span key={label} role=\"img\" aria-label={label} title={label}>\n <Icon icon={icon} className={cn(\"size-3\", className)} />\n </span>,\n ]\n : [],\n );\n}\n\nfunction SelectionCheckbox({\n label,\n checked,\n mixed,\n onChange,\n}: {\n label: string;\n checked: boolean;\n mixed: boolean;\n onChange: () => void;\n}) {\n const ref = useRef<HTMLInputElement>(null);\n useEffect(() => {\n if (ref.current) ref.current.indeterminate = mixed;\n }, [mixed]);\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n aria-label={label}\n onChange={onChange}\n className=\"ml-2 size-3.5 shrink-0 rounded border-input\"\n />\n );\n}\n\nfunction ViewToggleButton({\n active,\n icon,\n label,\n onClick,\n}: {\n active: boolean;\n icon: StaticIconComponent;\n label: string;\n onClick: () => void;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-pressed={active}\n className={cn(\n \"flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium\",\n active\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground hover:bg-accent/50\",\n )}\n >\n <Icon icon={icon} className=\"size-3.5\" />\n {label}\n </button>\n );\n}\n\nfunction hintFilterIcon(key: ToolHintKey): StaticIconComponent {\n if (key === \"readOnlyHint\") return UiEye;\n if (key === \"destructiveHint\") return UiWarningTriangle;\n if (key === \"idempotentHint\") return UiRepeat;\n return UiGlobe;\n}\n\nfunction hintIconClass(key: ToolHintKey): string {\n if (key === \"readOnlyHint\") return \"text-emerald-600\";\n if (key === \"destructiveHint\") return \"text-red-600\";\n if (key === \"idempotentHint\") return \"text-sky-600\";\n return \"text-violet-600\";\n}\n"],"names":["jsxs","Fragment","jsx","Icon","UiSearch","UiListDashes","UiLayers","DropdownMenu","IconButton","UiFilter","cn","TOOL_HINTS","SegmentedControl","ToolSelectionStrategyToolbar","ListMenu","selectedToolState","ListMenuSection","ListMenuHeader","updateSelectedTools","ToolDirectoryHeader","directoryPermissionRule","ListMenuItem","UiWrench","UiEye","UiWarningTriangle","UiRepeat","UiGlobe","useRef","useEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToolSchemaBrowser.sidebar.cjs","sources":["../../../src/data/ai/ToolSchemaBrowser.sidebar.tsx"],"sourcesContent":["import { IconButton } from \"../../components/IconButton\";\nimport { SegmentedControl } from \"../../components/SegmentedControl\";\nimport { DropdownMenu } from \"../../overlay/DropdownMenu\";\nimport { cn } from \"../../lib/utils\";\nimport {\n UiEye,\n UiFilter,\n UiGlobe,\n UiLayers,\n UiListDashes,\n UiRepeat,\n UiSearch,\n UiWarningTriangle,\n} from \"../../icons\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport type { PermissionRule } from \"../chat/tool-policy\";\nimport type { ToolMeta, ToolPolicy } from \"../chat/types\";\nimport { ToolPolicyTree } from \"./ToolSchemaBrowser.tree\";\nimport {\n TOOL_HINTS,\n type ToolHintFilter,\n type ToolHintFilters,\n type ToolHintKey,\n type ToolSchemaViewMode,\n type ToolSection,\n} from \"./ToolSchemaBrowser.model\";\n\nexport function ToolSchemaBrowserSidebar({\n query,\n view,\n filters,\n sections,\n active,\n filteredCount,\n isOpen,\n value,\n onRule,\n onQueryChange,\n onViewChange,\n onFilterChange,\n onClearFilters,\n onToggle,\n onSelect,\n}: {\n query: string;\n view: ToolSchemaViewMode;\n filters: ToolHintFilters;\n sections: ToolSection[];\n active: ToolMeta | undefined;\n filteredCount: number;\n isOpen: (key: string) => boolean;\n value: Record<string, ToolPolicy> | undefined;\n onRule: ((rule: PermissionRule) => void) | undefined;\n onQueryChange: (query: string) => void;\n onViewChange: (view: ToolSchemaViewMode) => void;\n onFilterChange: (key: ToolHintKey, value: ToolHintFilter) => void;\n onClearFilters: () => void;\n onToggle: (key: string) => void;\n onSelect: (name: string) => void;\n}) {\n const activeFilterCount = Object.values(filters).filter(\n (filter) => filter !== \"any\",\n ).length;\n return (\n <>\n <label className=\"flex h-9 shrink-0 items-center gap-2 border-b border-border px-2 text-xs\">\n <Icon icon={UiSearch} className=\"size-3.5 text-muted-foreground\" />\n <input\n value={query}\n onChange={(event) => onQueryChange(event.target.value)}\n placeholder=\"Search tools\"\n className=\"min-w-0 flex-1 bg-transparent outline-none\"\n />\n </label>\n <div className=\"flex shrink-0 items-center gap-1 border-b border-border px-2 py-1\">\n <ViewToggleButton\n active={view === \"group\"}\n icon={UiListDashes}\n label=\"Group\"\n onClick={() => onViewChange(\"group\")}\n />\n <ViewToggleButton\n active={view === \"tree\"}\n icon={UiLayers}\n label=\"Tree\"\n onClick={() => onViewChange(\"tree\")}\n />\n <DropdownMenu\n align=\"right\"\n menuLabel=\"Tool annotation filters\"\n menuClassName=\"w-72 p-2\"\n className=\"ml-auto\"\n trigger={\n <span className=\"relative inline-flex\">\n <IconButton\n icon={UiFilter}\n label={\n activeFilterCount > 0\n ? `Filter tool annotations, ${activeFilterCount} active`\n : \"Filter tool annotations\"\n }\n className={cn(\n activeFilterCount > 0 && \"bg-primary/10 text-primary\",\n )}\n />\n {activeFilterCount > 0 && (\n <span className=\"pointer-events-none absolute -right-1 -top-1 flex size-4 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground\">\n {activeFilterCount}\n </span>\n )}\n </span>\n }\n >\n {() => (\n <div className=\"space-y-density-2\">\n <div className=\"flex items-center justify-between gap-density-2\">\n <span className=\"text-xs font-semibold\">Tool annotations</span>\n <button\n type=\"button\"\n disabled={activeFilterCount === 0}\n onClick={onClearFilters}\n className=\"text-[10px] font-medium text-primary disabled:text-muted-foreground\"\n >\n Clear all\n </button>\n </div>\n {TOOL_HINTS.map(({ key, label }) => (\n <div key={key} className=\"space-y-1\">\n <span className=\"flex items-center gap-1 text-[10px] font-medium text-muted-foreground\">\n <Icon\n icon={hintFilterIcon(key)}\n className={cn(\"size-3\", hintIconClass(key))}\n />\n {label}\n </span>\n <SegmentedControl<ToolHintFilter>\n aria-label={label}\n value={filters[key]}\n onChange={(next) => onFilterChange(key, next)}\n size=\"sm\"\n className=\"w-full\"\n options={[\n { id: \"any\", label: \"Any\" },\n { id: \"yes\", label: \"Yes\" },\n { id: \"no\", label: \"No\" },\n ]}\n />\n </div>\n ))}\n </div>\n )}\n </DropdownMenu>\n </div>\n <ToolPolicyTree\n sections={filteredCount === 0 ? [] : sections}\n view={view}\n value={value}\n onRule={onRule}\n isOpen={isOpen}\n onToggle={onToggle}\n activeName={active?.name}\n onSelect={onSelect}\n className=\"min-h-0 flex-1 overflow-y-auto\"\n />\n </>\n );\n}\n\nfunction ViewToggleButton({\n active,\n icon,\n label,\n onClick,\n}: {\n active: boolean;\n icon: StaticIconComponent;\n label: string;\n onClick: () => void;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-pressed={active}\n className={cn(\n \"flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium\",\n active\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground hover:bg-accent/50\",\n )}\n >\n <Icon icon={icon} className=\"size-3.5\" />\n {label}\n </button>\n );\n}\n\nfunction hintFilterIcon(key: ToolHintKey): StaticIconComponent {\n if (key === \"readOnlyHint\") return UiEye;\n if (key === \"destructiveHint\") return UiWarningTriangle;\n if (key === \"idempotentHint\") return UiRepeat;\n return UiGlobe;\n}\n\nfunction hintIconClass(key: ToolHintKey): string {\n if (key === \"readOnlyHint\") return \"text-emerald-600\";\n if (key === \"destructiveHint\") return \"text-red-600\";\n if (key === \"idempotentHint\") return \"text-sky-600\";\n return \"text-violet-600\";\n}\n"],"names":["jsxs","Fragment","jsx","Icon","UiSearch","UiListDashes","UiLayers","DropdownMenu","IconButton","UiFilter","cn","TOOL_HINTS","SegmentedControl","ToolPolicyTree","UiEye","UiWarningTriangle","UiRepeat","UiGlobe"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ListMenuSelection } from '../../components/use-list-menu-selection.js';
|
|
2
1
|
import { PermissionRule } from '../chat/tool-policy.js';
|
|
3
2
|
import { ToolMeta, ToolPolicy } from '../chat/types.js';
|
|
4
3
|
import { ToolHintFilter, ToolHintFilters, ToolHintKey, ToolSchemaViewMode, ToolSection } from './ToolSchemaBrowser.model.js';
|
|
5
|
-
export declare function ToolSchemaBrowserSidebar({ query, view, filters, sections, active, filteredCount, isOpen,
|
|
4
|
+
export declare function ToolSchemaBrowserSidebar({ query, view, filters, sections, active, filteredCount, isOpen, value, onRule, onQueryChange, onViewChange, onFilterChange, onClearFilters, onToggle, onSelect, }: {
|
|
6
5
|
query: string;
|
|
7
6
|
view: ToolSchemaViewMode;
|
|
8
7
|
filters: ToolHintFilters;
|
|
@@ -10,7 +9,6 @@ export declare function ToolSchemaBrowserSidebar({ query, view, filters, section
|
|
|
10
9
|
active: ToolMeta | undefined;
|
|
11
10
|
filteredCount: number;
|
|
12
11
|
isOpen: (key: string) => boolean;
|
|
13
|
-
selection?: ListMenuSelection | undefined;
|
|
14
12
|
value: Record<string, ToolPolicy> | undefined;
|
|
15
13
|
onRule: ((rule: PermissionRule) => void) | undefined;
|
|
16
14
|
onQueryChange: (query: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolSchemaBrowser.sidebar.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ToolSchemaBrowser.sidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToolSchemaBrowser.sidebar.d.ts","sourceRoot":"","sources":["../../../src/data/ai/ToolSchemaBrowser.sidebar.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,MAAM,EACN,aAAa,EACb,MAAM,EACN,KAAK,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAClE,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,+BA2GA"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useRef, useEffect } from "react";
|
|
3
2
|
import { IconButton } from "../../components/IconButton.js";
|
|
4
3
|
import { SegmentedControl } from "../../components/SegmentedControl.js";
|
|
5
|
-
import { ListMenu, ListMenuSection, ListMenuHeader, ListMenuItem } from "../../components/ListMenu.js";
|
|
6
4
|
import { DropdownMenu } from "../../overlay/DropdownMenu.js";
|
|
7
5
|
import { cn } from "../../lib/utils.js";
|
|
8
6
|
import { Icon } from "../Icon.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { TOOL_HINTS, selectedToolState, updateSelectedTools, directoryPermissionRule } from "./ToolSchemaBrowser.model.js";
|
|
7
|
+
import { ToolPolicyTree } from "./ToolSchemaBrowser.tree.js";
|
|
8
|
+
import { TOOL_HINTS } from "./ToolSchemaBrowser.model.js";
|
|
12
9
|
import { UiSearch } from "../../icons/components/UiSearch.js";
|
|
13
10
|
import { UiListDashes } from "../../icons/components/UiListDashes.js";
|
|
14
11
|
import { UiLayers } from "../../icons/components/UiLayers.js";
|
|
@@ -17,7 +14,6 @@ import { UiEye } from "../../icons/components/UiEye.js";
|
|
|
17
14
|
import { UiWarningTriangle } from "../../icons/components/UiWarningTriangle.js";
|
|
18
15
|
import { UiRepeat } from "../../icons/components/UiRepeat.js";
|
|
19
16
|
import { UiGlobe } from "../../icons/components/UiGlobe.js";
|
|
20
|
-
import { UiWrench } from "../../icons/components/UiWrench.js";
|
|
21
17
|
function ToolSchemaBrowserSidebar({
|
|
22
18
|
query,
|
|
23
19
|
view,
|
|
@@ -26,7 +22,6 @@ function ToolSchemaBrowserSidebar({
|
|
|
26
22
|
active,
|
|
27
23
|
filteredCount,
|
|
28
24
|
isOpen,
|
|
29
|
-
selection,
|
|
30
25
|
value,
|
|
31
26
|
onRule,
|
|
32
27
|
onQueryChange,
|
|
@@ -36,7 +31,6 @@ function ToolSchemaBrowserSidebar({
|
|
|
36
31
|
onToggle,
|
|
37
32
|
onSelect
|
|
38
33
|
}) {
|
|
39
|
-
const selected = (selection == null ? void 0 : selection.selected) ?? /* @__PURE__ */ new Set();
|
|
40
34
|
const activeFilterCount = Object.values(filters).filter(
|
|
41
35
|
(filter) => filter !== "any"
|
|
42
36
|
).length;
|
|
@@ -137,217 +131,22 @@ function ToolSchemaBrowserSidebar({
|
|
|
137
131
|
}
|
|
138
132
|
)
|
|
139
133
|
] }),
|
|
140
|
-
|
|
141
|
-
|
|
134
|
+
/* @__PURE__ */ jsx(
|
|
135
|
+
ToolPolicyTree,
|
|
142
136
|
{
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
children: [
|
|
153
|
-
sections.map((section) => {
|
|
154
|
-
const sectionKey = `p:${section.label}`;
|
|
155
|
-
const sectionOpen = isOpen(sectionKey);
|
|
156
|
-
const sectionTools = section.children.flatMap((child) => child.tools);
|
|
157
|
-
const sectionNames = sectionTools.map((tool) => tool.name);
|
|
158
|
-
const sectionState = selectedToolState(selected, sectionNames);
|
|
159
|
-
return /* @__PURE__ */ jsxs(ListMenuSection, { children: [
|
|
160
|
-
/* @__PURE__ */ jsxs(ListMenuHeader, { className: "px-0 py-0", children: [
|
|
161
|
-
selection && /* @__PURE__ */ jsx(
|
|
162
|
-
SelectionCheckbox,
|
|
163
|
-
{
|
|
164
|
-
label: `Select all visible tools in ${section.label}`,
|
|
165
|
-
checked: sectionState.checked,
|
|
166
|
-
mixed: sectionState.mixed,
|
|
167
|
-
onChange: () => selection.set(
|
|
168
|
-
updateSelectedTools(
|
|
169
|
-
selection.selectedKeys,
|
|
170
|
-
sectionNames
|
|
171
|
-
)
|
|
172
|
-
)
|
|
173
|
-
}
|
|
174
|
-
),
|
|
175
|
-
/* @__PURE__ */ jsx(
|
|
176
|
-
ToolDirectoryHeader,
|
|
177
|
-
{
|
|
178
|
-
label: section.label,
|
|
179
|
-
count: section.count,
|
|
180
|
-
open: sectionOpen,
|
|
181
|
-
variant: "section",
|
|
182
|
-
onToggle: () => onToggle(sectionKey),
|
|
183
|
-
...onRule ? {
|
|
184
|
-
onAdd: () => onRule(
|
|
185
|
-
directoryPermissionRule({
|
|
186
|
-
tools: sectionTools,
|
|
187
|
-
view,
|
|
188
|
-
depth: "section"
|
|
189
|
-
})
|
|
190
|
-
)
|
|
191
|
-
} : {}
|
|
192
|
-
}
|
|
193
|
-
)
|
|
194
|
-
] }),
|
|
195
|
-
sectionOpen && section.children.map((child) => {
|
|
196
|
-
const childKey = `s:${section.label}///${child.label}`;
|
|
197
|
-
const childOpen = isOpen(childKey);
|
|
198
|
-
const childNames = child.tools.map((tool) => tool.name);
|
|
199
|
-
const childState = selectedToolState(selected, childNames);
|
|
200
|
-
return /* @__PURE__ */ jsxs("div", { children: [
|
|
201
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-border bg-background pl-2", children: [
|
|
202
|
-
selection && /* @__PURE__ */ jsx(
|
|
203
|
-
SelectionCheckbox,
|
|
204
|
-
{
|
|
205
|
-
label: `Select all visible tools in ${child.label}`,
|
|
206
|
-
checked: childState.checked,
|
|
207
|
-
mixed: childState.mixed,
|
|
208
|
-
onChange: () => selection.set(
|
|
209
|
-
updateSelectedTools(
|
|
210
|
-
selection.selectedKeys,
|
|
211
|
-
childNames
|
|
212
|
-
)
|
|
213
|
-
)
|
|
214
|
-
}
|
|
215
|
-
),
|
|
216
|
-
/* @__PURE__ */ jsx(
|
|
217
|
-
ToolDirectoryHeader,
|
|
218
|
-
{
|
|
219
|
-
label: child.label,
|
|
220
|
-
count: child.tools.length,
|
|
221
|
-
open: childOpen,
|
|
222
|
-
variant: "child",
|
|
223
|
-
onToggle: () => onToggle(childKey),
|
|
224
|
-
...onRule ? {
|
|
225
|
-
onAdd: () => onRule(
|
|
226
|
-
directoryPermissionRule({
|
|
227
|
-
tools: child.tools,
|
|
228
|
-
view,
|
|
229
|
-
depth: "child"
|
|
230
|
-
})
|
|
231
|
-
)
|
|
232
|
-
} : {}
|
|
233
|
-
}
|
|
234
|
-
)
|
|
235
|
-
] }),
|
|
236
|
-
childOpen && child.tools.map((tool) => /* @__PURE__ */ jsx(
|
|
237
|
-
ToolSidebarRow,
|
|
238
|
-
{
|
|
239
|
-
tool,
|
|
240
|
-
active: (active == null ? void 0 : active.name) === tool.name,
|
|
241
|
-
policy: value == null ? void 0 : value[tool.name],
|
|
242
|
-
selectable: selection !== void 0,
|
|
243
|
-
onSelect: () => onSelect(tool.name)
|
|
244
|
-
},
|
|
245
|
-
tool.name
|
|
246
|
-
))
|
|
247
|
-
] }, childKey);
|
|
248
|
-
})
|
|
249
|
-
] }, sectionKey);
|
|
250
|
-
}),
|
|
251
|
-
filteredCount === 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-8 text-center text-xs text-muted-foreground", children: "No matching tools" })
|
|
252
|
-
]
|
|
137
|
+
sections: filteredCount === 0 ? [] : sections,
|
|
138
|
+
view,
|
|
139
|
+
value,
|
|
140
|
+
onRule,
|
|
141
|
+
isOpen,
|
|
142
|
+
onToggle,
|
|
143
|
+
activeName: active == null ? void 0 : active.name,
|
|
144
|
+
onSelect,
|
|
145
|
+
className: "min-h-0 flex-1 overflow-y-auto"
|
|
253
146
|
}
|
|
254
147
|
)
|
|
255
148
|
] });
|
|
256
149
|
}
|
|
257
|
-
function ToolSidebarRow({
|
|
258
|
-
tool,
|
|
259
|
-
active,
|
|
260
|
-
policy,
|
|
261
|
-
selectable,
|
|
262
|
-
onSelect
|
|
263
|
-
}) {
|
|
264
|
-
return /* @__PURE__ */ jsx(
|
|
265
|
-
ListMenuItem,
|
|
266
|
-
{
|
|
267
|
-
active,
|
|
268
|
-
role: "button",
|
|
269
|
-
tabIndex: 0,
|
|
270
|
-
"aria-selected": active,
|
|
271
|
-
"aria-label": tool.label || tool.name,
|
|
272
|
-
className: cn("px-2 py-2", selectable ? "pl-4" : "pl-6"),
|
|
273
|
-
onClick: onSelect,
|
|
274
|
-
onKeyDown: (event) => {
|
|
275
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
276
|
-
event.preventDefault();
|
|
277
|
-
onSelect();
|
|
278
|
-
}
|
|
279
|
-
},
|
|
280
|
-
...selectable ? {
|
|
281
|
-
itemKey: tool.name,
|
|
282
|
-
checkboxLabel: `Select ${tool.label || tool.name}`
|
|
283
|
-
} : {},
|
|
284
|
-
children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[1rem_minmax(0,1fr)_auto] items-center gap-2", children: [
|
|
285
|
-
tool.icon ? /* @__PURE__ */ jsx(Icon, { name: tool.icon, className: "size-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsx(Icon, { icon: UiWrench, className: "size-3.5 text-muted-foreground" }),
|
|
286
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-xs font-medium", children: tool.label || tool.name }),
|
|
287
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
288
|
-
/* @__PURE__ */ jsx(ToolHintIcons, { tool }),
|
|
289
|
-
policy && /* @__PURE__ */ jsx("span", { className: "rounded bg-muted px-1 py-0.5 text-[9px] font-medium capitalize text-muted-foreground", children: policy === "allow" ? "On" : policy === "deny" ? "Off" : policy })
|
|
290
|
-
] })
|
|
291
|
-
] })
|
|
292
|
-
}
|
|
293
|
-
);
|
|
294
|
-
}
|
|
295
|
-
function ToolHintIcons({ tool }) {
|
|
296
|
-
var _a, _b, _c, _d;
|
|
297
|
-
const hints = [
|
|
298
|
-
[
|
|
299
|
-
(_a = tool.annotations) == null ? void 0 : _a.readOnlyHint,
|
|
300
|
-
"Read only tool",
|
|
301
|
-
UiEye,
|
|
302
|
-
"text-emerald-600"
|
|
303
|
-
],
|
|
304
|
-
[
|
|
305
|
-
(_b = tool.annotations) == null ? void 0 : _b.destructiveHint,
|
|
306
|
-
"Destructive tool",
|
|
307
|
-
UiWarningTriangle,
|
|
308
|
-
"text-red-600"
|
|
309
|
-
],
|
|
310
|
-
[
|
|
311
|
-
(_c = tool.annotations) == null ? void 0 : _c.idempotentHint,
|
|
312
|
-
"Idempotent tool",
|
|
313
|
-
UiRepeat,
|
|
314
|
-
"text-sky-600"
|
|
315
|
-
],
|
|
316
|
-
[
|
|
317
|
-
(_d = tool.annotations) == null ? void 0 : _d.openWorldHint,
|
|
318
|
-
"Open world tool",
|
|
319
|
-
UiGlobe,
|
|
320
|
-
"text-violet-600"
|
|
321
|
-
]
|
|
322
|
-
];
|
|
323
|
-
return hints.flatMap(
|
|
324
|
-
([enabled, label, icon, className]) => enabled ? [
|
|
325
|
-
/* @__PURE__ */ jsx("span", { role: "img", "aria-label": label, title: label, children: /* @__PURE__ */ jsx(Icon, { icon, className: cn("size-3", className) }) }, label)
|
|
326
|
-
] : []
|
|
327
|
-
);
|
|
328
|
-
}
|
|
329
|
-
function SelectionCheckbox({
|
|
330
|
-
label,
|
|
331
|
-
checked,
|
|
332
|
-
mixed,
|
|
333
|
-
onChange
|
|
334
|
-
}) {
|
|
335
|
-
const ref = useRef(null);
|
|
336
|
-
useEffect(() => {
|
|
337
|
-
if (ref.current) ref.current.indeterminate = mixed;
|
|
338
|
-
}, [mixed]);
|
|
339
|
-
return /* @__PURE__ */ jsx(
|
|
340
|
-
"input",
|
|
341
|
-
{
|
|
342
|
-
ref,
|
|
343
|
-
type: "checkbox",
|
|
344
|
-
checked,
|
|
345
|
-
"aria-label": label,
|
|
346
|
-
onChange,
|
|
347
|
-
className: "ml-2 size-3.5 shrink-0 rounded border-input"
|
|
348
|
-
}
|
|
349
|
-
);
|
|
350
|
-
}
|
|
351
150
|
function ViewToggleButton({
|
|
352
151
|
active,
|
|
353
152
|
icon,
|