@agent-native/core 0.4.5 → 0.5.0-dev.b51eaae
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/client.d.ts +7 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +24 -3
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/handlers.d.ts +6 -3
- package/dist/a2a/handlers.d.ts.map +1 -1
- package/dist/a2a/handlers.js +45 -39
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/index.d.ts +1 -1
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/index.js +2 -2
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/server.d.ts +7 -2
- package/dist/a2a/server.d.ts.map +1 -1
- package/dist/a2a/server.js +54 -14
- package/dist/a2a/server.js.map +1 -1
- package/dist/a2a/task-store.d.ts +6 -6
- package/dist/a2a/task-store.d.ts.map +1 -1
- package/dist/a2a/task-store.js +102 -42
- package/dist/a2a/task-store.js.map +1 -1
- package/dist/a2a/types.d.ts +2 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/action.d.ts +46 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +35 -0
- package/dist/action.js.map +1 -0
- package/dist/adapters/sync/file-sync.js +1 -1
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/production-agent.d.ts +22 -6
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +336 -123
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +43 -0
- package/dist/agent/run-manager.d.ts.map +1 -0
- package/dist/agent/run-manager.js +358 -0
- package/dist/agent/run-manager.js.map +1 -0
- package/dist/agent/run-store.d.ts +26 -0
- package/dist/agent/run-store.d.ts.map +1 -0
- package/dist/agent/run-store.js +145 -0
- package/dist/agent/run-store.js.map +1 -0
- package/dist/agent/thread-data-builder.d.ts +30 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -0
- package/dist/agent/thread-data-builder.js +88 -0
- package/dist/agent/thread-data-builder.js.map +1 -0
- package/dist/agent/types.d.ts +52 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/application-state/emitter.d.ts +3 -2
- package/dist/application-state/emitter.d.ts.map +1 -1
- package/dist/application-state/emitter.js +14 -4
- package/dist/application-state/emitter.js.map +1 -1
- package/dist/application-state/handlers.d.ts.map +1 -1
- package/dist/application-state/handlers.js +13 -16
- package/dist/application-state/handlers.js.map +1 -1
- package/dist/application-state/script-helpers.d.ts +1 -1
- package/dist/application-state/script-helpers.d.ts.map +1 -1
- package/dist/application-state/script-helpers.js +15 -5
- package/dist/application-state/script-helpers.js.map +1 -1
- package/dist/application-state/store.d.ts +4 -3
- package/dist/application-state/store.d.ts.map +1 -1
- package/dist/application-state/store.js +31 -59
- package/dist/application-state/store.js.map +1 -1
- package/dist/chat-threads/emitter.d.ts +9 -0
- package/dist/chat-threads/emitter.d.ts.map +1 -0
- package/dist/chat-threads/emitter.js +14 -0
- package/dist/chat-threads/emitter.js.map +1 -0
- package/dist/chat-threads/store.d.ts +28 -0
- package/dist/chat-threads/store.d.ts.map +1 -0
- package/dist/chat-threads/store.js +124 -0
- package/dist/chat-threads/store.js.map +1 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +4 -18
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +30 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup-agents.d.ts +11 -0
- package/dist/cli/setup-agents.d.ts.map +1 -0
- package/dist/cli/setup-agents.js +123 -0
- package/dist/cli/setup-agents.js.map +1 -0
- package/dist/client/AgentPanel.d.ts +9 -2
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +466 -29
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +25 -3
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +613 -83
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ClientOnly.d.ts +14 -0
- package/dist/client/ClientOnly.d.ts.map +1 -0
- package/dist/client/ClientOnly.js +17 -0
- package/dist/client/ClientOnly.js.map +1 -0
- package/dist/client/CommandMenu.d.ts +71 -0
- package/dist/client/CommandMenu.d.ts.map +1 -0
- package/dist/client/CommandMenu.js +257 -0
- package/dist/client/CommandMenu.js.map +1 -0
- package/dist/client/DefaultSpinner.d.ts +7 -0
- package/dist/client/DefaultSpinner.d.ts.map +1 -0
- package/dist/client/DefaultSpinner.js +28 -0
- package/dist/client/DefaultSpinner.js.map +1 -0
- package/dist/client/MultiTabAssistantChat.d.ts +34 -2
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +346 -57
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/PoweredByBadge.d.ts.map +1 -1
- package/dist/client/PoweredByBadge.js +2 -1
- package/dist/client/PoweredByBadge.js.map +1 -1
- package/dist/client/active-run-state.d.ts +10 -0
- package/dist/client/active-run-state.d.ts.map +1 -0
- package/dist/client/active-run-state.js +32 -0
- package/dist/client/active-run-state.js.map +1 -0
- package/dist/client/agent-chat-adapter.d.ts +2 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +83 -129
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-chat.js +2 -2
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/components/ApiKeySettings.d.ts +2 -2
- package/dist/client/components/ApiKeySettings.js +4 -4
- package/dist/client/components/ApiKeySettings.js.map +1 -1
- package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
- package/dist/client/components/CodeRequiredDialog.js +4 -3
- package/dist/client/components/CodeRequiredDialog.js.map +1 -1
- package/dist/client/composer/MentionPopover.d.ts +26 -0
- package/dist/client/composer/MentionPopover.d.ts.map +1 -0
- package/dist/client/composer/MentionPopover.js +130 -0
- package/dist/client/composer/MentionPopover.js.map +1 -0
- package/dist/client/composer/TiptapComposer.d.ts +19 -0
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -0
- package/dist/client/composer/TiptapComposer.js +415 -0
- package/dist/client/composer/TiptapComposer.js.map +1 -0
- package/dist/client/composer/extensions/FileReference.d.ts +3 -0
- package/dist/client/composer/extensions/FileReference.d.ts.map +1 -0
- package/dist/client/composer/extensions/FileReference.js +36 -0
- package/dist/client/composer/extensions/FileReference.js.map +1 -0
- package/dist/client/composer/extensions/MentionReference.d.ts +3 -0
- package/dist/client/composer/extensions/MentionReference.d.ts.map +1 -0
- package/dist/client/composer/extensions/MentionReference.js +63 -0
- package/dist/client/composer/extensions/MentionReference.js.map +1 -0
- package/dist/client/composer/extensions/SkillReference.d.ts +3 -0
- package/dist/client/composer/extensions/SkillReference.d.ts.map +1 -0
- package/dist/client/composer/extensions/SkillReference.js +40 -0
- package/dist/client/composer/extensions/SkillReference.js.map +1 -0
- package/dist/client/composer/index.d.ts +8 -0
- package/dist/client/composer/index.d.ts.map +1 -0
- package/dist/client/composer/index.js +7 -0
- package/dist/client/composer/index.js.map +1 -0
- package/dist/client/composer/types.d.ts +32 -0
- package/dist/client/composer/types.d.ts.map +1 -0
- package/dist/client/composer/types.js +2 -0
- package/dist/client/composer/types.js.map +1 -0
- package/dist/client/composer/use-file-search.d.ts +6 -0
- package/dist/client/composer/use-file-search.d.ts.map +1 -0
- package/dist/client/composer/use-file-search.js +40 -0
- package/dist/client/composer/use-file-search.js.map +1 -0
- package/dist/client/composer/use-mention-search.d.ts +6 -0
- package/dist/client/composer/use-mention-search.d.ts.map +1 -0
- package/dist/client/composer/use-mention-search.js +39 -0
- package/dist/client/composer/use-mention-search.js.map +1 -0
- package/dist/client/composer/use-skills.d.ts +7 -0
- package/dist/client/composer/use-skills.d.ts.map +1 -0
- package/dist/client/composer/use-skills.js +38 -0
- package/dist/client/composer/use-skills.js.map +1 -0
- package/dist/client/index.d.ts +9 -4
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +8 -3
- package/dist/client/index.js.map +1 -1
- package/dist/client/resources/ResourceEditor.d.ts +7 -0
- package/dist/client/resources/ResourceEditor.d.ts.map +1 -0
- package/dist/client/resources/ResourceEditor.js +851 -0
- package/dist/client/resources/ResourceEditor.js.map +1 -0
- package/dist/client/resources/ResourceTree.d.ts +13 -0
- package/dist/client/resources/ResourceTree.d.ts.map +1 -0
- package/dist/client/resources/ResourceTree.js +122 -0
- package/dist/client/resources/ResourceTree.js.map +1 -0
- package/dist/client/resources/ResourcesPanel.d.ts +2 -0
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -0
- package/dist/client/resources/ResourcesPanel.js +341 -0
- package/dist/client/resources/ResourcesPanel.js.map +1 -0
- package/dist/client/resources/index.d.ts +5 -0
- package/dist/client/resources/index.d.ts.map +1 -0
- package/dist/client/resources/index.js +5 -0
- package/dist/client/resources/index.js.map +1 -0
- package/dist/client/resources/use-resources.d.ts +45 -0
- package/dist/client/resources/use-resources.d.ts.map +1 -0
- package/dist/client/resources/use-resources.js +102 -0
- package/dist/client/resources/use-resources.js.map +1 -0
- package/dist/client/sse-event-processor.d.ts +50 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -0
- package/dist/client/sse-event-processor.js +267 -0
- package/dist/client/sse-event-processor.js.map +1 -0
- package/dist/client/terminal/AgentTerminal.d.ts +1 -1
- package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
- package/dist/client/terminal/AgentTerminal.js +11 -6
- package/dist/client/terminal/AgentTerminal.js.map +1 -1
- package/dist/client/use-agent-chat.d.ts +1 -1
- package/dist/client/use-agent-chat.d.ts.map +1 -1
- package/dist/client/use-agent-chat.js +3 -3
- package/dist/client/use-agent-chat.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts +36 -0
- package/dist/client/use-chat-threads.d.ts.map +1 -0
- package/dist/client/use-chat-threads.js +175 -0
- package/dist/client/use-chat-threads.js.map +1 -0
- package/dist/client/use-db-sync.d.ts +35 -0
- package/dist/client/use-db-sync.d.ts.map +1 -0
- package/dist/client/use-db-sync.js +74 -0
- package/dist/client/use-db-sync.js.map +1 -0
- package/dist/client/use-dev-mode.d.ts +4 -2
- package/dist/client/use-dev-mode.d.ts.map +1 -1
- package/dist/client/use-dev-mode.js +39 -12
- package/dist/client/use-dev-mode.js.map +1 -1
- package/dist/client/use-file-sync-status.d.ts +1 -1
- package/dist/client/use-file-sync-status.js +3 -3
- package/dist/client/use-file-sync-status.js.map +1 -1
- package/dist/client/use-session.d.ts +1 -1
- package/dist/client/use-session.js +2 -2
- package/dist/client/use-session.js.map +1 -1
- package/dist/client/useProductionAgent.d.ts +1 -1
- package/dist/client/useProductionAgent.d.ts.map +1 -1
- package/dist/client/useProductionAgent.js +38 -3
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/credentials/index.d.ts +18 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +32 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/db/client.d.ts +35 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +248 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/create-get-db.d.ts.map +1 -1
- package/dist/db/create-get-db.js +103 -16
- package/dist/db/create-get-db.js.map +1 -1
- package/dist/db/index.d.ts +10 -6
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +10 -4
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +31 -30
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.d.ts +45 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +61 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/deploy/build.js +35 -6
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/route-discovery.d.ts +9 -0
- package/dist/deploy/route-discovery.d.ts.map +1 -1
- package/dist/deploy/route-discovery.js +30 -1
- package/dist/deploy/route-discovery.js.map +1 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/oauth-tokens/store.d.ts.map +1 -1
- package/dist/oauth-tokens/store.js +43 -81
- package/dist/oauth-tokens/store.js.map +1 -1
- package/dist/resources/emitter.d.ts +13 -0
- package/dist/resources/emitter.d.ts.map +1 -0
- package/dist/resources/emitter.js +32 -0
- package/dist/resources/emitter.js.map +1 -0
- package/dist/resources/handlers.d.ts +45 -0
- package/dist/resources/handlers.d.ts.map +1 -0
- package/dist/resources/handlers.js +219 -0
- package/dist/resources/handlers.js.map +1 -0
- package/dist/resources/index.d.ts +5 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +5 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/script-helpers.d.ts +24 -0
- package/dist/resources/script-helpers.d.ts.map +1 -0
- package/dist/resources/script-helpers.js +36 -0
- package/dist/resources/script-helpers.js.map +1 -0
- package/dist/resources/store.d.ts +35 -0
- package/dist/resources/store.d.ts.map +1 -0
- package/dist/resources/store.js +453 -0
- package/dist/resources/store.js.map +1 -0
- package/dist/scripts/call-agent.d.ts +5 -0
- package/dist/scripts/call-agent.d.ts.map +1 -0
- package/dist/scripts/call-agent.js +107 -0
- package/dist/scripts/call-agent.js.map +1 -0
- package/dist/scripts/core-scripts.d.ts.map +1 -1
- package/dist/scripts/core-scripts.js +2 -0
- package/dist/scripts/core-scripts.js.map +1 -1
- package/dist/scripts/db/exec.d.ts +6 -2
- package/dist/scripts/db/exec.d.ts.map +1 -1
- package/dist/scripts/db/exec.js +127 -36
- package/dist/scripts/db/exec.js.map +1 -1
- package/dist/scripts/db/query.d.ts +7 -2
- package/dist/scripts/db/query.d.ts.map +1 -1
- package/dist/scripts/db/query.js +89 -45
- package/dist/scripts/db/query.js.map +1 -1
- package/dist/scripts/db/schema.d.ts +2 -2
- package/dist/scripts/db/schema.d.ts.map +1 -1
- package/dist/scripts/db/schema.js +145 -6
- package/dist/scripts/db/schema.js.map +1 -1
- package/dist/scripts/db/scoping.d.ts +36 -0
- package/dist/scripts/db/scoping.d.ts.map +1 -0
- package/dist/scripts/db/scoping.js +198 -0
- package/dist/scripts/db/scoping.js.map +1 -0
- package/dist/scripts/dev/index.d.ts +2 -2
- package/dist/scripts/dev/index.js +1 -1
- package/dist/scripts/dev/list-files.d.ts +2 -2
- package/dist/scripts/dev/read-file.d.ts +2 -2
- package/dist/scripts/dev/read-file.js +1 -1
- package/dist/scripts/dev/read-file.js.map +1 -1
- package/dist/scripts/dev/search-files.d.ts +2 -2
- package/dist/scripts/dev/search-files.js +1 -1
- package/dist/scripts/dev/search-files.js.map +1 -1
- package/dist/scripts/dev/shell.d.ts +2 -2
- package/dist/scripts/dev/shell.js +1 -1
- package/dist/scripts/dev/shell.js.map +1 -1
- package/dist/scripts/dev/write-file.d.ts +2 -2
- package/dist/scripts/dev/write-file.js +1 -1
- package/dist/scripts/dev/write-file.js.map +1 -1
- package/dist/scripts/resources/delete.d.ts +10 -0
- package/dist/scripts/resources/delete.d.ts.map +1 -0
- package/dist/scripts/resources/delete.js +38 -0
- package/dist/scripts/resources/delete.js.map +1 -0
- package/dist/scripts/resources/index.d.ts +2 -0
- package/dist/scripts/resources/index.d.ts.map +1 -0
- package/dist/scripts/resources/index.js +8 -0
- package/dist/scripts/resources/index.js.map +1 -0
- package/dist/scripts/resources/list.d.ts +10 -0
- package/dist/scripts/resources/list.d.ts.map +1 -0
- package/dist/scripts/resources/list.js +57 -0
- package/dist/scripts/resources/list.js.map +1 -0
- package/dist/scripts/resources/migrate-learnings.d.ts +10 -0
- package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -0
- package/dist/scripts/resources/migrate-learnings.js +23 -0
- package/dist/scripts/resources/migrate-learnings.js.map +1 -0
- package/dist/scripts/resources/read.d.ts +10 -0
- package/dist/scripts/resources/read.d.ts.map +1 -0
- package/dist/scripts/resources/read.js +59 -0
- package/dist/scripts/resources/read.js.map +1 -0
- package/dist/scripts/resources/write.d.ts +10 -0
- package/dist/scripts/resources/write.d.ts.map +1 -0
- package/dist/scripts/resources/write.js +67 -0
- package/dist/scripts/resources/write.js.map +1 -0
- package/dist/scripts/runner.d.ts +7 -7
- package/dist/scripts/runner.d.ts.map +1 -1
- package/dist/scripts/runner.js +68 -27
- package/dist/scripts/runner.js.map +1 -1
- package/dist/scripts/utils.d.ts +4 -1
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +5 -3
- package/dist/scripts/utils.js.map +1 -1
- package/dist/server/action-discovery.d.ts +40 -0
- package/dist/server/action-discovery.d.ts.map +1 -0
- package/dist/server/action-discovery.js +189 -0
- package/dist/server/action-discovery.js.map +1 -0
- package/dist/server/agent-chat-plugin.d.ts +12 -23
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +1087 -36
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.d.ts +16 -0
- package/dist/server/agent-discovery.d.ts.map +1 -0
- package/dist/server/agent-discovery.js +136 -0
- package/dist/server/agent-discovery.js.map +1 -0
- package/dist/server/auth-plugin.d.ts +5 -0
- package/dist/server/auth-plugin.d.ts.map +1 -1
- package/dist/server/auth-plugin.js +12 -1
- package/dist/server/auth-plugin.js.map +1 -1
- package/dist/server/auth.d.ts +3 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +576 -117
- package/dist/server/auth.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts +57 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -0
- package/dist/server/core-routes-plugin.js +125 -0
- package/dist/server/core-routes-plugin.js.map +1 -0
- package/dist/server/create-server.d.ts +4 -4
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +5 -5
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/default-watcher.d.ts +9 -3
- package/dist/server/default-watcher.d.ts.map +1 -1
- package/dist/server/default-watcher.js +26 -6
- package/dist/server/default-watcher.js.map +1 -1
- package/dist/server/google-auth-plugin.js +3 -3
- package/dist/server/google-auth-plugin.js.map +1 -1
- package/dist/server/google-oauth.d.ts +72 -0
- package/dist/server/google-oauth.d.ts.map +1 -0
- package/dist/server/google-oauth.js +187 -0
- package/dist/server/google-oauth.js.map +1 -0
- package/dist/server/index.d.ts +9 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +8 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/oauth-helpers.d.ts +16 -0
- package/dist/server/oauth-helpers.d.ts.map +1 -0
- package/dist/server/oauth-helpers.js +25 -0
- package/dist/server/oauth-helpers.js.map +1 -0
- package/dist/server/poll.d.ts +40 -0
- package/dist/server/poll.d.ts.map +1 -0
- package/dist/server/poll.js +49 -0
- package/dist/server/poll.js.map +1 -0
- package/dist/server/resources-plugin.d.ts +27 -0
- package/dist/server/resources-plugin.d.ts.map +1 -0
- package/dist/server/resources-plugin.js +74 -0
- package/dist/server/resources-plugin.js.map +1 -0
- package/dist/server/script-discovery.d.ts +6 -0
- package/dist/server/script-discovery.d.ts.map +1 -0
- package/dist/server/script-discovery.js +6 -0
- package/dist/server/script-discovery.js.map +1 -0
- package/dist/server/sse.d.ts +1 -1
- package/dist/server/sse.js +1 -1
- package/dist/settings/handlers.d.ts +3 -3
- package/dist/settings/handlers.d.ts.map +1 -1
- package/dist/settings/handlers.js +8 -6
- package/dist/settings/handlers.js.map +1 -1
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.d.ts.map +1 -1
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/store.d.ts +6 -2
- package/dist/settings/store.d.ts.map +1 -1
- package/dist/settings/store.js +26 -63
- package/dist/settings/store.js.map +1 -1
- package/dist/settings/user-settings.d.ts +3 -2
- package/dist/settings/user-settings.d.ts.map +1 -1
- package/dist/settings/user-settings.js +5 -5
- package/dist/settings/user-settings.js.map +1 -1
- package/dist/tailwind.preset.d.ts +7 -6
- package/dist/tailwind.preset.d.ts.map +1 -1
- package/dist/tailwind.preset.js +18 -1
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/terminal/cli-registry.d.ts +1 -1
- package/dist/terminal/cli-registry.js +3 -3
- package/dist/terminal/cli-registry.js.map +1 -1
- package/dist/terminal/pty-server.d.ts.map +1 -1
- package/dist/terminal/pty-server.js +65 -11
- package/dist/terminal/pty-server.js.map +1 -1
- package/dist/terminal/terminal-plugin.d.ts +2 -2
- package/dist/terminal/terminal-plugin.d.ts.map +1 -1
- package/dist/terminal/terminal-plugin.js +27 -21
- package/dist/terminal/terminal-plugin.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +114 -8
- package/dist/vite/client.js.map +1 -1
- package/dist/vite/dev-api-server.d.ts +1 -1
- package/dist/vite/dev-api-server.d.ts.map +1 -1
- package/dist/vite/dev-api-server.js +105 -22
- package/dist/vite/dev-api-server.js.map +1 -1
- package/package.json +22 -6
- package/src/templates/default/.agents/skills/actions/SKILL.md +136 -0
- package/src/templates/default/.agents/skills/create-skill/SKILL.md +1 -1
- package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +1 -1
- package/src/templates/default/.agents/skills/files-as-database/SKILL.md +2 -2
- package/src/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
- package/src/templates/default/AGENTS.md +56 -164
- package/src/templates/default/DEVELOPING.md +117 -0
- package/src/templates/default/{scripts → actions}/hello.ts +1 -1
- package/src/templates/default/actions/navigate.ts +53 -0
- package/src/templates/default/actions/view-screen.ts +39 -0
- package/src/templates/default/app/global.css +2 -2
- package/src/templates/default/app/root.tsx +19 -16
- package/src/templates/default/app/routes/_index.tsx +1 -1
- package/src/templates/default/package.json +4 -0
- package/src/templates/default/server/plugins/.gitkeep +0 -0
- package/dist/a2a/middleware.d.ts +0 -3
- package/dist/a2a/middleware.d.ts.map +0 -1
- package/dist/a2a/middleware.js +0 -36
- package/dist/a2a/middleware.js.map +0 -1
- package/dist/client/use-file-watcher.d.ts +0 -23
- package/dist/client/use-file-watcher.d.ts.map +0 -1
- package/dist/client/use-file-watcher.js +0 -50
- package/dist/client/use-file-watcher.js.map +0 -1
- package/src/templates/default/.agents/skills/scripts/SKILL.md +0 -121
- package/src/templates/default/.agents/skills/sse-file-watcher/SKILL.md +0 -80
- package/src/templates/default/server/plugins/agent-chat.ts +0 -1
- package/src/templates/default/server/plugins/auth.ts +0 -1
- package/src/templates/default/server/plugins/file-sync.ts +0 -1
- package/src/templates/default/server/plugins/terminal.ts +0 -1
- package/src/templates/default/server/routes/api/events.get.ts +0 -3
- package/src/templates/default/server/routes/api/file-sync/status.get.ts +0 -4
- /package/src/templates/default/{scripts → actions}/run.ts +0 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { insertRun, insertRunEvent, updateRunStatus, markRunAborted, isRunAborted, getRunEventsSince, getRunById, getRunByThread, cleanupOldRuns, } from "./run-store.js";
|
|
2
|
+
const activeRuns = new Map();
|
|
3
|
+
const threadToRun = new Map();
|
|
4
|
+
/** How long to keep completed runs in memory before cleanup (5 min) */
|
|
5
|
+
const CLEANUP_DELAY_MS = 5 * 60 * 1000;
|
|
6
|
+
/**
|
|
7
|
+
* Start a new agent run in the background.
|
|
8
|
+
* `runFn` receives a `send` callback and an `AbortSignal`.
|
|
9
|
+
* The run continues even if all SSE subscribers disconnect.
|
|
10
|
+
*
|
|
11
|
+
* Events are persisted to SQL for cross-isolate access (Cloudflare Workers).
|
|
12
|
+
*/
|
|
13
|
+
export function startRun(runId, threadId, runFn, onComplete) {
|
|
14
|
+
// If there's already a run for this thread, abort it
|
|
15
|
+
const existingRunId = threadToRun.get(threadId);
|
|
16
|
+
if (existingRunId) {
|
|
17
|
+
abortRun(existingRunId);
|
|
18
|
+
}
|
|
19
|
+
const abort = new AbortController();
|
|
20
|
+
const run = {
|
|
21
|
+
runId,
|
|
22
|
+
threadId,
|
|
23
|
+
events: [],
|
|
24
|
+
status: "running",
|
|
25
|
+
subscribers: new Set(),
|
|
26
|
+
abort,
|
|
27
|
+
startedAt: Date.now(),
|
|
28
|
+
};
|
|
29
|
+
activeRuns.set(runId, run);
|
|
30
|
+
threadToRun.set(threadId, runId);
|
|
31
|
+
// Persist run to SQL (fire-and-forget — don't block the response)
|
|
32
|
+
insertRun(runId, threadId).catch(() => { });
|
|
33
|
+
// Periodic SQL abort check interval (for cross-isolate abort on Workers)
|
|
34
|
+
let lastAbortCheck = Date.now();
|
|
35
|
+
const send = (event) => {
|
|
36
|
+
const runEvent = { seq: run.events.length, event };
|
|
37
|
+
run.events.push(runEvent);
|
|
38
|
+
// Notify in-memory subscribers (same isolate, fast path)
|
|
39
|
+
for (const subscriber of run.subscribers) {
|
|
40
|
+
try {
|
|
41
|
+
subscriber(runEvent);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
run.subscribers.delete(subscriber);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Persist event to SQL (fire-and-forget)
|
|
48
|
+
insertRunEvent(runId, runEvent.seq, JSON.stringify(event)).catch(() => { });
|
|
49
|
+
// Check SQL for cross-isolate abort every 3 seconds
|
|
50
|
+
const now = Date.now();
|
|
51
|
+
if (now - lastAbortCheck > 3000) {
|
|
52
|
+
lastAbortCheck = now;
|
|
53
|
+
isRunAborted(runId)
|
|
54
|
+
.then((aborted) => {
|
|
55
|
+
if (aborted && !abort.signal.aborted)
|
|
56
|
+
abort.abort();
|
|
57
|
+
})
|
|
58
|
+
.catch(() => { });
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
// Run in background — intentionally detached from any HTTP connection
|
|
62
|
+
const runPromise = runFn(send, abort.signal)
|
|
63
|
+
.then(() => {
|
|
64
|
+
run.status = "completed";
|
|
65
|
+
})
|
|
66
|
+
.catch((err) => {
|
|
67
|
+
// Don't surface abort errors — the run was intentionally stopped
|
|
68
|
+
if (abort.signal.aborted) {
|
|
69
|
+
run.status = "completed";
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
run.status = "errored";
|
|
73
|
+
send({ type: "error", error: err?.message ?? "Unknown error" });
|
|
74
|
+
})
|
|
75
|
+
.finally(() => {
|
|
76
|
+
// Send a terminal event so every subscriber's ReadableStream controller
|
|
77
|
+
// gets closed. Without this, SSE connections hang open forever when
|
|
78
|
+
// the agent errors out in a way that bypasses the normal `send()` path.
|
|
79
|
+
if (run.status === "errored" || run.status === "completed") {
|
|
80
|
+
const terminal = {
|
|
81
|
+
seq: run.events.length,
|
|
82
|
+
event: run.status === "errored"
|
|
83
|
+
? { type: "error", error: "Agent run ended unexpectedly" }
|
|
84
|
+
: { type: "done" },
|
|
85
|
+
};
|
|
86
|
+
// Only emit if the last event isn't already terminal — avoid duplicates
|
|
87
|
+
const last = run.events[run.events.length - 1];
|
|
88
|
+
if (!last ||
|
|
89
|
+
(last.event.type !== "done" &&
|
|
90
|
+
last.event.type !== "error" &&
|
|
91
|
+
last.event.type !== "missing_api_key" &&
|
|
92
|
+
last.event.type !== "loop_limit")) {
|
|
93
|
+
run.events.push(terminal);
|
|
94
|
+
// Persist terminal event to SQL
|
|
95
|
+
insertRunEvent(runId, terminal.seq, JSON.stringify(terminal.event)).catch(() => { });
|
|
96
|
+
for (const subscriber of run.subscribers) {
|
|
97
|
+
try {
|
|
98
|
+
subscriber(terminal);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// ignore — subscriber will be cleaned up below
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Clean up subscriber references
|
|
107
|
+
for (const subscriber of run.subscribers) {
|
|
108
|
+
run.subscribers.delete(subscriber);
|
|
109
|
+
}
|
|
110
|
+
// Persist final status to SQL
|
|
111
|
+
updateRunStatus(runId, run.status === "errored" ? "errored" : "completed").catch(() => { });
|
|
112
|
+
// Call completion callback (e.g. to save thread data)
|
|
113
|
+
if (onComplete) {
|
|
114
|
+
try {
|
|
115
|
+
onComplete(run);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Don't let callback errors break cleanup
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Schedule in-memory cleanup
|
|
122
|
+
setTimeout(() => {
|
|
123
|
+
activeRuns.delete(runId);
|
|
124
|
+
if (threadToRun.get(threadId) === runId) {
|
|
125
|
+
threadToRun.delete(threadId);
|
|
126
|
+
}
|
|
127
|
+
}, CLEANUP_DELAY_MS);
|
|
128
|
+
// Opportunistically clean up old SQL runs (>30 min)
|
|
129
|
+
cleanupOldRuns(30 * 60 * 1000).catch(() => { });
|
|
130
|
+
});
|
|
131
|
+
// On Cloudflare Workers, keep the isolate alive for this run
|
|
132
|
+
try {
|
|
133
|
+
const cfCtx = globalThis.__cf_ctx;
|
|
134
|
+
if (cfCtx?.waitUntil) {
|
|
135
|
+
cfCtx.waitUntil(runPromise);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Not on Workers — ignore
|
|
140
|
+
}
|
|
141
|
+
return run;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Subscribe to a run's events starting from `fromSeq`.
|
|
145
|
+
* Returns a ReadableStream that replays buffered events then live-tails.
|
|
146
|
+
* Cancelling the stream only unsubscribes — does NOT abort the agent.
|
|
147
|
+
*
|
|
148
|
+
* Falls back to SQL polling when the run is not in local memory
|
|
149
|
+
* (cross-isolate reconnection on Workers).
|
|
150
|
+
*/
|
|
151
|
+
export function subscribeToRun(runId, fromSeq) {
|
|
152
|
+
const run = activeRuns.get(runId);
|
|
153
|
+
if (run) {
|
|
154
|
+
return subscribeInMemory(run, fromSeq);
|
|
155
|
+
}
|
|
156
|
+
// Not in local memory — try SQL (cross-isolate path)
|
|
157
|
+
return subscribeFromSQL(runId, fromSeq);
|
|
158
|
+
}
|
|
159
|
+
/** In-memory subscription (same isolate, fast path) */
|
|
160
|
+
function subscribeInMemory(run, fromSeq) {
|
|
161
|
+
const encoder = new TextEncoder();
|
|
162
|
+
let subscriberRef = null;
|
|
163
|
+
return new ReadableStream({
|
|
164
|
+
start(controller) {
|
|
165
|
+
// Replay buffered events from fromSeq
|
|
166
|
+
for (let i = fromSeq; i < run.events.length; i++) {
|
|
167
|
+
try {
|
|
168
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify({ ...run.events[i].event, seq: run.events[i].seq })}\n\n`));
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// If run is already done, close immediately
|
|
175
|
+
if (run.status !== "running") {
|
|
176
|
+
controller.close();
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
// Subscribe to live events
|
|
180
|
+
subscriberRef = (event) => {
|
|
181
|
+
try {
|
|
182
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify({ ...event.event, seq: event.seq })}\n\n`));
|
|
183
|
+
// Close stream after terminal events
|
|
184
|
+
if (event.event.type === "done" ||
|
|
185
|
+
event.event.type === "error" ||
|
|
186
|
+
event.event.type === "missing_api_key" ||
|
|
187
|
+
event.event.type === "loop_limit") {
|
|
188
|
+
run.subscribers.delete(subscriberRef);
|
|
189
|
+
controller.close();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
run.subscribers.delete(subscriberRef);
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
run.subscribers.add(subscriberRef);
|
|
197
|
+
},
|
|
198
|
+
cancel() {
|
|
199
|
+
// Only unsubscribe — do NOT abort the agent run
|
|
200
|
+
if (subscriberRef)
|
|
201
|
+
run.subscribers.delete(subscriberRef);
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/** SQL-based subscription (cross-isolate, polling) */
|
|
206
|
+
function subscribeFromSQL(runId, fromSeq) {
|
|
207
|
+
const encoder = new TextEncoder();
|
|
208
|
+
let cancelled = false;
|
|
209
|
+
let pollTimer = null;
|
|
210
|
+
return new ReadableStream({
|
|
211
|
+
async start(controller) {
|
|
212
|
+
let lastSeq = fromSeq;
|
|
213
|
+
const poll = async () => {
|
|
214
|
+
if (cancelled)
|
|
215
|
+
return;
|
|
216
|
+
try {
|
|
217
|
+
// Read new events from SQL
|
|
218
|
+
const events = await getRunEventsSince(runId, lastSeq);
|
|
219
|
+
for (const { seq, eventData } of events) {
|
|
220
|
+
let parsed;
|
|
221
|
+
try {
|
|
222
|
+
parsed = JSON.parse(eventData);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify({ ...parsed, seq })}\n\n`));
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
cancelled = true;
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
lastSeq = seq;
|
|
235
|
+
// Close on terminal events
|
|
236
|
+
if (parsed.type === "done" ||
|
|
237
|
+
parsed.type === "error" ||
|
|
238
|
+
parsed.type === "missing_api_key" ||
|
|
239
|
+
parsed.type === "loop_limit") {
|
|
240
|
+
controller.close();
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Check if run completed (no terminal event but status changed)
|
|
245
|
+
if (events.length === 0) {
|
|
246
|
+
const run = await getRunById(runId);
|
|
247
|
+
if (!run || run.status !== "running") {
|
|
248
|
+
// Run ended — do one final event read, then close
|
|
249
|
+
const finalEvents = await getRunEventsSince(runId, lastSeq);
|
|
250
|
+
for (const { seq, eventData } of finalEvents) {
|
|
251
|
+
let parsed;
|
|
252
|
+
try {
|
|
253
|
+
parsed = JSON.parse(eventData);
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
controller.enqueue(encoder.encode(`data: ${JSON.stringify({ ...parsed, seq })}\n\n`));
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
cancelled = true;
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
controller.close();
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// Schedule next poll
|
|
271
|
+
if (!cancelled) {
|
|
272
|
+
pollTimer = setTimeout(poll, 500);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// SQL error — close stream
|
|
277
|
+
try {
|
|
278
|
+
controller.close();
|
|
279
|
+
}
|
|
280
|
+
catch { }
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
// Verify run exists before starting poll
|
|
284
|
+
try {
|
|
285
|
+
const run = await getRunById(runId);
|
|
286
|
+
if (!run) {
|
|
287
|
+
controller.close();
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
controller.close();
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
await poll();
|
|
296
|
+
},
|
|
297
|
+
cancel() {
|
|
298
|
+
cancelled = true;
|
|
299
|
+
if (pollTimer)
|
|
300
|
+
clearTimeout(pollTimer);
|
|
301
|
+
},
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
/** Get the active run for a thread (if any) — checks memory then SQL */
|
|
305
|
+
export function getActiveRunForThread(threadId) {
|
|
306
|
+
const runId = threadToRun.get(threadId);
|
|
307
|
+
if (runId) {
|
|
308
|
+
const run = activeRuns.get(runId);
|
|
309
|
+
if (run)
|
|
310
|
+
return run;
|
|
311
|
+
}
|
|
312
|
+
return null;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Async version that also checks SQL — for cross-isolate access.
|
|
316
|
+
* Used by the /runs/active endpoint.
|
|
317
|
+
*/
|
|
318
|
+
export async function getActiveRunForThreadAsync(threadId) {
|
|
319
|
+
// Check memory first
|
|
320
|
+
const memRun = getActiveRunForThread(threadId);
|
|
321
|
+
if (memRun && memRun.status === "running") {
|
|
322
|
+
return {
|
|
323
|
+
runId: memRun.runId,
|
|
324
|
+
threadId: memRun.threadId,
|
|
325
|
+
status: memRun.status,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
// Fall back to SQL
|
|
329
|
+
try {
|
|
330
|
+
const sqlRun = await getRunByThread(threadId);
|
|
331
|
+
if (sqlRun && sqlRun.status === "running") {
|
|
332
|
+
return {
|
|
333
|
+
runId: sqlRun.id,
|
|
334
|
+
threadId: sqlRun.threadId,
|
|
335
|
+
status: sqlRun.status,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
// SQL error — fall through
|
|
341
|
+
}
|
|
342
|
+
return null;
|
|
343
|
+
}
|
|
344
|
+
/** Get a run by ID */
|
|
345
|
+
export function getRun(runId) {
|
|
346
|
+
return activeRuns.get(runId) ?? null;
|
|
347
|
+
}
|
|
348
|
+
/** Explicitly abort a run (e.g. Stop button) */
|
|
349
|
+
export function abortRun(runId) {
|
|
350
|
+
const run = activeRuns.get(runId);
|
|
351
|
+
if (run) {
|
|
352
|
+
run.abort.abort();
|
|
353
|
+
}
|
|
354
|
+
// Also mark as aborted in SQL (for cross-isolate abort on Workers)
|
|
355
|
+
markRunAborted(runId).catch(() => { });
|
|
356
|
+
return !!run;
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=run-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/agent/run-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare function insertRun(id: string, threadId: string): Promise<void>;
|
|
2
|
+
export declare function updateRunStatus(runId: string, status: "completed" | "errored"): Promise<void>;
|
|
3
|
+
export declare function markRunAborted(runId: string): Promise<void>;
|
|
4
|
+
export declare function isRunAborted(runId: string): Promise<boolean>;
|
|
5
|
+
export declare function insertRunEvent(runId: string, seq: number, eventData: string): Promise<void>;
|
|
6
|
+
export declare function getRunEventsSince(runId: string, fromSeq: number): Promise<Array<{
|
|
7
|
+
seq: number;
|
|
8
|
+
eventData: string;
|
|
9
|
+
}>>;
|
|
10
|
+
export declare function getRunById(runId: string): Promise<{
|
|
11
|
+
id: string;
|
|
12
|
+
threadId: string;
|
|
13
|
+
status: string;
|
|
14
|
+
startedAt: number;
|
|
15
|
+
} | null>;
|
|
16
|
+
export declare function getRunByThread(threadId: string): Promise<{
|
|
17
|
+
id: string;
|
|
18
|
+
threadId: string;
|
|
19
|
+
status: string;
|
|
20
|
+
startedAt: number;
|
|
21
|
+
} | null>;
|
|
22
|
+
/** Delete completed/errored runs older than the given threshold,
|
|
23
|
+
* and expire stale "running" rows that haven't had activity
|
|
24
|
+
* (e.g. worker crashed before updating status). */
|
|
25
|
+
export declare function cleanupOldRuns(olderThanMs: number): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=run-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../src/agent/run-store.ts"],"names":[],"mappings":"AAmCA,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3E;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQlE;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAWpD;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC,CAeR;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC,CAeR;AAED;;oDAEoD;AACpD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBvE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQL persistence for agent runs and events.
|
|
3
|
+
* Enables cross-isolate access on Cloudflare Workers and
|
|
4
|
+
* reliable reconnection after page refreshes.
|
|
5
|
+
*/
|
|
6
|
+
import { getDbExec, intType } from "../db/client.js";
|
|
7
|
+
let _initPromise;
|
|
8
|
+
async function ensureRunTables() {
|
|
9
|
+
if (!_initPromise) {
|
|
10
|
+
_initPromise = (async () => {
|
|
11
|
+
const client = getDbExec();
|
|
12
|
+
await client.execute(`
|
|
13
|
+
CREATE TABLE IF NOT EXISTS agent_runs (
|
|
14
|
+
id TEXT PRIMARY KEY,
|
|
15
|
+
thread_id TEXT NOT NULL,
|
|
16
|
+
status TEXT NOT NULL DEFAULT 'running',
|
|
17
|
+
started_at ${intType()} NOT NULL,
|
|
18
|
+
completed_at ${intType()}
|
|
19
|
+
)
|
|
20
|
+
`);
|
|
21
|
+
await client.execute(`
|
|
22
|
+
CREATE TABLE IF NOT EXISTS agent_run_events (
|
|
23
|
+
run_id TEXT NOT NULL,
|
|
24
|
+
seq ${intType()} NOT NULL,
|
|
25
|
+
event_data TEXT NOT NULL,
|
|
26
|
+
PRIMARY KEY (run_id, seq)
|
|
27
|
+
)
|
|
28
|
+
`);
|
|
29
|
+
})();
|
|
30
|
+
}
|
|
31
|
+
return _initPromise;
|
|
32
|
+
}
|
|
33
|
+
export async function insertRun(id, threadId) {
|
|
34
|
+
await ensureRunTables();
|
|
35
|
+
const client = getDbExec();
|
|
36
|
+
await client.execute({
|
|
37
|
+
sql: `INSERT INTO agent_runs (id, thread_id, status, started_at) VALUES (?, ?, 'running', ?)`,
|
|
38
|
+
args: [id, threadId, Date.now()],
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export async function updateRunStatus(runId, status) {
|
|
42
|
+
await ensureRunTables();
|
|
43
|
+
const client = getDbExec();
|
|
44
|
+
await client.execute({
|
|
45
|
+
sql: `UPDATE agent_runs SET status = ?, completed_at = ? WHERE id = ?`,
|
|
46
|
+
args: [status, Date.now(), runId],
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export async function markRunAborted(runId) {
|
|
50
|
+
await ensureRunTables();
|
|
51
|
+
const client = getDbExec();
|
|
52
|
+
await client.execute({
|
|
53
|
+
sql: `UPDATE agent_runs SET status = 'aborted', completed_at = ? WHERE id = ?`,
|
|
54
|
+
args: [Date.now(), runId],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export async function isRunAborted(runId) {
|
|
58
|
+
await ensureRunTables();
|
|
59
|
+
const client = getDbExec();
|
|
60
|
+
const { rows } = await client.execute({
|
|
61
|
+
sql: `SELECT status FROM agent_runs WHERE id = ?`,
|
|
62
|
+
args: [runId],
|
|
63
|
+
});
|
|
64
|
+
return rows.length > 0 && rows[0].status === "aborted";
|
|
65
|
+
}
|
|
66
|
+
export async function insertRunEvent(runId, seq, eventData) {
|
|
67
|
+
await ensureRunTables();
|
|
68
|
+
const client = getDbExec();
|
|
69
|
+
await client.execute({
|
|
70
|
+
sql: `INSERT INTO agent_run_events (run_id, seq, event_data) VALUES (?, ?, ?)`,
|
|
71
|
+
args: [runId, seq, eventData],
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
export async function getRunEventsSince(runId, fromSeq) {
|
|
75
|
+
await ensureRunTables();
|
|
76
|
+
const client = getDbExec();
|
|
77
|
+
const { rows } = await client.execute({
|
|
78
|
+
sql: `SELECT seq, event_data FROM agent_run_events WHERE run_id = ? AND seq >= ? ORDER BY seq ASC`,
|
|
79
|
+
args: [runId, fromSeq],
|
|
80
|
+
});
|
|
81
|
+
return rows.map((r) => ({
|
|
82
|
+
seq: Number(r.seq),
|
|
83
|
+
eventData: r.event_data,
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
export async function getRunById(runId) {
|
|
87
|
+
await ensureRunTables();
|
|
88
|
+
const client = getDbExec();
|
|
89
|
+
const { rows } = await client.execute({
|
|
90
|
+
sql: `SELECT id, thread_id, status, started_at FROM agent_runs WHERE id = ?`,
|
|
91
|
+
args: [runId],
|
|
92
|
+
});
|
|
93
|
+
if (rows.length === 0)
|
|
94
|
+
return null;
|
|
95
|
+
const r = rows[0];
|
|
96
|
+
return {
|
|
97
|
+
id: r.id,
|
|
98
|
+
threadId: r.thread_id,
|
|
99
|
+
status: r.status,
|
|
100
|
+
startedAt: Number(r.started_at),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export async function getRunByThread(threadId) {
|
|
104
|
+
await ensureRunTables();
|
|
105
|
+
const client = getDbExec();
|
|
106
|
+
const { rows } = await client.execute({
|
|
107
|
+
sql: `SELECT id, thread_id, status, started_at FROM agent_runs WHERE thread_id = ? AND status = 'running' ORDER BY started_at DESC LIMIT 1`,
|
|
108
|
+
args: [threadId],
|
|
109
|
+
});
|
|
110
|
+
if (rows.length === 0)
|
|
111
|
+
return null;
|
|
112
|
+
const r = rows[0];
|
|
113
|
+
return {
|
|
114
|
+
id: r.id,
|
|
115
|
+
threadId: r.thread_id,
|
|
116
|
+
status: r.status,
|
|
117
|
+
startedAt: Number(r.started_at),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/** Delete completed/errored runs older than the given threshold,
|
|
121
|
+
* and expire stale "running" rows that haven't had activity
|
|
122
|
+
* (e.g. worker crashed before updating status). */
|
|
123
|
+
export async function cleanupOldRuns(olderThanMs) {
|
|
124
|
+
await ensureRunTables();
|
|
125
|
+
const client = getDbExec();
|
|
126
|
+
const cutoff = Date.now() - olderThanMs;
|
|
127
|
+
// Expire stale running rows — if started more than threshold ago,
|
|
128
|
+
// the worker likely crashed. Mark as errored so clients stop waiting.
|
|
129
|
+
await client.execute({
|
|
130
|
+
sql: `UPDATE agent_runs SET status = 'errored', completed_at = ? WHERE status = 'running' AND started_at < ?`,
|
|
131
|
+
args: [Date.now(), cutoff],
|
|
132
|
+
});
|
|
133
|
+
// Delete events for old non-running runs
|
|
134
|
+
await client.execute({
|
|
135
|
+
sql: `DELETE FROM agent_run_events WHERE run_id IN (
|
|
136
|
+
SELECT id FROM agent_runs WHERE status != 'running' AND completed_at < ?
|
|
137
|
+
)`,
|
|
138
|
+
args: [cutoff],
|
|
139
|
+
});
|
|
140
|
+
await client.execute({
|
|
141
|
+
sql: `DELETE FROM agent_runs WHERE status != 'running' AND completed_at < ?`,
|
|
142
|
+
args: [cutoff],
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=run-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-store.js","sourceRoot":"","sources":["../../src/agent/run-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { RunEvent } from "./types.js";
|
|
2
|
+
interface ContentPart {
|
|
3
|
+
type: string;
|
|
4
|
+
text?: string;
|
|
5
|
+
toolCallId?: string;
|
|
6
|
+
toolName?: string;
|
|
7
|
+
argsText?: string;
|
|
8
|
+
args?: Record<string, string>;
|
|
9
|
+
result?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Reconstruct an assistant-ui message from raw agent run events.
|
|
13
|
+
* Mirrors the client-side processEvent logic so the server can persist
|
|
14
|
+
* the assistant's response even if the frontend is disconnected.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildAssistantMessage(events: RunEvent[], runId?: string): {
|
|
17
|
+
id: string;
|
|
18
|
+
role: "assistant";
|
|
19
|
+
content: ContentPart[];
|
|
20
|
+
} | null;
|
|
21
|
+
/**
|
|
22
|
+
* Extract title and preview from a thread runtime export.
|
|
23
|
+
* Isomorphic — works on both server and client.
|
|
24
|
+
*/
|
|
25
|
+
export declare function extractThreadMeta(repo: any): {
|
|
26
|
+
title: string;
|
|
27
|
+
preview: string;
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=thread-data-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-data-builder.d.ts","sourceRoot":"","sources":["../../src/agent/thread-data-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,QAAQ,EAAE,EAClB,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG,IAAI,CA2DlE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAuBA"}
|