@agent-native/core 0.7.12 → 0.7.13
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 +1 -1
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +26 -8
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts +19 -0
- package/dist/agent/engine/builder-engine.d.ts.map +1 -0
- package/dist/agent/engine/builder-engine.js +430 -0
- package/dist/agent/engine/builder-engine.js.map +1 -0
- package/dist/agent/engine/builtin.d.ts.map +1 -1
- package/dist/agent/engine/builtin.js +26 -10
- package/dist/agent/engine/builtin.js.map +1 -1
- package/dist/agent/engine/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +20 -1
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +49 -1
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/types.d.ts +30 -0
- package/dist/agent/engine/types.d.ts.map +1 -1
- package/dist/agent/engine/types.js +19 -1
- package/dist/agent/engine/types.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +65 -7
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +11 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts +4 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +1 -0
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/types.d.ts +8 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/checkpoints/service.d.ts +1 -0
- package/dist/checkpoints/service.d.ts.map +1 -1
- package/dist/checkpoints/service.js +26 -2
- package/dist/checkpoints/service.js.map +1 -1
- package/dist/cli/create.d.ts +30 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +25 -13
- package/dist/cli/create.js.map +1 -1
- package/dist/client/AgentPanel.js +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +49 -10
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ConnectBuilderCard.d.ts +1 -7
- package/dist/client/ConnectBuilderCard.d.ts.map +1 -1
- package/dist/client/ConnectBuilderCard.js +30 -132
- package/dist/client/ConnectBuilderCard.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +30 -9
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/analytics.d.ts +5 -8
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +53 -11
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/builder-mark.d.ts +9 -0
- package/dist/client/builder-mark.d.ts.map +1 -0
- package/dist/client/builder-mark.js +10 -0
- package/dist/client/builder-mark.js.map +1 -0
- package/dist/client/components/ui/popover.d.ts +8 -0
- package/dist/client/components/ui/popover.d.ts.map +1 -0
- package/dist/client/components/ui/popover.js +11 -0
- package/dist/client/components/ui/popover.js.map +1 -0
- package/dist/client/composer/ComposerPlusMenu.d.ts +2 -0
- package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -0
- package/dist/client/composer/ComposerPlusMenu.js +244 -0
- package/dist/client/composer/ComposerPlusMenu.js.map +1 -0
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +9 -5
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
- package/dist/client/composer/useVoiceDictation.js +4 -2
- package/dist/client/composer/useVoiceDictation.js.map +1 -1
- package/dist/client/error-format.d.ts +2 -0
- package/dist/client/error-format.d.ts.map +1 -0
- package/dist/client/error-format.js +31 -0
- package/dist/client/error-format.js.map +1 -0
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/observability/ObservabilityDashboard.d.ts +5 -0
- package/dist/client/observability/ObservabilityDashboard.d.ts.map +1 -0
- package/dist/client/observability/ObservabilityDashboard.js +169 -0
- package/dist/client/observability/ObservabilityDashboard.js.map +1 -0
- package/dist/client/observability/ThumbsFeedback.d.ts +8 -0
- package/dist/client/observability/ThumbsFeedback.d.ts.map +1 -0
- package/dist/client/observability/ThumbsFeedback.js +64 -0
- package/dist/client/observability/ThumbsFeedback.js.map +1 -0
- package/dist/client/observability/index.d.ts +4 -0
- package/dist/client/observability/index.d.ts.map +1 -0
- package/dist/client/observability/index.js +4 -0
- package/dist/client/observability/index.js.map +1 -0
- package/dist/client/observability/useObservability.d.ts +128 -0
- package/dist/client/observability/useObservability.d.ts.map +1 -0
- package/dist/client/observability/useObservability.js +109 -0
- package/dist/client/observability/useObservability.js.map +1 -0
- package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +34 -92
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/org/RequireActiveOrg.d.ts +33 -0
- package/dist/client/org/RequireActiveOrg.d.ts.map +1 -0
- package/dist/client/org/RequireActiveOrg.js +63 -0
- package/dist/client/org/RequireActiveOrg.js.map +1 -0
- package/dist/client/org/hooks.d.ts.map +1 -1
- package/dist/client/org/hooks.js +50 -15
- package/dist/client/org/hooks.js.map +1 -1
- package/dist/client/org/index.d.ts +1 -0
- package/dist/client/org/index.d.ts.map +1 -1
- package/dist/client/org/index.js +1 -0
- package/dist/client/org/index.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +3 -3
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/settings/AutomationsSection.js +1 -1
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/BrowserSection.js +1 -1
- package/dist/client/settings/BrowserSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +112 -12
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +10 -4
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts +26 -0
- package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/client/settings/useBuilderStatus.js +128 -4
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts +2 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +6 -2
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/transcription/BuilderTranscriptionCta.d.ts +9 -0
- package/dist/client/transcription/BuilderTranscriptionCta.d.ts.map +1 -0
- package/dist/client/transcription/BuilderTranscriptionCta.js +18 -0
- package/dist/client/transcription/BuilderTranscriptionCta.js.map +1 -0
- package/dist/client/transcription/use-live-transcription.d.ts +29 -0
- package/dist/client/transcription/use-live-transcription.d.ts.map +1 -0
- package/dist/client/transcription/use-live-transcription.js +156 -0
- package/dist/client/transcription/use-live-transcription.js.map +1 -0
- package/dist/client/use-builder-enabled.d.ts +17 -0
- package/dist/client/use-builder-enabled.d.ts.map +1 -0
- package/dist/client/use-builder-enabled.js +36 -0
- package/dist/client/use-builder-enabled.js.map +1 -0
- package/dist/client/use-db-sync.d.ts.map +1 -1
- package/dist/client/use-db-sync.js +4 -2
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/client/useProductionAgent.d.ts.map +1 -1
- package/dist/client/useProductionAgent.js +3 -1
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/db/migrations.d.ts +9 -0
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +75 -10
- package/dist/db/migrations.js.map +1 -1
- package/dist/file-upload/builder.d.ts.map +1 -1
- package/dist/file-upload/builder.js +11 -4
- package/dist/file-upload/builder.js.map +1 -1
- package/dist/jobs/tools.d.ts.map +1 -1
- package/dist/jobs/tools.js +137 -161
- package/dist/jobs/tools.js.map +1 -1
- package/dist/notifications/actions.d.ts +2 -2
- package/dist/notifications/actions.d.ts.map +1 -1
- package/dist/notifications/actions.js +77 -69
- package/dist/notifications/actions.js.map +1 -1
- package/dist/observability/evals.d.ts +22 -0
- package/dist/observability/evals.d.ts.map +1 -0
- package/dist/observability/evals.js +371 -0
- package/dist/observability/evals.js.map +1 -0
- package/dist/observability/experiments.d.ts +24 -0
- package/dist/observability/experiments.d.ts.map +1 -0
- package/dist/observability/experiments.js +274 -0
- package/dist/observability/experiments.js.map +1 -0
- package/dist/observability/feedback.d.ts +14 -0
- package/dist/observability/feedback.d.ts.map +1 -0
- package/dist/observability/feedback.js +256 -0
- package/dist/observability/feedback.js.map +1 -0
- package/dist/observability/index.d.ts +6 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/plugin.d.ts +2 -0
- package/dist/observability/plugin.d.ts.map +1 -0
- package/dist/observability/plugin.js +12 -0
- package/dist/observability/plugin.js.map +1 -0
- package/dist/observability/routes.d.ts +68 -0
- package/dist/observability/routes.d.ts.map +1 -0
- package/dist/observability/routes.js +301 -0
- package/dist/observability/routes.js.map +1 -0
- package/dist/observability/store.d.ts +77 -0
- package/dist/observability/store.d.ts.map +1 -0
- package/dist/observability/store.js +976 -0
- package/dist/observability/store.js.map +1 -0
- package/dist/observability/traces.d.ts +37 -0
- package/dist/observability/traces.d.ts.map +1 -0
- package/dist/observability/traces.js +182 -0
- package/dist/observability/traces.js.map +1 -0
- package/dist/observability/types.d.ts +159 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +16 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/onboarding/default-steps.d.ts.map +1 -1
- package/dist/onboarding/default-steps.js +6 -5
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/onboarding/types.d.ts +10 -1
- package/dist/onboarding/types.d.ts.map +1 -1
- package/dist/org/context.d.ts +8 -1
- package/dist/org/context.d.ts.map +1 -1
- package/dist/org/context.js +163 -6
- package/dist/org/context.js.map +1 -1
- package/dist/org/handlers.d.ts.map +1 -1
- package/dist/org/handlers.js +49 -30
- package/dist/org/handlers.js.map +1 -1
- package/dist/progress/actions.d.ts +3 -0
- package/dist/progress/actions.d.ts.map +1 -1
- package/dist/progress/actions.js +86 -110
- package/dist/progress/actions.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/progress/routes.js +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.d.ts +10 -0
- package/dist/scripts/agent-engines/manage-agent-engine.d.ts.map +1 -0
- package/dist/scripts/agent-engines/manage-agent-engine.js +47 -0
- package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -0
- package/dist/scripts/agent-engines/set-agent-engine.js +2 -2
- package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +39 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +707 -443
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-teams.js +1 -1
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/analytics.d.ts +5 -6
- package/dist/server/analytics.d.ts.map +1 -1
- package/dist/server/analytics.js +6 -14
- package/dist/server/analytics.js.map +1 -1
- package/dist/server/app-name.d.ts +5 -2
- package/dist/server/app-name.d.ts.map +1 -1
- package/dist/server/app-name.js +14 -3
- package/dist/server/app-name.js.map +1 -1
- package/dist/server/app-url.d.ts.map +1 -1
- package/dist/server/app-url.js +10 -1
- package/dist/server/app-url.js.map +1 -1
- package/dist/server/auth.d.ts +2 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +153 -2
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts +2 -0
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js +4 -0
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/builder-browser.d.ts +59 -1
- package/dist/server/builder-browser.d.ts.map +1 -1
- package/dist/server/builder-browser.js +127 -11
- package/dist/server/builder-browser.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +208 -6
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/credential-provider.d.ts +7 -0
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +10 -0
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +29 -4
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/poll.d.ts.map +1 -1
- package/dist/server/poll.js +46 -5
- package/dist/server/poll.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +2 -1
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts.map +1 -1
- package/dist/server/transcribe-voice.js +44 -5
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/styles/agent-native.css +11 -2
- package/dist/templates/default/.agents/skills/progress/SKILL.md +14 -12
- package/dist/templates/default/app/root.tsx +7 -0
- package/dist/transcription/builder-transcription.d.ts +27 -0
- package/dist/transcription/builder-transcription.d.ts.map +1 -0
- package/dist/transcription/builder-transcription.js +41 -0
- package/dist/transcription/builder-transcription.js.map +1 -0
- package/dist/triggers/actions.d.ts +3 -0
- package/dist/triggers/actions.d.ts.map +1 -1
- package/dist/triggers/actions.js +189 -213
- package/dist/triggers/actions.js.map +1 -1
- package/docs/content/agent-mentions.md +1 -1
- package/docs/content/automations.md +22 -19
- package/docs/content/cloneable-saas.md +2 -2
- package/docs/content/deployment.md +21 -61
- package/docs/content/getting-started.md +1 -1
- package/docs/content/key-concepts.md +1 -1
- package/docs/content/{enterprise-workspace.md → multi-app-workspace.md} +3 -3
- package/docs/content/multi-tenancy.md +1 -1
- package/docs/content/progress.md +11 -11
- package/docs/content/template-dispatch.md +3 -3
- package/docs/content/workspace-management.md +1 -1
- package/package.json +9 -2
- package/src/templates/default/.agents/skills/progress/SKILL.md +14 -12
- package/src/templates/default/app/root.tsx +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/triggers/actions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/triggers/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -166,6 +166,6 @@ All reference types follow the same pattern: select from the popover, and the re
|
|
|
166
166
|
|
|
167
167
|
## Sub-agent selection {#sub-agent-selection}
|
|
168
168
|
|
|
169
|
-
The main agent can also use custom agents when spawning sub-agents with `spawn
|
|
169
|
+
The main agent can also use custom agents when spawning sub-agents with `agent-teams` (action: "spawn").
|
|
170
170
|
|
|
171
171
|
Pass the `agent` parameter to choose a profile from `agents/*.md`. That profile's instructions are added to the delegated run, and its `model` frontmatter can override the default model for that sub-agent.
|
|
@@ -85,15 +85,15 @@ Integrations register events at module load time. The bus validates payloads aga
|
|
|
85
85
|
|
|
86
86
|
### Built-in events {#built-in-events}
|
|
87
87
|
|
|
88
|
-
| Event | Source
|
|
89
|
-
| ---------------------- |
|
|
90
|
-
| `test.event.fired` | Manual / `fire-test
|
|
91
|
-
| `agent.turn.completed` | Agent chat
|
|
92
|
-
| `calendar.*` | Calendar integration
|
|
93
|
-
| `clip.*` | Clips integration
|
|
94
|
-
| `mail.*` | Mail integration
|
|
88
|
+
| Event | Source |
|
|
89
|
+
| ---------------------- | ---------------------------------------------- |
|
|
90
|
+
| `test.event.fired` | Manual / `manage-automations` action=fire-test |
|
|
91
|
+
| `agent.turn.completed` | Agent chat |
|
|
92
|
+
| `calendar.*` | Calendar integration |
|
|
93
|
+
| `clip.*` | Clips integration |
|
|
94
|
+
| `mail.*` | Mail integration |
|
|
95
95
|
|
|
96
|
-
Call `list-
|
|
96
|
+
Call `manage-automations` with `action=list-events` from the agent to see all registered events with descriptions and payload schemas for the current template.
|
|
97
97
|
|
|
98
98
|
### Emitting custom events {#emitting-events}
|
|
99
99
|
|
|
@@ -183,15 +183,18 @@ Keys are ad-hoc secrets created by users or the agent for automation use (e.g. `
|
|
|
183
183
|
|
|
184
184
|
## Agent tools {#agent-tools}
|
|
185
185
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
| `list-
|
|
191
|
-
| `
|
|
192
|
-
| `
|
|
193
|
-
| `
|
|
194
|
-
| `
|
|
186
|
+
All automation operations are accessed through a single `manage-automations` tool with an `action` parameter:
|
|
187
|
+
|
|
188
|
+
| Action | Purpose |
|
|
189
|
+
| ------------- | -------------------------------------------------------------------- |
|
|
190
|
+
| `list-events` | Discover all registered events with descriptions and payload schemas |
|
|
191
|
+
| `list` | List all automations with status; filter by domain or enabled |
|
|
192
|
+
| `define` | Create a new automation (name, trigger type, event, condition, body) |
|
|
193
|
+
| `update` | Update an existing automation (enabled, condition, body) |
|
|
194
|
+
| `delete` | Delete an automation (always confirms with user first) |
|
|
195
|
+
| `fire-test` | Emit a `test.event.fired` event to validate automations |
|
|
196
|
+
|
|
197
|
+
Additional tool: `web-request` — outbound HTTP with `${keys.NAME}` substitution.
|
|
195
198
|
|
|
196
199
|
## API endpoints {#api}
|
|
197
200
|
|
|
@@ -220,9 +223,9 @@ Keys are ad-hoc secrets created by users or the agent for automation use (e.g. `
|
|
|
220
223
|
|
|
221
224
|
**Agent flow:**
|
|
222
225
|
|
|
223
|
-
1. Calls `list-
|
|
226
|
+
1. Calls `manage-automations` with `action=list-events` — finds `calendar.booking.created`.
|
|
224
227
|
2. Confirms the plan with the user.
|
|
225
|
-
3. Calls `define
|
|
228
|
+
3. Calls `manage-automations` with `action=define`:
|
|
226
229
|
- `name`: `slack-on-builder-booking`
|
|
227
230
|
- `trigger_type`: `event`
|
|
228
231
|
- `event`: `calendar.booking.created`
|
|
@@ -49,7 +49,7 @@ Every cloneable SaaS follows the same lifecycle:
|
|
|
49
49
|
pnpm dlx @agent-native/core create my-platform
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
The CLI shows a multi-select picker. Pick one app (standalone) or several (workspace — apps share auth, brand, agent config, and database). Each picked template is scaffolded into `apps/<name>/` with every file you need. See [Getting Started](/docs) for the full flow or [
|
|
52
|
+
The CLI shows a multi-select picker. Pick one app (standalone) or several (workspace — apps share auth, brand, agent config, and database). Each picked template is scaffolded into `apps/<name>/` with every file you need. See [Getting Started](/docs) for the full flow or [Multi-App Workspace](/docs/multi-app-workspace) for the workspace story.
|
|
53
53
|
|
|
54
54
|
### 2. Use it immediately
|
|
55
55
|
|
|
@@ -92,7 +92,7 @@ Want to publish a new template — your own cloneable SaaS? See [Creating Templa
|
|
|
92
92
|
|
|
93
93
|
## What's next
|
|
94
94
|
|
|
95
|
-
- [**
|
|
95
|
+
- [**Multi-App Workspace**](/docs/multi-app-workspace) — bundle many cloneable-SaaS apps into one monorepo that shares auth, brand, and agent instructions
|
|
96
96
|
- [**Key Concepts**](/docs/key-concepts) — the architecture that makes this work
|
|
97
97
|
- [**Deployment**](/docs/deployment) — ship your forked app
|
|
98
98
|
- [**Creating Templates**](/docs/creating-templates) — author and publish a new cloneable SaaS
|
|
@@ -9,7 +9,7 @@ Agent-native apps use [Nitro](https://nitro.build) under the hood, which means y
|
|
|
9
9
|
|
|
10
10
|
## Workspace Deploy: One Origin, Many Apps {#workspace-deploy}
|
|
11
11
|
|
|
12
|
-
If your project is a [workspace](/docs/
|
|
12
|
+
If your project is a [workspace](/docs/multi-app-workspace), you can ship every app in it to a single origin with one command:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
agent-native deploy
|
|
@@ -125,58 +125,7 @@ export default defineConfig({
|
|
|
125
125
|
});
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
…or set `NITRO_PRESET=netlify` at build time
|
|
129
|
-
|
|
130
|
-
### Monorepo template pattern {#netlify-monorepo}
|
|
131
|
-
|
|
132
|
-
For a workspace template at `templates/<name>/`, commit a `netlify.toml` at the template's root. All paths are **repo-root-relative** (Netlify's `base` should stay empty — the whole repo is the build context so pnpm workspace resolution works):
|
|
133
|
-
|
|
134
|
-
```toml
|
|
135
|
-
# templates/<name>/netlify.toml
|
|
136
|
-
[build]
|
|
137
|
-
command = "pnpm install && NITRO_PRESET=netlify pnpm --filter <name> build"
|
|
138
|
-
publish = "templates/<name>/dist"
|
|
139
|
-
functions = "templates/<name>/.netlify/functions-internal"
|
|
140
|
-
|
|
141
|
-
[build.environment]
|
|
142
|
-
NITRO_PRESET = "netlify"
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Notes:
|
|
146
|
-
|
|
147
|
-
- `.netlify/functions-internal` is where Nitro 3 writes its server functions — Netlify picks them up from there.
|
|
148
|
-
- When you create a new Netlify site via the dashboard, its monorepo auto-detect sometimes picks the wrong template (e.g. selecting `templates/calendar` when you wanted `templates/<name>`). Manually clear the base directory and let `netlify.toml` drive the build.
|
|
149
|
-
- Do not put `netlify.toml` at the repo root — each template manages its own.
|
|
150
|
-
|
|
151
|
-
### Always build on Netlify CI {#netlify-ci-only}
|
|
152
|
-
|
|
153
|
-
**Do not run `netlify deploy --prod` from your Mac.** The framework's Nitro build (`createDanglingOptionalDepStubs()` in `packages/core/src/deploy/build.ts`) stubs platform-specific optional native deps that aren't installed on the current OS. On macOS, that stubs out the Linux `libsql` binaries; on Netlify's Linux runtime the server function then crashes with:
|
|
154
|
-
|
|
155
|
-
```
|
|
156
|
-
Cannot find module '@libsql/linux-x64-gnu'
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
Letting Netlify CI run the build fixes this — on Linux, pnpm installs the real binary and the stub creator skips it. Push to the branch connected to the Netlify site and let it build.
|
|
160
|
-
|
|
161
|
-
### Env vars {#netlify-env}
|
|
162
|
-
|
|
163
|
-
From the template directory, link the site and import `.env`:
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
cd templates/<name>
|
|
167
|
-
netlify link --name <netlify-site-name>
|
|
168
|
-
netlify env:import .env
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
Then set deployment-only vars that aren't in `.env`:
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
netlify env:set BETTER_AUTH_URL https://<your-domain>
|
|
175
|
-
netlify env:set BETTER_AUTH_SECRET "$(openssl rand -hex 32)"
|
|
176
|
-
netlify env:set NITRO_PRESET netlify
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
`BETTER_AUTH_URL` must match the public URL the app is served on (custom domain or `<site>.netlify.app`). `BETTER_AUTH_SECRET` should be a fresh 32-byte hex — do not reuse the dev secret.
|
|
128
|
+
…or set `NITRO_PRESET=netlify` at build time.
|
|
180
129
|
|
|
181
130
|
## Cloudflare Pages {#cloudflare-pages}
|
|
182
131
|
|
|
@@ -187,14 +136,6 @@ export default defineConfig({
|
|
|
187
136
|
});
|
|
188
137
|
```
|
|
189
138
|
|
|
190
|
-
### External Postgres latency {#cloudflare-hyperdrive}
|
|
191
|
-
|
|
192
|
-
Cloudflare Workers open a fresh connection per request. Against external Postgres (Neon, Supabase, RDS) the TLS + auth handshake dominates every cold hit, which is why we've seen ~9s TTFB on cold-start routes that query the DB.
|
|
193
|
-
|
|
194
|
-
Mitigate with [Cloudflare Hyperdrive](https://developers.cloudflare.com/hyperdrive/), which pools Postgres connections at the edge. Requires a TCP-based driver — `pg`, `postgres`, or Drizzle's `node-postgres` adapter. The HTTP-based `@neondatabase/serverless` driver does not go through Hyperdrive. Workers Paid plan only.
|
|
195
|
-
|
|
196
|
-
If you're hitting this and don't want to move to Hyperdrive, the Netlify preset above is a simpler path.
|
|
197
|
-
|
|
198
139
|
## AWS Lambda {#aws-lambda}
|
|
199
140
|
|
|
200
141
|
```ts
|
|
@@ -225,6 +166,25 @@ export default defineConfig({
|
|
|
225
166
|
|
|
226
167
|
Inside a workspace, the root `.env` is loaded into every app automatically, so shared keys like `ANTHROPIC_API_KEY` and `A2A_SECRET` only need to be set once. Per-app `apps/<name>/.env` wins on conflict.
|
|
227
168
|
|
|
169
|
+
## Updating UI in Production {#updating-ui-in-production}
|
|
170
|
+
|
|
171
|
+
One of agent-native's core features is that the agent can modify your app's source code — components, routes, styles, actions. During local development this works seamlessly because the agent has full filesystem access.
|
|
172
|
+
|
|
173
|
+
In a standard production deployment, however, the agent runs in **production mode** with access to app tools (actions, database, MCP) but **not** the filesystem. This means the agent can read and write data, run actions, and interact with external services — but it can't edit your React components or add new routes on a deployed instance.
|
|
174
|
+
|
|
175
|
+
### Builder.io: Visual Editing in Production {#builderio}
|
|
176
|
+
|
|
177
|
+
[Builder.io](https://www.builder.io) solves this by providing a managed cloud environment where the agent retains the ability to modify your app's UI in production. Connect your repo to Builder.io and prompt for UI changes directly — no redeploy needed.
|
|
178
|
+
|
|
179
|
+
**How it works:**
|
|
180
|
+
|
|
181
|
+
1. Connect your agent-native repo to Builder.io
|
|
182
|
+
2. Builder.io provides a cloud frame with the agent, visual editing, and real-time collaboration
|
|
183
|
+
3. Prompt the agent to make UI changes — it edits your components, routes, and styles live
|
|
184
|
+
4. Changes are committed back to your repo
|
|
185
|
+
|
|
186
|
+
See [Frames](/docs/frames) for more on the embedded agent panel vs. cloud frame options.
|
|
187
|
+
|
|
228
188
|
## Multi-instance deploys {#multi-instance}
|
|
229
189
|
|
|
230
190
|
Agent-native apps store all state in SQL via Drizzle and sync the UI via [polling](/docs/key-concepts#polling-sync) against the database — no file-system state, no sticky sessions, no in-memory caches. That means multi-instance and serverless deployments work out of the box: point every instance at the same `DATABASE_URL` and they converge automatically. See [Key Concepts — Data in SQL](/docs/key-concepts#data-in-sql) and [Portability](/docs/key-concepts#hosting-agnostic).
|
|
@@ -35,7 +35,7 @@ Need to add more apps later? From inside the workspace:
|
|
|
35
35
|
agent-native add-app
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
From here, use your AI coding tool (Claude Code, Cursor, Windsurf, etc.) to customize it. The agent instructions in `AGENTS.md` are already set up so any tool understands the codebase. See [
|
|
38
|
+
From here, use your AI coding tool (Claude Code, Cursor, Windsurf, etc.) to customize it. The agent instructions in `AGENTS.md` are already set up so any tool understands the codebase. See [Multi-App Workspace](/docs/multi-app-workspace) for the full story on sharing auth, skills, components, and credentials across apps.
|
|
39
39
|
|
|
40
40
|
## Templates {#templates}
|
|
41
41
|
|
|
@@ -270,4 +270,4 @@ For detailed guidance on specific patterns:
|
|
|
270
270
|
- [Context Awareness](/docs/context-awareness) — navigation state, view-screen, navigate commands
|
|
271
271
|
- [Skills Guide](/docs/skills-guide) — framework skills, domain skills, creating custom skills
|
|
272
272
|
- [A2A Protocol](/docs/a2a-protocol) — agent-to-agent communication
|
|
273
|
-
- [
|
|
273
|
+
- [Multi-App Workspace](/docs/multi-app-workspace) — host many apps in one monorepo with shared auth, skills, components, and credentials
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
2
|
+
title: "Multi-App Workspace"
|
|
3
3
|
description: "Host many agent-native apps in one monorepo with shared auth, RBAC, skills, instructions, components, and credentials."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Multi-App Workspace
|
|
7
7
|
|
|
8
8
|
When vibe-coding an internal tool takes an afternoon, you don't stop at one. A team ends up with a CRM, a support inbox, a dashboard, a recruiting tracker, an ops console — ten small apps, each scaffolded independently. That's great until you need to change something in all of them.
|
|
9
9
|
|
|
10
10
|
At that point every app has its own `AGENTS.md`, its own auth plugin, its own copy-pasted layout component, its own hard-coded Slack token, its own idea of what an "organization" is. A compliance rule change means ten PRs. Rotating an API key means ten redeployments. A brand refresh means ten different headers drifting out of sync. The thing that made it easy to build them is now making it hard to manage them.
|
|
11
11
|
|
|
12
|
-
The **
|
|
12
|
+
The **multi-app workspace** pattern is how agent-native solves this. You host all your apps in one monorepo alongside a private **workspace core** package. The core owns everything cross-cutting — auth, RBAC, agent skills, `AGENTS.md`, React components, design tokens, shared credentials, shared actions. Each app shrinks down to the handful of screens that make it unique. Change the core once; every app inherits the change on the next dev reload.
|
|
13
13
|
|
|
14
14
|
## What gets shared {#what-gets-shared}
|
|
15
15
|
|
|
@@ -85,4 +85,4 @@ If you're evaluating agent-native for a product like a CRM, project tracker, sup
|
|
|
85
85
|
|
|
86
86
|
- [Authentication](/docs/authentication) — auth modes, social providers, session API
|
|
87
87
|
- [Security & Data Scoping](/docs/security) — SQL-level isolation, input validation, access guards
|
|
88
|
-
- [
|
|
88
|
+
- [Multi-App Workspace](/docs/multi-app-workspace) — hosting multiple agent-native apps in one monorepo with shared auth and RBAC
|
package/docs/content/progress.md
CHANGED
|
@@ -41,7 +41,7 @@ Separate concern from [notifications](/docs/notifications): notifications fire o
|
|
|
41
41
|
| `failed` | Error terminal |
|
|
42
42
|
| `cancelled` | User interrupted |
|
|
43
43
|
|
|
44
|
-
Terminal statuses set `completed_at`. The UI tray shows only `running` rows; completed rows stay in the database for `list
|
|
44
|
+
Terminal statuses set `completed_at`. The UI tray shows only `running` rows; completed rows stay in the database for `manage-progress --action=list` queries.
|
|
45
45
|
|
|
46
46
|
## API {#api}
|
|
47
47
|
|
|
@@ -123,22 +123,22 @@ export function HeaderBar() {
|
|
|
123
123
|
|
|
124
124
|
Inline header widget — mount it next to the notifications bell. Shows a spinner icon + count badge when runs are active; click opens a dropdown with one live percent bar per run. Hides the trigger entirely when no active runs. Polls `/_agent-native/runs?active=true` every `pollMs` (default 3 s). Uses shadcn semantic tokens, adapts to light and dark themes.
|
|
125
125
|
|
|
126
|
-
## Agent
|
|
126
|
+
## Agent tool {#agent-tool}
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
A single `manage-progress` tool is registered in every template. The `action` parameter selects the operation:
|
|
129
129
|
|
|
130
|
-
|
|
|
131
|
-
|
|
|
132
|
-
| `start
|
|
133
|
-
| `update
|
|
134
|
-
| `complete
|
|
135
|
-
| `list
|
|
130
|
+
| Action | Purpose |
|
|
131
|
+
| ---------- | --------------------------------------------------------------- |
|
|
132
|
+
| `start` | Call at the top of a long task. Returns a runId. |
|
|
133
|
+
| `update` | Call periodically during the task with `percent` and/or `step`. |
|
|
134
|
+
| `complete` | Terminal — one of `succeeded`, `failed`, `cancelled`. |
|
|
135
|
+
| `list` | Inspect recent runs (filter by `active=true`). |
|
|
136
136
|
|
|
137
137
|
### When to start a run {#when-to-start}
|
|
138
138
|
|
|
139
139
|
- Use for anything > ~5 seconds. A spinner with no context feels frozen.
|
|
140
140
|
- Update at natural checkpoints, not every iteration. Every 5–10% is plenty.
|
|
141
|
-
- **Always** call `complete
|
|
141
|
+
- **Always** call `manage-progress --action=complete`, including in error paths. An orphan `running` row is worse than no row.
|
|
142
142
|
- Pair with `notify` on completion so the user sees the outcome when they're not actively watching the tray.
|
|
143
143
|
|
|
144
144
|
## Event bus {#event-bus}
|
|
@@ -171,6 +171,6 @@ Notify me that run {{runId}} has been running for a long time.
|
|
|
171
171
|
|
|
172
172
|
## What's next
|
|
173
173
|
|
|
174
|
-
- [**Notifications**](/docs/notifications) — pair with `complete
|
|
174
|
+
- [**Notifications**](/docs/notifications) — pair with `manage-progress --action=complete` to tell the user when work finishes
|
|
175
175
|
- [**Automations**](/docs/automations) — watchdog slow runs via `run.progress.updated`
|
|
176
176
|
- [**Client**](/docs/client) — `useDbSync` for real-time cache invalidation
|
|
@@ -7,7 +7,7 @@ description: "Dispatch is the workspace control plane — central inbox, cross-a
|
|
|
7
7
|
|
|
8
8
|
Dispatch is the **workspace control plane**. Where other templates are domain apps (Mail, Calendar, Analytics), Dispatch is the app you run _alongside_ them to coordinate everything: a central inbox, a secrets vault, scheduled jobs, Slack/Telegram integration, and an orchestrator agent that delegates domain work to the right specialist app over [A2A](/docs/a2a-protocol).
|
|
9
9
|
|
|
10
|
-
If you're running an [
|
|
10
|
+
If you're running an [multi-app workspace](/docs/multi-app-workspace) with many apps, Dispatch is the glue.
|
|
11
11
|
|
|
12
12
|
## What it does {#what-it-does}
|
|
13
13
|
|
|
@@ -44,7 +44,7 @@ pnpm dlx @agent-native/core create my-platform
|
|
|
44
44
|
# pick "Dispatch" in the multi-select picker, plus whichever domain apps you want
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
Dispatch is usually scaffolded into a workspace alongside the apps it coordinates. For a workspace, Dispatch's shared auth, database, and brand are inherited from the workspace core — see [
|
|
47
|
+
Dispatch is usually scaffolded into a workspace alongside the apps it coordinates. For a workspace, Dispatch's shared auth, database, and brand are inherited from the workspace core — see [Multi-App Workspace](/docs/multi-app-workspace).
|
|
48
48
|
|
|
49
49
|
## Customize it {#customize}
|
|
50
50
|
|
|
@@ -52,7 +52,7 @@ Dispatch is a full cloneable SaaS like any other template — see [Cloneable Saa
|
|
|
52
52
|
|
|
53
53
|
## What's next
|
|
54
54
|
|
|
55
|
-
- [**
|
|
55
|
+
- [**Multi-App Workspace**](/docs/multi-app-workspace) — running Dispatch alongside multiple apps
|
|
56
56
|
- [**A2A Protocol**](/docs/a2a-protocol) — how Dispatch delegates to specialist agents
|
|
57
57
|
- [**MCP Clients — Hub Mode**](/docs/mcp-clients#hub) — sharing MCP servers across the workspace
|
|
58
58
|
- [**Recurring Jobs**](/docs/recurring-jobs) — scheduled tasks Dispatch runs
|
|
@@ -7,7 +7,7 @@ description: "Branching strategies, code ownership, PR review, and governance pr
|
|
|
7
7
|
|
|
8
8
|
This guide covers the operational side of running an agent-native workspace — how to branch, who reviews what, how to set up code ownership, and how the dispatch control plane fits into your governance model.
|
|
9
9
|
|
|
10
|
-
For workspace setup, shared auth, and deployment, see [
|
|
10
|
+
For workspace setup, shared auth, and deployment, see [Multi-App Workspace](/docs/multi-app-workspace).
|
|
11
11
|
|
|
12
12
|
## Branching
|
|
13
13
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.13",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Framework for agent-native application development — where AI agents and UI share state via files",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"./db/schema": "./dist/db/schema.js",
|
|
31
31
|
"./db/drizzle-config": "./dist/db/drizzle-config.js",
|
|
32
32
|
"./client": "./dist/client/index.js",
|
|
33
|
+
"./client/observability": "./dist/client/observability/index.js",
|
|
33
34
|
"./client/onboarding": "./dist/client/onboarding/index.js",
|
|
34
35
|
"./onboarding": "./dist/onboarding/index.js",
|
|
35
36
|
"./shared": "./dist/shared/index.js",
|
|
@@ -53,6 +54,9 @@
|
|
|
53
54
|
"./sharing/actions/list-resource-shares": "./dist/sharing/actions/list-resource-shares.js",
|
|
54
55
|
"./sharing/actions/set-resource-visibility": "./dist/sharing/actions/set-resource-visibility.js",
|
|
55
56
|
"./client/sharing": "./dist/client/sharing/index.js",
|
|
57
|
+
"./client/transcription/use-live-transcription": "./dist/client/transcription/use-live-transcription.js",
|
|
58
|
+
"./client/transcription/BuilderTranscriptionCta": "./dist/client/transcription/BuilderTranscriptionCta.js",
|
|
59
|
+
"./transcription/builder": "./dist/transcription/builder-transcription.js",
|
|
56
60
|
"./adapters/cli": "./dist/adapters/cli/index.js",
|
|
57
61
|
"./router": "./dist/router/index.js",
|
|
58
62
|
"./collab": "./dist/collab/index.js",
|
|
@@ -88,8 +92,8 @@
|
|
|
88
92
|
"release": "npm version patch && npm publish --access public"
|
|
89
93
|
},
|
|
90
94
|
"dependencies": {
|
|
95
|
+
"@amplitude/analytics-browser": "^2.41.1",
|
|
91
96
|
"@anthropic-ai/sdk": "^0.90.0",
|
|
92
|
-
"@sentry/node": "^10.50.0",
|
|
93
97
|
"@clack/prompts": "^1.2.0",
|
|
94
98
|
"@libsql/client": "^0.15.0",
|
|
95
99
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
@@ -99,6 +103,8 @@
|
|
|
99
103
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
100
104
|
"@react-router/dev": "^7.13.1",
|
|
101
105
|
"@react-router/fs-routes": "^7.13.1",
|
|
106
|
+
"@sentry/browser": "^10.50.0",
|
|
107
|
+
"@sentry/node": "^10.50.0",
|
|
102
108
|
"@standard-schema/spec": "^1.1.0",
|
|
103
109
|
"@tabler/icons-react": "^3",
|
|
104
110
|
"@tailwindcss/typography": "^0.5.19",
|
|
@@ -128,6 +134,7 @@
|
|
|
128
134
|
"shiki": "^4.0.2",
|
|
129
135
|
"tailwind-merge": "^3.5.0",
|
|
130
136
|
"tiptap-markdown": "^0.9.0",
|
|
137
|
+
"tw-animate-css": "1.4.0",
|
|
131
138
|
"y-protocols": "^1.0.7",
|
|
132
139
|
"yjs": "^13.6.30",
|
|
133
140
|
"zod": "^4.3.6"
|
|
@@ -22,25 +22,27 @@ Separate concern from `notifications`:
|
|
|
22
22
|
|
|
23
23
|
Common pattern: on completion, emit a `notify()` so the user sees the outcome when they're not actively watching the tray.
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## Tool
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
All progress operations go through a single `manage-progress` tool with an `action` parameter:
|
|
28
|
+
|
|
29
|
+
| Action | Purpose |
|
|
28
30
|
|---|---|
|
|
29
|
-
| `start
|
|
30
|
-
| `update
|
|
31
|
-
| `complete
|
|
32
|
-
| `list
|
|
31
|
+
| `start` | Mark the start of a long task. Returns a runId. |
|
|
32
|
+
| `update` | Update percent and/or current step. Call frequently. |
|
|
33
|
+
| `complete` | Mark terminal status: `succeeded`, `failed`, `cancelled`. |
|
|
34
|
+
| `list` | List recent runs (all or `--active=true`). |
|
|
33
35
|
|
|
34
36
|
## Canonical Flow
|
|
35
37
|
|
|
36
38
|
```
|
|
37
|
-
|
|
39
|
+
manage-progress --action=start --title "Triage 128 unread emails" --step "Fetching inbox"
|
|
38
40
|
→ runId=abc
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
manage-progress --action=update --runId=abc --percent=25 --step="Classifying 32/128"
|
|
43
|
+
manage-progress --action=update --runId=abc --percent=75 --step="Drafting replies 97/128"
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
manage-progress --action=complete --runId=abc --status=succeeded
|
|
44
46
|
notify --severity=info --title="Triage done" --body="12 archived, 6 drafts ready to review"
|
|
45
47
|
```
|
|
46
48
|
|
|
@@ -48,9 +50,9 @@ notify --severity=info --title="Triage done" --body="12 archived, 6 drafts ready
|
|
|
48
50
|
|
|
49
51
|
- **Start a run for anything > ~5 seconds.** Users want feedback; a spinner with no context feels frozen.
|
|
50
52
|
- **Update at natural checkpoints**, not every iteration. Every 5–10% is enough for most UIs.
|
|
51
|
-
- **Always call `complete
|
|
53
|
+
- **Always call `manage-progress --action=complete`** at the end — including the error path. An orphaned `running` row is worse than no row.
|
|
52
54
|
- **Pair with `notify`** on completion. The tray tells users what's *running*; notifications tell them what *finished*.
|
|
53
|
-
- **Use `metadataJson`** on `start
|
|
55
|
+
- **Use `metadataJson`** on `manage-progress --action=start` to pass a link back to the produced artifact (thread id, document path), so the UI can deep-link from the runs tray.
|
|
54
56
|
|
|
55
57
|
## Runs API
|
|
56
58
|
|
|
@@ -16,6 +16,13 @@ import { ThemeProvider } from "next-themes";
|
|
|
16
16
|
import { useDbSync } from "@agent-native/core";
|
|
17
17
|
import { ClientOnly, DefaultSpinner } from "@agent-native/core/client";
|
|
18
18
|
import { Toaster } from "sonner";
|
|
19
|
+
import { configureTracking } from "@agent-native/core/client";
|
|
20
|
+
configureTracking({
|
|
21
|
+
getDefaultProps: (_name, properties) => ({
|
|
22
|
+
...properties,
|
|
23
|
+
app: "{{APP_NAME}}",
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
19
26
|
import "./global.css";
|
|
20
27
|
|
|
21
28
|
export function Layout({ children }: { children: React.ReactNode }) {
|