@agent-native/core 0.4.5 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -43
- package/dist/a2a/agent-card.d.ts.map +1 -1
- package/dist/a2a/agent-card.js +12 -1
- package/dist/a2a/agent-card.js.map +1 -1
- package/dist/a2a/client.d.ts +18 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +62 -4
- 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 +2 -2
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/index.js +3 -3
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/server.d.ts +11 -2
- package/dist/a2a/server.d.ts.map +1 -1
- package/dist/a2a/server.js +99 -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 +3 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/action.d.ts +80 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +232 -0
- package/dist/action.js.map +1 -0
- package/dist/agent/engine/ai-sdk-engine.d.ts +24 -0
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -0
- package/dist/agent/engine/ai-sdk-engine.js +302 -0
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -0
- package/dist/agent/engine/anthropic-engine.d.ts +24 -0
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -0
- package/dist/agent/engine/anthropic-engine.js +169 -0
- package/dist/agent/engine/anthropic-engine.js.map +1 -0
- package/dist/agent/engine/builtin.d.ts +12 -0
- package/dist/agent/engine/builtin.d.ts.map +1 -0
- package/dist/agent/engine/builtin.js +72 -0
- package/dist/agent/engine/builtin.js.map +1 -0
- package/dist/agent/engine/index.d.ts +9 -0
- package/dist/agent/engine/index.d.ts.map +1 -0
- package/dist/agent/engine/index.js +8 -0
- package/dist/agent/engine/index.js.map +1 -0
- package/dist/agent/engine/registry.d.ts +61 -0
- package/dist/agent/engine/registry.d.ts.map +1 -0
- package/dist/agent/engine/registry.js +101 -0
- package/dist/agent/engine/registry.js.map +1 -0
- package/dist/agent/engine/translate-ai-sdk.d.ts +20 -0
- package/dist/agent/engine/translate-ai-sdk.d.ts.map +1 -0
- package/dist/agent/engine/translate-ai-sdk.js +174 -0
- package/dist/agent/engine/translate-ai-sdk.js.map +1 -0
- package/dist/agent/engine/translate-anthropic.d.ts +23 -0
- package/dist/agent/engine/translate-anthropic.d.ts.map +1 -0
- package/dist/agent/engine/translate-anthropic.js +140 -0
- package/dist/agent/engine/translate-anthropic.js.map +1 -0
- package/dist/agent/engine/types.d.ts +168 -0
- package/dist/agent/engine/types.d.ts.map +1 -0
- package/dist/agent/engine/types.js +13 -0
- package/dist/agent/engine/types.js.map +1 -0
- 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 +69 -7
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +480 -127
- 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 +364 -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 +31 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -0
- package/dist/agent/thread-data-builder.js +91 -0
- package/dist/agent/thread-data-builder.js.map +1 -0
- package/dist/agent/types.d.ts +73 -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 +8 -8
- package/dist/application-state/handlers.d.ts.map +1 -1
- package/dist/application-state/handlers.js +15 -17
- 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 +56 -8
- 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 +42 -0
- package/dist/chat-threads/store.d.ts.map +1 -0
- package/dist/chat-threads/store.js +156 -0
- package/dist/chat-threads/store.js.map +1 -0
- package/dist/cli/create.d.ts +8 -2
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +288 -47
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +49 -9
- 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 +13 -2
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +771 -38
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AgentTaskCard.d.ts +12 -0
- package/dist/client/AgentTaskCard.d.ts.map +1 -0
- package/dist/client/AgentTaskCard.js +146 -0
- package/dist/client/AgentTaskCard.js.map +1 -0
- package/dist/client/AssistantChat.d.ts +36 -3
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +838 -86
- 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 +40 -2
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +630 -59
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/PoweredByBadge.d.ts.map +1 -1
- package/dist/client/PoweredByBadge.js +4 -3
- package/dist/client/PoweredByBadge.js.map +1 -1
- package/dist/client/Turnstile.d.ts.map +1 -1
- package/dist/client/Turnstile.js +2 -3
- package/dist/client/Turnstile.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 +145 -130
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-chat.d.ts +14 -1
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +6 -4
- 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/CodeAgentIndicator.d.ts +14 -0
- package/dist/client/components/CodeAgentIndicator.d.ts.map +1 -0
- package/dist/client/components/CodeAgentIndicator.js +29 -0
- package/dist/client/components/CodeAgentIndicator.js.map +1 -0
- 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 +29 -0
- package/dist/client/composer/MentionPopover.d.ts.map +1 -0
- package/dist/client/composer/MentionPopover.js +160 -0
- package/dist/client/composer/MentionPopover.js.map +1 -0
- package/dist/client/composer/TiptapComposer.d.ts +26 -0
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -0
- package/dist/client/composer/TiptapComposer.js +545 -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 +37 -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 +72 -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/frame-protocol.d.ts +54 -0
- package/dist/client/frame-protocol.d.ts.map +1 -0
- package/dist/client/frame-protocol.js +9 -0
- package/dist/client/frame-protocol.js.map +1 -0
- package/dist/client/frame.d.ts +56 -0
- package/dist/client/frame.d.ts.map +1 -0
- package/dist/client/{harness.js → frame.js} +49 -26
- package/dist/client/frame.js.map +1 -0
- package/dist/client/index.d.ts +15 -6
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +13 -5
- package/dist/client/index.js.map +1 -1
- package/dist/client/integrations/IntegrationCard.d.ts +6 -0
- package/dist/client/integrations/IntegrationCard.d.ts.map +1 -0
- package/dist/client/integrations/IntegrationCard.js +45 -0
- package/dist/client/integrations/IntegrationCard.js.map +1 -0
- package/dist/client/integrations/IntegrationsPanel.d.ts +2 -0
- package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -0
- package/dist/client/integrations/IntegrationsPanel.js +149 -0
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -0
- package/dist/client/integrations/index.d.ts +4 -0
- package/dist/client/integrations/index.d.ts.map +1 -0
- package/dist/client/integrations/index.js +3 -0
- package/dist/client/integrations/index.js.map +1 -0
- package/dist/client/integrations/useIntegrationStatus.d.ts +15 -0
- package/dist/client/integrations/useIntegrationStatus.d.ts.map +1 -0
- package/dist/client/integrations/useIntegrationStatus.js +37 -0
- package/dist/client/integrations/useIntegrationStatus.js.map +1 -0
- package/dist/client/org/InvitationBanner.d.ts +9 -0
- package/dist/client/org/InvitationBanner.d.ts.map +1 -0
- package/dist/client/org/InvitationBanner.js +17 -0
- package/dist/client/org/InvitationBanner.js.map +1 -0
- package/dist/client/org/OrgSwitcher.d.ts +14 -0
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -0
- package/dist/client/org/OrgSwitcher.js +51 -0
- package/dist/client/org/OrgSwitcher.js.map +1 -0
- package/dist/client/org/TeamPage.d.ts +23 -0
- package/dist/client/org/TeamPage.d.ts.map +1 -0
- package/dist/client/org/TeamPage.js +145 -0
- package/dist/client/org/TeamPage.js.map +1 -0
- package/dist/client/org/hooks.d.ts +14 -0
- package/dist/client/org/hooks.d.ts.map +1 -0
- package/dist/client/org/hooks.js +101 -0
- package/dist/client/org/hooks.js.map +1 -0
- package/dist/client/org/index.d.ts +6 -0
- package/dist/client/org/index.d.ts.map +1 -0
- package/dist/client/org/index.js +6 -0
- package/dist/client/org/index.js.map +1 -0
- package/dist/client/resources/ResourceEditor.d.ts +14 -0
- package/dist/client/resources/ResourceEditor.d.ts.map +1 -0
- package/dist/client/resources/ResourceEditor.js +932 -0
- package/dist/client/resources/ResourceEditor.js.map +1 -0
- package/dist/client/resources/ResourceTree.d.ts +17 -0
- package/dist/client/resources/ResourceTree.d.ts.map +1 -0
- package/dist/client/resources/ResourceTree.js +137 -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 +366 -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 +55 -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 +58 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -0
- package/dist/client/sse-event-processor.js +300 -0
- package/dist/client/sse-event-processor.js.map +1 -0
- package/dist/client/terminal/AgentTerminal.d.ts +5 -5
- package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
- package/dist/client/terminal/AgentTerminal.js +25 -20
- package/dist/client/terminal/AgentTerminal.js.map +1 -1
- package/dist/client/use-action.d.ts +51 -0
- package/dist/client/use-action.d.ts.map +1 -0
- package/dist/client/use-action.js +102 -0
- package/dist/client/use-action.js.map +1 -0
- 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-avatar.d.ts +15 -0
- package/dist/client/use-avatar.d.ts.map +1 -0
- package/dist/client/use-avatar.js +116 -0
- package/dist/client/use-avatar.js.map +1 -0
- 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 +191 -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 +41 -12
- package/dist/client/use-dev-mode.js.map +1 -1
- package/dist/client/use-send-to-agent-chat.d.ts +7 -4
- package/dist/client/use-send-to-agent-chat.d.ts.map +1 -1
- package/dist/client/use-send-to-agent-chat.js +31 -10
- package/dist/client/use-send-to-agent-chat.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/collab/awareness.d.ts +41 -0
- package/dist/collab/awareness.d.ts.map +1 -0
- package/dist/collab/awareness.js +82 -0
- package/dist/collab/awareness.js.map +1 -0
- package/dist/collab/client.d.ts +49 -0
- package/dist/collab/client.d.ts.map +1 -0
- package/dist/collab/client.js +250 -0
- package/dist/collab/client.js.map +1 -0
- package/dist/collab/emitter.d.ts +12 -0
- package/dist/collab/emitter.d.ts.map +1 -0
- package/dist/collab/emitter.js +16 -0
- package/dist/collab/emitter.js.map +1 -0
- package/dist/collab/index.d.ts +7 -0
- package/dist/collab/index.d.ts.map +1 -0
- package/dist/collab/index.js +14 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/routes.d.ts +69 -0
- package/dist/collab/routes.d.ts.map +1 -0
- package/dist/collab/routes.js +98 -0
- package/dist/collab/routes.js.map +1 -0
- package/dist/collab/storage.d.ts +18 -0
- package/dist/collab/storage.d.ts.map +1 -0
- package/dist/collab/storage.js +94 -0
- package/dist/collab/storage.js.map +1 -0
- package/dist/collab/text-to-yjs.d.ts +23 -0
- package/dist/collab/text-to-yjs.d.ts.map +1 -0
- package/dist/collab/text-to-yjs.js +63 -0
- package/dist/collab/text-to-yjs.js.map +1 -0
- package/dist/collab/xml-ops.d.ts +20 -0
- package/dist/collab/xml-ops.d.ts.map +1 -0
- package/dist/collab/xml-ops.js +59 -0
- package/dist/collab/xml-ops.js.map +1 -0
- package/dist/collab/ydoc-manager.d.ts +52 -0
- package/dist/collab/ydoc-manager.d.ts.map +1 -0
- package/dist/collab/ydoc-manager.js +154 -0
- package/dist/collab/ydoc-manager.js.map +1 -0
- 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 +45 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +289 -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 +9 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +67 -41
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.d.ts +52 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +72 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/deploy/build.js +636 -42
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/route-discovery.d.ts +25 -3
- package/dist/deploy/route-discovery.d.ts.map +1 -1
- package/dist/deploy/route-discovery.js +135 -24
- package/dist/deploy/route-discovery.js.map +1 -1
- package/dist/index.browser.d.ts +3 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +5 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/adapters/slack.d.ts +10 -0
- package/dist/integrations/adapters/slack.d.ts.map +1 -0
- package/dist/integrations/adapters/slack.js +215 -0
- package/dist/integrations/adapters/slack.js.map +1 -0
- package/dist/integrations/adapters/telegram.d.ts +12 -0
- package/dist/integrations/adapters/telegram.d.ts.map +1 -0
- package/dist/integrations/adapters/telegram.js +184 -0
- package/dist/integrations/adapters/telegram.js.map +1 -0
- package/dist/integrations/adapters/whatsapp.d.ts +14 -0
- package/dist/integrations/adapters/whatsapp.d.ts.map +1 -0
- package/dist/integrations/adapters/whatsapp.js +205 -0
- package/dist/integrations/adapters/whatsapp.js.map +1 -0
- package/dist/integrations/config-store.d.ts +24 -0
- package/dist/integrations/config-store.d.ts.map +1 -0
- package/dist/integrations/config-store.js +92 -0
- package/dist/integrations/config-store.js.map +1 -0
- package/dist/integrations/index.d.ts +8 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +10 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/plugin.d.ts +20 -0
- package/dist/integrations/plugin.d.ts.map +1 -0
- package/dist/integrations/plugin.js +213 -0
- package/dist/integrations/plugin.js.map +1 -0
- package/dist/integrations/thread-mapping-store.d.ts +25 -0
- package/dist/integrations/thread-mapping-store.d.ts.map +1 -0
- package/dist/integrations/thread-mapping-store.js +95 -0
- package/dist/integrations/thread-mapping-store.js.map +1 -0
- package/dist/integrations/types.d.ts +111 -0
- package/dist/integrations/types.d.ts.map +1 -0
- package/dist/integrations/types.js +2 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/integrations/webhook-handler.d.ts +31 -0
- package/dist/integrations/webhook-handler.d.ts.map +1 -0
- package/dist/integrations/webhook-handler.js +210 -0
- package/dist/integrations/webhook-handler.js.map +1 -0
- package/dist/jobs/cron.d.ts +14 -0
- package/dist/jobs/cron.d.ts.map +1 -0
- package/dist/jobs/cron.js +100 -0
- package/dist/jobs/cron.js.map +1 -0
- package/dist/jobs/index.d.ts +4 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +4 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/scheduler.d.ts +29 -0
- package/dist/jobs/scheduler.d.ts.map +1 -0
- package/dist/jobs/scheduler.js +205 -0
- package/dist/jobs/scheduler.js.map +1 -0
- package/dist/jobs/tools.d.ts +3 -0
- package/dist/jobs/tools.d.ts.map +1 -0
- package/dist/jobs/tools.js +192 -0
- package/dist/jobs/tools.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +26 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +182 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/oauth-tokens/index.d.ts +1 -1
- package/dist/oauth-tokens/index.d.ts.map +1 -1
- package/dist/oauth-tokens/index.js +1 -1
- package/dist/oauth-tokens/index.js.map +1 -1
- package/dist/oauth-tokens/store.d.ts +5 -0
- package/dist/oauth-tokens/store.d.ts.map +1 -1
- package/dist/oauth-tokens/store.js +67 -82
- package/dist/oauth-tokens/store.js.map +1 -1
- package/dist/org/context.d.ts +11 -0
- package/dist/org/context.d.ts.map +1 -0
- package/dist/org/context.js +61 -0
- package/dist/org/context.js.map +1 -0
- package/dist/org/handlers.d.ts +66 -0
- package/dist/org/handlers.d.ts.map +1 -0
- package/dist/org/handlers.js +306 -0
- package/dist/org/handlers.js.map +1 -0
- package/dist/org/index.d.ts +7 -0
- package/dist/org/index.d.ts.map +1 -0
- package/dist/org/index.js +11 -0
- package/dist/org/index.js.map +1 -0
- package/dist/org/migrations.d.ts +10 -0
- package/dist/org/migrations.d.ts.map +1 -0
- package/dist/org/migrations.js +39 -0
- package/dist/org/migrations.js.map +1 -0
- package/dist/org/plugin.d.ts +26 -0
- package/dist/org/plugin.d.ts.map +1 -0
- package/dist/org/plugin.js +94 -0
- package/dist/org/plugin.js.map +1 -0
- package/dist/org/schema.d.ts +301 -0
- package/dist/org/schema.d.ts.map +1 -0
- package/dist/org/schema.js +23 -0
- package/dist/org/schema.js.map +1 -0
- package/dist/org/types.d.ts +42 -0
- package/dist/org/types.d.ts.map +1 -0
- package/dist/org/types.js +5 -0
- package/dist/org/types.js.map +1 -0
- 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 +54 -0
- package/dist/resources/handlers.d.ts.map +1 -0
- package/dist/resources/handlers.js +292 -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 +40 -0
- package/dist/resources/store.d.ts.map +1 -0
- package/dist/resources/store.js +497 -0
- package/dist/resources/store.js.map +1 -0
- package/dist/scripts/agent-engines/list-agent-engines.d.ts +7 -0
- package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -0
- package/dist/scripts/agent-engines/list-agent-engines.js +42 -0
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -0
- package/dist/scripts/agent-engines/set-agent-engine.d.ts +7 -0
- package/dist/scripts/agent-engines/set-agent-engine.d.ts.map +1 -0
- package/dist/scripts/agent-engines/set-agent-engine.js +57 -0
- package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -0
- package/dist/scripts/agent-engines/test-agent-engine.d.ts +7 -0
- package/dist/scripts/agent-engines/test-agent-engine.d.ts.map +1 -0
- package/dist/scripts/agent-engines/test-agent-engine.js +102 -0
- package/dist/scripts/agent-engines/test-agent-engine.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 +111 -0
- package/dist/scripts/call-agent.js.map +1 -0
- package/dist/scripts/chat/index.d.ts +2 -0
- package/dist/scripts/chat/index.d.ts.map +1 -0
- package/dist/scripts/chat/index.js +5 -0
- package/dist/scripts/chat/index.js.map +1 -0
- package/dist/scripts/chat/open-chat.d.ts +11 -0
- package/dist/scripts/chat/open-chat.d.ts.map +1 -0
- package/dist/scripts/chat/open-chat.js +48 -0
- package/dist/scripts/chat/open-chat.js.map +1 -0
- package/dist/scripts/chat/search-chats.d.ts +10 -0
- package/dist/scripts/chat/search-chats.d.ts.map +1 -0
- package/dist/scripts/chat/search-chats.js +89 -0
- package/dist/scripts/chat/search-chats.js.map +1 -0
- package/dist/scripts/core-scripts.d.ts.map +1 -1
- package/dist/scripts/core-scripts.js +4 -0
- package/dist/scripts/core-scripts.js.map +1 -1
- package/dist/scripts/db/check-scoping.d.ts +14 -0
- package/dist/scripts/db/check-scoping.d.ts.map +1 -0
- package/dist/scripts/db/check-scoping.js +174 -0
- package/dist/scripts/db/check-scoping.js.map +1 -0
- package/dist/scripts/db/exec.d.ts +7 -2
- package/dist/scripts/db/exec.d.ts.map +1 -1
- package/dist/scripts/db/exec.js +143 -36
- package/dist/scripts/db/exec.js.map +1 -1
- package/dist/scripts/db/index.d.ts.map +1 -1
- package/dist/scripts/db/index.js +2 -0
- package/dist/scripts/db/index.js.map +1 -1
- package/dist/scripts/db/patch.d.ts +50 -0
- package/dist/scripts/db/patch.d.ts.map +1 -0
- package/dist/scripts/db/patch.js +392 -0
- package/dist/scripts/db/patch.js.map +1 -0
- 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 +42 -0
- package/dist/scripts/db/scoping.d.ts.map +1 -0
- package/dist/scripts/db/scoping.js +216 -0
- package/dist/scripts/db/scoping.js.map +1 -0
- package/dist/scripts/dev/index.d.ts +2 -2
- package/dist/scripts/dev/index.d.ts.map +1 -1
- package/dist/scripts/dev/index.js +65 -2
- package/dist/scripts/dev/index.js.map +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/parse-args.d.ts +14 -0
- package/dist/scripts/parse-args.d.ts.map +1 -0
- package/dist/scripts/parse-args.js +45 -0
- package/dist/scripts/parse-args.js.map +1 -0
- 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 +78 -29
- package/dist/scripts/runner.js.map +1 -1
- package/dist/scripts/utils.d.ts +5 -10
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +7 -43
- 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 +257 -0
- package/dist/server/action-discovery.js.map +1 -0
- package/dist/server/action-routes.d.ts +15 -0
- package/dist/server/action-routes.d.ts.map +1 -0
- package/dist/server/action-routes.js +105 -0
- package/dist/server/action-routes.js.map +1 -0
- package/dist/server/agent-chat-plugin.d.ts +32 -23
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +1983 -39
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.d.ts +21 -0
- package/dist/server/agent-discovery.d.ts.map +1 -0
- package/dist/server/agent-discovery.js +197 -0
- package/dist/server/agent-discovery.js.map +1 -0
- package/dist/server/agent-teams.d.ts +70 -0
- package/dist/server/agent-teams.d.ts.map +1 -0
- package/dist/server/agent-teams.js +367 -0
- package/dist/server/agent-teams.js.map +1 -0
- package/dist/server/agents-bundle.d.ts +87 -0
- package/dist/server/agents-bundle.d.ts.map +1 -0
- package/dist/server/agents-bundle.js +231 -0
- package/dist/server/agents-bundle.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 +13 -3
- package/dist/server/auth-plugin.js.map +1 -1
- package/dist/server/auth.d.ts +54 -31
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +671 -294
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts +72 -0
- package/dist/server/better-auth-instance.d.ts.map +1 -0
- package/dist/server/better-auth-instance.js +144 -0
- package/dist/server/better-auth-instance.js.map +1 -0
- package/dist/server/collab-plugin.d.ts +29 -0
- package/dist/server/collab-plugin.d.ts.map +1 -0
- package/dist/server/collab-plugin.js +85 -0
- package/dist/server/collab-plugin.js.map +1 -0
- package/dist/server/core-routes-plugin.d.ts +54 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -0
- package/dist/server/core-routes-plugin.js +195 -0
- package/dist/server/core-routes-plugin.js.map +1 -0
- package/dist/server/create-server.d.ts +5 -5
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +44 -21
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/framework-request-handler.d.ts +47 -0
- package/dist/server/framework-request-handler.d.ts.map +1 -0
- package/dist/server/framework-request-handler.js +168 -0
- package/dist/server/framework-request-handler.js.map +1 -0
- package/dist/server/google-auth-plugin.d.ts +4 -0
- package/dist/server/google-auth-plugin.d.ts.map +1 -1
- package/dist/server/google-auth-plugin.js +16 -15
- 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 +209 -0
- package/dist/server/google-oauth.js.map +1 -0
- package/dist/server/h3-helpers.d.ts +23 -0
- package/dist/server/h3-helpers.d.ts.map +1 -0
- package/dist/server/h3-helpers.js +37 -0
- package/dist/server/h3-helpers.js.map +1 -0
- package/dist/server/index.d.ts +17 -5
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +19 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/local-migration.d.ts +32 -0
- package/dist/server/local-migration.d.ts.map +1 -0
- package/dist/server/local-migration.js +205 -0
- package/dist/server/local-migration.js.map +1 -0
- package/dist/server/oauth-helpers.d.ts +14 -0
- package/dist/server/oauth-helpers.d.ts.map +1 -0
- package/dist/server/oauth-helpers.js +23 -0
- package/dist/server/oauth-helpers.js.map +1 -0
- package/dist/server/onboarding-html.d.ts +24 -0
- package/dist/server/onboarding-html.d.ts.map +1 -0
- package/dist/server/onboarding-html.js +347 -0
- package/dist/server/onboarding-html.js.map +1 -0
- package/dist/server/poll.d.ts +45 -0
- package/dist/server/poll.d.ts.map +1 -0
- package/dist/server/poll.js +96 -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 +75 -0
- package/dist/server/resources-plugin.js.map +1 -0
- package/dist/server/schema-prompt.d.ts +16 -0
- package/dist/server/schema-prompt.d.ts.map +1 -0
- package/dist/server/schema-prompt.js +275 -0
- package/dist/server/schema-prompt.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 +4 -21
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +2 -30
- package/dist/server/sse.js.map +1 -1
- package/dist/server/ssr-handler.d.ts +6 -0
- package/dist/server/ssr-handler.d.ts.map +1 -0
- package/dist/server/ssr-handler.js +55 -0
- package/dist/server/ssr-handler.js.map +1 -0
- package/dist/settings/handlers.d.ts +6 -6
- package/dist/settings/handlers.d.ts.map +1 -1
- package/dist/settings/handlers.js +9 -6
- package/dist/settings/handlers.js.map +1 -1
- package/dist/settings/index.d.ts +2 -1
- package/dist/settings/index.d.ts.map +1 -1
- package/dist/settings/index.js +2 -0
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/org-settings.d.ts +22 -0
- package/dist/settings/org-settings.d.ts.map +1 -0
- package/dist/settings/org-settings.js +45 -0
- package/dist/settings/org-settings.js.map +1 -0
- 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/shared/agent-chat.d.ts +5 -5
- package/dist/shared/agent-chat.d.ts.map +1 -1
- package/dist/shared/agent-chat.js +8 -8
- package/dist/shared/agent-chat.js.map +1 -1
- package/dist/shared/agent-env.d.ts +1 -1
- package/dist/shared/agent-env.js +1 -1
- package/dist/shared/runtime.d.ts +14 -0
- package/dist/shared/runtime.d.ts.map +1 -0
- package/dist/shared/runtime.js +25 -0
- package/dist/shared/runtime.js.map +1 -0
- 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/templates/default/.agents/skills/actions/SKILL.md +142 -0
- package/dist/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
- package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +50 -0
- package/dist/templates/default/.agents/skills/create-skill/SKILL.md +167 -0
- package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +90 -0
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +69 -0
- package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
- package/dist/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
- package/dist/templates/default/.agents/skills/security/SKILL.md +108 -0
- package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +79 -0
- package/{src/templates/default/.agents/skills/files-as-database → dist/templates/default/.agents/skills/storing-data}/SKILL.md +2 -2
- package/dist/templates/default/.claude/settings.json +100 -0
- package/dist/templates/default/.env.example +5 -0
- package/dist/templates/default/.prettierrc +5 -0
- package/dist/templates/default/AGENTS.md +110 -0
- package/dist/templates/default/DEVELOPING.md +117 -0
- package/dist/templates/default/_gitignore +37 -0
- package/{src/templates/default/scripts → dist/templates/default/actions}/hello.ts +1 -1
- package/dist/templates/default/actions/navigate.ts +53 -0
- package/dist/templates/default/actions/view-screen.ts +39 -0
- package/dist/templates/default/app/entry.client.tsx +4 -0
- package/dist/templates/default/app/entry.server.tsx +56 -0
- package/dist/templates/default/app/global.css +95 -0
- package/dist/templates/default/app/lib/utils.ts +1 -0
- package/dist/templates/default/app/root.tsx +107 -0
- package/dist/templates/default/app/routes/_index.tsx +62 -0
- package/dist/templates/default/app/routes.ts +4 -0
- package/dist/templates/default/app/vite-env.d.ts +6 -0
- package/dist/templates/default/components.json +20 -0
- package/dist/templates/default/data/.gitkeep +0 -0
- package/dist/templates/default/data/sync-config.json +1 -0
- package/dist/templates/default/learnings.defaults.md +5 -0
- package/dist/templates/default/learnings.md +0 -0
- package/dist/templates/default/package.json +46 -0
- package/dist/templates/default/postcss.config.js +6 -0
- package/dist/templates/default/public/icon-180.svg +4 -0
- package/dist/templates/default/public/icon-192.svg +4 -0
- package/dist/templates/default/public/icon-512.svg +4 -0
- package/dist/templates/default/public/manifest.json +13 -0
- package/dist/templates/default/react-router.config.ts +6 -0
- package/dist/templates/default/server/middleware/auth.ts +15 -0
- package/dist/templates/default/server/plugins/.gitkeep +0 -0
- package/dist/templates/default/server/routes/[...page].get.ts +5 -0
- package/dist/templates/default/server/routes/api/hello.get.ts +5 -0
- package/dist/templates/default/shared/api.ts +6 -0
- package/dist/templates/default/ssr-entry.ts +20 -0
- package/dist/templates/default/tailwind.config.ts +7 -0
- package/dist/templates/default/tsconfig.json +11 -0
- package/dist/templates/default/vite.config.ts +6 -0
- package/dist/templates/templates/default/.agents/skills/actions/SKILL.md +142 -0
- package/dist/templates/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
- package/dist/templates/templates/default/.agents/skills/capture-learnings/SKILL.md +50 -0
- package/dist/templates/templates/default/.agents/skills/create-skill/SKILL.md +167 -0
- package/dist/templates/templates/default/.agents/skills/delegate-to-agent/SKILL.md +90 -0
- package/dist/templates/templates/default/.agents/skills/frontend-design/SKILL.md +69 -0
- package/dist/templates/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -0
- package/dist/templates/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
- package/dist/templates/templates/default/.agents/skills/security/SKILL.md +108 -0
- package/dist/templates/templates/default/.agents/skills/self-modifying-code/SKILL.md +79 -0
- package/dist/templates/templates/default/.agents/skills/storing-data/SKILL.md +110 -0
- package/dist/templates/templates/default/.claude/settings.json +100 -0
- package/dist/templates/templates/default/.env.example +5 -0
- package/dist/templates/templates/default/.ignore +0 -0
- package/dist/templates/templates/default/.prettierrc +5 -0
- package/dist/templates/templates/default/AGENTS.md +110 -0
- package/dist/templates/templates/default/DEVELOPING.md +117 -0
- package/dist/templates/templates/default/_gitignore +37 -0
- package/dist/templates/templates/default/actions/hello.ts +20 -0
- package/dist/templates/templates/default/actions/navigate.ts +53 -0
- package/dist/templates/templates/default/actions/run.ts +2 -0
- package/dist/templates/templates/default/actions/view-screen.ts +39 -0
- package/dist/templates/templates/default/app/entry.client.tsx +4 -0
- package/dist/templates/templates/default/app/entry.server.tsx +56 -0
- package/dist/templates/templates/default/app/global.css +95 -0
- package/dist/templates/templates/default/app/lib/utils.ts +1 -0
- package/dist/templates/templates/default/app/root.tsx +107 -0
- package/dist/templates/templates/default/app/routes/_index.tsx +62 -0
- package/dist/templates/templates/default/app/routes.ts +4 -0
- package/dist/templates/templates/default/app/vite-env.d.ts +6 -0
- package/dist/templates/templates/default/components.json +20 -0
- package/dist/templates/templates/default/data/.gitkeep +0 -0
- package/dist/templates/templates/default/data/sync-config.json +1 -0
- package/dist/templates/templates/default/learnings.defaults.md +5 -0
- package/dist/templates/templates/default/learnings.md +0 -0
- package/dist/templates/templates/default/package.json +46 -0
- package/dist/templates/templates/default/postcss.config.js +6 -0
- package/dist/templates/templates/default/public/icon-180.svg +4 -0
- package/dist/templates/templates/default/public/icon-192.svg +4 -0
- package/dist/templates/templates/default/public/icon-512.svg +4 -0
- package/dist/templates/templates/default/public/manifest.json +13 -0
- package/dist/templates/templates/default/react-router.config.ts +6 -0
- package/dist/templates/templates/default/server/middleware/auth.ts +15 -0
- package/dist/templates/templates/default/server/plugins/.gitkeep +0 -0
- package/dist/templates/templates/default/server/routes/[...page].get.ts +5 -0
- package/dist/templates/templates/default/server/routes/api/hello.get.ts +5 -0
- package/dist/templates/templates/default/shared/api.ts +6 -0
- package/dist/templates/templates/default/ssr-entry.ts +20 -0
- package/dist/templates/templates/default/tailwind.config.ts +7 -0
- package/dist/templates/templates/default/tsconfig.json +11 -0
- package/dist/templates/templates/default/vite.config.ts +6 -0
- package/dist/terminal/cli-registry.d.ts +2 -2
- package/dist/terminal/cli-registry.d.ts.map +1 -1
- package/dist/terminal/cli-registry.js +8 -8
- package/dist/terminal/cli-registry.js.map +1 -1
- package/dist/terminal/pty-server.d.ts +1 -1
- package/dist/terminal/pty-server.d.ts.map +1 -1
- package/dist/terminal/pty-server.js +94 -18
- package/dist/terminal/pty-server.js.map +1 -1
- package/dist/terminal/terminal-plugin.d.ts +1 -10
- package/dist/terminal/terminal-plugin.d.ts.map +1 -1
- package/dist/terminal/terminal-plugin.js +77 -28
- package/dist/terminal/terminal-plugin.js.map +1 -1
- package/dist/usage/store.d.ts +29 -0
- package/dist/usage/store.d.ts.map +1 -0
- package/dist/usage/store.js +102 -0
- package/dist/usage/store.js.map +1 -0
- package/dist/vite/action-types-plugin.d.ts +13 -0
- package/dist/vite/action-types-plugin.d.ts.map +1 -0
- package/dist/vite/action-types-plugin.js +132 -0
- package/dist/vite/action-types-plugin.js.map +1 -0
- package/dist/vite/agents-bundle-plugin.d.ts +3 -0
- package/dist/vite/agents-bundle-plugin.d.ts.map +1 -0
- package/dist/vite/agents-bundle-plugin.js +87 -0
- package/dist/vite/agents-bundle-plugin.js.map +1 -0
- package/dist/vite/client.d.ts +5 -0
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +310 -19
- package/dist/vite/client.js.map +1 -1
- package/dist/vite/index.d.ts +2 -1
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +2 -1
- package/dist/vite/index.js.map +1 -1
- package/package.json +78 -14
- package/src/templates/default/.agents/skills/actions/SKILL.md +142 -0
- package/src/templates/default/.agents/skills/agent-engines/SKILL.md +127 -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/real-time-collab/SKILL.md +183 -0
- package/src/templates/default/.agents/skills/real-time-sync/SKILL.md +112 -0
- package/src/templates/default/.agents/skills/security/SKILL.md +108 -0
- package/src/templates/default/.agents/skills/storing-data/SKILL.md +110 -0
- package/src/templates/default/.claude/settings.json +13 -0
- package/src/templates/default/AGENTS.md +72 -164
- package/src/templates/default/DEVELOPING.md +117 -0
- package/src/templates/default/actions/hello.ts +20 -0
- package/src/templates/default/actions/navigate.ts +53 -0
- package/src/templates/default/actions/run.ts +2 -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 +6 -2
- package/src/templates/default/server/middleware/auth.ts +15 -0
- package/src/templates/default/server/plugins/.gitkeep +0 -0
- package/src/templates/default/server/routes/[...page].get.ts +2 -9
- package/src/templates/default/ssr-entry.ts +20 -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/adapters/convex/adapter.d.ts +0 -24
- package/dist/adapters/convex/adapter.d.ts.map +0 -1
- package/dist/adapters/convex/adapter.js +0 -125
- package/dist/adapters/convex/adapter.js.map +0 -1
- package/dist/adapters/convex/index.d.ts +0 -4
- package/dist/adapters/convex/index.d.ts.map +0 -1
- package/dist/adapters/convex/index.js +0 -3
- package/dist/adapters/convex/index.js.map +0 -1
- package/dist/adapters/drizzle/adapter.d.ts +0 -36
- package/dist/adapters/drizzle/adapter.d.ts.map +0 -1
- package/dist/adapters/drizzle/adapter.js +0 -210
- package/dist/adapters/drizzle/adapter.js.map +0 -1
- package/dist/adapters/drizzle/index.d.ts +0 -3
- package/dist/adapters/drizzle/index.d.ts.map +0 -1
- package/dist/adapters/drizzle/index.js +0 -3
- package/dist/adapters/drizzle/index.js.map +0 -1
- package/dist/adapters/drizzle/schema.d.ts +0 -146
- package/dist/adapters/drizzle/schema.d.ts.map +0 -1
- package/dist/adapters/drizzle/schema.js +0 -20
- package/dist/adapters/drizzle/schema.js.map +0 -1
- package/dist/adapters/firestore/adapter.d.ts +0 -48
- package/dist/adapters/firestore/adapter.d.ts.map +0 -1
- package/dist/adapters/firestore/adapter.js +0 -62
- package/dist/adapters/firestore/adapter.js.map +0 -1
- package/dist/adapters/firestore/index.d.ts +0 -4
- package/dist/adapters/firestore/index.d.ts.map +0 -1
- package/dist/adapters/firestore/index.js +0 -3
- package/dist/adapters/firestore/index.js.map +0 -1
- package/dist/adapters/supabase/adapter.d.ts +0 -43
- package/dist/adapters/supabase/adapter.d.ts.map +0 -1
- package/dist/adapters/supabase/adapter.js +0 -137
- package/dist/adapters/supabase/adapter.js.map +0 -1
- package/dist/adapters/supabase/index.d.ts +0 -3
- package/dist/adapters/supabase/index.d.ts.map +0 -1
- package/dist/adapters/supabase/index.js +0 -3
- package/dist/adapters/supabase/index.js.map +0 -1
- package/dist/adapters/sync/config.d.ts +0 -40
- package/dist/adapters/sync/config.d.ts.map +0 -1
- package/dist/adapters/sync/config.js +0 -209
- package/dist/adapters/sync/config.js.map +0 -1
- package/dist/adapters/sync/create-file-sync.d.ts +0 -32
- package/dist/adapters/sync/create-file-sync.d.ts.map +0 -1
- package/dist/adapters/sync/create-file-sync.js +0 -218
- package/dist/adapters/sync/create-file-sync.js.map +0 -1
- package/dist/adapters/sync/file-sync.d.ts +0 -94
- package/dist/adapters/sync/file-sync.d.ts.map +0 -1
- package/dist/adapters/sync/file-sync.js +0 -671
- package/dist/adapters/sync/file-sync.js.map +0 -1
- package/dist/adapters/sync/index.d.ts +0 -6
- package/dist/adapters/sync/index.d.ts.map +0 -1
- package/dist/adapters/sync/index.js +0 -6
- package/dist/adapters/sync/index.js.map +0 -1
- package/dist/adapters/sync/merge.d.ts +0 -21
- package/dist/adapters/sync/merge.d.ts.map +0 -1
- package/dist/adapters/sync/merge.js +0 -132
- package/dist/adapters/sync/merge.js.map +0 -1
- package/dist/adapters/sync/types.d.ts +0 -62
- package/dist/adapters/sync/types.d.ts.map +0 -1
- package/dist/adapters/sync/types.js +0 -23
- package/dist/adapters/sync/types.js.map +0 -1
- package/dist/client/harness.d.ts +0 -48
- package/dist/client/harness.d.ts.map +0 -1
- package/dist/client/harness.js.map +0 -1
- package/dist/client/use-file-sync-status.d.ts +0 -21
- package/dist/client/use-file-sync-status.d.ts.map +0 -1
- package/dist/client/use-file-sync-status.js +0 -65
- package/dist/client/use-file-sync-status.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/dist/server/default-watcher.d.ts +0 -17
- package/dist/server/default-watcher.d.ts.map +0 -1
- package/dist/server/default-watcher.js +0 -37
- package/dist/server/default-watcher.js.map +0 -1
- package/dist/server/file-sync-plugin.d.ts +0 -7
- package/dist/server/file-sync-plugin.d.ts.map +0 -1
- package/dist/server/file-sync-plugin.js +0 -38
- package/dist/server/file-sync-plugin.js.map +0 -1
- package/dist/vite/dev-api-server.d.ts +0 -10
- package/dist/vite/dev-api-server.d.ts.map +0 -1
- package/dist/vite/dev-api-server.js +0 -160
- package/dist/vite/dev-api-server.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/application-state/.gitkeep → dist/templates/default/.ignore} +0 -0
- /package/{src/templates/default/scripts → dist/templates/default/actions}/run.ts +0 -0
package/dist/deploy/build.js
CHANGED
|
@@ -16,13 +16,12 @@ import path from "path";
|
|
|
16
16
|
import fs from "fs";
|
|
17
17
|
import { execFileSync } from "child_process";
|
|
18
18
|
import { createRequire } from "module";
|
|
19
|
-
import { discoverApiRoutes, discoverPlugins, } from "./route-discovery.js";
|
|
19
|
+
import { discoverApiRoutes, discoverPlugins, discoverActionFiles, getMissingDefaultPlugins, DEFAULT_PLUGIN_REGISTRY, } from "./route-discovery.js";
|
|
20
20
|
const cwd = process.cwd();
|
|
21
21
|
const preset = process.env.NITRO_PRESET || "node";
|
|
22
22
|
/** Plugins that require Node.js runtime and cannot run on edge/serverless */
|
|
23
23
|
const NODE_ONLY_PLUGINS = new Set([
|
|
24
24
|
"terminal", // PTY requires child_process
|
|
25
|
-
"file-sync", // chokidar requires fs watchers
|
|
26
25
|
]);
|
|
27
26
|
function isNodeOnlyPlugin(filePath) {
|
|
28
27
|
const basename = path.basename(filePath, path.extname(filePath));
|
|
@@ -31,15 +30,33 @@ function isNodeOnlyPlugin(filePath) {
|
|
|
31
30
|
/**
|
|
32
31
|
* Generate the worker entry source code that wires up H3 + React Router SSR.
|
|
33
32
|
*/
|
|
34
|
-
function generateWorkerEntry(routes, pluginPaths) {
|
|
33
|
+
function generateWorkerEntry(routes, pluginPaths, defaultPluginStems = [], actions = []) {
|
|
35
34
|
const routeImports = [];
|
|
36
35
|
const routeRegistrations = [];
|
|
37
36
|
for (let i = 0; i < routes.length; i++) {
|
|
38
37
|
const r = routes[i];
|
|
39
38
|
const varName = `route_${i}`;
|
|
40
|
-
// Use the absolute path for the import
|
|
41
39
|
routeImports.push(`import ${varName} from ${JSON.stringify(r.absPath)};`);
|
|
42
|
-
routeRegistrations.push(`
|
|
40
|
+
routeRegistrations.push(` app.on(${JSON.stringify(r.method.toUpperCase())}, ${JSON.stringify(r.route)}, ${varName});`);
|
|
41
|
+
}
|
|
42
|
+
// Action route imports and registrations
|
|
43
|
+
const actionImports = [];
|
|
44
|
+
const actionRegistrations = [];
|
|
45
|
+
for (let i = 0; i < actions.length; i++) {
|
|
46
|
+
const a = actions[i];
|
|
47
|
+
const varName = `action_${i}`;
|
|
48
|
+
actionImports.push(`import ${varName} from ${JSON.stringify(a.absPath)};`);
|
|
49
|
+
const routePath = `/_agent-native/actions/${a.name}`;
|
|
50
|
+
actionRegistrations.push(` app.on(${JSON.stringify(a.method.toUpperCase())}, ${JSON.stringify(routePath)}, defineEventHandler(async (event) => {
|
|
51
|
+
const params = ${a.method === "get" ? "Object.fromEntries(event.url.searchParams)" : "(await readBody(event)) ?? {}"};
|
|
52
|
+
try {
|
|
53
|
+
const result = await ${varName}.run(params);
|
|
54
|
+
if (typeof result === "string") { try { return JSON.parse(result); } catch { return result; } }
|
|
55
|
+
return result;
|
|
56
|
+
} catch (err) {
|
|
57
|
+
return new Response(JSON.stringify({ error: err?.message || "Action failed" }), { status: err?.message?.startsWith("Invalid action parameters:") ? 400 : 500, headers: { "Content-Type": "application/json" } });
|
|
58
|
+
}
|
|
59
|
+
}));`);
|
|
43
60
|
}
|
|
44
61
|
// Filter out Node-only plugins
|
|
45
62
|
const edgePlugins = pluginPaths.filter((p) => !isNodeOnlyPlugin(p));
|
|
@@ -49,18 +66,34 @@ function generateWorkerEntry(routes, pluginPaths) {
|
|
|
49
66
|
const varName = `plugin_${i}`;
|
|
50
67
|
pluginImports.push(`import ${varName} from ${JSON.stringify(edgePlugins[i])};`);
|
|
51
68
|
pluginCalls.push(` if (typeof ${varName} === "function") {
|
|
52
|
-
await ${varName}(
|
|
69
|
+
await ${varName}(nitroApp);
|
|
70
|
+
}`);
|
|
71
|
+
}
|
|
72
|
+
// Auto-mounted default plugins (from core, for missing plugin files)
|
|
73
|
+
const edgeDefaultStems = defaultPluginStems.filter((stem) => !NODE_ONLY_PLUGINS.has(stem));
|
|
74
|
+
for (let i = 0; i < edgeDefaultStems.length; i++) {
|
|
75
|
+
const stem = edgeDefaultStems[i];
|
|
76
|
+
const exportName = DEFAULT_PLUGIN_REGISTRY[stem];
|
|
77
|
+
if (!exportName)
|
|
78
|
+
continue;
|
|
79
|
+
const varName = `defaultPlugin_${i}`;
|
|
80
|
+
pluginImports.push(`import { ${exportName} as ${varName} } from "@agent-native/core/server";`);
|
|
81
|
+
pluginCalls.push(` if (typeof ${varName} === "function") {
|
|
82
|
+
await ${varName}(nitroApp);
|
|
53
83
|
}`);
|
|
54
84
|
}
|
|
55
85
|
return `
|
|
56
86
|
// Auto-generated worker entry point for ${preset}
|
|
57
|
-
import {
|
|
87
|
+
import { H3, defineEventHandler, readBody } from "h3";
|
|
58
88
|
import { createRequestHandler } from "react-router";
|
|
59
89
|
import * as serverBuild from "./server-build.js";
|
|
60
90
|
|
|
61
91
|
// API route handlers
|
|
62
92
|
${routeImports.join("\n")}
|
|
63
93
|
|
|
94
|
+
// Action handlers (auto-discovered from actions/)
|
|
95
|
+
${actionImports.join("\n")}
|
|
96
|
+
|
|
64
97
|
// Server plugins
|
|
65
98
|
${pluginImports.join("\n")}
|
|
66
99
|
|
|
@@ -69,45 +102,55 @@ let _handler;
|
|
|
69
102
|
async function getHandler() {
|
|
70
103
|
if (_handler) return _handler;
|
|
71
104
|
|
|
72
|
-
const app =
|
|
73
|
-
|
|
105
|
+
const app = new H3();
|
|
106
|
+
|
|
107
|
+
// Build a fake nitroApp surface so framework plugins (which expect
|
|
108
|
+
// \`nitroApp.h3["~middleware"]\`) can register routes via getH3App().
|
|
109
|
+
const noop = () => {};
|
|
110
|
+
const nitroApp = {
|
|
111
|
+
h3: app,
|
|
112
|
+
hooks: { hook: noop, callHook: noop, hookOnce: noop },
|
|
113
|
+
captureError: noop,
|
|
114
|
+
};
|
|
74
115
|
|
|
75
|
-
// CORS
|
|
116
|
+
// CORS — applied as global middleware via .use(handler)
|
|
76
117
|
app.use(defineEventHandler((event) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
118
|
+
if (event.req.method === "OPTIONS") {
|
|
119
|
+
return new Response(null, {
|
|
120
|
+
status: 204,
|
|
121
|
+
headers: {
|
|
122
|
+
"Access-Control-Allow-Origin": "*",
|
|
123
|
+
"Access-Control-Allow-Methods": "GET,POST,PUT,PATCH,DELETE,OPTIONS",
|
|
124
|
+
"Access-Control-Allow-Headers": "Content-Type,Authorization,X-Requested-With",
|
|
125
|
+
},
|
|
126
|
+
});
|
|
85
127
|
}
|
|
86
128
|
}));
|
|
87
129
|
|
|
88
|
-
// Run plugins
|
|
130
|
+
// Run plugins — they call getH3App(nitroApp).use(path, handler) which
|
|
131
|
+
// pushes path-prefix middleware onto app["~middleware"].
|
|
89
132
|
${pluginCalls.join("\n")}
|
|
90
133
|
|
|
91
|
-
// Mount router AFTER plugins so auth middleware runs first
|
|
92
|
-
app.use(router);
|
|
93
|
-
|
|
94
134
|
// Register API routes
|
|
95
135
|
${routeRegistrations.join("\n")}
|
|
96
136
|
|
|
137
|
+
// Register action routes (/_agent-native/actions/*)
|
|
138
|
+
${actionRegistrations.join("\n")}
|
|
139
|
+
|
|
97
140
|
// SSR catch-all for React Router
|
|
98
141
|
const rrHandler = createRequestHandler(() => serverBuild);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return rrHandler(webReq);
|
|
142
|
+
app.all("/**", defineEventHandler(async (event) => {
|
|
143
|
+
return rrHandler(event.req);
|
|
102
144
|
}));
|
|
103
145
|
|
|
104
|
-
_handler =
|
|
146
|
+
_handler = app.fetch.bind(app);
|
|
105
147
|
return _handler;
|
|
106
148
|
}
|
|
107
149
|
|
|
108
150
|
export default {
|
|
109
151
|
async fetch(request, env, ctx) {
|
|
110
|
-
// Expose env bindings globally for compatibility
|
|
152
|
+
// Expose env and ctx bindings globally for compatibility
|
|
153
|
+
if (ctx) globalThis.__cf_ctx = ctx;
|
|
111
154
|
if (env) {
|
|
112
155
|
globalThis.process = globalThis.process || { env: {} };
|
|
113
156
|
globalThis.process.env = globalThis.process.env || {};
|
|
@@ -120,8 +163,12 @@ export default {
|
|
|
120
163
|
}
|
|
121
164
|
}
|
|
122
165
|
|
|
123
|
-
// Try serving static assets first (CF Pages advanced mode)
|
|
124
|
-
|
|
166
|
+
// Try serving static assets first (CF Pages advanced mode).
|
|
167
|
+
// Only attempt this for GET/HEAD — the ASSETS binding is a static file
|
|
168
|
+
// server and returns 405 for any other method, which would short-circuit
|
|
169
|
+
// API calls (PUT/POST/DELETE to /_agent-native/*) before they reach our
|
|
170
|
+
// h3 middleware.
|
|
171
|
+
if (env?.ASSETS && (request.method === "GET" || request.method === "HEAD")) {
|
|
125
172
|
try {
|
|
126
173
|
const assetResponse = await env.ASSETS.fetch(request);
|
|
127
174
|
if (assetResponse.status !== 404) {
|
|
@@ -132,7 +179,6 @@ export default {
|
|
|
132
179
|
}
|
|
133
180
|
}
|
|
134
181
|
|
|
135
|
-
|
|
136
182
|
const handler = await getHandler();
|
|
137
183
|
return handler(request);
|
|
138
184
|
}
|
|
@@ -169,12 +215,14 @@ async function buildCloudflarePages() {
|
|
|
169
215
|
const stubsDir = path.join(distDir, "_worker.js", "stubs");
|
|
170
216
|
fs.mkdirSync(stubsDir, { recursive: true });
|
|
171
217
|
fs.writeFileSync(path.join(stubsDir, "empty.js"), "export default {}; export const watch = () => ({ close() {} }); export const Database = class {};\n");
|
|
172
|
-
// Discover routes and
|
|
173
|
-
const routes = discoverApiRoutes(cwd);
|
|
174
|
-
const plugins = discoverPlugins(cwd);
|
|
175
|
-
|
|
218
|
+
// Discover routes, plugins, and actions
|
|
219
|
+
const routes = await discoverApiRoutes(cwd);
|
|
220
|
+
const plugins = await discoverPlugins(cwd);
|
|
221
|
+
const actions = await discoverActionFiles(cwd);
|
|
222
|
+
const missingDefaults = await getMissingDefaultPlugins(cwd);
|
|
223
|
+
console.log(`[deploy] ${routes.length} API routes, ${actions.length} actions, ${plugins.length} plugins (${plugins.filter((p) => isNodeOnlyPlugin(p)).length} skipped as Node-only), ${missingDefaults.length} auto-mounted defaults`);
|
|
176
224
|
// Generate the worker entry
|
|
177
|
-
const entrySource = generateWorkerEntry(routes, plugins);
|
|
225
|
+
const entrySource = generateWorkerEntry(routes, plugins, missingDefaults, actions);
|
|
178
226
|
// Create _worker.js output directory
|
|
179
227
|
const workerOutDir = path.join(distDir, "_worker.js");
|
|
180
228
|
fs.mkdirSync(workerOutDir, { recursive: true });
|
|
@@ -202,6 +250,7 @@ async function buildCloudflarePages() {
|
|
|
202
250
|
"chokidar",
|
|
203
251
|
"fsevents",
|
|
204
252
|
"dotenv",
|
|
253
|
+
"@anthropic-ai/sdk",
|
|
205
254
|
];
|
|
206
255
|
const stubDir = path.join(tmpDir, "node_modules");
|
|
207
256
|
for (const mod of stubModules) {
|
|
@@ -248,11 +297,28 @@ async function buildCloudflarePages() {
|
|
|
248
297
|
workerCode2 = `/* __unenv_fs_patched__ */\n` + workerCode2;
|
|
249
298
|
}
|
|
250
299
|
fs.writeFileSync(entryFile, workerCode2);
|
|
300
|
+
// Patch setInterval/setTimeout at module scope — CF Workers disallows timers in global scope.
|
|
301
|
+
// Some dependencies (e.g. Anthropic SDK rate limiter) call setInterval at module init.
|
|
302
|
+
// Inject a banner that makes setInterval/setTimeout safe during module evaluation,
|
|
303
|
+
// then restores them inside the first fetch() call.
|
|
304
|
+
let workerCode = fs.readFileSync(entryFile, "utf-8");
|
|
305
|
+
const timerShim = [
|
|
306
|
+
"var __origSetInterval=globalThis.setInterval;",
|
|
307
|
+
"globalThis.setInterval=function(){return{unref(){},ref(){},close(){}}};",
|
|
308
|
+
].join("");
|
|
309
|
+
// Restore real setInterval inside the fetch handler
|
|
310
|
+
const timerRestore = "if(__origSetInterval)globalThis.setInterval=__origSetInterval;";
|
|
311
|
+
workerCode = timerShim + workerCode;
|
|
312
|
+
// Inject restore right after "async fetch(request, env, ctx) {"
|
|
313
|
+
workerCode = workerCode.replace(/async fetch\(request,\s*env,\s*ctx\)\s*\{/, (match) => match + timerRestore);
|
|
251
314
|
// Strip "node:" prefix from all imports/requires — nodejs_compat v1 only provides bare names.
|
|
252
315
|
// Handles minified output (no space before quotes) and subpaths like node:fs/promises.
|
|
253
|
-
let workerCode = fs.readFileSync(entryFile, "utf-8");
|
|
254
316
|
workerCode = workerCode.replace(/from\s*["']node:([^"']+)["']/g, (_, mod) => `from"${mod}"`);
|
|
255
317
|
workerCode = workerCode.replace(/import\s*["']node:([^"']+)["']/g, (_, mod) => `import"${mod}"`);
|
|
318
|
+
// Patch createRequire(import.meta.url) — import.meta.url is undefined in CF Workers.
|
|
319
|
+
// React Router's server build uses createRequire for CJS compat. Replace it with a
|
|
320
|
+
// stub that returns our require shim (which is already injected via the banner).
|
|
321
|
+
workerCode = workerCode.replace(/\bimport\s*\{\s*createRequire\s+as\s+([\w$]+)\s*\}\s*from\s*["']module["']\s*;/g, "var $1 = function() { return typeof require !== 'undefined' ? require : function(m) { throw new Error('require not supported: ' + m); }; };");
|
|
256
322
|
fs.writeFileSync(entryFile, workerCode);
|
|
257
323
|
// Report size
|
|
258
324
|
const entrySize = fs.statSync(entryFile).size;
|
|
@@ -405,20 +471,548 @@ function copyDir(src, dest) {
|
|
|
405
471
|
}
|
|
406
472
|
}
|
|
407
473
|
}
|
|
474
|
+
/**
|
|
475
|
+
* Create stub directories for dangling platform-specific optional dependency
|
|
476
|
+
* symlinks in the pnpm store.
|
|
477
|
+
*
|
|
478
|
+
* pnpm's store at `node_modules/.pnpm/<pkg>@<ver>/node_modules/<pkg>/<dep>`
|
|
479
|
+
* contains symlinks for ALL optional deps declared by a package, but only
|
|
480
|
+
* installs the ones matching the current OS/CPU as real packages. The other
|
|
481
|
+
* symlinks dangle — their targets at `.pnpm/<scope>+<pkg>@<ver>/node_modules/...`
|
|
482
|
+
* don't exist.
|
|
483
|
+
*
|
|
484
|
+
* Nitro's `nitro:externals` plugin (via nf3 / @vercel/nft) walks
|
|
485
|
+
* optionalDependencies when tracing files and calls `realpath` on them, which
|
|
486
|
+
* throws ENOENT on dangling targets. This blocks builds with presets like
|
|
487
|
+
* netlify / vercel / aws-lambda on macOS when packages like `libsql` declare
|
|
488
|
+
* Linux-only platform variants as optional deps.
|
|
489
|
+
*
|
|
490
|
+
* Fix: walk `node_modules/.pnpm/` and for every dangling symlink under
|
|
491
|
+
* `<pkg>/node_modules/<scope>/<dep>`, create the symlink's target as a tiny
|
|
492
|
+
* stub directory containing just a valid `package.json`. The tracer can now
|
|
493
|
+
* `realpath` and read the package.json without throwing — the stub is empty
|
|
494
|
+
* so no binary is bundled (which is what we want: we're building from macOS,
|
|
495
|
+
* the target deploy platform will install its own native binary).
|
|
496
|
+
*/
|
|
497
|
+
function createDanglingOptionalDepStubs() {
|
|
498
|
+
// In pnpm monorepos, the store may live at the workspace root rather than
|
|
499
|
+
// in the template dir. Walk up from `cwd` to find every `.pnpm` directory.
|
|
500
|
+
const pnpmRoots = [];
|
|
501
|
+
let dir = cwd;
|
|
502
|
+
while (true) {
|
|
503
|
+
const candidate = path.join(dir, "node_modules", ".pnpm");
|
|
504
|
+
if (fs.existsSync(candidate))
|
|
505
|
+
pnpmRoots.push(candidate);
|
|
506
|
+
const parent = path.dirname(dir);
|
|
507
|
+
if (parent === dir)
|
|
508
|
+
break;
|
|
509
|
+
dir = parent;
|
|
510
|
+
}
|
|
511
|
+
if (pnpmRoots.length === 0)
|
|
512
|
+
return;
|
|
513
|
+
let stubsCreated = 0;
|
|
514
|
+
for (const pnpmRoot of pnpmRoots) {
|
|
515
|
+
let pkgDirs;
|
|
516
|
+
try {
|
|
517
|
+
pkgDirs = fs.readdirSync(pnpmRoot);
|
|
518
|
+
}
|
|
519
|
+
catch {
|
|
520
|
+
continue;
|
|
521
|
+
}
|
|
522
|
+
for (const pkgDir of pkgDirs) {
|
|
523
|
+
// e.g. `libsql@0.5.29`, `@libsql+client@0.15.15`
|
|
524
|
+
const innerNm = path.join(pnpmRoot, pkgDir, "node_modules");
|
|
525
|
+
if (!fs.existsSync(innerNm))
|
|
526
|
+
continue;
|
|
527
|
+
let innerEntries;
|
|
528
|
+
try {
|
|
529
|
+
innerEntries = fs.readdirSync(innerNm, { withFileTypes: true });
|
|
530
|
+
}
|
|
531
|
+
catch {
|
|
532
|
+
continue;
|
|
533
|
+
}
|
|
534
|
+
for (const entry of innerEntries) {
|
|
535
|
+
// Top-level entry: either `foo` (unscoped) or `@scope` (scoped)
|
|
536
|
+
const entryPath = path.join(innerNm, entry.name);
|
|
537
|
+
const candidates = [];
|
|
538
|
+
if (entry.name.startsWith("@")) {
|
|
539
|
+
// Scoped — iterate children
|
|
540
|
+
let scopedChildren;
|
|
541
|
+
try {
|
|
542
|
+
scopedChildren = fs.readdirSync(entryPath, {
|
|
543
|
+
withFileTypes: true,
|
|
544
|
+
});
|
|
545
|
+
}
|
|
546
|
+
catch {
|
|
547
|
+
continue;
|
|
548
|
+
}
|
|
549
|
+
for (const child of scopedChildren) {
|
|
550
|
+
candidates.push({
|
|
551
|
+
symlinkPath: path.join(entryPath, child.name),
|
|
552
|
+
pkgName: `${entry.name}/${child.name}`,
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
candidates.push({ symlinkPath: entryPath, pkgName: entry.name });
|
|
558
|
+
}
|
|
559
|
+
for (const { symlinkPath, pkgName } of candidates) {
|
|
560
|
+
let isSymlink = false;
|
|
561
|
+
try {
|
|
562
|
+
isSymlink = fs.lstatSync(symlinkPath).isSymbolicLink();
|
|
563
|
+
}
|
|
564
|
+
catch {
|
|
565
|
+
continue;
|
|
566
|
+
}
|
|
567
|
+
if (!isSymlink)
|
|
568
|
+
continue;
|
|
569
|
+
// Check if the symlink target exists
|
|
570
|
+
try {
|
|
571
|
+
fs.statSync(symlinkPath);
|
|
572
|
+
continue; // Target exists — nothing to do
|
|
573
|
+
}
|
|
574
|
+
catch {
|
|
575
|
+
// Dangling symlink — create a stub at the target
|
|
576
|
+
}
|
|
577
|
+
let linkTarget;
|
|
578
|
+
try {
|
|
579
|
+
linkTarget = fs.readlinkSync(symlinkPath);
|
|
580
|
+
}
|
|
581
|
+
catch {
|
|
582
|
+
continue;
|
|
583
|
+
}
|
|
584
|
+
const resolvedTarget = path.resolve(path.dirname(symlinkPath), linkTarget);
|
|
585
|
+
try {
|
|
586
|
+
fs.mkdirSync(resolvedTarget, { recursive: true });
|
|
587
|
+
const stubPkgJson = {
|
|
588
|
+
name: pkgName,
|
|
589
|
+
version: "0.0.0-stub",
|
|
590
|
+
description: "Empty stub created by @agent-native/core deploy build to satisfy nitro's file tracer on platforms where this optional dep is not installed.",
|
|
591
|
+
};
|
|
592
|
+
fs.writeFileSync(path.join(resolvedTarget, "package.json"), JSON.stringify(stubPkgJson, null, 2));
|
|
593
|
+
stubsCreated++;
|
|
594
|
+
}
|
|
595
|
+
catch {
|
|
596
|
+
// Best-effort — ignore failures
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
if (stubsCreated > 0) {
|
|
603
|
+
console.log(`[deploy] Created ${stubsCreated} stub package dir(s) for dangling optional deps (platform-specific binaries not installed on this host).`);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* Build for any non-Cloudflare preset using Nitro's programmatic build API.
|
|
608
|
+
* Handles netlify, vercel, deno_deploy, aws-lambda, and all other targets.
|
|
609
|
+
*/
|
|
610
|
+
async function buildWithNitro() {
|
|
611
|
+
console.log(`[deploy] Building for preset "${preset}" via Nitro...`);
|
|
612
|
+
// Work around pnpm + nitro:externals (nf3) bug where dangling symlinks for
|
|
613
|
+
// platform-specific optional deps cause realpath ENOENT during file tracing.
|
|
614
|
+
createDanglingOptionalDepStubs();
|
|
615
|
+
const { createNitro, prepare, copyPublicAssets, build: nitroBuild, } = await import("nitro/builder");
|
|
616
|
+
// Resolve the React Router server build so the SSR catch-all route
|
|
617
|
+
// can import "virtual:react-router/server-build" in production.
|
|
618
|
+
const rrServerBuild = path.join(cwd, "build", "server", "index.js");
|
|
619
|
+
// Inline the template's AGENTS.md + .agents/skills/ content into the Nitro
|
|
620
|
+
// bundle via the `virtual` config option. Nitro's internal `nitro:virtual`
|
|
621
|
+
// Rollup plugin picks this up and resolves `virtual:agents-bundle` to the
|
|
622
|
+
// generated ES module source. Without this, Nitro's Rolldown build (used for
|
|
623
|
+
// netlify, vercel, aws-lambda, node presets) can't resolve the virtual
|
|
624
|
+
// module that `server/agents-bundle.ts` imports — it silently falls through
|
|
625
|
+
// to an empty bundle and the agent gets no instructions/skills at runtime.
|
|
626
|
+
//
|
|
627
|
+
// The Vite plugin at `vite/agents-bundle-plugin.ts` handles this for the
|
|
628
|
+
// React Router client/server build (and cloudflare via esbuild rebundle),
|
|
629
|
+
// but Nitro runs its OWN build from ./server/ without Vite, so it needs its
|
|
630
|
+
// own virtual module registration. Both paths reuse `readAgentsBundleFromFs`
|
|
631
|
+
// from `server/agents-bundle.ts` to guarantee identical content.
|
|
632
|
+
const { readAgentsBundleFromFs } = await import("../server/agents-bundle.js");
|
|
633
|
+
const agentsBundleModuleSource = () => {
|
|
634
|
+
const bundle = readAgentsBundleFromFs(cwd);
|
|
635
|
+
return `// AUTO-GENERATED by @agent-native/core deploy build (Nitro virtual)
|
|
636
|
+
// Contains the inlined AGENTS.md + .agents/skills/ content from the template.
|
|
637
|
+
const bundle = ${JSON.stringify(bundle)};
|
|
638
|
+
export default bundle;
|
|
639
|
+
`;
|
|
640
|
+
};
|
|
641
|
+
const nitro = await createNitro({
|
|
642
|
+
rootDir: cwd,
|
|
643
|
+
dev: false,
|
|
644
|
+
preset,
|
|
645
|
+
minify: true,
|
|
646
|
+
serverDir: "./server",
|
|
647
|
+
alias: fs.existsSync(rrServerBuild)
|
|
648
|
+
? { "virtual:react-router/server-build": rrServerBuild }
|
|
649
|
+
: {},
|
|
650
|
+
virtual: {
|
|
651
|
+
"virtual:agents-bundle": agentsBundleModuleSource,
|
|
652
|
+
},
|
|
653
|
+
// For edge presets (cloudflare, deno), bundle all deps — node_modules
|
|
654
|
+
// aren't available at runtime. Netlify/Vercel/Node have node_modules.
|
|
655
|
+
...(preset.startsWith("cloudflare") || preset.startsWith("deno")
|
|
656
|
+
? { noExternals: true }
|
|
657
|
+
: {}),
|
|
658
|
+
});
|
|
659
|
+
await prepare(nitro);
|
|
660
|
+
await copyPublicAssets(nitro);
|
|
661
|
+
await nitroBuild(nitro);
|
|
662
|
+
// Copy React Router's client build into Nitro's public output dir
|
|
663
|
+
const clientDir = path.join(cwd, "build", "client");
|
|
664
|
+
const publicOutputDir = nitro.options.output.publicDir;
|
|
665
|
+
if (fs.existsSync(clientDir) && publicOutputDir) {
|
|
666
|
+
copyDir(clientDir, publicOutputDir);
|
|
667
|
+
console.log(`[deploy] Copied client assets to ${path.relative(cwd, publicOutputDir)}`);
|
|
668
|
+
}
|
|
669
|
+
// Resolve remaining bare npm imports by bundling them into _libs/.
|
|
670
|
+
// Nitro sometimes leaves small packages as externals even with noExternals.
|
|
671
|
+
if (preset.startsWith("cloudflare") || preset.startsWith("deno")) {
|
|
672
|
+
const { execFileSync } = await import("child_process");
|
|
673
|
+
const { createRequire } = await import("module");
|
|
674
|
+
const esbuildBin = (() => {
|
|
675
|
+
try {
|
|
676
|
+
const _req = createRequire(cwd + "/");
|
|
677
|
+
const pkg = path.dirname(_req.resolve("esbuild/package.json"));
|
|
678
|
+
const bin = path.join(pkg, "bin", "esbuild");
|
|
679
|
+
if (fs.existsSync(bin))
|
|
680
|
+
return bin;
|
|
681
|
+
}
|
|
682
|
+
catch { }
|
|
683
|
+
return "esbuild";
|
|
684
|
+
})();
|
|
685
|
+
// Scan all output files for bare npm imports
|
|
686
|
+
const outputDir = nitro.options.output.serverDir || path.join(cwd, "dist", "_worker.js");
|
|
687
|
+
const bareImports = new Set();
|
|
688
|
+
function scanForBareImports(dir) {
|
|
689
|
+
if (!fs.existsSync(dir))
|
|
690
|
+
return;
|
|
691
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
692
|
+
const p = path.join(dir, entry.name);
|
|
693
|
+
if (entry.isDirectory()) {
|
|
694
|
+
scanForBareImports(p);
|
|
695
|
+
continue;
|
|
696
|
+
}
|
|
697
|
+
if (!entry.name.endsWith(".mjs") && !entry.name.endsWith(".js"))
|
|
698
|
+
continue;
|
|
699
|
+
const code = fs.readFileSync(p, "utf-8");
|
|
700
|
+
const matches = code.matchAll(/from\s*["']([a-z@][a-z0-9._\-/]*)["']/g);
|
|
701
|
+
for (const m of matches) {
|
|
702
|
+
const mod = m[1];
|
|
703
|
+
if (mod.startsWith("node:"))
|
|
704
|
+
continue;
|
|
705
|
+
// Skip Node builtins that are available via nodejs_compat
|
|
706
|
+
const builtins = new Set([
|
|
707
|
+
"fs",
|
|
708
|
+
"path",
|
|
709
|
+
"os",
|
|
710
|
+
"crypto",
|
|
711
|
+
"http",
|
|
712
|
+
"https",
|
|
713
|
+
"stream",
|
|
714
|
+
"url",
|
|
715
|
+
"util",
|
|
716
|
+
"events",
|
|
717
|
+
"buffer",
|
|
718
|
+
"net",
|
|
719
|
+
"tls",
|
|
720
|
+
"assert",
|
|
721
|
+
"timers",
|
|
722
|
+
"child_process",
|
|
723
|
+
"module",
|
|
724
|
+
"process",
|
|
725
|
+
"worker_threads",
|
|
726
|
+
"querystring",
|
|
727
|
+
"zlib",
|
|
728
|
+
"vm",
|
|
729
|
+
"string_decoder",
|
|
730
|
+
"diagnostics_channel",
|
|
731
|
+
"async_hooks",
|
|
732
|
+
"perf_hooks",
|
|
733
|
+
"inspector",
|
|
734
|
+
]);
|
|
735
|
+
if (builtins.has(mod))
|
|
736
|
+
continue;
|
|
737
|
+
bareImports.add(mod);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
scanForBareImports(outputDir);
|
|
742
|
+
// For each bare import, try to bundle it as a standalone module
|
|
743
|
+
if (bareImports.size > 0) {
|
|
744
|
+
const libsDir = path.join(outputDir, "_libs");
|
|
745
|
+
fs.mkdirSync(libsDir, { recursive: true });
|
|
746
|
+
for (const mod of bareImports) {
|
|
747
|
+
const outFile = path.join(libsDir, `${mod.replace(/[/@]/g, "_")}.mjs`);
|
|
748
|
+
try {
|
|
749
|
+
// Try resolving from both template dir and workspace root
|
|
750
|
+
const nodePaths = [
|
|
751
|
+
path.join(cwd, "node_modules"),
|
|
752
|
+
path.resolve(cwd, "../../node_modules"),
|
|
753
|
+
].filter((p) => fs.existsSync(p));
|
|
754
|
+
// Resolve the module — check workspace node_modules and pnpm store
|
|
755
|
+
let resolvedMod = mod;
|
|
756
|
+
const _require = createRequire(cwd + "/");
|
|
757
|
+
try {
|
|
758
|
+
const resolved = _require.resolve(mod);
|
|
759
|
+
resolvedMod = resolved;
|
|
760
|
+
}
|
|
761
|
+
catch {
|
|
762
|
+
// Try from workspace root
|
|
763
|
+
try {
|
|
764
|
+
const wsRequire = createRequire(path.resolve(cwd, "../../package.json"));
|
|
765
|
+
resolvedMod = wsRequire.resolve(mod);
|
|
766
|
+
}
|
|
767
|
+
catch {
|
|
768
|
+
// Will fail at esbuild
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
// Scan what named imports the consumer expects, then generate
|
|
772
|
+
// explicit re-exports to handle CJS modules properly.
|
|
773
|
+
const neededExports = new Set();
|
|
774
|
+
function findNeededExports(dir) {
|
|
775
|
+
if (!fs.existsSync(dir))
|
|
776
|
+
return;
|
|
777
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
778
|
+
const p = path.join(dir, entry.name);
|
|
779
|
+
if (entry.isDirectory()) {
|
|
780
|
+
findNeededExports(p);
|
|
781
|
+
continue;
|
|
782
|
+
}
|
|
783
|
+
if (!entry.name.endsWith(".mjs") && !entry.name.endsWith(".js"))
|
|
784
|
+
continue;
|
|
785
|
+
const code = fs.readFileSync(p, "utf-8");
|
|
786
|
+
// Match: import{foo as bar,baz}from"<mod>"
|
|
787
|
+
const escaped = mod.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
788
|
+
const re = new RegExp(`import\\{([^}]+)\\}from["']${escaped}["']`, "g");
|
|
789
|
+
for (const m2 of code.matchAll(re)) {
|
|
790
|
+
for (const part of m2[1].split(",")) {
|
|
791
|
+
const name = part
|
|
792
|
+
.trim()
|
|
793
|
+
.split(/\s+as\s+/)[0]
|
|
794
|
+
.trim();
|
|
795
|
+
if (name && /^[a-zA-Z_$]/.test(name))
|
|
796
|
+
neededExports.add(name);
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
findNeededExports(outputDir);
|
|
802
|
+
const entryCode = neededExports.size > 0
|
|
803
|
+
? [
|
|
804
|
+
`import _mod from "${resolvedMod}";`,
|
|
805
|
+
`export default _mod;`,
|
|
806
|
+
...Array.from(neededExports).map((n) => `export const ${n} = _mod.${n} ?? _mod?.default?.${n};`),
|
|
807
|
+
].join("\n")
|
|
808
|
+
: `export * from "${resolvedMod}"; export { default } from "${resolvedMod}";`;
|
|
809
|
+
execFileSync(esbuildBin, [
|
|
810
|
+
"--bundle",
|
|
811
|
+
`--outfile=${outFile}`,
|
|
812
|
+
"--format=esm",
|
|
813
|
+
"--platform=neutral",
|
|
814
|
+
"--target=es2022",
|
|
815
|
+
"--external:node:*",
|
|
816
|
+
], {
|
|
817
|
+
input: entryCode,
|
|
818
|
+
cwd,
|
|
819
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
820
|
+
});
|
|
821
|
+
// Rewrite imports in all files to point to the bundled module
|
|
822
|
+
function rewriteImports(dir) {
|
|
823
|
+
if (!fs.existsSync(dir))
|
|
824
|
+
return;
|
|
825
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
826
|
+
const p = path.join(dir, entry.name);
|
|
827
|
+
if (entry.isDirectory()) {
|
|
828
|
+
rewriteImports(p);
|
|
829
|
+
continue;
|
|
830
|
+
}
|
|
831
|
+
if (!entry.name.endsWith(".mjs") && !entry.name.endsWith(".js"))
|
|
832
|
+
continue;
|
|
833
|
+
let code = fs.readFileSync(p, "utf-8");
|
|
834
|
+
const relPath = path
|
|
835
|
+
.relative(path.dirname(p), outFile)
|
|
836
|
+
.replace(/\\/g, "/");
|
|
837
|
+
const importPath = relPath.startsWith(".")
|
|
838
|
+
? relPath
|
|
839
|
+
: "./" + relPath;
|
|
840
|
+
const re = new RegExp(`from["']${mod.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["']`, "g");
|
|
841
|
+
if (re.test(code)) {
|
|
842
|
+
code = code.replace(re, `from"${importPath}"`);
|
|
843
|
+
fs.writeFileSync(p, code);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
rewriteImports(outputDir);
|
|
848
|
+
console.log(`[deploy] Bundled external: ${mod}`);
|
|
849
|
+
}
|
|
850
|
+
catch {
|
|
851
|
+
console.warn(`[deploy] Could not bundle: ${mod} (may not be needed at runtime)`);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
// Cloudflare-specific post-build patches
|
|
857
|
+
if (preset.startsWith("cloudflare")) {
|
|
858
|
+
const serverDir2 = nitro.options.output.serverDir;
|
|
859
|
+
const scanDirs = [serverDir2];
|
|
860
|
+
if (serverDir2) {
|
|
861
|
+
const chunksDir = path.join(serverDir2, "_chunks");
|
|
862
|
+
const libsDir = path.join(serverDir2, "_libs");
|
|
863
|
+
if (fs.existsSync(chunksDir))
|
|
864
|
+
scanDirs.push(chunksDir);
|
|
865
|
+
if (fs.existsSync(libsDir))
|
|
866
|
+
scanDirs.push(libsDir);
|
|
867
|
+
}
|
|
868
|
+
for (const scanDir of scanDirs) {
|
|
869
|
+
if (!scanDir || !fs.existsSync(scanDir))
|
|
870
|
+
continue;
|
|
871
|
+
for (const file of fs.readdirSync(scanDir)) {
|
|
872
|
+
if (!file.endsWith(".mjs") && !file.endsWith(".js"))
|
|
873
|
+
continue;
|
|
874
|
+
const filePath = path.join(scanDir, file);
|
|
875
|
+
let code = fs.readFileSync(filePath, "utf-8");
|
|
876
|
+
let changed = false;
|
|
877
|
+
// 1. Rewrite bare Node.js imports to node: prefixed.
|
|
878
|
+
// CF Workers requires the node: prefix for built-in modules.
|
|
879
|
+
const NODE_BUILTINS = [
|
|
880
|
+
"fs",
|
|
881
|
+
"path",
|
|
882
|
+
"os",
|
|
883
|
+
"crypto",
|
|
884
|
+
"http",
|
|
885
|
+
"https",
|
|
886
|
+
"stream",
|
|
887
|
+
"url",
|
|
888
|
+
"util",
|
|
889
|
+
"events",
|
|
890
|
+
"buffer",
|
|
891
|
+
"querystring",
|
|
892
|
+
"zlib",
|
|
893
|
+
"net",
|
|
894
|
+
"tls",
|
|
895
|
+
"assert",
|
|
896
|
+
"timers",
|
|
897
|
+
"child_process",
|
|
898
|
+
"module",
|
|
899
|
+
"process",
|
|
900
|
+
"worker_threads",
|
|
901
|
+
"string_decoder",
|
|
902
|
+
"diagnostics_channel",
|
|
903
|
+
"async_hooks",
|
|
904
|
+
"perf_hooks",
|
|
905
|
+
"inspector",
|
|
906
|
+
"vm",
|
|
907
|
+
];
|
|
908
|
+
for (const mod of NODE_BUILTINS) {
|
|
909
|
+
// Match: from"fs" or from "fs" (but not from"node:fs")
|
|
910
|
+
const re = new RegExp(`from\\s*["']${mod}["']`, "g");
|
|
911
|
+
if (re.test(code)) {
|
|
912
|
+
code = code.replace(re, `from"node:${mod}"`);
|
|
913
|
+
changed = true;
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
// 2. Patch import.meta.url for createRequire().
|
|
917
|
+
// React Router's server build uses createRequire(import.meta.url)
|
|
918
|
+
// but import.meta.url is undefined on CF Workers.
|
|
919
|
+
if (code.includes("import.meta.url")) {
|
|
920
|
+
code = code.replace(/import\.meta\.url/g, '"file:///worker.mjs"');
|
|
921
|
+
changed = true;
|
|
922
|
+
}
|
|
923
|
+
// 3. Patch setInterval/setTimeout at global scope.
|
|
924
|
+
// CF Workers disallows timers in global scope.
|
|
925
|
+
if (code.includes("setInterval") && !code.includes("__timer_shim__")) {
|
|
926
|
+
const shim = "/* __timer_shim__ */" +
|
|
927
|
+
"var __origSetInterval=globalThis.setInterval;" +
|
|
928
|
+
"globalThis.setInterval=function(){return{unref(){},ref(){},close(){}}};";
|
|
929
|
+
const restore = ";(function(){if(typeof __origSetInterval!=='undefined')globalThis.setInterval=__origSetInterval})();";
|
|
930
|
+
code = shim + code + "\n" + restore;
|
|
931
|
+
changed = true;
|
|
932
|
+
}
|
|
933
|
+
if (changed)
|
|
934
|
+
fs.writeFileSync(filePath, code);
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
// 3. Create stub modules in _libs/ for native deps that Nitro's rolldown
|
|
938
|
+
// bundler references but can't resolve on CF Workers, and rewrite
|
|
939
|
+
// bare imports to point to the stub files.
|
|
940
|
+
const libsDir2 = path.join(serverDir2 || path.join(cwd, "dist", "_worker.js"), "_libs");
|
|
941
|
+
if (fs.existsSync(libsDir2)) {
|
|
942
|
+
const NATIVE_STUBS = ["better-sqlite3", "node-pty", "cron-parser"];
|
|
943
|
+
for (const mod of NATIVE_STUBS) {
|
|
944
|
+
const libFiles = fs
|
|
945
|
+
.readdirSync(libsDir2)
|
|
946
|
+
.filter((f) => f.endsWith(".mjs"));
|
|
947
|
+
const referencingFiles = [];
|
|
948
|
+
for (const f of libFiles) {
|
|
949
|
+
const filePath = path.join(libsDir2, f);
|
|
950
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
951
|
+
if (content.includes(`"${mod}"`) || content.includes(`'${mod}'`)) {
|
|
952
|
+
referencingFiles.push(filePath);
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
if (referencingFiles.length === 0)
|
|
956
|
+
continue;
|
|
957
|
+
// Create a stub _libs/<mod>.mjs that exports empty defaults
|
|
958
|
+
const stubName = mod.replace(/[/@]/g, "__") + ".mjs";
|
|
959
|
+
const stubPath = path.join(libsDir2, stubName);
|
|
960
|
+
if (!fs.existsSync(stubPath)) {
|
|
961
|
+
fs.writeFileSync(stubPath, `export default {}; export const watch = () => ({ close() {} });\n`);
|
|
962
|
+
console.log(`[deploy] Created stub for _libs/${stubName}`);
|
|
963
|
+
}
|
|
964
|
+
// Rewrite bare imports in _libs/ and _chunks/ to use the stub
|
|
965
|
+
const escaped = mod.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
966
|
+
const importRe = new RegExp(`(from\\s*["'])${escaped}(["'])`, "g");
|
|
967
|
+
// Scan _libs/ files
|
|
968
|
+
for (const filePath of referencingFiles) {
|
|
969
|
+
let code = fs.readFileSync(filePath, "utf-8");
|
|
970
|
+
if (importRe.test(code)) {
|
|
971
|
+
code = code.replace(importRe, `$1./${stubName}$2`);
|
|
972
|
+
fs.writeFileSync(filePath, code);
|
|
973
|
+
console.log(`[deploy] Rewrote ${mod} imports in _libs/${path.basename(filePath)}`);
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
// Also scan _chunks/ files (they import native deps too)
|
|
977
|
+
const chunksDir2 = path.join(serverDir2 || path.join(cwd, "dist", "_worker.js"), "_chunks");
|
|
978
|
+
if (fs.existsSync(chunksDir2)) {
|
|
979
|
+
for (const f of fs
|
|
980
|
+
.readdirSync(chunksDir2)
|
|
981
|
+
.filter((f) => f.endsWith(".mjs") || f.endsWith(".js"))) {
|
|
982
|
+
const filePath = path.join(chunksDir2, f);
|
|
983
|
+
let code = fs.readFileSync(filePath, "utf-8");
|
|
984
|
+
if (importRe.test(code)) {
|
|
985
|
+
// From _chunks/, the stub is at ../_libs/<stubName>
|
|
986
|
+
code = code.replace(importRe, `$1../_libs/${stubName}$2`);
|
|
987
|
+
fs.writeFileSync(filePath, code);
|
|
988
|
+
console.log(`[deploy] Rewrote ${mod} imports in _chunks/${f}`);
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
console.log("[deploy] Patched bare Node imports, timer calls, and route finder for CF Workers");
|
|
995
|
+
}
|
|
996
|
+
await nitro.close();
|
|
997
|
+
console.log(`[deploy] Nitro build complete for preset "${preset}".`);
|
|
998
|
+
}
|
|
408
999
|
// Main
|
|
409
|
-
const SUPPORTED_PRESETS = ["cloudflare_pages"];
|
|
410
1000
|
if (preset === "node") {
|
|
411
|
-
// No post-processing needed for Node.js target
|
|
412
1001
|
process.exit(0);
|
|
413
1002
|
}
|
|
414
|
-
if (!SUPPORTED_PRESETS.includes(preset)) {
|
|
415
|
-
console.error(`[deploy] Unsupported preset: ${preset}. Supported: ${SUPPORTED_PRESETS.join(", ")}`);
|
|
416
|
-
process.exit(1);
|
|
417
|
-
}
|
|
418
1003
|
console.log(`[deploy] Building for ${preset}...`);
|
|
419
1004
|
switch (preset) {
|
|
420
1005
|
case "cloudflare_pages":
|
|
1006
|
+
case "cloudflare-pages":
|
|
1007
|
+
// Cloudflare Workers require a single-file bundle that wrangler can deploy.
|
|
1008
|
+
// Nitro's native presets produce split chunks that wrangler can't upload
|
|
1009
|
+
// as multi-module Workers. Use the custom esbuild-based bundler.
|
|
421
1010
|
await buildCloudflarePages();
|
|
422
1011
|
break;
|
|
1012
|
+
default:
|
|
1013
|
+
// All other presets (netlify, vercel, deno_deploy, aws-lambda, etc.)
|
|
1014
|
+
// are handled natively by Nitro's build API.
|
|
1015
|
+
await buildWithNitro();
|
|
1016
|
+
break;
|
|
423
1017
|
}
|
|
424
1018
|
//# sourceMappingURL=build.js.map
|