@jami-studio/dispatch 0.13.14
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 +134 -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 +10 -0
- package/dist/actions/ask_app.d.ts.map +1 -0
- package/dist/actions/ask_app.js +12 -0
- package/dist/actions/ask_app.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 +22 -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/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 +8 -0
- package/dist/actions/delete-staged-dataset.d.ts.map +1 -0
- package/dist/actions/delete-staged-dataset.js +31 -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 +55 -0
- package/dist/actions/get-agent-thread-debug.d.ts.map +1 -0
- package/dist/actions/get-agent-thread-debug.js +24 -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/index.d.ts +9 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +183 -0
- package/dist/actions/index.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 +13 -0
- package/dist/actions/list-connected-agents.d.ts.map +1 -0
- package/dist/actions/list-connected-agents.js +79 -0
- package/dist/actions/list-connected-agents.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 +5 -0
- package/dist/actions/list-dispatch-usage-metrics.d.ts.map +1 -0
- package/dist/actions/list-dispatch-usage-metrics.js +18 -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 +33 -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 +19 -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 +6 -0
- package/dist/actions/list-workspace-apps.d.ts.map +1 -0
- package/dist/actions/list-workspace-apps.js +28 -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 +15 -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 +15 -0
- package/dist/actions/list-workspace-resources.js.map +1 -0
- package/dist/actions/list_apps.d.ts +14 -0
- package/dist/actions/list_apps.d.ts.map +1 -0
- package/dist/actions/list_apps.js +26 -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 +24 -0
- package/dist/actions/provider-api-catalog.d.ts.map +1 -0
- package/dist/actions/provider-api-catalog.js +22 -0
- package/dist/actions/provider-api-catalog.js.map +1 -0
- package/dist/actions/provider-api-docs.d.ts +22 -0
- package/dist/actions/provider-api-docs.d.ts.map +1 -0
- package/dist/actions/provider-api-docs.js +57 -0
- package/dist/actions/provider-api-docs.js.map +1 -0
- package/dist/actions/provider-api-register.d.ts +85 -0
- package/dist/actions/provider-api-register.d.ts.map +1 -0
- package/dist/actions/provider-api-register.js +160 -0
- package/dist/actions/provider-api-register.js.map +1 -0
- package/dist/actions/provider-api-request.d.ts +35 -0
- package/dist/actions/provider-api-request.d.ts.map +1 -0
- package/dist/actions/provider-api-request.js +168 -0
- package/dist/actions/provider-api-request.js.map +1 -0
- package/dist/actions/query-staged-dataset.d.ts +28 -0
- package/dist/actions/query-staged-dataset.d.ts.map +1 -0
- package/dist/actions/query-staged-dataset.js +105 -0
- package/dist/actions/query-staged-dataset.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/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/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 +40 -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 +14 -0
- package/dist/actions/send-platform-message.d.ts.map +1 -0
- package/dist/actions/send-platform-message.js +73 -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 +46 -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 +54 -0
- package/dist/actions/start-workspace-app-creation.d.ts.map +1 -0
- package/dist/actions/start-workspace-app-creation.js +42 -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 +217 -0
- package/dist/actions/view-screen.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 +128 -0
- package/dist/components/agents-panel.js.map +1 -0
- package/dist/components/app-keys-popover.d.ts +11 -0
- package/dist/components/app-keys-popover.d.ts.map +1 -0
- package/dist/components/app-keys-popover.js +96 -0
- package/dist/components/app-keys-popover.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/create-app-popover.d.ts +24 -0
- package/dist/components/create-app-popover.d.ts.map +1 -0
- package/dist/components/create-app-popover.js +268 -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 +63 -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 +17 -0
- package/dist/components/dispatch-shell.js.map +1 -0
- package/dist/components/index.d.ts +13 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +12 -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 +52 -0
- package/dist/components/layout/Header.js.map +1 -0
- package/dist/components/layout/HeaderActions.d.ts +18 -0
- package/dist/components/layout/HeaderActions.d.ts.map +1 -0
- package/dist/components/layout/HeaderActions.js +52 -0
- package/dist/components/layout/HeaderActions.js.map +1 -0
- package/dist/components/layout/Layout.d.ts +36 -0
- package/dist/components/layout/Layout.d.ts.map +1 -0
- package/dist/components/layout/Layout.js +476 -0
- package/dist/components/layout/Layout.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 +299 -0
- package/dist/components/messaging-setup-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 +49 -0
- package/dist/components/task-queue-health.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 +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +23 -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 +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +36 -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 +7 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +10 -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 +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +27 -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/workspace-app-card.d.ts +6 -0
- package/dist/components/workspace-app-card.d.ts.map +1 -0
- package/dist/components/workspace-app-card.js +105 -0
- package/dist/components/workspace-app-card.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 +59 -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 +39 -0
- package/dist/components/workspace-resource-impact-preview.js.map +1 -0
- package/dist/config.d.ts +33 -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 +10 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +5 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +225 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/schema.d.ts +3058 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +190 -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 +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-navigation-state.d.ts +14 -0
- package/dist/hooks/use-navigation-state.d.ts.map +1 -0
- package/dist/hooks/use-navigation-state.js +257 -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/automation-display.d.ts +13 -0
- package/dist/lib/automation-display.d.ts.map +1 -0
- package/dist/lib/automation-display.js +62 -0
- package/dist/lib/automation-display.js.map +1 -0
- package/dist/lib/automations.d.ts +28 -0
- package/dist/lib/automations.d.ts.map +1 -0
- package/dist/lib/automations.js +27 -0
- package/dist/lib/automations.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/overview-chat.d.ts +4 -0
- package/dist/lib/overview-chat.d.ts.map +1 -0
- package/dist/lib/overview-chat.js +21 -0
- package/dist/lib/overview-chat.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-apps.d.ts +25 -0
- package/dist/lib/workspace-apps.d.ts.map +1 -0
- package/dist/lib/workspace-apps.js +9 -0
- package/dist/lib/workspace-apps.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 +64 -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 +103 -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 +48 -0
- package/dist/routes/pages/_index.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 +89 -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 +51 -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 +48 -0
- package/dist/routes/pages/approvals.js.map +1 -0
- package/dist/routes/pages/apps.$appId.d.ts +5 -0
- package/dist/routes/pages/apps.$appId.d.ts.map +1 -0
- package/dist/routes/pages/apps.$appId.js +29 -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 +90 -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 +11 -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 +106 -0
- package/dist/routes/pages/automations.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 +115 -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 +90 -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 +436 -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 +18 -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 +152 -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 +175 -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 +11 -0
- package/dist/routes/pages/new-app.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 +18 -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 +161 -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/vault.d.ts +5 -0
- package/dist/routes/pages/vault.d.ts.map +1 -0
- package/dist/routes/pages/vault.js +194 -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 +327 -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 +68 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/lib/app-creation-store.d.ts +156 -0
- package/dist/server/lib/app-creation-store.d.ts.map +1 -0
- package/dist/server/lib/app-creation-store.js +1507 -0
- package/dist/server/lib/app-creation-store.js.map +1 -0
- package/dist/server/lib/dispatch-integrations.d.ts +10 -0
- package/dist/server/lib/dispatch-integrations.d.ts.map +1 -0
- package/dist/server/lib/dispatch-integrations.js +244 -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-store.d.ts +339 -0
- package/dist/server/lib/dispatch-store.d.ts.map +1 -0
- package/dist/server/lib/dispatch-store.js +685 -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 +48 -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 +64 -0
- package/dist/server/lib/mcp-access-store.js.map +1 -0
- package/dist/server/lib/mcp-gateway.d.ts +51 -0
- package/dist/server/lib/mcp-gateway.d.ts.map +1 -0
- package/dist/server/lib/mcp-gateway.js +477 -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 +47 -0
- package/dist/server/lib/onboarding-steps.js.map +1 -0
- package/dist/server/lib/pre-auth-routing.d.ts +2 -0
- package/dist/server/lib/pre-auth-routing.d.ts.map +1 -0
- package/dist/server/lib/pre-auth-routing.js +136 -0
- package/dist/server/lib/pre-auth-routing.js.map +1 -0
- package/dist/server/lib/provider-api.d.ts +27 -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 +109 -0
- package/dist/server/lib/thread-debug-store.d.ts.map +1 -0
- package/dist/server/lib/thread-debug-store.js +590 -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 +96 -0
- package/dist/server/lib/usage-metrics-store.d.ts.map +1 -0
- package/dist/server/lib/usage-metrics-store.js +422 -0
- package/dist/server/lib/usage-metrics-store.js.map +1 -0
- package/dist/server/lib/vault-store.d.ts +344 -0
- package/dist/server/lib/vault-store.d.ts.map +1 -0
- package/dist/server/lib/vault-store.js +874 -0
- package/dist/server/lib/vault-store.js.map +1 -0
- package/dist/server/lib/workspace-resources-store.d.ts +358 -0
- package/dist/server/lib/workspace-resources-store.d.ts.map +1 -0
- package/dist/server/lib/workspace-resources-store.js +991 -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 +67 -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 +30 -0
- package/dist/server/plugins/auth.js.map +1 -0
- package/dist/server/plugins/core-routes.d.ts +3 -0
- package/dist/server/plugins/core-routes.d.ts.map +1 -0
- package/dist/server/plugins/core-routes.js +10 -0
- package/dist/server/plugins/core-routes.js.map +1 -0
- package/dist/server/plugins/db.d.ts +3 -0
- package/dist/server/plugins/db.d.ts.map +1 -0
- package/dist/server/plugins/db.js +6 -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 +67 -0
- package/dist/server/plugins/integrations.js.map +1 -0
- package/package.json +113 -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 +14 -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 +30 -0
- package/src/actions/create_embed_session.ts +30 -0
- package/src/actions/delete-destination.ts +12 -0
- package/src/actions/delete-staged-dataset.ts +40 -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 +26 -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/index.spec.ts +32 -0
- package/src/actions/index.ts +186 -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.ts +103 -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 +20 -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 +37 -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 +21 -0
- package/src/actions/list-vault-secrets.ts +27 -0
- package/src/actions/list-workspace-apps.ts +30 -0
- package/src/actions/list-workspace-resource-grants.ts +15 -0
- package/src/actions/list-workspace-resource-options.ts +17 -0
- package/src/actions/list-workspace-resources-for-app.ts +14 -0
- package/src/actions/list-workspace-resources.ts +17 -0
- package/src/actions/list_apps.ts +28 -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-catalog.ts +27 -0
- package/src/actions/provider-api-docs.ts +73 -0
- package/src/actions/provider-api-register.ts +198 -0
- package/src/actions/provider-api-request.ts +231 -0
- package/src/actions/query-staged-dataset.ts +126 -0
- package/src/actions/reject-dispatch-change.ts +13 -0
- package/src/actions/reject-dream-proposal.ts +13 -0
- package/src/actions/remove-pending-workspace-app.ts +17 -0
- package/src/actions/request-vault-secret.ts +17 -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 +50 -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.ts +101 -0
- package/src/actions/set-app-creation-settings.ts +20 -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.ts +60 -0
- package/src/actions/set-vault-access-settings.ts +17 -0
- package/src/actions/start-workspace-app-creation.ts +49 -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.ts +249 -0
- package/src/components/agents-panel.tsx +358 -0
- package/src/components/app-keys-popover.tsx +258 -0
- package/src/components/approval-value-block.spec.tsx +60 -0
- package/src/components/approval-value-block.tsx +33 -0
- package/src/components/create-app-popover.tsx +598 -0
- package/src/components/dispatch-control-plane.tsx +228 -0
- package/src/components/dispatch-shell.tsx +53 -0
- package/src/components/index.ts +17 -0
- package/src/components/layout/Header.tsx +93 -0
- package/src/components/layout/HeaderActions.tsx +84 -0
- package/src/components/layout/Layout.tsx +981 -0
- package/src/components/messaging-setup-panel.tsx +677 -0
- package/src/components/task-queue-health.tsx +166 -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 +57 -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 +120 -0
- package/src/components/ui/drawer.tsx +128 -0
- package/src/components/ui/dropdown-menu.tsx +198 -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 +29 -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 +158 -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/workspace-app-card.tsx +450 -0
- package/src/components/workspace-resource-effective-stack.spec.tsx +126 -0
- package/src/components/workspace-resource-effective-stack.tsx +142 -0
- package/src/components/workspace-resource-impact-preview.spec.tsx +148 -0
- package/src/components/workspace-resource-impact-preview.tsx +117 -0
- package/src/config.ts +35 -0
- package/src/db/index.ts +13 -0
- package/src/db/migrations.spec.ts +80 -0
- package/src/db/migrations.ts +224 -0
- package/src/db/schema.ts +204 -0
- package/src/hooks/use-mobile.tsx +21 -0
- package/src/hooks/use-navigation-state.spec.ts +45 -0
- package/src/hooks/use-navigation-state.ts +295 -0
- package/src/hooks/use-toast.ts +188 -0
- package/src/index.ts +19 -0
- package/src/lib/automation-display.spec.ts +95 -0
- package/src/lib/automation-display.ts +70 -0
- package/src/lib/automations.ts +60 -0
- package/src/lib/catch-all-target.spec.ts +156 -0
- package/src/lib/catch-all-target.ts +125 -0
- package/src/lib/overview-chat.spec.ts +63 -0
- package/src/lib/overview-chat.ts +26 -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-apps.ts +31 -0
- package/src/routes/index.ts +64 -0
- package/src/routes/pages/$appId.tsx +193 -0
- package/src/routes/pages/_index.tsx +60 -0
- package/src/routes/pages/agents.tsx +216 -0
- package/src/routes/pages/approval.tsx +287 -0
- package/src/routes/pages/approvals.tsx +158 -0
- package/src/routes/pages/apps.$appId.tsx +124 -0
- package/src/routes/pages/apps.tsx +396 -0
- package/src/routes/pages/audit.tsx +42 -0
- package/src/routes/pages/automations.tsx +280 -0
- package/src/routes/pages/chat.tsx +194 -0
- package/src/routes/pages/destinations.tsx +274 -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 +1837 -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 +92 -0
- package/src/routes/pages/integrations.tsx +451 -0
- package/src/routes/pages/messaging.tsx +17 -0
- package/src/routes/pages/metrics.tsx +777 -0
- package/src/routes/pages/new-app.tsx +19 -0
- package/src/routes/pages/overview.tsx +22 -0
- package/src/routes/pages/settings.tsx +122 -0
- package/src/routes/pages/team.tsx +9 -0
- package/src/routes/pages/thread-debug.tsx +690 -0
- package/src/routes/pages/tools.$id.tsx +9 -0
- package/src/routes/pages/tools._index.tsx +9 -0
- package/src/routes/pages/vault.tsx +874 -0
- package/src/routes/pages/workspace.tsx +1162 -0
- package/src/server/index.ts +79 -0
- package/src/server/lib/app-creation-store.spec.ts +379 -0
- package/src/server/lib/app-creation-store.ts +1933 -0
- package/src/server/lib/dispatch-integrations.spec.ts +277 -0
- package/src/server/lib/dispatch-integrations.ts +302 -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-store.ts +927 -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 +49 -0
- package/src/server/lib/mcp-access-store.spec.ts +59 -0
- package/src/server/lib/mcp-access-store.ts +104 -0
- package/src/server/lib/mcp-gateway.spec.ts +693 -0
- package/src/server/lib/mcp-gateway.ts +627 -0
- package/src/server/lib/onboarding-steps.ts +50 -0
- package/src/server/lib/pre-auth-routing.ts +159 -0
- package/src/server/lib/provider-api.ts +69 -0
- package/src/server/lib/thread-debug-store.ts +784 -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 +102 -0
- package/src/server/lib/usage-metrics-store.ts +659 -0
- package/src/server/lib/vault-store.spec.ts +189 -0
- package/src/server/lib/vault-store.ts +1234 -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 +1396 -0
- package/src/server/plugins/agent-chat.ts +69 -0
- package/src/server/plugins/auth.ts +35 -0
- package/src/server/plugins/core-routes.ts +12 -0
- package/src/server/plugins/db.ts +7 -0
- package/src/server/plugins/integrations.ts +77 -0
- package/src/styles/dispatch-css.spec.ts +65 -0
- package/src/styles/dispatch.css +108 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { agentNativePath } from "@agent-native/core/client";
|
|
2
|
+
|
|
3
|
+
export interface DispatchAutomationItem {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
path: string;
|
|
7
|
+
owner: string;
|
|
8
|
+
canUpdate?: boolean;
|
|
9
|
+
triggerType?: "schedule" | "event" | string;
|
|
10
|
+
event?: string;
|
|
11
|
+
schedule?: string;
|
|
12
|
+
scheduleDescription?: string;
|
|
13
|
+
condition?: string;
|
|
14
|
+
mode?: string;
|
|
15
|
+
domain?: string;
|
|
16
|
+
enabled?: boolean;
|
|
17
|
+
lastStatus?: string;
|
|
18
|
+
lastRun?: string;
|
|
19
|
+
lastError?: string;
|
|
20
|
+
nextRun?: string;
|
|
21
|
+
createdBy?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface SetDispatchAutomationEnabledInput {
|
|
25
|
+
owner: string;
|
|
26
|
+
path: string;
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async function readAutomationResponse<T>(response: Response): Promise<T> {
|
|
31
|
+
const data = await response.json().catch(() => null);
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
const message =
|
|
34
|
+
data && typeof data === "object" && "error" in data
|
|
35
|
+
? String((data as { error?: unknown }).error)
|
|
36
|
+
: "Automation request failed";
|
|
37
|
+
throw new Error(message);
|
|
38
|
+
}
|
|
39
|
+
return data as T;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export async function listDispatchAutomations(): Promise<
|
|
43
|
+
DispatchAutomationItem[]
|
|
44
|
+
> {
|
|
45
|
+
const response = await fetch(agentNativePath("/_agent-native/automations"));
|
|
46
|
+
if (!response.ok) return [];
|
|
47
|
+
const rows = await response.json().catch(() => []);
|
|
48
|
+
return Array.isArray(rows) ? rows : [];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export async function setDispatchAutomationEnabled(
|
|
52
|
+
input: SetDispatchAutomationEnabledInput,
|
|
53
|
+
): Promise<DispatchAutomationItem> {
|
|
54
|
+
const response = await fetch(agentNativePath("/_agent-native/automations"), {
|
|
55
|
+
method: "PATCH",
|
|
56
|
+
headers: { "content-type": "application/json" },
|
|
57
|
+
body: JSON.stringify(input),
|
|
58
|
+
});
|
|
59
|
+
return readAutomationResponse<DispatchAutomationItem>(response);
|
|
60
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
|
|
3
|
+
import { resolveCatchAllTarget } from "./catch-all-target.js";
|
|
4
|
+
|
|
5
|
+
describe("resolveCatchAllTarget", () => {
|
|
6
|
+
it("prefers the workspace manifest entry when one matches", () => {
|
|
7
|
+
expect(
|
|
8
|
+
resolveCatchAllTarget("todo", {
|
|
9
|
+
workspaceApps: [{ id: "todo", path: "/todo" }],
|
|
10
|
+
builtinAgents: [{ id: "todo", url: "https://todo.example.com" }],
|
|
11
|
+
}),
|
|
12
|
+
).toBe("/todo");
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it("falls back to the built-in template URL when no workspace manifest exists", () => {
|
|
16
|
+
expect(
|
|
17
|
+
resolveCatchAllTarget("forms", {
|
|
18
|
+
workspaceApps: null,
|
|
19
|
+
builtinAgents: [{ id: "forms", url: "http://localhost:8084" }],
|
|
20
|
+
}),
|
|
21
|
+
).toBe("http://localhost:8084");
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("falls back to the built-in template URL when the workspace manifest does not include the app", () => {
|
|
25
|
+
expect(
|
|
26
|
+
resolveCatchAllTarget("forms", {
|
|
27
|
+
workspaceApps: [{ id: "dispatch", path: "/dispatch" }],
|
|
28
|
+
builtinAgents: [{ id: "forms", url: "http://localhost:8084" }],
|
|
29
|
+
}),
|
|
30
|
+
).toBe("http://localhost:8084");
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("normalizes a manifest entry without a leading slash", () => {
|
|
34
|
+
expect(
|
|
35
|
+
resolveCatchAllTarget("todo", {
|
|
36
|
+
workspaceApps: [{ id: "todo", path: "todo" }],
|
|
37
|
+
}),
|
|
38
|
+
).toBe("/todo");
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("uses app.path when id !== path (not /${appId})", () => {
|
|
42
|
+
// Before the fix, an entry whose mounted path differs from its id —
|
|
43
|
+
// e.g. id: "forms", path: "my-forms" without a leading slash — was
|
|
44
|
+
// silently rewritten to `/forms` (the appId) and routed to the wrong
|
|
45
|
+
// app. The normalizer now keeps the manifest path and only prepends
|
|
46
|
+
// the missing slash.
|
|
47
|
+
expect(
|
|
48
|
+
resolveCatchAllTarget("forms", {
|
|
49
|
+
workspaceApps: [{ id: "forms", path: "my-forms" }],
|
|
50
|
+
}),
|
|
51
|
+
).toBe("/my-forms");
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("prefers app.url when the manifest entry has an externally-hosted URL", () => {
|
|
55
|
+
// Workspaces can point at remote deploys. The catch-all should bounce
|
|
56
|
+
// to the absolute URL instead of mounting a local path that doesn't
|
|
57
|
+
// exist inside the gateway.
|
|
58
|
+
expect(
|
|
59
|
+
resolveCatchAllTarget("forms", {
|
|
60
|
+
workspaceApps: [
|
|
61
|
+
{
|
|
62
|
+
id: "forms",
|
|
63
|
+
path: "/forms",
|
|
64
|
+
url: "https://forms.example.com",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
}),
|
|
68
|
+
).toBe("https://forms.example.com");
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it("ignores app.url that isn't an absolute http(s) URL and falls back to path", () => {
|
|
72
|
+
// Bare hostname — `new URL("forms.example.com")` throws, so the value
|
|
73
|
+
// is rejected and we fall through to the (validated) path. Without
|
|
74
|
+
// this, the catch-all would `throw redirect("forms.example.com")`
|
|
75
|
+
// and the browser would treat the value as a relative path inside the
|
|
76
|
+
// gateway, producing a broken redirect.
|
|
77
|
+
expect(
|
|
78
|
+
resolveCatchAllTarget("forms", {
|
|
79
|
+
workspaceApps: [
|
|
80
|
+
{ id: "forms", path: "/forms", url: "forms.example.com" },
|
|
81
|
+
],
|
|
82
|
+
}),
|
|
83
|
+
).toBe("/forms");
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("rejects non-http(s) URL schemes (e.g. javascript:) and falls back to path", () => {
|
|
87
|
+
// Defense in depth — a hostile manifest entry can't produce a
|
|
88
|
+
// `javascript:` redirect target. Validation enforces http(s) only.
|
|
89
|
+
expect(
|
|
90
|
+
resolveCatchAllTarget("forms", {
|
|
91
|
+
workspaceApps: [
|
|
92
|
+
{ id: "forms", path: "/forms", url: "javascript:alert(1)" },
|
|
93
|
+
],
|
|
94
|
+
}),
|
|
95
|
+
).toBe("/forms");
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it("strips a trailing slash from app.url", () => {
|
|
99
|
+
expect(
|
|
100
|
+
resolveCatchAllTarget("forms", {
|
|
101
|
+
workspaceApps: [
|
|
102
|
+
{ id: "forms", path: "/forms", url: "https://forms.example.com/" },
|
|
103
|
+
],
|
|
104
|
+
}),
|
|
105
|
+
).toBe("https://forms.example.com");
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it("ignores an empty/whitespace app.url and falls back to path", () => {
|
|
109
|
+
expect(
|
|
110
|
+
resolveCatchAllTarget("forms", {
|
|
111
|
+
workspaceApps: [{ id: "forms", path: "/forms", url: " " }],
|
|
112
|
+
}),
|
|
113
|
+
).toBe("/forms");
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it("collapses leading slashes/backslashes in app.path so `/\\evil.example` can't redirect off-origin", () => {
|
|
117
|
+
// Browsers normalize backslashes to forward slashes during URL
|
|
118
|
+
// parsing, so `throw redirect("/\\evil.example")` would resolve to
|
|
119
|
+
// `https://evil.example`. The regex covers both slash types.
|
|
120
|
+
expect(
|
|
121
|
+
resolveCatchAllTarget("forms", {
|
|
122
|
+
workspaceApps: [{ id: "forms", path: "/\\evil.example" }],
|
|
123
|
+
}),
|
|
124
|
+
).toBe("/evil.example");
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it("collapses leading double slashes in app.path so `//evil.example` can't redirect off-origin", () => {
|
|
128
|
+
// The manifest parser only checks `startsWith("/")`, so a path of
|
|
129
|
+
// `//evil.example` slips through. Browsers treat that as a network-
|
|
130
|
+
// path reference and `throw redirect("//evil.example")` would redirect
|
|
131
|
+
// to `https://evil.example` — the same phishing vector the `app.url`
|
|
132
|
+
// validator closes. Collapse the leading slashes so the redirect
|
|
133
|
+
// stays on the gateway.
|
|
134
|
+
expect(
|
|
135
|
+
resolveCatchAllTarget("forms", {
|
|
136
|
+
workspaceApps: [{ id: "forms", path: "//evil.example" }],
|
|
137
|
+
}),
|
|
138
|
+
).toBe("/evil.example");
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it("falls back to /${appId} when the manifest entry has neither path nor url", () => {
|
|
142
|
+
expect(
|
|
143
|
+
resolveCatchAllTarget("forms", {
|
|
144
|
+
workspaceApps: [{ id: "forms", path: "" }],
|
|
145
|
+
}),
|
|
146
|
+
).toBe("/forms");
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
it("returns null when nothing matches", () => {
|
|
150
|
+
expect(
|
|
151
|
+
resolveCatchAllTarget("unknown-app", {
|
|
152
|
+
workspaceApps: [{ id: "dispatch", path: "/dispatch" }],
|
|
153
|
+
}),
|
|
154
|
+
).toBeNull();
|
|
155
|
+
});
|
|
156
|
+
});
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
interface WorkspaceAppManifestEntry {
|
|
2
|
+
id?: string;
|
|
3
|
+
path?: unknown;
|
|
4
|
+
url?: unknown;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
interface BuiltinAgentEntry {
|
|
8
|
+
id: string;
|
|
9
|
+
url?: string | null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface ResolveCatchAllTargetOptions {
|
|
13
|
+
workspaceApps?: WorkspaceAppManifestEntry[] | null;
|
|
14
|
+
builtinAgents?: BuiltinAgentEntry[] | null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Resolve where `/dispatch/<appId>` should bounce to when it doesn't match
|
|
19
|
+
* an explicit dispatch route. Used by the `$appId` catch-all route loader.
|
|
20
|
+
*
|
|
21
|
+
* Resolution order:
|
|
22
|
+
*
|
|
23
|
+
* 1. Workspace apps manifest (env, .agent-native/workspace-apps.json, or a
|
|
24
|
+
* filesystem scan of `apps/`).
|
|
25
|
+
* - `app.url` (absolute URL — externally hosted workspace app) wins if
|
|
26
|
+
* present.
|
|
27
|
+
* - Otherwise the `app.path` mounted under the workspace gateway is
|
|
28
|
+
* used. Path is normalized to a leading slash if missing
|
|
29
|
+
* (e.g. manifest entry `path: "my-forms"` -> `/my-forms`), so an app
|
|
30
|
+
* whose mounted path differs from its id ends up at the right place
|
|
31
|
+
* instead of being silently rewritten to `/${appId}`.
|
|
32
|
+
* - Bare entry with no path / url falls back to `/${appId}`.
|
|
33
|
+
* 2. First-party template registry. When no workspace manifest matches
|
|
34
|
+
* (framework dev with each template on its own port, hosted dispatch
|
|
35
|
+
* with no sibling apps), return the matching template's deploy URL —
|
|
36
|
+
* dev URL in development (e.g. http://localhost:8084 for forms), prod
|
|
37
|
+
* URL in production (e.g. https://forms.jami.studio).
|
|
38
|
+
*
|
|
39
|
+
* Returns `null` if neither lookup matches, letting the route render its
|
|
40
|
+
* "Page not found" pane.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Validate `app.url` is an absolute http(s) URL before we trust it as a
|
|
44
|
+
* redirect target. A bare hostname (`"forms.example.com"`) or a
|
|
45
|
+
* `javascript:` scheme would otherwise get returned verbatim from
|
|
46
|
+
* `resolveCatchAllTarget` and produce a broken redirect (or a phishing
|
|
47
|
+
* vector). Mirrors `normalizeWorkspaceAppUrl` in
|
|
48
|
+
* `packages/core/src/deploy/workspace-deploy.ts` — but inlined to avoid
|
|
49
|
+
* pulling the deploy CLI module into a runtime path.
|
|
50
|
+
*/
|
|
51
|
+
function validatedAbsoluteUrl(value: unknown): string | undefined {
|
|
52
|
+
if (typeof value !== "string" || !value.trim()) return undefined;
|
|
53
|
+
try {
|
|
54
|
+
const parsed = new URL(value.trim());
|
|
55
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
return parsed.toString().replace(/\/$/, "");
|
|
59
|
+
} catch {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function resolveCatchAllTarget(
|
|
65
|
+
appId: string,
|
|
66
|
+
options: ResolveCatchAllTargetOptions = {},
|
|
67
|
+
): string | null {
|
|
68
|
+
const apps = options.workspaceApps;
|
|
69
|
+
if (apps) {
|
|
70
|
+
const app = apps.find((entry) => entry?.id === appId);
|
|
71
|
+
if (app) {
|
|
72
|
+
// Explicit externally-hosted URL wins. Workspaces that point at a
|
|
73
|
+
// remote deploy (e.g. a sibling app on Netlify) set `url` and we
|
|
74
|
+
// should bounce the user there rather than mounting a local path
|
|
75
|
+
// that doesn't exist inside the gateway. Validate the URL first —
|
|
76
|
+
// a bare hostname or non-http(s) scheme would produce a broken
|
|
77
|
+
// redirect (and a `javascript:` value would be a phishing vector).
|
|
78
|
+
const url = validatedAbsoluteUrl(app.url);
|
|
79
|
+
if (url) {
|
|
80
|
+
return url;
|
|
81
|
+
}
|
|
82
|
+
// Fall back to the mounted path. Normalize to leading slash so an
|
|
83
|
+
// entry whose path differs from its id (e.g. `id: "forms"`,
|
|
84
|
+
// `path: "my-forms"`) still lands on the correct gateway mount —
|
|
85
|
+
// not on `/${appId}`, which would silently route to the wrong app.
|
|
86
|
+
//
|
|
87
|
+
// Reject scheme-relative paths. Three variants reach this point —
|
|
88
|
+
// all of them get collapsed to a single leading slash so the
|
|
89
|
+
// redirect stays on the gateway:
|
|
90
|
+
//
|
|
91
|
+
// `//evil.example` — network-path reference, browser treats as
|
|
92
|
+
// absolute (https://evil.example).
|
|
93
|
+
// `/\evil.example` — browsers normalize backslashes to forward
|
|
94
|
+
// slashes during URL parsing, same result.
|
|
95
|
+
// `\/evil.example` — same idea, leading-backslash variant.
|
|
96
|
+
//
|
|
97
|
+
// The manifest parser only checks `startsWith("/")` for the first
|
|
98
|
+
// case, and even that allows `//evil...`. Defend in depth here by
|
|
99
|
+
// collapsing any run of leading slashes-or-backslashes to one
|
|
100
|
+
// forward slash. Same phishing vector that `validatedAbsoluteUrl`
|
|
101
|
+
// closes for `app.url`.
|
|
102
|
+
if (typeof app.path === "string" && app.path.trim()) {
|
|
103
|
+
const normalized = app.path.trim().replace(/^[/\\]+/, "/");
|
|
104
|
+
return normalized.startsWith("/") ? normalized : `/${normalized}`;
|
|
105
|
+
}
|
|
106
|
+
return `/${appId}`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const builtin = (options.builtinAgents ?? []).find(
|
|
110
|
+
(agent) => agent.id === appId,
|
|
111
|
+
);
|
|
112
|
+
return builtin?.url ?? null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export async function resolveServerCatchAllTarget(
|
|
116
|
+
appId: string,
|
|
117
|
+
): Promise<string | null> {
|
|
118
|
+
if (!import.meta.env.SSR) return null;
|
|
119
|
+
const { getBuiltinAgents, loadWorkspaceAppsManifest } =
|
|
120
|
+
await import("@agent-native/core/server/agent-discovery");
|
|
121
|
+
return resolveCatchAllTarget(appId, {
|
|
122
|
+
workspaceApps: loadWorkspaceAppsManifest(),
|
|
123
|
+
builtinAgents: getBuiltinAgents("dispatch"),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
|
|
3
|
+
const frameState = vi.hoisted(() => ({ inBuilderFrame: false }));
|
|
4
|
+
const sendToAgentChatMock = vi.hoisted(() => vi.fn(() => "chat-tab"));
|
|
5
|
+
|
|
6
|
+
vi.mock("@agent-native/core/client", () => ({
|
|
7
|
+
isInBuilderFrame: () => frameState.inBuilderFrame,
|
|
8
|
+
sendToAgentChat: sendToAgentChatMock,
|
|
9
|
+
}));
|
|
10
|
+
|
|
11
|
+
const { submitOverviewPrompt } = await import("./overview-chat.js");
|
|
12
|
+
|
|
13
|
+
describe("submitOverviewPrompt", () => {
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
frameState.inBuilderFrame = false;
|
|
16
|
+
sendToAgentChatMock.mockClear();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("sends overview prompts to a new local agent tab outside Builder", () => {
|
|
20
|
+
const tabId = submitOverviewPrompt(" build a metrics app ", "auto");
|
|
21
|
+
|
|
22
|
+
expect(tabId).toBe("chat-tab");
|
|
23
|
+
expect(sendToAgentChatMock).toHaveBeenCalledWith({
|
|
24
|
+
message: "build a metrics app",
|
|
25
|
+
submit: true,
|
|
26
|
+
newTab: true,
|
|
27
|
+
model: "auto",
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("can submit to a mounted page chat without opening the sidebar", () => {
|
|
32
|
+
const tabId = submitOverviewPrompt(" build a metrics app ", "auto", {
|
|
33
|
+
openSidebar: false,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
expect(tabId).toBe("chat-tab");
|
|
37
|
+
expect(sendToAgentChatMock).toHaveBeenCalledWith({
|
|
38
|
+
message: "build a metrics app",
|
|
39
|
+
submit: true,
|
|
40
|
+
newTab: true,
|
|
41
|
+
model: "auto",
|
|
42
|
+
openSidebar: false,
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("routes overview prompts to Builder chat inside Builder", () => {
|
|
47
|
+
frameState.inBuilderFrame = true;
|
|
48
|
+
|
|
49
|
+
const tabId = submitOverviewPrompt("ship the onboarding flow", "auto");
|
|
50
|
+
|
|
51
|
+
expect(tabId).toBe("chat-tab");
|
|
52
|
+
expect(sendToAgentChatMock).toHaveBeenCalledWith({
|
|
53
|
+
message: "ship the onboarding flow",
|
|
54
|
+
submit: true,
|
|
55
|
+
type: "code",
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("ignores empty prompts", () => {
|
|
60
|
+
expect(submitOverviewPrompt(" ", "auto")).toBeNull();
|
|
61
|
+
expect(sendToAgentChatMock).not.toHaveBeenCalled();
|
|
62
|
+
});
|
|
63
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isInBuilderFrame, sendToAgentChat } from "@agent-native/core/client";
|
|
2
|
+
|
|
3
|
+
export function submitOverviewPrompt(
|
|
4
|
+
message: string,
|
|
5
|
+
selectedModel?: string | null,
|
|
6
|
+
options?: { openSidebar?: boolean },
|
|
7
|
+
): string | null {
|
|
8
|
+
const trimmed = message.trim();
|
|
9
|
+
if (!trimmed) return null;
|
|
10
|
+
|
|
11
|
+
if (isInBuilderFrame()) {
|
|
12
|
+
return sendToAgentChat({
|
|
13
|
+
message: trimmed,
|
|
14
|
+
submit: true,
|
|
15
|
+
type: "code",
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return sendToAgentChat({
|
|
20
|
+
message: trimmed,
|
|
21
|
+
submit: true,
|
|
22
|
+
newTab: true,
|
|
23
|
+
model: selectedModel || undefined,
|
|
24
|
+
...(options?.openSidebar === false ? { openSidebar: false } : {}),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
formatQueueAgeSeconds,
|
|
5
|
+
normalizeTaskQueueStats,
|
|
6
|
+
ZERO_TASK_QUEUE_STATS,
|
|
7
|
+
} from "./task-queue";
|
|
8
|
+
|
|
9
|
+
describe("normalizeTaskQueueStats", () => {
|
|
10
|
+
it("returns zeros for invalid payloads", () => {
|
|
11
|
+
expect(normalizeTaskQueueStats(null)).toEqual(ZERO_TASK_QUEUE_STATS);
|
|
12
|
+
expect(normalizeTaskQueueStats("bad")).toEqual(ZERO_TASK_QUEUE_STATS);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it("normalizes numeric fields and recent failures", () => {
|
|
16
|
+
expect(
|
|
17
|
+
normalizeTaskQueueStats({
|
|
18
|
+
pending: "2",
|
|
19
|
+
processing: 1,
|
|
20
|
+
completed_last_hour: 4,
|
|
21
|
+
failed_last_hour: "1",
|
|
22
|
+
oldest_pending_age_seconds: 90,
|
|
23
|
+
recent_failures: [
|
|
24
|
+
{
|
|
25
|
+
id: "f1",
|
|
26
|
+
platform: "slack",
|
|
27
|
+
error: "rate limited",
|
|
28
|
+
attempts: "3",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
}),
|
|
32
|
+
).toEqual({
|
|
33
|
+
pending: 2,
|
|
34
|
+
processing: 1,
|
|
35
|
+
completed_last_hour: 4,
|
|
36
|
+
failed_last_hour: 1,
|
|
37
|
+
oldest_pending_age_seconds: 90,
|
|
38
|
+
recent_failures: [
|
|
39
|
+
{
|
|
40
|
+
id: "f1",
|
|
41
|
+
platform: "slack",
|
|
42
|
+
error: "rate limited",
|
|
43
|
+
attempts: 3,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
describe("formatQueueAgeSeconds", () => {
|
|
51
|
+
it("formats common ages", () => {
|
|
52
|
+
expect(formatQueueAgeSeconds(0)).toBe("none");
|
|
53
|
+
expect(formatQueueAgeSeconds(12)).toBe("12s");
|
|
54
|
+
expect(formatQueueAgeSeconds(120)).toBe("2m");
|
|
55
|
+
expect(formatQueueAgeSeconds(7200)).toBe("2.0h");
|
|
56
|
+
});
|
|
57
|
+
});
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { agentNativePath } from "@agent-native/core/client";
|
|
2
|
+
|
|
3
|
+
export interface TaskQueueFailure {
|
|
4
|
+
id: string;
|
|
5
|
+
platform: string;
|
|
6
|
+
error: string;
|
|
7
|
+
attempts: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface TaskQueueStats {
|
|
11
|
+
pending: number;
|
|
12
|
+
processing: number;
|
|
13
|
+
completed_last_hour: number;
|
|
14
|
+
failed_last_hour: number;
|
|
15
|
+
oldest_pending_age_seconds: number;
|
|
16
|
+
recent_failures: TaskQueueFailure[];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const ZERO_TASK_QUEUE_STATS: TaskQueueStats = {
|
|
20
|
+
pending: 0,
|
|
21
|
+
processing: 0,
|
|
22
|
+
completed_last_hour: 0,
|
|
23
|
+
failed_last_hour: 0,
|
|
24
|
+
oldest_pending_age_seconds: 0,
|
|
25
|
+
recent_failures: [],
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
function asNumber(value: unknown): number {
|
|
29
|
+
const n = Number(value ?? 0);
|
|
30
|
+
return Number.isFinite(n) ? n : 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function normalizeTaskQueueStats(value: unknown): TaskQueueStats {
|
|
34
|
+
if (!value || typeof value !== "object") return ZERO_TASK_QUEUE_STATS;
|
|
35
|
+
const stats = value as Record<string, unknown>;
|
|
36
|
+
return {
|
|
37
|
+
pending: asNumber(stats.pending),
|
|
38
|
+
processing: asNumber(stats.processing),
|
|
39
|
+
completed_last_hour: asNumber(stats.completed_last_hour),
|
|
40
|
+
failed_last_hour: asNumber(stats.failed_last_hour),
|
|
41
|
+
oldest_pending_age_seconds: asNumber(stats.oldest_pending_age_seconds),
|
|
42
|
+
recent_failures: Array.isArray(stats.recent_failures)
|
|
43
|
+
? stats.recent_failures.map((failure, index) => {
|
|
44
|
+
const row =
|
|
45
|
+
failure && typeof failure === "object"
|
|
46
|
+
? (failure as Record<string, unknown>)
|
|
47
|
+
: {};
|
|
48
|
+
return {
|
|
49
|
+
id: String(row.id ?? `failure-${index}`),
|
|
50
|
+
platform: String(row.platform ?? ""),
|
|
51
|
+
error: String(row.error ?? ""),
|
|
52
|
+
attempts: asNumber(row.attempts),
|
|
53
|
+
};
|
|
54
|
+
})
|
|
55
|
+
: [],
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export async function getDispatchTaskQueueStats(): Promise<TaskQueueStats> {
|
|
60
|
+
const response = await fetch(
|
|
61
|
+
agentNativePath("/_agent-native/integrations/task-queue/status"),
|
|
62
|
+
);
|
|
63
|
+
if (!response.ok) return ZERO_TASK_QUEUE_STATS;
|
|
64
|
+
return normalizeTaskQueueStats(await response.json().catch(() => null));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function formatQueueAgeSeconds(seconds: number): string {
|
|
68
|
+
if (!Number.isFinite(seconds) || seconds <= 0) return "none";
|
|
69
|
+
if (seconds < 60) return `${Math.round(seconds)}s`;
|
|
70
|
+
if (seconds < 3600) return `${Math.round(seconds / 60)}m`;
|
|
71
|
+
return `${(seconds / 3600).toFixed(1)}h`;
|
|
72
|
+
}
|