@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.
Files changed (352) hide show
  1. package/README.md +6 -5
  2. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  3. package/dist/agent/engine/anthropic-engine.js +8 -4
  4. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  5. package/dist/agent/engine/types.d.ts +1 -1
  6. package/dist/agent/engine/types.d.ts.map +1 -1
  7. package/dist/agent/production-agent.d.ts +7 -0
  8. package/dist/agent/production-agent.d.ts.map +1 -1
  9. package/dist/agent/production-agent.js +153 -118
  10. package/dist/agent/production-agent.js.map +1 -1
  11. package/dist/cli/create.d.ts.map +1 -1
  12. package/dist/cli/create.js +8 -1
  13. package/dist/cli/create.js.map +1 -1
  14. package/dist/cli/index.js +8 -0
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/cli/info.d.ts +2 -0
  17. package/dist/cli/info.d.ts.map +1 -0
  18. package/dist/cli/info.js +103 -0
  19. package/dist/cli/info.js.map +1 -0
  20. package/dist/client/AssistantChat.d.ts.map +1 -1
  21. package/dist/client/AssistantChat.js +171 -68
  22. package/dist/client/AssistantChat.js.map +1 -1
  23. package/dist/client/FeedbackButton.d.ts +3 -1
  24. package/dist/client/FeedbackButton.d.ts.map +1 -1
  25. package/dist/client/FeedbackButton.js +115 -40
  26. package/dist/client/FeedbackButton.js.map +1 -1
  27. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  28. package/dist/client/agent-chat-adapter.js +12 -1
  29. package/dist/client/agent-chat-adapter.js.map +1 -1
  30. package/dist/client/composer/TiptapComposer.d.ts +3 -1
  31. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  32. package/dist/client/composer/TiptapComposer.js +46 -2
  33. package/dist/client/composer/TiptapComposer.js.map +1 -1
  34. package/dist/client/composer/VoiceButton.d.ts +21 -0
  35. package/dist/client/composer/VoiceButton.d.ts.map +1 -0
  36. package/dist/client/composer/VoiceButton.js +51 -0
  37. package/dist/client/composer/VoiceButton.js.map +1 -0
  38. package/dist/client/composer/useVoiceDictation.d.ts +38 -0
  39. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -0
  40. package/dist/client/composer/useVoiceDictation.js +398 -0
  41. package/dist/client/composer/useVoiceDictation.js.map +1 -0
  42. package/dist/client/index.d.ts +1 -0
  43. package/dist/client/index.d.ts.map +1 -1
  44. package/dist/client/index.js +1 -0
  45. package/dist/client/index.js.map +1 -1
  46. package/dist/client/onboarding/OnboardingPanel.js +2 -2
  47. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  48. package/dist/client/org/OrgSwitcher.d.ts +5 -4
  49. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  50. package/dist/client/org/OrgSwitcher.js +90 -24
  51. package/dist/client/org/OrgSwitcher.js.map +1 -1
  52. package/dist/client/resources/McpServerDetail.d.ts +15 -0
  53. package/dist/client/resources/McpServerDetail.d.ts.map +1 -0
  54. package/dist/client/resources/McpServerDetail.js +65 -0
  55. package/dist/client/resources/McpServerDetail.js.map +1 -0
  56. package/dist/client/resources/ResourceEditor.js +1 -1
  57. package/dist/client/resources/ResourceEditor.js.map +1 -1
  58. package/dist/client/resources/ResourceTree.d.ts +6 -1
  59. package/dist/client/resources/ResourceTree.d.ts.map +1 -1
  60. package/dist/client/resources/ResourceTree.js +18 -7
  61. package/dist/client/resources/ResourceTree.js.map +1 -1
  62. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  63. package/dist/client/resources/ResourcesPanel.js +191 -20
  64. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  65. package/dist/client/resources/use-mcp-servers.d.ts +68 -0
  66. package/dist/client/resources/use-mcp-servers.d.ts.map +1 -0
  67. package/dist/client/resources/use-mcp-servers.js +83 -0
  68. package/dist/client/resources/use-mcp-servers.js.map +1 -0
  69. package/dist/client/resources/use-resources.d.ts +27 -1
  70. package/dist/client/resources/use-resources.d.ts.map +1 -1
  71. package/dist/client/resources/use-resources.js +63 -0
  72. package/dist/client/resources/use-resources.js.map +1 -1
  73. package/dist/client/settings/SecretsSection.d.ts +12 -0
  74. package/dist/client/settings/SecretsSection.d.ts.map +1 -0
  75. package/dist/client/settings/SecretsSection.js +148 -0
  76. package/dist/client/settings/SecretsSection.js.map +1 -0
  77. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  78. package/dist/client/settings/SettingsPanel.js +101 -2
  79. package/dist/client/settings/SettingsPanel.js.map +1 -1
  80. package/dist/client/settings/VoiceTranscriptionSection.d.ts +14 -0
  81. package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -0
  82. package/dist/client/settings/VoiceTranscriptionSection.js +111 -0
  83. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -0
  84. package/dist/client/settings/index.d.ts +1 -0
  85. package/dist/client/settings/index.d.ts.map +1 -1
  86. package/dist/client/settings/index.js +1 -0
  87. package/dist/client/settings/index.js.map +1 -1
  88. package/dist/client/sharing/ShareButton.d.ts +16 -0
  89. package/dist/client/sharing/ShareButton.d.ts.map +1 -0
  90. package/dist/client/sharing/ShareButton.js +308 -0
  91. package/dist/client/sharing/ShareButton.js.map +1 -0
  92. package/dist/client/sharing/ShareDialog.d.ts +33 -0
  93. package/dist/client/sharing/ShareDialog.d.ts.map +1 -0
  94. package/dist/client/sharing/ShareDialog.js +231 -0
  95. package/dist/client/sharing/ShareDialog.js.map +1 -0
  96. package/dist/client/sharing/VisibilityBadge.d.ts +11 -0
  97. package/dist/client/sharing/VisibilityBadge.d.ts.map +1 -0
  98. package/dist/client/sharing/VisibilityBadge.js +19 -0
  99. package/dist/client/sharing/VisibilityBadge.js.map +1 -0
  100. package/dist/client/sharing/index.d.ts +4 -0
  101. package/dist/client/sharing/index.d.ts.map +1 -0
  102. package/dist/client/sharing/index.js +4 -0
  103. package/dist/client/sharing/index.js.map +1 -0
  104. package/dist/client/use-action.d.ts.map +1 -1
  105. package/dist/client/use-action.js +27 -3
  106. package/dist/client/use-action.js.map +1 -1
  107. package/dist/db/migrations.d.ts +18 -3
  108. package/dist/db/migrations.d.ts.map +1 -1
  109. package/dist/db/migrations.js +25 -3
  110. package/dist/db/migrations.js.map +1 -1
  111. package/dist/db/schema.d.ts +1 -0
  112. package/dist/db/schema.d.ts.map +1 -1
  113. package/dist/db/schema.js +4 -0
  114. package/dist/db/schema.js.map +1 -1
  115. package/dist/deploy/build.js +22 -3
  116. package/dist/deploy/build.js.map +1 -1
  117. package/dist/deploy/workspace-core.js +2 -2
  118. package/dist/index.d.ts +1 -0
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +4 -0
  121. package/dist/index.js.map +1 -1
  122. package/dist/mcp-client/config.d.ts +20 -1
  123. package/dist/mcp-client/config.d.ts.map +1 -1
  124. package/dist/mcp-client/config.js +28 -11
  125. package/dist/mcp-client/config.js.map +1 -1
  126. package/dist/mcp-client/hub-client.d.ts +38 -0
  127. package/dist/mcp-client/hub-client.d.ts.map +1 -0
  128. package/dist/mcp-client/hub-client.js +147 -0
  129. package/dist/mcp-client/hub-client.js.map +1 -0
  130. package/dist/mcp-client/hub-routes.d.ts +42 -0
  131. package/dist/mcp-client/hub-routes.d.ts.map +1 -0
  132. package/dist/mcp-client/hub-routes.js +114 -0
  133. package/dist/mcp-client/hub-routes.js.map +1 -0
  134. package/dist/mcp-client/index.d.ts +15 -0
  135. package/dist/mcp-client/index.d.ts.map +1 -1
  136. package/dist/mcp-client/index.js +35 -0
  137. package/dist/mcp-client/index.js.map +1 -1
  138. package/dist/mcp-client/manager.d.ts +54 -8
  139. package/dist/mcp-client/manager.d.ts.map +1 -1
  140. package/dist/mcp-client/manager.js +276 -59
  141. package/dist/mcp-client/manager.js.map +1 -1
  142. package/dist/mcp-client/remote-store.d.ts +102 -0
  143. package/dist/mcp-client/remote-store.d.ts.map +1 -0
  144. package/dist/mcp-client/remote-store.js +200 -0
  145. package/dist/mcp-client/remote-store.js.map +1 -0
  146. package/dist/mcp-client/routes.d.ts +55 -0
  147. package/dist/mcp-client/routes.d.ts.map +1 -0
  148. package/dist/mcp-client/routes.js +384 -0
  149. package/dist/mcp-client/routes.js.map +1 -0
  150. package/dist/mcp-client/visibility.d.ts +16 -0
  151. package/dist/mcp-client/visibility.d.ts.map +1 -0
  152. package/dist/mcp-client/visibility.js +45 -0
  153. package/dist/mcp-client/visibility.js.map +1 -0
  154. package/dist/onboarding/default-steps.d.ts.map +1 -1
  155. package/dist/onboarding/default-steps.js +5 -0
  156. package/dist/onboarding/default-steps.js.map +1 -1
  157. package/dist/org/accept-pending.d.ts +22 -0
  158. package/dist/org/accept-pending.d.ts.map +1 -0
  159. package/dist/org/accept-pending.js +75 -0
  160. package/dist/org/accept-pending.js.map +1 -0
  161. package/dist/org/context.js +2 -2
  162. package/dist/org/context.js.map +1 -1
  163. package/dist/org/handlers.d.ts +2 -0
  164. package/dist/org/handlers.d.ts.map +1 -1
  165. package/dist/org/handlers.js +54 -3
  166. package/dist/org/handlers.js.map +1 -1
  167. package/dist/org/index.d.ts +2 -0
  168. package/dist/org/index.d.ts.map +1 -1
  169. package/dist/org/index.js +1 -0
  170. package/dist/org/index.js.map +1 -1
  171. package/dist/resources/handlers.d.ts.map +1 -1
  172. package/dist/resources/handlers.js +30 -0
  173. package/dist/resources/handlers.js.map +1 -1
  174. package/dist/secrets/index.d.ts +15 -0
  175. package/dist/secrets/index.d.ts.map +1 -0
  176. package/dist/secrets/index.js +15 -0
  177. package/dist/secrets/index.js.map +1 -0
  178. package/dist/secrets/onboarding.d.ts +18 -0
  179. package/dist/secrets/onboarding.d.ts.map +1 -0
  180. package/dist/secrets/onboarding.js +87 -0
  181. package/dist/secrets/onboarding.js.map +1 -0
  182. package/dist/secrets/register-framework-secrets.d.ts +13 -0
  183. package/dist/secrets/register-framework-secrets.d.ts.map +1 -0
  184. package/dist/secrets/register-framework-secrets.js +59 -0
  185. package/dist/secrets/register-framework-secrets.js.map +1 -0
  186. package/dist/secrets/register.d.ts +63 -0
  187. package/dist/secrets/register.d.ts.map +1 -0
  188. package/dist/secrets/register.js +62 -0
  189. package/dist/secrets/register.js.map +1 -0
  190. package/dist/secrets/routes.d.ts +67 -0
  191. package/dist/secrets/routes.d.ts.map +1 -0
  192. package/dist/secrets/routes.js +275 -0
  193. package/dist/secrets/routes.js.map +1 -0
  194. package/dist/secrets/schema.d.ts +154 -0
  195. package/dist/secrets/schema.d.ts.map +1 -0
  196. package/dist/secrets/schema.js +41 -0
  197. package/dist/secrets/schema.js.map +1 -0
  198. package/dist/secrets/storage.d.ts +54 -0
  199. package/dist/secrets/storage.d.ts.map +1 -0
  200. package/dist/secrets/storage.js +181 -0
  201. package/dist/secrets/storage.js.map +1 -0
  202. package/dist/server/action-discovery.d.ts +18 -0
  203. package/dist/server/action-discovery.d.ts.map +1 -1
  204. package/dist/server/action-discovery.js +95 -0
  205. package/dist/server/action-discovery.js.map +1 -1
  206. package/dist/server/action-routes.d.ts.map +1 -1
  207. package/dist/server/action-routes.js +22 -2
  208. package/dist/server/action-routes.js.map +1 -1
  209. package/dist/server/agent-chat-plugin.d.ts +16 -0
  210. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  211. package/dist/server/agent-chat-plugin.js +120 -25
  212. package/dist/server/agent-chat-plugin.js.map +1 -1
  213. package/dist/server/app-name.d.ts +13 -0
  214. package/dist/server/app-name.d.ts.map +1 -0
  215. package/dist/server/app-name.js +41 -0
  216. package/dist/server/app-name.js.map +1 -0
  217. package/dist/server/app-url.d.ts +24 -0
  218. package/dist/server/app-url.d.ts.map +1 -0
  219. package/dist/server/app-url.js +76 -0
  220. package/dist/server/app-url.js.map +1 -0
  221. package/dist/server/auth.d.ts.map +1 -1
  222. package/dist/server/auth.js +50 -0
  223. package/dist/server/auth.js.map +1 -1
  224. package/dist/server/better-auth-instance.d.ts.map +1 -1
  225. package/dist/server/better-auth-instance.js +137 -13
  226. package/dist/server/better-auth-instance.js.map +1 -1
  227. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  228. package/dist/server/core-routes-plugin.js +73 -0
  229. package/dist/server/core-routes-plugin.js.map +1 -1
  230. package/dist/server/create-server.d.ts.map +1 -1
  231. package/dist/server/create-server.js +6 -0
  232. package/dist/server/create-server.js.map +1 -1
  233. package/dist/server/date-utils.d.ts +15 -0
  234. package/dist/server/date-utils.d.ts.map +1 -0
  235. package/dist/server/date-utils.js +41 -0
  236. package/dist/server/date-utils.js.map +1 -0
  237. package/dist/server/email-template.d.ts +51 -0
  238. package/dist/server/email-template.d.ts.map +1 -0
  239. package/dist/server/email-template.js +146 -0
  240. package/dist/server/email-template.js.map +1 -0
  241. package/dist/server/index.d.ts +6 -1
  242. package/dist/server/index.d.ts.map +1 -1
  243. package/dist/server/index.js +6 -1
  244. package/dist/server/index.js.map +1 -1
  245. package/dist/server/onboarding-html.d.ts +3 -0
  246. package/dist/server/onboarding-html.d.ts.map +1 -1
  247. package/dist/server/onboarding-html.js +13 -3
  248. package/dist/server/onboarding-html.js.map +1 -1
  249. package/dist/server/request-context.d.ts +9 -0
  250. package/dist/server/request-context.d.ts.map +1 -1
  251. package/dist/server/request-context.js +10 -0
  252. package/dist/server/request-context.js.map +1 -1
  253. package/dist/server/transcribe-voice.d.ts +26 -0
  254. package/dist/server/transcribe-voice.d.ts.map +1 -0
  255. package/dist/server/transcribe-voice.js +143 -0
  256. package/dist/server/transcribe-voice.js.map +1 -0
  257. package/dist/sharing/access.d.ts +56 -0
  258. package/dist/sharing/access.d.ts.map +1 -0
  259. package/dist/sharing/access.js +149 -0
  260. package/dist/sharing/access.js.map +1 -0
  261. package/dist/sharing/actions/list-resource-shares.d.ts +3 -0
  262. package/dist/sharing/actions/list-resource-shares.d.ts.map +1 -0
  263. package/dist/sharing/actions/list-resource-shares.js +38 -0
  264. package/dist/sharing/actions/list-resource-shares.js.map +1 -0
  265. package/dist/sharing/actions/set-resource-visibility.d.ts +3 -0
  266. package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -0
  267. package/dist/sharing/actions/set-resource-visibility.js +24 -0
  268. package/dist/sharing/actions/set-resource-visibility.js.map +1 -0
  269. package/dist/sharing/actions/share-resource.d.ts +3 -0
  270. package/dist/sharing/actions/share-resource.d.ts.map +1 -0
  271. package/dist/sharing/actions/share-resource.js +64 -0
  272. package/dist/sharing/actions/share-resource.js.map +1 -0
  273. package/dist/sharing/actions/unshare-resource.d.ts +3 -0
  274. package/dist/sharing/actions/unshare-resource.d.ts.map +1 -0
  275. package/dist/sharing/actions/unshare-resource.js +24 -0
  276. package/dist/sharing/actions/unshare-resource.js.map +1 -0
  277. package/dist/sharing/index.d.ts +11 -0
  278. package/dist/sharing/index.d.ts.map +1 -0
  279. package/dist/sharing/index.js +11 -0
  280. package/dist/sharing/index.js.map +1 -0
  281. package/dist/sharing/registry.d.ts +44 -0
  282. package/dist/sharing/registry.d.ts.map +1 -0
  283. package/dist/sharing/registry.js +54 -0
  284. package/dist/sharing/registry.js.map +1 -0
  285. package/dist/sharing/schema.d.ts +202 -0
  286. package/dist/sharing/schema.d.ts.map +1 -0
  287. package/dist/sharing/schema.js +88 -0
  288. package/dist/sharing/schema.js.map +1 -0
  289. package/dist/styles/agent-native.css +111 -0
  290. package/dist/tailwind.preset.d.ts +2 -2
  291. package/dist/tailwind.preset.d.ts.map +1 -1
  292. package/dist/tailwind.preset.js +27 -7
  293. package/dist/tailwind.preset.js.map +1 -1
  294. package/dist/templates/default/app/global.css +65 -68
  295. package/dist/templates/default/components.json +1 -1
  296. package/dist/templates/default/package.json +2 -4
  297. package/dist/templates/default/vite.config.ts +3 -0
  298. package/dist/templates/workspace-core/package.json +1 -4
  299. package/dist/templates/workspace-core/src/index.ts +1 -1
  300. package/dist/templates/workspace-core/styles/tokens.css +22 -0
  301. package/dist/templates/workspace-core/tsconfig.json +1 -1
  302. package/dist/vite/action-types-plugin.d.ts +5 -0
  303. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  304. package/dist/vite/action-types-plugin.js +129 -28
  305. package/dist/vite/action-types-plugin.js.map +1 -1
  306. package/dist/vite/client.d.ts +6 -0
  307. package/dist/vite/client.d.ts.map +1 -1
  308. package/dist/vite/client.js +18 -1
  309. package/dist/vite/client.js.map +1 -1
  310. package/docs/content/actions.md +169 -74
  311. package/docs/content/agent-teams.md +139 -0
  312. package/docs/content/cloneable-saas.md +98 -0
  313. package/docs/content/creating-templates.md +9 -11
  314. package/docs/content/deployment.md +2 -9
  315. package/docs/content/drop-in-agent.md +200 -0
  316. package/docs/content/enterprise-workspace.md +22 -10
  317. package/docs/content/getting-started.md +34 -19
  318. package/docs/content/integrations.md +3 -3
  319. package/docs/content/key-concepts.md +50 -23
  320. package/docs/content/mcp-clients.md +71 -0
  321. package/docs/content/pure-agent-apps.md +69 -0
  322. package/docs/content/recurring-jobs.md +123 -0
  323. package/docs/content/skills-guide.md +8 -0
  324. package/docs/content/template-analytics.md +190 -0
  325. package/docs/content/template-calendar.md +151 -0
  326. package/docs/content/template-clips.md +55 -0
  327. package/docs/content/template-content.md +141 -0
  328. package/docs/content/template-dispatch.md +58 -0
  329. package/docs/content/template-forms.md +51 -0
  330. package/docs/content/template-mail.md +169 -0
  331. package/docs/content/template-slides.md +218 -0
  332. package/docs/content/template-starter.md +68 -0
  333. package/docs/content/template-video.md +162 -0
  334. package/docs/content/voice-input.md +59 -0
  335. package/docs/content/what-is-agent-native.md +142 -45
  336. package/docs/content/workspace-management.md +1 -0
  337. package/docs/content/{resources.md → workspace.md} +94 -42
  338. package/package.json +20 -19
  339. package/src/templates/default/app/global.css +65 -68
  340. package/src/templates/default/components.json +1 -1
  341. package/src/templates/default/package.json +2 -4
  342. package/src/templates/default/vite.config.ts +3 -0
  343. package/src/templates/workspace-core/package.json +1 -4
  344. package/src/templates/workspace-core/src/index.ts +1 -1
  345. package/src/templates/workspace-core/styles/tokens.css +22 -0
  346. package/src/templates/workspace-core/tsconfig.json +1 -1
  347. package/dist/templates/default/postcss.config.js +0 -6
  348. package/dist/templates/default/tailwind.config.ts +0 -7
  349. package/dist/templates/workspace-core/tailwind.preset.ts +0 -34
  350. package/src/templates/default/postcss.config.js +0 -6
  351. package/src/templates/default/tailwind.config.ts +0 -7
  352. package/src/templates/workspace-core/tailwind.preset.ts +0 -34
@@ -1,11 +1,28 @@
1
1
  ---
2
- title: "Workspace Resources"
3
- description: "SQL-backed workspace files for notes, skills, custom agents, scheduled tasks, and instructions."
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 Resources
6
+ # Workspace
7
7
 
8
- The **Workspace** tab 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.
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) | Corrections and preferences the agent records per user so it doesn't repeat mistakes. |
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
- ```text
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
- | Skill | Path | Description |
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
- A personal resource where the agent records corrections, preferences, and patterns it learns from each user. When the agent makes a mistake and the user corrects it, the agent updates `learnings.md` so it doesn't repeat the error.
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
- ````text
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 | Dev Mode | Production |
236
- |---------|----------|------------|
237
- | @ tagging | Codebase files + workspace resources + custom agents + connected agents | Workspace resources + custom agents + connected agents |
238
- | / slash commands | .agents/skills/ + resource skills | Resource skills only |
239
- | Agent file access | Filesystem + resources | Resources only |
240
- | Workspace panel | Full access | Full access |
241
- | AGENTS.md / learnings.md | Available | 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 | Endpoint | Description |
252
- |--------|----------|-------------|
253
- | `GET` | `/_agent-native/resources?scope=all` | List resources |
254
- | `GET` | `/_agent-native/resources/tree?scope=all` | Get folder tree |
255
- | `POST` | `/_agent-native/resources` | Create a resource |
256
- | `GET` | `/_agent-native/resources/:id` | Get resource with content |
257
- | `PUT` | `/_agent-native/resources/:id` | Update a resource |
258
- | `DELETE` | `/_agent-native/resources/:id` | Delete a resource |
259
- | `POST` | `/_agent-native/resources/upload` | Upload a file as resource |
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.2",
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.2",
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.44.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": ">=3",
137
- "tailwindcss-animate": ">=1",
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-animate": {
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": "^3.4.17",
250
- "tailwindcss-animate": "^1.0.7",
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
- @tailwind base;
4
- @tailwind components;
5
- @tailwind utilities;
3
+ @import "tailwindcss";
4
+ @import "@agent-native/core/styles/agent-native.css";
6
5
 
7
- @layer base {
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
- .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%;
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
- @apply bg-background text-foreground;
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
  }
@@ -4,7 +4,7 @@
4
4
  "rsc": false,
5
5
  "tsx": true,
6
6
  "tailwind": {
7
- "config": "tailwind.config.ts",
7
+ "config": "",
8
8
  "css": "app/global.css",
9
9
  "baseColor": "slate",
10
10
  "cssVariables": true,
@@ -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": "^3.4.17",
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"
@@ -3,4 +3,7 @@ import { defineConfig } from "@agent-native/core/vite";
3
3
 
4
4
  export default defineConfig({
5
5
  plugins: [reactRouter()],
6
+ // shiki only runs in AssistantChat's useEffect — keep it out of the
7
+ // CF Pages Functions bundle (25 MiB limit).
8
+ ssrStubs: ["shiki"],
6
9
  });
@@ -20,10 +20,7 @@
20
20
  "types": "./src/credentials.ts",
21
21
  "default": "./src/credentials.ts"
22
22
  },
23
- "./tailwind": {
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 preset — see tailwind.preset.ts
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
+ }
@@ -5,5 +5,5 @@
5
5
  "outDir": "dist",
6
6
  "noEmit": true
7
7
  },
8
- "include": ["src/**/*", "tailwind.preset.ts"]
8
+ "include": ["src/**/*"]
9
9
  }
@@ -1,6 +0,0 @@
1
- export default {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- };
@@ -1,7 +0,0 @@
1
- import type { Config } from "tailwindcss";
2
- import preset from "@agent-native/core/tailwind";
3
-
4
- export default {
5
- presets: [preset],
6
- content: ["./app/**/*.{ts,tsx}"],
7
- } satisfies Config;
@@ -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;
@@ -1,6 +0,0 @@
1
- export default {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- };
@@ -1,7 +0,0 @@
1
- import type { Config } from "tailwindcss";
2
- import preset from "@agent-native/core/tailwind";
3
-
4
- export default {
5
- presets: [preset],
6
- content: ["./app/**/*.{ts,tsx}"],
7
- } satisfies Config;