@kortix/ui 0.14.8 → 0.14.10
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 +2 -2
- package/dist/_vendor/kortix-shared.js +116 -3
- package/dist/_vendor/shared/app-config.d.ts +175 -0
- package/dist/_vendor/shared/artifact-comments.d.ts +235 -0
- package/dist/_vendor/shared/channel-descriptors.d.ts +96 -0
- package/dist/_vendor/shared/channel-message.d.ts +45 -5
- package/dist/_vendor/shared/index.d.ts +2 -0
- package/dist/_vendor/shared/space-slug.d.ts +37 -0
- package/dist/access/access/access-detail-shell.js +1 -1
- package/dist/access/access/principal-picker.d.ts +11 -0
- package/dist/access/access/principal-picker.js +3 -2
- package/dist/apps/app-preview-pool.d.ts +7 -2
- package/dist/apps/app-preview-pool.js +30 -7
- package/dist/apps/app-shared.d.ts +22 -15
- package/dist/apps/app-shared.js +37 -19
- package/dist/apps/index.d.ts +2 -2
- package/dist/apps/index.js +2 -2
- package/dist/artifacts/artifact-frame.d.ts +16 -0
- package/dist/artifacts/artifact-frame.js +55 -0
- package/dist/artifacts/artifact-session.d.ts +18 -0
- package/dist/artifacts/artifact-session.js +101 -0
- package/dist/artifacts/frame-policy.d.ts +30 -0
- package/dist/artifacts/frame-policy.js +61 -0
- package/dist/artifacts/index.d.ts +3 -0
- package/dist/artifacts/index.js +5 -0
- package/dist/browser/sandbox-browser-chrome.d.ts +4 -1
- package/dist/browser/sandbox-browser-chrome.js +2 -2
- package/dist/customize/agents/agent-grant-pages.d.ts +5 -1
- package/dist/customize/agents/agent-grant-pages.js +30 -4
- package/dist/customize/agents/agent-page.js +3 -1
- package/dist/customize/agents/agent-policy-sets.d.ts +43 -0
- package/dist/customize/agents/agent-policy-sets.js +72 -0
- package/dist/customize/agents/agent-triggers-section.js +2 -1
- package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.d.ts +6 -1
- package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.js +10 -4
- package/dist/customize/connectors/agent-access.d.ts +35 -0
- package/dist/customize/connectors/agent-access.js +77 -0
- package/dist/customize/connectors/catalog/browse-sections.d.ts +2 -29
- package/dist/customize/connectors/catalog/browse-sections.js +7 -74
- package/dist/customize/connectors/catalog/catalog-entry.d.ts +18 -37
- package/dist/customize/connectors/catalog/catalog-entry.js +28 -40
- package/dist/customize/connectors/catalog/connector-browse.d.ts +3 -32
- package/dist/customize/connectors/catalog/connector-browse.js +19 -50
- package/dist/customize/connectors/catalog/use-catalog.d.ts +20 -59
- package/dist/customize/connectors/catalog/use-catalog.js +48 -175
- package/dist/customize/connectors/connector-identity.d.ts +9 -11
- package/dist/customize/connectors/connector-identity.js +13 -42
- package/dist/customize/connectors/connector-moves-banner.d.ts +2 -1
- package/dist/customize/connectors/connector-moves-banner.js +4 -6
- package/dist/customize/connectors/connector-routes.d.ts +21 -9
- package/dist/customize/connectors/connector-routes.js +29 -20
- package/dist/customize/connectors/connectors-page.js +53 -82
- package/dist/customize/connectors/detail/app-page.js +226 -98
- package/dist/customize/connectors/detail/computer-app-page.d.ts +16 -0
- package/dist/customize/connectors/detail/computer-app-page.js +39 -0
- package/dist/customize/connectors/detail/connector-accounts.js +3 -1
- package/dist/customize/connectors/detail/connector-advanced-tools.d.ts +4 -1
- package/dist/customize/connectors/detail/connector-advanced-tools.js +2 -2
- package/dist/customize/connectors/detail/connector-agents.d.ts +14 -0
- package/dist/customize/connectors/detail/connector-agents.js +69 -0
- package/dist/customize/connectors/detail/connector-detail-tabs.js +2 -1
- package/dist/customize/connectors/detail/connector-move-row.d.ts +8 -5
- package/dist/customize/connectors/detail/connector-move-row.js +23 -14
- package/dist/customize/connectors/detail/connector-page.d.ts +4 -1
- package/dist/customize/connectors/detail/connector-page.js +14 -10
- package/dist/customize/connectors/detail/connector-policy-sets.d.ts +28 -0
- package/dist/customize/connectors/detail/connector-policy-sets.js +203 -0
- package/dist/customize/connectors/detail/connector-settings.d.ts +4 -1
- package/dist/customize/connectors/detail/connector-settings.js +7 -3
- package/dist/customize/connectors/detail/connector-status.d.ts +19 -6
- package/dist/customize/connectors/detail/connector-status.js +34 -10
- package/dist/customize/connectors/detail/connector-tabs.d.ts +4 -1
- package/dist/customize/connectors/detail/connector-tabs.js +8 -2
- package/dist/customize/connectors/detail/connector-tools.d.ts +3 -3
- package/dist/customize/connectors/detail/connector-tools.js +105 -48
- package/dist/customize/connectors/detail/email-inboxes.d.ts +43 -0
- package/dist/customize/connectors/detail/email-inboxes.js +184 -0
- package/dist/customize/connectors/detail/provider-info.d.ts +1 -1
- package/dist/customize/connectors/detail/provider-info.js +2 -2
- package/dist/customize/connectors/detail/status-badge.d.ts +1 -1
- package/dist/customize/connectors/detail/status-badge.js +4 -5
- package/dist/customize/connectors/detail/use-connector-detail.d.ts +6 -0
- package/dist/customize/connectors/detail/use-connector-detail.js +14 -4
- package/dist/customize/connectors/install/install-dialog.d.ts +23 -0
- package/dist/customize/connectors/install/install-dialog.js +40 -0
- package/dist/customize/connectors/install/install.d.ts +13 -2
- package/dist/customize/connectors/install/install.js +9 -4
- package/dist/customize/connectors/install/use-install.d.ts +19 -2
- package/dist/customize/connectors/install/use-install.js +65 -37
- package/dist/customize/connectors/install/way-kind.d.ts +5 -0
- package/dist/customize/connectors/install/way-kind.js +16 -0
- package/dist/customize/connectors/provider-label.d.ts +2 -1
- package/dist/customize/connectors/provider-label.js +13 -3
- package/dist/customize/connectors/tools/pattern-rule-draft.d.ts +4 -0
- package/dist/customize/connectors/tools/pattern-rule-draft.js +12 -3
- package/dist/customize/connectors/tools/policy-sets.d.ts +27 -0
- package/dist/customize/connectors/tools/policy-sets.js +41 -0
- package/dist/customize/connectors/tools/tool-groups.d.ts +32 -9
- package/dist/customize/connectors/tools/tool-groups.js +78 -16
- package/dist/customize/connectors/tools/tool-policy-control.d.ts +11 -10
- package/dist/customize/connectors/tools/tool-policy-control.js +15 -16
- package/dist/customize/connectors/tools/tool-policy-labels.d.ts +6 -5
- package/dist/customize/connectors/tools/tool-policy-labels.js +17 -16
- package/dist/customize/connectors/tools/tool-policy.d.ts +50 -4
- package/dist/customize/connectors/tools/tool-policy.js +74 -8
- package/dist/customize/connectors/use-agent-access.d.ts +85 -0
- package/dist/customize/connectors/use-agent-access.js +72 -0
- package/dist/customize/migrate-to-v2/index.d.ts +1 -2
- package/dist/customize/migrate-to-v2/index.js +1 -2
- package/dist/customize/migrate-to-v2/migration-prompt.d.ts +12 -25
- package/dist/customize/migrate-to-v2/migration-prompt.js +34 -236
- package/dist/customize/migrate-to-v2/upgrade-defs.d.ts +1 -1
- package/dist/customize/migrate-to-v2/upgrade-defs.js +7 -6
- package/dist/customize/migrate-to-v2/upgrade-view.js +7 -7
- package/dist/customize/migrate-to-v2/use-run-upgrade.d.ts +3 -3
- package/dist/customize/providers/provider-accordion.js +17 -2
- package/dist/customize/sections/component/channel-access-panel.d.ts +16 -0
- package/dist/customize/sections/component/channel-access-panel.js +146 -0
- package/dist/customize/sections/component/channel-connect-hero.d.ts +3 -2
- package/dist/customize/sections/component/channel-connect-hero.js +3 -2
- package/dist/customize/sections/component/channel-hero-frame.d.ts +31 -0
- package/dist/customize/sections/component/channel-hero-frame.js +40 -0
- package/dist/customize/sections/component/channel-mocks.d.ts +6 -0
- package/dist/customize/sections/component/channel-mocks.js +46 -0
- package/dist/customize/sections/component/channel-row.d.ts +13 -3
- package/dist/customize/sections/component/channel-row.js +10 -4
- package/dist/customize/sections/component/email-connect-form.d.ts +27 -0
- package/dist/customize/sections/component/email-connect-form.js +183 -0
- package/dist/customize/sections/component/slack-connect-card.d.ts +7 -0
- package/dist/customize/sections/component/slack-connect-card.js +2 -3
- package/dist/customize/sections/component/teams-connect-card.d.ts +7 -0
- package/dist/customize/sections/component/teams-connect-card.js +2 -3
- package/dist/customize/sections/component/telegram-channel-row.js +21 -28
- package/dist/customize/sections/connectors-view.d.ts +1 -15
- package/dist/customize/sections/connectors-view.js +81 -314
- package/dist/customize/sections/view/agent-editor-catalog.js +10 -0
- package/dist/customize/sections/view/channels-view.d.ts +6 -1
- package/dist/customize/sections/view/channels-view.js +72 -81
- package/dist/customize/sections/view/gateway/gateway-overview.js +10 -2
- package/dist/customize/settings/rail.js +9 -0
- package/dist/customize/settings/settings-tabs.d.ts +1 -1
- package/dist/customize/settings/settings-tabs.js +1 -0
- package/dist/customize/settings/tabs/chrome-connections-tab.d.ts +6 -0
- package/dist/customize/settings/tabs/chrome-connections-tab.js +99 -0
- package/dist/customize/settings/tabs/experimental-tab.js +35 -16
- package/dist/customize/shared/catalog/catalog-empty-state.d.ts +4 -15
- package/dist/customize/shared/catalog/catalog-empty-state.js +9 -7
- package/dist/customize/shared/channels-switch-dialog.d.ts +18 -0
- package/dist/customize/shared/channels-switch-dialog.js +30 -0
- package/dist/customize/shared/feature-gate-screen.js +27 -9
- package/dist/customize/shared/use-customize-prefetch.d.ts +2 -3
- package/dist/customize/shared/use-customize-prefetch.js +9 -27
- package/dist/customize/triggers/schedule/post-to-field.d.ts +18 -0
- package/dist/customize/triggers/schedule/post-to-field.js +49 -0
- package/dist/customize/triggers/schedule/schedule-copy.d.ts +10 -6
- package/dist/customize/triggers/schedule/schedule-copy.js +42 -11
- package/dist/customize/triggers/schedule/schedule-detail-sheet.js +2 -1
- package/dist/customize/triggers/schedule/trigger-composer-logic.d.ts +22 -0
- package/dist/customize/triggers/schedule/trigger-composer-logic.js +25 -0
- package/dist/customize/triggers/schedule/trigger-composer.d.ts +5 -0
- package/dist/customize/triggers/schedule/trigger-composer.js +23 -14
- package/dist/customize/triggers/schedule/trigger-edit-logic.js +3 -0
- package/dist/customize/triggers/schedule/trigger-filter.js +1 -1
- package/dist/customize/triggers/schedule/trigger-runs-logic.d.ts +2 -2
- 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-view.js +5 -2
- package/dist/files/index.d.ts +1 -0
- package/dist/files/index.js +1 -0
- package/dist/files/project/change-request-recovery.d.ts +1 -26
- package/dist/files/project/change-request-recovery.js +1 -59
- package/dist/files/project/components/change-request-detail-dialog.js +13 -3
- package/dist/files/project/components/drive-explorer.js +15 -15
- package/dist/files/project/components/drive-toolbar.d.ts +16 -2
- package/dist/files/project/components/drive-toolbar.js +14 -5
- package/dist/files/project/hooks/use-change-request-recovery.js +3 -19
- package/dist/files/project/hooks/use-change-requests.d.ts +1 -0
- package/dist/files/project/hooks/use-change-requests.js +11 -2
- package/dist/files/renderers/image-frame.d.ts +48 -0
- package/dist/files/renderers/image-frame.js +59 -0
- package/dist/files/renderers/image-renderer.d.ts +11 -1
- package/dist/files/renderers/image-renderer.js +13 -3
- package/dist/files/renderers/pdf/pdf-clipboard.d.ts +2 -0
- package/dist/files/renderers/pdf/pdf-clipboard.js +21 -0
- package/dist/files/renderers/pdf/pdf-viewer.js +4 -2
- package/dist/files/renderers/show-content-renderer.d.ts +9 -1
- package/dist/files/renderers/show-content-renderer.js +56 -14
- package/dist/files/runtime/file-source.js +2 -0
- package/dist/files/runtime/hooks/use-binary-blob.d.ts +10 -1
- package/dist/files/runtime/hooks/use-binary-blob.js +10 -4
- package/dist/files/runtime/hooks/use-shared-image.d.ts +41 -0
- package/dist/files/runtime/hooks/use-shared-image.js +177 -0
- package/dist/files/viewer/file-content-renderer.d.ts +22 -1
- package/dist/files/viewer/file-content-renderer.js +50 -7
- package/dist/files/viewer/file-header.d.ts +7 -3
- package/dist/files/viewer/file-header.js +20 -11
- package/dist/files/viewer/file-preview-modal.d.ts +1 -1
- package/dist/files/viewer/file-preview-modal.js +10 -22
- package/dist/files/viewer/file-source.d.ts +13 -0
- package/dist/files/viewer/use-file-content-state.d.ts +2 -0
- package/dist/files/viewer/use-file-content-state.js +28 -10
- package/dist/files/viewer/viewer-actions.d.ts +3 -1
- package/dist/files/viewer/viewer-actions.js +2 -2
- package/dist/hooks/use-media-query.d.ts +1 -0
- package/dist/hooks/use-mobile.d.ts +5 -0
- package/dist/hooks/use-mobile.js +8 -0
- package/dist/i18n/en.d.ts +1062 -85
- package/dist/i18n/en.js +1078 -101
- package/dist/i18n/ui-catalog/localize-ui-catalog.js +4 -0
- package/dist/i18n/ui-catalog/remaining-ui-translation-keys.generated.js +15 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/internal/account-hub/account-settings-sidebar.js +1 -1
- package/dist/internal/account-hub/hub-sheet.d.ts +9 -1
- package/dist/internal/account-hub/hub-sheet.js +21 -5
- package/dist/internal/account-hub/sections.d.ts +1 -1
- package/dist/internal/account-hub/sections.js +2 -1
- package/dist/internal/apps-and-extensions/apps-modal.d.ts +9 -0
- package/dist/internal/apps-and-extensions/apps-modal.js +107 -0
- package/dist/internal/auth/auth-card-shell.js +3 -3
- package/dist/internal/chrome/browser-icon.d.ts +24 -0
- package/dist/internal/chrome/browser-icon.js +58 -0
- package/dist/internal/chrome/chrome-card-state.d.ts +16 -0
- package/dist/internal/chrome/chrome-card-state.js +9 -0
- package/dist/internal/chrome/chrome-connect.d.ts +69 -0
- package/dist/internal/chrome/chrome-connect.js +178 -0
- package/dist/internal/chrome/chrome-mock.d.ts +4 -0
- package/dist/internal/chrome/chrome-mock.js +15 -0
- package/dist/internal/chrome/chrome-names.d.ts +15 -0
- package/dist/internal/chrome/chrome-names.js +35 -0
- package/dist/internal/chrome/extension.d.ts +47 -0
- package/dist/internal/chrome/extension.js +91 -0
- package/dist/internal/chrome/use-chrome-offered.d.ts +11 -0
- package/dist/internal/chrome/use-chrome-offered.js +22 -0
- package/dist/internal/components/agent-mark.js +5 -2
- package/dist/internal/connector-logo/connector-logo-source.d.ts +64 -0
- package/dist/internal/connector-logo/connector-logo-source.js +49 -0
- package/dist/internal/connector-logo/connector-logo.d.ts +39 -0
- package/dist/internal/connector-logo/connector-logo.js +56 -0
- package/dist/internal/connector-logo/connector-mark-files.d.ts +11 -0
- package/dist/internal/connector-logo/connector-mark-files.js +35 -0
- package/dist/internal/files/file-read-retry.d.ts +13 -0
- package/dist/internal/files/file-read-retry.js +23 -3
- package/dist/internal/files/session-drive-files.d.ts +5 -1
- package/dist/internal/files/session-drive-files.js +7 -2
- package/dist/internal/hooks/channels/use-channels-installations.d.ts +32 -5
- package/dist/internal/hooks/channels/use-channels-installations.js +55 -7
- package/dist/internal/hooks/channels/use-email-inboxes.d.ts +19 -0
- package/dist/internal/hooks/channels/use-email-inboxes.js +48 -0
- package/dist/internal/hooks/connectors/use-add-account.js +1 -1
- package/dist/internal/hooks/index.d.ts +1 -1
- package/dist/internal/hooks/index.js +1 -1
- package/dist/internal/hooks/projects/use-new-project-session.d.ts +9 -0
- package/dist/internal/hooks/projects/use-new-project-session.js +28 -12
- package/dist/internal/hooks/use-auto-scroll.d.ts +8 -1
- package/dist/internal/hooks/use-auto-scroll.js +4 -4
- package/dist/internal/icons/edge.d.ts +5 -0
- package/dist/internal/icons/edge.js +10 -0
- package/dist/internal/icons/telegram.d.ts +5 -0
- package/dist/internal/icons/telegram.js +6 -1
- package/dist/internal/layout/nav-hover-card.d.ts +35 -0
- package/dist/internal/layout/nav-hover-card.js +84 -0
- package/dist/internal/layout/project-nav-row.d.ts +3 -1
- package/dist/internal/layout/project-nav-row.js +3 -2
- package/dist/internal/layout/project-page-header.d.ts +4 -2
- package/dist/internal/layout/project-page-header.js +4 -3
- package/dist/internal/layout/project-settings-nav.js +59 -2
- package/dist/internal/lib/browser-error-noise.d.ts +1 -1
- package/dist/internal/lib/browser-error-noise.js +1 -1
- package/dist/internal/lib/browser-noise/rules/extensions.js +17 -3
- package/dist/internal/lib/browser-noise/rules/injected-scripts.d.ts +7 -0
- package/dist/internal/lib/browser-noise/rules/injected-scripts.js +15 -0
- package/dist/internal/lib/detect-os.d.ts +43 -0
- package/dist/internal/lib/detect-os.js +70 -0
- package/dist/internal/lib/manifest-version.d.ts +1 -1
- package/dist/internal/lib/manifest-version.js +2 -2
- package/dist/internal/lib/memory-href.d.ts +16 -0
- package/dist/internal/lib/memory-href.js +46 -0
- package/dist/internal/lib/use-project-feature-flags.js +13 -9
- package/dist/internal/lib/utils/heic-convert.d.ts +1 -1
- package/dist/internal/lib/utils/heic-convert.js +3 -4
- package/dist/internal/lib/web-notifications.d.ts +20 -0
- package/dist/internal/lib/web-notifications.js +48 -4
- package/dist/internal/notifications/notification-bell.d.ts +4 -1
- package/dist/internal/notifications/notification-bell.js +2 -2
- package/dist/internal/selection/selection-bar.d.ts +2 -1
- package/dist/internal/selection/selection-bar.js +1 -1
- package/dist/internal/stores/apps-modal-store.d.ts +8 -0
- package/dist/internal/stores/apps-modal-store.js +6 -0
- package/dist/internal/stores/composer-prefill-store.d.ts +12 -5
- package/dist/internal/stores/file-preview-store.d.ts +29 -2
- package/dist/internal/stores/file-preview-store.js +19 -1
- package/dist/internal/stores/kortix-computer-store.js +3 -0
- package/dist/internal/stores/sidebar-nav-store.d.ts +1 -1
- package/dist/internal/stores/sidebar-nav-store.js +3 -1
- package/dist/lib/routes.d.ts +13 -1
- package/dist/lib/routes.js +13 -0
- package/dist/markdown/index.d.ts +2 -1
- package/dist/markdown/index.js +2 -1
- package/dist/markdown/setup-links/approval-decision.d.ts +1 -0
- package/dist/markdown/setup-links/approval-decision.js +9 -3
- package/dist/markdown/setup-links/connector-handshake.d.ts +3 -1
- package/dist/markdown/setup-links/connector-handshake.js +12 -10
- package/dist/markdown/setup-links/secret-intake-form.d.ts +0 -10
- package/dist/markdown/setup-links/secret-intake-form.js +1 -1
- package/dist/markdown/setup-links/show-connect-hero.d.ts +28 -0
- package/dist/markdown/setup-links/show-connect-hero.js +91 -0
- package/dist/markdown/unified-markdown.js +5 -5
- package/dist/primitives/badge.d.ts +1 -1
- package/dist/primitives/badge.js +2 -0
- package/dist/primitives/disclosure.js +14 -2
- package/dist/primitives/empty-art.d.ts +12 -0
- package/dist/primitives/empty-art.js +11 -0
- package/dist/primitives/empty-state.d.ts +2 -2
- package/dist/primitives/empty-state.js +6 -5
- package/dist/primitives/mermaid-renderer.d.ts +2 -0
- package/dist/primitives/mermaid-renderer.js +21 -15
- package/dist/primitives/resizable.js +6 -1
- package/dist/primitives/resize-seam.d.ts +11 -0
- package/dist/primitives/resize-seam.js +12 -0
- package/dist/primitives/sidebar-panel.js +4 -7
- package/dist/primitives/tabs.d.ts +14 -1
- package/dist/primitives/tabs.js +1 -1
- package/dist/providers/ui-provider.d.ts +9 -0
- package/dist/session/composer/ComposerAboveCard.d.ts +1 -1
- package/dist/session/composer/ComposerAboveCard.js +2 -2
- package/dist/session/composer/ComposerCard.d.ts +1 -1
- package/dist/session/composer/ComposerCard.js +3 -3
- package/dist/session/composer/agent-selector.d.ts +13 -1
- package/dist/session/composer/agent-selector.js +25 -5
- package/dist/session/composer/composer-agent-access.d.ts +15 -0
- package/dist/session/composer/composer-agent-access.js +27 -0
- package/dist/session/composer/composer-chat-input.d.ts +8 -2
- package/dist/session/composer/composer-chat-input.js +8 -6
- package/dist/session/composer/composer-logic.d.ts +16 -0
- package/dist/session/composer/composer-logic.js +12 -0
- package/dist/session/composer/composer-underbar.d.ts +3 -1
- package/dist/session/composer/composer-underbar.js +4 -3
- package/dist/session/composer/composer.d.ts +15 -1
- package/dist/session/composer/composer.js +19 -1
- package/dist/session/composer/draft/composer-draft.d.ts +6 -2
- package/dist/session/composer/draft/composer-draft.js +5 -1
- package/dist/session/composer/reasoning-effort-selector.js +1 -1
- package/dist/session/models/chatgpt-connection-button.d.ts +11 -0
- package/dist/session/models/chatgpt-connection-button.js +54 -0
- package/dist/session/models/model-selector.js +5 -2
- package/dist/session/models/use-model-connection-gate.d.ts +5 -5
- package/dist/session/models/use-model-connection-gate.js +5 -5
- package/dist/session/outcomes/jump-to-outcome.d.ts +10 -0
- package/dist/session/outcomes/jump-to-outcome.js +11 -0
- package/dist/session/outcomes/session-outcomes-bridge.d.ts +14 -0
- package/dist/session/outcomes/session-outcomes-bridge.js +12 -0
- package/dist/session/outcomes/session-outcomes-provider.d.ts +3 -1
- package/dist/session/outcomes/session-outcomes-provider.js +33 -3
- package/dist/session/panel/easy/app-preview.d.ts +10 -0
- package/dist/session/panel/easy/app-preview.js +31 -12
- package/dist/session/panel/easy/change-requests-card.d.ts +7 -0
- package/dist/session/panel/easy/change-requests-card.js +17 -0
- package/dist/session/panel/easy/easy-panel-logic.js +7 -1
- package/dist/session/panel/easy/easy-panel.js +5 -2
- package/dist/session/panel/easy/file-preview.js +1 -1
- package/dist/session/panel/easy/outputs-card.d.ts +2 -1
- package/dist/session/panel/easy/outputs-card.js +3 -2
- package/dist/session/panel/mobile-tool-drawer.js +7 -1
- package/dist/session/panel/session-audit-panel.js +9 -2
- package/dist/session/panel/session-audit-shared.js +3 -1
- package/dist/session/panel/session-detail-panel.js +9 -3
- package/dist/session/panel/session-files-explorer.d.ts +9 -0
- package/dist/session/panel/session-files-explorer.js +12 -3
- package/dist/session/panel/session-panel-provider.d.ts +15 -1
- package/dist/session/panel/session-panel-provider.js +32 -7
- package/dist/session/panel/shared/derive-panels.d.ts +8 -1
- package/dist/session/panel/shared/derive-panels.js +12 -2
- package/dist/session/panel/shared/output-priority.js +2 -0
- package/dist/session/participants/session-participants.d.ts +8 -2
- package/dist/session/participants/session-participants.js +11 -4
- package/dist/session/prompts/approval-request.d.ts +5 -0
- package/dist/session/prompts/approval-request.js +9 -1
- package/dist/session/prompts/session-approval-review.d.ts +9 -0
- package/dist/session/prompts/session-approval-review.js +18 -0
- package/dist/session/status/session-error-banner.js +2 -49
- package/dist/session/status/session-starting-loader.d.ts +14 -2
- package/dist/session/status/session-starting-loader.js +16 -4
- package/dist/session/thread/after-first-prompt.d.ts +7 -0
- package/dist/session/thread/after-first-prompt.js +8 -0
- package/dist/session/thread/detect-command.d.ts +12 -0
- package/dist/session/thread/detect-command.js +20 -0
- package/dist/session/thread/session-chat.d.ts +3 -1
- package/dist/session/thread/session-chat.js +377 -252
- package/dist/session/thread/session-thread.d.ts +15 -1
- package/dist/session/thread/session-thread.js +20 -3
- package/dist/session/thread/session-transcript-class.d.ts +5 -1
- package/dist/session/thread/session-transcript-class.js +5 -1
- package/dist/session/thread/thread-boot-rows.d.ts +36 -0
- package/dist/session/thread/thread-boot-rows.js +89 -0
- package/dist/session/thread/transcript-rows.d.ts +31 -0
- package/dist/session/thread/transcript-rows.js +3 -0
- package/dist/session/thread/transcript.d.ts +0 -9
- package/dist/session/thread/transcript.js +104 -19
- package/dist/session/tool/shared/infrastructure-contexts.d.ts +28 -0
- package/dist/session/tool/shared/infrastructure-contexts.js +31 -3
- package/dist/session/tool/tool-part-renderer.d.ts +5 -4
- package/dist/session/tool/tool-part-renderer.js +8 -3
- package/dist/session/tool/tools/bash-tool.js +7 -6
- package/dist/session/tool/tools/channel-send-card.d.ts +1 -2
- package/dist/session/tool/tools/channel-send.d.ts +2 -1
- package/dist/session/tool/tools/codemode-tool.js +1 -1
- package/dist/session/tool/tools/connector-tools.js +1 -1
- package/dist/session/tool/tools/image-gen-tool.d.ts +1 -1
- package/dist/session/tool/tools/image-gen-tool.js +241 -53
- package/dist/session/tool/tools/show-tool.js +19 -8
- package/dist/session/turn/channel-brand.d.ts +8 -3
- package/dist/session/turn/channel-brand.js +20 -4
- package/dist/session/turn/message-author.d.ts +8 -0
- package/dist/session/turn/message-author.js +24 -0
- package/dist/session/turn/message-row.d.ts +52 -0
- package/dist/session/turn/message-row.js +44 -0
- package/dist/session/turn/plan-anchor.d.ts +1 -1
- package/dist/session/turn/plan-anchor.js +1 -1
- package/dist/session/turn/user-message.d.ts +14 -6
- package/dist/session/turn/user-message.js +35 -15
- package/dist/styles.css +1 -1
- package/dist/workspace/home/access-requests-bell.d.ts +9 -2
- package/dist/workspace/home/access-requests-bell.js +20 -6
- package/dist/workspace/home/first-chat.d.ts +8 -21
- package/dist/workspace/home/first-chat.js +22 -72
- package/dist/workspace/index.d.ts +6 -0
- package/dist/workspace/index.js +6 -0
- package/dist/workspace/layout/project-home.d.ts +14 -2
- package/dist/workspace/layout/project-home.js +60 -21
- package/dist/workspace/layout/use-project-home-send.d.ts +9 -1
- package/dist/workspace/layout/use-project-home-send.js +82 -3
- package/dist/workspace/memory/body-doc.d.ts +17 -0
- package/dist/workspace/memory/body-doc.js +208 -0
- package/dist/workspace/memory/body-extensions.d.ts +38 -0
- package/dist/workspace/memory/body-extensions.js +103 -0
- package/dist/workspace/memory/company-memory-page.d.ts +8 -0
- package/dist/workspace/memory/company-memory-page.js +16 -0
- package/dist/workspace/memory/memory-all.d.ts +20 -0
- package/dist/workspace/memory/memory-all.js +27 -0
- package/dist/workspace/memory/memory-body.d.ts +19 -0
- package/dist/workspace/memory/memory-body.js +139 -0
- package/dist/workspace/memory/memory-empty.d.ts +13 -0
- package/dist/workspace/memory/memory-empty.js +28 -0
- package/dist/workspace/memory/memory-history.d.ts +27 -0
- package/dist/workspace/memory/memory-history.js +108 -0
- package/dist/workspace/memory/memory-labels.d.ts +16 -0
- package/dist/workspace/memory/memory-labels.js +47 -0
- package/dist/workspace/memory/memory-page-list.d.ts +34 -0
- package/dist/workspace/memory/memory-page-list.js +156 -0
- package/dist/workspace/memory/memory-reader.d.ts +58 -0
- package/dist/workspace/memory/memory-reader.js +123 -0
- package/dist/workspace/memory/memory-view.d.ts +21 -0
- package/dist/workspace/memory/memory-view.js +124 -0
- package/dist/workspace/memory/remember-popover.d.ts +19 -0
- package/dist/workspace/memory/remember-popover.js +61 -0
- package/dist/workspace/memory/remember-this.d.ts +12 -0
- package/dist/workspace/memory/remember-this.js +89 -0
- package/dist/workspace/memory/source-mark.d.ts +18 -0
- package/dist/workspace/memory/source-mark.js +79 -0
- package/dist/workspace/memory/used-memory-chip.d.ts +14 -0
- package/dist/workspace/memory/used-memory-chip.js +61 -0
- package/dist/workspace/new/advanced-fields.d.ts +2 -1
- package/dist/workspace/new/advanced-fields.js +2 -2
- package/dist/workspace/new/source-param.d.ts +1 -1
- package/dist/workspace/new/source-param.js +3 -1
- package/dist/workspace/new/use-create-workspace.d.ts +8 -10
- package/dist/workspace/new/use-create-workspace.js +3 -3
- package/dist/workspace/projects/onboarding/app-logo.d.ts +7 -2
- package/dist/workspace/projects/onboarding/app-logo.js +6 -13
- package/dist/workspace/projects/policies-panel.js +5 -3
- package/dist/workspace/review/review-actions.d.ts +4 -2
- package/dist/workspace/review/review-actions.js +8 -2
- package/dist/workspace/review/review-center.js +11 -7
- package/dist/workspace/review/review-detail.d.ts +10 -0
- package/dist/workspace/review/review-detail.js +101 -13
- package/dist/workspace/saved-session-skeleton.d.ts +2 -2
- package/dist/workspace/saved-session-skeleton.js +3 -3
- package/dist/workspace/session-workspace.js +15 -13
- package/dist/workspace/sessions/project-sessions-view.js +3 -2
- package/dist/workspace/sessions/session-label-badges.js +2 -1
- package/dist/workspace/sessions/sessions-toolbar.d.ts +3 -1
- package/dist/workspace/sessions/sessions-toolbar.js +2 -2
- package/dist/workspace/sidebar/footer/project-apps-nav.d.ts +5 -0
- package/dist/workspace/sidebar/footer/project-apps-nav.js +41 -2
- package/dist/workspace/sidebar/footer/project-artifacts-nav.d.ts +6 -0
- package/dist/workspace/sidebar/footer/project-artifacts-nav.js +22 -0
- package/dist/workspace/sidebar/footer/project-chrome-nav.d.ts +10 -0
- package/dist/workspace/sidebar/footer/project-chrome-nav.js +56 -0
- package/dist/workspace/sidebar/footer/project-manifest-upgrade-alert.js +13 -13
- package/dist/workspace/sidebar/footer/project-memory-nav.d.ts +7 -0
- package/dist/workspace/sidebar/footer/project-memory-nav.js +19 -0
- package/dist/workspace/sidebar/nav-row-meta.js +14 -2
- package/dist/workspace/sidebar/project-nav-items.js +3 -0
- package/dist/workspace/sidebar/project-session-list.js +68 -56
- package/dist/workspace/sidebar/project-sidebar.js +13 -2
- package/dist/workspace/sidebar/project-spaces-nav.d.ts +8 -0
- package/dist/workspace/sidebar/project-spaces-nav.js +69 -0
- package/dist/workspace/sidebar/session-group-order.d.ts +9 -0
- package/dist/workspace/sidebar/session-group-order.js +25 -0
- package/dist/workspace/sidebar/session-group-sections.d.ts +62 -0
- package/dist/workspace/sidebar/session-group-sections.js +267 -0
- package/dist/workspace/sidebar/session-list-chrome.d.ts +28 -0
- package/dist/workspace/sidebar/session-list-chrome.js +50 -0
- package/dist/workspace/spaces/channel-glyph.d.ts +5 -0
- package/dist/workspace/spaces/channel-glyph.js +6 -0
- package/dist/workspace/spaces/channel-setup.d.ts +16 -0
- package/dist/workspace/spaces/channel-setup.js +105 -0
- package/dist/workspace/spaces/channels-onboarding.d.ts +13 -0
- package/dist/workspace/spaces/channels-onboarding.js +37 -0
- package/dist/workspace/spaces/create-channel-dialog.d.ts +16 -0
- package/dist/workspace/spaces/create-channel-dialog.js +158 -0
- package/dist/workspace/spaces/private-channels-not-in.d.ts +9 -0
- package/dist/workspace/spaces/private-channels-not-in.js +69 -0
- package/dist/workspace/spaces/space-agents.d.ts +10 -0
- package/dist/workspace/spaces/space-agents.js +10 -0
- package/dist/workspace/spaces/space-details-dialog.d.ts +20 -0
- package/dist/workspace/spaces/space-details-dialog.js +176 -0
- package/dist/workspace/spaces/space-link-label.d.ts +49 -0
- package/dist/workspace/spaces/space-link-label.js +73 -0
- package/dist/workspace/spaces/space-links.d.ts +19 -0
- package/dist/workspace/spaces/space-links.js +230 -0
- package/dist/workspace/spaces/space-members.d.ts +46 -0
- package/dist/workspace/spaces/space-members.js +182 -0
- package/dist/workspace/spaces/space-roster.d.ts +15 -0
- package/dist/workspace/spaces/space-roster.js +44 -0
- package/dist/workspace/spaces/space-threads-tab.d.ts +56 -0
- package/dist/workspace/spaces/space-threads-tab.js +156 -0
- package/dist/workspace/spaces/space-timeline-view.d.ts +254 -0
- package/dist/workspace/spaces/space-timeline-view.js +235 -0
- package/dist/workspace/spaces/space-timeline.d.ts +106 -0
- package/dist/workspace/spaces/space-timeline.js +183 -0
- package/dist/workspace/spaces/space-triggers.d.ts +13 -0
- package/dist/workspace/spaces/space-triggers.js +78 -0
- package/dist/workspace/spaces/space-view.d.ts +37 -0
- package/dist/workspace/spaces/space-view.js +436 -0
- package/package.json +67 -36
- package/skills/kortix-ui/SKILL.md +3 -3
- package/skills/kortix-ui/references/custom-dashboard.md +3 -3
- package/skills/kortix-ui/references/modules.md +29 -5
- package/skills/kortix-ui/references/theming.md +1 -1
- package/dist/customize/connectors/catalog/merge-search.d.ts +0 -10
- package/dist/customize/connectors/catalog/merge-search.js +0 -26
- package/dist/customize/connectors/detail/find-easy-connect-app.d.ts +0 -29
- package/dist/customize/connectors/detail/find-easy-connect-app.js +0 -22
- package/dist/customize/migrate-to-v2/use-migrate-to-v2.d.ts +0 -9
- package/dist/customize/migrate-to-v2/use-migrate-to-v2.js +0 -24
- package/dist/customize/sections/connector-connection-header.d.ts +0 -36
- package/dist/customize/sections/connector-connection-header.js +0 -33
- package/dist/customize/sections/connector-connection-modal.d.ts +0 -34
- package/dist/customize/sections/connector-connection-modal.js +0 -72
- package/dist/customize/sections/discover-catalogue-card.d.ts +0 -19
- package/dist/customize/sections/discover-catalogue-card.js +0 -26
- package/dist/customize/sections/discover-catalogue-detail.d.ts +0 -15
- package/dist/customize/sections/discover-catalogue-detail.js +0 -24
- package/dist/customize/sections/discover-catalogue.d.ts +0 -17
- package/dist/customize/sections/discover-catalogue.js +0 -132
- package/dist/customize/sections/llm-provider/provider-access-menu.d.ts +0 -10
- package/dist/customize/sections/llm-provider/provider-access-menu.js +0 -23
- package/dist/files/project/components/drive-empty-art.d.ts +0 -2
- package/dist/files/project/components/drive-empty-art.js +0 -5
- package/dist/internal/hooks/use-media-query.d.ts +0 -2
- package/dist/internal/share/public-share-link-button.d.ts +0 -14
- package/dist/internal/share/public-share-link-button.js +0 -17
- package/dist/markdown/setup-links/app-credentials-form.d.ts +0 -12
- package/dist/markdown/setup-links/app-credentials-form.js +0 -115
- /package/dist/{internal/hooks → hooks}/use-media-query.js +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AgentGrantSet } from '@kortix/sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Which agents can use which connector, and with which rule set, read from
|
|
4
|
+
* the root kortix.yaml (v2/v3): `agents.<a>.connectors` is the grant and
|
|
5
|
+
* `agents.<a>.policy_sets.<slug>` the set. The connector page's Agents tab and
|
|
6
|
+
* the Rules matrix both read this, and both write through `setAgentScope`.
|
|
7
|
+
*
|
|
8
|
+
* ponytail: agents declared in an `imports:` file are not read. Read the
|
|
9
|
+
* merged grants from the API when it serves them (`GET …/connectors/{slug}/agents`).
|
|
10
|
+
*/
|
|
11
|
+
export interface AgentConnectorAccess {
|
|
12
|
+
granted: boolean;
|
|
13
|
+
/** The set the agent names on this connector, or null for the base rules. */
|
|
14
|
+
policySet: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface AgentGrants {
|
|
17
|
+
/** `all`, or the granted slugs. An absent grant is none (v2 denies by default). */
|
|
18
|
+
connectors: 'all' | string[];
|
|
19
|
+
policySets: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
/** Every declared agent's connector grant and sets, by agent name. Null when the manifest is not v2/v3 YAML. */
|
|
22
|
+
export declare function manifestAgentGrants(manifestRaw: string | null | undefined): Record<string, AgentGrants> | null;
|
|
23
|
+
export declare function agentConnectorAccess(grants: AgentGrants | undefined, slug: string): AgentConnectorAccess;
|
|
24
|
+
/**
|
|
25
|
+
* The agent's connector grant after giving or taking one connector. Taking one
|
|
26
|
+
* from `all` lists every other connector the project has.
|
|
27
|
+
*/
|
|
28
|
+
export declare function withConnectorGrant(grants: AgentGrants | undefined, slug: string, on: boolean, allSlugs: readonly string[]): AgentGrantSet;
|
|
29
|
+
/** One rule set of a connector and how many agents use it. */
|
|
30
|
+
export interface RuleSetUsage {
|
|
31
|
+
name: string;
|
|
32
|
+
agents: number;
|
|
33
|
+
}
|
|
34
|
+
/** Each connector's rule sets (`connectors[].policy_sets`) with their agent count, by slug. */
|
|
35
|
+
export declare function connectorRuleSetUsage(manifestRaw: string | null | undefined): Record<string, RuleSetUsage[]>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { parseManifestText } from '../../_vendor/kortix-shared.js';
|
|
2
|
+
/** Every declared agent's connector grant and sets, by agent name. Null when the manifest is not v2/v3 YAML. */
|
|
3
|
+
export function manifestAgentGrants(manifestRaw) {
|
|
4
|
+
if (!manifestRaw)
|
|
5
|
+
return null;
|
|
6
|
+
let manifest;
|
|
7
|
+
try {
|
|
8
|
+
manifest = parseManifestText(manifestRaw, 'yaml');
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const version = Number(manifest.kortix_version);
|
|
14
|
+
const agents = manifest.agents;
|
|
15
|
+
if (!(version >= 2))
|
|
16
|
+
return null;
|
|
17
|
+
if (!agents || typeof agents !== 'object' || Array.isArray(agents))
|
|
18
|
+
return {};
|
|
19
|
+
const out = Object.create(null);
|
|
20
|
+
for (const [name, block] of Object.entries(agents)) {
|
|
21
|
+
const entry = (block && typeof block === 'object' ? block : {});
|
|
22
|
+
const connectors = entry.connectors === 'all'
|
|
23
|
+
? 'all'
|
|
24
|
+
: Array.isArray(entry.connectors)
|
|
25
|
+
? entry.connectors.filter((slug) => typeof slug === 'string')
|
|
26
|
+
: [];
|
|
27
|
+
const sets = entry.policy_sets && typeof entry.policy_sets === 'object' && !Array.isArray(entry.policy_sets)
|
|
28
|
+
? Object.fromEntries(Object.entries(entry.policy_sets).filter((pair) => typeof pair[1] === 'string'))
|
|
29
|
+
: {};
|
|
30
|
+
out[name] = { connectors, policySets: sets };
|
|
31
|
+
}
|
|
32
|
+
return out;
|
|
33
|
+
}
|
|
34
|
+
export function agentConnectorAccess(grants, slug) {
|
|
35
|
+
if (!grants)
|
|
36
|
+
return { granted: false, policySet: null };
|
|
37
|
+
return {
|
|
38
|
+
granted: grants.connectors === 'all' || grants.connectors.includes(slug),
|
|
39
|
+
policySet: grants.policySets[slug] ?? null,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The agent's connector grant after giving or taking one connector. Taking one
|
|
44
|
+
* from `all` lists every other connector the project has.
|
|
45
|
+
*/
|
|
46
|
+
export function withConnectorGrant(grants, slug, on, allSlugs) {
|
|
47
|
+
const current = grants?.connectors ?? [];
|
|
48
|
+
if (current === 'all')
|
|
49
|
+
return on ? 'all' : allSlugs.filter((other) => other !== slug);
|
|
50
|
+
if (on)
|
|
51
|
+
return current.includes(slug) ? current : [...current, slug];
|
|
52
|
+
return current.filter((other) => other !== slug);
|
|
53
|
+
}
|
|
54
|
+
/** Each connector's rule sets (`connectors[].policy_sets`) with their agent count, by slug. */
|
|
55
|
+
export function connectorRuleSetUsage(manifestRaw) {
|
|
56
|
+
const grants = manifestAgentGrants(manifestRaw);
|
|
57
|
+
if (!grants || !manifestRaw)
|
|
58
|
+
return {};
|
|
59
|
+
let manifest;
|
|
60
|
+
try {
|
|
61
|
+
manifest = parseManifestText(manifestRaw, 'yaml');
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
const out = Object.create(null);
|
|
67
|
+
for (const entry of Array.isArray(manifest.connectors) ? manifest.connectors : []) {
|
|
68
|
+
const { slug, policy_sets: sets } = (entry ?? {});
|
|
69
|
+
if (typeof slug !== 'string' || !sets || typeof sets !== 'object' || Array.isArray(sets))
|
|
70
|
+
continue;
|
|
71
|
+
out[slug] = Object.keys(sets).map((name) => ({
|
|
72
|
+
name,
|
|
73
|
+
agents: Object.values(grants).filter((agent) => agent.policySets[slug] === name).length,
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
return out;
|
|
77
|
+
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DiscoverSectionsPage, PipedreamCategory } from '@kortix/sdk';
|
|
2
2
|
import { type CatalogEntry } from './catalog-entry.js';
|
|
3
3
|
import type { CatalogSection } from './use-catalog.js';
|
|
4
|
-
|
|
5
|
-
provider?: 'composio' | 'pipedream';
|
|
6
|
-
};
|
|
7
|
-
/** The browse page in one shape for every catalogue, cards already mapped. */
|
|
4
|
+
/** The browse page, cards already mapped. */
|
|
8
5
|
export interface BrowseSectionsPage {
|
|
9
6
|
/** The top of the whole catalogue by rank. Only Discover ranks its apps. */
|
|
10
7
|
popular: CatalogEntry[];
|
|
@@ -16,24 +13,6 @@ export interface BrowseSectionsPage {
|
|
|
16
13
|
}>;
|
|
17
14
|
categories: PipedreamCategory[];
|
|
18
15
|
}
|
|
19
|
-
/** A Composio toolkit as the card the Easy Connect grid renders. The paged
|
|
20
|
-
* catalogue and the browse sections both use this, so a card is identical in
|
|
21
|
-
* a section and behind its "View all". */
|
|
22
|
-
export declare function connectToolkitApp(toolkit: ConnectToolkit): EasyConnectApp;
|
|
23
|
-
/**
|
|
24
|
-
* The Composio browse page.
|
|
25
|
-
*
|
|
26
|
-
* Labels are replaced by keys. Composio's category names are lowercase
|
|
27
|
-
* ("server monitoring"), and the paged grid titles a category by humanizing its
|
|
28
|
-
* key — so titling by key keeps a section heading and the header of the
|
|
29
|
-
* category it opens spelling the same name.
|
|
30
|
-
*/
|
|
31
|
-
export declare function sectionsPageFromConnect(page: ConnectSectionsPage): BrowseSectionsPage;
|
|
32
|
-
/** The Pipedream browse page. Pipedream publishes readable labels, kept as-is. */
|
|
33
|
-
export declare function sectionsPageFromPipedream(page: {
|
|
34
|
-
sections: PipedreamSection[];
|
|
35
|
-
categories: PipedreamCategory[];
|
|
36
|
-
}): BrowseSectionsPage;
|
|
37
16
|
/**
|
|
38
17
|
* The Discover browse page. Titled by key: Discover sections are the shared
|
|
39
18
|
* curated buckets, and `localizedSectionTitle` resolves a curated key to our
|
|
@@ -49,14 +28,8 @@ export declare function sectionsPageFromDiscover(page: DiscoverSectionsPage): Br
|
|
|
49
28
|
* Popular leads when the catalogue ranks anything. It is a per-item rank, not a
|
|
50
29
|
* category, so its total is its own slice and it never offers "View all" into a
|
|
51
30
|
* bucket with no more members.
|
|
52
|
-
*
|
|
53
|
-
* `native` is the Computers card. No catalogue publishes it, and the browse
|
|
54
|
-
* page is where it is discovered, so it leads the section for the category it
|
|
55
|
-
* claims. It does not change that section's `total`, which counts the
|
|
56
|
-
* catalogue the heading's "View all" opens.
|
|
57
31
|
*/
|
|
58
32
|
export declare function browseSections(page: BrowseSectionsPage, opts: {
|
|
59
|
-
native: CatalogEntry | null;
|
|
60
33
|
cardCount: number;
|
|
61
34
|
title: (label: string) => string;
|
|
62
35
|
}): CatalogSection[];
|
|
@@ -1,61 +1,5 @@
|
|
|
1
|
-
import { catalogEntryFromDiscover
|
|
1
|
+
import { catalogEntryFromDiscover } from './catalog-entry.js';
|
|
2
2
|
import { POPULAR_SECTION } from './connector-categories.js';
|
|
3
|
-
/** A Composio toolkit as the card the Easy Connect grid renders. The paged
|
|
4
|
-
* catalogue and the browse sections both use this, so a card is identical in
|
|
5
|
-
* a section and behind its "View all". */
|
|
6
|
-
export function connectToolkitApp(toolkit) {
|
|
7
|
-
return {
|
|
8
|
-
slug: toolkit.slug,
|
|
9
|
-
name: toolkit.name,
|
|
10
|
-
description: toolkit.description ?? null,
|
|
11
|
-
imgSrc: toolkit.logo,
|
|
12
|
-
authType: toolkit.isNoAuth ? 'none' : 'oauth',
|
|
13
|
-
categories: toolkit.categories ?? [],
|
|
14
|
-
hasActions: true,
|
|
15
|
-
hasTriggers: false,
|
|
16
|
-
featuredWeight: 0,
|
|
17
|
-
provider: 'composio',
|
|
18
|
-
directId: toolkit.directId ?? null,
|
|
19
|
-
directMcpUrl: toolkit.directMcpUrl ?? null,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* The Composio browse page.
|
|
24
|
-
*
|
|
25
|
-
* Labels are replaced by keys. Composio's category names are lowercase
|
|
26
|
-
* ("server monitoring"), and the paged grid titles a category by humanizing its
|
|
27
|
-
* key — so titling by key keeps a section heading and the header of the
|
|
28
|
-
* category it opens spelling the same name.
|
|
29
|
-
*/
|
|
30
|
-
export function sectionsPageFromConnect(page) {
|
|
31
|
-
return {
|
|
32
|
-
popular: [],
|
|
33
|
-
sections: page.sections.map((section) => ({
|
|
34
|
-
key: section.key,
|
|
35
|
-
label: section.key,
|
|
36
|
-
total: section.total,
|
|
37
|
-
items: section.toolkits.map((toolkit) => catalogEntryFromEasyConnect(connectToolkitApp(toolkit))),
|
|
38
|
-
})),
|
|
39
|
-
categories: page.categories.map((category) => ({
|
|
40
|
-
key: category.key,
|
|
41
|
-
label: category.key,
|
|
42
|
-
count: category.count,
|
|
43
|
-
})),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/** The Pipedream browse page. Pipedream publishes readable labels, kept as-is. */
|
|
47
|
-
export function sectionsPageFromPipedream(page) {
|
|
48
|
-
return {
|
|
49
|
-
popular: [],
|
|
50
|
-
sections: page.sections.map((section) => ({
|
|
51
|
-
key: section.key,
|
|
52
|
-
label: section.label,
|
|
53
|
-
total: section.total,
|
|
54
|
-
items: section.apps.map(catalogEntryFromEasyConnect),
|
|
55
|
-
})),
|
|
56
|
-
categories: page.categories,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
3
|
/**
|
|
60
4
|
* The Discover browse page. Titled by key: Discover sections are the shared
|
|
61
5
|
* curated buckets, and `localizedSectionTitle` resolves a curated key to our
|
|
@@ -86,14 +30,8 @@ export function sectionsPageFromDiscover(page) {
|
|
|
86
30
|
* Popular leads when the catalogue ranks anything. It is a per-item rank, not a
|
|
87
31
|
* category, so its total is its own slice and it never offers "View all" into a
|
|
88
32
|
* bucket with no more members.
|
|
89
|
-
*
|
|
90
|
-
* `native` is the Computers card. No catalogue publishes it, and the browse
|
|
91
|
-
* page is where it is discovered, so it leads the section for the category it
|
|
92
|
-
* claims. It does not change that section's `total`, which counts the
|
|
93
|
-
* catalogue the heading's "View all" opens.
|
|
94
33
|
*/
|
|
95
34
|
export function browseSections(page, opts) {
|
|
96
|
-
const nativeKeys = new Set((opts.native?.categories ?? []).map(foldKey));
|
|
97
35
|
const popularItems = page.popular.slice(0, opts.cardCount);
|
|
98
36
|
const popular = popularItems.length > 0
|
|
99
37
|
? [
|
|
@@ -105,15 +43,10 @@ export function browseSections(page, opts) {
|
|
|
105
43
|
},
|
|
106
44
|
]
|
|
107
45
|
: [];
|
|
108
|
-
return popular.concat(page.sections.map((section) => {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
label: opts.title(section.label),
|
|
115
|
-
total: section.total,
|
|
116
|
-
items: withNative.slice(0, opts.cardCount),
|
|
117
|
-
};
|
|
118
|
-
}));
|
|
46
|
+
return popular.concat(page.sections.map((section) => ({
|
|
47
|
+
key: section.key,
|
|
48
|
+
label: opts.title(section.label),
|
|
49
|
+
total: section.total,
|
|
50
|
+
items: section.items.slice(0, opts.cardCount),
|
|
51
|
+
})));
|
|
119
52
|
}
|
|
@@ -1,51 +1,26 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
1
|
+
import type { AdminConnector, ConnectToolkit, DiscoverConnector, PipedreamApp } from '@kortix/sdk';
|
|
2
|
+
import { type ConnectorLogoSource } from '../../../internal/connector-logo/connector-logo-source.js';
|
|
3
3
|
import { POPULAR_SECTION } from './connector-categories.js';
|
|
4
|
-
/**
|
|
5
|
-
* Which catalogue an entry came from. This is not cosmetic — it decides which
|
|
6
|
-
* install the app page's Install runs. A `discover` entry installs from its
|
|
7
|
-
* template (`discoverInstallTarget`); an `easy-connect` entry installs as a
|
|
8
|
-
* managed OAuth app via Pipedream (`easyConnectInstallTarget`). The two build
|
|
9
|
-
* different connectors and cannot be swapped.
|
|
10
|
-
*/
|
|
11
|
-
export type CatalogSource = 'discover' | 'easy-connect';
|
|
12
4
|
interface CatalogEntryFields {
|
|
13
|
-
/** Stable React key
|
|
14
|
-
* independent namespaces and both publish a `slack`. */
|
|
5
|
+
/** Stable React key: `discover:<record id>`. */
|
|
15
6
|
key: string;
|
|
16
7
|
slug: string;
|
|
17
8
|
name: string;
|
|
18
9
|
description: string | null;
|
|
19
10
|
icon: string | null;
|
|
20
11
|
categories: string[];
|
|
21
|
-
/**
|
|
22
|
-
* `null`, which keeps them out of the Popular section rather than sorting
|
|
23
|
-
* them to the bottom of it. */
|
|
12
|
+
/** The catalogue's rank; `null` keeps a record out of the Popular section. */
|
|
24
13
|
popularity: number | null;
|
|
25
14
|
}
|
|
26
15
|
/**
|
|
27
|
-
* One card in the catalogue
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* The raw item rides along on the union arm so the page can hand it straight
|
|
32
|
-
* back to the matching add flow without a lookup.
|
|
16
|
+
* One card in the catalogue: a Discover record (Kortix apps, integrations.sh
|
|
17
|
+
* servers and APIs, Composio apps). The raw record rides along so the page can
|
|
18
|
+
* hand it straight to the install flow without a lookup.
|
|
33
19
|
*/
|
|
34
|
-
export type CatalogEntry =
|
|
20
|
+
export type CatalogEntry = CatalogEntryFields & {
|
|
35
21
|
source: 'discover';
|
|
36
22
|
connector: DiscoverConnector;
|
|
37
|
-
|
|
38
|
-
alsoApp?: boolean;
|
|
39
|
-
}) | (CatalogEntryFields & {
|
|
40
|
-
source: 'easy-connect';
|
|
41
|
-
app: PipedreamApp & {
|
|
42
|
-
provider?: 'composio' | 'pipedream';
|
|
43
|
-
};
|
|
44
|
-
}) | (CatalogEntryFields & {
|
|
45
|
-
source: 'computer';
|
|
46
|
-
});
|
|
47
|
-
/** Native platform provider. Each member's paired machine is one of its accounts. */
|
|
48
|
-
export declare function computersCatalogEntry(tI18nComplete: UiTranslator): CatalogEntry;
|
|
23
|
+
};
|
|
49
24
|
/**
|
|
50
25
|
* The icon URL a Discover record's card loads.
|
|
51
26
|
*
|
|
@@ -60,10 +35,14 @@ export declare function computersCatalogEntry(tI18nComplete: UiTranslator): Cata
|
|
|
60
35
|
* reads the same as the glyph it replaced.
|
|
61
36
|
*/
|
|
62
37
|
export declare function discoverEntryIcon(connector: Pick<DiscoverConnector, 'icon' | 'domain'>): string | null;
|
|
63
|
-
export
|
|
64
|
-
export declare function catalogEntryFromEasyConnect(app: PipedreamApp & {
|
|
38
|
+
export type EasyConnectApp = PipedreamApp & {
|
|
65
39
|
provider?: 'composio' | 'pipedream';
|
|
66
|
-
}
|
|
40
|
+
};
|
|
41
|
+
/** A Composio toolkit as the card the Easy Connect grid renders. The paged
|
|
42
|
+
* catalogue and the browse sections both use this, so a card is identical in
|
|
43
|
+
* a section and behind its "View all". */
|
|
44
|
+
export declare function connectToolkitApp(toolkit: ConnectToolkit): EasyConnectApp;
|
|
45
|
+
export declare function catalogEntryFromDiscover(connector: DiscoverConnector): CatalogEntry;
|
|
67
46
|
/**
|
|
68
47
|
* The one fact that varies between cards: HOW this entry connects. Short
|
|
69
48
|
* nouns, shown as the card's quiet line under the title — every card gets
|
|
@@ -123,3 +102,5 @@ export declare function catalogEntryConnectors(connectors: readonly AdminConnect
|
|
|
123
102
|
* `browseSections` in `browse-sections.ts`. Defined in `connector-categories.ts`
|
|
124
103
|
* and re-exported here for the modules that already import this one. */
|
|
125
104
|
export { POPULAR_SECTION };
|
|
105
|
+
/** The logo source of a catalogue card (`ConnectorLogo`): same rule as every other surface. */
|
|
106
|
+
export declare function catalogEntryLogoSource(entry: CatalogEntry): ConnectorLogoSource;
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { faviconUrlForHostname } from '../../../lib/favicon.js';
|
|
2
|
+
import { discoverLogoSource } from '../../../internal/connector-logo/connector-logo-source.js';
|
|
2
3
|
import { POPULAR_SECTION } from './connector-categories.js';
|
|
3
|
-
/** Native platform provider. Each member's paired machine is one of its accounts. */
|
|
4
|
-
export function computersCatalogEntry(tI18nComplete) {
|
|
5
|
-
return {
|
|
6
|
-
source: 'computer',
|
|
7
|
-
key: 'computer:computers',
|
|
8
|
-
slug: 'computers',
|
|
9
|
-
name: 'Computer',
|
|
10
|
-
description: tI18nComplete.raw('text070855f4fe8d'),
|
|
11
|
-
icon: null,
|
|
12
|
-
categories: ['developer-tools'],
|
|
13
|
-
popularity: null,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
4
|
/**
|
|
17
5
|
* The icon URL a Discover record's card loads.
|
|
18
6
|
*
|
|
@@ -29,6 +17,25 @@ export function computersCatalogEntry(tI18nComplete) {
|
|
|
29
17
|
export function discoverEntryIcon(connector) {
|
|
30
18
|
return connector.icon ?? faviconUrlForHostname(connector.domain);
|
|
31
19
|
}
|
|
20
|
+
/** A Composio toolkit as the card the Easy Connect grid renders. The paged
|
|
21
|
+
* catalogue and the browse sections both use this, so a card is identical in
|
|
22
|
+
* a section and behind its "View all". */
|
|
23
|
+
export function connectToolkitApp(toolkit) {
|
|
24
|
+
return {
|
|
25
|
+
slug: toolkit.slug,
|
|
26
|
+
name: toolkit.name,
|
|
27
|
+
description: toolkit.description ?? null,
|
|
28
|
+
imgSrc: toolkit.logo,
|
|
29
|
+
authType: toolkit.isNoAuth ? 'none' : 'oauth',
|
|
30
|
+
categories: toolkit.categories ?? [],
|
|
31
|
+
hasActions: true,
|
|
32
|
+
hasTriggers: false,
|
|
33
|
+
featuredWeight: 0,
|
|
34
|
+
provider: 'composio',
|
|
35
|
+
directId: toolkit.directId ?? null,
|
|
36
|
+
directMcpUrl: toolkit.directMcpUrl ?? null,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
32
39
|
export function catalogEntryFromDiscover(connector) {
|
|
33
40
|
return {
|
|
34
41
|
source: 'discover',
|
|
@@ -42,19 +49,6 @@ export function catalogEntryFromDiscover(connector) {
|
|
|
42
49
|
popularity: connector.popularity,
|
|
43
50
|
};
|
|
44
51
|
}
|
|
45
|
-
export function catalogEntryFromEasyConnect(app) {
|
|
46
|
-
return {
|
|
47
|
-
source: 'easy-connect',
|
|
48
|
-
app,
|
|
49
|
-
key: `easy-connect:${app.slug}`,
|
|
50
|
-
slug: app.slug,
|
|
51
|
-
name: app.name,
|
|
52
|
-
description: app.description,
|
|
53
|
-
icon: app.imgSrc,
|
|
54
|
-
categories: app.categories,
|
|
55
|
-
popularity: null,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
52
|
/**
|
|
59
53
|
* The one fact that varies between cards: HOW this entry connects. Short
|
|
60
54
|
* nouns, shown as the card's quiet line under the title — every card gets
|
|
@@ -73,20 +67,15 @@ export function appNameKey(name) {
|
|
|
73
67
|
.replace(/(mcp|mcpserver)$/, '');
|
|
74
68
|
}
|
|
75
69
|
export function catalogEntryKindLabel(entry) {
|
|
76
|
-
if (entry.source === 'computer')
|
|
77
|
-
return 'Native';
|
|
78
|
-
// An app with both ways to connect names both.
|
|
79
|
-
if (entry.source === 'easy-connect')
|
|
80
|
-
return entry.app?.directId ? 'App · MCP' : 'App';
|
|
81
|
-
if (entry.alsoApp && entry.connector.kind === 'mcp')
|
|
82
|
-
return 'MCP · App';
|
|
83
70
|
switch (entry.connector.kind) {
|
|
71
|
+
case 'composio':
|
|
72
|
+
return 'Composio';
|
|
73
|
+
case 'kortix':
|
|
74
|
+
return 'Kortix';
|
|
84
75
|
case 'mcp':
|
|
85
76
|
return 'MCP';
|
|
86
77
|
case 'graphql':
|
|
87
78
|
return 'GraphQL';
|
|
88
|
-
case 'cli':
|
|
89
|
-
return 'CLI';
|
|
90
79
|
default:
|
|
91
80
|
return 'API';
|
|
92
81
|
}
|
|
@@ -149,8 +138,6 @@ export function connectedCatalogKeys(connectors) {
|
|
|
149
138
|
return keys;
|
|
150
139
|
}
|
|
151
140
|
export function isCatalogEntryConnected(entry, connectedKeys) {
|
|
152
|
-
if (entry.source === 'computer')
|
|
153
|
-
return connectedKeys.has('provider:computer');
|
|
154
141
|
return connectedKeys.has(foldKey(entry.slug)) || connectedKeys.has(foldKey(entry.name));
|
|
155
142
|
}
|
|
156
143
|
/**
|
|
@@ -177,9 +164,6 @@ function tokenIdentifiesEntry(connectorToken, entryToken) {
|
|
|
177
164
|
* `install/install.ts`.
|
|
178
165
|
*/
|
|
179
166
|
export function catalogEntryConnectors(connectors, entry) {
|
|
180
|
-
if (entry.source === 'computer') {
|
|
181
|
-
return connectors.filter((connector) => connector.provider === 'computer');
|
|
182
|
-
}
|
|
183
167
|
const tokens = [foldKey(entry.slug), foldKey(entry.name)].filter(Boolean);
|
|
184
168
|
return connectors.filter((connector) => [foldKey(connector.slug), foldKey(connector.name ?? '')].some((connectorToken) => tokens.some((token) => tokenIdentifiesEntry(connectorToken, token))));
|
|
185
169
|
}
|
|
@@ -187,3 +171,7 @@ export function catalogEntryConnectors(connectors, entry) {
|
|
|
187
171
|
* `browseSections` in `browse-sections.ts`. Defined in `connector-categories.ts`
|
|
188
172
|
* and re-exported here for the modules that already import this one. */
|
|
189
173
|
export { POPULAR_SECTION };
|
|
174
|
+
/** The logo source of a catalogue card (`ConnectorLogo`): same rule as every other surface. */
|
|
175
|
+
export function catalogEntryLogoSource(entry) {
|
|
176
|
+
return discoverLogoSource(entry.connector);
|
|
177
|
+
}
|
|
@@ -10,34 +10,6 @@ export interface CatalogInstall {
|
|
|
10
10
|
pendingKey: string | null;
|
|
11
11
|
onInstall: (entry: CatalogEntry) => void;
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
14
|
-
* A catalog favicon, or a neutral glyph tile when the record has none or its
|
|
15
|
-
* URL fails to load.
|
|
16
|
-
*
|
|
17
|
-
* A plain `<img>`, not `next/image`. These are third-party favicons on
|
|
18
|
-
* arbitrary hosts, so the loader was already bypassed with `unoptimized` — which
|
|
19
|
-
* left `fill` costing an absolutely-positioned child inside a `relative`
|
|
20
|
-
* wrapper, per card, for no optimisation in return. Native `loading="lazy"`
|
|
21
|
-
* defers every icon below the fold, which is most of them on a browse page.
|
|
22
|
-
*
|
|
23
|
-
* `width`/`height` are set so the box is reserved before the image arrives and
|
|
24
|
-
* the grid never reflows around a late favicon.
|
|
25
|
-
*
|
|
26
|
-
* The broken-image state is the fallback the null case already had: a logo
|
|
27
|
-
* URL that 404s used to render the browser's broken-image glyph inside the
|
|
28
|
-
* tile, which is worse than no imagery at all. `onError` swaps to the same
|
|
29
|
-
* glyph tile — the same fallback a record with no icon gets, so "missing" and
|
|
30
|
-
* "unavailable" look identical. Mirrors `ConnectorAppIcon`'s broken state.
|
|
31
|
-
*
|
|
32
|
-
* The latch is per URL (`failedUrl`, not a boolean): a URL that failed stays
|
|
33
|
-
* failed, while a swapped URL gets a fresh try without any call-site key —
|
|
34
|
-
* merge-search swaps a merged twin's icon to the managed logo as catalogue
|
|
35
|
-
* pages stream in.
|
|
36
|
-
*/
|
|
37
|
-
export declare function ConnectorIcon({ icon, computer, }: {
|
|
38
|
-
icon: string | null;
|
|
39
|
-
computer?: boolean;
|
|
40
|
-
}): import("react").JSX.Element;
|
|
41
13
|
/**
|
|
42
14
|
* The catalogue body: one flat, paginated, searchable grid.
|
|
43
15
|
*
|
|
@@ -46,12 +18,11 @@ export declare function ConnectorIcon({ icon, computer, }: {
|
|
|
46
18
|
* no per-category deepening loop, no reveal window uncovering already-loaded
|
|
47
19
|
* cards.
|
|
48
20
|
*/
|
|
49
|
-
export declare function ConnectorBrowse({ state, connectedKeys, hrefFor,
|
|
21
|
+
export declare function ConnectorBrowse({ state, connectedKeys, hrefFor, install, emptyTitle, emptyDescription, suppressNoMatch, }: {
|
|
50
22
|
state: CatalogState;
|
|
51
23
|
connectedKeys: ReadonlySet<string>;
|
|
52
|
-
/** The card's page
|
|
53
|
-
hrefFor: (entry: CatalogEntry) => string
|
|
54
|
-
onOpen: (entry: CatalogEntry) => void;
|
|
24
|
+
/** The card's app page. */
|
|
25
|
+
hrefFor: (entry: CatalogEntry) => string;
|
|
55
26
|
install: CatalogInstall;
|
|
56
27
|
emptyTitle: string;
|
|
57
28
|
emptyDescription: string;
|