@agent-native/core 0.84.34 → 0.84.36

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 (230) hide show
  1. package/README.md +15 -51
  2. package/corpus/README.md +1 -1
  3. package/corpus/core/CHANGELOG.md +20 -0
  4. package/corpus/core/docs/content/actions.mdx +17 -24
  5. package/corpus/core/docs/content/agent-surfaces.mdx +59 -56
  6. package/corpus/core/docs/content/cloneable-saas.mdx +3 -3
  7. package/corpus/core/docs/content/faq.mdx +4 -4
  8. package/corpus/core/docs/content/getting-started.mdx +246 -204
  9. package/corpus/core/docs/content/key-concepts.mdx +9 -9
  10. package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
  11. package/corpus/core/docs/content/locales/ar-SA/faq.mdx +4 -4
  12. package/corpus/core/docs/content/locales/ar-SA/getting-started.mdx +148 -214
  13. package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
  14. package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +2 -2
  15. package/corpus/core/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
  16. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
  17. package/corpus/core/docs/content/locales/de-DE/faq.mdx +4 -4
  18. package/corpus/core/docs/content/locales/de-DE/getting-started.mdx +145 -211
  19. package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
  20. package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +2 -2
  21. package/corpus/core/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
  22. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
  23. package/corpus/core/docs/content/locales/es-ES/faq.mdx +4 -4
  24. package/corpus/core/docs/content/locales/es-ES/getting-started.mdx +148 -214
  25. package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
  26. package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +2 -2
  27. package/corpus/core/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
  28. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  29. package/corpus/core/docs/content/locales/fr-FR/faq.mdx +4 -4
  30. package/corpus/core/docs/content/locales/fr-FR/getting-started.mdx +146 -212
  31. package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
  32. package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +2 -2
  33. package/corpus/core/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
  34. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
  35. package/corpus/core/docs/content/locales/hi-IN/faq.mdx +4 -4
  36. package/corpus/core/docs/content/locales/hi-IN/getting-started.mdx +149 -215
  37. package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
  38. package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +2 -2
  39. package/corpus/core/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
  40. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  41. package/corpus/core/docs/content/locales/ja-JP/faq.mdx +4 -4
  42. package/corpus/core/docs/content/locales/ja-JP/getting-started.mdx +144 -210
  43. package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
  44. package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +2 -2
  45. package/corpus/core/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
  46. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
  47. package/corpus/core/docs/content/locales/ko-KR/faq.mdx +4 -4
  48. package/corpus/core/docs/content/locales/ko-KR/getting-started.mdx +146 -212
  49. package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
  50. package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +2 -2
  51. package/corpus/core/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
  52. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
  53. package/corpus/core/docs/content/locales/pt-BR/faq.mdx +4 -4
  54. package/corpus/core/docs/content/locales/pt-BR/getting-started.mdx +145 -211
  55. package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
  56. package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +2 -2
  57. package/corpus/core/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
  58. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
  59. package/corpus/core/docs/content/locales/zh-CN/faq.mdx +4 -4
  60. package/corpus/core/docs/content/locales/zh-CN/getting-started.mdx +158 -209
  61. package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
  62. package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +2 -2
  63. package/corpus/core/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
  64. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
  65. package/corpus/core/docs/content/locales/zh-TW/faq.mdx +4 -4
  66. package/corpus/core/docs/content/locales/zh-TW/getting-started.mdx +158 -212
  67. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
  68. package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +2 -2
  69. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
  70. package/corpus/core/docs/content/native-chat-ui.mdx +17 -32
  71. package/corpus/core/docs/content/pure-agent-apps.mdx +46 -26
  72. package/corpus/core/docs/content/template-chat.mdx +8 -8
  73. package/corpus/core/docs/content/using-your-agent.mdx +2 -2
  74. package/corpus/core/docs/content/what-is-agent-native.mdx +6 -6
  75. package/corpus/core/package.json +1 -1
  76. package/corpus/core/src/a2a/response-text.ts +10 -1
  77. package/corpus/core/src/agent/production-agent.ts +23 -20
  78. package/corpus/core/src/agent/run-manager.ts +46 -1
  79. package/corpus/core/src/agent/thread-data-builder.ts +15 -2
  80. package/corpus/core/src/cli/skills.ts +7 -9
  81. package/corpus/core/src/client/MultiTabAssistantChat.tsx +2 -0
  82. package/corpus/core/src/client/RunStuckBanner.tsx +172 -18
  83. package/corpus/core/src/client/blocks/library/wireframe-kit.tsx +57 -9
  84. package/corpus/core/src/client/blocks/library/wireframe.tsx +3 -18
  85. package/corpus/core/src/client/chat/widgets/builtin-tool-renderers.tsx +28 -32
  86. package/corpus/core/src/client/code-agent-chat-adapter.ts +8 -1
  87. package/corpus/core/src/client/sse-event-processor.ts +21 -3
  88. package/corpus/core/src/code-agents/transcript-normalizer.ts +31 -0
  89. package/corpus/core/src/db/schema.ts +5 -0
  90. package/corpus/core/src/server/agent-chat-plugin.ts +8 -2
  91. package/corpus/core/src/server/agent-teams.ts +24 -2
  92. package/corpus/core/src/styles/blocks.css +27 -6
  93. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +1 -4
  94. package/corpus/templates/analytics/changelog/2026-07-01-smoother-chat-streaming.md +6 -0
  95. package/corpus/templates/content/actions/list-trashed-content-databases.ts +1 -1
  96. package/corpus/templates/plan/.agents/skills/visual-plan/references/wireframe.md +7 -9
  97. package/corpus/templates/plan/.agents/skills/visual-recap/references/wireframe.md +7 -9
  98. package/dist/a2a/response-text.d.ts +1 -0
  99. package/dist/a2a/response-text.d.ts.map +1 -1
  100. package/dist/a2a/response-text.js +8 -2
  101. package/dist/a2a/response-text.js.map +1 -1
  102. package/dist/agent/production-agent.d.ts.map +1 -1
  103. package/dist/agent/production-agent.js +31 -27
  104. package/dist/agent/production-agent.js.map +1 -1
  105. package/dist/agent/run-manager.d.ts +12 -0
  106. package/dist/agent/run-manager.d.ts.map +1 -1
  107. package/dist/agent/run-manager.js +32 -1
  108. package/dist/agent/run-manager.js.map +1 -1
  109. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  110. package/dist/agent/thread-data-builder.js +15 -2
  111. package/dist/agent/thread-data-builder.js.map +1 -1
  112. package/dist/cli/skills.d.ts +1 -1
  113. package/dist/cli/skills.d.ts.map +1 -1
  114. package/dist/cli/skills.js +7 -9
  115. package/dist/cli/skills.js.map +1 -1
  116. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  117. package/dist/client/MultiTabAssistantChat.js +1 -1
  118. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  119. package/dist/client/RunStuckBanner.d.ts +13 -1
  120. package/dist/client/RunStuckBanner.d.ts.map +1 -1
  121. package/dist/client/RunStuckBanner.js +123 -16
  122. package/dist/client/RunStuckBanner.js.map +1 -1
  123. package/dist/client/blocks/library/wireframe-kit.d.ts +6 -6
  124. package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
  125. package/dist/client/blocks/library/wireframe-kit.js +52 -5
  126. package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
  127. package/dist/client/blocks/library/wireframe.d.ts.map +1 -1
  128. package/dist/client/blocks/library/wireframe.js +1 -11
  129. package/dist/client/blocks/library/wireframe.js.map +1 -1
  130. package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
  131. package/dist/client/chat/widgets/builtin-tool-renderers.js +27 -31
  132. package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
  133. package/dist/client/code-agent-chat-adapter.d.ts.map +1 -1
  134. package/dist/client/code-agent-chat-adapter.js +5 -1
  135. package/dist/client/code-agent-chat-adapter.js.map +1 -1
  136. package/dist/client/sse-event-processor.d.ts.map +1 -1
  137. package/dist/client/sse-event-processor.js +21 -3
  138. package/dist/client/sse-event-processor.js.map +1 -1
  139. package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
  140. package/dist/code-agents/transcript-normalizer.js +24 -0
  141. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  142. package/dist/collab/awareness.d.ts +2 -2
  143. package/dist/collab/awareness.d.ts.map +1 -1
  144. package/dist/collab/routes.d.ts +2 -2
  145. package/dist/db/schema.d.ts +2 -1
  146. package/dist/db/schema.d.ts.map +1 -1
  147. package/dist/db/schema.js +3 -2
  148. package/dist/db/schema.js.map +1 -1
  149. package/dist/notifications/routes.d.ts +3 -3
  150. package/dist/resources/handlers.d.ts +3 -3
  151. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  152. package/dist/server/agent-chat-plugin.js +2 -3
  153. package/dist/server/agent-chat-plugin.js.map +1 -1
  154. package/dist/server/agent-teams.d.ts.map +1 -1
  155. package/dist/server/agent-teams.js +17 -2
  156. package/dist/server/agent-teams.js.map +1 -1
  157. package/dist/server/transcribe-voice.d.ts +1 -1
  158. package/dist/styles/blocks.css +27 -6
  159. package/docs/content/actions.mdx +17 -24
  160. package/docs/content/agent-surfaces.mdx +59 -56
  161. package/docs/content/cloneable-saas.mdx +3 -3
  162. package/docs/content/faq.mdx +4 -4
  163. package/docs/content/getting-started.mdx +246 -204
  164. package/docs/content/key-concepts.mdx +9 -9
  165. package/docs/content/locales/ar-SA/cloneable-saas.mdx +3 -3
  166. package/docs/content/locales/ar-SA/faq.mdx +4 -4
  167. package/docs/content/locales/ar-SA/getting-started.mdx +148 -214
  168. package/docs/content/locales/ar-SA/pure-agent-apps.mdx +4 -9
  169. package/docs/content/locales/ar-SA/template-chat.mdx +2 -2
  170. package/docs/content/locales/ar-SA/using-your-agent.mdx +2 -2
  171. package/docs/content/locales/de-DE/cloneable-saas.mdx +3 -3
  172. package/docs/content/locales/de-DE/faq.mdx +4 -4
  173. package/docs/content/locales/de-DE/getting-started.mdx +145 -211
  174. package/docs/content/locales/de-DE/pure-agent-apps.mdx +4 -9
  175. package/docs/content/locales/de-DE/template-chat.mdx +2 -2
  176. package/docs/content/locales/de-DE/using-your-agent.mdx +2 -2
  177. package/docs/content/locales/es-ES/cloneable-saas.mdx +3 -3
  178. package/docs/content/locales/es-ES/faq.mdx +4 -4
  179. package/docs/content/locales/es-ES/getting-started.mdx +148 -214
  180. package/docs/content/locales/es-ES/pure-agent-apps.mdx +4 -9
  181. package/docs/content/locales/es-ES/template-chat.mdx +2 -2
  182. package/docs/content/locales/es-ES/using-your-agent.mdx +2 -2
  183. package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
  184. package/docs/content/locales/fr-FR/faq.mdx +4 -4
  185. package/docs/content/locales/fr-FR/getting-started.mdx +146 -212
  186. package/docs/content/locales/fr-FR/pure-agent-apps.mdx +4 -9
  187. package/docs/content/locales/fr-FR/template-chat.mdx +2 -2
  188. package/docs/content/locales/fr-FR/using-your-agent.mdx +2 -2
  189. package/docs/content/locales/hi-IN/cloneable-saas.mdx +3 -3
  190. package/docs/content/locales/hi-IN/faq.mdx +4 -4
  191. package/docs/content/locales/hi-IN/getting-started.mdx +149 -215
  192. package/docs/content/locales/hi-IN/pure-agent-apps.mdx +8 -13
  193. package/docs/content/locales/hi-IN/template-chat.mdx +2 -2
  194. package/docs/content/locales/hi-IN/using-your-agent.mdx +2 -2
  195. package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
  196. package/docs/content/locales/ja-JP/faq.mdx +4 -4
  197. package/docs/content/locales/ja-JP/getting-started.mdx +144 -210
  198. package/docs/content/locales/ja-JP/pure-agent-apps.mdx +8 -13
  199. package/docs/content/locales/ja-JP/template-chat.mdx +2 -2
  200. package/docs/content/locales/ja-JP/using-your-agent.mdx +2 -2
  201. package/docs/content/locales/ko-KR/cloneable-saas.mdx +3 -3
  202. package/docs/content/locales/ko-KR/faq.mdx +4 -4
  203. package/docs/content/locales/ko-KR/getting-started.mdx +146 -212
  204. package/docs/content/locales/ko-KR/pure-agent-apps.mdx +8 -13
  205. package/docs/content/locales/ko-KR/template-chat.mdx +2 -2
  206. package/docs/content/locales/ko-KR/using-your-agent.mdx +2 -2
  207. package/docs/content/locales/pt-BR/cloneable-saas.mdx +3 -3
  208. package/docs/content/locales/pt-BR/faq.mdx +4 -4
  209. package/docs/content/locales/pt-BR/getting-started.mdx +145 -211
  210. package/docs/content/locales/pt-BR/pure-agent-apps.mdx +4 -9
  211. package/docs/content/locales/pt-BR/template-chat.mdx +2 -2
  212. package/docs/content/locales/pt-BR/using-your-agent.mdx +2 -2
  213. package/docs/content/locales/zh-CN/cloneable-saas.mdx +3 -3
  214. package/docs/content/locales/zh-CN/faq.mdx +4 -4
  215. package/docs/content/locales/zh-CN/getting-started.mdx +158 -209
  216. package/docs/content/locales/zh-CN/pure-agent-apps.mdx +4 -9
  217. package/docs/content/locales/zh-CN/template-chat.mdx +2 -2
  218. package/docs/content/locales/zh-CN/using-your-agent.mdx +2 -2
  219. package/docs/content/locales/zh-TW/cloneable-saas.mdx +3 -3
  220. package/docs/content/locales/zh-TW/faq.mdx +4 -4
  221. package/docs/content/locales/zh-TW/getting-started.mdx +158 -212
  222. package/docs/content/locales/zh-TW/pure-agent-apps.mdx +4 -9
  223. package/docs/content/locales/zh-TW/template-chat.mdx +2 -2
  224. package/docs/content/locales/zh-TW/using-your-agent.mdx +2 -2
  225. package/docs/content/native-chat-ui.mdx +17 -32
  226. package/docs/content/pure-agent-apps.mdx +46 -26
  227. package/docs/content/template-chat.mdx +8 -8
  228. package/docs/content/using-your-agent.mdx +2 -2
  229. package/docs/content/what-is-agent-native.mdx +6 -6
  230. package/package.json +1 -1
@@ -1,259 +1,193 @@
1
1
  ---
2
2
  title: "Démarrage"
3
- description: "Créez une application d'agent, comprenez les instructions, skills et actions, puis regardez l'agent appeler sa première action."
3
+ description: "Créez une app agentic centrée sur le chat, ajoutez une action, rendez des résultats structurés en ligne, puis ajoutez une page persistante que l'agent peut ouvrir."
4
4
  ---
5
5
 
6
6
  # Démarrage
7
7
 
8
- Les applications Agent-Native donnent à un agent IA et à votre UI les mêmes actions, données et
9
- état. Un agent de base est constitué d'instructions qui le guident, de skills qui lui enseignent
10
- comportement reproductible et actions qui lui permettent de faire un vrai travail.
11
-
12
- **Vous voulez commencer par une application complète ?** Clonez l'un de nos modèles riches –
13
- [Chat](/docs/template-chat), [Mail](/docs/template-mail),
14
- [Calendar](/docs/template-calendar), [Content](/docs/template-content),
15
- [Analytics](/docs/template-analytics) et [many more](/docs/cloneable-saas) —
16
- chacune une application complète que vous personnalisez.
17
-
18
- Construire à partir de zéro ? Le seul choix dès le départ est de savoir si vous voulez un UI —
19
- tout après (écrire les instructions, ajouter skills, définir actions, exécuter
20
- l'agent) est le même dans les deux cas.
21
-
22
- <FileTree
23
- id="doc-block-13buza2"
24
- title="Un agent Agent-Native de base"
25
- entries={[
26
- {
27
- path: "AGENTS.md",
28
- note: "Instructions toujours actives : objectif, règles, ton et carte de ce que l'agent peut faire",
29
- },
30
- {
31
- path: ".agents/skills/customer-research/SKILL.md",
32
- note: "Un playbook réutilisable que l'agent charge quand la tâche correspond",
33
- },
34
- {
35
- path: "actions/summarize-week.ts",
36
- note: "Code typé que l'agent, UI, CLI, HTTP, MCP, A2A, jobs et webhooks peuvent exécuter",
37
- },
38
- ]}
39
- />
40
-
41
- Cela est vrai que vous commenciez avec un chat UI, un agent sans tête ou une application complète.
42
- Le UI change la surface ; instructions, skills et actions donnent à l'agent son
43
- conseils et comportement.
44
-
45
- ## 1. Créez votre application
46
-
47
- Vous aurez besoin de [Node.js 22+](https://nodejs.org) et [pnpm](https://pnpm.io).
48
-
49
- Exécutez `create` sans indicateur et il vous demande comment vous souhaitez démarrer (un modèle complet,
50
- Chat ou Headless) avant toute chose :
8
+ Agent-Native sert à créer des agentic applications : l'AI agent et l'UI partagent les mêmes [actions](/docs/actions), les mêmes données SQL et le même application state. Le chemin principal commence par Chat, afin que les utilisateurs puissent parler à l'agent immédiatement, puis ajoute les surfaces produit nécessaires.
51
9
 
52
- ```bash
53
- npx @agent-native/core@latest create my-app
54
- ```
10
+ Le parcours utile :
55
11
 
56
- Ou transmettez un indicateur pour ignorer l'invite :
12
+ 1. Créer une Chat app.
13
+ 2. Ajouter une action.
14
+ 3. Rendre le résultat de l'action directement dans le chat.
15
+ 4. Persister les données dans SQL.
16
+ 5. Ajouter une page que l'agent peut ouvrir lorsqu'une inspection visuelle est préférable.
57
17
 
58
- **Vous voulez un UI ?** Commencez à partir du modèle de chat. Vous obtenez un agent actif plus un
59
- chat personnalisable UI, et chaque action que vous ajoutez y apparaît automatiquement :
18
+ ## 1. Créer une Chat app {#create-your-app}
19
+
20
+ Vous avez besoin de [Node.js 22+](https://nodejs.org) et de [pnpm](https://pnpm.io).
60
21
 
61
22
  ```bash
62
23
  npx @agent-native/core@latest create my-app --template chat
24
+ cd my-app
25
+ pnpm install
26
+ pnpm dev
63
27
  ```
64
28
 
65
- **Juste la primitive sans tête ?** Démarrer sans tête – les mêmes actions et le même agent
66
- boucle, pas de shell UI :
67
-
68
- ```bash
69
- npx @agent-native/core@latest create my-agent --headless
29
+ Le template inclut durable chat threads, auth, live sync, un dossier `actions/`, les actions standard `view-screen` et `navigate`, et une app React prête à évoluer.
30
+
31
+ ## 2. Ajouter une action {#add-an-action}
32
+
33
+ Une action est une opération typée appelée par l'agent et par l'UI. Pour ce guide, créez `actions/analyze-responses.ts` : elle analyse des réponses de formulaire et renvoie une forme validée pour un graphique de chat personnalisé.
34
+
35
+ {/* prettier-ignore */}
36
+ ```ts
37
+ // actions/analyze-responses.ts
38
+ import { defineAction } from "@agent-native/core/action";
39
+ import { z } from "zod";
40
+
41
+ const responseChartResultSchema = z.object({
42
+ title: z.string(),
43
+ points: z.array(z.object({ day: z.string(), responses: z.number() })),
44
+ });
45
+
46
+ export default defineAction({
47
+ description: "Analyze recent form responses and render a custom chart.",
48
+ schema: z.object({
49
+ formId: z.string().default("demo")
50
+ }),
51
+ outputSchema: responseChartResultSchema,
52
+ chatUI: {
53
+ renderer: "responses.response-chart",
54
+ title: "Graphique des réponses"
55
+ },
56
+ readOnly: true,
57
+ run: async ({ formId }) => ({
58
+ title: `Responses for ${formId}`,
59
+ points: [{ day: "Mon", responses: 12 }, { day: "Tue", responses: 18 }, { day: "Wed", responses: 24 }, { day: "Thu", responses: 21 }],
60
+ }),
61
+ });
70
62
  ```
71
63
 
72
- Installez ensuite à partir du dossier que vous avez créé :
64
+ Exécutez-la directement :
73
65
 
74
66
  ```bash
75
- cd my-agent # ou my-app si vous avez choisi le modèle Chat
76
- pnpm install
67
+ pnpm action analyze-responses --formId demo
77
68
  ```
78
69
 
79
- À partir de maintenant, les deux sont identiques.
80
-
81
- ## 2. Ajouter une action
82
-
83
- Une action est une opération que votre agent (et votre UI) peut appeler. Les deux échafaudages
84
- livré avec cet exemple :
85
-
86
- <AnnotatedCode
87
- id="doc-block-hmo7e9"
88
- title={"Votre première action"}
89
- filename="actions/hello.ts"
90
- language="ts"
91
- code={
92
- 'import { defineAction } from "@agent-native/core/action";\nimport { z } from "zod";\n\nexport default defineAction({\n description: "Dites bonjour depuis l’agent local.",\n schema: z.object({\n name: z.string().default("world"),\n }),\n http: { method: "GET" },\n readOnly: true,\n run: async ({ name }) => {\n return { message: `Hello, ${name}!` };\n },\n});'
93
- }
94
- annotations={[
95
- {
96
- lines: "5",
97
- label: "Description de l’outil",
98
- note: "L’agent lit `description` pour décider quand appeler ceci comme outil.",
99
- },
100
- {
101
- lines: "6-8",
102
- label: "Contrat typé",
103
- note: "Un `schema` zod valide les entrées depuis chaque surface: agent, UI, HTTP, MCP et A2A.",
104
- },
105
- {
106
- lines: "9",
107
- label: "Verbe HTTP",
108
- note: "Exposez cette action sur un endpoint HTTP monté automatiquement.",
109
- },
110
- {
111
- lines: "10",
112
- label: "Lecture seule",
113
- note: "`readOnly` indique que l’action peut être appelée sans approbation et mise en cache pour les requêtes.",
114
- },
115
- {
116
- lines: "11-13",
117
- label: "Une seule implémentation",
118
- note: "Le corps de `run` est la source de vérité unique exécutée par toutes les surfaces.",
119
- },
120
- ]}
121
- />
122
-
123
- Remplacez `hello` par la première opération réelle dans votre domaine. Vous le définissez une fois ;
124
- chaque surface le capte.
125
-
126
- Utilisez `AGENTS.md` pour obtenir des conseils qui doivent s'appliquer à chaque virage. Utilisez une compétence lorsque le
127
- l'agent a besoin d'un workflow ou d'une procédure de domaine réutilisable. Utilisez une action lorsque
128
- l'agent a besoin d'un moyen typé et testable pour lire des données, écrire des données, appeler un API ou
129
- effectuer une approbation.
130
-
131
- ## 3. Exécutez-le
132
-
133
- Appelez l'action directement :
70
+ Ou demandez à l'agent dans le navigateur :
134
71
 
135
- ```bash
136
- pnpm action hello --name Steve
137
- ```
72
+ > Analyse les réponses récentes du formulaire de démonstration.
138
73
 
139
- Ou demandez à l'agent de l'appeler pour vous :
74
+ ## 3. Rendre le résultat dans le chat {#render-inline}
140
75
 
141
- ```bash
142
- pnpm agent "Call the hello action for Steve and explain what happened."
143
- ```
76
+ Comme l'action déclare `outputSchema` et un `chatUI.renderer` propre au produit, le transcript ne transforme pas les données structurées en simple texte. Enregistrez un composant React pour cet id exact au démarrage de l'app, par exemple en important `app/chat-renderers.tsx` une fois depuis `app/root.tsx` :
144
77
 
145
- Si vous avez démarré à partir du modèle Chat, exécutez l'application et utilisez le même agent dans le
146
- navigateur : il peut déjà appeler toutes les actions que vous définissez :
78
+ {/* prettier-ignore */}
79
+ ```tsx
80
+ import { registerActionChatRenderer, type ToolRendererProps,} from "@agent-native/core/client/chat";
81
+
82
+ type ResponseChartResult = {
83
+ title: string;
84
+ points: Array<{ day: string; responses: number }>;
85
+ };
86
+
87
+ function ResponseChart({ context }: ToolRendererProps) {
88
+ const result = context.resultJson as ResponseChartResult;
89
+ const max = Math.max(...result.points.map((point) => point.responses), 1);
90
+ return (
91
+ <section className="rounded-lg border bg-card p-4">
92
+ <h3 className="text-sm font-medium">{result.title}</h3>
93
+ <div className="mt-4 flex h-32 items-end gap-2">
94
+ {result.points.map((point) => (
95
+ <div key={point.day} className="flex flex-1 flex-col items-center gap-2">
96
+ <div className="w-full rounded-t bg-primary" style={{ height: `${(point.responses / max) * 100}%` }} />
97
+ <span className="text-xs text-muted-foreground">{point.day}</span>
98
+ </div>
99
+ ))}
100
+ </div>
101
+ </section>
102
+ );
103
+ }
147
104
 
148
- ```bash
149
- pnpm dev
105
+ registerActionChatRenderer({
106
+ id: "responses.response-chart",
107
+ renderer: "responses.response-chart",
108
+ Component: ResponseChart,
109
+ });
150
110
  ```
151
111
 
152
- Cette action est désormais accessible depuis le chat UI, les CLI, HTTP, MCP, A2A,
153
- tâches planifiées et webhooks. Définissez une fois, appelez de n'importe où.
154
-
155
- <Diagram id="doc-block-114sbvf" title="Une action, chaque surface" summary={"Un seul fichier defineAction est distribué à chaque consommateur sans câblage supplémentaire."}>
156
-
157
- ```html
158
- <div class="diagram-fan">
159
- <div class="diagram-box" data-rough>defineAction</div>
160
- <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
161
- <div class="diagram-surfaces">
162
- <span class="diagram-pill">Interface de chat</span
163
- ><span class="diagram-pill">CLI</span><span class="diagram-pill">HTTP</span
164
- ><span class="diagram-pill">MCP</span><span class="diagram-pill">A2A</span
165
- ><span class="diagram-pill">Tâches planifiées</span
166
- ><span class="diagram-pill">Webhooks</span>
167
- </div>
168
- </div>
169
- ```
112
+ Pour les sorties génériques réutilisables, le framework fournit aussi les renderers intégrés `data-chart` et `data-table`, ainsi que `data-insights` pour les cartes combinant résumé, graphique et tableau. Voir [Native Chat UI](/docs/native-chat-ui).
170
113
 
171
- ```css
172
- .diagram-fan {
173
- display: flex;
174
- align-items: center;
175
- gap: 14px;
176
- flex-wrap: wrap;
177
- }
178
- .diagram-fan .diagram-surfaces {
179
- display: flex;
180
- flex-wrap: wrap;
181
- gap: 8px;
182
- max-width: 420px;
183
- }
184
- .diagram-fan .diagram-arrow {
185
- font-size: 22px;
186
- line-height: 1;
187
- }
188
- ```
114
+ <WireframeBlock id="doc-block-inline-result-wireframe-fr">
115
+ <Screen
116
+ surface="desktop"
117
+ html={
118
+ "<div style='min-height:340px;box-sizing:border-box;padding:24px;display:flex;justify-content:center;align-items:center;background:var(--wf-bg)'><div style='width:min(530px,100%);display:flex;flex-direction:column;gap:14px'><div class='wf-card' data-rough style='align-self:flex-end;max-width:70%;padding:12px 14px'><strong>User</strong><p style='margin:6px 0 0'>Analyse les réponses de démo.</p></div><div class='wf-card' data-rough style='align-self:flex-start;width:min(370px,100%);padding:14px'><strong>Agent</strong><p class='wf-muted' style='margin:6px 0 12px'>Rendu avec responses.response-chart.</p><section class='wf-card' data-rough style='padding:14px'><h3 style='margin:0 0 12px;font-size:14px'>Graphique des réponses</h3><div data-rough='line:bottom' style='height:104px;display:flex;align-items:end;gap:8px;border-bottom:1.4px solid var(--wf-line);padding-bottom:4px'><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:38px;width:100%;background:color-mix(in srgb, var(--wf-accent) 24%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Lun</span></div><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:62px;width:100%;background:color-mix(in srgb, var(--wf-accent) 30%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Mar</span></div><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:86px;width:100%;background:color-mix(in srgb, var(--wf-accent) 36%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Mer</span></div><div style='flex:1;display:flex;flex-direction:column;align-items:center;gap:6px'><div data-rough style='height:54px;width:100%;background:color-mix(in srgb, var(--wf-accent) 42%, transparent);border:1.4px solid var(--wf-accent);border-radius:8px 8px 3px 3px'></div><span class='wf-muted'>Jeu</span></div></div></section></div></div></div>"
119
+ }
120
+ />
121
+ </WireframeBlock>
189
122
 
190
- </Diagram>
123
+ ## 4. Persister les données dans SQL {#persist-data}
191
124
 
192
- ## L'État est intégré
125
+ Quand le résultat doit être revu, comparé ou mis à jour, stockez-le dans SQL et gardez les lectures/écritures derrière des actions :
193
126
 
194
- Sans tête ne signifie pas apatride. Actions, sessions, état de l'application, threads,
195
- l'historique d'exécution et les informations d'identification se trouvent tous dans SQL. Localement, c'est SQLite à
196
- `data/app.db` ; en production, vous définissez `DATABASE_URL`. Voir
197
- [Deployment](/docs/deployment).
127
+ Définissez la table avec les helpers portables du framework, pas avec des imports de `drizzle-orm/sqlite-core` ou `drizzle-orm/pg-core` :
198
128
 
199
- <Callout id="doc-block-6fcpg4" tone="info">
129
+ ```ts
130
+ // server/db/schema.ts
131
+ import { integer, now, table, text } from "@agent-native/core/db/schema";
200
132
 
201
- **Headless est toujours une véritable application.** La boucle app-agent conserve les sessions, les threads, les exécutions, les paramètres et les informations d'identification dans SQL — ce n'est pas une invite sans état. Vous pouvez ajouter une interface utilisateur ultérieurement sans toucher à vos actions ou à votre état.
133
+ export const responseInsights = table("response_insights", {
134
+ id: text("id").primaryKey(),
135
+ formId: text("form_id").notNull(),
136
+ title: text("title").notNull(),
137
+ summary: text("summary").notNull(),
138
+ responseCount: integer("response_count").notNull(),
139
+ createdAt: text("created_at").notNull().default(now()),
140
+ updatedAt: text("updated_at").notNull().default(now()),
141
+ });
142
+ ```
202
143
 
203
- </Callout>
144
+ Ces helpers choisissent le backend SQL configuré, donc le même schéma peut fonctionner avec SQLite en local et avec Postgres, Turso/libSQL, D1 ou un autre fournisseur SQL pris en charge en production.
204
145
 
205
- ## Personnalisez le UI
146
+ - `create-response-insight` écrit un nouvel insight.
147
+ - `list-response-insights` lit les données de la page.
148
+ - `update-response-insight` met à jour un enregistrement.
149
+ - `analyze-responses` continue de renvoyer le widget natif du chat.
206
150
 
207
- Si vous avez démarré à partir du modèle Chat, vous pouvez modifier le UI. Le chat lui-même
208
- est un petit itinéraire construit sur le composant `<AgentChatSurface>` :
151
+ N'ajoutez pas de REST route en double pour le navigateur ; l'UI et l'agent doivent partager les actions.
209
152
 
210
- ```tsx
211
- // app/routes/_index.tsx
212
- import { AgentChatSurface } from "@agent-native/core/client";
153
+ ## 5. Ajouter une page que l'agent peut ouvrir {#add-a-page}
213
154
 
214
- export default function ChatRoute() {
215
- return <AgentChatSurface mode="page" className="h-full" />;
216
- }
217
- ```
155
+ Ajoutez une route `/response-insights` avec `useActionQuery("list-response-insights")` et `useActionMutation("create-response-insight")`. La page est une projection du SQL state ; les données restent écrites par les mêmes actions.
218
156
 
219
- - **`app/routes/_index.tsx`** — la page de discussion. Modifier les suggestions, vide
220
- état et disposition.
221
- - **`app/root.tsx`** — le shell de l'application. Ajoutez vos propres itinéraires et écrans autour du
222
- agent.
223
- - Déposez l'agent sur n'importe quel écran avec `<AgentSidebar>`, travaillez-y manuellement à partir d'un
224
- bouton avec `sendToAgentChat()`, ou exécuter une action directement avec
225
- `useActionMutation()`.
157
+ <WireframeBlock id="doc-block-response-insights-page-wireframe-fr">
158
+ <Screen
159
+ surface="desktop"
160
+ html={
161
+ "<main style='min-height:440px;box-sizing:border-box;padding:28px;background:var(--wf-bg)'><section style='max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:stretch'><section class='wf-card' data-rough style='display:flex;flex-direction:column;gap:16px'><header><h2 style='margin:0 0 4px;font-size:28px'>Insights de réponses</h2><p class='wf-muted' style='margin:0'>Insights créés par l'agent à partir des réponses du formulaire.</p></header><button class='primary' data-rough style='align-self:flex-start'>Analyser le formulaire de démonstration</button><section style='display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px'><article class='wf-box' data-rough style='padding:12px'><strong>Thème de tarification</strong><p class='wf-muted' style='margin:8px 0 0'>Les utilisateurs demandent un forfait équipe.</p></article><article class='wf-box' data-rough style='padding:12px'><strong>Abandon d'onboarding</strong><p class='wf-muted' style='margin:8px 0 0'>Trois étapes demandent un texte plus clair.</p></article></section><section class='wf-card' data-rough style='display:flex;flex-direction:column;gap:10px'><div class='wf-row wf-box' data-rough style='padding:10px 12px;gap:12px;justify-content:space-between'><strong>Formulaire de démonstration</strong><span class='wf-muted'>42 réponses analysées</span></div><div class='wf-row wf-box' data-rough style='padding:10px 12px;gap:12px;justify-content:space-between'><strong>Étape suivante</strong><span class='wf-muted'>Relire deux brouillons d'insights</span></div></section></section><aside class='wf-card' data-rough style='height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:12px'><strong>Chat</strong><div class='wf-box' data-rough style='align-self:flex-end;max-width:210px;padding:10px 12px'><span class='wf-muted'>Vous</span><p style='margin:4px 0 0'>Ouvrez les insights de réponses.</p></div><div class='wf-box' data-rough style='align-self:flex-start;max-width:210px;padding:10px 12px'><span class='wf-muted'>Agent</span><p style='margin:4px 0 0'>Insights de réponses ouverts.</p></div></aside></section></main>"
162
+ }
163
+ />
164
+ </WireframeBlock>
226
165
 
227
- Voir [Drop-in Agent](/docs/drop-in-agent) pour l'ensemble complet des composants, et
228
- [Native Interface de chat](/docs/native-chat-ui) pour afficher les résultats des actions sous forme de tableaux,
229
- des graphiques et des cartes dactylographiées au lieu de texte brut.
166
+ Étendez `view-screen` et `navigate` pour que l'agent connaisse la route active et puisse ouvrir `/response-insights`. Les résultats peuvent aussi contenir `href: "/response-insights"` pour afficher un bouton "Ouvrir les insights de réponses".
230
167
 
231
- **Vous avez commencé sans tête et vous voulez un UI plus tard ?** Le modèle Chat _est_ la rampe d'accès au UI
232
- sa couche `app/` (routeur React + Vite) correspond exactement à l'échafaudage sans tête
233
- laisse de côté. Le geste le plus simple consiste à démarrer (ou à ré-échafauder) à partir du chat
234
- modèle ; vos états `actions/`, agent et SQL restent inchangés. Voir
235
- [Agent Surfaces](/docs/agent-surfaces) pour chaque surface intermédiaire.
168
+ Quand le chat pleine page ouvre une page d'app, utilisez `AgentChatSurface`, `AgentSidebar`, `useAgentChatHomeHandoff`, `useAgentChatHomeHandoffLinks` et `chatViewTransition` depuis [Agent Surfaces](/docs/agent-surfaces#rich-chat) pour glisser le chat dans le panneau latéral sans perdre le thread.
236
169
 
237
- ## Structure du projet
170
+ ## Structure du projet {#project-structure}
238
171
 
239
172
  ```text
240
173
  my-app/
241
- actions/ # Actions appelables par lagent
242
- app/ # Frontend React (modèles UI uniquement ; omis en headless)
243
- server/ # Serveur API Nitro (routes, plugins)
244
- AGENTS.md # Instructions permanentes de l’agent
245
- .agents/ # Skills que lagent peut charger au besoin
246
- data/app.db # État SQLite local quand DATABASE_URL nest pas défini
174
+ actions/ # Opérations appelables par l'agent et l'interface
175
+ app/ # Routes, pages et surfaces de chat React
176
+ server/ # Serveur Nitro et schéma SQL
177
+ AGENTS.md # Instructions permanentes pour l'agent de l'app
178
+ .agents/ # Skills que l'agent charge quand c'est pertinent
179
+ data/app.db # État SQLite local quand DATABASE_URL n'est pas défini
247
180
  ```
248
181
 
249
- ## aller ensuite
250
-
251
- - **[Key Concepts](/docs/key-concepts)** — l'architecture de base : SQL, actions,
252
- synchronisation et prise en compte du contexte.
253
- - **[Actions](/docs/actions)** — l'action complète API : schémas, HTTP, authentification et
254
- approbation.
255
- - **[Agent Surfaces](/docs/agent-surfaces)** – sans tête, chat, side-car intégré,
256
- et application complète.
257
- - **[Drop-in Agent](/docs/drop-in-agent)** — ajoutez le chat d'agent à n'importe quelle application React.
258
- - **[Deployment](/docs/deployment)** : placez votre application sur votre propre domaine.
259
- - **[FAQ](/docs/faq)** — questions sur la configuration et le produit.
182
+ ## Vous voulez un vrai point de départ analytics ? {#analytics-starting-point}
183
+
184
+ L'exemple Insights de réponses ci-dessus est volontairement petit pour montrer les pièces du framework. Si vous construisez un vrai produit analytics, commencez plutôt avec [Analytics](/docs/template-analytics). C'est le point de départ robuste : connectez vos providers, utilisez les dashboards et agent actions existants, puis personnalisez à partir de là.
185
+
186
+ ## Suite {#next}
187
+
188
+ - **[Actions](/docs/actions)** — schemas, auth, approvals, hooks et transport.
189
+ - **[Native Chat UI](/docs/native-chat-ui)** — tableaux, graphiques et typed cards pour les résultats d'actions.
190
+ - **[Chat Template](/docs/template-chat)** — l'app minimale chat-first.
191
+ - **[Analytics Template](/docs/template-analytics)** une base analytics robuste ; connectez vos providers puis personnalisez.
192
+ - **[Context Awareness](/docs/context-awareness)** — `view-screen`, `navigate`, route state et objets sélectionnés.
193
+ - **[Agent Surfaces](/docs/agent-surfaces)** — chat, inline UI, app pages, embedded sidecars, automation et agents externes.
@@ -1,16 +1,11 @@
1
1
  ---
2
- title: "Applications Pure-Agent"
3
- description: "Applications dans lesquelles l'agent représente l'ensemble du produit : la boucle application-agent est la porte d'entrée et UI n'est ajouté que lorsque les humains en ont besoin."
2
+ title: "Automation-First Apps"
3
+ description: "Apps Agent-Native sans navigateur pour scheduled jobs, files, scripts, integration workers et agents externes."
4
4
  ---
5
5
 
6
- # Applications Pure-Agent
6
+ # Automation-First Apps
7
7
 
8
- Une application purement agent est la fin minimale de l'agent natif : la boucle application-agent est la
9
- produit, pas un tableau de bord. Vous envoyez une requête depuis le terminal, Slack, email, un
10
- tâche planifiée, un autre agent ou Chat – "résumer mes e-mails non lus", "publier le
11
- mesures quotidiennes vers Slack" — et l'agent agit et renvoie le résultat où qu'il soit
12
- appartient. C'est toujours une vraie application : actions, sessions, état de l'application, historique,
13
- les paramètres, les informations d'identification et les enregistrements de partage sont tous présents dans SQL.
8
+ Une automation-first app est une app Agent-Native sans navigateur pour scheduled jobs, files, scripts, integration workers et agents externes. Ce n'est pas le chemin par défaut de Getting Started, mais c'est utile lorsque le workflow n'a pas encore besoin d'une page. C'est toujours une vraie app : actions, sessions, application state, run history, settings, credentials et enregistrements de partage vivent dans SQL.
14
9
 
15
10
  <Diagram id="doc-block-bmd6at" title={"La boucle app-agent est la porte d’entrée"} summary={"De nombreux points d'entrée atteignent une boucle d'agent via les actions et l'état SQL-backed ; les résultats reviennent d'où que vient la demande. L'interface utilisateur est ajoutée uniquement lorsque des humains doivent superviser."}>
16
11
 
@@ -7,7 +7,7 @@ description: "Une application native d'agent minimale axée sur le chat : fils
7
7
 
8
8
  Chat est le point de départ de base d'une application native pour agent. Il vous offre un shell propre de style ChatGPT avec une discussion au centre, une liste de fils de discussion à gauche, une navigation d'application standard, une authentification, une synchronisation en direct, actions et un exemple d'action. Commencez ici lorsque vous souhaitez une véritable application de navigateur sur laquelle vous pouvez créer sans vous engager dans un modèle de domaine.
9
9
 
10
- Si vous souhaitez le plus petit environnement d'exécution d'action uniquement sans navigateur UI, commencez par [Pure-Agent Apps](/docs/pure-agent-apps). Si vous souhaitez une forme de produit de domaine fini, commencez par [Calendar](/docs/template-calendar), [Mail](/docs/template-mail), [Content](/docs/template-content), [Forms](/docs/template-forms), [Analytics](/docs/template-analytics) ou un autre modèle de domaine.
10
+ Si vous souhaitez un runtime automation-first sans UI navigateur, commencez par [Automation-First Apps](/docs/pure-agent-apps). Si vous souhaitez une forme de produit de domaine fini, commencez par [Calendar](/docs/template-calendar), [Mail](/docs/template-mail), [Content](/docs/template-content), [Forms](/docs/template-forms), [Analytics](/docs/template-analytics) ou un autre modèle de domaine.
11
11
 
12
12
  <WireframeBlock id="doc-block-19iybib">
13
13
  <Screen
@@ -200,4 +200,4 @@ L'agent doit ajouter un schéma Drizzle, un actions, un itinéraire, une navigat
200
200
  - [**Agent Surfaces**](/docs/agent-surfaces) – modèles sans tête, de chat, intégrés et d'application complète
201
201
  - [**Actions**](/docs/actions) — le chat du système d'action et UI appellent tous deux
202
202
  - [**Native Interface de chat**](/docs/native-chat-ui) – primitives de la surface de discussion et options d'exécution
203
- - [**Pure-Agent Apps**](/docs/pure-agent-apps) : applications d'action uniquement pouvant évoluer vers Chat ultérieurement
203
+ - [**Automation-First Apps**](/docs/pure-agent-apps) : automatisations, files, scripts et workflows d'agents externes sans UI navigateur
@@ -99,7 +99,7 @@ L'agent n'est pas une application distincte vers laquelle vous accédez. Il est
99
99
 
100
100
  Toutes les applications n'ont pas besoin d'un tableau de bord complet. Lorsque l'agent _est_ le produit, vous pouvez ignorer la plupart des UI personnalisés : ouvrez l'application, demandez ce que vous voulez et laissez l'agent faire le reste. L'agent dispose toujours de sa surface de gestion (historique, espace de travail, paramètres), mais l'interaction principale est la conversation plutôt que les clics.
101
101
 
102
- → [**Pure-Agent Apps**](/docs/pure-agent-apps) — applications l'agent est l'ensemble du produit.
102
+ → [**Automation-First Apps**](/docs/pure-agent-apps) — apps sans navigateur pour jobs, files, scripts et agents externes.
103
103
 
104
104
  ## Vous co-éditez avec lui {#you-co-edit}
105
105
 
@@ -113,5 +113,5 @@ Lorsque vous et l'agent travaillez sur le même document, vous ne vous relayez p
113
113
  - [**Agent Mentions**](/docs/agent-mentions) — dirigez-le avec les mentions `@`
114
114
  - [**Voice Input**](/docs/voice-input) — dirigez-le en parlant
115
115
  - [**Drop-in Agent**](/docs/drop-in-agent) : intégrez-le dans n'importe quelle application React
116
- - [**Pure-Agent Apps**](/docs/pure-agent-apps) — passez à UI légère lorsque l'agent est le produit
116
+ - [**Automation-First Apps**](/docs/pure-agent-apps) — apps sans navigateur pour jobs, files, scripts et agents externes
117
117
  - [**Real-Time Collaboration**](/docs/real-time-collaboration) — co-éditez ensemble le même document
@@ -30,7 +30,7 @@ description: "एक कार्यशील SaaS उत्पाद को फ
30
30
  | [**Plan**](/docs/template-plan) | चित्र, वायरफ्रेम और एनोटेशन के साथ विज़ुअल योजनाएं और पीआर पुनर्कथन। |
31
31
  | [**Dispatch**](/docs/template-dispatch) | कार्यस्थान नियंत्रण विमान: साझा रहस्य, पुन: प्रयोज्य एकीकरण, Slack/टेलीग्राम, निर्धारित कार्य। |
32
32
 
33
- डोमेन ऐप नहीं चाहिए? जब आप एक बुनियादी ऐप चाहते हैं जिससे उपयोगकर्ता तुरंत बात कर सकें तो [Chat](/docs/template-chat) का उपयोग करें, या [Pure-Agent Apps](/docs/pure-agent-apps) में एक action से शुरू करें।
33
+ डोमेन ऐप नहीं चाहिए? जब आप ऐसा बुनियादी ऐप चाहते हैं जिससे उपयोगकर्ता तुरंत बात कर सकें और जिसे actions, native results और screens के साथ बढ़ाया जा सके, तो [Chat](/docs/template-chat) का उपयोग करें. [Automation-First Apps](/docs/pure-agent-apps) केवल तब उपयोग करें जब workflow को अभी browser UI की ज़रूरत न हो.
34
34
 
35
35
  [Apps](/apps) के अंतर्गत पूरा कैटलॉग देखें, या सीधे एक पर जाएं - उदाहरण के लिए, यदि आप वर्कस्पेस-शैली ऐप चाहते हैं तो [Dispatch](/docs/template-dispatch) शुरू करने के लिए एक शानदार जगह है।
36
36
 
@@ -168,7 +168,7 @@ description: "एक कार्यशील SaaS उत्पाद को फ
168
168
 
169
169
  ## इस पर निर्माण
170
170
 
171
- - [**Getting Started**](/docs/getting-started) - एक न्यूनतम चैट ऐप या हेडलेस एजेंट बनाएं
171
+ - [**Getting Started**](/docs/getting-started) - chat-first app बनाएं, action जोड़ें, structured result render करें और page तक बढ़ाएं
172
172
  - [**Messaging the agent**](/docs/messaging) - उपयोगकर्ता (और आप) प्रत्येक टेम्पलेट के साथ शिप करने वाले एजेंट से कैसे बात करते हैं
173
173
  - [**Multi-App Workspace**](/docs/multi-app-workspace) - कई टेम्पलेट्स को एक कार्यक्षेत्र में बंडल करें जो ऑथ, ब्रांड और एजेंट को साझा करता है
174
174
  - [**Dispatch**](/docs/template-dispatch) - कार्यक्षेत्र नियंत्रण विमान टेम्पलेट
@@ -182,7 +182,7 @@ description: "एक कार्यशील SaaS उत्पाद को फ
182
182
  npx @agent-native/core@latest create my-platform
183
183
  ```
184
184
 
185
- आपको एक बहु-चयन पिकर मिलेगा। एक ऐप (स्टैंडअलोन) या कई (वर्कस्पेस - ऐप्स शेयर ऑथ, ब्रांड, एजेंट कॉन्फ़िगरेशन और डेटाबेस) चुनें। प्रत्येक चयनित टेम्प्लेट को आपकी आवश्यक प्रत्येक फ़ाइल के साथ `apps/<name>/` में रखा गया है। टेम्पलेट UI के बजाय केवल एक्शन ऐप के लिए, `npx @agent-native/core@latest create my-agent --headless` का उपयोग करें।
185
+ आपको एक बहु-चयन पिकर मिलेगा। एक ऐप (स्टैंडअलोन) या कई (वर्कस्पेस - ऐप्स शेयर ऑथ, ब्रांड, एजेंट कॉन्फ़िगरेशन और डेटाबेस) चुनें। प्रत्येक चयनित टेम्प्लेट को आपकी आवश्यक प्रत्येक फ़ाइल के साथ `apps/<name>/` में रखा गया है। टेम्पलेट UI के बजाय बिना browser UI वाली automation के लिए, `npx @agent-native/core@latest create my-agent --headless` का उपयोग करें।
186
186
 
187
187
  `.env` (ज्यादातर `ANTHROPIC_API_KEY` और `DATABASE_URL`), `pnpm install`, `pnpm dev` भरें और यह काम करता है। नहीं "TODO: लॉगिन लागू करें," कोई प्लेसहोल्डर रूट नहीं।
188
188
 
@@ -11,15 +11,15 @@ description: "एजेंट-नेटिव के बारे में स
11
11
 
12
12
  ### एजेंट-नेटिव क्या है? {#what-is-agent-native}
13
13
 
14
- एजेंट-नेटिव ऐप्स बनाने के लिए एक ढांचा है जहां एआई एजेंट और उसके आसपास की उत्पाद सतह समान भागीदार हैं। वह सतह एक कस्टम कार्रवाई के साथ एक हेडलेस एजेंट के रूप में शुरू हो सकती है, समृद्ध चैट में विकसित हो सकती है, या पूर्ण UI बन सकती है। अपरिवर्तनीय यह है कि एजेंट और मनुष्य समान actions, डेटाबेस और स्थिति साझा करते हैं। संपूर्ण स्पष्टीकरण के लिए [What Is Agent-Native?](/docs/what-is-agent-native) देखें।
14
+ Agent-native ऐप्स बनाने के लिए एक framework है जहां AI agent और उसके आसपास की product surface समान भागीदार हैं. सामान्य रास्ता chat से शुरू होता है, typed actions जोड़ता है, structured results inline render करता है, और उसी SQL state के ऊपर durable pages तक बढ़ता है. अपरिवर्तनीय यह है कि agent और मनुष्य समान actions, database और state साझा करते हैं. संपूर्ण स्पष्टीकरण के लिए [What Is Agent-Native?](/docs/what-is-agent-native) देखें।
15
15
 
16
16
  ### यह किसके लिए है? {#who-is-this-for}
17
17
 
18
18
  एजेंट-नेटिव उन लोगों के लिए है जो एक ही डेटा और actions से काम करने के लिए एक वास्तविक ऐप और एक AI एजेंट चाहते हैं। सामान्य पथ हैं:
19
19
 
20
20
  - **अगर आप मेल, कैलेंडर, फॉर्म, प्लान या बिना किसी सेटअप वाला कोई अन्य तैयार टेम्पलेट चाहते हैं तो होस्टेड ऐप का उपयोग करें** - [template gallery](/templates) से शुरू करें।
21
- - **चैट से शुरू करें** यदि आप चाहते हैं कि एक बुनियादी ऐप उपयोगकर्ता तुरंत बात कर सके, तो actions और स्क्रीन के साथ विस्तार करें - [Getting Started](/docs/getting-started) या [Chat](/docs/template-chat) से शुरू करें।
22
- - **यदि आप UI पर प्रतिबद्ध होने से पहले एक क्रिया और एक हेडलेस ऐप-एजेंट लूप चाहते हैं तो आदिम-पहले शुरू करें** - [Getting Started](/docs/getting-started) से शुरू करें।
21
+ - **Chat से शुरू करें** यदि आप default from-scratch path चाहते हैं: users तुरंत agent से बात करें और आप actions, native results और screens से विस्तार करें - [Getting Started](/docs/getting-started) या [Chat](/docs/template-chat) से शुरू करें।
22
+ - **automation-first से शुरू करें** यदि आप scheduled jobs, queues, scripts, integration workers या external agent workflows बना रहे हैं जिन्हें अभी browser UI नहीं चाहिए - [Automation-First Apps](/docs/pure-agent-apps) से शुरू करें।
23
23
  - \*\*यदि आप अपना स्वयं का SaaS उत्पाद ऑथ, डेटाबेस, UI और एजेंट actions के साथ पहले से ही वायर्ड चाहते हैं, तो टेम्पलेट को फोर्क और कस्टमाइज़ करें - [Templates](/docs/cloneable-saas) देखें।
24
24
  - **शुरुआत से निर्माण** यदि आप नए एजेंट-संचालित उत्पाद के लिए फ्रेमवर्क प्रिमिटिव चाहते हैं - [Getting Started](/docs/getting-started) से शुरू करें।
25
25
  - \*\*यदि आप एजेंट-नेटिव ऐप का उपयोग करने के लिए Claude, ChatGPT, Codex, कर्सर, या GitHub कोपायलट / VS कोड चाहते हैं तो किसी अन्य एजेंट या कोड टूल को कनेक्ट करें - [External Agents](/docs/external-agents) और [Skills Guide](/docs/skills-guide) देखें।
@@ -128,7 +128,7 @@ description: "एजेंट-नेटिव के बारे में स
128
128
 
129
129
  ### क्या मैं कुछ ऐसा बना सकता हूं जो टेम्पलेट्स में शामिल न हो? {#build-from-scratch}
130
130
 
131
- हां. यदि आप एक बुनियादी चैट ऐप चाहते हैं, तो `npx @agent-native/core@latest create my-chat-app --template chat` चलाएँ; आपको टिकाऊ चैट थ्रेड, actions, ऑथ, SQL-समर्थित रनटाइम स्थिति और अपनी स्क्रीन जोड़ने के लिए जगह मिलती है। यदि आप बिना UI वाला सबसे छोटा एक्शन-फर्स्ट ऐप चाहते हैं, तो `npx @agent-native/core@latest create my-agent --headless` चलाएं। [Getting Started](/docs/getting-started), [Pure-Agent Apps](/docs/pure-agent-apps), और [Chat](/docs/template-chat) देखें।
131
+ हां. यदि आप basic agentic app चाहते हैं, तो `npx @agent-native/core@latest create my-chat-app --template chat` चलाएँ; आपको durable chat threads, actions, auth, SQL-backed runtime state, native inline rendering और अपनी screens जोड़ने की जगह मिलती है. यदि आप no-browser automation बना रहे हैं, तो `npx @agent-native/core@latest create my-agent --headless` चलाएं. [Getting Started](/docs/getting-started), [Automation-First Apps](/docs/pure-agent-apps), और [Chat](/docs/template-chat) देखें।
132
132
 
133
133
  ### क्या मैं बिना टेम्पलेट फोर्क किए इसे आज़मा सकता हूं? {#try-with-a-skill}
134
134