@agent-native/core 0.102.2 → 0.103.0

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 (206) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +6 -0
  3. package/corpus/core/docs/content/local-file-mode.mdx +99 -489
  4. package/corpus/core/docs/content/locales/ar-SA/local-file-mode.mdx +35 -490
  5. package/corpus/core/docs/content/locales/ar-SA/template-content.mdx +10 -24
  6. package/corpus/core/docs/content/locales/de-DE/local-file-mode.mdx +37 -491
  7. package/corpus/core/docs/content/locales/de-DE/template-content.mdx +10 -24
  8. package/corpus/core/docs/content/locales/es-ES/local-file-mode.mdx +35 -493
  9. package/corpus/core/docs/content/locales/es-ES/template-content.mdx +10 -24
  10. package/corpus/core/docs/content/locales/fr-FR/local-file-mode.mdx +38 -491
  11. package/corpus/core/docs/content/locales/fr-FR/template-content.mdx +10 -24
  12. package/corpus/core/docs/content/locales/hi-IN/local-file-mode.mdx +33 -492
  13. package/corpus/core/docs/content/locales/hi-IN/template-content.mdx +10 -24
  14. package/corpus/core/docs/content/locales/ja-JP/local-file-mode.mdx +36 -492
  15. package/corpus/core/docs/content/locales/ja-JP/template-content.mdx +10 -24
  16. package/corpus/core/docs/content/locales/ko-KR/local-file-mode.mdx +35 -490
  17. package/corpus/core/docs/content/locales/ko-KR/template-content.mdx +10 -24
  18. package/corpus/core/docs/content/locales/pt-BR/local-file-mode.mdx +35 -493
  19. package/corpus/core/docs/content/locales/pt-BR/template-content.mdx +10 -24
  20. package/corpus/core/docs/content/locales/zh-CN/local-file-mode.mdx +31 -489
  21. package/corpus/core/docs/content/locales/zh-CN/template-content.mdx +9 -24
  22. package/corpus/core/docs/content/locales/zh-TW/local-file-mode.mdx +31 -489
  23. package/corpus/core/docs/content/locales/zh-TW/template-content.mdx +9 -24
  24. package/corpus/core/docs/content/template-content.mdx +26 -42
  25. package/corpus/core/package.json +1 -1
  26. package/corpus/core/src/cli/content-local.ts +86 -18
  27. package/corpus/core/src/cli/index.ts +2 -2
  28. package/corpus/core/src/cli/skills-content/content-skill.ts +36 -25
  29. package/corpus/core/src/cli/skills.ts +47 -13
  30. package/corpus/core/src/local-artifacts/index.ts +65 -0
  31. package/corpus/templates/assets/app/components/library/GenerationPresetsPanel.tsx +325 -0
  32. package/corpus/templates/assets/app/hooks/use-navigation-state.ts +12 -0
  33. package/corpus/templates/assets/app/i18n/zh-TW.ts +21 -0
  34. package/corpus/templates/assets/app/i18n-data.ts +215 -0
  35. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +19 -479
  36. package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +1 -1
  37. package/corpus/templates/assets/app/routes/brand-kits.$id_.settings.tsx +446 -0
  38. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +12 -2
  39. package/corpus/templates/clips/app/components/player/settings-panel.tsx +30 -12
  40. package/corpus/templates/clips/app/components/player/video-player.tsx +5 -1
  41. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +22 -3
  42. package/corpus/templates/clips/app/i18n/ar-SA.ts +3 -2
  43. package/corpus/templates/clips/app/i18n/de-DE.ts +4 -2
  44. package/corpus/templates/clips/app/i18n/en-US.ts +3 -2
  45. package/corpus/templates/clips/app/i18n/es-ES.ts +4 -2
  46. package/corpus/templates/clips/app/i18n/fr-FR.ts +3 -2
  47. package/corpus/templates/clips/app/i18n/hi-IN.ts +3 -2
  48. package/corpus/templates/clips/app/i18n/ja-JP.ts +4 -1
  49. package/corpus/templates/clips/app/i18n/ko-KR.ts +3 -2
  50. package/corpus/templates/clips/app/i18n/pt-BR.ts +4 -2
  51. package/corpus/templates/clips/app/i18n/zh-CN.ts +3 -2
  52. package/corpus/templates/clips/app/i18n/zh-TW.ts +3 -2
  53. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +27 -1
  54. package/corpus/templates/clips/server/lib/share-password.ts +6 -3
  55. package/corpus/templates/content/.agents/skills/content/SKILL.md +26 -39
  56. package/corpus/templates/content/AGENTS.md +25 -30
  57. package/corpus/templates/content/actions/_builder-docs-client.ts +23 -0
  58. package/corpus/templates/content/actions/_content-database-source-adapters.ts +21 -3
  59. package/corpus/templates/content/actions/_content-files.ts +338 -0
  60. package/corpus/templates/content/actions/_content-space-access.ts +135 -0
  61. package/corpus/templates/content/actions/_content-spaces.ts +640 -0
  62. package/corpus/templates/content/actions/_database-source-utils.ts +90 -7
  63. package/corpus/templates/content/actions/_database-utils.ts +7 -1
  64. package/corpus/templates/content/actions/_local-file-documents.ts +0 -9
  65. package/corpus/templates/content/actions/_local-folder-source.ts +53 -0
  66. package/corpus/templates/content/actions/_property-utils.ts +9 -4
  67. package/corpus/templates/content/actions/add-database-item.ts +108 -65
  68. package/corpus/templates/content/actions/backfill-content-files.ts +22 -0
  69. package/corpus/templates/content/actions/connect-local-folder-source.ts +221 -0
  70. package/corpus/templates/content/actions/create-content-database.ts +129 -3
  71. package/corpus/templates/content/actions/create-document.ts +65 -55
  72. package/corpus/templates/content/actions/create-inline-content-database.ts +6 -1
  73. package/corpus/templates/content/actions/delete-content-database.ts +3 -0
  74. package/corpus/templates/content/actions/delete-document.ts +7 -11
  75. package/corpus/templates/content/actions/disconnect-local-folder-source.ts +175 -0
  76. package/corpus/templates/content/actions/duplicate-database-item.ts +10 -0
  77. package/corpus/templates/content/actions/duplicate-database-items.ts +13 -0
  78. package/corpus/templates/content/actions/edit-document.ts +2 -28
  79. package/corpus/templates/content/actions/ensure-content-spaces.ts +26 -0
  80. package/corpus/templates/content/actions/export-content-source.ts +47 -9
  81. package/corpus/templates/content/actions/get-document.ts +0 -14
  82. package/corpus/templates/content/actions/import-content-source.ts +43 -3
  83. package/corpus/templates/content/actions/list-content-spaces.ts +103 -0
  84. package/corpus/templates/content/actions/list-documents.ts +12 -9
  85. package/corpus/templates/content/actions/move-document.ts +3 -14
  86. package/corpus/templates/content/actions/pull-document.ts +0 -23
  87. package/corpus/templates/content/actions/remove-local-file-source.ts +50 -29
  88. package/corpus/templates/content/actions/resolve-local-folder-conflict.ts +442 -0
  89. package/corpus/templates/content/actions/reveal-local-source-file.ts +6 -17
  90. package/corpus/templates/content/actions/search-documents.ts +0 -34
  91. package/corpus/templates/content/actions/share-local-file-document.ts +25 -1
  92. package/corpus/templates/content/actions/submit-content-database-form.ts +12 -0
  93. package/corpus/templates/content/actions/sync-local-folder-source.ts +731 -0
  94. package/corpus/templates/content/actions/sync-manifest-local-folder-source.ts +123 -0
  95. package/corpus/templates/content/actions/update-content-database-view.ts +10 -1
  96. package/corpus/templates/content/actions/update-document.ts +0 -15
  97. package/corpus/templates/content/actions/view-screen.ts +2 -50
  98. package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +76 -62
  99. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +70 -22
  100. package/corpus/templates/content/app/components/editor/database/grouping.ts +2 -1
  101. package/corpus/templates/content/app/components/editor/database/settings.tsx +23 -20
  102. package/corpus/templates/content/app/components/editor/database/shared.tsx +2 -0
  103. package/corpus/templates/content/app/components/editor/database/sidebar.tsx +330 -0
  104. package/corpus/templates/content/app/components/editor/database/types.ts +1 -0
  105. package/corpus/templates/content/app/components/editor/database/view-config.ts +3 -1
  106. package/corpus/templates/content/app/components/layout/Layout.tsx +25 -1
  107. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +209 -113
  108. package/corpus/templates/content/app/components/sidebar/select-content-space.ts +31 -0
  109. package/corpus/templates/content/app/hooks/use-content-database.ts +16 -0
  110. package/corpus/templates/content/app/hooks/use-content-spaces.ts +39 -0
  111. package/corpus/templates/content/app/i18n/zh-TW.ts +11 -0
  112. package/corpus/templates/content/app/i18n-data.ts +75 -0
  113. package/corpus/templates/content/app/routes/_app.local-files.tsx +174 -65
  114. package/corpus/templates/content/changelog/2026-07-16-content-callouts-can-now-be-reviewed-and-published-to-builder.md +6 -0
  115. package/corpus/templates/content/changelog/2026-07-16-heading-5-and-heading-6-are-available-from-the-editor-slash-.md +6 -0
  116. package/corpus/templates/content/changelog/2026-07-16-organize-every-workspace-through-a-customizable-files-databa.md +6 -0
  117. package/corpus/templates/content/parity/matrix.md +2 -1
  118. package/corpus/templates/content/parity/matrix.ts +37 -1
  119. package/corpus/templates/content/scripts/dev-database.mjs +7 -5
  120. package/corpus/templates/content/server/db/schema.ts +113 -40
  121. package/corpus/templates/content/server/lib/document-context.ts +15 -1
  122. package/corpus/templates/content/server/lib/notion-sync.ts +6 -0
  123. package/corpus/templates/content/server/plugins/db.ts +153 -0
  124. package/corpus/templates/content/shared/api.ts +17 -3
  125. package/corpus/templates/content/shared/builder-mdx.ts +163 -16
  126. package/corpus/templates/design/.agents/skills/design-templates/SKILL.md +59 -0
  127. package/corpus/templates/design/AGENTS.md +6 -1
  128. package/corpus/templates/design/actions/create-design-from-template.ts +19 -7
  129. package/corpus/templates/design/actions/list-design-templates.ts +69 -21
  130. package/corpus/templates/design/actions/navigate.ts +2 -2
  131. package/corpus/templates/design/actions/view-screen.ts +15 -2
  132. package/corpus/templates/design/agent-native.app-skill.json +5 -0
  133. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +281 -56
  134. package/corpus/templates/design/app/components/templates/TemplatePreview.tsx +14 -2
  135. package/corpus/templates/design/app/hooks/use-navigation-state.ts +3 -2
  136. package/corpus/templates/design/app/i18n/zh-TW.ts +3 -3
  137. package/corpus/templates/design/app/i18n-data.ts +21 -2
  138. package/corpus/templates/design/app/i18n-template-feature.ts +218 -10
  139. package/corpus/templates/design/app/pages/Index.tsx +195 -24
  140. package/corpus/templates/design/app/pages/Templates.tsx +144 -55
  141. package/corpus/templates/design/app/pages/design-editor/generation-prompt-directives.ts +12 -1
  142. package/corpus/templates/design/changelog/2026-07-14-templates-now-appear-in-the-new-design-picker-with-previews-.md +6 -0
  143. package/corpus/templates/design/changelog/2026-07-15-templates-now-open-immediately-after-copying-even-while-the-.md +6 -0
  144. package/corpus/templates/design/server/plugins/agent-chat.ts +1 -1
  145. package/corpus/templates/mail/AGENTS.md +23 -18
  146. package/corpus/templates/mail/actions/bulk-archive.ts +32 -28
  147. package/corpus/templates/mail/actions/mark-read.ts +131 -20
  148. package/corpus/templates/mail/actions/mark-thread-read.ts +1 -1
  149. package/corpus/templates/mail/actions/move-email.ts +30 -24
  150. package/corpus/templates/mail/actions/send-email.ts +73 -68
  151. package/corpus/templates/mail/changelog/2026-07-15-unread-inbox-cleanup-now-completes-reliably.md +6 -0
  152. package/corpus/templates/mail/server/handlers/emails.ts +218 -209
  153. package/corpus/templates/mail/server/lib/bulk-mark-read.ts +30 -0
  154. package/corpus/templates/mail/server/lib/email-state.ts +198 -113
  155. package/corpus/templates/mail/server/lib/google-auth.ts +218 -25
  156. package/corpus/templates/mail/server/lib/jobs.ts +69 -74
  157. package/corpus/templates/mail/server/lib/local-email-store.ts +265 -0
  158. package/corpus/templates/mail/server/plugins/agent-chat.ts +6 -0
  159. package/dist/cli/content-local.d.ts +1 -0
  160. package/dist/cli/content-local.d.ts.map +1 -1
  161. package/dist/cli/content-local.js +75 -17
  162. package/dist/cli/content-local.js.map +1 -1
  163. package/dist/cli/index.js +2 -2
  164. package/dist/cli/index.js.map +1 -1
  165. package/dist/cli/skills-content/content-skill.d.ts +1 -1
  166. package/dist/cli/skills-content/content-skill.d.ts.map +1 -1
  167. package/dist/cli/skills-content/content-skill.js +36 -25
  168. package/dist/cli/skills-content/content-skill.js.map +1 -1
  169. package/dist/cli/skills.d.ts.map +1 -1
  170. package/dist/cli/skills.js +47 -14
  171. package/dist/cli/skills.js.map +1 -1
  172. package/dist/collab/awareness.d.ts +2 -2
  173. package/dist/collab/awareness.d.ts.map +1 -1
  174. package/dist/collab/struct-routes.d.ts +1 -1
  175. package/dist/local-artifacts/index.d.ts +10 -0
  176. package/dist/local-artifacts/index.d.ts.map +1 -1
  177. package/dist/local-artifacts/index.js +39 -0
  178. package/dist/local-artifacts/index.js.map +1 -1
  179. package/dist/notifications/routes.d.ts +1 -1
  180. package/dist/observability/routes.d.ts +5 -5
  181. package/dist/resources/handlers.d.ts +1 -1
  182. package/dist/secrets/routes.d.ts +9 -9
  183. package/docs/content/local-file-mode.mdx +99 -489
  184. package/docs/content/locales/ar-SA/local-file-mode.mdx +35 -490
  185. package/docs/content/locales/ar-SA/template-content.mdx +10 -24
  186. package/docs/content/locales/de-DE/local-file-mode.mdx +37 -491
  187. package/docs/content/locales/de-DE/template-content.mdx +10 -24
  188. package/docs/content/locales/es-ES/local-file-mode.mdx +35 -493
  189. package/docs/content/locales/es-ES/template-content.mdx +10 -24
  190. package/docs/content/locales/fr-FR/local-file-mode.mdx +38 -491
  191. package/docs/content/locales/fr-FR/template-content.mdx +10 -24
  192. package/docs/content/locales/hi-IN/local-file-mode.mdx +33 -492
  193. package/docs/content/locales/hi-IN/template-content.mdx +10 -24
  194. package/docs/content/locales/ja-JP/local-file-mode.mdx +36 -492
  195. package/docs/content/locales/ja-JP/template-content.mdx +10 -24
  196. package/docs/content/locales/ko-KR/local-file-mode.mdx +35 -490
  197. package/docs/content/locales/ko-KR/template-content.mdx +10 -24
  198. package/docs/content/locales/pt-BR/local-file-mode.mdx +35 -493
  199. package/docs/content/locales/pt-BR/template-content.mdx +10 -24
  200. package/docs/content/locales/zh-CN/local-file-mode.mdx +31 -489
  201. package/docs/content/locales/zh-CN/template-content.mdx +9 -24
  202. package/docs/content/locales/zh-TW/local-file-mode.mdx +31 -489
  203. package/docs/content/locales/zh-TW/template-content.mdx +9 -24
  204. package/docs/content/template-content.mdx +26 -42
  205. package/package.json +1 -1
  206. package/corpus/templates/assets/app/components/library/EditLibraryDialog.tsx +0 -126
@@ -1,527 +1,69 @@
1
1
  ---
2
- title: "Modo de archivo local"
3
- description: "Ejecute aplicaciones nativas del agente con Markdown, MDX y otros archivos de repositorio locales como fuente de verdad, incluidos documentos MDX estilo Obsidian con componentes personalizados."
2
+ title: "Fuentes de carpetas locales"
3
+ description: "Conecte carpetas Markdown y MDX a los espacios de Content respaldados por base de datos."
4
4
  ---
5
5
 
6
- # Modo de archivo local
6
+ # Fuentes de carpetas locales
7
7
 
8
- El modo de archivo local permite que una aplicación nativa del agente adjunte su UI normal y su superficie de acción
9
- directamente a archivos en un repositorio o espacio de trabajo. La aplicación todavía se siente como si estuviera alojada
10
- producto, pero sus vistas de lista, editor y herramientas de agente leen y escriben archivos locales
11
- en lugar de registros de aplicaciones respaldados por SQL.
8
+ Content tiene un único modelo de datos: cada página se guarda en SQL, pertenece
9
+ a un **espacio** y figura en la base del sistema **Files** de ese espacio. Una
10
+ carpeta local es una fuente conectada a Files, no otro modo de la aplicación. Ya
11
+ no existe un interruptor `AGENT_NATIVE_MODE`.
12
12
 
13
- La primera implementación está en la plantilla de Contenido: la barra lateral izquierda es
14
- rellenado a partir de archivos locales `.md` y `.mdx`; al seleccionar una página se abre el estándar
15
- Editor de contenido y guardar escrituras en el archivo seleccionado. Los mismos archivos pueden
16
- También puede ser editado por Codex, Código Claude, el agente de la barra lateral Agent-Native o un normal
17
- editor.
13
+ Cada usuario tiene un espacio personal, cada organización accesible tiene el
14
+ suyo, y el catálogo personal **Workspaces** decide qué espacios aparecen. Files
15
+ es una base de Content normal: sus propiedades, filtros, orden, agrupación y
16
+ vistas guardadas también pueden representar la barra lateral.
18
17
 
19
- En cuanto al contenido, esto hace que el producto parezca Obsidian de código abierto para MDX:
20
- tus documentos se guardan como archivos, mientras que la aplicación agrega un editor visual, el agente actions
21
- Copias que se pueden compartir y componentes interactivos enriquecidos de MDX.
18
+ ## Conectar una carpeta
22
19
 
23
- Utilice el modo de archivo local cuando desee un flujo de trabajo basado en el repositorio:
20
+ Elija una carpeta mediante el navegador o Agent Native Desktop y conéctela a un
21
+ espacio existente, o cree un espacio privado respaldado por esa carpeta. SQL
22
+ solo guarda el identificador opaco, rutas relativas, hashes y metadatos; nunca
23
+ la ruta absoluta, el identificador del navegador ni el cuerpo bruto del archivo.
24
24
 
25
- - un repositorio de documentos con `docs/*.mdx`
26
- - un blog con `blog/*.mdx`
27
- - recursos como posicionamiento, mensajería o notas del equipo en `resources/*.md`
28
- - una base de conocimientos personal estilo Obsidian con un editor MDX más completo
29
- - Documentos que necesitan bloques MDX personalizados e interactivos generados a partir del código React local
30
- - artefactos de aplicaciones que deberían ser fáciles de inspeccionar y parchar para los agentes de codificación
25
+ Las políticas son `database_primary`, `source_primary` y
26
+ `reviewed_bidirectional`. La sincronización materializa los archivos como
27
+ páginas SQL normales. Los cambios simultáneos crean un cambio revisable en vez
28
+ de sobrescribir un lado. Desconectar conserva las páginas y los archivos.
31
29
 
32
- Utilice el modo de base de datos cuando desee disfrutar de la experiencia de la aplicación colaborativa alojada:
33
- Compartir entre varios usuarios, permisos respaldados por SQL, comentarios, historial de versiones y
34
- alojamiento de producción sin acceso al sistema de archivos local.
35
-
36
- ## El modelo mental
37
-
38
- Hay dos modos de fuente de verdad:
39
-
40
- | Modo | Fuente de la verdad | Mejor para |
41
- | --------------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
42
- | Modo de base de datos | Filas SQL hasta Drizzle | Aplicaciones alojadas, colaboración, uso compartido, comentarios, historial de versiones |
43
- | Modo de archivo local | Archivos de repositorio declarados por `agent-native.json` | Flujos de trabajo locales/de desarrollo, revisión de Git, ediciones del agente de codificación, contenido nativo de archivos |
44
-
45
- El UI y el agente actions deben mantener la misma forma en ambos modos. Un contenido
46
- el editor aún edita documentos; la diferencia es si esos documentos resuelven
47
- a filas SQL o archivos locales.
48
-
49
- <Diagram id="doc-block-2brs7j" title="Mismas acciones, dos fuentes de verdad" summary={"La interfaz de usuario y el agente llaman a acciones idénticas en ambos modos. La capa de acción decide si cada llamada se resuelve en SQL filas o archivos de repositorio."}>
50
-
51
- ```html
52
- <div class="diagram-mode">
53
- <div class="diagram-col entry">
54
- <div class="diagram-node">UI de contenido</div>
55
- <div class="diagram-node">
56
- Agente + acciones<br /><small class="diagram-muted"
57
- >list/get/update-document</small
58
- >
59
- </div>
60
- </div>
61
- <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
62
- <div class="diagram-row resolve">
63
- <div class="diagram-panel" data-rough>
64
- <span class="diagram-pill accent">Modo base de datos</span
65
- ><small class="diagram-muted">SQL rows via Drizzle</small
66
- ><small class="diagram-muted"
67
- >alojado · compartir · comentarios · historial</small
68
- >
69
- </div>
70
- <div class="diagram-panel" data-rough>
71
- <span class="diagram-pill ok">Local File Mode</span
72
- ><small class="diagram-muted">repo files via agent-native.json</small
73
- ><small class="diagram-muted"
74
- >revisión Git · ediciones del agente de código</small
75
- >
76
- </div>
77
- </div>
78
- </div>
79
- ```
80
-
81
- ```css
82
- .diagram-mode {
83
- display: flex;
84
- align-items: center;
85
- gap: 14px;
86
- flex-wrap: wrap;
87
- }
88
- .diagram-mode .diagram-col {
89
- display: flex;
90
- flex-direction: column;
91
- gap: 10px;
92
- }
93
- .diagram-mode .diagram-arrow {
94
- font-size: 22px;
95
- line-height: 1;
96
- }
97
- .diagram-mode .resolve {
98
- display: flex;
99
- gap: 12px;
100
- flex-wrap: wrap;
101
- }
102
- .diagram-mode .diagram-panel {
103
- display: flex;
104
- flex-direction: column;
105
- gap: 4px;
106
- padding: 12px 14px;
107
- }
108
- ```
109
-
110
- </Diagram>
111
-
112
- ## Repositorio de ejemplo
113
-
114
- Un espacio de trabajo de contenido puede ser tan pequeño como este:
115
-
116
- <FileTree
117
- id="doc-block-yk7lgo"
118
- title="Un repo de workspace de Content"
119
- entries={[
120
- {
121
- path: "agent-native.json",
122
- note: "Declara qué carpetas son raíces de contenido y sus tipos",
123
- },
124
- {
125
- path: "docs/",
126
- note: "Raíz de contenido: aparece en la barra lateral como páginas",
127
- },
128
- {
129
- path: "docs/getting-started.mdx",
130
- },
131
- {
132
- path: "docs/guides/custom-components.mdx",
133
- },
134
- {
135
- path: "blog/",
136
- note: "Raíz de contenido",
137
- },
138
- {
139
- path: "blog/launch-post.mdx",
140
- },
141
- {
142
- path: "resources/",
143
- note: "Raíz de contenido",
144
- },
145
- {
146
- path: "resources/messaging/positioning.md",
147
- },
148
- {
149
- path: "components/",
150
- note: "NO es una raíz de contenido: biblioteca de componentes de preview que MDX puede importar",
151
- },
152
- {
153
- path: "components/FrameworkTabs.tsx",
154
- },
155
- {
156
- path: "components/Callout.tsx",
157
- },
158
- {
159
- path: "extensions/",
160
- note: "NO es una raíz de contenido: biblioteca local de extensions (widgets en sandbox)",
161
- },
162
- {
163
- path: "extensions/doc-status/extension.json",
164
- },
165
- {
166
- path: "extensions/doc-status/index.html",
167
- },
168
- ]}
169
- />
170
-
171
- En el modo de archivo local, la barra lateral de Contenido muestra `docs/`, `blog/` y
172
- `resources/` árboles como páginas. Al seleccionar `docs/getting-started.mdx` se abre eso
173
- archivo en el editor de contenido estándar; la edición en el UI escribe de nuevo en
174
- `docs/getting-started.mdx`.
175
-
176
- `components/` no es una raíz de contenido. Es una biblioteca de componentes de vista previa que MDX
177
- los archivos pueden importarse o hacer referencia. El editor puede renderizar componentes MDX locales simples
178
- sin necesidad de clonar o bifurcar toda la aplicación de contenido.
179
-
180
- `extensions/` tampoco es una raíz de contenido. Es una biblioteca de extensión local:
181
- pequeños widgets aislados que pueden renderizarse en espacios de aplicaciones mientras su fuente permanece en
182
- el repositorio.
183
-
184
- ## Instalar contenido en un repositorio
185
-
186
- Para documentos, blogs o espacios de trabajo MDX existentes, instale los archivos locales de contenido
187
- habilidad:
30
+ ## Iniciar desde un repositorio
188
31
 
189
32
  ```bash
190
- npx @agent-native/core@latest skills add content --mode local-files --scope project
33
+ npx @agent-native/core@latest content .
191
34
  ```
192
35
 
193
- Esto copia la habilidad `content` en las carpetas de habilidades del agente del repositorio y escribe
194
- o actualiza `agent-native.json` con los valores predeterminados de contenido:
195
-
196
- - `mode: "local-files"` a nivel del espacio de trabajo
197
- - `apps.content.mode: "local-files"`
198
- - raíces de contenido para `docs/`, `blog/`, `content/` y `resources/`
199
- - `components/` para componentes locales MDX
200
- - `extensions/` para widgets de extensión local
201
-
202
- La habilidad instalada indica a los agentes de codificación que utilicen Content actions
203
- (`list-documents`, `get-document`, `edit-document`, `update-document`,
204
- `share-local-file-document` y archivo de componente actions) cuando se trata de una aplicación de contenido local
205
- o Agent Native Desktop Bridge los expone. Si no hay ningún puente en funcionamiento, la habilidad
206
- recurre a ediciones directas seguras del repositorio mientras conserva el frontmatter, las importaciones, JSX,
207
- y desconocido MDX.
36
+ El comando inicia Content con su base de datos normal, registra la carpeta como
37
+ fuente y abre la conexión. No define una variable de modo.
208
38
 
209
39
  ## Configuración
210
40
 
211
- Agregue `agent-native.json` al repositorio o a la raíz del espacio de trabajo:
212
-
213
41
  ```json
214
42
  {
215
43
  "version": 1,
216
44
  "apps": {
217
45
  "content": {
218
- "mode": "local-files",
219
46
  "roots": [
220
47
  {
221
48
  "name": "Docs",
222
49
  "path": "docs",
223
50
  "kind": "docs",
224
- "extensions": [".md", ".mdx"]
225
- },
226
- {
227
- "name": "Blog",
228
- "path": "blog",
229
- "kind": "blog",
230
- "extensions": [".md", ".mdx"]
231
- },
232
- {
233
- "name": "Resources",
234
- "path": "resources",
235
- "kind": "resources",
236
- "extensions": [".md", ".mdx"]
51
+ "extensions": [".md", ".mdx"],
52
+ "source": {
53
+ "type": "local-folder",
54
+ "connectionId": "local-folder:<opaque-id>",
55
+ "truthPolicy": "source_primary"
56
+ }
237
57
  }
238
58
  ],
239
59
  "components": "components",
240
- "extensions": "extensions",
241
- "hide": ["**/_*.md", "**/_*.mdx"]
60
+ "extensions": "extensions"
242
61
  }
243
62
  }
244
63
  }
245
64
  ```
246
65
 
247
- También puedes habilitar archivos locales con `AGENT_NATIVE_MODE=local-files` o
248
- `AGENT_NATIVE_DATA_MODE=local-files`; se prefiere el manifiesto porque
249
- documenta el contrato de la carpeta en el propio repositorio.
250
-
251
- ## Formato de archivo de contenido
252
-
253
- El contenido dice Markdown y MDX. Frontmatter contiene metadatos de la página y el cuerpo es
254
- el documento editable:
255
-
256
- ```mdx
257
- ---
258
- title: "Empezando"
259
- icon: "sparkles"
260
- isFavorite: true
261
- updatedAt: "2026-06-12T20:00:00.000Z"
262
- ---
263
-
264
- # Empezando
265
-
266
- Use <FrameworkTabs value="react" /> to show framework-specific code.
267
- ```
268
-
269
- El título proviene del frontmatter `title` cuando está presente; de lo contrario, del
270
- nombre de archivo. El editor conserva la fuente MDX que aún no puede editar visualmente, por lo que
271
- Los agentes de codificación y los editores de texto normales siguen siendo puertas de escape seguras.
272
-
273
- ## Componentes MDX personalizados
274
-
275
- El contenido puede obtener una vista previa de los componentes locales desde la carpeta `components` configurada.
276
- Esto está destinado a componentes MDX de estilo documentos, como pestañas, llamadas y paquetes
277
- instale fragmentos o bloques de código específicos del marco.
278
-
279
- Por ejemplo, agregue un componente interactivo junto a su contenido:
280
-
281
- ```tsx
282
- // components/ImpactCounter.tsx
283
- import { useState } from "react";
284
-
285
- export function ImpactCounter({
286
- label = "points",
287
- accent = "blue",
288
- featured = false,
289
- }: {
290
- label?: string;
291
- accent?: "blue" | "green" | "purple";
292
- featured?: boolean;
293
- }) {
294
- const [count, setCount] = useState(3);
295
- const accentClass =
296
- accent === "green"
297
- ? "border-green-300 bg-green-50"
298
- : accent === "purple"
299
- ? "border-purple-300 bg-purple-50"
300
- : "border-blue-300 bg-blue-50";
301
-
302
- return (
303
- <div className={`rounded-md border p-4 ${accentClass}`}>
304
- <div className="text-sm text-muted-foreground">Launch impact</div>
305
- <div className="mt-1 text-3xl font-semibold">
306
- {count} {label}
307
- </div>
308
- {featured ? <div className="mt-1 text-sm">Featured metric</div> : null}
309
- <button
310
- type="button"
311
- className="mt-3 rounded border px-3 py-1 text-sm"
312
- onClick={() => setCount((value) => value + 1)}
313
- >
314
- Add point
315
- </button>
316
- </div>
317
- );
318
- }
319
-
320
- export const ImpactCounterInputs = {
321
- label: {
322
- type: "string",
323
- label: "Metric label",
324
- default: "points",
325
- },
326
- accent: {
327
- type: "select",
328
- label: "Accent",
329
- options: ["blue", "green", "purple"],
330
- default: "blue",
331
- },
332
- featured: {
333
- type: "boolean",
334
- label: "Featured",
335
- default: false,
336
- },
337
- };
338
- ```
339
-
340
- Luego úselo desde cualquier archivo MDX local:
341
-
342
- ```mdx
343
- ---
344
- title: "Notas de lanzamiento"
345
- ---
346
-
347
- # Notas de lanzamiento
348
-
349
- <ImpactCounter label="wins" />
350
- ```
351
-
352
- El servidor de desarrollo de contenido descubre las exportaciones con nombre de PascalCase y el valor predeterminado de PascalCase
353
- exportaciones de archivos `.tsx`, `.jsx`, `.ts` y `.js` en `components/`. Esos
354
- Los componentes se procesan dentro del editor y aparecen en el menú diagonal debajo
355
- **Componentes locales**. La inserción de barra diagonal crea una etiqueta mínima como
356
- `<ImpactCounter />`; agregue accesorios en la fuente MDX cuando sea necesario.
357
-
358
- La ejecución de componentes es intencionalmente una capacidad de puente entre desarrollo local y escritorio, no
359
- acceso simple a la carpeta del navegador alojado. Si abres `content.agent-native.com`,
360
- elija **Archivos locales** y elija una carpeta en Chrome, la aplicación puede leer y escribir
361
- los archivos `.md` y `.mdx` a través del navegador File System Access API, pero
362
- Chrome no expone una ruta de carpeta absoluta para que Vite pueda compilar
363
- `components/*.tsx`. Para obtener una vista previa y recargar en caliente componentes React personalizados, ejecute
364
- Contenido local o use Agent Native Desktop para que el puente local confiable pueda
365
- registre el espacio de trabajo elegido con el servidor de desarrollo de contenido local. En ese modo,
366
- ediciones en archivos de componentes existentes, recarga en caliente a través de Vite y adición o
367
- Al eliminar los archivos de componentes se vuelve a cargar el registro de componentes y el menú diagonal.
368
-
369
- Los agentes también pueden trabajar con esos archivos de componentes registrados. Usar
370
- `list-local-component-files` para encontrar la identificación del espacio de trabajo registrado, luego
371
- `write-local-component-file` para crear o actualizar `.tsx`, `.jsx`, `.ts` o
372
- Archivos `.js` en la carpeta `components/` del espacio de trabajo. Los archivos MDX siguen siendo los
373
- fuente de verdad para el uso de componentes; los archivos componentes permanecen en el repositorio normal
374
- archivos fuente revisados con Git.
375
-
376
- Si un componente exporta metadatos de entrada, seleccione el componente en el editor
377
- muestra un botón de edición en la esquina superior derecha del componente. Tipos de entrada admitidos
378
- son `string`, `textarea`, `number`, `boolean` y `select`. El formulario escribe
379
- vuelve a la etiqueta MDX, por lo que los archivos locales siguen siendo la fuente de la verdad. El
380
- Los metadatos se pueden exportar como `ComponentNameInputs`, `ComponentNameConfig.inputs`,
381
- `Component.inputs` o `agentNative.inputs`.
382
-
383
- Las etiquetas de componentes simples con accesorios literales pueden obtener una vista previa en línea:
384
-
385
- ```mdx
386
- <FrameworkTabs value="react" />
387
-
388
- <Callout tone="warning">
389
-
390
- This setting affects production deploys.
391
-
392
- </Callout>
393
- ```
394
-
395
- Las expresiones JSX complejas se conservan en el código fuente. Si el editor no puede hacerlo de forma segura
396
- obtenga una vista previa de la propiedad de un componente todavía, muestra un marcador de posición de advertencia en lugar de
397
- soltar datos silenciosamente.
398
-
399
- ## Compartir archivos locales
400
-
401
- Los archivos locales no se comparten directamente porque otros usuarios no pueden leer una ruta
402
- tu máquina. El botón Compartir de la barra de herramientas Contenido crea o actualiza un
403
- copia respaldada por la base de datos del archivo seleccionado, navega hasta esa copia y abre el
404
- ventana emergente de compartir normal. El archivo local original permanece en Archivos locales; el
405
- La copia de la base de datos aparece en Copias compartidas en modo de archivo local y utiliza el
406
- modelo estándar para compartir documentos.
407
-
408
- ## Extensiones locales
409
-
410
- El modo de archivo local también puede cargar extensiones respaldadas por repositorio desde el archivo configurado
411
- Carpeta `extensions`. Cada extensión es un directorio con un `extension.json`
412
- manifiesto y un archivo de entrada HTML:
413
-
414
- ```text
415
- extensions/
416
- doc-status/
417
- extension.json
418
- index.html
419
- ```
420
-
421
- ```json
422
- {
423
- "id": "doc-status",
424
- "name": "Doc Status",
425
- "description": "Shows metadata for the selected Content file.",
426
- "entry": "index.html",
427
- "slots": ["content.sidebar.bottom"],
428
- "permissions": {
429
- "appActions": ["list-documents"],
430
- "extensionData": true
431
- }
432
- }
433
- ```
434
-
435
- `index.html` es el mismo formato de cuerpo de extensión Alpine/Tailwind utilizado por normal
436
- extensiones respaldadas por bases de datos. Cuando la aplicación Contenido ve una extensión local que
437
- declara `content.sidebar.bottom`, representa esa extensión en la parte inferior de
438
- la barra lateral de Contenido. El anfitrión pasa `window.slotContext` con el seleccionado
439
- ID del documento, título, metadatos de origen y si el contenido está en modo de archivo local.
440
-
441
- La aplicación obtiene una vista previa de las extensiones locales, pero las edita como archivos. Las extensiones
442
- la lista los muestra con una insignia de Archivo local y el visor de página completa apunta a
443
- el archivo de entrada. Extensión respaldada por SQL actions, como actualizar, eliminar, compartir y
444
- el historial no se aplica; use su editor, Codex, código Claude o historial de Git para
445
- cambios de fuente.
446
-
447
- Para v1, las extensiones locales son intencionalmente conservadoras:
448
-
449
- - pueden usar `extensionData` para su propio estado de ejecución pequeño
450
- - solo pueden llamar a los `appAction` enumerados en `extension.json`
451
- - Los asistentes SQL sin formato y `extensionFetch` externos están deshabilitados
452
- - Los destinos de ranura se declaran en `extension.json`, no se instalan a través de SQL
453
-
454
- Esto proporciona a los espacios de trabajo locales una superficie de complemento similar a Obsidian sin permitir que
455
- El archivo de repositorio arbitrario hereda todas las capacidades de una extensión respaldada por una base de datos.
456
-
457
- ## Cómo lo usan las aplicaciones
458
-
459
- El modo de archivo local se implementa a través de los asistentes de artefactos locales del marco.
460
- Una aplicación declara raíces para los tipos de artefactos que posee, luego lee y escribe
461
- a través de la misma superficie de acción que su UI y su agente ya utilizan.
462
-
463
- Para Contenido, eso significa:
464
-
465
- - `list-documents` enumera los archivos `.md` y `.mdx` configurados.
466
- - `get-document` lee un archivo local seleccionado.
467
- - `update-document` escribe el archivo local seleccionado.
468
- - `create-document` crea un nuevo archivo `.mdx` local en la carpeta seleccionada.
469
- - `delete-document` elimina el archivo local.
470
- - La búsqueda se ejecuta en los archivos locales configurados.
471
-
472
- Mover, renombrar y reordenar páginas de archivos locales desde UI de contenido no lo es
473
- aún es compatible. Realice esas operaciones en el espacio de trabajo o con un agente de codificación; el
474
- La barra lateral de contenido reflejará el árbol de archivos resultante.
475
-
476
- Esto simplifica el contrato del agente: el agente puede seguir usando Content actions,
477
- y esos actions deciden si el objetivo está respaldado por SQL o por archivos.
478
-
479
- Otras aplicaciones pueden adoptar el mismo patrón con el tiempo. Una aplicación de Presentaciones puede mapear
480
- `slides/*.mdx` a cubiertas, una aplicación de Planes puede asignar `plans/*` a documentos de planos y
481
- La aplicación Paneles puede asignar `dashboards/*.mdx` a paneles. Aquellos específicos de la aplicación
482
- Las carpetas son convenciones superpuestas al mismo contrato de artefacto local.
483
-
484
- ## Archivos locales frente a exportación/importación
485
-
486
- El contenido tiene dos flujos de trabajo de archivos diferentes:
487
-
488
- | Flujo de trabajo | Qué pasa |
489
- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
490
- | Exportación/importación `/local-files` | El modo de base de datos sigue siendo la fuente de la verdad. Los archivos son una superficie de sincronización explícita que puedes exportar, editar, obtener una vista previa e importar. |
491
- | Modo de archivo local | Los archivos son la fuente de la verdad. La barra lateral de contenido y el editor funcionan directamente en archivos locales. |
492
-
493
- Utilice exportar/importar cuando desee revisar archivos ocasionalmente en un espacio de trabajo alojado.
494
- Utilice el modo de archivo local cuando el repositorio en sí sea el espacio de trabajo.
495
-
496
- ## Historia y colaboración
497
-
498
- El modo de archivo local se basa en el historial nativo del archivo:
499
-
500
- - realizar cambios importantes en Git
501
- - usar solicitudes de extracción para revisión
502
- - permitir que los agentes de codificación editen los mismos archivos directamente
503
- - use diferencias de archivos normales para comprender los cambios
504
-
505
- El modo de base de datos sigue siendo el más adecuado para funciones de colaboración alojadas como
506
- Compartir, comentarios, historial de versiones respaldado por SQL y edición multiusuario en vivo.
507
-
508
- La sincronización del proveedor se puede superponer a cualquier modo. Por ejemplo, un repositorio de documentos puede
509
- Agregue actions que extraiga contenido de un CMS a archivos MDX locales o envíe los seleccionados
510
- archivos locales de regreso a ese CMS.
511
-
512
- ## Seguridad en la producción
513
-
514
- El modo de archivo local le da a la aplicación actions acceso directo de escritura al espacio de trabajo configurado
515
- archivos. Esto es apropiado para el desarrollo local y un archivo de inquilino único confiable
516
- puentes, pero no es el modelo de seguridad de producción predeterminado.
517
-
518
- Cuando `NODE_ENV=production`, el marco rechaza el modo `local-files` a menos que usted
519
- conjunto:
520
-
521
- ```bash
522
- AGENT_NATIVE_ALLOW_LOCAL_FILES_IN_PRODUCTION=true
523
- ```
524
-
525
- Establezca esto solo para una implementación confiable de un solo inquilino donde todos los que puedan usarlo
526
- la aplicación puede leer y escribir los archivos configurados. Para alojamiento normal,
527
- aplicaciones multiusuario, uso del modo de base de datos y uso compartido respaldado por SQL.
66
+ Para migrar, elimine `mode: "local-files"` y
67
+ `AGENT_NATIVE_MODE=local-files`, conserve las raíces y añada `source`. Los IDs
68
+ del frontmatter mantienen la identidad al renombrar o mover una página. Los
69
+ componentes y extensiones locales siguen usando el puente local de confianza.
@@ -95,9 +95,8 @@ Cuando abras la aplicación, verás un árbol de páginas al lado del editor. El
95
95
  - **Organiza las páginas en un árbol**: anida infinitamente, arrastra para reordenar, páginas favoritas que usas con frecuencia.
96
96
  - **Busca en todo** con búsqueda de texto completo en títulos y contenido.
97
97
  - **Edite archivos locales Markdown/MDX como Obsidian.** Utilice la vista `/local-files`
98
- para exportar su espacio de trabajo a archivos, edítelos en sus propias herramientas, obtenga una vista previa
99
- cambios e importarlos nuevamente. En el modo de archivo local, el contenido se escribe directamente en
100
- el archivo `.md` o `.mdx` seleccionado.
98
+ para conectar una carpeta a Files, editarla con sus herramientas, sincronizar
99
+ cambios y revisar conflictos dentro de la aplicación SQL.
101
100
  - **Genere bloques personalizados interactivos enriquecidos.** Registre componentes React locales,
102
101
  insértelos como MDX y permita que el agente cree o actualice archivos de componentes para
103
102
  tus documentos.
@@ -140,32 +139,19 @@ como superficie de revisión. La aplicación alojada sigue siendo la fuente de v
140
139
  comentarios, permisos y colaboración en vivo; la carpeta local es explícita
141
140
  superficie de sincronización.
142
141
 
143
- El contenido también se puede ejecutar en **Modo de archivo local**, donde los archivos son la fuente de
144
- verdad en lugar de documentos SQL. Agregue `agent-native.json` a un repositorio, configure
145
- `mode: "local-files"` y configurar raíces como `docs/`, `blog/`,
146
- `content/` y `resources/`. Luego, el editor de contenido estándar completa su
147
- barra lateral izquierda de esos archivos locales `.md`/`.mdx` y escribe las ediciones en el
148
- archivo seleccionado a través del documento normal actions. Utilice esto para documentos de repositorio primero,
149
- blogs, bibliotecas de recursos o contenido personal estilo Obsidian con tecnología MDX
150
- componentes; volver al modo de base de datos cuando desee colaboración alojada y
151
- Compartición respaldada por SQL. Consulte [Local File Mode](/docs/local-file-mode) para
152
- diseño de repositorio independiente, configuración, componentes personalizados MDX, local
153
- Widgets `extensions/` y guía de seguridad de producción.
142
+ Las carpetas locales ahora usan el mismo modelo SQL que todas las páginas. Cada
143
+ página pertenece a un espacio y a su base Files; la carpeta es un adaptador de
144
+ fuente. Consulte [Fuentes de carpetas locales](/docs/local-file-mode) para las
145
+ políticas, conflictos, componentes MDX y la migración del modo anterior.
154
146
 
155
- Para instalar la habilidad de archivos locales de contenido en un repositorio existente:
147
+ Para abrir Content en un repositorio existente:
156
148
 
157
149
  ```bash
158
- npx @agent-native/core@latest skills add content --mode local-files --scope project
150
+ npx @agent-native/core@latest content .
159
151
  ```
160
152
 
161
- El instalador copia la habilidad `content` para su agente de codificación y escribe o
162
- actualiza `agent-native.json` con raíces de contenido para `docs/`, `blog/`, `content/`,
163
- y `resources/`. Cuando una aplicación de contenido local, Agent Native Desktop o de confianza
164
- El puente local se está ejecutando, los agentes deben usar Contenido actions como
165
- `list-documents`, `get-document`, `edit-document`, `update-document` y
166
- `share-local-file-document` en lugar de escrituras en el sistema de archivos sin formato. Sin ese local
167
- puente, la habilidad instalada aún le otorga al agente el contrato de edición de repositorio para
168
- ediciones seguras de Markdown/MDX.
153
+ La CLI inicia Content con su base normal, registra la carpeta como fuente y abre
154
+ la conexión sin definir una variable de modo.
169
155
 
170
156
  ## Para desarrolladores
171
157