@kortix/ui 0.0.0-stage → 0.14.4
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 +347 -2
- package/dist/_vendor/kortix-shared.js +10838 -0
- package/dist/_vendor/shared/channel-header.d.ts +12 -0
- package/dist/_vendor/shared/channel-message.d.ts +38 -0
- package/dist/_vendor/shared/chat-mention.d.ts +6 -0
- package/dist/_vendor/shared/code-language.d.ts +25 -0
- package/dist/_vendor/shared/connector-sections.d.ts +180 -0
- package/dist/_vendor/shared/constants/auto-topup.d.ts +13 -0
- package/dist/_vendor/shared/constants/upload-limits.d.ts +23 -0
- package/dist/_vendor/shared/file-tags.d.ts +28 -0
- package/dist/_vendor/shared/index.d.ts +28 -0
- package/dist/_vendor/shared/markdown-math.d.ts +46 -0
- package/dist/_vendor/shared/meta-agent.d.ts +7 -0
- package/dist/_vendor/shared/pasted-content.d.ts +38 -0
- package/dist/_vendor/shared/project-glyphs.d.ts +93 -0
- package/dist/_vendor/shared/prompt-attachments.d.ts +20 -0
- package/dist/_vendor/shared/reminder-prompt.d.ts +21 -0
- package/dist/_vendor/shared/room-prompt.d.ts +66 -0
- package/dist/_vendor/shared/runtime-versions.d.ts +57 -0
- package/dist/_vendor/shared/session-attachments.d.ts +8 -0
- package/dist/_vendor/shared/slack-text.d.ts +21 -0
- package/dist/_vendor/shared/tag-blocks.d.ts +118 -0
- package/dist/_vendor/shared/tool-output/background-workers.d.ts +11 -0
- package/dist/_vendor/shared/tool-output/diagnostics.d.ts +25 -0
- package/dist/_vendor/shared/tool-output/index.d.ts +25 -0
- package/dist/_vendor/shared/tool-output/markdown-detect.d.ts +18 -0
- package/dist/_vendor/shared/tool-output/media-path.d.ts +15 -0
- package/dist/_vendor/shared/tool-output/memory-entry.d.ts +55 -0
- package/dist/_vendor/shared/tool-output/memory-search.d.ts +41 -0
- package/dist/_vendor/shared/tool-output/projects.d.ts +81 -0
- package/dist/_vendor/shared/tool-output/scan.d.ts +39 -0
- package/dist/_vendor/shared/tool-output/session-dump.d.ts +62 -0
- package/dist/_vendor/shared/tool-output/session-get.d.ts +47 -0
- package/dist/_vendor/shared/tool-output/session-search.d.ts +15 -0
- package/dist/_vendor/shared/tool-output/skill.d.ts +6 -0
- package/dist/_vendor/shared/tool-output/tags.d.ts +19 -0
- package/dist/_vendor/shared/tool-output/triggers.d.ts +22 -0
- package/dist/_vendor/shared/tools/html-text.d.ts +12 -0
- package/dist/_vendor/shared/tools/index.d.ts +6 -0
- package/dist/_vendor/shared/tools/safe-url.d.ts +9 -0
- package/dist/_vendor/shared/tools/tool-registry-lookup.d.ts +2 -0
- package/dist/_vendor/shared/trigger-event.d.ts +21 -0
- package/dist/_vendor/shared/utils/ambiguous-write.d.ts +32 -0
- package/dist/_vendor/shared/utils/chalk-colors.d.ts +15 -0
- package/dist/_vendor/shared/utils/configure-prompts.d.ts +11 -0
- package/dist/_vendor/shared/utils/credit-formatter.d.ts +53 -0
- package/dist/_vendor/shared/utils/format-relative.d.ts +27 -0
- package/dist/_vendor/shared/utils/index.d.ts +12 -0
- package/dist/_vendor/shared/utils/json.d.ts +24 -0
- package/dist/_vendor/shared/utils/string.d.ts +18 -0
- package/dist/_vendor/shared/utils/unicode.d.ts +41 -0
- package/dist/_vendor/shared/utils/url-autolink.d.ts +48 -0
- package/dist/_vendor/shared/webhook-signing.d.ts +14 -0
- package/dist/access/access/access-detail-shell.d.ts +34 -0
- package/dist/access/access/access-detail-shell.js +22 -0
- package/dist/access/access/access-dialog-share.d.ts +54 -0
- package/dist/access/access/access-dialog-share.js +206 -0
- package/dist/access/access/access-dialog.d.ts +207 -0
- package/dist/access/access/access-dialog.js +982 -0
- package/dist/access/access/access-row.d.ts +106 -0
- package/dist/access/access/access-row.js +79 -0
- package/dist/access/access/access-shared.d.ts +86 -0
- package/dist/access/access/access-shared.js +143 -0
- package/dist/access/access/account-role-editor.d.ts +52 -0
- package/dist/access/access/account-role-editor.js +63 -0
- package/dist/access/access/agent-principals.d.ts +97 -0
- package/dist/access/access/agent-principals.js +210 -0
- package/dist/access/access/copy-row.d.ts +19 -0
- package/dist/access/access/copy-row.js +41 -0
- package/dist/access/access/index.d.ts +9 -0
- package/dist/access/access/index.js +16 -0
- package/dist/access/access/principal-picker.d.ts +90 -0
- package/dist/access/access/principal-picker.js +271 -0
- package/dist/access/access/project-select.d.ts +41 -0
- package/dist/access/access/project-select.js +59 -0
- package/dist/access/access/role-select.d.ts +108 -0
- package/dist/access/access/role-select.js +199 -0
- package/dist/access/iam/add-github-account-dialog.d.ts +33 -0
- package/dist/access/iam/add-github-account-dialog.js +51 -0
- package/dist/access/iam/api-key-expiry.d.ts +53 -0
- package/dist/access/iam/api-key-expiry.js +68 -0
- package/dist/access/iam/api-key-rows.d.ts +161 -0
- package/dist/access/iam/api-key-rows.js +178 -0
- package/dist/access/iam/managed-git-notice.d.ts +2 -0
- package/dist/access/iam/managed-git-notice.js +44 -0
- package/dist/access/iam/session-oversight-card.d.ts +4 -0
- package/dist/access/iam/session-oversight-card.js +52 -0
- package/dist/access/index.d.ts +7 -0
- package/dist/access/index.js +7 -0
- package/dist/access/sandbox-template-menu.d.ts +41 -0
- package/dist/access/sandbox-template-menu.js +69 -0
- package/dist/access/sharing-intent.d.ts +31 -0
- package/dist/access/sharing-intent.js +28 -0
- package/dist/access/sharing-picker.d.ts +55 -0
- package/dist/access/sharing-picker.js +61 -0
- package/dist/animated-copy-icon.d.ts +5 -0
- package/dist/animated-copy-icon.js +6 -0
- package/dist/apps/app-preview-pool.d.ts +31 -0
- package/dist/apps/app-preview-pool.js +157 -0
- package/dist/apps/app-preview.d.ts +128 -0
- package/dist/apps/app-preview.js +258 -0
- package/dist/apps/app-shared.d.ts +154 -0
- package/dist/apps/app-shared.js +213 -0
- package/dist/apps/index.d.ts +7 -0
- package/dist/apps/index.js +7 -0
- package/dist/apps/kortix-app-url.d.ts +7 -0
- package/dist/apps/kortix-app-url.js +20 -0
- package/dist/browser/app-in-browser.d.ts +20 -0
- package/dist/browser/app-in-browser.js +79 -0
- package/dist/browser/browser-landing.d.ts +32 -0
- package/dist/browser/browser-landing.js +103 -0
- package/dist/browser/browser-panel.d.ts +15 -0
- package/dist/browser/browser-panel.js +317 -0
- package/dist/browser/index.d.ts +5 -0
- package/dist/browser/index.js +5 -0
- package/dist/browser/sandbox-browser-chrome.d.ts +69 -0
- package/dist/browser/sandbox-browser-chrome.js +149 -0
- package/dist/changes/change-list.d.ts +50 -0
- package/dist/changes/change-list.js +129 -0
- package/dist/changes/change-vocabulary.d.ts +154 -0
- package/dist/changes/change-vocabulary.js +289 -0
- package/dist/changes/index.d.ts +2 -0
- package/dist/changes/index.js +2 -0
- package/dist/customize/agents/agent-apps-grant.d.ts +19 -0
- package/dist/customize/agents/agent-apps-grant.js +23 -0
- package/dist/customize/agents/agent-authority-card.d.ts +8 -0
- package/dist/customize/agents/agent-authority-card.js +46 -0
- package/dist/customize/agents/agent-detail-aside.d.ts +81 -0
- package/dist/customize/agents/agent-detail-aside.js +249 -0
- package/dist/customize/agents/agent-drives-section.d.ts +11 -0
- package/dist/customize/agents/agent-drives-section.js +67 -0
- package/dist/customize/agents/agent-filter.d.ts +27 -0
- package/dist/customize/agents/agent-filter.js +32 -0
- package/dist/customize/agents/agent-grant-pages.d.ts +33 -0
- package/dist/customize/agents/agent-grant-pages.js +203 -0
- package/dist/customize/agents/agent-page.d.ts +4 -0
- package/dist/customize/agents/agent-page.js +453 -0
- package/dist/customize/agents/agent-people-section.d.ts +8 -0
- package/dist/customize/agents/agent-people-section.js +152 -0
- package/dist/customize/agents/agent-share-control.d.ts +6 -0
- package/dist/customize/agents/agent-share-control.js +63 -0
- package/dist/customize/agents/agent-status.d.ts +7 -0
- package/dist/customize/agents/agent-status.js +9 -0
- package/dist/customize/agents/agent-triggers-section.d.ts +17 -0
- package/dist/customize/agents/agent-triggers-section.js +107 -0
- package/dist/customize/agents/agents-page.d.ts +24 -0
- package/dist/customize/agents/agents-page.js +214 -0
- package/dist/customize/agents/use-agent-grants.d.ts +1 -0
- package/dist/customize/agents/use-agent-grants.js +13 -0
- package/dist/customize/agents/use-default-agent.d.ts +1 -0
- package/dist/customize/agents/use-default-agent.js +19 -0
- package/dist/customize/connectors/add-mcp/add-mcp-server-deps.d.ts +3 -0
- package/dist/customize/connectors/add-mcp/add-mcp-server-deps.js +25 -0
- package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.d.ts +20 -0
- package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.js +114 -0
- package/dist/customize/connectors/add-mcp/add-mcp-server.d.ts +77 -0
- package/dist/customize/connectors/add-mcp/add-mcp-server.js +97 -0
- package/dist/customize/connectors/catalog/browse-sections.d.ts +62 -0
- package/dist/customize/connectors/catalog/browse-sections.js +119 -0
- package/dist/customize/connectors/catalog/catalog-entry.d.ts +111 -0
- package/dist/customize/connectors/catalog/catalog-entry.js +172 -0
- package/dist/customize/connectors/catalog/catalog-foot.d.ts +24 -0
- package/dist/customize/connectors/catalog/catalog-foot.js +39 -0
- package/dist/customize/connectors/catalog/catalog-paging.d.ts +34 -0
- package/dist/customize/connectors/catalog/catalog-paging.js +33 -0
- package/dist/customize/connectors/catalog/connector-browse.d.ts +34 -0
- package/dist/customize/connectors/catalog/connector-browse.js +151 -0
- package/dist/customize/connectors/catalog/connector-categories.d.ts +20 -0
- package/dist/customize/connectors/catalog/connector-categories.js +25 -0
- package/dist/customize/connectors/catalog/merge-search.d.ts +10 -0
- package/dist/customize/connectors/catalog/merge-search.js +26 -0
- package/dist/customize/connectors/catalog/use-catalog-autoload.d.ts +29 -0
- package/dist/customize/connectors/catalog/use-catalog-autoload.js +79 -0
- package/dist/customize/connectors/catalog/use-catalog.d.ts +161 -0
- package/dist/customize/connectors/catalog/use-catalog.js +336 -0
- package/dist/customize/connectors/connector-filter.d.ts +80 -0
- package/dist/customize/connectors/connector-filter.js +79 -0
- package/dist/customize/connectors/connector-identity.d.ts +35 -0
- package/dist/customize/connectors/connector-identity.js +67 -0
- package/dist/customize/connectors/connector-moves-banner.d.ts +4 -0
- package/dist/customize/connectors/connector-moves-banner.js +25 -0
- package/dist/customize/connectors/connector-routes.d.ts +40 -0
- package/dist/customize/connectors/connector-routes.js +74 -0
- package/dist/customize/connectors/connectors-app-return-bar.d.ts +18 -0
- package/dist/customize/connectors/connectors-app-return-bar.js +56 -0
- package/dist/customize/connectors/connectors-page.d.ts +40 -0
- package/dist/customize/connectors/connectors-page.js +412 -0
- package/dist/customize/connectors/detail/account-info.d.ts +5 -0
- package/dist/customize/connectors/detail/account-info.js +24 -0
- package/dist/customize/connectors/detail/app-page.d.ts +4 -0
- package/dist/customize/connectors/detail/app-page.js +263 -0
- package/dist/customize/connectors/detail/connector-accounts.d.ts +51 -0
- package/dist/customize/connectors/detail/connector-accounts.js +42 -0
- package/dist/customize/connectors/detail/connector-advanced-tools.d.ts +13 -0
- package/dist/customize/connectors/detail/connector-advanced-tools.js +75 -0
- package/dist/customize/connectors/detail/connector-detail-tabs.d.ts +10 -0
- package/dist/customize/connectors/detail/connector-detail-tabs.js +18 -0
- package/dist/customize/connectors/detail/connector-header-cta.d.ts +23 -0
- package/dist/customize/connectors/detail/connector-header-cta.js +9 -0
- package/dist/customize/connectors/detail/connector-modal.d.ts +32 -0
- package/dist/customize/connectors/detail/connector-modal.js +117 -0
- package/dist/customize/connectors/detail/connector-move-row.d.ts +17 -0
- package/dist/customize/connectors/detail/connector-move-row.js +73 -0
- package/dist/customize/connectors/detail/connector-notice-view.d.ts +22 -0
- package/dist/customize/connectors/detail/connector-notice-view.js +22 -0
- package/dist/customize/connectors/detail/connector-notice.d.ts +76 -0
- package/dist/customize/connectors/detail/connector-notice.js +79 -0
- package/dist/customize/connectors/detail/connector-page-state.d.ts +57 -0
- package/dist/customize/connectors/detail/connector-page-state.js +51 -0
- package/dist/customize/connectors/detail/connector-page.d.ts +19 -0
- package/dist/customize/connectors/detail/connector-page.js +343 -0
- package/dist/customize/connectors/detail/connector-settings.d.ts +36 -0
- package/dist/customize/connectors/detail/connector-settings.js +81 -0
- package/dist/customize/connectors/detail/connector-status.d.ts +20 -0
- package/dist/customize/connectors/detail/connector-status.js +42 -0
- package/dist/customize/connectors/detail/connector-tabs.d.ts +29 -0
- package/dist/customize/connectors/detail/connector-tabs.js +39 -0
- package/dist/customize/connectors/detail/connector-tools.d.ts +37 -0
- package/dist/customize/connectors/detail/connector-tools.js +224 -0
- package/dist/customize/connectors/detail/connector-triggers.d.ts +24 -0
- package/dist/customize/connectors/detail/connector-triggers.js +57 -0
- package/dist/customize/connectors/detail/detail-page-shell.d.ts +6 -0
- package/dist/customize/connectors/detail/detail-page-shell.js +5 -0
- package/dist/customize/connectors/detail/find-easy-connect-app.d.ts +29 -0
- package/dist/customize/connectors/detail/find-easy-connect-app.js +22 -0
- package/dist/customize/connectors/detail/provider-info.d.ts +14 -0
- package/dist/customize/connectors/detail/provider-info.js +32 -0
- package/dist/customize/connectors/detail/status-badge.d.ts +5 -0
- package/dist/customize/connectors/detail/status-badge.js +16 -0
- package/dist/customize/connectors/detail/use-connector-detail.d.ts +37 -0
- package/dist/customize/connectors/detail/use-connector-detail.js +134 -0
- package/dist/customize/connectors/install/install-menu.d.ts +19 -0
- package/dist/customize/connectors/install/install-menu.js +14 -0
- package/dist/customize/connectors/install/install.d.ts +71 -0
- package/dist/customize/connectors/install/install.js +97 -0
- package/dist/customize/connectors/install/mcp-first.d.ts +15 -0
- package/dist/customize/connectors/install/mcp-first.js +17 -0
- package/dist/customize/connectors/install/pick-surface.d.ts +22 -0
- package/dist/customize/connectors/install/pick-surface.js +32 -0
- package/dist/customize/connectors/install/use-install.d.ts +28 -0
- package/dist/customize/connectors/install/use-install.js +126 -0
- package/dist/customize/connectors/invalidate-connections.d.ts +2 -0
- package/dist/customize/connectors/invalidate-connections.js +4 -0
- package/dist/customize/connectors/provider-label.d.ts +20 -0
- package/dist/customize/connectors/provider-label.js +41 -0
- package/dist/customize/connectors/tools/pattern-rule-draft.d.ts +40 -0
- package/dist/customize/connectors/tools/pattern-rule-draft.js +43 -0
- package/dist/customize/connectors/tools/tool-groups.d.ts +46 -0
- package/dist/customize/connectors/tools/tool-groups.js +55 -0
- package/dist/customize/connectors/tools/tool-policy-control.d.ts +30 -0
- package/dist/customize/connectors/tools/tool-policy-control.js +47 -0
- package/dist/customize/connectors/tools/tool-policy-labels.d.ts +30 -0
- package/dist/customize/connectors/tools/tool-policy-labels.js +42 -0
- package/dist/customize/connectors/tools/tool-policy.d.ts +83 -0
- package/dist/customize/connectors/tools/tool-policy.js +116 -0
- package/dist/customize/index.d.ts +13 -0
- package/dist/customize/index.js +13 -0
- package/dist/customize/migrate-to-v2/index.d.ts +6 -0
- package/dist/customize/migrate-to-v2/index.js +6 -0
- package/dist/customize/migrate-to-v2/migration-prompt.d.ts +28 -0
- package/dist/customize/migrate-to-v2/migration-prompt.js +260 -0
- package/dist/customize/migrate-to-v2/upgrade-defs.d.ts +30 -0
- package/dist/customize/migrate-to-v2/upgrade-defs.js +42 -0
- package/dist/customize/migrate-to-v2/upgrade-view.d.ts +32 -0
- package/dist/customize/migrate-to-v2/upgrade-view.js +152 -0
- package/dist/customize/migrate-to-v2/use-migrate-to-v2.d.ts +9 -0
- package/dist/customize/migrate-to-v2/use-migrate-to-v2.js +24 -0
- package/dist/customize/migrate-to-v2/use-run-upgrade.d.ts +18 -0
- package/dist/customize/migrate-to-v2/use-run-upgrade.js +16 -0
- package/dist/customize/models/app-return-bar.d.ts +20 -0
- package/dist/customize/models/app-return-bar.js +42 -0
- package/dist/customize/models/app-return.d.ts +8 -0
- package/dist/customize/models/app-return.js +11 -0
- package/dist/customize/models/models-page.d.ts +28 -0
- package/dist/customize/models/models-page.js +35 -0
- package/dist/customize/project-settings/project-settings-page.d.ts +106 -0
- package/dist/customize/project-settings/project-settings-page.js +286 -0
- package/dist/customize/project-settings/project-settings-sections.d.ts +84 -0
- package/dist/customize/project-settings/project-settings-sections.js +99 -0
- package/dist/customize/providers/provider-accordion.d.ts +54 -0
- package/dist/customize/providers/provider-accordion.js +296 -0
- package/dist/customize/providers/provider-connect.d.ts +106 -0
- package/dist/customize/providers/provider-connect.js +277 -0
- package/dist/customize/providers/provider-sheet.d.ts +88 -0
- package/dist/customize/providers/provider-sheet.js +301 -0
- package/dist/customize/secrets/secrets-page.d.ts +29 -0
- package/dist/customize/secrets/secrets-page.js +35 -0
- package/dist/customize/sections/add-account-fields.d.ts +39 -0
- package/dist/customize/sections/add-account-fields.js +39 -0
- package/dist/customize/sections/component/byo-wizard-modal.d.ts +13 -0
- package/dist/customize/sections/component/byo-wizard-modal.js +18 -0
- package/dist/customize/sections/component/channel-connect-hero.d.ts +27 -0
- package/dist/customize/sections/component/channel-connect-hero.js +19 -0
- package/dist/customize/sections/component/channel-row.d.ts +29 -0
- package/dist/customize/sections/component/channel-row.js +62 -0
- package/dist/customize/sections/component/config-entity-source-path.d.ts +1 -0
- package/dist/customize/sections/component/config-entity-source-path.js +3 -0
- package/dist/customize/sections/component/manifest-copy-block.d.ts +12 -0
- package/dist/customize/sections/component/manifest-copy-block.js +81 -0
- package/dist/customize/sections/component/section-wrapper.d.ts +32 -0
- package/dist/customize/sections/component/section-wrapper.js +52 -0
- package/dist/customize/sections/component/slack-byo-wizard.d.ts +5 -0
- package/dist/customize/sections/component/slack-byo-wizard.js +120 -0
- package/dist/customize/sections/component/slack-connect-card.d.ts +5 -0
- package/dist/customize/sections/component/slack-connect-card.js +54 -0
- package/dist/customize/sections/component/teams-byo-wizard.d.ts +7 -0
- package/dist/customize/sections/component/teams-byo-wizard.js +155 -0
- package/dist/customize/sections/component/teams-connect-card.d.ts +6 -0
- package/dist/customize/sections/component/teams-connect-card.js +49 -0
- package/dist/customize/sections/component/telegram-channel-row.d.ts +6 -0
- package/dist/customize/sections/component/telegram-channel-row.js +77 -0
- package/dist/customize/sections/connector-connection-form.d.ts +56 -0
- package/dist/customize/sections/connector-connection-form.js +148 -0
- package/dist/customize/sections/connector-connection-header.d.ts +36 -0
- package/dist/customize/sections/connector-connection-header.js +33 -0
- package/dist/customize/sections/connector-connection-modal.d.ts +34 -0
- package/dist/customize/sections/connector-connection-modal.js +70 -0
- package/dist/customize/sections/connector-credential-target.d.ts +29 -0
- package/dist/customize/sections/connector-credential-target.js +23 -0
- package/dist/customize/sections/connector-oauth2-application-fields.d.ts +6 -0
- package/dist/customize/sections/connector-oauth2-application-fields.js +14 -0
- package/dist/customize/sections/connector-oauth2-auto.d.ts +45 -0
- package/dist/customize/sections/connector-oauth2-auto.js +78 -0
- package/dist/customize/sections/connector-oauth2-fields.d.ts +7 -0
- package/dist/customize/sections/connector-oauth2-fields.js +14 -0
- package/dist/customize/sections/connector-oauth2-scope-fields.d.ts +7 -0
- package/dist/customize/sections/connector-oauth2-scope-fields.js +10 -0
- package/dist/customize/sections/connector-oauth2-start.d.ts +22 -0
- package/dist/customize/sections/connector-oauth2-start.js +40 -0
- package/dist/customize/sections/connector-oauth2.d.ts +50 -0
- package/dist/customize/sections/connector-oauth2.js +165 -0
- package/dist/customize/sections/connectors-view.d.ts +103 -0
- package/dist/customize/sections/connectors-view.js +1267 -0
- package/dist/customize/sections/discover-catalogue-card.d.ts +19 -0
- package/dist/customize/sections/discover-catalogue-card.js +26 -0
- package/dist/customize/sections/discover-catalogue-detail.d.ts +15 -0
- package/dist/customize/sections/discover-catalogue-detail.js +24 -0
- package/dist/customize/sections/discover-catalogue.d.ts +17 -0
- package/dist/customize/sections/discover-catalogue.js +132 -0
- package/dist/customize/sections/gateway-access-tab.d.ts +6 -0
- package/dist/customize/sections/gateway-access-tab.js +66 -0
- package/dist/customize/sections/gateway-view.d.ts +176 -0
- package/dist/customize/sections/gateway-view.js +244 -0
- package/dist/customize/sections/llm-provider/chatgpt-device-challenge.d.ts +6 -0
- package/dist/customize/sections/llm-provider/chatgpt-device-challenge.js +11 -0
- package/dist/customize/sections/llm-provider/chatgpt-subscription-connect.d.ts +66 -0
- package/dist/customize/sections/llm-provider/chatgpt-subscription-connect.js +163 -0
- package/dist/customize/sections/llm-provider/constants.d.ts +3 -0
- package/dist/customize/sections/llm-provider/constants.js +4 -0
- package/dist/customize/sections/llm-provider/custom-provider-form.d.ts +16 -0
- package/dist/customize/sections/llm-provider/custom-provider-form.js +114 -0
- package/dist/customize/sections/llm-provider/custom-provider-panel.d.ts +12 -0
- package/dist/customize/sections/llm-provider/custom-provider-panel.js +179 -0
- package/dist/customize/sections/llm-provider/device-grant.d.ts +15 -0
- package/dist/customize/sections/llm-provider/device-grant.js +53 -0
- package/dist/customize/sections/llm-provider/llm-provider-modal.d.ts +3 -0
- package/dist/customize/sections/llm-provider/llm-provider-modal.js +86 -0
- package/dist/customize/sections/llm-provider/model-capability-icons.d.ts +13 -0
- package/dist/customize/sections/llm-provider/model-capability-icons.js +23 -0
- package/dist/customize/sections/llm-provider/model-rows.d.ts +23 -0
- package/dist/customize/sections/llm-provider/model-rows.js +73 -0
- package/dist/customize/sections/llm-provider/models-tab-group.d.ts +6 -0
- package/dist/customize/sections/llm-provider/models-tab-group.js +36 -0
- package/dist/customize/sections/llm-provider/models-tab-row.d.ts +28 -0
- package/dist/customize/sections/llm-provider/models-tab-row.js +109 -0
- package/dist/customize/sections/llm-provider/models-tab.d.ts +13 -0
- package/dist/customize/sections/llm-provider/models-tab.js +94 -0
- package/dist/customize/sections/llm-provider/provider-access-menu.d.ts +10 -0
- package/dist/customize/sections/llm-provider/provider-access-menu.js +23 -0
- package/dist/customize/sections/llm-provider/provider-loading-state.d.ts +10 -0
- package/dist/customize/sections/llm-provider/provider-loading-state.js +3 -0
- package/dist/customize/sections/llm-provider/subscription-control.d.ts +42 -0
- package/dist/customize/sections/llm-provider/subscription-control.js +42 -0
- package/dist/customize/sections/llm-provider/types.d.ts +43 -0
- package/dist/customize/sections/llm-provider/types.js +1 -0
- package/dist/customize/sections/llm-provider/use-connected-providers.d.ts +6 -0
- package/dist/customize/sections/llm-provider/use-connected-providers.js +70 -0
- package/dist/customize/sections/llm-provider/use-live-catalog.d.ts +23 -0
- package/dist/customize/sections/llm-provider/use-live-catalog.js +44 -0
- package/dist/customize/sections/llm-provider/utils.d.ts +141 -0
- package/dist/customize/sections/llm-provider/utils.js +276 -0
- package/dist/customize/sections/models-page-sheet.d.ts +24 -0
- package/dist/customize/sections/models-page-sheet.js +34 -0
- package/dist/customize/sections/use-add-request.d.ts +11 -0
- package/dist/customize/sections/use-add-request.js +23 -0
- package/dist/customize/sections/use-create-custom-connector.d.ts +19 -0
- package/dist/customize/sections/use-create-custom-connector.js +36 -0
- package/dist/customize/sections/view/account-secret-resources-panel.d.ts +18 -0
- package/dist/customize/sections/view/account-secret-resources-panel.js +295 -0
- package/dist/customize/sections/view/agent-editor-access-fields.d.ts +63 -0
- package/dist/customize/sections/view/agent-editor-access-fields.js +129 -0
- package/dist/customize/sections/view/agent-editor-basics-fields.d.ts +37 -0
- package/dist/customize/sections/view/agent-editor-basics-fields.js +102 -0
- package/dist/customize/sections/view/agent-editor-catalog.d.ts +64 -0
- package/dist/customize/sections/view/agent-editor-catalog.js +234 -0
- package/dist/customize/sections/view/agent-editor-primitives.d.ts +73 -0
- package/dist/customize/sections/view/agent-editor-primitives.js +66 -0
- package/dist/customize/sections/view/agent-editor.d.ts +330 -0
- package/dist/customize/sections/view/agent-editor.js +358 -0
- package/dist/customize/sections/view/audience-badge.d.ts +18 -0
- package/dist/customize/sections/view/audience-badge.js +40 -0
- package/dist/customize/sections/view/channel-binding-tabs.d.ts +9 -0
- package/dist/customize/sections/view/channel-binding-tabs.js +14 -0
- package/dist/customize/sections/view/channel-settings-patch.d.ts +19 -0
- package/dist/customize/sections/view/channel-settings-patch.js +19 -0
- package/dist/customize/sections/view/channels-view.d.ts +3 -0
- package/dist/customize/sections/view/channels-view.js +611 -0
- package/dist/customize/sections/view/connector-connections.d.ts +87 -0
- package/dist/customize/sections/view/connector-connections.js +101 -0
- package/dist/customize/sections/view/connectors-personal.d.ts +13 -0
- package/dist/customize/sections/view/connectors-personal.js +22 -0
- package/dist/customize/sections/view/gateway/_metrics.d.ts +101 -0
- package/dist/customize/sections/view/gateway/_metrics.js +99 -0
- package/dist/customize/sections/view/gateway/_shared.d.ts +35 -0
- package/dist/customize/sections/view/gateway/_shared.js +50 -0
- package/dist/customize/sections/view/gateway/gateway-api-reference.d.ts +27 -0
- package/dist/customize/sections/view/gateway/gateway-api-reference.js +173 -0
- package/dist/customize/sections/view/gateway/gateway-budgets.d.ts +38 -0
- package/dist/customize/sections/view/gateway/gateway-budgets.js +270 -0
- package/dist/customize/sections/view/gateway/gateway-keys.d.ts +24 -0
- package/dist/customize/sections/view/gateway/gateway-keys.js +133 -0
- package/dist/customize/sections/view/gateway/gateway-logs.d.ts +111 -0
- package/dist/customize/sections/view/gateway/gateway-logs.js +500 -0
- package/dist/customize/sections/view/gateway/gateway-overview.d.ts +31 -0
- package/dist/customize/sections/view/gateway/gateway-overview.js +189 -0
- package/dist/customize/sections/view/gateway/gateway-routing.d.ts +30 -0
- package/dist/customize/sections/view/gateway/gateway-routing.js +500 -0
- package/dist/customize/sections/view/gateway/generation-controls.d.ts +22 -0
- package/dist/customize/sections/view/gateway/generation-controls.js +60 -0
- package/dist/customize/sections/view/git-view-helpers.d.ts +65 -0
- package/dist/customize/sections/view/git-view-helpers.js +81 -0
- package/dist/customize/sections/view/git-view.d.ts +38 -0
- package/dist/customize/sections/view/git-view.js +510 -0
- package/dist/customize/sections/view/grant-mode-field.d.ts +54 -0
- package/dist/customize/sections/view/grant-mode-field.js +97 -0
- package/dist/customize/sections/view/permission-editor.d.ts +13 -0
- package/dist/customize/sections/view/permission-editor.js +117 -0
- package/dist/customize/sections/view/review-center-connected.d.ts +3 -0
- package/dist/customize/sections/view/review-center-connected.js +250 -0
- package/dist/customize/sections/view/review-view.d.ts +8 -0
- package/dist/customize/sections/view/review-view.js +19 -0
- package/dist/customize/sections/view/sandbox-provider-coverage.d.ts +52 -0
- package/dist/customize/sections/view/sandbox-provider-coverage.js +85 -0
- package/dist/customize/sections/view/sandbox-provider-result.d.ts +47 -0
- package/dist/customize/sections/view/sandbox-provider-result.js +79 -0
- package/dist/customize/sections/view/secret-audience.d.ts +12 -0
- package/dist/customize/sections/view/secret-audience.js +42 -0
- package/dist/customize/sections/view/secret-delivery.d.ts +449 -0
- package/dist/customize/sections/view/secret-delivery.js +720 -0
- package/dist/customize/sections/view/secret-optimistic-cache.d.ts +19 -0
- package/dist/customize/sections/view/secret-optimistic-cache.js +60 -0
- package/dist/customize/sections/view/secrets-view.d.ts +60 -0
- package/dist/customize/sections/view/secrets-view.js +699 -0
- package/dist/customize/sections/view/undecryptable-value.d.ts +13 -0
- package/dist/customize/sections/view/undecryptable-value.js +18 -0
- package/dist/customize/settings/rail-copy-context.d.ts +20 -0
- package/dist/customize/settings/rail-copy-context.js +29 -0
- package/dist/customize/settings/rail.d.ts +51 -0
- package/dist/customize/settings/rail.js +246 -0
- package/dist/customize/settings/settings-tab-header.d.ts +30 -0
- package/dist/customize/settings/settings-tab-header.js +42 -0
- package/dist/customize/settings/settings-tabs.d.ts +121 -0
- package/dist/customize/settings/settings-tabs.js +353 -0
- package/dist/customize/settings/tabs/connected-apps.d.ts +13 -0
- package/dist/customize/settings/tabs/connected-apps.js +85 -0
- package/dist/customize/settings/tabs/experimental-tab.d.ts +110 -0
- package/dist/customize/settings/tabs/experimental-tab.js +277 -0
- package/dist/customize/settings/tabs/fact-cell.d.ts +10 -0
- package/dist/customize/settings/tabs/fact-cell.js +5 -0
- package/dist/customize/settings/tabs/general-tab.d.ts +102 -0
- package/dist/customize/settings/tabs/general-tab.js +290 -0
- package/dist/customize/settings/tabs/project-edit-patch.d.ts +83 -0
- package/dist/customize/settings/tabs/project-edit-patch.js +76 -0
- package/dist/customize/settings/tabs/sandbox-tab.d.ts +123 -0
- package/dist/customize/settings/tabs/sandbox-tab.js +338 -0
- package/dist/customize/settings/tabs/sandbox-template-form.d.ts +9 -0
- package/dist/customize/settings/tabs/sandbox-template-form.js +162 -0
- package/dist/customize/settings/tabs/snapshots-query.d.ts +11 -0
- package/dist/customize/settings/tabs/snapshots-query.js +16 -0
- package/dist/customize/settings/tabs/snapshots-tab.d.ts +142 -0
- package/dist/customize/settings/tabs/snapshots-tab.js +358 -0
- package/dist/customize/settings/tabs/tokens-tab.d.ts +32 -0
- package/dist/customize/settings/tabs/tokens-tab.js +418 -0
- package/dist/customize/settings/type.d.ts +42 -0
- package/dist/customize/settings/type.js +1 -0
- package/dist/customize/shared/app-return-url.d.ts +7 -0
- package/dist/customize/shared/app-return-url.js +36 -0
- package/dist/customize/shared/capability-access-gate.d.ts +19 -0
- package/dist/customize/shared/capability-access-gate.js +52 -0
- package/dist/customize/shared/capability-page-shell.d.ts +43 -0
- package/dist/customize/shared/capability-page-shell.js +26 -0
- package/dist/customize/shared/capability-scroll-root.d.ts +12 -0
- package/dist/customize/shared/capability-scroll-root.js +43 -0
- package/dist/customize/shared/capability-skeleton.d.ts +14 -0
- package/dist/customize/shared/capability-skeleton.js +19 -0
- package/dist/customize/shared/capability-tabs.d.ts +3 -0
- package/dist/customize/shared/capability-tabs.js +136 -0
- package/dist/customize/shared/catalog/catalog-card.d.ts +45 -0
- package/dist/customize/shared/catalog/catalog-card.js +31 -0
- package/dist/customize/shared/catalog/catalog-empty-state.d.ts +31 -0
- package/dist/customize/shared/catalog/catalog-empty-state.js +22 -0
- package/dist/customize/shared/catalog/catalog-empty.d.ts +18 -0
- package/dist/customize/shared/catalog/catalog-empty.js +22 -0
- package/dist/customize/shared/catalog/catalog-error.d.ts +9 -0
- package/dist/customize/shared/catalog/catalog-error.js +65 -0
- package/dist/customize/shared/catalog/catalog-grid-tokens.d.ts +58 -0
- package/dist/customize/shared/catalog/catalog-grid-tokens.js +58 -0
- package/dist/customize/shared/catalog/catalog-grid.d.ts +53 -0
- package/dist/customize/shared/catalog/catalog-grid.js +66 -0
- package/dist/customize/shared/detail-selection.d.ts +54 -0
- package/dist/customize/shared/detail-selection.js +11 -0
- package/dist/customize/shared/entity/entity-files.d.ts +26 -0
- package/dist/customize/shared/entity/entity-files.js +121 -0
- package/dist/customize/shared/entity/entity-modal.d.ts +58 -0
- package/dist/customize/shared/entity/entity-modal.js +144 -0
- package/dist/customize/shared/feature-gate-screen.d.ts +11 -0
- package/dist/customize/shared/feature-gate-screen.js +44 -0
- package/dist/customize/shared/new-entity-menu.d.ts +61 -0
- package/dist/customize/shared/new-entity-menu.js +41 -0
- package/dist/customize/shared/standalone-settings-nav.d.ts +38 -0
- package/dist/customize/shared/standalone-settings-nav.js +129 -0
- package/dist/customize/shared/use-customize-prefetch.d.ts +67 -0
- package/dist/customize/shared/use-customize-prefetch.js +231 -0
- package/dist/customize/shared/utils.d.ts +21 -0
- package/dist/customize/shared/utils.js +23 -0
- package/dist/customize/shared/with-search.d.ts +2 -0
- package/dist/customize/shared/with-search.js +10 -0
- package/dist/customize/skills/new-skill-modal.d.ts +12 -0
- package/dist/customize/skills/new-skill-modal.js +57 -0
- package/dist/customize/skills/skill-scope.d.ts +14 -0
- package/dist/customize/skills/skill-scope.js +18 -0
- package/dist/customize/skills/skills-page.d.ts +22 -0
- package/dist/customize/skills/skills-page.js +117 -0
- package/dist/customize/triggers/schedule/composer-parts.d.ts +12 -0
- package/dist/customize/triggers/schedule/composer-parts.js +16 -0
- package/dist/customize/triggers/schedule/event-account-picker.d.ts +16 -0
- package/dist/customize/triggers/schedule/event-account-picker.js +82 -0
- package/dist/customize/triggers/schedule/event-apps-strip.d.ts +7 -0
- package/dist/customize/triggers/schedule/event-apps-strip.js +21 -0
- package/dist/customize/triggers/schedule/event-check-times.d.ts +11 -0
- package/dist/customize/triggers/schedule/event-check-times.js +41 -0
- package/dist/customize/triggers/schedule/event-count.d.ts +5 -0
- package/dist/customize/triggers/schedule/event-count.js +11 -0
- package/dist/customize/triggers/schedule/event-trigger-copy.d.ts +176 -0
- package/dist/customize/triggers/schedule/event-trigger-copy.js +451 -0
- package/dist/customize/triggers/schedule/event-trigger-fields.d.ts +17 -0
- package/dist/customize/triggers/schedule/event-trigger-fields.js +47 -0
- package/dist/customize/triggers/schedule/schedule-builder.d.ts +25 -0
- package/dist/customize/triggers/schedule/schedule-builder.js +284 -0
- package/dist/customize/triggers/schedule/schedule-copy.d.ts +139 -0
- package/dist/customize/triggers/schedule/schedule-copy.js +368 -0
- package/dist/customize/triggers/schedule/schedule-detail-sheet.d.ts +37 -0
- package/dist/customize/triggers/schedule/schedule-detail-sheet.js +287 -0
- package/dist/customize/triggers/schedule/schedule-fields.d.ts +97 -0
- package/dist/customize/triggers/schedule/schedule-fields.js +172 -0
- package/dist/customize/triggers/schedule/then-fields.d.ts +12 -0
- package/dist/customize/triggers/schedule/then-fields.js +36 -0
- package/dist/customize/triggers/schedule/trigger-callouts.d.ts +12 -0
- package/dist/customize/triggers/schedule/trigger-callouts.js +34 -0
- package/dist/customize/triggers/schedule/trigger-composer-logic.d.ts +149 -0
- package/dist/customize/triggers/schedule/trigger-composer-logic.js +252 -0
- package/dist/customize/triggers/schedule/trigger-composer.d.ts +24 -0
- package/dist/customize/triggers/schedule/trigger-composer.js +273 -0
- package/dist/customize/triggers/schedule/trigger-controls.d.ts +3 -0
- package/dist/customize/triggers/schedule/trigger-controls.js +19 -0
- package/dist/customize/triggers/schedule/trigger-edit-logic.d.ts +18 -0
- package/dist/customize/triggers/schedule/trigger-edit-logic.js +133 -0
- package/dist/customize/triggers/schedule/trigger-filter.d.ts +54 -0
- package/dist/customize/triggers/schedule/trigger-filter.js +77 -0
- package/dist/customize/triggers/schedule/trigger-list.d.ts +28 -0
- package/dist/customize/triggers/schedule/trigger-list.js +87 -0
- package/dist/customize/triggers/schedule/trigger-options.d.ts +14 -0
- package/dist/customize/triggers/schedule/trigger-options.js +38 -0
- package/dist/customize/triggers/schedule/trigger-readonly.d.ts +8 -0
- package/dist/customize/triggers/schedule/trigger-readonly.js +51 -0
- package/dist/customize/triggers/schedule/trigger-runs-histogram.d.ts +14 -0
- package/dist/customize/triggers/schedule/trigger-runs-histogram.js +68 -0
- package/dist/customize/triggers/schedule/trigger-runs-logic.d.ts +49 -0
- package/dist/customize/triggers/schedule/trigger-runs-logic.js +90 -0
- package/dist/customize/triggers/schedule/trigger-runs-panel.d.ts +32 -0
- package/dist/customize/triggers/schedule/trigger-runs-panel.js +216 -0
- package/dist/customize/triggers/schedule/trigger-selection-bar.d.ts +22 -0
- package/dist/customize/triggers/schedule/trigger-selection-bar.js +47 -0
- package/dist/customize/triggers/schedule/trigger-selection.d.ts +33 -0
- package/dist/customize/triggers/schedule/trigger-selection.js +42 -0
- package/dist/customize/triggers/schedule/trigger-session-access-copy.d.ts +46 -0
- package/dist/customize/triggers/schedule/trigger-session-access-copy.js +35 -0
- package/dist/customize/triggers/schedule/trigger-status-badge.d.ts +13 -0
- package/dist/customize/triggers/schedule/trigger-status-badge.js +34 -0
- package/dist/customize/triggers/schedule/trigger-test-dialog.d.ts +7 -0
- package/dist/customize/triggers/schedule/trigger-test-dialog.js +61 -0
- package/dist/customize/triggers/schedule/trigger-tile.d.ts +51 -0
- package/dist/customize/triggers/schedule/trigger-tile.js +67 -0
- package/dist/customize/triggers/schedule/trigger-toast.d.ts +15 -0
- package/dist/customize/triggers/schedule/trigger-toast.js +50 -0
- package/dist/customize/triggers/schedule/use-event-app-connect.d.ts +8 -0
- package/dist/customize/triggers/schedule/use-event-app-connect.js +205 -0
- package/dist/customize/triggers/schedule/use-event-titles.d.ts +11 -0
- package/dist/customize/triggers/schedule/use-event-titles.js +28 -0
- package/dist/customize/triggers/schedule/use-trigger-mutations.d.ts +33 -0
- package/dist/customize/triggers/schedule/use-trigger-mutations.js +67 -0
- package/dist/customize/triggers/schedule/when-event-summary.d.ts +13 -0
- package/dist/customize/triggers/schedule/when-event-summary.js +28 -0
- package/dist/customize/triggers/schedule/when-event.d.ts +18 -0
- package/dist/customize/triggers/schedule/when-event.js +162 -0
- package/dist/customize/triggers/schedule/when-schedule.d.ts +8 -0
- package/dist/customize/triggers/schedule/when-schedule.js +11 -0
- package/dist/customize/triggers/schedule/when-webhook-address.d.ts +10 -0
- package/dist/customize/triggers/schedule/when-webhook-address.js +20 -0
- package/dist/customize/triggers/schedule/when-webhook.d.ts +8 -0
- package/dist/customize/triggers/schedule/when-webhook.js +16 -0
- package/dist/customize/triggers/schedule-view.d.ts +56 -0
- package/dist/customize/triggers/schedule-view.js +421 -0
- package/dist/customize/triggers/triggers-page.d.ts +21 -0
- package/dist/customize/triggers/triggers-page.js +24 -0
- package/dist/customize/use-configure-thread.d.ts +15 -0
- package/dist/customize/use-configure-thread.js +47 -0
- package/dist/diff/diff-view.d.ts +49 -0
- package/dist/diff/diff-view.js +61 -0
- package/dist/diff/index.d.ts +4 -0
- package/dist/diff/index.js +4 -0
- package/dist/files/drives/session-drives-chip.d.ts +19 -0
- package/dist/files/drives/session-drives-chip.js +71 -0
- package/dist/files/drives/use-drives.d.ts +10 -0
- package/dist/files/drives/use-drives.js +32 -0
- package/dist/files/editor/code-editor.d.ts +28 -0
- package/dist/files/editor/code-editor.js +518 -0
- package/dist/files/editor/codemirror-diagnostics.d.ts +29 -0
- package/dist/files/editor/codemirror-diagnostics.js +243 -0
- package/dist/files/editor/external-content.d.ts +19 -0
- package/dist/files/editor/external-content.js +17 -0
- package/dist/files/editor/lazy-code-editor.d.ts +9 -0
- package/dist/files/editor/lazy-code-editor.js +14 -0
- package/dist/files/editor/target-line.d.ts +9 -0
- package/dist/files/editor/target-line.js +35 -0
- package/dist/files/file-preview-dialog.d.ts +2 -0
- package/dist/files/file-preview-dialog.js +43 -0
- package/dist/files/file-preview-host.d.ts +5 -0
- package/dist/files/file-preview-host.js +18 -0
- package/dist/files/index.d.ts +23 -0
- package/dist/files/index.js +23 -0
- package/dist/files/project/api/branches.d.ts +8 -0
- package/dist/files/project/api/branches.js +10 -0
- package/dist/files/project/api/change-requests.d.ts +36 -0
- package/dist/files/project/api/change-requests.js +42 -0
- package/dist/files/project/api/commits.d.ts +15 -0
- package/dist/files/project/api/commits.js +14 -0
- package/dist/files/project/api/git-history.d.ts +14 -0
- package/dist/files/project/api/git-history.js +63 -0
- package/dist/files/project/api/runtime-files.d.ts +103 -0
- package/dist/files/project/api/runtime-files.js +289 -0
- package/dist/files/project/change-request-recovery.d.ts +26 -0
- package/dist/files/project/change-request-recovery.js +59 -0
- package/dist/files/project/components/change-request-detail-dialog.d.ts +13 -0
- package/dist/files/project/components/change-request-detail-dialog.js +187 -0
- package/dist/files/project/components/change-requests-panel.d.ts +14 -0
- package/dist/files/project/components/change-requests-panel.js +94 -0
- package/dist/files/project/components/checkpoint-detail-dialog.d.ts +11 -0
- package/dist/files/project/components/checkpoint-detail-dialog.js +201 -0
- package/dist/files/project/components/checkpoints-panel.d.ts +18 -0
- package/dist/files/project/components/checkpoints-panel.js +76 -0
- package/dist/files/project/components/diff-preview-banner.d.ts +30 -0
- package/dist/files/project/components/diff-preview-banner.js +45 -0
- package/dist/files/project/components/diff-renderer.d.ts +19 -0
- package/dist/files/project/components/diff-renderer.js +14 -0
- package/dist/files/project/components/drive-create-dialog.d.ts +26 -0
- package/dist/files/project/components/drive-create-dialog.js +52 -0
- package/dist/files/project/components/drive-empty-art.d.ts +2 -0
- package/dist/files/project/components/drive-empty-art.js +5 -0
- package/dist/files/project/components/drive-explorer.d.ts +84 -0
- package/dist/files/project/components/drive-explorer.js +1055 -0
- package/dist/files/project/components/drive-folder-thumbnail.d.ts +27 -0
- package/dist/files/project/components/drive-folder-thumbnail.js +63 -0
- package/dist/files/project/components/drive-grid-view.d.ts +72 -0
- package/dist/files/project/components/drive-grid-view.js +133 -0
- package/dist/files/project/components/drive-header.d.ts +61 -0
- package/dist/files/project/components/drive-header.js +75 -0
- package/dist/files/project/components/drive-list-view.d.ts +37 -0
- package/dist/files/project/components/drive-list-view.js +128 -0
- package/dist/files/project/components/drive-rename-dialog.d.ts +19 -0
- package/dist/files/project/components/drive-rename-dialog.js +57 -0
- package/dist/files/project/components/drive-selection-bar.d.ts +22 -0
- package/dist/files/project/components/drive-selection-bar.js +30 -0
- package/dist/files/project/components/drive-selection-ui.d.ts +18 -0
- package/dist/files/project/components/drive-selection-ui.js +17 -0
- package/dist/files/project/components/drive-selection.d.ts +68 -0
- package/dist/files/project/components/drive-selection.js +73 -0
- package/dist/files/project/components/drive-toolbar.d.ts +121 -0
- package/dist/files/project/components/drive-toolbar.js +185 -0
- package/dist/files/project/components/drive-upload-tray.d.ts +9 -0
- package/dist/files/project/components/drive-upload-tray.js +74 -0
- package/dist/files/project/components/file-breadcrumbs.d.ts +23 -0
- package/dist/files/project/components/file-breadcrumbs.js +147 -0
- package/dist/files/project/components/file-content-renderer.d.ts +5 -0
- package/dist/files/project/components/file-content-renderer.js +11 -0
- package/dist/files/project/components/file-explorer-page.d.ts +11 -0
- package/dist/files/project/components/file-explorer-page.js +367 -0
- package/dist/files/project/components/file-history-popover.d.ts +6 -0
- package/dist/files/project/components/file-history-popover.js +103 -0
- package/dist/files/project/components/file-icon.d.ts +16 -0
- package/dist/files/project/components/file-icon.js +203 -0
- package/dist/files/project/components/file-preview-modal.d.ts +14 -0
- package/dist/files/project/components/file-preview-modal.js +46 -0
- package/dist/files/project/components/file-route-state.d.ts +2 -0
- package/dist/files/project/components/file-route-state.js +3 -0
- package/dist/files/project/components/file-search.d.ts +1 -0
- package/dist/files/project/components/file-search.js +135 -0
- package/dist/files/project/components/file-thumbnail.d.ts +28 -0
- package/dist/files/project/components/file-thumbnail.js +81 -0
- package/dist/files/project/components/index.d.ts +18 -0
- package/dist/files/project/components/index.js +17 -0
- package/dist/files/project/components/load-more-row.d.ts +18 -0
- package/dist/files/project/components/load-more-row.js +35 -0
- package/dist/files/project/components/open-change-request-dialog.d.ts +12 -0
- package/dist/files/project/components/open-change-request-dialog.js +129 -0
- package/dist/files/project/components/own-clicks.d.ts +12 -0
- package/dist/files/project/components/own-clicks.js +20 -0
- package/dist/files/project/components/review-panel.d.ts +73 -0
- package/dist/files/project/components/review-panel.js +72 -0
- package/dist/files/project/components/use-drive-row-interactions.d.ts +27 -0
- package/dist/files/project/components/use-drive-row-interactions.js +121 -0
- package/dist/files/project/components/version-selector.d.ts +1 -0
- package/dist/files/project/components/version-selector.js +66 -0
- package/dist/files/project/context.d.ts +32 -0
- package/dist/files/project/context.js +38 -0
- package/dist/files/project/drop-tree.d.ts +34 -0
- package/dist/files/project/drop-tree.js +63 -0
- package/dist/files/project/explorer-source.d.ts +163 -0
- package/dist/files/project/explorer-source.js +14 -0
- package/dist/files/project/file-source.d.ts +11 -0
- package/dist/files/project/file-source.js +30 -0
- package/dist/files/project/git-ref-explorer-source.d.ts +6 -0
- package/dist/files/project/git-ref-explorer-source.js +50 -0
- package/dist/files/project/hooks/index.d.ts +14 -0
- package/dist/files/project/hooks/index.js +24 -0
- package/dist/files/project/hooks/use-binary-blob.d.ts +26 -0
- package/dist/files/project/hooks/use-binary-blob.js +72 -0
- package/dist/files/project/hooks/use-branches.d.ts +14 -0
- package/dist/files/project/hooks/use-branches.js +23 -0
- package/dist/files/project/hooks/use-change-request-recovery.d.ts +5 -0
- package/dist/files/project/hooks/use-change-request-recovery.js +53 -0
- package/dist/files/project/hooks/use-change-requests.d.ts +140 -0
- package/dist/files/project/hooks/use-change-requests.js +298 -0
- package/dist/files/project/hooks/use-commits.d.ts +30 -0
- package/dist/files/project/hooks/use-commits.js +57 -0
- package/dist/files/project/hooks/use-directory-download.d.ts +10 -0
- package/dist/files/project/hooks/use-directory-download.js +46 -0
- package/dist/files/project/hooks/use-file-content.d.ts +13 -0
- package/dist/files/project/hooks/use-file-content.js +52 -0
- package/dist/files/project/hooks/use-file-history.d.ts +31 -0
- package/dist/files/project/hooks/use-file-history.js +55 -0
- package/dist/files/project/hooks/use-file-list.d.ts +39 -0
- package/dist/files/project/hooks/use-file-list.js +83 -0
- package/dist/files/project/hooks/use-file-mutations.d.ts +22 -0
- package/dist/files/project/hooks/use-file-mutations.js +46 -0
- package/dist/files/project/hooks/use-file-search.d.ts +23 -0
- package/dist/files/project/hooks/use-file-search.js +54 -0
- package/dist/files/project/hooks/use-git-status.d.ts +21 -0
- package/dist/files/project/hooks/use-git-status.js +36 -0
- package/dist/files/project/hooks/use-server-health.d.ts +27 -0
- package/dist/files/project/hooks/use-server-health.js +36 -0
- package/dist/files/project/index.d.ts +20 -0
- package/dist/files/project/index.js +32 -0
- package/dist/files/project/search/workspace-search-service.d.ts +18 -0
- package/dist/files/project/search/workspace-search-service.js +19 -0
- package/dist/files/project/store/upload-store.d.ts +25 -0
- package/dist/files/project/store/upload-store.js +16 -0
- package/dist/files/project/store/version-store.d.ts +19 -0
- package/dist/files/project/store/version-store.js +25 -0
- package/dist/files/project/upload-batch.d.ts +92 -0
- package/dist/files/project/upload-batch.js +105 -0
- package/dist/files/renderers/csv/csv-copy.d.ts +8 -0
- package/dist/files/renderers/csv/csv-copy.js +36 -0
- package/dist/files/renderers/csv/csv-renderer.d.ts +15 -0
- package/dist/files/renderers/csv/csv-renderer.js +18 -0
- package/dist/files/renderers/csv/csv-viewer.d.ts +18 -0
- package/dist/files/renderers/csv/csv-viewer.js +342 -0
- package/dist/files/renderers/docx/docx-annotation-card.d.ts +4 -0
- package/dist/files/renderers/docx/docx-annotation-card.js +62 -0
- package/dist/files/renderers/docx/docx-renderer.d.ts +38 -0
- package/dist/files/renderers/docx/docx-renderer.js +49 -0
- package/dist/files/renderers/docx/docx-viewer.d.ts +13 -0
- package/dist/files/renderers/docx/docx-viewer.js +621 -0
- package/dist/files/renderers/image-renderer.d.ts +29 -0
- package/dist/files/renderers/image-renderer.js +285 -0
- package/dist/files/renderers/mermaid/mermaid-diagram.d.ts +10 -0
- package/dist/files/renderers/mermaid/mermaid-diagram.js +159 -0
- package/dist/files/renderers/mermaid/mermaid-utils.d.ts +44 -0
- package/dist/files/renderers/mermaid/mermaid-utils.js +119 -0
- package/dist/files/renderers/pdf/pdf-engine-loader.d.ts +2 -0
- package/dist/files/renderers/pdf/pdf-engine-loader.js +15 -0
- package/dist/files/renderers/pdf/pdf-renderer.d.ts +21 -0
- package/dist/files/renderers/pdf/pdf-renderer.js +54 -0
- package/dist/files/renderers/pdf/pdf-viewer.d.ts +83 -0
- package/dist/files/renderers/pdf/pdf-viewer.js +1352 -0
- package/dist/files/renderers/pptx-i18n.d.ts +2 -0
- package/dist/files/renderers/pptx-i18n.js +33 -0
- package/dist/files/renderers/pptx-renderer.d.ts +26 -0
- package/dist/files/renderers/pptx-renderer.js +153 -0
- package/dist/files/renderers/pptx-viewer.css +147 -0
- package/dist/files/renderers/presentation/FullScreenPresentationViewer.d.ts +10 -0
- package/dist/files/renderers/presentation/FullScreenPresentationViewer.js +337 -0
- package/dist/files/renderers/presentation/presentation-utils.d.ts +20 -0
- package/dist/files/renderers/presentation/presentation-utils.js +53 -0
- package/dist/files/renderers/presentation/presentation-viewer-store.d.ts +27 -0
- package/dist/files/renderers/presentation/presentation-viewer-store.js +37 -0
- package/dist/files/renderers/shared/document-viewer-sidebar.d.ts +15 -0
- package/dist/files/renderers/shared/document-viewer-sidebar.js +61 -0
- package/dist/files/renderers/shared/file-thumbnail.d.ts +17 -0
- package/dist/files/renderers/shared/file-thumbnail.js +71 -0
- package/dist/files/renderers/shared/scroll-area-compat.d.ts +45 -0
- package/dist/files/renderers/shared/scroll-area-compat.js +41 -0
- package/dist/files/renderers/shared/select-compat.d.ts +11 -0
- package/dist/files/renderers/shared/select-compat.js +19 -0
- package/dist/files/renderers/shared/spinner.d.ts +3 -0
- package/dist/files/renderers/shared/spinner.js +7 -0
- package/dist/files/renderers/shared/use-viewer-search.d.ts +13 -0
- package/dist/files/renderers/shared/use-viewer-search.js +86 -0
- package/dist/files/renderers/shared/viewer-copy-menu.d.ts +9 -0
- package/dist/files/renderers/shared/viewer-copy-menu.js +16 -0
- package/dist/files/renderers/shared/viewer-download-button.d.ts +10 -0
- package/dist/files/renderers/shared/viewer-download-button.js +27 -0
- package/dist/files/renderers/shared/viewer-file-name.d.ts +11 -0
- package/dist/files/renderers/shared/viewer-file-name.js +16 -0
- package/dist/files/renderers/shared/viewer-frame.d.ts +6 -0
- package/dist/files/renderers/shared/viewer-frame.js +26 -0
- package/dist/files/renderers/show-content-renderer.d.ts +116 -0
- package/dist/files/renderers/show-content-renderer.js +707 -0
- package/dist/files/renderers/show-type-utils.d.ts +45 -0
- package/dist/files/renderers/show-type-utils.js +85 -0
- package/dist/files/renderers/sqlite-renderer.d.ts +14 -0
- package/dist/files/renderers/sqlite-renderer.js +727 -0
- package/dist/files/renderers/video-renderer.d.ts +14 -0
- package/dist/files/renderers/video-renderer.js +181 -0
- package/dist/files/renderers/xlsx/xlsx-renderer.d.ts +25 -0
- package/dist/files/renderers/xlsx/xlsx-renderer.js +72 -0
- package/dist/files/renderers/xlsx/xlsx-viewer.d.ts +39 -0
- package/dist/files/renderers/xlsx/xlsx-viewer.js +722 -0
- package/dist/files/renderers/zip/zip-entries.d.ts +154 -0
- package/dist/files/renderers/zip/zip-entries.js +271 -0
- package/dist/files/renderers/zip/zip-renderer.d.ts +20 -0
- package/dist/files/renderers/zip/zip-renderer.js +317 -0
- package/dist/files/runtime/components/file-content-renderer.d.ts +5 -0
- package/dist/files/runtime/components/file-content-renderer.js +10 -0
- package/dist/files/runtime/file-source.d.ts +6 -0
- package/dist/files/runtime/file-source.js +22 -0
- package/dist/files/runtime/hooks/blob-identity.d.ts +12 -0
- package/dist/files/runtime/hooks/blob-identity.js +23 -0
- package/dist/files/runtime/hooks/index.d.ts +12 -0
- package/dist/files/runtime/hooks/index.js +21 -0
- package/dist/files/runtime/hooks/server-health-state.d.ts +18 -0
- package/dist/files/runtime/hooks/server-health-state.js +20 -0
- package/dist/files/runtime/hooks/system-dir.d.ts +1 -0
- package/dist/files/runtime/hooks/system-dir.js +16 -0
- package/dist/files/runtime/hooks/use-binary-blob.d.ts +29 -0
- package/dist/files/runtime/hooks/use-binary-blob.js +102 -0
- package/dist/files/runtime/hooks/use-directory-download.d.ts +16 -0
- package/dist/files/runtime/hooks/use-directory-download.js +59 -0
- package/dist/files/runtime/hooks/use-file-content.d.ts +17 -0
- package/dist/files/runtime/hooks/use-file-content.js +53 -0
- package/dist/files/runtime/hooks/use-file-history.d.ts +35 -0
- package/dist/files/runtime/hooks/use-file-history.js +75 -0
- package/dist/files/runtime/hooks/use-file-list.d.ts +172 -0
- package/dist/files/runtime/hooks/use-file-list.js +67 -0
- package/dist/files/runtime/hooks/use-file-mutations.d.ts +22 -0
- package/dist/files/runtime/hooks/use-file-mutations.js +122 -0
- package/dist/files/runtime/hooks/use-file-refresh.d.ts +16 -0
- package/dist/files/runtime/hooks/use-file-refresh.js +32 -0
- package/dist/files/runtime/hooks/use-file-search.d.ts +14 -0
- package/dist/files/runtime/hooks/use-file-search.js +26 -0
- package/dist/files/runtime/hooks/use-git-status.d.ts +16 -0
- package/dist/files/runtime/hooks/use-git-status.js +61 -0
- package/dist/files/runtime/hooks/use-server-health.d.ts +33 -0
- package/dist/files/runtime/hooks/use-server-health.js +49 -0
- package/dist/files/runtime/hooks/use-workspace-search.d.ts +54 -0
- package/dist/files/runtime/hooks/use-workspace-search.js +91 -0
- package/dist/files/runtime/index.d.ts +15 -0
- package/dist/files/runtime/index.js +25 -0
- package/dist/files/runtime/path-utils.d.ts +15 -0
- package/dist/files/runtime/path-utils.js +20 -0
- package/dist/files/runtime/sandbox-explorer-source.d.ts +7 -0
- package/dist/files/runtime/sandbox-explorer-source.js +74 -0
- package/dist/files/runtime/sandbox-file-explorer.d.ts +30 -0
- package/dist/files/runtime/sandbox-file-explorer.js +77 -0
- package/dist/files/runtime/search/workspace-search-service.d.ts +3 -0
- package/dist/files/runtime/search/workspace-search-service.js +7 -0
- package/dist/files/tree/components/file-tree-item.d.ts +31 -0
- package/dist/files/tree/components/file-tree-item.js +176 -0
- package/dist/files/tree/hooks/use-file-events.d.ts +11 -0
- package/dist/files/tree/hooks/use-file-events.js +14 -0
- package/dist/files/viewer/file-content-renderer.d.ts +45 -0
- package/dist/files/viewer/file-content-renderer.js +128 -0
- package/dist/files/viewer/file-header.d.ts +37 -0
- package/dist/files/viewer/file-header.js +21 -0
- package/dist/files/viewer/file-preview-modal.d.ts +63 -0
- package/dist/files/viewer/file-preview-modal.js +320 -0
- package/dist/files/viewer/file-source.d.ts +116 -0
- package/dist/files/viewer/file-source.js +14 -0
- package/dist/files/viewer/file-viewer.d.ts +36 -0
- package/dist/files/viewer/file-viewer.js +196 -0
- package/dist/files/viewer/html-preview.d.ts +32 -0
- package/dist/files/viewer/html-preview.js +101 -0
- package/dist/files/viewer/index.d.ts +20 -0
- package/dist/files/viewer/index.js +15 -0
- package/dist/files/viewer/json-tree-view.d.ts +3 -0
- package/dist/files/viewer/json-tree-view.js +49 -0
- package/dist/files/viewer/markdown-pdf.d.ts +38 -0
- package/dist/files/viewer/markdown-pdf.js +111 -0
- package/dist/files/viewer/preview-fit.d.ts +50 -0
- package/dist/files/viewer/preview-fit.js +51 -0
- package/dist/files/viewer/preview-policy.d.ts +46 -0
- package/dist/files/viewer/preview-policy.js +190 -0
- package/dist/files/viewer/print-document.d.ts +29 -0
- package/dist/files/viewer/print-document.js +88 -0
- package/dist/files/viewer/save-as-pdf-button.d.ts +22 -0
- package/dist/files/viewer/save-as-pdf-button.js +63 -0
- package/dist/files/viewer/use-content-revision.d.ts +18 -0
- package/dist/files/viewer/use-content-revision.js +29 -0
- package/dist/files/viewer/use-file-content-state.d.ts +60 -0
- package/dist/files/viewer/use-file-content-state.js +352 -0
- package/dist/files/viewer/viewer-actions.d.ts +99 -0
- package/dist/files/viewer/viewer-actions.js +262 -0
- package/dist/files/viewer/viewer-chrome.d.ts +27 -0
- package/dist/files/viewer/viewer-chrome.js +61 -0
- package/dist/hooks/use-debounce.d.ts +4 -0
- package/dist/hooks/use-debounce.js +17 -0
- package/dist/hooks/use-is-dark.d.ts +8 -0
- package/dist/hooks/use-is-dark.js +22 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.js +15 -0
- package/dist/hooks/use-proximity-hover.d.ts +52 -0
- package/dist/hooks/use-proximity-hover.js +232 -0
- package/dist/i18n/en.d.ts +6921 -0
- package/dist/i18n/en.js +6922 -0
- package/dist/i18n/index.d.ts +18 -0
- package/dist/i18n/index.js +33 -0
- package/dist/i18n/ui-catalog/account-hub-translation-keys.generated.d.ts +1 -0
- package/dist/i18n/ui-catalog/account-hub-translation-keys.generated.js +30 -0
- package/dist/i18n/ui-catalog/app-registry-translation-keys.generated.d.ts +1 -0
- package/dist/i18n/ui-catalog/app-registry-translation-keys.generated.js +109 -0
- package/dist/i18n/ui-catalog/localize-ui-catalog.d.ts +4 -0
- package/dist/i18n/ui-catalog/localize-ui-catalog.js +49 -0
- package/dist/i18n/ui-catalog/product-catalog-translation-keys.generated.d.ts +1 -0
- package/dist/i18n/ui-catalog/product-catalog-translation-keys.generated.js +149 -0
- package/dist/i18n/ui-catalog/remaining-ui-translation-keys.generated.d.ts +1 -0
- package/dist/i18n/ui-catalog/remaining-ui-translation-keys.generated.js +902 -0
- package/dist/i18n/ui-catalog/review-meta-translation-keys.generated.d.ts +1 -0
- package/dist/i18n/ui-catalog/review-meta-translation-keys.generated.js +21 -0
- package/dist/i18n/ui-catalog/review-mock-translation-keys.generated.d.ts +1 -0
- package/dist/i18n/ui-catalog/review-mock-translation-keys.generated.js +43 -0
- package/dist/i18n/ui-catalog/use-localized-ui-catalog.d.ts +1 -0
- package/dist/i18n/ui-catalog/use-localized-ui-catalog.js +9 -0
- package/dist/icons/close.d.ts +2 -0
- package/dist/icons/close.js +7 -0
- package/dist/icons/copy.d.ts +3 -0
- package/dist/icons/copy.js +6 -0
- package/dist/icons/index.d.ts +6 -0
- package/dist/icons/index.js +6 -0
- package/dist/icons/sidebar-toggle.d.ts +13 -0
- package/dist/icons/sidebar-toggle.js +13 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +47 -0
- package/dist/internal/account-hub/account-hub-entry.d.ts +5 -0
- package/dist/internal/account-hub/account-hub-entry.js +22 -0
- package/dist/internal/account-hub/account-hub-location.d.ts +54 -0
- package/dist/internal/account-hub/account-hub-location.js +113 -0
- package/dist/internal/account-hub/account-settings-shell.d.ts +7 -0
- package/dist/internal/account-hub/account-settings-shell.js +87 -0
- package/dist/internal/account-hub/account-settings-sidebar.d.ts +2 -0
- package/dist/internal/account-hub/account-settings-sidebar.js +169 -0
- package/dist/internal/account-hub/hub-sheet.d.ts +39 -0
- package/dist/internal/account-hub/hub-sheet.js +46 -0
- package/dist/internal/account-hub/sections.d.ts +95 -0
- package/dist/internal/account-hub/sections.js +232 -0
- package/dist/internal/account-hub/use-account-detail.d.ts +2 -0
- package/dist/internal/account-hub/use-account-detail.js +20 -0
- package/dist/internal/account-hub/use-account-hub-access.d.ts +56 -0
- package/dist/internal/account-hub/use-account-hub-access.js +156 -0
- package/dist/internal/account-hub/use-account-members.d.ts +2 -0
- package/dist/internal/account-hub/use-account-members.js +24 -0
- package/dist/internal/auth/auth-card-shell.d.ts +36 -0
- package/dist/internal/auth/auth-card-shell.js +66 -0
- package/dist/internal/auth/auth-consent.d.ts +71 -0
- package/dist/internal/auth/auth-consent.js +75 -0
- package/dist/internal/auth/auth-primitives.d.ts +67 -0
- package/dist/internal/auth/auth-primitives.js +94 -0
- package/dist/internal/auth/code-input-logic.d.ts +23 -0
- package/dist/internal/auth/code-input-logic.js +33 -0
- package/dist/internal/auth/mfa-pending-action.d.ts +8 -0
- package/dist/internal/auth/mfa-pending-action.js +24 -0
- package/dist/internal/billing/account-state-gating.d.ts +23 -0
- package/dist/internal/billing/account-state-gating.js +21 -0
- package/dist/internal/billing/compute-pricing.d.ts +88 -0
- package/dist/internal/billing/compute-pricing.js +119 -0
- package/dist/internal/billing/index.d.ts +20 -0
- package/dist/internal/billing/index.js +36 -0
- package/dist/internal/billing/session-cost-format.d.ts +4 -0
- package/dist/internal/billing/session-cost-format.js +37 -0
- package/dist/internal/billing/use-account-state.d.ts +64 -0
- package/dist/internal/billing/use-account-state.js +231 -0
- package/dist/internal/billing/use-cost-explorer.d.ts +73 -0
- package/dist/internal/billing/use-cost-explorer.js +90 -0
- package/dist/internal/billing/use-download-restriction.d.ts +33 -0
- package/dist/internal/billing/use-download-restriction.js +60 -0
- package/dist/internal/billing/use-session-costs.d.ts +75 -0
- package/dist/internal/billing/use-session-costs.js +105 -0
- package/dist/internal/billing/use-transactions.d.ts +5 -0
- package/dist/internal/billing/use-transactions.js +34 -0
- package/dist/internal/branding/branding-provider.d.ts +39 -0
- package/dist/internal/branding/branding-provider.js +203 -0
- package/dist/internal/capture/use-capture-area.d.ts +51 -0
- package/dist/internal/capture/use-capture-area.js +96 -0
- package/dist/internal/components/clickable-path.d.ts +64 -0
- package/dist/internal/components/clickable-path.js +170 -0
- package/dist/internal/components/hover-prefetch-link.d.ts +32 -0
- package/dist/internal/components/hover-prefetch-link.js +39 -0
- package/dist/internal/components/mobile-store-qr.d.ts +18 -0
- package/dist/internal/components/mobile-store-qr.js +40 -0
- package/dist/internal/components/repository-disconnected.d.ts +46 -0
- package/dist/internal/components/repository-disconnected.js +80 -0
- package/dist/internal/desktop/desktop-back-button.d.ts +93 -0
- package/dist/internal/desktop/desktop-back-button.js +128 -0
- package/dist/internal/desktop/titlebar-control.d.ts +16 -0
- package/dist/internal/desktop/titlebar-control.js +15 -0
- package/dist/internal/files/file-availability.d.ts +34 -0
- package/dist/internal/files/file-availability.js +81 -0
- package/dist/internal/files/file-read-retry.d.ts +28 -0
- package/dist/internal/files/file-read-retry.js +109 -0
- package/dist/internal/files/git-history.d.ts +35 -0
- package/dist/internal/files/git-history.js +221 -0
- package/dist/internal/files/runtime-file-read.d.ts +5 -0
- package/dist/internal/files/runtime-file-read.js +29 -0
- package/dist/internal/files/runtime-files.d.ts +52 -0
- package/dist/internal/files/runtime-files.js +193 -0
- package/dist/internal/files/session-drive-files.d.ts +63 -0
- package/dist/internal/files/session-drive-files.js +109 -0
- package/dist/internal/files/types.d.ts +137 -0
- package/dist/internal/files/types.js +5 -0
- package/dist/internal/files/use-oc-file-open.d.ts +25 -0
- package/dist/internal/files/use-oc-file-open.js +234 -0
- package/dist/internal/hooks/account/use-accounts-list.d.ts +105 -0
- package/dist/internal/hooks/account/use-accounts-list.js +103 -0
- package/dist/internal/hooks/account/use-my-invites.d.ts +15 -0
- package/dist/internal/hooks/account/use-my-invites.js +22 -0
- package/dist/internal/hooks/admin/use-admin-role.d.ts +6 -0
- package/dist/internal/hooks/admin/use-admin-role.js +6 -0
- package/dist/internal/hooks/channels/use-channels-installations.d.ts +49 -0
- package/dist/internal/hooks/channels/use-channels-installations.js +151 -0
- package/dist/internal/hooks/connectors/use-add-account.d.ts +38 -0
- package/dist/internal/hooks/connectors/use-add-account.js +138 -0
- package/dist/internal/hooks/connectors/use-add-managed-account.d.ts +18 -0
- package/dist/internal/hooks/connectors/use-add-managed-account.js +33 -0
- package/dist/internal/hooks/connectors/use-connect-link.d.ts +20 -0
- package/dist/internal/hooks/connectors/use-connect-link.js +115 -0
- package/dist/internal/hooks/connectors/use-oauth2-return.d.ts +8 -0
- package/dist/internal/hooks/connectors/use-oauth2-return.js +33 -0
- package/dist/internal/hooks/connectors/use-pipedream-connect-member.d.ts +10 -0
- package/dist/internal/hooks/connectors/use-pipedream-connect-member.js +38 -0
- package/dist/internal/hooks/connectors/use-pipedream-connect-project.d.ts +67 -0
- package/dist/internal/hooks/connectors/use-pipedream-connect-project.js +112 -0
- package/dist/internal/hooks/connectors/use-tool-connect.d.ts +45 -0
- package/dist/internal/hooks/connectors/use-tool-connect.js +50 -0
- package/dist/internal/hooks/index.d.ts +7 -0
- package/dist/internal/hooks/index.js +6 -0
- package/dist/internal/hooks/projects/new-session-failure.d.ts +26 -0
- package/dist/internal/hooks/projects/new-session-failure.js +72 -0
- package/dist/internal/hooks/projects/new-session-guard.d.ts +48 -0
- package/dist/internal/hooks/projects/new-session-guard.js +63 -0
- package/dist/internal/hooks/projects/project-rename-cache.d.ts +42 -0
- package/dist/internal/hooks/projects/project-rename-cache.js +51 -0
- package/dist/internal/hooks/projects/session-reload-progress.d.ts +10 -0
- package/dist/internal/hooks/projects/session-reload-progress.js +28 -0
- package/dist/internal/hooks/projects/use-agent-config.d.ts +49 -0
- package/dist/internal/hooks/projects/use-agent-config.js +73 -0
- package/dist/internal/hooks/projects/use-new-project-session.d.ts +65 -0
- package/dist/internal/hooks/projects/use-new-project-session.js +296 -0
- package/dist/internal/hooks/projects/use-project-can-run.d.ts +8 -0
- package/dist/internal/hooks/projects/use-project-can-run.js +46 -0
- package/dist/internal/hooks/projects/use-restart-project-session.d.ts +49 -0
- package/dist/internal/hooks/projects/use-restart-project-session.js +90 -0
- package/dist/internal/hooks/projects/use-session-config-freshness.d.ts +106 -0
- package/dist/internal/hooks/projects/use-session-config-freshness.js +291 -0
- package/dist/internal/hooks/projects/use-warm-project-session.d.ts +270 -0
- package/dist/internal/hooks/projects/use-warm-project-session.js +362 -0
- package/dist/internal/hooks/projects/warm-session-seed.d.ts +66 -0
- package/dist/internal/hooks/projects/warm-session-seed.js +80 -0
- package/dist/internal/hooks/projects/warm-session-taken-registry.d.ts +61 -0
- package/dist/internal/hooks/projects/warm-session-taken-registry.js +141 -0
- package/dist/internal/hooks/use-auto-scroll-physics.d.ts +129 -0
- package/dist/internal/hooks/use-auto-scroll-physics.js +191 -0
- package/dist/internal/hooks/use-auto-scroll.d.ts +30 -0
- package/dist/internal/hooks/use-auto-scroll.js +469 -0
- package/dist/internal/hooks/use-bounded-runtime-wait.d.ts +4 -0
- package/dist/internal/hooks/use-bounded-runtime-wait.js +20 -0
- package/dist/internal/hooks/use-channel-bindings.d.ts +8 -0
- package/dist/internal/hooks/use-channel-bindings.js +27 -0
- package/dist/internal/hooks/use-copy.d.ts +11 -0
- package/dist/internal/hooks/use-copy.js +38 -0
- package/dist/internal/hooks/use-debounced-value.d.ts +2 -0
- package/dist/internal/hooks/use-debounced-value.js +9 -0
- package/dist/internal/hooks/use-heic-url.d.ts +9 -0
- package/dist/internal/hooks/use-heic-url.js +49 -0
- package/dist/internal/hooks/use-media-query.d.ts +2 -0
- package/dist/internal/hooks/use-media-query.js +15 -0
- package/dist/internal/hooks/use-notification-center.d.ts +43 -0
- package/dist/internal/hooks/use-notification-center.js +111 -0
- package/dist/internal/hooks/use-open-preview-link.d.ts +30 -0
- package/dist/internal/hooks/use-open-preview-link.js +42 -0
- package/dist/internal/hooks/use-opened-once.d.ts +9 -0
- package/dist/internal/hooks/use-opened-once.js +15 -0
- package/dist/internal/hooks/use-preview-frame-url.d.ts +13 -0
- package/dist/internal/hooks/use-preview-frame-url.js +24 -0
- package/dist/internal/hooks/use-review-session-summary.d.ts +53 -0
- package/dist/internal/hooks/use-review-session-summary.js +84 -0
- package/dist/internal/hooks/use-sandbox-proxy.d.ts +31 -0
- package/dist/internal/hooks/use-sandbox-proxy.js +40 -0
- package/dist/internal/hooks/use-slash-focus.d.ts +15 -0
- package/dist/internal/hooks/use-slash-focus.js +44 -0
- package/dist/internal/hooks/use-stable-callback.d.ts +15 -0
- package/dist/internal/hooks/use-stable-callback.js +22 -0
- package/dist/internal/icons/claude-code.d.ts +5 -0
- package/dist/internal/icons/claude-code.js +7 -0
- package/dist/internal/icons/claude.d.ts +4 -0
- package/dist/internal/icons/claude.js +8 -0
- package/dist/internal/icons/codex.d.ts +5 -0
- package/dist/internal/icons/codex.js +14 -0
- package/dist/internal/icons/cursor.d.ts +5 -0
- package/dist/internal/icons/cursor.js +11 -0
- package/dist/internal/icons/customize.d.ts +5 -0
- package/dist/internal/icons/customize.js +6 -0
- package/dist/internal/icons/download.d.ts +2 -0
- package/dist/internal/icons/download.js +6 -0
- package/dist/internal/icons/email.d.ts +5 -0
- package/dist/internal/icons/email.js +7 -0
- package/dist/internal/icons/github.d.ts +4 -0
- package/dist/internal/icons/github.js +8 -0
- package/dist/internal/icons/home.d.ts +5 -0
- package/dist/internal/icons/home.js +7 -0
- package/dist/internal/icons/kortix.d.ts +14 -0
- package/dist/internal/icons/kortix.js +25 -0
- package/dist/internal/icons/mcp.d.ts +9 -0
- package/dist/internal/icons/mcp.js +9 -0
- package/dist/internal/icons/microsoft-teams.d.ts +4 -0
- package/dist/internal/icons/microsoft-teams.js +11 -0
- package/dist/internal/icons/open-ai.d.ts +4 -0
- package/dist/internal/icons/open-ai.js +8 -0
- package/dist/internal/icons/plus.d.ts +4 -0
- package/dist/internal/icons/plus.js +6 -0
- package/dist/internal/icons/schedule.d.ts +5 -0
- package/dist/internal/icons/schedule.js +7 -0
- package/dist/internal/icons/slack.d.ts +4 -0
- package/dist/internal/icons/slack.js +6 -0
- package/dist/internal/icons/solid-check-icon.d.ts +2 -0
- package/dist/internal/icons/solid-check-icon.js +6 -0
- package/dist/internal/icons/telegram.d.ts +4 -0
- package/dist/internal/icons/telegram.js +6 -0
- package/dist/internal/layout/connect-mcp-modal.d.ts +35 -0
- package/dist/internal/layout/connect-mcp-modal.js +78 -0
- package/dist/internal/layout/files-nav-label.d.ts +14 -0
- package/dist/internal/layout/files-nav-label.js +10 -0
- package/dist/internal/layout/open-command-palette.d.ts +22 -0
- package/dist/internal/layout/open-command-palette.js +34 -0
- package/dist/internal/layout/project-nav-row.d.ts +9 -0
- package/dist/internal/layout/project-nav-row.js +15 -0
- package/dist/internal/layout/project-page-header.d.ts +16 -0
- package/dist/internal/layout/project-page-header.js +19 -0
- package/dist/internal/layout/project-settings-nav.d.ts +125 -0
- package/dist/internal/layout/project-settings-nav.js +206 -0
- package/dist/internal/layout/settings-nav-context.d.ts +74 -0
- package/dist/internal/layout/settings-nav-context.js +58 -0
- package/dist/internal/layout/sidebar-opener.d.ts +74 -0
- package/dist/internal/layout/sidebar-opener.js +86 -0
- package/dist/internal/layout/sidebar-toggle.d.ts +44 -0
- package/dist/internal/layout/sidebar-toggle.js +56 -0
- package/dist/internal/lib/account-secret-access.d.ts +42 -0
- package/dist/internal/lib/account-secret-access.js +46 -0
- package/dist/internal/lib/approval-expired.d.ts +3 -0
- package/dist/internal/lib/approval-expired.js +4 -0
- package/dist/internal/lib/attachment-mime.d.ts +30 -0
- package/dist/internal/lib/attachment-mime.js +123 -0
- package/dist/internal/lib/billing/billing-gate-state.d.ts +126 -0
- package/dist/internal/lib/billing/billing-gate-state.js +217 -0
- package/dist/internal/lib/browser-error-noise.d.ts +23 -0
- package/dist/internal/lib/browser-error-noise.js +68 -0
- package/dist/internal/lib/browser-noise/evidence.d.ts +73 -0
- package/dist/internal/lib/browser-noise/evidence.js +101 -0
- package/dist/internal/lib/browser-noise/rules/chunk-load.d.ts +37 -0
- package/dist/internal/lib/browser-noise/rules/chunk-load.js +158 -0
- package/dist/internal/lib/browser-noise/rules/expected-states.d.ts +85 -0
- package/dist/internal/lib/browser-noise/rules/expected-states.js +390 -0
- package/dist/internal/lib/browser-noise/rules/extensions.d.ts +196 -0
- package/dist/internal/lib/browser-noise/rules/extensions.js +722 -0
- package/dist/internal/lib/browser-noise/rules/graphics.d.ts +142 -0
- package/dist/internal/lib/browser-noise/rules/graphics.js +606 -0
- package/dist/internal/lib/browser-noise/rules/injected-scripts.d.ts +80 -0
- package/dist/internal/lib/browser-noise/rules/injected-scripts.js +229 -0
- package/dist/internal/lib/browser-noise/rules/messages.d.ts +5 -0
- package/dist/internal/lib/browser-noise/rules/messages.js +81 -0
- package/dist/internal/lib/browser-noise/rules/network.d.ts +117 -0
- package/dist/internal/lib/browser-noise/rules/network.js +441 -0
- package/dist/internal/lib/browser-noise/rules/old-browsers.d.ts +216 -0
- package/dist/internal/lib/browser-noise/rules/old-browsers.js +684 -0
- package/dist/internal/lib/browser-noise/rules/pdf.d.ts +60 -0
- package/dist/internal/lib/browser-noise/rules/pdf.js +184 -0
- package/dist/internal/lib/browser-noise/rules/react.d.ts +99 -0
- package/dist/internal/lib/browser-noise/rules/react.js +504 -0
- package/dist/internal/lib/browser-noise/rules/rejections.d.ts +130 -0
- package/dist/internal/lib/browser-noise/rules/rejections.js +517 -0
- package/dist/internal/lib/browser-noise/rules/storage.d.ts +65 -0
- package/dist/internal/lib/browser-noise/rules/storage.js +190 -0
- package/dist/internal/lib/browser-noise/rules/webview.d.ts +103 -0
- package/dist/internal/lib/browser-noise/rules/webview.js +392 -0
- package/dist/internal/lib/capability-tab-routes.d.ts +160 -0
- package/dist/internal/lib/capability-tab-routes.js +176 -0
- package/dist/internal/lib/chunk-load-recovery.d.ts +46 -0
- package/dist/internal/lib/chunk-load-recovery.js +107 -0
- package/dist/internal/lib/chunk-reload.d.ts +31 -0
- package/dist/internal/lib/chunk-reload.js +59 -0
- package/dist/internal/lib/code-theme.d.ts +22 -0
- package/dist/internal/lib/code-theme.js +16 -0
- package/dist/internal/lib/codemirror-pierre-theme.d.ts +3 -0
- package/dist/internal/lib/codemirror-pierre-theme.js +138 -0
- package/dist/internal/lib/delivered-but-disconnected.d.ts +4 -0
- package/dist/internal/lib/delivered-but-disconnected.js +106 -0
- package/dist/internal/lib/desktop-detect.d.ts +17 -0
- package/dist/internal/lib/desktop-detect.js +36 -0
- package/dist/internal/lib/desktop.d.ts +237 -0
- package/dist/internal/lib/desktop.js +356 -0
- package/dist/internal/lib/error-handler.d.ts +25 -0
- package/dist/internal/lib/error-handler.js +327 -0
- package/dist/internal/lib/github-installations.d.ts +47 -0
- package/dist/internal/lib/github-installations.js +54 -0
- package/dist/internal/lib/github-user-proof.d.ts +3 -0
- package/dist/internal/lib/github-user-proof.js +38 -0
- package/dist/internal/lib/interface-theme-defaults.d.ts +6 -0
- package/dist/internal/lib/interface-theme-defaults.js +2 -0
- package/dist/internal/lib/kortix-cli.d.ts +12 -0
- package/dist/internal/lib/kortix-cli.js +31 -0
- package/dist/internal/lib/llm-providers.d.ts +185 -0
- package/dist/internal/lib/llm-providers.js +197 -0
- package/dist/internal/lib/logger.d.ts +29 -0
- package/dist/internal/lib/logger.js +36 -0
- package/dist/internal/lib/manifest-version.d.ts +21 -0
- package/dist/internal/lib/manifest-version.js +55 -0
- package/dist/internal/lib/mermaid-utils.d.ts +22 -0
- package/dist/internal/lib/mermaid-utils.js +85 -0
- package/dist/internal/lib/mobile-store-urls.d.ts +9 -0
- package/dist/internal/lib/mobile-store-urls.js +8 -0
- package/dist/internal/lib/model-pricing.d.ts +33 -0
- package/dist/internal/lib/model-pricing.js +107 -0
- package/dist/internal/lib/navigation/modified-click.d.ts +15 -0
- package/dist/internal/lib/navigation/modified-click.js +21 -0
- package/dist/internal/lib/navigation/router-bridge.d.ts +20 -0
- package/dist/internal/lib/navigation/router-bridge.js +60 -0
- package/dist/internal/lib/navigation/session-href.d.ts +24 -0
- package/dist/internal/lib/navigation/session-href.js +31 -0
- package/dist/internal/lib/object-url-cache.d.ts +30 -0
- package/dist/internal/lib/object-url-cache.js +72 -0
- package/dist/internal/lib/onboarding/landing-destination.d.ts +111 -0
- package/dist/internal/lib/onboarding/landing-destination.js +155 -0
- package/dist/internal/lib/onboarding/last-project-cookie.d.ts +44 -0
- package/dist/internal/lib/onboarding/last-project-cookie.js +77 -0
- package/dist/internal/lib/onboarding/provision-errors.d.ts +29 -0
- package/dist/internal/lib/onboarding/provision-errors.js +47 -0
- package/dist/internal/lib/onboarding/use-app-home.d.ts +17 -0
- package/dist/internal/lib/onboarding/use-app-home.js +22 -0
- package/dist/internal/lib/project-actions.d.ts +75 -0
- package/dist/internal/lib/project-actions.js +133 -0
- package/dist/internal/lib/project-preamble.d.ts +71 -0
- package/dist/internal/lib/project-preamble.js +112 -0
- package/dist/internal/lib/promo-art.d.ts +9 -0
- package/dist/internal/lib/promo-art.js +9 -0
- package/dist/internal/lib/provider-branding.d.ts +26 -0
- package/dist/internal/lib/provider-branding.js +175 -0
- package/dist/internal/lib/query-client-singleton.d.ts +9 -0
- package/dist/internal/lib/query-client-singleton.js +34 -0
- package/dist/internal/lib/relative-time.d.ts +22 -0
- package/dist/internal/lib/relative-time.js +48 -0
- package/dist/internal/lib/safe-url.d.ts +2 -0
- package/dist/internal/lib/safe-url.js +7 -0
- package/dist/internal/lib/sandbox-providers.d.ts +11 -0
- package/dist/internal/lib/sandbox-providers.js +27 -0
- package/dist/internal/lib/security/iframe-sandbox.d.ts +15 -0
- package/dist/internal/lib/security/iframe-sandbox.js +26 -0
- package/dist/internal/lib/security/privileged-frame-origins.d.ts +10 -0
- package/dist/internal/lib/security/privileged-frame-origins.js +22 -0
- package/dist/internal/lib/settings-tab-id.d.ts +3 -0
- package/dist/internal/lib/settings-tab-id.js +1 -0
- package/dist/internal/lib/shaders-react.d.ts +2 -0
- package/dist/internal/lib/shaders-react.js +1 -0
- package/dist/internal/lib/site-metadata.d.ts +17 -0
- package/dist/internal/lib/site-metadata.js +16 -0
- package/dist/internal/lib/sounds.d.ts +37 -0
- package/dist/internal/lib/sounds.js +131 -0
- package/dist/internal/lib/storage/managed-storage.d.ts +2 -0
- package/dist/internal/lib/storage/managed-storage.js +5 -0
- package/dist/internal/lib/timeout-toast-policy.d.ts +5 -0
- package/dist/internal/lib/timeout-toast-policy.js +14 -0
- package/dist/internal/lib/turn-broadcast.d.ts +47 -0
- package/dist/internal/lib/turn-broadcast.js +90 -0
- package/dist/internal/lib/use-deployment-cli-install-command.d.ts +7 -0
- package/dist/internal/lib/use-deployment-cli-install-command.js +15 -0
- package/dist/internal/lib/use-permission.d.ts +23 -0
- package/dist/internal/lib/use-permission.js +79 -0
- package/dist/internal/lib/use-project-can.d.ts +37 -0
- package/dist/internal/lib/use-project-can.js +64 -0
- package/dist/internal/lib/use-project-feature-flags.d.ts +26 -0
- package/dist/internal/lib/use-project-feature-flags.js +72 -0
- package/dist/internal/lib/utils/app-access-token.d.ts +10 -0
- package/dist/internal/lib/utils/app-access-token.js +20 -0
- package/dist/internal/lib/utils/clipboard.d.ts +7 -0
- package/dist/internal/lib/utils/clipboard.js +19 -0
- package/dist/internal/lib/utils/download.d.ts +2 -0
- package/dist/internal/lib/utils/download.js +11 -0
- package/dist/internal/lib/utils/file-utils.d.ts +44 -0
- package/dist/internal/lib/utils/file-utils.js +287 -0
- package/dist/internal/lib/utils/focus-without-scroll.d.ts +19 -0
- package/dist/internal/lib/utils/focus-without-scroll.js +18 -0
- package/dist/internal/lib/utils/heic-convert.d.ts +7 -0
- package/dist/internal/lib/utils/heic-convert.js +13 -0
- package/dist/internal/lib/utils/kortix-system-tags.d.ts +45 -0
- package/dist/internal/lib/utils/kortix-system-tags.js +222 -0
- package/dist/internal/lib/utils/kortix-tool-output.d.ts +58 -0
- package/dist/internal/lib/utils/kortix-tool-output.js +148 -0
- package/dist/internal/lib/utils/path-detection.d.ts +43 -0
- package/dist/internal/lib/utils/path-detection.js +339 -0
- package/dist/internal/lib/utils/random-uuid.d.ts +9 -0
- package/dist/internal/lib/utils/random-uuid.js +16 -0
- package/dist/internal/lib/utils/safe-scroll-to.d.ts +20 -0
- package/dist/internal/lib/utils/safe-scroll-to.js +21 -0
- package/dist/internal/lib/utils/sandbox-proxy.d.ts +8 -0
- package/dist/internal/lib/utils/sandbox-proxy.js +15 -0
- package/dist/internal/lib/utils/session-context.d.ts +25 -0
- package/dist/internal/lib/utils/session-context.js +42 -0
- package/dist/internal/lib/utils/strip-html-tags.d.ts +6 -0
- package/dist/internal/lib/utils/strip-html-tags.js +13 -0
- package/dist/internal/lib/utils/structured-output.d.ts +51 -0
- package/dist/internal/lib/utils/structured-output.js +178 -0
- package/dist/internal/lib/utils/time-budget.d.ts +37 -0
- package/dist/internal/lib/utils/time-budget.js +37 -0
- package/dist/internal/lib/utils.d.ts +8 -0
- package/dist/internal/lib/utils.js +58 -0
- package/dist/internal/lib/web-notifications.d.ts +121 -0
- package/dist/internal/lib/web-notifications.js +653 -0
- package/dist/internal/notifications/notification-bell.d.ts +33 -0
- package/dist/internal/notifications/notification-bell.js +135 -0
- package/dist/internal/notifications/notification-rows.d.ts +86 -0
- package/dist/internal/notifications/notification-rows.js +128 -0
- package/dist/internal/notifications/session-toast-cards.d.ts +26 -0
- package/dist/internal/notifications/session-toast-cards.js +32 -0
- package/dist/internal/notifications/web-push.d.ts +63 -0
- package/dist/internal/notifications/web-push.js +193 -0
- package/dist/internal/outcomes/outcome-card.d.ts +81 -0
- package/dist/internal/outcomes/outcome-card.js +54 -0
- package/dist/internal/outcomes/outcome-types.d.ts +77 -0
- package/dist/internal/outcomes/outcome-types.js +15 -0
- package/dist/internal/outcomes/outcome-vocabulary.d.ts +95 -0
- package/dist/internal/outcomes/outcome-vocabulary.js +99 -0
- package/dist/internal/project-scope.d.ts +13 -0
- package/dist/internal/project-scope.js +15 -0
- package/dist/internal/reminders/reminder-format.d.ts +20 -0
- package/dist/internal/reminders/reminder-format.js +72 -0
- package/dist/internal/reminders/use-refetch-after-fire.d.ts +10 -0
- package/dist/internal/reminders/use-refetch-after-fire.js +30 -0
- package/dist/internal/selection/selection-bar.d.ts +31 -0
- package/dist/internal/selection/selection-bar.js +45 -0
- package/dist/internal/selection/selection.d.ts +9 -0
- package/dist/internal/selection/selection.js +25 -0
- package/dist/internal/session-types/index.d.ts +30 -0
- package/dist/internal/session-types/index.js +28 -0
- package/dist/internal/session-types/types.d.ts +78 -0
- package/dist/internal/session-types/types.js +20 -0
- package/dist/internal/share/public-share-link-button.d.ts +14 -0
- package/dist/internal/share/public-share-link-button.js +17 -0
- package/dist/internal/share/public-share-link-confirm.d.ts +15 -0
- package/dist/internal/share/public-share-link-confirm.js +13 -0
- package/dist/internal/share/session-shares-modal.d.ts +7 -0
- package/dist/internal/share/session-shares-modal.js +59 -0
- package/dist/internal/share/use-public-share-link.d.ts +39 -0
- package/dist/internal/share/use-public-share-link.js +110 -0
- package/dist/internal/share/use-session-public-shares.d.ts +60 -0
- package/dist/internal/share/use-session-public-shares.js +140 -0
- package/dist/internal/stores/account-panel-store.d.ts +94 -0
- package/dist/internal/stores/account-panel-store.js +183 -0
- package/dist/internal/stores/account-settings-modal-store.d.ts +41 -0
- package/dist/internal/stores/account-settings-modal-store.js +33 -0
- package/dist/internal/stores/billing-account-context.d.ts +16 -0
- package/dist/internal/stores/billing-account-context.js +20 -0
- package/dist/internal/stores/browser-recents-store.d.ts +36 -0
- package/dist/internal/stores/browser-recents-store.js +50 -0
- package/dist/internal/stores/chat-send-store.d.ts +34 -0
- package/dist/internal/stores/chat-send-store.js +22 -0
- package/dist/internal/stores/composer-prefill-store.d.ts +37 -0
- package/dist/internal/stores/composer-prefill-store.js +27 -0
- package/dist/internal/stores/connector-gate-store.d.ts +27 -0
- package/dist/internal/stores/connector-gate-store.js +9 -0
- package/dist/internal/stores/current-account-store.d.ts +28 -0
- package/dist/internal/stores/current-account-store.js +12 -0
- package/dist/internal/stores/diagnostics-store.d.ts +2 -0
- package/dist/internal/stores/diagnostics-store.js +5 -0
- package/dist/internal/stores/file-preview-store.d.ts +15 -0
- package/dist/internal/stores/file-preview-store.js +24 -0
- package/dist/internal/stores/files-store.d.ts +155 -0
- package/dist/internal/stores/files-store.js +316 -0
- package/dist/internal/stores/first-chat-store.d.ts +23 -0
- package/dist/internal/stores/first-chat-store.js +53 -0
- package/dist/internal/stores/kortix-computer-store.d.ts +230 -0
- package/dist/internal/stores/kortix-computer-store.js +437 -0
- package/dist/internal/stores/message-jump-store.d.ts +8 -0
- package/dist/internal/stores/message-jump-store.js +6 -0
- package/dist/internal/stores/mobile-app-promo-store.d.ts +19 -0
- package/dist/internal/stores/mobile-app-promo-store.js +28 -0
- package/dist/internal/stores/onboarding-mode-store.d.ts +34 -0
- package/dist/internal/stores/onboarding-mode-store.js +20 -0
- package/dist/internal/stores/panel-fallback-store.d.ts +32 -0
- package/dist/internal/stores/panel-fallback-store.js +21 -0
- package/dist/internal/stores/persisted-store-registry.d.ts +58 -0
- package/dist/internal/stores/persisted-store-registry.js +57 -0
- package/dist/internal/stores/project-switch-store.d.ts +49 -0
- package/dist/internal/stores/project-switch-store.js +39 -0
- package/dist/internal/stores/provider-modal-store.d.ts +10 -0
- package/dist/internal/stores/provider-modal-store.js +7 -0
- package/dist/internal/stores/session-browser-store.d.ts +111 -0
- package/dist/internal/stores/session-browser-store.js +115 -0
- package/dist/internal/stores/session-expanded-store.d.ts +21 -0
- package/dist/internal/stores/session-expanded-store.js +42 -0
- package/dist/internal/stores/session-filter-store.d.ts +91 -0
- package/dist/internal/stores/session-filter-store.js +192 -0
- package/dist/internal/stores/session-history-view-store.d.ts +23 -0
- package/dist/internal/stores/session-history-view-store.js +43 -0
- package/dist/internal/stores/session-hover-store.d.ts +49 -0
- package/dist/internal/stores/session-hover-store.js +91 -0
- package/dist/internal/stores/session-panel-memory-store.d.ts +57 -0
- package/dist/internal/stores/session-panel-memory-store.js +74 -0
- package/dist/internal/stores/session-switch-store.d.ts +24 -0
- package/dist/internal/stores/session-switch-store.js +25 -0
- package/dist/internal/stores/settings-panel-store.d.ts +38 -0
- package/dist/internal/stores/settings-panel-store.js +35 -0
- package/dist/internal/stores/sidebar-nav-store.d.ts +78 -0
- package/dist/internal/stores/sidebar-nav-store.js +121 -0
- package/dist/internal/stores/sound-store.d.ts +51 -0
- package/dist/internal/stores/sound-store.js +42 -0
- package/dist/internal/stores/subscription-store.d.ts +36 -0
- package/dist/internal/stores/subscription-store.js +57 -0
- package/dist/internal/stores/tab-store.d.ts +79 -0
- package/dist/internal/stores/tab-store.js +222 -0
- package/dist/internal/stores/turn-attention-store.d.ts +20 -0
- package/dist/internal/stores/turn-attention-store.js +12 -0
- package/dist/internal/stores/upgrade-dialog-store.d.ts +34 -0
- package/dist/internal/stores/upgrade-dialog-store.js +20 -0
- package/dist/internal/stores/user-preferences-store.d.ts +80 -0
- package/dist/internal/stores/user-preferences-store.js +63 -0
- package/dist/internal/stores/web-notification-store.d.ts +50 -0
- package/dist/internal/stores/web-notification-store.js +76 -0
- package/dist/internal/tunnel/computer-connect.d.ts +175 -0
- package/dist/internal/tunnel/computer-connect.js +355 -0
- package/dist/internal/tunnel/tunnel-connect-command.d.ts +23 -0
- package/dist/internal/tunnel/tunnel-connect-command.js +23 -0
- package/dist/lib/dotmatrix-core.d.ts +112 -0
- package/dist/lib/dotmatrix-core.js +919 -0
- package/dist/lib/dotmatrix-hooks.d.ts +28 -0
- package/dist/lib/dotmatrix-hooks.js +151 -0
- package/dist/lib/favicon.d.ts +4 -0
- package/dist/lib/favicon.js +21 -0
- package/dist/lib/font-weight.d.ts +6 -0
- package/dist/lib/font-weight.js +6 -0
- package/dist/lib/host-env.d.ts +22 -0
- package/dist/lib/host-env.js +9 -0
- package/dist/lib/icon-config.d.ts +33 -0
- package/dist/lib/icon-config.js +22 -0
- package/dist/lib/icon-context.d.ts +34 -0
- package/dist/lib/icon-context.js +81 -0
- package/dist/lib/lazy-client.d.ts +10 -0
- package/dist/lib/lazy-client.js +20 -0
- package/dist/lib/portal-container.d.ts +12 -0
- package/dist/lib/portal-container.js +23 -0
- package/dist/lib/portal-root.d.ts +8 -0
- package/dist/lib/portal-root.js +26 -0
- package/dist/lib/routes.d.ts +52 -0
- package/dist/lib/routes.js +54 -0
- package/dist/lib/settle.d.ts +16 -0
- package/dist/lib/settle.js +29 -0
- package/dist/lib/springs.d.ts +31 -0
- package/dist/lib/springs.js +29 -0
- package/dist/lib/telemetry.d.ts +44 -0
- package/dist/lib/telemetry.js +24 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.js +12 -0
- package/dist/lib/z-stack.d.ts +55 -0
- package/dist/lib/z-stack.js +130 -0
- package/dist/markdown/code/children-text.d.ts +15 -0
- package/dist/markdown/code/children-text.js +29 -0
- package/dist/markdown/code/code-block.d.ts +33 -0
- package/dist/markdown/code/code-block.js +88 -0
- package/dist/markdown/code/copy-overlay.d.ts +6 -0
- package/dist/markdown/code/copy-overlay.js +15 -0
- package/dist/markdown/code/genui-fence.d.ts +35 -0
- package/dist/markdown/code/genui-fence.js +81 -0
- package/dist/markdown/code/index.d.ts +6 -0
- package/dist/markdown/code/index.js +18 -0
- package/dist/markdown/code/inline-chip.d.ts +42 -0
- package/dist/markdown/code/inline-chip.js +108 -0
- package/dist/markdown/code/inline-code.d.ts +6 -0
- package/dist/markdown/code/inline-code.js +150 -0
- package/dist/markdown/code/inside-link-context.d.ts +15 -0
- package/dist/markdown/code/inside-link-context.js +17 -0
- package/dist/markdown/code/markdown-code.d.ts +41 -0
- package/dist/markdown/code/markdown-code.js +92 -0
- package/dist/markdown/code/shiki-highlighter.d.ts +45 -0
- package/dist/markdown/code/shiki-highlighter.js +261 -0
- package/dist/markdown/copy-button.d.ts +8 -0
- package/dist/markdown/copy-button.js +51 -0
- package/dist/markdown/file-links.d.ts +13 -0
- package/dist/markdown/file-links.js +93 -0
- package/dist/markdown/genui/block-telemetry.d.ts +21 -0
- package/dist/markdown/genui/block-telemetry.js +39 -0
- package/dist/markdown/genui/components/charts.d.ts +7 -0
- package/dist/markdown/genui/components/charts.js +185 -0
- package/dist/markdown/genui/components/data.d.ts +15 -0
- package/dist/markdown/genui/components/data.js +110 -0
- package/dist/markdown/genui/components/index.d.ts +4 -0
- package/dist/markdown/genui/components/index.js +38 -0
- package/dist/markdown/genui/components/inline.d.ts +17 -0
- package/dist/markdown/genui/components/inline.js +53 -0
- package/dist/markdown/genui/components/layout.d.ts +6 -0
- package/dist/markdown/genui/components/layout.js +180 -0
- package/dist/markdown/genui/components/map-canvas.d.ts +35 -0
- package/dist/markdown/genui/components/map-canvas.js +109 -0
- package/dist/markdown/genui/components/map-geo.d.ts +45 -0
- package/dist/markdown/genui/components/map-geo.js +52 -0
- package/dist/markdown/genui/components/map.d.ts +6 -0
- package/dist/markdown/genui/components/map.js +77 -0
- package/dist/markdown/genui/components/pending.d.ts +19 -0
- package/dist/markdown/genui/components/pending.js +38 -0
- package/dist/markdown/genui/genui-message-block.d.ts +12 -0
- package/dist/markdown/genui/genui-message-block.js +18 -0
- package/dist/markdown/genui/index.d.ts +11 -0
- package/dist/markdown/genui/index.js +11 -0
- package/dist/markdown/genui/sdk.d.ts +10 -0
- package/dist/markdown/genui/sdk.js +9 -0
- package/dist/markdown/genui/to-markdown.d.ts +46 -0
- package/dist/markdown/genui/to-markdown.js +86 -0
- package/dist/markdown/genui/use-genui-enabled.d.ts +4 -0
- package/dist/markdown/genui/use-genui-enabled.js +10 -0
- package/dist/markdown/index.d.ts +16 -0
- package/dist/markdown/index.js +14 -0
- package/dist/markdown/katex-block.d.ts +4 -0
- package/dist/markdown/katex-block.js +25 -0
- package/dist/markdown/katex-markdown.d.ts +24 -0
- package/dist/markdown/katex-markdown.js +163 -0
- package/dist/markdown/markdown-frontmatter.d.ts +31 -0
- package/dist/markdown/markdown-frontmatter.js +118 -0
- package/dist/markdown/markdown-policy.d.ts +48 -0
- package/dist/markdown/markdown-policy.js +31 -0
- package/dist/markdown/ordered-list.d.ts +31 -0
- package/dist/markdown/ordered-list.js +40 -0
- package/dist/markdown/setup-link-blocks.d.ts +32 -0
- package/dist/markdown/setup-link-blocks.js +114 -0
- package/dist/markdown/setup-links/api-base.d.ts +2 -0
- package/dist/markdown/setup-links/api-base.js +5 -0
- package/dist/markdown/setup-links/approval-decision.d.ts +72 -0
- package/dist/markdown/setup-links/approval-decision.js +322 -0
- package/dist/markdown/setup-links/connector-handshake.d.ts +60 -0
- package/dist/markdown/setup-links/connector-handshake.js +71 -0
- package/dist/markdown/setup-links/connector-link-info.d.ts +3 -0
- package/dist/markdown/setup-links/connector-link-info.js +15 -0
- package/dist/markdown/setup-links/secret-intake-form.d.ts +14 -0
- package/dist/markdown/setup-links/secret-intake-form.js +168 -0
- package/dist/markdown/setup-links/setup-link-button.d.ts +26 -0
- package/dist/markdown/setup-links/setup-link-button.js +150 -0
- package/dist/markdown/setup-links/setup-link-close-finalize.d.ts +23 -0
- package/dist/markdown/setup-links/setup-link-close-finalize.js +33 -0
- package/dist/markdown/setup-links/util.d.ts +80 -0
- package/dist/markdown/setup-links/util.js +220 -0
- package/dist/markdown/stream-words.d.ts +68 -0
- package/dist/markdown/stream-words.js +113 -0
- package/dist/markdown/unified-markdown-utils.d.ts +68 -0
- package/dist/markdown/unified-markdown-utils.js +151 -0
- package/dist/markdown/unified-markdown.d.ts +46 -0
- package/dist/markdown/unified-markdown.js +293 -0
- package/dist/primitives/accordion.d.ts +7 -0
- package/dist/primitives/accordion.js +18 -0
- package/dist/primitives/alert-dialog.d.ts +19 -0
- package/dist/primitives/alert-dialog.js +50 -0
- package/dist/primitives/alert.d.ts +13 -0
- package/dist/primitives/alert.js +67 -0
- package/dist/primitives/avatar.d.ts +11 -0
- package/dist/primitives/avatar.js +23 -0
- package/dist/primitives/back-pill.d.ts +13 -0
- package/dist/primitives/back-pill.js +18 -0
- package/dist/primitives/badge.d.ts +10 -0
- package/dist/primitives/badge.js +42 -0
- package/dist/primitives/breadcrumb.d.ts +11 -0
- package/dist/primitives/breadcrumb.js +28 -0
- package/dist/primitives/bubble.d.ts +20 -0
- package/dist/primitives/bubble.js +38 -0
- package/dist/primitives/button-group.d.ts +9 -0
- package/dist/primitives/button-group.js +32 -0
- package/dist/primitives/button.d.ts +13 -0
- package/dist/primitives/button.js +67 -0
- package/dist/primitives/calendar.d.ts +4 -0
- package/dist/primitives/calendar.js +39 -0
- package/dist/primitives/card.d.ts +96 -0
- package/dist/primitives/card.js +291 -0
- package/dist/primitives/chain-of-thought.d.ts +75 -0
- package/dist/primitives/chain-of-thought.js +66 -0
- package/dist/primitives/chart.d.ts +65 -0
- package/dist/primitives/chart.js +118 -0
- package/dist/primitives/checkbox-group.d.ts +19 -0
- package/dist/primitives/checkbox-group.js +41 -0
- package/dist/primitives/checkbox.d.ts +14 -0
- package/dist/primitives/checkbox.js +27 -0
- package/dist/primitives/collapsible.d.ts +5 -0
- package/dist/primitives/collapsible.js +14 -0
- package/dist/primitives/command.d.ts +58 -0
- package/dist/primitives/command.js +135 -0
- package/dist/primitives/confirm-dialog.d.ts +19 -0
- package/dist/primitives/confirm-dialog.js +30 -0
- package/dist/primitives/context-menu.d.ts +48 -0
- package/dist/primitives/context-menu.js +94 -0
- package/dist/primitives/count-badge.d.ts +26 -0
- package/dist/primitives/count-badge.js +26 -0
- package/dist/primitives/data-grid.d.ts +24 -0
- package/dist/primitives/data-grid.js +107 -0
- package/dist/primitives/date-range-picker.d.ts +119 -0
- package/dist/primitives/date-range-picker.js +190 -0
- package/dist/primitives/definition-list.d.ts +15 -0
- package/dist/primitives/definition-list.js +26 -0
- package/dist/primitives/dialog.d.ts +32 -0
- package/dist/primitives/dialog.js +54 -0
- package/dist/primitives/disclosure.d.ts +121 -0
- package/dist/primitives/disclosure.js +138 -0
- package/dist/primitives/dot-matrix/dotm-3x3-10.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-10.js +29 -0
- package/dist/primitives/dot-matrix/dotm-3x3-12.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-12.js +19 -0
- package/dist/primitives/dot-matrix/dotm-3x3-13.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-13.js +19 -0
- package/dist/primitives/dot-matrix/dotm-3x3-15.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-15.js +22 -0
- package/dist/primitives/dot-matrix/dotm-3x3-16.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-16.js +5 -0
- package/dist/primitives/dot-matrix/dotm-3x3-18.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-18.js +5 -0
- package/dist/primitives/dot-matrix/dotm-3x3-19.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-19.js +5 -0
- package/dist/primitives/dot-matrix/dotm-3x3-2.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-2.js +3 -0
- package/dist/primitives/dot-matrix/dotm-3x3-20.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-20.js +5 -0
- package/dist/primitives/dot-matrix/dotm-3x3-21.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-21.js +5 -0
- package/dist/primitives/dot-matrix/dotm-3x3-3.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-3.js +3 -0
- package/dist/primitives/dot-matrix/dotm-3x3-4.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-4.js +3 -0
- package/dist/primitives/dot-matrix/dotm-3x3-5.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-5.js +3 -0
- package/dist/primitives/dot-matrix/dotm-3x3-6.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-6.js +19 -0
- package/dist/primitives/dot-matrix/dotm-3x3-7.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-7.js +19 -0
- package/dist/primitives/dot-matrix/dotm-3x3-8.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-8.js +19 -0
- package/dist/primitives/dot-matrix/dotm-3x3-9.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-3x3-9.js +23 -0
- package/dist/primitives/dot-matrix/dotm-circular-1.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-1.js +28 -0
- package/dist/primitives/dot-matrix/dotm-circular-10.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-10.js +40 -0
- package/dist/primitives/dot-matrix/dotm-circular-11.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-11.js +37 -0
- package/dist/primitives/dot-matrix/dotm-circular-12.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-12.js +42 -0
- package/dist/primitives/dot-matrix/dotm-circular-14.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-14.js +37 -0
- package/dist/primitives/dot-matrix/dotm-circular-15.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-15.js +49 -0
- package/dist/primitives/dot-matrix/dotm-circular-17.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-17.js +31 -0
- package/dist/primitives/dot-matrix/dotm-circular-2.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-2.js +37 -0
- package/dist/primitives/dot-matrix/dotm-circular-3.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-3.js +54 -0
- package/dist/primitives/dot-matrix/dotm-circular-4.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-4.js +35 -0
- package/dist/primitives/dot-matrix/dotm-circular-5.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-5.js +30 -0
- package/dist/primitives/dot-matrix/dotm-circular-6.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-6.js +37 -0
- package/dist/primitives/dot-matrix/dotm-circular-7.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-7.js +25 -0
- package/dist/primitives/dot-matrix/dotm-circular-8.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-8.js +26 -0
- package/dist/primitives/dot-matrix/dotm-circular-9.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-circular-9.js +41 -0
- package/dist/primitives/dot-matrix/dotm-square-1.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-1.js +27 -0
- package/dist/primitives/dot-matrix/dotm-square-10.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-10.js +27 -0
- package/dist/primitives/dot-matrix/dotm-square-11.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-11.js +25 -0
- package/dist/primitives/dot-matrix/dotm-square-12.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-12.js +28 -0
- package/dist/primitives/dot-matrix/dotm-square-13.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-13.js +45 -0
- package/dist/primitives/dot-matrix/dotm-square-14.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-14.js +38 -0
- package/dist/primitives/dot-matrix/dotm-square-15.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-15.js +31 -0
- package/dist/primitives/dot-matrix/dotm-square-16.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-16.js +33 -0
- package/dist/primitives/dot-matrix/dotm-square-17.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-17.js +27 -0
- package/dist/primitives/dot-matrix/dotm-square-18.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-18.js +29 -0
- package/dist/primitives/dot-matrix/dotm-square-19.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-19.js +74 -0
- package/dist/primitives/dot-matrix/dotm-square-2.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-2.js +72 -0
- package/dist/primitives/dot-matrix/dotm-square-20.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-20.js +79 -0
- package/dist/primitives/dot-matrix/dotm-square-3.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-3.js +23 -0
- package/dist/primitives/dot-matrix/dotm-square-4.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-4.js +41 -0
- package/dist/primitives/dot-matrix/dotm-square-5.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-5.js +23 -0
- package/dist/primitives/dot-matrix/dotm-square-6.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-6.js +20 -0
- package/dist/primitives/dot-matrix/dotm-square-7.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-7.js +43 -0
- package/dist/primitives/dot-matrix/dotm-square-8.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-8.js +57 -0
- package/dist/primitives/dot-matrix/dotm-square-9.d.ts +4 -0
- package/dist/primitives/dot-matrix/dotm-square-9.js +89 -0
- package/dist/primitives/dot-matrix/session-dot-matrix.d.ts +46 -0
- package/dist/primitives/dot-matrix/session-dot-matrix.js +153 -0
- package/dist/primitives/drawer.d.ts +15 -0
- package/dist/primitives/drawer.js +37 -0
- package/dist/primitives/dropdown-menu.d.ts +52 -0
- package/dist/primitives/dropdown-menu.js +114 -0
- package/dist/primitives/emoji-picker.d.ts +15 -0
- package/dist/primitives/emoji-picker.js +137 -0
- package/dist/primitives/emoji-tint.d.ts +41 -0
- package/dist/primitives/emoji-tint.js +131 -0
- package/dist/primitives/empty-state.d.ts +14 -0
- package/dist/primitives/empty-state.js +23 -0
- package/dist/primitives/empty.d.ts +11 -0
- package/dist/primitives/empty.js +33 -0
- package/dist/primitives/entity-avatar.d.ts +84 -0
- package/dist/primitives/entity-avatar.js +106 -0
- package/dist/primitives/error-boundary.d.ts +24 -0
- package/dist/primitives/error-boundary.js +25 -0
- package/dist/primitives/error-state.d.ts +12 -0
- package/dist/primitives/error-state.js +21 -0
- package/dist/primitives/faded-scroll-area.d.ts +8 -0
- package/dist/primitives/faded-scroll-area.js +80 -0
- package/dist/primitives/favicon-avatar.d.ts +32 -0
- package/dist/primitives/favicon-avatar.js +18 -0
- package/dist/primitives/field.d.ts +15 -0
- package/dist/primitives/field.js +48 -0
- package/dist/primitives/file-tree.d.ts +32 -0
- package/dist/primitives/file-tree.js +30 -0
- package/dist/primitives/glyph-face.d.ts +18 -0
- package/dist/primitives/glyph-face.js +37 -0
- package/dist/primitives/glyph-paths-source.d.ts +2 -0
- package/dist/primitives/glyph-paths-source.js +40 -0
- package/dist/primitives/glyph-paths.generated.d.ts +2 -0
- package/dist/primitives/glyph-paths.generated.js +207 -0
- package/dist/primitives/glyph-picker.d.ts +22 -0
- package/dist/primitives/glyph-picker.js +118 -0
- package/dist/primitives/glyph-registry.d.ts +36 -0
- package/dist/primitives/glyph-registry.js +479 -0
- package/dist/primitives/glyph-tint.d.ts +6 -0
- package/dist/primitives/glyph-tint.js +93 -0
- package/dist/primitives/hint.d.ts +14 -0
- package/dist/primitives/hint.js +12 -0
- package/dist/primitives/histogram-bars.d.ts +38 -0
- package/dist/primitives/histogram-bars.js +93 -0
- package/dist/primitives/hover-card.d.ts +28 -0
- package/dist/primitives/hover-card.js +40 -0
- package/dist/primitives/icon-provider.d.ts +23 -0
- package/dist/primitives/icon-provider.js +30 -0
- package/dist/primitives/info-banner.d.ts +14 -0
- package/dist/primitives/info-banner.js +72 -0
- package/dist/primitives/inline-meta.d.ts +6 -0
- package/dist/primitives/inline-meta.js +8 -0
- package/dist/primitives/input-group.d.ts +19 -0
- package/dist/primitives/input-group.js +73 -0
- package/dist/primitives/input.d.ts +26 -0
- package/dist/primitives/input.js +23 -0
- package/dist/primitives/item.d.ts +23 -0
- package/dist/primitives/item.js +67 -0
- package/dist/primitives/kbd.d.ts +3 -0
- package/dist/primitives/kbd.js +20 -0
- package/dist/primitives/kortix-asterisk.d.ts +6 -0
- package/dist/primitives/kortix-asterisk.js +17 -0
- package/dist/primitives/kortix-icons.d.ts +2 -0
- package/dist/primitives/kortix-icons.js +17 -0
- package/dist/primitives/kortix-loader.d.ts +76 -0
- package/dist/primitives/kortix-loader.js +74 -0
- package/dist/primitives/kortix-logo.d.ts +30 -0
- package/dist/primitives/kortix-logo.js +47 -0
- package/dist/primitives/label.d.ts +4 -0
- package/dist/primitives/label.js +9 -0
- package/dist/primitives/list.d.ts +15 -0
- package/dist/primitives/list.js +25 -0
- package/dist/primitives/loading.d.ts +19 -0
- package/dist/primitives/loading.js +31 -0
- package/dist/primitives/local-time.d.ts +34 -0
- package/dist/primitives/local-time.js +60 -0
- package/dist/primitives/map.d.ts +101 -0
- package/dist/primitives/map.js +257 -0
- package/dist/primitives/marker.d.ts +14 -0
- package/dist/primitives/marker.js +28 -0
- package/dist/primitives/menu-recipe.d.ts +102 -0
- package/dist/primitives/menu-recipe.js +129 -0
- package/dist/primitives/mermaid-render.d.ts +52 -0
- package/dist/primitives/mermaid-render.js +135 -0
- package/dist/primitives/mermaid-renderer.d.ts +13 -0
- package/dist/primitives/mermaid-renderer.js +262 -0
- package/dist/primitives/message.d.ts +15 -0
- package/dist/primitives/message.js +26 -0
- package/dist/primitives/modal.d.ts +107 -0
- package/dist/primitives/modal.js +181 -0
- package/dist/primitives/navigation-menu.d.ts +16 -0
- package/dist/primitives/navigation-menu.js +35 -0
- package/dist/primitives/page-search-bar.d.ts +11 -0
- package/dist/primitives/page-search-bar.js +13 -0
- package/dist/primitives/paper-wallpaper-shaders.d.ts +14 -0
- package/dist/primitives/paper-wallpaper-shaders.js +73 -0
- package/dist/primitives/phone-input.d.ts +7 -0
- package/dist/primitives/phone-input.js +59 -0
- package/dist/primitives/pixel-kortix-mark.d.ts +13 -0
- package/dist/primitives/pixel-kortix-mark.js +40 -0
- package/dist/primitives/popover.d.ts +10 -0
- package/dist/primitives/popover.js +40 -0
- package/dist/primitives/portal.d.ts +5 -0
- package/dist/primitives/portal.js +17 -0
- package/dist/primitives/preview-image.d.ts +17 -0
- package/dist/primitives/preview-image.js +59 -0
- package/dist/primitives/progress-ring.d.ts +6 -0
- package/dist/primitives/progress-ring.js +9 -0
- package/dist/primitives/progress.d.ts +6 -0
- package/dist/primitives/progress.js +8 -0
- package/dist/primitives/project-icon-picker.d.ts +11 -0
- package/dist/primitives/project-icon-picker.js +56 -0
- package/dist/primitives/radio-group.d.ts +12 -0
- package/dist/primitives/radio-group.js +20 -0
- package/dist/primitives/resizable.d.ts +24 -0
- package/dist/primitives/resizable.js +16 -0
- package/dist/primitives/scroll-area.d.ts +5 -0
- package/dist/primitives/scroll-area.js +11 -0
- package/dist/primitives/section-card.d.ts +37 -0
- package/dist/primitives/section-card.js +14 -0
- package/dist/primitives/section.d.ts +10 -0
- package/dist/primitives/section.js +22 -0
- package/dist/primitives/select.d.ts +25 -0
- package/dist/primitives/select.js +61 -0
- package/dist/primitives/separator.d.ts +4 -0
- package/dist/primitives/separator.js +8 -0
- package/dist/primitives/settings-row.d.ts +54 -0
- package/dist/primitives/settings-row.js +43 -0
- package/dist/primitives/settings-section-header.d.ts +13 -0
- package/dist/primitives/settings-section-header.js +11 -0
- package/dist/primitives/settings-subsection-header.d.ts +48 -0
- package/dist/primitives/settings-subsection-header.js +37 -0
- package/dist/primitives/shader-safe.d.ts +48 -0
- package/dist/primitives/shader-safe.js +74 -0
- package/dist/primitives/sheet.d.ts +35 -0
- package/dist/primitives/sheet.js +56 -0
- package/dist/primitives/sidebar-context.d.ts +72 -0
- package/dist/primitives/sidebar-context.js +36 -0
- package/dist/primitives/sidebar-menu-primitives.d.ts +38 -0
- package/dist/primitives/sidebar-menu-primitives.js +97 -0
- package/dist/primitives/sidebar-panel.d.ts +36 -0
- package/dist/primitives/sidebar-panel.js +265 -0
- package/dist/primitives/sidebar-peek.d.ts +27 -0
- package/dist/primitives/sidebar-peek.js +70 -0
- package/dist/primitives/sidebar-width.d.ts +48 -0
- package/dist/primitives/sidebar-width.js +62 -0
- package/dist/primitives/sidebar.d.ts +18 -0
- package/dist/primitives/sidebar.js +194 -0
- package/dist/primitives/skeleton.d.ts +3 -0
- package/dist/primitives/skeleton.js +6 -0
- package/dist/primitives/slider-native.d.ts +7 -0
- package/dist/primitives/slider-native.js +16 -0
- package/dist/primitives/slider.d.ts +14 -0
- package/dist/primitives/slider.js +48 -0
- package/dist/primitives/sliding-tab-indicator.d.ts +61 -0
- package/dist/primitives/sliding-tab-indicator.js +128 -0
- package/dist/primitives/split-sheet.d.ts +61 -0
- package/dist/primitives/split-sheet.js +239 -0
- package/dist/primitives/spotlight-card.d.ts +8 -0
- package/dist/primitives/spotlight-card.js +43 -0
- package/dist/primitives/status-ring.d.ts +38 -0
- package/dist/primitives/status-ring.js +38 -0
- package/dist/primitives/status.d.ts +58 -0
- package/dist/primitives/status.js +76 -0
- package/dist/primitives/stepper.d.ts +28 -0
- package/dist/primitives/stepper.js +73 -0
- package/dist/primitives/switch.d.ts +8 -0
- package/dist/primitives/switch.js +131 -0
- package/dist/primitives/system-message.d.ts +23 -0
- package/dist/primitives/system-message.js +51 -0
- package/dist/primitives/table.d.ts +10 -0
- package/dist/primitives/table.js +28 -0
- package/dist/primitives/tabs.d.ts +73 -0
- package/dist/primitives/tabs.js +207 -0
- package/dist/primitives/tag.d.ts +7 -0
- package/dist/primitives/tag.js +22 -0
- package/dist/primitives/text-shimmer.d.ts +13 -0
- package/dist/primitives/text-shimmer.js +91 -0
- package/dist/primitives/textarea.d.ts +33 -0
- package/dist/primitives/textarea.js +87 -0
- package/dist/primitives/toast.d.ts +105 -0
- package/dist/primitives/toast.js +233 -0
- package/dist/primitives/toggle.d.ts +12 -0
- package/dist/primitives/toggle.js +26 -0
- package/dist/primitives/tooltip.d.ts +9 -0
- package/dist/primitives/tooltip.js +19 -0
- package/dist/primitives/trigger-variants.d.ts +14 -0
- package/dist/primitives/trigger-variants.js +67 -0
- package/dist/primitives/type-to-confirm-dialog.d.ts +88 -0
- package/dist/primitives/type-to-confirm-dialog.js +101 -0
- package/dist/primitives/typed-title-logic.d.ts +22 -0
- package/dist/primitives/typed-title-logic.js +33 -0
- package/dist/primitives/typed-title.d.ts +38 -0
- package/dist/primitives/typed-title.js +66 -0
- package/dist/primitives/typing-animation.d.ts +36 -0
- package/dist/primitives/typing-animation.js +141 -0
- package/dist/primitives/user-avatar.d.ts +47 -0
- package/dist/primitives/user-avatar.js +46 -0
- package/dist/primitives/wallpaper-shaders.d.ts +7 -0
- package/dist/primitives/wallpaper-shaders.js +50 -0
- package/dist/providers/motion-features.d.ts +1 -0
- package/dist/providers/motion-features.js +3 -0
- package/dist/providers/session-ids.d.ts +21 -0
- package/dist/providers/session-ids.js +13 -0
- package/dist/providers/ui-provider.d.ts +336 -0
- package/dist/providers/ui-provider.js +214 -0
- package/dist/providers/use-host-preview-url.d.ts +14 -0
- package/dist/providers/use-host-preview-url.js +32 -0
- package/dist/session/actions/project-session-list-helpers.d.ts +156 -0
- package/dist/session/actions/project-session-list-helpers.js +339 -0
- package/dist/session/actions/rename-session-cache.d.ts +35 -0
- package/dist/session/actions/rename-session-cache.js +50 -0
- package/dist/session/actions/session-delete-modal.d.ts +17 -0
- package/dist/session/actions/session-delete-modal.js +128 -0
- package/dist/session/actions/session-label.d.ts +107 -0
- package/dist/session/actions/session-label.js +149 -0
- package/dist/session/actions/use-rename-session.d.ts +9 -0
- package/dist/session/actions/use-rename-session.js +66 -0
- package/dist/session/actions/use-session-list-actions.d.ts +10 -0
- package/dist/session/actions/use-session-list-actions.js +51 -0
- package/dist/session/composer/ComposerAboveCard.d.ts +23 -0
- package/dist/session/composer/ComposerAboveCard.js +28 -0
- package/dist/session/composer/ComposerCard.d.ts +72 -0
- package/dist/session/composer/ComposerCard.js +59 -0
- package/dist/session/composer/agent-selector.d.ts +20 -0
- package/dist/session/composer/agent-selector.js +142 -0
- package/dist/session/composer/animated-placeholder.d.ts +65 -0
- package/dist/session/composer/animated-placeholder.js +119 -0
- package/dist/session/composer/attachment-submission.d.ts +184 -0
- package/dist/session/composer/attachment-submission.js +302 -0
- package/dist/session/composer/attachment-tile.d.ts +84 -0
- package/dist/session/composer/attachment-tile.js +124 -0
- package/dist/session/composer/attachment-tiles.d.ts +53 -0
- package/dist/session/composer/attachment-tiles.js +201 -0
- package/dist/session/composer/clipboard-files.d.ts +16 -0
- package/dist/session/composer/clipboard-files.js +23 -0
- package/dist/session/composer/command-attachments.d.ts +151 -0
- package/dist/session/composer/command-attachments.js +128 -0
- package/dist/session/composer/composer-agent-access.d.ts +83 -0
- package/dist/session/composer/composer-agent-access.js +89 -0
- package/dist/session/composer/composer-chat-input.d.ts +89 -0
- package/dist/session/composer/composer-chat-input.js +143 -0
- package/dist/session/composer/composer-draft-recovery.d.ts +42 -0
- package/dist/session/composer/composer-draft-recovery.js +83 -0
- package/dist/session/composer/composer-drop-zone.d.ts +22 -0
- package/dist/session/composer/composer-drop-zone.js +79 -0
- package/dist/session/composer/composer-logic.d.ts +395 -0
- package/dist/session/composer/composer-logic.js +389 -0
- package/dist/session/composer/composer-reset.d.ts +34 -0
- package/dist/session/composer/composer-reset.js +21 -0
- package/dist/session/composer/composer-text-metrics.d.ts +28 -0
- package/dist/session/composer/composer-text-metrics.js +28 -0
- package/dist/session/composer/composer-toolbar.d.ts +117 -0
- package/dist/session/composer/composer-toolbar.js +17 -0
- package/dist/session/composer/composer-underbar.d.ts +54 -0
- package/dist/session/composer/composer-underbar.js +56 -0
- package/dist/session/composer/composer.d.ts +356 -0
- package/dist/session/composer/composer.js +1426 -0
- package/dist/session/composer/context-ring.d.ts +6 -0
- package/dist/session/composer/context-ring.js +21 -0
- package/dist/session/composer/context-usage.d.ts +48 -0
- package/dist/session/composer/context-usage.js +93 -0
- package/dist/session/composer/delivery-chain.d.ts +28 -0
- package/dist/session/composer/delivery-chain.js +60 -0
- package/dist/session/composer/draft/composer-draft-store.d.ts +21 -0
- package/dist/session/composer/draft/composer-draft-store.js +41 -0
- package/dist/session/composer/draft/composer-draft.d.ts +142 -0
- package/dist/session/composer/draft/composer-draft.js +188 -0
- package/dist/session/composer/draft/draft-uploads.d.ts +29 -0
- package/dist/session/composer/draft/draft-uploads.js +84 -0
- package/dist/session/composer/draft/use-composer-draft.d.ts +49 -0
- package/dist/session/composer/draft/use-composer-draft.js +169 -0
- package/dist/session/composer/editor/composer-editor.d.ts +266 -0
- package/dist/session/composer/editor/composer-editor.js +436 -0
- package/dist/session/composer/editor/extensions.d.ts +65 -0
- package/dist/session/composer/editor/extensions.js +80 -0
- package/dist/session/composer/editor/first-visual-line.d.ts +13 -0
- package/dist/session/composer/editor/first-visual-line.js +19 -0
- package/dist/session/composer/editor/mention-node.d.ts +51 -0
- package/dist/session/composer/editor/mention-node.js +125 -0
- package/dist/session/composer/editor/serialize.d.ts +69 -0
- package/dist/session/composer/editor/serialize.js +175 -0
- package/dist/session/composer/editor/suggestion.d.ts +87 -0
- package/dist/session/composer/editor/suggestion.js +76 -0
- package/dist/session/composer/entitlements-pending.d.ts +60 -0
- package/dist/session/composer/entitlements-pending.js +57 -0
- package/dist/session/composer/esc-to-stop.d.ts +50 -0
- package/dist/session/composer/esc-to-stop.js +24 -0
- package/dist/session/composer/held-commands.d.ts +44 -0
- package/dist/session/composer/held-commands.js +41 -0
- package/dist/session/composer/held-send-guard.d.ts +9 -0
- package/dist/session/composer/held-send-guard.js +26 -0
- package/dist/session/composer/hooks/use-composer-escape-stop.d.ts +6 -0
- package/dist/session/composer/hooks/use-composer-escape-stop.js +28 -0
- package/dist/session/composer/hooks/use-composer-focus.d.ts +33 -0
- package/dist/session/composer/hooks/use-composer-focus.js +181 -0
- package/dist/session/composer/hooks/use-debounced-value.d.ts +8 -0
- package/dist/session/composer/hooks/use-debounced-value.js +27 -0
- package/dist/session/composer/hooks/use-file-search.d.ts +137 -0
- package/dist/session/composer/hooks/use-file-search.js +205 -0
- package/dist/session/composer/hooks/use-latest-ref.d.ts +8 -0
- package/dist/session/composer/hooks/use-latest-ref.js +15 -0
- package/dist/session/composer/inbox-live-prompt.d.ts +9 -0
- package/dist/session/composer/inbox-live-prompt.js +10 -0
- package/dist/session/composer/inbox-row-claims.d.ts +64 -0
- package/dist/session/composer/inbox-row-claims.js +61 -0
- package/dist/session/composer/index.d.ts +24 -0
- package/dist/session/composer/index.js +22 -0
- package/dist/session/composer/menus/mention-controller.d.ts +40 -0
- package/dist/session/composer/menus/mention-controller.js +107 -0
- package/dist/session/composer/menus/mention-menu.d.ts +45 -0
- package/dist/session/composer/menus/mention-menu.js +80 -0
- package/dist/session/composer/menus/menu-items.d.ts +27 -0
- package/dist/session/composer/menus/menu-items.js +89 -0
- package/dist/session/composer/menus/menu-nav-state.d.ts +169 -0
- package/dist/session/composer/menus/menu-nav-state.js +194 -0
- package/dist/session/composer/menus/menu-navigation.d.ts +3 -0
- package/dist/session/composer/menus/menu-navigation.js +29 -0
- package/dist/session/composer/menus/menu-selection.d.ts +15 -0
- package/dist/session/composer/menus/menu-selection.js +23 -0
- package/dist/session/composer/menus/menu-shell.d.ts +69 -0
- package/dist/session/composer/menus/menu-shell.js +91 -0
- package/dist/session/composer/menus/mount.d.ts +79 -0
- package/dist/session/composer/menus/mount.js +128 -0
- package/dist/session/composer/menus/slash-actions.d.ts +58 -0
- package/dist/session/composer/menus/slash-actions.js +69 -0
- package/dist/session/composer/menus/slash-controller.d.ts +80 -0
- package/dist/session/composer/menus/slash-controller.js +152 -0
- package/dist/session/composer/menus/slash-files.d.ts +69 -0
- package/dist/session/composer/menus/slash-files.js +97 -0
- package/dist/session/composer/menus/slash-items.d.ts +86 -0
- package/dist/session/composer/menus/slash-items.js +168 -0
- package/dist/session/composer/menus/slash-menu.d.ts +44 -0
- package/dist/session/composer/menus/slash-menu.js +138 -0
- package/dist/session/composer/pasted-text.d.ts +25 -0
- package/dist/session/composer/pasted-text.js +55 -0
- package/dist/session/composer/queue-projection.d.ts +102 -0
- package/dist/session/composer/queue-projection.js +144 -0
- package/dist/session/composer/queued-message-restore.d.ts +58 -0
- package/dist/session/composer/queued-message-restore.js +67 -0
- package/dist/session/composer/queued-prompt-edit.d.ts +79 -0
- package/dist/session/composer/queued-prompt-edit.js +114 -0
- package/dist/session/composer/queued-prompt-list.d.ts +36 -0
- package/dist/session/composer/queued-prompt-list.js +84 -0
- package/dist/session/composer/quote-list.d.ts +47 -0
- package/dist/session/composer/quote-list.js +41 -0
- package/dist/session/composer/reasoning-effort-selector.d.ts +36 -0
- package/dist/session/composer/reasoning-effort-selector.js +121 -0
- package/dist/session/composer/send-blockers.d.ts +101 -0
- package/dist/session/composer/send-blockers.js +122 -0
- package/dist/session/composer/send-stop-control.d.ts +39 -0
- package/dist/session/composer/send-stop-control.js +68 -0
- package/dist/session/composer/sent-attachment-previews.d.ts +59 -0
- package/dist/session/composer/sent-attachment-previews.js +128 -0
- package/dist/session/composer/session-chat-input.d.ts +8 -0
- package/dist/session/composer/session-chat-input.js +7 -0
- package/dist/session/composer/session-composer-readiness.d.ts +173 -0
- package/dist/session/composer/session-composer-readiness.js +158 -0
- package/dist/session/composer/stores/queued-draft-store.d.ts +46 -0
- package/dist/session/composer/stores/queued-draft-store.js +33 -0
- package/dist/session/composer/stores/session-composer-handoff-store.d.ts +125 -0
- package/dist/session/composer/stores/session-composer-handoff-store.js +142 -0
- package/dist/session/composer/stores/session-composer-prefill-store.d.ts +54 -0
- package/dist/session/composer/stores/session-composer-prefill-store.js +57 -0
- package/dist/session/composer/submit-latch.d.ts +9 -0
- package/dist/session/composer/submit-latch.js +27 -0
- package/dist/session/composer/token-progress.d.ts +35 -0
- package/dist/session/composer/token-progress.js +102 -0
- package/dist/session/composer/types.d.ts +60 -0
- package/dist/session/composer/types.js +9 -0
- package/dist/session/composer/uploaded-file-refs.d.ts +51 -0
- package/dist/session/composer/uploaded-file-refs.js +90 -0
- package/dist/session/composer/use-instant-session-send.d.ts +82 -0
- package/dist/session/composer/use-instant-session-send.js +383 -0
- package/dist/session/header/compact-modal.d.ts +10 -0
- package/dist/session/header/compact-modal.js +24 -0
- package/dist/session/header/export-transcript-modal.d.ts +31 -0
- package/dist/session/header/export-transcript-modal.js +158 -0
- package/dist/session/header/session-changes-indicator.d.ts +3 -0
- package/dist/session/header/session-changes-indicator.js +82 -0
- package/dist/session/header/session-config-indicator.d.ts +34 -0
- package/dist/session/header/session-config-indicator.js +127 -0
- package/dist/session/header/session-pending-approvals-indicator.d.ts +3 -0
- package/dist/session/header/session-pending-approvals-indicator.js +43 -0
- package/dist/session/header/session-reload-progress-view.d.ts +4 -0
- package/dist/session/header/session-reload-progress-view.js +12 -0
- package/dist/session/header/session-reminders-indicator.d.ts +3 -0
- package/dist/session/header/session-reminders-indicator.js +78 -0
- package/dist/session/header/session-site-header.d.ts +12 -0
- package/dist/session/header/session-site-header.js +287 -0
- package/dist/session/header/session-title-input.d.ts +20 -0
- package/dist/session/header/session-title-input.js +56 -0
- package/dist/session/header/subagent-hover-card.d.ts +23 -0
- package/dist/session/header/subagent-hover-card.js +35 -0
- package/dist/session/index.d.ts +65 -0
- package/dist/session/index.js +63 -0
- package/dist/session/media/image-output-path.d.ts +9 -0
- package/dist/session/media/image-output-path.js +43 -0
- package/dist/session/media/image-preview.d.ts +11 -0
- package/dist/session/media/image-preview.js +13 -0
- package/dist/session/media/sandbox-image.d.ts +24 -0
- package/dist/session/media/sandbox-image.js +144 -0
- package/dist/session/media/sandbox-url-detector.d.ts +29 -0
- package/dist/session/media/sandbox-url-detector.js +180 -0
- package/dist/session/models/ask-owner-for-credits-button.d.ts +7 -0
- package/dist/session/models/ask-owner-for-credits-button.js +33 -0
- package/dist/session/models/chatgpt-connection-action.d.ts +22 -0
- package/dist/session/models/chatgpt-connection-action.js +33 -0
- package/dist/session/models/model-availability.d.ts +48 -0
- package/dist/session/models/model-availability.js +40 -0
- package/dist/session/models/model-connection-gate.d.ts +38 -0
- package/dist/session/models/model-connection-gate.js +76 -0
- package/dist/session/models/model-grouping.d.ts +85 -0
- package/dist/session/models/model-grouping.js +125 -0
- package/dist/session/models/model-search-empty.d.ts +6 -0
- package/dist/session/models/model-search-empty.js +10 -0
- package/dist/session/models/model-selector.d.ts +86 -0
- package/dist/session/models/model-selector.js +328 -0
- package/dist/session/models/model-tags.d.ts +27 -0
- package/dist/session/models/model-tags.js +35 -0
- package/dist/session/models/provider-failure-recovery.d.ts +11 -0
- package/dist/session/models/provider-failure-recovery.js +12 -0
- package/dist/session/models/use-model-connection-gate.d.ts +57 -0
- package/dist/session/models/use-model-connection-gate.js +162 -0
- package/dist/session/outcomes/anchor-outcomes.d.ts +18 -0
- package/dist/session/outcomes/anchor-outcomes.js +48 -0
- package/dist/session/outcomes/change-request-outcomes.d.ts +28 -0
- package/dist/session/outcomes/change-request-outcomes.js +80 -0
- package/dist/session/outcomes/session-outcomes-provider.d.ts +14 -0
- package/dist/session/outcomes/session-outcomes-provider.js +79 -0
- package/dist/session/outcomes/turn-outcomes.d.ts +10 -0
- package/dist/session/outcomes/turn-outcomes.js +38 -0
- package/dist/session/overrides/provider-pool-draft-context.d.ts +17 -0
- package/dist/session/overrides/provider-pool-draft-context.js +26 -0
- package/dist/session/overrides/provider-pool-draft.d.ts +48 -0
- package/dist/session/overrides/provider-pool-draft.js +62 -0
- package/dist/session/overrides/provider-secret-pool-editor.d.ts +13 -0
- package/dist/session/overrides/provider-secret-pool-editor.js +110 -0
- package/dist/session/overrides/session-overrides-composer.d.ts +44 -0
- package/dist/session/overrides/session-overrides-composer.js +37 -0
- package/dist/session/overrides/session-overrides-control.d.ts +71 -0
- package/dist/session/overrides/session-overrides-control.js +71 -0
- package/dist/session/overrides/session-overrides-toolbar.d.ts +56 -0
- package/dist/session/overrides/session-overrides-toolbar.js +323 -0
- package/dist/session/panel/action-panel.d.ts +1 -0
- package/dist/session/panel/action-panel.js +28 -0
- package/dist/session/panel/advanced/advanced-panel.d.ts +15 -0
- package/dist/session/panel/advanced/advanced-panel.js +67 -0
- package/dist/session/panel/audit/audit-credential-label.d.ts +20 -0
- package/dist/session/panel/audit/audit-credential-label.js +22 -0
- package/dist/session/panel/diff-dialog.d.ts +7 -0
- package/dist/session/panel/diff-dialog.js +24 -0
- package/dist/session/panel/easy/app-preview.d.ts +19 -0
- package/dist/session/panel/easy/app-preview.js +270 -0
- package/dist/session/panel/easy/apps-card.d.ts +5 -0
- package/dist/session/panel/easy/apps-card.js +67 -0
- package/dist/session/panel/easy/context-card.d.ts +18 -0
- package/dist/session/panel/easy/context-card.js +150 -0
- package/dist/session/panel/easy/detail-view.d.ts +193 -0
- package/dist/session/panel/easy/detail-view.js +385 -0
- package/dist/session/panel/easy/easy-panel-logic.d.ts +187 -0
- package/dist/session/panel/easy/easy-panel-logic.js +241 -0
- package/dist/session/panel/easy/easy-panel.d.ts +1 -0
- package/dist/session/panel/easy/easy-panel.js +66 -0
- package/dist/session/panel/easy/file-preview.d.ts +58 -0
- package/dist/session/panel/easy/file-preview.js +250 -0
- package/dist/session/panel/easy/outputs-card.d.ts +22 -0
- package/dist/session/panel/easy/outputs-card.js +209 -0
- package/dist/session/panel/easy/panel-card.d.ts +58 -0
- package/dist/session/panel/easy/panel-card.js +44 -0
- package/dist/session/panel/easy/plan-card.d.ts +20 -0
- package/dist/session/panel/easy/plan-card.js +108 -0
- package/dist/session/panel/easy/preview-load.d.ts +193 -0
- package/dist/session/panel/easy/preview-load.js +165 -0
- package/dist/session/panel/easy/step-detail-body.d.ts +24 -0
- package/dist/session/panel/easy/step-detail-body.js +33 -0
- package/dist/session/panel/easy/step-icon.d.ts +6 -0
- package/dist/session/panel/easy/step-icon.js +44 -0
- package/dist/session/panel/index.d.ts +17 -0
- package/dist/session/panel/index.js +17 -0
- package/dist/session/panel/mobile-tool-drawer.d.ts +5 -0
- package/dist/session/panel/mobile-tool-drawer.js +42 -0
- package/dist/session/panel/open-session-quick-view.d.ts +6 -0
- package/dist/session/panel/open-session-quick-view.js +76 -0
- package/dist/session/panel/panel-fallback.d.ts +8 -0
- package/dist/session/panel/panel-fallback.js +62 -0
- package/dist/session/panel/session-action-panel-column.d.ts +11 -0
- package/dist/session/panel/session-action-panel-column.js +180 -0
- package/dist/session/panel/session-audit-panel.d.ts +4 -0
- package/dist/session/panel/session-audit-panel.js +100 -0
- package/dist/session/panel/session-audit-shared.d.ts +102 -0
- package/dist/session/panel/session-audit-shared.js +188 -0
- package/dist/session/panel/session-changes-shared.d.ts +57 -0
- package/dist/session/panel/session-changes-shared.js +92 -0
- package/dist/session/panel/session-detail-panel.d.ts +1 -0
- package/dist/session/panel/session-detail-panel.js +50 -0
- package/dist/session/panel/session-diff-viewer.d.ts +12 -0
- package/dist/session/panel/session-diff-viewer.js +60 -0
- package/dist/session/panel/session-files-explorer-logic.d.ts +47 -0
- package/dist/session/panel/session-files-explorer-logic.js +48 -0
- package/dist/session/panel/session-files-explorer.d.ts +38 -0
- package/dist/session/panel/session-files-explorer.js +114 -0
- package/dist/session/panel/session-files-panel.d.ts +22 -0
- package/dist/session/panel/session-files-panel.js +98 -0
- package/dist/session/panel/session-files-store-registry.d.ts +3 -0
- package/dist/session/panel/session-files-store-registry.js +23 -0
- package/dist/session/panel/session-panel-header.d.ts +15 -0
- package/dist/session/panel/session-panel-header.js +23 -0
- package/dist/session/panel/session-panel-provider.d.ts +59 -0
- package/dist/session/panel/session-panel-provider.js +569 -0
- package/dist/session/panel/session-panel-sizing.d.ts +82 -0
- package/dist/session/panel/session-panel-sizing.js +109 -0
- package/dist/session/panel/session-wallpaper-layer.d.ts +13 -0
- package/dist/session/panel/session-wallpaper-layer.js +17 -0
- package/dist/session/panel/shared/action-navigator-logic.d.ts +44 -0
- package/dist/session/panel/shared/action-navigator-logic.js +69 -0
- package/dist/session/panel/shared/action-navigator.d.ts +11 -0
- package/dist/session/panel/shared/action-navigator.js +65 -0
- package/dist/session/panel/shared/collect-tool-parts.d.ts +38 -0
- package/dist/session/panel/shared/collect-tool-parts.js +56 -0
- package/dist/session/panel/shared/deliverable-readiness.d.ts +22 -0
- package/dist/session/panel/shared/deliverable-readiness.js +34 -0
- package/dist/session/panel/shared/derive-panels.d.ts +81 -0
- package/dist/session/panel/shared/derive-panels.js +475 -0
- package/dist/session/panel/shared/latest-run.d.ts +9 -0
- package/dist/session/panel/shared/latest-run.js +22 -0
- package/dist/session/panel/shared/output-priority.d.ts +40 -0
- package/dist/session/panel/shared/output-priority.js +119 -0
- package/dist/session/panel/shared/run-outcome.d.ts +13 -0
- package/dist/session/panel/shared/run-outcome.js +34 -0
- package/dist/session/panel/shared/use-deliverable-readiness.d.ts +9 -0
- package/dist/session/panel/shared/use-deliverable-readiness.js +90 -0
- package/dist/session/panel/shared/use-panel-derivations.d.ts +23 -0
- package/dist/session/panel/shared/use-panel-derivations.js +64 -0
- package/dist/session/panel/shared/use-panel-handoffs.d.ts +13 -0
- package/dist/session/panel/shared/use-panel-handoffs.js +170 -0
- package/dist/session/panel/use-session-panel-layout.d.ts +22 -0
- package/dist/session/panel/use-session-panel-layout.js +222 -0
- package/dist/session/panel/use-session-panel-state.d.ts +19 -0
- package/dist/session/panel/use-session-panel-state.js +116 -0
- package/dist/session/participants/session-participants.d.ts +29 -0
- package/dist/session/participants/session-participants.js +58 -0
- package/dist/session/print/load-entire-history.d.ts +66 -0
- package/dist/session/print/load-entire-history.js +61 -0
- package/dist/session/print/print-chain.d.ts +64 -0
- package/dist/session/print/print-chain.js +69 -0
- package/dist/session/print/session-print-header.d.ts +26 -0
- package/dist/session/print/session-print-header.js +32 -0
- package/dist/session/print/use-session-print.d.ts +45 -0
- package/dist/session/print/use-session-print.js +108 -0
- package/dist/session/prompts/approval-request.d.ts +195 -0
- package/dist/session/prompts/approval-request.js +514 -0
- package/dist/session/prompts/question-prompt.d.ts +26 -0
- package/dist/session/prompts/question-prompt.js +224 -0
- package/dist/session/prompts/session-approval-prompt.d.ts +68 -0
- package/dist/session/prompts/session-approval-prompt.js +169 -0
- package/dist/session/prompts/session-approval-review.d.ts +85 -0
- package/dist/session/prompts/session-approval-review.js +176 -0
- package/dist/session/prompts/session-permission-prompt.d.ts +19 -0
- package/dist/session/prompts/session-permission-prompt.js +223 -0
- package/dist/session/scope/create-scoped-session.d.ts +12 -0
- package/dist/session/scope/create-scoped-session.js +28 -0
- package/dist/session/scope/session-scope-control.d.ts +31 -0
- package/dist/session/scope/session-scope-control.js +83 -0
- package/dist/session/scope/session-scope-model.d.ts +113 -0
- package/dist/session/scope/session-scope-model.js +249 -0
- package/dist/session/scope/session-scope-toolbar.d.ts +22 -0
- package/dist/session/scope/session-scope-toolbar.js +76 -0
- package/dist/session/scope/use-session-scope.d.ts +61 -0
- package/dist/session/scope/use-session-scope.js +206 -0
- package/dist/session/status/agent-git-reconciliation.d.ts +2 -0
- package/dist/session/status/agent-git-reconciliation.js +32 -0
- package/dist/session/status/previous-repository-session.d.ts +17 -0
- package/dist/session/status/previous-repository-session.js +130 -0
- package/dist/session/status/provisioning-failure.d.ts +22 -0
- package/dist/session/status/provisioning-failure.js +97 -0
- package/dist/session/status/reload-forensics.d.ts +77 -0
- package/dist/session/status/reload-forensics.js +200 -0
- package/dist/session/status/sandbox-loading-boundary.d.ts +3 -0
- package/dist/session/status/sandbox-loading-boundary.js +43 -0
- package/dist/session/status/session-busy-indicator.d.ts +19 -0
- package/dist/session/status/session-busy-indicator.js +55 -0
- package/dist/session/status/session-chat-busy.d.ts +17 -0
- package/dist/session/status/session-chat-busy.js +15 -0
- package/dist/session/status/session-error-banner.d.ts +82 -0
- package/dist/session/status/session-error-banner.js +327 -0
- package/dist/session/status/session-load-state.d.ts +98 -0
- package/dist/session/status/session-load-state.js +86 -0
- package/dist/session/status/session-notice-banner.d.ts +27 -0
- package/dist/session/status/session-notice-banner.js +27 -0
- package/dist/session/status/session-resume.d.ts +126 -0
- package/dist/session/status/session-resume.js +142 -0
- package/dist/session/status/session-route-prefetch.d.ts +40 -0
- package/dist/session/status/session-route-prefetch.js +18 -0
- package/dist/session/status/session-start-gate.d.ts +27 -0
- package/dist/session/status/session-start-gate.js +25 -0
- package/dist/session/status/session-starting-loader.d.ts +83 -0
- package/dist/session/status/session-starting-loader.js +190 -0
- package/dist/session/status/session-surface.d.ts +175 -0
- package/dist/session/status/session-surface.js +129 -0
- package/dist/session/status/session-tab-title-sync.d.ts +20 -0
- package/dist/session/status/session-tab-title-sync.js +44 -0
- package/dist/session/status/session-tab-title.d.ts +33 -0
- package/dist/session/status/session-tab-title.js +60 -0
- package/dist/session/status/session-terminal-state.d.ts +70 -0
- package/dist/session/status/session-terminal-state.js +62 -0
- package/dist/session/status/stop-refusal.d.ts +14 -0
- package/dist/session/status/stop-refusal.js +21 -0
- package/dist/session/status/use-readiness-settling.d.ts +18 -0
- package/dist/session/status/use-readiness-settling.js +43 -0
- package/dist/session/thread/chat-minimap-items.d.ts +94 -0
- package/dist/session/thread/chat-minimap-items.js +234 -0
- package/dist/session/thread/chat-minimap.d.ts +8 -0
- package/dist/session/thread/chat-minimap.js +138 -0
- package/dist/session/thread/detect-command.d.ts +13 -0
- package/dist/session/thread/detect-command.js +117 -0
- package/dist/session/thread/first-prompt-handover.d.ts +54 -0
- package/dist/session/thread/first-prompt-handover.js +78 -0
- package/dist/session/thread/mention-chip.d.ts +51 -0
- package/dist/session/thread/mention-chip.js +86 -0
- package/dist/session/thread/mention-segments.d.ts +47 -0
- package/dist/session/thread/mention-segments.js +117 -0
- package/dist/session/thread/message-parsing.d.ts +80 -0
- package/dist/session/thread/message-parsing.js +244 -0
- package/dist/session/thread/optimistic-turn.d.ts +89 -0
- package/dist/session/thread/optimistic-turn.js +207 -0
- package/dist/session/thread/persisted-turn-failure.d.ts +25 -0
- package/dist/session/thread/persisted-turn-failure.js +36 -0
- package/dist/session/thread/pinned-root-session.d.ts +16 -0
- package/dist/session/thread/pinned-root-session.js +18 -0
- package/dist/session/thread/plan-surface.d.ts +9 -0
- package/dist/session/thread/plan-surface.js +29 -0
- package/dist/session/thread/reply-context.d.ts +38 -0
- package/dist/session/thread/reply-context.js +179 -0
- package/dist/session/thread/session-body.d.ts +28 -0
- package/dist/session/thread/session-body.js +50 -0
- package/dist/session/thread/session-chat.d.ts +62 -0
- package/dist/session/thread/session-chat.js +3657 -0
- package/dist/session/thread/session-context-message-explorer.d.ts +44 -0
- package/dist/session/thread/session-context-message-explorer.js +118 -0
- package/dist/session/thread/session-context-metrics.d.ts +24 -0
- package/dist/session/thread/session-context-metrics.js +44 -0
- package/dist/session/thread/session-context-modal.d.ts +34 -0
- package/dist/session/thread/session-context-modal.js +228 -0
- package/dist/session/thread/session-context-sub-sessions.d.ts +16 -0
- package/dist/session/thread/session-context-sub-sessions.js +142 -0
- package/dist/session/thread/session-history-scroll.d.ts +55 -0
- package/dist/session/thread/session-history-scroll.js +88 -0
- package/dist/session/thread/session-history.d.ts +22 -0
- package/dist/session/thread/session-history.js +90 -0
- package/dist/session/thread/session-older-autoload.d.ts +82 -0
- package/dist/session/thread/session-older-autoload.js +55 -0
- package/dist/session/thread/session-older-loading.d.ts +41 -0
- package/dist/session/thread/session-older-loading.js +57 -0
- package/dist/session/thread/session-thread.d.ts +26 -0
- package/dist/session/thread/session-thread.js +13 -0
- package/dist/session/thread/session-transcript-class.d.ts +19 -0
- package/dist/session/thread/session-transcript-class.js +19 -0
- package/dist/session/thread/session-turn-meta-rows.d.ts +44 -0
- package/dist/session/thread/session-turn-meta-rows.js +82 -0
- package/dist/session/thread/session-turn-meta.d.ts +9 -0
- package/dist/session/thread/session-turn-meta.js +54 -0
- package/dist/session/thread/session-welcome.d.ts +1 -0
- package/dist/session/thread/session-welcome.js +7 -0
- package/dist/session/thread/sub-session-modal-content.d.ts +8 -0
- package/dist/session/thread/sub-session-modal-content.js +23 -0
- package/dist/session/thread/sub-session-modal.d.ts +2 -0
- package/dist/session/thread/sub-session-modal.js +14 -0
- package/dist/session/thread/transcript.d.ts +351 -0
- package/dist/session/thread/transcript.js +1213 -0
- package/dist/session/tool/foreign-tool-calls.d.ts +11 -0
- package/dist/session/tool/foreign-tool-calls.js +60 -0
- package/dist/session/tool/generic-tool.d.ts +16 -0
- package/dist/session/tool/generic-tool.js +74 -0
- package/dist/session/tool/inline-permission-reply.d.ts +8 -0
- package/dist/session/tool/inline-permission-reply.js +18 -0
- package/dist/session/tool/shared/error-and-connector.d.ts +19 -0
- package/dist/session/tool/shared/error-and-connector.js +106 -0
- package/dist/session/tool/shared/file-list.d.ts +35 -0
- package/dist/session/tool/shared/file-list.js +91 -0
- package/dist/session/tool/shared/infrastructure-contexts.d.ts +65 -0
- package/dist/session/tool/shared/infrastructure-contexts.js +101 -0
- package/dist/session/tool/shared/infrastructure-files.d.ts +60 -0
- package/dist/session/tool/shared/infrastructure-files.js +129 -0
- package/dist/session/tool/shared/infrastructure-output.d.ts +32 -0
- package/dist/session/tool/shared/infrastructure-output.js +93 -0
- package/dist/session/tool/shared/infrastructure-parts.d.ts +18 -0
- package/dist/session/tool/shared/infrastructure-parts.js +201 -0
- package/dist/session/tool/shared/infrastructure-preview.d.ts +60 -0
- package/dist/session/tool/shared/infrastructure-preview.js +245 -0
- package/dist/session/tool/shared/infrastructure-row-header.d.ts +53 -0
- package/dist/session/tool/shared/infrastructure-row-header.js +133 -0
- package/dist/session/tool/shared/infrastructure-rows.d.ts +2 -0
- package/dist/session/tool/shared/infrastructure-rows.js +153 -0
- package/dist/session/tool/shared/infrastructure.d.ts +9 -0
- package/dist/session/tool/shared/infrastructure.js +10 -0
- package/dist/session/tool/shared/output-block.d.ts +66 -0
- package/dist/session/tool/shared/output-block.js +71 -0
- package/dist/session/tool/shared/patch-helpers.d.ts +26 -0
- package/dist/session/tool/shared/patch-helpers.js +52 -0
- package/dist/session/tool/shared/registry.d.ts +17 -0
- package/dist/session/tool/shared/registry.js +55 -0
- package/dist/session/tool/shared/result-card.d.ts +28 -0
- package/dist/session/tool/shared/result-card.js +54 -0
- package/dist/session/tool/shared/session-helpers.d.ts +17 -0
- package/dist/session/tool/shared/session-helpers.js +116 -0
- package/dist/session/tool/shared/show-helpers.d.ts +96 -0
- package/dist/session/tool/shared/show-helpers.js +359 -0
- package/dist/session/tool/shared/structured-output.d.ts +4 -0
- package/dist/session/tool/shared/structured-output.js +51 -0
- package/dist/session/tool/shared/sub-agent.d.ts +57 -0
- package/dist/session/tool/shared/sub-agent.js +103 -0
- package/dist/session/tool/shared/surface.d.ts +80 -0
- package/dist/session/tool/shared/surface.js +84 -0
- package/dist/session/tool/shared/todo-helpers.d.ts +24 -0
- package/dist/session/tool/shared/todo-helpers.js +95 -0
- package/dist/session/tool/shared/tool-action-bar.d.ts +21 -0
- package/dist/session/tool/shared/tool-action-bar.js +14 -0
- package/dist/session/tool/shared/types.d.ts +42 -0
- package/dist/session/tool/shared/types.js +1 -0
- package/dist/session/tool/shared/web-source-row.d.ts +4 -0
- package/dist/session/tool/shared/web-source-row.js +26 -0
- package/dist/session/tool/show-group-renderer.d.ts +19 -0
- package/dist/session/tool/show-group-renderer.js +22 -0
- package/dist/session/tool/tool-error.d.ts +4 -0
- package/dist/session/tool/tool-error.js +30 -0
- package/dist/session/tool/tool-meta.d.ts +15 -0
- package/dist/session/tool/tool-meta.js +27 -0
- package/dist/session/tool/tool-part-renderer.d.ts +39 -0
- package/dist/session/tool/tool-part-renderer.js +150 -0
- package/dist/session/tool/tool-renderers.d.ts +8 -0
- package/dist/session/tool/tool-renderers.js +8 -0
- package/dist/session/tool/tools/agent-message-tool.d.ts +2 -0
- package/dist/session/tool/tools/agent-message-tool.js +29 -0
- package/dist/session/tool/tools/agent-spawn-tool.d.ts +2 -0
- package/dist/session/tool/tools/agent-spawn-tool.js +69 -0
- package/dist/session/tool/tools/agent-status-tool.d.ts +2 -0
- package/dist/session/tool/tools/agent-status-tool.js +47 -0
- package/dist/session/tool/tools/agent-stop-tool.d.ts +2 -0
- package/dist/session/tool/tools/agent-stop-tool.js +17 -0
- package/dist/session/tool/tools/agent-task-update-tool.d.ts +2 -0
- package/dist/session/tool/tools/agent-task-update-tool.js +43 -0
- package/dist/session/tool/tools/apply-patch-tool.d.ts +2 -0
- package/dist/session/tool/tools/apply-patch-tool.js +122 -0
- package/dist/session/tool/tools/bash-tool.d.ts +54 -0
- package/dist/session/tool/tools/bash-tool.js +279 -0
- package/dist/session/tool/tools/channel-send-card.d.ts +18 -0
- package/dist/session/tool/tools/channel-send-card.js +42 -0
- package/dist/session/tool/tools/channel-send.d.ts +38 -0
- package/dist/session/tool/tools/channel-send.js +191 -0
- package/dist/session/tool/tools/codemode-tool.d.ts +21 -0
- package/dist/session/tool/tools/codemode-tool.js +106 -0
- package/dist/session/tool/tools/connector-get-tool.d.ts +2 -0
- package/dist/session/tool/tools/connector-get-tool.js +22 -0
- package/dist/session/tool/tools/connector-list-tool.d.ts +2 -0
- package/dist/session/tool/tools/connector-list-tool.js +27 -0
- package/dist/session/tool/tools/connector-setup-tool.d.ts +2 -0
- package/dist/session/tool/tools/connector-setup-tool.js +39 -0
- package/dist/session/tool/tools/connector-tools.d.ts +5 -0
- package/dist/session/tool/tools/connector-tools.js +129 -0
- package/dist/session/tool/tools/edit-tool.d.ts +2 -0
- package/dist/session/tool/tools/edit-tool.js +123 -0
- package/dist/session/tool/tools/get-mem-tool.d.ts +2 -0
- package/dist/session/tool/tools/get-mem-tool.js +57 -0
- package/dist/session/tool/tools/glob-tool.d.ts +2 -0
- package/dist/session/tool/tools/glob-tool.js +70 -0
- package/dist/session/tool/tools/grep-tool.d.ts +2 -0
- package/dist/session/tool/tools/grep-tool.js +48 -0
- package/dist/session/tool/tools/image-gen-tool.d.ts +2 -0
- package/dist/session/tool/tools/image-gen-tool.js +61 -0
- package/dist/session/tool/tools/image-search-tool.d.ts +2 -0
- package/dist/session/tool/tools/image-search-tool.js +90 -0
- package/dist/session/tool/tools/list-tool.d.ts +2 -0
- package/dist/session/tool/tools/list-tool.js +57 -0
- package/dist/session/tool/tools/memory-search-tool.d.ts +11 -0
- package/dist/session/tool/tools/memory-search-tool.js +65 -0
- package/dist/session/tool/tools/memory-tool.d.ts +51 -0
- package/dist/session/tool/tools/memory-tool.js +175 -0
- package/dist/session/tool/tools/presentation-gen-tool.d.ts +2 -0
- package/dist/session/tool/tools/presentation-gen-tool.js +83 -0
- package/dist/session/tool/tools/project-create-tool.d.ts +2 -0
- package/dist/session/tool/tools/project-create-tool.js +39 -0
- package/dist/session/tool/tools/project-delete-tool.d.ts +2 -0
- package/dist/session/tool/tools/project-delete-tool.js +55 -0
- package/dist/session/tool/tools/project-get-tool.d.ts +2 -0
- package/dist/session/tool/tools/project-get-tool.js +24 -0
- package/dist/session/tool/tools/project-list-tool.d.ts +2 -0
- package/dist/session/tool/tools/project-list-tool.js +22 -0
- package/dist/session/tool/tools/project-select-tool.d.ts +2 -0
- package/dist/session/tool/tools/project-select-tool.js +36 -0
- package/dist/session/tool/tools/pty-kill-tool.d.ts +2 -0
- package/dist/session/tool/tools/pty-kill-tool.js +26 -0
- package/dist/session/tool/tools/pty-read-tool.d.ts +21 -0
- package/dist/session/tool/tools/pty-read-tool.js +100 -0
- package/dist/session/tool/tools/pty-spawn-tool.d.ts +2 -0
- package/dist/session/tool/tools/pty-spawn-tool.js +54 -0
- package/dist/session/tool/tools/pty-write-tool.d.ts +2 -0
- package/dist/session/tool/tools/pty-write-tool.js +20 -0
- package/dist/session/tool/tools/question-tool.d.ts +2 -0
- package/dist/session/tool/tools/question-tool.js +79 -0
- package/dist/session/tool/tools/read-tool.d.ts +2 -0
- package/dist/session/tool/tools/read-tool.js +72 -0
- package/dist/session/tool/tools/register.d.ts +55 -0
- package/dist/session/tool/tools/register.js +55 -0
- package/dist/session/tool/tools/removed-connector-tool.d.ts +2 -0
- package/dist/session/tool/tools/removed-connector-tool.js +21 -0
- package/dist/session/tool/tools/scrape-webpage-tool.d.ts +2 -0
- package/dist/session/tool/tools/scrape-webpage-tool.js +81 -0
- package/dist/session/tool/tools/session-get-tool.d.ts +3 -0
- package/dist/session/tool/tools/session-get-tool.js +45 -0
- package/dist/session/tool/tools/session-lineage-tool.d.ts +2 -0
- package/dist/session/tool/tools/session-lineage-tool.js +28 -0
- package/dist/session/tool/tools/session-list-background-tool.d.ts +2 -0
- package/dist/session/tool/tools/session-list-background-tool.js +31 -0
- package/dist/session/tool/tools/session-message-tool.d.ts +2 -0
- package/dist/session/tool/tools/session-message-tool.js +23 -0
- package/dist/session/tool/tools/session-read-tool.d.ts +2 -0
- package/dist/session/tool/tools/session-read-tool.js +79 -0
- package/dist/session/tool/tools/session-search-tool.d.ts +2 -0
- package/dist/session/tool/tools/session-search-tool.js +31 -0
- package/dist/session/tool/tools/session-spawn-tool.d.ts +2 -0
- package/dist/session/tool/tools/session-spawn-tool.js +58 -0
- package/dist/session/tool/tools/session-spawn-urls.d.ts +16 -0
- package/dist/session/tool/tools/session-spawn-urls.js +26 -0
- package/dist/session/tool/tools/session-stats-tool.d.ts +2 -0
- package/dist/session/tool/tools/session-stats-tool.js +17 -0
- package/dist/session/tool/tools/show-tool.d.ts +13 -0
- package/dist/session/tool/tools/show-tool.js +197 -0
- package/dist/session/tool/tools/skill-tool.d.ts +10 -0
- package/dist/session/tool/tools/skill-tool.js +47 -0
- package/dist/session/tool/tools/task-delete-tool.d.ts +2 -0
- package/dist/session/tool/tools/task-delete-tool.js +21 -0
- package/dist/session/tool/tools/task-done-tool.d.ts +2 -0
- package/dist/session/tool/tools/task-done-tool.js +19 -0
- package/dist/session/tool/tools/task-list-tool.d.ts +2 -0
- package/dist/session/tool/tools/task-list-tool.js +21 -0
- package/dist/session/tool/tools/task-tool.d.ts +24 -0
- package/dist/session/tool/tools/task-tool.js +140 -0
- package/dist/session/tool/tools/todo-write-tool.d.ts +2 -0
- package/dist/session/tool/tools/todo-write-tool.js +53 -0
- package/dist/session/tool/tools/triggers-tool.d.ts +2 -0
- package/dist/session/tool/tools/triggers-tool.js +132 -0
- package/dist/session/tool/tools/video-gen-tool.d.ts +2 -0
- package/dist/session/tool/tools/video-gen-tool.js +21 -0
- package/dist/session/tool/tools/web-fetch-tool.d.ts +2 -0
- package/dist/session/tool/tools/web-fetch-tool.js +53 -0
- package/dist/session/tool/tools/web-search-tool.d.ts +2 -0
- package/dist/session/tool/tools/web-search-tool.js +64 -0
- package/dist/session/tool/tools/write-tool.d.ts +23 -0
- package/dist/session/tool/tools/write-tool.js +92 -0
- package/dist/session/turn/activity-burst.d.ts +65 -0
- package/dist/session/turn/activity-burst.js +117 -0
- package/dist/session/turn/activity-file-chips.d.ts +44 -0
- package/dist/session/turn/activity-file-chips.js +238 -0
- package/dist/session/turn/activity-group-step.d.ts +101 -0
- package/dist/session/turn/activity-group-step.js +62 -0
- package/dist/session/turn/activity-step.d.ts +34 -0
- package/dist/session/turn/activity-step.js +116 -0
- package/dist/session/turn/answered-question-step.d.ts +15 -0
- package/dist/session/turn/answered-question-step.js +58 -0
- package/dist/session/turn/attachment-preview.d.ts +7 -0
- package/dist/session/turn/attachment-preview.js +46 -0
- package/dist/session/turn/burst-step-body.d.ts +20 -0
- package/dist/session/turn/burst-step-body.js +64 -0
- package/dist/session/turn/burst-summary-trigger.d.ts +7 -0
- package/dist/session/turn/burst-summary-trigger.js +17 -0
- package/dist/session/turn/chain-step-trigger.d.ts +7 -0
- package/dist/session/turn/chain-step-trigger.js +7 -0
- package/dist/session/turn/channel-brand.d.ts +22 -0
- package/dist/session/turn/channel-brand.js +34 -0
- package/dist/session/turn/channel-message.d.ts +27 -0
- package/dist/session/turn/channel-message.js +33 -0
- package/dist/session/turn/checkpoint.d.ts +8 -0
- package/dist/session/turn/checkpoint.js +11 -0
- package/dist/session/turn/compaction-card.d.ts +41 -0
- package/dist/session/turn/compaction-card.js +82 -0
- package/dist/session/turn/expandable-output.d.ts +87 -0
- package/dist/session/turn/expandable-output.js +147 -0
- package/dist/session/turn/fallback-row.d.ts +10 -0
- package/dist/session/turn/fallback-row.js +31 -0
- package/dist/session/turn/message-author-label.d.ts +5 -0
- package/dist/session/turn/message-author-label.js +63 -0
- package/dist/session/turn/message-author.d.ts +47 -0
- package/dist/session/turn/message-author.js +75 -0
- package/dist/session/turn/message-time-label.d.ts +14 -0
- package/dist/session/turn/message-time-label.js +103 -0
- package/dist/session/turn/plan-anchor.d.ts +92 -0
- package/dist/session/turn/plan-anchor.js +59 -0
- package/dist/session/turn/plan-card.d.ts +113 -0
- package/dist/session/turn/plan-card.js +316 -0
- package/dist/session/turn/queued-prompt-bubbles.d.ts +23 -0
- package/dist/session/turn/queued-prompt-bubbles.js +27 -0
- package/dist/session/turn/same-parts.d.ts +21 -0
- package/dist/session/turn/same-parts.js +31 -0
- package/dist/session/turn/served-model.d.ts +63 -0
- package/dist/session/turn/served-model.js +92 -0
- package/dist/session/turn/source-pill.d.ts +26 -0
- package/dist/session/turn/source-pill.js +20 -0
- package/dist/session/turn/status-elapsed.d.ts +12 -0
- package/dist/session/turn/status-elapsed.js +14 -0
- package/dist/session/turn/streaming-cadence.d.ts +69 -0
- package/dist/session/turn/streaming-cadence.js +304 -0
- package/dist/session/turn/thought-chain-step.d.ts +58 -0
- package/dist/session/turn/thought-chain-step.js +161 -0
- package/dist/session/turn/throttled-markdown.d.ts +38 -0
- package/dist/session/turn/throttled-markdown.js +123 -0
- package/dist/session/turn/turn-viewport.d.ts +146 -0
- package/dist/session/turn/turn-viewport.js +165 -0
- package/dist/session/turn/turn-work-accordion.d.ts +12 -0
- package/dist/session/turn/turn-work-accordion.js +25 -0
- package/dist/session/turn/user-message.d.ts +353 -0
- package/dist/session/turn/user-message.js +1089 -0
- package/dist/styles/components.css +187 -0
- package/dist/styles/dotmatrix-loader.css +1239 -0
- package/dist/styles/fonts.css +46 -0
- package/dist/styles/print.css +461 -0
- package/dist/styles/tailwind.css +10 -0
- package/dist/styles/theme.css +1060 -0
- package/dist/styles/tokens.css +146 -0
- package/dist/styles.css +2 -0
- package/dist/terminal/index.d.ts +7 -0
- package/dist/terminal/index.js +7 -0
- package/dist/terminal/pty-attach-status.d.ts +15 -0
- package/dist/terminal/pty-attach-status.js +42 -0
- package/dist/terminal/pty-connection.d.ts +83 -0
- package/dist/terminal/pty-connection.js +86 -0
- package/dist/terminal/pty-terminal-sanitize.d.ts +2 -0
- package/dist/terminal/pty-terminal-sanitize.js +26 -0
- package/dist/terminal/pty-terminal.d.ts +19 -0
- package/dist/terminal/pty-terminal.js +162 -0
- package/dist/terminal/session-terminal-connect-bar.d.ts +15 -0
- package/dist/terminal/session-terminal-connect-bar.js +67 -0
- package/dist/terminal/session-terminal-panel.d.ts +17 -0
- package/dist/terminal/session-terminal-panel.js +242 -0
- package/dist/terminal/terminal-card-gate.d.ts +51 -0
- package/dist/terminal/terminal-card-gate.js +54 -0
- package/dist/terminal/use-pty-connection.d.ts +59 -0
- package/dist/terminal/use-pty-connection.js +380 -0
- package/dist/theme/index.d.ts +3 -0
- package/dist/theme/index.js +5 -0
- package/dist/theme/theme-scope.d.ts +24 -0
- package/dist/theme/theme-scope.js +39 -0
- package/dist/theme/theme.d.ts +123 -0
- package/dist/theme/theme.js +224 -0
- package/dist/theme/wallpapers.d.ts +26 -0
- package/dist/theme/wallpapers.js +54 -0
- package/dist/workspace/home/access-requests-bell.d.ts +34 -0
- package/dist/workspace/home/access-requests-bell.js +48 -0
- package/dist/workspace/home/first-chat-name.d.ts +7 -0
- package/dist/workspace/home/first-chat-name.js +12 -0
- package/dist/workspace/home/first-chat.d.ts +39 -0
- package/dist/workspace/home/first-chat.js +101 -0
- package/dist/workspace/home/home-greeting.d.ts +34 -0
- package/dist/workspace/home/home-greeting.js +27 -0
- package/dist/workspace/home/mobile-app-promo.d.ts +7 -0
- package/dist/workspace/home/mobile-app-promo.js +55 -0
- package/dist/workspace/home/sandbox-picker.d.ts +13 -0
- package/dist/workspace/home/sandbox-picker.js +24 -0
- package/dist/workspace/home/welcome-body.d.ts +54 -0
- package/dist/workspace/home/welcome-body.js +67 -0
- package/dist/workspace/index.d.ts +25 -0
- package/dist/workspace/index.js +25 -0
- package/dist/workspace/instant-session-shell.d.ts +48 -0
- package/dist/workspace/instant-session-shell.js +216 -0
- package/dist/workspace/layout/new-session-create.d.ts +26 -0
- package/dist/workspace/layout/new-session-create.js +41 -0
- package/dist/workspace/layout/project-files-skeleton.d.ts +15 -0
- package/dist/workspace/layout/project-files-skeleton.js +19 -0
- package/dist/workspace/layout/project-files-view.d.ts +3 -0
- package/dist/workspace/layout/project-files-view.js +54 -0
- package/dist/workspace/layout/project-home.d.ts +39 -0
- package/dist/workspace/layout/project-home.js +195 -0
- package/dist/workspace/layout/resolve-files-ref.d.ts +29 -0
- package/dist/workspace/layout/resolve-files-ref.js +18 -0
- package/dist/workspace/layout/sidebar-cookie.d.ts +12 -0
- package/dist/workspace/layout/sidebar-cookie.js +17 -0
- package/dist/workspace/layout/use-project-home-send.d.ts +20 -0
- package/dist/workspace/layout/use-project-home-send.js +136 -0
- package/dist/workspace/new/account-param.d.ts +3 -0
- package/dist/workspace/new/account-param.js +34 -0
- package/dist/workspace/new/account-picker.d.ts +71 -0
- package/dist/workspace/new/account-picker.js +92 -0
- package/dist/workspace/new/advanced-fields.d.ts +30 -0
- package/dist/workspace/new/advanced-fields.js +261 -0
- package/dist/workspace/new/clone-param.d.ts +11 -0
- package/dist/workspace/new/clone-param.js +15 -0
- package/dist/workspace/new/create-workspace-key.d.ts +10 -0
- package/dist/workspace/new/create-workspace-key.js +106 -0
- package/dist/workspace/new/github-source.d.ts +136 -0
- package/dist/workspace/new/github-source.js +205 -0
- package/dist/workspace/new/github-user-authorization.d.ts +28 -0
- package/dist/workspace/new/github-user-authorization.js +37 -0
- package/dist/workspace/new/new-workspace-form.d.ts +179 -0
- package/dist/workspace/new/new-workspace-form.js +247 -0
- package/dist/workspace/new/repository-options.d.ts +89 -0
- package/dist/workspace/new/repository-options.js +126 -0
- package/dist/workspace/new/source-param.d.ts +19 -0
- package/dist/workspace/new/source-param.js +20 -0
- package/dist/workspace/new/use-creatable-accounts.d.ts +8 -0
- package/dist/workspace/new/use-creatable-accounts.js +24 -0
- package/dist/workspace/new/use-create-workspace.d.ts +520 -0
- package/dist/workspace/new/use-create-workspace.js +751 -0
- package/dist/workspace/new/use-project-quota.d.ts +24 -0
- package/dist/workspace/new/use-project-quota.js +30 -0
- package/dist/workspace/new/workspace-handoff.d.ts +52 -0
- package/dist/workspace/new/workspace-handoff.js +76 -0
- package/dist/workspace/new/workspace-name.d.ts +27 -0
- package/dist/workspace/new/workspace-name.js +71 -0
- package/dist/workspace/project-selector/project-selector-model.d.ts +99 -0
- package/dist/workspace/project-selector/project-selector-model.js +151 -0
- package/dist/workspace/projects/modal/github-import-pickers.d.ts +16 -0
- package/dist/workspace/projects/modal/github-import-pickers.js +78 -0
- package/dist/workspace/projects/modal/project-icon-field.d.ts +74 -0
- package/dist/workspace/projects/modal/project-icon-field.js +225 -0
- package/dist/workspace/projects/onboarding/app-logo.d.ts +5 -0
- package/dist/workspace/projects/onboarding/app-logo.js +18 -0
- package/dist/workspace/projects/onboarding/connect-app.d.ts +37 -0
- package/dist/workspace/projects/onboarding/connect-app.js +48 -0
- package/dist/workspace/projects/policies-panel.d.ts +58 -0
- package/dist/workspace/projects/policies-panel.js +270 -0
- package/dist/workspace/projects/session-shared-icon.d.ts +8 -0
- package/dist/workspace/projects/session-shared-icon.js +12 -0
- package/dist/workspace/projects/session-starter.d.ts +19 -0
- package/dist/workspace/projects/session-starter.js +17 -0
- package/dist/workspace/repository-disconnected.d.ts +12 -0
- package/dist/workspace/repository-disconnected.js +28 -0
- package/dist/workspace/review/approval-modal.d.ts +43 -0
- package/dist/workspace/review/approval-modal.js +91 -0
- package/dist/workspace/review/change-files.d.ts +3 -0
- package/dist/workspace/review/change-files.js +58 -0
- package/dist/workspace/review/hooks/use-review-items.d.ts +64 -0
- package/dist/workspace/review/hooks/use-review-items.js +109 -0
- package/dist/workspace/review/map.d.ts +24 -0
- package/dist/workspace/review/map.js +47 -0
- package/dist/workspace/review/mock-data.d.ts +10 -0
- package/dist/workspace/review/mock-data.js +408 -0
- package/dist/workspace/review/review-actions.d.ts +98 -0
- package/dist/workspace/review/review-actions.js +177 -0
- package/dist/workspace/review/review-center.d.ts +46 -0
- package/dist/workspace/review/review-center.js +798 -0
- package/dist/workspace/review/review-detail.d.ts +30 -0
- package/dist/workspace/review/review-detail.js +210 -0
- package/dist/workspace/review/review-meta.d.ts +59 -0
- package/dist/workspace/review/review-meta.js +100 -0
- package/dist/workspace/review/review-reducer.d.ts +51 -0
- package/dist/workspace/review/review-reducer.js +120 -0
- package/dist/workspace/review/types.d.ts +42 -0
- package/dist/workspace/review/types.js +16 -0
- package/dist/workspace/saved-session-skeleton-rows.d.ts +18 -0
- package/dist/workspace/saved-session-skeleton-rows.js +20 -0
- package/dist/workspace/saved-session-skeleton-shape.d.ts +65 -0
- package/dist/workspace/saved-session-skeleton-shape.js +75 -0
- package/dist/workspace/saved-session-skeleton.d.ts +7 -0
- package/dist/workspace/saved-session-skeleton.js +43 -0
- package/dist/workspace/session-workspace.d.ts +35 -0
- package/dist/workspace/session-workspace.js +234 -0
- package/dist/workspace/sessions/deleted-session-row.d.ts +11 -0
- package/dist/workspace/sessions/deleted-session-row.js +25 -0
- package/dist/workspace/sessions/project-sessions-helpers.d.ts +88 -0
- package/dist/workspace/sessions/project-sessions-helpers.js +208 -0
- package/dist/workspace/sessions/project-sessions-view.d.ts +3 -0
- package/dist/workspace/sessions/project-sessions-view.js +571 -0
- package/dist/workspace/sessions/session-detail.d.ts +10 -0
- package/dist/workspace/sessions/session-detail.js +20 -0
- package/dist/workspace/sessions/session-label-badges.d.ts +7 -0
- package/dist/workspace/sessions/session-label-badges.js +13 -0
- package/dist/workspace/sessions/session-owner-filters.d.ts +61 -0
- package/dist/workspace/sessions/session-owner-filters.js +106 -0
- package/dist/workspace/sessions/session-row.d.ts +57 -0
- package/dist/workspace/sessions/session-row.js +156 -0
- package/dist/workspace/sessions/session-starter-mark.d.ts +15 -0
- package/dist/workspace/sessions/session-starter-mark.js +53 -0
- package/dist/workspace/sessions/sessions-bulk-delete-dialog.d.ts +8 -0
- package/dist/workspace/sessions/sessions-bulk-delete-dialog.js +15 -0
- package/dist/workspace/sessions/sessions-empty-state.d.ts +16 -0
- package/dist/workspace/sessions/sessions-empty-state.js +25 -0
- package/dist/workspace/sessions/sessions-selection-bar.d.ts +15 -0
- package/dist/workspace/sessions/sessions-selection-bar.js +14 -0
- package/dist/workspace/sessions/sessions-toolbar.d.ts +18 -0
- package/dist/workspace/sessions/sessions-toolbar.js +40 -0
- package/dist/workspace/sidebar/customize-sidebar-modal.d.ts +9 -0
- package/dist/workspace/sidebar/customize-sidebar-modal.js +198 -0
- package/dist/workspace/sidebar/footer/project-apps-nav.d.ts +10 -0
- package/dist/workspace/sidebar/footer/project-apps-nav.js +34 -0
- package/dist/workspace/sidebar/footer/project-balance-warning.d.ts +10 -0
- package/dist/workspace/sidebar/footer/project-balance-warning.js +47 -0
- package/dist/workspace/sidebar/footer/project-computer-nav.d.ts +17 -0
- package/dist/workspace/sidebar/footer/project-computer-nav.js +71 -0
- package/dist/workspace/sidebar/footer/project-files-nav.d.ts +29 -0
- package/dist/workspace/sidebar/footer/project-files-nav.js +80 -0
- package/dist/workspace/sidebar/footer/project-manifest-upgrade-alert.d.ts +13 -0
- package/dist/workspace/sidebar/footer/project-manifest-upgrade-alert.js +48 -0
- package/dist/workspace/sidebar/footer/project-mcp-nav.d.ts +10 -0
- package/dist/workspace/sidebar/footer/project-mcp-nav.js +46 -0
- package/dist/workspace/sidebar/footer/project-rooms-nav.d.ts +9 -0
- package/dist/workspace/sidebar/footer/project-rooms-nav.js +32 -0
- package/dist/workspace/sidebar/footer/project-sandbox-alert.d.ts +3 -0
- package/dist/workspace/sidebar/footer/project-sandbox-alert.js +125 -0
- package/dist/workspace/sidebar/footer/project-upgrade-button.d.ts +6 -0
- package/dist/workspace/sidebar/footer/project-upgrade-button.js +46 -0
- package/dist/workspace/sidebar/footer/promo-nav-row.d.ts +10 -0
- package/dist/workspace/sidebar/footer/promo-nav-row.js +7 -0
- package/dist/workspace/sidebar/footer/sandbox-alert-state.d.ts +31 -0
- package/dist/workspace/sidebar/footer/sandbox-alert-state.js +47 -0
- package/dist/workspace/sidebar/footer/sandbox-health.d.ts +22 -0
- package/dist/workspace/sidebar/footer/sandbox-health.js +107 -0
- package/dist/workspace/sidebar/footer/sidebar-alert.d.ts +54 -0
- package/dist/workspace/sidebar/footer/sidebar-alert.js +86 -0
- package/dist/workspace/sidebar/invitations-menu-group.d.ts +6 -0
- package/dist/workspace/sidebar/invitations-menu-group.js +56 -0
- package/dist/workspace/sidebar/modal/rename-session-modal.d.ts +10 -0
- package/dist/workspace/sidebar/modal/rename-session-modal.js +41 -0
- package/dist/workspace/sidebar/modal/session-labels-modal.d.ts +13 -0
- package/dist/workspace/sidebar/modal/session-labels-modal.js +91 -0
- package/dist/workspace/sidebar/modal/session-labels.d.ts +10 -0
- package/dist/workspace/sidebar/modal/session-labels.js +17 -0
- package/dist/workspace/sidebar/modal/session-public-link-section.d.ts +13 -0
- package/dist/workspace/sidebar/modal/session-public-link-section.js +66 -0
- package/dist/workspace/sidebar/modal/share-session-access.d.ts +33 -0
- package/dist/workspace/sidebar/modal/share-session-access.js +44 -0
- package/dist/workspace/sidebar/modal/share-session-cache.d.ts +15 -0
- package/dist/workspace/sidebar/modal/share-session-cache.js +16 -0
- package/dist/workspace/sidebar/modal/share-session-modal.d.ts +8 -0
- package/dist/workspace/sidebar/modal/share-session-modal.js +109 -0
- package/dist/workspace/sidebar/nav-row-meta.d.ts +14 -0
- package/dist/workspace/sidebar/nav-row-meta.js +70 -0
- package/dist/workspace/sidebar/project-nav-items.d.ts +12 -0
- package/dist/workspace/sidebar/project-nav-items.js +99 -0
- package/dist/workspace/sidebar/project-session-list.d.ts +5 -0
- package/dist/workspace/sidebar/project-session-list.js +611 -0
- package/dist/workspace/sidebar/project-sidebar.d.ts +15 -0
- package/dist/workspace/sidebar/project-sidebar.js +101 -0
- package/dist/workspace/sidebar/session-brief-hover-card.d.ts +51 -0
- package/dist/workspace/sidebar/session-brief-hover-card.js +153 -0
- package/dist/workspace/sidebar/session-filter-menu.d.ts +79 -0
- package/dist/workspace/sidebar/session-filter-menu.js +253 -0
- package/dist/workspace/sidebar/session-grouping.d.ts +142 -0
- package/dist/workspace/sidebar/session-grouping.js +199 -0
- package/dist/workspace/sidebar/session-label-facet.d.ts +14 -0
- package/dist/workspace/sidebar/session-label-facet.js +19 -0
- package/dist/workspace/sidebar/session-open-intent.d.ts +30 -0
- package/dist/workspace/sidebar/session-open-intent.js +58 -0
- package/dist/workspace/sidebar/session-section-labels.d.ts +3 -0
- package/dist/workspace/sidebar/session-section-labels.js +4 -0
- package/dist/workspace/sidebar/session-source-icons.d.ts +19 -0
- package/dist/workspace/sidebar/session-source-icons.js +31 -0
- package/dist/workspace/sidebar/session-status-mark.d.ts +5 -0
- package/dist/workspace/sidebar/session-status-mark.js +24 -0
- package/dist/workspace/sidebar/session-title.d.ts +24 -0
- package/dist/workspace/sidebar/session-title.js +26 -0
- package/dist/workspace/sidebar/workspace-grouping.d.ts +83 -0
- package/dist/workspace/sidebar/workspace-grouping.js +135 -0
- package/dist/workspace/sidebar/workspace-menu-model.d.ts +12 -0
- package/dist/workspace/sidebar/workspace-menu-model.js +108 -0
- package/dist/workspace/sidebar/workspace-menu-section.d.ts +1 -0
- package/dist/workspace/sidebar/workspace-menu-section.js +124 -0
- package/package.json +2279 -4
- package/skills/kortix-ui/SKILL.md +150 -0
- package/skills/kortix-ui/references/custom-dashboard.md +471 -0
- package/skills/kortix-ui/references/modules.md +417 -0
- package/skills/kortix-ui/references/theming.md +107 -0
|
@@ -0,0 +1,1267 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Slack } from '../../internal/icons/slack.js';
|
|
4
|
+
import { useTranslations } from '../../i18n/index.js';
|
|
5
|
+
import { CheckIcon as Check, CaretDownIcon as ChevronDown, CaretRightIcon as ChevronRight, CopyIcon as Copy, DotsThreeIcon, ArrowSquareOutIcon as ExternalLink, LockIcon as Lock, EnvelopeIcon as Mail, PlugIcon as Plug, PlusIcon as Plus, MagnifyingGlassIcon as Search, ShareNetworkIcon, UsersIcon as Users, UsersThreeIcon as UsersThree, XIcon as X, LightningIcon as Zap, } from '@phosphor-icons/react';
|
|
6
|
+
import { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
|
7
|
+
import { UiImage as Image, useUiViewer, useUiHostConfig } from '../../providers/ui-provider.js';
|
|
8
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
9
|
+
import { HighlightedCode } from '../../markdown/code/index.js';
|
|
10
|
+
import { Badge } from '../../primitives/badge.js';
|
|
11
|
+
import { Button } from '../../primitives/button.js';
|
|
12
|
+
import { ButtonGroup, ButtonGroupSeparator } from '../../primitives/button-group.js';
|
|
13
|
+
import { Checkbox } from '../../primitives/checkbox.js';
|
|
14
|
+
import { ConfirmDialog } from '../../primitives/confirm-dialog.js';
|
|
15
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '../../primitives/dropdown-menu.js';
|
|
16
|
+
import { EntityAvatar } from '../../primitives/entity-avatar.js';
|
|
17
|
+
import { Field, FieldDescription, FieldGroup, FieldLabel } from '../../primitives/field.js';
|
|
18
|
+
import Hint from '../../primitives/hint.js';
|
|
19
|
+
import { InfoBanner } from '../../primitives/info-banner.js';
|
|
20
|
+
import { InlineMeta } from '../../primitives/inline-meta.js';
|
|
21
|
+
import { Input } from '../../primitives/input.js';
|
|
22
|
+
import { Label } from '../../primitives/label.js';
|
|
23
|
+
import Loading from '../../primitives/loading.js';
|
|
24
|
+
import { Modal, ModalBody, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, } from '../../primitives/modal.js';
|
|
25
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../../primitives/select.js';
|
|
26
|
+
import { Skeleton } from '../../primitives/skeleton.js';
|
|
27
|
+
import { SplitSheetBody, SplitSheetContent, SplitSheetDescription, SplitSheetFooter, SplitSheetHeader, SplitSheetTitle, } from '../../primitives/split-sheet.js';
|
|
28
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '../../primitives/tabs.js';
|
|
29
|
+
import { Textarea } from '../../primitives/textarea.js';
|
|
30
|
+
import { errorToast, successToast, warningToast } from '../../primitives/toast.js';
|
|
31
|
+
import { EmptyState } from '../../primitives/empty-state.js';
|
|
32
|
+
import { ComputerConnectModal, ComputerStateDot } from '../../internal/tunnel/computer-connect.js';
|
|
33
|
+
import { mcpServerIdentity } from '../connectors/add-mcp/add-mcp-server.js';
|
|
34
|
+
import { connectorDisplayName } from '../connectors/connector-filter.js';
|
|
35
|
+
import { isManagedConnectorProvider } from '../connectors/provider-label.js';
|
|
36
|
+
import { AccessDialog } from '../../access/access/access-dialog.js';
|
|
37
|
+
import { useConnectEmail, useConnectSlack, useDisconnectEmail, useDisconnectSlack, useEmailInstall, useEmailMode, useSlackInstall, useSlackManifest, useSlackMode, useUpdateEmailPolicy, } from '../../internal/hooks/channels/use-channels-installations.js';
|
|
38
|
+
import { emptyProjectSlot, useAddAccount } from '../../internal/hooks/connectors/use-add-account.js';
|
|
39
|
+
import { useDeleteTunnelConnection } from '@kortix/sdk/react';
|
|
40
|
+
import { useCopy } from '../../internal/hooks/use-copy.js';
|
|
41
|
+
import { cn } from '../../internal/lib/utils.js';
|
|
42
|
+
import { createConnector, discoverConnectionOAuth2, discoverConnectionOAuth2Resource, discoverConnectorAuth, ensureProjectConnectorConnection, getConnectorConfig, getConnectStatus, getProjectDetail, listAllConnections, listConnections, listPipedreamApps, listProjectAccess, pollConnectionOAuth2DeviceAuthorization, putConnectionOAuth2Application, reconcileMemberConnection, renameConnection, revokeConnection, setConnectorCredential, setDefaultConnection, startConnectionOAuth2Authorization, startConnectionOAuth2DeviceAuthorization, updateConnectionCredential, } from '@kortix/sdk';
|
|
43
|
+
import { contract, qk, useProjectAccountId } from '@kortix/sdk/react';
|
|
44
|
+
import { AddAccountFields } from './add-account-fields.js';
|
|
45
|
+
import { buildEasyConnectConnectorDraft, buildEmailConnectorConnectionSlug, connectorSyncErrorForSlug, createOnlyConnectorDraft, proposeConnectorConnectionSlug, } from './connector-connection-form.js';
|
|
46
|
+
import { ConnectorConnectionModal } from './connector-connection-modal.js';
|
|
47
|
+
import { credentialWriteTarget, oauth2DiscoveryConnectionKey } from './connector-credential-target.js';
|
|
48
|
+
import { buildOAuth2ApplicationInput, buildOAuth2CredentialInput, EMPTY_OAUTH2_APPLICATION_FORM, EMPTY_OAUTH2_CREDENTIAL_FORM, mergeOAuth2DiscoveryMetadata, oauth2ApplicationFormValid, oauth2CredentialFormValid, } from './connector-oauth2.js';
|
|
49
|
+
import { OAuth2ApplicationFields } from './connector-oauth2-application-fields.js';
|
|
50
|
+
import { autoConnectPlan, mergeResourceDiscoveryIntoForm } from './connector-oauth2-auto.js';
|
|
51
|
+
import { OAuth2CredentialFields } from './connector-oauth2-fields.js';
|
|
52
|
+
import { startOAuth2SignIn } from './connector-oauth2-start.js';
|
|
53
|
+
import { DiscoverCatalogue } from './discover-catalogue.js';
|
|
54
|
+
import { useAddRequest } from './use-add-request.js';
|
|
55
|
+
import { useCreateCustomConnector } from './use-create-custom-connector.js';
|
|
56
|
+
import { AudienceText } from './view/audience-badge.js';
|
|
57
|
+
import { accountNeedsSignIn, accountVisibility, connectorConnectionRows, newAccountLabelTaken, newAccountReady, } from './view/connector-connections.js';
|
|
58
|
+
import { randomUUID } from '../../internal/lib/utils/random-uuid.js';
|
|
59
|
+
const BUILT_IN_CHANNEL_APP_SLUGS = new Set(['slack', 'slack_v2']);
|
|
60
|
+
function SaveBar({ dirty, saving, disabled, onSave, onReset, label = 'Save', }) {
|
|
61
|
+
const tI18nHardcoded = useTranslations('hardcodedUi');
|
|
62
|
+
if (!dirty)
|
|
63
|
+
return null;
|
|
64
|
+
return (_jsxs("div", { className: "border-border/60 mt-5 flex items-center justify-end gap-2 border-t pt-4", children: [_jsxs("span", { className: "text-muted-foreground mr-auto flex items-center gap-1.5 text-xs", children: [_jsx("span", { className: "bg-kortix-orange size-1.5 rounded-full" }), tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextUnsavedChanges4682b870')] }), onReset && (_jsx(Button, { size: "sm", variant: "ghost", onClick: onReset, disabled: saving, children: tI18nHardcoded.raw('i18nComplete.textdaee7606b339') })), _jsxs(Button, { size: "sm", onClick: onSave, disabled: saving || disabled, className: "gap-1.5", children: [saving && _jsx(Loading, { className: "size-4 shrink-0" }), label] })] }));
|
|
65
|
+
}
|
|
66
|
+
function CodeSnippet({ code, language, className, }) {
|
|
67
|
+
return (_jsx("div", { className: cn('border-border/60 bg-card flex w-full overflow-x-auto rounded-md border', className), children: _jsx("div", { className: "p-3 [&_code]:text-xs", children: _jsx(HighlightedCode, { code: code, language: language }) }) }));
|
|
68
|
+
}
|
|
69
|
+
/** One row in the connections list — a single connected account. */
|
|
70
|
+
function ConnectionRow({ connection, viewerId, isMine, canManage, onSetDefault, onDisconnect, onRename, onStartSession, onSetCredential, onShare, onConnect, needsSignIn, pending, disabled = false, }) {
|
|
71
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
72
|
+
const tSharing = useTranslations('accessSharing');
|
|
73
|
+
const tComputers = useTranslations('computers');
|
|
74
|
+
const tConnectorPages = useTranslations('connectorPages');
|
|
75
|
+
const isProjectAuthorization = connection.owner_type === 'project';
|
|
76
|
+
const active = connection.status === 'active';
|
|
77
|
+
// Only the owner of a connection may change it: your own personal connection,
|
|
78
|
+
// or, for a project authorization, a project manager.
|
|
79
|
+
const mayMutate = isProjectAuthorization ? canManage : isMine;
|
|
80
|
+
const visibility = accountVisibility(connection, viewerId);
|
|
81
|
+
const everyoneWithAccess = (connection.shared_with ?? []).map((share) => share.label);
|
|
82
|
+
const { copy } = useCopy({ successMessage: tI18nComplete.raw('text56ee71f3ece0') });
|
|
83
|
+
return (_jsxs("li", { className: "flex items-center gap-3 px-4 py-3", children: [_jsx("span", { "aria-hidden": true, className: "bg-muted text-muted-foreground flex size-8 shrink-0 items-center justify-center rounded-md", children: visibility.kind === 'you' ? (_jsx(Lock, { className: "size-4" })) : visibility.kind === 'everyone' ? (_jsx(UsersThree, { className: "size-4" })) : (_jsx(Users, { className: "size-4" })) }), _jsxs("div", { className: "min-w-0 flex-1 space-y-0.5", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [_jsx("span", { className: "truncate text-sm font-medium", children: connection.label }), connection.is_default && (_jsx(Badge, { variant: "secondary", size: "xs", children: tI18nComplete.raw('text21b111cbfe6e') }))] }), _jsxs(InlineMeta, { children: [_jsx(AudienceText, { visibility: visibility, labels: everyoneWithAccess }), connection.usable === false ? tSharing('notSharedWithYou') : null, active && needsSignIn ? (_jsx("span", { children: tConnectorPages('notSignedIn') })) : null, active && connection.metadata?.credential_rejected_at ? (_jsx("span", { className: "text-destructive", children: tConnectorPages('credentialRejected') })) : null, active ? null : (_jsx("span", { className: "text-destructive", children: connection.status === 'revoked' ? 'Disconnected' : 'Error' })), active && connection.machine ? (_jsxs("span", { className: "inline-flex items-center gap-1.5", children: [_jsx(ComputerStateDot, { state: connection.machine.online ? 'online' : 'offline' }), tComputers(connection.machine.online ? 'online' : 'offline')] })) : null, connection.connected_as && connection.connected_as !== connection.label
|
|
84
|
+
? tI18nComplete('texte9e0b20cf289', { value0: connection.connected_as })
|
|
85
|
+
: null] })] }), onConnect && mayMutate && needsSignIn ? (_jsx(Button, { size: "sm", className: "shrink-0", onClick: onConnect, disabled: pending || disabled, children: tConnectorPages('connectAccount') })) : null, _jsxs(ButtonGroup, { className: "shrink-0", children: [onShare && mayMutate ? (
|
|
86
|
+
// Your own private account is shared by turning it into a shared one,
|
|
87
|
+
// which needs the same right as creating a shared account.
|
|
88
|
+
isProjectAuthorization || canManage ? (_jsxs(Button, { variant: "secondary", size: "sm", className: "shrink-0 gap-1.5", onClick: onShare, disabled: pending || disabled, "aria-label": tSharing('shareTitle', { label: connection.label }), children: [_jsx(ShareNetworkIcon, { className: "size-3.5 shrink-0" }), tI18nComplete.raw('text29887a5ff984')] })) : (_jsx(Hint, { label: tSharing('shareRequiresManage'), children: _jsx("span", { className: "inline-flex shrink-0", children: _jsxs(Button, { variant: "secondary", size: "sm", className: "gap-1.5", disabled: true, "aria-label": tSharing('shareTitle', { label: connection.label }), children: [_jsx(ShareNetworkIcon, { className: "size-3.5 shrink-0" }), tI18nComplete.raw('text29887a5ff984')] }) }) }))) : null, _jsx(ButtonGroupSeparator, { className: "bg-border" }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "secondary", size: "icon", className: "size-8 shrink-0", "aria-label": tI18nComplete('text33da220b1a34', { value0: connection.label }), disabled: pending || disabled, children: pending ? (_jsx(Loading, { className: "size-4 shrink-0" })) : (_jsx(DotsThreeIcon, { className: "size-4" })) }) }), _jsxs(DropdownMenuContent, { align: "end", className: "min-w-48", children: [_jsx(DropdownMenuItem, { onClick: () => copy(connection.connection_id), children: tI18nComplete.raw('text99775327d988') }), mayMutate && (_jsx(DropdownMenuItem, { onClick: onRename, children: tI18nComplete.raw('text3064d79a295c') })), mayMutate && isMine && active && onStartSession && (_jsx(DropdownMenuItem, { onClick: onStartSession, children: tI18nComplete.raw('textfae237eed0c5') })), mayMutate && onSetCredential && (_jsx(DropdownMenuItem, { onClick: onSetCredential, children: tI18nComplete.raw('text3d6627454174') })), mayMutate && !connection.is_default && active && (_jsxs(DropdownMenuItem, { onClick: onSetDefault, children: [tI18nComplete.raw('texta92f66fd3d83'), isProjectAuthorization ? ` ${tI18nComplete.raw('text801a345cd406')}` : ''] })), mayMutate && (_jsx(DropdownMenuItem, { onClick: onDisconnect, children: tI18nComplete.raw('textacfc5be785a9') }))] })] })] })] }));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Every account this connector can run as, in one list. Each card states who
|
|
92
|
+
* may use it (`accountVisibility`); one "Add account" asks only who may use the
|
|
93
|
+
* new account.
|
|
94
|
+
*
|
|
95
|
+
* An account is an authorized identity on the connector, owned by the project
|
|
96
|
+
* (shared) or by one member (only you), and both can coexist on the same
|
|
97
|
+
* connector. Sharing an account is manager-gated
|
|
98
|
+
* (`PROJECT_CONNECTOR_CONNECTIONS_MANAGE`, the same right the API checks);
|
|
99
|
+
* adding your own never is.
|
|
100
|
+
*
|
|
101
|
+
* The API already scopes the list to the caller, so a member-owned row is
|
|
102
|
+
* always the caller's own. Another member's private account is not visible
|
|
103
|
+
* here and is not meant to be.
|
|
104
|
+
*/
|
|
105
|
+
const EMPTY_NEW_ACCOUNT = {
|
|
106
|
+
label: '',
|
|
107
|
+
audience: 'private',
|
|
108
|
+
picked: { memberIds: [], groupIds: [] },
|
|
109
|
+
};
|
|
110
|
+
export function ConnectionsList({ projectId, connector, displayName, canManageConnections, onChanged, onStartSession, onSetCredential, onConnect, titleAddon, addVariant = 'secondary', addRequest = 0, onAddRequestHandled, disabled = false, }) {
|
|
111
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
112
|
+
const tSharing = useTranslations('accessSharing');
|
|
113
|
+
const tComputers = useTranslations('computers');
|
|
114
|
+
// A direct provider (openapi/http/mcp/graphql/...) has no hosted OAuth: "Add"
|
|
115
|
+
// creates the account and this then opens `SetCredentialModal` for it. A
|
|
116
|
+
// managed provider (Composio/Pipedream) runs hosted OAuth. Both go through
|
|
117
|
+
// `useAddAccount`.
|
|
118
|
+
// A computer account is a paired machine: "Add" pairs one (desktop one-click,
|
|
119
|
+
// or download + npx) instead of asking for a credential.
|
|
120
|
+
const isComputer = connector.provider === 'computer';
|
|
121
|
+
const isDirectProvider = !isManagedConnectorProvider(connector.provider) && !isComputer;
|
|
122
|
+
const [computerOpen, setComputerOpen] = useState(false);
|
|
123
|
+
const user = useUiViewer();
|
|
124
|
+
const viewerId = user?.id ?? null;
|
|
125
|
+
const [confirmDisconnect, setConfirmDisconnect] = useState(null);
|
|
126
|
+
const [renameTarget, setRenameTarget] = useState(null);
|
|
127
|
+
const [renameDraft, setRenameDraft] = useState('');
|
|
128
|
+
const [credentialTarget, setCredentialTarget] = useState(null);
|
|
129
|
+
// The shared account whose audience the share dialog edits.
|
|
130
|
+
const [shareTarget, setShareTarget] = useState(null);
|
|
131
|
+
const [shareOpen, setShareOpen] = useState(false);
|
|
132
|
+
const accountId = useProjectAccountId(projectId);
|
|
133
|
+
const projectDetailQuery = useQuery({
|
|
134
|
+
queryKey: qk.project.detail(projectId),
|
|
135
|
+
queryFn: () => getProjectDetail(projectId),
|
|
136
|
+
...contract('config'),
|
|
137
|
+
});
|
|
138
|
+
const projectName = projectDetailQuery.data?.project?.name ?? '';
|
|
139
|
+
const everyoneLabel = projectName
|
|
140
|
+
? tSharing('everyone', { project: projectName })
|
|
141
|
+
: tSharing('visibilityEveryone');
|
|
142
|
+
const connectionsQuery = useQuery({
|
|
143
|
+
queryKey: ['connections', projectId],
|
|
144
|
+
queryFn: () => listConnections(projectId),
|
|
145
|
+
staleTime: 30_000,
|
|
146
|
+
// A computer goes online and offline on its own: keep its status current.
|
|
147
|
+
refetchInterval: isComputer ? 15_000 : false,
|
|
148
|
+
});
|
|
149
|
+
const refresh = () => {
|
|
150
|
+
void connectionsQuery.refetch();
|
|
151
|
+
onChanged();
|
|
152
|
+
};
|
|
153
|
+
const allRows = connectorConnectionRows(connectionsQuery.data?.connections, connector.slug);
|
|
154
|
+
// The server's empty shared slot is a placeholder, not an account anyone
|
|
155
|
+
// added: listing it reads as "everyone already shares this". Add account
|
|
156
|
+
// still reuses it when the person picks Everyone.
|
|
157
|
+
const slot = emptyProjectSlot(connector, allRows);
|
|
158
|
+
const rows = slot ? allRows.filter((row) => row !== slot) : allRows;
|
|
159
|
+
const openCredential = onSetCredential ?? setCredentialTarget;
|
|
160
|
+
// "Add account" asks the account's name and who may use it: only you,
|
|
161
|
+
// everyone in the project, or picked people and groups. The connector
|
|
162
|
+
// profile itself is always the project's.
|
|
163
|
+
const [addOpen, setAddOpen] = useState(false);
|
|
164
|
+
const [draft, setDraft] = useState(EMPTY_NEW_ACCOUNT);
|
|
165
|
+
// The proposed name is the next free one. Right after Install the dialog
|
|
166
|
+
// opens before this account list has loaded, so the proposal follows the
|
|
167
|
+
// list until the user types a name of their own.
|
|
168
|
+
const [labelEdited, setLabelEdited] = useState(false);
|
|
169
|
+
const closeAdd = () => setAddOpen(false);
|
|
170
|
+
const addAccount = useAddAccount({
|
|
171
|
+
projectId,
|
|
172
|
+
connector,
|
|
173
|
+
displayName,
|
|
174
|
+
onAdded: () => {
|
|
175
|
+
closeAdd();
|
|
176
|
+
refresh();
|
|
177
|
+
},
|
|
178
|
+
onCredential: openCredential,
|
|
179
|
+
});
|
|
180
|
+
const adding = addAccount.pending;
|
|
181
|
+
const openAdd = () => {
|
|
182
|
+
if (isComputer) {
|
|
183
|
+
setComputerOpen(true);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
setDraft({ ...EMPTY_NEW_ACCOUNT, label: addAccount.proposedLabel() });
|
|
187
|
+
setLabelEdited(false);
|
|
188
|
+
setAddOpen(true);
|
|
189
|
+
};
|
|
190
|
+
const proposedLabel = addAccount.proposedLabel();
|
|
191
|
+
if (addOpen && !labelEdited && draft.label !== proposedLabel)
|
|
192
|
+
setDraft({ ...draft, label: proposedLabel });
|
|
193
|
+
useAddRequest(addRequest, openAdd, onAddRequestHandled);
|
|
194
|
+
const labelTaken = newAccountLabelTaken(draft, rows);
|
|
195
|
+
const canSubmitAdd = !disabled && !adding && newAccountReady(draft, rows, { canManageConnections, accountId });
|
|
196
|
+
const submitAdd = () => {
|
|
197
|
+
if (canSubmitAdd)
|
|
198
|
+
addAccount.submit(draft);
|
|
199
|
+
};
|
|
200
|
+
const setDefault = useMutation({
|
|
201
|
+
mutationFn: (connectionId) => setDefaultConnection(projectId, connectionId),
|
|
202
|
+
onSuccess: () => {
|
|
203
|
+
successToast(tI18nComplete.raw('text109ff88aec78'));
|
|
204
|
+
refresh();
|
|
205
|
+
},
|
|
206
|
+
onError: (e) => errorToast(e.message || tI18nComplete.raw('texta2cf78785484')),
|
|
207
|
+
});
|
|
208
|
+
// Your own computer row follows you into every project, so its Disconnect
|
|
209
|
+
// removes the machine from Kortix (every project), not one account.
|
|
210
|
+
const unpairComputer = useDeleteTunnelConnection();
|
|
211
|
+
const disconnect = useMutation({
|
|
212
|
+
mutationFn: (connectionId) => revokeConnection(projectId, connectionId),
|
|
213
|
+
onSuccess: () => {
|
|
214
|
+
successToast(tI18nComplete.raw('text04dfac3671b4'));
|
|
215
|
+
setConfirmDisconnect(null);
|
|
216
|
+
refresh();
|
|
217
|
+
},
|
|
218
|
+
onError: (e) => errorToast(e.message || tI18nComplete.raw('textb7668a581f59')),
|
|
219
|
+
});
|
|
220
|
+
const rename = useMutation({
|
|
221
|
+
mutationFn: (input) => renameConnection(projectId, input.connectionId, input.label),
|
|
222
|
+
onSuccess: () => {
|
|
223
|
+
successToast(tI18nComplete.raw('text499d7f6dfdfc'));
|
|
224
|
+
setRenameTarget(null);
|
|
225
|
+
refresh();
|
|
226
|
+
},
|
|
227
|
+
// The API names the refusal (a clash with another account, a reserved
|
|
228
|
+
// word), so show its message rather than a generic one.
|
|
229
|
+
onError: (e) => errorToast(e.message || tI18nComplete.raw('text11ef24ea6e15')),
|
|
230
|
+
});
|
|
231
|
+
const openRename = (connection) => {
|
|
232
|
+
setRenameDraft(connection.label);
|
|
233
|
+
setRenameTarget(connection);
|
|
234
|
+
};
|
|
235
|
+
const submitRename = () => {
|
|
236
|
+
const label = renameDraft.trim();
|
|
237
|
+
if (disabled || !renameTarget || !label)
|
|
238
|
+
return;
|
|
239
|
+
if (label === renameTarget.label) {
|
|
240
|
+
setRenameTarget(null);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
rename.mutate({ connectionId: renameTarget.connection_id, label });
|
|
244
|
+
};
|
|
245
|
+
const pendingConnectionId = setDefault.isPending && typeof setDefault.variables === 'string'
|
|
246
|
+
? setDefault.variables
|
|
247
|
+
: disconnect.isPending && typeof disconnect.variables === 'string'
|
|
248
|
+
? disconnect.variables
|
|
249
|
+
: rename.isPending && rename.variables
|
|
250
|
+
? rename.variables.connectionId
|
|
251
|
+
: null;
|
|
252
|
+
// Re-open the credential entry for an existing direct-provider account —
|
|
253
|
+
// wired from the row menu ("Set credential") and reused right after
|
|
254
|
+
// `useAddAccount` creates a brand new one.
|
|
255
|
+
const setCredential = isDirectProvider
|
|
256
|
+
? (connection) => openCredential({
|
|
257
|
+
connectionId: connection.connection_id,
|
|
258
|
+
owner: connection.owner_type === 'project' ? 'project' : 'me',
|
|
259
|
+
})
|
|
260
|
+
: undefined;
|
|
261
|
+
// A member's computer account follows them into every project, so it is
|
|
262
|
+
// never removed from one project: Disconnect unpairs the machine.
|
|
263
|
+
const ownComputer = (connection) => isComputer && connection.owner_type === 'member';
|
|
264
|
+
const renderRow = (connection) => (_jsx(ConnectionRow, { connection: connection, viewerId: viewerId, isMine: connection.owner_type === 'member', canManage: canManageConnections, pending: pendingConnectionId === connection.connection_id, disabled: disabled, onSetDefault: () => setDefault.mutate(connection.connection_id), onDisconnect: () => setConfirmDisconnect(connection), onRename: () => openRename(connection), onStartSession: onStartSession ? () => onStartSession(connection) : undefined, onSetCredential: setCredential ? () => setCredential(connection) : undefined, onConnect: onConnect ? () => onConnect(connection) : undefined, needsSignIn: accountNeedsSignIn(connection, connector), onShare: accountId
|
|
265
|
+
? () => {
|
|
266
|
+
setShareTarget(connection);
|
|
267
|
+
setShareOpen(true);
|
|
268
|
+
}
|
|
269
|
+
: undefined }, connection.connection_id));
|
|
270
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("section", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [titleAddon ? (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Label, { children: tSharing('accountsTitle') }), titleAddon] })) : (_jsx(Label, { children: tSharing('accountsTitle') })), isComputer ? (_jsxs(Button, { size: "sm", variant: addVariant, onClick: () => setComputerOpen(true), disabled: disabled, children: [_jsx(Plus, { className: "size-4" }), tSharing('addAccount')] })) : (_jsxs(Button, { size: "sm", variant: addVariant, onClick: openAdd, disabled: disabled, children: [_jsx(Plus, { className: "size-4" }), tSharing('addAccount')] }))] }), connectionsQuery.isLoading ? (_jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-14 rounded-md" }), _jsx(Skeleton, { className: "h-14 rounded-md" })] })) : rows.length === 0 ? (_jsx(EmptyState, { size: "sm", icon: Plug, title: tSharing('noAccountsTitle'), description: tSharing('noAccountsDescription', { connector: displayName }) })) : (_jsx("ul", { className: "bg-popover divide-border divide-y rounded-md border", children: rows.map(renderRow) }))] }), accountId && shareTarget ? (_jsx(AccessDialog, { open: shareOpen, onOpenChange: setShareOpen, accountId: accountId, scope: { kind: 'project', projectId, projectName }, mode: {
|
|
271
|
+
kind: 'share',
|
|
272
|
+
object: {
|
|
273
|
+
type: 'connection',
|
|
274
|
+
id: shareTarget.connection_id,
|
|
275
|
+
label: shareTarget.label,
|
|
276
|
+
// Your own private account: sharing makes it a shared one.
|
|
277
|
+
...(shareTarget.owner_type === 'member' && viewerId
|
|
278
|
+
? { privateOwner: { userId: viewerId, label: user?.email ?? tSharing('onlyYou') } }
|
|
279
|
+
: {}),
|
|
280
|
+
},
|
|
281
|
+
current: connectionsQuery.data?.connections.find((connection) => connection.connection_id === shareTarget.connection_id)?.shared_with ?? [],
|
|
282
|
+
}, onDone: refresh }, shareTarget.connection_id)) : null, _jsx(Modal, { open: addOpen, onOpenChange: (open) => {
|
|
283
|
+
if (!open && !adding)
|
|
284
|
+
closeAdd();
|
|
285
|
+
}, children: _jsxs(ModalContent, { className: "lg:max-w-md", children: [_jsxs(ModalHeader, { children: [_jsx(ModalTitle, { children: tSharing('addAccountTitle', { connector: displayName }) }), _jsx(ModalDescription, { children: tSharing('addAccountDescription') })] }), _jsxs("form", { onSubmit: (e) => {
|
|
286
|
+
e.preventDefault();
|
|
287
|
+
submitAdd();
|
|
288
|
+
}, children: [_jsx(ModalBody, { className: "max-h-[60vh] space-y-4 overflow-y-auto", children: _jsx(AddAccountFields, { projectId: projectId, value: draft, onChange: (next) => {
|
|
289
|
+
if (next.label !== draft.label)
|
|
290
|
+
setLabelEdited(true);
|
|
291
|
+
setDraft(next);
|
|
292
|
+
}, labelTaken: labelTaken, canManageConnections: canManageConnections, accountId: accountId, everyoneLabel: everyoneLabel, hint: tI18nComplete.raw('text99953938d987'), disabled: adding || disabled, autoFocus: true }) }), _jsxs(ModalFooter, { className: "sm:justify-between", children: [_jsx(Button, { type: "button", variant: "outline-ghost", onClick: closeAdd, disabled: adding, children: tI18nComplete.raw('text19766ed6ccb2') }), _jsxs(Button, { type: "submit", disabled: !canSubmitAdd, children: [adding ? _jsx(Loading, { className: "size-4 shrink-0" }) : null, tI18nComplete.raw('text31fbef162594')] })] })] })] }) }), _jsx(Modal, { open: renameTarget !== null, onOpenChange: (open) => {
|
|
293
|
+
if (!open && !rename.isPending)
|
|
294
|
+
setRenameTarget(null);
|
|
295
|
+
}, children: _jsxs(ModalContent, { className: "lg:max-w-md", children: [_jsxs(ModalHeader, { children: [_jsx(ModalTitle, { children: tI18nComplete('textbb7a240d3660', { value0: renameTarget?.label ?? '' }) }), _jsx(ModalDescription, { children: tI18nComplete.raw('text64f07c825803') })] }), _jsxs("form", { onSubmit: (e) => {
|
|
296
|
+
e.preventDefault();
|
|
297
|
+
submitRename();
|
|
298
|
+
}, children: [_jsx(ModalBody, { children: _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connection-rename-label", children: tI18nComplete.raw('textdcd1d5223f73') }), _jsx(Input, { id: "connection-rename-label", value: renameDraft, onChange: (e) => setRenameDraft(e.target.value), maxLength: 255, autoFocus: true, disabled: rename.isPending || disabled }), renameTarget?.connected_as ? (_jsx(FieldDescription, { children: tI18nComplete('texte9e0b20cf289', { value0: renameTarget.connected_as }) })) : null] }) }), _jsxs(ModalFooter, { className: "sm:justify-between", children: [_jsx(Button, { type: "button", variant: "outline-ghost", onClick: () => setRenameTarget(null), disabled: rename.isPending, children: tI18nComplete.raw('text19766ed6ccb2') }), _jsxs(Button, { type: "submit", disabled: rename.isPending || disabled || !renameDraft.trim(), children: [rename.isPending ? _jsx(Loading, { className: "size-4 shrink-0" }) : null, tI18nComplete.raw('text1509f561f241')] })] })] })] }) }), _jsx(ConfirmDialog, { open: confirmDisconnect !== null, onOpenChange: (open) => !open && setConfirmDisconnect(null), title: tI18nComplete('text13716a578591', { value0: confirmDisconnect?.label ?? '' }), description: confirmDisconnect && ownComputer(confirmDisconnect)
|
|
299
|
+
? tComputers('unpairDescription')
|
|
300
|
+
: confirmDisconnect?.owner_type === 'project'
|
|
301
|
+
? tI18nComplete.raw('texte2cbafcec553')
|
|
302
|
+
: tI18nComplete.raw('text64db32d83da9'), confirmLabel: tI18nComplete.raw('textacfc5be785a9'), confirmVariant: "destructive", isPending: disconnect.isPending || unpairComputer.isPending, onConfirm: () => {
|
|
303
|
+
if (!confirmDisconnect)
|
|
304
|
+
return;
|
|
305
|
+
if (ownComputer(confirmDisconnect) && confirmDisconnect.tunnel_id) {
|
|
306
|
+
unpairComputer.mutate(confirmDisconnect.tunnel_id, {
|
|
307
|
+
onSuccess: () => {
|
|
308
|
+
successToast(tComputers('disconnected'));
|
|
309
|
+
setConfirmDisconnect(null);
|
|
310
|
+
refresh();
|
|
311
|
+
},
|
|
312
|
+
onError: (e) => errorToast(e.message || tComputers('disconnectFailed')),
|
|
313
|
+
});
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
disconnect.mutate(confirmDisconnect.connection_id);
|
|
317
|
+
} }), isComputer ? (_jsx(ComputerConnectModal, { projectId: projectId, open: computerOpen, onOpenChange: setComputerOpen, onConnected: refresh })) : null, isDirectProvider && !onSetCredential ? (_jsx(SetCredentialModal, { projectId: projectId, connector: credentialTarget ? connector : null, connectionId: credentialTarget?.connectionId ?? null, owner: credentialTarget?.owner ?? 'me', open: credentialTarget !== null, onOpenChange: (open) => {
|
|
318
|
+
if (!open)
|
|
319
|
+
setCredentialTarget(null);
|
|
320
|
+
}, onSaved: () => {
|
|
321
|
+
setCredentialTarget(null);
|
|
322
|
+
refresh();
|
|
323
|
+
} })) : null] }));
|
|
324
|
+
}
|
|
325
|
+
function RosterStatusBadge({ status }) {
|
|
326
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
327
|
+
if (status === 'active') {
|
|
328
|
+
return (_jsx(Badge, { variant: "outline", size: "sm", className: "text-kortix-green", children: tI18nComplete.raw('text22965568d22a') }));
|
|
329
|
+
}
|
|
330
|
+
return (_jsx(Badge, { variant: "outline", size: "sm", className: "text-muted-foreground", children: status === 'revoked' ? 'Disconnected' : 'Error' }));
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Owner/admin read-only roster: which project members have connected their OWN
|
|
334
|
+
* account for this connector, and its status. Manage-gated at the API; never
|
|
335
|
+
* shows credentials (only existence + status + owner). Read-only.
|
|
336
|
+
*/
|
|
337
|
+
export function ConnectionRoster({ projectId, connectorSlug, displayName, }) {
|
|
338
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
339
|
+
const connectionsQuery = useQuery({
|
|
340
|
+
queryKey: ['connections-all', projectId],
|
|
341
|
+
queryFn: () => listAllConnections(projectId),
|
|
342
|
+
staleTime: 30_000,
|
|
343
|
+
});
|
|
344
|
+
const accessQuery = useQuery({
|
|
345
|
+
queryKey: qk.project.access(projectId),
|
|
346
|
+
queryFn: () => listProjectAccess(projectId),
|
|
347
|
+
...contract('inventory'),
|
|
348
|
+
});
|
|
349
|
+
const emailByUser = useMemo(() => {
|
|
350
|
+
const map = new Map();
|
|
351
|
+
for (const member of accessQuery.data?.members ?? []) {
|
|
352
|
+
if (member.email)
|
|
353
|
+
map.set(member.user_id, member.email);
|
|
354
|
+
}
|
|
355
|
+
return map;
|
|
356
|
+
}, [accessQuery.data]);
|
|
357
|
+
const rows = (connectionsQuery.data?.connections ?? []).filter((connection) => connection.connector_alias === connectorSlug && connection.owner_type === 'member');
|
|
358
|
+
return (_jsxs("div", { className: "overflow-hidden rounded-md border", children: [_jsxs("div", { className: "text-muted-foreground border-b px-4 py-2.5 text-xs font-medium", children: [tI18nComplete.raw('texta2d64eeafcb9'), " ", displayName, ' ', tI18nComplete.raw('text1e5fac867454')] }), connectionsQuery.isLoading ? (_jsx("div", { className: "text-muted-foreground px-4 py-3 text-sm", children: tI18nComplete.raw('textba3bbbe10d8b') })) : rows.length === 0 ? (_jsxs("div", { className: "text-muted-foreground px-4 py-3 text-sm", children: [tI18nComplete.raw('text56e264eb39f6'), " ", displayName, ' ', tI18nComplete.raw('textf55f49c47f7f')] })) : (_jsx("ul", { className: "divide-y", children: rows.map((connection) => (_jsxs("li", { className: "flex items-center justify-between gap-3 px-4 py-2.5", children: [_jsx("span", { className: "min-w-0 truncate text-sm", children: emailByUser.get(connection.owner_id ?? '') ??
|
|
359
|
+
connection.owner_id ??
|
|
360
|
+
tI18nComplete.raw('text29824c5acaf8') }), _jsx(RosterStatusBadge, { status: connection.status })] }, connection.connection_id))) }))] }));
|
|
361
|
+
}
|
|
362
|
+
function connectorPlatform(connector) {
|
|
363
|
+
if (connector.platform === 'slack' || connector.platform === 'email') {
|
|
364
|
+
return connector.platform;
|
|
365
|
+
}
|
|
366
|
+
if (connector.slug === 'kortix_slack')
|
|
367
|
+
return 'slack';
|
|
368
|
+
if (connector.slug === 'kortix_email')
|
|
369
|
+
return 'email';
|
|
370
|
+
if (connector.slug.startsWith('email_'))
|
|
371
|
+
return 'email';
|
|
372
|
+
return null;
|
|
373
|
+
}
|
|
374
|
+
export function ChannelConnectionSection({ projectId, connector, onChanged, onRemoved, canWrite = false, }) {
|
|
375
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
376
|
+
const platform = connectorPlatform(connector);
|
|
377
|
+
if (platform === 'email') {
|
|
378
|
+
return (_jsx(EmailChannelConnection, { projectId: projectId, connector: connector, onChanged: onChanged, onRemoved: onRemoved, canWrite: canWrite }));
|
|
379
|
+
}
|
|
380
|
+
if (platform === 'slack') {
|
|
381
|
+
return (_jsx(SlackChannelConnection, { projectId: projectId, onChanged: onChanged, onRemoved: onRemoved, canWrite: canWrite }));
|
|
382
|
+
}
|
|
383
|
+
return (_jsxs("section", { className: "space-y-4", children: [_jsx(Label, { children: tI18nComplete.raw('text639a40e82b9a') }), _jsx("div", { className: "bg-popover rounded-md border px-4 py-3", children: _jsx(InfoBanner, { tone: "warning", children: tI18nComplete.raw('text53f76274b923') }) })] }));
|
|
384
|
+
}
|
|
385
|
+
function EmailChannelConnection({ projectId, connector, onChanged, onRemoved, canWrite = false, }) {
|
|
386
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
387
|
+
const install = useEmailInstall(projectId, connector.slug);
|
|
388
|
+
return (_jsxs("section", { className: "space-y-4", children: [_jsx(Label, { children: tI18nComplete.raw('text7033ce3d1e7a') }), _jsx("p", { className: "text-muted-foreground -mt-2 text-xs", children: tI18nComplete.raw('text28d1c949e5e6') }), _jsx("div", { className: "bg-popover rounded-md border px-4 py-3", children: install.isLoading ? (_jsx(Skeleton, { className: "h-24 w-full rounded-md" })) : install.data ? (_jsx(ConnectedEmailConnection, { projectId: projectId, connectorSlug: connector.slug, installation: install.data, onRemoved: onRemoved, canWrite: canWrite })) : canWrite ? (_jsx(EmailConnectForm, { projectId: projectId, connectorSlug: connector.slug, onConnected: onChanged })) : (_jsx(InfoBanner, { tone: "neutral", icon: Mail, title: tI18nComplete.raw('textf0aea4d97b8e'), children: tI18nComplete.raw('text2dec6c273b47') })) })] }));
|
|
389
|
+
}
|
|
390
|
+
function ConnectedEmailConnection({ projectId, connectorSlug, installation, onRemoved, canWrite = false, }) {
|
|
391
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
392
|
+
const disconnect = useDisconnectEmail();
|
|
393
|
+
const [confirming, setConfirming] = useState(false);
|
|
394
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs(InfoBanner, { tone: "success", icon: Check, title: tI18nComplete.raw('textc23cc1f72afe'), children: [tI18nComplete.raw('text56ef8f20955f'), ' ', _jsx("code", { className: "font-mono", children: installation.email }), ' · ', tI18nComplete.raw('text94835ea2fcf7'), ' ', _jsx("code", { className: "font-mono", children: installation.inboxId }), installation.webhookId ? (_jsxs(_Fragment, { children: [' · ', tI18nComplete.raw('text4814f62c108d'), ' ', _jsx("code", { className: "font-mono", children: installation.webhookId })] })) : null] }), _jsx(EmailSenderPolicyEditor, { projectId: projectId, connectorSlug: connectorSlug, policy: installation.senderPolicy, canWrite: canWrite }), canWrite && (_jsx("div", { className: "flex items-center justify-end gap-2", children: confirming ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground mr-auto text-xs", children: tI18nComplete.raw('text2a528ae2d4ae') }), _jsx(Button, { variant: "ghost", size: "sm", onClick: () => setConfirming(false), children: tI18nComplete.raw('text19766ed6ccb2') }), _jsxs(Button, { variant: "destructive", size: "sm", disabled: disconnect.isPending, onClick: () => disconnect.mutate({ projectId, connectorSlug }, {
|
|
395
|
+
onSuccess: () => {
|
|
396
|
+
setConfirming(false);
|
|
397
|
+
onRemoved();
|
|
398
|
+
},
|
|
399
|
+
}), children: [disconnect.isPending ? _jsx(Loading, { className: "mr-2 size-3.5 shrink-0" }) : null, tI18nComplete.raw('textacfc5be785a9')] })] })) : (_jsx(Button, { variant: "outline", size: "sm", onClick: () => setConfirming(true), children: tI18nComplete.raw('textacfc5be785a9') })) }))] }));
|
|
400
|
+
}
|
|
401
|
+
function splitPolicyList(value) {
|
|
402
|
+
return Array.from(new Set(value
|
|
403
|
+
.split(/[\n,]+/)
|
|
404
|
+
.map((item) => item.trim().toLowerCase())
|
|
405
|
+
.filter(Boolean)));
|
|
406
|
+
}
|
|
407
|
+
function normalizeEmailSenderPolicy(policy) {
|
|
408
|
+
return {
|
|
409
|
+
mode: policy?.mode === 'restricted' ? 'restricted' : 'allow_all',
|
|
410
|
+
allowedEmails: policy?.allowedEmails ?? [],
|
|
411
|
+
allowedDomains: policy?.allowedDomains ?? [],
|
|
412
|
+
allowedRegex: policy?.allowedRegex ?? null,
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
function EmailSenderPolicyEditor({ projectId, connectorSlug, policy, canWrite = false, }) {
|
|
416
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
417
|
+
const update = useUpdateEmailPolicy();
|
|
418
|
+
const initial = normalizeEmailSenderPolicy(policy);
|
|
419
|
+
const [restricted, setRestricted] = useState(initial.mode === 'restricted');
|
|
420
|
+
const [emails, setEmails] = useState(() => initial.allowedEmails.join('\n'));
|
|
421
|
+
const [domains, setDomains] = useState(() => initial.allowedDomains.join('\n'));
|
|
422
|
+
const [regex, setRegex] = useState(initial.allowedRegex ?? '');
|
|
423
|
+
const [error, setError] = useState(null);
|
|
424
|
+
useEffect(() => {
|
|
425
|
+
const next = normalizeEmailSenderPolicy(policy);
|
|
426
|
+
setRestricted(next.mode === 'restricted');
|
|
427
|
+
setEmails(next.allowedEmails.join('\n'));
|
|
428
|
+
setDomains(next.allowedDomains.join('\n'));
|
|
429
|
+
setRegex(next.allowedRegex ?? '');
|
|
430
|
+
setError(null);
|
|
431
|
+
}, [policy]);
|
|
432
|
+
const nextPolicy = () => ({
|
|
433
|
+
mode: restricted ? 'restricted' : 'allow_all',
|
|
434
|
+
allowedEmails: splitPolicyList(emails),
|
|
435
|
+
allowedDomains: splitPolicyList(domains).map((domain) => domain.replace(/^@+/, '')),
|
|
436
|
+
allowedRegex: regex.trim() || null,
|
|
437
|
+
});
|
|
438
|
+
const save = () => {
|
|
439
|
+
setError(null);
|
|
440
|
+
const sender_policy = nextPolicy();
|
|
441
|
+
if (sender_policy.allowedRegex) {
|
|
442
|
+
try {
|
|
443
|
+
new RegExp(sender_policy.allowedRegex);
|
|
444
|
+
}
|
|
445
|
+
catch {
|
|
446
|
+
setError('Regex is invalid');
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
update.mutate({ projectId, connectorSlug, sender_policy }, { onError: (e) => setError(e.message) });
|
|
451
|
+
};
|
|
452
|
+
const dirty = restricted !== (initial.mode === 'restricted') ||
|
|
453
|
+
emails !== initial.allowedEmails.join('\n') ||
|
|
454
|
+
domains !== initial.allowedDomains.join('\n') ||
|
|
455
|
+
regex !== (initial.allowedRegex ?? '');
|
|
456
|
+
return (_jsx("div", { className: "border-border/60 bg-card rounded-md border p-4", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Checkbox, { id: "email-sender-restricted", checked: restricted, onCheckedChange: (checked) => setRestricted(Boolean(checked)), className: "mt-0.5", disabled: !canWrite }), _jsxs("div", { className: "min-w-0 flex-1 space-y-3", children: [_jsxs("div", { children: [_jsx(Label, { htmlFor: "email-sender-restricted", children: tI18nComplete.raw('texta48c89f63885') }), _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: tI18nComplete.raw('text8c67b476d59b') })] }), restricted ? (_jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [_jsx(Field, { children: _jsx(Input, { value: emails, onChange: (e) => setEmails(e.target.value), placeholder: tI18nComplete.raw('text542d24012988'), disabled: !canWrite }) }), _jsx(Field, { children: _jsx(Input, { value: domains, onChange: (e) => setDomains(e.target.value), placeholder: tI18nComplete.raw('texta379a6f6eeaf'), disabled: !canWrite }) }), _jsx("div", { className: "sm:col-span-2", children: _jsx(Field, { children: _jsx(Input, { value: regex, onChange: (e) => setRegex(e.target.value), placeholder: tI18nComplete.raw('text8b21058f3253'), spellCheck: false, disabled: !canWrite }) }) })] })) : null, error ? _jsx(InfoBanner, { tone: "destructive", children: error }) : null, canWrite && (_jsx(SaveBar, { dirty: dirty, saving: update.isPending, onSave: save, onReset: () => {
|
|
457
|
+
setRestricted(initial.mode === 'restricted');
|
|
458
|
+
setEmails(initial.allowedEmails.join('\n'));
|
|
459
|
+
setDomains(initial.allowedDomains.join('\n'));
|
|
460
|
+
setRegex(initial.allowedRegex ?? '');
|
|
461
|
+
}, label: tI18nComplete.raw('text57ee14ce1425') }))] })] }) }));
|
|
462
|
+
}
|
|
463
|
+
export function EmailConnectForm({ projectId, connectorSlug, onConnected, }) {
|
|
464
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
465
|
+
const mode = useEmailMode(projectId);
|
|
466
|
+
const connect = useConnectEmail();
|
|
467
|
+
const [displayName, setDisplayName] = useState('Kortix Agent');
|
|
468
|
+
const [username, setUsername] = useState(() => connectorSlug
|
|
469
|
+
.replace(/^email_/, '')
|
|
470
|
+
.replace(/_[a-z0-9]{4}$/i, '')
|
|
471
|
+
.replace(/_/g, '-'));
|
|
472
|
+
const [attachExisting, setAttachExisting] = useState(false);
|
|
473
|
+
const [existingInboxId, setExistingInboxId] = useState('');
|
|
474
|
+
const [existingEmail, setExistingEmail] = useState('');
|
|
475
|
+
const [apiKey, setApiKey] = useState('');
|
|
476
|
+
const [customKeyOpen, setCustomKeyOpen] = useState(false);
|
|
477
|
+
const [restricted, setRestricted] = useState(false);
|
|
478
|
+
const [emails, setEmails] = useState('');
|
|
479
|
+
const [domains, setDomains] = useState('');
|
|
480
|
+
const [regex, setRegex] = useState('');
|
|
481
|
+
const [error, setError] = useState(null);
|
|
482
|
+
const managedAvailable = mode.data?.managed_available === true;
|
|
483
|
+
const useCustomKey = customKeyOpen && apiKey.trim();
|
|
484
|
+
const canCreate = managedAvailable || Boolean(useCustomKey);
|
|
485
|
+
const submit = () => {
|
|
486
|
+
setError(null);
|
|
487
|
+
if (!canCreate) {
|
|
488
|
+
setCustomKeyOpen(true);
|
|
489
|
+
setError('Managed Email is not configured on this deployment. Use a custom AgentMail key to continue.');
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
if (attachExisting && (!existingInboxId.trim() || !existingEmail.trim())) {
|
|
493
|
+
setError('Existing AgentMail inbox requires both inbox ID and email address.');
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
const sender_policy = {
|
|
497
|
+
mode: restricted ? 'restricted' : 'allow_all',
|
|
498
|
+
allowedEmails: splitPolicyList(emails),
|
|
499
|
+
allowedDomains: splitPolicyList(domains).map((domain) => domain.replace(/^@+/, '')),
|
|
500
|
+
allowedRegex: regex.trim() || null,
|
|
501
|
+
};
|
|
502
|
+
if (sender_policy.allowedRegex) {
|
|
503
|
+
try {
|
|
504
|
+
new RegExp(sender_policy.allowedRegex);
|
|
505
|
+
}
|
|
506
|
+
catch {
|
|
507
|
+
setError('Regex is invalid');
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
connect.mutate({
|
|
512
|
+
projectId,
|
|
513
|
+
connector_slug: connectorSlug,
|
|
514
|
+
api_key: useCustomKey ? apiKey.trim() : undefined,
|
|
515
|
+
display_name: displayName.trim() || undefined,
|
|
516
|
+
username: attachExisting ? undefined : username.trim() || undefined,
|
|
517
|
+
inbox_id: attachExisting ? existingInboxId.trim() : undefined,
|
|
518
|
+
email: attachExisting ? existingEmail.trim() : undefined,
|
|
519
|
+
sender_policy,
|
|
520
|
+
}, {
|
|
521
|
+
onSuccess: onConnected,
|
|
522
|
+
onError: (e) => setError(e.message),
|
|
523
|
+
});
|
|
524
|
+
};
|
|
525
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsx(InfoBanner, { tone: managedAvailable ? 'info' : 'warning', icon: Mail, title: managedAvailable
|
|
526
|
+
? tI18nComplete.raw('texte654b63c8098')
|
|
527
|
+
: tI18nComplete.raw('textafe9444782eb'), children: managedAvailable
|
|
528
|
+
? tI18nComplete.raw('textec9ace8d8ff6')
|
|
529
|
+
: tI18nComplete.raw('text608977655d2d') }), _jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [_jsx(Field, { children: _jsx(Input, { id: "email-channel-display-name", name: "email-channel-display-name", "aria-label": tI18nComplete.raw('textf912567c97f2'), value: displayName, onChange: (e) => setDisplayName(e.target.value), placeholder: tI18nComplete.raw('text952144fe1418') }) }), attachExisting ? (_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "email-channel-existing-email", children: tI18nComplete.raw('text2fcfd290b610') }), _jsx(Input, { id: "email-channel-existing-email", name: "email-channel-existing-email", "aria-label": tI18nComplete.raw('textaa042b472947'), value: existingEmail, onChange: (e) => setExistingEmail(e.target.value.trim().toLowerCase()), placeholder: tI18nComplete.raw('textbca888f9f9fd'), autoComplete: "off", spellCheck: false })] })) : (_jsxs(Field, { children: [_jsx(Input, { id: "email-channel-username", name: "email-channel-username", "aria-label": tI18nComplete.raw('textcbf297bfb5e6'), value: username, onChange: (e) => setUsername(e.target.value.toLowerCase().replace(/[^a-z0-9._-]/g, '')), placeholder: tI18nComplete.raw('texta18603086e5b'), autoComplete: "off", spellCheck: false }), _jsxs("p", { className: "text-muted-foreground text-xs", children: [tI18nComplete.raw('textf0a216500b54'), " ", username || 'support', tI18nComplete.raw('text39e4dae21daa')] })] }))] }), _jsx("div", { className: "border-border/60 border-t pt-4", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Checkbox, { id: "email-channel-existing-inbox", checked: attachExisting, onCheckedChange: (checked) => setAttachExisting(Boolean(checked)), className: "mt-0.5" }), _jsxs("div", { className: "min-w-0 flex-1 space-y-3", children: [_jsxs("div", { children: [_jsx(Label, { htmlFor: "email-channel-existing-inbox", children: tI18nComplete.raw('textd7cc97510eb3') }), _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: tI18nComplete.raw('text3bb2e4fa1c03') })] }), attachExisting ? (_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "email-channel-existing-inbox-id", children: tI18nComplete.raw('texta35f4f3f0587') }), _jsx(Input, { id: "email-channel-existing-inbox-id", name: "email-channel-existing-inbox-id", "aria-label": tI18nComplete.raw('textdc5376ca47b4'), value: existingInboxId, onChange: (e) => setExistingInboxId(e.target.value.trim()), placeholder: tI18nComplete.raw('textbca888f9f9fd'), autoComplete: "off", spellCheck: false })] })) : null] })] }) }), _jsxs("div", { className: "space-y-3", children: [_jsxs(Button, { type: "button", variant: "ghost", size: "sm", className: "h-8 gap-1.5 px-0", onClick: () => setCustomKeyOpen((open) => !open), children: [_jsx(ChevronDown, { className: cn('h-3.5 w-3.5 transition-transform', customKeyOpen && 'rotate-180') }), tI18nComplete.raw('text1bb320d9db5d')] }), customKeyOpen ? (_jsxs(Field, { children: [_jsx(Input, { id: "email-channel-agentmail-api-key", name: "email-channel-agentmail-api-key", "aria-label": tI18nComplete.raw('text87b0e5101fd8'), type: "password", value: apiKey, onChange: (e) => setApiKey(e.target.value), placeholder: tI18nComplete.raw('text3ce8275b54eb'), autoComplete: "off", spellCheck: false }), _jsx("p", { className: "text-muted-foreground text-xs", children: tI18nComplete.raw('text0ec2e7ccbd17') })] })) : null] }), _jsx("div", { className: "border-border/60 bg-card rounded-md border p-4", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Checkbox, { id: "email-channel-restrict-senders", checked: restricted, onCheckedChange: (checked) => setRestricted(Boolean(checked)), className: "mt-0.5" }), _jsxs("div", { className: "min-w-0 flex-1 space-y-3", children: [_jsxs("div", { children: [_jsx(Label, { htmlFor: "email-channel-restrict-senders", children: tI18nComplete.raw('textb1fb183269ba') }), _jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: tI18nComplete.raw('text5284184cef68') })] }), restricted ? (_jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [_jsx(Field, { children: _jsx(Input, { value: emails, onChange: (e) => setEmails(e.target.value), placeholder: tI18nComplete.raw('text542d24012988'), spellCheck: false }) }), _jsx(Field, { children: _jsx(Input, { value: domains, onChange: (e) => setDomains(e.target.value), placeholder: tI18nComplete.raw('texta379a6f6eeaf'), spellCheck: false }) }), _jsx("div", { className: "sm:col-span-2", children: _jsx(Field, { children: _jsx(Input, { value: regex, onChange: (e) => setRegex(e.target.value), placeholder: tI18nComplete.raw('text8b21058f3253'), spellCheck: false }) }) })] })) : null] })] }) }), error ? _jsx(InfoBanner, { tone: "destructive", children: error }) : null, _jsx("div", { className: "flex justify-end", children: _jsxs(Button, { size: "sm", onClick: submit, disabled: connect.isPending || mode.isLoading, children: [connect.isPending ? _jsx(Loading, { className: "mr-2 size-3.5 shrink-0" }) : null, tI18nComplete.raw('text72d9ee78a15c')] }) })] }));
|
|
530
|
+
}
|
|
531
|
+
function SlackChannelConnection({ projectId, onChanged, onRemoved, canWrite = false, }) {
|
|
532
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
533
|
+
const install = useSlackInstall(projectId);
|
|
534
|
+
return (_jsxs("section", { className: "space-y-4", children: [_jsx(Label, { children: tI18nComplete.raw('text51b3bfca2e8c') }), _jsx("p", { className: "text-muted-foreground -mt-2 text-xs", children: tI18nComplete.raw('textff5091ba4fe1') }), _jsx("div", { className: "bg-popover rounded-md border px-4 py-3", children: install.isLoading ? (_jsx(Skeleton, { className: "h-24 w-full rounded-md" })) : install.data ? (_jsx(ConnectedSlackConnection, { projectId: projectId, installation: install.data, onRemoved: onRemoved, canWrite: canWrite })) : canWrite ? (_jsx(SlackConnectForm, { projectId: projectId, onConnected: onChanged })) : (_jsx(InfoBanner, { tone: "neutral", icon: _jsx(SlackLogo, {}), title: tI18nComplete.raw('textb36d622566f6'), children: tI18nComplete.raw('text98d27bdc2fa7') })) })] }));
|
|
535
|
+
}
|
|
536
|
+
function ConnectedSlackConnection({ projectId, installation, onRemoved, canWrite = false, }) {
|
|
537
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
538
|
+
const disconnect = useDisconnectSlack();
|
|
539
|
+
const [confirming, setConfirming] = useState(false);
|
|
540
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs(InfoBanner, { tone: "success", icon: Check, title: tI18nComplete.raw('text4fce550efde4'), children: [tI18nComplete.raw('text87bb59ba2f92'), ' ', _jsx("code", { className: "font-mono", children: installation.workspaceName || installation.workspaceId })] }), canWrite && (_jsx("div", { className: "flex items-center justify-end gap-2", children: confirming ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground mr-auto text-xs", children: tI18nComplete.raw('text73b407259d54') }), _jsx(Button, { variant: "ghost", size: "sm", onClick: () => setConfirming(false), children: tI18nComplete.raw('text19766ed6ccb2') }), _jsxs(Button, { variant: "destructive", size: "sm", disabled: disconnect.isPending, onClick: () => disconnect.mutate(projectId, {
|
|
541
|
+
onSuccess: () => {
|
|
542
|
+
setConfirming(false);
|
|
543
|
+
onRemoved();
|
|
544
|
+
},
|
|
545
|
+
}), children: [disconnect.isPending ? _jsx(Loading, { className: "mr-2 size-3.5 shrink-0" }) : null, tI18nComplete.raw('textacfc5be785a9')] })] })) : (_jsx(Button, { variant: "outline", size: "sm", onClick: () => setConfirming(true), children: tI18nComplete.raw('textacfc5be785a9') })) }))] }));
|
|
546
|
+
}
|
|
547
|
+
export function SlackConnectForm({ projectId, onConnected, customOnly = false, }) {
|
|
548
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
549
|
+
const mode = useSlackMode(projectId);
|
|
550
|
+
const manifest = useSlackManifest(projectId);
|
|
551
|
+
const connect = useConnectSlack();
|
|
552
|
+
const [botToken, setBotToken] = useState('');
|
|
553
|
+
const [signingSecret, setSigningSecret] = useState('');
|
|
554
|
+
const [customOpen, setCustomOpen] = useState(false);
|
|
555
|
+
const [copiedManifest, setCopiedManifest] = useState(false);
|
|
556
|
+
const [error, setError] = useState(null);
|
|
557
|
+
const installUrl = mode.data?.oauth_available ? mode.data.install_url : null;
|
|
558
|
+
const showCustom = customOnly || customOpen || (!mode.isLoading && !installUrl);
|
|
559
|
+
const submit = () => {
|
|
560
|
+
setError(null);
|
|
561
|
+
connect.mutate({ projectId, bot_token: botToken.trim(), signing_secret: signingSecret.trim() }, {
|
|
562
|
+
onSuccess: onConnected,
|
|
563
|
+
onError: (e) => setError(e.message),
|
|
564
|
+
});
|
|
565
|
+
};
|
|
566
|
+
const copyManifest = async () => {
|
|
567
|
+
if (!manifest.data)
|
|
568
|
+
return;
|
|
569
|
+
try {
|
|
570
|
+
await navigator.clipboard.writeText(manifest.data);
|
|
571
|
+
setCopiedManifest(true);
|
|
572
|
+
successToast(tI18nComplete.raw('text1f1228d5e972'));
|
|
573
|
+
setTimeout(() => setCopiedManifest(false), 1500);
|
|
574
|
+
}
|
|
575
|
+
catch {
|
|
576
|
+
errorToast(tI18nComplete.raw('text1801bed8cea5'));
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
return (_jsxs("div", { className: "space-y-4", children: [!customOnly &&
|
|
580
|
+
(mode.isLoading ? (_jsx(Skeleton, { className: "h-24 w-full rounded-md" })) : installUrl ? (_jsx(InfoBanner, { tone: "info", icon: _jsx(SlackLogo, {}), title: tI18nComplete.raw('text0e671041e03f'), action: _jsx(Button, { size: "sm", className: "shrink-0 gap-1.5", asChild: true, children: _jsxs("a", { href: installUrl, children: [tI18nComplete.raw('text3357cd3d0cee'), _jsx(ChevronRight, { className: "h-4 w-4" })] }) }), children: tI18nComplete.raw('text8b3305c40176') })) : (_jsx(InfoBanner, { tone: "warning", icon: _jsx(SlackLogo, {}), title: tI18nComplete.raw('text36e7df856716'), children: tI18nComplete.raw('text51e0d22747d7') }))), _jsxs("div", { className: cn(!customOnly && 'space-y-3'), children: [!customOnly && (_jsxs(Button, { type: "button", variant: "ghost", size: "sm", className: "h-8 gap-1.5 px-0", onClick: () => setCustomOpen((open) => !open), children: [_jsx(ChevronDown, { className: cn('h-3.5 w-3.5 transition-transform', showCustom && 'rotate-180') }), tI18nComplete.raw('textaed3545ea8e4')] })), showCustom ? (_jsxs("div", { className: cn('space-y-5', !customOnly && 'border-border/60 bg-card rounded-md border p-4'), children: [!customOnly && (_jsxs("div", { className: "space-y-1", children: [_jsx("h3", { className: "text-foreground text-base font-semibold", children: tI18nComplete.raw('text6e3fcca472c5') }), _jsx("p", { className: "text-muted-foreground text-sm", children: tI18nComplete.raw('text0881271239f3') })] })), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: cn('flex flex-col gap-3', !customOnly && 'sm:flex-row sm:items-end sm:justify-between'), children: [_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-foreground text-sm font-medium", children: tI18nComplete.raw('text8cd1f7bcdc71') }), _jsx("div", { className: "text-muted-foreground text-xs font-medium", children: tI18nComplete.raw('textcc6e921330d3') })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", className: "gap-1.5", onClick: copyManifest, disabled: !manifest.data, children: [copiedManifest ? (_jsx(Check, { className: "h-3.5 w-3.5" })) : (_jsx(Copy, { className: "h-3.5 w-3.5" })), copiedManifest ? 'Copied' : 'Copy'] }), _jsx(Button, { type: "button", variant: "outline", size: "sm", className: "gap-1.5", asChild: true, children: _jsxs("a", { href: "https://api.slack.com/apps?new_app=1", target: "_blank", rel: "noreferrer", children: [tI18nComplete.raw('text4ddf02a36df5'), _jsx(ExternalLink, { className: "h-3.5 w-3.5" })] }) })] })] }), manifest.isLoading ? (_jsx(Skeleton, { className: cn('h-52 w-full', !customOnly && 'rounded-md') })) : manifest.isError ? (_jsx(InfoBanner, { tone: "destructive", children: manifest.error?.message || tI18nComplete.raw('text65a8ec4a4a48') })) : manifest.data ? (_jsx("div", { className: cn('max-h-[26rem] overflow-auto', !customOnly && 'rounded-md'), children: _jsx(CodeSnippet, { code: manifest.data, language: "json" }) })) : null, _jsx("ol", { className: "space-y-2", children: [
|
|
581
|
+
tI18nComplete.raw('texta89d28175307'),
|
|
582
|
+
tI18nComplete.raw('text690ee10ca19e'),
|
|
583
|
+
tI18nComplete.raw('text2cf7a6e21f7e'),
|
|
584
|
+
].map((step, index) => (_jsxs("li", { className: "text-muted-foreground flex gap-2 text-xs", children: [_jsx("span", { className: "border-border/60 bg-muted/40 text-foreground flex h-5 w-5 shrink-0 items-center justify-center rounded-full border text-xs font-medium", children: index + 1 }), _jsx("span", { className: "pt-0.5", children: step })] }, step))) })] }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx("div", { className: "text-foreground text-sm font-medium", children: tI18nComplete.raw('textf00ff63fb851') }), _jsx("p", { className: "text-muted-foreground mt-0.5 text-xs", children: tI18nComplete.raw('texte5974d3936df') })] }), _jsxs("div", { className: cn('grid gap-3', !customOnly && 'sm:grid-cols-2'), children: [_jsx(Field, { children: _jsx(Input, { id: "slack-channel-bot-token", name: "slack-channel-bot-token", "aria-label": tI18nComplete.raw('textc297a4c9177d'), type: "password", value: botToken, onChange: (e) => setBotToken(e.target.value), placeholder: tI18nComplete.raw('textdf964376e432'), autoComplete: "off", spellCheck: false }) }), _jsx(Field, { children: _jsx(Input, { id: "slack-channel-signing-secret", name: "slack-channel-signing-secret", "aria-label": tI18nComplete.raw('text52594f72e6fc'), type: "password", value: signingSecret, onChange: (e) => setSigningSecret(e.target.value), placeholder: tI18nComplete.raw('text52594f72e6fc'), autoComplete: "off", spellCheck: false }) })] }), error ? _jsx(InfoBanner, { tone: "destructive", children: error }) : null, _jsx("div", { className: "flex justify-end", children: _jsxs(Button, { size: "sm", onClick: submit, disabled: connect.isPending || !botToken.trim() || !signingSecret.trim(), children: [connect.isPending ? _jsx(Loading, { className: "mr-2 size-3.5 shrink-0" }) : null, tI18nComplete.raw('text75b86fa11745')] }) })] })] })) : null] })] }));
|
|
585
|
+
}
|
|
586
|
+
function configToDraft(cfg) {
|
|
587
|
+
return {
|
|
588
|
+
slug: cfg.slug,
|
|
589
|
+
provider: cfg.provider,
|
|
590
|
+
platform: cfg.platform ?? undefined,
|
|
591
|
+
url: cfg.url ?? undefined,
|
|
592
|
+
transport: cfg.transport ?? undefined,
|
|
593
|
+
endpoint: cfg.endpoint ?? undefined,
|
|
594
|
+
baseUrl: cfg.baseUrl ?? undefined,
|
|
595
|
+
spec: cfg.spec ?? undefined,
|
|
596
|
+
auth: {
|
|
597
|
+
type: cfg.auth.type,
|
|
598
|
+
in: cfg.auth.in,
|
|
599
|
+
name: cfg.auth.name ?? undefined,
|
|
600
|
+
prefix: cfg.auth.prefix ?? undefined,
|
|
601
|
+
},
|
|
602
|
+
headers: cfg.headers ?? {},
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
function connectionSig(d) {
|
|
606
|
+
return JSON.stringify({
|
|
607
|
+
provider: d.provider,
|
|
608
|
+
platform: d.platform ?? '',
|
|
609
|
+
url: d.url ?? '',
|
|
610
|
+
transport: d.transport ?? '',
|
|
611
|
+
endpoint: d.endpoint ?? '',
|
|
612
|
+
baseUrl: d.baseUrl ?? '',
|
|
613
|
+
spec: d.spec ?? '',
|
|
614
|
+
auth: {
|
|
615
|
+
type: d.auth?.type ?? 'none',
|
|
616
|
+
in: d.auth?.in ?? 'header',
|
|
617
|
+
name: d.auth?.name ?? '',
|
|
618
|
+
prefix: d.auth?.prefix ?? '',
|
|
619
|
+
},
|
|
620
|
+
// Order matters: reordering headers IS an edit worth saving.
|
|
621
|
+
headers: Object.entries(d.headers ?? {}),
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
export function ConnectionSection({ projectId, connector, onChanged, canWrite = false, onSetCredential, }) {
|
|
625
|
+
const tI18nHardcoded = useTranslations('hardcodedUi');
|
|
626
|
+
const queryClient = useQueryClient();
|
|
627
|
+
const configQuery = useQuery({
|
|
628
|
+
queryKey: qk.project.connectorConfig(projectId, connector.slug),
|
|
629
|
+
queryFn: () => getConnectorConfig(projectId, connector.slug),
|
|
630
|
+
...contract('config'),
|
|
631
|
+
enabled: canWrite,
|
|
632
|
+
});
|
|
633
|
+
const [draft, setDraft] = useState(null);
|
|
634
|
+
const [savedSig, setSavedSig] = useState('');
|
|
635
|
+
useEffect(() => {
|
|
636
|
+
if (!configQuery.data)
|
|
637
|
+
return;
|
|
638
|
+
const d = configToDraft(configQuery.data);
|
|
639
|
+
setDraft(d);
|
|
640
|
+
setSavedSig(connectionSig(d));
|
|
641
|
+
}, [configQuery.data]);
|
|
642
|
+
const dirty = !!draft && connectionSig(draft) !== savedSig;
|
|
643
|
+
const reset = () => {
|
|
644
|
+
if (configQuery.data)
|
|
645
|
+
setDraft(configToDraft(configQuery.data));
|
|
646
|
+
};
|
|
647
|
+
const save = useMutation({
|
|
648
|
+
mutationFn: () => createConnector(projectId, {
|
|
649
|
+
...draft,
|
|
650
|
+
slug: connector.slug,
|
|
651
|
+
}),
|
|
652
|
+
onSuccess: () => {
|
|
653
|
+
successToast(tI18nHardcoded.raw('i18nComplete.text23922935b1f8'));
|
|
654
|
+
queryClient.invalidateQueries({
|
|
655
|
+
queryKey: qk.project.connectorConfig(projectId, connector.slug),
|
|
656
|
+
});
|
|
657
|
+
onChanged();
|
|
658
|
+
},
|
|
659
|
+
onError: (e) => errorToast(e.message || tI18nHardcoded.raw('i18nComplete.textf9581c8d3b47')),
|
|
660
|
+
});
|
|
661
|
+
return (_jsxs("section", { className: "space-y-4", children: [_jsx(Label, { children: tI18nHardcoded.raw('i18nComplete.text639a40e82b9a') }), _jsx("p", { className: "text-muted-foreground -mt-2 text-xs", children: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrDescriptionHowa31daf50') }), _jsx("div", { className: "bg-popover rounded-md border px-4 py-3", children: configQuery.isError ? (_jsx(InfoBanner, { tone: "destructive", title: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrTitleCouldn277b73a0'), action: _jsx(Button, { size: "sm", variant: "outline", onClick: () => configQuery.refetch(), children: tI18nHardcoded.raw('i18nComplete.text942087cc2d41') }), children: configQuery.error?.message ??
|
|
662
|
+
tI18nHardcoded.raw('i18nComplete.text27c2ccd962c2') })) : configQuery.isLoading || !draft ? (_jsxs("div", { className: "space-y-3", children: [_jsx(Skeleton, { className: "h-9 w-full rounded-md" }), _jsx(Skeleton, { className: "h-9 w-2/3 rounded-md" }), _jsx(Skeleton, { className: "h-9 w-full rounded-md" })] })) : (_jsxs("div", { className: "space-y-4", children: [_jsx(ConnectorConfigFields, { draft: draft, onChange: setDraft, readOnly: !canWrite }), connector.authorizationStrategy === 'project' &&
|
|
663
|
+
connector.authSecret &&
|
|
664
|
+
onSetCredential && (_jsxs("div", { className: "border-border/60 flex flex-wrap items-center justify-between gap-3 border-t pt-4", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-sm font-medium", children: tI18nHardcoded.raw('i18nComplete.textb1c42b3ce118') }), _jsx("p", { className: "text-muted-foreground text-xs", children: connector.secretSet
|
|
665
|
+
? tI18nHardcoded.raw('i18nComplete.text0b7bd1b43899')
|
|
666
|
+
: tI18nHardcoded.raw('i18nComplete.text44160e26b787') })] }), _jsx(Badge, { variant: connector.secretSet ? 'secondary' : 'outline', children: connector.secretSet
|
|
667
|
+
? 'Connected'
|
|
668
|
+
: tI18nHardcoded.raw('i18nComplete.text0303e1824670') })] })), canWrite && (_jsx(SaveBar, { dirty: dirty, saving: save.isPending, disabled: !connectionValid(draft), onSave: () => save.mutate(), onReset: reset, label: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrLabelSave8c6f945f') }))] })) })] }));
|
|
669
|
+
}
|
|
670
|
+
export function AddAppPanel({ projectId, emailChannelEnabled, discoverEnabled, existingSlugs, onAdded, canWrite = false, }) {
|
|
671
|
+
const tI18nHardcoded = useTranslations('hardcodedUi');
|
|
672
|
+
// Self-host without Pipedream configured (KORTIX_PUBLIC_CONNECTORS_ENABLED
|
|
673
|
+
// false) — hide Easy Connect while leaving Discover/direct sources available.
|
|
674
|
+
const { connectorsEnabled } = useUiHostConfig();
|
|
675
|
+
const connectStatus = useQuery({
|
|
676
|
+
queryKey: ['connect-status'],
|
|
677
|
+
queryFn: getConnectStatus,
|
|
678
|
+
staleTime: 5 * 60_000,
|
|
679
|
+
enabled: connectorsEnabled,
|
|
680
|
+
});
|
|
681
|
+
if (!canWrite) {
|
|
682
|
+
return (_jsx("div", { className: "mx-auto w-full max-w-2xl space-y-8", children: _jsx(EmptyState, { icon: Plug, title: tI18nHardcoded.raw('i18nComplete.text51ae0a7e3783'), description: tI18nHardcoded.raw('i18nComplete.text0bf59aef2b27') }) }));
|
|
683
|
+
}
|
|
684
|
+
const easyConnectHidden = !connectorsEnabled;
|
|
685
|
+
const easyConnectDisabled = easyConnectHidden || connectStatus.data?.configured === false;
|
|
686
|
+
const easyConnectLabel = tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextEasyConnect19ca1c01');
|
|
687
|
+
const defaultTab = !easyConnectDisabled ? 'apps' : discoverEnabled ? 'discover' : 'channels';
|
|
688
|
+
return (_jsxs("div", { className: "mx-auto w-full max-w-4xl space-y-6 p-4", children: [_jsx("header", { className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: _jsx("h2", { className: "text-foreground text-xl font-medium", children: tI18nHardcoded.raw('i18nComplete.text3a06bf051e48') }) }), _jsxs(Tabs, { defaultValue: defaultTab, children: [_jsxs(TabsList, { type: "underline", children: [easyConnectHidden ? null : easyConnectDisabled ? (_jsx(Hint, { label: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextEasyConnectc07266e0'), children: _jsx(TabsTrigger, { value: "apps", disabled: true, children: easyConnectLabel }) })) : (_jsx(TabsTrigger, { value: "apps", children: easyConnectLabel })), discoverEnabled && (_jsx(TabsTrigger, { value: "discover", children: tI18nHardcoded.raw('i18nComplete.textd4a33d5b78bc') })), _jsx(TabsTrigger, { value: "channels", children: tI18nHardcoded.raw('i18nComplete.text4c8906cf76f5') }), _jsx(TabsTrigger, { value: "custom", children: tI18nHardcoded.raw('i18nComplete.text494ca78f7374') })] }), !easyConnectDisabled && (_jsx(TabsContent, { value: "apps", className: "mt-4", children: _jsx(AppCatalogue, { projectId: projectId, existingSlugs: existingSlugs, onAdded: onAdded }) })), discoverEnabled && (_jsx(TabsContent, { value: "discover", className: "mt-4", children: _jsx(DiscoverCatalogue, { projectId: projectId, existingSlugs: existingSlugs, onAdded: onAdded }) })), _jsx(TabsContent, { value: "channels", className: "mt-4", children: _jsx(ChannelCatalogue, { projectId: projectId, emailChannelEnabled: emailChannelEnabled, onAdded: onAdded }) }), _jsx(TabsContent, { value: "custom", className: "mt-4", children: _jsx(CustomConnectorForm, { projectId: projectId, emailChannelEnabled: emailChannelEnabled, onAdded: onAdded }) })] })] }));
|
|
689
|
+
}
|
|
690
|
+
function ChannelCatalogue({ projectId, emailChannelEnabled, onAdded, }) {
|
|
691
|
+
return (_jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [emailChannelEnabled && _jsx(AddEmailConnectionCard, { projectId: projectId, onAdded: onAdded }), _jsx(AddSlackConnectionCard, { projectId: projectId, onAdded: onAdded })] }));
|
|
692
|
+
}
|
|
693
|
+
/**
|
|
694
|
+
* The real Slack logo — the single Slack mark used everywhere across the
|
|
695
|
+
* connectors + channels surface (catalogue cards, channel cards, connect flow),
|
|
696
|
+
* so Slack always reads as Slack and never as a generic glyph. Sized by
|
|
697
|
+
* `className`; defaults to `size-4`. It is the built-in four-color `Slack`
|
|
698
|
+
* icon: this used to fetch Slack's favicon from Google on every view, a blank
|
|
699
|
+
* tile on an install without internet.
|
|
700
|
+
*/
|
|
701
|
+
export function SlackLogo({ className }) {
|
|
702
|
+
return _jsx(Slack, { className: cn('size-4 shrink-0', className) });
|
|
703
|
+
}
|
|
704
|
+
function SlackIconTile() {
|
|
705
|
+
return (_jsx("span", { className: "border-border/60 bg-card relative flex size-6 shrink-0 items-center justify-center overflow-hidden rounded-sm border", children: _jsx(SlackLogo, { className: "size-3.5" }) }));
|
|
706
|
+
}
|
|
707
|
+
const CHANNEL_CATALOGUE_CARD_CLASS = 'group bg-popover hover:bg-muted/80 focus-visible:ring-primary/50 flex flex-col rounded-md border p-3.5 text-left transition-colors focus-visible:ring-2 focus-visible:outline-none';
|
|
708
|
+
function AddEmailConnectionCard({ projectId, onAdded, }) {
|
|
709
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
710
|
+
const [open, setOpen] = useState(false);
|
|
711
|
+
const [name, setName] = useState('Email inbox');
|
|
712
|
+
const [username, setUsername] = useState('');
|
|
713
|
+
const add = useMutation({
|
|
714
|
+
mutationFn: async () => {
|
|
715
|
+
const slug = buildEmailConnectorConnectionSlug(username || name, randomUUID());
|
|
716
|
+
const result = await createConnector(projectId, createOnlyConnectorDraft({
|
|
717
|
+
slug,
|
|
718
|
+
name: name.trim() || 'Email inbox',
|
|
719
|
+
provider: 'channel',
|
|
720
|
+
platform: 'email',
|
|
721
|
+
credential: 'shared',
|
|
722
|
+
}));
|
|
723
|
+
return { slug, syncError: connectorSyncErrorForSlug(result, slug) };
|
|
724
|
+
},
|
|
725
|
+
onSuccess: ({ slug, syncError }) => {
|
|
726
|
+
setOpen(false);
|
|
727
|
+
if (syncError) {
|
|
728
|
+
warningToast(tI18nComplete('text4e12058e58c1', { value0: syncError }));
|
|
729
|
+
onAdded();
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
successToast(tI18nComplete.raw('textd1dcd7a7bbec'));
|
|
733
|
+
onAdded(slug);
|
|
734
|
+
},
|
|
735
|
+
onError: (err) => errorToast(err.message || tI18nComplete.raw('text3df88e8f7ea6')),
|
|
736
|
+
});
|
|
737
|
+
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setOpen(true), className: CHANNEL_CATALOGUE_CARD_CLASS, children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(EntityAvatar, { icon: Mail, size: "sm" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-foreground truncate text-sm font-medium", children: tI18nComplete.raw('textf00606184e4d') }), _jsx("div", { className: "text-muted-foreground truncate text-xs", children: tI18nComplete.raw('text2283269ca150') })] })] }), _jsx("p", { className: "text-muted-foreground mt-2 line-clamp-2 min-h-[2rem] text-xs leading-relaxed", children: tI18nComplete.raw('text3b61c181f516') })] }), _jsx(Modal, { open: open, onOpenChange: (next) => !add.isPending && setOpen(next), children: _jsxs(ModalContent, { className: "lg:max-w-md", children: [_jsxs(ModalHeader, { children: [_jsx(ModalTitle, { children: tI18nComplete.raw('text2b47dcc33a2a') }), _jsx(ModalDescription, { children: tI18nComplete.raw('text630694bd2dec') })] }), _jsxs(ModalBody, { className: "max-h-[60vh] space-y-4 overflow-y-auto", children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "email-connection-name", children: tI18nComplete.raw('text2b7f6a84de91') }), _jsx(Input, { id: "email-connection-name", name: "email-connection-name", value: name, onChange: (e) => setName(e.target.value), placeholder: tI18nComplete.raw('text945ce03ec79f') })] }), _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "email-connection-prefix", children: tI18nComplete.raw('text4e6946711ca8') }), _jsx(Input, { id: "email-connection-prefix", name: "email-connection-prefix", value: username, onChange: (e) => setUsername(e.target.value.toLowerCase().replace(/[^a-z0-9._-]/g, '')), placeholder: tI18nComplete.raw('texta18603086e5b'), autoComplete: "off", spellCheck: false }), _jsx("p", { className: "text-muted-foreground text-xs", children: tI18nComplete.raw('text2549e14d07c9') })] })] }), _jsxs(ModalFooter, { className: "sm:justify-between", children: [_jsx(Button, { variant: "outline-ghost", onClick: () => setOpen(false), disabled: add.isPending, children: tI18nComplete.raw('text19766ed6ccb2') }), _jsxs(Button, { onClick: () => add.mutate(), disabled: add.isPending, className: "gap-1.5", children: [add.isPending ? _jsx(Loading, { className: "size-4 shrink-0" }) : null, tI18nComplete.raw('text8dff8c0800fd')] })] })] }) })] }));
|
|
738
|
+
}
|
|
739
|
+
function AddSlackConnectionCard({ projectId, onAdded, }) {
|
|
740
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
741
|
+
const [open, setOpen] = useState(false);
|
|
742
|
+
const handleConnected = () => {
|
|
743
|
+
successToast(tI18nComplete.raw('text1bfa15228ca8'));
|
|
744
|
+
setOpen(false);
|
|
745
|
+
onAdded('kortix_slack');
|
|
746
|
+
};
|
|
747
|
+
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setOpen(true), className: CHANNEL_CATALOGUE_CARD_CLASS, children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(SlackIconTile, {}), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-foreground truncate text-sm font-medium", children: tI18nComplete.raw('textb27fb38ba323') }), _jsx("div", { className: "text-muted-foreground truncate text-xs", children: tI18nComplete.raw('textbbbf43b8819c') })] })] }), _jsx("p", { className: "text-muted-foreground mt-2 line-clamp-2 min-h-[2rem] text-xs leading-relaxed", children: tI18nComplete.raw('text43b4b568012f') })] }), _jsx(Modal, { open: open, onOpenChange: setOpen, children: _jsxs(ModalContent, { className: "lg:max-w-2xl", children: [_jsxs(ModalHeader, { children: [_jsx(ModalTitle, { children: tI18nComplete.raw('text62da6a2b1758') }), _jsx(ModalDescription, { children: tI18nComplete.raw('text8b5b9b72f2ec') })] }), _jsx(ModalBody, { className: "max-h-[60vh] overflow-y-auto", children: _jsx(SlackConnectForm, { projectId: projectId, onConnected: handleConnected }) })] }) })] }));
|
|
748
|
+
}
|
|
749
|
+
/** Easy-connect app catalogue — searchable card grid with "Load more". */
|
|
750
|
+
function AppCatalogue({ projectId, existingSlugs, onAdded, }) {
|
|
751
|
+
const tI18nHardcoded = useTranslations('hardcodedUi');
|
|
752
|
+
const [q, setQ] = useState('');
|
|
753
|
+
const [selectedApp, setSelectedApp] = useState(null);
|
|
754
|
+
const appsQuery = useInfiniteQuery({
|
|
755
|
+
queryKey: ['easy-connect-apps', projectId, q],
|
|
756
|
+
queryFn: ({ pageParam }) => listPipedreamApps(projectId, q || undefined, pageParam),
|
|
757
|
+
initialPageParam: undefined,
|
|
758
|
+
getNextPageParam: (last) => (last.hasMore ? last.nextCursor : undefined),
|
|
759
|
+
staleTime: 60_000,
|
|
760
|
+
});
|
|
761
|
+
const apps = (appsQuery.data?.pages ?? []).flatMap((p) => p.apps);
|
|
762
|
+
const visibleApps = apps.filter((app) => !BUILT_IN_CHANNEL_APP_SLUGS.has(app.slug));
|
|
763
|
+
const notConfigured = appsQuery.isError && /501|not configured/i.test(appsQuery.error?.message ?? '');
|
|
764
|
+
const addApp = useMutation({
|
|
765
|
+
mutationFn: async (connector) => {
|
|
766
|
+
if (!selectedApp)
|
|
767
|
+
throw new Error('Select an app');
|
|
768
|
+
const draft = buildEasyConnectConnectorDraft(selectedApp, connector);
|
|
769
|
+
const result = await createConnector(projectId, draft);
|
|
770
|
+
return {
|
|
771
|
+
name: draft.name ?? selectedApp.name,
|
|
772
|
+
slug: draft.slug,
|
|
773
|
+
syncError: connectorSyncErrorForSlug(result, draft.slug),
|
|
774
|
+
};
|
|
775
|
+
},
|
|
776
|
+
onSuccess: (connector) => {
|
|
777
|
+
setSelectedApp(null);
|
|
778
|
+
if (connector.syncError) {
|
|
779
|
+
warningToast(tI18nHardcoded('i18nComplete.textd6a135de3872', {
|
|
780
|
+
value0: connector.name,
|
|
781
|
+
value1: connector.syncError,
|
|
782
|
+
}));
|
|
783
|
+
onAdded();
|
|
784
|
+
return;
|
|
785
|
+
}
|
|
786
|
+
successToast(tI18nHardcoded('i18nComplete.text590d36262e11', { value0: connector.name }));
|
|
787
|
+
onAdded(connector.slug);
|
|
788
|
+
},
|
|
789
|
+
onError: (err) => errorToast(err.message || tI18nHardcoded.raw('i18nComplete.texta34a2714da91')),
|
|
790
|
+
});
|
|
791
|
+
return (_jsxs("div", { children: [_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2" }), _jsx(Input, { value: q, onChange: (e) => setQ(e.target.value), placeholder: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrPlaceholderSearch9d26aaaa'), variant: "popover", className: "pl-9" })] }), _jsx("div", { className: "overflow-y-auto py-4", children: notConfigured ? (_jsx(InfoBanner, { tone: "neutral", title: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrTitleEasy58e9c7b1'), children: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextEasyConnectc07266e0') })) : appsQuery.isLoading ? (_jsx("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4", children: Array.from({ length: 12 }).map((_, i) => (_jsx(Skeleton, { className: "h-[104px] w-full rounded-md" }, i))) })) : visibleApps.length === 0 ? (_jsx(EmptyState, { icon: Search, title: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrTitleNof8067eda'), description: q
|
|
792
|
+
? tI18nHardcoded('i18nComplete.text3e71adfa7d54', { value0: q })
|
|
793
|
+
: tI18nHardcoded.raw('i18nComplete.textecbd276ebec2') })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-4", children: visibleApps.map((app) => (_jsxs("button", { type: "button", disabled: addApp.isPending, onClick: () => setSelectedApp(app), className: "group bg-popover hover:bg-muted/80 focus-visible:ring-primary/50 flex flex-col rounded-md border p-3.5 text-left transition-colors focus-visible:ring-2 focus-visible:outline-none disabled:opacity-60", children: [_jsxs("div", { className: "flex items-center gap-3", children: [app.imgSrc ? (_jsx(Image, { src: app.imgSrc, alt: "", width: 36, height: 36, className: "size-8 shrink-0 rounded-md object-contain", referrerPolicy: "no-referrer", unoptimized: true })) : (_jsx(EntityAvatar, { icon: Zap, size: "sm" })), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-foreground truncate text-sm font-medium", children: app.name }), app.categories?.[0] && (_jsx("div", { className: "text-muted-foreground truncate text-xs", children: app.categories[0] }))] }), _jsx(Plus, { className: "text-muted-foreground group-hover:text-primary size-4 shrink-0 transition-colors" })] }), _jsx("p", { className: "text-muted-foreground mt-2 line-clamp-2 min-h-[2rem] text-xs leading-relaxed", children: app.description ?? ' ' })] }, app.slug))) }), appsQuery.hasNextPage && (_jsx("div", { className: "flex justify-center pt-5", children: _jsx(Button, { variant: "outline", size: "sm", onClick: () => appsQuery.fetchNextPage(), disabled: appsQuery.isFetchingNextPage, className: "h-9 px-8", children: appsQuery.isFetchingNextPage ? (_jsxs(_Fragment, { children: [_jsx(Loading, { className: "size-4 shrink-0" }), tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextLoading7131cc18')] })) : (tI18nHardcoded.raw('i18nComplete.textac8991ef0101')) }) }))] })) }), _jsx(ConnectorConnectionModal, { open: selectedApp !== null, idPrefix: "easy-connect-connector", title: `Add ${selectedApp?.name ?? 'app'}`, description: tI18nHardcoded.raw('i18nComplete.text6acbef3d00c7'), initialName: selectedApp?.name ?? '', initialSlug: selectedApp ? proposeConnectorConnectionSlug(selectedApp.name, existingSlugs) : '', existingSlugs: existingSlugs, pending: addApp.isPending, onOpenChange: (open) => !open && setSelectedApp(null), onSubmit: (connector) => addApp.mutate(connector) })] }));
|
|
794
|
+
}
|
|
795
|
+
/**
|
|
796
|
+
* Slugify the source document's own name — OpenAPI `info.title`, Postman
|
|
797
|
+
* `info.name` — so adding a spec proposes the slug the API calls itself
|
|
798
|
+
* ("Kortix WhatsApp Gateway" → `kortix-whatsapp-gateway`). Derived from the
|
|
799
|
+
* document rather than its URL: a hostname is a guess, a title is a statement.
|
|
800
|
+
*/
|
|
801
|
+
function slugFromTitle(title) {
|
|
802
|
+
return (title ?? '')
|
|
803
|
+
.trim()
|
|
804
|
+
.toLowerCase()
|
|
805
|
+
.replace(/[^a-z0-9_-]+/g, '-')
|
|
806
|
+
.replace(/^-+|-+$/g, '')
|
|
807
|
+
.slice(0, 64)
|
|
808
|
+
.replace(/-+$/g, '');
|
|
809
|
+
}
|
|
810
|
+
/**
|
|
811
|
+
* Postman-style static header table. Any header, any value, sent on every call
|
|
812
|
+
* this connector makes. Kept as ordered rows (not an object) while editing so a
|
|
813
|
+
* half-typed or duplicate name doesn't silently drop a row out from under the
|
|
814
|
+
* user — the object is only rebuilt on the way out.
|
|
815
|
+
*/
|
|
816
|
+
function HeadersEditor({ value, onChange, readOnly, authHeaderName, }) {
|
|
817
|
+
const tI18nComplete = useTranslations('hardcodedUi.i18nComplete');
|
|
818
|
+
const [rows, setRows] = useState(() => Object.entries(value));
|
|
819
|
+
// Re-seed only when the saved value genuinely differs from what we're showing,
|
|
820
|
+
// so a refetch can't wipe a row the user is mid-way through typing.
|
|
821
|
+
const [initialSeed] = useState(() => JSON.stringify(Object.entries(value)));
|
|
822
|
+
const seeded = useRef(initialSeed);
|
|
823
|
+
useEffect(() => {
|
|
824
|
+
const incoming = JSON.stringify(Object.entries(value));
|
|
825
|
+
if (incoming !== seeded.current && incoming !== JSON.stringify(rows)) {
|
|
826
|
+
seeded.current = incoming;
|
|
827
|
+
setRows(Object.entries(value));
|
|
828
|
+
}
|
|
829
|
+
}, [value, rows]);
|
|
830
|
+
const commit = (next) => {
|
|
831
|
+
setRows(next);
|
|
832
|
+
const out = {};
|
|
833
|
+
for (const [k, v] of next) {
|
|
834
|
+
const name = k.trim();
|
|
835
|
+
if (name)
|
|
836
|
+
out[name] = v;
|
|
837
|
+
}
|
|
838
|
+
seeded.current = JSON.stringify(Object.entries(out));
|
|
839
|
+
onChange(out);
|
|
840
|
+
};
|
|
841
|
+
const nameError = (name, index) => {
|
|
842
|
+
const trimmed = name.trim();
|
|
843
|
+
if (!trimmed)
|
|
844
|
+
return null;
|
|
845
|
+
if (!/^[A-Za-z0-9!#$%&'*+.^_`|~-]+$/.test(trimmed))
|
|
846
|
+
return 'Not a valid header name';
|
|
847
|
+
if (trimmed.length > 128)
|
|
848
|
+
return 'Too long (max 128)';
|
|
849
|
+
if (authHeaderName && trimmed.toLowerCase() === authHeaderName.toLowerCase()) {
|
|
850
|
+
return 'Reserved for the credential — the auth header always wins';
|
|
851
|
+
}
|
|
852
|
+
const dupe = rows.some(([other], i) => i !== index && other.trim().toLowerCase() === trimmed.toLowerCase());
|
|
853
|
+
return dupe ? 'Duplicate header name' : null;
|
|
854
|
+
};
|
|
855
|
+
return (_jsxs(Field, { children: [_jsx(FieldLabel, { children: tI18nComplete.raw('text194e9fe656a1') }), _jsxs("div", { className: "space-y-2", children: [rows.map(([name, val], i) => {
|
|
856
|
+
const err = nameError(name, i);
|
|
857
|
+
return (
|
|
858
|
+
// Rows are positional and freely reorderable, so the index IS the identity.
|
|
859
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: positional rows
|
|
860
|
+
_jsxs("div", { className: "space-y-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Input, { value: name, onChange: (e) => commit(rows.map((r, j) => (j === i ? [e.target.value, r[1]] : r))), placeholder: tI18nComplete.raw('text1447557b9c1e'), className: "font-mono text-xs", variant: "popover", disabled: readOnly, "aria-invalid": !!err }), _jsx(Input, { value: val, onChange: (e) => commit(rows.map((r, j) => (j === i ? [r[0], e.target.value] : r))), placeholder: tI18nComplete.raw('text822b33ad87c1'), className: "font-mono text-xs", variant: "popover", disabled: readOnly }), !readOnly && (_jsx(Button, { type: "button", size: "icon", variant: "ghost", className: "shrink-0", "aria-label": tI18nComplete.raw('texte42db5eb1789'), onClick: () => commit(rows.filter((_, j) => j !== i)), children: _jsx(X, { className: "size-4" }) }))] }), err && _jsx("p", { className: "text-destructive text-xs", children: err })] }, i));
|
|
861
|
+
}), !readOnly && rows.length < 32 && (_jsxs(Button, { type: "button", size: "sm", variant: "outline", className: "gap-1.5", onClick: () => setRows([...rows, ['', '']]), children: [_jsx(Plus, { className: "size-3.5" }), " ", tI18nComplete.raw('text1192c90dd497')] }))] }), _jsx(FieldDescription, { children: tI18nComplete.raw('text3ca228539c82') })] }));
|
|
862
|
+
}
|
|
863
|
+
function ConnectorConfigFields({ draft, onChange, slugEditable, emailChannelEnabled = true, readOnly = false, detectedAuth = null, detectedTitle = null, oauth2Selected = false, onOAuth2SelectedChange, }) {
|
|
864
|
+
const tI18nHardcoded = useTranslations('hardcodedUi');
|
|
865
|
+
// Once the slug is typed in by hand, never overwrite it from the source again.
|
|
866
|
+
const slugTouched = useRef(false);
|
|
867
|
+
// An MCP server answers 401 before it names itself: fall back to the
|
|
868
|
+
// URL's domain (`https://api.acme.ai/mcp` → `acme`).
|
|
869
|
+
const sourceUrl = draft.url ?? draft.endpoint ?? draft.baseUrl ?? draft.spec ?? '';
|
|
870
|
+
const suggestedSlug = slugFromTitle(detectedTitle) || (sourceUrl ? (mcpServerIdentity(sourceUrl, [])?.slug ?? '') : '');
|
|
871
|
+
useEffect(() => {
|
|
872
|
+
// Follows the source until the user types a slug. Editing an existing
|
|
873
|
+
// connector (slugEditable false) is never touched.
|
|
874
|
+
if (!slugEditable || readOnly || slugTouched.current)
|
|
875
|
+
return;
|
|
876
|
+
if (!suggestedSlug || draft.slug === suggestedSlug)
|
|
877
|
+
return;
|
|
878
|
+
onChange({ ...draft, slug: suggestedSlug });
|
|
879
|
+
}, [suggestedSlug, slugEditable, readOnly, draft, onChange]);
|
|
880
|
+
const set = (patch) => onChange({ ...draft, ...patch });
|
|
881
|
+
const setAuth = (patch) => onChange({ ...draft, auth: { ...draft.auth, ...patch } });
|
|
882
|
+
const p = draft.provider;
|
|
883
|
+
const needsAuth = p !== 'pipedream' && p !== 'channel' && p !== 'computer';
|
|
884
|
+
return (_jsxs(FieldGroup, { className: "gap-4", children: [_jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-slug", children: tI18nHardcoded.raw('i18nComplete.textd15387ecc6c5') }), _jsx(Input, { id: "connector-slug", value: draft.slug, onChange: (e) => {
|
|
885
|
+
slugTouched.current = true;
|
|
886
|
+
set({ slug: e.target.value.toLowerCase().replace(/[^a-z0-9_-]/g, '-') });
|
|
887
|
+
}, placeholder: tI18nHardcoded.raw('i18nComplete.text9696f2b4e020'), className: "font-mono text-xs", variant: "popover", disabled: !slugEditable || readOnly, required: true })] }), _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-provider", children: tI18nHardcoded.raw('i18nComplete.text472590ae974d') }), _jsxs(Select, { value: p, disabled: readOnly, onValueChange: (v) => {
|
|
888
|
+
const provider = v;
|
|
889
|
+
set({
|
|
890
|
+
provider,
|
|
891
|
+
platform: provider === 'channel'
|
|
892
|
+
? draft.platform === 'email' && !emailChannelEnabled
|
|
893
|
+
? 'slack'
|
|
894
|
+
: (draft.platform ?? (emailChannelEnabled ? 'email' : 'slack'))
|
|
895
|
+
: undefined,
|
|
896
|
+
auth: provider === 'channel'
|
|
897
|
+
? { type: 'none' }
|
|
898
|
+
: p === 'channel'
|
|
899
|
+
? undefined
|
|
900
|
+
: draft.auth,
|
|
901
|
+
});
|
|
902
|
+
}, children: [_jsx(SelectTrigger, { id: "connector-provider", className: "w-full", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "openapi", children: tI18nHardcoded.raw('i18nComplete.textcf2c9e218033') }), _jsx(SelectItem, { value: "postman", children: tI18nHardcoded.raw('i18nComplete.text213985e12832') }), _jsx(SelectItem, { value: "graphql", children: tI18nHardcoded.raw('i18nComplete.textee27322554e4') }), _jsx(SelectItem, { value: "mcp", children: "MCP" }), _jsx(SelectItem, { value: "http", children: "HTTP" }), _jsx(SelectItem, { value: "channel", children: tI18nHardcoded.raw('i18nComplete.textce4683e7013a') })] })] })] })] }), p === 'channel' && (_jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { children: tI18nHardcoded.raw('i18nComplete.textce4683e7013a') }), _jsxs(Select, { value: draft.platform === 'email' && !emailChannelEnabled
|
|
903
|
+
? 'slack'
|
|
904
|
+
: (draft.platform ?? (emailChannelEnabled ? 'email' : 'slack')), disabled: readOnly, onValueChange: (v) => set({ platform: v, auth: { type: 'none' } }), children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [emailChannelEnabled && (_jsx(SelectItem, { value: "email", children: tI18nHardcoded.raw('i18nComplete.text969ccbd3cf63') })), _jsx(SelectItem, { value: "slack", children: tI18nHardcoded.raw('i18nComplete.textb27fb38ba323') })] })] })] })), (p === 'openapi' || p === 'postman') && (_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-spec", children: p === 'postman'
|
|
905
|
+
? tI18nHardcoded.raw('i18nComplete.textcd8dd219cc48')
|
|
906
|
+
: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrLabelSpec4235864d') }), _jsx(Input, { id: "connector-spec", value: draft.spec ?? '', onChange: (e) => set({ spec: e.target.value }), placeholder: p === 'postman' ? 'https://github.com/… or collection.json' : 'https://…/openapi.json', variant: "popover", disabled: readOnly, required: true }), p === 'postman' ? (_jsx(FieldDescription, { children: tI18nHardcoded.raw('i18nComplete.textc26ca4369200') })) : null] })), p === 'graphql' && (_jsxs(_Fragment, { children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-endpoint", children: tI18nHardcoded.raw('i18nComplete.text3df9726c68ba') }), _jsx(Input, { id: "connector-endpoint", value: draft.endpoint ?? '', onChange: (e) => set({ endpoint: e.target.value }), placeholder: "https://api/graphql", variant: "popover", disabled: readOnly, required: true })] }), _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-sdl", children: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrLabelSDL2325b707') }), _jsx(Input, { id: "connector-sdl", value: draft.spec ?? '', onChange: (e) => set({ spec: e.target.value }), placeholder: tI18nHardcoded.raw('i18nComplete.textecccd43d1878'), variant: "popover", disabled: readOnly })] })] })), p === 'mcp' && (_jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-url", children: "URL" }), _jsx(Input, { id: "connector-url", value: draft.url ?? '', onChange: (e) => set({ url: e.target.value }), placeholder: "https://mcp\u2026/mcp", variant: "popover", disabled: readOnly, required: true })] }), _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-transport", children: tI18nHardcoded.raw('i18nComplete.textaaead4abf5d0') }), _jsxs(Select, { value: draft.transport ?? 'http', disabled: readOnly, onValueChange: (v) => set({ transport: v }), children: [_jsx(SelectTrigger, { id: "connector-transport", className: "w-full", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "http", children: tI18nHardcoded.raw('i18nComplete.texte0603c499aae') }), _jsx(SelectItem, { value: "sse", children: tI18nHardcoded.raw('i18nComplete.textfe3811fe21af') })] })] })] })] })), p === 'http' && (_jsxs(_Fragment, { children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-base-url", children: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrLabelBase744ecef9') }), _jsx(Input, { id: "connector-base-url", value: draft.baseUrl ?? '', onChange: (e) => set({ baseUrl: e.target.value }), placeholder: "https://api.internal", variant: "popover", disabled: readOnly, required: true })] }), _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-routes", children: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxAttrLabelRoutes38b14436') }), _jsx(Input, { id: "connector-routes", value: draft.spec ?? '', onChange: (e) => set({ spec: e.target.value }), placeholder: tI18nHardcoded.raw('i18nComplete.textb2c293b68745'), variant: "popover", disabled: readOnly })] })] })), needsAuth && (_jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-auth", children: tI18nHardcoded.raw('i18nComplete.text8eb3ea9bbde6') }), _jsxs(Select, { value: oauth2Selected ? 'oauth2_client_credentials' : (draft.auth?.type ?? 'auto'), disabled: readOnly, onValueChange: (v) => {
|
|
907
|
+
if (v === 'oauth2_client_credentials') {
|
|
908
|
+
onOAuth2SelectedChange?.(true);
|
|
909
|
+
set({ auth: { type: 'bearer' } });
|
|
910
|
+
return;
|
|
911
|
+
}
|
|
912
|
+
onOAuth2SelectedChange?.(false);
|
|
913
|
+
if (v === 'auto')
|
|
914
|
+
set({ auth: undefined });
|
|
915
|
+
else
|
|
916
|
+
setAuth({ type: v });
|
|
917
|
+
}, children: [_jsx(SelectTrigger, { id: "connector-auth", className: "w-full", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "auto", children: tI18nHardcoded.raw('i18nComplete.text89ebfb7a88ca') }), _jsx(SelectItem, { value: "none", children: tI18nHardcoded.raw('i18nComplete.textdc937b598926') }), _jsx(SelectItem, { value: "bearer", children: tI18nHardcoded.raw('i18nComplete.text710e0dbdd422') }), _jsx(SelectItem, { value: "basic", children: tI18nHardcoded.raw('i18nComplete.text0e35f6e9742e') }), _jsx(SelectItem, { value: "api_key", children: tI18nHardcoded.raw('i18nComplete.text16f0ee47f993') }), onOAuth2SelectedChange && (_jsx(SelectItem, { value: "oauth2_client_credentials", children: tI18nHardcoded.raw('i18nComplete.textaebabad39063') })), _jsx(SelectItem, { value: "oauth1", children: tI18nHardcoded.raw('i18nComplete.textf461c90d16f6') }), _jsx(SelectItem, { value: "hmac", children: tI18nHardcoded.raw('i18nComplete.textf9a4ecea0836') }), _jsx(SelectItem, { value: "aws_sigv4", children: tI18nHardcoded.raw('i18nComplete.text1746a52157af') }), _jsx(SelectItem, { value: "mtls", children: tI18nHardcoded.raw('i18nComplete.textd0dd76e23558') }), _jsx(SelectItem, { value: "custom", children: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextCustomHeader1e0e82ed') })] })] }), _jsx(FieldDescription, { children: oauth2Selected ? (tI18nHardcoded.raw('i18nComplete.text80770d26537b')) : draft.auth === undefined && detectedAuth ? (_jsxs(_Fragment, { children: [tI18nHardcoded.raw('i18nComplete.text756a8ba97dce'), ' ', _jsx("span", { className: "font-medium", children: detectedAuth.type }), detectedAuth.parameterName ? (_jsxs(_Fragment, { children: [' ', tI18nHardcoded.raw('i18nComplete.text4d327af41f96'), ' ', _jsx("code", { className: "bg-muted rounded-sm px-1 py-0.5 font-mono text-xs", children: detectedAuth.parameterName })] })) : null, tI18nHardcoded.raw('i18nComplete.text5c48a6568d59')] })) : (tI18nHardcoded.raw('i18nComplete.text566a18d73a39')) })] }), draft.auth === undefined && detectedAuth?.parameterName && (_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-auth-detected", children: tI18nHardcoded.raw('i18nComplete.textc1dcc8fb31f6') }), _jsx(Input, { id: "connector-auth-detected", value: detectedAuth.parameterName, readOnly: true, variant: "popover", className: "font-mono text-xs" }), _jsx(FieldDescription, { children: tI18nHardcoded.raw('i18nComplete.text46c6aec94116') })] })), (draft.auth?.type === 'custom' || draft.auth?.type === 'api_key') && (_jsxs(_Fragment, { children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-auth-name", children: tI18nHardcoded.raw('i18nComplete.textd7cb455aa690') }), _jsx(Input, { id: "connector-auth-name", value: draft.auth?.name ?? '', onChange: (e) => setAuth({ name: e.target.value }), placeholder: tI18nHardcoded.raw('i18nComplete.text6f9f03f95e78'), variant: "popover", disabled: readOnly, required: true })] }), _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-auth-placement", children: tI18nHardcoded.raw('i18nComplete.text4df9939944a7') }), _jsxs(Select, { value: draft.auth?.in ?? 'header', disabled: readOnly, onValueChange: (placement) => setAuth({ in: placement }), children: [_jsx(SelectTrigger, { id: "connector-auth-placement", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "header", children: tI18nHardcoded.raw('i18nComplete.textba5caa4285a8') }), _jsx(SelectItem, { value: "query", children: tI18nHardcoded.raw('i18nComplete.textb80a37564fbb') }), _jsx(SelectItem, { value: "cookie", children: tI18nHardcoded.raw('i18nComplete.text45823eaac0c8') })] })] })] })] }))] })), needsAuth && (_jsx(HeadersEditor, { value: draft.headers ?? {}, onChange: (headers) => set({ headers }), readOnly: readOnly, authHeaderName: draft.auth?.type === 'custom' ? draft.auth?.name : detectedAuth?.parameterName }))] }));
|
|
918
|
+
}
|
|
919
|
+
function connectionValid(d, emailChannelEnabled = true) {
|
|
920
|
+
if ((d.auth?.type === 'custom' || d.auth?.type === 'api_key') && !d.auth.name?.trim()) {
|
|
921
|
+
return false;
|
|
922
|
+
}
|
|
923
|
+
if (d.provider === 'mcp')
|
|
924
|
+
return !!d.url?.trim();
|
|
925
|
+
if (d.provider === 'openapi')
|
|
926
|
+
return !!d.spec?.trim();
|
|
927
|
+
if (d.provider === 'postman')
|
|
928
|
+
return !!d.spec?.trim();
|
|
929
|
+
if (d.provider === 'graphql')
|
|
930
|
+
return !!d.endpoint?.trim();
|
|
931
|
+
if (d.provider === 'http')
|
|
932
|
+
return !!d.baseUrl?.trim();
|
|
933
|
+
if (d.provider === 'channel') {
|
|
934
|
+
return d.platform === 'slack' || (emailChannelEnabled && d.platform === 'email');
|
|
935
|
+
}
|
|
936
|
+
return true;
|
|
937
|
+
}
|
|
938
|
+
export function CustomConnectorForm({ projectId, emailChannelEnabled, onAdded, }) {
|
|
939
|
+
const tI18nHardcoded = useTranslations('hardcodedUi');
|
|
940
|
+
const [draft, setDraft] = useState({
|
|
941
|
+
slug: '',
|
|
942
|
+
provider: 'openapi',
|
|
943
|
+
});
|
|
944
|
+
const [oauth2Selected, setOauth2Selected] = useState(false);
|
|
945
|
+
const [oauth2, setOauth2] = useState(EMPTY_OAUTH2_CREDENTIAL_FORM);
|
|
946
|
+
const [discoveryDraft, setDiscoveryDraft] = useState(draft);
|
|
947
|
+
useEffect(() => {
|
|
948
|
+
const timer = window.setTimeout(() => setDiscoveryDraft(draft), 400);
|
|
949
|
+
return () => window.clearTimeout(timer);
|
|
950
|
+
}, [draft]);
|
|
951
|
+
useEffect(() => {
|
|
952
|
+
if (!emailChannelEnabled && draft.provider === 'channel' && draft.platform === 'email') {
|
|
953
|
+
setDraft((current) => ({ ...current, platform: 'slack' }));
|
|
954
|
+
}
|
|
955
|
+
}, [draft.platform, draft.provider, emailChannelEnabled]);
|
|
956
|
+
useEffect(() => {
|
|
957
|
+
// Channel connectors have no OAuth2-at-creation offer.
|
|
958
|
+
if (draft.provider === 'channel' && oauth2Selected) {
|
|
959
|
+
setOauth2Selected(false);
|
|
960
|
+
}
|
|
961
|
+
}, [draft.provider, oauth2Selected]);
|
|
962
|
+
const save = useCreateCustomConnector(projectId, onAdded);
|
|
963
|
+
const discovery = useQuery({
|
|
964
|
+
queryKey: ['connector-auth-discovery', projectId, discoveryDraft],
|
|
965
|
+
queryFn: () => discoverConnectorAuth(projectId, discoveryDraft),
|
|
966
|
+
enabled: discoveryDraft.auth === undefined &&
|
|
967
|
+
connectionValid(discoveryDraft, emailChannelEnabled) &&
|
|
968
|
+
discoveryDraft.provider !== 'channel' &&
|
|
969
|
+
discoveryDraft.provider !== 'pipedream' &&
|
|
970
|
+
discoveryDraft.provider !== 'computer',
|
|
971
|
+
retry: false,
|
|
972
|
+
});
|
|
973
|
+
const authActive = !!draft.auth?.type && draft.auth.type !== 'none';
|
|
974
|
+
return (_jsx("section", { className: "space-y-4", children: _jsx("form", { onSubmit: (e) => {
|
|
975
|
+
e.preventDefault();
|
|
976
|
+
if (oauth2Selected && !oauth2CredentialFormValid(oauth2))
|
|
977
|
+
return;
|
|
978
|
+
save.mutate({ draft, oauth2: oauth2Selected ? oauth2 : null });
|
|
979
|
+
}, children: _jsxs("div", { className: "space-y-5", children: [_jsx(ConnectorConfigFields, { draft: draft, onChange: setDraft, slugEditable: true, emailChannelEnabled: emailChannelEnabled, detectedAuth: discovery.data?.recommended
|
|
980
|
+
? {
|
|
981
|
+
type: discovery.data.recommended.type,
|
|
982
|
+
parameterName: discovery.data.candidates[0]?.parameterName ?? null,
|
|
983
|
+
}
|
|
984
|
+
: null, detectedTitle: discovery.data?.title ?? null, oauth2Selected: oauth2Selected, onOAuth2SelectedChange: setOauth2Selected }), oauth2Selected && (_jsxs("div", { className: "space-y-4", children: [_jsx(InfoBanner, { tone: "info", title: tI18nHardcoded.raw('i18nComplete.textc2a08c85f9d8'), children: tI18nHardcoded.raw('i18nComplete.text9dedee588b5e') }), _jsx(OAuth2CredentialFields, { value: oauth2, onChange: setOauth2, idPrefix: "new-connector-oauth2" })] })), draft.auth === undefined && discovery.isFetching && (_jsx(InfoBanner, { tone: "info", children: tI18nHardcoded.raw('i18nComplete.text0fc5f970755c') })), draft.auth === undefined && discovery.data?.status === 'none' && (_jsx(InfoBanner, { tone: "neutral", children: tI18nHardcoded.raw('i18nComplete.textcec52b040075') })), draft.auth === undefined && discovery.data?.status === 'unsupported' && (_jsx(InfoBanner, { tone: "warning", children: tI18nHardcoded.raw('i18nComplete.text028f0773776c') })), draft.auth === undefined && discovery.error && (_jsxs(InfoBanner, { tone: "warning", children: [tI18nHardcoded.raw('i18nComplete.textf26a5845c994'), ' ', discovery.error.message] })), authActive && !oauth2Selected && (_jsx(InfoBanner, { tone: "info", children: tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextYouLle5def626') })), _jsx("div", { className: "border-border/60 flex justify-end border-t pt-5", children: _jsxs(Button, { type: "submit", size: "sm", disabled: !draft.slug ||
|
|
985
|
+
save.isPending ||
|
|
986
|
+
!connectionValid(draft, emailChannelEnabled) ||
|
|
987
|
+
(oauth2Selected && !oauth2CredentialFormValid(oauth2)), className: "gap-1.5", children: [save.isPending && _jsx(Loading, { className: "size-4 shrink-0" }), tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextAddConnectore01e22fc')] }) })] }) }) }));
|
|
988
|
+
}
|
|
989
|
+
export function SetCredentialModal({ projectId, connector, connectionId, owner, open, onOpenChange, onSaved, shell = 'modal', }) {
|
|
990
|
+
const tI18nHardcoded = useTranslations('hardcodedUi');
|
|
991
|
+
/**
|
|
992
|
+
* `null` until the user picks a tab. The effective tab is then derived from
|
|
993
|
+
* discovery, so a server that supports one-click OAuth opens on OAuth and a
|
|
994
|
+
* plain API needs no detour through a grant selector.
|
|
995
|
+
*/
|
|
996
|
+
const [credentialTypeChoice, setCredentialTypeChoice] = useState(null);
|
|
997
|
+
const [value, setValue] = useState('');
|
|
998
|
+
const [oauth2, setOauth2] = useState(EMPTY_OAUTH2_CREDENTIAL_FORM);
|
|
999
|
+
const [application, setApplication] = useState(EMPTY_OAUTH2_APPLICATION_FORM);
|
|
1000
|
+
const configQuery = useQuery({
|
|
1001
|
+
queryKey: qk.project.connectorConfig(projectId, connector?.slug ?? ''),
|
|
1002
|
+
queryFn: () => getConnectorConfig(projectId, connector.slug),
|
|
1003
|
+
enabled: open && Boolean(connector) && owner === 'project',
|
|
1004
|
+
...contract('config'),
|
|
1005
|
+
});
|
|
1006
|
+
const requestAuth = owner === 'me' ? connector?.requestAuthType : configQuery.data?.auth.type;
|
|
1007
|
+
const objectCredential = ['oauth1', 'hmac', 'aws_sigv4', 'mtls'].includes(requestAuth ?? '');
|
|
1008
|
+
const credentialExample = requestAuth === 'oauth1'
|
|
1009
|
+
? '{"consumer_key":"","consumer_secret":"","token":"","token_secret":""}'
|
|
1010
|
+
: requestAuth === 'hmac'
|
|
1011
|
+
? '{"secret":"","key_id":""}'
|
|
1012
|
+
: requestAuth === 'aws_sigv4'
|
|
1013
|
+
? '{"access_key_id":"","secret_access_key":"","region":"","service":"","session_token":""}'
|
|
1014
|
+
: requestAuth === 'mtls'
|
|
1015
|
+
? '{"certificate":"-----BEGIN CERTIFICATE-----\\n...","private_key":"-----BEGIN PRIVATE KEY-----\\n...","ca":""}'
|
|
1016
|
+
: '••••••••';
|
|
1017
|
+
const staticValid = (() => {
|
|
1018
|
+
if (!value)
|
|
1019
|
+
return false;
|
|
1020
|
+
if (!objectCredential)
|
|
1021
|
+
return true;
|
|
1022
|
+
try {
|
|
1023
|
+
const parsed = JSON.parse(value);
|
|
1024
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
1025
|
+
return false;
|
|
1026
|
+
const hasStrings = (...keys) => keys.every((key) => typeof parsed[key] === 'string' && Boolean(parsed[key]));
|
|
1027
|
+
if (requestAuth === 'oauth1') {
|
|
1028
|
+
return hasStrings('consumer_key', 'consumer_secret', 'token', 'token_secret');
|
|
1029
|
+
}
|
|
1030
|
+
if (requestAuth === 'hmac')
|
|
1031
|
+
return hasStrings('secret');
|
|
1032
|
+
if (requestAuth === 'aws_sigv4') {
|
|
1033
|
+
return hasStrings('access_key_id', 'secret_access_key', 'region', 'service');
|
|
1034
|
+
}
|
|
1035
|
+
if (requestAuth === 'mtls')
|
|
1036
|
+
return hasStrings('certificate', 'private_key');
|
|
1037
|
+
return false;
|
|
1038
|
+
}
|
|
1039
|
+
catch {
|
|
1040
|
+
return false;
|
|
1041
|
+
}
|
|
1042
|
+
})();
|
|
1043
|
+
const [device, setDevice] = useState(null);
|
|
1044
|
+
const [deviceConnectionId, setDeviceConnectionId] = useState(null);
|
|
1045
|
+
const [manualSetup, setManualSetup] = useState(false);
|
|
1046
|
+
useEffect(() => {
|
|
1047
|
+
if (!device || !deviceConnectionId)
|
|
1048
|
+
return;
|
|
1049
|
+
let stopped = false;
|
|
1050
|
+
const poll = async () => {
|
|
1051
|
+
try {
|
|
1052
|
+
const status = await pollConnectionOAuth2DeviceAuthorization(projectId, deviceConnectionId, device.session_id);
|
|
1053
|
+
if (stopped || status.status === 'pending')
|
|
1054
|
+
return;
|
|
1055
|
+
stopped = true;
|
|
1056
|
+
if (status.status === 'active') {
|
|
1057
|
+
successToast(tI18nHardcoded.raw('i18nComplete.textc2a5f8398f12'));
|
|
1058
|
+
onSaved();
|
|
1059
|
+
onOpenChange(false);
|
|
1060
|
+
}
|
|
1061
|
+
else {
|
|
1062
|
+
errorToast(status.error_code || tI18nHardcoded.raw('i18nComplete.text911a1cde90bc'));
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
catch (error) {
|
|
1066
|
+
if (!stopped)
|
|
1067
|
+
errorToast(error instanceof Error
|
|
1068
|
+
? error.message
|
|
1069
|
+
: tI18nHardcoded.raw('i18nComplete.textfa23c868781d'));
|
|
1070
|
+
}
|
|
1071
|
+
};
|
|
1072
|
+
void poll();
|
|
1073
|
+
const timer = window.setInterval(() => void poll(), device.interval_seconds * 1000);
|
|
1074
|
+
const expiryTimer = window.setTimeout(() => {
|
|
1075
|
+
stopped = true;
|
|
1076
|
+
errorToast(tI18nHardcoded.raw('i18nComplete.text02c1d7b545ea'));
|
|
1077
|
+
}, Math.max(0, new Date(device.expires_at).getTime() - Date.now()));
|
|
1078
|
+
return () => {
|
|
1079
|
+
stopped = true;
|
|
1080
|
+
window.clearInterval(timer);
|
|
1081
|
+
window.clearTimeout(expiryTimer);
|
|
1082
|
+
};
|
|
1083
|
+
}, [device, deviceConnectionId, onOpenChange, onSaved, projectId, tI18nHardcoded]);
|
|
1084
|
+
const resolveConnectionId = async () => {
|
|
1085
|
+
if (connectionId)
|
|
1086
|
+
return connectionId;
|
|
1087
|
+
if (owner === 'me') {
|
|
1088
|
+
const connection = await reconcileMemberConnection(projectId, {
|
|
1089
|
+
connector_alias: connector.slug,
|
|
1090
|
+
label: connector.name.trim() || connector.slug,
|
|
1091
|
+
});
|
|
1092
|
+
return connection.connection_id;
|
|
1093
|
+
}
|
|
1094
|
+
return (await ensureProjectConnectorConnection(projectId, connector.slug)).connection_id;
|
|
1095
|
+
};
|
|
1096
|
+
/**
|
|
1097
|
+
* The MCP authorization chain — `WWW-Authenticate` → protected resource
|
|
1098
|
+
* metadata → authorization server metadata → registration endpoint. Run once
|
|
1099
|
+
* when the OAuth 2.0 tab opens so a server that publishes its own metadata
|
|
1100
|
+
* needs one click and zero fields. Discovery is connection-scoped, so this
|
|
1101
|
+
* resolves (or creates) the connection first.
|
|
1102
|
+
*/
|
|
1103
|
+
const discoveryQuery = useQuery({
|
|
1104
|
+
queryKey: qk.project.connectorOAuth2Discovery(projectId, connector?.slug ?? '', oauth2DiscoveryConnectionKey(owner, connectionId)),
|
|
1105
|
+
queryFn: async () => {
|
|
1106
|
+
const activeConnectionId = await resolveConnectionId();
|
|
1107
|
+
const result = await discoverConnectionOAuth2Resource(projectId, activeConnectionId);
|
|
1108
|
+
return { connectionId: activeConnectionId, discovery: result.discovery };
|
|
1109
|
+
},
|
|
1110
|
+
// Runs as soon as the modal OPENS, not when the OAuth tab is clicked: the
|
|
1111
|
+
// answer decides which tab the user should land on, so it has to be known
|
|
1112
|
+
// before they choose. A connector with no server URL 400s here and simply
|
|
1113
|
+
// leaves the modal on its static-credential default.
|
|
1114
|
+
enabled: open && Boolean(connector),
|
|
1115
|
+
retry: false,
|
|
1116
|
+
// Same tier as the connector config it sits beside: provider metadata
|
|
1117
|
+
// changes on the provider's schedule, not on ours (FRESHNESS
|
|
1118
|
+
// .connectorOAuth2Discovery).
|
|
1119
|
+
...contract('config'),
|
|
1120
|
+
});
|
|
1121
|
+
const discovery = discoveryQuery.data?.discovery ?? null;
|
|
1122
|
+
const discoveryError = discoveryQuery.isError
|
|
1123
|
+
? (discoveryQuery.error?.message ?? 'Discovery failed')
|
|
1124
|
+
: null;
|
|
1125
|
+
const discoveryPending = discoveryQuery.isFetching && !discovery;
|
|
1126
|
+
const plan = autoConnectPlan(discovery);
|
|
1127
|
+
/**
|
|
1128
|
+
* Discovery prefills the manual form at render time rather than through a
|
|
1129
|
+
* setState: the merge keeps anything the user typed, so applying it on every
|
|
1130
|
+
* render is idempotent and there is no effect to keep in sync.
|
|
1131
|
+
*/
|
|
1132
|
+
const effectiveApplication = discovery
|
|
1133
|
+
? mergeResourceDiscoveryIntoForm(application, discovery)
|
|
1134
|
+
: application;
|
|
1135
|
+
/**
|
|
1136
|
+
* The endpoint/client fields only appear when automatic setup cannot finish
|
|
1137
|
+
* the job: the user asked for their own app, or the server publishes nothing
|
|
1138
|
+
* Kortix can act on. `unknown` (discovery still running or not started) keeps
|
|
1139
|
+
* them visible so the modal is never empty.
|
|
1140
|
+
*/
|
|
1141
|
+
/**
|
|
1142
|
+
* The tab the user is on. Discovery decides the default: a server that
|
|
1143
|
+
* publishes OAuth metadata opens on OAuth 2.0, everything else on the static
|
|
1144
|
+
* credential. An explicit tab click always wins.
|
|
1145
|
+
*/
|
|
1146
|
+
const credentialType = credentialTypeChoice ??
|
|
1147
|
+
(plan.kind === 'register' || plan.kind === 'client_id_required' ? 'oauth2' : 'static');
|
|
1148
|
+
const showManualOAuth2Fields = manualSetup || plan.kind === 'unknown' || plan.kind === 'client_id_required';
|
|
1149
|
+
const oauth2Valid = application.grant === 'client_credentials'
|
|
1150
|
+
? oauth2CredentialFormValid(oauth2)
|
|
1151
|
+
: oauth2ApplicationFormValid(effectiveApplication);
|
|
1152
|
+
/**
|
|
1153
|
+
* One click: register Kortix with the authorization server (RFC 7591), then
|
|
1154
|
+
* start Authorization Code + PKCE. No client id, no secret, no endpoints.
|
|
1155
|
+
*/
|
|
1156
|
+
const autoConnect = useMutation({
|
|
1157
|
+
mutationFn: async () => {
|
|
1158
|
+
if (!discovery)
|
|
1159
|
+
throw new Error('Discovery has not completed');
|
|
1160
|
+
const activeConnectionId = discoveryQuery.data?.connectionId ?? (await resolveConnectionId());
|
|
1161
|
+
const redirect = new URL(window.location.href);
|
|
1162
|
+
redirect.searchParams.delete('oauth2');
|
|
1163
|
+
redirect.searchParams.delete('oauth2_error');
|
|
1164
|
+
const authorizationUrl = await startOAuth2SignIn(projectId, activeConnectionId, discovery, redirect.toString());
|
|
1165
|
+
window.location.assign(authorizationUrl);
|
|
1166
|
+
},
|
|
1167
|
+
onError: (err) => errorToast(err.message || tI18nHardcoded.raw('i18nComplete.text46c9f3b7520f')),
|
|
1168
|
+
});
|
|
1169
|
+
/** Write a static or `client_credentials` credential to the selected account. */
|
|
1170
|
+
const writeCredential = async (input) => {
|
|
1171
|
+
const target = credentialWriteTarget(owner, connectionId);
|
|
1172
|
+
if (target.kind === 'connector-default') {
|
|
1173
|
+
return setConnectorCredential(projectId, connector.slug, input);
|
|
1174
|
+
}
|
|
1175
|
+
const targetConnectionId = target.kind === 'connection' ? target.connectionId : await resolveConnectionId();
|
|
1176
|
+
return updateConnectionCredential(projectId, targetConnectionId, input);
|
|
1177
|
+
};
|
|
1178
|
+
const save = useMutation({
|
|
1179
|
+
mutationFn: async () => {
|
|
1180
|
+
if (credentialType === 'static') {
|
|
1181
|
+
return writeCredential({ value });
|
|
1182
|
+
}
|
|
1183
|
+
if (application.grant === 'client_credentials') {
|
|
1184
|
+
return writeCredential(buildOAuth2CredentialInput(oauth2));
|
|
1185
|
+
}
|
|
1186
|
+
const activeConnectionId = await resolveConnectionId();
|
|
1187
|
+
const resolvedApplication = effectiveApplication.discoveryUrl
|
|
1188
|
+
? mergeOAuth2DiscoveryMetadata(effectiveApplication, (await discoverConnectionOAuth2(projectId, activeConnectionId, {
|
|
1189
|
+
discovery_url: effectiveApplication.discoveryUrl,
|
|
1190
|
+
})).metadata)
|
|
1191
|
+
: effectiveApplication;
|
|
1192
|
+
await putConnectionOAuth2Application(projectId, activeConnectionId, buildOAuth2ApplicationInput(resolvedApplication));
|
|
1193
|
+
const scopes = resolvedApplication.scopes.split(/\s+/).filter(Boolean);
|
|
1194
|
+
if (application.grant === 'authorization_code') {
|
|
1195
|
+
const redirect = new URL(window.location.href);
|
|
1196
|
+
redirect.searchParams.delete('oauth2');
|
|
1197
|
+
redirect.searchParams.delete('oauth2_error');
|
|
1198
|
+
const result = await startConnectionOAuth2Authorization(projectId, activeConnectionId, {
|
|
1199
|
+
scopes: scopes.length ? scopes : undefined,
|
|
1200
|
+
success_redirect_uri: redirect.toString(),
|
|
1201
|
+
error_redirect_uri: redirect.toString(),
|
|
1202
|
+
});
|
|
1203
|
+
window.location.assign(result.authorization_url);
|
|
1204
|
+
return result;
|
|
1205
|
+
}
|
|
1206
|
+
const result = await startConnectionOAuth2DeviceAuthorization(projectId, activeConnectionId, {
|
|
1207
|
+
scopes: scopes.length ? scopes : undefined,
|
|
1208
|
+
});
|
|
1209
|
+
setDeviceConnectionId(activeConnectionId);
|
|
1210
|
+
setDevice(result);
|
|
1211
|
+
return result;
|
|
1212
|
+
},
|
|
1213
|
+
onSuccess: () => {
|
|
1214
|
+
if (credentialType === 'oauth2' && application.grant !== 'client_credentials')
|
|
1215
|
+
return;
|
|
1216
|
+
successToast(credentialType === tI18nHardcoded.raw('i18nComplete.textd8ad572d2fb1')
|
|
1217
|
+
? tI18nHardcoded.raw('i18nComplete.text6984a3c945fa')
|
|
1218
|
+
: tI18nHardcoded.raw('i18nComplete.textf0341f8dbcc5'));
|
|
1219
|
+
setValue('');
|
|
1220
|
+
setOauth2(EMPTY_OAUTH2_CREDENTIAL_FORM);
|
|
1221
|
+
setApplication(EMPTY_OAUTH2_APPLICATION_FORM);
|
|
1222
|
+
onSaved();
|
|
1223
|
+
onOpenChange(false);
|
|
1224
|
+
},
|
|
1225
|
+
onError: (err) => errorToast(err.message || tI18nHardcoded.raw('i18nComplete.text2c07997249ab')),
|
|
1226
|
+
});
|
|
1227
|
+
const handleOpenChange = (o) => {
|
|
1228
|
+
if (save.isPending)
|
|
1229
|
+
return;
|
|
1230
|
+
if (!o) {
|
|
1231
|
+
setManualSetup(false);
|
|
1232
|
+
setCredentialTypeChoice(null);
|
|
1233
|
+
}
|
|
1234
|
+
onOpenChange(o);
|
|
1235
|
+
};
|
|
1236
|
+
const handleSubmit = (e) => {
|
|
1237
|
+
e.preventDefault();
|
|
1238
|
+
if ((credentialType === 'static' && staticValid) ||
|
|
1239
|
+
(credentialType === 'oauth2' && oauth2Valid)) {
|
|
1240
|
+
save.mutate();
|
|
1241
|
+
}
|
|
1242
|
+
};
|
|
1243
|
+
const title = `${tI18nHardcoded.raw('autoComponentsProjectsCustomizeSectionsConnectorsViewJsxTextSetCredential5e9704a8')} ${connector ? connectorDisplayName(connector) : ''}`;
|
|
1244
|
+
const description = tI18nHardcoded.raw('i18nComplete.text8e5a984b8a84');
|
|
1245
|
+
const fields = (_jsxs(Tabs, { value: credentialType, onValueChange: (next) => setCredentialTypeChoice(next), className: "gap-4", children: [_jsxs(TabsList, { children: [_jsx(TabsTrigger, { value: "static", children: tI18nHardcoded.raw('i18nComplete.text8f0b0d462a16') }), _jsx(TabsTrigger, { value: "oauth2", children: tI18nHardcoded.raw('i18nComplete.textaebabad39063') })] }), _jsx(TabsContent, { value: "static", children: _jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-static-credential", children: objectCredential ? tI18nHardcoded.raw('i18nComplete.textb8ce566177f1') : 'Value' }), objectCredential ? (_jsx(Textarea, { id: "connector-static-credential", value: value, onChange: (e) => setValue(e.target.value), placeholder: credentialExample, className: "min-h-28 font-mono text-xs", autoFocus: true })) : (_jsx(Input, { id: "connector-static-credential", type: "password", value: value, onChange: (e) => setValue(e.target.value), placeholder: credentialExample, className: "font-mono", autoFocus: true })), objectCredential && (_jsxs(FieldDescription, { children: [tI18nHardcoded.raw('i18nComplete.textfdf7bc860f55'), " ", requestAuth, ' ', tI18nHardcoded.raw('i18nComplete.text41a01f64505d')] }))] }) }), _jsxs(TabsContent, { value: "oauth2", className: "space-y-4", children: [discoveryPending ? (_jsx(InfoBanner, { tone: "neutral", title: tI18nHardcoded.raw('i18nComplete.text1ead5326bbb8'), children: tI18nHardcoded.raw('i18nComplete.textc9b1c409642d') })) : plan.kind === 'no_authorization' ? (_jsx(InfoBanner, { tone: "neutral", title: tI18nHardcoded.raw('i18nComplete.text24f46f717cfa'), children: tI18nHardcoded.raw('i18nComplete.text93bc06df8dd8') })) : plan.kind === 'register' && !manualSetup ? (_jsxs("div", { className: "space-y-3", children: [_jsxs(InfoBanner, { tone: "neutral", title: tI18nHardcoded.raw('i18nComplete.text477d50f7ddbf'), children: [tI18nHardcoded.raw('i18nComplete.text07fdd059f8a1'), plan.scopes.length
|
|
1246
|
+
? tI18nHardcoded('i18nComplete.text1d42883b00c1', {
|
|
1247
|
+
value0: plan.scopes.join(', '),
|
|
1248
|
+
})
|
|
1249
|
+
: ''] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { type: "button", size: "sm", className: "gap-1.5", disabled: autoConnect.isPending, onClick: () => autoConnect.mutate(), children: [autoConnect.isPending && _jsx(Loading, { className: "size-4 shrink-0" }), plan.label] }), _jsx(Button, { type: "button", size: "sm", variant: "outline-ghost", onClick: () => setManualSetup(true), children: tI18nHardcoded.raw('i18nComplete.texte67a6ef2363e') })] })] })) : plan.kind === 'client_id_required' ? (_jsx(InfoBanner, { tone: "neutral", title: tI18nHardcoded.raw('i18nComplete.textcb7c06207756'), children: tI18nHardcoded.raw('i18nComplete.text0dbb23e7febb') })) : plan.kind === 'manual' && !manualSetup ? (_jsx(InfoBanner, { tone: "neutral", title: tI18nHardcoded.raw('i18nComplete.texteb99bb9a22f3'), action: _jsx(Button, { type: "button", size: "sm", variant: "outline", onClick: () => setManualSetup(true), children: tI18nHardcoded.raw('i18nComplete.textb1d877ab2f51') }), children: plan.reason })) : (_jsx(InfoBanner, { tone: "info", children: tI18nHardcoded.raw('i18nComplete.text67dc9c4395f1') })), discoveryError && (_jsx(InfoBanner, { tone: "neutral", title: tI18nHardcoded.raw('i18nComplete.textdc258e9a953b'), children: discoveryError })), showManualOAuth2Fields && (_jsxs(_Fragment, { children: [_jsxs(Field, { children: [_jsx(FieldLabel, { htmlFor: "connector-oauth2-grant", children: tI18nHardcoded.raw('i18nComplete.text78b7d0379d5e') }), _jsxs(Select, { value: application.grant, onValueChange: (grant) => {
|
|
1250
|
+
setDevice(null);
|
|
1251
|
+
setApplication({
|
|
1252
|
+
...application,
|
|
1253
|
+
grant: grant,
|
|
1254
|
+
});
|
|
1255
|
+
}, children: [_jsx(SelectTrigger, { id: "connector-oauth2-grant", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "client_credentials", children: tI18nHardcoded.raw('i18nComplete.text23c446ef2187') }), _jsx(SelectItem, { value: "authorization_code", children: tI18nHardcoded.raw('i18nComplete.textac806359529b') }), _jsx(SelectItem, { value: "device_authorization", children: tI18nHardcoded.raw('i18nComplete.text197da3e17a78') })] })] })] }), application.grant === 'client_credentials' ? (_jsx(OAuth2CredentialFields, { value: oauth2, onChange: setOauth2, idPrefix: "connector-oauth2" })) : (_jsx(OAuth2ApplicationFields, { value: effectiveApplication, onChange: setApplication, idPrefix: "connector-oauth2-application" }))] })), device && (_jsxs(InfoBanner, { tone: "neutral", title: tI18nHardcoded('i18nComplete.textbfd271fe6ead', {
|
|
1256
|
+
value0: device.user_code,
|
|
1257
|
+
}), action: _jsxs(Button, { type: "button", size: "sm", variant: "outline", onClick: () => window.open(device.verification_uri_complete ?? device.verification_uri, '_blank', 'noopener,noreferrer'), children: [_jsx(ExternalLink, { className: "size-4" }), tI18nHardcoded.raw('i18nComplete.text97fc3d60fab5')] }), children: [tI18nHardcoded.raw('i18nComplete.text9c67cc26222a'), " ", device.interval_seconds, ' ', tI18nHardcoded.raw('i18nComplete.text4616b90a6d94'), ' ', new Date(device.expires_at).toLocaleTimeString(), "."] }))] })] }));
|
|
1258
|
+
const actions = (_jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline-ghost", size: "sm", onClick: () => handleOpenChange(false), disabled: save.isPending, children: tI18nHardcoded.raw('i18nComplete.text19766ed6ccb2') }), _jsxs(Button, { type: "submit", size: "sm", disabled: save.isPending || (credentialType === 'static' ? !staticValid : !oauth2Valid), className: "gap-1.5", children: [save.isPending && _jsx(Loading, { className: "size-4 shrink-0" }), credentialType === 'oauth2' && application.grant === 'authorization_code'
|
|
1259
|
+
? tI18nHardcoded.raw('i18nComplete.text0c814b60fca5')
|
|
1260
|
+
: credentialType === 'oauth2' && application.grant === 'device_authorization'
|
|
1261
|
+
? tI18nHardcoded.raw('i18nComplete.text55e970c35216')
|
|
1262
|
+
: 'Save'] })] }));
|
|
1263
|
+
if (shell === 'split') {
|
|
1264
|
+
return (_jsxs(SplitSheetContent, { children: [_jsxs(SplitSheetHeader, { children: [_jsx(SplitSheetTitle, { children: title }), _jsx(SplitSheetDescription, { children: description })] }), _jsxs("form", { onSubmit: handleSubmit, className: "flex min-h-0 flex-1 flex-col", children: [_jsx(SplitSheetBody, { children: fields }), _jsx(SplitSheetFooter, { className: "justify-between", children: actions })] })] }));
|
|
1265
|
+
}
|
|
1266
|
+
return (_jsx(Modal, { open: open, onOpenChange: handleOpenChange, children: _jsxs(ModalContent, { className: "lg:max-w-3xl", children: [_jsxs(ModalHeader, { children: [_jsx(ModalTitle, { children: title }), _jsx(ModalDescription, { children: description })] }), _jsxs("form", { onSubmit: handleSubmit, children: [_jsx(ModalBody, { children: fields }), _jsx(ModalFooter, { className: "sm:justify-between", children: actions })] })] }) }));
|
|
1267
|
+
}
|