@agent-native/core 0.7.16 → 0.7.18
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/dist/a2a/agent-card.js.map +1 -1
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/server.js.map +1 -1
- package/dist/a2a/task-store.js.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/adapters/cli/index.js.map +1 -1
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/adapters/cli/shell-adapter.js.map +1 -1
- package/dist/adapters/cli/types.js.map +1 -1
- package/dist/agent/default-model.js.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/engine/builtin.js.map +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/provider-env-vars.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +5 -3
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +6 -5
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
- package/dist/agent/engine/translate-anthropic.js.map +1 -1
- package/dist/agent/engine/types.js.map +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/application-state/emitter.js.map +1 -1
- package/dist/application-state/handlers.js.map +1 -1
- package/dist/application-state/index.js.map +1 -1
- package/dist/application-state/script-helpers.js.map +1 -1
- package/dist/application-state/store.js.map +1 -1
- package/dist/chat-threads/emitter.js.map +1 -1
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/checkpoints/index.js.map +1 -1
- package/dist/checkpoints/service.js.map +1 -1
- package/dist/checkpoints/store.js.map +1 -1
- package/dist/cli/create-workspace.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +11 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/info.js.map +1 -1
- package/dist/cli/setup-agents.js.map +1 -1
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/cli/workspacify.js.map +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AgentTaskCard.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ClientOnly.js.map +1 -1
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/ConnectBuilderCard.js.map +1 -1
- package/dist/client/DefaultSpinner.js.map +1 -1
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/IframeEmbed.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/PoweredByBadge.js.map +1 -1
- package/dist/client/ProductionAgentPanel.js.map +1 -1
- package/dist/client/Turnstile.js.map +1 -1
- package/dist/client/active-run-state.js.map +1 -1
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/api-path.js.map +1 -1
- package/dist/client/builder-mark.js.map +1 -1
- package/dist/client/components/AgentPresenceChip.js.map +1 -1
- package/dist/client/components/ApiKeySettings.js.map +1 -1
- package/dist/client/components/CodeAgentIndicator.js.map +1 -1
- package/dist/client/components/CodeRequiredDialog.js.map +1 -1
- package/dist/client/components/MissingKeyCard.js.map +1 -1
- package/dist/client/components/PresenceBar.js.map +1 -1
- package/dist/client/components/ui/popover.js.map +1 -1
- package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
- package/dist/client/composer/MentionPopover.js.map +1 -1
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.js.map +1 -1
- package/dist/client/composer/draft-key.js.map +1 -1
- package/dist/client/composer/extensions/FileReference.js.map +1 -1
- package/dist/client/composer/extensions/MentionReference.js.map +1 -1
- package/dist/client/composer/extensions/SkillReference.js.map +1 -1
- package/dist/client/composer/index.js.map +1 -1
- package/dist/client/composer/types.js.map +1 -1
- package/dist/client/composer/use-file-search.js.map +1 -1
- package/dist/client/composer/use-mention-search.js.map +1 -1
- package/dist/client/composer/use-skills.js.map +1 -1
- package/dist/client/composer/useVoiceDictation.js.map +1 -1
- package/dist/client/dev-mode.js.map +1 -1
- package/dist/client/dev-overlay/DevOverlay.js.map +1 -1
- package/dist/client/dev-overlay/builtins.js.map +1 -1
- package/dist/client/dev-overlay/index.js.map +1 -1
- package/dist/client/dev-overlay/registry.js.map +1 -1
- package/dist/client/dev-overlay/types.js.map +1 -1
- package/dist/client/dev-overlay/use-dev-option.js.map +1 -1
- package/dist/client/dev-overlay/use-dev-overlay-shortcut.js.map +1 -1
- package/dist/client/embed.js.map +1 -1
- package/dist/client/error-format.js.map +1 -1
- package/dist/client/frame-protocol.js.map +1 -1
- package/dist/client/frame.js.map +1 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +0 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/integrations/IntegrationCard.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/integrations/index.js.map +1 -1
- package/dist/client/integrations/useIntegrationStatus.js.map +1 -1
- package/dist/client/notifications/NotificationsBell.js.map +1 -1
- package/dist/client/notifications/index.js.map +1 -1
- package/dist/client/observability/ObservabilityDashboard.js.map +1 -1
- package/dist/client/observability/ThumbsFeedback.js.map +1 -1
- package/dist/client/observability/index.js.map +1 -1
- package/dist/client/observability/useObservability.js.map +1 -1
- package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +6 -27
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/onboarding/SetupButton.js.map +1 -1
- package/dist/client/onboarding/index.js.map +1 -1
- package/dist/client/onboarding/use-onboarding.js.map +1 -1
- package/dist/client/onboarding/use-preview-mode.js.map +1 -1
- package/dist/client/org/InvitationBanner.js.map +1 -1
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/org/RequireActiveOrg.js.map +1 -1
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/org/hooks.js.map +1 -1
- package/dist/client/org/index.js.map +1 -1
- package/dist/client/progress/RunsTray.js.map +1 -1
- package/dist/client/progress/index.js.map +1 -1
- package/dist/client/resources/McpServerDetail.js.map +1 -1
- package/dist/client/resources/ResourceEditor.js.map +1 -1
- package/dist/client/resources/ResourceTree.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/resources/index.js.map +1 -1
- package/dist/client/resources/use-mcp-servers.js.map +1 -1
- package/dist/client/resources/use-resources.js.map +1 -1
- package/dist/client/settings/AgentsSection.js.map +1 -1
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/BackgroundAgentSection.js.map +1 -1
- package/dist/client/settings/BrowserSection.js.map +1 -1
- package/dist/client/settings/SecretsSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +3 -19
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsSection.js.map +1 -1
- package/dist/client/settings/UsageSection.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/client/sharing/VisibilityBadge.js.map +1 -1
- package/dist/client/sharing/index.js.map +1 -1
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/terminal/AgentTerminal.js.map +1 -1
- package/dist/client/terminal/index.js.map +1 -1
- package/dist/client/tools/EmbeddedTool.js.map +1 -1
- package/dist/client/tools/ExtensionSlot.js.map +1 -1
- package/dist/client/tools/ToolEditor.js.map +1 -1
- package/dist/client/tools/ToolViewer.js.map +1 -1
- package/dist/client/tools/ToolViewerPage.js.map +1 -1
- package/dist/client/tools/ToolsListPage.js.map +1 -1
- package/dist/client/tools/ToolsSidebarSection.js.map +1 -1
- package/dist/client/tools/iframe-bridge.js.map +1 -1
- package/dist/client/tools/index.js.map +1 -1
- package/dist/client/transcription/BuilderTranscriptionCta.js.map +1 -1
- package/dist/client/transcription/use-live-transcription.js.map +1 -1
- package/dist/client/use-action.js.map +1 -1
- package/dist/client/use-agent-chat.js.map +1 -1
- package/dist/client/use-avatar.js.map +1 -1
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/client/use-dev-mode.js.map +1 -1
- package/dist/client/use-pausing-interval.js.map +1 -1
- package/dist/client/use-send-to-agent-chat.js.map +1 -1
- package/dist/client/use-session.js.map +1 -1
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/client/utils.js.map +1 -1
- package/dist/collab/agent-identity.js.map +1 -1
- package/dist/collab/agent-presence.js.map +1 -1
- package/dist/collab/awareness.js.map +1 -1
- package/dist/collab/client-struct.js.map +1 -1
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/emitter.js.map +1 -1
- package/dist/collab/index.js.map +1 -1
- package/dist/collab/json-to-yjs.js.map +1 -1
- package/dist/collab/routes.js.map +1 -1
- package/dist/collab/storage.js.map +1 -1
- package/dist/collab/struct-routes.js.map +1 -1
- package/dist/collab/text-to-yjs.js.map +1 -1
- package/dist/collab/xml-ops.js.map +1 -1
- package/dist/collab/ydoc-manager.js.map +1 -1
- package/dist/credentials/index.js.map +1 -1
- package/dist/db/client.js.map +1 -1
- package/dist/db/create-get-db.js.map +1 -1
- package/dist/db/drizzle-config.js.map +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/route-discovery.js.map +1 -1
- package/dist/deploy/workspace-core.js.map +1 -1
- package/dist/deploy/workspace-deploy.js.map +1 -1
- package/dist/event-bus/bus.js.map +1 -1
- package/dist/event-bus/index.js.map +1 -1
- package/dist/event-bus/registry.js.map +1 -1
- package/dist/event-bus/types.js.map +1 -1
- package/dist/file-upload/builder.js.map +1 -1
- package/dist/file-upload/index.js.map +1 -1
- package/dist/file-upload/registry.js.map +1 -1
- package/dist/file-upload/types.js.map +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/adapters/email.js.map +1 -1
- package/dist/integrations/adapters/google-docs.js.map +1 -1
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/adapters/telegram.js.map +1 -1
- package/dist/integrations/adapters/whatsapp.js.map +1 -1
- package/dist/integrations/config-store.js.map +1 -1
- package/dist/integrations/google-docs-poller.js.map +1 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/internal-token.js.map +1 -1
- package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
- package/dist/integrations/pending-tasks-store.js.map +1 -1
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/task-queue-stats.js.map +1 -1
- package/dist/integrations/thread-mapping-store.js.map +1 -1
- package/dist/integrations/types.js.map +1 -1
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/cron.js.map +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/jobs/tools.js.map +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp-client/config.js.map +1 -1
- package/dist/mcp-client/hub-client.js.map +1 -1
- package/dist/mcp-client/hub-routes.js.map +1 -1
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/mcp-client/manager.js.map +1 -1
- package/dist/mcp-client/remote-store.js.map +1 -1
- package/dist/mcp-client/routes.js.map +1 -1
- package/dist/mcp-client/visibility.js.map +1 -1
- package/dist/notifications/actions.js.map +1 -1
- package/dist/notifications/channels.js.map +1 -1
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/registry.js.map +1 -1
- package/dist/notifications/routes.js.map +1 -1
- package/dist/notifications/store.js.map +1 -1
- package/dist/notifications/types.js.map +1 -1
- package/dist/oauth-tokens/google-refresh.js.map +1 -1
- package/dist/oauth-tokens/index.js.map +1 -1
- package/dist/oauth-tokens/store.js.map +1 -1
- package/dist/observability/cleanup-job.js.map +1 -1
- package/dist/observability/evals.js.map +1 -1
- package/dist/observability/experiments.js.map +1 -1
- package/dist/observability/feedback.js.map +1 -1
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/plugin.js.map +1 -1
- package/dist/observability/routes.js.map +1 -1
- package/dist/observability/store.js.map +1 -1
- package/dist/observability/traces.js.map +1 -1
- package/dist/observability/types.js.map +1 -1
- package/dist/onboarding/default-steps.d.ts.map +1 -1
- package/dist/onboarding/default-steps.js +0 -1
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/onboarding/index.js.map +1 -1
- package/dist/onboarding/plugin.js.map +1 -1
- package/dist/onboarding/registry.js.map +1 -1
- package/dist/onboarding/types.d.ts +0 -9
- package/dist/onboarding/types.d.ts.map +1 -1
- package/dist/onboarding/types.js.map +1 -1
- package/dist/org/accept-pending.js.map +1 -1
- package/dist/org/context.js.map +1 -1
- package/dist/org/handlers.js.map +1 -1
- package/dist/org/index.js.map +1 -1
- package/dist/org/migrations.js.map +1 -1
- package/dist/org/plugin.js.map +1 -1
- package/dist/org/schema.js.map +1 -1
- package/dist/org/types.js.map +1 -1
- package/dist/progress/actions.js.map +1 -1
- package/dist/progress/index.js.map +1 -1
- package/dist/progress/registry.js.map +1 -1
- package/dist/progress/routes.js.map +1 -1
- package/dist/progress/store.js.map +1 -1
- package/dist/progress/types.js.map +1 -1
- package/dist/resources/agents.js.map +1 -1
- package/dist/resources/emitter.js.map +1 -1
- package/dist/resources/handlers.js.map +1 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/metadata.js.map +1 -1
- package/dist/resources/script-helpers.js.map +1 -1
- package/dist/resources/store.js.map +1 -1
- package/dist/router/index.js.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
- package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
- package/dist/scripts/agent-engines/test-agent-engine.js.map +1 -1
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/chat/index.js.map +1 -1
- package/dist/scripts/chat/open-chat.js.map +1 -1
- package/dist/scripts/chat/search-chats.js.map +1 -1
- package/dist/scripts/core-scripts.js.map +1 -1
- package/dist/scripts/db/check-scoping.js.map +1 -1
- package/dist/scripts/db/exec.js.map +1 -1
- package/dist/scripts/db/index.js.map +1 -1
- package/dist/scripts/db/migrate-user-api-keys.js.map +1 -1
- package/dist/scripts/db/patch.js.map +1 -1
- package/dist/scripts/db/query.js.map +1 -1
- package/dist/scripts/db/schema.js.map +1 -1
- package/dist/scripts/db/scoping.js.map +1 -1
- package/dist/scripts/db/wipe-leaked-builder-keys.js.map +1 -1
- package/dist/scripts/dev/index.js.map +1 -1
- package/dist/scripts/dev/list-files.js.map +1 -1
- package/dist/scripts/dev/read-file.js.map +1 -1
- package/dist/scripts/dev/search-files.js.map +1 -1
- package/dist/scripts/dev/shell.js.map +1 -1
- package/dist/scripts/dev/write-file.js.map +1 -1
- package/dist/scripts/docs/index.js.map +1 -1
- package/dist/scripts/docs/search.js.map +1 -1
- package/dist/scripts/index.js.map +1 -1
- package/dist/scripts/parse-args.js.map +1 -1
- package/dist/scripts/resources/delete-memory.js.map +1 -1
- package/dist/scripts/resources/delete.js.map +1 -1
- package/dist/scripts/resources/index.js.map +1 -1
- package/dist/scripts/resources/list.js.map +1 -1
- package/dist/scripts/resources/migrate-learnings.js.map +1 -1
- package/dist/scripts/resources/read.js.map +1 -1
- package/dist/scripts/resources/save-memory.js.map +1 -1
- package/dist/scripts/resources/write.js.map +1 -1
- package/dist/scripts/runner.js.map +1 -1
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +3 -2
- package/dist/scripts/utils.js.map +1 -1
- package/dist/secrets/index.js.map +1 -1
- package/dist/secrets/onboarding.js.map +1 -1
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/secrets/register.js.map +1 -1
- package/dist/secrets/routes.js.map +1 -1
- package/dist/secrets/schema.js.map +1 -1
- package/dist/secrets/storage.js.map +1 -1
- package/dist/secrets/substitution.js.map +1 -1
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/action-routes.js.map +1 -1
- package/dist/server/agent-chat-plugin.js +1 -1
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.js.map +1 -1
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/agents-bundle.js.map +1 -1
- package/dist/server/analytics.js.map +1 -1
- package/dist/server/app-base-path.js.map +1 -1
- package/dist/server/app-name.js.map +1 -1
- package/dist/server/app-url.js.map +1 -1
- package/dist/server/auth-plugin.js.map +1 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/builder-browser.js.map +1 -1
- package/dist/server/captcha.js.map +1 -1
- package/dist/server/cli-capture.js.map +1 -1
- package/dist/server/collab-plugin.js.map +1 -1
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/csrf.js.map +1 -1
- package/dist/server/date-utils.js.map +1 -1
- package/dist/server/design-token-utils.js.map +1 -1
- package/dist/server/desktop-sso.js.map +1 -1
- package/dist/server/email-template.js.map +1 -1
- package/dist/server/email-templates.js.map +1 -1
- package/dist/server/email.js.map +1 -1
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/google-auth-plugin.js.map +1 -1
- package/dist/server/google-oauth.d.ts +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +14 -6
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/h3-helpers.js.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/local-migration.js.map +1 -1
- package/dist/server/missing-key.js.map +1 -1
- package/dist/server/oauth-helpers.js.map +1 -1
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/poll.js.map +1 -1
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/resources-plugin.js.map +1 -1
- package/dist/server/schema-prompt.js.map +1 -1
- package/dist/server/script-discovery.js.map +1 -1
- package/dist/server/security-headers.js.map +1 -1
- package/dist/server/short-lived-token.js.map +1 -1
- package/dist/server/sse.js.map +1 -1
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/server/voice-providers-status.js.map +1 -1
- package/dist/settings/handlers.js.map +1 -1
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/org-settings.js.map +1 -1
- package/dist/settings/script-helpers.js.map +1 -1
- package/dist/settings/store.js.map +1 -1
- package/dist/settings/user-settings.js.map +1 -1
- package/dist/shared/agent-chat.js.map +1 -1
- package/dist/shared/agent-env.js.map +1 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/runtime.js.map +1 -1
- package/dist/shared/truncate.js.map +1 -1
- package/dist/sharing/access.d.ts +9 -1
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +11 -2
- package/dist/sharing/access.js.map +1 -1
- package/dist/sharing/actions/list-resource-shares.js.map +1 -1
- package/dist/sharing/actions/set-resource-visibility.js.map +1 -1
- package/dist/sharing/actions/share-resource.js.map +1 -1
- package/dist/sharing/actions/unshare-resource.js.map +1 -1
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/registry.js.map +1 -1
- package/dist/sharing/schema.js.map +1 -1
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/terminal/cli-registry.js.map +1 -1
- package/dist/terminal/index.js.map +1 -1
- package/dist/terminal/pty-server.js.map +1 -1
- package/dist/terminal/terminal-plugin.d.ts.map +1 -1
- package/dist/terminal/terminal-plugin.js +19 -4
- package/dist/terminal/terminal-plugin.js.map +1 -1
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/fetch-tool.js.map +1 -1
- package/dist/tools/html-shell.js.map +1 -1
- package/dist/tools/proxy-security.js.map +1 -1
- package/dist/tools/routes.js.map +1 -1
- package/dist/tools/schema.js.map +1 -1
- package/dist/tools/slots/routes.js.map +1 -1
- package/dist/tools/slots/schema.js.map +1 -1
- package/dist/tools/slots/store.js.map +1 -1
- package/dist/tools/store.js.map +1 -1
- package/dist/tools/theme.js.map +1 -1
- package/dist/tools/url-safety.js.map +1 -1
- package/dist/tracking/index.js.map +1 -1
- package/dist/tracking/providers.js.map +1 -1
- package/dist/tracking/registry.js.map +1 -1
- package/dist/tracking/types.js.map +1 -1
- package/dist/transcription/builder-transcription.js.map +1 -1
- package/dist/triggers/actions.js.map +1 -1
- package/dist/triggers/condition-evaluator.js.map +1 -1
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/triggers/index.js.map +1 -1
- package/dist/triggers/types.js.map +1 -1
- package/dist/usage/store.js.map +1 -1
- package/dist/vite/action-types-plugin.js.map +1 -1
- package/dist/vite/agents-bundle-plugin.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +4 -0
- package/dist/vite/client.js.map +1 -1
- package/dist/vite/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/settings/ComingSoonSection.d.ts +0 -13
- package/dist/client/settings/ComingSoonSection.d.ts.map +0 -1
- package/dist/client/settings/ComingSoonSection.js +0 -10
- package/dist/client/settings/ComingSoonSection.js.map +0 -1
- package/dist/client/use-builder-enabled.d.ts +0 -17
- package/dist/client/use-builder-enabled.d.ts.map +0 -1
- package/dist/client/use-builder-enabled.js +0 -37
- package/dist/client/use-builder-enabled.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production-agent.js","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"production-agent.js","sourceRoot":"","sources":["../../src/agent/production-agent.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n defineEventHandler,\n setResponseHeader,\n setResponseStatus,\n getMethod,\n} from \"h3\";\nimport { DEV_MODE_USER_EMAIL } from \"../server/auth.js\";\nimport { isLocalDatabase } from \"../db/client.js\";\nimport { readDeployCredentialEnv } from \"../server/credential-provider.js\";\nimport type { EventHandler as H3EventHandler } from \"h3\";\nimport type {\n ActionTool,\n AgentChatAttachment,\n AgentChatRequest,\n AgentChatEvent,\n AgentChatReference,\n} from \"./types.js\";\nimport type {\n AgentEngine,\n EngineTool,\n EngineMessage,\n EngineContentPart,\n} from \"./engine/types.js\";\nimport { EngineError } from \"./engine/types.js\";\nimport {\n resolveEngine,\n registerBuiltinEngines,\n getStoredModelForEngine,\n} from \"./engine/index.js\";\nimport { PROVIDER_TO_ENV } from \"./engine/provider-env-vars.js\";\nimport { readAppState } from \"../application-state/script-helpers.js\";\nimport {\n startRun,\n subscribeToRun,\n getActiveRunForThread,\n getActiveRunForThreadAsync,\n getRun,\n abortRun,\n} from \"./run-manager.js\";\nimport type { ActiveRun } from \"./run-manager.js\";\nimport { readBody } from \"../server/h3-helpers.js\";\nimport { getRequestUserEmail } from \"../server/request-context.js\";\nimport { isMcpToolAllowedForRequest } from \"../mcp-client/visibility.js\";\n\n// Register built-in engines on first import\nregisterBuiltinEngines();\n\nexport { PROVIDER_TO_ENV };\n\n/**\n * Look up a user's persisted API key for the given provider. Returns\n * `undefined` for unauthenticated/local callers so the shared platform key\n * is never keyed off `local@localhost` in multi-tenant deployments.\n *\n * Read order:\n * 1. `app_secrets` — encrypted, scope=user, current source of truth.\n * 2. Legacy `user-api-key:<provider>:<email>` settings row — pre-migration\n * data that hasn't been backfilled yet. Surfaced for compat only;\n * writes always go to app_secrets now.\n */\nexport async function getOwnerApiKey(\n provider: string,\n ownerEmail: string | null | undefined,\n): Promise<string | undefined> {\n if (!ownerEmail || ownerEmail === DEV_MODE_USER_EMAIL) return undefined;\n const secretKey =\n PROVIDER_TO_ENV[provider] ?? `${provider.toUpperCase()}_API_KEY`;\n try {\n const { readAppSecret } = await import(\"../secrets/storage.js\");\n const fromSecrets = await readAppSecret({\n key: secretKey,\n scope: \"user\",\n scopeId: ownerEmail,\n });\n if (fromSecrets?.value) return fromSecrets.value;\n } catch {\n // app_secrets table not ready — fall through to legacy lookup.\n }\n try {\n const { getSetting } = await import(\"../settings/store.js\");\n const stored = await getSetting(`user-api-key:${provider}:${ownerEmail}`);\n const key =\n stored && typeof stored.key === \"string\" ? stored.key.trim() : \"\";\n if (key) return key;\n if (provider === \"anthropic\") {\n const legacy = await getSetting(`user-anthropic-api-key:${ownerEmail}`);\n const legacyKey =\n legacy && typeof legacy.key === \"string\" ? legacy.key.trim() : \"\";\n return legacyKey || undefined;\n }\n return undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Derive the provider name from the active engine setting.\n * \"ai-sdk:openai\" → \"openai\", \"anthropic\" → \"anthropic\"\n */\nexport function engineToProvider(engineName: string): string {\n return engineName.startsWith(\"ai-sdk:\") ? engineName.slice(7) : engineName;\n}\n\n/**\n * Returns true when this process is acting as a multi-tenant deployment —\n * i.e. a hosted shared-DB environment where one user's identity must NOT be\n * silently substituted with the deploy-level API key.\n *\n * Mirrors the gate in `resolveBuilderCredential` (server/credential-provider.ts).\n *\n * Heuristic:\n * - `NODE_ENV === \"production\"`, AND\n * - The DB is not a local file (i.e. it's Neon/Postgres/Turso/D1 — any\n * backend that could be shared across multiple users).\n *\n * Self-hosted single-tenant deployments (a local sqlite file, or NODE_ENV\n * unset/development) keep the env-var fallback so the original BYO-server\n * UX continues to work without a per-user key.\n */\nfunction isMultiTenantDeploy(): boolean {\n if (process.env.NODE_ENV !== \"production\") return false;\n return !isLocalDatabase();\n}\n\n/**\n * Resolve the active engine's provider and look up the user's API key for it.\n *\n * In multi-tenant deploys we deliberately refuse the deploy-level\n * deploy-level fallback for authenticated users. Without that gate any\n * signed-in user who hasn't configured their own provider key would silently\n * inherit the deployment's key (uncapped billing on the owner's account,\n * prompt logging tied to the deployment owner) — exactly the prior-incident\n * pattern we hit on 2026-04-29.\n *\n * Single-tenant (local-dev, self-hosted SQLite) keeps the env fallback.\n *\n * Callers in `agent-chat-plugin.ts`, `triggers/dispatcher.ts`,\n * `jobs/scheduler.ts`, and `integrations/plugin.ts` historically layer\n * another deployment-key fallback after this must keep the same gate.\n */\nexport async function getOwnerActiveApiKey(\n ownerEmail: string | null | undefined,\n): Promise<string | undefined> {\n try {\n const { getSetting } = await import(\"../settings/store.js\");\n const engineSetting = await getSetting(\"agent-engine\");\n const activeEngine =\n (engineSetting?.engine as string | undefined) ?? \"anthropic\";\n const provider = engineToProvider(activeEngine);\n const userKey = await getOwnerApiKey(provider, ownerEmail);\n if (userKey) return userKey;\n if (isMultiTenantDeploy()) {\n // Multi-tenant: refuse the env fallback. A null user (unauthenticated /\n // background context with no owner) gets undefined here too — there's\n // no user to bill, and the call site must surface a \"configure a key\"\n // error to the requester rather than silently using the deploy key.\n return undefined;\n }\n const envVar = PROVIDER_TO_ENV[provider];\n return envVar ? readDeployCredentialEnv(envVar) : undefined;\n } catch {\n return undefined;\n }\n}\n\n/** @deprecated Use getOwnerApiKey(\"anthropic\", ownerEmail) instead */\nexport async function getOwnerAnthropicApiKey(\n ownerEmail: string | null | undefined,\n): Promise<string | undefined> {\n return getOwnerApiKey(\"anthropic\", ownerEmail);\n}\n\n/** Context passed to action run() for emitting intermediate events */\nexport interface ActionRunContext {\n /** Emit an SSE event to the client (e.g., agent_call_text for streaming) */\n send: (event: AgentChatEvent) => void;\n}\n\nexport interface ActionEntry {\n tool: ActionTool;\n run: (\n args: Record<string, string>,\n context?: ActionRunContext,\n ) => Promise<any>;\n /** HTTP exposure config. `false` = agent-only. Omitted = auto-inferred from name. */\n http?: import(\"../action.js\").ActionHttpConfig | false;\n /** If true, completion does NOT trigger a screen-refresh poll event.\n * Set automatically by `defineAction` when `http.method === \"GET\"`. */\n readOnly?: boolean;\n /** Whether this action may be invoked from the tools-iframe bridge.\n * **Default-allow opt-out**: only an explicit `false` returns 403.\n * - `true` / `undefined` — allow.\n * - `false` — explicit deny; the tools bridge returns 403.\n * See `defineAction` (`packages/core/src/action.ts`) and audit H5 in\n * `security-audit/05-tools-sandbox.md`. */\n toolCallable?: boolean;\n}\n\n/** @deprecated Use `ActionEntry` instead */\nexport type ScriptEntry = ActionEntry;\n\nexport interface ProductionAgentOptions {\n /** Action entries for the agent. Use `actions` (preferred) or `scripts` (deprecated alias). */\n actions?: Record<string, ActionEntry>;\n /** @deprecated Use `actions` instead */\n scripts?: Record<string, ActionEntry>;\n /** Static system prompt string, or async function called per-request with the H3 event */\n systemPrompt: string | ((event: any) => string | Promise<string>);\n /** Falls back to ANTHROPIC_API_KEY env var. Ignored when `engine` is provided. */\n apiKey?: string;\n /** Agent engine to use. Defaults to the \"anthropic\" engine. */\n engine?:\n | AgentEngine\n | string\n | { name: string; config: Record<string, unknown> };\n /** Model to use. Default: claude-sonnet-4-6 */\n model?: string;\n /** Provider-specific options passed through to the engine */\n providerOptions?: EngineMessage extends never ? never : any;\n /** Called when a run completes (for server-side thread persistence) */\n onRunComplete?: (run: ActiveRun, threadId: string | undefined) => void;\n /** Called when a run starts, with the send function for emitting events and the threadId */\n onRunStart?: (\n send: (event: AgentChatEvent) => void,\n threadId: string,\n ) => void;\n /**\n * Called after the engine + model are resolved for this request. Used by\n * the plugin layer to thread the parent's choices into sub-agents so\n * delegated tasks don't default back to Anthropic + Claude.\n */\n onEngineResolved?: (engine: AgentEngine, model: string) => void;\n /** Resolve the owner email from the H3 event (for usage tracking) */\n resolveOwnerEmail?: (event: any) => string | Promise<string>;\n /**\n * Skip auto-injecting the workspace files/skills/agents inventory on the\n * first message of a conversation. Useful for minimal/voice apps where\n * the ~2KB inventory of unrelated resources is noise, not signal.\n * Default: false (inventory is injected).\n */\n skipFilesContext?: boolean;\n}\n\nconst MAX_ITERATIONS = 40;\nconst MAX_RETRIES = 3;\nconst RETRY_BASE_DELAY_MS = 2000;\n\nfunction generateRunId(): string {\n return `run-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n}\n\n/** Check if an error is transient and should be retried */\nfunction isContextTooLongError(err: unknown): boolean {\n if (!(err instanceof Error)) return false;\n const msg = err.message.toLowerCase();\n if (\n msg.includes(\"context_length_exceeded\") ||\n msg.includes(\"input_too_long\") ||\n msg.includes(\"too many tokens\") ||\n msg.includes(\"prompt is too long\") ||\n msg.includes(\"reduce the length\")\n )\n return true;\n if (err instanceof EngineError) {\n const code = (err.errorCode ?? \"\").toLowerCase();\n if (code.includes(\"context_length\") || code.includes(\"input_too_long\"))\n return true;\n }\n return false;\n}\n\nfunction isRetryableError(err: unknown): boolean {\n if (!(err instanceof Error)) return false;\n const msg = err.message.toLowerCase();\n return (\n msg.includes(\"overloaded\") ||\n msg.includes(\"rate_limit\") ||\n msg.includes(\"529\") ||\n msg.includes(\"503\") ||\n msg.includes(\"too many requests\")\n );\n}\n\n/** Wait with exponential backoff, respecting abort signal */\nfunction retryDelay(attempt: number, signal: AbortSignal): Promise<void> {\n const ms = RETRY_BASE_DELAY_MS * Math.pow(2, attempt);\n return new Promise((resolve, reject) => {\n if (signal.aborted) return reject(new Error(\"aborted\"));\n const timer = setTimeout(resolve, ms);\n signal.addEventListener(\n \"abort\",\n () => {\n clearTimeout(timer);\n reject(new Error(\"aborted\"));\n },\n { once: true },\n );\n });\n}\n\ntype SupportedImageMediaType =\n | \"image/jpeg\"\n | \"image/png\"\n | \"image/gif\"\n | \"image/webp\";\n\nfunction isSupportedImageMediaType(\n mediaType: string,\n): mediaType is SupportedImageMediaType {\n return (\n mediaType === \"image/jpeg\" ||\n mediaType === \"image/png\" ||\n mediaType === \"image/gif\" ||\n mediaType === \"image/webp\"\n );\n}\n\nfunction escapeAttachmentAttribute(value: string): string {\n return value\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\");\n}\n\nfunction formatTextAttachment(att: AgentChatAttachment): string | null {\n if (typeof att.text !== \"string\" || att.text.length === 0) return null;\n\n const attrs = [\n `name=\"${escapeAttachmentAttribute(att.name || \"attachment\")}\"`,\n att.contentType\n ? `contentType=\"${escapeAttachmentAttribute(att.contentType)}\"`\n : null,\n att.type ? `type=\"${escapeAttachmentAttribute(att.type)}\"` : null,\n ].filter(Boolean);\n\n return `<attachment ${attrs.join(\" \")}>\\n${att.text}\\n</attachment>`;\n}\n\nexport function buildUserContentWithAttachments(opts: {\n text: string;\n attachments?: AgentChatAttachment[];\n}): EngineContentPart[] {\n const userContent: EngineContentPart[] = [];\n const textAttachments: string[] = [];\n\n for (const att of opts.attachments ?? []) {\n if (att.type === \"image\" && att.data) {\n const match = att.data.match(/^data:(image\\/[^;]+);base64,(.+)$/);\n if (match && isSupportedImageMediaType(match[1])) {\n userContent.push({\n type: \"image\",\n data: match[2],\n mediaType: match[1],\n });\n }\n continue;\n }\n\n const textAttachment = formatTextAttachment(att);\n if (textAttachment) {\n textAttachments.push(textAttachment);\n }\n }\n\n userContent.push({\n type: \"text\",\n text:\n textAttachments.length > 0\n ? `${textAttachments.join(\"\\n\\n\")}\\n\\n${opts.text}`\n : opts.text,\n });\n\n return userContent;\n}\n\n/** Build enriched message with file/skill/mention references */\nfunction enrichMessage(\n message: string,\n references: AgentChatReference[],\n): string {\n if (references.length === 0) return message;\n\n const fileRefs = references.filter((r) => r.type === \"file\");\n const skillRefs = references.filter((r) => r.type === \"skill\");\n const customAgentRefs = references.filter((r) => r.type === \"custom-agent\");\n const mentionRefs = references.filter((r) => r.type === \"mention\");\n\n const parts: string[] = [];\n if (fileRefs.length > 0) {\n parts.push(\n \"Referenced files:\\n\" +\n fileRefs\n .map(\n (r) => `- ${r.path}${r.source === \"resource\" ? \" (resource)\" : \"\"}`,\n )\n .join(\"\\n\"),\n );\n }\n if (skillRefs.length > 0) {\n parts.push(\n \"Applied skills:\\n\" +\n skillRefs\n .map(\n (r) =>\n `- ${r.name} (${r.path})${r.source === \"resource\" ? \" — read with resource-read\" : \" — read with read-file\"}`,\n )\n .join(\"\\n\"),\n );\n }\n if (customAgentRefs.length > 0) {\n parts.push(\n \"Requested custom agents:\\n\" +\n customAgentRefs\n .map(\n (r) =>\n `- ${r.name}${r.refId ? ` (id: ${r.refId})` : \"\"}${r.path ? ` (path: ${r.path})` : \"\"}`,\n )\n .join(\"\\n\"),\n );\n }\n if (mentionRefs.length > 0) {\n parts.push(\n \"Referenced items:\\n\" +\n mentionRefs\n .map(\n (r) =>\n `- [${r.refType || \"item\"}] ${r.name}${r.refId ? ` (id: ${r.refId})` : \"\"}${r.path ? ` (path: ${r.path})` : \"\"}`,\n )\n .join(\"\\n\"),\n );\n }\n\n return `${parts.join(\"\\n\\n\")}\\n\\n${message}`;\n}\n\n/** Accumulated token usage from an agent loop run */\nexport interface AgentLoopUsage {\n inputTokens: number;\n outputTokens: number;\n cacheReadTokens: number;\n cacheWriteTokens: number;\n model: string;\n}\n\n/**\n * Convert ActionEntry registry to EngineTool array.\n */\nexport function actionsToEngineTools(\n actions: Record<string, ActionEntry>,\n): EngineTool[] {\n return Object.entries(actions).map(([name, entry]) => ({\n name,\n description: entry.tool.description,\n inputSchema: (entry.tool.parameters ?? {\n type: \"object\",\n properties: {},\n }) as EngineTool[\"inputSchema\"],\n }));\n}\n\n/**\n * The core agent loop — calls the engine iteratively until no more tool calls.\n * Decoupled from HTTP transport so it can run in the background.\n * Returns accumulated token usage for cost tracking.\n */\nexport async function runAgentLoop(opts: {\n engine: AgentEngine;\n model: string;\n systemPrompt: string;\n tools: EngineTool[];\n messages: EngineMessage[];\n actions: Record<string, ActionEntry>;\n send: (event: AgentChatEvent) => void;\n signal: AbortSignal;\n providerOptions?: any;\n}): Promise<AgentLoopUsage> {\n const {\n engine,\n model,\n systemPrompt,\n tools,\n messages,\n actions,\n send,\n signal,\n } = opts;\n\n const usage: AgentLoopUsage = {\n inputTokens: 0,\n outputTokens: 0,\n cacheReadTokens: 0,\n cacheWriteTokens: 0,\n model,\n };\n\n let iterations = 0;\n while (true) {\n if (signal.aborted) break;\n if (++iterations > MAX_ITERATIONS) {\n send({ type: \"loop_limit\" });\n break;\n }\n\n let assistantContent: EngineContentPart[] | undefined;\n let hasToolCalls = false;\n\n for (let retry = 0; ; retry++) {\n try {\n const streamOpts = {\n model,\n systemPrompt,\n messages,\n tools,\n abortSignal: signal,\n providerOptions: opts.providerOptions,\n };\n\n const eventStream = engine.stream(streamOpts);\n let thinkingBuffer = \"\";\n\n for await (const event of eventStream) {\n if (event.type === \"text-delta\") {\n send({ type: \"text\", text: event.text });\n } else if (event.type === \"thinking-delta\") {\n thinkingBuffer += event.text;\n // Thinking deltas are not forwarded to the SSE client yet —\n // we accumulate them. In a future iteration, we can surface\n // them as a collapsible \"reasoning\" section in the UI.\n } else if (event.type === \"tool-call\") {\n hasToolCalls = true;\n } else if (event.type === \"assistant-content\") {\n assistantContent = event.parts;\n } else if (event.type === \"usage\") {\n usage.inputTokens += event.inputTokens;\n usage.outputTokens += event.outputTokens;\n usage.cacheReadTokens += event.cacheReadTokens ?? 0;\n usage.cacheWriteTokens += event.cacheWriteTokens ?? 0;\n } else if (event.type === \"stop\" && event.reason === \"error\") {\n throw new EngineError(event.error ?? \"Engine stream error\", {\n errorCode: event.errorCode,\n upgradeUrl: event.upgradeUrl,\n });\n }\n }\n\n break;\n } catch (err: unknown) {\n if (signal.aborted) throw err;\n if (isContextTooLongError(err)) {\n throw new EngineError(\n \"Conversation has grown too long. Start a new conversation to continue.\",\n { errorCode: \"context_length_exceeded\" },\n );\n }\n if (retry < MAX_RETRIES && isRetryableError(err)) {\n // Clear partial text from the failed attempt so the retry\n // doesn't produce garbled duplicate output\n send({ type: \"clear\" });\n send({\n type: \"text\",\n text: `*Retrying in ${(RETRY_BASE_DELAY_MS * Math.pow(2, retry)) / 1000}s...*\\n\\n`,\n });\n await retryDelay(retry, signal);\n continue;\n }\n throw err;\n }\n }\n\n if (!assistantContent) {\n // No content — done\n break;\n }\n\n messages.push({ role: \"assistant\", content: assistantContent });\n\n const toolCallParts = assistantContent.filter(\n (p): p is import(\"./engine/types.js\").EngineToolCallPart =>\n p.type === \"tool-call\",\n );\n\n if (toolCallParts.length === 0) break;\n\n // Run all tool calls in parallel — engines often return multiple tool-call\n // blocks in one turn. Running them concurrently saves wall-clock time.\n const toolResultParts: EngineContentPart[] = await Promise.all(\n toolCallParts.map(async (toolCall) => {\n const actionEntry = actions[toolCall.name];\n if (!actionEntry) {\n const result = `Error: Unknown tool \"${toolCall.name}\"`;\n send({\n type: \"tool_start\",\n tool: toolCall.name,\n input: toolCall.input as Record<string, string>,\n });\n send({ type: \"tool_done\", tool: toolCall.name, result });\n return {\n type: \"tool-result\" as const,\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n content: result,\n isError: true,\n };\n }\n\n send({\n type: \"tool_start\",\n tool: toolCall.name,\n input: toolCall.input as Record<string, string>,\n });\n\n const MAX_TOOL_RESULT_CHARS = 50_000;\n const TOOL_TIMEOUT_MS = 60_000;\n let result: string;\n let isError = false;\n try {\n const timeoutSignal = AbortSignal.timeout(TOOL_TIMEOUT_MS);\n const raw = await Promise.race([\n actionEntry.run(toolCall.input as Record<string, string>, { send }),\n new Promise<never>((_, reject) => {\n timeoutSignal.addEventListener(\"abort\", () =>\n reject(new Error(\"Tool call timed out after 60 seconds\")),\n );\n }),\n ]);\n let resultStr =\n typeof raw === \"string\" ? raw : JSON.stringify(raw, null, 2);\n if (resultStr.length > MAX_TOOL_RESULT_CHARS) {\n const truncated = resultStr.slice(0, MAX_TOOL_RESULT_CHARS);\n resultStr = `${truncated}\\n\\n...[truncated — full result was ${resultStr.length.toLocaleString()} chars; only first ${MAX_TOOL_RESULT_CHARS.toLocaleString()} shown]`;\n }\n result = resultStr;\n } catch (err: any) {\n result = `Error running ${toolCall.name}: ${err?.message ?? String(err)}`;\n isError = true;\n }\n\n // Auto-refresh the UI after a successful mutating tool call. Any action\n // that isn't explicitly read-only is assumed to mutate. The client's\n // useDbSync listener sees a poll event with source:\"action\" and\n // invalidates [\"action\"] queries so list-* / get-* refetch. This makes\n // refresh after agent writes reliable without the model needing to\n // remember to call `refresh-screen` itself.\n if (!isError && actionEntry.readOnly !== true) {\n try {\n const { recordChange } = await import(\"../server/poll.js\");\n recordChange({\n source: \"action\",\n type: \"change\",\n key: toolCall.name,\n });\n } catch {\n // poll module may be unavailable in non-server contexts — ignore\n }\n }\n\n send({ type: \"tool_done\", tool: toolCall.name, result });\n return {\n type: \"tool-result\" as const,\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n content: result,\n ...(isError ? { isError } : {}),\n };\n }),\n );\n\n messages.push({ role: \"user\", content: toolResultParts });\n }\n\n send({ type: \"done\" });\n return usage;\n}\n\nexport function createProductionAgentHandler(\n options: ProductionAgentOptions,\n): H3EventHandler {\n // Undefined = let each engine pick its own defaultModel at request time.\n const configuredModel = options.model;\n\n // Resolve actions — prefer `actions`, fall back to deprecated `scripts`\n const resolvedActions = options.actions ?? options.scripts ?? {};\n\n // Engine tools are derived from the action registry at request time so that\n // registries which mutate after handler creation (e.g. MCP servers added via\n // the settings UI) show up to the LLM without a process restart. MCP tools\n // are also scope-filtered per request — a user-scope server added by Alice\n // must not appear in Bob's tool list in a shared-process deployment.\n const getEngineTools = () => {\n const filtered: Record<string, ActionEntry> = {};\n for (const [name, entry] of Object.entries(resolvedActions)) {\n if (name.startsWith(\"mcp__\") && !isMcpToolAllowedForRequest(name)) {\n continue;\n }\n filtered[name] = entry;\n }\n return actionsToEngineTools(filtered);\n };\n\n return defineEventHandler(async (event) => {\n if (getMethod(event) !== \"POST\") {\n setResponseStatus(event, 405);\n return { error: \"Method not allowed\" };\n }\n\n let body: AgentChatRequest;\n try {\n body = await readBody(event);\n } catch {\n setResponseStatus(event, 400);\n return { error: \"Invalid request body\" };\n }\n\n const {\n message,\n history = [],\n references = [],\n threadId,\n attachments,\n model: requestModel,\n engine: requestEngine,\n } = body;\n if (!message) {\n setResponseStatus(event, 400);\n return { error: \"message is required\" };\n }\n\n // Resolve owner first so we can look up a per-owner API key. Users\n // who bring their own key use their key for this request (durable\n // across serverless cold starts via the settings table).\n let ownerEmail: string | null = null;\n if (options.resolveOwnerEmail) {\n try {\n ownerEmail = await options.resolveOwnerEmail(event);\n } catch {\n ownerEmail = null;\n }\n }\n\n // When a per-request engine override is specified, resolve the API key\n // for that provider instead of the global active engine's provider.\n let userApiKey: string | undefined;\n if (requestEngine) {\n const provider = engineToProvider(requestEngine);\n userApiKey = await getOwnerApiKey(provider, ownerEmail);\n if (!userApiKey && !isMultiTenantDeploy()) {\n // Single-tenant only: env fallback for the requested provider.\n // Multi-tenant deploys never silently substitute the deploy-level\n // key for an authenticated user (see getOwnerActiveApiKey for the\n // full rationale).\n const envVar = PROVIDER_TO_ENV[provider];\n userApiKey = envVar ? readDeployCredentialEnv(envVar) : undefined;\n }\n } else {\n userApiKey = await getOwnerActiveApiKey(ownerEmail);\n }\n\n // `options.apiKey` is the value the template constructed the plugin with\n // (e.g. wired from a deployment env var). On a multi-tenant deploy this\n // is the same cross-tenant hazard as any deploy-level provider key:\n // accepting it as the final fallback would silently bill every key-less\n // user to the deployment's account. Only honour it in single-tenant mode.\n const effectiveApiKey = isMultiTenantDeploy()\n ? userApiKey\n : (userApiKey ??\n options.apiKey ??\n readDeployCredentialEnv(\"ANTHROPIC_API_KEY\"));\n\n // Resolve engine — per-request engine override takes priority\n let engine: AgentEngine;\n try {\n engine = await resolveEngine({\n engineOption: requestEngine ?? options.engine,\n apiKey: effectiveApiKey,\n model: configuredModel,\n });\n } catch {\n engine = await resolveEngine({\n apiKey: effectiveApiKey,\n });\n }\n\n // Honor the model the user picked in the settings UI (written via\n // `manage-agent-engine` action=\"set\"), but only when the caller hasn't overridden it for\n // this request or at plugin construction time. Read per-request so a\n // dropdown change in the UI takes effect without a server restart. Skip\n // the DB read entirely when a higher-precedence value is set.\n const model =\n requestModel ??\n configuredModel ??\n (await getStoredModelForEngine(engine)) ??\n engine.defaultModel;\n\n options.onEngineResolved?.(engine, model);\n\n // One-line per-turn resolution log so it's obvious in dev which engine\n // is actually handling the request. `requestEngine` is what the client\n // sent from the model picker; `engine.name` is what resolveEngine picked.\n // Divergence between them is the usual cause of \"status says builder but\n // no [builder-engine] log lines appear\" confusion.\n console.log(\n `[agent-chat] resolved engine=${engine.name} model=${model} requestEngine=${requestEngine ?? \"(none)\"}`,\n );\n\n // Check for API key before starting a run (only for anthropic engine)\n if (engine.name === \"anthropic\" && !effectiveApiKey) {\n setResponseHeader(event, \"Content-Type\", \"text/event-stream\");\n setResponseHeader(event, \"Cache-Control\", \"no-cache\");\n setResponseHeader(event, \"Connection\", \"keep-alive\");\n const encoder = new TextEncoder();\n return new ReadableStream({\n start(controller) {\n controller.enqueue(\n encoder.encode(\n `data: ${JSON.stringify({ type: \"missing_api_key\" })}\\n\\n`,\n ),\n );\n controller.close();\n },\n });\n }\n\n // Run all independent pre-send steps in parallel. Each of these hits\n // the DB or invokes an action; running them sequentially was the\n // single biggest contributor to pre-LLM latency.\n const enrichedMessage = enrichMessage(message, references);\n\n let systemPromptError: any = null;\n const systemPromptPromise = (async (): Promise<string> => {\n try {\n return typeof options.systemPrompt === \"function\"\n ? await options.systemPrompt(event)\n : options.systemPrompt;\n } catch (error) {\n systemPromptError = error;\n return \"\";\n }\n })();\n\n const screenContextPromise = (async (): Promise<string> => {\n try {\n const viewScreenAction = resolvedActions[\"view-screen\"];\n if (viewScreenAction) {\n const result = await viewScreenAction.run({});\n if (result && result !== \"(no output)\") {\n return `\\n\\n<current-screen>\\n${result}\\n</current-screen>`;\n }\n } else {\n const navigation = await readAppState(\"navigation\");\n if (navigation) {\n return `\\n\\n<current-screen>\\n${JSON.stringify(navigation, null, 2)}\\n</current-screen>`;\n }\n }\n } catch {\n // DB not ready or no navigation state — skip silently\n }\n return \"\";\n })();\n\n const urlContextPromise = (async (): Promise<string> => {\n try {\n const url = (await readAppState(\"__url__\")) as {\n pathname?: string;\n search?: string;\n hash?: string;\n searchParams?: Record<string, string>;\n } | null;\n if (url && (url.pathname || url.search || url.hash)) {\n const lines: string[] = [];\n if (url.pathname) lines.push(`pathname: ${url.pathname}`);\n if (url.search) lines.push(`search: ${url.search}`);\n if (url.hash) lines.push(`hash: ${url.hash}`);\n if (url.searchParams && Object.keys(url.searchParams).length > 0) {\n lines.push(\"searchParams:\");\n for (const [k, v] of Object.entries(url.searchParams)) {\n lines.push(` ${k}: ${v}`);\n }\n }\n return `\\n\\n<current-url>\\n${lines.join(\"\\n\")}\\n</current-url>`;\n }\n } catch {\n // DB not ready — skip silently\n }\n return \"\";\n })();\n\n // Selection context: written by the client when the user presses Cmd+I\n // with text selected on the page. Treat anything older than 5 minutes\n // as stale and ignore it.\n const SELECTION_TTL_MS = 5 * 60 * 1000;\n const selectionContextPromise = (async (): Promise<string> => {\n try {\n const sel = (await readAppState(\"pending-selection-context\")) as {\n text?: string;\n capturedAt?: number;\n } | null;\n if (!sel?.text) return \"\";\n const capturedAt =\n typeof sel.capturedAt === \"number\" ? sel.capturedAt : 0;\n if (Date.now() - capturedAt > SELECTION_TTL_MS) return \"\";\n return (\n `\\n\\nThe user has selected the following text and pressed Cmd+I to focus the agent. ` +\n `Treat this as the immediate context to act on:\\n` +\n `<selection>\\n${sel.text}\\n</selection>`\n );\n } catch {\n // DB not ready — skip silently\n }\n return \"\";\n })();\n\n // On the first message of a conversation, inject workspace inventory\n // so the agent knows what files, skills, jobs, and custom agents exist.\n // Templates can opt out via `skipFilesContext: true` when the inventory\n // is unrelated to the app's job (e.g. a voice-first macro tracker).\n const filesContextPromise = (async (): Promise<string> => {\n let filesContext = \"\";\n if (options.skipFilesContext) return filesContext;\n if (history.length === 0) {\n try {\n const { resourceListAccessible, SHARED_OWNER, resourceGet } =\n await import(\"../resources/store.js\");\n const {\n getResourceKind,\n parseCustomAgentProfile,\n parseRemoteAgentManifest,\n parseSkillMetadata,\n } = await import(\"../resources/metadata.js\");\n const ownerEmail = getRequestUserEmail();\n if (!ownerEmail) throw new Error(\"no authenticated user\");\n const allResources = await resourceListAccessible(ownerEmail);\n\n if (allResources.length > 0) {\n const fileLines: string[] = [];\n const skillLines: string[] = [];\n const agentLines: string[] = [];\n const jobLines: string[] = [];\n for (const r of allResources) {\n const scope = r.owner === SHARED_OWNER ? \"shared\" : \"personal\";\n const kind = getResourceKind(r.path);\n if (kind === \"file\") {\n fileLines.push(` ${r.path} (${scope})`);\n continue;\n }\n\n if (kind === \"job\") {\n jobLines.push(` ${r.path} (${scope})`);\n continue;\n }\n\n if (\n kind === \"skill\" ||\n kind === \"agent\" ||\n kind === \"remote-agent\"\n ) {\n const full = await resourceGet(r.id);\n if (!full) continue;\n if (kind === \"skill\") {\n const skill = parseSkillMetadata(full.content, r.path);\n skillLines.push(\n ` ${skill?.name || r.path} — ${skill?.description || r.path} (${scope}, ${r.path})`,\n );\n } else if (kind === \"agent\") {\n const agent = parseCustomAgentProfile(full.content, r.path);\n agentLines.push(\n ` ${agent?.name || r.path} — ${agent?.description || \"Custom workspace agent\"} (${scope}, ${r.path}${agent?.model ? `, model: ${agent.model}` : \"\"})`,\n );\n } else {\n const agent = parseRemoteAgentManifest(full.content, r.path);\n agentLines.push(\n ` ${agent?.name || r.path} — ${agent?.description || \"Connected A2A agent\"} (${scope}, remote via ${r.path})`,\n );\n }\n }\n }\n const blocks: string[] = [];\n if (fileLines.length > 0) {\n blocks.push(\n `<available-files>\\nFiles in the workspace:\\n${fileLines.join(\"\\n\")}\\n\\nTo read a file's contents, use the resource-read action with the file path.\\n</available-files>`,\n );\n }\n if (skillLines.length > 0) {\n blocks.push(\n `<available-skills>\\nSkills in the workspace:\\n${skillLines.join(\"\\n\")}\\n</available-skills>`,\n );\n }\n if (agentLines.length > 0) {\n blocks.push(\n `<available-agents>\\nCustom and connected agents in the workspace:\\n${agentLines.join(\"\\n\")}\\n\\nCustom agents under agents/*.md can be mentioned or used via agent-teams (action: \"spawn\") with the agent parameter.\\n</available-agents>`,\n );\n }\n if (jobLines.length > 0) {\n blocks.push(\n `<available-jobs>\\nScheduled tasks in the workspace:\\n${jobLines.join(\"\\n\")}\\n</available-jobs>`,\n );\n }\n filesContext =\n blocks.length > 0 ? `\\n\\n${blocks.join(\"\\n\\n\")}` : \"\";\n }\n } catch {\n // Resources not available — skip silently\n }\n }\n return filesContext;\n })();\n\n const [systemPrompt, screenBlock, urlBlock, selectionBlock, filesContext] =\n await Promise.all([\n systemPromptPromise,\n screenContextPromise,\n urlContextPromise,\n selectionContextPromise,\n filesContextPromise,\n ]);\n\n if (systemPromptError) {\n setResponseHeader(event, \"Content-Type\", \"text/event-stream\");\n setResponseHeader(event, \"Cache-Control\", \"no-cache\");\n const encoder = new TextEncoder();\n const err = systemPromptError;\n return new ReadableStream({\n start(controller) {\n controller.enqueue(\n encoder.encode(\n `data: ${JSON.stringify({ type: \"error\", error: `Failed to load system prompt: ${err?.message ?? String(err)}` })}\\n\\n`,\n ),\n );\n controller.close();\n },\n });\n }\n const screenContext = screenBlock + urlBlock + selectionBlock;\n\n // Pre-compute agent references for A2A resolution inside the run\n const agentRefs = references.filter((r) => r.type === \"agent\");\n const customAgentRefs = references.filter((r) => r.type === \"custom-agent\");\n\n const userContent = buildUserContentWithAttachments({\n text: enrichedMessage + screenContext + filesContext,\n attachments,\n });\n\n const messages: EngineMessage[] = [\n ...history\n .filter((m) => m.content.trim())\n .map((m) => ({\n role: m.role as \"user\" | \"assistant\",\n content: [{ type: \"text\" as const, text: m.content }],\n })),\n { role: \"user\" as const, content: userContent },\n ];\n\n // If there's already an active run for this thread, reject with 409 so\n // the client can queue or wait rather than silently aborting the existing run.\n if (threadId) {\n const existingRun = getActiveRunForThread(threadId);\n if (existingRun && existingRun.status === \"running\") {\n setResponseStatus(event, 409);\n return {\n error: \"Run already in progress for this thread\",\n activeRunId: existingRun.runId,\n };\n }\n }\n\n // Start agent loop in background via run-manager\n const runId = generateRunId();\n startRun(\n runId,\n threadId ?? runId,\n async (send, signal) => {\n // Notify listeners that a run has started (used by agent teams)\n if (options.onRunStart) {\n options.onRunStart(send, threadId ?? runId);\n }\n\n // Resolve custom workspace agent mentions first.\n if (customAgentRefs.length > 0) {\n const ownerEmail = getRequestUserEmail();\n if (!ownerEmail) throw new Error(\"no authenticated user\");\n const { findAccessibleCustomAgent } =\n await import(\"../resources/agents.js\");\n const customResults = await Promise.allSettled(\n customAgentRefs.map(async (ref) => {\n send({\n type: \"agent_call\",\n agent: ref.name,\n status: \"start\",\n });\n try {\n const profile = await findAccessibleCustomAgent(\n ownerEmail,\n ref.refId || ref.path || ref.name,\n );\n if (!profile) {\n throw new Error(\"Profile not found\");\n }\n\n const profilePrompt =\n `${systemPrompt}\\n\\n<custom-agent-profile name=\"${profile.name}\" path=\"${profile.path}\">\\n` +\n (profile.description ? `${profile.description}\\n\\n` : \"\") +\n `${profile.instructions}\\n</custom-agent-profile>`;\n\n let responseText = \"\";\n const subUsage = await runAgentLoop({\n engine,\n model: profile.model ?? model,\n systemPrompt: profilePrompt,\n tools: getEngineTools(),\n messages: [\n {\n role: \"user\",\n content: [\n { type: \"text\", text: enrichedMessage + screenContext },\n ],\n },\n ],\n actions: resolvedActions,\n send: (event) => {\n if (event.type === \"text\") {\n responseText += event.text;\n send({\n type: \"agent_call_text\",\n agent: ref.name,\n text: event.text,\n });\n }\n },\n signal,\n providerOptions: options.providerOptions,\n });\n\n // Attribute custom-agent sub-calls under their own label\n // so the Usage panel separates them from the main chat.\n try {\n const ownerEmail = options.resolveOwnerEmail\n ? await options.resolveOwnerEmail(event)\n : getRequestUserEmail();\n if (!ownerEmail) {\n // Skip usage recording for unauthenticated runs.\n return;\n }\n const { recordUsage } = await import(\"../usage/store.js\");\n await recordUsage({\n ownerEmail,\n inputTokens: subUsage.inputTokens,\n outputTokens: subUsage.outputTokens,\n cacheReadTokens: subUsage.cacheReadTokens,\n cacheWriteTokens: subUsage.cacheWriteTokens,\n model: subUsage.model,\n label: `custom-agent:${ref.name}`,\n });\n } catch {}\n\n send({\n type: \"agent_call\",\n agent: ref.name,\n status: \"done\",\n });\n return `<agent-response name=\"${ref.name}\" id=\"${ref.refId}\" type=\"custom-agent\">\\n${responseText}\\n</agent-response>`;\n } catch (err: any) {\n send({\n type: \"agent_call\",\n agent: ref.name,\n status: \"error\",\n });\n return `<agent-response name=\"${ref.name}\" id=\"${ref.refId}\" type=\"custom-agent\" error=\"true\">\\nFailed to run ${ref.name}: ${err?.message}\\n</agent-response>`;\n }\n }),\n );\n\n const customResponses = customResults\n .filter(\n (result): result is PromiseFulfilledResult<string> =>\n result.status === \"fulfilled\",\n )\n .map((result) => result.value);\n\n if (customResponses.length > 0) {\n const agentContext =\n \"Responses from custom workspace agents:\\n\\n\" +\n customResponses.join(\"\\n\\n\");\n const lastMsg = messages[messages.length - 1];\n if (lastMsg?.role === \"user\" && Array.isArray(lastMsg.content)) {\n const textPart = lastMsg.content.find(\n (p): p is import(\"./engine/types.js\").EngineTextPart =>\n p.type === \"text\",\n );\n if (textPart) {\n textPart.text = agentContext + \"\\n\\n\" + textPart.text;\n }\n }\n }\n }\n\n // Resolve connected agent @-mentions via A2A calls.\n if (agentRefs.length > 0) {\n const { A2AClient, callAgent } = await import(\"../a2a/client.js\");\n const results = await Promise.allSettled(\n agentRefs.map(async (ref) => {\n send({\n type: \"agent_call\",\n agent: ref.name,\n status: \"start\",\n });\n try {\n const a2aClient = new A2AClient(ref.path);\n const callerEmail = getRequestUserEmail();\n\n const a2aMetadata: Record<string, unknown> = {};\n if (callerEmail) a2aMetadata.userEmail = callerEmail;\n if (process.env.NODE_ENV === \"production\" && callerEmail) {\n try {\n const { listOAuthAccountsByOwner } =\n await import(\"../oauth-tokens/store.js\");\n const accounts = await listOAuthAccountsByOwner(\n \"google\",\n callerEmail,\n );\n const tokens = accounts[0]?.tokens;\n if (tokens?.access_token) {\n a2aMetadata.googleToken = tokens.access_token;\n }\n } catch {}\n }\n\n let responseText = \"\";\n let lastSentLength = 0;\n\n try {\n for await (const task of a2aClient.stream(\n {\n role: \"user\",\n parts: [\n {\n type: \"text\",\n text: enrichedMessage + screenContext,\n },\n ],\n },\n Object.keys(a2aMetadata).length > 0\n ? { metadata: a2aMetadata }\n : undefined,\n )) {\n const newText =\n task.status?.message?.parts\n ?.filter(\n (p): p is { type: \"text\"; text: string } =>\n p.type === \"text\",\n )\n ?.map((p) => p.text)\n ?.join(\"\") ?? \"\";\n\n if (newText.length > lastSentLength) {\n send({\n type: \"agent_call_text\",\n agent: ref.name,\n text: newText.slice(lastSentLength),\n });\n lastSentLength = newText.length;\n }\n responseText = newText;\n }\n } catch {\n if (!responseText) {\n responseText = await callAgent(\n ref.path,\n enrichedMessage + screenContext,\n );\n }\n }\n\n send({\n type: \"agent_call\",\n agent: ref.name,\n status: \"done\",\n });\n return `<agent-response name=\"${ref.name}\" id=\"${ref.refId}\">\\n${responseText}\\n</agent-response>`;\n } catch (err: any) {\n send({\n type: \"agent_call\",\n agent: ref.name,\n status: \"error\",\n });\n return `<agent-response name=\"${ref.name}\" id=\"${ref.refId}\" error=\"true\">\\nFailed to reach ${ref.name}: ${err?.message}\\n</agent-response>`;\n }\n }),\n );\n\n const agentResponses_local: string[] = [];\n for (const result of results) {\n if (result.status === \"fulfilled\") {\n agentResponses_local.push(result.value);\n }\n }\n\n if (agentResponses_local.length > 0) {\n const agentContext =\n \"Responses from other agents:\\n\\n\" +\n agentResponses_local.join(\"\\n\\n\");\n const lastMsg = messages[messages.length - 1];\n if (lastMsg?.role === \"user\" && Array.isArray(lastMsg.content)) {\n const textPart = lastMsg.content.find(\n (p): p is import(\"./engine/types.js\").EngineTextPart =>\n p.type === \"text\",\n );\n if (textPart) {\n textPart.text = agentContext + \"\\n\\n\" + textPart.text;\n }\n }\n }\n }\n\n // Apply experiment variant overrides (A/B testing)\n let effectiveModel = model;\n try {\n const { resolveActiveExperimentConfig } =\n await import(\"../observability/experiments.js\");\n if (!ownerEmail) {\n // Without an authenticated owner we can't resolve user-scoped experiments.\n throw new Error(\"no authenticated user\");\n }\n const expConfig = await resolveActiveExperimentConfig(ownerEmail);\n if (expConfig) {\n if (typeof expConfig.configs.model === \"string\") {\n effectiveModel = expConfig.configs.model;\n }\n }\n } catch {\n // Experiments module unavailable — use default model\n }\n\n const agentLoopOpts = {\n engine,\n model: effectiveModel,\n systemPrompt,\n tools: getEngineTools(),\n messages,\n actions: resolvedActions,\n send,\n signal,\n providerOptions: options.providerOptions,\n };\n\n let loopUsage: AgentLoopUsage;\n let instrumented = false;\n try {\n const { getObservabilityConfig, instrumentAgentLoop } =\n await import(\"../observability/traces.js\");\n const obsConfig = await getObservabilityConfig();\n if (obsConfig.enabled) {\n instrumented = true;\n loopUsage = await instrumentAgentLoop({\n runAgentLoop,\n loopOpts: agentLoopOpts,\n runId,\n threadId: threadId ?? null,\n userId: ownerEmail,\n config: obsConfig,\n });\n }\n } catch (err) {\n // If instrumentation setup failed, fall through to uninstrumented.\n // If the agent loop itself failed (via instrumentAgentLoop), re-throw.\n if (instrumented) throw err;\n }\n if (!instrumented) {\n loopUsage = await runAgentLoop(agentLoopOpts);\n }\n\n // Record token usage for cost monitoring so the Usage panel in\n // settings works in every mode, including local dev.\n try {\n const ownerEmail = options.resolveOwnerEmail\n ? await options.resolveOwnerEmail(event)\n : getRequestUserEmail();\n if (\n ownerEmail &&\n (loopUsage.inputTokens > 0 ||\n loopUsage.outputTokens > 0 ||\n loopUsage.cacheReadTokens > 0 ||\n loopUsage.cacheWriteTokens > 0)\n ) {\n const { recordUsage } = await import(\"../usage/store.js\");\n await recordUsage({\n ownerEmail,\n inputTokens: loopUsage.inputTokens,\n outputTokens: loopUsage.outputTokens,\n cacheReadTokens: loopUsage.cacheReadTokens,\n cacheWriteTokens: loopUsage.cacheWriteTokens,\n model: loopUsage.model,\n label: body.usageLabel || \"chat\",\n });\n }\n } catch {\n // Usage recording failed — don't break the run\n }\n },\n options.onRunComplete\n ? (run) => options.onRunComplete!(run, threadId)\n : undefined,\n );\n\n // Subscribe to the run and stream events to the client\n const stream = subscribeToRun(runId, 0);\n if (!stream) {\n setResponseStatus(event, 500);\n return { error: \"Failed to start agent run\" };\n }\n\n setResponseHeader(event, \"Content-Type\", \"text/event-stream\");\n setResponseHeader(event, \"Cache-Control\", \"no-cache\");\n setResponseHeader(event, \"Connection\", \"keep-alive\");\n setResponseHeader(event, \"X-Run-Id\", runId);\n\n return stream;\n });\n}\n\nexport {\n getActiveRunForThread,\n getActiveRunForThreadAsync,\n getRun,\n abortRun,\n subscribeToRun,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/agent/run-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/agent/run-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentChatEvent, RunEvent, RunStatus } from \"./types.js\";\nimport { EngineError } from \"./engine/types.js\";\nimport {\n insertRun,\n insertRunEvent,\n updateRunStatus,\n markRunAborted,\n isRunAborted,\n getRunEventsSince,\n getRunById,\n getRunByThread,\n cleanupOldRuns,\n updateRunHeartbeat,\n reapIfStale,\n} from \"./run-store.js\";\n\nexport interface ActiveRun {\n runId: string;\n threadId: string;\n events: RunEvent[];\n status: RunStatus;\n subscribers: Set<(event: RunEvent) => void>;\n abort: AbortController;\n startedAt: number;\n}\n\nconst activeRuns = new Map<string, ActiveRun>();\nconst threadToRun = new Map<string, string>();\n\n/** How long to keep completed runs in memory before cleanup (5 min) */\nconst CLEANUP_DELAY_MS = 5 * 60 * 1000;\n\n/**\n * Start a new agent run in the background.\n * `runFn` receives a `send` callback and an `AbortSignal`.\n * The run continues even if all SSE subscribers disconnect.\n *\n * Events are persisted to SQL for cross-isolate access (Cloudflare Workers).\n */\nexport function startRun(\n runId: string,\n threadId: string,\n runFn: (\n send: (event: AgentChatEvent) => void,\n signal: AbortSignal,\n ) => Promise<void>,\n onComplete?: (run: ActiveRun) => void | Promise<void>,\n): ActiveRun {\n // If there's already a run for this thread, abort it\n const existingRunId = threadToRun.get(threadId);\n if (existingRunId) {\n abortRun(existingRunId);\n }\n\n const abort = new AbortController();\n const run: ActiveRun = {\n runId,\n threadId,\n events: [],\n status: \"running\",\n subscribers: new Set(),\n abort,\n startedAt: Date.now(),\n };\n\n activeRuns.set(runId, run);\n threadToRun.set(threadId, runId);\n\n // Persist run to SQL (fire-and-forget — don't block the response)\n insertRun(runId, threadId).catch(() => {});\n\n // Heartbeat: bump heartbeat_at every 1.5s so watchers can detect a dead\n // producer (process crash, HMR restart, isolate eviction) quickly and\n // reap the row. Paired with RUN_STALE_MS (6s) — 4x the interval to\n // tolerate transient DB slowness without false positives.\n const heartbeatTimer: ReturnType<typeof setInterval> = setInterval(() => {\n updateRunHeartbeat(runId).catch(() => {});\n }, 1500);\n\n // Periodic SQL abort check interval (for cross-isolate abort on Workers)\n let lastAbortCheck = Date.now();\n\n const send = (event: AgentChatEvent) => {\n const runEvent: RunEvent = { seq: run.events.length, event };\n run.events.push(runEvent);\n\n // Notify in-memory subscribers (same isolate, fast path)\n for (const subscriber of run.subscribers) {\n try {\n subscriber(runEvent);\n } catch {\n run.subscribers.delete(subscriber);\n }\n }\n\n // Persist event to SQL (fire-and-forget)\n insertRunEvent(runId, runEvent.seq, JSON.stringify(event)).catch(() => {});\n\n // Check SQL for cross-isolate abort every 3 seconds\n const now = Date.now();\n if (now - lastAbortCheck > 3000) {\n lastAbortCheck = now;\n isRunAborted(runId)\n .then((aborted) => {\n if (aborted && !abort.signal.aborted) abort.abort();\n })\n .catch(() => {});\n }\n };\n\n // Run in background — intentionally detached from any HTTP connection\n const runPromise = runFn(send, abort.signal)\n .then(() => {\n run.status = \"completed\";\n })\n .catch((err) => {\n // Don't surface abort errors — the run was intentionally stopped\n if (abort.signal.aborted) {\n run.status = \"completed\";\n return;\n }\n run.status = \"errored\";\n send({\n type: \"error\",\n error: err?.message ?? \"Unknown error\",\n ...(err instanceof EngineError && err.errorCode\n ? { errorCode: err.errorCode }\n : {}),\n ...(err instanceof EngineError && err.upgradeUrl\n ? { upgradeUrl: err.upgradeUrl }\n : {}),\n });\n })\n .finally(async () => {\n // Ordering matters here — this is the atomic-complete boundary.\n // Invariant: once agent_runs.status flips to \"completed\"/\"errored\"\n // in SQL, thread_data for this turn is already durable. This lets\n // reconnecting clients trust the simple rule \"status != running →\n // fetch thread_data\" without polling/retrying for a race window\n // where onComplete was still pending.\n\n // 1. Emit terminal event to live subscribers + SQL event log so\n // in-flight SSE streams close promptly. Thread-data save below\n // runs in parallel with subscribers disconnecting.\n if (run.status === \"errored\" || run.status === \"completed\") {\n const terminal: RunEvent = {\n seq: run.events.length,\n event:\n run.status === \"errored\"\n ? { type: \"error\", error: \"Agent run ended unexpectedly\" }\n : { type: \"done\" },\n };\n const last = run.events[run.events.length - 1];\n if (\n !last ||\n (last.event.type !== \"done\" &&\n last.event.type !== \"error\" &&\n last.event.type !== \"missing_api_key\" &&\n last.event.type !== \"loop_limit\")\n ) {\n run.events.push(terminal);\n insertRunEvent(\n runId,\n terminal.seq,\n JSON.stringify(terminal.event),\n ).catch(() => {});\n for (const subscriber of run.subscribers) {\n try {\n subscriber(terminal);\n } catch {\n // ignore — subscriber will be cleaned up below\n }\n }\n }\n }\n for (const subscriber of run.subscribers) {\n run.subscribers.delete(subscriber);\n }\n\n // 2. Await the completion callback (thread_data save). Heartbeat is\n // still ticking so the run doesn't look stale to any concurrent\n // /runs/active check while we wait for SQL writes to land.\n let completionError: unknown = null;\n if (onComplete) {\n try {\n await onComplete(run);\n } catch (err) {\n completionError = err;\n console.error(\n \"[run-manager] onComplete callback error:\",\n err instanceof Error ? err.message : err,\n );\n }\n }\n\n // 3. Stop the heartbeat — all liveness writes are done.\n clearInterval(heartbeatTimer);\n\n // 4. Persist final status to SQL. If the completion callback threw,\n // we'd rather mark the run errored than claim success with\n // incomplete thread_data.\n const finalStatus =\n run.status === \"errored\" || completionError ? \"errored\" : \"completed\";\n try {\n await updateRunStatus(runId, finalStatus);\n } catch {\n // Best-effort — reapIfStale will eventually clean this up via\n // the heartbeat-stale path.\n }\n\n // 5. Schedule in-memory cleanup + opportunistic old-run pruning.\n setTimeout(() => {\n activeRuns.delete(runId);\n if (threadToRun.get(threadId) === runId) {\n threadToRun.delete(threadId);\n }\n }, CLEANUP_DELAY_MS);\n cleanupOldRuns(30 * 60 * 1000).catch(() => {});\n });\n\n // On Cloudflare Workers, keep the isolate alive for this run\n try {\n const cfCtx = globalThis.__cf_ctx;\n if (cfCtx?.waitUntil) {\n cfCtx.waitUntil(runPromise);\n }\n } catch {\n // Not on Workers — ignore\n }\n\n return run;\n}\n\n/**\n * Subscribe to a run's events starting from `fromSeq`.\n * Returns a ReadableStream that replays buffered events then live-tails.\n * Cancelling the stream only unsubscribes — does NOT abort the agent.\n *\n * Falls back to SQL polling when the run is not in local memory\n * (cross-isolate reconnection on Workers).\n */\nexport function subscribeToRun(\n runId: string,\n fromSeq: number,\n): ReadableStream<Uint8Array> | null {\n const run = activeRuns.get(runId);\n if (run) {\n return subscribeInMemory(run, fromSeq);\n }\n // Not in local memory — try SQL (cross-isolate path)\n return subscribeFromSQL(runId, fromSeq);\n}\n\n/** In-memory subscription (same isolate, fast path) */\nfunction subscribeInMemory(\n run: ActiveRun,\n fromSeq: number,\n): ReadableStream<Uint8Array> {\n const encoder = new TextEncoder();\n let subscriberRef: ((event: RunEvent) => void) | null = null;\n\n return new ReadableStream({\n start(controller) {\n // Replay buffered events from fromSeq\n for (let i = fromSeq; i < run.events.length; i++) {\n try {\n controller.enqueue(\n encoder.encode(\n `data: ${JSON.stringify({ ...run.events[i].event, seq: run.events[i].seq })}\\n\\n`,\n ),\n );\n } catch {\n return;\n }\n }\n\n // If run is already done, close immediately\n if (run.status !== \"running\") {\n controller.close();\n return;\n }\n\n // Subscribe to live events\n subscriberRef = (event: RunEvent) => {\n try {\n controller.enqueue(\n encoder.encode(\n `data: ${JSON.stringify({ ...event.event, seq: event.seq })}\\n\\n`,\n ),\n );\n // Close stream after terminal events\n if (\n event.event.type === \"done\" ||\n event.event.type === \"error\" ||\n event.event.type === \"missing_api_key\" ||\n event.event.type === \"loop_limit\"\n ) {\n run.subscribers.delete(subscriberRef!);\n controller.close();\n }\n } catch {\n run.subscribers.delete(subscriberRef!);\n }\n };\n\n run.subscribers.add(subscriberRef);\n },\n cancel() {\n // Only unsubscribe — do NOT abort the agent run\n if (subscriberRef) run.subscribers.delete(subscriberRef);\n },\n });\n}\n\n/** SQL-based subscription (cross-isolate, polling) */\nfunction subscribeFromSQL(\n runId: string,\n fromSeq: number,\n): ReadableStream<Uint8Array> | null {\n const encoder = new TextEncoder();\n let cancelled = false;\n let pollTimer: ReturnType<typeof setTimeout> | null = null;\n\n return new ReadableStream({\n async start(controller) {\n let lastSeq = fromSeq;\n\n const poll = async () => {\n if (cancelled) return;\n try {\n // Read new events from SQL\n const events = await getRunEventsSince(runId, lastSeq);\n for (const { seq, eventData } of events) {\n let parsed: any;\n try {\n parsed = JSON.parse(eventData);\n } catch {\n continue;\n }\n try {\n controller.enqueue(\n encoder.encode(\n `data: ${JSON.stringify({ ...parsed, seq })}\\n\\n`,\n ),\n );\n } catch {\n cancelled = true;\n return;\n }\n lastSeq = seq;\n\n // Close on terminal events\n if (\n parsed.type === \"done\" ||\n parsed.type === \"error\" ||\n parsed.type === \"missing_api_key\" ||\n parsed.type === \"loop_limit\"\n ) {\n controller.close();\n return;\n }\n }\n\n // Check if run completed (no terminal event but status changed)\n if (events.length === 0) {\n // Opportunistically reap a stale producer before trusting SQL's\n // \"running\" status — otherwise a crashed server leaves us polling\n // forever.\n await reapIfStale(runId).catch(() => {});\n const run = await getRunById(runId);\n if (!run || run.status !== \"running\") {\n // Run ended — do one final event read, then close\n const finalEvents = await getRunEventsSince(runId, lastSeq);\n for (const { seq, eventData } of finalEvents) {\n let parsed: any;\n try {\n parsed = JSON.parse(eventData);\n } catch {\n continue;\n }\n try {\n controller.enqueue(\n encoder.encode(\n `data: ${JSON.stringify({ ...parsed, seq })}\\n\\n`,\n ),\n );\n } catch {\n cancelled = true;\n return;\n }\n }\n controller.close();\n return;\n }\n }\n\n // Schedule next poll\n if (!cancelled) {\n pollTimer = setTimeout(poll, 500);\n }\n } catch {\n // SQL error — close stream\n try {\n controller.close();\n } catch {}\n }\n };\n\n // Verify run exists before starting poll\n try {\n const run = await getRunById(runId);\n if (!run) {\n controller.close();\n return;\n }\n } catch {\n controller.close();\n return;\n }\n\n await poll();\n },\n cancel() {\n cancelled = true;\n if (pollTimer) clearTimeout(pollTimer);\n },\n });\n}\n\n/** Get the active run for a thread (if any) — checks memory then SQL */\nexport function getActiveRunForThread(threadId: string): ActiveRun | null {\n const runId = threadToRun.get(threadId);\n if (runId) {\n const run = activeRuns.get(runId);\n if (run) return run;\n }\n return null;\n}\n\n/**\n * Async version that also checks SQL — for cross-isolate access.\n * Used by the /runs/active endpoint.\n *\n * Returns `heartbeatAt` so the client can independently decide a run is\n * dead even before the server-side stale reap has fired.\n */\nexport async function getActiveRunForThreadAsync(threadId: string): Promise<{\n runId: string;\n threadId: string;\n status: string;\n heartbeatAt: number;\n} | null> {\n // Check memory first — return both running AND recently-completed runs\n // that still have events in memory. This allows sub-agent tabs to replay\n // the full conversation from completed runs via SSE.\n const memRun = getActiveRunForThread(threadId);\n if (memRun && (memRun.status === \"running\" || memRun.events.length > 0)) {\n return {\n runId: memRun.runId,\n threadId: memRun.threadId,\n status: memRun.status,\n // In-memory means this isolate is the producer. By definition, the\n // heartbeat is fresh as of \"now\" — the client can trust this.\n heartbeatAt: Date.now(),\n };\n }\n // Fall back to SQL\n try {\n const sqlRun = await getRunByThread(threadId);\n if (sqlRun && sqlRun.status === \"running\") {\n // If the producer is dead (no recent heartbeat), reap before the\n // client can see a stale \"running\" status and enter a reconnect\n // loop it can never exit.\n const reaped = await reapIfStale(sqlRun.id).catch(() => false);\n if (reaped) return null;\n return {\n runId: sqlRun.id,\n threadId: sqlRun.threadId,\n status: sqlRun.status,\n heartbeatAt: sqlRun.heartbeatAt ?? sqlRun.startedAt,\n };\n }\n } catch {\n // SQL error — fall through\n }\n return null;\n}\n\n/** Get a run by ID */\nexport function getRun(runId: string): ActiveRun | null {\n return activeRuns.get(runId) ?? null;\n}\n\n/** Explicitly abort a run (e.g. Stop button) */\nexport function abortRun(runId: string): boolean {\n const run = activeRuns.get(runId);\n if (run) {\n run.abort.abort();\n }\n // Also mark as aborted in SQL (for cross-isolate abort on Workers)\n markRunAborted(runId).catch(() => {});\n return !!run;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-store.js","sourceRoot":"","sources":["../../src/agent/run-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-store.js","sourceRoot":"","sources":["../../src/agent/run-store.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SQL persistence for agent runs and events.\n * Enables cross-isolate access on Cloudflare Workers and\n * reliable reconnection after page refreshes.\n */\nimport { getDbExec, intType, isPostgres } from \"../db/client.js\";\n\nlet _initPromise: Promise<void> | undefined;\n\n/**\n * Max time without a heartbeat before a \"running\" run is considered dead.\n * The run-manager heartbeats every 1.5s, so 6s tolerates 3 missed writes.\n * Short window is what makes reload recovery feel instant instead of\n * stranding the user on \"Thinking...\" for up to 90s after a process death.\n */\nexport const RUN_STALE_MS = 6_000;\n\nasync function ensureRunTables(): Promise<void> {\n if (!_initPromise) {\n _initPromise = (async () => {\n const client = getDbExec();\n await client.execute(`\n CREATE TABLE IF NOT EXISTS agent_runs (\n id TEXT PRIMARY KEY,\n thread_id TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'running',\n started_at ${intType()} NOT NULL,\n completed_at ${intType()},\n heartbeat_at ${intType()}\n )\n `);\n // Backfill heartbeat_at on older deployments.\n try {\n if (isPostgres()) {\n await client.execute(\n `ALTER TABLE agent_runs ADD COLUMN IF NOT EXISTS heartbeat_at ${intType()}`,\n );\n } else {\n await client.execute(\n `ALTER TABLE agent_runs ADD COLUMN heartbeat_at ${intType()}`,\n );\n }\n } catch {\n // Column already exists — ignore\n }\n await client.execute(`\n CREATE TABLE IF NOT EXISTS agent_run_events (\n run_id TEXT NOT NULL,\n seq ${intType()} NOT NULL,\n event_data TEXT NOT NULL,\n PRIMARY KEY (run_id, seq)\n )\n `);\n })();\n }\n return _initPromise;\n}\n\nexport async function insertRun(id: string, threadId: string): Promise<void> {\n await ensureRunTables();\n const client = getDbExec();\n const now = Date.now();\n await client.execute({\n sql: `INSERT INTO agent_runs (id, thread_id, status, started_at, heartbeat_at) VALUES (?, ?, 'running', ?, ?)`,\n args: [id, threadId, now, now],\n });\n}\n\n/** Update the run's liveness heartbeat. Called periodically by run-manager. */\nexport async function updateRunHeartbeat(runId: string): Promise<void> {\n await ensureRunTables();\n const client = getDbExec();\n await client.execute({\n sql: `UPDATE agent_runs SET heartbeat_at = ? WHERE id = ?`,\n args: [Date.now(), runId],\n });\n}\n\n/**\n * If the given run is marked \"running\" in SQL but its heartbeat is stale\n * (producer likely crashed), flip it to \"errored\" so watchers stop waiting.\n * Returns true if the row was reaped.\n */\nexport async function reapIfStale(\n runId: string,\n maxStaleMs: number = RUN_STALE_MS,\n): Promise<boolean> {\n await ensureRunTables();\n const client = getDbExec();\n const cutoff = Date.now() - maxStaleMs;\n const { rowsAffected } = await client.execute({\n sql: `UPDATE agent_runs\n SET status = 'errored', completed_at = ?\n WHERE id = ?\n AND status = 'running'\n AND COALESCE(heartbeat_at, started_at) < ?`,\n args: [Date.now(), runId, cutoff],\n });\n return (rowsAffected ?? 0) > 0;\n}\n\nexport async function updateRunStatus(\n runId: string,\n status: \"completed\" | \"errored\",\n): Promise<void> {\n await ensureRunTables();\n const client = getDbExec();\n await client.execute({\n sql: `UPDATE agent_runs SET status = ?, completed_at = ? WHERE id = ?`,\n args: [status, Date.now(), runId],\n });\n}\n\nexport async function markRunAborted(runId: string): Promise<void> {\n await ensureRunTables();\n const client = getDbExec();\n await client.execute({\n sql: `UPDATE agent_runs SET status = 'aborted', completed_at = ? WHERE id = ?`,\n args: [Date.now(), runId],\n });\n}\n\nexport async function isRunAborted(runId: string): Promise<boolean> {\n await ensureRunTables();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT status FROM agent_runs WHERE id = ?`,\n args: [runId],\n });\n return (\n rows.length > 0 && (rows[0] as { status: string }).status === \"aborted\"\n );\n}\n\nexport async function insertRunEvent(\n runId: string,\n seq: number,\n eventData: string,\n): Promise<void> {\n await ensureRunTables();\n const client = getDbExec();\n await client.execute({\n sql: `INSERT INTO agent_run_events (run_id, seq, event_data) VALUES (?, ?, ?)`,\n args: [runId, seq, eventData],\n });\n}\n\nexport async function getRunEventsSince(\n runId: string,\n fromSeq: number,\n): Promise<Array<{ seq: number; eventData: string }>> {\n await ensureRunTables();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT seq, event_data FROM agent_run_events WHERE run_id = ? AND seq >= ? ORDER BY seq ASC`,\n args: [runId, fromSeq],\n });\n return rows.map((r) => {\n const row = r as { seq: number | string; event_data: string };\n return { seq: Number(row.seq), eventData: row.event_data };\n });\n}\n\nexport async function getRunById(runId: string): Promise<{\n id: string;\n threadId: string;\n status: string;\n startedAt: number;\n} | null> {\n await ensureRunTables();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT id, thread_id, status, started_at FROM agent_runs WHERE id = ?`,\n args: [runId],\n });\n if (rows.length === 0) return null;\n const r = rows[0] as {\n id: string;\n thread_id: string;\n status: string;\n started_at: number | string;\n };\n return {\n id: r.id,\n threadId: r.thread_id,\n status: r.status,\n startedAt: Number(r.started_at),\n };\n}\n\nexport async function getRunByThread(threadId: string): Promise<{\n id: string;\n threadId: string;\n status: string;\n startedAt: number;\n heartbeatAt: number | null;\n} | null> {\n await ensureRunTables();\n const client = getDbExec();\n const { rows } = await client.execute({\n sql: `SELECT id, thread_id, status, started_at, heartbeat_at FROM agent_runs WHERE thread_id = ? AND status = 'running' ORDER BY started_at DESC LIMIT 1`,\n args: [threadId],\n });\n if (rows.length === 0) return null;\n const r = rows[0] as {\n id: string;\n thread_id: string;\n status: string;\n started_at: number | string;\n heartbeat_at: number | string | null;\n };\n return {\n id: r.id,\n threadId: r.thread_id,\n status: r.status,\n startedAt: Number(r.started_at),\n heartbeatAt: r.heartbeat_at == null ? null : Number(r.heartbeat_at),\n };\n}\n\n/**\n * Expire any \"running\" rows whose heartbeat is stale — producer died.\n * Safe to call at server startup on multi-isolate deployments: only rows\n * without a fresh heartbeat get reaped, so runs owned by OTHER live\n * isolates (which keep heartbeating) are left alone.\n */\nexport async function reapAllStaleRuns(): Promise<number> {\n await ensureRunTables();\n const client = getDbExec();\n const heartbeatCutoff = Date.now() - RUN_STALE_MS;\n const { rowsAffected } = await client.execute({\n sql: `UPDATE agent_runs\n SET status = 'errored', completed_at = ?\n WHERE status = 'running'\n AND COALESCE(heartbeat_at, started_at) < ?`,\n args: [Date.now(), heartbeatCutoff],\n });\n return rowsAffected ?? 0;\n}\n\n/** Delete completed/errored runs older than the given threshold,\n * and expire stale \"running\" rows that haven't had activity\n * (e.g. worker crashed before updating status). */\nexport async function cleanupOldRuns(olderThanMs: number): Promise<void> {\n await ensureRunTables();\n const client = getDbExec();\n const cutoff = Date.now() - olderThanMs;\n // Expire stale running rows on the absolute-age threshold — safety net\n // for runs that never received a heartbeat (very old deployments).\n await client.execute({\n sql: `UPDATE agent_runs SET status = 'errored', completed_at = ? WHERE status = 'running' AND started_at < ?`,\n args: [Date.now(), cutoff],\n });\n // Also expire runs whose heartbeat is stale — producer has died.\n const heartbeatCutoff = Date.now() - RUN_STALE_MS;\n await client.execute({\n sql: `UPDATE agent_runs\n SET status = 'errored', completed_at = ?\n WHERE status = 'running'\n AND COALESCE(heartbeat_at, started_at) < ?`,\n args: [Date.now(), heartbeatCutoff],\n });\n // Delete events for old non-running runs\n await client.execute({\n sql: `DELETE FROM agent_run_events WHERE run_id IN (\n SELECT id FROM agent_runs WHERE status != 'running' AND completed_at < ?\n )`,\n args: [cutoff],\n });\n await client.execute({\n sql: `DELETE FROM agent_runs WHERE status != 'running' AND completed_at < ?`,\n args: [cutoff],\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-data-builder.js","sourceRoot":"","sources":["../../src/agent/thread-data-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread-data-builder.js","sourceRoot":"","sources":["../../src/agent/thread-data-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RunEvent } from \"./types.js\";\n\ninterface ContentPart {\n type: string;\n text?: string;\n toolCallId?: string;\n toolName?: string;\n argsText?: string;\n args?: Record<string, string>;\n result?: string;\n}\n\n/**\n * Reconstruct an assistant-ui message from raw agent run events.\n * Mirrors the client-side processEvent logic so the server can persist\n * the assistant's response even if the frontend is disconnected.\n */\nexport function buildAssistantMessage(\n events: RunEvent[],\n runId?: string,\n): {\n id: string;\n role: \"assistant\";\n content: ContentPart[];\n status: { type: \"complete\"; reason: \"stop\" };\n metadata: Record<string, unknown>;\n} | null {\n const content: ContentPart[] = [];\n let toolCallCounter = 0;\n\n for (const { event } of events) {\n if (event.type === \"clear\") {\n content.length = 0;\n toolCallCounter = 0;\n continue;\n }\n\n if (event.type === \"text\") {\n const last = content[content.length - 1];\n if (last && last.type === \"text\") {\n last.text = (last.text ?? \"\") + (event.text ?? \"\");\n } else {\n content.push({ type: \"text\", text: event.text ?? \"\" });\n }\n continue;\n }\n\n if (event.type === \"tool_start\") {\n const toolCallId = `tc_${++toolCallCounter}`;\n const args = (event.input ?? {}) as Record<string, string>;\n content.push({\n type: \"tool-call\",\n toolCallId,\n toolName: event.tool ?? \"unknown\",\n argsText: JSON.stringify(args),\n args,\n });\n continue;\n }\n\n if (event.type === \"tool_done\") {\n for (let i = content.length - 1; i >= 0; i--) {\n const part = content[i];\n if (\n part.type === \"tool-call\" &&\n part.toolName === event.tool &&\n part.result === undefined\n ) {\n part.result = event.result ?? \"\";\n break;\n }\n }\n continue;\n }\n\n // done, error, missing_api_key, loop_limit — terminal signals, not content\n }\n\n if (content.length === 0) return null;\n\n return {\n id: `server-${runId ?? Date.now()}`,\n role: \"assistant\",\n content,\n status: { type: \"complete\" as const, reason: \"stop\" as const },\n metadata: runId ? { runId } : {},\n };\n}\n\n/**\n * Extract title and preview from a thread runtime export.\n * Isomorphic — works on both server and client.\n */\nexport function extractThreadMeta(repo: any): {\n title: string;\n preview: string;\n} {\n const msgs = repo?.messages;\n if (!Array.isArray(msgs) || msgs.length === 0)\n return { title: \"\", preview: \"\" };\n\n let title = \"\";\n let preview = \"\";\n for (const entry of msgs) {\n // Support both wrapped ({ message: { role, content } }) and flat ({ role, content }) formats\n const msg = entry?.message ?? entry;\n if (msg.role !== \"user\") continue;\n const textParts = Array.isArray(msg.content)\n ? msg.content\n .filter((p: any) => p.type === \"text\")\n .map((p: any) => p.text)\n .join(\" \")\n : typeof msg.content === \"string\"\n ? msg.content\n : \"\";\n if (textParts.trim()) {\n if (!title) title = textParts.trim().slice(0, 80);\n preview = textParts.trim().slice(0, 120);\n }\n }\n return { title, preview };\n}\n"]}
|
package/dist/agent/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface ActionTool {\n description: string;\n parameters?: {\n type: \"object\";\n properties: Record<\n string,\n {\n type: string;\n description?: string;\n enum?: string[];\n }\n >;\n required?: string[];\n };\n}\n\n/** @deprecated Use `ActionTool` instead */\nexport type ScriptTool = ActionTool;\n\nexport interface AgentMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface AgentChatReference {\n type: \"file\" | \"skill\" | \"mention\" | \"agent\" | \"custom-agent\";\n path: string;\n name: string;\n source: string;\n refType?: string;\n refId?: string;\n}\n\nexport interface MentionProviderItem {\n id: string;\n label: string;\n description?: string;\n icon?: string;\n refType: string;\n refId?: string;\n refPath?: string;\n}\n\nexport interface MentionProvider {\n label: string;\n icon?: string;\n search: (\n query: string,\n /** The H3 event for the current request — use to make internal API calls */\n event?: any,\n ) => MentionProviderItem[] | Promise<MentionProviderItem[]>;\n}\n\nexport interface AgentChatAttachment {\n type: string;\n name: string;\n data?: string;\n contentType?: string;\n text?: string;\n}\n\nexport interface AgentChatRequest {\n message: string;\n history?: AgentMessage[];\n references?: AgentChatReference[];\n threadId?: string;\n attachments?: AgentChatAttachment[];\n /** Per-request model override (ephemeral, from the composer model picker). */\n model?: string;\n /** Per-request engine override (sent alongside model for cross-provider switches). */\n engine?: string;\n /** Usage-tracking label for this call (e.g. \"chat\", \"summarize\"). Default: \"chat\". */\n usageLabel?: string;\n}\n\nexport type AgentChatEvent =\n | { type: \"text\"; text: string }\n | { type: \"tool_start\"; tool: string; input: Record<string, string> }\n | { type: \"tool_done\"; tool: string; result: string }\n | {\n type: \"agent_call\";\n agent: string;\n status: \"start\" | \"done\" | \"error\";\n }\n | { type: \"agent_call_text\"; agent: string; text: string }\n | {\n type: \"agent_task\";\n taskId: string;\n threadId: string;\n description: string;\n status: \"running\" | \"completed\" | \"errored\";\n }\n | {\n type: \"agent_task_update\";\n taskId: string;\n preview: string;\n currentStep?: string;\n }\n | {\n type: \"agent_task_complete\";\n taskId: string;\n summary: string;\n }\n | { type: \"done\" }\n | {\n type: \"error\";\n error: string;\n /**\n * Optional machine-readable error code. Builder gateway uses codes\n * like \"credits-limit-monthly\" / \"unauthorized\" / \"gateway_not_enabled\"\n * so the chat UI can render a structured CTA (e.g. upgrade button).\n */\n errorCode?: string;\n /** Optional link paired with errorCode — e.g. Builder billing page. */\n upgradeUrl?: string;\n }\n | { type: \"missing_api_key\" }\n | { type: \"loop_limit\" }\n | { type: \"clear\" };\n\nexport interface RunEvent {\n seq: number;\n event: AgentChatEvent;\n}\n\nexport type RunStatus = \"running\" | \"completed\" | \"errored\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/application-state/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAStC;;;GAGG;AACH,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAEpC,MAAM,UAAU,kBAAkB;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,aAAsB;IACpE,MAAM,KAAK,GAAkB;QAC3B,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,aAAsB;IACpE,MAAM,KAAK,GAAkB;QAC3B,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/application-state/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAStC;;;GAGG;AACH,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAEpC,MAAM,UAAU,kBAAkB;IAChC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,aAAsB;IACpE,MAAM,KAAK,GAAkB;QAC3B,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,aAAsB;IACpE,MAAM,KAAK,GAAkB;QAC3B,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import { EventEmitter } from \"events\";\n\nexport interface AppStateEvent {\n source: \"app-state\";\n type: \"change\" | \"delete\";\n key: string;\n requestSource?: string;\n}\n\n/**\n * Singleton EventEmitter for application-state DB changes.\n * The SSE handler subscribes to this via extraEmitters.\n */\nconst _emitter = new EventEmitter();\n\nexport function getAppStateEmitter(): EventEmitter {\n return _emitter;\n}\n\nexport function emitAppStateChange(key: string, requestSource?: string): void {\n const event: AppStateEvent = {\n source: \"app-state\",\n type: \"change\",\n key,\n ...(requestSource && { requestSource }),\n };\n _emitter.emit(\"app-state\", event);\n}\n\nexport function emitAppStateDelete(key: string, requestSource?: string): void {\n const event: AppStateEvent = {\n source: \"app-state\",\n type: \"delete\",\n key,\n ...(requestSource && { requestSource }),\n };\n _emitter.emit(\"app-state\", event);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/application-state/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/application-state/handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createError,\n defineEventHandler,\n getRouterParam,\n getHeader,\n setResponseStatus,\n type H3Event,\n} from \"h3\";\nimport {\n appStateGet,\n appStatePut,\n appStateDelete,\n appStateList,\n appStateDeleteByPrefix,\n} from \"./store.js\";\nimport { getSession, DEV_MODE_USER_EMAIL } from \"../server/auth.js\";\nimport { readBody } from \"../server/h3-helpers.js\";\n\n/**\n * Resolve the session ID for app state scoping.\n * - Dev mode: returns \"local\" (backward-compatible with existing dev databases)\n * - Production with Google OAuth: returns the user's email\n * - Production with token auth: returns \"user\" (single-user, same as before)\n */\nasync function getSessionId(event: H3Event): Promise<string> {\n const session = await getSession(event);\n if (!session?.email) {\n throw createError({\n statusCode: 401,\n statusMessage: \"Unauthenticated\",\n });\n }\n // Dev mode returns DEV_MODE_USER_EMAIL — keep using \"local\" for compat\n if (session.email === DEV_MODE_USER_EMAIL) return \"local\";\n return session.email;\n}\n\nfunction safeKey(key: string): string {\n return key.replace(/[^a-zA-Z0-9_:\\-]/g, \"\");\n}\n\n// --- Generic state handlers ---\n\nexport const getState = defineEventHandler(async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const key = safeKey(String(getRouterParam(event, \"key\")));\n const value = await appStateGet(sessionId, key);\n return value ?? null;\n});\n\nexport const putState = defineEventHandler(async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const key = safeKey(String(getRouterParam(event, \"key\")));\n const body = await readBody(event);\n const requestSource = getHeader(event, \"x-request-source\") || undefined;\n await appStatePut(sessionId, key, body, { requestSource });\n return body;\n});\n\nexport const deleteState = defineEventHandler(async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const key = safeKey(String(getRouterParam(event, \"key\")));\n const requestSource = getHeader(event, \"x-request-source\") || undefined;\n await appStateDelete(sessionId, key, { requestSource });\n return { ok: true };\n});\n\n// --- Multi-draft compose handlers ---\n\nfunction composeDraftKey(id: string): string {\n return `compose-${safeKey(id)}`;\n}\n\n/** List all compose drafts */\nexport const listComposeDrafts = defineEventHandler(async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const items = await appStateList(sessionId, \"compose-\");\n return items.map((item) => item.value);\n});\n\n/** Get a single compose draft */\nexport const getComposeDraft = defineEventHandler(async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const id = getRouterParam(event, \"id\") as string;\n const value = await appStateGet(sessionId, composeDraftKey(id));\n return value ?? null;\n});\n\n/** Create or update a compose draft */\nexport const putComposeDraft = defineEventHandler(async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const id = getRouterParam(event, \"id\") as string;\n const body = await readBody(event);\n const { subject, body: bodyText } = body;\n\n if (typeof subject !== \"string\" || typeof bodyText !== \"string\") {\n setResponseStatus(event, 400);\n return { error: \"subject and body are required strings\" };\n }\n\n const state = { ...body, id };\n const requestSource = getHeader(event, \"x-request-source\") || undefined;\n await appStatePut(sessionId, composeDraftKey(id), state, { requestSource });\n return state;\n});\n\n/** Delete a single compose draft */\nexport const deleteComposeDraft = defineEventHandler(async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const id = getRouterParam(event, \"id\") as string;\n const requestSource = getHeader(event, \"x-request-source\") || undefined;\n await appStateDelete(sessionId, composeDraftKey(id), { requestSource });\n return { ok: true };\n});\n\n/** Delete all compose drafts */\nexport const deleteAllComposeDrafts = defineEventHandler(\n async (event: H3Event) => {\n const sessionId = await getSessionId(event);\n const requestSource = getHeader(event, \"x-request-source\") || undefined;\n await appStateDeleteByPrefix(sessionId, \"compose-\", { requestSource });\n return { ok: true };\n },\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/application-state/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,cAAc,CAAC;AAEtB,oCAAoC;AACpC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,iBAAiB;AACjB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/application-state/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,cAAc,CAAC;AAEtB,oCAAoC;AACpC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,iBAAiB;AACjB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,qBAAqB,CAAC","sourcesContent":["// Store\nexport {\n appStateGet,\n appStatePut,\n appStateDelete,\n appStateList,\n appStateDeleteByPrefix,\n} from \"./store.js\";\n\n// Emitter (for SSE wiring)\nexport {\n getAppStateEmitter,\n emitAppStateChange,\n emitAppStateDelete,\n type AppStateEvent,\n} from \"./emitter.js\";\n\n// H3 route handlers (for templates)\nexport {\n getState,\n putState,\n deleteState,\n listComposeDrafts,\n getComposeDraft,\n putComposeDraft,\n deleteComposeDraft,\n deleteAllComposeDrafts,\n} from \"./handlers.js\";\n\n// Script helpers\nexport {\n readAppState,\n writeAppState,\n deleteAppState,\n listAppState,\n deleteAppStateByPrefix,\n} from \"./script-helpers.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-helpers.js","sourceRoot":"","sources":["../../src/application-state/script-helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"script-helpers.js","sourceRoot":"","sources":["../../src/application-state/script-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Application state helpers for use in scripts and actions.\n *\n * The session ID determines which user's application state is read/written.\n * Resolution order:\n * 1. Per-request context (AsyncLocalStorage) — set by the HTTP handler\n * 2. AGENT_USER_EMAIL env var — CLI only\n * 3. Most recent session in the DB — fallback for CLI scripts\n * 4. \"local\" — last resort\n *\n * The per-request context is critical in multi-user deployments: the env var\n * is process-global and gets overwritten by concurrent requests, so it cannot\n * reliably identify the caller. Only CLI scripts (single-user, no HTTP\n * context) should fall through to the env var or DB-lookup paths.\n */\n\nimport {\n appStateGet,\n appStatePut,\n appStateDelete,\n appStateList,\n appStateDeleteByPrefix,\n} from \"./store.js\";\nimport { getDbExec } from \"../db/client.js\";\nimport { DEV_MODE_USER_EMAIL } from \"../server/auth.js\";\n\n// Fallback session ID for CLI scripts (no per-request context).\n// Cached after first resolution so repeated CLI calls don't hit the DB.\nlet _cliFallbackSessionId: string | undefined;\n\n/**\n * Resolve session ID for the current caller.\n *\n * In an HTTP/action context, uses the per-request user email from\n * AsyncLocalStorage so concurrent users don't collide.\n * In a CLI context (no request), falls back to AGENT_USER_EMAIL or the\n * most recent session in the DB.\n */\nasync function resolveSessionId(): Promise<string> {\n // 1. Per-request context (AsyncLocalStorage) — always preferred\n try {\n const { getRequestUserEmail, hasRequestContext } =\n await import(\"../server/request-context.js\");\n const ctxEmail = getRequestUserEmail();\n if (ctxEmail && ctxEmail !== DEV_MODE_USER_EMAIL) return ctxEmail;\n if (ctxEmail === DEV_MODE_USER_EMAIL) return \"local\";\n if (hasRequestContext()) {\n throw new Error(\n \"Application state access requires an authenticated request context\",\n );\n }\n } catch {\n throw new Error(\n \"Application state access requires an authenticated request context\",\n );\n }\n\n // 2. AGENT_USER_EMAIL env var (CLI scripts)\n const email = process.env.AGENT_USER_EMAIL;\n if (email && email !== DEV_MODE_USER_EMAIL) return email;\n if (email === DEV_MODE_USER_EMAIL) return \"local\";\n\n // 3. DB fallback — cached per-process for CLI scripts only\n if (_cliFallbackSessionId) return _cliFallbackSessionId;\n\n try {\n const db = getDbExec();\n const { rows } = await db.execute({\n sql: \"SELECT email FROM sessions ORDER BY created_at DESC LIMIT 1\",\n args: [],\n });\n if (rows[0]) {\n const dbEmail = rows[0].email as string;\n if (dbEmail && dbEmail !== DEV_MODE_USER_EMAIL) {\n _cliFallbackSessionId = dbEmail;\n return dbEmail;\n }\n }\n } catch {\n // sessions table may not exist yet — fall through\n }\n\n _cliFallbackSessionId = \"local\";\n return \"local\";\n}\n\nexport async function readAppState(\n key: string,\n): Promise<Record<string, unknown> | null> {\n const sessionId = await resolveSessionId();\n return appStateGet(sessionId, key);\n}\n\nexport async function writeAppState(\n key: string,\n value: Record<string, unknown>,\n): Promise<void> {\n const sessionId = await resolveSessionId();\n return appStatePut(sessionId, key, value, {\n requestSource: \"agent\",\n });\n}\n\nexport async function deleteAppState(key: string): Promise<boolean> {\n const sessionId = await resolveSessionId();\n return appStateDelete(sessionId, key, {\n requestSource: \"agent\",\n });\n}\n\nexport async function listAppState(\n prefix: string,\n): Promise<Array<{ key: string; value: Record<string, unknown> }>> {\n const sessionId = await resolveSessionId();\n return appStateList(sessionId, prefix);\n}\n\nexport async function deleteAppStateByPrefix(prefix: string): Promise<number> {\n const sessionId = await resolveSessionId();\n return appStateDeleteByPrefix(sessionId, prefix, {\n requestSource: \"agent\",\n });\n}\n"]}
|