@flanksource/clicky-ui 0.3.26 → 0.3.28
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 +14 -0
- package/dist/ai.cjs +52 -6
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +53 -7
- package/dist/ai.js.map +1 -1
- package/dist/comments/CommentCard.cjs +24 -39
- package/dist/comments/CommentCard.cjs.map +1 -1
- package/dist/comments/CommentCard.d.ts +9 -2
- package/dist/comments/CommentCard.d.ts.map +1 -1
- package/dist/comments/CommentCard.js +24 -39
- package/dist/comments/CommentCard.js.map +1 -1
- package/dist/comments/CommentProvider.cjs +4 -3
- package/dist/comments/CommentProvider.cjs.map +1 -1
- package/dist/comments/CommentProvider.d.ts +6 -1
- package/dist/comments/CommentProvider.d.ts.map +1 -1
- package/dist/comments/CommentProvider.js +4 -3
- package/dist/comments/CommentProvider.js.map +1 -1
- package/dist/comments/CommentSidePanel.cjs +65 -52
- package/dist/comments/CommentSidePanel.cjs.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.js +67 -54
- package/dist/comments/CommentSidePanel.js.map +1 -1
- package/dist/comments/CommentThread.cjs +2 -2
- package/dist/comments/CommentThread.cjs.map +1 -1
- package/dist/comments/CommentThread.d.ts +3 -3
- package/dist/comments/CommentThread.d.ts.map +1 -1
- package/dist/comments/CommentThread.js +2 -2
- package/dist/comments/CommentThread.js.map +1 -1
- package/dist/comments/CommentThreadList.cjs +85 -37
- package/dist/comments/CommentThreadList.cjs.map +1 -1
- package/dist/comments/CommentThreadList.d.ts +3 -3
- package/dist/comments/CommentThreadList.d.ts.map +1 -1
- package/dist/comments/CommentThreadList.js +86 -38
- package/dist/comments/CommentThreadList.js.map +1 -1
- package/dist/comments/comment-utils.cjs +26 -0
- package/dist/comments/comment-utils.cjs.map +1 -1
- package/dist/comments/comment-utils.d.ts +11 -0
- package/dist/comments/comment-utils.d.ts.map +1 -1
- package/dist/comments/comment-utils.js +26 -0
- package/dist/comments/comment-utils.js.map +1 -1
- package/dist/comments.cjs +2 -0
- package/dist/comments.cjs.map +1 -1
- package/dist/comments.js +3 -1
- package/dist/components/AccordionList.cjs +3 -0
- package/dist/components/AccordionList.cjs.map +1 -1
- package/dist/components/AccordionList.d.ts +3 -1
- package/dist/components/AccordionList.d.ts.map +1 -1
- package/dist/components/AccordionList.js +3 -0
- package/dist/components/AccordionList.js.map +1 -1
- package/dist/components/CopyButton.cjs +35 -0
- package/dist/components/CopyButton.cjs.map +1 -0
- package/dist/components/CopyButton.d.ts +20 -0
- package/dist/components/CopyButton.d.ts.map +1 -0
- package/dist/components/CopyButton.js +35 -0
- package/dist/components/CopyButton.js.map +1 -0
- package/dist/components/FilterBar.cjs +29 -6
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +10 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +29 -6
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/ListMenu.cjs +4 -1
- package/dist/components/ListMenu.cjs.map +1 -1
- package/dist/components/ListMenu.d.ts +5 -1
- package/dist/components/ListMenu.d.ts.map +1 -1
- package/dist/components/ListMenu.js +4 -1
- package/dist/components/ListMenu.js.map +1 -1
- package/dist/components/SegmentedControl.cjs +4 -2
- package/dist/components/SegmentedControl.cjs.map +1 -1
- package/dist/components/SegmentedControl.d.ts +4 -0
- package/dist/components/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl.js +4 -2
- package/dist/components/SegmentedControl.js.map +1 -1
- package/dist/components/clipboard.cjs +60 -0
- package/dist/components/clipboard.cjs.map +1 -0
- package/dist/components/clipboard.d.ts +13 -0
- package/dist/components/clipboard.d.ts.map +1 -0
- package/dist/components/clipboard.js +60 -0
- package/dist/components/clipboard.js.map +1 -0
- package/dist/components/json-schema-form-array.cjs +15 -1
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +15 -1
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-list-array.cjs +113 -0
- package/dist/components/json-schema-form-list-array.cjs.map +1 -0
- package/dist/components/json-schema-form-list-array.d.ts +7 -0
- package/dist/components/json-schema-form-list-array.d.ts.map +1 -0
- package/dist/components/json-schema-form-list-array.js +113 -0
- package/dist/components/json-schema-form-list-array.js.map +1 -0
- package/dist/components/json-schema-form-resolve.cjs +1 -1
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +1 -1
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +1 -1
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components.cjs +5 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +2 -0
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +5 -0
- package/dist/components.js.map +1 -1
- package/dist/data/Clicky.cjs +4 -1
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.js +4 -1
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/DataTable.cjs +202 -40
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +163 -3
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +202 -40
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs +1 -1
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.cjs.map +1 -1
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js +1 -1
- package/dist/data/FixtureEditor/FixtureFrontmatterDialog.js.map +1 -1
- package/dist/data/FixtureEditor/fixture-frontmatter.cjs +8 -6
- package/dist/data/FixtureEditor/fixture-frontmatter.cjs.map +1 -1
- package/dist/data/FixtureEditor/fixture-frontmatter.js +8 -6
- package/dist/data/FixtureEditor/fixture-frontmatter.js.map +1 -1
- package/dist/data/SelectionActionBar.cjs +242 -0
- package/dist/data/SelectionActionBar.cjs.map +1 -0
- package/dist/data/SelectionActionBar.d.ts +28 -0
- package/dist/data/SelectionActionBar.d.ts.map +1 -0
- package/dist/data/SelectionActionBar.js +242 -0
- package/dist/data/SelectionActionBar.js.map +1 -0
- package/dist/data/TaskManager.cjs +34 -12
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +34 -12
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskManagerButton.cjs +11 -7
- package/dist/data/TaskManagerButton.cjs.map +1 -1
- package/dist/data/TaskManagerButton.d.ts.map +1 -1
- package/dist/data/TaskManagerButton.js +11 -7
- package/dist/data/TaskManagerButton.js.map +1 -1
- package/dist/data/TaskProgress.cjs +55 -11
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +53 -9
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/ai/ChatWindow.cjs +2 -4
- 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 -4
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.cjs +1 -2
- package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.js +1 -2
- package/dist/data/ai/ChatWindow.runtime.js.map +1 -1
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.cjs +262 -0
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +16 -0
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.js +262 -0
- package/dist/data/ai/PromptCatalog/PromptCatalogTable.js.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs +77 -0
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +8 -0
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.js +77 -0
- package/dist/data/ai/PromptCatalog/PromptLayerStrip.js.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPage.cjs +332 -0
- package/dist/data/ai/PromptCatalog/PromptPage.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPage.d.ts +17 -0
- package/dist/data/ai/PromptCatalog/PromptPage.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPage.js +332 -0
- package/dist/data/ai/PromptCatalog/PromptPage.js.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageEditor.cjs +102 -0
- package/dist/data/ai/PromptCatalog/PromptPageEditor.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +16 -0
- package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageEditor.js +102 -0
- package/dist/data/ai/PromptCatalog/PromptPageEditor.js.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs +102 -0
- package/dist/data/ai/PromptCatalog/PromptPageHeader.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +10 -0
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageHeader.js +102 -0
- package/dist/data/ai/PromptCatalog/PromptPageHeader.js.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPagePreview.cjs +90 -0
- package/dist/data/ai/PromptCatalog/PromptPagePreview.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +8 -0
- package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPagePreview.js +90 -0
- package/dist/data/ai/PromptCatalog/PromptPagePreview.js.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs +168 -0
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +17 -0
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js +168 -0
- package/dist/data/ai/PromptCatalog/PromptPageSaveBar.js.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.cjs +36 -0
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +7 -0
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.js +36 -0
- package/dist/data/ai/PromptCatalog/PromptSourceBadge.js.map +1 -0
- package/dist/data/ai/PromptCatalog/index.d.ts +9 -0
- package/dist/data/ai/PromptCatalog/index.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/prompt-catalog-model.cjs +137 -0
- package/dist/data/ai/PromptCatalog/prompt-catalog-model.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts +28 -0
- package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/prompt-catalog-model.js +137 -0
- package/dist/data/ai/PromptCatalog/prompt-catalog-model.js.map +1 -0
- package/dist/data/ai/PromptCatalog/prompt-page-model.cjs +114 -0
- package/dist/data/ai/PromptCatalog/prompt-page-model.cjs.map +1 -0
- package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts +45 -0
- package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts.map +1 -0
- package/dist/data/ai/PromptCatalog/prompt-page-model.js +114 -0
- package/dist/data/ai/PromptCatalog/prompt-page-model.js.map +1 -0
- package/dist/data/ai/PromptCatalog/types.d.ts +70 -0
- package/dist/data/ai/PromptCatalog/types.d.ts.map +1 -0
- package/dist/data/ai/PromptPicker/PromptPicker.cjs +9 -12
- package/dist/data/ai/PromptPicker/PromptPicker.cjs.map +1 -1
- package/dist/data/ai/PromptPicker/PromptPicker.js +9 -12
- package/dist/data/ai/PromptPicker/PromptPicker.js.map +1 -1
- package/dist/data/ai/PromptPicker/index.d.ts +1 -1
- package/dist/data/ai/PromptPicker/index.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/types.cjs.map +1 -1
- package/dist/data/ai/PromptPicker/types.d.ts +9 -0
- package/dist/data/ai/PromptPicker/types.d.ts.map +1 -1
- package/dist/data/ai/PromptPicker/types.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.cjs +4 -5
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +5 -6
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/model.cjs +1 -1
- package/dist/data/ai/PromptRunEditor/model.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/model.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/model.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/model.js +1 -1
- package/dist/data/ai/PromptRunEditor/model.js.map +1 -1
- package/dist/data/ai/RuntimeModePicker.cjs +25 -14
- package/dist/data/ai/RuntimeModePicker.cjs.map +1 -1
- package/dist/data/ai/RuntimeModePicker.d.ts.map +1 -1
- package/dist/data/ai/RuntimeModePicker.js +26 -15
- package/dist/data/ai/RuntimeModePicker.js.map +1 -1
- package/dist/data/ai/SessionInspector.collection-types.d.ts +1 -1
- package/dist/data/ai/SessionInspector.collection-types.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.collection.cjs +3 -3
- package/dist/data/ai/SessionInspector.collection.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.collection.js +3 -3
- package/dist/data/ai/SessionInspector.collection.js.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.js.map +1 -1
- package/dist/data/ai/SessionInspector.model.cjs +3 -3
- package/dist/data/ai/SessionInspector.model.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.model.d.ts +1 -1
- package/dist/data/ai/SessionInspector.model.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.model.js +3 -3
- package/dist/data/ai/SessionInspector.model.js.map +1 -1
- package/dist/data/ai/SessionInspector.panels.cjs +1 -1
- package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.panels.js +1 -1
- package/dist/data/ai/SessionInspector.panels.js.map +1 -1
- package/dist/data/ai/SessionInspector.summary.cjs +3 -3
- package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.summary.js +3 -3
- package/dist/data/ai/SessionInspector.summary.js.map +1 -1
- package/dist/data/ai/SessionViewer.fixtures.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +3 -2
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +18 -30
- 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 +19 -31
- package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs +71 -86
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js +72 -87
- package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.cjs +99 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +13 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.js +99 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs +37 -21
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +6 -2
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js +38 -22
- package/dist/data/ai/SpecRuntimeEditor/ModelSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs +114 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +10 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js +114 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.cjs +160 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +9 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.js +160 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +27 -241
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +5 -6
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +25 -239
- package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs +21 -8
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +4 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js +22 -9
- package/dist/data/ai/SpecRuntimeEditor/PromptSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs +207 -164
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +4 -3
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js +210 -167
- package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs +15 -15
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.js +15 -15
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs +120 -42
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +4 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js +123 -45
- package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/env-model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/env-model.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs +136 -48
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +13 -3
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js +137 -49
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +93 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts +6 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +93 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs +35 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts +5 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js +35 -0
- package/dist/data/ai/SpecRuntimeEditor/permission-preset-storage.js.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor/presets.cjs +2 -9
- package/dist/data/ai/SpecRuntimeEditor/presets.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/presets.d.ts +1 -2
- package/dist/data/ai/SpecRuntimeEditor/presets.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/presets.js +2 -9
- package/dist/data/ai/SpecRuntimeEditor/presets.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +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/types.cjs +2 -7
- package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/types.d.ts +0 -1
- package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/types.js +3 -8
- package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.cjs +43 -33
- package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts +7 -13
- package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/update.js +43 -33
- package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.cjs +33 -45
- package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts +54 -29
- package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.model.js +33 -44
- package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs +276 -0
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.cjs.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts +58 -0
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.d.ts.map +1 -0
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js +276 -0
- package/dist/data/ai/SpecRuntimeEditor.sandbox-model.js.map +1 -0
- package/dist/data/ai/ThreadPicker.cjs +55 -42
- package/dist/data/ai/ThreadPicker.cjs.map +1 -1
- package/dist/data/ai/ThreadPicker.d.ts.map +1 -1
- package/dist/data/ai/ThreadPicker.js +56 -43
- package/dist/data/ai/ThreadPicker.js.map +1 -1
- package/dist/data/ai/ToolPreferences.cjs +9 -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 +9 -1
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.cjs +41 -487
- package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.d.ts +7 -2
- package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.detail.cjs +238 -0
- package/dist/data/ai/ToolSchemaBrowser.detail.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +8 -0
- package/dist/data/ai/ToolSchemaBrowser.detail.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.detail.js +238 -0
- package/dist/data/ai/ToolSchemaBrowser.detail.js.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs +57 -0
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +9 -0
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js +57 -0
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.js +42 -488
- package/dist/data/ai/ToolSchemaBrowser.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.cjs +130 -0
- package/dist/data/ai/ToolSchemaBrowser.model.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts +35 -0
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.model.js +130 -0
- package/dist/data/ai/ToolSchemaBrowser.model.js.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs +57 -0
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +7 -0
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js +57 -0
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs +389 -0
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +23 -0
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js +389 -0
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js.map +1 -0
- package/dist/data/ai/agent-action-icons.cjs +14 -6
- package/dist/data/ai/agent-action-icons.cjs.map +1 -1
- package/dist/data/ai/agent-action-icons.d.ts.map +1 -1
- package/dist/data/ai/agent-action-icons.js +14 -6
- package/dist/data/ai/agent-action-icons.js.map +1 -1
- package/dist/data/ai/examples/sessions/claude-complete.cjs +17 -9
- package/dist/data/ai/examples/sessions/claude-complete.cjs.map +1 -1
- package/dist/data/ai/examples/sessions/claude-complete.d.ts.map +1 -1
- package/dist/data/ai/examples/sessions/claude-complete.js +17 -9
- package/dist/data/ai/examples/sessions/claude-complete.js.map +1 -1
- package/dist/data/ai/examples/sessions/claude.cjs +7 -4
- package/dist/data/ai/examples/sessions/claude.cjs.map +1 -1
- package/dist/data/ai/examples/sessions/claude.d.ts.map +1 -1
- package/dist/data/ai/examples/sessions/claude.js +7 -4
- package/dist/data/ai/examples/sessions/claude.js.map +1 -1
- package/dist/data/ai/examples/sessions/codex-complete.cjs +17 -10
- package/dist/data/ai/examples/sessions/codex-complete.cjs.map +1 -1
- package/dist/data/ai/examples/sessions/codex-complete.d.ts.map +1 -1
- package/dist/data/ai/examples/sessions/codex-complete.js +17 -10
- package/dist/data/ai/examples/sessions/codex-complete.js.map +1 -1
- package/dist/data/ai/examples/sessions/codex.cjs +7 -4
- package/dist/data/ai/examples/sessions/codex.cjs.map +1 -1
- package/dist/data/ai/examples/sessions/codex.d.ts.map +1 -1
- package/dist/data/ai/examples/sessions/codex.js +7 -4
- package/dist/data/ai/examples/sessions/codex.js.map +1 -1
- package/dist/data/ai/index.d.ts +6 -3
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/runtime-profile.cjs +93 -0
- package/dist/data/ai/runtime-profile.cjs.map +1 -0
- package/dist/data/ai/runtime-profile.d.ts +73 -0
- package/dist/data/ai/runtime-profile.d.ts.map +1 -0
- package/dist/data/ai/runtime-profile.js +93 -0
- package/dist/data/ai/runtime-profile.js.map +1 -0
- package/dist/data/ai/sandbox-kind-meta.cjs +38 -4
- package/dist/data/ai/sandbox-kind-meta.cjs.map +1 -1
- package/dist/data/ai/sandbox-kind-meta.d.ts +3 -0
- package/dist/data/ai/sandbox-kind-meta.d.ts.map +1 -1
- package/dist/data/ai/sandbox-kind-meta.js +38 -4
- package/dist/data/ai/sandbox-kind-meta.js.map +1 -1
- package/dist/data/chat/Chat.cjs +17 -5
- 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 +3 -3
- package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
- package/dist/data/chat/Chat.fixtures.js +3 -3
- package/dist/data/chat/Chat.fixtures.js.map +1 -1
- package/dist/data/chat/Chat.js +18 -6
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/Chat.runtime.cjs +15 -9
- package/dist/data/chat/Chat.runtime.cjs.map +1 -1
- package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
- package/dist/data/chat/Chat.runtime.js +16 -10
- package/dist/data/chat/Chat.runtime.js.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.cjs +5 -5
- package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.js +5 -5
- package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -1
- package/dist/data/chat/ContextMeter.cjs +3 -3
- package/dist/data/chat/ContextMeter.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.d.ts +3 -3
- package/dist/data/chat/ContextMeter.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.js +3 -3
- package/dist/data/chat/ContextMeter.js.map +1 -1
- package/dist/data/chat/approval.cjs.map +1 -1
- package/dist/data/chat/approval.d.ts +21 -1
- package/dist/data/chat/approval.d.ts.map +1 -1
- package/dist/data/chat/approval.js.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.cjs +5 -0
- package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.js +5 -0
- package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +7 -5
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/chat/usage-snapshot.cjs +21 -1
- package/dist/data/chat/usage-snapshot.cjs.map +1 -1
- package/dist/data/chat/usage-snapshot.d.ts +2 -0
- package/dist/data/chat/usage-snapshot.d.ts.map +1 -1
- package/dist/data/chat/usage-snapshot.js +22 -2
- package/dist/data/chat/usage-snapshot.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.cjs +49 -51
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts +10 -2
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +51 -53
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.model.cjs +55 -0
- package/dist/data/runtime/RuntimeBar.model.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.model.d.ts +11 -3
- package/dist/data/runtime/RuntimeBar.model.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.model.js +55 -0
- package/dist/data/runtime/RuntimeBar.model.js.map +1 -1
- package/dist/data/runtime/RuntimeBarCombo.cjs +11 -6
- package/dist/data/runtime/RuntimeBarCombo.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarCombo.d.ts +3 -1
- package/dist/data/runtime/RuntimeBarCombo.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarCombo.js +11 -6
- package/dist/data/runtime/RuntimeBarCombo.js.map +1 -1
- package/dist/data/runtime/RuntimeBarSegments.cjs +7 -5
- package/dist/data/runtime/RuntimeBarSegments.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarSegments.d.ts +4 -2
- package/dist/data/runtime/RuntimeBarSegments.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarSegments.js +7 -5
- package/dist/data/runtime/RuntimeBarSegments.js.map +1 -1
- package/dist/data/runtime/model-capabilities.cjs +6 -6
- package/dist/data/runtime/model-capabilities.cjs.map +1 -1
- package/dist/data/runtime/model-capabilities.d.ts +5 -1
- package/dist/data/runtime/model-capabilities.d.ts.map +1 -1
- package/dist/data/runtime/model-capabilities.js +6 -6
- package/dist/data/runtime/model-capabilities.js.map +1 -1
- package/dist/data/runtime/provider-status.cjs +1 -1
- package/dist/data/runtime/provider-status.cjs.map +1 -1
- package/dist/data/runtime/provider-status.js +1 -1
- package/dist/data/runtime/provider-status.js.map +1 -1
- package/dist/data/runtime/runtime-field-support.cjs +63 -0
- package/dist/data/runtime/runtime-field-support.cjs.map +1 -0
- package/dist/data/runtime/runtime-field-support.d.ts +13 -0
- package/dist/data/runtime/runtime-field-support.d.ts.map +1 -0
- package/dist/data/runtime/runtime-field-support.js +63 -0
- package/dist/data/runtime/runtime-field-support.js.map +1 -0
- package/dist/data/runtime/runtime-mode.cjs +170 -111
- package/dist/data/runtime/runtime-mode.cjs.map +1 -1
- package/dist/data/runtime/runtime-mode.d.ts +58 -14
- package/dist/data/runtime/runtime-mode.d.ts.map +1 -1
- package/dist/data/runtime/runtime-mode.js +170 -111
- package/dist/data/runtime/runtime-mode.js.map +1 -1
- package/dist/data/selectionActionSplit.cjs +33 -0
- package/dist/data/selectionActionSplit.cjs.map +1 -0
- package/dist/data/selectionActionSplit.d.ts +36 -0
- package/dist/data/selectionActionSplit.d.ts.map +1 -0
- package/dist/data/selectionActionSplit.js +33 -0
- package/dist/data/selectionActionSplit.js.map +1 -0
- package/dist/data/task-copy.cjs +76 -0
- package/dist/data/task-copy.cjs.map +1 -0
- package/dist/data/task-copy.d.ts +12 -0
- package/dist/data/task-copy.d.ts.map +1 -0
- package/dist/data/task-copy.js +76 -0
- package/dist/data/task-copy.js.map +1 -0
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +34 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +4 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +34 -0
- package/dist/data.js.map +1 -1
- package/dist/hooks/use-task-run.cjs +24 -17
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts +3 -1
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +25 -18
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/icons/components/UiCalendarCheck.cjs +15 -0
- package/dist/icons/components/UiCalendarCheck.cjs.map +1 -0
- package/dist/icons/components/UiCalendarCheck.d.ts +15 -0
- package/dist/icons/components/UiCalendarCheck.d.ts.map +1 -0
- package/dist/icons/components/UiCalendarCheck.js +15 -0
- package/dist/icons/components/UiCalendarCheck.js.map +1 -0
- package/dist/icons/components/UiChartLineUp.cjs +15 -0
- package/dist/icons/components/UiChartLineUp.cjs.map +1 -0
- package/dist/icons/components/UiChartLineUp.d.ts +15 -0
- package/dist/icons/components/UiChartLineUp.d.ts.map +1 -0
- package/dist/icons/components/UiChartLineUp.js +15 -0
- package/dist/icons/components/UiChartLineUp.js.map +1 -0
- package/dist/icons/components/UiClockCountdown.cjs +15 -0
- package/dist/icons/components/UiClockCountdown.cjs.map +1 -0
- package/dist/icons/components/UiClockCountdown.d.ts +15 -0
- package/dist/icons/components/UiClockCountdown.d.ts.map +1 -0
- package/dist/icons/components/UiClockCountdown.js +15 -0
- package/dist/icons/components/UiClockCountdown.js.map +1 -0
- package/dist/icons/components/UiFactory.cjs +15 -0
- package/dist/icons/components/UiFactory.cjs.map +1 -0
- package/dist/icons/components/UiFactory.d.ts +15 -0
- package/dist/icons/components/UiFactory.d.ts.map +1 -0
- package/dist/icons/components/UiFactory.js +15 -0
- package/dist/icons/components/UiFactory.js.map +1 -0
- package/dist/icons/components/UiHandCoins.cjs +15 -0
- package/dist/icons/components/UiHandCoins.cjs.map +1 -0
- package/dist/icons/components/UiHandCoins.d.ts +15 -0
- package/dist/icons/components/UiHandCoins.d.ts.map +1 -0
- package/dist/icons/components/UiHandCoins.js +15 -0
- package/dist/icons/components/UiHandCoins.js.map +1 -0
- package/dist/icons/components/UiInvoice.cjs +15 -0
- package/dist/icons/components/UiInvoice.cjs.map +1 -0
- package/dist/icons/components/UiInvoice.d.ts +15 -0
- package/dist/icons/components/UiInvoice.d.ts.map +1 -0
- package/dist/icons/components/UiInvoice.js +15 -0
- package/dist/icons/components/UiInvoice.js.map +1 -0
- package/dist/icons/components/UiTax.cjs +15 -0
- package/dist/icons/components/UiTax.cjs.map +1 -0
- package/dist/icons/components/UiTax.d.ts +15 -0
- package/dist/icons/components/UiTax.d.ts.map +1 -0
- package/dist/icons/components/UiTax.js +15 -0
- package/dist/icons/components/UiTax.js.map +1 -0
- package/dist/icons/index.d.ts +14 -0
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/registry.cjs +14 -0
- package/dist/icons/registry.cjs.map +1 -1
- package/dist/icons/registry.d.ts.map +1 -1
- package/dist/icons/registry.js +14 -0
- package/dist/icons/registry.js.map +1 -1
- package/dist/icons.cjs +21 -0
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +21 -0
- package/dist/icons.js.map +1 -1
- package/dist/index.cjs +43 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +44 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.cjs +17 -3
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +17 -3
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/overlay/DropdownMenu.cjs +46 -35
- package/dist/overlay/DropdownMenu.cjs.map +1 -1
- package/dist/overlay/DropdownMenu.js +46 -35
- package/dist/overlay/DropdownMenu.js.map +1 -1
- package/dist/rpc/FilterForm.cjs +26 -11
- package/dist/rpc/FilterForm.cjs.map +1 -1
- package/dist/rpc/FilterForm.d.ts +4 -1
- package/dist/rpc/FilterForm.d.ts.map +1 -1
- package/dist/rpc/FilterForm.js +26 -11
- package/dist/rpc/FilterForm.js.map +1 -1
- package/dist/rpc/FilterFormFields.cjs +3 -2
- package/dist/rpc/FilterFormFields.cjs.map +1 -1
- package/dist/rpc/FilterFormFields.d.ts +2 -1
- package/dist/rpc/FilterFormFields.d.ts.map +1 -1
- package/dist/rpc/FilterFormFields.js +3 -2
- package/dist/rpc/FilterFormFields.js.map +1 -1
- package/dist/rpc/OperationActionBar.cjs +67 -15
- package/dist/rpc/OperationActionBar.cjs.map +1 -1
- package/dist/rpc/OperationActionBar.d.ts +11 -3
- package/dist/rpc/OperationActionBar.d.ts.map +1 -1
- package/dist/rpc/OperationActionBar.js +68 -16
- package/dist/rpc/OperationActionBar.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +69 -76
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +3 -1
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +69 -76
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationCatalogActions.cjs +69 -0
- package/dist/rpc/OperationCatalogActions.cjs.map +1 -0
- package/dist/rpc/OperationCatalogActions.d.ts +17 -0
- package/dist/rpc/OperationCatalogActions.d.ts.map +1 -0
- package/dist/rpc/OperationCatalogActions.js +69 -0
- package/dist/rpc/OperationCatalogActions.js.map +1 -0
- package/dist/rpc/OperationEntityContextPicker.cjs +129 -116
- package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
- package/dist/rpc/OperationEntityContextPicker.d.ts +18 -1
- package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
- package/dist/rpc/OperationEntityContextPicker.js +130 -117
- package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
- package/dist/rpc/OperationResultView.cjs +7 -4
- package/dist/rpc/OperationResultView.cjs.map +1 -1
- package/dist/rpc/OperationResultView.d.ts +4 -2
- package/dist/rpc/OperationResultView.d.ts.map +1 -1
- package/dist/rpc/OperationResultView.js +7 -4
- package/dist/rpc/OperationResultView.js.map +1 -1
- package/dist/rpc/operationCatalogUrl.cjs +28 -0
- package/dist/rpc/operationCatalogUrl.cjs.map +1 -0
- package/dist/rpc/operationCatalogUrl.d.ts +3 -0
- package/dist/rpc/operationCatalogUrl.d.ts.map +1 -0
- package/dist/rpc/operationCatalogUrl.js +28 -0
- package/dist/rpc/operationCatalogUrl.js.map +1 -0
- package/dist/rpc/rowNavigation.cjs +4 -3
- package/dist/rpc/rowNavigation.cjs.map +1 -1
- package/dist/rpc/rowNavigation.d.ts +1 -1
- package/dist/rpc/rowNavigation.d.ts.map +1 -1
- package/dist/rpc/rowNavigation.js +4 -3
- package/dist/rpc/rowNavigation.js.map +1 -1
- package/dist/rpc/types.cjs.map +1 -1
- package/dist/rpc/types.d.ts +2 -2
- package/dist/rpc/types.d.ts.map +1 -1
- package/dist/rpc/types.js.map +1 -1
- package/dist/rpc.cjs +2 -0
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +2 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -0
- package/dist/rpc.js.map +1 -1
- package/dist/runtime-profile.cjs +7 -0
- package/dist/runtime-profile.cjs.map +1 -0
- package/dist/runtime-profile.d.ts +2 -0
- package/dist/runtime-profile.d.ts.map +1 -0
- package/dist/runtime-profile.js +7 -0
- package/dist/runtime-profile.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useEffect } from "react";
|
|
3
|
+
import { IconButton } from "../../components/IconButton.js";
|
|
4
|
+
import { SegmentedControl } from "../../components/SegmentedControl.js";
|
|
5
|
+
import { ListMenu, ListMenuSection, ListMenuHeader, ListMenuItem } from "../../components/ListMenu.js";
|
|
6
|
+
import { DropdownMenu } from "../../overlay/DropdownMenu.js";
|
|
7
|
+
import { cn } from "../../lib/utils.js";
|
|
8
|
+
import { Icon } from "../Icon.js";
|
|
9
|
+
import { ToolDirectoryHeader } from "./ToolSchemaBrowser.directory-header.js";
|
|
10
|
+
import { ToolSelectionStrategyToolbar } from "./ToolSchemaBrowser.selection-toolbar.js";
|
|
11
|
+
import { TOOL_HINTS, selectedToolState, updateSelectedTools, directoryPermissionRule } from "./ToolSchemaBrowser.model.js";
|
|
12
|
+
import { UiSearch } from "../../icons/components/UiSearch.js";
|
|
13
|
+
import { UiListDashes } from "../../icons/components/UiListDashes.js";
|
|
14
|
+
import { UiLayers } from "../../icons/components/UiLayers.js";
|
|
15
|
+
import { UiFilter } from "../../icons/components/UiFilter.js";
|
|
16
|
+
import { UiEye } from "../../icons/components/UiEye.js";
|
|
17
|
+
import { UiWarningTriangle } from "../../icons/components/UiWarningTriangle.js";
|
|
18
|
+
import { UiRepeat } from "../../icons/components/UiRepeat.js";
|
|
19
|
+
import { UiGlobe } from "../../icons/components/UiGlobe.js";
|
|
20
|
+
import { UiWrench } from "../../icons/components/UiWrench.js";
|
|
21
|
+
function ToolSchemaBrowserSidebar({
|
|
22
|
+
query,
|
|
23
|
+
view,
|
|
24
|
+
filters,
|
|
25
|
+
sections,
|
|
26
|
+
active,
|
|
27
|
+
filteredCount,
|
|
28
|
+
isOpen,
|
|
29
|
+
selection,
|
|
30
|
+
value,
|
|
31
|
+
onRule,
|
|
32
|
+
onQueryChange,
|
|
33
|
+
onViewChange,
|
|
34
|
+
onFilterChange,
|
|
35
|
+
onClearFilters,
|
|
36
|
+
onToggle,
|
|
37
|
+
onSelect
|
|
38
|
+
}) {
|
|
39
|
+
const selected = (selection == null ? void 0 : selection.selected) ?? /* @__PURE__ */ new Set();
|
|
40
|
+
const activeFilterCount = Object.values(filters).filter(
|
|
41
|
+
(filter) => filter !== "any"
|
|
42
|
+
).length;
|
|
43
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
44
|
+
/* @__PURE__ */ jsxs("label", { className: "flex h-9 shrink-0 items-center gap-2 border-b border-border px-2 text-xs", children: [
|
|
45
|
+
/* @__PURE__ */ jsx(Icon, { icon: UiSearch, className: "size-3.5 text-muted-foreground" }),
|
|
46
|
+
/* @__PURE__ */ jsx(
|
|
47
|
+
"input",
|
|
48
|
+
{
|
|
49
|
+
value: query,
|
|
50
|
+
onChange: (event) => onQueryChange(event.target.value),
|
|
51
|
+
placeholder: "Search tools",
|
|
52
|
+
className: "min-w-0 flex-1 bg-transparent outline-none"
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
] }),
|
|
56
|
+
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1 border-b border-border px-2 py-1", children: [
|
|
57
|
+
/* @__PURE__ */ jsx(
|
|
58
|
+
ViewToggleButton,
|
|
59
|
+
{
|
|
60
|
+
active: view === "group",
|
|
61
|
+
icon: UiListDashes,
|
|
62
|
+
label: "Group",
|
|
63
|
+
onClick: () => onViewChange("group")
|
|
64
|
+
}
|
|
65
|
+
),
|
|
66
|
+
/* @__PURE__ */ jsx(
|
|
67
|
+
ViewToggleButton,
|
|
68
|
+
{
|
|
69
|
+
active: view === "tree",
|
|
70
|
+
icon: UiLayers,
|
|
71
|
+
label: "Tree",
|
|
72
|
+
onClick: () => onViewChange("tree")
|
|
73
|
+
}
|
|
74
|
+
),
|
|
75
|
+
/* @__PURE__ */ jsx(
|
|
76
|
+
DropdownMenu,
|
|
77
|
+
{
|
|
78
|
+
align: "right",
|
|
79
|
+
menuLabel: "Tool annotation filters",
|
|
80
|
+
menuClassName: "w-72 p-2",
|
|
81
|
+
className: "ml-auto",
|
|
82
|
+
trigger: /* @__PURE__ */ jsxs("span", { className: "relative inline-flex", children: [
|
|
83
|
+
/* @__PURE__ */ jsx(
|
|
84
|
+
IconButton,
|
|
85
|
+
{
|
|
86
|
+
icon: UiFilter,
|
|
87
|
+
label: activeFilterCount > 0 ? `Filter tool annotations, ${activeFilterCount} active` : "Filter tool annotations",
|
|
88
|
+
className: cn(
|
|
89
|
+
activeFilterCount > 0 && "bg-primary/10 text-primary"
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsx("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", children: activeFilterCount })
|
|
94
|
+
] }),
|
|
95
|
+
children: () => /* @__PURE__ */ jsxs("div", { className: "space-y-density-2", children: [
|
|
96
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-density-2", children: [
|
|
97
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs font-semibold", children: "Tool annotations" }),
|
|
98
|
+
/* @__PURE__ */ jsx(
|
|
99
|
+
"button",
|
|
100
|
+
{
|
|
101
|
+
type: "button",
|
|
102
|
+
disabled: activeFilterCount === 0,
|
|
103
|
+
onClick: onClearFilters,
|
|
104
|
+
className: "text-[10px] font-medium text-primary disabled:text-muted-foreground",
|
|
105
|
+
children: "Clear all"
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
] }),
|
|
109
|
+
TOOL_HINTS.map(({ key, label }) => /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
110
|
+
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 text-[10px] font-medium text-muted-foreground", children: [
|
|
111
|
+
/* @__PURE__ */ jsx(
|
|
112
|
+
Icon,
|
|
113
|
+
{
|
|
114
|
+
icon: hintFilterIcon(key),
|
|
115
|
+
className: cn("size-3", hintIconClass(key))
|
|
116
|
+
}
|
|
117
|
+
),
|
|
118
|
+
label
|
|
119
|
+
] }),
|
|
120
|
+
/* @__PURE__ */ jsx(
|
|
121
|
+
SegmentedControl,
|
|
122
|
+
{
|
|
123
|
+
"aria-label": label,
|
|
124
|
+
value: filters[key],
|
|
125
|
+
onChange: (next) => onFilterChange(key, next),
|
|
126
|
+
size: "sm",
|
|
127
|
+
className: "w-full",
|
|
128
|
+
options: [
|
|
129
|
+
{ id: "any", label: "Any" },
|
|
130
|
+
{ id: "yes", label: "Yes" },
|
|
131
|
+
{ id: "no", label: "No" }
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
)
|
|
135
|
+
] }, key))
|
|
136
|
+
] })
|
|
137
|
+
}
|
|
138
|
+
)
|
|
139
|
+
] }),
|
|
140
|
+
selection && onRule && selection.count > 0 && /* @__PURE__ */ jsx(
|
|
141
|
+
ToolSelectionStrategyToolbar,
|
|
142
|
+
{
|
|
143
|
+
selection,
|
|
144
|
+
onRule
|
|
145
|
+
}
|
|
146
|
+
),
|
|
147
|
+
/* @__PURE__ */ jsxs(
|
|
148
|
+
ListMenu,
|
|
149
|
+
{
|
|
150
|
+
className: "min-h-0 flex-1 overflow-y-auto divide-y-0",
|
|
151
|
+
...selection ? { selection } : {},
|
|
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
|
+
]
|
|
253
|
+
}
|
|
254
|
+
)
|
|
255
|
+
] });
|
|
256
|
+
}
|
|
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
|
+
function ViewToggleButton({
|
|
352
|
+
active,
|
|
353
|
+
icon,
|
|
354
|
+
label,
|
|
355
|
+
onClick
|
|
356
|
+
}) {
|
|
357
|
+
return /* @__PURE__ */ jsxs(
|
|
358
|
+
"button",
|
|
359
|
+
{
|
|
360
|
+
type: "button",
|
|
361
|
+
onClick,
|
|
362
|
+
"aria-pressed": active,
|
|
363
|
+
className: cn(
|
|
364
|
+
"flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium",
|
|
365
|
+
active ? "bg-accent text-foreground" : "text-muted-foreground hover:bg-accent/50"
|
|
366
|
+
),
|
|
367
|
+
children: [
|
|
368
|
+
/* @__PURE__ */ jsx(Icon, { icon, className: "size-3.5" }),
|
|
369
|
+
label
|
|
370
|
+
]
|
|
371
|
+
}
|
|
372
|
+
);
|
|
373
|
+
}
|
|
374
|
+
function hintFilterIcon(key) {
|
|
375
|
+
if (key === "readOnlyHint") return UiEye;
|
|
376
|
+
if (key === "destructiveHint") return UiWarningTriangle;
|
|
377
|
+
if (key === "idempotentHint") return UiRepeat;
|
|
378
|
+
return UiGlobe;
|
|
379
|
+
}
|
|
380
|
+
function hintIconClass(key) {
|
|
381
|
+
if (key === "readOnlyHint") return "text-emerald-600";
|
|
382
|
+
if (key === "destructiveHint") return "text-red-600";
|
|
383
|
+
if (key === "idempotentHint") return "text-sky-600";
|
|
384
|
+
return "text-violet-600";
|
|
385
|
+
}
|
|
386
|
+
export {
|
|
387
|
+
ToolSchemaBrowserSidebar
|
|
388
|
+
};
|
|
389
|
+
//# sourceMappingURL=ToolSchemaBrowser.sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolSchemaBrowser.sidebar.js","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":[],"mappings":"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"}
|
|
@@ -47,12 +47,20 @@ function effortIcon(value) {
|
|
|
47
47
|
return void 0;
|
|
48
48
|
}
|
|
49
49
|
const PERMISSION_MODE_ICONS = {
|
|
50
|
-
default: { icon: UiHandPalm.UiHandPalm, tone: "slate", label: "
|
|
51
|
-
plan: { icon: UiPauseCircle.UiPauseCircle, tone: "
|
|
52
|
-
acceptEdits: {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
default: { icon: UiHandPalm.UiHandPalm, tone: "slate", label: "Manual" },
|
|
51
|
+
plan: { icon: UiPauseCircle.UiPauseCircle, tone: "teal", label: "Plan" },
|
|
52
|
+
acceptEdits: {
|
|
53
|
+
icon: UiFastForwardCircle.UiFastForwardCircle,
|
|
54
|
+
tone: "violet",
|
|
55
|
+
label: "Accept edits"
|
|
56
|
+
},
|
|
57
|
+
auto: { icon: UiFastForwardCircle.UiFastForwardCircle, tone: "violet", label: "Auto" },
|
|
58
|
+
dontAsk: { icon: UiShieldSlash.UiShieldSlash, tone: "rose", label: "Don't ask" },
|
|
59
|
+
bypassPermissions: {
|
|
60
|
+
icon: UiShieldSlash.UiShieldSlash,
|
|
61
|
+
tone: "rose",
|
|
62
|
+
label: "Bypass permissions"
|
|
63
|
+
}
|
|
56
64
|
};
|
|
57
65
|
const APPROVAL_ICONS = {
|
|
58
66
|
question: { icon: UiQuestion.UiQuestion, tone: "sky", label: "Question" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-action-icons.cjs","sources":["../../../src/data/ai/agent-action-icons.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport {\n EFFORT_LEVEL_ICONS,\n effortLevelLabel,\n type EffortLevel,\n} from \"../chat/effort-icons\";\nimport type { SessionTone } from \"./SessionViewer.model\";\nimport type { SpecPermissionMode } from \"./SpecRuntimeEditor.model\";\nimport {\n UiArrowFatUp,\n UiBraces,\n UiBox,\n UiChatDots,\n UiCircleX,\n UiFastForwardCircle,\n UiHandPalm,\n UiPass,\n UiPauseCircle,\n UiPlayCircle,\n UiQuestion,\n UiSealCheck,\n UiShieldSlash,\n UiStrategy,\n UiTerminal,\n} from \"../../icons\";\n\n// Implements the semantic groups of the Flanksource \"Agent Action Icons\" design\n// beyond the per-tool ACTIONS map (which lives in SessionViewer.model.ts). Each\n// entry pairs a generated Ui* glyph with a SessionTone so the disc/text color\n// (SESSION_TONES in session-tones.ts) encodes the action's category. Blue\n// reasons, green executes, teal confirms; the effort ramp climbs slate → sky →\n// amber → orange → rose → fuchsia; approval clears green / blocks red.\n\nexport interface AgentActionMeta {\n icon: StaticIconComponent;\n tone: SessionTone;\n label: string;\n}\n\n// ── Agent workflow: plan → run → verify ─────────────────────────────────────\nexport type WorkflowPhase = \"plan\" | \"run\" | \"verify\";\n\nexport const WORKFLOW_PHASES: Record<WorkflowPhase, AgentActionMeta> = {\n plan: { icon: UiStrategy, tone: \"sky\", label: \"Plan\" },\n run: { icon: UiPlayCircle, tone: \"emerald\", label: \"Run\" },\n verify: { icon: UiSealCheck, tone: \"teal\", label: \"Verify\" },\n};\n\n// ── Effort levels: reasoning / token budget on the severity hue ramp ─────────\n// The battery glyphs are the chat layer's source of truth (EFFORT_LEVEL_ICONS);\n// here we add the semantic tone + label so an effort chip reads at a glance.\nexport type { EffortLevel } from \"../chat/effort-icons\";\n\nconst EFFORT_TONES: Record<EffortLevel, SessionTone> = {\n minimal: \"slate\",\n low: \"sky\",\n medium: \"amber\",\n high: \"orange\",\n xhigh: \"orange\",\n max: \"rose\",\n ultra: \"fuchsia\",\n adaptive: \"indigo\",\n};\n\nexport const EFFORT_ICONS: Record<EffortLevel, AgentActionMeta>
|
|
1
|
+
{"version":3,"file":"agent-action-icons.cjs","sources":["../../../src/data/ai/agent-action-icons.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport {\n EFFORT_LEVEL_ICONS,\n effortLevelLabel,\n type EffortLevel,\n} from \"../chat/effort-icons\";\nimport type { SessionTone } from \"./SessionViewer.model\";\nimport type { SpecPermissionMode } from \"./SpecRuntimeEditor.model\";\nimport {\n UiArrowFatUp,\n UiBraces,\n UiBox,\n UiChatDots,\n UiCircleX,\n UiFastForwardCircle,\n UiHandPalm,\n UiPass,\n UiPauseCircle,\n UiPlayCircle,\n UiQuestion,\n UiSealCheck,\n UiShieldSlash,\n UiStrategy,\n UiTerminal,\n} from \"../../icons\";\n\n// Implements the semantic groups of the Flanksource \"Agent Action Icons\" design\n// beyond the per-tool ACTIONS map (which lives in SessionViewer.model.ts). Each\n// entry pairs a generated Ui* glyph with a SessionTone so the disc/text color\n// (SESSION_TONES in session-tones.ts) encodes the action's category. Blue\n// reasons, green executes, teal confirms; the effort ramp climbs slate → sky →\n// amber → orange → rose → fuchsia; approval clears green / blocks red.\n\nexport interface AgentActionMeta {\n icon: StaticIconComponent;\n tone: SessionTone;\n label: string;\n}\n\n// ── Agent workflow: plan → run → verify ─────────────────────────────────────\nexport type WorkflowPhase = \"plan\" | \"run\" | \"verify\";\n\nexport const WORKFLOW_PHASES: Record<WorkflowPhase, AgentActionMeta> = {\n plan: { icon: UiStrategy, tone: \"sky\", label: \"Plan\" },\n run: { icon: UiPlayCircle, tone: \"emerald\", label: \"Run\" },\n verify: { icon: UiSealCheck, tone: \"teal\", label: \"Verify\" },\n};\n\n// ── Effort levels: reasoning / token budget on the severity hue ramp ─────────\n// The battery glyphs are the chat layer's source of truth (EFFORT_LEVEL_ICONS);\n// here we add the semantic tone + label so an effort chip reads at a glance.\nexport type { EffortLevel } from \"../chat/effort-icons\";\n\nconst EFFORT_TONES: Record<EffortLevel, SessionTone> = {\n minimal: \"slate\",\n low: \"sky\",\n medium: \"amber\",\n high: \"orange\",\n xhigh: \"orange\",\n max: \"rose\",\n ultra: \"fuchsia\",\n adaptive: \"indigo\",\n};\n\nexport const EFFORT_ICONS: Record<EffortLevel, AgentActionMeta> =\n Object.fromEntries(\n (Object.keys(EFFORT_LEVEL_ICONS) as EffortLevel[]).map((level) => [\n level,\n {\n icon: EFFORT_LEVEL_ICONS[level],\n tone: EFFORT_TONES[level],\n label: effortLevelLabel(level),\n },\n ]),\n ) as Record<EffortLevel, AgentActionMeta>;\n\n/** Resolve the effort glyph for a known value. */\nexport function effortIcon(value: string): AgentActionMeta | undefined {\n const key = value.trim().toLowerCase();\n if (key in EFFORT_ICONS) return EFFORT_ICONS[key as EffortLevel];\n return undefined;\n}\n\n// ── Permission modes: Claude Code's native mode vocabulary ───────────────────\nexport const PERMISSION_MODE_ICONS: Record<\n SpecPermissionMode,\n AgentActionMeta\n> = {\n default: { icon: UiHandPalm, tone: \"slate\", label: \"Manual\" },\n plan: { icon: UiPauseCircle, tone: \"teal\", label: \"Plan\" },\n acceptEdits: {\n icon: UiFastForwardCircle,\n tone: \"violet\",\n label: \"Accept edits\",\n },\n auto: { icon: UiFastForwardCircle, tone: \"violet\", label: \"Auto\" },\n dontAsk: { icon: UiShieldSlash, tone: \"rose\", label: \"Don't ask\" },\n bypassPermissions: {\n icon: UiShieldSlash,\n tone: \"rose\",\n label: \"Bypass permissions\",\n },\n};\n\n// ── Approval states: where a proposed action sits in the HITL flow ───────────\nexport type ApprovalState =\n | \"question\"\n | \"pending\"\n | \"approved\"\n | \"denied\"\n | \"escalate\";\n\nexport const APPROVAL_ICONS: Record<ApprovalState, AgentActionMeta> = {\n question: { icon: UiQuestion, tone: \"sky\", label: \"Question\" },\n pending: { icon: UiChatDots, tone: \"amber\", label: \"Awaiting input\" },\n approved: { icon: UiPass, tone: \"emerald\", label: \"Approved\" },\n denied: { icon: UiCircleX, tone: \"rose\", label: \"Denied\" },\n escalate: { icon: UiArrowFatUp, tone: \"orange\", label: \"Escalate\" },\n};\n\n// ── Agent runtimes: where an agent executes ──────────────────────────────────\nexport type AgentRuntime = \"sdk\" | \"terminal\" | \"api\";\n\nexport const AGENT_RUNTIME_ICONS: Record<AgentRuntime, AgentActionMeta> = {\n sdk: { icon: UiBox, tone: \"indigo\", label: \"SDK agent\" },\n terminal: { icon: UiTerminal, tone: \"slate\", label: \"Terminal agent\" },\n api: { icon: UiBraces, tone: \"sky\", label: \"API agent\" },\n};\n"],"names":["UiStrategy","UiPlayCircle","UiSealCheck","EFFORT_LEVEL_ICONS","effortLevelLabel","UiHandPalm","UiPauseCircle","UiFastForwardCircle","UiShieldSlash","UiQuestion","UiChatDots","UiPass","UiCircleX","UiArrowFatUp","UiBox","UiTerminal","UiBraces"],"mappings":";;;;;;;;;;;;;;;;;;AA0CO,MAAM,kBAA0D;AAAA,EACrE,MAAM,EAAE,MAAMA,WAAAA,YAAY,MAAM,OAAO,OAAO,OAAA;AAAA,EAC9C,KAAK,EAAE,MAAMC,aAAAA,cAAc,MAAM,WAAW,OAAO,MAAA;AAAA,EACnD,QAAQ,EAAE,MAAMC,YAAAA,aAAa,MAAM,QAAQ,OAAO,SAAA;AACpD;AAOA,MAAM,eAAiD;AAAA,EACrD,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU;AACZ;AAEO,MAAM,eACX,OAAO;AAAA,EACJ,OAAO,KAAKC,YAAAA,kBAAkB,EAAoB,IAAI,CAAC,UAAU;AAAA,IAChE;AAAA,IACA;AAAA,MACE,MAAMA,YAAAA,mBAAmB,KAAK;AAAA,MAC9B,MAAM,aAAa,KAAK;AAAA,MACxB,OAAOC,YAAAA,iBAAiB,KAAK;AAAA,IAAA;AAAA,EAC/B,CACD;AACH;AAGK,SAAS,WAAW,OAA4C;AACrE,QAAM,MAAM,MAAM,KAAA,EAAO,YAAA;AACzB,MAAI,OAAO,aAAc,QAAO,aAAa,GAAkB;AAC/D,SAAO;AACT;AAGO,MAAM,wBAGT;AAAA,EACF,SAAS,EAAE,MAAMC,WAAAA,YAAY,MAAM,SAAS,OAAO,SAAA;AAAA,EACnD,MAAM,EAAE,MAAMC,cAAAA,eAAe,MAAM,QAAQ,OAAO,OAAA;AAAA,EAClD,aAAa;AAAA,IACX,MAAMC,oBAAAA;AAAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,MAAM,EAAE,MAAMA,oBAAAA,qBAAqB,MAAM,UAAU,OAAO,OAAA;AAAA,EAC1D,SAAS,EAAE,MAAMC,cAAAA,eAAe,MAAM,QAAQ,OAAO,YAAA;AAAA,EACrD,mBAAmB;AAAA,IACjB,MAAMA,cAAAA;AAAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAEX;AAUO,MAAM,iBAAyD;AAAA,EACpE,UAAU,EAAE,MAAMC,WAAAA,YAAY,MAAM,OAAO,OAAO,WAAA;AAAA,EAClD,SAAS,EAAE,MAAMC,WAAAA,YAAY,MAAM,SAAS,OAAO,iBAAA;AAAA,EACnD,UAAU,EAAE,MAAMC,OAAAA,QAAQ,MAAM,WAAW,OAAO,WAAA;AAAA,EAClD,QAAQ,EAAE,MAAMC,UAAAA,WAAW,MAAM,QAAQ,OAAO,SAAA;AAAA,EAChD,UAAU,EAAE,MAAMC,aAAAA,cAAc,MAAM,UAAU,OAAO,WAAA;AACzD;AAKO,MAAM,sBAA6D;AAAA,EACxE,KAAK,EAAE,MAAMC,MAAAA,OAAO,MAAM,UAAU,OAAO,YAAA;AAAA,EAC3C,UAAU,EAAE,MAAMC,WAAAA,YAAY,MAAM,SAAS,OAAO,iBAAA;AAAA,EACpD,KAAK,EAAE,MAAMC,SAAAA,UAAU,MAAM,OAAO,OAAO,YAAA;AAC7C;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-action-icons.d.ts","sourceRoot":"","sources":["../../../src/data/ai/agent-action-icons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA0BpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEtD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,eAAe,CAIlE,CAAC;AAKF,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAaxD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"agent-action-icons.d.ts","sourceRoot":"","sources":["../../../src/data/ai/agent-action-icons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA0BpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEtD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,eAAe,CAIlE,CAAC;AAKF,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAaxD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,CAUnB,CAAC;AAE5C,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAIrE;AAGD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,kBAAkB,EAClB,eAAe,CAgBhB,CAAC;AAGF,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,SAAS,GACT,UAAU,GACV,QAAQ,GACR,UAAU,CAAC;AAEf,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,eAAe,CAMjE,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CAIrE,CAAC"}
|
|
@@ -45,12 +45,20 @@ function effortIcon(value) {
|
|
|
45
45
|
return void 0;
|
|
46
46
|
}
|
|
47
47
|
const PERMISSION_MODE_ICONS = {
|
|
48
|
-
default: { icon: UiHandPalm, tone: "slate", label: "
|
|
49
|
-
plan: { icon: UiPauseCircle, tone: "
|
|
50
|
-
acceptEdits: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
default: { icon: UiHandPalm, tone: "slate", label: "Manual" },
|
|
49
|
+
plan: { icon: UiPauseCircle, tone: "teal", label: "Plan" },
|
|
50
|
+
acceptEdits: {
|
|
51
|
+
icon: UiFastForwardCircle,
|
|
52
|
+
tone: "violet",
|
|
53
|
+
label: "Accept edits"
|
|
54
|
+
},
|
|
55
|
+
auto: { icon: UiFastForwardCircle, tone: "violet", label: "Auto" },
|
|
56
|
+
dontAsk: { icon: UiShieldSlash, tone: "rose", label: "Don't ask" },
|
|
57
|
+
bypassPermissions: {
|
|
58
|
+
icon: UiShieldSlash,
|
|
59
|
+
tone: "rose",
|
|
60
|
+
label: "Bypass permissions"
|
|
61
|
+
}
|
|
54
62
|
};
|
|
55
63
|
const APPROVAL_ICONS = {
|
|
56
64
|
question: { icon: UiQuestion, tone: "sky", label: "Question" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-action-icons.js","sources":["../../../src/data/ai/agent-action-icons.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport {\n EFFORT_LEVEL_ICONS,\n effortLevelLabel,\n type EffortLevel,\n} from \"../chat/effort-icons\";\nimport type { SessionTone } from \"./SessionViewer.model\";\nimport type { SpecPermissionMode } from \"./SpecRuntimeEditor.model\";\nimport {\n UiArrowFatUp,\n UiBraces,\n UiBox,\n UiChatDots,\n UiCircleX,\n UiFastForwardCircle,\n UiHandPalm,\n UiPass,\n UiPauseCircle,\n UiPlayCircle,\n UiQuestion,\n UiSealCheck,\n UiShieldSlash,\n UiStrategy,\n UiTerminal,\n} from \"../../icons\";\n\n// Implements the semantic groups of the Flanksource \"Agent Action Icons\" design\n// beyond the per-tool ACTIONS map (which lives in SessionViewer.model.ts). Each\n// entry pairs a generated Ui* glyph with a SessionTone so the disc/text color\n// (SESSION_TONES in session-tones.ts) encodes the action's category. Blue\n// reasons, green executes, teal confirms; the effort ramp climbs slate → sky →\n// amber → orange → rose → fuchsia; approval clears green / blocks red.\n\nexport interface AgentActionMeta {\n icon: StaticIconComponent;\n tone: SessionTone;\n label: string;\n}\n\n// ── Agent workflow: plan → run → verify ─────────────────────────────────────\nexport type WorkflowPhase = \"plan\" | \"run\" | \"verify\";\n\nexport const WORKFLOW_PHASES: Record<WorkflowPhase, AgentActionMeta> = {\n plan: { icon: UiStrategy, tone: \"sky\", label: \"Plan\" },\n run: { icon: UiPlayCircle, tone: \"emerald\", label: \"Run\" },\n verify: { icon: UiSealCheck, tone: \"teal\", label: \"Verify\" },\n};\n\n// ── Effort levels: reasoning / token budget on the severity hue ramp ─────────\n// The battery glyphs are the chat layer's source of truth (EFFORT_LEVEL_ICONS);\n// here we add the semantic tone + label so an effort chip reads at a glance.\nexport type { EffortLevel } from \"../chat/effort-icons\";\n\nconst EFFORT_TONES: Record<EffortLevel, SessionTone> = {\n minimal: \"slate\",\n low: \"sky\",\n medium: \"amber\",\n high: \"orange\",\n xhigh: \"orange\",\n max: \"rose\",\n ultra: \"fuchsia\",\n adaptive: \"indigo\",\n};\n\nexport const EFFORT_ICONS: Record<EffortLevel, AgentActionMeta>
|
|
1
|
+
{"version":3,"file":"agent-action-icons.js","sources":["../../../src/data/ai/agent-action-icons.ts"],"sourcesContent":["import type { StaticIconComponent } from \"../Icon\";\nimport {\n EFFORT_LEVEL_ICONS,\n effortLevelLabel,\n type EffortLevel,\n} from \"../chat/effort-icons\";\nimport type { SessionTone } from \"./SessionViewer.model\";\nimport type { SpecPermissionMode } from \"./SpecRuntimeEditor.model\";\nimport {\n UiArrowFatUp,\n UiBraces,\n UiBox,\n UiChatDots,\n UiCircleX,\n UiFastForwardCircle,\n UiHandPalm,\n UiPass,\n UiPauseCircle,\n UiPlayCircle,\n UiQuestion,\n UiSealCheck,\n UiShieldSlash,\n UiStrategy,\n UiTerminal,\n} from \"../../icons\";\n\n// Implements the semantic groups of the Flanksource \"Agent Action Icons\" design\n// beyond the per-tool ACTIONS map (which lives in SessionViewer.model.ts). Each\n// entry pairs a generated Ui* glyph with a SessionTone so the disc/text color\n// (SESSION_TONES in session-tones.ts) encodes the action's category. Blue\n// reasons, green executes, teal confirms; the effort ramp climbs slate → sky →\n// amber → orange → rose → fuchsia; approval clears green / blocks red.\n\nexport interface AgentActionMeta {\n icon: StaticIconComponent;\n tone: SessionTone;\n label: string;\n}\n\n// ── Agent workflow: plan → run → verify ─────────────────────────────────────\nexport type WorkflowPhase = \"plan\" | \"run\" | \"verify\";\n\nexport const WORKFLOW_PHASES: Record<WorkflowPhase, AgentActionMeta> = {\n plan: { icon: UiStrategy, tone: \"sky\", label: \"Plan\" },\n run: { icon: UiPlayCircle, tone: \"emerald\", label: \"Run\" },\n verify: { icon: UiSealCheck, tone: \"teal\", label: \"Verify\" },\n};\n\n// ── Effort levels: reasoning / token budget on the severity hue ramp ─────────\n// The battery glyphs are the chat layer's source of truth (EFFORT_LEVEL_ICONS);\n// here we add the semantic tone + label so an effort chip reads at a glance.\nexport type { EffortLevel } from \"../chat/effort-icons\";\n\nconst EFFORT_TONES: Record<EffortLevel, SessionTone> = {\n minimal: \"slate\",\n low: \"sky\",\n medium: \"amber\",\n high: \"orange\",\n xhigh: \"orange\",\n max: \"rose\",\n ultra: \"fuchsia\",\n adaptive: \"indigo\",\n};\n\nexport const EFFORT_ICONS: Record<EffortLevel, AgentActionMeta> =\n Object.fromEntries(\n (Object.keys(EFFORT_LEVEL_ICONS) as EffortLevel[]).map((level) => [\n level,\n {\n icon: EFFORT_LEVEL_ICONS[level],\n tone: EFFORT_TONES[level],\n label: effortLevelLabel(level),\n },\n ]),\n ) as Record<EffortLevel, AgentActionMeta>;\n\n/** Resolve the effort glyph for a known value. */\nexport function effortIcon(value: string): AgentActionMeta | undefined {\n const key = value.trim().toLowerCase();\n if (key in EFFORT_ICONS) return EFFORT_ICONS[key as EffortLevel];\n return undefined;\n}\n\n// ── Permission modes: Claude Code's native mode vocabulary ───────────────────\nexport const PERMISSION_MODE_ICONS: Record<\n SpecPermissionMode,\n AgentActionMeta\n> = {\n default: { icon: UiHandPalm, tone: \"slate\", label: \"Manual\" },\n plan: { icon: UiPauseCircle, tone: \"teal\", label: \"Plan\" },\n acceptEdits: {\n icon: UiFastForwardCircle,\n tone: \"violet\",\n label: \"Accept edits\",\n },\n auto: { icon: UiFastForwardCircle, tone: \"violet\", label: \"Auto\" },\n dontAsk: { icon: UiShieldSlash, tone: \"rose\", label: \"Don't ask\" },\n bypassPermissions: {\n icon: UiShieldSlash,\n tone: \"rose\",\n label: \"Bypass permissions\",\n },\n};\n\n// ── Approval states: where a proposed action sits in the HITL flow ───────────\nexport type ApprovalState =\n | \"question\"\n | \"pending\"\n | \"approved\"\n | \"denied\"\n | \"escalate\";\n\nexport const APPROVAL_ICONS: Record<ApprovalState, AgentActionMeta> = {\n question: { icon: UiQuestion, tone: \"sky\", label: \"Question\" },\n pending: { icon: UiChatDots, tone: \"amber\", label: \"Awaiting input\" },\n approved: { icon: UiPass, tone: \"emerald\", label: \"Approved\" },\n denied: { icon: UiCircleX, tone: \"rose\", label: \"Denied\" },\n escalate: { icon: UiArrowFatUp, tone: \"orange\", label: \"Escalate\" },\n};\n\n// ── Agent runtimes: where an agent executes ──────────────────────────────────\nexport type AgentRuntime = \"sdk\" | \"terminal\" | \"api\";\n\nexport const AGENT_RUNTIME_ICONS: Record<AgentRuntime, AgentActionMeta> = {\n sdk: { icon: UiBox, tone: \"indigo\", label: \"SDK agent\" },\n terminal: { icon: UiTerminal, tone: \"slate\", label: \"Terminal agent\" },\n api: { icon: UiBraces, tone: \"sky\", label: \"API agent\" },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA0CO,MAAM,kBAA0D;AAAA,EACrE,MAAM,EAAE,MAAM,YAAY,MAAM,OAAO,OAAO,OAAA;AAAA,EAC9C,KAAK,EAAE,MAAM,cAAc,MAAM,WAAW,OAAO,MAAA;AAAA,EACnD,QAAQ,EAAE,MAAM,aAAa,MAAM,QAAQ,OAAO,SAAA;AACpD;AAOA,MAAM,eAAiD;AAAA,EACrD,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU;AACZ;AAEO,MAAM,eACX,OAAO;AAAA,EACJ,OAAO,KAAK,kBAAkB,EAAoB,IAAI,CAAC,UAAU;AAAA,IAChE;AAAA,IACA;AAAA,MACE,MAAM,mBAAmB,KAAK;AAAA,MAC9B,MAAM,aAAa,KAAK;AAAA,MACxB,OAAO,iBAAiB,KAAK;AAAA,IAAA;AAAA,EAC/B,CACD;AACH;AAGK,SAAS,WAAW,OAA4C;AACrE,QAAM,MAAM,MAAM,KAAA,EAAO,YAAA;AACzB,MAAI,OAAO,aAAc,QAAO,aAAa,GAAkB;AAC/D,SAAO;AACT;AAGO,MAAM,wBAGT;AAAA,EACF,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,OAAO,SAAA;AAAA,EACnD,MAAM,EAAE,MAAM,eAAe,MAAM,QAAQ,OAAO,OAAA;AAAA,EAClD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,MAAM,EAAE,MAAM,qBAAqB,MAAM,UAAU,OAAO,OAAA;AAAA,EAC1D,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,OAAO,YAAA;AAAA,EACrD,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAEX;AAUO,MAAM,iBAAyD;AAAA,EACpE,UAAU,EAAE,MAAM,YAAY,MAAM,OAAO,OAAO,WAAA;AAAA,EAClD,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,OAAO,iBAAA;AAAA,EACnD,UAAU,EAAE,MAAM,QAAQ,MAAM,WAAW,OAAO,WAAA;AAAA,EAClD,QAAQ,EAAE,MAAM,WAAW,MAAM,QAAQ,OAAO,SAAA;AAAA,EAChD,UAAU,EAAE,MAAM,cAAc,MAAM,UAAU,OAAO,WAAA;AACzD;AAKO,MAAM,sBAA6D;AAAA,EACxE,KAAK,EAAE,MAAM,OAAO,MAAM,UAAU,OAAO,YAAA;AAAA,EAC3C,UAAU,EAAE,MAAM,YAAY,MAAM,SAAS,OAAO,iBAAA;AAAA,EACpD,KAAK,EAAE,MAAM,UAAU,MAAM,OAAO,OAAO,YAAA;AAC7C;"}
|