@agent-native/core 0.5.0-dev.b51eaae → 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 +11 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +38 -1
- package/dist/a2a/client.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 +1 -1
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/server.d.ts +4 -0
- package/dist/a2a/server.d.ts.map +1 -1
- package/dist/a2a/server.js +53 -8
- package/dist/a2a/server.js.map +1 -1
- package/dist/a2a/types.d.ts +1 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/action.d.ts +64 -30
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +224 -27
- package/dist/action.js.map +1 -1
- 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/production-agent.d.ts +48 -2
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +216 -76
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +1 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +15 -9
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +5 -5
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts +1 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +4 -1
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/types.d.ts +22 -1
- package/dist/agent/types.d.ts.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 +3 -2
- package/dist/application-state/handlers.js.map +1 -1
- package/dist/application-state/script-helpers.d.ts.map +1 -1
- package/dist/application-state/script-helpers.js +47 -9
- package/dist/application-state/script-helpers.js.map +1 -1
- package/dist/chat-threads/store.d.ts +14 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +32 -0
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/cli/create.d.ts +8 -2
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +287 -32
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +19 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +5 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +407 -111
- 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 +13 -2
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +344 -122
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts +7 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +345 -63
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/PoweredByBadge.js +2 -2
- 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/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +63 -2
- 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 +4 -2
- package/dist/client/agent-chat.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/composer/MentionPopover.d.ts +4 -1
- package/dist/client/composer/MentionPopover.d.ts.map +1 -1
- package/dist/client/composer/MentionPopover.js +36 -6
- package/dist/client/composer/MentionPopover.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +8 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +146 -16
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/index.d.ts +1 -1
- package/dist/client/composer/index.d.ts.map +1 -1
- package/dist/client/composer/types.d.ts +5 -0
- package/dist/client/composer/types.d.ts.map +1 -1
- package/dist/client/composer/use-mention-search.d.ts.map +1 -1
- package/dist/client/composer/use-mention-search.js +46 -13
- package/dist/client/composer/use-mention-search.js.map +1 -1
- 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 +7 -3
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -3
- 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 +8 -1
- package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
- package/dist/client/resources/ResourceEditor.js +94 -13
- package/dist/client/resources/ResourceEditor.js.map +1 -1
- package/dist/client/resources/ResourceTree.d.ts +5 -1
- package/dist/client/resources/ResourceTree.d.ts.map +1 -1
- package/dist/client/resources/ResourceTree.js +18 -3
- package/dist/client/resources/ResourceTree.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +135 -110
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/resources/use-resources.d.ts +10 -0
- package/dist/client/resources/use-resources.d.ts.map +1 -1
- package/dist/client/resources/use-resources.js +2 -2
- package/dist/client/resources/use-resources.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts +9 -1
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +36 -3
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/terminal/AgentTerminal.d.ts +4 -4
- package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
- package/dist/client/terminal/AgentTerminal.js +14 -14
- 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-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 +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +34 -18
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/use-dev-mode.d.ts.map +1 -1
- package/dist/client/use-dev-mode.js +2 -0
- 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/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/db/client.d.ts +10 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +43 -2
- package/dist/db/client.js.map +1 -1
- package/dist/db/create-get-db.js.map +1 -1
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -1
- 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 +45 -20
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.d.ts +8 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +13 -2
- package/dist/db/schema.js.map +1 -1
- package/dist/deploy/build.js +607 -42
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/route-discovery.d.ts +17 -4
- package/dist/deploy/route-discovery.d.ts.map +1 -1
- package/dist/deploy/route-discovery.js +117 -35
- package/dist/deploy/route-discovery.js.map +1 -1
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +4 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -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 +30 -7
- 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/handlers.d.ts +10 -1
- package/dist/resources/handlers.d.ts.map +1 -1
- package/dist/resources/handlers.js +82 -9
- package/dist/resources/handlers.js.map +1 -1
- package/dist/resources/store.d.ts +5 -0
- package/dist/resources/store.d.ts.map +1 -1
- package/dist/resources/store.js +44 -0
- package/dist/resources/store.js.map +1 -1
- 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 +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +10 -6
- package/dist/scripts/call-agent.js.map +1 -1
- 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 +2 -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 +3 -2
- package/dist/scripts/db/exec.d.ts.map +1 -1
- package/dist/scripts/db/exec.js +35 -19
- 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/scoping.d.ts +8 -2
- package/dist/scripts/db/scoping.d.ts.map +1 -1
- package/dist/scripts/db/scoping.js +64 -46
- package/dist/scripts/db/scoping.js.map +1 -1
- package/dist/scripts/dev/index.d.ts.map +1 -1
- package/dist/scripts/dev/index.js +64 -1
- package/dist/scripts/dev/index.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/runner.d.ts.map +1 -1
- package/dist/scripts/runner.js +10 -2
- package/dist/scripts/runner.js.map +1 -1
- package/dist/scripts/utils.d.ts +1 -9
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +2 -40
- package/dist/scripts/utils.js.map +1 -1
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +84 -16
- package/dist/server/action-discovery.js.map +1 -1
- 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 +20 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +1149 -256
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.d.ts +8 -3
- package/dist/server/agent-discovery.d.ts.map +1 -1
- package/dist/server/agent-discovery.js +69 -8
- package/dist/server/agent-discovery.js.map +1 -1
- 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 +3 -3
- package/dist/server/auth-plugin.d.ts.map +1 -1
- package/dist/server/auth-plugin.js +9 -10
- package/dist/server/auth-plugin.js.map +1 -1
- package/dist/server/auth.d.ts +54 -33
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +529 -611
- 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 +0 -3
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +97 -27
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/create-server.d.ts +1 -1
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +39 -16
- 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 +13 -12
- package/dist/server/google-auth-plugin.js.map +1 -1
- package/dist/server/google-oauth.d.ts +3 -3
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +40 -18
- package/dist/server/google-oauth.js.map +1 -1
- 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 +9 -4
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +12 -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 +4 -6
- package/dist/server/oauth-helpers.d.ts.map +1 -1
- package/dist/server/oauth-helpers.js +6 -8
- package/dist/server/oauth-helpers.js.map +1 -1
- 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 +7 -2
- package/dist/server/poll.d.ts.map +1 -1
- package/dist/server/poll.js +48 -1
- package/dist/server/poll.js.map +1 -1
- package/dist/server/resources-plugin.d.ts.map +1 -1
- package/dist/server/resources-plugin.js +4 -3
- package/dist/server/resources-plugin.js.map +1 -1
- 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/sse.d.ts +3 -20
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +1 -29
- 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 +3 -3
- package/dist/settings/handlers.d.ts.map +1 -1
- package/dist/settings/handlers.js +2 -1
- package/dist/settings/handlers.js.map +1 -1
- package/dist/settings/index.d.ts +1 -0
- 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/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/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/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/dist/templates/default/actions/hello.ts +20 -0
- package/dist/templates/default/actions/navigate.ts +53 -0
- package/dist/templates/default/actions/run.ts +2 -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 +1 -1
- package/dist/terminal/cli-registry.d.ts.map +1 -1
- package/dist/terminal/cli-registry.js +7 -7
- 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 +34 -12
- package/dist/terminal/pty-server.js.map +1 -1
- package/dist/terminal/terminal-plugin.d.ts +0 -9
- package/dist/terminal/terminal-plugin.d.ts.map +1 -1
- package/dist/terminal/terminal-plugin.js +57 -14
- 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 +222 -37
- 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 +68 -20
- package/src/templates/default/.agents/skills/actions/SKILL.md +12 -6
- package/src/templates/default/.agents/skills/agent-engines/SKILL.md +127 -0
- package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +183 -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 +25 -9
- package/src/templates/default/actions/view-screen.ts +1 -1
- package/src/templates/default/package.json +2 -2
- package/src/templates/default/server/middleware/auth.ts +15 -0
- package/src/templates/default/server/routes/[...page].get.ts +2 -9
- package/src/templates/default/ssr-entry.ts +20 -0
- 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/server/default-watcher.d.ts +0 -23
- package/dist/server/default-watcher.d.ts.map +0 -1
- package/dist/server/default-watcher.js +0 -57
- 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 -243
- package/dist/vite/dev-api-server.js.map +0 -1
- /package/{src/templates/default/.agents/skills/files-as-database → dist/templates/default/.agents/skills/storing-data}/SKILL.md +0 -0
- /package/{src/templates/default/application-state/.gitkeep → dist/templates/default/.ignore} +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security
|
|
3
|
+
description: >-
|
|
4
|
+
Data security model, user/org scoping, and auth patterns. Use when adding
|
|
5
|
+
tables with user data, implementing multi-user features, setting up A2A
|
|
6
|
+
cross-app calls, or reviewing data access patterns.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Security & Data Scoping
|
|
10
|
+
|
|
11
|
+
## How Data Isolation Works
|
|
12
|
+
|
|
13
|
+
In production, the framework enforces data isolation at the SQL level. Agents and users can only see and modify data they own. This is automatic — you don't write WHERE clauses yourself.
|
|
14
|
+
|
|
15
|
+
### Per-User Scoping (`owner_email`)
|
|
16
|
+
|
|
17
|
+
Every table with user-specific data **must** have an `owner_email` text column.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { table, text, integer } from "@agent-native/core/db/schema";
|
|
21
|
+
|
|
22
|
+
export const notes = table("notes", {
|
|
23
|
+
id: text("id").primaryKey(),
|
|
24
|
+
title: text("title").notNull(),
|
|
25
|
+
content: text("content"),
|
|
26
|
+
owner_email: text("owner_email").notNull(), // REQUIRED for user data
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**What happens automatically:**
|
|
31
|
+
- `db-query` creates temporary views with `WHERE owner_email = <current user>`
|
|
32
|
+
- `db-exec` INSERT statements get `owner_email` auto-injected
|
|
33
|
+
- `db-exec` UPDATE/DELETE statements are scoped to the current user's rows
|
|
34
|
+
- The current user comes from `AGENT_USER_EMAIL` (set from the auth session)
|
|
35
|
+
|
|
36
|
+
### Per-Org Scoping (`org_id`)
|
|
37
|
+
|
|
38
|
+
For multi-user apps where teams share data, add an `org_id` column:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
export const projects = table("projects", {
|
|
42
|
+
id: text("id").primaryKey(),
|
|
43
|
+
name: text("name").notNull(),
|
|
44
|
+
owner_email: text("owner_email").notNull(), // who created it
|
|
45
|
+
org_id: text("org_id").notNull(), // which org it belongs to
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
When both columns are present, queries are scoped by **both**: `WHERE owner_email = ? AND org_id = ?`.
|
|
50
|
+
|
|
51
|
+
The `org_id` comes from `AGENT_ORG_ID` which is automatically set from the user's active organization in Better Auth.
|
|
52
|
+
|
|
53
|
+
### Validation
|
|
54
|
+
|
|
55
|
+
Run `pnpm action db-check-scoping` to verify all tables have proper ownership columns. Use `--require-org` for multi-org apps.
|
|
56
|
+
|
|
57
|
+
## Auth Model
|
|
58
|
+
|
|
59
|
+
### Better Auth (Default)
|
|
60
|
+
|
|
61
|
+
The framework uses Better Auth for authentication. It's always on by default — users create an account on first visit.
|
|
62
|
+
|
|
63
|
+
**Environment variables:**
|
|
64
|
+
- `BETTER_AUTH_SECRET` — signing key (auto-generated if not set)
|
|
65
|
+
- `GOOGLE_CLIENT_ID` + `GOOGLE_CLIENT_SECRET` — enable Google OAuth
|
|
66
|
+
- `GITHUB_CLIENT_ID` + `GITHUB_CLIENT_SECRET` — enable GitHub OAuth
|
|
67
|
+
- `AUTH_MODE=local` — disable auth for solo local dev (escape hatch)
|
|
68
|
+
|
|
69
|
+
### Organizations
|
|
70
|
+
|
|
71
|
+
Better Auth's organization plugin is built-in. Every app supports:
|
|
72
|
+
- Creating organizations
|
|
73
|
+
- Inviting members (owner/admin/member roles)
|
|
74
|
+
- Switching active organization
|
|
75
|
+
- Per-org data scoping via `org_id`
|
|
76
|
+
|
|
77
|
+
The active organization ID flows from `session.orgId` → `AGENT_ORG_ID` → SQL scoping automatically.
|
|
78
|
+
|
|
79
|
+
### ACCESS_TOKEN (Legacy)
|
|
80
|
+
|
|
81
|
+
For simple deployments, set `ACCESS_TOKEN` or `ACCESS_TOKENS` (comma-separated) as environment variables. This provides a shared token for all users — no per-user identity.
|
|
82
|
+
|
|
83
|
+
## A2A Security
|
|
84
|
+
|
|
85
|
+
### Cross-App Identity
|
|
86
|
+
|
|
87
|
+
When apps call each other via A2A, they need to verify identity. Set the same `A2A_SECRET` on all apps that need to trust each other:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# On both apps
|
|
91
|
+
A2A_SECRET=your-shared-secret-at-least-32-chars
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**How it works:**
|
|
95
|
+
1. App A signs a JWT with `A2A_SECRET` containing `sub: "steve@builder.io"`
|
|
96
|
+
2. App B receives the call, verifies the JWT signature
|
|
97
|
+
3. App B sets `AGENT_USER_EMAIL` from the verified `sub` claim
|
|
98
|
+
4. Data scoping applies — App B only shows steve's data
|
|
99
|
+
|
|
100
|
+
Without `A2A_SECRET`, A2A calls are unauthenticated (fine for local dev, not production).
|
|
101
|
+
|
|
102
|
+
## Rules for Agents
|
|
103
|
+
|
|
104
|
+
1. **Every new table with user data must have `owner_email`.** No exceptions.
|
|
105
|
+
2. **Never bypass scoping** — don't raw-query tables without going through `db-query`/`db-exec`.
|
|
106
|
+
3. **Don't expose user data in application state** — application state is per-session, not per-user. Use SQL tables with `owner_email` for persistent user data.
|
|
107
|
+
4. **Don't hardcode emails** — use `AGENT_USER_EMAIL` environment variable.
|
|
108
|
+
5. **Test with multiple users** — create two accounts and verify data isolation.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: self-modifying-code
|
|
3
|
+
description: >-
|
|
4
|
+
How the agent can modify the app's own source code. Use when the agent needs
|
|
5
|
+
to edit components, routes, styles, or scripts, when designing UI for agent
|
|
6
|
+
editability, or when deciding what the agent should and shouldn't modify.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Self-Modifying Code
|
|
10
|
+
|
|
11
|
+
## Rule
|
|
12
|
+
|
|
13
|
+
The agent can edit the app's own source code — components, routes, styles, scripts. This is a feature, not a bug. Design your app expecting this.
|
|
14
|
+
|
|
15
|
+
## Why
|
|
16
|
+
|
|
17
|
+
An agent-native app isn't just an app the agent can _use_ — it's an app the agent can _change_. The agent can fix bugs, add features, adjust styles, and restructure code. This makes the agent a true collaborator, not just an operator.
|
|
18
|
+
|
|
19
|
+
## Modification Taxonomy
|
|
20
|
+
|
|
21
|
+
Not all modifications are equal. Use this to decide what level of care is needed:
|
|
22
|
+
|
|
23
|
+
| Tier | What | Examples | After modifying |
|
|
24
|
+
| ------------- | --------------------- | ------------------------------------------------ | --------------------------------- |
|
|
25
|
+
| 1: Data | Files in `data/` | JSON state, generated content, markdown | Nothing — these are routine |
|
|
26
|
+
| 2: Source | App code | Components, routes, styles, scripts | Run `pnpm typecheck && pnpm lint` |
|
|
27
|
+
| 3: Config | Project config | `package.json`, `tsconfig.json`, `vite.config.*` | Ask for explicit approval first |
|
|
28
|
+
| 4: Off limits | Secrets and framework | `.env`, `@agent-native/core` internals | Never modify these |
|
|
29
|
+
|
|
30
|
+
## Git Checkpoint Pattern
|
|
31
|
+
|
|
32
|
+
Before modifying source code (Tier 2+), create a rollback point:
|
|
33
|
+
|
|
34
|
+
1. Commit or stash current state
|
|
35
|
+
2. Make the edit
|
|
36
|
+
3. Run `pnpm typecheck && pnpm lint`
|
|
37
|
+
4. If verification fails → revert with `git checkout -- <file>`
|
|
38
|
+
5. If verification passes → continue
|
|
39
|
+
|
|
40
|
+
This ensures the agent can experiment without breaking the app.
|
|
41
|
+
|
|
42
|
+
## Designing for Agent Editability
|
|
43
|
+
|
|
44
|
+
Make your app easy for the agent to understand and modify:
|
|
45
|
+
|
|
46
|
+
**Expose UI state via `data-*` attributes** so the agent knows what's selected:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
const el = document.documentElement;
|
|
50
|
+
el.dataset.currentView = view;
|
|
51
|
+
el.dataset.selectedId = selectedItem?.id || "";
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Expose richer context via `window.__appState`** for complex state:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
(window as any).__appState = {
|
|
58
|
+
selectedId: id,
|
|
59
|
+
currentLayout: layout,
|
|
60
|
+
itemCount: items.length,
|
|
61
|
+
};
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Use configuration-driven rendering** — Extract visual decisions (colors, layouts, sizes) into JSON config files in `data/`. The agent can modify the config (Tier 1) instead of the component source (Tier 2).
|
|
65
|
+
|
|
66
|
+
## Don't
|
|
67
|
+
|
|
68
|
+
- Don't modify `.env` files or files containing secrets
|
|
69
|
+
- Don't modify `@agent-native/core` package internals
|
|
70
|
+
- Don't modify `.agents/skills/` or `AGENTS.md` unless explicitly requested
|
|
71
|
+
- Don't skip the typecheck/lint step after editing source code
|
|
72
|
+
- Don't make source changes without a git checkpoint to roll back to
|
|
73
|
+
|
|
74
|
+
## Related Skills
|
|
75
|
+
|
|
76
|
+
- **storing-data** — Tier 1 modifications (database writes) are the safest and most common
|
|
77
|
+
- **scripts** — The agent can create or modify scripts to add new capabilities
|
|
78
|
+
- **delegate-to-agent** — Self-modification requests come through the agent chat
|
|
79
|
+
- **real-time-sync** — Source edits and database writes trigger SSE events to update the UI
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"UserPromptSubmit": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "pnpm action view-screen 2>/dev/null || echo '{\"view\": \"unknown\"}'",
|
|
9
|
+
"timeout": 10
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"permissions": {
|
|
16
|
+
"allow": [
|
|
17
|
+
"Read",
|
|
18
|
+
"Edit",
|
|
19
|
+
"Write",
|
|
20
|
+
"Glob",
|
|
21
|
+
"Grep",
|
|
22
|
+
"NotebookEdit",
|
|
23
|
+
"WebFetch",
|
|
24
|
+
"WebSearch",
|
|
25
|
+
"Bash(ls *)",
|
|
26
|
+
"Bash(pwd)",
|
|
27
|
+
"Bash(echo *)",
|
|
28
|
+
"Bash(cat *)",
|
|
29
|
+
"Bash(head *)",
|
|
30
|
+
"Bash(tail *)",
|
|
31
|
+
"Bash(find *)",
|
|
32
|
+
"Bash(wc *)",
|
|
33
|
+
"Bash(sort *)",
|
|
34
|
+
"Bash(uniq *)",
|
|
35
|
+
"Bash(diff *)",
|
|
36
|
+
"Bash(which *)",
|
|
37
|
+
"Bash(env)",
|
|
38
|
+
"Bash(mkdir *)",
|
|
39
|
+
"Bash(cp *)",
|
|
40
|
+
"Bash(mv *)",
|
|
41
|
+
"Bash(touch *)",
|
|
42
|
+
"Bash(chmod *)",
|
|
43
|
+
"Bash(cd *)",
|
|
44
|
+
"Bash(node *)",
|
|
45
|
+
"Bash(npx *)",
|
|
46
|
+
"Bash(npm *)",
|
|
47
|
+
"Bash(pnpm *)",
|
|
48
|
+
"Bash(yarn *)",
|
|
49
|
+
"Bash(tsx *)",
|
|
50
|
+
"Bash(tsc *)",
|
|
51
|
+
"Bash(vitest *)",
|
|
52
|
+
"Bash(jest *)",
|
|
53
|
+
"Bash(eslint *)",
|
|
54
|
+
"Bash(prettier *)",
|
|
55
|
+
"Bash(git status*)",
|
|
56
|
+
"Bash(git log *)",
|
|
57
|
+
"Bash(git diff *)",
|
|
58
|
+
"Bash(git show *)",
|
|
59
|
+
"Bash(git branch*)",
|
|
60
|
+
"Bash(git add *)",
|
|
61
|
+
"Bash(git commit *)",
|
|
62
|
+
"Bash(git checkout *)",
|
|
63
|
+
"Bash(git switch *)",
|
|
64
|
+
"Bash(git stash *)",
|
|
65
|
+
"Bash(git merge *)",
|
|
66
|
+
"Bash(git rebase *)",
|
|
67
|
+
"Bash(git pull *)",
|
|
68
|
+
"Bash(git blame *)",
|
|
69
|
+
"Bash(git rev-parse *)",
|
|
70
|
+
"Bash(git worktree *)",
|
|
71
|
+
"Bash(git remote -v)",
|
|
72
|
+
"Bash(gh *)",
|
|
73
|
+
"Bash(curl *)",
|
|
74
|
+
"Bash(grep *)",
|
|
75
|
+
"Bash(rg *)",
|
|
76
|
+
"Bash(sed *)",
|
|
77
|
+
"Bash(awk *)",
|
|
78
|
+
"Bash(jq *)",
|
|
79
|
+
"Bash(rm *)"
|
|
80
|
+
],
|
|
81
|
+
"deny": [
|
|
82
|
+
"Bash(rm -rf /)",
|
|
83
|
+
"Bash(rm -rf /*)",
|
|
84
|
+
"Bash(rm -rf ~)",
|
|
85
|
+
"Bash(rm -rf ~/*)",
|
|
86
|
+
"Bash(sudo *)",
|
|
87
|
+
"Bash(git push --force *)",
|
|
88
|
+
"Bash(git push -f *)",
|
|
89
|
+
"Bash(git reset --hard *)",
|
|
90
|
+
"Bash(git clean -f *)",
|
|
91
|
+
"Bash(dd *)",
|
|
92
|
+
"Bash(mkfs *)",
|
|
93
|
+
"Bash(kill -9 *)",
|
|
94
|
+
"Bash(killall *)",
|
|
95
|
+
"Bash(pkill *)",
|
|
96
|
+
"Bash(shutdown *)",
|
|
97
|
+
"Bash(reboot *)"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# {{APP_NAME}} — Agent Guide
|
|
2
|
+
|
|
3
|
+
This app follows the agent-native core philosophy: the agent and UI are equal partners. Everything the UI can do, the agent can do via actions. The agent always knows what you're looking at via application state. See the root AGENTS.md for full framework documentation.
|
|
4
|
+
|
|
5
|
+
This is an **@agent-native/core** application -- the AI agent and UI share state through a SQL database, with polling for real-time sync.
|
|
6
|
+
|
|
7
|
+
### Core Principles
|
|
8
|
+
|
|
9
|
+
1. **Shared SQL database** -- All app state lives in SQL (SQLite locally, cloud DB via `DATABASE_URL` in production). Core stores: `application_state`, `settings`, `oauth_tokens`, `sessions`, `resources`.
|
|
10
|
+
2. **All AI through agent chat** -- No inline LLM calls. UI delegates to the AI via `sendToAgentChat()` / `agentChat.submit()`.
|
|
11
|
+
3. **Actions for agent operations** -- `pnpm action <name>` dispatches to callable action files in `actions/`.
|
|
12
|
+
4. **Polling for real-time sync** -- Database writes trigger version counter increments that the UI polls to stay in sync.
|
|
13
|
+
5. **Agent can update code** -- The agent can modify this app's source code directly.
|
|
14
|
+
|
|
15
|
+
### Authentication
|
|
16
|
+
|
|
17
|
+
Auth is automatic and environment-driven:
|
|
18
|
+
|
|
19
|
+
- **Dev mode**: Auth is bypassed. `getSession()` returns `{ email: "local@localhost" }`.
|
|
20
|
+
- **Production** (`ACCESS_TOKEN` set): Auth middleware auto-mounts.
|
|
21
|
+
|
|
22
|
+
Use `getSession(event)` server-side and `useSession()` client-side.
|
|
23
|
+
|
|
24
|
+
## Resources
|
|
25
|
+
|
|
26
|
+
Resources are SQL-backed persistent files for notes, learnings, and context.
|
|
27
|
+
|
|
28
|
+
**At the start of every conversation, read these resources (both personal and shared scopes):**
|
|
29
|
+
|
|
30
|
+
1. **`AGENTS.md`** -- user-specific context. Read both `--scope personal` and `--scope shared`.
|
|
31
|
+
2. **`LEARNINGS.md`** -- user preferences, corrections, and patterns. Read both scopes.
|
|
32
|
+
|
|
33
|
+
**Update `LEARNINGS.md` when you learn something important.**
|
|
34
|
+
|
|
35
|
+
| Action | Args | Purpose |
|
|
36
|
+
| ----------------- | ----------------------------------------------------------- | ----------------------- |
|
|
37
|
+
| `resource-read` | `--path <path> [--scope personal\|shared]` | Read a resource |
|
|
38
|
+
| `resource-write` | `--path <path> --content <text> [--scope personal\|shared]` | Write/update a resource |
|
|
39
|
+
| `resource-list` | `[--prefix <path>] [--scope personal\|shared\|all]` | List resources |
|
|
40
|
+
| `resource-delete` | `--path <path> [--scope personal\|shared]` | Delete a resource |
|
|
41
|
+
|
|
42
|
+
## Application State
|
|
43
|
+
|
|
44
|
+
Ephemeral UI state is stored in the SQL `application_state` table, accessed via `readAppState(key)` and `writeAppState(key, value)` from `@agent-native/core/application-state`.
|
|
45
|
+
|
|
46
|
+
| State Key | Purpose | Direction |
|
|
47
|
+
| ------------ | ----------------------------------------- | -------------------------- |
|
|
48
|
+
| `navigation` | Current view | UI -> Agent (read-only) |
|
|
49
|
+
| `navigate` | Navigate command (one-shot, auto-deleted) | Agent -> UI (auto-deleted) |
|
|
50
|
+
|
|
51
|
+
The `navigation` key is written by the UI whenever the route changes. The `navigate` key is a one-shot command: the agent writes it, the UI reads and executes the navigation, then deletes it.
|
|
52
|
+
|
|
53
|
+
## Agent Operations
|
|
54
|
+
|
|
55
|
+
**Always know what the user is currently viewing before you edit anything.** The user's view can change mid-conversation. Stale IDs lead to editing the wrong record.
|
|
56
|
+
|
|
57
|
+
### If you are the built-in agent-chat agent
|
|
58
|
+
|
|
59
|
+
A `<current-screen>` block is auto-injected into every user message with the current view, IDs, and selected item. You can trust it for the first action of a turn without calling `view-screen`. If the user says "this" or "now do X" after several tool calls, the user may have navigated — call `view-screen` again for a fresh snapshot.
|
|
60
|
+
|
|
61
|
+
### If you are an external CLI agent (Claude Code, Codex, Cursor, etc.)
|
|
62
|
+
|
|
63
|
+
You do NOT get auto-injected screen state. **Call `pnpm action view-screen` at the start of every task and before any edit** so you're acting on the IDs the user currently sees, not what was open earlier. Do not rely on cached context from previous turns.
|
|
64
|
+
|
|
65
|
+
### Actions
|
|
66
|
+
|
|
67
|
+
| Action | Args | Purpose |
|
|
68
|
+
| ------------- | ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
|
|
69
|
+
| `view-screen` | | See current UI state |
|
|
70
|
+
| `navigate` | `--view <name>` or `--path <url>` | Navigate the UI |
|
|
71
|
+
| `hello` | `[--name <name>]` | Example script |
|
|
72
|
+
| `db-schema` | | Show all tables, columns, types |
|
|
73
|
+
| `db-query` | `--sql "SELECT ..."` | Run a SELECT query |
|
|
74
|
+
| `db-exec` | `--sql "INSERT ..."` | Run INSERT/UPDATE/DELETE (use for short/multi-column writes) |
|
|
75
|
+
| `db-patch` | `--table <t> --column <c> --where "<clause>" --find "<old>" --replace "<new>"` | Surgical search/replace on a large text column — sends a diff instead of the full value |
|
|
76
|
+
|
|
77
|
+
**Pick the right SQL tool:**
|
|
78
|
+
|
|
79
|
+
- Use `db-exec UPDATE` for short columns, multi-column writes, or computed updates.
|
|
80
|
+
- Use `db-patch` when you only need to tweak a small slice of a **large** text/JSON column (documents, slide HTML, dashboard/form JSON). It saves tokens by sending `{find, replace}` instead of re-transmitting the whole column. Targets exactly one row per call — narrow `--where` by primary key. Supports `--edits '[{find,replace},...]'` for batch edits and `--all` for replace-every-occurrence.
|
|
81
|
+
- If a template-specific action exists (e.g. `edit-document`, `update-slide`), prefer it — those also push live updates to any open collaborative editor.
|
|
82
|
+
|
|
83
|
+
## Skills
|
|
84
|
+
|
|
85
|
+
Skills in `.agents/skills/` provide detailed guidance for each architectural rule. Read them before making changes.
|
|
86
|
+
|
|
87
|
+
| Skill | When to read |
|
|
88
|
+
| --------------------- | -------------------------------------------------------------- |
|
|
89
|
+
| `storing-data` | Before storing or reading any app state |
|
|
90
|
+
| `delegate-to-agent` | Before adding LLM calls or AI delegation |
|
|
91
|
+
| `actions` | Before creating or modifying actions |
|
|
92
|
+
| `real-time-sync` | Before wiring up real-time UI sync |
|
|
93
|
+
| `self-modifying-code` | Before editing source, components, or styles |
|
|
94
|
+
| `capture-learnings` | Before recording user preferences or corrections |
|
|
95
|
+
| `frontend-design` | Before building or restyling any UI component, page, or layout |
|
|
96
|
+
| `agent-engines` | Before switching LLM providers or registering a custom engine |
|
|
97
|
+
|
|
98
|
+
## When Adding Features
|
|
99
|
+
|
|
100
|
+
As you build out this app, follow this checklist for each new feature:
|
|
101
|
+
|
|
102
|
+
1. **Add navigation state entries** -- create or extend `app/hooks/use-navigation-state.ts` to track new routes
|
|
103
|
+
2. **Enhance view-screen** -- make the view-screen script return relevant context for the new view
|
|
104
|
+
3. **Create domain actions** -- add scripts for CRUD operations on new data models
|
|
105
|
+
4. **Create domain skills** -- add `.agents/skills/<feature>/SKILL.md` documenting the data model, storage patterns, and agent operations
|
|
106
|
+
5. **Update this AGENTS.md** -- add the new actions, state keys, and common tasks
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
For code editing and development guidance, read `DEVELOPING.md`.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# {{APP_NAME}} — Development Guide
|
|
2
|
+
|
|
3
|
+
This guide is for development-mode agents editing this app's source code. For app operations and tools, see AGENTS.md.
|
|
4
|
+
|
|
5
|
+
## Framework Basics
|
|
6
|
+
|
|
7
|
+
**Client-side-first rendering:** This app uses React Router v7 framework mode with `ssr: true`, but all app content renders **client-side only**. The server renders only the HTML shell (meta tags, styles, scripts) plus a loading spinner. This is enforced by the `ClientOnly` wrapper in `root.tsx` — never remove it. Browser APIs (`window`, `localStorage`, `new Date()`) are safe to use anywhere in app code because components never run on the server.
|
|
8
|
+
|
|
9
|
+
**Do NOT fetch data server-side** in route loaders. The standard pattern is: server renders a spinner, client hydrates, React Query hooks fetch from `/api/*`.
|
|
10
|
+
|
|
11
|
+
## Adding a Page
|
|
12
|
+
|
|
13
|
+
Create a file in `app/routes/`. The filename determines the URL path:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
app/routes/_index.tsx → /
|
|
17
|
+
app/routes/settings.tsx → /settings
|
|
18
|
+
app/routes/inbox.tsx → /inbox
|
|
19
|
+
app/routes/inbox.$threadId.tsx → /inbox/:threadId
|
|
20
|
+
app/routes/$id.tsx → /:id (dynamic param)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Each route file exports a default component and optional `meta()`:
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
import MyPage from "@/pages/MyPage";
|
|
27
|
+
|
|
28
|
+
export function meta() {
|
|
29
|
+
return [{ title: "My Page" }];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export default function MyPageRoute() {
|
|
33
|
+
return <MyPage />;
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Adding an API Route
|
|
38
|
+
|
|
39
|
+
Create a file in `server/routes/api/`. The filename determines the URL path and HTTP method:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
server/routes/api/items/index.get.ts → GET /api/items
|
|
43
|
+
server/routes/api/items/[id].get.ts → GET /api/items/:id
|
|
44
|
+
server/routes/api/items/[id].patch.ts → PATCH /api/items/:id
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Each file exports a default `defineEventHandler`.
|
|
48
|
+
|
|
49
|
+
## Server Plugins
|
|
50
|
+
|
|
51
|
+
Startup logic (auth, SSE, etc.) lives in `server/plugins/`. Use `defineNitroPlugin` from core:
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import { defineNitroPlugin } from "@agent-native/core";
|
|
55
|
+
|
|
56
|
+
export default defineNitroPlugin(async (nitroApp) => {
|
|
57
|
+
// Runs once at server startup
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Key Imports
|
|
62
|
+
|
|
63
|
+
| Import | Purpose |
|
|
64
|
+
| -------------------------------------------- | -------------------------------------------------------------------------- |
|
|
65
|
+
| `defineNitroPlugin` | Define a server plugin (re-exported from Nitro) |
|
|
66
|
+
| `createDefaultSSEHandler` | Create SSE endpoint for DB change events (server) |
|
|
67
|
+
| `readAppState`, `writeAppState` | Read/write application state (from `@agent-native/core/application-state`) |
|
|
68
|
+
| `readSetting`, `writeSetting` | Read/write settings (from `@agent-native/core/settings`) |
|
|
69
|
+
| `readResource`, `writeResource` | Read/write resources (from `@agent-native/core/resources`) |
|
|
70
|
+
| `defineEventHandler`, `readBody`, `getQuery` | H3 route handler utilities (re-exported) |
|
|
71
|
+
| `sendToAgentChat` | Send messages to agent from UI (client-side) |
|
|
72
|
+
| `agentChat` | Send messages to agent from scripts (server-side) |
|
|
73
|
+
|
|
74
|
+
## Adding a Script
|
|
75
|
+
|
|
76
|
+
Create `actions/my-script.ts` exporting `default async function(args: string[])`.
|
|
77
|
+
Run with: `pnpm action my-script --arg value`
|
|
78
|
+
|
|
79
|
+
## Sending to Agent Chat
|
|
80
|
+
|
|
81
|
+
**From UI:**
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import { sendToAgentChat } from "@agent-native/core";
|
|
85
|
+
sendToAgentChat({
|
|
86
|
+
message: "Generate something",
|
|
87
|
+
context: "...",
|
|
88
|
+
submit: true,
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**From scripts:**
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
import { agentChat } from "@agent-native/core";
|
|
96
|
+
agentChat.submit("Generate something");
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Database
|
|
100
|
+
|
|
101
|
+
By default, data is stored in SQLite at `data/app.db`. For production/cloud deployment, set `DATABASE_URL` to point to a remote database (Turso, Neon, Supabase, D1).
|
|
102
|
+
|
|
103
|
+
| Variable | Required | Description |
|
|
104
|
+
| --------------------- | ---------------- | ---------------------------------------------------------- |
|
|
105
|
+
| `DATABASE_URL` | No (has default) | Database connection string (default: `file:./data/app.db`) |
|
|
106
|
+
| `DATABASE_AUTH_TOKEN` | For remote DBs | Auth token for Turso or other remote databases |
|
|
107
|
+
|
|
108
|
+
## Tech Stack
|
|
109
|
+
|
|
110
|
+
- **Framework:** @agent-native/core + React Router v7 (framework mode)
|
|
111
|
+
- **Frontend:** React 18, Vite, TailwindCSS, shadcn/ui
|
|
112
|
+
- **Routing:** File-based via `flatRoutes()` — SSR shell + client rendering
|
|
113
|
+
- **Backend:** Nitro (via @agent-native/core) — file-based API routing, server plugins, deploy-anywhere presets
|
|
114
|
+
- **State:** SQL-backed (SSE for real-time updates)
|
|
115
|
+
- **Build:** `pnpm build` (React Router build — client + SSR + Nitro server)
|
|
116
|
+
- **Dev:** `pnpm dev` (Vite dev server with both React Router + Nitro plugins)
|
|
117
|
+
- **Start:** `node .output/server/index.mjs` (production)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# React Router generated types
|
|
2
|
+
.react-router/
|
|
3
|
+
|
|
4
|
+
# Logs
|
|
5
|
+
logs
|
|
6
|
+
*.log
|
|
7
|
+
npm-debug.log*
|
|
8
|
+
pnpm-debug.log*
|
|
9
|
+
|
|
10
|
+
node_modules
|
|
11
|
+
dist
|
|
12
|
+
dist-ssr
|
|
13
|
+
*.local
|
|
14
|
+
|
|
15
|
+
# Editor directories and files
|
|
16
|
+
.vscode/*
|
|
17
|
+
!.vscode/extensions.json
|
|
18
|
+
.idea
|
|
19
|
+
.DS_Store
|
|
20
|
+
*.suo
|
|
21
|
+
*.ntvs*
|
|
22
|
+
*.njsproj
|
|
23
|
+
*.sln
|
|
24
|
+
*.sw?
|
|
25
|
+
|
|
26
|
+
# Environment
|
|
27
|
+
.env
|
|
28
|
+
.env.*
|
|
29
|
+
!.env.example
|
|
30
|
+
|
|
31
|
+
# Data
|
|
32
|
+
data/uploads/
|
|
33
|
+
data/settings.json
|
|
34
|
+
data/.sessions.json
|
|
35
|
+
|
|
36
|
+
# Learnings (personal preferences and memory — use learnings.defaults.md for tracked defaults)
|
|
37
|
+
learnings.md
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example script — callable via `pnpm action hello`
|
|
3
|
+
*
|
|
4
|
+
* Scripts export a default async function that receives CLI args.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { parseArgs } from "@agent-native/core";
|
|
8
|
+
import { agentChat } from "@agent-native/core";
|
|
9
|
+
|
|
10
|
+
export default async function hello(args: string[]) {
|
|
11
|
+
const parsed = parseArgs(args);
|
|
12
|
+
const name = parsed.name ?? "world";
|
|
13
|
+
|
|
14
|
+
console.log(`Hello, ${name}!`);
|
|
15
|
+
|
|
16
|
+
// Example: send a message to agent chat (works in Electron context)
|
|
17
|
+
if (parsed["send-chat"] === "true") {
|
|
18
|
+
agentChat.submit(`Hello from the script system! Name: ${name}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navigate the UI to a view.
|
|
3
|
+
*
|
|
4
|
+
* Writes a navigate command to application state which the UI reads and auto-deletes.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* pnpm action navigate --view=home
|
|
8
|
+
* pnpm action navigate --path=/some/route
|
|
9
|
+
*
|
|
10
|
+
* Options:
|
|
11
|
+
* --view View name to navigate to
|
|
12
|
+
* --path URL path to navigate to
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { parseArgs } from "@agent-native/core";
|
|
16
|
+
import { writeAppState } from "@agent-native/core/application-state";
|
|
17
|
+
import type { ScriptTool } from "@agent-native/core";
|
|
18
|
+
|
|
19
|
+
export const tool: ScriptTool = {
|
|
20
|
+
description:
|
|
21
|
+
"Navigate the UI to a specific view or path. Writes a navigate command to application state which the UI reads and auto-deletes.",
|
|
22
|
+
parameters: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {
|
|
25
|
+
view: { type: "string", description: "View name to navigate to" },
|
|
26
|
+
path: { type: "string", description: "URL path to navigate to" },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export async function run(args: Record<string, string>): Promise<string> {
|
|
32
|
+
if (!args.view && !args.path) {
|
|
33
|
+
return "Error: At least --view or --path is required.";
|
|
34
|
+
}
|
|
35
|
+
const nav: Record<string, string> = {};
|
|
36
|
+
if (args.view) nav.view = args.view;
|
|
37
|
+
if (args.path) nav.path = args.path;
|
|
38
|
+
await writeAppState("navigate", nav);
|
|
39
|
+
return `Navigating to ${args.view || args.path}`;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export default async function main(): Promise<void> {
|
|
43
|
+
const args = parseArgs(process.argv.slice(2)) as Record<string, string>;
|
|
44
|
+
if (!args.view && !args.path) {
|
|
45
|
+
console.error(
|
|
46
|
+
"Error: At least --view or --path is required. Usage: pnpm action navigate --view=home",
|
|
47
|
+
);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
const result = await run(args);
|
|
51
|
+
console.error(result);
|
|
52
|
+
console.log(JSON.stringify({ result }));
|
|
53
|
+
}
|