@agent-native/dispatch 0.0.0-beta-20260819155526
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 +146 -0
- package/dist/actions/apply-dream-proposal.d.ts +29 -0
- package/dist/actions/apply-dream-proposal.d.ts.map +1 -0
- package/dist/actions/apply-dream-proposal.js +11 -0
- package/dist/actions/apply-dream-proposal.js.map +1 -0
- package/dist/actions/approve-dispatch-change.d.ts +22 -0
- package/dist/actions/approve-dispatch-change.d.ts.map +1 -0
- package/dist/actions/approve-dispatch-change.js +11 -0
- package/dist/actions/approve-dispatch-change.js.map +1 -0
- package/dist/actions/approve-vault-request.d.ts +20 -0
- package/dist/actions/approve-vault-request.d.ts.map +1 -0
- package/dist/actions/approve-vault-request.js +16 -0
- package/dist/actions/approve-vault-request.js.map +1 -0
- package/dist/actions/archive-workspace-app.d.ts +7 -0
- package/dist/actions/archive-workspace-app.d.ts.map +1 -0
- package/dist/actions/archive-workspace-app.js +15 -0
- package/dist/actions/archive-workspace-app.js.map +1 -0
- package/dist/actions/ask_app.d.ts +29 -0
- package/dist/actions/ask_app.d.ts.map +1 -0
- package/dist/actions/ask_app.js +23 -0
- package/dist/actions/ask_app.js.map +1 -0
- package/dist/actions/ask_app_status.d.ts +27 -0
- package/dist/actions/ask_app_status.d.ts.map +1 -0
- package/dist/actions/ask_app_status.js +14 -0
- package/dist/actions/ask_app_status.js.map +1 -0
- package/dist/actions/connect-external-agent.d.ts +18 -0
- package/dist/actions/connect-external-agent.d.ts.map +1 -0
- package/dist/actions/connect-external-agent.js +68 -0
- package/dist/actions/connect-external-agent.js.map +1 -0
- package/dist/actions/create-browser-chat-session.d.ts +15 -0
- package/dist/actions/create-browser-chat-session.d.ts.map +1 -0
- package/dist/actions/create-browser-chat-session.js +75 -0
- package/dist/actions/create-browser-chat-session.js.map +1 -0
- package/dist/actions/create-dream-report.d.ts +59 -0
- package/dist/actions/create-dream-report.d.ts.map +1 -0
- package/dist/actions/create-dream-report.js +67 -0
- package/dist/actions/create-dream-report.js.map +1 -0
- package/dist/actions/create-link-token.d.ts +10 -0
- package/dist/actions/create-link-token.d.ts.map +1 -0
- package/dist/actions/create-link-token.js +11 -0
- package/dist/actions/create-link-token.js.map +1 -0
- package/dist/actions/create-pylon-ticket.d.ts +17 -0
- package/dist/actions/create-pylon-ticket.d.ts.map +1 -0
- package/dist/actions/create-pylon-ticket.js +95 -0
- package/dist/actions/create-pylon-ticket.js.map +1 -0
- package/dist/actions/create-vault-grant.d.ts +17 -0
- package/dist/actions/create-vault-grant.d.ts.map +1 -0
- package/dist/actions/create-vault-grant.js +14 -0
- package/dist/actions/create-vault-grant.js.map +1 -0
- package/dist/actions/create-vault-secret.d.ts +21 -0
- package/dist/actions/create-vault-secret.d.ts.map +1 -0
- package/dist/actions/create-vault-secret.js +26 -0
- package/dist/actions/create-vault-secret.js.map +1 -0
- package/dist/actions/create-workspace-resource-grant.d.ts +16 -0
- package/dist/actions/create-workspace-resource-grant.d.ts.map +1 -0
- package/dist/actions/create-workspace-resource-grant.js +14 -0
- package/dist/actions/create-workspace-resource-grant.js.map +1 -0
- package/dist/actions/create-workspace-resource.d.ts +40 -0
- package/dist/actions/create-workspace-resource.d.ts.map +1 -0
- package/dist/actions/create-workspace-resource.js +29 -0
- package/dist/actions/create-workspace-resource.js.map +1 -0
- package/dist/actions/create_embed_session.d.ts +13 -0
- package/dist/actions/create_embed_session.d.ts.map +1 -0
- package/dist/actions/create_embed_session.js +28 -0
- package/dist/actions/create_embed_session.js.map +1 -0
- package/dist/actions/create_workspace_app_embed_session.d.ts +19 -0
- package/dist/actions/create_workspace_app_embed_session.d.ts.map +1 -0
- package/dist/actions/create_workspace_app_embed_session.js +89 -0
- package/dist/actions/create_workspace_app_embed_session.js.map +1 -0
- package/dist/actions/delete-destination.d.ts +34 -0
- package/dist/actions/delete-destination.d.ts.map +1 -0
- package/dist/actions/delete-destination.js +11 -0
- package/dist/actions/delete-destination.js.map +1 -0
- package/dist/actions/delete-staged-dataset.d.ts +10 -0
- package/dist/actions/delete-staged-dataset.d.ts.map +1 -0
- package/dist/actions/delete-staged-dataset.js +8 -0
- package/dist/actions/delete-staged-dataset.js.map +1 -0
- package/dist/actions/delete-vault-secret.d.ts +17 -0
- package/dist/actions/delete-vault-secret.d.ts.map +1 -0
- package/dist/actions/delete-vault-secret.js +11 -0
- package/dist/actions/delete-vault-secret.js.map +1 -0
- package/dist/actions/delete-workspace-resource.d.ts +35 -0
- package/dist/actions/delete-workspace-resource.d.ts.map +1 -0
- package/dist/actions/delete-workspace-resource.js +11 -0
- package/dist/actions/delete-workspace-resource.js.map +1 -0
- package/dist/actions/deny-vault-request.d.ts +19 -0
- package/dist/actions/deny-vault-request.d.ts.map +1 -0
- package/dist/actions/deny-vault-request.js +12 -0
- package/dist/actions/deny-vault-request.js.map +1 -0
- package/dist/actions/ensure-dream-job.d.ts +33 -0
- package/dist/actions/ensure-dream-job.d.ts.map +1 -0
- package/dist/actions/ensure-dream-job.js +73 -0
- package/dist/actions/ensure-dream-job.js.map +1 -0
- package/dist/actions/get-agent-thread-debug.d.ts +72 -0
- package/dist/actions/get-agent-thread-debug.d.ts.map +1 -0
- package/dist/actions/get-agent-thread-debug.js +37 -0
- package/dist/actions/get-agent-thread-debug.js.map +1 -0
- package/dist/actions/get-app-creation-settings.d.ts +3 -0
- package/dist/actions/get-app-creation-settings.d.ts.map +1 -0
- package/dist/actions/get-app-creation-settings.js +10 -0
- package/dist/actions/get-app-creation-settings.js.map +1 -0
- package/dist/actions/get-dispatch-settings.d.ts +3 -0
- package/dist/actions/get-dispatch-settings.d.ts.map +1 -0
- package/dist/actions/get-dispatch-settings.js +10 -0
- package/dist/actions/get-dispatch-settings.js.map +1 -0
- package/dist/actions/get-dream-settings.d.ts +3 -0
- package/dist/actions/get-dream-settings.d.ts.map +1 -0
- package/dist/actions/get-dream-settings.js +11 -0
- package/dist/actions/get-dream-settings.js.map +1 -0
- package/dist/actions/get-dream.d.ts +48 -0
- package/dist/actions/get-dream.d.ts.map +1 -0
- package/dist/actions/get-dream.js +13 -0
- package/dist/actions/get-dream.js.map +1 -0
- package/dist/actions/get-vault-access-settings.d.ts +3 -0
- package/dist/actions/get-vault-access-settings.d.ts.map +1 -0
- package/dist/actions/get-vault-access-settings.js +10 -0
- package/dist/actions/get-vault-access-settings.js.map +1 -0
- package/dist/actions/get-workspace-info.d.ts +3 -0
- package/dist/actions/get-workspace-info.d.ts.map +1 -0
- package/dist/actions/get-workspace-info.js +10 -0
- package/dist/actions/get-workspace-info.js.map +1 -0
- package/dist/actions/get-workspace-resource-effective-context.d.ts +8 -0
- package/dist/actions/get-workspace-resource-effective-context.d.ts.map +1 -0
- package/dist/actions/get-workspace-resource-effective-context.js +27 -0
- package/dist/actions/get-workspace-resource-effective-context.js.map +1 -0
- package/dist/actions/grant-vault-secrets-to-app.d.ts +27 -0
- package/dist/actions/grant-vault-secrets-to-app.d.ts.map +1 -0
- package/dist/actions/grant-vault-secrets-to-app.js +19 -0
- package/dist/actions/grant-vault-secrets-to-app.js.map +1 -0
- package/dist/actions/grant-workspace-resources-to-app.d.ts +17 -0
- package/dist/actions/grant-workspace-resources-to-app.d.ts.map +1 -0
- package/dist/actions/grant-workspace-resources-to-app.js +15 -0
- package/dist/actions/grant-workspace-resources-to-app.js.map +1 -0
- package/dist/actions/import-agent-pack.d.ts +96 -0
- package/dist/actions/import-agent-pack.d.ts.map +1 -0
- package/dist/actions/import-agent-pack.js +116 -0
- package/dist/actions/import-agent-pack.js.map +1 -0
- package/dist/actions/import-agent.d.ts +60 -0
- package/dist/actions/import-agent.d.ts.map +1 -0
- package/dist/actions/import-agent.js +82 -0
- package/dist/actions/import-agent.js.map +1 -0
- package/dist/actions/index.d.ts +9 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +207 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/list-agent-pack.d.ts +36 -0
- package/dist/actions/list-agent-pack.d.ts.map +1 -0
- package/dist/actions/list-agent-pack.js +32 -0
- package/dist/actions/list-agent-pack.js.map +1 -0
- package/dist/actions/list-agent-run-failures.d.ts +65 -0
- package/dist/actions/list-agent-run-failures.d.ts.map +1 -0
- package/dist/actions/list-agent-run-failures.js +42 -0
- package/dist/actions/list-agent-run-failures.js.map +1 -0
- package/dist/actions/list-agent-thread-sources.d.ts +9 -0
- package/dist/actions/list-agent-thread-sources.d.ts.map +1 -0
- package/dist/actions/list-agent-thread-sources.js +11 -0
- package/dist/actions/list-agent-thread-sources.js.map +1 -0
- package/dist/actions/list-available-workspace-templates.d.ts +3 -0
- package/dist/actions/list-available-workspace-templates.d.ts.map +1 -0
- package/dist/actions/list-available-workspace-templates.js +10 -0
- package/dist/actions/list-available-workspace-templates.js.map +1 -0
- package/dist/actions/list-connected-agents.d.ts +14 -0
- package/dist/actions/list-connected-agents.d.ts.map +1 -0
- package/dist/actions/list-connected-agents.js +87 -0
- package/dist/actions/list-connected-agents.js.map +1 -0
- package/dist/actions/list-curated-workspace-templates.d.ts +3 -0
- package/dist/actions/list-curated-workspace-templates.d.ts.map +1 -0
- package/dist/actions/list-curated-workspace-templates.js +10 -0
- package/dist/actions/list-curated-workspace-templates.js.map +1 -0
- package/dist/actions/list-destinations.d.ts +15 -0
- package/dist/actions/list-destinations.d.ts.map +1 -0
- package/dist/actions/list-destinations.js +10 -0
- package/dist/actions/list-destinations.js.map +1 -0
- package/dist/actions/list-dispatch-approvals.d.ts +20 -0
- package/dist/actions/list-dispatch-approvals.d.ts.map +1 -0
- package/dist/actions/list-dispatch-approvals.js +10 -0
- package/dist/actions/list-dispatch-approvals.js.map +1 -0
- package/dist/actions/list-dispatch-audit.d.ts +16 -0
- package/dist/actions/list-dispatch-audit.d.ts.map +1 -0
- package/dist/actions/list-dispatch-audit.js +12 -0
- package/dist/actions/list-dispatch-audit.js.map +1 -0
- package/dist/actions/list-dispatch-overview.d.ts +61 -0
- package/dist/actions/list-dispatch-overview.d.ts.map +1 -0
- package/dist/actions/list-dispatch-overview.js +17 -0
- package/dist/actions/list-dispatch-overview.js.map +1 -0
- package/dist/actions/list-dispatch-usage-metrics.d.ts +7 -0
- package/dist/actions/list-dispatch-usage-metrics.d.ts.map +1 -0
- package/dist/actions/list-dispatch-usage-metrics.js +28 -0
- package/dist/actions/list-dispatch-usage-metrics.js.map +1 -0
- package/dist/actions/list-dream-candidates.d.ts +24 -0
- package/dist/actions/list-dream-candidates.d.ts.map +1 -0
- package/dist/actions/list-dream-candidates.js +68 -0
- package/dist/actions/list-dream-candidates.js.map +1 -0
- package/dist/actions/list-dreams.d.ts +29 -0
- package/dist/actions/list-dreams.d.ts.map +1 -0
- package/dist/actions/list-dreams.js +17 -0
- package/dist/actions/list-dreams.js.map +1 -0
- package/dist/actions/list-integrations-catalog.d.ts +3 -0
- package/dist/actions/list-integrations-catalog.d.ts.map +1 -0
- package/dist/actions/list-integrations-catalog.js +10 -0
- package/dist/actions/list-integrations-catalog.js.map +1 -0
- package/dist/actions/list-linked-identities.d.ts +29 -0
- package/dist/actions/list-linked-identities.d.ts.map +1 -0
- package/dist/actions/list-linked-identities.js +10 -0
- package/dist/actions/list-linked-identities.js.map +1 -0
- package/dist/actions/list-mcp-app-access.d.ts +14 -0
- package/dist/actions/list-mcp-app-access.d.ts.map +1 -0
- package/dist/actions/list-mcp-app-access.js +25 -0
- package/dist/actions/list-mcp-app-access.js.map +1 -0
- package/dist/actions/list-staged-datasets.d.ts +13 -0
- package/dist/actions/list-staged-datasets.d.ts.map +1 -0
- package/dist/actions/list-staged-datasets.js +8 -0
- package/dist/actions/list-staged-datasets.js.map +1 -0
- package/dist/actions/list-vault-audit.d.ts +16 -0
- package/dist/actions/list-vault-audit.d.ts.map +1 -0
- package/dist/actions/list-vault-audit.js +15 -0
- package/dist/actions/list-vault-audit.js.map +1 -0
- package/dist/actions/list-vault-grants.d.ts +17 -0
- package/dist/actions/list-vault-grants.d.ts.map +1 -0
- package/dist/actions/list-vault-grants.js +13 -0
- package/dist/actions/list-vault-grants.js.map +1 -0
- package/dist/actions/list-vault-requests.d.ts +18 -0
- package/dist/actions/list-vault-requests.d.ts.map +1 -0
- package/dist/actions/list-vault-requests.js +15 -0
- package/dist/actions/list-vault-requests.js.map +1 -0
- package/dist/actions/list-vault-secret-options.d.ts +9 -0
- package/dist/actions/list-vault-secret-options.d.ts.map +1 -0
- package/dist/actions/list-vault-secret-options.js +12 -0
- package/dist/actions/list-vault-secret-options.js.map +1 -0
- package/dist/actions/list-vault-secrets.d.ts +13 -0
- package/dist/actions/list-vault-secrets.d.ts.map +1 -0
- package/dist/actions/list-vault-secrets.js +25 -0
- package/dist/actions/list-vault-secrets.js.map +1 -0
- package/dist/actions/list-workspace-apps.d.ts +7 -0
- package/dist/actions/list-workspace-apps.d.ts.map +1 -0
- package/dist/actions/list-workspace-apps.js +31 -0
- package/dist/actions/list-workspace-apps.js.map +1 -0
- package/dist/actions/list-workspace-resource-grants.d.ts +16 -0
- package/dist/actions/list-workspace-resource-grants.d.ts.map +1 -0
- package/dist/actions/list-workspace-resource-grants.js +13 -0
- package/dist/actions/list-workspace-resource-grants.js.map +1 -0
- package/dist/actions/list-workspace-resource-options.d.ts +5 -0
- package/dist/actions/list-workspace-resource-options.d.ts.map +1 -0
- package/dist/actions/list-workspace-resource-options.js +22 -0
- package/dist/actions/list-workspace-resource-options.js.map +1 -0
- package/dist/actions/list-workspace-resources-for-app.d.ts +15 -0
- package/dist/actions/list-workspace-resources-for-app.d.ts.map +1 -0
- package/dist/actions/list-workspace-resources-for-app.js +12 -0
- package/dist/actions/list-workspace-resources-for-app.js.map +1 -0
- package/dist/actions/list-workspace-resources.d.ts +18 -0
- package/dist/actions/list-workspace-resources.d.ts.map +1 -0
- package/dist/actions/list-workspace-resources.js +22 -0
- package/dist/actions/list-workspace-resources.js.map +1 -0
- package/dist/actions/list_apps.d.ts +15 -0
- package/dist/actions/list_apps.d.ts.map +1 -0
- package/dist/actions/list_apps.js +34 -0
- package/dist/actions/list_apps.js.map +1 -0
- package/dist/actions/navigate.d.ts +23 -0
- package/dist/actions/navigate.d.ts.map +1 -0
- package/dist/actions/navigate.js +53 -0
- package/dist/actions/navigate.js.map +1 -0
- package/dist/actions/open_app.d.ts +20 -0
- package/dist/actions/open_app.d.ts.map +1 -0
- package/dist/actions/open_app.js +123 -0
- package/dist/actions/open_app.js.map +1 -0
- package/dist/actions/preview-dream-proposal.d.ts +43 -0
- package/dist/actions/preview-dream-proposal.d.ts.map +1 -0
- package/dist/actions/preview-dream-proposal.js +13 -0
- package/dist/actions/preview-dream-proposal.js.map +1 -0
- package/dist/actions/preview-workspace-resource-change.d.ts +8 -0
- package/dist/actions/preview-workspace-resource-change.d.ts.map +1 -0
- package/dist/actions/preview-workspace-resource-change.js +24 -0
- package/dist/actions/preview-workspace-resource-change.js.map +1 -0
- package/dist/actions/provider-api-catalog.d.ts +28 -0
- package/dist/actions/provider-api-catalog.d.ts.map +1 -0
- package/dist/actions/provider-api-catalog.js +8 -0
- package/dist/actions/provider-api-catalog.js.map +1 -0
- package/dist/actions/provider-api-docs.d.ts +41 -0
- package/dist/actions/provider-api-docs.d.ts.map +1 -0
- package/dist/actions/provider-api-docs.js +12 -0
- package/dist/actions/provider-api-docs.js.map +1 -0
- package/dist/actions/provider-api-register.d.ts +109 -0
- package/dist/actions/provider-api-register.d.ts.map +1 -0
- package/dist/actions/provider-api-register.js +33 -0
- package/dist/actions/provider-api-register.js.map +1 -0
- package/dist/actions/provider-api-request.d.ts +67 -0
- package/dist/actions/provider-api-request.d.ts.map +1 -0
- package/dist/actions/provider-api-request.js +13 -0
- package/dist/actions/provider-api-request.js.map +1 -0
- package/dist/actions/query-staged-dataset.d.ts +45 -0
- package/dist/actions/query-staged-dataset.d.ts.map +1 -0
- package/dist/actions/query-staged-dataset.js +8 -0
- package/dist/actions/query-staged-dataset.js.map +1 -0
- package/dist/actions/read-slack-thread-context.d.ts +29 -0
- package/dist/actions/read-slack-thread-context.d.ts.map +1 -0
- package/dist/actions/read-slack-thread-context.js +138 -0
- package/dist/actions/read-slack-thread-context.js.map +1 -0
- package/dist/actions/reject-dispatch-change.d.ts +23 -0
- package/dist/actions/reject-dispatch-change.d.ts.map +1 -0
- package/dist/actions/reject-dispatch-change.js +12 -0
- package/dist/actions/reject-dispatch-change.js.map +1 -0
- package/dist/actions/reject-dream-proposal.d.ts +27 -0
- package/dist/actions/reject-dream-proposal.d.ts.map +1 -0
- package/dist/actions/reject-dream-proposal.js +12 -0
- package/dist/actions/reject-dream-proposal.js.map +1 -0
- package/dist/actions/remix-workspace-template.d.ts +48 -0
- package/dist/actions/remix-workspace-template.d.ts.map +1 -0
- package/dist/actions/remix-workspace-template.js +79 -0
- package/dist/actions/remix-workspace-template.js.map +1 -0
- package/dist/actions/remove-pending-workspace-app.d.ts +7 -0
- package/dist/actions/remove-pending-workspace-app.d.ts.map +1 -0
- package/dist/actions/remove-pending-workspace-app.js +15 -0
- package/dist/actions/remove-pending-workspace-app.js.map +1 -0
- package/dist/actions/request-vault-secret.d.ts +20 -0
- package/dist/actions/request-vault-secret.d.ts.map +1 -0
- package/dist/actions/request-vault-secret.js +15 -0
- package/dist/actions/request-vault-secret.js.map +1 -0
- package/dist/actions/resolve-integration-source-context.d.ts +5 -0
- package/dist/actions/resolve-integration-source-context.d.ts.map +1 -0
- package/dist/actions/resolve-integration-source-context.js +30 -0
- package/dist/actions/resolve-integration-source-context.js.map +1 -0
- package/dist/actions/restore-starter-workspace-resources.d.ts +9 -0
- package/dist/actions/restore-starter-workspace-resources.d.ts.map +1 -0
- package/dist/actions/restore-starter-workspace-resources.js +14 -0
- package/dist/actions/restore-starter-workspace-resources.js.map +1 -0
- package/dist/actions/revoke-vault-grant.d.ts +16 -0
- package/dist/actions/revoke-vault-grant.d.ts.map +1 -0
- package/dist/actions/revoke-vault-grant.js +11 -0
- package/dist/actions/revoke-vault-grant.js.map +1 -0
- package/dist/actions/revoke-workspace-resource-grant.d.ts +15 -0
- package/dist/actions/revoke-workspace-resource-grant.d.ts.map +1 -0
- package/dist/actions/revoke-workspace-resource-grant.js +11 -0
- package/dist/actions/revoke-workspace-resource-grant.js.map +1 -0
- package/dist/actions/scaffold-workspace-app.d.ts +10 -0
- package/dist/actions/scaffold-workspace-app.d.ts.map +1 -0
- package/dist/actions/scaffold-workspace-app.js +41 -0
- package/dist/actions/scaffold-workspace-app.js.map +1 -0
- package/dist/actions/search-agent-threads.d.ts +32 -0
- package/dist/actions/search-agent-threads.d.ts.map +1 -0
- package/dist/actions/search-agent-threads.js +25 -0
- package/dist/actions/search-agent-threads.js.map +1 -0
- package/dist/actions/send-code-agent-remote-command.d.ts +34 -0
- package/dist/actions/send-code-agent-remote-command.d.ts.map +1 -0
- package/dist/actions/send-code-agent-remote-command.js +53 -0
- package/dist/actions/send-code-agent-remote-command.js.map +1 -0
- package/dist/actions/send-platform-message.d.ts +15 -0
- package/dist/actions/send-platform-message.d.ts.map +1 -0
- package/dist/actions/send-platform-message.js +96 -0
- package/dist/actions/send-platform-message.js.map +1 -0
- package/dist/actions/set-app-creation-settings.d.ts +5 -0
- package/dist/actions/set-app-creation-settings.d.ts.map +1 -0
- package/dist/actions/set-app-creation-settings.js +18 -0
- package/dist/actions/set-app-creation-settings.js.map +1 -0
- package/dist/actions/set-dispatch-approval-policy.d.ts +23 -0
- package/dist/actions/set-dispatch-approval-policy.d.ts.map +1 -0
- package/dist/actions/set-dispatch-approval-policy.js +19 -0
- package/dist/actions/set-dispatch-approval-policy.js.map +1 -0
- package/dist/actions/set-dream-settings.d.ts +17 -0
- package/dist/actions/set-dream-settings.d.ts.map +1 -0
- package/dist/actions/set-dream-settings.js +41 -0
- package/dist/actions/set-dream-settings.js.map +1 -0
- package/dist/actions/set-mcp-app-access.d.ts +17 -0
- package/dist/actions/set-mcp-app-access.d.ts.map +1 -0
- package/dist/actions/set-mcp-app-access.js +43 -0
- package/dist/actions/set-mcp-app-access.js.map +1 -0
- package/dist/actions/set-vault-access-settings.d.ts +5 -0
- package/dist/actions/set-vault-access-settings.d.ts.map +1 -0
- package/dist/actions/set-vault-access-settings.js +13 -0
- package/dist/actions/set-vault-access-settings.js.map +1 -0
- package/dist/actions/start-workspace-app-creation.d.ts +10 -0
- package/dist/actions/start-workspace-app-creation.d.ts.map +1 -0
- package/dist/actions/start-workspace-app-creation.js +43 -0
- package/dist/actions/start-workspace-app-creation.js.map +1 -0
- package/dist/actions/sync-vault-to-app.d.ts +32 -0
- package/dist/actions/sync-vault-to-app.d.ts.map +1 -0
- package/dist/actions/sync-vault-to-app.js +13 -0
- package/dist/actions/sync-vault-to-app.js.map +1 -0
- package/dist/actions/unarchive-workspace-app.d.ts +7 -0
- package/dist/actions/unarchive-workspace-app.d.ts.map +1 -0
- package/dist/actions/unarchive-workspace-app.js +15 -0
- package/dist/actions/unarchive-workspace-app.js.map +1 -0
- package/dist/actions/update-vault-secret.d.ts +22 -0
- package/dist/actions/update-vault-secret.d.ts.map +1 -0
- package/dist/actions/update-vault-secret.js +43 -0
- package/dist/actions/update-vault-secret.js.map +1 -0
- package/dist/actions/update-workspace-app-metadata.d.ts +7 -0
- package/dist/actions/update-workspace-app-metadata.d.ts.map +1 -0
- package/dist/actions/update-workspace-app-metadata.js +30 -0
- package/dist/actions/update-workspace-app-metadata.js.map +1 -0
- package/dist/actions/update-workspace-resource.d.ts +39 -0
- package/dist/actions/update-workspace-resource.d.ts.map +1 -0
- package/dist/actions/update-workspace-resource.js +18 -0
- package/dist/actions/update-workspace-resource.js.map +1 -0
- package/dist/actions/upsert-destination.d.ts +39 -0
- package/dist/actions/upsert-destination.d.ts.map +1 -0
- package/dist/actions/upsert-destination.js +26 -0
- package/dist/actions/upsert-destination.js.map +1 -0
- package/dist/actions/view-screen.d.ts +11 -0
- package/dist/actions/view-screen.d.ts.map +1 -0
- package/dist/actions/view-screen.js +332 -0
- package/dist/actions/view-screen.js.map +1 -0
- package/dist/client/transactional-emails.d.ts +57 -0
- package/dist/client/transactional-emails.d.ts.map +1 -0
- package/dist/client/transactional-emails.js +116 -0
- package/dist/client/transactional-emails.js.map +1 -0
- package/dist/components/action-query-error.d.ts +8 -0
- package/dist/components/action-query-error.d.ts.map +1 -0
- package/dist/components/action-query-error.js +10 -0
- package/dist/components/action-query-error.js.map +1 -0
- package/dist/components/admin-navigation.d.ts +16 -0
- package/dist/components/admin-navigation.d.ts.map +1 -0
- package/dist/components/admin-navigation.js +193 -0
- package/dist/components/admin-navigation.js.map +1 -0
- package/dist/components/agents-panel.d.ts +16 -0
- package/dist/components/agents-panel.d.ts.map +1 -0
- package/dist/components/agents-panel.js +133 -0
- package/dist/components/agents-panel.js.map +1 -0
- package/dist/components/app-icon.d.ts +10 -0
- package/dist/components/app-icon.d.ts.map +1 -0
- package/dist/components/app-icon.js +107 -0
- package/dist/components/app-icon.js.map +1 -0
- package/dist/components/app-keys-popover.d.ts +15 -0
- package/dist/components/app-keys-popover.d.ts.map +1 -0
- package/dist/components/app-keys-popover.js +115 -0
- package/dist/components/app-keys-popover.js.map +1 -0
- package/dist/components/app-list-row.d.ts +12 -0
- package/dist/components/app-list-row.d.ts.map +1 -0
- package/dist/components/app-list-row.js +11 -0
- package/dist/components/app-list-row.js.map +1 -0
- package/dist/components/app-open-actions.d.ts +2 -0
- package/dist/components/app-open-actions.d.ts.map +1 -0
- package/dist/components/app-open-actions.js +2 -0
- package/dist/components/app-open-actions.js.map +1 -0
- package/dist/components/app-row-settings.d.ts +6 -0
- package/dist/components/app-row-settings.d.ts.map +1 -0
- package/dist/components/app-row-settings.js +11 -0
- package/dist/components/app-row-settings.js.map +1 -0
- package/dist/components/approval-value-block.d.ts +7 -0
- package/dist/components/approval-value-block.d.ts.map +1 -0
- package/dist/components/approval-value-block.js +22 -0
- package/dist/components/approval-value-block.js.map +1 -0
- package/dist/components/automation-run-history-dialog.d.ts +9 -0
- package/dist/components/automation-run-history-dialog.d.ts.map +1 -0
- package/dist/components/automation-run-history-dialog.js +63 -0
- package/dist/components/automation-run-history-dialog.js.map +1 -0
- package/dist/components/connected-app-card.d.ts +6 -0
- package/dist/components/connected-app-card.d.ts.map +1 -0
- package/dist/components/connected-app-card.js +13 -0
- package/dist/components/connected-app-card.js.map +1 -0
- package/dist/components/create-app-popover.d.ts +29 -0
- package/dist/components/create-app-popover.d.ts.map +1 -0
- package/dist/components/create-app-popover.js +262 -0
- package/dist/components/create-app-popover.js.map +1 -0
- package/dist/components/dispatch-control-plane.d.ts +2 -0
- package/dist/components/dispatch-control-plane.d.ts.map +1 -0
- package/dist/components/dispatch-control-plane.js +114 -0
- package/dist/components/dispatch-control-plane.js.map +1 -0
- package/dist/components/dispatch-shell.d.ts +13 -0
- package/dist/components/dispatch-shell.d.ts.map +1 -0
- package/dist/components/dispatch-shell.js +21 -0
- package/dist/components/dispatch-shell.js.map +1 -0
- package/dist/components/docs-link.d.ts +16 -0
- package/dist/components/docs-link.d.ts.map +1 -0
- package/dist/components/docs-link.js +34 -0
- package/dist/components/docs-link.js.map +1 -0
- package/dist/components/index.d.ts +17 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +16 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/layout/Header.d.ts +5 -0
- package/dist/components/layout/Header.d.ts.map +1 -0
- package/dist/components/layout/Header.js +61 -0
- package/dist/components/layout/Header.js.map +1 -0
- package/dist/components/layout/HeaderActions.d.ts +2 -0
- package/dist/components/layout/HeaderActions.d.ts.map +1 -0
- package/dist/components/layout/HeaderActions.js +2 -0
- package/dist/components/layout/HeaderActions.js.map +1 -0
- package/dist/components/layout/Layout.d.ts +60 -0
- package/dist/components/layout/Layout.d.ts.map +1 -0
- package/dist/components/layout/Layout.js +1302 -0
- package/dist/components/layout/Layout.js.map +1 -0
- package/dist/components/layout/workspace-apps-rail.d.ts +5 -0
- package/dist/components/layout/workspace-apps-rail.d.ts.map +1 -0
- package/dist/components/layout/workspace-apps-rail.js +56 -0
- package/dist/components/layout/workspace-apps-rail.js.map +1 -0
- package/dist/components/messaging-setup-panel.d.ts +2 -0
- package/dist/components/messaging-setup-panel.d.ts.map +1 -0
- package/dist/components/messaging-setup-panel.js +414 -0
- package/dist/components/messaging-setup-panel.js.map +1 -0
- package/dist/components/other-apps-section.d.ts +33 -0
- package/dist/components/other-apps-section.d.ts.map +1 -0
- package/dist/components/other-apps-section.js +66 -0
- package/dist/components/other-apps-section.js.map +1 -0
- package/dist/components/simple-agents-panel.d.ts +12 -0
- package/dist/components/simple-agents-panel.d.ts.map +1 -0
- package/dist/components/simple-agents-panel.js +438 -0
- package/dist/components/simple-agents-panel.js.map +1 -0
- package/dist/components/task-queue-health.d.ts +2 -0
- package/dist/components/task-queue-health.d.ts.map +1 -0
- package/dist/components/task-queue-health.js +58 -0
- package/dist/components/task-queue-health.js.map +1 -0
- package/dist/components/transactional-email-activity.d.ts +24 -0
- package/dist/components/transactional-email-activity.d.ts.map +1 -0
- package/dist/components/transactional-email-activity.js +31 -0
- package/dist/components/transactional-email-activity.js.map +1 -0
- package/dist/components/transactional-email-metrics.d.ts +40 -0
- package/dist/components/transactional-email-metrics.d.ts.map +1 -0
- package/dist/components/transactional-email-metrics.js +44 -0
- package/dist/components/transactional-email-metrics.js.map +1 -0
- package/dist/components/transactional-email-preview.d.ts +7 -0
- package/dist/components/transactional-email-preview.d.ts.map +1 -0
- package/dist/components/transactional-email-preview.js +41 -0
- package/dist/components/transactional-email-preview.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +8 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +14 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +21 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +27 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert.d.ts +9 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +23 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +4 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.js +4 -0
- package/dist/components/ui/aspect-ratio.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +12 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +21 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +20 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +24 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +34 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +41 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +17 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/carousel.d.ts +19 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/carousel.js +99 -0
- package/dist/components/ui/carousel.js.map +1 -0
- package/dist/components/ui/chart.d.ts +80 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +131 -0
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +9 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +6 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/command.d.ts +83 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +29 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +28 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/context-menu.js +34 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +2 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +2 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +23 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +23 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +2 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +2 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/form.d.ts +26 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/form.js +63 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/hover-card.d.ts +7 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/hover-card.js +10 -0
- package/dist/components/ui/hover-card.js.map +1 -0
- package/dist/components/ui/input-otp.d.ts +35 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/input-otp.js +19 -0
- package/dist/components/ui/input-otp.js.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +9 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +10 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/menubar.d.ts +29 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/menubar.js +41 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +13 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.js +25 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +29 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +24 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +11 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +5 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +8 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +6 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +15 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/resizable.d.ts +8 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable.js +9 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +12 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +2 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +2 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +8 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +26 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +37 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/sidebar.d.ts +67 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +233 -0
- package/dist/components/ui/sidebar.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +7 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.d.ts +5 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/slider.js +8 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +5 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +25 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +3 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner.js +7 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +8 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +21 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +13 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +6 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +9 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toast.d.ts +16 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +34 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/components/ui/toaster.d.ts.map +1 -0
- package/dist/components/ui/toaster.js +10 -0
- package/dist/components/ui/toaster.js.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +13 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.js +21 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +13 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle.js +26 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +11 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/ui/use-toast.d.ts +3 -0
- package/dist/components/ui/use-toast.d.ts.map +1 -0
- package/dist/components/ui/use-toast.js +3 -0
- package/dist/components/ui/use-toast.js.map +1 -0
- package/dist/components/usage-alerts-panel.d.ts +11 -0
- package/dist/components/usage-alerts-panel.d.ts.map +1 -0
- package/dist/components/usage-alerts-panel.js +125 -0
- package/dist/components/usage-alerts-panel.js.map +1 -0
- package/dist/components/workspace-app-card.d.ts +8 -0
- package/dist/components/workspace-app-card.d.ts.map +1 -0
- package/dist/components/workspace-app-card.js +198 -0
- package/dist/components/workspace-app-card.js.map +1 -0
- package/dist/components/workspace-app-host.d.ts +50 -0
- package/dist/components/workspace-app-host.d.ts.map +1 -0
- package/dist/components/workspace-app-host.js +386 -0
- package/dist/components/workspace-app-host.js.map +1 -0
- package/dist/components/workspace-app-search.d.ts +10 -0
- package/dist/components/workspace-app-search.d.ts.map +1 -0
- package/dist/components/workspace-app-search.js +27 -0
- package/dist/components/workspace-app-search.js.map +1 -0
- package/dist/components/workspace-resource-effective-stack.d.ts +11 -0
- package/dist/components/workspace-resource-effective-stack.d.ts.map +1 -0
- package/dist/components/workspace-resource-effective-stack.js +65 -0
- package/dist/components/workspace-resource-effective-stack.js.map +1 -0
- package/dist/components/workspace-resource-impact-preview.d.ts +9 -0
- package/dist/components/workspace-resource-impact-preview.d.ts.map +1 -0
- package/dist/components/workspace-resource-impact-preview.js +44 -0
- package/dist/components/workspace-resource-impact-preview.js.map +1 -0
- package/dist/components/workspace-template-card.d.ts +58 -0
- package/dist/components/workspace-template-card.d.ts.map +1 -0
- package/dist/components/workspace-template-card.js +113 -0
- package/dist/components/workspace-template-card.js.map +1 -0
- package/dist/config.d.ts +40 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -0
- package/dist/db/index.d.ts +7 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +35 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +3 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +250 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/schema.d.ts +3059 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +194 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +2 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-navigation-state.d.ts +25 -0
- package/dist/hooks/use-navigation-state.d.ts.map +1 -0
- package/dist/hooks/use-navigation-state.js +353 -0
- package/dist/hooks/use-navigation-state.js.map +1 -0
- package/dist/hooks/use-toast.d.ts +45 -0
- package/dist/hooks/use-toast.d.ts.map +1 -0
- package/dist/hooks/use-toast.js +127 -0
- package/dist/hooks/use-toast.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent-pack.d.ts +31 -0
- package/dist/lib/agent-pack.d.ts.map +1 -0
- package/dist/lib/agent-pack.js +149 -0
- package/dist/lib/agent-pack.js.map +1 -0
- package/dist/lib/automation-display.d.ts +22 -0
- package/dist/lib/automation-display.d.ts.map +1 -0
- package/dist/lib/automation-display.js +88 -0
- package/dist/lib/automation-display.js.map +1 -0
- package/dist/lib/automations.d.ts +32 -0
- package/dist/lib/automations.d.ts.map +1 -0
- package/dist/lib/automations.js +28 -0
- package/dist/lib/automations.js.map +1 -0
- package/dist/lib/browser-chat-bridge.d.ts +8 -0
- package/dist/lib/browser-chat-bridge.d.ts.map +1 -0
- package/dist/lib/browser-chat-bridge.js +48 -0
- package/dist/lib/browser-chat-bridge.js.map +1 -0
- package/dist/lib/browser-chat-protocol.d.ts +33 -0
- package/dist/lib/browser-chat-protocol.d.ts.map +1 -0
- package/dist/lib/browser-chat-protocol.js +82 -0
- package/dist/lib/browser-chat-protocol.js.map +1 -0
- package/dist/lib/catch-all-target.d.ts +17 -0
- package/dist/lib/catch-all-target.d.ts.map +1 -0
- package/dist/lib/catch-all-target.js +103 -0
- package/dist/lib/catch-all-target.js.map +1 -0
- package/dist/lib/embed-session-recovery.d.ts +3 -0
- package/dist/lib/embed-session-recovery.d.ts.map +1 -0
- package/dist/lib/embed-session-recovery.js +18 -0
- package/dist/lib/embed-session-recovery.js.map +1 -0
- package/dist/lib/other-apps.d.ts +16 -0
- package/dist/lib/other-apps.d.ts.map +1 -0
- package/dist/lib/other-apps.js +36 -0
- package/dist/lib/other-apps.js.map +1 -0
- package/dist/lib/overview-chat.d.ts +9 -0
- package/dist/lib/overview-chat.d.ts.map +1 -0
- package/dist/lib/overview-chat.js +16 -0
- package/dist/lib/overview-chat.js.map +1 -0
- package/dist/lib/simple-agent-profile.d.ts +36 -0
- package/dist/lib/simple-agent-profile.d.ts.map +1 -0
- package/dist/lib/simple-agent-profile.js +183 -0
- package/dist/lib/simple-agent-profile.js.map +1 -0
- package/dist/lib/task-queue.d.ts +19 -0
- package/dist/lib/task-queue.d.ts.map +1 -0
- package/dist/lib/task-queue.js +54 -0
- package/dist/lib/task-queue.js.map +1 -0
- package/dist/lib/thread-link-preview.d.ts +23 -0
- package/dist/lib/thread-link-preview.d.ts.map +1 -0
- package/dist/lib/thread-link-preview.js +150 -0
- package/dist/lib/thread-link-preview.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/workspace-app-layout.d.ts +19 -0
- package/dist/lib/workspace-app-layout.d.ts.map +1 -0
- package/dist/lib/workspace-app-layout.js +75 -0
- package/dist/lib/workspace-app-layout.js.map +1 -0
- package/dist/lib/workspace-apps.d.ts +72 -0
- package/dist/lib/workspace-apps.d.ts.map +1 -0
- package/dist/lib/workspace-apps.js +228 -0
- package/dist/lib/workspace-apps.js.map +1 -0
- package/dist/lib/workspace-apps.test.d.ts +2 -0
- package/dist/lib/workspace-apps.test.d.ts.map +1 -0
- package/dist/lib/workspace-apps.test.js +105 -0
- package/dist/lib/workspace-apps.test.js.map +1 -0
- package/dist/routes/index.d.ts +32 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +89 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/pages/$appId.d.ts +8 -0
- package/dist/routes/pages/$appId.d.ts.map +1 -0
- package/dist/routes/pages/$appId.js +126 -0
- package/dist/routes/pages/$appId.js.map +1 -0
- package/dist/routes/pages/_index.d.ts +22 -0
- package/dist/routes/pages/_index.d.ts.map +1 -0
- package/dist/routes/pages/_index.js +53 -0
- package/dist/routes/pages/_index.js.map +1 -0
- package/dist/routes/pages/_index.test.d.ts +2 -0
- package/dist/routes/pages/_index.test.d.ts.map +1 -0
- package/dist/routes/pages/_index.test.js +29 -0
- package/dist/routes/pages/_index.test.js.map +1 -0
- package/dist/routes/pages/admin._index.d.ts +5 -0
- package/dist/routes/pages/admin._index.d.ts.map +1 -0
- package/dist/routes/pages/admin._index.js +44 -0
- package/dist/routes/pages/admin._index.js.map +1 -0
- package/dist/routes/pages/admin.d.ts +5 -0
- package/dist/routes/pages/admin.d.ts.map +1 -0
- package/dist/routes/pages/admin.js +10 -0
- package/dist/routes/pages/admin.js.map +1 -0
- package/dist/routes/pages/agent-integrations.d.ts +5 -0
- package/dist/routes/pages/agent-integrations.d.ts.map +1 -0
- package/dist/routes/pages/agent-integrations.js +15 -0
- package/dist/routes/pages/agent-integrations.js.map +1 -0
- package/dist/routes/pages/agents.d.ts +5 -0
- package/dist/routes/pages/agents.d.ts.map +1 -0
- package/dist/routes/pages/agents.js +96 -0
- package/dist/routes/pages/agents.js.map +1 -0
- package/dist/routes/pages/approval.d.ts +5 -0
- package/dist/routes/pages/approval.d.ts.map +1 -0
- package/dist/routes/pages/approval.js +58 -0
- package/dist/routes/pages/approval.js.map +1 -0
- package/dist/routes/pages/approvals.d.ts +5 -0
- package/dist/routes/pages/approvals.d.ts.map +1 -0
- package/dist/routes/pages/approvals.js +55 -0
- package/dist/routes/pages/approvals.js.map +1 -0
- package/dist/routes/pages/apps.$appId.d.ts +6 -0
- package/dist/routes/pages/apps.$appId.d.ts.map +1 -0
- package/dist/routes/pages/apps.$appId.js +15 -0
- package/dist/routes/pages/apps.$appId.js.map +1 -0
- package/dist/routes/pages/apps.d.ts +5 -0
- package/dist/routes/pages/apps.d.ts.map +1 -0
- package/dist/routes/pages/apps.js +113 -0
- package/dist/routes/pages/apps.js.map +1 -0
- package/dist/routes/pages/audit.d.ts +5 -0
- package/dist/routes/pages/audit.d.ts.map +1 -0
- package/dist/routes/pages/audit.js +14 -0
- package/dist/routes/pages/audit.js.map +1 -0
- package/dist/routes/pages/automations.d.ts +5 -0
- package/dist/routes/pages/automations.d.ts.map +1 -0
- package/dist/routes/pages/automations.js +124 -0
- package/dist/routes/pages/automations.js.map +1 -0
- package/dist/routes/pages/browser-chat.d.ts +5 -0
- package/dist/routes/pages/browser-chat.d.ts.map +1 -0
- package/dist/routes/pages/browser-chat.js +43 -0
- package/dist/routes/pages/browser-chat.js.map +1 -0
- package/dist/routes/pages/browser-connect.d.ts +5 -0
- package/dist/routes/pages/browser-connect.d.ts.map +1 -0
- package/dist/routes/pages/browser-connect.js +72 -0
- package/dist/routes/pages/browser-connect.js.map +1 -0
- package/dist/routes/pages/chat.d.ts +5 -0
- package/dist/routes/pages/chat.d.ts.map +1 -0
- package/dist/routes/pages/chat.js +192 -0
- package/dist/routes/pages/chat.js.map +1 -0
- package/dist/routes/pages/destinations.d.ts +5 -0
- package/dist/routes/pages/destinations.d.ts.map +1 -0
- package/dist/routes/pages/destinations.js +96 -0
- package/dist/routes/pages/destinations.js.map +1 -0
- package/dist/routes/pages/dream-settings.d.ts +34 -0
- package/dist/routes/pages/dream-settings.d.ts.map +1 -0
- package/dist/routes/pages/dream-settings.js +68 -0
- package/dist/routes/pages/dream-settings.js.map +1 -0
- package/dist/routes/pages/dreams.d.ts +5 -0
- package/dist/routes/pages/dreams.d.ts.map +1 -0
- package/dist/routes/pages/dreams.js +455 -0
- package/dist/routes/pages/dreams.js.map +1 -0
- package/dist/routes/pages/extensions.$id.d.ts +5 -0
- package/dist/routes/pages/extensions.$id.d.ts.map +1 -0
- package/dist/routes/pages/extensions.$id.js +9 -0
- package/dist/routes/pages/extensions.$id.js.map +1 -0
- package/dist/routes/pages/extensions._index.d.ts +5 -0
- package/dist/routes/pages/extensions._index.d.ts.map +1 -0
- package/dist/routes/pages/extensions._index.js +9 -0
- package/dist/routes/pages/extensions._index.js.map +1 -0
- package/dist/routes/pages/identities.d.ts +5 -0
- package/dist/routes/pages/identities.d.ts.map +1 -0
- package/dist/routes/pages/identities.js +20 -0
- package/dist/routes/pages/identities.js.map +1 -0
- package/dist/routes/pages/integrations.d.ts +5 -0
- package/dist/routes/pages/integrations.d.ts.map +1 -0
- package/dist/routes/pages/integrations.js +196 -0
- package/dist/routes/pages/integrations.js.map +1 -0
- package/dist/routes/pages/messaging.d.ts +5 -0
- package/dist/routes/pages/messaging.d.ts.map +1 -0
- package/dist/routes/pages/messaging.js +10 -0
- package/dist/routes/pages/messaging.js.map +1 -0
- package/dist/routes/pages/metrics.d.ts +5 -0
- package/dist/routes/pages/metrics.d.ts.map +1 -0
- package/dist/routes/pages/metrics.js +305 -0
- package/dist/routes/pages/metrics.js.map +1 -0
- package/dist/routes/pages/new-app.d.ts +5 -0
- package/dist/routes/pages/new-app.d.ts.map +1 -0
- package/dist/routes/pages/new-app.js +12 -0
- package/dist/routes/pages/new-app.js.map +1 -0
- package/dist/routes/pages/operations.d.ts +5 -0
- package/dist/routes/pages/operations.d.ts.map +1 -0
- package/dist/routes/pages/operations.js +53 -0
- package/dist/routes/pages/operations.js.map +1 -0
- package/dist/routes/pages/overview.d.ts +18 -0
- package/dist/routes/pages/overview.d.ts.map +1 -0
- package/dist/routes/pages/overview.js +19 -0
- package/dist/routes/pages/overview.js.map +1 -0
- package/dist/routes/pages/settings.d.ts +5 -0
- package/dist/routes/pages/settings.d.ts.map +1 -0
- package/dist/routes/pages/settings.js +57 -0
- package/dist/routes/pages/settings.js.map +1 -0
- package/dist/routes/pages/team.d.ts +5 -0
- package/dist/routes/pages/team.d.ts.map +1 -0
- package/dist/routes/pages/team.js +9 -0
- package/dist/routes/pages/team.js.map +1 -0
- package/dist/routes/pages/thread-debug.d.ts +5 -0
- package/dist/routes/pages/thread-debug.d.ts.map +1 -0
- package/dist/routes/pages/thread-debug.js +563 -0
- package/dist/routes/pages/thread-debug.js.map +1 -0
- package/dist/routes/pages/tools.$id.d.ts +5 -0
- package/dist/routes/pages/tools.$id.d.ts.map +1 -0
- package/dist/routes/pages/tools.$id.js +9 -0
- package/dist/routes/pages/tools.$id.js.map +1 -0
- package/dist/routes/pages/tools._index.d.ts +5 -0
- package/dist/routes/pages/tools._index.d.ts.map +1 -0
- package/dist/routes/pages/tools._index.js +9 -0
- package/dist/routes/pages/tools._index.js.map +1 -0
- package/dist/routes/pages/transactional-email.$appId.$id.d.ts +5 -0
- package/dist/routes/pages/transactional-email.$appId.$id.d.ts.map +1 -0
- package/dist/routes/pages/transactional-email.$appId.$id.js +147 -0
- package/dist/routes/pages/transactional-email.$appId.$id.js.map +1 -0
- package/dist/routes/pages/transactional-email.d.ts +5 -0
- package/dist/routes/pages/transactional-email.d.ts.map +1 -0
- package/dist/routes/pages/transactional-email.js +143 -0
- package/dist/routes/pages/transactional-email.js.map +1 -0
- package/dist/routes/pages/vault.d.ts +5 -0
- package/dist/routes/pages/vault.d.ts.map +1 -0
- package/dist/routes/pages/vault.js +214 -0
- package/dist/routes/pages/vault.js.map +1 -0
- package/dist/routes/pages/workspace.d.ts +5 -0
- package/dist/routes/pages/workspace.d.ts.map +1 -0
- package/dist/routes/pages/workspace.js +336 -0
- package/dist/routes/pages/workspace.js.map +1 -0
- package/dist/server/index.d.ts +44 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +71 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/lib/agent-pack-store.d.ts +24 -0
- package/dist/server/lib/agent-pack-store.d.ts.map +1 -0
- package/dist/server/lib/agent-pack-store.js +22 -0
- package/dist/server/lib/agent-pack-store.js.map +1 -0
- package/dist/server/lib/app-creation-store.d.ts +164 -0
- package/dist/server/lib/app-creation-store.d.ts.map +1 -0
- package/dist/server/lib/app-creation-store.js +1975 -0
- package/dist/server/lib/app-creation-store.js.map +1 -0
- package/dist/server/lib/browser-extension-allowlist.d.ts +9 -0
- package/dist/server/lib/browser-extension-allowlist.d.ts.map +1 -0
- package/dist/server/lib/browser-extension-allowlist.js +39 -0
- package/dist/server/lib/browser-extension-allowlist.js.map +1 -0
- package/dist/server/lib/curated-workspace-templates.d.ts +22 -0
- package/dist/server/lib/curated-workspace-templates.d.ts.map +1 -0
- package/dist/server/lib/curated-workspace-templates.js +137 -0
- package/dist/server/lib/curated-workspace-templates.js.map +1 -0
- package/dist/server/lib/dispatch-integrations.d.ts +16 -0
- package/dist/server/lib/dispatch-integrations.d.ts.map +1 -0
- package/dist/server/lib/dispatch-integrations.js +411 -0
- package/dist/server/lib/dispatch-integrations.js.map +1 -0
- package/dist/server/lib/dispatch-remote-commands.d.ts +83 -0
- package/dist/server/lib/dispatch-remote-commands.d.ts.map +1 -0
- package/dist/server/lib/dispatch-remote-commands.js +256 -0
- package/dist/server/lib/dispatch-remote-commands.js.map +1 -0
- package/dist/server/lib/dispatch-routing.d.ts +6 -0
- package/dist/server/lib/dispatch-routing.d.ts.map +1 -0
- package/dist/server/lib/dispatch-routing.js +30 -0
- package/dist/server/lib/dispatch-routing.js.map +1 -0
- package/dist/server/lib/dispatch-store.d.ts +342 -0
- package/dist/server/lib/dispatch-store.d.ts.map +1 -0
- package/dist/server/lib/dispatch-store.js +725 -0
- package/dist/server/lib/dispatch-store.js.map +1 -0
- package/dist/server/lib/dreams-store.d.ts +398 -0
- package/dist/server/lib/dreams-store.d.ts.map +1 -0
- package/dist/server/lib/dreams-store.js +2330 -0
- package/dist/server/lib/dreams-store.js.map +1 -0
- package/dist/server/lib/env-config.d.ts +3 -0
- package/dist/server/lib/env-config.d.ts.map +1 -0
- package/dist/server/lib/env-config.js +98 -0
- package/dist/server/lib/env-config.js.map +1 -0
- package/dist/server/lib/mcp-access-store.d.ts +16 -0
- package/dist/server/lib/mcp-access-store.d.ts.map +1 -0
- package/dist/server/lib/mcp-access-store.js +92 -0
- package/dist/server/lib/mcp-access-store.js.map +1 -0
- package/dist/server/lib/mcp-gateway.d.ts +90 -0
- package/dist/server/lib/mcp-gateway.d.ts.map +1 -0
- package/dist/server/lib/mcp-gateway.js +1036 -0
- package/dist/server/lib/mcp-gateway.js.map +1 -0
- package/dist/server/lib/onboarding-steps.d.ts +12 -0
- package/dist/server/lib/onboarding-steps.d.ts.map +1 -0
- package/dist/server/lib/onboarding-steps.js +72 -0
- package/dist/server/lib/onboarding-steps.js.map +1 -0
- package/dist/server/lib/provider-api.d.ts +29 -0
- package/dist/server/lib/provider-api.d.ts.map +1 -0
- package/dist/server/lib/provider-api.js +49 -0
- package/dist/server/lib/provider-api.js.map +1 -0
- package/dist/server/lib/thread-debug-store.d.ts +194 -0
- package/dist/server/lib/thread-debug-store.d.ts.map +1 -0
- package/dist/server/lib/thread-debug-store.js +849 -0
- package/dist/server/lib/thread-debug-store.js.map +1 -0
- package/dist/server/lib/thread-link-preview.d.ts +3 -0
- package/dist/server/lib/thread-link-preview.d.ts.map +1 -0
- package/dist/server/lib/thread-link-preview.js +28 -0
- package/dist/server/lib/thread-link-preview.js.map +1 -0
- package/dist/server/lib/usage-metrics-store.d.ts +113 -0
- package/dist/server/lib/usage-metrics-store.d.ts.map +1 -0
- package/dist/server/lib/usage-metrics-store.js +580 -0
- package/dist/server/lib/usage-metrics-store.js.map +1 -0
- package/dist/server/lib/vault-boot-resync.d.ts +23 -0
- package/dist/server/lib/vault-boot-resync.d.ts.map +1 -0
- package/dist/server/lib/vault-boot-resync.js +44 -0
- package/dist/server/lib/vault-boot-resync.js.map +1 -0
- package/dist/server/lib/vault-store.d.ts +381 -0
- package/dist/server/lib/vault-store.d.ts.map +1 -0
- package/dist/server/lib/vault-store.js +1106 -0
- package/dist/server/lib/vault-store.js.map +1 -0
- package/dist/server/lib/workspace-app-action-auth.d.ts +9 -0
- package/dist/server/lib/workspace-app-action-auth.d.ts.map +1 -0
- package/dist/server/lib/workspace-app-action-auth.js +102 -0
- package/dist/server/lib/workspace-app-action-auth.js.map +1 -0
- package/dist/server/lib/workspace-app-chat-proxy.d.ts +52 -0
- package/dist/server/lib/workspace-app-chat-proxy.d.ts.map +1 -0
- package/dist/server/lib/workspace-app-chat-proxy.js +306 -0
- package/dist/server/lib/workspace-app-chat-proxy.js.map +1 -0
- package/dist/server/lib/workspace-resources-store.d.ts +372 -0
- package/dist/server/lib/workspace-resources-store.d.ts.map +1 -0
- package/dist/server/lib/workspace-resources-store.js +1000 -0
- package/dist/server/lib/workspace-resources-store.js.map +1 -0
- package/dist/server/plugins/agent-chat.d.ts +3 -0
- package/dist/server/plugins/agent-chat.d.ts.map +1 -0
- package/dist/server/plugins/agent-chat.js +94 -0
- package/dist/server/plugins/agent-chat.js.map +1 -0
- package/dist/server/plugins/auth.d.ts +9 -0
- package/dist/server/plugins/auth.d.ts.map +1 -0
- package/dist/server/plugins/auth.js +31 -0
- package/dist/server/plugins/auth.js.map +1 -0
- package/dist/server/plugins/core-routes.d.ts +4 -0
- package/dist/server/plugins/core-routes.d.ts.map +1 -0
- package/dist/server/plugins/core-routes.js +18 -0
- package/dist/server/plugins/core-routes.js.map +1 -0
- package/dist/server/plugins/db.d.ts +11 -0
- package/dist/server/plugins/db.d.ts.map +1 -0
- package/dist/server/plugins/db.js +18 -0
- package/dist/server/plugins/db.js.map +1 -0
- package/dist/server/plugins/integrations.d.ts +8 -0
- package/dist/server/plugins/integrations.d.ts.map +1 -0
- package/dist/server/plugins/integrations.js +72 -0
- package/dist/server/plugins/integrations.js.map +1 -0
- package/dist/shared/app-roles.d.ts +9 -0
- package/dist/shared/app-roles.d.ts.map +1 -0
- package/dist/shared/app-roles.js +7 -0
- package/dist/shared/app-roles.js.map +1 -0
- package/dist/shared/chat-first-pane.d.ts +8 -0
- package/dist/shared/chat-first-pane.d.ts.map +1 -0
- package/dist/shared/chat-first-pane.js +8 -0
- package/dist/shared/chat-first-pane.js.map +1 -0
- package/dist/shared/feature-flags.d.ts +8 -0
- package/dist/shared/feature-flags.d.ts.map +1 -0
- package/dist/shared/feature-flags.js +17 -0
- package/dist/shared/feature-flags.js.map +1 -0
- package/dist/shared/workspace-app-chat.d.ts +23 -0
- package/dist/shared/workspace-app-chat.d.ts.map +1 -0
- package/dist/shared/workspace-app-chat.js +45 -0
- package/dist/shared/workspace-app-chat.js.map +1 -0
- package/dist/shared/workspace-sso.d.ts +48 -0
- package/dist/shared/workspace-sso.d.ts.map +1 -0
- package/dist/shared/workspace-sso.js +142 -0
- package/dist/shared/workspace-sso.js.map +1 -0
- package/package.json +118 -0
- package/src/actions/apply-dream-proposal.ts +13 -0
- package/src/actions/approve-dispatch-change.ts +12 -0
- package/src/actions/approve-vault-request.ts +24 -0
- package/src/actions/archive-workspace-app.ts +17 -0
- package/src/actions/ask_app.ts +26 -0
- package/src/actions/ask_app_status.ts +16 -0
- package/src/actions/connect-external-agent.ts +92 -0
- package/src/actions/create-browser-chat-session.spec.ts +122 -0
- package/src/actions/create-browser-chat-session.ts +99 -0
- package/src/actions/create-dream-report.ts +77 -0
- package/src/actions/create-link-token.ts +13 -0
- package/src/actions/create-pylon-ticket.ts +111 -0
- package/src/actions/create-vault-grant.ts +16 -0
- package/src/actions/create-vault-secret.ts +28 -0
- package/src/actions/create-workspace-resource-grant.ts +16 -0
- package/src/actions/create-workspace-resource.ts +37 -0
- package/src/actions/create_embed_session.ts +30 -0
- package/src/actions/create_workspace_app_embed_session.spec.ts +122 -0
- package/src/actions/create_workspace_app_embed_session.ts +102 -0
- package/src/actions/delete-destination.ts +12 -0
- package/src/actions/delete-staged-dataset.ts +10 -0
- package/src/actions/delete-vault-secret.ts +13 -0
- package/src/actions/delete-workspace-resource.ts +13 -0
- package/src/actions/deny-vault-request.ts +13 -0
- package/src/actions/ensure-dream-job.ts +77 -0
- package/src/actions/get-agent-thread-debug.ts +41 -0
- package/src/actions/get-app-creation-settings.ts +12 -0
- package/src/actions/get-dispatch-settings.ts +11 -0
- package/src/actions/get-dream-settings.ts +13 -0
- package/src/actions/get-dream.ts +15 -0
- package/src/actions/get-vault-access-settings.ts +12 -0
- package/src/actions/get-workspace-info.ts +12 -0
- package/src/actions/get-workspace-resource-effective-context.ts +35 -0
- package/src/actions/grant-vault-secrets-to-app.ts +21 -0
- package/src/actions/grant-workspace-resources-to-app.ts +17 -0
- package/src/actions/import-agent-pack.ts +146 -0
- package/src/actions/import-agent.ts +102 -0
- package/src/actions/index.spec.ts +59 -0
- package/src/actions/index.ts +210 -0
- package/src/actions/list-agent-pack.ts +43 -0
- package/src/actions/list-agent-run-failures.ts +50 -0
- package/src/actions/list-agent-thread-sources.ts +13 -0
- package/src/actions/list-available-workspace-templates.ts +12 -0
- package/src/actions/list-connected-agents.spec.ts +73 -0
- package/src/actions/list-connected-agents.ts +112 -0
- package/src/actions/list-curated-workspace-templates.spec.ts +36 -0
- package/src/actions/list-curated-workspace-templates.ts +12 -0
- package/src/actions/list-destinations.ts +11 -0
- package/src/actions/list-dispatch-approvals.ts +11 -0
- package/src/actions/list-dispatch-audit.ts +13 -0
- package/src/actions/list-dispatch-overview.ts +19 -0
- package/src/actions/list-dispatch-usage-metrics.ts +30 -0
- package/src/actions/list-dream-candidates.ts +78 -0
- package/src/actions/list-dreams.ts +18 -0
- package/src/actions/list-integrations-catalog.ts +12 -0
- package/src/actions/list-linked-identities.ts +11 -0
- package/src/actions/list-mcp-app-access.ts +27 -0
- package/src/actions/list-staged-datasets.ts +10 -0
- package/src/actions/list-vault-audit.ts +17 -0
- package/src/actions/list-vault-grants.ts +15 -0
- package/src/actions/list-vault-requests.ts +17 -0
- package/src/actions/list-vault-secret-options.ts +14 -0
- package/src/actions/list-vault-secrets.ts +27 -0
- package/src/actions/list-workspace-apps.ts +33 -0
- package/src/actions/list-workspace-resource-grants.ts +15 -0
- package/src/actions/list-workspace-resource-options.ts +24 -0
- package/src/actions/list-workspace-resources-for-app.ts +14 -0
- package/src/actions/list-workspace-resources.ts +24 -0
- package/src/actions/list_apps.spec.ts +52 -0
- package/src/actions/list_apps.ts +36 -0
- package/src/actions/navigate.ts +53 -0
- package/src/actions/open_app.spec.ts +106 -0
- package/src/actions/open_app.ts +152 -0
- package/src/actions/preview-dream-proposal.ts +15 -0
- package/src/actions/preview-workspace-resource-change.ts +26 -0
- package/src/actions/provider-api-audit.spec.ts +51 -0
- package/src/actions/provider-api-catalog.ts +14 -0
- package/src/actions/provider-api-docs.ts +24 -0
- package/src/actions/provider-api-register.spec.ts +193 -0
- package/src/actions/provider-api-register.ts +35 -0
- package/src/actions/provider-api-request.ts +28 -0
- package/src/actions/query-staged-dataset.ts +10 -0
- package/src/actions/read-slack-thread-context.spec.ts +134 -0
- package/src/actions/read-slack-thread-context.ts +171 -0
- package/src/actions/reject-dispatch-change.ts +13 -0
- package/src/actions/reject-dream-proposal.ts +13 -0
- package/src/actions/remix-workspace-template.spec.ts +145 -0
- package/src/actions/remix-workspace-template.ts +106 -0
- package/src/actions/remove-pending-workspace-app.ts +17 -0
- package/src/actions/request-vault-secret.ts +17 -0
- package/src/actions/resolve-integration-source-context.spec.ts +78 -0
- package/src/actions/resolve-integration-source-context.ts +37 -0
- package/src/actions/restore-starter-workspace-resources.ts +18 -0
- package/src/actions/revoke-vault-grant.ts +12 -0
- package/src/actions/revoke-workspace-resource-grant.ts +16 -0
- package/src/actions/scaffold-workspace-app.spec.ts +33 -0
- package/src/actions/scaffold-workspace-app.ts +57 -0
- package/src/actions/search-agent-threads.ts +31 -0
- package/src/actions/send-code-agent-remote-command.ts +60 -0
- package/src/actions/send-platform-message.spec.ts +129 -0
- package/src/actions/send-platform-message.ts +150 -0
- package/src/actions/set-app-creation-settings.ts +22 -0
- package/src/actions/set-dispatch-approval-policy.ts +25 -0
- package/src/actions/set-dream-settings.spec.ts +81 -0
- package/src/actions/set-dream-settings.ts +45 -0
- package/src/actions/set-mcp-app-access.spec.ts +73 -0
- package/src/actions/set-mcp-app-access.ts +56 -0
- package/src/actions/set-vault-access-settings.ts +17 -0
- package/src/actions/start-workspace-app-creation.ts +55 -0
- package/src/actions/sync-vault-to-app.ts +15 -0
- package/src/actions/unarchive-workspace-app.ts +17 -0
- package/src/actions/update-vault-secret.ts +49 -0
- package/src/actions/update-workspace-app-metadata.ts +33 -0
- package/src/actions/update-workspace-resource.ts +20 -0
- package/src/actions/upsert-destination.ts +30 -0
- package/src/actions/view-screen.spec.ts +212 -0
- package/src/actions/view-screen.ts +398 -0
- package/src/client/transactional-emails.spec.ts +91 -0
- package/src/client/transactional-emails.ts +201 -0
- package/src/components/action-query-error.spec.tsx +56 -0
- package/src/components/action-query-error.tsx +32 -0
- package/src/components/admin-navigation.tsx +329 -0
- package/src/components/agents-panel.tsx +383 -0
- package/src/components/app-icon.spec.tsx +44 -0
- package/src/components/app-icon.tsx +177 -0
- package/src/components/app-keys-popover.spec.tsx +146 -0
- package/src/components/app-keys-popover.tsx +300 -0
- package/src/components/app-list-row.tsx +40 -0
- package/src/components/app-open-actions.tsx +5 -0
- package/src/components/app-row-settings.tsx +54 -0
- package/src/components/approval-value-block.spec.tsx +60 -0
- package/src/components/approval-value-block.tsx +33 -0
- package/src/components/automation-run-history-dialog.tsx +247 -0
- package/src/components/connected-app-card.tsx +39 -0
- package/src/components/create-app-popover.spec.tsx +376 -0
- package/src/components/create-app-popover.tsx +677 -0
- package/src/components/dispatch-control-plane.spec.tsx +344 -0
- package/src/components/dispatch-control-plane.tsx +416 -0
- package/src/components/dispatch-shell.tsx +59 -0
- package/src/components/docs-link.tsx +52 -0
- package/src/components/index.ts +21 -0
- package/src/components/layout/Header.tsx +100 -0
- package/src/components/layout/HeaderActions.tsx +1 -0
- package/src/components/layout/Layout.app-chat.spec.ts +31 -0
- package/src/components/layout/Layout.spec.tsx +549 -0
- package/src/components/layout/Layout.tsx +2532 -0
- package/src/components/layout/workspace-apps-rail.tsx +132 -0
- package/src/components/messaging-setup-panel.spec.tsx +261 -0
- package/src/components/messaging-setup-panel.tsx +1131 -0
- package/src/components/other-apps-section.tsx +223 -0
- package/src/components/simple-agents-panel.spec.tsx +153 -0
- package/src/components/simple-agents-panel.tsx +1311 -0
- package/src/components/task-queue-health.tsx +175 -0
- package/src/components/transactional-email-activity.tsx +102 -0
- package/src/components/transactional-email-metrics.tsx +127 -0
- package/src/components/transactional-email-preview.tsx +88 -0
- package/src/components/ui/accordion.tsx +56 -0
- package/src/components/ui/alert-dialog.tsx +139 -0
- package/src/components/ui/alert.tsx +59 -0
- package/src/components/ui/aspect-ratio.tsx +5 -0
- package/src/components/ui/avatar.tsx +48 -0
- package/src/components/ui/badge.tsx +37 -0
- package/src/components/ui/breadcrumb.tsx +115 -0
- package/src/components/ui/button.tsx +56 -0
- package/src/components/ui/calendar.tsx +68 -0
- package/src/components/ui/card.tsx +86 -0
- package/src/components/ui/carousel.tsx +260 -0
- package/src/components/ui/chart.tsx +375 -0
- package/src/components/ui/checkbox.tsx +28 -0
- package/src/components/ui/collapsible.tsx +9 -0
- package/src/components/ui/command.tsx +154 -0
- package/src/components/ui/context-menu.tsx +198 -0
- package/src/components/ui/dialog.tsx +1 -0
- package/src/components/ui/drawer.tsx +128 -0
- package/src/components/ui/dropdown-menu.tsx +1 -0
- package/src/components/ui/form.tsx +177 -0
- package/src/components/ui/hover-card.tsx +27 -0
- package/src/components/ui/input-otp.tsx +69 -0
- package/src/components/ui/input.tsx +22 -0
- package/src/components/ui/label.tsx +24 -0
- package/src/components/ui/menubar.tsx +235 -0
- package/src/components/ui/navigation-menu.tsx +128 -0
- package/src/components/ui/pagination.tsx +121 -0
- package/src/components/ui/popover.tsx +31 -0
- package/src/components/ui/progress.tsx +26 -0
- package/src/components/ui/radio-group.tsx +42 -0
- package/src/components/ui/resizable.tsx +43 -0
- package/src/components/ui/scroll-area.tsx +46 -0
- package/src/components/ui/select.tsx +1 -0
- package/src/components/ui/separator.tsx +29 -0
- package/src/components/ui/sheet.tsx +139 -0
- package/src/components/ui/sidebar.tsx +777 -0
- package/src/components/ui/skeleton.tsx +15 -0
- package/src/components/ui/slider.tsx +26 -0
- package/src/components/ui/sonner.tsx +58 -0
- package/src/components/ui/spinner.tsx +17 -0
- package/src/components/ui/switch.tsx +27 -0
- package/src/components/ui/table.tsx +117 -0
- package/src/components/ui/tabs.tsx +53 -0
- package/src/components/ui/textarea.tsx +23 -0
- package/src/components/ui/toast.tsx +127 -0
- package/src/components/ui/toaster.tsx +33 -0
- package/src/components/ui/toggle-group.tsx +59 -0
- package/src/components/ui/toggle.tsx +43 -0
- package/src/components/ui/tooltip.tsx +28 -0
- package/src/components/ui/use-toast.ts +3 -0
- package/src/components/usage-alerts-panel.tsx +445 -0
- package/src/components/workspace-app-card.spec.tsx +408 -0
- package/src/components/workspace-app-card.tsx +711 -0
- package/src/components/workspace-app-chat-rail.spec.tsx +182 -0
- package/src/components/workspace-app-host.spec.tsx +688 -0
- package/src/components/workspace-app-host.tsx +756 -0
- package/src/components/workspace-app-search.tsx +96 -0
- package/src/components/workspace-resource-effective-stack.spec.tsx +126 -0
- package/src/components/workspace-resource-effective-stack.tsx +159 -0
- package/src/components/workspace-resource-impact-preview.spec.tsx +148 -0
- package/src/components/workspace-resource-impact-preview.tsx +128 -0
- package/src/components/workspace-template-card.spec.tsx +228 -0
- package/src/components/workspace-template-card.tsx +363 -0
- package/src/config.ts +42 -0
- package/src/db/index.ts +40 -0
- package/src/db/migrations.spec.ts +84 -0
- package/src/db/migrations.ts +251 -0
- package/src/db/schema.ts +209 -0
- package/src/hooks/use-mobile.tsx +1 -0
- package/src/hooks/use-navigation-state.spec.ts +166 -0
- package/src/hooks/use-navigation-state.ts +400 -0
- package/src/hooks/use-toast.ts +188 -0
- package/src/index.ts +19 -0
- package/src/lib/agent-pack.spec.ts +47 -0
- package/src/lib/agent-pack.ts +226 -0
- package/src/lib/automation-display.spec.ts +149 -0
- package/src/lib/automation-display.ts +108 -0
- package/src/lib/automations.spec.ts +64 -0
- package/src/lib/automations.ts +66 -0
- package/src/lib/browser-chat-bridge.spec.ts +151 -0
- package/src/lib/browser-chat-bridge.ts +79 -0
- package/src/lib/browser-chat-protocol.spec.ts +113 -0
- package/src/lib/browser-chat-protocol.ts +124 -0
- package/src/lib/catch-all-target.spec.ts +156 -0
- package/src/lib/catch-all-target.ts +125 -0
- package/src/lib/embed-session-recovery.spec.ts +63 -0
- package/src/lib/embed-session-recovery.ts +26 -0
- package/src/lib/other-apps.spec.ts +133 -0
- package/src/lib/other-apps.ts +57 -0
- package/src/lib/overview-chat.spec.ts +51 -0
- package/src/lib/overview-chat.ts +29 -0
- package/src/lib/simple-agent-profile.spec.ts +77 -0
- package/src/lib/simple-agent-profile.ts +247 -0
- package/src/lib/task-queue.spec.ts +57 -0
- package/src/lib/task-queue.ts +72 -0
- package/src/lib/thread-link-preview.ts +160 -0
- package/src/lib/utils.ts +6 -0
- package/src/lib/workspace-app-layout.spec.ts +47 -0
- package/src/lib/workspace-app-layout.ts +121 -0
- package/src/lib/workspace-apps.spec.ts +175 -0
- package/src/lib/workspace-apps.test.ts +151 -0
- package/src/lib/workspace-apps.ts +306 -0
- package/src/routes/index.spec.ts +39 -0
- package/src/routes/index.ts +95 -0
- package/src/routes/pages/$appId.spec.tsx +115 -0
- package/src/routes/pages/$appId.tsx +240 -0
- package/src/routes/pages/_index.test.ts +34 -0
- package/src/routes/pages/_index.tsx +65 -0
- package/src/routes/pages/admin._index.tsx +107 -0
- package/src/routes/pages/admin.tsx +15 -0
- package/src/routes/pages/agent-integrations.tsx +24 -0
- package/src/routes/pages/agents.tsx +251 -0
- package/src/routes/pages/approval.tsx +301 -0
- package/src/routes/pages/approvals.tsx +198 -0
- package/src/routes/pages/apps.$appId.spec.tsx +66 -0
- package/src/routes/pages/apps.$appId.tsx +22 -0
- package/src/routes/pages/apps.tsx +431 -0
- package/src/routes/pages/audit.tsx +71 -0
- package/src/routes/pages/automations.tsx +363 -0
- package/src/routes/pages/browser-chat.spec.tsx +121 -0
- package/src/routes/pages/browser-chat.tsx +89 -0
- package/src/routes/pages/browser-connect.spec.tsx +137 -0
- package/src/routes/pages/browser-connect.tsx +143 -0
- package/src/routes/pages/chat.spec.tsx +183 -0
- package/src/routes/pages/chat.tsx +335 -0
- package/src/routes/pages/destinations.tsx +309 -0
- package/src/routes/pages/dream-settings.spec.ts +131 -0
- package/src/routes/pages/dream-settings.ts +103 -0
- package/src/routes/pages/dreams.tsx +1812 -0
- package/src/routes/pages/extensions.$id.tsx +9 -0
- package/src/routes/pages/extensions._index.tsx +9 -0
- package/src/routes/pages/identities.tsx +106 -0
- package/src/routes/pages/integrations.tsx +541 -0
- package/src/routes/pages/messaging.tsx +17 -0
- package/src/routes/pages/metrics.tsx +1135 -0
- package/src/routes/pages/new-app.tsx +20 -0
- package/src/routes/pages/operations.tsx +132 -0
- package/src/routes/pages/overview.tsx +22 -0
- package/src/routes/pages/settings.tsx +196 -0
- package/src/routes/pages/team.tsx +9 -0
- package/src/routes/pages/thread-debug.spec.tsx +370 -0
- package/src/routes/pages/thread-debug.tsx +1923 -0
- package/src/routes/pages/tools.$id.tsx +9 -0
- package/src/routes/pages/tools._index.tsx +9 -0
- package/src/routes/pages/transactional-email.$appId.$id.tsx +369 -0
- package/src/routes/pages/transactional-email.tsx +575 -0
- package/src/routes/pages/vault.tsx +978 -0
- package/src/routes/pages/workspace.tsx +1213 -0
- package/src/server/index.ts +86 -0
- package/src/server/lib/agent-pack-store.ts +35 -0
- package/src/server/lib/app-creation-store.spec.ts +1018 -0
- package/src/server/lib/app-creation-store.ts +2567 -0
- package/src/server/lib/approval-fencing.spec.ts +489 -0
- package/src/server/lib/browser-extension-allowlist.spec.ts +76 -0
- package/src/server/lib/browser-extension-allowlist.ts +58 -0
- package/src/server/lib/curated-workspace-templates.spec.ts +56 -0
- package/src/server/lib/curated-workspace-templates.ts +187 -0
- package/src/server/lib/dispatch-integrations.spec.ts +428 -0
- package/src/server/lib/dispatch-integrations.ts +528 -0
- package/src/server/lib/dispatch-remote-commands.spec.ts +168 -0
- package/src/server/lib/dispatch-remote-commands.ts +375 -0
- package/src/server/lib/dispatch-routing.spec.ts +44 -0
- package/src/server/lib/dispatch-routing.ts +42 -0
- package/src/server/lib/dispatch-store.ts +1008 -0
- package/src/server/lib/dreams-store.spec.ts +1492 -0
- package/src/server/lib/dreams-store.ts +3187 -0
- package/src/server/lib/env-config.ts +99 -0
- package/src/server/lib/mcp-access-store.spec.ts +171 -0
- package/src/server/lib/mcp-access-store.ts +138 -0
- package/src/server/lib/mcp-gateway.spec.ts +1583 -0
- package/src/server/lib/mcp-gateway.ts +1388 -0
- package/src/server/lib/onboarding-steps.ts +82 -0
- package/src/server/lib/provider-api.ts +69 -0
- package/src/server/lib/thread-debug-store.spec.ts +439 -0
- package/src/server/lib/thread-debug-store.ts +1170 -0
- package/src/server/lib/thread-link-preview.spec.ts +127 -0
- package/src/server/lib/thread-link-preview.ts +32 -0
- package/src/server/lib/usage-metrics-store.spec.ts +240 -0
- package/src/server/lib/usage-metrics-store.ts +879 -0
- package/src/server/lib/vault-boot-resync.spec.ts +68 -0
- package/src/server/lib/vault-boot-resync.ts +50 -0
- package/src/server/lib/vault-store.spec.ts +541 -0
- package/src/server/lib/vault-store.ts +1540 -0
- package/src/server/lib/workspace-app-action-auth.spec.ts +212 -0
- package/src/server/lib/workspace-app-action-auth.ts +122 -0
- package/src/server/lib/workspace-app-chat-proxy.spec.ts +322 -0
- package/src/server/lib/workspace-app-chat-proxy.ts +389 -0
- package/src/server/lib/workspace-resource-approval-lifecycle.spec.ts +227 -0
- package/src/server/lib/workspace-resources-store.spec.ts +1108 -0
- package/src/server/lib/workspace-resources-store.ts +1403 -0
- package/src/server/plugins/agent-chat.spec.ts +43 -0
- package/src/server/plugins/agent-chat.ts +99 -0
- package/src/server/plugins/auth.spec.ts +45 -0
- package/src/server/plugins/auth.ts +36 -0
- package/src/server/plugins/core-routes.ts +29 -0
- package/src/server/plugins/db.ts +20 -0
- package/src/server/plugins/integrations.ts +82 -0
- package/src/shared/app-roles.ts +8 -0
- package/src/shared/chat-first-pane.ts +7 -0
- package/src/shared/feature-flags.ts +20 -0
- package/src/shared/workspace-app-chat.ts +45 -0
- package/src/shared/workspace-sso.ts +173 -0
- package/src/styles/dispatch-css.spec.ts +87 -0
- package/src/styles/dispatch.css +146 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dreams.js","sourceRoot":"","sources":["../../../src/routes/pages/dreams.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useActionMutation,\n useActionQuery,\n} from \"@agent-native/core/client/hooks\";\nimport {\n IconAlertTriangle,\n IconCalendarTime,\n IconCheck,\n IconDatabase,\n IconFileDiff,\n IconPlayerPlay,\n IconRefresh,\n IconSettings,\n IconX,\n} from \"@tabler/icons-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport { toast } from \"sonner\";\n\nimport { DispatchShell } from \"../../components/dispatch-shell\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"../../components/ui/accordion\";\nimport { Alert, AlertDescription, AlertTitle } from \"../../components/ui/alert\";\nimport { Badge } from \"../../components/ui/badge\";\nimport { Button } from \"../../components/ui/button\";\nimport { Input } from \"../../components/ui/input\";\nimport { Label } from \"../../components/ui/label\";\nimport { ScrollArea } from \"../../components/ui/scroll-area\";\nimport { Separator } from \"../../components/ui/separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"../../components/ui/sheet\";\nimport { Skeleton } from \"../../components/ui/skeleton\";\nimport { Spinner } from \"../../components/ui/spinner\";\nimport { Switch } from \"../../components/ui/switch\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../../components/ui/table\";\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"../../components/ui/tabs\";\nimport { Textarea } from \"../../components/ui/textarea\";\nimport { cn } from \"../../lib/utils\";\nimport {\n dreamSettingsToDraft,\n dreamSettingsUpdateFromDraft,\n splitSourceIds,\n type DreamSettings,\n type DreamSettingsDraft,\n} from \"./dream-settings\";\n\nexport function meta() {\n return [{ title: \"Dreams — Dispatch\" }];\n}\n\ntype DreamStatus =\n | \"running\"\n | \"completed\"\n | \"failed\"\n | \"pending\"\n | \"applied\"\n | \"rejected\"\n | \"stale\"\n | string;\n\ninterface DreamPass {\n id: string;\n title?: string | null;\n summary?: string | null;\n status?: DreamStatus | null;\n sourceId?: string | null;\n query?: string | null;\n error?: string | null;\n createdAt?: number | string | null;\n startedAt?: number | string | null;\n completedAt?: number | string | null;\n updatedAt?: number | string | null;\n candidateCount?: number | null;\n inspectedThreadCount?: number | null;\n inspectedRunCount?: number | null;\n proposalCount?: number | null;\n proposalCounts?: Record<string, number> | null;\n appliedCount?: number | null;\n rejectedCount?: number | null;\n sourceHealth?: DreamSourceHealth[] | null;\n}\n\ninterface DreamEvidence {\n id?: string | null;\n label?: string | null;\n title?: string | null;\n source?: string | null;\n sourceId?: string | null;\n threadId?: string | null;\n threadTitle?: string | null;\n runId?: string | null;\n kind?: string | null;\n quote?: string | null;\n snippet?: string | null;\n summary?: string | null;\n confidence?: number | null;\n createdAt?: number | string | null;\n [key: string]: unknown;\n}\n\ninterface DreamProposal {\n id: string;\n dreamId?: string | null;\n title?: string | null;\n summary?: string | null;\n status?: DreamStatus | null;\n targetType?: string | null;\n targetPath?: string | null;\n type?: string | null;\n target?: string | null;\n path?: string | null;\n risk?: string | null;\n confidence?: number | null;\n rationale?: string | null;\n content?: string | null;\n evidence?: DreamEvidence[] | null;\n sourceRunIds?: string[] | null;\n createdAt?: number | string | null;\n}\n\ninterface CandidateRun {\n id?: string;\n thread?: {\n id: string;\n ownerEmail: string;\n title: string;\n preview: string;\n messageCount: number;\n createdAt: number;\n updatedAt: number;\n };\n title?: string | null;\n summary?: string | null;\n preview?: string | null;\n ownerEmail?: string | null;\n sourceId?: string | null;\n sourceLabel?: string | null;\n threadId?: string | null;\n runId?: string | null;\n status?: string | null;\n score?: number | null;\n reasons?:\n | string[]\n | Array<{\n code: string;\n label: string;\n score: number;\n evidenceCount: number;\n }>\n | null;\n signals?: string[] | null;\n latestRunStatus?: string | null;\n updatedAt?: number | string | null;\n startedAt?: number | string | null;\n completedAt?: number | string | null;\n evidence?: DreamEvidence[] | null;\n}\n\ninterface DreamSourceHealth {\n sourceId: string;\n label?: string | null;\n status: \"ok\" | \"timed_out\" | \"error\" | string;\n startedAt?: number | string | null;\n completedAt?: number | string | null;\n durationMs: number;\n timeoutMs?: number | null;\n inspectedThreadCount: number;\n candidateCount: number;\n errorCount: number;\n threadErrorCount?: number | null;\n message?: string | null;\n}\n\ninterface DreamDetail {\n dream?: DreamPass | null;\n report?: string | null;\n summary?: string | null;\n proposals?: DreamProposal[] | null;\n candidates?: CandidateRun[] | null;\n inspectedRuns?: CandidateRun[] | null;\n evidence?: DreamEvidence[] | null;\n [key: string]: unknown;\n}\n\ntype ListDreamsResponse =\n | DreamPass[]\n | {\n dreams?: DreamPass[];\n items?: DreamPass[];\n results?: DreamPass[];\n };\n\ntype ListCandidatesResponse =\n | CandidateRun[]\n | {\n candidates?: CandidateRun[];\n items?: CandidateRun[];\n results?: CandidateRun[];\n sources?: DreamSourceHealth[];\n sourceHealth?: DreamSourceHealth[];\n };\n\ntype GetDreamResponse = DreamDetail | null;\n\ninterface CreateDreamReportParams {\n sourceId?: string;\n sourceIds?: string[];\n allSources?: boolean;\n query?: string;\n ownerEmail?: string;\n limit?: number;\n sourceTimeoutMs?: number;\n sourceConcurrency?: number;\n sourceStartStaggerMs?: number;\n threadConcurrency?: number;\n threadTimeoutMs?: number;\n title?: string;\n}\n\ninterface CreateDreamReportResult {\n id?: string;\n dreamId?: string;\n dream?: DreamPass;\n}\n\ninterface ProposalMutationParams {\n id: string;\n reason?: string;\n}\n\ninterface DreamProposalPreview {\n operation?: \"create\" | \"update\" | \"append\" | string;\n targetExists?: boolean;\n currentContent?: string | null;\n proposedContent?: string | null;\n target?: {\n type?: string | null;\n path?: string | null;\n kind?: string | null;\n resourceId?: string | null;\n };\n approval?: {\n required?: boolean;\n policyEnabled?: boolean;\n willRequestApproval?: boolean;\n };\n}\n\nfunction normalizeArray<T>(value: unknown, keys: readonly string[]): T[] {\n if (Array.isArray(value)) return value as T[];\n if (!value || typeof value !== \"object\") return [];\n const record = value as Record<string, unknown>;\n for (const key of keys) {\n if (Array.isArray(record[key])) return record[key] as T[];\n }\n return [];\n}\n\nfunction normalizeSourceHealth(value: unknown): DreamSourceHealth[] {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return [];\n const record = value as Record<string, unknown>;\n if (Array.isArray(record.sources)) {\n return record.sources as DreamSourceHealth[];\n }\n if (Array.isArray(record.sourceHealth)) {\n return record.sourceHealth as DreamSourceHealth[];\n }\n return [];\n}\n\nfunction formatDate(value: number | string | null | undefined): string {\n if (value == null || value === \"\") return \"n/a\";\n const numeric = Number(value);\n const date = Number.isFinite(numeric) ? new Date(numeric) : new Date(value);\n if (Number.isNaN(date.getTime())) return \"n/a\";\n return date.toLocaleString();\n}\n\nfunction compactDate(value: number | string | null | undefined): string {\n if (value == null || value === \"\") return \"n/a\";\n const numeric = Number(value);\n const date = Number.isFinite(numeric) ? new Date(numeric) : new Date(value);\n if (Number.isNaN(date.getTime())) return \"n/a\";\n return date.toLocaleDateString(undefined, {\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n}\n\nfunction json(value: unknown): string {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\nfunction plural(value: number, singular: string, pluralLabel = `${singular}s`) {\n return `${value} ${value === 1 ? singular : pluralLabel}`;\n}\n\nfunction dreamLabel(dream: DreamPass, index: number): string {\n return dream.title || `Dream pass ${index + 1}`;\n}\n\nfunction proposalTarget(proposal: DreamProposal): string {\n return (\n proposal.targetPath ||\n proposal.path ||\n proposal.target ||\n proposal.targetType ||\n proposal.type ||\n \"memory\"\n );\n}\n\nfunction evidenceLabel(evidence: DreamEvidence, index: number): string {\n return (\n evidence.label ||\n evidence.title ||\n evidence.threadTitle ||\n evidence.source ||\n evidence.threadId ||\n evidence.runId ||\n `Evidence ${index + 1}`\n );\n}\n\nfunction candidateLabel(candidate: CandidateRun): string {\n return (\n candidate.thread?.title ||\n candidate.title ||\n candidate.summary ||\n candidate.thread?.preview ||\n candidate.preview ||\n candidate.thread?.id ||\n candidate.threadId ||\n candidate.runId ||\n candidate.id ||\n \"candidate\"\n );\n}\n\nfunction candidateSignals(candidate: CandidateRun): string[] {\n const reasons = (candidate.reasons ?? []).map((reason) =>\n typeof reason === \"string\" ? reason : reason.label,\n );\n return [...reasons, ...(candidate.signals ?? [])].filter(Boolean);\n}\n\nfunction candidateId(candidate: CandidateRun): string {\n return (\n candidate.id ||\n candidate.thread?.id ||\n candidate.threadId ||\n candidate.runId ||\n candidateLabel(candidate)\n );\n}\n\nfunction candidateStatus(candidate: CandidateRun): string {\n return candidate.latestRunStatus || candidate.status || \"unknown\";\n}\n\nfunction candidateOwner(candidate: CandidateRun): string {\n return candidate.thread?.ownerEmail || candidate.ownerEmail || \"n/a\";\n}\n\nfunction candidateUpdatedAt(candidate: CandidateRun): number | string | null {\n return (\n candidate.updatedAt ||\n candidate.completedAt ||\n candidate.startedAt ||\n candidate.thread?.updatedAt ||\n null\n );\n}\n\nfunction dreamProposalCount(dream: DreamPass): number {\n return dream.proposalCount ?? dream.proposalCounts?.total ?? 0;\n}\n\nfunction dreamInspectedCount(dream: DreamPass): number {\n return dream.inspectedThreadCount ?? dream.inspectedRunCount ?? 0;\n}\n\nfunction resultDreamId(result: CreateDreamReportResult | null | undefined) {\n return result?.dream?.id || result?.dreamId || result?.id || null;\n}\n\nfunction statusVariant(status: DreamStatus | null | undefined) {\n const normalized = String(status || \"pending\").toLowerCase();\n if (normalized === \"failed\") return \"destructive\" as const;\n if (normalized === \"completed\" || normalized === \"applied\")\n return \"default\" as const;\n if (normalized === \"rejected\" || normalized === \"stale\")\n return \"outline\" as const;\n return \"secondary\" as const;\n}\n\nfunction sourceStatusVariant(status: string | null | undefined) {\n const normalized = String(status || \"ok\").toLowerCase();\n if (normalized === \"error\" || normalized === \"timed_out\") {\n return \"destructive\" as const;\n }\n return \"secondary\" as const;\n}\n\nfunction StatusBadge({ status }: { status?: DreamStatus | null }) {\n const normalized = String(status || \"pending\").toLowerCase();\n return (\n <Badge variant={statusVariant(status)} className=\"capitalize\">\n {normalized.replace(/_/g, \" \")}\n </Badge>\n );\n}\n\nfunction SourceHealthPanel({ sources }: { sources: DreamSourceHealth[] }) {\n if (sources.length === 0) return null;\n const unhealthyCount = sources.filter(\n (source) => String(source.status).toLowerCase() !== \"ok\",\n ).length;\n return (\n <Alert variant={unhealthyCount > 0 ? \"destructive\" : \"default\"}>\n <IconDatabase className=\"h-4 w-4\" />\n <AlertTitle>Source health</AlertTitle>\n <AlertDescription>\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n {sources.map((source) => (\n <Badge\n key={source.sourceId}\n variant={sourceStatusVariant(source.status)}\n className=\"gap-1\"\n title={\n source.message ||\n `${source.inspectedThreadCount} inspected, ${source.candidateCount} candidates, ${source.durationMs}ms of ${source.timeoutMs ?? \"n/a\"}ms`\n }\n >\n {source.label || source.sourceId}:{\" \"}\n {String(source.status).replace(/_/g, \" \")} · {source.durationMs}\n ms\n </Badge>\n ))}\n </div>\n </AlertDescription>\n </Alert>\n );\n}\n\nfunction isApprovalRequestResult(value: unknown): boolean {\n if (!value || typeof value !== \"object\") return false;\n const record = value as Record<string, unknown>;\n const result = record.result as Record<string, unknown> | undefined;\n return result?.approvalRequired === true;\n}\n\nfunction QueryState({ error, label }: { error: unknown; label: string }) {\n if (!error) return null;\n return (\n <Alert variant=\"destructive\">\n <IconAlertTriangle className=\"h-4 w-4\" />\n <AlertTitle>{label}</AlertTitle>\n <AlertDescription>\n {error instanceof Error ? error.message : String(error)}\n </AlertDescription>\n </Alert>\n );\n}\n\nfunction RawBlock({ value }: { value: unknown }) {\n return (\n <pre className=\"max-h-64 overflow-auto rounded-md border bg-muted/30 p-3 text-xs leading-relaxed text-foreground whitespace-pre-wrap break-words\">\n {typeof value === \"string\" ? value : json(value)}\n </pre>\n );\n}\n\nfunction EmptyPanel({\n title,\n description,\n}: {\n title: string;\n description: string;\n}) {\n return (\n <div className=\"rounded-lg border border-dashed bg-muted/20 px-4 py-8 text-center\">\n <div className=\"text-sm font-medium text-foreground\">{title}</div>\n <div className=\"mx-auto mt-1 max-w-md text-xs leading-relaxed text-muted-foreground\">\n {description}\n </div>\n </div>\n );\n}\n\nfunction DreamListSkeleton() {\n return (\n <div className=\"space-y-2\">\n {Array.from({ length: 5 }).map((_, index) => (\n <div key={index} className=\"rounded-lg border p-3\">\n <Skeleton className=\"h-4 w-2/3\" />\n <Skeleton className=\"mt-2 h-3 w-full\" />\n <Skeleton className=\"mt-2 h-3 w-1/2\" />\n </div>\n ))}\n </div>\n );\n}\n\nfunction ProposalSkeleton() {\n return (\n <div className=\"space-y-3\">\n {Array.from({ length: 3 }).map((_, index) => (\n <div key={index} className=\"rounded-lg border p-4\">\n <Skeleton className=\"h-4 w-1/2\" />\n <Skeleton className=\"mt-3 h-3 w-full\" />\n <Skeleton className=\"mt-2 h-3 w-3/4\" />\n </div>\n ))}\n </div>\n );\n}\n\nfunction DreamSettingsSheet({\n open,\n onOpenChange,\n draft,\n onDraftChange,\n onSave,\n saving,\n loading,\n}: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n draft: DreamSettingsDraft;\n onDraftChange: (draft: DreamSettingsDraft) => void;\n onSave: () => void;\n saving: boolean;\n loading: boolean;\n}) {\n const sourceIds = splitSourceIds(draft.sourceIdsText);\n const canSave = draft.schedule.trim().length > 0;\n\n function update<K extends keyof DreamSettingsDraft>(\n key: K,\n value: DreamSettingsDraft[K],\n ) {\n onDraftChange({ ...draft, [key]: value });\n }\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetTrigger asChild>\n <Button variant=\"outline\" disabled={loading}>\n <IconSettings size={15} className=\"mr-1.5\" />\n Settings\n </Button>\n </SheetTrigger>\n <SheetContent className=\"flex w-full flex-col p-0 sm:max-w-2xl\">\n <SheetHeader className=\"border-b px-5 py-4\">\n <div className=\"flex flex-wrap items-center gap-2 pr-8\">\n <Badge variant={draft.enabled ? \"default\" : \"secondary\"}>\n {draft.enabled ? \"Enabled\" : \"Paused\"}\n </Badge>\n <Badge variant=\"outline\" className=\"font-mono\">\n {draft.schedule || \"No schedule\"}\n </Badge>\n </div>\n <SheetTitle className=\"mt-2 text-base\">Dream settings</SheetTitle>\n <SheetDescription>\n Configure recurring dream scope, schedule, and scan limits.\n </SheetDescription>\n </SheetHeader>\n\n <ScrollArea className=\"min-h-0 flex-1\">\n <div className=\"space-y-6 p-5\">\n <section className=\"space-y-3\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Schedule\n </div>\n <div className=\"flex items-center justify-between gap-4 rounded-lg border bg-muted/20 px-3 py-3\">\n <div>\n <Label htmlFor=\"dream-enabled\">Recurring dreams</Label>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Saved setting used by dream jobs.\n </div>\n </div>\n <Switch\n id=\"dream-enabled\"\n checked={draft.enabled}\n onCheckedChange={(checked) => update(\"enabled\", checked)}\n />\n </div>\n <div className=\"grid gap-4 sm:grid-cols-[minmax(0,1fr)_180px]\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-schedule\">Cron schedule</Label>\n <Input\n id=\"dream-schedule\"\n value={draft.schedule}\n onChange={(event) => update(\"schedule\", event.target.value)}\n placeholder=\"0 9 * * 1\"\n className=\"font-mono\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-min-candidates\">Min candidates</Label>\n <Input\n id=\"dream-min-candidates\"\n type=\"number\"\n min={0}\n max={50}\n value={draft.minCandidateCount}\n onChange={(event) =>\n update(\"minCandidateCount\", event.target.value)\n }\n />\n </div>\n </div>\n </section>\n\n <Separator />\n\n <section className=\"space-y-3\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Sources\n </div>\n <div className=\"flex items-center justify-between gap-4 rounded-lg border bg-muted/20 px-3 py-3\">\n <div>\n <Label htmlFor=\"dream-all-sources\">All sources</Label>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Scan every connected thread-debug source.\n </div>\n </div>\n <Switch\n id=\"dream-all-sources\"\n checked={draft.allSources}\n onCheckedChange={(checked) => update(\"allSources\", checked)}\n />\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-id\">Source ID</Label>\n <Input\n id=\"dream-source-id\"\n value={draft.sourceId}\n onChange={(event) => update(\"sourceId\", event.target.value)}\n disabled={draft.allSources || sourceIds.length > 0}\n placeholder=\"current\"\n className=\"font-mono\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-query\">Query</Label>\n <Input\n id=\"dream-query\"\n value={draft.query}\n onChange={(event) => update(\"query\", event.target.value)}\n placeholder=\"Optional search term\"\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-ids\">Explicit source IDs</Label>\n <Textarea\n id=\"dream-source-ids\"\n value={draft.sourceIdsText}\n onChange={(event) =>\n update(\"sourceIdsText\", event.target.value)\n }\n disabled={draft.allSources}\n rows={3}\n placeholder=\"One source ID per line\"\n className=\"font-mono\"\n />\n </div>\n </section>\n\n <Separator />\n\n <section className=\"space-y-3\">\n <div className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Scan Limits\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-limit\">Candidate limit</Label>\n <Input\n id=\"dream-limit\"\n type=\"number\"\n min={1}\n max={50}\n value={draft.limit}\n onChange={(event) => update(\"limit\", event.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-timeout\">\n Source timeout ms\n </Label>\n <Input\n id=\"dream-source-timeout\"\n type=\"number\"\n min={1000}\n max={60000}\n value={draft.sourceTimeoutMs}\n onChange={(event) =>\n update(\"sourceTimeoutMs\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-source-concurrency\">\n Source concurrency\n </Label>\n <Input\n id=\"dream-source-concurrency\"\n type=\"number\"\n min={1}\n max={8}\n value={draft.sourceConcurrency}\n onChange={(event) =>\n update(\"sourceConcurrency\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-start-stagger\">Start stagger ms</Label>\n <Input\n id=\"dream-start-stagger\"\n type=\"number\"\n min={0}\n max={5000}\n value={draft.sourceStartStaggerMs}\n onChange={(event) =>\n update(\"sourceStartStaggerMs\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-thread-concurrency\">\n Thread concurrency\n </Label>\n <Input\n id=\"dream-thread-concurrency\"\n type=\"number\"\n min={1}\n max={10}\n value={draft.threadConcurrency}\n onChange={(event) =>\n update(\"threadConcurrency\", event.target.value)\n }\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"dream-thread-timeout\">\n Thread timeout ms\n </Label>\n <Input\n id=\"dream-thread-timeout\"\n type=\"number\"\n min={1000}\n max={30000}\n value={draft.threadTimeoutMs}\n onChange={(event) =>\n update(\"threadTimeoutMs\", event.target.value)\n }\n />\n </div>\n </div>\n </section>\n </div>\n </ScrollArea>\n\n <SheetFooter className=\"gap-2 border-t px-5 py-4\">\n <Button variant=\"outline\" onClick={() => onOpenChange(false)}>\n Close\n </Button>\n <Button disabled={!canSave || saving} onClick={onSave}>\n {saving ? <Spinner className=\"mr-1.5 size-3.5\" /> : null}\n Save settings\n </Button>\n </SheetFooter>\n </SheetContent>\n </Sheet>\n );\n}\n\nfunction ProposalCard({\n proposal,\n applying,\n rejecting,\n onApply,\n onReject,\n}: {\n proposal: DreamProposal;\n applying: boolean;\n rejecting: boolean;\n onApply: () => void;\n onReject: (reason?: string) => void;\n}) {\n const [open, setOpen] = useState(false);\n const [rejectReason, setRejectReason] = useState(\"\");\n const evidence = proposal.evidence ?? [];\n const sourceRunIds = proposal.sourceRunIds ?? [];\n const status = String(proposal.status || \"pending\").toLowerCase();\n const canAct = status === \"pending\";\n const needsApproval =\n proposal.targetType != null && proposal.targetType !== \"personal-memory\";\n const previewQuery = useActionQuery<DreamProposalPreview>(\n \"preview-dream-proposal\",\n { id: proposal.id },\n { enabled: open, staleTime: 0 },\n );\n const preview = previewQuery.data;\n\n return (\n <div className=\"rounded-lg bg-card\">\n <div className=\"flex flex-col gap-3 border-b px-4 py-3 md:flex-row md:items-start md:justify-between\">\n <div className=\"min-w-0\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <StatusBadge status={proposal.status} />\n <Badge variant=\"outline\" className=\"font-mono\">\n {proposalTarget(proposal)}\n </Badge>\n {proposal.risk ? (\n <Badge variant=\"secondary\" className=\"capitalize\">\n {proposal.risk} risk\n </Badge>\n ) : null}\n </div>\n <div className=\"mt-2 text-sm font-medium text-foreground\">\n {proposal.title || proposal.summary || proposal.id}\n </div>\n {proposal.summary && proposal.title ? (\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {proposal.summary}\n </div>\n ) : null}\n </div>\n <div className=\"flex shrink-0 gap-2\">\n <Sheet open={open} onOpenChange={setOpen}>\n <SheetTrigger asChild>\n <Button size=\"sm\" variant={canAct ? \"default\" : \"outline\"}>\n <IconFileDiff size={14} className=\"mr-1.5\" />\n Review\n </Button>\n </SheetTrigger>\n <SheetContent className=\"flex w-full flex-col p-0 sm:max-w-3xl\">\n <SheetHeader className=\"border-b px-5 py-4\">\n <div className=\"flex flex-wrap items-center gap-2 pr-8\">\n <StatusBadge status={proposal.status} />\n <Badge variant=\"outline\" className=\"font-mono\">\n {preview?.target?.path || proposalTarget(proposal)}\n </Badge>\n <Badge variant=\"secondary\" className=\"capitalize\">\n {preview?.operation || \"review\"}\n </Badge>\n {preview?.approval?.willRequestApproval ? (\n <Badge variant=\"secondary\">Approval request</Badge>\n ) : null}\n </div>\n <SheetTitle className=\"mt-2 text-base\">\n {proposal.title || proposal.summary || proposal.id}\n </SheetTitle>\n <SheetDescription>\n {proposal.summary ||\n \"Review the target, evidence, and proposed content before applying this dream proposal.\"}\n </SheetDescription>\n </SheetHeader>\n\n <ScrollArea className=\"min-h-0 flex-1\">\n <div className=\"space-y-5 p-5\">\n {previewQuery.error ? (\n <QueryState\n error={previewQuery.error}\n label=\"Could not preview proposal\"\n />\n ) : null}\n {previewQuery.isLoading ? <ProposalSkeleton /> : null}\n\n <div className=\"grid gap-3 sm:grid-cols-2\">\n <div className=\"rounded-lg border bg-muted/20 p-3\">\n <div className=\"text-[11px] font-medium uppercase tracking-wide text-muted-foreground\">\n Target\n </div>\n <div className=\"mt-1 break-all font-mono text-xs text-foreground\">\n {preview?.target?.path || proposalTarget(proposal)}\n </div>\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n <Badge variant=\"outline\">\n {preview?.target?.type ||\n proposal.targetType ||\n \"memory\"}\n </Badge>\n {preview?.targetExists ? (\n <Badge variant=\"secondary\">Existing target</Badge>\n ) : (\n <Badge variant=\"secondary\">New target</Badge>\n )}\n </div>\n </div>\n <div className=\"rounded-lg border bg-muted/20 p-3\">\n <div className=\"text-[11px] font-medium uppercase tracking-wide text-muted-foreground\">\n Review gate\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-foreground\">\n {preview?.approval?.willRequestApproval\n ? \"Applying will create a Dispatch approval request.\"\n : needsApproval\n ? \"Applying writes a shared/workspace resource because approvals are disabled.\"\n : \"Applying writes personal memory directly.\"}\n </div>\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n {proposal.risk ? (\n <Badge variant=\"outline\" className=\"capitalize\">\n {proposal.risk} risk\n </Badge>\n ) : null}\n {proposal.confidence != null ? (\n <Badge variant=\"outline\">\n {proposal.confidence}% confidence\n </Badge>\n ) : null}\n </div>\n </div>\n </div>\n\n {proposal.rationale ? (\n <div>\n <div className=\"text-xs font-medium text-foreground\">\n Rationale\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {proposal.rationale}\n </div>\n </div>\n ) : null}\n\n <Separator />\n\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <div>\n <div className=\"mb-2 text-xs font-medium text-foreground\">\n Current target\n </div>\n {preview?.currentContent ? (\n <RawBlock value={preview.currentContent} />\n ) : (\n <EmptyPanel\n title=\"No existing content\"\n description=\"This proposal would create a new target or append to an empty target.\"\n />\n )}\n </div>\n <div>\n <div className=\"mb-2 text-xs font-medium text-foreground\">\n Proposed content\n </div>\n <RawBlock\n value={preview?.proposedContent || proposal.content}\n />\n </div>\n </div>\n\n <Separator />\n\n <div>\n <div className=\"mb-2 text-xs font-medium text-foreground\">\n Evidence\n </div>\n {sourceRunIds.length > 0 ? (\n <div className=\"mb-2 flex flex-wrap gap-1.5\">\n {sourceRunIds.map((id) => (\n <Badge\n key={id}\n variant=\"outline\"\n className=\"font-mono\"\n >\n {id}\n </Badge>\n ))}\n </div>\n ) : null}\n {evidence.length > 0 ? (\n <div className=\"space-y-2\">\n {evidence.map((item, index) => (\n <div\n key={item.id || `${proposal.id}-review-${index}`}\n className=\"rounded-md border bg-muted/20 px-3 py-2\"\n >\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <div className=\"text-xs font-medium text-foreground\">\n {evidenceLabel(item, index)}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {formatDate(item.createdAt)}\n </div>\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {item.quote ||\n item.snippet ||\n item.summary ||\n \"No text\"}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <EmptyPanel\n title=\"No structured evidence\"\n description=\"The proposal did not include compact evidence records.\"\n />\n )}\n </div>\n\n {canAct ? (\n <div className=\"space-y-2\">\n <Label htmlFor={`reject-${proposal.id}`}>\n Rejection reason\n </Label>\n <Textarea\n id={`reject-${proposal.id}`}\n value={rejectReason}\n onChange={(event) =>\n setRejectReason(event.target.value)\n }\n placeholder=\"Optional note for the audit log\"\n />\n </div>\n ) : null}\n </div>\n </ScrollArea>\n\n <SheetFooter className=\"gap-2 border-t px-5 py-4\">\n <Button\n variant=\"outline\"\n disabled={!canAct || applying || rejecting}\n onClick={() => {\n onReject(rejectReason.trim() || undefined);\n setOpen(false);\n }}\n >\n {rejecting ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconX size={14} className=\"mr-1.5\" />\n )}\n Reject\n </Button>\n <Button\n disabled={!canAct || applying || rejecting}\n onClick={() => {\n onApply();\n setOpen(false);\n }}\n >\n {applying ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconCheck size={14} className=\"mr-1.5\" />\n )}\n {needsApproval ? \"Request approval\" : \"Apply\"}\n </Button>\n </SheetFooter>\n </SheetContent>\n </Sheet>\n </div>\n </div>\n\n <Accordion type=\"multiple\" className=\"px-4\">\n <AccordionItem value=\"evidence\" className=\"border-b-0\">\n <AccordionTrigger className=\"py-3 text-xs hover:no-underline\">\n Evidence and provenance\n </AccordionTrigger>\n <AccordionContent className=\"space-y-3 pb-4\">\n {sourceRunIds.length > 0 ? (\n <div className=\"flex flex-wrap gap-1.5\">\n {sourceRunIds.map((id) => (\n <Badge key={id} variant=\"outline\" className=\"font-mono\">\n {id}\n </Badge>\n ))}\n </div>\n ) : null}\n {evidence.length > 0 ? (\n <div className=\"space-y-2\">\n {evidence.map((item, index) => (\n <div\n key={item.id || `${proposal.id}-evidence-${index}`}\n className=\"rounded-md border bg-muted/20 px-3 py-2\"\n >\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <div className=\"text-xs font-medium text-foreground\">\n {evidenceLabel(item, index)}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {formatDate(item.createdAt)}\n </div>\n </div>\n <div className=\"mt-1 text-xs leading-relaxed text-muted-foreground\">\n {item.quote || item.snippet || item.summary || \"No text\"}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-xs text-muted-foreground\">\n No structured evidence attached yet.\n </div>\n )}\n </AccordionContent>\n </AccordionItem>\n {proposal.content ? (\n <AccordionItem value=\"content\" className=\"border-b-0\">\n <AccordionTrigger className=\"py-3 text-xs hover:no-underline\">\n Proposed content\n </AccordionTrigger>\n <AccordionContent className=\"pb-4\">\n <RawBlock value={proposal.content} />\n </AccordionContent>\n </AccordionItem>\n ) : null}\n </Accordion>\n </div>\n );\n}\n\nexport default function DreamsRoute() {\n const [searchParams, setSearchParams] = useSearchParams();\n const [selectedDreamId, setSelectedDreamId] = useState<string | null>(\n searchParams.get(\"dreamId\"),\n );\n const [settingsOpen, setSettingsOpen] = useState(false);\n const [settingsDraft, setSettingsDraft] = useState<DreamSettingsDraft>(() =>\n dreamSettingsToDraft(null),\n );\n\n const dreamsQuery = useActionQuery<ListDreamsResponse>(\n \"list-dreams\",\n { limit: 25 },\n { staleTime: 15_000 },\n );\n const candidatesQuery = useActionQuery<ListCandidatesResponse>(\n \"list-dream-candidates\",\n {\n limit: 25,\n sourceTimeoutMs: 30_000,\n sourceConcurrency: 2,\n sourceStartStaggerMs: 250,\n threadConcurrency: 3,\n threadTimeoutMs: 8_000,\n },\n { staleTime: 15_000 },\n );\n const dreamSettingsQuery = useActionQuery<DreamSettings>(\n \"get-dream-settings\",\n {},\n { staleTime: 30_000 },\n );\n const dreamDetailQuery = useActionQuery<GetDreamResponse>(\n \"get-dream\",\n { id: selectedDreamId ?? \"\" },\n { enabled: !!selectedDreamId, staleTime: 10_000 },\n );\n\n const dreams = useMemo(\n () =>\n normalizeArray<DreamPass>(dreamsQuery.data, [\n \"dreams\",\n \"items\",\n \"results\",\n ]),\n [dreamsQuery.data],\n );\n const candidates = useMemo(\n () =>\n normalizeArray<CandidateRun>(candidatesQuery.data, [\n \"candidates\",\n \"items\",\n \"results\",\n ]),\n [candidatesQuery.data],\n );\n const candidateSourceHealth = useMemo(\n () => normalizeSourceHealth(candidatesQuery.data),\n [candidatesQuery.data],\n );\n\n useEffect(() => {\n const urlDreamId = searchParams.get(\"dreamId\");\n if (urlDreamId && urlDreamId !== selectedDreamId) {\n setSelectedDreamId(urlDreamId);\n return;\n }\n if (\n selectedDreamId &&\n dreams.some((dream) => dream.id === selectedDreamId)\n ) {\n return;\n }\n if (dreamsQuery.isLoading) return;\n // If the query failed, normalizeArray returns [] but the list is not\n // confirmed empty — preserve the current selection so dreamDetailQuery\n // can still load the detail from the URL param.\n if (dreamsQuery.error) return;\n const nextId = dreams[0]?.id ?? null;\n setSelectedDreamId(nextId);\n if (nextId && nextId !== urlDreamId) {\n const next = new URLSearchParams(searchParams);\n next.set(\"dreamId\", nextId);\n setSearchParams(next, { replace: true });\n } else if (!nextId && urlDreamId) {\n // List settled successfully with no rows — remove the stale URL param\n // so dreamDetailQuery does not fire for an ID that cannot be found.\n const next = new URLSearchParams(searchParams);\n next.delete(\"dreamId\");\n setSearchParams(next, { replace: true });\n }\n }, [\n dreams,\n dreamsQuery.isLoading,\n dreamsQuery.error,\n searchParams,\n selectedDreamId,\n setSearchParams,\n ]);\n\n function selectDream(dreamId: string) {\n setSelectedDreamId(dreamId);\n const next = new URLSearchParams(searchParams);\n next.set(\"dreamId\", dreamId);\n setSearchParams(next, { replace: true });\n }\n\n const createDream = useActionMutation<\n CreateDreamReportResult,\n CreateDreamReportParams\n >(\"create-dream-report\", {\n onSuccess: (result) => {\n const nextId = resultDreamId(result);\n if (nextId) selectDream(nextId);\n toast.success(\"Dream report created\");\n },\n onError: (err) => toast.error(String(err)),\n });\n\n const applyProposal = useActionMutation<unknown, ProposalMutationParams>(\n \"apply-dream-proposal\",\n {\n onSuccess: (result) => {\n toast.success(\n isApprovalRequestResult(result)\n ? \"Approval requested\"\n : \"Proposal applied\",\n );\n dreamDetailQuery.refetch();\n dreamsQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n },\n );\n\n const rejectProposal = useActionMutation<unknown, ProposalMutationParams>(\n \"reject-dream-proposal\",\n {\n onSuccess: () => {\n toast.success(\"Proposal rejected\");\n dreamDetailQuery.refetch();\n dreamsQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n },\n );\n const ensureDreamSchedule = useActionMutation<\n unknown,\n Partial<DreamSettings>\n >(\"ensure-dream-job\", {\n onSuccess: () => {\n toast.success(\"Dream schedule updated\");\n dreamSettingsQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n });\n const saveDreamSettings = useActionMutation<\n DreamSettings,\n Partial<DreamSettings>\n >(\"set-dream-settings\", {\n onSuccess: (settings) => {\n toast.success(\"Dream settings saved\");\n setSettingsDraft(dreamSettingsToDraft(settings));\n setSettingsOpen(false);\n dreamSettingsQuery.refetch();\n candidatesQuery.refetch();\n },\n onError: (err) => toast.error(String(err)),\n });\n\n const detail = dreamDetailQuery.data ?? null;\n const dreamSettings = dreamSettingsQuery.data ?? null;\n const selectedDream =\n detail?.dream ?? dreams.find((dream) => dream.id === selectedDreamId);\n const proposals: DreamProposal[] = detail?.proposals ?? [];\n const inspectedRuns: CandidateRun[] =\n detail?.inspectedRuns ?? detail?.candidates ?? [];\n const evidenceItems: DreamEvidence[] = detail?.evidence ?? [];\n const selectedSourceHealth: DreamSourceHealth[] =\n selectedDream?.sourceHealth ?? [];\n const appliedProposalCount = proposals.filter(\n (proposal) => String(proposal.status || \"\").toLowerCase() === \"applied\",\n ).length;\n\n useEffect(() => {\n if (dreamSettings && !settingsOpen) {\n setSettingsDraft(dreamSettingsToDraft(dreamSettings));\n }\n }, [dreamSettings, settingsOpen]);\n\n function handleSettingsOpenChange(open: boolean) {\n if (open) {\n setSettingsDraft(dreamSettingsToDraft(dreamSettings));\n }\n setSettingsOpen(open);\n }\n\n function saveSettings() {\n const update = dreamSettingsUpdateFromDraft(settingsDraft);\n if (!update.schedule) {\n toast.error(\"Add a cron schedule before saving\");\n return;\n }\n saveDreamSettings.mutate(update);\n }\n\n function runDream(scanAllSources = false) {\n createDream.mutate({\n sourceId: scanAllSources ? \"all\" : \"current\",\n allSources: scanAllSources,\n limit: scanAllSources\n ? 8\n : candidates.length > 0\n ? candidates.length\n : 20,\n sourceTimeoutMs: dreamSettings?.sourceTimeoutMs ?? 30_000,\n sourceConcurrency: dreamSettings?.sourceConcurrency ?? 2,\n sourceStartStaggerMs: dreamSettings?.sourceStartStaggerMs ?? 250,\n threadConcurrency: dreamSettings?.threadConcurrency ?? 3,\n threadTimeoutMs: dreamSettings?.threadTimeoutMs ?? 8_000,\n });\n }\n\n function ensureSchedule() {\n ensureDreamSchedule.mutate({\n schedule: dreamSettings?.schedule,\n sourceId: dreamSettings?.sourceId ?? \"all\",\n sourceIds: dreamSettings?.sourceIds,\n allSources: dreamSettings?.allSources ?? true,\n query: dreamSettings?.query ?? undefined,\n limit: dreamSettings?.limit ?? 8,\n sourceTimeoutMs: dreamSettings?.sourceTimeoutMs ?? 30_000,\n sourceConcurrency: dreamSettings?.sourceConcurrency ?? 2,\n sourceStartStaggerMs: dreamSettings?.sourceStartStaggerMs ?? 250,\n threadConcurrency: dreamSettings?.threadConcurrency ?? 3,\n threadTimeoutMs: dreamSettings?.threadTimeoutMs ?? 8_000,\n minCandidateCount: dreamSettings?.minCandidateCount ?? 1,\n });\n }\n\n return (\n <DispatchShell\n title=\"Dreams\"\n description=\"Review agent runs, propose memory improvements, and apply evidence-backed learning changes.\"\n >\n <div className=\"space-y-4\">\n <div className=\"flex flex-wrap items-center justify-between gap-3 border-b pb-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1\">\n {dreamSettings ? (\n <Badge variant=\"outline\" className=\"max-w-full truncate\">\n {dreamSettings.enabled ? \"Enabled\" : \"Paused\"} ·{\" \"}\n {dreamSettings.allSources\n ? \"All sources\"\n : dreamSettings.sourceId}{\" \"}\n · {dreamSettings.schedule}\n </Badge>\n ) : null}\n <span className=\"text-xs text-muted-foreground\">\n {dreams.length} passes · {candidates.length} candidate runs\n </span>\n </div>\n <div className=\"flex flex-wrap items-center gap-2\">\n <DreamSettingsSheet\n open={settingsOpen}\n onOpenChange={handleSettingsOpenChange}\n draft={settingsDraft}\n onDraftChange={setSettingsDraft}\n onSave={saveSettings}\n saving={saveDreamSettings.isPending}\n loading={dreamSettingsQuery.isLoading}\n />\n <Button\n variant=\"outline\"\n onClick={() => {\n dreamsQuery.refetch();\n candidatesQuery.refetch();\n if (selectedDreamId) dreamDetailQuery.refetch();\n }}\n >\n <IconRefresh size={15} className=\"mr-1.5\" />\n Refresh\n </Button>\n <Button\n variant=\"outline\"\n onClick={ensureSchedule}\n disabled={ensureDreamSchedule.isPending}\n >\n {ensureDreamSchedule.isPending ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconCalendarTime size={15} className=\"mr-1.5\" />\n )}\n Ensure schedule\n </Button>\n <Button\n variant=\"outline\"\n onClick={() => runDream(true)}\n disabled={createDream.isPending}\n >\n {createDream.isPending ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconDatabase size={15} className=\"mr-1.5\" />\n )}\n Run all sources\n </Button>\n <Button\n onClick={() => runDream(false)}\n disabled={createDream.isPending}\n >\n {createDream.isPending ? (\n <Spinner className=\"mr-1.5 size-3.5\" />\n ) : (\n <IconPlayerPlay size={15} className=\"mr-1.5\" />\n )}\n Run dream\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 lg:grid-cols-[280px_minmax(0,1fr)]\">\n <section className=\"min-w-0 rounded-lg bg-card\">\n <div className=\"border-b px-4 py-3\">\n <div className=\"text-sm font-semibold text-foreground\">\n Recent passes\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Reports generated from prior agent activity.\n </div>\n </div>\n <div className=\"max-h-[720px] overflow-auto p-3\">\n <QueryState\n error={dreamsQuery.error}\n label=\"Could not load dream passes\"\n />\n {dreamsQuery.isLoading ? <DreamListSkeleton /> : null}\n {!dreamsQuery.isLoading && !dreamsQuery.error ? (\n dreams.length > 0 ? (\n <div className=\"space-y-2\">\n {dreams.map((dream, index) => {\n const selected = dream.id === selectedDreamId;\n return (\n <button\n key={dream.id}\n type=\"button\"\n onClick={() => selectDream(dream.id)}\n className={cn(\n \"w-full rounded-lg border px-3 py-3 text-left transition-colors\",\n selected\n ? \"border-foreground bg-muted\"\n : \"bg-background hover:border-foreground/30 hover:bg-muted/40\",\n )}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-medium text-foreground\">\n {dreamLabel(dream, index)}\n </div>\n <div className=\"mt-1 truncate font-mono text-[11px] text-muted-foreground\">\n {dream.id}\n </div>\n </div>\n <StatusBadge status={dream.status} />\n </div>\n <div className=\"mt-2 line-clamp-2 text-xs leading-relaxed text-muted-foreground\">\n {dream.summary || \"No summary yet.\"}\n </div>\n <div className=\"mt-3 flex flex-wrap gap-1.5\">\n <Badge variant=\"outline\">\n {plural(dreamProposalCount(dream), \"proposal\")}\n </Badge>\n <Badge variant=\"outline\">\n {plural(dreamInspectedCount(dream), \"run\")}\n </Badge>\n </div>\n <div className=\"mt-2 text-[11px] text-muted-foreground\">\n {compactDate(\n dream.completedAt ??\n dream.updatedAt ??\n dream.startedAt ??\n dream.createdAt,\n )}\n </div>\n </button>\n );\n })}\n </div>\n ) : (\n <EmptyPanel\n title=\"No dreams yet\"\n description=\"Run the first dream pass to review recent agent history and generate proposed memory changes.\"\n />\n )\n ) : null}\n </div>\n </section>\n\n <section className=\"min-w-0 rounded-lg bg-card\">\n <div className=\"border-b px-4 py-3\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-semibold text-foreground\">\n {selectedDream\n ? selectedDream.title || selectedDream.id\n : \"Dream detail\"}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n {selectedDream\n ? `Completed ${formatDate(\n selectedDream.completedAt ??\n selectedDream.updatedAt ??\n selectedDream.createdAt,\n )}`\n : \"Select a pass or run a new dream.\"}\n </div>\n </div>\n {selectedDream ? (\n <div className=\"flex flex-wrap gap-1.5\">\n <StatusBadge status={selectedDream.status} />\n <Badge variant=\"outline\">\n {plural(appliedProposalCount, \"applied\", \"applied\")}\n </Badge>\n </div>\n ) : null}\n </div>\n </div>\n\n <div className=\"p-4\">\n <QueryState\n error={dreamDetailQuery.error}\n label=\"Could not load dream detail\"\n />\n {dreamDetailQuery.isLoading ? <ProposalSkeleton /> : null}\n {!selectedDreamId && !dreamDetailQuery.isLoading ? (\n <EmptyPanel\n title=\"Nothing selected\"\n description=\"Choose a recent dream pass or run one from candidate agent runs.\"\n />\n ) : null}\n {selectedDreamId &&\n !dreamDetailQuery.isLoading &&\n !dreamDetailQuery.error ? (\n <Tabs defaultValue=\"proposals\" className=\"w-full\">\n <TabsList className=\"grid w-full grid-cols-3\">\n <TabsTrigger value=\"proposals\">Proposals</TabsTrigger>\n <TabsTrigger value=\"report\">Report</TabsTrigger>\n <TabsTrigger value=\"sources\">Sources</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"proposals\" className=\"mt-4\">\n {proposals.length > 0 ? (\n <div className=\"space-y-3\">\n {proposals.map((proposal) => (\n <ProposalCard\n key={proposal.id}\n proposal={proposal}\n applying={\n applyProposal.isPending &&\n applyProposal.variables?.id === proposal.id\n }\n rejecting={\n rejectProposal.isPending &&\n rejectProposal.variables?.id === proposal.id\n }\n onApply={() =>\n applyProposal.mutate({\n id: proposal.id,\n })\n }\n onReject={(reason) =>\n rejectProposal.mutate({\n id: proposal.id,\n reason,\n })\n }\n />\n ))}\n </div>\n ) : (\n <EmptyPanel\n title=\"No proposals\"\n description=\"This dream did not produce reviewable memory, skill, job, or instruction changes.\"\n />\n )}\n </TabsContent>\n\n <TabsContent value=\"report\" className=\"mt-4\">\n {detail?.report || detail?.summary ? (\n <RawBlock value={detail.report || detail.summary || \"\"} />\n ) : (\n <EmptyPanel\n title=\"No report text\"\n description=\"The dream detail action did not return a report body.\"\n />\n )}\n </TabsContent>\n\n <TabsContent value=\"sources\" className=\"mt-4\">\n {selectedSourceHealth.length > 0 ? (\n <div className=\"mb-4\">\n <SourceHealthPanel sources={selectedSourceHealth} />\n </div>\n ) : null}\n {inspectedRuns.length > 0 || evidenceItems.length ? (\n <Accordion type=\"multiple\" className=\"rounded-lg border\">\n {inspectedRuns.map((run, index) => (\n <AccordionItem\n key={candidateId(run)}\n value={candidateId(run) || `run-${index}`}\n className=\"px-4\"\n >\n <AccordionTrigger className=\"text-sm hover:no-underline\">\n <span className=\"min-w-0 truncate text-left\">\n {candidateLabel(run)}\n </span>\n </AccordionTrigger>\n <AccordionContent className=\"pb-4\">\n <div className=\"grid gap-2 text-xs text-muted-foreground sm:grid-cols-2\">\n <div>\n Thread:{\" \"}\n <span className=\"font-mono text-foreground\">\n {run.thread?.id ?? run.threadId ?? \"n/a\"}\n </span>\n </div>\n <div>\n Run:{\" \"}\n <span className=\"font-mono text-foreground\">\n {run.runId ?? run.id}\n </span>\n </div>\n <div>Owner: {candidateOwner(run)}</div>\n <div>Status: {candidateStatus(run)}</div>\n </div>\n {candidateSignals(run).length > 0 ? (\n <div className=\"mt-3 flex flex-wrap gap-1.5\">\n {candidateSignals(run).map((signal) => (\n <Badge key={signal} variant=\"outline\">\n {signal}\n </Badge>\n ))}\n </div>\n ) : null}\n </AccordionContent>\n </AccordionItem>\n ))}\n {evidenceItems.map((item, index) => (\n <AccordionItem\n key={item.id || `evidence-${index}`}\n value={item.id || `evidence-${index}`}\n className=\"px-4\"\n >\n <AccordionTrigger className=\"text-sm hover:no-underline\">\n {evidenceLabel(item, index)}\n </AccordionTrigger>\n <AccordionContent className=\"pb-4\">\n <RawBlock value={item} />\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n ) : (\n <EmptyPanel\n title=\"No source runs\"\n description=\"This dream has no structured source list yet.\"\n />\n )}\n </TabsContent>\n </Tabs>\n ) : null}\n </div>\n </section>\n </div>\n\n <section className=\"min-w-0 rounded-lg bg-card\">\n <div className=\"border-b px-4 py-3\">\n <div>\n <div className=\"text-sm font-semibold text-foreground\">\n Candidate runs\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n Grounded signals ready for review.\n </div>\n </div>\n </div>\n <div className=\"max-h-[720px] overflow-auto p-3\">\n <QueryState\n error={candidatesQuery.error}\n label=\"Could not load candidates\"\n />\n {candidatesQuery.isLoading ? <DreamListSkeleton /> : null}\n {!candidatesQuery.isLoading &&\n !candidatesQuery.error &&\n candidateSourceHealth.length > 0 ? (\n <div className=\"mb-3\">\n <SourceHealthPanel sources={candidateSourceHealth} />\n </div>\n ) : null}\n {!candidatesQuery.isLoading && !candidatesQuery.error ? (\n candidates.length > 0 ? (\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Run</TableHead>\n <TableHead>Signals</TableHead>\n <TableHead className=\"w-20 text-right\">Score</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {candidates.map((candidate) => {\n const id = candidateId(candidate);\n const signals = candidateSignals(candidate);\n return (\n <TableRow key={id}>\n <TableCell className=\"min-w-0 py-3\">\n <div className=\"max-w-[230px] truncate text-sm font-medium text-foreground\">\n {candidateLabel(candidate)}\n </div>\n <div className=\"mt-1 truncate font-mono text-[11px] text-muted-foreground\">\n {candidate.thread?.id ??\n candidate.threadId ??\n candidate.runId ??\n id}\n </div>\n <div className=\"mt-1 text-[11px] text-muted-foreground\">\n {candidateOwner(candidate)} ·{\" \"}\n {compactDate(candidateUpdatedAt(candidate))}\n </div>\n </TableCell>\n <TableCell className=\"py-3\">\n <div className=\"mt-1 flex flex-wrap gap-1\">\n <Badge variant=\"outline\">\n {candidateStatus(candidate)}\n </Badge>\n {signals.slice(0, 2).map((signal) => (\n <Badge key={signal} variant=\"secondary\">\n {signal}\n </Badge>\n ))}\n </div>\n </TableCell>\n <TableCell className=\"py-3 text-right text-sm tabular-nums text-muted-foreground\">\n {candidate.score ?? \"n/a\"}\n </TableCell>\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n ) : (\n <EmptyPanel\n title=\"No candidates\"\n description=\"No recent runs matched the dream candidate heuristics.\"\n />\n )\n ) : null}\n </div>\n </section>\n </div>\n </DispatchShell>\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.$id.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/extensions.$id.tsx"],"names":[],"mappings":"AAEA,wBAAgB,IAAI;;IAEnB;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,oDAE3C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ExtensionViewerPage } from "@agent-native/core/client/extensions";
|
|
3
|
+
export function meta() {
|
|
4
|
+
return [{ title: "Extension \u2014 Dispatch" }];
|
|
5
|
+
}
|
|
6
|
+
export default function ExtensionViewerRoute() {
|
|
7
|
+
return _jsx(ExtensionViewerPage, {});
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=extensions.$id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.$id.js","sourceRoot":"","sources":["../../../src/routes/pages/extensions.$id.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB;IAC1C,OAAO,KAAC,mBAAmB,KAAG,CAAC;AACjC,CAAC","sourcesContent":["import { ExtensionViewerPage } from \"@agent-native/core/client/extensions\";\n\nexport function meta() {\n return [{ title: \"Extension \\u2014 Dispatch\" }];\n}\n\nexport default function ExtensionViewerRoute() {\n return <ExtensionViewerPage />;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions._index.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/extensions._index.tsx"],"names":[],"mappings":"AAEA,wBAAgB,IAAI;;IAEnB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,oDAEtC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ExtensionsListPage } from "@agent-native/core/client/extensions";
|
|
3
|
+
export function meta() {
|
|
4
|
+
return [{ title: "Extensions \u2014 Dispatch" }];
|
|
5
|
+
}
|
|
6
|
+
export default function ExtensionsRoute() {
|
|
7
|
+
return _jsx(ExtensionsListPage, {});
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=extensions._index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions._index.js","sourceRoot":"","sources":["../../../src/routes/pages/extensions._index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe;IACrC,OAAO,KAAC,kBAAkB,KAAG,CAAC;AAChC,CAAC","sourcesContent":["import { ExtensionsListPage } from \"@agent-native/core/client/extensions\";\n\nexport function meta() {\n return [{ title: \"Extensions \\u2014 Dispatch\" }];\n}\n\nexport default function ExtensionsRoute() {\n return <ExtensionsListPage />;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/identities.tsx"],"names":[],"mappings":"AAUA,wBAAgB,IAAI;;IAEnB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,oDA2FtC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useActionMutation, useActionQuery, } from "@agent-native/core/client/hooks";
|
|
3
|
+
import { toast } from "sonner";
|
|
4
|
+
import { ActionQueryError } from "../../components/action-query-error.js";
|
|
5
|
+
import { DispatchShell } from "../../components/dispatch-shell.js";
|
|
6
|
+
import { Button } from "../../components/ui/button.js";
|
|
7
|
+
export function meta() {
|
|
8
|
+
return [{ title: "Identities — Dispatch" }];
|
|
9
|
+
}
|
|
10
|
+
export default function IdentitiesRoute() {
|
|
11
|
+
const query = useActionQuery("list-linked-identities", {});
|
|
12
|
+
const { data } = query;
|
|
13
|
+
const createToken = useActionMutation("create-link-token", {
|
|
14
|
+
onSuccess: () => toast.success("Link token created"),
|
|
15
|
+
});
|
|
16
|
+
return (_jsx(DispatchShell, { title: "Identities", description: "Link external senders to workspace users.", children: query.isError ? (_jsx(ActionQueryError, { error: query.error, onRetry: () => void query.refetch() })) : (_jsxs("div", { className: "grid gap-4 xl:grid-cols-2", children: [_jsxs("section", { className: "rounded-2xl bg-card p-5", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Active links" }), _jsxs("div", { className: "flex shrink-0 gap-2", children: [_jsx(Button, { variant: "outline", onClick: () => createToken.mutate({ platform: "slack" }), children: "New Slack token" }), _jsx(Button, { onClick: () => createToken.mutate({ platform: "telegram" }), children: "New Telegram token" })] })] }), _jsxs("div", { className: "mt-4 space-y-3", children: [(data?.links || []).map((link) => (_jsxs("div", { className: "rounded-xl border bg-muted/30 px-4 py-3", children: [_jsx("div", { className: "text-sm font-medium text-foreground", children: link.externalUserName || link.externalUserId }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [link.platform, " \u2192 ", link.ownerEmail] })] }, link.id))), (data?.links?.length || 0) === 0 && (_jsxs("div", { className: "rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground", children: ["No linked identities yet. Generate a token and ask the user to send ", _jsx("code", { children: "/link TOKEN" }), " from Slack or Telegram."] }))] })] }), _jsxs("section", { className: "rounded-2xl bg-card p-5", children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Link tokens" }), _jsxs("div", { className: "mt-4 space-y-3", children: [(data?.tokens || []).map((token) => (_jsxs("div", { className: "rounded-xl border px-4 py-3", children: [_jsxs("div", { className: "text-sm font-medium text-foreground", children: ["/link ", token.token] }), _jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [token.platform, " \u00B7 expires", " ", new Date(token.expiresAt).toLocaleString(), token.claimedAt
|
|
17
|
+
? ` · claimed by ${token.claimedByExternalUserName || token.claimedByExternalUserId}`
|
|
18
|
+
: " · waiting to be claimed"] })] }, token.id))), (data?.tokens?.length || 0) === 0 && (_jsx("div", { className: "rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground", children: "No active link tokens." }))] })] })] })) }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=identities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identities.js","sourceRoot":"","sources":["../../../src/routes/pages/identities.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useActionMutation,\n useActionQuery,\n} from \"@agent-native/core/client/hooks\";\nimport { toast } from \"sonner\";\n\nimport { ActionQueryError } from \"../../components/action-query-error\";\nimport { DispatchShell } from \"../../components/dispatch-shell\";\nimport { Button } from \"../../components/ui/button\";\n\nexport function meta() {\n return [{ title: \"Identities — Dispatch\" }];\n}\n\nexport default function IdentitiesRoute() {\n const query = useActionQuery(\"list-linked-identities\", {});\n const { data } = query;\n const createToken = useActionMutation(\"create-link-token\", {\n onSuccess: () => toast.success(\"Link token created\"),\n });\n\n return (\n <DispatchShell\n title=\"Identities\"\n description=\"Link external senders to workspace users.\"\n >\n {query.isError ? (\n <ActionQueryError\n error={query.error}\n onRetry={() => void query.refetch()}\n />\n ) : (\n <div className=\"grid gap-4 xl:grid-cols-2\">\n <section className=\"rounded-2xl bg-card p-5\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <h2 className=\"text-lg font-semibold text-foreground\">\n Active links\n </h2>\n <div className=\"flex shrink-0 gap-2\">\n <Button\n variant=\"outline\"\n onClick={() => createToken.mutate({ platform: \"slack\" })}\n >\n New Slack token\n </Button>\n <Button\n onClick={() => createToken.mutate({ platform: \"telegram\" })}\n >\n New Telegram token\n </Button>\n </div>\n </div>\n <div className=\"mt-4 space-y-3\">\n {(data?.links || []).map((link: any) => (\n <div\n key={link.id}\n className=\"rounded-xl border bg-muted/30 px-4 py-3\"\n >\n <div className=\"text-sm font-medium text-foreground\">\n {link.externalUserName || link.externalUserId}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n {link.platform} → {link.ownerEmail}\n </div>\n </div>\n ))}\n {(data?.links?.length || 0) === 0 && (\n <div className=\"rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground\">\n No linked identities yet. Generate a token and ask the user to\n send <code>/link TOKEN</code> from Slack or Telegram.\n </div>\n )}\n </div>\n </section>\n\n <section className=\"rounded-2xl bg-card p-5\">\n <h2 className=\"text-lg font-semibold text-foreground\">\n Link tokens\n </h2>\n <div className=\"mt-4 space-y-3\">\n {(data?.tokens || []).map((token: any) => (\n <div key={token.id} className=\"rounded-xl border px-4 py-3\">\n <div className=\"text-sm font-medium text-foreground\">\n /link {token.token}\n </div>\n <div className=\"mt-1 text-xs text-muted-foreground\">\n {token.platform} · expires{\" \"}\n {new Date(token.expiresAt).toLocaleString()}\n {token.claimedAt\n ? ` · claimed by ${token.claimedByExternalUserName || token.claimedByExternalUserId}`\n : \" · waiting to be claimed\"}\n </div>\n </div>\n ))}\n {(data?.tokens?.length || 0) === 0 && (\n <div className=\"rounded-xl border border-dashed px-4 py-8 text-sm text-muted-foreground\">\n No active link tokens.\n </div>\n )}\n </div>\n </section>\n </div>\n )}\n </DispatchShell>\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../../src/routes/pages/integrations.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,IAAI;;IAEnB;AA2TD,MAAM,CAAC,OAAO,UAAU,gBAAgB,oDAwLvC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useActionMutation, useActionQuery, } from "@agent-native/core/client/hooks";
|
|
3
|
+
import { getDefaultMcpIntegrations, McpIntegrationLogo, } from "@agent-native/core/client/resources";
|
|
4
|
+
import { IconChevronRight, IconLink, IconPlugConnected, IconSearch, } from "@tabler/icons-react";
|
|
5
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
6
|
+
import { useMemo, useState } from "react";
|
|
7
|
+
import { Link } from "react-router";
|
|
8
|
+
import { toast } from "sonner";
|
|
9
|
+
import { ActionQueryError } from "../../components/action-query-error.js";
|
|
10
|
+
import { DispatchShell } from "../../components/dispatch-shell.js";
|
|
11
|
+
import { Button } from "../../components/ui/button.js";
|
|
12
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../../components/ui/collapsible.js";
|
|
13
|
+
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "../../components/ui/dialog.js";
|
|
14
|
+
import { Input } from "../../components/ui/input.js";
|
|
15
|
+
import { Label } from "../../components/ui/label.js";
|
|
16
|
+
import { Skeleton } from "../../components/ui/skeleton.js";
|
|
17
|
+
export function meta() {
|
|
18
|
+
return [{ title: "Connections — Dispatch" }];
|
|
19
|
+
}
|
|
20
|
+
function inferProviderFromKey(key, label) {
|
|
21
|
+
const haystack = `${key} ${label}`.toLowerCase();
|
|
22
|
+
for (const provider of [
|
|
23
|
+
"google",
|
|
24
|
+
"slack",
|
|
25
|
+
"sendgrid",
|
|
26
|
+
"github",
|
|
27
|
+
"stripe",
|
|
28
|
+
"hubspot",
|
|
29
|
+
"jira",
|
|
30
|
+
"bigquery",
|
|
31
|
+
"anthropic",
|
|
32
|
+
"openai",
|
|
33
|
+
]) {
|
|
34
|
+
if (haystack.includes(provider))
|
|
35
|
+
return provider;
|
|
36
|
+
}
|
|
37
|
+
return "other";
|
|
38
|
+
}
|
|
39
|
+
const MCP_INTEGRATIONS_BY_ID = new Map(getDefaultMcpIntegrations().map((integration) => [
|
|
40
|
+
integration.id,
|
|
41
|
+
integration,
|
|
42
|
+
]));
|
|
43
|
+
const CREDENTIAL_PROVIDER_LOGO_IDS = {
|
|
44
|
+
google: "google-workspace",
|
|
45
|
+
bigquery: "google-workspace",
|
|
46
|
+
jira: "atlassian",
|
|
47
|
+
};
|
|
48
|
+
function credentialLogo(service) {
|
|
49
|
+
const providerId = inferProviderFromKey(service.key, service.label);
|
|
50
|
+
const integration = MCP_INTEGRATIONS_BY_ID.get(CREDENTIAL_PROVIDER_LOGO_IDS[providerId] ?? providerId);
|
|
51
|
+
if (!integration?.logoUrl) {
|
|
52
|
+
return _jsx(IconPlugConnected, { className: "size-4 text-muted-foreground" });
|
|
53
|
+
}
|
|
54
|
+
return (_jsx(McpIntegrationLogo, { name: service.label, logoUrl: integration.logoUrl, integrationId: integration.id, className: "size-full rounded-md border-0 bg-transparent", imageClassName: "size-full p-1" }));
|
|
55
|
+
}
|
|
56
|
+
function ConnectDialog({ service, open, onOpenChange, accessMode, }) {
|
|
57
|
+
const [value, setValue] = useState("");
|
|
58
|
+
const qc = useQueryClient();
|
|
59
|
+
const configuredApps = service.apps.filter((app) => app.configured);
|
|
60
|
+
const configuredAppNames = configuredApps
|
|
61
|
+
.map((app) => app.appName)
|
|
62
|
+
.join(", ");
|
|
63
|
+
const createSecret = useActionMutation("create-vault-secret", {});
|
|
64
|
+
const createGrant = useActionMutation("create-vault-grant", {});
|
|
65
|
+
const syncToApp = useActionMutation("sync-vault-to-app", {});
|
|
66
|
+
function reset() {
|
|
67
|
+
setValue("");
|
|
68
|
+
}
|
|
69
|
+
async function handleSave() {
|
|
70
|
+
const trimmed = value.trim();
|
|
71
|
+
if (!trimmed) {
|
|
72
|
+
toast.error("Enter a value to save");
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
// 1. Create the secret (or get the existing one — server treats key as
|
|
77
|
+
// the unique identifier). The server returns { secret: { id, ... } }.
|
|
78
|
+
const created = await createSecret.mutateAsync({
|
|
79
|
+
credentialKey: service.key,
|
|
80
|
+
name: service.label,
|
|
81
|
+
value: trimmed,
|
|
82
|
+
provider: inferProviderFromKey(service.key, service.label),
|
|
83
|
+
});
|
|
84
|
+
const secretId = created?.secret?.id ??
|
|
85
|
+
created?.id;
|
|
86
|
+
if (!secretId) {
|
|
87
|
+
throw new Error("Secret created but id missing");
|
|
88
|
+
}
|
|
89
|
+
// 2. Manual mode needs grants; all-apps mode only needs sync.
|
|
90
|
+
if (accessMode === "manual") {
|
|
91
|
+
const targets = service.apps.filter((a) => !a.vaultGranted);
|
|
92
|
+
for (const app of targets) {
|
|
93
|
+
try {
|
|
94
|
+
await createGrant.mutateAsync({
|
|
95
|
+
secretId,
|
|
96
|
+
appId: app.appId,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
console.warn(`grant to ${app.appId} failed`, err);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
for (const app of service.apps) {
|
|
105
|
+
try {
|
|
106
|
+
await syncToApp.mutateAsync({ appId: app.appId });
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
console.warn(`sync to ${app.appId} failed`, err);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
qc.invalidateQueries({
|
|
113
|
+
queryKey: ["action", "list-integrations-catalog"],
|
|
114
|
+
});
|
|
115
|
+
toast.success(`Connected ${service.label}`);
|
|
116
|
+
onOpenChange(false);
|
|
117
|
+
reset();
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
toast.error(err?.message ?? "Failed to save credential");
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const pending = createSecret.isPending || createGrant.isPending || syncToApp.isPending;
|
|
124
|
+
return (_jsx(Dialog, { open: open, onOpenChange: (next) => {
|
|
125
|
+
if (!next)
|
|
126
|
+
reset();
|
|
127
|
+
onOpenChange(next);
|
|
128
|
+
}, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsxs(DialogTitle, { children: ["Connect ", service.label] }), _jsxs(DialogDescription, { children: [configuredApps.length > 0
|
|
129
|
+
? `Configured in ${configuredAppNames}. `
|
|
130
|
+
: "No app currently reports this key as configured. ", "Saving it creates a workspace vault entry using this exact key name. Apps need the same key name to use it."] })] }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx(Label, { className: "text-xs text-muted-foreground", children: "Key" }), _jsx("div", { className: "font-mono text-sm", children: service.key })] }), _jsxs("div", { children: [_jsx(Label, { htmlFor: "connector-value", children: "Value" }), _jsx(Input, { id: "connector-value", type: "password", autoComplete: "off", value: value, onChange: (e) => setValue(e.target.value), placeholder: `Paste your ${service.label} key…`, autoFocus: true })] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: pending, children: "Cancel" }), _jsx(Button, { onClick: handleSave, disabled: pending || !value.trim(), children: pending ? "Saving…" : "Connect" })] })] }) }));
|
|
131
|
+
}
|
|
132
|
+
function ConnectorCard({ service, accessMode, }) {
|
|
133
|
+
const [open, setOpen] = useState(false);
|
|
134
|
+
const configuredApps = service.apps.filter((app) => app.configured);
|
|
135
|
+
const vaultApps = service.apps.filter((app) => app.vaultGranted);
|
|
136
|
+
const isAvailable = configuredApps.length > 0 || vaultApps.length > 0;
|
|
137
|
+
const configuredAppNames = configuredApps
|
|
138
|
+
.map((app) => app.appName)
|
|
139
|
+
.join(", ");
|
|
140
|
+
const vaultAppNames = vaultApps.map((app) => app.appName).join(", ");
|
|
141
|
+
return (_jsxs(_Fragment, { children: [_jsxs("article", { className: "flex min-w-0 items-center gap-3 border-b border-border/60 py-3.5 last:border-b-0", children: [_jsx("div", { className: "flex size-8 shrink-0 items-center justify-center rounded-md bg-muted", children: credentialLogo(service) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: "truncate text-sm font-medium text-foreground", children: service.label }), _jsx("span", { className: isAvailable
|
|
142
|
+
? "shrink-0 text-[11px] font-medium text-emerald-600 dark:text-emerald-400"
|
|
143
|
+
: "shrink-0 text-[11px] font-medium text-muted-foreground", children: vaultApps.length > 0 ? "Connected" : "App key" })] }), _jsx("p", { className: "mt-0.5 truncate font-mono text-[11px] leading-5 text-muted-foreground/80", children: service.key }), _jsxs("p", { className: "mt-0.5 truncate text-xs leading-5 text-muted-foreground", children: ["Declared by ", service.apps.length, " ", service.apps.length === 1 ? "app" : "apps", configuredApps.length > 0 ? ` · ${configuredAppNames}` : "", vaultApps.length > 0 ? ` · Vault: ${vaultAppNames}` : ""] })] }), _jsxs("button", { type: "button", onClick: () => setOpen(true), className: "inline-flex h-8 shrink-0 items-center justify-center gap-1 rounded-md border border-border bg-background px-2.5 text-xs font-medium text-foreground transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: [isAvailable ? "Manage" : "Connect", _jsx(IconChevronRight, { className: "size-3.5 rtl:-scale-x-100" })] })] }), _jsx(ConnectDialog, { service: service, open: open, onOpenChange: setOpen, accessMode: accessMode })] }));
|
|
144
|
+
}
|
|
145
|
+
function PerAppDetailRow({ app }) {
|
|
146
|
+
const total = (app.integrations ?? []).length;
|
|
147
|
+
const ok = (app.integrations ?? []).filter((i) => i.configured).length;
|
|
148
|
+
return (_jsxs("div", { className: "flex items-center justify-between border-t px-4 py-2.5 first:border-t-0", children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [_jsx("div", { className: "h-5 w-5 rounded text-[10px] font-bold text-white flex items-center justify-center shrink-0", style: { backgroundColor: app.color }, children: app.appName.charAt(0).toUpperCase() }), _jsx("span", { className: "text-sm truncate", children: app.appName }), !app.reachable && (_jsx("span", { className: "text-xs text-muted-foreground", children: "offline" }))] }), _jsx("span", { className: "text-xs text-muted-foreground", children: total === 0 ? "no integrations" : `${ok}/${total}` })] }));
|
|
149
|
+
}
|
|
150
|
+
export default function ConnectionsRoute() {
|
|
151
|
+
const catalogQuery = useActionQuery("list-integrations-catalog", {});
|
|
152
|
+
const accessQuery = useActionQuery("get-vault-access-settings", {});
|
|
153
|
+
const { data: catalog } = catalogQuery;
|
|
154
|
+
const { data: accessSettings } = accessQuery;
|
|
155
|
+
const isLoading = catalogQuery.isLoading || accessQuery.isLoading;
|
|
156
|
+
const apps = catalog || [];
|
|
157
|
+
const accessMode = accessSettings?.mode === "manual" ? "manual" : "all-apps";
|
|
158
|
+
const [query, setQuery] = useState("");
|
|
159
|
+
const services = useMemo(() => {
|
|
160
|
+
const map = new Map();
|
|
161
|
+
for (const app of apps) {
|
|
162
|
+
for (const intg of app.integrations ?? []) {
|
|
163
|
+
if (!map.has(intg.key)) {
|
|
164
|
+
map.set(intg.key, {
|
|
165
|
+
key: intg.key,
|
|
166
|
+
label: intg.label,
|
|
167
|
+
apps: [],
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
map.get(intg.key).apps.push({
|
|
171
|
+
appId: app.appId,
|
|
172
|
+
appName: app.appName,
|
|
173
|
+
color: app.color,
|
|
174
|
+
configured: intg.configured,
|
|
175
|
+
vaultGranted: intg.vaultGranted,
|
|
176
|
+
vaultSecretId: intg.vaultSecretId,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return Array.from(map.values()).sort((a, b) => a.label.localeCompare(b.label));
|
|
181
|
+
}, [apps]);
|
|
182
|
+
const filteredServices = useMemo(() => {
|
|
183
|
+
const normalized = query.trim().toLowerCase();
|
|
184
|
+
if (!normalized)
|
|
185
|
+
return services;
|
|
186
|
+
return services.filter((service) => service.label.toLowerCase().includes(normalized) ||
|
|
187
|
+
service.key.toLowerCase().includes(normalized));
|
|
188
|
+
}, [query, services]);
|
|
189
|
+
const available = filteredServices.filter((s) => !s.apps.some((a) => a.configured));
|
|
190
|
+
const connected = filteredServices.filter((s) => s.apps.some((a) => a.configured));
|
|
191
|
+
return (_jsxs(DispatchShell, { title: "Connections", description: "Connect workspace credentials declared by apps and manage how they are shared.", children: [catalogQuery.isError || accessQuery.isError ? (_jsx(ActionQueryError, { error: catalogQuery.error ?? accessQuery.error, onRetry: () => {
|
|
192
|
+
void catalogQuery.refetch();
|
|
193
|
+
void accessQuery.refetch();
|
|
194
|
+
} })) : null, !catalogQuery.isError && !isLoading ? (_jsxs("div", { className: "mb-5 flex items-center gap-3", children: [_jsxs("div", { className: "relative min-w-0 flex-1", children: [_jsx(IconSearch, { className: "pointer-events-none absolute start-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { value: query, onChange: (event) => setQuery(event.target.value), placeholder: "Search credentials", "aria-label": "Search credentials", className: "h-9 ps-9" })] }), _jsxs("span", { className: "shrink-0 text-xs text-muted-foreground", children: [filteredServices.length, " credential", filteredServices.length === 1 ? "" : "s"] })] })) : null, !catalogQuery.isError && isLoading && services.length === 0 && (_jsx("div", { className: "overflow-hidden rounded-lg bg-card", children: Array.from({ length: 7 }).map((_, index) => (_jsxs("div", { className: "flex items-center gap-3 border-b px-4 py-3 last:border-b-0", children: [_jsx(Skeleton, { className: "size-8 rounded-md" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx(Skeleton, { className: "h-4 w-40 max-w-full" }), _jsx(Skeleton, { className: "mt-1.5 h-3 w-56 max-w-full" })] }), _jsx(Skeleton, { className: "h-6 w-20 rounded-full" })] }, index))) })), !catalogQuery.isError && !isLoading && services.length === 0 && (_jsx("div", { className: "rounded-2xl border border-dashed px-6 py-12 text-center text-sm text-muted-foreground", children: "No apps with declared integrations are reachable yet." })), available.length > 0 && (_jsxs("section", { children: [_jsxs("div", { className: "mb-3 flex items-baseline justify-between", children: [_jsx("h2", { className: "text-sm font-medium text-foreground", children: "Not configured in apps" }), _jsx("span", { className: "text-xs text-muted-foreground", children: available.length })] }), _jsx("div", { className: "overflow-hidden rounded-lg bg-card", children: available.map((service) => (_jsx(ConnectorCard, { service: service, accessMode: accessMode }, service.key))) })] })), connected.length > 0 && (_jsxs("section", { children: [_jsxs("div", { className: "mb-3 mt-2 flex items-baseline justify-between", children: [_jsx("h2", { className: "text-sm font-medium text-foreground", children: "Configured in apps" }), _jsx("span", { className: "text-xs text-muted-foreground", children: connected.length })] }), _jsx("div", { className: "overflow-hidden rounded-lg bg-card", children: connected.map((service) => (_jsx(ConnectorCard, { service: service, accessMode: accessMode }, service.key))) })] })), apps.length > 0 && (_jsxs(Collapsible, { className: "mt-6 rounded-2xl bg-card", children: [_jsxs(CollapsibleTrigger, { className: "group flex w-full items-center justify-between px-4 py-3 text-sm", children: [_jsxs("span", { className: "flex items-center gap-2 text-muted-foreground", children: [_jsx(IconPlugConnected, { size: 14 }), "Per-app status"] }), _jsx(IconChevronRight, { size: 14, className: "text-muted-foreground transition group-data-[state=open]:rotate-90" })] }), _jsxs(CollapsibleContent, { children: [_jsx("div", { className: "border-t", children: apps.map((app) => (_jsx(PerAppDetailRow, { app: app }, app.appId))) }), _jsxs("div", { className: "flex items-center justify-end gap-1.5 border-t px-4 py-2.5 text-xs text-muted-foreground", children: [_jsx(IconLink, { size: 12 }), _jsx(Link, { to: "/admin/vault", className: "hover:underline", children: "Open vault for advanced sharing" })] })] })] }))] }));
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=integrations.js.map
|