@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
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: real-time-collab
|
|
3
|
+
description: >-
|
|
4
|
+
How to enable multi-user collaborative editing with Yjs CRDT, TipTap
|
|
5
|
+
Collaboration extension, live cursors, and agent-driven edits.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Real-Time Collaboration
|
|
9
|
+
|
|
10
|
+
The framework provides a Yjs-based collaborative editing system in `@agent-native/core/collab`. Multiple users can edit the same document simultaneously with live cursor positions, and the AI agent can make surgical edits that appear in real-time.
|
|
11
|
+
|
|
12
|
+
## Architecture
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
User A (TipTap + Collaboration ext) ←→ Y.XmlFragment ←→ Server (_collab_docs table)
|
|
16
|
+
User B (TipTap + Collaboration ext) ←→ Y.XmlFragment ←→ ↑
|
|
17
|
+
Agent (edit-document action) ←→ search-replace endpoint ─┘
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
- **Yjs Y.Doc** stores the document as a `Y.XmlFragment` (ProseMirror node tree)
|
|
21
|
+
- **TipTap's Collaboration extension** binds the editor to the Y.XmlFragment via `ySyncPlugin`
|
|
22
|
+
- **CollaborationCaret extension** renders remote users' cursors with names and colors
|
|
23
|
+
- **Polling** (every 2s) syncs Y.Doc updates and awareness state between clients and server
|
|
24
|
+
- **SQL `_collab_docs` table** persists Yjs state (base64-encoded binary)
|
|
25
|
+
|
|
26
|
+
## Enabling Collaboration in a Template
|
|
27
|
+
|
|
28
|
+
### 1. Install dependencies
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pnpm add @tiptap/extension-collaboration @tiptap/extension-collaboration-caret @tiptap/y-tiptap --filter your-template
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 2. Add Vite optimizeDeps
|
|
35
|
+
|
|
36
|
+
In `vite.config.ts`:
|
|
37
|
+
```ts
|
|
38
|
+
export default defineConfig({
|
|
39
|
+
plugins: [reactRouter()],
|
|
40
|
+
optimizeDeps: {
|
|
41
|
+
include: [
|
|
42
|
+
"yjs",
|
|
43
|
+
"y-protocols/awareness",
|
|
44
|
+
"@tiptap/extension-collaboration",
|
|
45
|
+
"@tiptap/extension-collaboration-caret",
|
|
46
|
+
"@tiptap/y-tiptap",
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This prevents Vite from re-bundling TipTap in incompatible ways during dev.
|
|
53
|
+
|
|
54
|
+
### 3. Add the collab server plugin
|
|
55
|
+
|
|
56
|
+
Create `server/plugins/collab.ts`:
|
|
57
|
+
```ts
|
|
58
|
+
import { createCollabPlugin } from "@agent-native/core/server";
|
|
59
|
+
export default createCollabPlugin({
|
|
60
|
+
table: "your_table",
|
|
61
|
+
contentColumn: "content",
|
|
62
|
+
idColumn: "id",
|
|
63
|
+
autoSeed: false, // Client-side seeding on first load
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This mounts routes under `/_agent-native/collab/`:
|
|
68
|
+
- `GET /:docId/state` — fetch Y.Doc state
|
|
69
|
+
- `POST /:docId/update` — apply client update
|
|
70
|
+
- `POST /:docId/text` — apply full text (diff-based)
|
|
71
|
+
- `POST /:docId/search-replace` — surgical text find/replace in Y.XmlFragment
|
|
72
|
+
- `POST /:docId/awareness` — sync cursor/presence state
|
|
73
|
+
|
|
74
|
+
### 4. Use the `useCollaborativeDoc` hook
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
import { useCollaborativeDoc, generateTabId } from "@agent-native/core/client";
|
|
78
|
+
|
|
79
|
+
const TAB_ID = generateTabId();
|
|
80
|
+
|
|
81
|
+
const { ydoc, awareness, isLoading, activeUsers } = useCollaborativeDoc({
|
|
82
|
+
docId: documentId,
|
|
83
|
+
requestSource: TAB_ID,
|
|
84
|
+
user: { name: "Steve", email: "steve@example.com", color: "#60a5fa" },
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The hook:
|
|
89
|
+
- Creates a stable `Y.Doc` per docId (never changes identity)
|
|
90
|
+
- Fetches server state and applies it
|
|
91
|
+
- Sends local updates to server
|
|
92
|
+
- Polls for remote updates (every 2s)
|
|
93
|
+
- Tracks active users via awareness
|
|
94
|
+
|
|
95
|
+
### 5. Add Collaboration extension to TipTap
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import Collaboration from "@tiptap/extension-collaboration";
|
|
99
|
+
import CollaborationCaret from "@tiptap/extension-collaboration-caret";
|
|
100
|
+
import { Awareness } from "y-protocols/awareness";
|
|
101
|
+
|
|
102
|
+
// Create awareness locally (must use same y-protocols as the caret extension)
|
|
103
|
+
const awareness = new Awareness(ydoc);
|
|
104
|
+
awareness.setLocalStateField("user", { name, color });
|
|
105
|
+
|
|
106
|
+
const editor = useEditor({
|
|
107
|
+
extensions: [
|
|
108
|
+
StarterKit.configure({ history: false }), // Disable history — Yjs handles undo
|
|
109
|
+
Collaboration.configure({ document: ydoc }),
|
|
110
|
+
CollaborationCaret.configure({
|
|
111
|
+
provider: { awareness },
|
|
112
|
+
user: { name, color },
|
|
113
|
+
}),
|
|
114
|
+
// ... other extensions
|
|
115
|
+
],
|
|
116
|
+
content: initialContent, // Seeds Y.XmlFragment on first load
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Important:** Disable `history` in StarterKit when using Collaboration — Yjs handles undo/redo.
|
|
121
|
+
|
|
122
|
+
### 6. Seed the Y.XmlFragment
|
|
123
|
+
|
|
124
|
+
The Collaboration extension does NOT auto-seed from the `content` prop. You must seed manually:
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
if (!editor || !ydoc || !content) return;
|
|
129
|
+
const fragment = ydoc.getXmlFragment("default");
|
|
130
|
+
if (fragment.length === 0) {
|
|
131
|
+
editor.commands.setContent(parseContent(content));
|
|
132
|
+
}
|
|
133
|
+
}, [editor, ydoc, content]);
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Critical:** Guard against saving empty content back to SQL when the editor is in collab mode but hasn't been seeded yet:
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
onUpdate: ({ editor }) => {
|
|
140
|
+
const md = editor.storage.markdown.getMarkdown();
|
|
141
|
+
if (!md.trim() && ydoc) return; // Don't save empty during seeding
|
|
142
|
+
onChange(md);
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Agent Edits via `edit-document`
|
|
147
|
+
|
|
148
|
+
The `edit-document` action uses search-and-replace:
|
|
149
|
+
```bash
|
|
150
|
+
pnpm action edit-document --id <docId> --find "old text" --replace "new text"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
When collab state exists, the action calls the server's `search-replace` endpoint which:
|
|
154
|
+
1. Walks the Y.XmlFragment tree
|
|
155
|
+
2. Finds the text in Y.XmlText nodes
|
|
156
|
+
3. Applies minimal delete/insert operations
|
|
157
|
+
4. Emits a Yjs update via the poll system
|
|
158
|
+
5. Client receives the update → ySyncPlugin applies a targeted ProseMirror transaction → cursor preserved
|
|
159
|
+
|
|
160
|
+
**Important:** Actions run in a separate process, so they must use the HTTP endpoint (not the collab module directly) to emit updates to the server's poll system.
|
|
161
|
+
|
|
162
|
+
## Key Modules
|
|
163
|
+
|
|
164
|
+
| Module | Path | Purpose |
|
|
165
|
+
|--------|------|---------|
|
|
166
|
+
| `@agent-native/core/collab` | `packages/core/src/collab/` | Server-side Yjs management |
|
|
167
|
+
| `useCollaborativeDoc` | `packages/core/src/collab/client.ts` | Client hook |
|
|
168
|
+
| `createCollabPlugin` | `packages/core/src/server/collab-plugin.ts` | Route mounting |
|
|
169
|
+
| `searchAndReplace` | `packages/core/src/collab/ydoc-manager.ts` | Y.XmlFragment text mutation |
|
|
170
|
+
|
|
171
|
+
## Common Pitfalls
|
|
172
|
+
|
|
173
|
+
1. **TipTap version mismatch** — All `@tiptap/*` packages must be the same version. The Collaboration extension requires `editor.utils` which was added in v3.22.2.
|
|
174
|
+
|
|
175
|
+
2. **Empty editor on first load** — The Collaboration extension uses Y.XmlFragment as the source of truth. If the fragment is empty, the editor shows empty. Seed manually (see above).
|
|
176
|
+
|
|
177
|
+
3. **Data loss from empty saves** — The `onUpdate` handler fires when the editor initializes with an empty Y.XmlFragment. If this empty content is saved to SQL, it overwrites the real content. Always guard against saving empty content in collab mode.
|
|
178
|
+
|
|
179
|
+
4. **Stale content on document switch** — Use `key={documentId}` on the editor component to force a full remount when switching documents. This ensures the Y.Doc, seeding, and editor state are all fresh.
|
|
180
|
+
|
|
181
|
+
5. **Separate process for actions** — Actions run via `pnpm action` in a new Node.js process. The in-memory EventEmitter in the action process doesn't reach the dev server's poll system. Use HTTP endpoints for collab operations from actions.
|
|
182
|
+
|
|
183
|
+
6. **Vite dep optimization** — Adding Yjs-related packages to a template changes Vite's dependency bundling, which can break TipTap's React integration. Always add them to `optimizeDeps.include`.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: real-time-sync
|
|
3
|
+
description: >-
|
|
4
|
+
How to keep the UI in sync with agent changes via polling. Use when wiring
|
|
5
|
+
query invalidation for new data models, debugging UI not updating, or
|
|
6
|
+
understanding jitter prevention.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Real-Time Sync (Polling)
|
|
10
|
+
|
|
11
|
+
## Rule
|
|
12
|
+
|
|
13
|
+
The UI stays in sync with agent/script changes through database polling. When the agent writes to the database, the UI detects the change and updates automatically — no manual refresh needed.
|
|
14
|
+
|
|
15
|
+
## Why
|
|
16
|
+
|
|
17
|
+
The agent modifies data in SQL, but the UI runs in the browser. Polling bridges this gap: every database write increments a version counter, the `useDbSync()` hook polls for version changes, and React Query invalidates the relevant caches. This is what makes database writes feel real-time.
|
|
18
|
+
|
|
19
|
+
## How It Works
|
|
20
|
+
|
|
21
|
+
1. **Server** increments a version counter on every database write. The `/_agent-native/poll` endpoint returns the current version and any events since the last poll.
|
|
22
|
+
|
|
23
|
+
2. **Client** polls for changes and invalidates React Query caches:
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { useDbSync } from "@agent-native/core";
|
|
27
|
+
useDbSync({ queryClient, queryKeys: ["items", "settings"] });
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
3. When the agent writes to the database, the version increments, polling detects it, and React Query refetches the affected queries.
|
|
31
|
+
|
|
32
|
+
## Don't
|
|
33
|
+
|
|
34
|
+
- Don't create manual polling loops — `useDbSync()` handles it (polls every 2 seconds by default)
|
|
35
|
+
- Don't create your own fetch-based polling alongside `useDbSync` — use the `onEvent` callback for custom handling
|
|
36
|
+
|
|
37
|
+
## Query Key Mapping
|
|
38
|
+
|
|
39
|
+
By default, `useDbSync` invalidates all listed query keys on every change. For apps with multiple data models, this causes unnecessary refetches. Use event-based filtering via the `onEvent` callback:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
useDbSync({
|
|
43
|
+
queryClient,
|
|
44
|
+
queryKeys: [], // don't auto-invalidate everything
|
|
45
|
+
onEvent: (data) => {
|
|
46
|
+
if (data.source === "settings") {
|
|
47
|
+
queryClient.invalidateQueries({ queryKey: ["settings"] });
|
|
48
|
+
} else if (data.source === "app-state") {
|
|
49
|
+
queryClient.invalidateQueries({ queryKey: ["navigate-command"] });
|
|
50
|
+
} else {
|
|
51
|
+
queryClient.invalidateQueries({ queryKey: ["items"] });
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
To prevent cache thrashing during rapid agent writes, set `staleTime` on your queries:
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
useQuery({
|
|
61
|
+
queryKey: ["items"],
|
|
62
|
+
queryFn: fetchItems,
|
|
63
|
+
staleTime: 2000, // don't refetch within 2 seconds
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Troubleshooting
|
|
68
|
+
|
|
69
|
+
| Symptom | Check |
|
|
70
|
+
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
71
|
+
| UI not updating after agent writes | Is `useDbSync` called with the correct `queryClient`? Are the `queryKeys` matching your `useQuery` keys? |
|
|
72
|
+
| Poll endpoint not responding | Is `/_agent-native/poll` accessible? Is the server running? |
|
|
73
|
+
| High CPU / event storms | The agent is writing rapidly. Add `staleTime` to queries and use event-based filtering. |
|
|
74
|
+
|
|
75
|
+
## Jitter Prevention
|
|
76
|
+
|
|
77
|
+
When the agent writes to application-state via script helpers (`writeAppState`, `deleteAppState`), the write is automatically tagged with `requestSource: "agent"`. This prevents the UI from overwriting active user edits when it receives the change event.
|
|
78
|
+
|
|
79
|
+
### How it works
|
|
80
|
+
|
|
81
|
+
1. **Agent writes** are tagged: the script helpers in `@agent-native/core/application-state` pass `{ requestSource: "agent" }` to the store.
|
|
82
|
+
2. **UI writes** are tagged: templates send a per-tab ID via the `X-Request-Source` header on PUT/DELETE requests to application-state endpoints.
|
|
83
|
+
3. **Polling filters**: `useDbSync()` accepts an `ignoreSource` option. The UI passes its own tab ID so it ignores events from its own writes — but still picks up events from agents, other tabs, and scripts.
|
|
84
|
+
|
|
85
|
+
### Template setup
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
// app/lib/tab-id.ts
|
|
89
|
+
export const TAB_ID = `tab-${Math.random().toString(36).slice(2, 8)}`;
|
|
90
|
+
|
|
91
|
+
// app/root.tsx
|
|
92
|
+
import { TAB_ID } from "@/lib/tab-id";
|
|
93
|
+
|
|
94
|
+
useDbSync({
|
|
95
|
+
queryClient,
|
|
96
|
+
queryKeys: ["app-state", "settings"],
|
|
97
|
+
ignoreSource: TAB_ID,
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The `use-navigation-state.ts` hook sends the same `TAB_ID` in the `X-Request-Source` header when writing navigation state, so the tab that wrote the state does not refetch it.
|
|
102
|
+
|
|
103
|
+
### Why this matters
|
|
104
|
+
|
|
105
|
+
Without jitter prevention, a cycle occurs: the UI writes state, polling detects the change, the UI refetches and re-renders, potentially overwriting what the user is actively editing. With `ignoreSource`, the UI only reacts to changes from other sources (agent scripts, other browser tabs, other users).
|
|
106
|
+
|
|
107
|
+
## Related Skills
|
|
108
|
+
|
|
109
|
+
- **storing-data** — Application-state and settings are the data stores that sync via polling
|
|
110
|
+
- **context-awareness** — Navigation state writes use jitter prevention to avoid overwriting active edits
|
|
111
|
+
- **scripts** — Script outputs written to the database trigger poll events
|
|
112
|
+
- **self-modifying-code** — Agent code edits trigger poll events; rapid edits can cause event storms
|
|
@@ -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,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: storing-data
|
|
3
|
+
description: >-
|
|
4
|
+
How and where to store application data. Use when adding new data models,
|
|
5
|
+
deciding between settings vs Drizzle tables, reading/writing app config,
|
|
6
|
+
or working with application state.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Storing Data
|
|
10
|
+
|
|
11
|
+
## Where Data Goes
|
|
12
|
+
|
|
13
|
+
All data lives in one SQLite database (`data/app.db`). In production, set `DATABASE_URL` to point to Turso, Neon, Supabase, or D1 — same code, no changes needed.
|
|
14
|
+
|
|
15
|
+
There are three storage layers, each for a different kind of data:
|
|
16
|
+
|
|
17
|
+
### 1. Settings — app configuration
|
|
18
|
+
|
|
19
|
+
Key-value store for persistent config that the user or agent can change. Theme, preferences, integration API keys, availability schedules.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { getSetting, putSetting } from "@agent-native/core/settings";
|
|
23
|
+
|
|
24
|
+
// Read (returns null if not set)
|
|
25
|
+
const prefs = await getSetting("user-preferences");
|
|
26
|
+
|
|
27
|
+
// Write (creates or replaces)
|
|
28
|
+
await putSetting("user-preferences", { theme: "dark", density: "comfortable" });
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
From scripts:
|
|
32
|
+
```ts
|
|
33
|
+
import { readSetting, writeSetting } from "@agent-native/core/settings";
|
|
34
|
+
const prefs = await readSetting("user-preferences");
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
SSE: writes automatically notify the UI via `{ source: "settings", type: "change", key }`.
|
|
38
|
+
|
|
39
|
+
### 2. Application State — ephemeral UI state
|
|
40
|
+
|
|
41
|
+
For state the agent and UI share in real-time: what the user is looking at, compose drafts, navigation commands. Scoped by session — cleared between sessions.
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import { readAppState, writeAppState, deleteAppState, listAppState } from "@agent-native/core/application-state";
|
|
45
|
+
|
|
46
|
+
// Write state (UI updates instantly via SSE)
|
|
47
|
+
await writeAppState("navigate", { view: "inbox", threadId: "t-123" });
|
|
48
|
+
|
|
49
|
+
// Read state
|
|
50
|
+
const nav = await readAppState("navigation");
|
|
51
|
+
|
|
52
|
+
// List by prefix (e.g., all compose drafts)
|
|
53
|
+
const drafts = await listAppState("compose-");
|
|
54
|
+
|
|
55
|
+
// Delete (one-shot commands: UI reads, then agent or UI deletes)
|
|
56
|
+
await deleteAppState("navigate");
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
SSE: writes automatically notify the UI via `{ source: "app-state", type: "change", key }`.
|
|
60
|
+
|
|
61
|
+
### 3. Drizzle Tables — structured domain data
|
|
62
|
+
|
|
63
|
+
For data with schemas, relationships, and queries: forms, bookings, emails, compositions. Define tables in `server/db/schema.ts` using Drizzle ORM.
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
import { table, text, integer } from "@agent-native/core/db/schema";
|
|
67
|
+
|
|
68
|
+
export const bookings = table("bookings", {
|
|
69
|
+
id: text("id").primaryKey(),
|
|
70
|
+
name: text("name").notNull(),
|
|
71
|
+
email: text("email").notNull(),
|
|
72
|
+
startTime: integer("start_time").notNull(),
|
|
73
|
+
endTime: integer("end_time").notNull(),
|
|
74
|
+
});
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Query via `getDb()` singleton from `server/db/index.ts`.
|
|
78
|
+
|
|
79
|
+
### 4. OAuth Tokens — credentials
|
|
80
|
+
|
|
81
|
+
For OAuth tokens acquired at runtime (Google, etc.). Never store these in settings — use the dedicated encrypted store.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import { saveOAuthTokens, getOAuthTokens, listOAuthAccounts } from "@agent-native/core/oauth-tokens";
|
|
85
|
+
|
|
86
|
+
await saveOAuthTokens("google", "user@gmail.com", { access_token: "...", refresh_token: "..." });
|
|
87
|
+
const tokens = await getOAuthTokens("google", "user@gmail.com");
|
|
88
|
+
const accounts = await listOAuthAccounts("google");
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Which Layer to Use
|
|
92
|
+
|
|
93
|
+
| Data | Layer | Why |
|
|
94
|
+
|------|-------|-----|
|
|
95
|
+
| User preferences, theme, config | Settings | Persistent KV, SSE notifications, simple read/write |
|
|
96
|
+
| What the user sees on screen | Application State | Ephemeral, real-time sync, agent ↔ UI bridge |
|
|
97
|
+
| Compose drafts, wizard steps | Application State | Temporary, deleted when done |
|
|
98
|
+
| Domain records (forms, bookings) | Drizzle table | Needs schema, queries, relationships |
|
|
99
|
+
| OAuth refresh tokens | OAuth Tokens | Secure, per-provider, per-account |
|
|
100
|
+
|
|
101
|
+
## Environment Variables
|
|
102
|
+
|
|
103
|
+
Infrastructure config stays in `.env` — these differ per deployment:
|
|
104
|
+
|
|
105
|
+
- `DATABASE_URL` — database connection (default: `file:./data/app.db`)
|
|
106
|
+
- `DATABASE_AUTH_TOKEN` — for remote databases
|
|
107
|
+
- `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` — OAuth app credentials
|
|
108
|
+
- `ACCESS_TOKEN` — production auth token
|
|
109
|
+
|
|
110
|
+
Everything else (user settings, tokens, app state) goes in SQL.
|
|
@@ -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
|
+
}
|