@agent-native/core 0.7.2 → 0.7.6
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 +6 -5
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/anthropic-engine.js +8 -4
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/types.d.ts +1 -1
- package/dist/agent/engine/types.d.ts.map +1 -1
- package/dist/agent/production-agent.d.ts +7 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +153 -118
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +8 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/info.d.ts +2 -0
- package/dist/cli/info.d.ts.map +1 -0
- package/dist/cli/info.js +103 -0
- package/dist/cli/info.js.map +1 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +171 -68
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/FeedbackButton.d.ts +3 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +115 -40
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +12 -1
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +3 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +46 -2
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.d.ts +21 -0
- package/dist/client/composer/VoiceButton.d.ts.map +1 -0
- package/dist/client/composer/VoiceButton.js +51 -0
- package/dist/client/composer/VoiceButton.js.map +1 -0
- package/dist/client/composer/useVoiceDictation.d.ts +38 -0
- package/dist/client/composer/useVoiceDictation.d.ts.map +1 -0
- package/dist/client/composer/useVoiceDictation.js +398 -0
- package/dist/client/composer/useVoiceDictation.js.map +1 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +2 -2
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/org/OrgSwitcher.d.ts +5 -4
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/client/org/OrgSwitcher.js +90 -24
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/resources/McpServerDetail.d.ts +15 -0
- package/dist/client/resources/McpServerDetail.d.ts.map +1 -0
- package/dist/client/resources/McpServerDetail.js +65 -0
- package/dist/client/resources/McpServerDetail.js.map +1 -0
- package/dist/client/resources/ResourceEditor.js +1 -1
- package/dist/client/resources/ResourceEditor.js.map +1 -1
- package/dist/client/resources/ResourceTree.d.ts +6 -1
- package/dist/client/resources/ResourceTree.d.ts.map +1 -1
- package/dist/client/resources/ResourceTree.js +18 -7
- package/dist/client/resources/ResourceTree.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +191 -20
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/resources/use-mcp-servers.d.ts +68 -0
- package/dist/client/resources/use-mcp-servers.d.ts.map +1 -0
- package/dist/client/resources/use-mcp-servers.js +83 -0
- package/dist/client/resources/use-mcp-servers.js.map +1 -0
- package/dist/client/resources/use-resources.d.ts +27 -1
- package/dist/client/resources/use-resources.d.ts.map +1 -1
- package/dist/client/resources/use-resources.js +63 -0
- package/dist/client/resources/use-resources.js.map +1 -1
- package/dist/client/settings/SecretsSection.d.ts +12 -0
- package/dist/client/settings/SecretsSection.d.ts.map +1 -0
- package/dist/client/settings/SecretsSection.js +148 -0
- package/dist/client/settings/SecretsSection.js.map +1 -0
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +101 -2
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.d.ts +14 -0
- package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -0
- package/dist/client/settings/VoiceTranscriptionSection.js +111 -0
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -0
- package/dist/client/settings/index.d.ts +1 -0
- package/dist/client/settings/index.d.ts.map +1 -1
- package/dist/client/settings/index.js +1 -0
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts +16 -0
- package/dist/client/sharing/ShareButton.d.ts.map +1 -0
- package/dist/client/sharing/ShareButton.js +308 -0
- package/dist/client/sharing/ShareButton.js.map +1 -0
- package/dist/client/sharing/ShareDialog.d.ts +33 -0
- package/dist/client/sharing/ShareDialog.d.ts.map +1 -0
- package/dist/client/sharing/ShareDialog.js +231 -0
- package/dist/client/sharing/ShareDialog.js.map +1 -0
- package/dist/client/sharing/VisibilityBadge.d.ts +11 -0
- package/dist/client/sharing/VisibilityBadge.d.ts.map +1 -0
- package/dist/client/sharing/VisibilityBadge.js +19 -0
- package/dist/client/sharing/VisibilityBadge.js.map +1 -0
- package/dist/client/sharing/index.d.ts +4 -0
- package/dist/client/sharing/index.d.ts.map +1 -0
- package/dist/client/sharing/index.js +4 -0
- package/dist/client/sharing/index.js.map +1 -0
- package/dist/client/use-action.d.ts.map +1 -1
- package/dist/client/use-action.js +27 -3
- package/dist/client/use-action.js.map +1 -1
- package/dist/db/migrations.d.ts +18 -3
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +25 -3
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.d.ts +1 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +4 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/deploy/build.js +22 -3
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/workspace-core.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-client/config.d.ts +20 -1
- package/dist/mcp-client/config.d.ts.map +1 -1
- package/dist/mcp-client/config.js +28 -11
- package/dist/mcp-client/config.js.map +1 -1
- package/dist/mcp-client/hub-client.d.ts +38 -0
- package/dist/mcp-client/hub-client.d.ts.map +1 -0
- package/dist/mcp-client/hub-client.js +147 -0
- package/dist/mcp-client/hub-client.js.map +1 -0
- package/dist/mcp-client/hub-routes.d.ts +42 -0
- package/dist/mcp-client/hub-routes.d.ts.map +1 -0
- package/dist/mcp-client/hub-routes.js +114 -0
- package/dist/mcp-client/hub-routes.js.map +1 -0
- package/dist/mcp-client/index.d.ts +15 -0
- package/dist/mcp-client/index.d.ts.map +1 -1
- package/dist/mcp-client/index.js +35 -0
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/mcp-client/manager.d.ts +54 -8
- package/dist/mcp-client/manager.d.ts.map +1 -1
- package/dist/mcp-client/manager.js +276 -59
- package/dist/mcp-client/manager.js.map +1 -1
- package/dist/mcp-client/remote-store.d.ts +102 -0
- package/dist/mcp-client/remote-store.d.ts.map +1 -0
- package/dist/mcp-client/remote-store.js +200 -0
- package/dist/mcp-client/remote-store.js.map +1 -0
- package/dist/mcp-client/routes.d.ts +55 -0
- package/dist/mcp-client/routes.d.ts.map +1 -0
- package/dist/mcp-client/routes.js +384 -0
- package/dist/mcp-client/routes.js.map +1 -0
- package/dist/mcp-client/visibility.d.ts +16 -0
- package/dist/mcp-client/visibility.d.ts.map +1 -0
- package/dist/mcp-client/visibility.js +45 -0
- package/dist/mcp-client/visibility.js.map +1 -0
- package/dist/onboarding/default-steps.d.ts.map +1 -1
- package/dist/onboarding/default-steps.js +5 -0
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/org/accept-pending.d.ts +22 -0
- package/dist/org/accept-pending.d.ts.map +1 -0
- package/dist/org/accept-pending.js +75 -0
- package/dist/org/accept-pending.js.map +1 -0
- package/dist/org/context.js +2 -2
- package/dist/org/context.js.map +1 -1
- package/dist/org/handlers.d.ts +2 -0
- package/dist/org/handlers.d.ts.map +1 -1
- package/dist/org/handlers.js +54 -3
- package/dist/org/handlers.js.map +1 -1
- package/dist/org/index.d.ts +2 -0
- package/dist/org/index.d.ts.map +1 -1
- package/dist/org/index.js +1 -0
- package/dist/org/index.js.map +1 -1
- package/dist/resources/handlers.d.ts.map +1 -1
- package/dist/resources/handlers.js +30 -0
- package/dist/resources/handlers.js.map +1 -1
- package/dist/secrets/index.d.ts +15 -0
- package/dist/secrets/index.d.ts.map +1 -0
- package/dist/secrets/index.js +15 -0
- package/dist/secrets/index.js.map +1 -0
- package/dist/secrets/onboarding.d.ts +18 -0
- package/dist/secrets/onboarding.d.ts.map +1 -0
- package/dist/secrets/onboarding.js +87 -0
- package/dist/secrets/onboarding.js.map +1 -0
- package/dist/secrets/register-framework-secrets.d.ts +13 -0
- package/dist/secrets/register-framework-secrets.d.ts.map +1 -0
- package/dist/secrets/register-framework-secrets.js +59 -0
- package/dist/secrets/register-framework-secrets.js.map +1 -0
- package/dist/secrets/register.d.ts +63 -0
- package/dist/secrets/register.d.ts.map +1 -0
- package/dist/secrets/register.js +62 -0
- package/dist/secrets/register.js.map +1 -0
- package/dist/secrets/routes.d.ts +67 -0
- package/dist/secrets/routes.d.ts.map +1 -0
- package/dist/secrets/routes.js +275 -0
- package/dist/secrets/routes.js.map +1 -0
- package/dist/secrets/schema.d.ts +154 -0
- package/dist/secrets/schema.d.ts.map +1 -0
- package/dist/secrets/schema.js +41 -0
- package/dist/secrets/schema.js.map +1 -0
- package/dist/secrets/storage.d.ts +54 -0
- package/dist/secrets/storage.d.ts.map +1 -0
- package/dist/secrets/storage.js +181 -0
- package/dist/secrets/storage.js.map +1 -0
- package/dist/server/action-discovery.d.ts +18 -0
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +95 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/action-routes.d.ts.map +1 -1
- package/dist/server/action-routes.js +22 -2
- package/dist/server/action-routes.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +16 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +120 -25
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/app-name.d.ts +13 -0
- package/dist/server/app-name.d.ts.map +1 -0
- package/dist/server/app-name.js +41 -0
- package/dist/server/app-name.js.map +1 -0
- package/dist/server/app-url.d.ts +24 -0
- package/dist/server/app-url.d.ts.map +1 -0
- package/dist/server/app-url.js +76 -0
- package/dist/server/app-url.js.map +1 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +50 -0
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js +137 -13
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +73 -0
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +6 -0
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/date-utils.d.ts +15 -0
- package/dist/server/date-utils.d.ts.map +1 -0
- package/dist/server/date-utils.js +41 -0
- package/dist/server/date-utils.js.map +1 -0
- package/dist/server/email-template.d.ts +51 -0
- package/dist/server/email-template.d.ts.map +1 -0
- package/dist/server/email-template.js +146 -0
- package/dist/server/email-template.js.map +1 -0
- package/dist/server/index.d.ts +6 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +6 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/onboarding-html.d.ts +3 -0
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +13 -3
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/request-context.d.ts +9 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +10 -0
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +26 -0
- package/dist/server/transcribe-voice.d.ts.map +1 -0
- package/dist/server/transcribe-voice.js +143 -0
- package/dist/server/transcribe-voice.js.map +1 -0
- package/dist/sharing/access.d.ts +56 -0
- package/dist/sharing/access.d.ts.map +1 -0
- package/dist/sharing/access.js +149 -0
- package/dist/sharing/access.js.map +1 -0
- package/dist/sharing/actions/list-resource-shares.d.ts +3 -0
- package/dist/sharing/actions/list-resource-shares.d.ts.map +1 -0
- package/dist/sharing/actions/list-resource-shares.js +38 -0
- package/dist/sharing/actions/list-resource-shares.js.map +1 -0
- package/dist/sharing/actions/set-resource-visibility.d.ts +3 -0
- package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -0
- package/dist/sharing/actions/set-resource-visibility.js +24 -0
- package/dist/sharing/actions/set-resource-visibility.js.map +1 -0
- package/dist/sharing/actions/share-resource.d.ts +3 -0
- package/dist/sharing/actions/share-resource.d.ts.map +1 -0
- package/dist/sharing/actions/share-resource.js +64 -0
- package/dist/sharing/actions/share-resource.js.map +1 -0
- package/dist/sharing/actions/unshare-resource.d.ts +3 -0
- package/dist/sharing/actions/unshare-resource.d.ts.map +1 -0
- package/dist/sharing/actions/unshare-resource.js +24 -0
- package/dist/sharing/actions/unshare-resource.js.map +1 -0
- package/dist/sharing/index.d.ts +11 -0
- package/dist/sharing/index.d.ts.map +1 -0
- package/dist/sharing/index.js +11 -0
- package/dist/sharing/index.js.map +1 -0
- package/dist/sharing/registry.d.ts +44 -0
- package/dist/sharing/registry.d.ts.map +1 -0
- package/dist/sharing/registry.js +54 -0
- package/dist/sharing/registry.js.map +1 -0
- package/dist/sharing/schema.d.ts +202 -0
- package/dist/sharing/schema.d.ts.map +1 -0
- package/dist/sharing/schema.js +88 -0
- package/dist/sharing/schema.js.map +1 -0
- package/dist/styles/agent-native.css +111 -0
- package/dist/tailwind.preset.d.ts +2 -2
- package/dist/tailwind.preset.d.ts.map +1 -1
- package/dist/tailwind.preset.js +27 -7
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/templates/default/app/global.css +65 -68
- package/dist/templates/default/components.json +1 -1
- package/dist/templates/default/package.json +2 -4
- package/dist/templates/default/vite.config.ts +3 -0
- package/dist/templates/workspace-core/package.json +1 -4
- package/dist/templates/workspace-core/src/index.ts +1 -1
- package/dist/templates/workspace-core/styles/tokens.css +22 -0
- package/dist/templates/workspace-core/tsconfig.json +1 -1
- package/dist/vite/action-types-plugin.d.ts +5 -0
- package/dist/vite/action-types-plugin.d.ts.map +1 -1
- package/dist/vite/action-types-plugin.js +129 -28
- package/dist/vite/action-types-plugin.js.map +1 -1
- package/dist/vite/client.d.ts +6 -0
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +18 -1
- package/dist/vite/client.js.map +1 -1
- package/docs/content/actions.md +169 -74
- package/docs/content/agent-teams.md +139 -0
- package/docs/content/cloneable-saas.md +98 -0
- package/docs/content/creating-templates.md +9 -11
- package/docs/content/deployment.md +2 -9
- package/docs/content/drop-in-agent.md +200 -0
- package/docs/content/enterprise-workspace.md +22 -10
- package/docs/content/getting-started.md +34 -19
- package/docs/content/integrations.md +3 -3
- package/docs/content/key-concepts.md +50 -23
- package/docs/content/mcp-clients.md +71 -0
- package/docs/content/pure-agent-apps.md +69 -0
- package/docs/content/recurring-jobs.md +123 -0
- package/docs/content/skills-guide.md +8 -0
- package/docs/content/template-analytics.md +190 -0
- package/docs/content/template-calendar.md +151 -0
- package/docs/content/template-clips.md +55 -0
- package/docs/content/template-content.md +141 -0
- package/docs/content/template-dispatch.md +58 -0
- package/docs/content/template-forms.md +51 -0
- package/docs/content/template-mail.md +169 -0
- package/docs/content/template-slides.md +218 -0
- package/docs/content/template-starter.md +68 -0
- package/docs/content/template-video.md +162 -0
- package/docs/content/voice-input.md +59 -0
- package/docs/content/what-is-agent-native.md +142 -45
- package/docs/content/workspace-management.md +1 -0
- package/docs/content/{resources.md → workspace.md} +94 -42
- package/package.json +20 -19
- package/src/templates/default/app/global.css +65 -68
- package/src/templates/default/components.json +1 -1
- package/src/templates/default/package.json +2 -4
- package/src/templates/default/vite.config.ts +3 -0
- package/src/templates/workspace-core/package.json +1 -4
- package/src/templates/workspace-core/src/index.ts +1 -1
- package/src/templates/workspace-core/styles/tokens.css +22 -0
- package/src/templates/workspace-core/tsconfig.json +1 -1
- package/dist/templates/default/postcss.config.js +0 -6
- package/dist/templates/default/tailwind.config.ts +0 -7
- package/dist/templates/workspace-core/tailwind.preset.ts +0 -34
- package/src/templates/default/postcss.config.js +0 -6
- package/src/templates/default/tailwind.config.ts +0 -7
- package/src/templates/workspace-core/tailwind.preset.ts +0 -34
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Workspace
|
|
3
|
-
description: "
|
|
2
|
+
title: "Workspace"
|
|
3
|
+
description: "Claude-Code-level customization per user — skills, memory, instructions, custom agents, scheduled jobs, MCP servers — backed by SQL, not a filesystem."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Workspace
|
|
6
|
+
# Workspace
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Every agent-native app ships with a **workspace**: the customization layer that makes the agent yours. It contains team instructions (`AGENTS.md`), per-user memory (`learnings.md`), skills the agent pulls in on demand, custom sub-agents, scheduled jobs, and connected MCP servers — everything you'd expect from a Claude Code / Codex setup.
|
|
9
|
+
|
|
10
|
+
The twist: **it's SQL rows, not filesystem files.** Each user gets their own workspace stored in the database. There's no dev-box to spin up, no container per user, no files to mount. A multi-tenant SaaS can give every user a fully-customizable agent for essentially free, because all of it is rows — personal memory, personal MCP servers, personal skills, personal sub-agents — and the shared codebase hosts all of them at once.
|
|
11
|
+
|
|
12
|
+
| Claude Code / Codex | Agent-native workspace |
|
|
13
|
+
| -------------------------------- | -------------------------------------------------- |
|
|
14
|
+
| Files on your local disk | Rows in a shared SQL database |
|
|
15
|
+
| One codebase per developer | One codebase, many users |
|
|
16
|
+
| Needs a dev-box or container | Runs on any serverless/edge host |
|
|
17
|
+
| Customization at `~/.claude/` | Customization per-user, scoped `u:<email>:…` |
|
|
18
|
+
| Per-project `CLAUDE.md` / skills | Per-app `AGENTS.md` + per-user `learnings.md` |
|
|
19
|
+
| MCP config in a JSON file | MCP config in JSON _or_ the settings UI, per scope |
|
|
20
|
+
|
|
21
|
+
Same capabilities. Different economics. See [Cloneable SaaS](/docs/cloneable-saas) for why this matters for SaaS.
|
|
22
|
+
|
|
23
|
+
## The Workspace tab {#the-tab}
|
|
24
|
+
|
|
25
|
+
The **Workspace** tab in the agent sidebar is where you and the agent share persistent files — notes, instructions, skills, custom agents, and scheduled jobs. Files live in the database (not the filesystem), so they persist across sessions, work in serverless/edge deploys, and can be edited from both the UI and the agent.
|
|
9
26
|
|
|
10
27
|
## TL;DR {#tldr}
|
|
11
28
|
|
|
@@ -13,19 +30,19 @@ The **Workspace** tab is where you and the agent share persistent files — note
|
|
|
13
30
|
- Create files with the `+` menu. Upload with the upload button. Edit inline (visual or code view).
|
|
14
31
|
- **Personal** is just you. **Shared** is your team/org.
|
|
15
32
|
- The agent can read, write, and rename any of these files as part of a conversation.
|
|
16
|
-
- Special files the agent always reads: `AGENTS.md` (team rules) and `learnings.md` (per-user).
|
|
33
|
+
- Special files the agent always reads: `AGENTS.md` (team rules) and `learnings.md` (per-user memory the agent auto-updates when you correct it).
|
|
17
34
|
|
|
18
35
|
## What goes in here? {#what-goes-in-here}
|
|
19
36
|
|
|
20
|
-
| File / path | What it's for
|
|
21
|
-
| --------------------------- |
|
|
22
|
-
| `AGENTS.md` (Shared) | Team instructions the agent reads every turn — tone, rules, domain context, skill references.
|
|
23
|
-
| `learnings.md` (Personal) |
|
|
24
|
-
| `skills/<name>.md` | Focused domain guidance the agent pulls in on demand (invoked with `/` slash commands).
|
|
25
|
-
| `agents/<name>.md` | **Custom agents** — reusable sub-agent profiles the agent can delegate to (invoked with `@` mentions).
|
|
26
|
-
| `remote-agents/<name>.json` | A2A manifests for connected remote agents — edited via a form, not raw JSON.
|
|
27
|
-
| `jobs/<name>.md` | Scheduled tasks that run on a cron (see the recurring-jobs docs).
|
|
28
|
-
| Anything else | Notes, prompts, config, dataset snippets — any text file.
|
|
37
|
+
| File / path | What it's for |
|
|
38
|
+
| --------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
39
|
+
| `AGENTS.md` (Shared) | Team instructions the agent reads every turn — tone, rules, domain context, skill references. |
|
|
40
|
+
| `learnings.md` (Personal) | **Agent memory.** Per-user file the agent auto-writes to on corrections/preferences and auto-reads every turn. |
|
|
41
|
+
| `skills/<name>.md` | Focused domain guidance the agent pulls in on demand (invoked with `/` slash commands). |
|
|
42
|
+
| `agents/<name>.md` | **Custom agents** — reusable sub-agent profiles the agent can delegate to (invoked with `@` mentions). |
|
|
43
|
+
| `remote-agents/<name>.json` | A2A manifests for connected remote agents — edited via a form, not raw JSON. |
|
|
44
|
+
| `jobs/<name>.md` | Scheduled tasks that run on a cron (see the recurring-jobs docs). |
|
|
45
|
+
| Anything else | Notes, prompts, config, dataset snippets — any text file. |
|
|
29
46
|
|
|
30
47
|
## Overview {#overview}
|
|
31
48
|
|
|
@@ -88,25 +105,58 @@ At the start of every conversation, the agent automatically reads:
|
|
|
88
105
|
|
|
89
106
|
A shared resource seeded by default. It contains custom instructions, preferences, and skill references. Edit this to change how the agent behaves for all users — tone, rules, domain context, and which skills to use.
|
|
90
107
|
|
|
91
|
-
```
|
|
108
|
+
```markdown
|
|
92
109
|
# Agent Instructions
|
|
93
110
|
|
|
94
111
|
## Tone
|
|
112
|
+
|
|
95
113
|
Be concise. Lead with the answer.
|
|
96
114
|
|
|
97
115
|
## Code style
|
|
116
|
+
|
|
98
117
|
- Use TypeScript, never JavaScript
|
|
99
118
|
- Prefer named exports
|
|
100
119
|
|
|
101
120
|
## Skills
|
|
102
|
-
|
|
103
|
-
|
|
121
|
+
|
|
122
|
+
| Skill | Path | Description |
|
|
123
|
+
| ------------- | ------------------------- | --------------------------- |
|
|
104
124
|
| data-analysis | `skills/data-analysis.md` | BigQuery and data workflows |
|
|
105
125
|
```
|
|
106
126
|
|
|
107
|
-
### learnings.md {#learnings-md}
|
|
127
|
+
### learnings.md — agent memory {#learnings-md}
|
|
128
|
+
|
|
129
|
+
`learnings.md` is the agent's long-term memory about _you_. It's a **Personal-scope** resource (one per user) that the agent auto-reads at the start of every conversation and auto-writes to whenever it picks up something worth remembering.
|
|
130
|
+
|
|
131
|
+
**What gets saved.** When you correct the agent ("no, always use X instead of Y"), share a preference ("I prefer concise answers"), or reveal context ("my team calls this 'the dispatch layer'"), the agent appends the learning to `learnings.md` so it doesn't repeat the mistake or have to re-ask next time. This behavior lives in the framework system prompt (the `capture-learnings` skill spells out the rules for when and how).
|
|
132
|
+
|
|
133
|
+
**What it looks like.**
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# Learnings
|
|
137
|
+
|
|
138
|
+
## Tone
|
|
139
|
+
|
|
140
|
+
- Be concise; skip preamble. (corrected 2026-01-14)
|
|
141
|
+
|
|
142
|
+
## Naming
|
|
143
|
+
|
|
144
|
+
- "Dispatch" refers to our internal event-routing service, not the template app.
|
|
145
|
+
|
|
146
|
+
## Preferences
|
|
147
|
+
|
|
148
|
+
- Prefer named exports over default exports in TypeScript.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Where it fits.**
|
|
108
152
|
|
|
109
|
-
|
|
153
|
+
| Surface | Scope | Written by | Read when |
|
|
154
|
+
| -------------- | -------- | ------------------------- | ---------------------------- |
|
|
155
|
+
| `AGENTS.md` | Shared | Humans / agent on request | Every turn |
|
|
156
|
+
| `learnings.md` | Personal | Agent, automatically | Every turn |
|
|
157
|
+
| `skills/…` | Shared | Humans / agent on request | On demand (`/slash` command) |
|
|
158
|
+
|
|
159
|
+
Users can edit `learnings.md` directly in the Workspace tab — it's a regular resource. Delete lines the agent got wrong or promote them into `AGENTS.md` if they apply to the whole team.
|
|
110
160
|
|
|
111
161
|
## Skills {#skills}
|
|
112
162
|
|
|
@@ -178,7 +228,7 @@ Use custom agents for delegation within one app. Use connected agents when you n
|
|
|
178
228
|
|
|
179
229
|
Skills are Markdown files with optional YAML frontmatter for metadata:
|
|
180
230
|
|
|
181
|
-
|
|
231
|
+
```markdown
|
|
182
232
|
---
|
|
183
233
|
name: data-analysis
|
|
184
234
|
description: BigQuery queries, data transforms, and visualization
|
|
@@ -187,20 +237,22 @@ description: BigQuery queries, data transforms, and visualization
|
|
|
187
237
|
# Data Analysis
|
|
188
238
|
|
|
189
239
|
## When to use
|
|
240
|
+
|
|
190
241
|
Use this skill when the user asks about data, queries, or analytics.
|
|
191
242
|
|
|
192
243
|
## Rules
|
|
244
|
+
|
|
193
245
|
- Always validate SQL before executing
|
|
194
246
|
- Prefer CTEs over subqueries
|
|
195
247
|
- Include LIMIT on exploratory queries
|
|
196
248
|
|
|
197
249
|
## Patterns
|
|
198
|
-
```sql
|
|
199
|
-
-- Standard BigQuery date filter
|
|
200
|
-
WHERE DATE(created_at) BETWEEN @start_date AND @end_date
|
|
201
|
-
````
|
|
202
250
|
|
|
203
|
-
|
|
251
|
+
-- Standard BigQuery date filter
|
|
252
|
+
WHERE DATE(created_at) BETWEEN @start_date AND @end_date
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
> Skill bodies can embed fenced code blocks in any language — shown above as indented code to keep this outer example readable, but you'd normally use a language-tagged fence in your real skill file.
|
|
204
256
|
|
|
205
257
|
## @ Tagging {#at-tagging}
|
|
206
258
|
|
|
@@ -232,13 +284,13 @@ If no skills are configured, the dropdown shows a hint with a link to these docs
|
|
|
232
284
|
|
|
233
285
|
The resource system works identically in both modes. The difference is what additional sources are available for `@` tagging and `/` commands:
|
|
234
286
|
|
|
235
|
-
| Feature
|
|
236
|
-
|
|
237
|
-
| @ tagging
|
|
238
|
-
| / slash commands
|
|
239
|
-
| Agent file access
|
|
240
|
-
| Workspace panel
|
|
241
|
-
| AGENTS.md / learnings.md | Available
|
|
287
|
+
| Feature | Dev Mode | Production |
|
|
288
|
+
| ------------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------ |
|
|
289
|
+
| @ tagging | Codebase files + workspace resources + custom agents + connected agents | Workspace resources + custom agents + connected agents |
|
|
290
|
+
| / slash commands | .agents/skills/ + resource skills | Resource skills only |
|
|
291
|
+
| Agent file access | Filesystem + resources | Resources only |
|
|
292
|
+
| Workspace panel | Full access | Full access |
|
|
293
|
+
| AGENTS.md / learnings.md | Available | Available |
|
|
242
294
|
|
|
243
295
|
## Resource API {#resource-api}
|
|
244
296
|
|
|
@@ -248,15 +300,15 @@ Resources can be managed from server code, actions, or the REST API.
|
|
|
248
300
|
|
|
249
301
|
REST endpoints mounted automatically:
|
|
250
302
|
|
|
251
|
-
| Method
|
|
252
|
-
|
|
253
|
-
| `GET`
|
|
254
|
-
| `GET`
|
|
255
|
-
| `POST`
|
|
256
|
-
| `GET`
|
|
257
|
-
| `PUT`
|
|
258
|
-
| `DELETE` | `/_agent-native/resources/:id`
|
|
259
|
-
| `POST`
|
|
303
|
+
| Method | Endpoint | Description |
|
|
304
|
+
| -------- | ----------------------------------------- | ------------------------- |
|
|
305
|
+
| `GET` | `/_agent-native/resources?scope=all` | List resources |
|
|
306
|
+
| `GET` | `/_agent-native/resources/tree?scope=all` | Get folder tree |
|
|
307
|
+
| `POST` | `/_agent-native/resources` | Create a resource |
|
|
308
|
+
| `GET` | `/_agent-native/resources/:id` | Get resource with content |
|
|
309
|
+
| `PUT` | `/_agent-native/resources/:id` | Update a resource |
|
|
310
|
+
| `DELETE` | `/_agent-native/resources/:id` | Delete a resource |
|
|
311
|
+
| `POST` | `/_agent-native/resources/upload` | Upload a file as resource |
|
|
260
312
|
|
|
261
313
|
### Action API {#script-api}
|
|
262
314
|
|
|
@@ -274,4 +326,4 @@ pnpm action resource-write --path "notes/meeting.md" --content "# Meeting Notes.
|
|
|
274
326
|
|
|
275
327
|
# Delete a resource
|
|
276
328
|
pnpm action resource-delete --path "notes/old.md"
|
|
277
|
-
|
|
329
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.6",
|
|
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",
|
|
@@ -37,8 +37,15 @@
|
|
|
37
37
|
"./resources/store": "./dist/resources/store.js",
|
|
38
38
|
"./resources/metadata": "./dist/resources/metadata.js",
|
|
39
39
|
"./oauth-tokens": "./dist/oauth-tokens/index.js",
|
|
40
|
+
"./secrets": "./dist/secrets/index.js",
|
|
40
41
|
"./org": "./dist/org/index.js",
|
|
41
42
|
"./client/org": "./dist/client/org/index.js",
|
|
43
|
+
"./sharing": "./dist/sharing/index.js",
|
|
44
|
+
"./sharing/actions/share-resource": "./dist/sharing/actions/share-resource.js",
|
|
45
|
+
"./sharing/actions/unshare-resource": "./dist/sharing/actions/unshare-resource.js",
|
|
46
|
+
"./sharing/actions/list-resource-shares": "./dist/sharing/actions/list-resource-shares.js",
|
|
47
|
+
"./sharing/actions/set-resource-visibility": "./dist/sharing/actions/set-resource-visibility.js",
|
|
48
|
+
"./client/sharing": "./dist/client/sharing/index.js",
|
|
42
49
|
"./adapters/cli": "./dist/adapters/cli/index.js",
|
|
43
50
|
"./router": "./dist/router/index.js",
|
|
44
51
|
"./collab": "./dist/collab/index.js",
|
|
@@ -48,6 +55,7 @@
|
|
|
48
55
|
"./terminal": "./dist/client/terminal/index.js",
|
|
49
56
|
"./terminal/server": "./dist/terminal/index.js",
|
|
50
57
|
"./tailwind": "./dist/tailwind.preset.js",
|
|
58
|
+
"./styles/agent-native.css": "./dist/styles/agent-native.css",
|
|
51
59
|
"./tsconfig.base.json": "./tsconfig.base.json"
|
|
52
60
|
},
|
|
53
61
|
"files": [
|
|
@@ -57,7 +65,7 @@
|
|
|
57
65
|
"src/templates"
|
|
58
66
|
],
|
|
59
67
|
"scripts": {
|
|
60
|
-
"build": "tsc && rm -rf dist/templates && cp -r src/templates dist/templates",
|
|
68
|
+
"build": "tsc && rm -rf dist/templates && cp -r src/templates dist/templates && mkdir -p dist/styles && cp src/styles/*.css dist/styles/",
|
|
61
69
|
"dev": "tsc --watch",
|
|
62
70
|
"typecheck": "tsc --noEmit",
|
|
63
71
|
"test": "vitest --run",
|
|
@@ -70,7 +78,7 @@
|
|
|
70
78
|
"@clack/prompts": "^1.2.0",
|
|
71
79
|
"@libsql/client": "^0.15.0",
|
|
72
80
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
73
|
-
"@neondatabase/serverless": "^1.0
|
|
81
|
+
"@neondatabase/serverless": "^1.1.0",
|
|
74
82
|
"@radix-ui/react-popover": "^1.1.15",
|
|
75
83
|
"@radix-ui/react-select": "^2.2.6",
|
|
76
84
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
@@ -91,7 +99,7 @@
|
|
|
91
99
|
"cron-parser": "^5.5.0",
|
|
92
100
|
"diff-match-patch": "^1.0.5",
|
|
93
101
|
"dotenv": "^17.2.1",
|
|
94
|
-
"drizzle-orm": "^0.
|
|
102
|
+
"drizzle-orm": "^0.45.2",
|
|
95
103
|
"h3": "^2.0.1-rc.20",
|
|
96
104
|
"isbot": "^5",
|
|
97
105
|
"jose": "^6.2.2",
|
|
@@ -102,10 +110,12 @@
|
|
|
102
110
|
"react-markdown": "^10.1.0",
|
|
103
111
|
"react-router": "^7.13.1",
|
|
104
112
|
"remark-gfm": "^4.0.1",
|
|
113
|
+
"shiki": "^4.0.2",
|
|
105
114
|
"tailwind-merge": "^2.6.0",
|
|
106
115
|
"tiptap-markdown": "^0.9.0",
|
|
107
116
|
"y-protocols": "^1.0.7",
|
|
108
|
-
"yjs": "^13.6.30"
|
|
117
|
+
"yjs": "^13.6.30",
|
|
118
|
+
"zod": "^3.24.0"
|
|
109
119
|
},
|
|
110
120
|
"peerDependencies": {
|
|
111
121
|
"@ai-sdk/anthropic": ">=1",
|
|
@@ -124,17 +134,15 @@
|
|
|
124
134
|
"@xterm/addon-web-links": ">=0.11",
|
|
125
135
|
"@xterm/xterm": ">=5",
|
|
126
136
|
"ai": ">=4",
|
|
127
|
-
"autoprefixer": ">=10",
|
|
128
137
|
"convex": ">=1",
|
|
129
138
|
"node-pty": ">=1",
|
|
130
139
|
"ollama-ai-provider": ">=1",
|
|
131
|
-
"postcss": ">=8",
|
|
132
140
|
"postgres": ">=3",
|
|
133
141
|
"react": ">=18",
|
|
134
142
|
"react-dom": ">=18",
|
|
135
143
|
"react-router": ">=7",
|
|
136
|
-
"tailwindcss": ">=
|
|
137
|
-
"tailwindcss
|
|
144
|
+
"tailwindcss": ">=4",
|
|
145
|
+
"@tailwindcss/vite": ">=4",
|
|
138
146
|
"typescript": ">=5",
|
|
139
147
|
"vite": ">=5",
|
|
140
148
|
"ws": ">=8"
|
|
@@ -173,13 +181,7 @@
|
|
|
173
181
|
"tailwindcss": {
|
|
174
182
|
"optional": true
|
|
175
183
|
},
|
|
176
|
-
"tailwindcss
|
|
177
|
-
"optional": true
|
|
178
|
-
},
|
|
179
|
-
"autoprefixer": {
|
|
180
|
-
"optional": true
|
|
181
|
-
},
|
|
182
|
-
"postcss": {
|
|
184
|
+
"@tailwindcss/vite": {
|
|
183
185
|
"optional": true
|
|
184
186
|
},
|
|
185
187
|
"@vitejs/plugin-react-swc": {
|
|
@@ -243,11 +245,10 @@
|
|
|
243
245
|
"express": "^5.2.1",
|
|
244
246
|
"firebase-admin": "^13.0.0",
|
|
245
247
|
"node-pty": "^1.1.0",
|
|
246
|
-
"postcss": "^8.5.6",
|
|
247
248
|
"react": "^18.3.1",
|
|
248
249
|
"react-router": "^7.13.1",
|
|
249
|
-
"tailwindcss": "
|
|
250
|
-
"tailwindcss
|
|
250
|
+
"tailwindcss": "catalog:",
|
|
251
|
+
"@tailwindcss/vite": "catalog:",
|
|
251
252
|
"typescript": "^5.9.2",
|
|
252
253
|
"vite": "^8.0.0",
|
|
253
254
|
"vitest": "^3.2.4",
|
|
@@ -1,79 +1,76 @@
|
|
|
1
1
|
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");
|
|
2
2
|
|
|
3
|
-
@
|
|
4
|
-
@
|
|
5
|
-
@tailwind utilities;
|
|
3
|
+
@import "tailwindcss";
|
|
4
|
+
@import "@agent-native/core/styles/agent-native.css";
|
|
6
5
|
|
|
7
|
-
@
|
|
8
|
-
:root {
|
|
9
|
-
--background: 0 0% 100%;
|
|
10
|
-
--foreground: 220 10% 10%;
|
|
11
|
-
--card: 0 0% 100%;
|
|
12
|
-
--card-foreground: 220 10% 10%;
|
|
13
|
-
--popover: 0 0% 100%;
|
|
14
|
-
--popover-foreground: 220 10% 10%;
|
|
15
|
-
--primary: 220 10% 15%;
|
|
16
|
-
--primary-foreground: 0 0% 100%;
|
|
17
|
-
--secondary: 220 10% 95%;
|
|
18
|
-
--secondary-foreground: 220 10% 15%;
|
|
19
|
-
--muted: 220 10% 95%;
|
|
20
|
-
--muted-foreground: 220 5% 45%;
|
|
21
|
-
--accent: 220 10% 95%;
|
|
22
|
-
--accent-foreground: 220 10% 15%;
|
|
23
|
-
--destructive: 0 84% 60%;
|
|
24
|
-
--destructive-foreground: 0 0% 98%;
|
|
25
|
-
--border: 220 10% 90%;
|
|
26
|
-
--input: 220 10% 90%;
|
|
27
|
-
--ring: 220 10% 40%;
|
|
28
|
-
--radius: 0.5rem;
|
|
29
|
-
--sidebar-background: 220 10% 97%;
|
|
30
|
-
--sidebar-foreground: 220 5% 45%;
|
|
31
|
-
--sidebar-primary: 220 10% 15%;
|
|
32
|
-
--sidebar-primary-foreground: 0 0% 100%;
|
|
33
|
-
--sidebar-accent: 220 10% 95%;
|
|
34
|
-
--sidebar-accent-foreground: 220 10% 15%;
|
|
35
|
-
--sidebar-border: 220 10% 90%;
|
|
36
|
-
--sidebar-ring: 220 10% 40%;
|
|
37
|
-
}
|
|
6
|
+
@source "./**/*.{ts,tsx}";
|
|
38
7
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
8
|
+
:root {
|
|
9
|
+
--background: 0 0% 100%;
|
|
10
|
+
--foreground: 220 10% 10%;
|
|
11
|
+
--card: 0 0% 100%;
|
|
12
|
+
--card-foreground: 220 10% 10%;
|
|
13
|
+
--popover: 0 0% 100%;
|
|
14
|
+
--popover-foreground: 220 10% 10%;
|
|
15
|
+
--primary: 220 10% 15%;
|
|
16
|
+
--primary-foreground: 0 0% 100%;
|
|
17
|
+
--secondary: 220 10% 95%;
|
|
18
|
+
--secondary-foreground: 220 10% 15%;
|
|
19
|
+
--muted: 220 10% 95%;
|
|
20
|
+
--muted-foreground: 220 5% 45%;
|
|
21
|
+
--accent: 220 10% 95%;
|
|
22
|
+
--accent-foreground: 220 10% 15%;
|
|
23
|
+
--destructive: 0 84% 60%;
|
|
24
|
+
--destructive-foreground: 0 0% 98%;
|
|
25
|
+
--border: 220 10% 90%;
|
|
26
|
+
--input: 220 10% 90%;
|
|
27
|
+
--ring: 220 10% 40%;
|
|
28
|
+
--radius: 0.5rem;
|
|
29
|
+
--sidebar-background: 220 10% 97%;
|
|
30
|
+
--sidebar-foreground: 220 5% 45%;
|
|
31
|
+
--sidebar-primary: 220 10% 15%;
|
|
32
|
+
--sidebar-primary-foreground: 0 0% 100%;
|
|
33
|
+
--sidebar-accent: 220 10% 95%;
|
|
34
|
+
--sidebar-accent-foreground: 220 10% 15%;
|
|
35
|
+
--sidebar-border: 220 10% 90%;
|
|
36
|
+
--sidebar-ring: 220 10% 40%;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.dark {
|
|
40
|
+
--background: 220 6% 6%;
|
|
41
|
+
--foreground: 0 0% 90%;
|
|
42
|
+
--card: 220 5% 6%;
|
|
43
|
+
--card-foreground: 0 0% 90%;
|
|
44
|
+
--popover: 220 5% 6%;
|
|
45
|
+
--popover-foreground: 0 0% 90%;
|
|
46
|
+
--primary: 0 0% 75%;
|
|
47
|
+
--primary-foreground: 220 6% 6%;
|
|
48
|
+
--secondary: 220 4% 12%;
|
|
49
|
+
--secondary-foreground: 0 0% 90%;
|
|
50
|
+
--muted: 220 4% 10%;
|
|
51
|
+
--muted-foreground: 220 4% 60%;
|
|
52
|
+
--accent: 220 4% 13%;
|
|
53
|
+
--accent-foreground: 0 0% 90%;
|
|
54
|
+
--destructive: 0 63% 51%;
|
|
55
|
+
--destructive-foreground: 0 0% 98%;
|
|
56
|
+
--border: 220 4% 14%;
|
|
57
|
+
--input: 220 4% 14%;
|
|
58
|
+
--ring: 0 0% 60%;
|
|
59
|
+
--radius: 0.5rem;
|
|
60
|
+
--sidebar-background: 220 6% 4%;
|
|
61
|
+
--sidebar-foreground: 220 4% 60%;
|
|
62
|
+
--sidebar-primary: 0 0% 75%;
|
|
63
|
+
--sidebar-primary-foreground: 220 6% 6%;
|
|
64
|
+
--sidebar-accent: 220 4% 10%;
|
|
65
|
+
--sidebar-accent-foreground: 0 0% 90%;
|
|
66
|
+
--sidebar-border: 220 4% 10%;
|
|
67
|
+
--sidebar-ring: 0 0% 60%;
|
|
69
68
|
}
|
|
70
69
|
|
|
71
70
|
@layer base {
|
|
72
|
-
* {
|
|
73
|
-
@apply border-border;
|
|
74
|
-
}
|
|
75
71
|
body {
|
|
76
|
-
|
|
72
|
+
background: hsl(var(--background));
|
|
73
|
+
color: hsl(var(--foreground));
|
|
77
74
|
font-family: "Inter", sans-serif;
|
|
78
75
|
font-feature-settings: "cv02", "cv03", "cv04", "cv11";
|
|
79
76
|
}
|
|
@@ -21,24 +21,22 @@
|
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@react-router/dev": "^7.13.1",
|
|
23
23
|
"@react-router/fs-routes": "^7.13.1",
|
|
24
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
24
25
|
"@tanstack/react-query": "^5.84.2",
|
|
25
26
|
"@types/node": "^24.2.1",
|
|
26
27
|
"@types/react": "^18.3.23",
|
|
27
28
|
"@types/react-dom": "^18.3.7",
|
|
28
|
-
"autoprefixer": "^10.4.21",
|
|
29
29
|
"class-variance-authority": "^0.7.1",
|
|
30
30
|
"clsx": "^2.1.1",
|
|
31
31
|
"lucide-react": "^0.539.0",
|
|
32
32
|
"next-themes": "^0.4.6",
|
|
33
|
-
"postcss": "^8.5.6",
|
|
34
33
|
"prettier": "^3.6.2",
|
|
35
34
|
"react": "^18.3.1",
|
|
36
35
|
"react-dom": "^18.3.1",
|
|
37
36
|
"react-router": "^7.13.1",
|
|
38
37
|
"sonner": "^1.7.4",
|
|
39
38
|
"tailwind-merge": "^2.6.0",
|
|
40
|
-
"tailwindcss": "^
|
|
41
|
-
"tailwindcss-animate": "^1.0.7",
|
|
39
|
+
"tailwindcss": "^4.1.18",
|
|
42
40
|
"tsx": "^4.20.3",
|
|
43
41
|
"typescript": "^5.9.2",
|
|
44
42
|
"vite": "^7.1.2"
|
|
@@ -20,10 +20,7 @@
|
|
|
20
20
|
"types": "./src/credentials.ts",
|
|
21
21
|
"default": "./src/credentials.ts"
|
|
22
22
|
},
|
|
23
|
-
"./
|
|
24
|
-
"types": "./tailwind.preset.ts",
|
|
25
|
-
"default": "./tailwind.preset.ts"
|
|
26
|
-
}
|
|
23
|
+
"./styles/tokens.css": "./styles/tokens.css"
|
|
27
24
|
},
|
|
28
25
|
"dependencies": {
|
|
29
26
|
"@agent-native/core": "^0.6.0"
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - Shared agent actions — see actions/
|
|
8
8
|
* - Shared agent skills — see skills/
|
|
9
9
|
* - Enterprise-wide agent instructions — see AGENTS.md
|
|
10
|
-
* - Shared Tailwind
|
|
10
|
+
* - Shared Tailwind v4 design tokens — see styles/tokens.css
|
|
11
11
|
*
|
|
12
12
|
* Apps don't import from this root entry directly — they import from
|
|
13
13
|
* the specific sub-path they need:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace-wide Tailwind v4 design tokens for @{{APP_NAME}}/core-module.
|
|
3
|
+
*
|
|
4
|
+
* Every app in the workspace should import this from its own
|
|
5
|
+
* `app/global.css` so brand updates in one place propagate to all apps:
|
|
6
|
+
*
|
|
7
|
+
* @import "tailwindcss";
|
|
8
|
+
* @import "@{{APP_NAME}}/core-module/styles/tokens.css";
|
|
9
|
+
*
|
|
10
|
+
* Replace the values below with your real brand palette.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/* Re-export the framework's standard token mappings (color-background,
|
|
14
|
+
color-foreground, color-border, …) so apps don't need a second import. */
|
|
15
|
+
@import "@agent-native/core/styles/agent-native.css";
|
|
16
|
+
|
|
17
|
+
@theme {
|
|
18
|
+
/* Add enterprise brand colors here. They become utility classes:
|
|
19
|
+
`bg-brand`, `text-brand-foreground`, etc. */
|
|
20
|
+
--color-brand: #4f46e5;
|
|
21
|
+
--color-brand-foreground: #ffffff;
|
|
22
|
+
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workspace-wide Tailwind preset for @{{APP_NAME}}/core-module.
|
|
3
|
-
*
|
|
4
|
-
* Extends the framework's base preset with enterprise brand tokens. Every
|
|
5
|
-
* app in the workspace should import THIS preset in its own
|
|
6
|
-
* tailwind.config.ts instead of importing @agent-native/core/tailwind
|
|
7
|
-
* directly, so brand updates in one place propagate to all apps.
|
|
8
|
-
*
|
|
9
|
-
* // apps/<name>/tailwind.config.ts
|
|
10
|
-
* import preset from "@{{APP_NAME}}/core-module/tailwind";
|
|
11
|
-
* export default { presets: [preset], content: ["./app/**\/*.{ts,tsx}"] };
|
|
12
|
-
*
|
|
13
|
-
* If your enterprise already has a design-system package with its own
|
|
14
|
-
* Tailwind preset, swap `corePreset` out for that one (or chain both).
|
|
15
|
-
*/
|
|
16
|
-
import corePreset from "@agent-native/core/tailwind";
|
|
17
|
-
import type { Config } from "tailwindcss";
|
|
18
|
-
|
|
19
|
-
const preset: Partial<Config> = {
|
|
20
|
-
presets: [corePreset],
|
|
21
|
-
theme: {
|
|
22
|
-
extend: {
|
|
23
|
-
colors: {
|
|
24
|
-
// Replace with your actual brand palette.
|
|
25
|
-
brand: {
|
|
26
|
-
DEFAULT: "#4f46e5",
|
|
27
|
-
foreground: "#ffffff",
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default preset;
|