@kortix/ui 0.14.11 → 0.14.13
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 +1 -1
- package/dist/_vendor/kortix-shared.js +521 -7045
- package/dist/_vendor/shared/app-config.d.ts +8 -0
- package/dist/_vendor/shared/artifact-annotations.d.ts +708 -0
- package/dist/_vendor/shared/artifact-comments.d.ts +327 -0
- package/dist/_vendor/shared/index.d.ts +3 -1
- package/dist/_vendor/shared/my-kortix-agent.d.ts +40 -0
- package/dist/_vendor/shared/peer-message-prompt.d.ts +35 -0
- package/dist/_vendor/shared/pixel-mark.d.ts +11 -0
- package/dist/_vendor/shared/prompt-attachments.d.ts +1 -0
- package/dist/_vendor/shared/reminder-prompt.d.ts +8 -2
- package/dist/_vendor/shared/runtime-versions.d.ts +8 -0
- package/dist/artifacts/artifact-frame.d.ts +1 -0
- package/dist/artifacts/artifact-frame.js +18 -5
- package/dist/artifacts/frame-policy.d.ts +1 -1
- package/dist/artifacts/frame-policy.js +10 -5
- package/dist/browser/browser-panel.d.ts +2 -1
- package/dist/browser/browser-panel.js +12 -2
- package/dist/customize/agents/agent-access-text.d.ts +16 -0
- package/dist/customize/agents/agent-access-text.js +54 -0
- package/dist/customize/agents/agent-approval-rules.d.ts +8 -0
- package/dist/customize/agents/agent-approval-rules.js +26 -0
- package/dist/customize/agents/agent-authority-card.js +4 -1
- package/dist/customize/agents/agent-cover-card.d.ts +4 -1
- package/dist/customize/agents/agent-cover-card.js +2 -2
- package/dist/customize/agents/agent-detail-aside.d.ts +1 -2
- package/dist/customize/agents/agent-detail-aside.js +8 -11
- package/dist/customize/agents/agent-drives-section.d.ts +23 -7
- package/dist/customize/agents/agent-drives-section.js +107 -41
- package/dist/customize/agents/agent-instructions.d.ts +11 -0
- package/dist/customize/agents/agent-instructions.js +114 -0
- package/dist/customize/agents/agent-model-view.d.ts +17 -0
- package/dist/customize/agents/agent-model-view.js +67 -0
- package/dist/customize/agents/agent-overview.d.ts +53 -0
- package/dist/customize/agents/agent-overview.js +242 -0
- package/dist/customize/agents/agent-page-chrome.d.ts +128 -0
- package/dist/customize/agents/agent-page-chrome.js +145 -0
- package/dist/customize/agents/agent-page.d.ts +13 -1
- package/dist/customize/agents/agent-page.js +478 -367
- package/dist/customize/agents/agent-pin-button.d.ts +10 -0
- package/dist/customize/agents/agent-pin-button.js +20 -0
- package/dist/customize/agents/agent-policy-sets-section.d.ts +16 -0
- package/dist/customize/agents/agent-policy-sets-section.js +80 -0
- package/dist/customize/agents/agent-policy-sets.js +1 -1
- package/dist/customize/agents/agent-section-rail.d.ts +21 -0
- package/dist/customize/agents/agent-section-rail.js +23 -0
- package/dist/customize/agents/agent-share-control.d.ts +4 -3
- package/dist/customize/agents/agent-share-control.js +15 -16
- package/dist/customize/agents/{agent-people-section.d.ts → agent-share-dialog.d.ts} +3 -1
- package/dist/customize/agents/{agent-people-section.js → agent-share-dialog.js} +21 -21
- package/dist/customize/agents/agent-tabs.d.ts +95 -0
- package/dist/customize/agents/agent-tabs.js +199 -0
- package/dist/customize/agents/agents-page.d.ts +0 -21
- package/dist/customize/agents/agents-page.js +104 -118
- package/dist/customize/agents/connectors-required.d.ts +16 -0
- package/dist/customize/agents/connectors-required.js +19 -0
- package/dist/customize/agents/create-agent-modal.d.ts +19 -0
- package/dist/customize/agents/create-agent-modal.js +94 -0
- package/dist/customize/connectors/agent-access.d.ts +4 -4
- package/dist/customize/connectors/agent-access.js +7 -10
- package/dist/customize/connectors/connector-identity.d.ts +12 -0
- package/dist/customize/connectors/connector-identity.js +15 -2
- package/dist/customize/connectors/connector-routes.js +2 -2
- package/dist/customize/connectors/connectors-page.d.ts +14 -1
- package/dist/customize/connectors/connectors-page.js +101 -32
- package/dist/customize/connectors/detail/app-page.js +1 -1
- package/dist/customize/connectors/detail/connector-agents.js +0 -3
- package/dist/customize/connectors/detail/connector-page.d.ts +1 -1
- package/dist/customize/connectors/detail/connector-page.js +5 -2
- package/dist/customize/connectors/detail/connector-policy-sets.js +1 -1
- package/dist/customize/connectors/detail/connector-triggers.js +2 -2
- package/dist/customize/connectors/use-agent-access.d.ts +7 -5
- package/dist/customize/connectors/use-agent-access.js +2 -6
- package/dist/customize/models/models-page.d.ts +7 -1
- package/dist/customize/models/models-page.js +2 -2
- package/dist/customize/project-settings/project-admin-sections.d.ts +63 -0
- package/dist/customize/project-settings/project-admin-sections.js +80 -0
- package/dist/customize/project-settings/project-settings-page.d.ts +1 -1
- package/dist/customize/project-settings/project-settings-page.js +4 -13
- package/dist/customize/project-settings/project-settings-sections.d.ts +5 -5
- package/dist/customize/project-settings/project-settings-sections.js +6 -20
- package/dist/customize/providers/provider-accordion.js +29 -17
- package/dist/customize/providers/provider-connect.js +1 -1
- package/dist/customize/providers/provider-sheet.d.ts +4 -1
- package/dist/customize/providers/provider-sheet.js +15 -5
- package/dist/customize/secrets/secrets-page.d.ts +5 -1
- package/dist/customize/secrets/secrets-page.js +2 -2
- package/dist/customize/sections/gateway-view.d.ts +10 -2
- package/dist/customize/sections/gateway-view.js +16 -4
- package/dist/customize/sections/llm-provider/chatgpt-subscription-connect.d.ts +12 -5
- package/dist/customize/sections/llm-provider/chatgpt-subscription-connect.js +131 -8
- package/dist/customize/sections/llm-provider/claude-code-step.d.ts +10 -0
- package/dist/customize/sections/llm-provider/claude-code-step.js +32 -0
- package/dist/customize/sections/llm-provider/models-tab.js +5 -1
- package/dist/customize/sections/view/account-secret-resources-panel.d.ts +5 -3
- package/dist/customize/sections/view/account-secret-resources-panel.js +122 -19
- package/dist/customize/sections/view/agent-editor-access-fields.d.ts +1 -1
- package/dist/customize/sections/view/agent-editor-access-fields.js +8 -4
- package/dist/customize/sections/view/agent-editor-basics-fields.d.ts +4 -1
- package/dist/customize/sections/view/agent-editor-basics-fields.js +33 -4
- package/dist/customize/sections/view/agent-editor-catalog.d.ts +2 -2
- package/dist/customize/sections/view/agent-editor-catalog.js +10 -12
- package/dist/customize/sections/view/agent-editor-primitives.d.ts +1 -1
- package/dist/customize/sections/view/agent-editor-primitives.js +4 -4
- package/dist/customize/sections/view/agent-editor.d.ts +37 -26
- package/dist/customize/sections/view/agent-editor.js +19 -19
- package/dist/customize/sections/view/grant-mode-field.d.ts +8 -20
- package/dist/customize/sections/view/grant-mode-field.js +31 -57
- package/dist/customize/sections/view/permission-editor.d.ts +3 -1
- package/dist/customize/sections/view/permission-editor.js +19 -10
- package/dist/customize/sections/view/review-view.d.ts +8 -0
- package/dist/customize/sections/view/review-view.js +12 -1
- package/dist/customize/sections/view/secret-delivery.js +1 -4
- package/dist/customize/sections/view/secrets-view.d.ts +7 -1
- package/dist/customize/sections/view/secrets-view.js +42 -6
- package/dist/customize/settings/rail.js +2 -8
- package/dist/customize/settings/settings-tabs.d.ts +2 -2
- package/dist/customize/settings/settings-tabs.js +17 -19
- package/dist/customize/settings/tabs/experimental-tab.d.ts +3 -0
- package/dist/customize/settings/tabs/experimental-tab.js +6 -1
- package/dist/customize/settings/tabs/sandbox-tab.d.ts +4 -6
- package/dist/customize/settings/tabs/sandbox-tab.js +9 -9
- package/dist/customize/shared/access-list.d.ts +39 -0
- package/dist/customize/shared/access-list.js +62 -0
- package/dist/customize/shared/agent-resource-scope.d.ts +87 -0
- package/dist/customize/shared/agent-resource-scope.js +123 -0
- package/dist/customize/shared/capability-library.d.ts +41 -0
- package/dist/customize/shared/capability-library.js +271 -0
- package/dist/customize/shared/capability-page-shell.d.ts +18 -1
- package/dist/customize/shared/capability-page-shell.js +21 -1
- package/dist/customize/shared/catalog/catalog-space-tabs.d.ts +14 -0
- package/dist/customize/shared/catalog/catalog-space-tabs.js +20 -0
- package/dist/customize/shared/customize-tab-bar.d.ts +13 -0
- package/dist/customize/shared/customize-tab-bar.js +95 -0
- package/dist/customize/shared/entity/entity-modal.d.ts +17 -1
- package/dist/customize/shared/entity/entity-modal.js +10 -9
- package/dist/customize/shared/leave-guard.d.ts +23 -0
- package/dist/customize/shared/leave-guard.js +87 -0
- package/dist/customize/shared/standalone-settings-nav.js +4 -1
- package/dist/customize/shared/tool-rules.d.ts +11 -0
- package/dist/customize/shared/tool-rules.js +29 -0
- package/dist/customize/skills/builtin-skill-modal.d.ts +6 -0
- package/dist/customize/skills/builtin-skill-modal.js +41 -0
- package/dist/customize/skills/skills-page.d.ts +21 -18
- package/dist/customize/skills/skills-page.js +16 -110
- package/dist/customize/triggers/runtime-triggers.d.ts +17 -0
- package/dist/customize/triggers/runtime-triggers.js +57 -0
- package/dist/customize/triggers/schedule/event-trigger-copy.js +2 -2
- package/dist/customize/triggers/schedule/post-to-field.js +2 -2
- package/dist/customize/triggers/schedule/schedule-copy.d.ts +11 -6
- package/dist/customize/triggers/schedule/schedule-copy.js +29 -8
- package/dist/customize/triggers/schedule/schedule-detail-sheet.js +7 -3
- package/dist/customize/triggers/schedule/trigger-composer-logic.d.ts +26 -1
- package/dist/customize/triggers/schedule/trigger-composer-logic.js +64 -3
- package/dist/customize/triggers/schedule/trigger-composer.js +57 -20
- package/dist/customize/triggers/schedule/trigger-edit-logic.js +18 -5
- package/dist/customize/triggers/schedule/trigger-filter.d.ts +10 -0
- package/dist/customize/triggers/schedule/trigger-filter.js +16 -0
- package/dist/customize/triggers/schedule/trigger-runs-panel.js +1 -0
- package/dist/customize/triggers/schedule/trigger-toast.js +2 -1
- package/dist/customize/triggers/schedule/use-trigger-mutations.d.ts +1 -1
- package/dist/customize/triggers/schedule/use-trigger-mutations.js +1 -1
- package/dist/customize/triggers/schedule/when-app.d.ts +15 -0
- package/dist/customize/triggers/schedule/when-app.js +21 -0
- package/dist/customize/triggers/schedule/when-change-request.d.ts +10 -0
- package/dist/customize/triggers/schedule/when-change-request.js +15 -0
- package/dist/customize/triggers/schedule-view.d.ts +17 -3
- package/dist/customize/triggers/schedule-view.js +46 -16
- package/dist/customize/triggers/triggers-page.d.ts +3 -3
- package/dist/customize/triggers/triggers-page.js +2 -2
- package/dist/customize/use-configure-thread.d.ts +8 -2
- package/dist/customize/use-configure-thread.js +30 -18
- package/dist/files/project/components/change-request-detail-dialog.js +2 -3
- package/dist/files/project/components/drive-explorer.js +6 -5
- package/dist/files/project/explorer-source.d.ts +3 -0
- package/dist/files/project/upload-batch.d.ts +3 -3
- package/dist/files/project/upload-batch.js +7 -6
- package/dist/files/runtime/sandbox-explorer-source.js +3 -3
- package/dist/i18n/en.d.ts +1331 -53
- package/dist/i18n/en.js +1423 -145
- package/dist/i18n/ui-catalog/remaining-ui-translation-keys.generated.js +16 -7
- package/dist/internal/auth/auth-primitives.d.ts +1 -3
- package/dist/internal/auth/auth-primitives.js +2 -2
- package/dist/internal/billing/session-cost-format.d.ts +1 -0
- package/dist/internal/billing/session-cost-format.js +11 -0
- package/dist/internal/components/agent-mark.d.ts +12 -1
- package/dist/internal/components/agent-mark.js +34 -11
- package/dist/internal/components/nav-rail.d.ts +22 -0
- package/dist/internal/components/nav-rail.js +16 -0
- package/dist/internal/components/repository-disconnected.js +2 -2
- package/dist/internal/goals/goal-meta.d.ts +15 -1
- package/dist/internal/goals/goal-meta.js +42 -2
- package/dist/internal/hooks/projects/use-agent-config.d.ts +11 -7
- package/dist/internal/hooks/projects/use-agent-config.js +28 -11
- package/dist/internal/hooks/use-slash-focus.d.ts +7 -1
- package/dist/internal/hooks/use-slash-focus.js +9 -3
- package/dist/internal/layout/project-capability-nav.d.ts +24 -0
- package/dist/internal/layout/project-capability-nav.js +86 -0
- package/dist/internal/layout/project-page-header.d.ts +1 -1
- package/dist/internal/layout/project-page-header.js +1 -1
- package/dist/internal/layout/project-settings-nav.d.ts +3 -2
- package/dist/internal/layout/project-settings-nav.js +5 -3
- package/dist/internal/lib/browser-noise/rules/extensions.js +3 -0
- package/dist/internal/lib/browser-noise/rules/old-browsers.js +1 -1
- package/dist/internal/lib/capability-tab-routes.d.ts +34 -3
- package/dist/internal/lib/capability-tab-routes.js +76 -8
- package/dist/internal/lib/manifest-health.d.ts +10 -0
- package/dist/internal/lib/manifest-health.js +20 -0
- package/dist/internal/lib/pixel-mark.d.ts +4 -1
- package/dist/internal/lib/pixel-mark.js +33 -6
- package/dist/internal/lib/project-actions.d.ts +1 -1
- package/dist/internal/lib/project-actions.js +0 -4
- package/dist/internal/lib/provider-branding.js +2 -0
- package/dist/internal/lib/space-scope.d.ts +29 -0
- package/dist/internal/lib/space-scope.js +28 -0
- package/dist/internal/lib/use-project-feature-flags.js +3 -3
- package/dist/internal/lib/web-notifications.d.ts +74 -8
- package/dist/internal/lib/web-notifications.js +243 -117
- package/dist/internal/notifications/notification-rows.d.ts +14 -7
- package/dist/internal/notifications/notification-rows.js +21 -14
- package/dist/internal/notifications/session-toast-cards.d.ts +2 -2
- package/dist/internal/reminders/reminder-format.d.ts +6 -2
- package/dist/internal/reminders/reminder-format.js +7 -1
- package/dist/internal/stores/active-space-store.d.ts +35 -0
- package/dist/internal/stores/active-space-store.js +29 -0
- package/dist/internal/stores/kortix-computer-store.d.ts +2 -1
- package/dist/internal/stores/kortix-computer-store.js +18 -7
- package/dist/internal/stores/pinned-agents-store.d.ts +26 -0
- package/dist/internal/stores/pinned-agents-store.js +20 -0
- package/dist/internal/stores/session-panel-memory-store.js +3 -0
- package/dist/internal/stores/turn-attention-store.d.ts +5 -4
- package/dist/lib/routes.d.ts +16 -1
- package/dist/lib/routes.js +15 -3
- package/dist/markdown/doc-editor/doc-embed.d.ts +31 -0
- package/dist/markdown/doc-editor/doc-embed.js +168 -0
- package/dist/markdown/doc-editor/doc-extensions.d.ts +26 -0
- package/dist/markdown/doc-editor/doc-extensions.js +149 -0
- package/dist/markdown/doc-editor/doc-menus.d.ts +9 -0
- package/dist/markdown/doc-editor/doc-menus.js +56 -0
- package/dist/markdown/doc-editor/markdown.d.ts +12 -0
- package/dist/markdown/doc-editor/markdown.js +140 -0
- package/dist/markdown/genui/components/inline.d.ts +1 -1
- package/dist/primitives/badge.d.ts +1 -1
- package/dist/primitives/button.d.ts +1 -1
- package/dist/primitives/pixel-kortix-mark.d.ts +5 -4
- package/dist/primitives/pixel-kortix-mark.js +5 -15
- package/dist/primitives/tag.d.ts +1 -1
- package/dist/primitives/textarea.js +14 -0
- package/dist/primitives/toast.d.ts +2 -0
- package/dist/primitives/toast.js +4 -2
- package/dist/providers/ui-provider.d.ts +16 -0
- package/dist/session/actions/session-label.d.ts +1 -1
- package/dist/session/actions/session-label.js +3 -3
- package/dist/session/agents/agent-model.d.ts +92 -0
- package/dist/session/agents/agent-model.js +123 -0
- package/dist/session/agents/agent-state-mark.d.ts +10 -0
- package/dist/session/agents/agent-state-mark.js +22 -0
- package/dist/session/agents/agent-strip.d.ts +58 -0
- package/dist/session/agents/agent-strip.js +259 -0
- package/dist/session/agents/held-messages.d.ts +33 -0
- package/dist/session/agents/held-messages.js +50 -0
- package/dist/session/agents/legacy-subagent-chat.d.ts +11 -0
- package/dist/session/agents/legacy-subagent-chat.js +19 -0
- package/dist/session/agents/session-peek.d.ts +20 -0
- package/dist/session/agents/session-peek.js +67 -0
- package/dist/session/agents/session-prompt.d.ts +13 -0
- package/dist/session/agents/session-prompt.js +18 -0
- package/dist/session/agents/steer-session.d.ts +13 -0
- package/dist/session/agents/steer-session.js +29 -0
- package/dist/session/agents/subagent-dialog-content.d.ts +11 -0
- package/dist/session/agents/subagent-dialog-content.js +115 -0
- package/dist/session/agents/subagent-view.d.ts +8 -0
- package/dist/session/agents/subagent-view.js +18 -0
- package/dist/session/agents/tasks-panel.d.ts +13 -0
- package/dist/session/agents/tasks-panel.js +41 -0
- package/dist/session/agents/workflow-run-controls.d.ts +43 -0
- package/dist/session/agents/workflow-run-controls.js +141 -0
- package/dist/session/composer/ComposerCard.d.ts +1 -1
- package/dist/session/composer/ComposerCard.js +3 -3
- package/dist/session/composer/agent-selector.js +13 -19
- package/dist/session/composer/composer-underbar.d.ts +3 -1
- package/dist/session/composer/composer-underbar.js +2 -2
- package/dist/session/composer/composer.d.ts +5 -0
- package/dist/session/composer/composer.js +16 -10
- package/dist/session/composer/editor/composer-editor.js +19 -8
- package/dist/session/composer/editor/ultracode.d.ts +34 -0
- package/dist/session/composer/editor/ultracode.js +127 -0
- package/dist/session/composer/index.d.ts +1 -0
- package/dist/session/composer/index.js +1 -0
- package/dist/session/composer/send-blockers.d.ts +1 -11
- package/dist/session/composer/send-blockers.js +1 -11
- package/dist/session/composer/session-composer-readiness.d.ts +1 -28
- package/dist/session/composer/session-composer-readiness.js +5 -16
- package/dist/session/header/reminder-parts.d.ts +1 -1
- package/dist/session/header/session-site-header.js +6 -3
- package/dist/session/header/subagent-hover-card.d.ts +0 -2
- package/dist/session/header/subagent-hover-card.js +1 -4
- package/dist/session/models/claude-connection-slot.d.ts +11 -0
- package/dist/session/models/claude-connection-slot.js +30 -0
- package/dist/session/models/model-availability.d.ts +3 -1
- package/dist/session/models/model-availability.js +3 -0
- package/dist/session/models/model-selector.js +11 -12
- package/dist/session/models/model-tags.d.ts +9 -0
- package/dist/session/models/model-tags.js +8 -0
- package/dist/session/panel/easy/detail-view.js +7 -0
- package/dist/session/panel/easy/easy-panel.js +1 -1
- package/dist/session/panel/easy/step-icon.js +5 -1
- package/dist/session/panel/mobile-tool-drawer.js +7 -3
- package/dist/session/panel/open-session-quick-view.js +1 -1
- package/dist/session/panel/session-action-panel-column.js +1 -1
- package/dist/session/panel/session-desktop.js +41 -14
- package/dist/session/panel/session-panel-provider.d.ts +1 -1
- package/dist/session/panel/session-panel-provider.js +7 -11
- package/dist/session/prompts/question-prompt.js +3 -1
- package/dist/session/status/session-error-banner.js +4 -1
- package/dist/session/thread/session-chat.js +286 -296
- package/dist/session/thread/session-context-modal.js +29 -10
- package/dist/session/thread/session-context-spawned-sessions.d.ts +13 -0
- package/dist/session/thread/session-context-spawned-sessions.js +44 -0
- package/dist/session/thread/session-context-sub-sessions.js +3 -8
- package/dist/session/thread/transcript.d.ts +3 -0
- package/dist/session/thread/transcript.js +32 -8
- package/dist/session/tool/shared/full-view-action.d.ts +29 -0
- package/dist/session/tool/shared/full-view-action.js +43 -0
- package/dist/session/tool/tool-part-renderer.js +10 -2
- package/dist/session/tool/tools/agent-message-tool.js +2 -2
- package/dist/session/tool/tools/agent-spawn-tool.js +2 -2
- package/dist/session/tool/tools/agent-status-tool.js +2 -2
- package/dist/session/tool/tools/kortix-action-tool.d.ts +2 -0
- package/dist/session/tool/tools/kortix-action-tool.js +148 -0
- package/dist/session/tool/tools/kortix-tool-card.d.ts +83 -0
- package/dist/session/tool/tools/kortix-tool-card.js +186 -0
- package/dist/session/tool/tools/multi-agent-tool-bodies.d.ts +11 -0
- package/dist/session/tool/tools/multi-agent-tool-bodies.js +141 -0
- package/dist/session/tool/tools/multi-agent-tool-data.d.ts +63 -0
- package/dist/session/tool/tools/multi-agent-tool-data.js +118 -0
- package/dist/session/tool/tools/multi-agent-tools.d.ts +9 -0
- package/dist/session/tool/tools/multi-agent-tools.js +38 -0
- package/dist/session/tool/tools/question-tool.js +1 -1
- package/dist/session/tool/tools/register.d.ts +3 -0
- package/dist/session/tool/tools/register.js +3 -0
- package/dist/session/tool/tools/session-spawn-tool.js +2 -2
- package/dist/session/tool/tools/task-tool.d.ts +1 -1
- package/dist/session/tool/tools/task-tool.js +29 -41
- package/dist/session/tool/tools/workflow-progress.d.ts +34 -0
- package/dist/session/tool/tools/workflow-progress.js +186 -0
- package/dist/session/tool/tools/workflow-run.d.ts +128 -0
- package/dist/session/tool/tools/workflow-run.js +251 -0
- package/dist/session/tool/tools/workflow-tool.d.ts +9 -0
- package/dist/session/tool/tools/workflow-tool.js +253 -0
- package/dist/session/turn/notice-batch-group.d.ts +12 -0
- package/dist/session/turn/notice-batch-group.js +17 -0
- package/dist/session/turn/peer-message-row.d.ts +14 -0
- package/dist/session/turn/peer-message-row.js +57 -0
- package/dist/session/turn/subagent-notice-row.d.ts +4 -0
- package/dist/session/turn/subagent-notice-row.js +50 -0
- package/dist/session/turn/subagent-notice.d.ts +58 -0
- package/dist/session/turn/subagent-notice.js +111 -0
- package/dist/session/turn/user-message.d.ts +5 -4
- package/dist/session/turn/user-message.js +31 -10
- package/dist/styles/tokens.css +2 -0
- package/dist/styles.css +1 -1
- package/dist/terminal/session-terminal-connect-bar.js +1 -1
- package/dist/workspace/admin/project-admin-dashboard.d.ts +53 -0
- package/dist/workspace/admin/project-admin-dashboard.js +252 -0
- package/dist/workspace/admin/project-admin-nav.d.ts +20 -0
- package/dist/workspace/admin/project-admin-nav.js +41 -0
- package/dist/workspace/home/welcome-body.js +25 -3
- package/dist/workspace/index.d.ts +6 -2
- package/dist/workspace/index.js +12 -2
- package/dist/workspace/layout/new-session-create.js +3 -3
- package/dist/workspace/layout/project-home.js +3 -3
- package/dist/workspace/memory/memory-labels.js +5 -0
- package/dist/workspace/repository-disconnected.js +2 -2
- package/dist/workspace/sessions/board-dispatch.d.ts +52 -0
- package/dist/workspace/sessions/board-dispatch.js +110 -0
- package/dist/workspace/sessions/board-grouping.d.ts +63 -0
- package/dist/workspace/sessions/board-grouping.js +141 -0
- package/dist/workspace/sessions/board-peek.d.ts +15 -0
- package/dist/workspace/sessions/board-peek.js +54 -0
- package/dist/workspace/sessions/board-state-mark.d.ts +15 -0
- package/dist/workspace/sessions/board-state-mark.js +24 -0
- package/dist/workspace/sessions/project-sessions-view.js +42 -31
- package/dist/workspace/sessions/sessions-board.d.ts +12 -0
- package/dist/workspace/sessions/sessions-board.js +214 -0
- package/dist/workspace/sidebar/footer/project-manifest-issues-alert.d.ts +46 -0
- package/dist/workspace/sidebar/footer/project-manifest-issues-alert.js +85 -0
- package/dist/workspace/sidebar/footer/sidebar-alert.js +1 -1
- package/dist/workspace/sidebar/new-agent-modal-provider.d.ts +12 -0
- package/dist/workspace/sidebar/new-agent-modal-provider.js +19 -0
- package/dist/workspace/sidebar/project-nav-items.d.ts +3 -1
- package/dist/workspace/sidebar/project-nav-items.js +53 -5
- package/dist/workspace/sidebar/project-session-list.js +35 -12
- package/dist/workspace/sidebar/project-sidebar.js +6 -3
- package/dist/workspace/sidebar/session-filter-menu.js +2 -1
- package/dist/workspace/space/space-blocks.d.ts +25 -0
- package/dist/workspace/space/space-blocks.js +124 -0
- package/dist/workspace/space/space-filter-tabs.d.ts +17 -0
- package/dist/workspace/space/space-filter-tabs.js +31 -0
- package/dist/workspace/space/space-page.d.ts +24 -0
- package/dist/workspace/space/space-page.js +157 -0
- package/dist/workspace/space/space-room.d.ts +20 -0
- package/dist/workspace/space/space-room.js +27 -0
- package/dist/workspace/space/space-tab-menu.d.ts +14 -0
- package/dist/workspace/space/space-tab-menu.js +127 -0
- package/dist/workspace/space/space-tab-panels.d.ts +9 -0
- package/dist/workspace/space/space-tab-panels.js +203 -0
- package/dist/workspace/space/space-templates.d.ts +34 -0
- package/dist/workspace/space/space-templates.js +71 -0
- package/dist/workspace/space/use-space-filter.d.ts +10 -0
- package/dist/workspace/space/use-space-filter.js +40 -0
- package/dist/workspace/space/use-space-manifest.d.ts +8 -0
- package/dist/workspace/space/use-space-manifest.js +27 -0
- package/dist/workspace/spaces/space-timeline.js +2 -2
- package/package.json +56 -53
- package/skills/kortix-ui/SKILL.md +1 -1
- package/skills/kortix-ui/references/custom-dashboard.md +10 -4
- package/skills/kortix-ui/references/modules.md +11 -9
- package/dist/_vendor/shared/meta-agent.d.ts +0 -7
- package/dist/customize/agents/agent-grant-pages.d.ts +0 -37
- package/dist/customize/agents/agent-grant-pages.js +0 -226
- package/dist/customize/agents/agent-triggers-section.d.ts +0 -17
- package/dist/customize/agents/agent-triggers-section.js +0 -109
- package/dist/customize/migrate-to-v2/index.d.ts +0 -5
- package/dist/customize/migrate-to-v2/index.js +0 -5
- package/dist/customize/migrate-to-v2/migration-prompt.d.ts +0 -16
- package/dist/customize/migrate-to-v2/migration-prompt.js +0 -59
- package/dist/customize/migrate-to-v2/upgrade-defs.d.ts +0 -30
- package/dist/customize/migrate-to-v2/upgrade-defs.js +0 -43
- package/dist/customize/migrate-to-v2/upgrade-view.d.ts +0 -32
- package/dist/customize/migrate-to-v2/upgrade-view.js +0 -152
- package/dist/customize/migrate-to-v2/use-run-upgrade.d.ts +0 -18
- package/dist/customize/migrate-to-v2/use-run-upgrade.js +0 -16
- package/dist/customize/shared/capability-tabs.d.ts +0 -3
- package/dist/customize/shared/capability-tabs.js +0 -137
- package/dist/customize/skills/skill-scope.d.ts +0 -14
- package/dist/customize/skills/skill-scope.js +0 -18
- package/dist/internal/lib/manifest-version.d.ts +0 -21
- package/dist/internal/lib/manifest-version.js +0 -55
- package/dist/session/composer/hooks/use-composer-escape-stop.d.ts +0 -6
- package/dist/session/composer/hooks/use-composer-escape-stop.js +0 -28
- package/dist/session/thread/sub-session-modal-content.d.ts +0 -8
- package/dist/session/thread/sub-session-modal-content.js +0 -23
- package/dist/session/thread/sub-session-modal.d.ts +0 -2
- package/dist/session/thread/sub-session-modal.js +0 -14
- package/dist/workspace/sidebar/footer/project-manifest-upgrade-alert.d.ts +0 -13
- package/dist/workspace/sidebar/footer/project-manifest-upgrade-alert.js +0 -48
|
@@ -22,6 +22,8 @@ export interface AgentDraft {
|
|
|
22
22
|
set: SetKortix;
|
|
23
23
|
setOc: SetRuntime;
|
|
24
24
|
isDirty: boolean;
|
|
25
|
+
/** The last saved block: the draft compares against it. */
|
|
26
|
+
baseline: AgentConfigBlock;
|
|
25
27
|
/** Throw the draft away and return to the baseline. */
|
|
26
28
|
discard: () => void;
|
|
27
29
|
/** A save landed: the server's block is the new baseline AND the new draft. */
|
|
@@ -127,8 +129,9 @@ export type AgentConfigSectionGroup = (typeof AGENT_CONFIG_SECTION_GROUPS)[numbe
|
|
|
127
129
|
/**
|
|
128
130
|
* The page's topics, in rail order, each under a group heading.
|
|
129
131
|
*
|
|
130
|
-
* General is the agent itself and who runs it: overview
|
|
131
|
-
*
|
|
132
|
+
* General is the agent itself and who runs it: the overview (the agent at a
|
|
133
|
+
* glance, every grant summarized), its instructions, people, triggers and the
|
|
134
|
+
* basic switches. Access is one topic per grant set — skills, connectors, secrets,
|
|
132
135
|
* Apps, project actions — each its own page (Marko, 2026-09-03: "split up
|
|
133
136
|
* ACCESS … into its own standalone menu items on the left & we can have nicer
|
|
134
137
|
* UX/UI for each"). Runtime is what a session runs on: model, tools,
|
|
@@ -142,8 +145,8 @@ export declare const AGENT_CONFIG_SECTIONS: readonly [{
|
|
|
142
145
|
readonly label: "Overview";
|
|
143
146
|
readonly group: "General";
|
|
144
147
|
}, {
|
|
145
|
-
readonly key: "
|
|
146
|
-
readonly label: "
|
|
148
|
+
readonly key: "instructions";
|
|
149
|
+
readonly label: "Instructions";
|
|
147
150
|
readonly group: "General";
|
|
148
151
|
}, {
|
|
149
152
|
readonly key: "people";
|
|
@@ -153,13 +156,21 @@ export declare const AGENT_CONFIG_SECTIONS: readonly [{
|
|
|
153
156
|
readonly key: "triggers";
|
|
154
157
|
readonly label: "Triggers";
|
|
155
158
|
readonly group: "General";
|
|
159
|
+
}, {
|
|
160
|
+
readonly key: "basics";
|
|
161
|
+
readonly label: "Basics";
|
|
162
|
+
readonly group: "General";
|
|
156
163
|
}, {
|
|
157
164
|
readonly key: "skills";
|
|
158
165
|
readonly label: "Skills";
|
|
159
166
|
readonly group: "Access";
|
|
160
167
|
}, {
|
|
161
168
|
readonly key: "subagents";
|
|
162
|
-
readonly label: "
|
|
169
|
+
readonly label: "Agents";
|
|
170
|
+
readonly group: "Access";
|
|
171
|
+
}, {
|
|
172
|
+
readonly key: "tools";
|
|
173
|
+
readonly label: "Tools";
|
|
163
174
|
readonly group: "Access";
|
|
164
175
|
}, {
|
|
165
176
|
readonly key: "commands";
|
|
@@ -193,10 +204,6 @@ export declare const AGENT_CONFIG_SECTIONS: readonly [{
|
|
|
193
204
|
readonly key: "model";
|
|
194
205
|
readonly label: "Model";
|
|
195
206
|
readonly group: "Runtime";
|
|
196
|
-
}, {
|
|
197
|
-
readonly key: "tools";
|
|
198
|
-
readonly label: "Tools";
|
|
199
|
-
readonly group: "Runtime";
|
|
200
207
|
}, {
|
|
201
208
|
readonly key: "workspace";
|
|
202
209
|
readonly label: "Workspace";
|
|
@@ -209,8 +216,8 @@ export declare function useLocalizedAgentConfigCatalog(): {
|
|
|
209
216
|
readonly label: "Overview";
|
|
210
217
|
readonly group: "General";
|
|
211
218
|
}, {
|
|
212
|
-
readonly key: "
|
|
213
|
-
readonly label: "
|
|
219
|
+
readonly key: "instructions";
|
|
220
|
+
readonly label: "Instructions";
|
|
214
221
|
readonly group: "General";
|
|
215
222
|
}, {
|
|
216
223
|
readonly key: "people";
|
|
@@ -220,13 +227,21 @@ export declare function useLocalizedAgentConfigCatalog(): {
|
|
|
220
227
|
readonly key: "triggers";
|
|
221
228
|
readonly label: "Triggers";
|
|
222
229
|
readonly group: "General";
|
|
230
|
+
}, {
|
|
231
|
+
readonly key: "basics";
|
|
232
|
+
readonly label: "Basics";
|
|
233
|
+
readonly group: "General";
|
|
223
234
|
}, {
|
|
224
235
|
readonly key: "skills";
|
|
225
236
|
readonly label: "Skills";
|
|
226
237
|
readonly group: "Access";
|
|
227
238
|
}, {
|
|
228
239
|
readonly key: "subagents";
|
|
229
|
-
readonly label: "
|
|
240
|
+
readonly label: "Agents";
|
|
241
|
+
readonly group: "Access";
|
|
242
|
+
}, {
|
|
243
|
+
readonly key: "tools";
|
|
244
|
+
readonly label: "Tools";
|
|
230
245
|
readonly group: "Access";
|
|
231
246
|
}, {
|
|
232
247
|
readonly key: "commands";
|
|
@@ -260,10 +275,6 @@ export declare function useLocalizedAgentConfigCatalog(): {
|
|
|
260
275
|
readonly key: "model";
|
|
261
276
|
readonly label: "Model";
|
|
262
277
|
readonly group: "Runtime";
|
|
263
|
-
}, {
|
|
264
|
-
readonly key: "tools";
|
|
265
|
-
readonly label: "Tools";
|
|
266
|
-
readonly group: "Runtime";
|
|
267
278
|
}, {
|
|
268
279
|
readonly key: "workspace";
|
|
269
280
|
readonly label: "Workspace";
|
|
@@ -271,13 +282,11 @@ export declare function useLocalizedAgentConfigCatalog(): {
|
|
|
271
282
|
}];
|
|
272
283
|
};
|
|
273
284
|
export type AgentConfigSectionKey = (typeof AGENT_CONFIG_SECTIONS)[number]['key'];
|
|
274
|
-
/** The grants
|
|
285
|
+
/** The grants that name registered entries of the manifest. */
|
|
275
286
|
export declare const REGISTRY_GRANT_SECTIONS: readonly ["subagents", "commands", "extensions"];
|
|
276
287
|
export type RegistryGrant = (typeof REGISTRY_GRANT_SECTIONS)[number];
|
|
277
|
-
/** The editor's topics for a manifest version. The registry grants exist from v3 on. */
|
|
278
|
-
export declare function agentConfigSectionKeys(schemaVersion: number): AgentConfigSectionKey[];
|
|
279
288
|
/**
|
|
280
|
-
* The pick lists behind the
|
|
289
|
+
* The pick lists behind the registry grant pages. Subagents are the declared,
|
|
281
290
|
* enabled agents with `mode` `subagent` or `all`, never the agent itself.
|
|
282
291
|
* Commands and extensions are the root manifest's registries.
|
|
283
292
|
* ponytail: names registered in an `imports:` file are not listed; a picked
|
|
@@ -299,15 +308,20 @@ export declare function isAgentConfigSectionKey(value: string | null): value is
|
|
|
299
308
|
* grants and the access to what the agent has"): who may use the agent, and
|
|
300
309
|
* what the agent — and therefore they — may reach.
|
|
301
310
|
*/
|
|
302
|
-
export declare function AgentConfigSections({ section, editor, options, skillsOptions, registryOptions, overview, triggers, people, skills, connectors, secrets, apps, drives,
|
|
311
|
+
export declare function AgentConfigSections({ section, editor, options, skillsOptions, registryOptions, overview, instructions, triggers, people, skills, connectors, secrets, apps, drives, sectionStyle, }: {
|
|
303
312
|
section: AgentConfigSectionKey;
|
|
313
|
+
/** `tab` under the agent page's view switcher: the lead title goes, the
|
|
314
|
+
* switcher names the view. */
|
|
315
|
+
sectionStyle?: 'panel' | 'tab';
|
|
304
316
|
editor: AgentDraft;
|
|
305
317
|
options: AgentEditorOptions;
|
|
306
318
|
skillsOptions: GrantOption[];
|
|
307
|
-
/** The
|
|
319
|
+
/** The registry grant pick lists (`registryGrantOptions`). */
|
|
308
320
|
registryOptions?: Record<RegistryGrant, GrantOption[]>;
|
|
309
|
-
/**
|
|
321
|
+
/** The agent at a glance — a page-owned section, the Overview tab. */
|
|
310
322
|
overview?: React.ReactNode;
|
|
323
|
+
/** The system prompt editor — a page-owned section, the Instructions tab. */
|
|
324
|
+
instructions?: React.ReactNode;
|
|
311
325
|
/** The agent's triggers — a page-owned section, the Triggers tab. */
|
|
312
326
|
triggers?: React.ReactNode;
|
|
313
327
|
/** Who may use the agent — a page-owned section, the People tab. */
|
|
@@ -323,8 +337,5 @@ export declare function AgentConfigSections({ section, editor, options, skillsOp
|
|
|
323
337
|
apps?: React.ReactNode;
|
|
324
338
|
/** Which shared drives the agent mounts. Page-owned, and only with Volumes on. */
|
|
325
339
|
drives?: React.ReactNode;
|
|
326
|
-
/** What the agent can do once its Kortix permissions meet its IAM ceiling —
|
|
327
|
-
* a page-owned card under the Kortix permissions checklist. */
|
|
328
|
-
authority?: React.ReactNode;
|
|
329
340
|
}): import("react").JSX.Element;
|
|
330
341
|
export { grantSummary } from './grant-mode-field.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, Fragment as _Fragment
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useLocalizedUiCatalog } from '../../../i18n/ui-catalog/use-localized-ui-catalog.js';
|
|
4
4
|
import { useTranslations as useI18nTranslations } from '../../../i18n/index.js';
|
|
5
5
|
/**
|
|
6
|
-
* The agent editor — every field of one `agents.<name>` block in
|
|
7
|
-
*
|
|
6
|
+
* The agent editor — every field of one `agents.<name>` block in
|
|
7
|
+
* `kortix.yaml` (agent-first spec §2.2), as three reusable parts
|
|
8
8
|
* and no shell of its own.
|
|
9
9
|
*
|
|
10
10
|
* The shell is `/projects/[id]/agent/[name]`
|
|
@@ -128,7 +128,7 @@ export function useAgentDraft(initial) {
|
|
|
128
128
|
setBaseline(block);
|
|
129
129
|
setDraft(block);
|
|
130
130
|
}, []);
|
|
131
|
-
return { draft, oc: draft.behavior ?? {}, set, setOc, isDirty, discard, commit };
|
|
131
|
+
return { draft, oc: draft.behavior ?? {}, set, setOc, isDirty, baseline, discard, commit };
|
|
132
132
|
}
|
|
133
133
|
const CONNECTOR_STATUS_BADGE = {
|
|
134
134
|
needs_auth: { label: 'Needs auth', variant: 'destructive' },
|
|
@@ -223,8 +223,9 @@ export const AGENT_CONFIG_SECTION_GROUPS = ['General', 'Access', 'Runtime'];
|
|
|
223
223
|
/**
|
|
224
224
|
* The page's topics, in rail order, each under a group heading.
|
|
225
225
|
*
|
|
226
|
-
* General is the agent itself and who runs it: overview
|
|
227
|
-
*
|
|
226
|
+
* General is the agent itself and who runs it: the overview (the agent at a
|
|
227
|
+
* glance, every grant summarized), its instructions, people, triggers and the
|
|
228
|
+
* basic switches. Access is one topic per grant set — skills, connectors, secrets,
|
|
228
229
|
* Apps, project actions — each its own page (Marko, 2026-09-03: "split up
|
|
229
230
|
* ACCESS … into its own standalone menu items on the left & we can have nicer
|
|
230
231
|
* UX/UI for each"). Runtime is what a session runs on: model, tools,
|
|
@@ -235,11 +236,13 @@ export const AGENT_CONFIG_SECTION_GROUPS = ['General', 'Access', 'Runtime'];
|
|
|
235
236
|
*/
|
|
236
237
|
export const AGENT_CONFIG_SECTIONS = [
|
|
237
238
|
{ key: 'overview', label: 'Overview', group: 'General' },
|
|
238
|
-
{ key: '
|
|
239
|
+
{ key: 'instructions', label: 'Instructions', group: 'General' },
|
|
239
240
|
{ key: 'people', label: 'People', group: 'General' },
|
|
240
241
|
{ key: 'triggers', label: 'Triggers', group: 'General' },
|
|
242
|
+
{ key: 'basics', label: 'Basics', group: 'General' },
|
|
241
243
|
{ key: 'skills', label: 'Skills', group: 'Access' },
|
|
242
|
-
{ key: 'subagents', label: '
|
|
244
|
+
{ key: 'subagents', label: 'Agents', group: 'Access' },
|
|
245
|
+
{ key: 'tools', label: 'Tools', group: 'Access' },
|
|
243
246
|
{ key: 'commands', label: 'Commands', group: 'Access' },
|
|
244
247
|
{ key: 'extensions', label: 'Extensions', group: 'Access' },
|
|
245
248
|
{ key: 'connectors', label: 'Connectors', group: 'Access' },
|
|
@@ -248,7 +251,6 @@ export const AGENT_CONFIG_SECTIONS = [
|
|
|
248
251
|
{ key: 'drives', label: 'Drives', group: 'Access' },
|
|
249
252
|
{ key: 'actions', label: 'Kortix permissions', group: 'Access' },
|
|
250
253
|
{ key: 'model', label: 'Model', group: 'Runtime' },
|
|
251
|
-
{ key: 'tools', label: 'Tools', group: 'Runtime' },
|
|
252
254
|
{ key: 'workspace', label: 'Workspace', group: 'Runtime' },
|
|
253
255
|
];
|
|
254
256
|
export function useLocalizedAgentConfigCatalog() {
|
|
@@ -257,12 +259,8 @@ export function useLocalizedAgentConfigCatalog() {
|
|
|
257
259
|
sections: AGENT_CONFIG_SECTIONS,
|
|
258
260
|
});
|
|
259
261
|
}
|
|
260
|
-
/** The grants
|
|
262
|
+
/** The grants that name registered entries of the manifest. */
|
|
261
263
|
export const REGISTRY_GRANT_SECTIONS = ['subagents', 'commands', 'extensions'];
|
|
262
|
-
/** The editor's topics for a manifest version. The registry grants exist from v3 on. */
|
|
263
|
-
export function agentConfigSectionKeys(schemaVersion) {
|
|
264
|
-
return AGENT_CONFIG_SECTIONS.map((s) => s.key).filter((key) => schemaVersion >= 3 || !REGISTRY_GRANT_SECTIONS.includes(key));
|
|
265
|
-
}
|
|
266
264
|
/** The names of one manifest registry (`commands:` or `extensions:`), with descriptions. */
|
|
267
265
|
function registryEntries(manifest, key) {
|
|
268
266
|
const registry = manifest[key];
|
|
@@ -276,7 +274,7 @@ function registryEntries(manifest, key) {
|
|
|
276
274
|
.sort((a, b) => a.id.localeCompare(b.id));
|
|
277
275
|
}
|
|
278
276
|
/**
|
|
279
|
-
* The pick lists behind the
|
|
277
|
+
* The pick lists behind the registry grant pages. Subagents are the declared,
|
|
280
278
|
* enabled agents with `mode` `subagent` or `all`, never the agent itself.
|
|
281
279
|
* Commands and extensions are the root manifest's registries.
|
|
282
280
|
* ponytail: names registered in an `imports:` file are not listed; a picked
|
|
@@ -286,7 +284,7 @@ function registryEntries(manifest, key) {
|
|
|
286
284
|
export function registryGrantOptions(config, agentName) {
|
|
287
285
|
let manifest = {};
|
|
288
286
|
try {
|
|
289
|
-
manifest = config.manifest_raw ? parseManifestText(config.manifest_raw
|
|
287
|
+
manifest = config.manifest_raw ? parseManifestText(config.manifest_raw) : {};
|
|
290
288
|
}
|
|
291
289
|
catch {
|
|
292
290
|
// A manifest that does not parse lists nothing; the save path reports the error.
|
|
@@ -315,7 +313,7 @@ export function isAgentConfigSectionKey(value) {
|
|
|
315
313
|
* grants and the access to what the agent has"): who may use the agent, and
|
|
316
314
|
* what the agent — and therefore they — may reach.
|
|
317
315
|
*/
|
|
318
|
-
export function AgentConfigSections({ section, editor, options, skillsOptions, registryOptions, overview, triggers, people, skills, connectors, secrets, apps, drives,
|
|
316
|
+
export function AgentConfigSections({ section, editor, options, skillsOptions, registryOptions, overview, instructions, triggers, people, skills, connectors, secrets, apps, drives, sectionStyle = 'panel', }) {
|
|
319
317
|
const { draft, oc, set, setOc } = editor;
|
|
320
318
|
// Every pane opens with a `lead` section (the pane title) and stacks its
|
|
321
319
|
// later sections under Settings subsection headings.
|
|
@@ -323,6 +321,8 @@ export function AgentConfigSections({ section, editor, options, skillsOptions, r
|
|
|
323
321
|
switch (section) {
|
|
324
322
|
case 'overview':
|
|
325
323
|
return _jsx(_Fragment, { children: overview });
|
|
324
|
+
case 'instructions':
|
|
325
|
+
return _jsx(_Fragment, { children: instructions });
|
|
326
326
|
case 'people':
|
|
327
327
|
return _jsx(_Fragment, { children: people });
|
|
328
328
|
case 'skills':
|
|
@@ -340,7 +340,7 @@ export function AgentConfigSections({ section, editor, options, skillsOptions, r
|
|
|
340
340
|
case 'drives':
|
|
341
341
|
return _jsx(_Fragment, { children: drives });
|
|
342
342
|
case 'actions':
|
|
343
|
-
return (
|
|
343
|
+
return (_jsx(_Fragment, { children: _jsx(ProjectActionsSection, { draft: draft, set: set }) }));
|
|
344
344
|
case 'triggers':
|
|
345
345
|
return _jsx(_Fragment, { children: triggers });
|
|
346
346
|
case 'model':
|
|
@@ -353,6 +353,6 @@ export function AgentConfigSections({ section, editor, options, skillsOptions, r
|
|
|
353
353
|
return (_jsx(BasicsSection, { draft: draft, set: set, oc: oc, setOc: setOc, showDescription: false }));
|
|
354
354
|
}
|
|
355
355
|
})();
|
|
356
|
-
return (_jsx(EditorSectionStyleProvider, { value:
|
|
356
|
+
return (_jsx(EditorSectionStyleProvider, { value: sectionStyle, children: _jsx("div", { className: "space-y-8", children: body }) }));
|
|
357
357
|
}
|
|
358
358
|
export { grantSummary } from './grant-mode-field.js';
|
|
@@ -1,26 +1,12 @@
|
|
|
1
1
|
import type { UiTranslator } from '../../../i18n/index.js';
|
|
2
2
|
import type { AgentGrantSetV2 } from '@kortix/sdk';
|
|
3
|
-
import {
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
4
4
|
export type GrantMode = 'all' | 'pick' | 'none';
|
|
5
5
|
/** Summarize a grant set — "All", "None", "3 picked" — for a card header. */
|
|
6
6
|
export declare function grantSummary(v: AgentGrantSetV2 | undefined, tI18nComplete?: UiTranslator): {
|
|
7
7
|
label: string;
|
|
8
8
|
tone: 'muted' | 'outline';
|
|
9
9
|
};
|
|
10
|
-
export declare function GrantModeField({ value, onChange, alwaysRender, children, }: {
|
|
11
|
-
value: AgentGrantSetV2 | undefined;
|
|
12
|
-
onChange: (v: AgentGrantSetV2) => void;
|
|
13
|
-
/** Render `children` in every mode, not only Pick — for a catalog that
|
|
14
|
-
* stays on screen and shows each card as included / excluded. */
|
|
15
|
-
alwaysRender?: boolean;
|
|
16
|
-
children: (ctx: {
|
|
17
|
-
selected: Set<string>;
|
|
18
|
-
toggle: (id: string) => void;
|
|
19
|
-
mode: GrantMode;
|
|
20
|
-
}) => React.ReactNode;
|
|
21
|
-
}): import("react").JSX.Element;
|
|
22
|
-
/** All · Pick · None, with a checklist of the project's declared items when
|
|
23
|
-
* in Pick mode. The one governance control reused for skills/connectors/secrets. */
|
|
24
10
|
/** One pickable row: the id the grant stores, and what a person needs to
|
|
25
11
|
* recognise it — a name, a second line, a status chip. */
|
|
26
12
|
export interface GrantOption {
|
|
@@ -38,13 +24,15 @@ export declare function GrantSetField({ value, onChange, options, emptyLabel, ro
|
|
|
38
24
|
options: GrantOption[];
|
|
39
25
|
emptyLabel: string;
|
|
40
26
|
/** Optional control rendered BESIDE each granted row (e.g. the connectors
|
|
41
|
-
* field's "personal" toggle). The row itself is a
|
|
42
|
-
* interactive accessory
|
|
43
|
-
* node the row is wrapped in a flex container and the accessory becomes a
|
|
44
|
-
* sibling. Fields that pass nothing render exactly as before. */
|
|
27
|
+
* field's "personal" toggle). The row itself is a checkbox, so an
|
|
28
|
+
* interactive accessory is a sibling, never nested. */
|
|
45
29
|
rowAccessory?: (id: string, isSelected: boolean) => ReactNode;
|
|
46
30
|
}): import("react").JSX.Element;
|
|
47
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The grant sentence over the grouped Kortix permission catalog, listed in
|
|
33
|
+
* every mode like every other Access view: All checks every box, None none,
|
|
34
|
+
* Specific the granted ones. A box turned off under All keeps the rest.
|
|
35
|
+
*/
|
|
48
36
|
export declare function KortixPermissionsField({ value, onChange, }: {
|
|
49
37
|
value: AgentGrantSetV2 | undefined;
|
|
50
38
|
onChange: (v: AgentGrantSetV2) => void;
|
|
@@ -2,18 +2,16 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useTranslations as useI18nTranslations } from '../../../i18n/index.js';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* them twice.
|
|
5
|
+
* The grant fields of the agent editor: the grant sentence (`GrantModeTabs`)
|
|
6
|
+
* over a list that is always shown, flat (skills, connectors, the registry
|
|
7
|
+
* grants) or grouped (kortix_permissions).
|
|
9
8
|
*/
|
|
10
|
-
import { Tabs, TabsList, TabsTrigger } from '../../../primitives/tabs.js';
|
|
11
9
|
import { Badge } from '../../../primitives/badge.js';
|
|
12
10
|
import { Checkbox } from '../../../primitives/checkbox.js';
|
|
13
|
-
import { useState } from 'react';
|
|
14
11
|
import { KORTIX_PERMISSIONS_CATALOG } from './agent-editor-catalog.js';
|
|
15
12
|
import { useUiParams } from '../../../providers/ui-provider.js';
|
|
16
13
|
import { useProjectFeatureFlags } from '../../../internal/lib/use-project-feature-flags.js';
|
|
14
|
+
import { GrantModeTabs, plainGrantSwitch, useAgentGrant, withCatalog } from '../../shared/agent-resource-scope.js';
|
|
17
15
|
/** Summarize a grant set — "All", "None", "3 picked" — for a card header. */
|
|
18
16
|
export function grantSummary(v, tI18nComplete) {
|
|
19
17
|
if (v === 'all')
|
|
@@ -26,64 +24,40 @@ export function grantSummary(v, tI18nComplete) {
|
|
|
26
24
|
tone: 'outline',
|
|
27
25
|
};
|
|
28
26
|
}
|
|
29
|
-
const GRANT_MODES = [
|
|
30
|
-
{ value: 'all', label: 'All' },
|
|
31
|
-
{ value: 'pick', label: 'Pick' },
|
|
32
|
-
{ value: 'none', label: 'None' },
|
|
33
|
-
];
|
|
34
|
-
export function GrantModeField({ value, onChange, alwaysRender = false, children, }) {
|
|
35
|
-
const tI18nComplete = useI18nTranslations('hardcodedUi.i18nComplete');
|
|
36
|
-
const mode = value === 'all' ? 'all' : value === 'none' || value === undefined ? 'none' : 'pick';
|
|
37
|
-
const [wantPick, setWantPick] = useState(() => Array.isArray(value) && value.length > 0);
|
|
38
|
-
const effectiveMode = value === 'all'
|
|
39
|
-
? 'all'
|
|
40
|
-
: Array.isArray(value) && (value.length > 0 || wantPick)
|
|
41
|
-
? 'pick'
|
|
42
|
-
: mode;
|
|
43
|
-
const selected = new Set(Array.isArray(value) ? value : []);
|
|
44
|
-
const pick = (m) => {
|
|
45
|
-
setWantPick(m === 'pick');
|
|
46
|
-
if (m === 'all')
|
|
47
|
-
return onChange('all');
|
|
48
|
-
if (m === 'none')
|
|
49
|
-
return onChange('none');
|
|
50
|
-
onChange(Array.isArray(value) ? value : []);
|
|
51
|
-
};
|
|
52
|
-
const toggle = (id) => {
|
|
53
|
-
const next = new Set(selected);
|
|
54
|
-
if (next.has(id))
|
|
55
|
-
next.delete(id);
|
|
56
|
-
else
|
|
57
|
-
next.add(id);
|
|
58
|
-
onChange([...next]);
|
|
59
|
-
};
|
|
60
|
-
return (_jsxs("div", { className: "space-y-3", children: [_jsx(Tabs, { value: effectiveMode, onValueChange: (m) => pick(m), children: _jsx(TabsList, { "aria-label": tI18nComplete.raw('text74009e6664f5'), children: GRANT_MODES.map((m) => (_jsx(TabsTrigger, { value: m.value, children: m.label }, m.value))) }) }), effectiveMode === 'pick' || alwaysRender
|
|
61
|
-
? children({ selected, toggle, mode: effectiveMode })
|
|
62
|
-
: null] }));
|
|
63
|
-
}
|
|
64
27
|
export function GrantSetField({ value, onChange, options, emptyLabel, rowAccessory, }) {
|
|
65
28
|
const tI18nComplete = useI18nTranslations('hardcodedUi.i18nComplete');
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
29
|
+
// The same grant sentence and always-listed rows as every other Access view:
|
|
30
|
+
// All checks every row, None none, Specific the granted ones. A row turned
|
|
31
|
+
// off under All keeps the rest (`plainGrantSwitch`).
|
|
32
|
+
const grant = useAgentGrant(value, onChange);
|
|
33
|
+
const ids = options.map((o) => o.id);
|
|
34
|
+
const box = plainGrantSwitch(value, ids, onChange);
|
|
35
|
+
const optionIds = new Set(ids);
|
|
36
|
+
const orphans = (Array.isArray(value) ? value : [])
|
|
37
|
+
.filter((id) => !optionIds.has(id))
|
|
38
|
+
.map((id) => ({ id, label: id }));
|
|
39
|
+
const rows = [...options, ...orphans];
|
|
40
|
+
return (_jsxs("div", { className: "space-y-3", children: [_jsx(GrantModeTabs, { grant: withCatalog(grant, ids), label: tI18nComplete.raw('text74009e6664f5') }), rows.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-xs", children: emptyLabel })) : (_jsx("ul", { className: "bg-popover divide-border max-h-96 divide-y overflow-y-auto rounded-md border", children: rows.map((o) => {
|
|
76
41
|
const isOrphan = !optionIds.has(o.id);
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
42
|
+
const control = isOrphan
|
|
43
|
+
? { checked: true, onCheckedChange: () => onChange(value.filter((id) => id !== o.id)) }
|
|
44
|
+
: box(o.id);
|
|
45
|
+
const accessory = rowAccessory?.(o.id, control.checked);
|
|
46
|
+
return (_jsxs("li", { className: "flex items-center gap-3 px-4 py-2.5", children: [_jsx(Checkbox, { variant: "black", ...control, "aria-label": o.label }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "text-foreground block truncate font-mono text-sm", children: o.label }), o.description ? (_jsx("span", { className: "text-muted-foreground block truncate text-xs", children: o.description })) : null] }), isOrphan ? (_jsx(Badge, { variant: "warning", size: "xs", children: tI18nComplete.raw('textffa63583dfa6') })) : null, o.trailing, accessory] }, o.id));
|
|
47
|
+
}) }))] }));
|
|
81
48
|
}
|
|
82
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* The grant sentence over the grouped Kortix permission catalog, listed in
|
|
51
|
+
* every mode like every other Access view: All checks every box, None none,
|
|
52
|
+
* Specific the granted ones. A box turned off under All keeps the rest.
|
|
53
|
+
*/
|
|
83
54
|
export function KortixPermissionsField({ value, onChange, }) {
|
|
84
55
|
const tI18nComplete = useI18nTranslations('hardcodedUi.i18nComplete');
|
|
85
56
|
const params = useUiParams();
|
|
86
57
|
const { flags } = useProjectFeatureFlags(typeof params.id === 'string' ? params.id : null);
|
|
87
58
|
const groups = KORTIX_PERMISSIONS_CATALOG.filter((grp) => !grp.featureFlag || flags[grp.featureFlag] === true);
|
|
88
|
-
|
|
59
|
+
const ids = groups.flatMap((grp) => grp.actions);
|
|
60
|
+
const grant = useAgentGrant(value, onChange);
|
|
61
|
+
const box = plainGrantSwitch(value, ids, onChange);
|
|
62
|
+
return (_jsxs("div", { className: "space-y-5", children: [_jsx(GrantModeTabs, { grant: withCatalog(grant, ids), label: tI18nComplete.raw('text74009e6664f5') }), _jsx("div", { className: "bg-popover divide-border divide-y rounded-md border", children: groups.map((grp) => (_jsxs("div", { className: "space-y-2.5 px-4 py-3", children: [_jsx("p", { className: "text-muted-foreground text-xs font-medium", children: grp.group }), _jsx("div", { className: "-mx-3 grid gap-x-2 gap-y-0.5 sm:grid-cols-2", children: grp.actions.map((action) => (_jsx(Checkbox, { variant: "black", ...box(action), label: _jsx("span", { className: "font-mono text-xs", children: action.replace(/^project\./, '') }) }, action))) })] }, grp.group))) })] }));
|
|
89
63
|
}
|
|
@@ -7,7 +7,9 @@ import type { PermissionConfig } from '@kortix/sdk';
|
|
|
7
7
|
* behind one summary row that reports how many tools are already customized,
|
|
8
8
|
* so the count is visible without expanding it.
|
|
9
9
|
*/
|
|
10
|
-
export declare function ToolsSection({ permission, onChange, }: {
|
|
10
|
+
export declare function ToolsSection({ permission, onChange, title, }: {
|
|
11
11
|
permission: PermissionConfig | undefined;
|
|
12
12
|
onChange: (next: PermissionConfig | undefined) => void;
|
|
13
|
+
/** Set when the section sits under another lead section (the tool switches): it becomes a subsection with this title. */
|
|
14
|
+
title?: string;
|
|
13
15
|
}): import("react").JSX.Element;
|
|
@@ -48,28 +48,37 @@ function PermissionKeyName({ permKey }) {
|
|
|
48
48
|
* pattern → action rules. */
|
|
49
49
|
function PermissionRuleRow({ label, rule, onChange, }) {
|
|
50
50
|
const tI18nComplete = useI18nTranslations('hardcodedUi.i18nComplete');
|
|
51
|
+
// One rule is a default plus patterns. Alone, the default is a bare action;
|
|
52
|
+
// with patterns it is the map's `*` entry, the form both harnesses read.
|
|
51
53
|
const isMap = rule !== undefined && typeof rule === 'object';
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
+
const full = isMap ? rule : {};
|
|
55
|
+
const bare = typeof rule === 'string' ? rule : full['*'];
|
|
56
|
+
const map = Object.fromEntries(Object.entries(full).filter(([pattern]) => pattern !== '*'));
|
|
54
57
|
const [showRules, setShowRules] = useState(isMap);
|
|
55
58
|
const ruleCount = Object.keys(map).length;
|
|
56
|
-
|
|
57
|
-
const
|
|
59
|
+
/** Write a default and patterns back in the smallest form. */
|
|
60
|
+
const write = (fallback, patterns) => {
|
|
61
|
+
if (Object.keys(patterns).length === 0)
|
|
62
|
+
return onChange(fallback);
|
|
63
|
+
onChange(fallback ? { ...patterns, '*': fallback } : patterns);
|
|
64
|
+
};
|
|
65
|
+
const setBare = (v) => write(v, map);
|
|
66
|
+
const setRuleEntry = (pattern, action) => write(bare, { ...map, [pattern]: action });
|
|
58
67
|
const removeRuleEntry = (pattern) => {
|
|
59
68
|
const next = { ...map };
|
|
60
69
|
delete next[pattern];
|
|
61
|
-
|
|
70
|
+
write(bare, next);
|
|
62
71
|
};
|
|
63
|
-
const addRule = () =>
|
|
72
|
+
const addRule = () => write(bare, { ...map, '': 'deny' });
|
|
64
73
|
const renameRule = (from, to) => {
|
|
65
74
|
if (from === to)
|
|
66
75
|
return;
|
|
67
76
|
const next = {};
|
|
68
77
|
for (const [k, v] of Object.entries(map))
|
|
69
78
|
next[k === from ? to : k] = v;
|
|
70
|
-
|
|
79
|
+
write(bare, next);
|
|
71
80
|
};
|
|
72
|
-
return (_jsxs("div", { className: "space-y-2 px-4 py-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx(PermissionKeyName, { permKey: label }), _jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [_jsx(ActionSelect, { value:
|
|
81
|
+
return (_jsxs("div", { className: "space-y-2 px-4 py-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx(PermissionKeyName, { permKey: label }), _jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [_jsx(ActionSelect, { value: bare, onChange: setBare, inheritLabel: tI18nComplete.raw('text3f72f0385768'), label: tI18nComplete('textfaaaefbff336', {
|
|
73
82
|
value0: PERMISSION_KEY_LABEL[label] ?? label,
|
|
74
83
|
}) }), _jsxs(Button, { type: "button", variant: isMap || showRules ? 'secondary' : 'outline', size: "sm", className: "gap-1 px-2 text-xs", "aria-expanded": showRules, onClick: () => setShowRules((s) => !s), children: [tI18nComplete.raw('text4228aeb07c41'), ruleCount > 0 ? _jsx("span", { className: "tabular-nums", children: ruleCount }) : null] })] })] }), _jsx(AnimatePresence, { initial: false, children: showRules && (_jsx(m.div, { initial: { opacity: 0, height: 0 }, animate: { opacity: 1, height: 'auto' }, exit: { opacity: 0, height: 0 }, transition: { type: 'spring', duration: 0.3, bounce: 0 }, className: "overflow-hidden", children: _jsxs("div", { className: "bg-muted/40 space-y-1.5 rounded-md p-2", children: [ruleCount === 0 ? (_jsx("p", { className: "text-muted-foreground px-1 pt-0.5 text-xs text-pretty", children: tI18nComplete.raw('text8d1833ac5f65') })) : null, Object.entries(map).map(([pattern, action]) => (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Input, { value: pattern, "aria-label": tI18nComplete.raw('text4288ade73ff9'), placeholder: tI18nComplete.raw('textcf134a1de504'), variant: "popover", className: "h-8 flex-1 font-mono text-xs", onChange: (e) => renameRule(pattern, e.target.value) }), _jsx(ActionSelect, { value: action, label: tI18nComplete('text494cb0162c19', {
|
|
75
84
|
value0: pattern || tI18nComplete.raw('textc6fbcde46fa9'),
|
|
@@ -83,7 +92,7 @@ function PermissionRuleRow({ label, rule, onChange, }) {
|
|
|
83
92
|
* behind one summary row that reports how many tools are already customized,
|
|
84
93
|
* so the count is visible without expanding it.
|
|
85
94
|
*/
|
|
86
|
-
export function ToolsSection({ permission, onChange, }) {
|
|
95
|
+
export function ToolsSection({ permission, onChange, title, }) {
|
|
87
96
|
const tI18nComplete = useI18nTranslations('hardcodedUi.i18nComplete');
|
|
88
97
|
// A bare string is one action applied to EVERY tool, not one customized
|
|
89
98
|
// tool — the old count printed "1" for it, which read as "one tool changed"
|
|
@@ -93,7 +102,7 @@ export function ToolsSection({ permission, onChange, }) {
|
|
|
93
102
|
: permission && Object.keys(permission).length > 0
|
|
94
103
|
? `${Object.keys(permission).length} tool${Object.keys(permission).length === 1 ? '' : 's'} customized`
|
|
95
104
|
: 'Every tool follows the runtime default';
|
|
96
|
-
return (_jsx(EditorSection, { title: tI18nComplete.raw('textea93d6a262ec'), description: tI18nComplete.raw('text765f388e2ce6'), lead:
|
|
105
|
+
return (_jsx(EditorSection, { title: title ?? tI18nComplete.raw('textea93d6a262ec'), description: tI18nComplete.raw('text765f388e2ce6'), lead: title === undefined, bare: true, children: _jsx(PermissionEditor, { permission: permission, onChange: onChange, summary: summary }) }));
|
|
97
106
|
}
|
|
98
107
|
function PermissionEditor({ permission, onChange, summary, }) {
|
|
99
108
|
const tI18nComplete = useI18nTranslations('hardcodedUi.i18nComplete');
|
|
@@ -6,3 +6,11 @@
|
|
|
6
6
|
export declare function ReviewView({ projectId }: {
|
|
7
7
|
projectId: string;
|
|
8
8
|
}): import("react").JSX.Element;
|
|
9
|
+
/**
|
|
10
|
+
* /customize/review: the Review Center under the one Customize header
|
|
11
|
+
* (`CustomizeHeader`), so its title sits where the Agents index, an agent and
|
|
12
|
+
* My Kortix put theirs.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ReviewPage({ projectId }: {
|
|
15
|
+
projectId: string;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { ProjectFilesProvider } from '../../../files/project/index.js';
|
|
4
|
+
import { useTranslations } from '../../../i18n/index.js';
|
|
5
|
+
import { CustomizeHeader } from '../../agents/agent-page-chrome.js';
|
|
4
6
|
import { ReviewCenterConnected } from './review-center-connected.js';
|
|
5
7
|
import { useProjectName } from '@kortix/sdk/react';
|
|
6
8
|
/**
|
|
@@ -17,3 +19,12 @@ export function ReviewView({ projectId }) {
|
|
|
17
19
|
const projectName = useProjectName(projectId) ?? '';
|
|
18
20
|
return (_jsx("div", { className: "bg-background flex h-full min-h-0 flex-col", children: _jsx(ProjectFilesProvider, { value: { projectId, ref: '', defaultBranch: '' }, children: _jsx(ReviewCenterConnected, { projectName: projectName }) }) }));
|
|
19
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* /customize/review: the Review Center under the one Customize header
|
|
24
|
+
* (`CustomizeHeader`), so its title sits where the Agents index, an agent and
|
|
25
|
+
* My Kortix put theirs.
|
|
26
|
+
*/
|
|
27
|
+
export function ReviewPage({ projectId }) {
|
|
28
|
+
const t = useTranslations('agentEditor.tabs');
|
|
29
|
+
return (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: [_jsx(CustomizeHeader, { title: t('review'), rule: true }), _jsx(ReviewView, { projectId: projectId })] }));
|
|
30
|
+
}
|
|
@@ -475,7 +475,7 @@ export function mergeAgentSecretGrant(current, identifier) {
|
|
|
475
475
|
/** The kortix.yaml edit that grants the secret, for anyone editing the repo by hand. */
|
|
476
476
|
export function agentGrantSnippet(identifier, agent, current) {
|
|
477
477
|
const secrets = mergeAgentSecretGrant(current, identifier);
|
|
478
|
-
return `
|
|
478
|
+
return `agents:\n ${agent ?? 'my-agent'}:\n secrets: [${secrets.join(', ')}]`;
|
|
479
479
|
}
|
|
480
480
|
/** One agent needs no picker, so the button carries the name instead. */
|
|
481
481
|
export function agentGrantActionLabel(plan, selected) {
|
|
@@ -526,9 +526,6 @@ export function agentGrantOutcome(result, tI18nComplete) {
|
|
|
526
526
|
/** Turn a grant failure into the next action the user can take. */
|
|
527
527
|
export function agentGrantErrorMessage(error) {
|
|
528
528
|
const fields = typeof error === 'object' && error !== null ? error : {};
|
|
529
|
-
if (fields.code === 'manifest_v1_unsupported') {
|
|
530
|
-
return 'This project uses a kortix_version 1 manifest. Edit kortix.toml directly, or upgrade the project to kortix_version 3.';
|
|
531
|
-
}
|
|
532
529
|
if (fields.code === 'secret_not_grantable') {
|
|
533
530
|
return 'This secret is disabled. Change its delivery policy before granting it.';
|
|
534
531
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AgentGrant, type ResourceScope } from '../../shared/agent-resource-scope.js';
|
|
1
2
|
import { type ConnectionShare, type ProjectSecret, type ProjectSecretsResponse, type SecretConsumer, type SecretDeliveryStatus, type SecretDeliveryStrategy, type SecretEgressPolicy } from '@kortix/sdk';
|
|
2
3
|
import { type SecretDeliveryBlockedReason } from './secret-delivery.js';
|
|
3
4
|
type Requirement = 'required' | 'optional' | null;
|
|
@@ -37,8 +38,13 @@ export interface SecretRow {
|
|
|
37
38
|
* decrypted (`mine.status: 'undecryptable'`). */
|
|
38
39
|
mineUndecryptable: boolean;
|
|
39
40
|
}
|
|
40
|
-
export declare function SecretsView({ projectId }: {
|
|
41
|
+
export declare function SecretsView({ projectId, surface, grant, }: {
|
|
41
42
|
projectId: string;
|
|
43
|
+
/** `global` (default) is the project's secrets; `agent` is the same screen
|
|
44
|
+
* for one agent, with a grant checkbox on every row. */
|
|
45
|
+
surface?: ResourceScope;
|
|
46
|
+
/** Required in `agent` scope: the agent's `secrets` grant, by identifier. */
|
|
47
|
+
grant?: AgentGrant;
|
|
42
48
|
}): import("react").JSX.Element;
|
|
43
49
|
export declare function buildRows(raw: ProjectSecretsResponse | ProjectSecret[] | null | undefined): SecretRow[];
|
|
44
50
|
/**
|