@agent-native/core 0.102.1 → 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 (295) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +15 -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/client/AgentPanel.tsx +7 -0
  31. package/corpus/core/src/client/AssistantChat.tsx +7 -0
  32. package/corpus/core/src/client/agent-chat-adapter.ts +7 -1
  33. package/corpus/core/src/client/chat/message-components.tsx +17 -3
  34. package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +96 -6
  35. package/corpus/core/src/client/composer/asset-picker-url.ts +80 -0
  36. package/corpus/core/src/client/error-format.ts +24 -0
  37. package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +8 -1
  38. package/corpus/core/src/local-artifacts/index.ts +65 -0
  39. package/corpus/templates/assets/app/components/library/GenerationPresetsPanel.tsx +325 -0
  40. package/corpus/templates/assets/app/hooks/use-navigation-state.ts +12 -0
  41. package/corpus/templates/assets/app/i18n/zh-TW.ts +21 -0
  42. package/corpus/templates/assets/app/i18n-data.ts +215 -0
  43. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +19 -479
  44. package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +1 -1
  45. package/corpus/templates/assets/app/routes/brand-kits.$id_.settings.tsx +446 -0
  46. package/corpus/templates/assets/app/routes/library.tsx +69 -0
  47. package/corpus/templates/assets/changelog/2026-07-15-fixed-top-level-image-picker-selections-returning-to-the-com.md +6 -0
  48. package/corpus/templates/clips/actions/disconnect-calendar.ts +57 -9
  49. package/corpus/templates/clips/actions/generate-workflow.ts +102 -59
  50. package/corpus/templates/clips/actions/get-recording-player-data.ts +64 -1
  51. package/corpus/templates/clips/actions/regenerate-summary.ts +7 -0
  52. package/corpus/templates/clips/actions/regenerate-title.ts +29 -11
  53. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +34 -13
  54. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +87 -9
  55. package/corpus/templates/clips/app/components/editor/trim-handles.tsx +15 -0
  56. package/corpus/templates/clips/app/components/editor/waveform.tsx +21 -8
  57. package/corpus/templates/clips/app/components/library/folder-tree.tsx +52 -0
  58. package/corpus/templates/clips/app/components/player/settings-panel.tsx +116 -58
  59. package/corpus/templates/clips/app/components/player/share-dialog.tsx +43 -37
  60. package/corpus/templates/clips/app/components/player/video-player.tsx +50 -2
  61. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +22 -3
  62. package/corpus/templates/clips/app/i18n/ar-SA.ts +5 -2
  63. package/corpus/templates/clips/app/i18n/de-DE.ts +6 -2
  64. package/corpus/templates/clips/app/i18n/en-US.ts +5 -2
  65. package/corpus/templates/clips/app/i18n/es-ES.ts +6 -2
  66. package/corpus/templates/clips/app/i18n/fr-FR.ts +5 -2
  67. package/corpus/templates/clips/app/i18n/hi-IN.ts +5 -2
  68. package/corpus/templates/clips/app/i18n/ja-JP.ts +6 -1
  69. package/corpus/templates/clips/app/i18n/ko-KR.ts +5 -2
  70. package/corpus/templates/clips/app/i18n/pt-BR.ts +6 -2
  71. package/corpus/templates/clips/app/i18n/zh-CN.ts +5 -2
  72. package/corpus/templates/clips/app/i18n/zh-TW.ts +5 -2
  73. package/corpus/templates/clips/app/lib/timestamp-mapping.ts +14 -0
  74. package/corpus/templates/clips/app/routes/_app.library._index.tsx +1 -2
  75. package/corpus/templates/clips/app/routes/_index.tsx +1 -2
  76. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +98 -32
  77. package/corpus/templates/clips/app/routes/share.$shareId.tsx +4 -1
  78. package/corpus/templates/clips/changelog/2026-07-15-ai-workflow-generation-now-stays-visible-avoids-duplicate-re.md +6 -0
  79. package/corpus/templates/clips/changelog/2026-07-15-clip-playback-and-cta-controls-remain-interactive-through-ed.md +6 -0
  80. package/corpus/templates/clips/changelog/2026-07-15-clip-titles-no-longer-describe-the-product-as-a-loom-alterna.md +6 -0
  81. package/corpus/templates/clips/changelog/2026-07-15-description-regeneration-now-opens-the-agent-chat-so-progres.md +6 -0
  82. package/corpus/templates/clips/changelog/2026-07-15-direct-recording-urls-now-respect-share-link-and-password-ac.md +6 -0
  83. package/corpus/templates/clips/changelog/2026-07-15-disconnecting-a-calendar-now-clears-unrecorded-synced-meetin.md +6 -0
  84. package/corpus/templates/clips/changelog/2026-07-15-folders-now-expose-rename-and-delete-actions-directly-in-the.md +6 -0
  85. package/corpus/templates/clips/changelog/2026-07-15-recording-pages-now-explain-sign-in-access-and-avoid-showing.md +6 -0
  86. package/corpus/templates/clips/changelog/2026-07-15-the-clips-extension-quick-actions-toolbar-can-be-moved-out-o.md +6 -0
  87. package/corpus/templates/clips/changelog/2026-07-15-the-editor-now-skips-cut-sections-during-preview-and-keeps-t.md +6 -0
  88. package/corpus/templates/clips/changelog/2026-07-15-thumbnail-capture-now-updates-previews-while-scrubbing-and-l.md +6 -0
  89. package/corpus/templates/clips/changelog/2026-07-15-windows-permission-links-open-the-matching-settings-page.md +6 -0
  90. package/corpus/templates/clips/chrome-extension/src/content-script.ts +117 -2
  91. package/corpus/templates/clips/chrome-extension/src/overlay.ts +27 -0
  92. package/corpus/templates/clips/desktop/src-tauri/tauri.conf.json +1 -1
  93. package/corpus/templates/clips/server/lib/calendar-event-meetings.ts +139 -101
  94. package/corpus/templates/clips/server/lib/recording-page-access.ts +35 -0
  95. package/corpus/templates/clips/server/lib/share-password.ts +6 -3
  96. package/corpus/templates/content/.agents/skills/content/SKILL.md +26 -39
  97. package/corpus/templates/content/AGENTS.md +25 -30
  98. package/corpus/templates/content/actions/_builder-docs-client.ts +23 -0
  99. package/corpus/templates/content/actions/_content-database-source-adapters.ts +21 -3
  100. package/corpus/templates/content/actions/_content-files.ts +338 -0
  101. package/corpus/templates/content/actions/_content-space-access.ts +135 -0
  102. package/corpus/templates/content/actions/_content-spaces.ts +640 -0
  103. package/corpus/templates/content/actions/_database-source-utils.ts +90 -7
  104. package/corpus/templates/content/actions/_database-utils.ts +7 -1
  105. package/corpus/templates/content/actions/_local-file-documents.ts +0 -9
  106. package/corpus/templates/content/actions/_local-folder-source.ts +53 -0
  107. package/corpus/templates/content/actions/_property-utils.ts +9 -4
  108. package/corpus/templates/content/actions/add-database-item.ts +108 -65
  109. package/corpus/templates/content/actions/backfill-content-files.ts +22 -0
  110. package/corpus/templates/content/actions/connect-local-folder-source.ts +221 -0
  111. package/corpus/templates/content/actions/create-content-database.ts +129 -3
  112. package/corpus/templates/content/actions/create-document.ts +65 -55
  113. package/corpus/templates/content/actions/create-inline-content-database.ts +6 -1
  114. package/corpus/templates/content/actions/delete-content-database.ts +3 -0
  115. package/corpus/templates/content/actions/delete-document.ts +7 -11
  116. package/corpus/templates/content/actions/disconnect-local-folder-source.ts +175 -0
  117. package/corpus/templates/content/actions/duplicate-database-item.ts +10 -0
  118. package/corpus/templates/content/actions/duplicate-database-items.ts +13 -0
  119. package/corpus/templates/content/actions/edit-document.ts +2 -28
  120. package/corpus/templates/content/actions/ensure-content-spaces.ts +26 -0
  121. package/corpus/templates/content/actions/export-content-source.ts +47 -9
  122. package/corpus/templates/content/actions/get-document.ts +0 -14
  123. package/corpus/templates/content/actions/import-content-source.ts +43 -3
  124. package/corpus/templates/content/actions/list-content-spaces.ts +103 -0
  125. package/corpus/templates/content/actions/list-documents.ts +12 -9
  126. package/corpus/templates/content/actions/move-document.ts +3 -14
  127. package/corpus/templates/content/actions/pull-document.ts +0 -23
  128. package/corpus/templates/content/actions/remove-local-file-source.ts +50 -29
  129. package/corpus/templates/content/actions/resolve-local-folder-conflict.ts +442 -0
  130. package/corpus/templates/content/actions/reveal-local-source-file.ts +6 -17
  131. package/corpus/templates/content/actions/search-documents.ts +0 -34
  132. package/corpus/templates/content/actions/share-local-file-document.ts +25 -1
  133. package/corpus/templates/content/actions/submit-content-database-form.ts +12 -0
  134. package/corpus/templates/content/actions/sync-local-folder-source.ts +731 -0
  135. package/corpus/templates/content/actions/sync-manifest-local-folder-source.ts +123 -0
  136. package/corpus/templates/content/actions/update-content-database-view.ts +10 -1
  137. package/corpus/templates/content/actions/update-document.ts +0 -15
  138. package/corpus/templates/content/actions/view-screen.ts +2 -50
  139. package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +76 -62
  140. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +70 -22
  141. package/corpus/templates/content/app/components/editor/database/grouping.ts +2 -1
  142. package/corpus/templates/content/app/components/editor/database/settings.tsx +23 -20
  143. package/corpus/templates/content/app/components/editor/database/shared.tsx +2 -0
  144. package/corpus/templates/content/app/components/editor/database/sidebar.tsx +330 -0
  145. package/corpus/templates/content/app/components/editor/database/types.ts +1 -0
  146. package/corpus/templates/content/app/components/editor/database/view-config.ts +3 -1
  147. package/corpus/templates/content/app/components/layout/Layout.tsx +25 -1
  148. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +209 -113
  149. package/corpus/templates/content/app/components/sidebar/select-content-space.ts +31 -0
  150. package/corpus/templates/content/app/hooks/use-content-database.ts +16 -0
  151. package/corpus/templates/content/app/hooks/use-content-spaces.ts +39 -0
  152. package/corpus/templates/content/app/i18n/zh-TW.ts +11 -0
  153. package/corpus/templates/content/app/i18n-data.ts +75 -0
  154. package/corpus/templates/content/app/routes/_app.local-files.tsx +174 -65
  155. package/corpus/templates/content/changelog/2026-07-16-content-callouts-can-now-be-reviewed-and-published-to-builder.md +6 -0
  156. package/corpus/templates/content/changelog/2026-07-16-heading-5-and-heading-6-are-available-from-the-editor-slash-.md +6 -0
  157. package/corpus/templates/content/changelog/2026-07-16-organize-every-workspace-through-a-customizable-files-databa.md +6 -0
  158. package/corpus/templates/content/parity/matrix.md +2 -1
  159. package/corpus/templates/content/parity/matrix.ts +37 -1
  160. package/corpus/templates/content/scripts/dev-database.mjs +7 -5
  161. package/corpus/templates/content/server/db/schema.ts +113 -40
  162. package/corpus/templates/content/server/lib/document-context.ts +15 -1
  163. package/corpus/templates/content/server/lib/notion-sync.ts +6 -0
  164. package/corpus/templates/content/server/plugins/db.ts +153 -0
  165. package/corpus/templates/content/shared/api.ts +17 -3
  166. package/corpus/templates/content/shared/builder-mdx.ts +163 -16
  167. package/corpus/templates/design/.agents/skills/design-templates/SKILL.md +59 -0
  168. package/corpus/templates/design/AGENTS.md +6 -1
  169. package/corpus/templates/design/actions/create-design-from-template.ts +19 -7
  170. package/corpus/templates/design/actions/list-design-templates.ts +69 -21
  171. package/corpus/templates/design/actions/navigate.ts +2 -2
  172. package/corpus/templates/design/actions/view-screen.ts +15 -2
  173. package/corpus/templates/design/agent-native.app-skill.json +5 -0
  174. package/corpus/templates/design/app/components/design/design-canvas/external-preview.ts +7 -3
  175. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +281 -56
  176. package/corpus/templates/design/app/components/templates/TemplatePreview.tsx +14 -2
  177. package/corpus/templates/design/app/hooks/use-navigation-state.ts +3 -2
  178. package/corpus/templates/design/app/i18n/zh-TW.ts +3 -3
  179. package/corpus/templates/design/app/i18n-data.ts +21 -2
  180. package/corpus/templates/design/app/i18n-template-feature.ts +218 -10
  181. package/corpus/templates/design/app/pages/Index.tsx +195 -24
  182. package/corpus/templates/design/app/pages/Templates.tsx +144 -55
  183. package/corpus/templates/design/app/pages/design-editor/generation-prompt-directives.ts +12 -1
  184. package/corpus/templates/design/changelog/2026-07-14-templates-now-appear-in-the-new-design-picker-with-previews-.md +6 -0
  185. package/corpus/templates/design/changelog/2026-07-15-prototype-print-and-download-buttons-now-work-in-preview.md +6 -0
  186. package/corpus/templates/design/changelog/2026-07-15-templates-now-open-immediately-after-copying-even-while-the-.md +6 -0
  187. package/corpus/templates/design/server/plugins/agent-chat.ts +1 -1
  188. package/corpus/templates/mail/AGENTS.md +23 -18
  189. package/corpus/templates/mail/actions/bulk-archive.ts +32 -28
  190. package/corpus/templates/mail/actions/mark-read.ts +131 -20
  191. package/corpus/templates/mail/actions/mark-thread-read.ts +1 -1
  192. package/corpus/templates/mail/actions/move-email.ts +30 -24
  193. package/corpus/templates/mail/actions/send-email.ts +73 -68
  194. package/corpus/templates/mail/changelog/2026-07-15-unread-inbox-cleanup-now-completes-reliably.md +6 -0
  195. package/corpus/templates/mail/server/handlers/emails.ts +218 -209
  196. package/corpus/templates/mail/server/lib/bulk-mark-read.ts +30 -0
  197. package/corpus/templates/mail/server/lib/email-state.ts +198 -113
  198. package/corpus/templates/mail/server/lib/google-auth.ts +218 -25
  199. package/corpus/templates/mail/server/lib/jobs.ts +69 -74
  200. package/corpus/templates/mail/server/lib/local-email-store.ts +265 -0
  201. package/corpus/templates/mail/server/plugins/agent-chat.ts +6 -0
  202. package/corpus/templates/slides/actions/extract-pdf.ts +1 -1
  203. package/corpus/templates/slides/actions/import-file.ts +4 -1
  204. package/corpus/templates/slides/app/components/editor/ImageGenPanel.tsx +1 -1
  205. package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +9 -12
  206. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +29 -21
  207. package/corpus/templates/slides/app/i18n/ar-SA.ts +1 -0
  208. package/corpus/templates/slides/app/i18n/de-DE.ts +1 -0
  209. package/corpus/templates/slides/app/i18n/en-US.ts +1 -0
  210. package/corpus/templates/slides/app/i18n/es-ES.ts +1 -0
  211. package/corpus/templates/slides/app/i18n/fr-FR.ts +1 -0
  212. package/corpus/templates/slides/app/i18n/hi-IN.ts +1 -0
  213. package/corpus/templates/slides/app/i18n/ja-JP.ts +1 -0
  214. package/corpus/templates/slides/app/i18n/ko-KR.ts +1 -0
  215. package/corpus/templates/slides/app/i18n/pt-BR.ts +1 -0
  216. package/corpus/templates/slides/app/i18n/zh-CN.ts +1 -0
  217. package/corpus/templates/slides/app/i18n/zh-TW.ts +1 -0
  218. package/corpus/templates/slides/changelog/2026-07-15-image-search-and-generation-controls-now-use-the-registered-.md +6 -0
  219. package/corpus/templates/slides/changelog/2026-07-15-pdf-deck-references-can-be-imported-for-slide-inspiration-ag.md +6 -0
  220. package/corpus/templates/slides/changelog/2026-07-15-stable-style-inspector-dock.md +6 -0
  221. package/dist/cli/content-local.d.ts +1 -0
  222. package/dist/cli/content-local.d.ts.map +1 -1
  223. package/dist/cli/content-local.js +75 -17
  224. package/dist/cli/content-local.js.map +1 -1
  225. package/dist/cli/index.js +2 -2
  226. package/dist/cli/index.js.map +1 -1
  227. package/dist/cli/skills-content/content-skill.d.ts +1 -1
  228. package/dist/cli/skills-content/content-skill.d.ts.map +1 -1
  229. package/dist/cli/skills-content/content-skill.js +36 -25
  230. package/dist/cli/skills-content/content-skill.js.map +1 -1
  231. package/dist/cli/skills.d.ts.map +1 -1
  232. package/dist/cli/skills.js +47 -14
  233. package/dist/cli/skills.js.map +1 -1
  234. package/dist/client/AgentPanel.d.ts.map +1 -1
  235. package/dist/client/AgentPanel.js +5 -0
  236. package/dist/client/AgentPanel.js.map +1 -1
  237. package/dist/client/AssistantChat.d.ts.map +1 -1
  238. package/dist/client/AssistantChat.js +7 -0
  239. package/dist/client/AssistantChat.js.map +1 -1
  240. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  241. package/dist/client/agent-chat-adapter.js +8 -1
  242. package/dist/client/agent-chat-adapter.js.map +1 -1
  243. package/dist/client/chat/message-components.d.ts +4 -0
  244. package/dist/client/chat/message-components.d.ts.map +1 -1
  245. package/dist/client/chat/message-components.js +10 -3
  246. package/dist/client/chat/message-components.js.map +1 -1
  247. package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -1
  248. package/dist/client/composer/ComposerPlusMenu.js +58 -6
  249. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  250. package/dist/client/composer/asset-picker-url.d.ts +16 -0
  251. package/dist/client/composer/asset-picker-url.d.ts.map +1 -0
  252. package/dist/client/composer/asset-picker-url.js +64 -0
  253. package/dist/client/composer/asset-picker-url.js.map +1 -0
  254. package/dist/client/error-format.d.ts.map +1 -1
  255. package/dist/client/error-format.js +17 -0
  256. package/dist/client/error-format.js.map +1 -1
  257. package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
  258. package/dist/client/resources/McpIntegrationDialog.js +6 -1
  259. package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
  260. package/dist/collab/awareness.d.ts +2 -2
  261. package/dist/collab/awareness.d.ts.map +1 -1
  262. package/dist/collab/struct-routes.d.ts +1 -1
  263. package/dist/local-artifacts/index.d.ts +10 -0
  264. package/dist/local-artifacts/index.d.ts.map +1 -1
  265. package/dist/local-artifacts/index.js +39 -0
  266. package/dist/local-artifacts/index.js.map +1 -1
  267. package/dist/notifications/routes.d.ts +1 -1
  268. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  269. package/dist/resources/handlers.d.ts +3 -3
  270. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  271. package/dist/server/transcribe-voice.d.ts +1 -1
  272. package/docs/content/local-file-mode.mdx +99 -489
  273. package/docs/content/locales/ar-SA/local-file-mode.mdx +35 -490
  274. package/docs/content/locales/ar-SA/template-content.mdx +10 -24
  275. package/docs/content/locales/de-DE/local-file-mode.mdx +37 -491
  276. package/docs/content/locales/de-DE/template-content.mdx +10 -24
  277. package/docs/content/locales/es-ES/local-file-mode.mdx +35 -493
  278. package/docs/content/locales/es-ES/template-content.mdx +10 -24
  279. package/docs/content/locales/fr-FR/local-file-mode.mdx +38 -491
  280. package/docs/content/locales/fr-FR/template-content.mdx +10 -24
  281. package/docs/content/locales/hi-IN/local-file-mode.mdx +33 -492
  282. package/docs/content/locales/hi-IN/template-content.mdx +10 -24
  283. package/docs/content/locales/ja-JP/local-file-mode.mdx +36 -492
  284. package/docs/content/locales/ja-JP/template-content.mdx +10 -24
  285. package/docs/content/locales/ko-KR/local-file-mode.mdx +35 -490
  286. package/docs/content/locales/ko-KR/template-content.mdx +10 -24
  287. package/docs/content/locales/pt-BR/local-file-mode.mdx +35 -493
  288. package/docs/content/locales/pt-BR/template-content.mdx +10 -24
  289. package/docs/content/locales/zh-CN/local-file-mode.mdx +31 -489
  290. package/docs/content/locales/zh-CN/template-content.mdx +9 -24
  291. package/docs/content/locales/zh-TW/local-file-mode.mdx +31 -489
  292. package/docs/content/locales/zh-TW/template-content.mdx +9 -24
  293. package/docs/content/template-content.mdx +26 -42
  294. package/package.json +1 -1
  295. package/corpus/templates/assets/app/components/library/EditLibraryDialog.tsx +0 -126
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-artifacts/index.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from \"node:crypto\";\nimport fsSync from \"node:fs\";\nimport fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nimport { minimatch } from \"minimatch\";\n\nexport type AgentNativeDataMode = \"database\" | \"local-files\";\n\nexport interface AgentNativeManifestRoot {\n name?: string;\n path: string;\n kind?: string;\n profile?: string;\n extensions?: string[];\n include?: string[];\n hide?: string[];\n}\n\nexport interface AgentNativeManifestApp {\n mode?: AgentNativeDataMode;\n profile?: string;\n roots?: AgentNativeManifestRoot[];\n components?: string | string[];\n extensions?: string | string[];\n hide?: string[];\n}\n\nexport interface AgentNativeManifest {\n version?: number;\n mode?: AgentNativeDataMode;\n apps?: Record<string, AgentNativeManifestApp>;\n}\n\nexport interface LoadedAgentNativeManifest {\n path: string;\n rootDir: string;\n manifest: AgentNativeManifest;\n}\n\nexport interface LocalArtifactAppDefaults {\n mode?: AgentNativeDataMode;\n profile?: string;\n roots: AgentNativeManifestRoot[];\n hide?: string[];\n components?: string | string[];\n extensions?: string | string[];\n}\n\nexport interface LoadAgentNativeManifestOptions {\n cwd?: string;\n manifestPath?: string;\n optional?: boolean;\n}\n\nexport interface ResolveAgentNativeModeOptions extends LoadAgentNativeManifestOptions {\n appId?: string;\n defaults?: Pick<LocalArtifactAppDefaults, \"mode\">;\n}\n\nexport interface LocalArtifactOptions extends LoadAgentNativeManifestOptions {\n appId: string;\n defaults?: LocalArtifactAppDefaults;\n}\n\nexport interface LoadedLocalArtifactRoot {\n name: string;\n path: string;\n absolutePath: string;\n kind?: string;\n profile?: string;\n extensions: string[];\n hide: string[];\n include: string[];\n}\n\nexport interface LoadedLocalArtifactApp {\n appId: string;\n mode: AgentNativeDataMode;\n profile?: string;\n manifestPath: string | null;\n workspaceRoot: string;\n roots: LoadedLocalArtifactRoot[];\n components: string[];\n extensions: string[];\n hide: string[];\n}\n\nexport interface LocalArtifactFileMeta {\n path: string;\n absolutePath: string;\n rootName: string;\n rootPath: string;\n kind?: string;\n profile?: string;\n extension: string;\n contentType: string;\n sizeBytes: number;\n hash: string;\n createdAt: string;\n updatedAt: string;\n mtimeMs: number;\n}\n\nexport interface LocalArtifactFile extends LocalArtifactFileMeta {\n content: string;\n}\n\nexport interface WriteLocalArtifactFileOptions extends LocalArtifactOptions {\n content: string;\n expectedHash?: string | null;\n ifNotExists?: boolean;\n}\n\nexport interface LocalWorkspaceResourceMeta {\n id: string;\n path: string;\n absolutePath: string;\n mimeType: string;\n sizeBytes: number;\n hash: string;\n createdAt: string;\n updatedAt: string;\n mtimeMs: number;\n}\n\nexport interface LocalWorkspaceResourceFile extends LocalWorkspaceResourceMeta {\n content: string;\n}\n\nexport interface LocalWorkspaceResourceOptions extends LoadAgentNativeManifestOptions {}\n\nexport interface WriteLocalWorkspaceResourceOptions extends LocalWorkspaceResourceOptions {\n path: string;\n content: string;\n expectedHash?: string | null;\n ifNotExists?: boolean;\n}\n\nconst MANIFEST_FILE = \"agent-native.json\";\nconst ENV_MODE_NAMES = [\"AGENT_NATIVE_MODE\", \"AGENT_NATIVE_DATA_MODE\"];\nconst ENV_MANIFEST_NAMES = [\n \"AGENT_NATIVE_MANIFEST\",\n \"AGENT_NATIVE_MANIFEST_PATH\",\n];\nconst ALLOW_PRODUCTION_LOCAL_FILES_ENV =\n \"AGENT_NATIVE_ALLOW_LOCAL_FILES_IN_PRODUCTION\";\nconst DEFAULT_HIDE_PATTERNS = [\n \"**/.git/**\",\n \"**/.agent-native/**\",\n \"**/.next/**\",\n \"**/.nuxt/**\",\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n];\nexport const LOCAL_WORKSPACE_RESOURCE_ID_PREFIX = \"local-workspace-resource:\";\nconst LOCAL_WORKSPACE_RESOURCE_MAX_BYTES = 2 * 1024 * 1024;\nconst LOCAL_WORKSPACE_CONTROL_FILES = new Set([\n \"AGENTS.md\",\n \"agent-native.json\",\n \"mcp.config.json\",\n \".mcp.json\",\n]);\nconst LOCAL_WORKSPACE_SKILL_ROOTS = [\".agents/skills\", \".agent/skills\"];\nconst LOCAL_WORKSPACE_TEXT_EXTENSIONS = new Set([\n \".css\",\n \".csv\",\n \".html\",\n \".js\",\n \".json\",\n \".jsx\",\n \".md\",\n \".mdx\",\n \".py\",\n \".sh\",\n \".sql\",\n \".toml\",\n \".ts\",\n \".tsx\",\n \".txt\",\n \".xml\",\n \".yaml\",\n \".yml\",\n]);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction errorCode(error: unknown): string | undefined {\n return isRecord(error) && typeof error.code === \"string\"\n ? error.code\n : undefined;\n}\n\nfunction asStringArray(value: unknown): string[] {\n if (typeof value === \"string\" && value.trim()) return [value.trim()];\n if (!Array.isArray(value)) return [];\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction normalizeMode(value: unknown): AgentNativeDataMode | undefined {\n if (value === \"database\" || value === \"local-files\") return value;\n return undefined;\n}\n\nfunction normalizeProfile(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined;\n const trimmed = value.trim();\n return trimmed || undefined;\n}\n\nfunction normalizeSlash(filePath: string): string {\n return filePath.replace(/\\\\/g, \"/\");\n}\n\nfunction normalizeRelativePath(filePath: string, label = \"path\"): string {\n if (!filePath || typeof filePath !== \"string\") {\n throw new Error(`${label} is required`);\n }\n if (filePath.includes(\"\\0\")) {\n throw new Error(`${label} must not contain null bytes`);\n }\n if (path.isAbsolute(filePath)) {\n throw new Error(`${label} must be relative`);\n }\n const normalized = normalizeSlash(\n path.posix.normalize(normalizeSlash(filePath)),\n );\n if (\n !normalized ||\n normalized === \".\" ||\n normalized.startsWith(\"../\") ||\n normalized === \"..\" ||\n normalized.split(\"/\").some((part) => !part || part === \".\" || part === \"..\")\n ) {\n throw new Error(`${label} must be a safe relative path`);\n }\n return normalized;\n}\n\nfunction extensionOf(filePath: string): string {\n return path.posix.extname(filePath).toLowerCase();\n}\n\nfunction normalizeExtensions(value: unknown): string[] {\n const extensions = asStringArray(value)\n .map((ext) => ext.trim().toLowerCase())\n .filter(Boolean)\n .map((ext) => (ext.startsWith(\".\") ? ext : `.${ext}`));\n return [...new Set(extensions)];\n}\n\nfunction rootNameFromPath(rootPath: string): string {\n return (\n rootPath\n .split(\"/\")\n .filter(Boolean)\n .at(-1)\n ?.replace(/[-_]+/g, \" \")\n .replace(/\\b\\w/g, (char) => char.toUpperCase()) || rootPath\n );\n}\n\nfunction normalizeManifestRoot(value: unknown): AgentNativeManifestRoot | null {\n if (typeof value === \"string\") return { path: value };\n if (!isRecord(value) || typeof value.path !== \"string\") return null;\n return {\n name: typeof value.name === \"string\" ? value.name : undefined,\n path: value.path,\n kind: typeof value.kind === \"string\" ? value.kind : undefined,\n profile: normalizeProfile(value.profile),\n extensions: normalizeExtensions(value.extensions),\n include: asStringArray(value.include),\n hide: asStringArray(value.hide),\n };\n}\n\nfunction normalizeManifestApp(value: unknown): AgentNativeManifestApp {\n if (Array.isArray(value)) {\n return {\n roots: value\n .map(normalizeManifestRoot)\n .filter((root): root is AgentNativeManifestRoot => !!root),\n };\n }\n if (!isRecord(value)) return {};\n const roots = Array.isArray(value.roots)\n ? value.roots\n .map(normalizeManifestRoot)\n .filter((root): root is AgentNativeManifestRoot => !!root)\n : [];\n return {\n mode: normalizeMode(value.mode),\n profile: normalizeProfile(value.profile),\n roots,\n components:\n typeof value.components === \"string\" || Array.isArray(value.components)\n ? asStringArray(value.components)\n : undefined,\n extensions:\n typeof value.extensions === \"string\" || Array.isArray(value.extensions)\n ? asStringArray(value.extensions)\n : undefined,\n hide: asStringArray(value.hide),\n };\n}\n\nfunction normalizeManifest(value: unknown): AgentNativeManifest {\n const record = isRecord(value) ? value : {};\n const appsRecord = isRecord(record.apps) ? record.apps : {};\n const apps: Record<string, AgentNativeManifestApp> = {};\n for (const [appId, appValue] of Object.entries(appsRecord)) {\n apps[appId] = normalizeManifestApp(appValue);\n }\n return {\n version:\n typeof record.version === \"number\" && Number.isFinite(record.version)\n ? record.version\n : undefined,\n mode: normalizeMode(record.mode),\n apps,\n };\n}\n\nfunction firstEnvValue(names: string[]): string | undefined {\n for (const name of names) {\n const value = process.env[name]?.trim();\n if (value) return value;\n }\n return undefined;\n}\n\nfunction envMode(): AgentNativeDataMode | undefined {\n return normalizeMode(firstEnvValue(ENV_MODE_NAMES));\n}\n\nfunction envFlag(name: string): boolean {\n const value = process.env[name]?.trim().toLowerCase();\n return value === \"1\" || value === \"true\" || value === \"yes\" || value === \"on\";\n}\n\nfunction assertLocalFilesRuntimeAllowed(mode: AgentNativeDataMode) {\n if (mode !== \"local-files\") return;\n if (process.env.NODE_ENV !== \"production\") return;\n if (envFlag(ALLOW_PRODUCTION_LOCAL_FILES_ENV)) return;\n throw new Error(\n `Local file mode is only enabled for local development runtimes. Set ${ALLOW_PRODUCTION_LOCAL_FILES_ENV}=true only for a trusted single-tenant local file bridge.`,\n );\n}\n\nfunction envManifestPath(): string | undefined {\n return firstEnvValue(ENV_MANIFEST_NAMES);\n}\n\nexport function findAgentNativeManifest(\n startDir = process.cwd(),\n): string | null {\n let current = path.resolve(startDir);\n for (;;) {\n const candidate = path.join(current, MANIFEST_FILE);\n if (fsSync.existsSync(candidate)) return candidate;\n const parent = path.dirname(current);\n if (parent === current) return null;\n current = parent;\n }\n}\n\nexport async function loadAgentNativeManifest(\n options: LoadAgentNativeManifestOptions = {},\n): Promise<LoadedAgentNativeManifest | null> {\n const manifestPath =\n options.manifestPath ??\n envManifestPath() ??\n findAgentNativeManifest(options.cwd ?? process.cwd());\n\n if (!manifestPath) {\n if (options.optional) return null;\n throw new Error(`Could not find ${MANIFEST_FILE}`);\n }\n\n const resolvedPath = path.resolve(options.cwd ?? process.cwd(), manifestPath);\n try {\n const raw = await fs.readFile(resolvedPath, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n return {\n path: resolvedPath,\n rootDir: path.dirname(resolvedPath),\n manifest: normalizeManifest(parsed),\n };\n } catch (error) {\n if (options.optional && errorCode(error) === \"ENOENT\") {\n return null;\n }\n throw error;\n }\n}\n\nexport async function resolveAgentNativeDataMode(\n options: ResolveAgentNativeModeOptions = {},\n): Promise<AgentNativeDataMode> {\n const explicitMode = envMode();\n if (explicitMode) {\n assertLocalFilesRuntimeAllowed(explicitMode);\n return explicitMode;\n }\n\n const loaded = await loadAgentNativeManifest({ ...options, optional: true });\n const appMode = options.appId\n ? loaded?.manifest.apps?.[options.appId]?.mode\n : undefined;\n const mode =\n appMode ?? loaded?.manifest.mode ?? options.defaults?.mode ?? \"database\";\n assertLocalFilesRuntimeAllowed(mode);\n return mode;\n}\n\nexport async function isAgentNativeLocalFileMode(\n options: ResolveAgentNativeModeOptions = {},\n): Promise<boolean> {\n return (await resolveAgentNativeDataMode(options)) === \"local-files\";\n}\n\nfunction mergeAppConfig(\n manifestApp: AgentNativeManifestApp | undefined,\n defaults: LocalArtifactAppDefaults | undefined,\n): AgentNativeManifestApp {\n return {\n mode: manifestApp?.mode ?? defaults?.mode,\n profile: manifestApp?.profile ?? defaults?.profile,\n roots:\n manifestApp?.roots !== undefined\n ? manifestApp.roots\n : (defaults?.roots ?? []),\n components: manifestApp?.components ?? defaults?.components,\n extensions: manifestApp?.extensions ?? defaults?.extensions,\n hide: [...(defaults?.hide ?? []), ...(manifestApp?.hide ?? [])],\n };\n}\n\nfunction resolveInsideWorkspace(workspaceRoot: string, relativePath: string) {\n const safePath = normalizeRelativePath(relativePath);\n const absolutePath = path.resolve(workspaceRoot, safePath);\n const relative = path.relative(workspaceRoot, absolutePath);\n if (\n relative === \"\" ||\n relative.startsWith(\"..\") ||\n path.isAbsolute(relative)\n ) {\n throw new Error(`Path \"${relativePath}\" is outside the workspace`);\n }\n return { safePath, absolutePath };\n}\n\nexport async function getLocalArtifactApp(\n options: LocalArtifactOptions,\n): Promise<LoadedLocalArtifactApp> {\n const loaded = await loadAgentNativeManifest({ ...options, optional: true });\n const workspaceRoot =\n loaded?.rootDir ?? path.resolve(options.cwd ?? process.cwd());\n const manifestApp = loaded?.manifest.apps?.[options.appId];\n const app = mergeAppConfig(manifestApp, options.defaults);\n const mode = await resolveAgentNativeDataMode({\n ...options,\n appId: options.appId,\n defaults: app,\n });\n\n const roots = (app.roots ?? []).map((root) => {\n const { safePath, absolutePath } = resolveInsideWorkspace(\n workspaceRoot,\n root.path,\n );\n const extensions = normalizeExtensions(root.extensions);\n return {\n name: root.name || rootNameFromPath(safePath),\n path: safePath,\n absolutePath,\n kind: root.kind,\n profile: root.profile ?? app.profile,\n extensions,\n hide: [...DEFAULT_HIDE_PATTERNS, ...asStringArray(root.hide)],\n include: asStringArray(root.include),\n };\n });\n\n return {\n appId: options.appId,\n mode,\n profile: app.profile,\n manifestPath: loaded?.path ?? null,\n workspaceRoot,\n roots,\n components: asStringArray(app.components),\n extensions: asStringArray(app.extensions),\n hide: [...DEFAULT_HIDE_PATTERNS, ...asStringArray(app.hide)],\n };\n}\n\nfunction matchesPatterns(filePath: string, patterns: string[]) {\n return patterns.some((pattern) =>\n minimatch(filePath, pattern, { dot: true, nocase: true }),\n );\n}\n\nfunction contentTypeForExtension(extension: string): string {\n if (extension === \".md\") return \"text/markdown\";\n if (extension === \".mdx\") return \"text/mdx\";\n if (extension === \".json\") return \"application/json\";\n if (extension === \".txt\") return \"text/plain\";\n return \"application/octet-stream\";\n}\n\nfunction hashContent(content: string): string {\n return crypto.createHash(\"sha256\").update(content).digest(\"hex\");\n}\n\nconst writeLocks = new Map<string, Promise<void>>();\n\nfunction noFollowOpenFlags(): number {\n return fsSync.constants.O_RDONLY | (fsSync.constants.O_NOFOLLOW ?? 0);\n}\n\nasync function withWriteLock<T>(\n absolutePath: string,\n fn: () => Promise<T>,\n): Promise<T> {\n const previous = writeLocks.get(absolutePath) ?? Promise.resolve();\n let release!: () => void;\n const next = new Promise<void>((resolve) => {\n release = resolve;\n });\n const current = previous.catch(() => {}).then(() => next);\n writeLocks.set(absolutePath, current);\n await previous.catch(() => {});\n try {\n return await fn();\n } finally {\n release();\n if (writeLocks.get(absolutePath) === current) {\n writeLocks.delete(absolutePath);\n }\n }\n}\n\nfunction assertNoSymlinkPathSync(\n root: LoadedLocalArtifactRoot,\n absolutePath: string,\n options: { allowMissingLeaf?: boolean } = {},\n) {\n const relative = path.relative(root.absolutePath, absolutePath);\n const segments = relative.split(path.sep).filter(Boolean);\n let current = root.absolutePath;\n const pathsToCheck = [\n current,\n ...segments.map((segment) => {\n current = path.join(current, segment);\n return current;\n }),\n ];\n\n for (let index = 0; index < pathsToCheck.length; index += 1) {\n const candidate = pathsToCheck[index]!;\n try {\n const stat = fsSync.lstatSync(candidate);\n if (stat.isSymbolicLink()) {\n throw new Error(`Path \"${candidate}\" must not traverse a symlink`);\n }\n if (index < pathsToCheck.length - 1 && !stat.isDirectory()) {\n throw new Error(`Path \"${candidate}\" is not a directory`);\n }\n } catch (error) {\n if (errorCode(error) === \"ENOENT\" && options.allowMissingLeaf) return;\n throw error;\n }\n }\n}\n\nfunction readTextFileWithoutSymlink(\n root: LoadedLocalArtifactRoot,\n absolutePath: string,\n): { content: string; stat: fsSync.Stats } {\n assertNoSymlinkPathSync(root, absolutePath);\n const fd = fsSync.openSync(absolutePath, noFollowOpenFlags());\n try {\n return {\n content: fsSync.readFileSync(fd, \"utf8\"),\n stat: fsSync.fstatSync(fd),\n };\n } finally {\n fsSync.closeSync(fd);\n }\n}\n\nasync function fileMetaForPath(\n root: LoadedLocalArtifactRoot,\n artifactPath: string,\n absolutePath: string,\n contentOverride?: string,\n statOverride?: fsSync.Stats,\n): Promise<LocalArtifactFileMeta> {\n const read =\n contentOverride === undefined\n ? readTextFileWithoutSymlink(root, absolutePath)\n : undefined;\n const content = contentOverride ?? read!.content;\n const stat = statOverride ?? read?.stat ?? (await fs.stat(absolutePath));\n const extension = extensionOf(artifactPath);\n return {\n path: artifactPath,\n absolutePath,\n rootName: root.name,\n rootPath: root.path,\n kind: root.kind,\n profile: root.profile,\n extension,\n contentType: contentTypeForExtension(extension),\n sizeBytes: Buffer.byteLength(content, \"utf8\"),\n hash: hashContent(content),\n createdAt: stat.birthtime.toISOString(),\n updatedAt: stat.mtime.toISOString(),\n mtimeMs: stat.mtimeMs,\n };\n}\n\nfunction rootAllowsPath(root: LoadedLocalArtifactRoot, artifactPath: string) {\n const extension = extensionOf(artifactPath);\n if (root.extensions.length > 0 && !root.extensions.includes(extension)) {\n return false;\n }\n if (matchesPatterns(artifactPath, root.hide)) return false;\n if (root.include.length === 0) return true;\n return matchesPatterns(artifactPath, root.include);\n}\n\nasync function walkRoot(\n root: LoadedLocalArtifactRoot,\n directory = root.absolutePath,\n): Promise<LocalArtifactFileMeta[]> {\n let entries: fsSync.Dirent[];\n try {\n entries = await fs.readdir(directory, { withFileTypes: true });\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") {\n return [];\n }\n throw error;\n }\n\n const files: LocalArtifactFileMeta[] = [];\n for (const entry of entries) {\n const absolutePath = path.join(directory, entry.name);\n const relativeToRoot = normalizeSlash(\n path.relative(root.absolutePath, absolutePath),\n );\n const artifactPath = normalizeSlash(\n path.posix.join(root.path, relativeToRoot),\n );\n if (matchesPatterns(artifactPath, root.hide)) continue;\n\n if (entry.isDirectory()) {\n files.push(...(await walkRoot(root, absolutePath)));\n continue;\n }\n if (!entry.isFile() || !rootAllowsPath(root, artifactPath)) continue;\n files.push(await fileMetaForPath(root, artifactPath, absolutePath));\n }\n return files;\n}\n\nexport async function listLocalArtifactFiles(\n options: LocalArtifactOptions,\n): Promise<LocalArtifactFileMeta[]> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") return [];\n\n const files = (await Promise.all(app.roots.map((root) => walkRoot(root))))\n .flat()\n .filter((file) => !matchesPatterns(file.path, app.hide));\n\n return files.sort((a, b) => a.path.localeCompare(b.path));\n}\n\nfunction rootForArtifactPath(\n app: LoadedLocalArtifactApp,\n artifactPath: string,\n): LoadedLocalArtifactRoot {\n const safePath = normalizeRelativePath(artifactPath);\n const root = app.roots.find(\n (candidate) =>\n safePath === candidate.path || safePath.startsWith(`${candidate.path}/`),\n );\n if (!root) {\n throw new Error(`Path \"${artifactPath}\" is not in a configured local root`);\n }\n if (!rootAllowsPath(root, safePath) || matchesPatterns(safePath, app.hide)) {\n throw new Error(`Path \"${artifactPath}\" is not allowed for this app`);\n }\n return root;\n}\n\nasync function resolveArtifactPath(\n app: LoadedLocalArtifactApp,\n artifactPath: string,\n): Promise<{\n root: LoadedLocalArtifactRoot;\n safePath: string;\n absolutePath: string;\n}> {\n const safePath = normalizeRelativePath(artifactPath);\n const root = rootForArtifactPath(app, safePath);\n const absolutePath = path.resolve(app.workspaceRoot, safePath);\n const relative = path.relative(root.absolutePath, absolutePath);\n if (\n relative.startsWith(\"..\") ||\n path.isAbsolute(relative) ||\n relative === \"\"\n ) {\n throw new Error(`Path \"${artifactPath}\" is outside its configured root`);\n }\n return { root, safePath, absolutePath };\n}\n\nasync function assertNoSymlinkPath(\n root: LoadedLocalArtifactRoot,\n absolutePath: string,\n options: { allowMissingLeaf?: boolean } = {},\n) {\n assertNoSymlinkPathSync(root, absolutePath, options);\n}\n\nexport async function readLocalArtifactFile(\n options: LocalArtifactOptions & { path: string },\n): Promise<LocalArtifactFile | null> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") return null;\n const { root, safePath, absolutePath } = await resolveArtifactPath(\n app,\n options.path,\n );\n try {\n const { content, stat } = readTextFileWithoutSymlink(root, absolutePath);\n const meta = await fileMetaForPath(\n root,\n safePath,\n absolutePath,\n content,\n stat,\n );\n return { ...meta, content };\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") {\n return null;\n }\n throw error;\n }\n}\n\nexport async function writeLocalArtifactFile(\n options: WriteLocalArtifactFileOptions & { path: string },\n): Promise<LocalArtifactFileMeta> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") {\n throw new Error(\"Local file mode is not enabled\");\n }\n const { root, safePath, absolutePath } = await resolveArtifactPath(\n app,\n options.path,\n );\n return withWriteLock(absolutePath, async () => {\n const existing = await readLocalArtifactFile({\n ...options,\n path: safePath,\n });\n if (options.ifNotExists && existing) {\n throw new Error(`File \"${safePath}\" already exists`);\n }\n if (\n options.expectedHash &&\n (!existing || existing.hash !== options.expectedHash)\n ) {\n throw new Error(\n `File \"${safePath}\" changed on disk. Reload before saving again.`,\n );\n }\n\n await assertNoSymlinkPath(root, absolutePath, { allowMissingLeaf: true });\n await fs.mkdir(path.dirname(absolutePath), { recursive: true });\n const tempPath = path.join(\n path.dirname(absolutePath),\n `.${path.basename(absolutePath)}.${process.pid}.${crypto.randomUUID()}.tmp`,\n );\n await fs.writeFile(tempPath, options.content, \"utf8\");\n await fs.rename(tempPath, absolutePath);\n return fileMetaForPath(root, safePath, absolutePath, options.content);\n });\n}\n\nexport async function deleteLocalArtifactFile(\n options: LocalArtifactOptions & { path: string },\n): Promise<boolean> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") {\n throw new Error(\"Local file mode is not enabled\");\n }\n const { root, absolutePath } = await resolveArtifactPath(app, options.path);\n try {\n await assertNoSymlinkPath(root, absolutePath);\n await fs.unlink(absolutePath);\n return true;\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") {\n return false;\n }\n throw error;\n }\n}\n\nexport async function ensureLocalArtifactRoot(\n options: LocalArtifactOptions,\n): Promise<LoadedLocalArtifactRoot> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") {\n throw new Error(\"Local file mode is not enabled\");\n }\n const root = app.roots[0];\n if (!root) {\n throw new Error(`No local roots configured for app \"${options.appId}\"`);\n }\n await fs.mkdir(root.absolutePath, { recursive: true });\n return root;\n}\n\nexport function createTempWorkspaceDir(prefix = \"agent-native-local-\"): string {\n return fsSync.mkdtempSync(path.join(os.tmpdir(), prefix));\n}\n\nfunction localWorkspaceResourcesEnabled(\n loaded: LoadedAgentNativeManifest | null,\n): boolean {\n const explicitMode = envMode();\n if (explicitMode) {\n assertLocalFilesRuntimeAllowed(explicitMode);\n return explicitMode === \"local-files\";\n }\n const manifest = loaded?.manifest;\n const mode = manifest?.mode;\n if (mode) {\n assertLocalFilesRuntimeAllowed(mode);\n if (mode === \"local-files\") return true;\n }\n return false;\n}\n\nasync function resolveLocalWorkspaceRoot(\n options: LocalWorkspaceResourceOptions = {},\n): Promise<string | null> {\n const loaded = await loadAgentNativeManifest({ ...options, optional: true });\n if (localWorkspaceResourcesEnabled(loaded)) {\n return loaded?.rootDir ?? path.resolve(options.cwd ?? process.cwd());\n }\n return null;\n}\n\nexport async function isLocalWorkspaceResourcesEnabled(\n options: LocalWorkspaceResourceOptions = {},\n): Promise<boolean> {\n return !!(await resolveLocalWorkspaceRoot(options));\n}\n\nexport function localWorkspaceResourceId(resourcePath: string): string {\n const normalized = normalizeSlash(resourcePath).replace(/^\\/+/, \"\");\n return `${LOCAL_WORKSPACE_RESOURCE_ID_PREFIX}${Buffer.from(\n normalized,\n \"utf8\",\n ).toString(\"base64url\")}`;\n}\n\nexport function isLocalWorkspaceResourceId(id: string): boolean {\n return id.startsWith(LOCAL_WORKSPACE_RESOURCE_ID_PREFIX);\n}\n\nexport function localWorkspaceResourcePathFromId(id: string): string | null {\n if (!isLocalWorkspaceResourceId(id)) return null;\n const encoded = id.slice(LOCAL_WORKSPACE_RESOURCE_ID_PREFIX.length);\n try {\n const decoded = Buffer.from(encoded, \"base64url\").toString(\"utf8\");\n return normalizeLocalWorkspaceResourcePath(decoded);\n } catch {\n return null;\n }\n}\n\nfunction mimeTypeForLocalWorkspaceResource(resourcePath: string): string {\n const extension = extensionOf(resourcePath);\n if (extension === \".md\") return \"text/markdown\";\n if (extension === \".mdx\") return \"text/mdx\";\n if (extension === \".json\") return \"application/json\";\n if (extension === \".yaml\" || extension === \".yml\") return \"application/yaml\";\n if (extension === \".toml\") return \"text/toml\";\n if (extension === \".ts\" || extension === \".tsx\") return \"text/typescript\";\n if (extension === \".js\" || extension === \".jsx\") return \"text/javascript\";\n if (extension === \".html\") return \"text/html\";\n if (extension === \".css\") return \"text/css\";\n if (extension === \".xml\") return \"application/xml\";\n if (extension === \".csv\") return \"text/csv\";\n if (extension === \".sql\") return \"text/sql\";\n if (extension === \".sh\") return \"text/x-shellscript\";\n if (extension === \".py\") return \"text/x-python\";\n return \"text/plain\";\n}\n\nfunction isSupportedLocalWorkspaceTextFile(resourcePath: string): boolean {\n return LOCAL_WORKSPACE_TEXT_EXTENSIONS.has(extensionOf(resourcePath));\n}\n\nexport function normalizeLocalWorkspaceResourcePath(resourcePath: string) {\n const safePath = normalizeRelativePath(\n normalizeSlash(resourcePath).replace(/^\\/+/, \"\"),\n \"resource path\",\n );\n if (LOCAL_WORKSPACE_CONTROL_FILES.has(safePath)) return safePath;\n if (safePath.startsWith(\".agents/skills/\")) {\n const relativeSkillPath = normalizeRelativePath(\n safePath.slice(\".agents/skills/\".length),\n \"resource path\",\n );\n return normalizeSlash(path.posix.join(\"skills\", relativeSkillPath));\n }\n if (safePath.startsWith(\".agent/skills/\")) {\n const relativeSkillPath = normalizeRelativePath(\n safePath.slice(\".agent/skills/\".length),\n \"resource path\",\n );\n return normalizeSlash(path.posix.join(\"skills\", relativeSkillPath));\n }\n if (safePath.startsWith(\"skills/\")) return safePath;\n throw new Error(\n `Local workspace resource \"${resourcePath}\" must be AGENTS.md, agent-native.json, mcp.config.json, .mcp.json, or under skills/.`,\n );\n}\n\nexport function canUseLocalWorkspaceResourcePath(\n resourcePath: string,\n): boolean {\n try {\n normalizeLocalWorkspaceResourcePath(resourcePath);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction localWorkspaceResourceAbsolutePath(\n workspaceRoot: string,\n resourcePath: string,\n options: { preferExisting?: boolean } = {},\n): { resourcePath: string; absolutePath: string } {\n const normalized = normalizeLocalWorkspaceResourcePath(resourcePath);\n const safePath = normalizeRelativePath(\n normalizeSlash(resourcePath).replace(/^\\/+/, \"\"),\n \"resource path\",\n );\n let relativePath = normalized;\n if (\n safePath.startsWith(\".agents/skills/\") ||\n safePath.startsWith(\".agent/skills/\")\n ) {\n relativePath = safePath;\n } else if (normalized.startsWith(\"skills/\")) {\n const skillPath = normalized.slice(\"skills/\".length);\n const candidates = LOCAL_WORKSPACE_SKILL_ROOTS.map((root) =>\n normalizeSlash(path.posix.join(root, skillPath)),\n );\n relativePath = candidates[0]!;\n if (options.preferExisting) {\n relativePath =\n candidates.find((candidate) =>\n fsSync.existsSync(path.resolve(workspaceRoot, candidate)),\n ) ?? relativePath;\n }\n }\n const { absolutePath } = resolveInsideWorkspace(workspaceRoot, relativePath);\n return { resourcePath: normalized, absolutePath };\n}\n\nfunction localWorkspaceResourceDeletePaths(\n workspaceRoot: string,\n resourcePath: string,\n): string[] {\n const normalized = normalizeLocalWorkspaceResourcePath(resourcePath);\n const safePath = normalizeRelativePath(\n normalizeSlash(resourcePath).replace(/^\\/+/, \"\"),\n \"resource path\",\n );\n if (\n safePath.startsWith(\".agents/skills/\") ||\n safePath.startsWith(\".agent/skills/\") ||\n !normalized.startsWith(\"skills/\")\n ) {\n const { absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n resourcePath,\n );\n return [absolutePath];\n }\n\n const skillPath = normalized.slice(\"skills/\".length);\n return LOCAL_WORKSPACE_SKILL_ROOTS.map((root) => {\n const relativePath = normalizeSlash(path.posix.join(root, skillPath));\n return resolveInsideWorkspace(workspaceRoot, relativePath).absolutePath;\n });\n}\n\nfunction assertNoSymlinkAbsolutePathSync(\n workspaceRoot: string,\n absolutePath: string,\n options: { allowMissingLeaf?: boolean } = {},\n) {\n const relative = path.relative(workspaceRoot, absolutePath);\n const segments = relative.split(path.sep).filter(Boolean);\n let current = workspaceRoot;\n const pathsToCheck = [\n current,\n ...segments.map((segment) => {\n current = path.join(current, segment);\n return current;\n }),\n ];\n\n for (let index = 0; index < pathsToCheck.length; index += 1) {\n const candidate = pathsToCheck[index]!;\n try {\n const stat = fsSync.lstatSync(candidate);\n if (stat.isSymbolicLink()) {\n throw new Error(`Path \"${candidate}\" must not traverse a symlink`);\n }\n if (index < pathsToCheck.length - 1 && !stat.isDirectory()) {\n throw new Error(`Path \"${candidate}\" is not a directory`);\n }\n } catch (error) {\n if (errorCode(error) === \"ENOENT\" && options.allowMissingLeaf) return;\n throw error;\n }\n }\n}\n\nfunction readLocalWorkspaceTextFile(\n workspaceRoot: string,\n absolutePath: string,\n): { content: string; stat: fsSync.Stats } {\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absolutePath);\n const fd = fsSync.openSync(absolutePath, noFollowOpenFlags());\n try {\n const stat = fsSync.fstatSync(fd);\n if (!stat.isFile()) {\n throw new Error(`Path \"${absolutePath}\" is not a file`);\n }\n if (stat.size > LOCAL_WORKSPACE_RESOURCE_MAX_BYTES) {\n throw new Error(\n `Local workspace resource \"${absolutePath}\" is too large to load`,\n );\n }\n return {\n content: fsSync.readFileSync(fd, \"utf8\"),\n stat,\n };\n } finally {\n fsSync.closeSync(fd);\n }\n}\n\nfunction localWorkspaceResourceMeta(\n resourcePath: string,\n absolutePath: string,\n content: string,\n stat: fsSync.Stats,\n): LocalWorkspaceResourceMeta {\n return {\n id: localWorkspaceResourceId(resourcePath),\n path: resourcePath,\n absolutePath,\n mimeType: mimeTypeForLocalWorkspaceResource(resourcePath),\n sizeBytes: Buffer.byteLength(content, \"utf8\"),\n hash: hashContent(content),\n createdAt: stat.birthtime.toISOString(),\n updatedAt: stat.mtime.toISOString(),\n mtimeMs: stat.mtimeMs,\n };\n}\n\nasync function maybeLocalWorkspaceResourceMeta(\n workspaceRoot: string,\n resourcePath: string,\n absolutePath: string,\n): Promise<LocalWorkspaceResourceMeta | null> {\n if (!isSupportedLocalWorkspaceTextFile(resourcePath)) return null;\n try {\n const { content, stat } = readLocalWorkspaceTextFile(\n workspaceRoot,\n absolutePath,\n );\n return localWorkspaceResourceMeta(\n resourcePath,\n absolutePath,\n content,\n stat,\n );\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return null;\n throw error;\n }\n}\n\nasync function walkLocalWorkspaceSkillRoot(\n workspaceRoot: string,\n skillRoot: string,\n seenPaths: Set<string>,\n): Promise<LocalWorkspaceResourceMeta[]> {\n const absoluteRoot = path.join(workspaceRoot, skillRoot);\n try {\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absoluteRoot);\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return [];\n throw error;\n }\n\n const files: LocalWorkspaceResourceMeta[] = [];\n async function walk(directory: string): Promise<void> {\n let entries: fsSync.Dirent[];\n try {\n entries = await fs.readdir(directory, { withFileTypes: true });\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return;\n throw error;\n }\n\n for (const entry of entries) {\n if (entry.name === \".DS_Store\") continue;\n const absolutePath = path.join(directory, entry.name);\n const relativeToSkillRoot = normalizeSlash(\n path.relative(absoluteRoot, absolutePath),\n );\n const resourcePath = normalizeSlash(\n path.posix.join(\"skills\", relativeToSkillRoot),\n );\n if (seenPaths.has(resourcePath)) continue;\n if (entry.isDirectory()) {\n await walk(absolutePath);\n continue;\n }\n if (!entry.isFile()) continue;\n const meta = await maybeLocalWorkspaceResourceMeta(\n workspaceRoot,\n resourcePath,\n absolutePath,\n );\n if (!meta) continue;\n seenPaths.add(resourcePath);\n files.push(meta);\n }\n }\n\n await walk(absoluteRoot);\n return files;\n}\n\nexport async function listLocalWorkspaceResources(\n options: LocalWorkspaceResourceOptions = {},\n): Promise<LocalWorkspaceResourceMeta[]> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) return [];\n\n const seenPaths = new Set<string>();\n const resources: LocalWorkspaceResourceMeta[] = [];\n for (const resourcePath of LOCAL_WORKSPACE_CONTROL_FILES) {\n const { absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n resourcePath,\n );\n const meta = await maybeLocalWorkspaceResourceMeta(\n workspaceRoot,\n resourcePath,\n absolutePath,\n );\n if (!meta) continue;\n seenPaths.add(resourcePath);\n resources.push(meta);\n }\n\n for (const skillRoot of LOCAL_WORKSPACE_SKILL_ROOTS) {\n resources.push(\n ...(await walkLocalWorkspaceSkillRoot(\n workspaceRoot,\n skillRoot,\n seenPaths,\n )),\n );\n }\n\n return resources.sort((a, b) => a.path.localeCompare(b.path));\n}\n\nexport async function readLocalWorkspaceResource(\n options: LocalWorkspaceResourceOptions & { path: string },\n): Promise<LocalWorkspaceResourceFile | null> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) return null;\n const { resourcePath, absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n options.path,\n { preferExisting: true },\n );\n if (!isSupportedLocalWorkspaceTextFile(resourcePath)) return null;\n try {\n const { content, stat } = readLocalWorkspaceTextFile(\n workspaceRoot,\n absolutePath,\n );\n return {\n ...localWorkspaceResourceMeta(resourcePath, absolutePath, content, stat),\n content,\n };\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return null;\n throw error;\n }\n}\n\nexport async function writeLocalWorkspaceResource(\n options: WriteLocalWorkspaceResourceOptions,\n): Promise<LocalWorkspaceResourceMeta> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) {\n throw new Error(\"Local file mode is not enabled\");\n }\n const { resourcePath, absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n options.path,\n { preferExisting: true },\n );\n if (!isSupportedLocalWorkspaceTextFile(resourcePath)) {\n throw new Error(`Local workspace resource \"${resourcePath}\" is not text`);\n }\n return withWriteLock(absolutePath, async () => {\n const existing = await readLocalWorkspaceResource({\n ...options,\n path: resourcePath,\n });\n if (options.ifNotExists && existing) {\n throw new Error(`File \"${resourcePath}\" already exists`);\n }\n if (\n options.expectedHash &&\n (!existing || existing.hash !== options.expectedHash)\n ) {\n throw new Error(\n `File \"${resourcePath}\" changed on disk. Reload before saving again.`,\n );\n }\n\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absolutePath, {\n allowMissingLeaf: true,\n });\n await fs.mkdir(path.dirname(absolutePath), { recursive: true });\n const tempPath = path.join(\n path.dirname(absolutePath),\n `.${path.basename(absolutePath)}.${process.pid}.${crypto.randomUUID()}.tmp`,\n );\n await fs.writeFile(tempPath, options.content, \"utf8\");\n await fs.rename(tempPath, absolutePath);\n const stat = await fs.stat(absolutePath);\n return localWorkspaceResourceMeta(\n resourcePath,\n absolutePath,\n options.content,\n stat,\n );\n });\n}\n\nexport async function deleteLocalWorkspaceResource(\n options: LocalWorkspaceResourceOptions & { path: string },\n): Promise<boolean> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) {\n throw new Error(\"Local file mode is not enabled\");\n }\n const absolutePaths = localWorkspaceResourceDeletePaths(\n workspaceRoot,\n options.path,\n );\n let deleted = false;\n for (const absolutePath of absolutePaths) {\n try {\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absolutePath);\n await fs.unlink(absolutePath);\n deleted = true;\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") continue;\n throw error;\n }\n }\n return deleted;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-artifacts/index.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from \"node:crypto\";\nimport fsSync from \"node:fs\";\nimport fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nimport { minimatch } from \"minimatch\";\n\nexport type AgentNativeDataMode = \"database\" | \"local-files\";\n\nexport interface AgentNativeManifestRoot {\n name?: string;\n path: string;\n kind?: string;\n profile?: string;\n extensions?: string[];\n include?: string[];\n hide?: string[];\n source?: {\n type: \"local-folder\";\n connectionId: string;\n truthPolicy?:\n | \"database_primary\"\n | \"source_primary\"\n | \"reviewed_bidirectional\";\n };\n}\n\nexport interface AgentNativeManifestApp {\n mode?: AgentNativeDataMode;\n profile?: string;\n roots?: AgentNativeManifestRoot[];\n components?: string | string[];\n extensions?: string | string[];\n hide?: string[];\n}\n\nexport interface AgentNativeManifest {\n version?: number;\n mode?: AgentNativeDataMode;\n apps?: Record<string, AgentNativeManifestApp>;\n}\n\nexport interface LoadedAgentNativeManifest {\n path: string;\n rootDir: string;\n manifest: AgentNativeManifest;\n}\n\nexport interface LocalArtifactAppDefaults {\n mode?: AgentNativeDataMode;\n profile?: string;\n roots: AgentNativeManifestRoot[];\n hide?: string[];\n components?: string | string[];\n extensions?: string | string[];\n}\n\nexport interface LoadAgentNativeManifestOptions {\n cwd?: string;\n manifestPath?: string;\n optional?: boolean;\n}\n\nexport interface ResolveAgentNativeModeOptions extends LoadAgentNativeManifestOptions {\n appId?: string;\n defaults?: Pick<LocalArtifactAppDefaults, \"mode\">;\n}\n\nexport interface LocalArtifactOptions extends LoadAgentNativeManifestOptions {\n appId: string;\n defaults?: LocalArtifactAppDefaults;\n}\n\nexport interface LoadedLocalArtifactRoot {\n name: string;\n path: string;\n absolutePath: string;\n kind?: string;\n profile?: string;\n extensions: string[];\n hide: string[];\n include: string[];\n source?: AgentNativeManifestRoot[\"source\"];\n}\n\nexport interface LoadedLocalArtifactApp {\n appId: string;\n mode: AgentNativeDataMode;\n profile?: string;\n manifestPath: string | null;\n workspaceRoot: string;\n roots: LoadedLocalArtifactRoot[];\n components: string[];\n extensions: string[];\n hide: string[];\n}\n\nexport interface LocalArtifactFileMeta {\n path: string;\n absolutePath: string;\n rootName: string;\n rootPath: string;\n kind?: string;\n profile?: string;\n extension: string;\n contentType: string;\n sizeBytes: number;\n hash: string;\n createdAt: string;\n updatedAt: string;\n mtimeMs: number;\n}\n\nexport interface LocalArtifactFile extends LocalArtifactFileMeta {\n content: string;\n}\n\nexport interface WriteLocalArtifactFileOptions extends LocalArtifactOptions {\n content: string;\n expectedHash?: string | null;\n ifNotExists?: boolean;\n}\n\nexport interface LocalWorkspaceResourceMeta {\n id: string;\n path: string;\n absolutePath: string;\n mimeType: string;\n sizeBytes: number;\n hash: string;\n createdAt: string;\n updatedAt: string;\n mtimeMs: number;\n}\n\nexport interface LocalWorkspaceResourceFile extends LocalWorkspaceResourceMeta {\n content: string;\n}\n\nexport interface LocalWorkspaceResourceOptions extends LoadAgentNativeManifestOptions {}\n\nexport interface WriteLocalWorkspaceResourceOptions extends LocalWorkspaceResourceOptions {\n path: string;\n content: string;\n expectedHash?: string | null;\n ifNotExists?: boolean;\n}\n\nconst MANIFEST_FILE = \"agent-native.json\";\nconst ENV_MODE_NAMES = [\"AGENT_NATIVE_MODE\", \"AGENT_NATIVE_DATA_MODE\"];\nconst ENV_MANIFEST_NAMES = [\n \"AGENT_NATIVE_MANIFEST\",\n \"AGENT_NATIVE_MANIFEST_PATH\",\n];\nconst ALLOW_PRODUCTION_LOCAL_FILES_ENV =\n \"AGENT_NATIVE_ALLOW_LOCAL_FILES_IN_PRODUCTION\";\nconst DEFAULT_HIDE_PATTERNS = [\n \"**/.git/**\",\n \"**/.agent-native/**\",\n \"**/.next/**\",\n \"**/.nuxt/**\",\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n];\nexport const LOCAL_WORKSPACE_RESOURCE_ID_PREFIX = \"local-workspace-resource:\";\nconst LOCAL_WORKSPACE_RESOURCE_MAX_BYTES = 2 * 1024 * 1024;\nconst LOCAL_WORKSPACE_CONTROL_FILES = new Set([\n \"AGENTS.md\",\n \"agent-native.json\",\n \"mcp.config.json\",\n \".mcp.json\",\n]);\nconst LOCAL_WORKSPACE_SKILL_ROOTS = [\".agents/skills\", \".agent/skills\"];\nconst LOCAL_WORKSPACE_TEXT_EXTENSIONS = new Set([\n \".css\",\n \".csv\",\n \".html\",\n \".js\",\n \".json\",\n \".jsx\",\n \".md\",\n \".mdx\",\n \".py\",\n \".sh\",\n \".sql\",\n \".toml\",\n \".ts\",\n \".tsx\",\n \".txt\",\n \".xml\",\n \".yaml\",\n \".yml\",\n]);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction errorCode(error: unknown): string | undefined {\n return isRecord(error) && typeof error.code === \"string\"\n ? error.code\n : undefined;\n}\n\nfunction asStringArray(value: unknown): string[] {\n if (typeof value === \"string\" && value.trim()) return [value.trim()];\n if (!Array.isArray(value)) return [];\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction normalizeMode(value: unknown): AgentNativeDataMode | undefined {\n if (value === \"database\" || value === \"local-files\") return value;\n return undefined;\n}\n\nfunction normalizeProfile(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined;\n const trimmed = value.trim();\n return trimmed || undefined;\n}\n\nfunction normalizeSlash(filePath: string): string {\n return filePath.replace(/\\\\/g, \"/\");\n}\n\nfunction normalizeRelativePath(filePath: string, label = \"path\"): string {\n if (!filePath || typeof filePath !== \"string\") {\n throw new Error(`${label} is required`);\n }\n if (filePath.includes(\"\\0\")) {\n throw new Error(`${label} must not contain null bytes`);\n }\n if (path.isAbsolute(filePath)) {\n throw new Error(`${label} must be relative`);\n }\n const normalized = normalizeSlash(\n path.posix.normalize(normalizeSlash(filePath)),\n );\n if (\n !normalized ||\n normalized === \".\" ||\n normalized.startsWith(\"../\") ||\n normalized === \"..\" ||\n normalized.split(\"/\").some((part) => !part || part === \".\" || part === \"..\")\n ) {\n throw new Error(`${label} must be a safe relative path`);\n }\n return normalized;\n}\n\nfunction extensionOf(filePath: string): string {\n return path.posix.extname(filePath).toLowerCase();\n}\n\nfunction normalizeExtensions(value: unknown): string[] {\n const extensions = asStringArray(value)\n .map((ext) => ext.trim().toLowerCase())\n .filter(Boolean)\n .map((ext) => (ext.startsWith(\".\") ? ext : `.${ext}`));\n return [...new Set(extensions)];\n}\n\nfunction rootNameFromPath(rootPath: string): string {\n return (\n rootPath\n .split(\"/\")\n .filter(Boolean)\n .at(-1)\n ?.replace(/[-_]+/g, \" \")\n .replace(/\\b\\w/g, (char) => char.toUpperCase()) || rootPath\n );\n}\n\nfunction normalizeManifestRoot(value: unknown): AgentNativeManifestRoot | null {\n if (typeof value === \"string\") return { path: value };\n if (!isRecord(value) || typeof value.path !== \"string\") return null;\n const truthPolicy:\n | NonNullable<AgentNativeManifestRoot[\"source\"]>[\"truthPolicy\"]\n | undefined =\n value.source &&\n isRecord(value.source) &&\n (value.source.truthPolicy === \"database_primary\" ||\n value.source.truthPolicy === \"source_primary\" ||\n value.source.truthPolicy === \"reviewed_bidirectional\")\n ? value.source.truthPolicy\n : undefined;\n const source =\n isRecord(value.source) &&\n value.source.type === \"local-folder\" &&\n typeof value.source.connectionId === \"string\"\n ? {\n type: \"local-folder\" as const,\n connectionId: value.source.connectionId,\n ...(truthPolicy ? { truthPolicy } : {}),\n }\n : undefined;\n return {\n name: typeof value.name === \"string\" ? value.name : undefined,\n path: value.path,\n kind: typeof value.kind === \"string\" ? value.kind : undefined,\n profile: normalizeProfile(value.profile),\n extensions: normalizeExtensions(value.extensions),\n include: asStringArray(value.include),\n hide: asStringArray(value.hide),\n ...(source ? { source } : {}),\n };\n}\n\nfunction normalizeManifestApp(value: unknown): AgentNativeManifestApp {\n if (Array.isArray(value)) {\n return {\n roots: value\n .map(normalizeManifestRoot)\n .filter((root): root is AgentNativeManifestRoot => !!root),\n };\n }\n if (!isRecord(value)) return {};\n const roots = Array.isArray(value.roots)\n ? value.roots\n .map(normalizeManifestRoot)\n .filter((root): root is AgentNativeManifestRoot => !!root)\n : [];\n return {\n mode: normalizeMode(value.mode),\n profile: normalizeProfile(value.profile),\n roots,\n components:\n typeof value.components === \"string\" || Array.isArray(value.components)\n ? asStringArray(value.components)\n : undefined,\n extensions:\n typeof value.extensions === \"string\" || Array.isArray(value.extensions)\n ? asStringArray(value.extensions)\n : undefined,\n hide: asStringArray(value.hide),\n };\n}\n\nfunction normalizeManifest(value: unknown): AgentNativeManifest {\n const record = isRecord(value) ? value : {};\n const appsRecord = isRecord(record.apps) ? record.apps : {};\n const apps: Record<string, AgentNativeManifestApp> = {};\n for (const [appId, appValue] of Object.entries(appsRecord)) {\n apps[appId] = normalizeManifestApp(appValue);\n }\n return {\n version:\n typeof record.version === \"number\" && Number.isFinite(record.version)\n ? record.version\n : undefined,\n mode: normalizeMode(record.mode),\n apps,\n };\n}\n\nfunction firstEnvValue(names: string[]): string | undefined {\n for (const name of names) {\n const value = process.env[name]?.trim();\n if (value) return value;\n }\n return undefined;\n}\n\nfunction envMode(): AgentNativeDataMode | undefined {\n return normalizeMode(firstEnvValue(ENV_MODE_NAMES));\n}\n\nfunction envFlag(name: string): boolean {\n const value = process.env[name]?.trim().toLowerCase();\n return value === \"1\" || value === \"true\" || value === \"yes\" || value === \"on\";\n}\n\nfunction assertLocalFilesRuntimeAllowed(mode: AgentNativeDataMode) {\n if (mode !== \"local-files\") return;\n if (process.env.NODE_ENV !== \"production\") return;\n if (envFlag(ALLOW_PRODUCTION_LOCAL_FILES_ENV)) return;\n throw new Error(\n `Local file mode is only enabled for local development runtimes. Set ${ALLOW_PRODUCTION_LOCAL_FILES_ENV}=true only for a trusted single-tenant local file bridge.`,\n );\n}\n\nfunction envManifestPath(): string | undefined {\n return firstEnvValue(ENV_MANIFEST_NAMES);\n}\n\nexport function findAgentNativeManifest(\n startDir = process.cwd(),\n): string | null {\n let current = path.resolve(startDir);\n for (;;) {\n const candidate = path.join(current, MANIFEST_FILE);\n if (fsSync.existsSync(candidate)) return candidate;\n const parent = path.dirname(current);\n if (parent === current) return null;\n current = parent;\n }\n}\n\nexport async function loadAgentNativeManifest(\n options: LoadAgentNativeManifestOptions = {},\n): Promise<LoadedAgentNativeManifest | null> {\n const manifestPath =\n options.manifestPath ??\n envManifestPath() ??\n findAgentNativeManifest(options.cwd ?? process.cwd());\n\n if (!manifestPath) {\n if (options.optional) return null;\n throw new Error(`Could not find ${MANIFEST_FILE}`);\n }\n\n const resolvedPath = path.resolve(options.cwd ?? process.cwd(), manifestPath);\n try {\n const raw = await fs.readFile(resolvedPath, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n return {\n path: resolvedPath,\n rootDir: path.dirname(resolvedPath),\n manifest: normalizeManifest(parsed),\n };\n } catch (error) {\n if (options.optional && errorCode(error) === \"ENOENT\") {\n return null;\n }\n throw error;\n }\n}\n\nexport async function resolveAgentNativeDataMode(\n options: ResolveAgentNativeModeOptions = {},\n): Promise<AgentNativeDataMode> {\n const explicitMode = envMode();\n if (explicitMode) {\n assertLocalFilesRuntimeAllowed(explicitMode);\n return explicitMode;\n }\n\n const loaded = await loadAgentNativeManifest({ ...options, optional: true });\n const appMode = options.appId\n ? loaded?.manifest.apps?.[options.appId]?.mode\n : undefined;\n const mode =\n appMode ?? loaded?.manifest.mode ?? options.defaults?.mode ?? \"database\";\n assertLocalFilesRuntimeAllowed(mode);\n return mode;\n}\n\nexport async function isAgentNativeLocalFileMode(\n options: ResolveAgentNativeModeOptions = {},\n): Promise<boolean> {\n return (await resolveAgentNativeDataMode(options)) === \"local-files\";\n}\n\nfunction mergeAppConfig(\n manifestApp: AgentNativeManifestApp | undefined,\n defaults: LocalArtifactAppDefaults | undefined,\n): AgentNativeManifestApp {\n return {\n mode: manifestApp?.mode ?? defaults?.mode,\n profile: manifestApp?.profile ?? defaults?.profile,\n roots:\n manifestApp?.roots !== undefined\n ? manifestApp.roots\n : (defaults?.roots ?? []),\n components: manifestApp?.components ?? defaults?.components,\n extensions: manifestApp?.extensions ?? defaults?.extensions,\n hide: [...(defaults?.hide ?? []), ...(manifestApp?.hide ?? [])],\n };\n}\n\nfunction resolveInsideWorkspace(workspaceRoot: string, relativePath: string) {\n const safePath = normalizeRelativePath(relativePath);\n const absolutePath = path.resolve(workspaceRoot, safePath);\n const relative = path.relative(workspaceRoot, absolutePath);\n if (\n relative === \"\" ||\n relative.startsWith(\"..\") ||\n path.isAbsolute(relative)\n ) {\n throw new Error(`Path \"${relativePath}\" is outside the workspace`);\n }\n return { safePath, absolutePath };\n}\n\nexport async function getLocalArtifactApp(\n options: LocalArtifactOptions,\n): Promise<LoadedLocalArtifactApp> {\n const loaded = await loadAgentNativeManifest({ ...options, optional: true });\n const workspaceRoot =\n loaded?.rootDir ?? path.resolve(options.cwd ?? process.cwd());\n const manifestApp = loaded?.manifest.apps?.[options.appId];\n const app = mergeAppConfig(manifestApp, options.defaults);\n const mode = await resolveAgentNativeDataMode({\n ...options,\n appId: options.appId,\n defaults: app,\n });\n\n const roots = (app.roots ?? []).map((root) => {\n const { safePath, absolutePath } = resolveInsideWorkspace(\n workspaceRoot,\n root.path,\n );\n const extensions = normalizeExtensions(root.extensions);\n return {\n name: root.name || rootNameFromPath(safePath),\n path: safePath,\n absolutePath,\n kind: root.kind,\n profile: root.profile ?? app.profile,\n extensions,\n hide: [...DEFAULT_HIDE_PATTERNS, ...asStringArray(root.hide)],\n include: asStringArray(root.include),\n source: root.source,\n };\n });\n\n return {\n appId: options.appId,\n mode,\n profile: app.profile,\n manifestPath: loaded?.path ?? null,\n workspaceRoot,\n roots,\n components: asStringArray(app.components),\n extensions: asStringArray(app.extensions),\n hide: [...DEFAULT_HIDE_PATTERNS, ...asStringArray(app.hide)],\n };\n}\n\nfunction matchesPatterns(filePath: string, patterns: string[]) {\n return patterns.some((pattern) =>\n minimatch(filePath, pattern, { dot: true, nocase: true }),\n );\n}\n\nfunction contentTypeForExtension(extension: string): string {\n if (extension === \".md\") return \"text/markdown\";\n if (extension === \".mdx\") return \"text/mdx\";\n if (extension === \".json\") return \"application/json\";\n if (extension === \".txt\") return \"text/plain\";\n return \"application/octet-stream\";\n}\n\nfunction hashContent(content: string): string {\n return crypto.createHash(\"sha256\").update(content).digest(\"hex\");\n}\n\nconst writeLocks = new Map<string, Promise<void>>();\n\nfunction noFollowOpenFlags(): number {\n return fsSync.constants.O_RDONLY | (fsSync.constants.O_NOFOLLOW ?? 0);\n}\n\nasync function withWriteLock<T>(\n absolutePath: string,\n fn: () => Promise<T>,\n): Promise<T> {\n const previous = writeLocks.get(absolutePath) ?? Promise.resolve();\n let release!: () => void;\n const next = new Promise<void>((resolve) => {\n release = resolve;\n });\n const current = previous.catch(() => {}).then(() => next);\n writeLocks.set(absolutePath, current);\n await previous.catch(() => {});\n try {\n return await fn();\n } finally {\n release();\n if (writeLocks.get(absolutePath) === current) {\n writeLocks.delete(absolutePath);\n }\n }\n}\n\nfunction assertNoSymlinkPathSync(\n root: LoadedLocalArtifactRoot,\n absolutePath: string,\n options: { allowMissingLeaf?: boolean } = {},\n) {\n const relative = path.relative(root.absolutePath, absolutePath);\n const segments = relative.split(path.sep).filter(Boolean);\n let current = root.absolutePath;\n const pathsToCheck = [\n current,\n ...segments.map((segment) => {\n current = path.join(current, segment);\n return current;\n }),\n ];\n\n for (let index = 0; index < pathsToCheck.length; index += 1) {\n const candidate = pathsToCheck[index]!;\n try {\n const stat = fsSync.lstatSync(candidate);\n if (stat.isSymbolicLink()) {\n throw new Error(`Path \"${candidate}\" must not traverse a symlink`);\n }\n if (index < pathsToCheck.length - 1 && !stat.isDirectory()) {\n throw new Error(`Path \"${candidate}\" is not a directory`);\n }\n } catch (error) {\n if (errorCode(error) === \"ENOENT\" && options.allowMissingLeaf) return;\n throw error;\n }\n }\n}\n\nfunction readTextFileWithoutSymlink(\n root: LoadedLocalArtifactRoot,\n absolutePath: string,\n): { content: string; stat: fsSync.Stats } {\n assertNoSymlinkPathSync(root, absolutePath);\n const fd = fsSync.openSync(absolutePath, noFollowOpenFlags());\n try {\n return {\n content: fsSync.readFileSync(fd, \"utf8\"),\n stat: fsSync.fstatSync(fd),\n };\n } finally {\n fsSync.closeSync(fd);\n }\n}\n\nasync function fileMetaForPath(\n root: LoadedLocalArtifactRoot,\n artifactPath: string,\n absolutePath: string,\n contentOverride?: string,\n statOverride?: fsSync.Stats,\n): Promise<LocalArtifactFileMeta> {\n const read =\n contentOverride === undefined\n ? readTextFileWithoutSymlink(root, absolutePath)\n : undefined;\n const content = contentOverride ?? read!.content;\n const stat = statOverride ?? read?.stat ?? (await fs.stat(absolutePath));\n const extension = extensionOf(artifactPath);\n return {\n path: artifactPath,\n absolutePath,\n rootName: root.name,\n rootPath: root.path,\n kind: root.kind,\n profile: root.profile,\n extension,\n contentType: contentTypeForExtension(extension),\n sizeBytes: Buffer.byteLength(content, \"utf8\"),\n hash: hashContent(content),\n createdAt: stat.birthtime.toISOString(),\n updatedAt: stat.mtime.toISOString(),\n mtimeMs: stat.mtimeMs,\n };\n}\n\nfunction rootAllowsPath(root: LoadedLocalArtifactRoot, artifactPath: string) {\n const extension = extensionOf(artifactPath);\n if (root.extensions.length > 0 && !root.extensions.includes(extension)) {\n return false;\n }\n if (matchesPatterns(artifactPath, root.hide)) return false;\n if (root.include.length === 0) return true;\n return matchesPatterns(artifactPath, root.include);\n}\n\nasync function walkRoot(\n root: LoadedLocalArtifactRoot,\n directory = root.absolutePath,\n): Promise<LocalArtifactFileMeta[]> {\n let entries: fsSync.Dirent[];\n try {\n entries = await fs.readdir(directory, { withFileTypes: true });\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") {\n return [];\n }\n throw error;\n }\n\n const files: LocalArtifactFileMeta[] = [];\n for (const entry of entries) {\n const absolutePath = path.join(directory, entry.name);\n const relativeToRoot = normalizeSlash(\n path.relative(root.absolutePath, absolutePath),\n );\n const artifactPath = normalizeSlash(\n path.posix.join(root.path, relativeToRoot),\n );\n if (matchesPatterns(artifactPath, root.hide)) continue;\n\n if (entry.isDirectory()) {\n files.push(...(await walkRoot(root, absolutePath)));\n continue;\n }\n if (!entry.isFile() || !rootAllowsPath(root, artifactPath)) continue;\n files.push(await fileMetaForPath(root, artifactPath, absolutePath));\n }\n return files;\n}\n\nexport async function listLocalArtifactFiles(\n options: LocalArtifactOptions,\n): Promise<LocalArtifactFileMeta[]> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") return [];\n\n const files = (await Promise.all(app.roots.map((root) => walkRoot(root))))\n .flat()\n .filter((file) => !matchesPatterns(file.path, app.hide));\n\n return files.sort((a, b) => a.path.localeCompare(b.path));\n}\n\nexport async function listConfiguredLocalArtifactFiles(\n options: LocalArtifactOptions,\n): Promise<LocalArtifactFileMeta[]> {\n const app = await getLocalArtifactApp(options);\n const files = (await Promise.all(app.roots.map((root) => walkRoot(root))))\n .flat()\n .filter((file) => !matchesPatterns(file.path, app.hide));\n return files.sort((a, b) => a.path.localeCompare(b.path));\n}\n\nfunction rootForArtifactPath(\n app: LoadedLocalArtifactApp,\n artifactPath: string,\n): LoadedLocalArtifactRoot {\n const safePath = normalizeRelativePath(artifactPath);\n const root = app.roots.find(\n (candidate) =>\n safePath === candidate.path || safePath.startsWith(`${candidate.path}/`),\n );\n if (!root) {\n throw new Error(`Path \"${artifactPath}\" is not in a configured local root`);\n }\n if (!rootAllowsPath(root, safePath) || matchesPatterns(safePath, app.hide)) {\n throw new Error(`Path \"${artifactPath}\" is not allowed for this app`);\n }\n return root;\n}\n\nasync function resolveArtifactPath(\n app: LoadedLocalArtifactApp,\n artifactPath: string,\n): Promise<{\n root: LoadedLocalArtifactRoot;\n safePath: string;\n absolutePath: string;\n}> {\n const safePath = normalizeRelativePath(artifactPath);\n const root = rootForArtifactPath(app, safePath);\n const absolutePath = path.resolve(app.workspaceRoot, safePath);\n const relative = path.relative(root.absolutePath, absolutePath);\n if (\n relative.startsWith(\"..\") ||\n path.isAbsolute(relative) ||\n relative === \"\"\n ) {\n throw new Error(`Path \"${artifactPath}\" is outside its configured root`);\n }\n return { root, safePath, absolutePath };\n}\n\nasync function assertNoSymlinkPath(\n root: LoadedLocalArtifactRoot,\n absolutePath: string,\n options: { allowMissingLeaf?: boolean } = {},\n) {\n assertNoSymlinkPathSync(root, absolutePath, options);\n}\n\nexport async function readLocalArtifactFile(\n options: LocalArtifactOptions & { path: string },\n): Promise<LocalArtifactFile | null> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") return null;\n const { root, safePath, absolutePath } = await resolveArtifactPath(\n app,\n options.path,\n );\n try {\n const { content, stat } = readTextFileWithoutSymlink(root, absolutePath);\n const meta = await fileMetaForPath(\n root,\n safePath,\n absolutePath,\n content,\n stat,\n );\n return { ...meta, content };\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") {\n return null;\n }\n throw error;\n }\n}\n\nexport async function readConfiguredLocalArtifactFile(\n options: LocalArtifactOptions & { path: string },\n): Promise<LocalArtifactFile | null> {\n const app = await getLocalArtifactApp(options);\n const { root, safePath, absolutePath } = await resolveArtifactPath(\n app,\n options.path,\n );\n try {\n const { content, stat } = readTextFileWithoutSymlink(root, absolutePath);\n const meta = await fileMetaForPath(\n root,\n safePath,\n absolutePath,\n content,\n stat,\n );\n return { ...meta, content };\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return null;\n throw error;\n }\n}\n\nexport async function writeLocalArtifactFile(\n options: WriteLocalArtifactFileOptions & { path: string },\n): Promise<LocalArtifactFileMeta> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") {\n throw new Error(\"Local file mode is not enabled\");\n }\n const { root, safePath, absolutePath } = await resolveArtifactPath(\n app,\n options.path,\n );\n return withWriteLock(absolutePath, async () => {\n const existing = await readLocalArtifactFile({\n ...options,\n path: safePath,\n });\n if (options.ifNotExists && existing) {\n throw new Error(`File \"${safePath}\" already exists`);\n }\n if (\n options.expectedHash &&\n (!existing || existing.hash !== options.expectedHash)\n ) {\n throw new Error(\n `File \"${safePath}\" changed on disk. Reload before saving again.`,\n );\n }\n\n await assertNoSymlinkPath(root, absolutePath, { allowMissingLeaf: true });\n await fs.mkdir(path.dirname(absolutePath), { recursive: true });\n const tempPath = path.join(\n path.dirname(absolutePath),\n `.${path.basename(absolutePath)}.${process.pid}.${crypto.randomUUID()}.tmp`,\n );\n await fs.writeFile(tempPath, options.content, \"utf8\");\n await fs.rename(tempPath, absolutePath);\n return fileMetaForPath(root, safePath, absolutePath, options.content);\n });\n}\n\nexport async function deleteLocalArtifactFile(\n options: LocalArtifactOptions & { path: string },\n): Promise<boolean> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") {\n throw new Error(\"Local file mode is not enabled\");\n }\n const { root, absolutePath } = await resolveArtifactPath(app, options.path);\n try {\n await assertNoSymlinkPath(root, absolutePath);\n await fs.unlink(absolutePath);\n return true;\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") {\n return false;\n }\n throw error;\n }\n}\n\nexport async function ensureLocalArtifactRoot(\n options: LocalArtifactOptions,\n): Promise<LoadedLocalArtifactRoot> {\n const app = await getLocalArtifactApp(options);\n if (app.mode !== \"local-files\") {\n throw new Error(\"Local file mode is not enabled\");\n }\n const root = app.roots[0];\n if (!root) {\n throw new Error(`No local roots configured for app \"${options.appId}\"`);\n }\n await fs.mkdir(root.absolutePath, { recursive: true });\n return root;\n}\n\nexport function createTempWorkspaceDir(prefix = \"agent-native-local-\"): string {\n return fsSync.mkdtempSync(path.join(os.tmpdir(), prefix));\n}\n\nfunction localWorkspaceResourcesEnabled(\n loaded: LoadedAgentNativeManifest | null,\n): boolean {\n const explicitMode = envMode();\n if (explicitMode) {\n assertLocalFilesRuntimeAllowed(explicitMode);\n return explicitMode === \"local-files\";\n }\n const manifest = loaded?.manifest;\n const mode = manifest?.mode;\n if (mode) {\n assertLocalFilesRuntimeAllowed(mode);\n if (mode === \"local-files\") return true;\n }\n return false;\n}\n\nasync function resolveLocalWorkspaceRoot(\n options: LocalWorkspaceResourceOptions = {},\n): Promise<string | null> {\n const loaded = await loadAgentNativeManifest({ ...options, optional: true });\n if (localWorkspaceResourcesEnabled(loaded)) {\n return loaded?.rootDir ?? path.resolve(options.cwd ?? process.cwd());\n }\n return null;\n}\n\nexport async function isLocalWorkspaceResourcesEnabled(\n options: LocalWorkspaceResourceOptions = {},\n): Promise<boolean> {\n return !!(await resolveLocalWorkspaceRoot(options));\n}\n\nexport function localWorkspaceResourceId(resourcePath: string): string {\n const normalized = normalizeSlash(resourcePath).replace(/^\\/+/, \"\");\n return `${LOCAL_WORKSPACE_RESOURCE_ID_PREFIX}${Buffer.from(\n normalized,\n \"utf8\",\n ).toString(\"base64url\")}`;\n}\n\nexport function isLocalWorkspaceResourceId(id: string): boolean {\n return id.startsWith(LOCAL_WORKSPACE_RESOURCE_ID_PREFIX);\n}\n\nexport function localWorkspaceResourcePathFromId(id: string): string | null {\n if (!isLocalWorkspaceResourceId(id)) return null;\n const encoded = id.slice(LOCAL_WORKSPACE_RESOURCE_ID_PREFIX.length);\n try {\n const decoded = Buffer.from(encoded, \"base64url\").toString(\"utf8\");\n return normalizeLocalWorkspaceResourcePath(decoded);\n } catch {\n return null;\n }\n}\n\nfunction mimeTypeForLocalWorkspaceResource(resourcePath: string): string {\n const extension = extensionOf(resourcePath);\n if (extension === \".md\") return \"text/markdown\";\n if (extension === \".mdx\") return \"text/mdx\";\n if (extension === \".json\") return \"application/json\";\n if (extension === \".yaml\" || extension === \".yml\") return \"application/yaml\";\n if (extension === \".toml\") return \"text/toml\";\n if (extension === \".ts\" || extension === \".tsx\") return \"text/typescript\";\n if (extension === \".js\" || extension === \".jsx\") return \"text/javascript\";\n if (extension === \".html\") return \"text/html\";\n if (extension === \".css\") return \"text/css\";\n if (extension === \".xml\") return \"application/xml\";\n if (extension === \".csv\") return \"text/csv\";\n if (extension === \".sql\") return \"text/sql\";\n if (extension === \".sh\") return \"text/x-shellscript\";\n if (extension === \".py\") return \"text/x-python\";\n return \"text/plain\";\n}\n\nfunction isSupportedLocalWorkspaceTextFile(resourcePath: string): boolean {\n return LOCAL_WORKSPACE_TEXT_EXTENSIONS.has(extensionOf(resourcePath));\n}\n\nexport function normalizeLocalWorkspaceResourcePath(resourcePath: string) {\n const safePath = normalizeRelativePath(\n normalizeSlash(resourcePath).replace(/^\\/+/, \"\"),\n \"resource path\",\n );\n if (LOCAL_WORKSPACE_CONTROL_FILES.has(safePath)) return safePath;\n if (safePath.startsWith(\".agents/skills/\")) {\n const relativeSkillPath = normalizeRelativePath(\n safePath.slice(\".agents/skills/\".length),\n \"resource path\",\n );\n return normalizeSlash(path.posix.join(\"skills\", relativeSkillPath));\n }\n if (safePath.startsWith(\".agent/skills/\")) {\n const relativeSkillPath = normalizeRelativePath(\n safePath.slice(\".agent/skills/\".length),\n \"resource path\",\n );\n return normalizeSlash(path.posix.join(\"skills\", relativeSkillPath));\n }\n if (safePath.startsWith(\"skills/\")) return safePath;\n throw new Error(\n `Local workspace resource \"${resourcePath}\" must be AGENTS.md, agent-native.json, mcp.config.json, .mcp.json, or under skills/.`,\n );\n}\n\nexport function canUseLocalWorkspaceResourcePath(\n resourcePath: string,\n): boolean {\n try {\n normalizeLocalWorkspaceResourcePath(resourcePath);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction localWorkspaceResourceAbsolutePath(\n workspaceRoot: string,\n resourcePath: string,\n options: { preferExisting?: boolean } = {},\n): { resourcePath: string; absolutePath: string } {\n const normalized = normalizeLocalWorkspaceResourcePath(resourcePath);\n const safePath = normalizeRelativePath(\n normalizeSlash(resourcePath).replace(/^\\/+/, \"\"),\n \"resource path\",\n );\n let relativePath = normalized;\n if (\n safePath.startsWith(\".agents/skills/\") ||\n safePath.startsWith(\".agent/skills/\")\n ) {\n relativePath = safePath;\n } else if (normalized.startsWith(\"skills/\")) {\n const skillPath = normalized.slice(\"skills/\".length);\n const candidates = LOCAL_WORKSPACE_SKILL_ROOTS.map((root) =>\n normalizeSlash(path.posix.join(root, skillPath)),\n );\n relativePath = candidates[0]!;\n if (options.preferExisting) {\n relativePath =\n candidates.find((candidate) =>\n fsSync.existsSync(path.resolve(workspaceRoot, candidate)),\n ) ?? relativePath;\n }\n }\n const { absolutePath } = resolveInsideWorkspace(workspaceRoot, relativePath);\n return { resourcePath: normalized, absolutePath };\n}\n\nfunction localWorkspaceResourceDeletePaths(\n workspaceRoot: string,\n resourcePath: string,\n): string[] {\n const normalized = normalizeLocalWorkspaceResourcePath(resourcePath);\n const safePath = normalizeRelativePath(\n normalizeSlash(resourcePath).replace(/^\\/+/, \"\"),\n \"resource path\",\n );\n if (\n safePath.startsWith(\".agents/skills/\") ||\n safePath.startsWith(\".agent/skills/\") ||\n !normalized.startsWith(\"skills/\")\n ) {\n const { absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n resourcePath,\n );\n return [absolutePath];\n }\n\n const skillPath = normalized.slice(\"skills/\".length);\n return LOCAL_WORKSPACE_SKILL_ROOTS.map((root) => {\n const relativePath = normalizeSlash(path.posix.join(root, skillPath));\n return resolveInsideWorkspace(workspaceRoot, relativePath).absolutePath;\n });\n}\n\nfunction assertNoSymlinkAbsolutePathSync(\n workspaceRoot: string,\n absolutePath: string,\n options: { allowMissingLeaf?: boolean } = {},\n) {\n const relative = path.relative(workspaceRoot, absolutePath);\n const segments = relative.split(path.sep).filter(Boolean);\n let current = workspaceRoot;\n const pathsToCheck = [\n current,\n ...segments.map((segment) => {\n current = path.join(current, segment);\n return current;\n }),\n ];\n\n for (let index = 0; index < pathsToCheck.length; index += 1) {\n const candidate = pathsToCheck[index]!;\n try {\n const stat = fsSync.lstatSync(candidate);\n if (stat.isSymbolicLink()) {\n throw new Error(`Path \"${candidate}\" must not traverse a symlink`);\n }\n if (index < pathsToCheck.length - 1 && !stat.isDirectory()) {\n throw new Error(`Path \"${candidate}\" is not a directory`);\n }\n } catch (error) {\n if (errorCode(error) === \"ENOENT\" && options.allowMissingLeaf) return;\n throw error;\n }\n }\n}\n\nfunction readLocalWorkspaceTextFile(\n workspaceRoot: string,\n absolutePath: string,\n): { content: string; stat: fsSync.Stats } {\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absolutePath);\n const fd = fsSync.openSync(absolutePath, noFollowOpenFlags());\n try {\n const stat = fsSync.fstatSync(fd);\n if (!stat.isFile()) {\n throw new Error(`Path \"${absolutePath}\" is not a file`);\n }\n if (stat.size > LOCAL_WORKSPACE_RESOURCE_MAX_BYTES) {\n throw new Error(\n `Local workspace resource \"${absolutePath}\" is too large to load`,\n );\n }\n return {\n content: fsSync.readFileSync(fd, \"utf8\"),\n stat,\n };\n } finally {\n fsSync.closeSync(fd);\n }\n}\n\nfunction localWorkspaceResourceMeta(\n resourcePath: string,\n absolutePath: string,\n content: string,\n stat: fsSync.Stats,\n): LocalWorkspaceResourceMeta {\n return {\n id: localWorkspaceResourceId(resourcePath),\n path: resourcePath,\n absolutePath,\n mimeType: mimeTypeForLocalWorkspaceResource(resourcePath),\n sizeBytes: Buffer.byteLength(content, \"utf8\"),\n hash: hashContent(content),\n createdAt: stat.birthtime.toISOString(),\n updatedAt: stat.mtime.toISOString(),\n mtimeMs: stat.mtimeMs,\n };\n}\n\nasync function maybeLocalWorkspaceResourceMeta(\n workspaceRoot: string,\n resourcePath: string,\n absolutePath: string,\n): Promise<LocalWorkspaceResourceMeta | null> {\n if (!isSupportedLocalWorkspaceTextFile(resourcePath)) return null;\n try {\n const { content, stat } = readLocalWorkspaceTextFile(\n workspaceRoot,\n absolutePath,\n );\n return localWorkspaceResourceMeta(\n resourcePath,\n absolutePath,\n content,\n stat,\n );\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return null;\n throw error;\n }\n}\n\nasync function walkLocalWorkspaceSkillRoot(\n workspaceRoot: string,\n skillRoot: string,\n seenPaths: Set<string>,\n): Promise<LocalWorkspaceResourceMeta[]> {\n const absoluteRoot = path.join(workspaceRoot, skillRoot);\n try {\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absoluteRoot);\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return [];\n throw error;\n }\n\n const files: LocalWorkspaceResourceMeta[] = [];\n async function walk(directory: string): Promise<void> {\n let entries: fsSync.Dirent[];\n try {\n entries = await fs.readdir(directory, { withFileTypes: true });\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return;\n throw error;\n }\n\n for (const entry of entries) {\n if (entry.name === \".DS_Store\") continue;\n const absolutePath = path.join(directory, entry.name);\n const relativeToSkillRoot = normalizeSlash(\n path.relative(absoluteRoot, absolutePath),\n );\n const resourcePath = normalizeSlash(\n path.posix.join(\"skills\", relativeToSkillRoot),\n );\n if (seenPaths.has(resourcePath)) continue;\n if (entry.isDirectory()) {\n await walk(absolutePath);\n continue;\n }\n if (!entry.isFile()) continue;\n const meta = await maybeLocalWorkspaceResourceMeta(\n workspaceRoot,\n resourcePath,\n absolutePath,\n );\n if (!meta) continue;\n seenPaths.add(resourcePath);\n files.push(meta);\n }\n }\n\n await walk(absoluteRoot);\n return files;\n}\n\nexport async function listLocalWorkspaceResources(\n options: LocalWorkspaceResourceOptions = {},\n): Promise<LocalWorkspaceResourceMeta[]> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) return [];\n\n const seenPaths = new Set<string>();\n const resources: LocalWorkspaceResourceMeta[] = [];\n for (const resourcePath of LOCAL_WORKSPACE_CONTROL_FILES) {\n const { absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n resourcePath,\n );\n const meta = await maybeLocalWorkspaceResourceMeta(\n workspaceRoot,\n resourcePath,\n absolutePath,\n );\n if (!meta) continue;\n seenPaths.add(resourcePath);\n resources.push(meta);\n }\n\n for (const skillRoot of LOCAL_WORKSPACE_SKILL_ROOTS) {\n resources.push(\n ...(await walkLocalWorkspaceSkillRoot(\n workspaceRoot,\n skillRoot,\n seenPaths,\n )),\n );\n }\n\n return resources.sort((a, b) => a.path.localeCompare(b.path));\n}\n\nexport async function readLocalWorkspaceResource(\n options: LocalWorkspaceResourceOptions & { path: string },\n): Promise<LocalWorkspaceResourceFile | null> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) return null;\n const { resourcePath, absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n options.path,\n { preferExisting: true },\n );\n if (!isSupportedLocalWorkspaceTextFile(resourcePath)) return null;\n try {\n const { content, stat } = readLocalWorkspaceTextFile(\n workspaceRoot,\n absolutePath,\n );\n return {\n ...localWorkspaceResourceMeta(resourcePath, absolutePath, content, stat),\n content,\n };\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") return null;\n throw error;\n }\n}\n\nexport async function writeLocalWorkspaceResource(\n options: WriteLocalWorkspaceResourceOptions,\n): Promise<LocalWorkspaceResourceMeta> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) {\n throw new Error(\"Local file mode is not enabled\");\n }\n const { resourcePath, absolutePath } = localWorkspaceResourceAbsolutePath(\n workspaceRoot,\n options.path,\n { preferExisting: true },\n );\n if (!isSupportedLocalWorkspaceTextFile(resourcePath)) {\n throw new Error(`Local workspace resource \"${resourcePath}\" is not text`);\n }\n return withWriteLock(absolutePath, async () => {\n const existing = await readLocalWorkspaceResource({\n ...options,\n path: resourcePath,\n });\n if (options.ifNotExists && existing) {\n throw new Error(`File \"${resourcePath}\" already exists`);\n }\n if (\n options.expectedHash &&\n (!existing || existing.hash !== options.expectedHash)\n ) {\n throw new Error(\n `File \"${resourcePath}\" changed on disk. Reload before saving again.`,\n );\n }\n\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absolutePath, {\n allowMissingLeaf: true,\n });\n await fs.mkdir(path.dirname(absolutePath), { recursive: true });\n const tempPath = path.join(\n path.dirname(absolutePath),\n `.${path.basename(absolutePath)}.${process.pid}.${crypto.randomUUID()}.tmp`,\n );\n await fs.writeFile(tempPath, options.content, \"utf8\");\n await fs.rename(tempPath, absolutePath);\n const stat = await fs.stat(absolutePath);\n return localWorkspaceResourceMeta(\n resourcePath,\n absolutePath,\n options.content,\n stat,\n );\n });\n}\n\nexport async function deleteLocalWorkspaceResource(\n options: LocalWorkspaceResourceOptions & { path: string },\n): Promise<boolean> {\n const workspaceRoot = await resolveLocalWorkspaceRoot(options);\n if (!workspaceRoot) {\n throw new Error(\"Local file mode is not enabled\");\n }\n const absolutePaths = localWorkspaceResourceDeletePaths(\n workspaceRoot,\n options.path,\n );\n let deleted = false;\n for (const absolutePath of absolutePaths) {\n try {\n assertNoSymlinkAbsolutePathSync(workspaceRoot, absolutePath);\n await fs.unlink(absolutePath);\n deleted = true;\n } catch (error) {\n if (errorCode(error) === \"ENOENT\") continue;\n throw error;\n }\n }\n return deleted;\n}\n"]}
@@ -28,7 +28,7 @@ export declare function createNotificationsHandler(): import("h3").EventHandlerW
28
28
  } | {
29
29
  count?: undefined;
30
30
  updated?: undefined;
31
- ok: boolean;
32
31
  error?: undefined;
32
+ ok: boolean;
33
33
  }>>;
34
34
  //# sourceMappingURL=routes.d.ts.map
@@ -73,7 +73,6 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
73
73
  offset?: unknown;
74
74
  limit?: unknown;
75
75
  }, {
76
- deleted?: undefined;
77
76
  jobs: {
78
77
  id: string;
79
78
  name: string;
@@ -84,6 +83,7 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
84
83
  updatedAt: string;
85
84
  }[];
86
85
  total: number;
86
+ deleted?: undefined;
87
87
  jobId?: undefined;
88
88
  } | {
89
89
  jobs?: undefined;
@@ -91,9 +91,9 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
91
91
  deleted: boolean;
92
92
  jobId: string;
93
93
  } | {
94
- deleted?: undefined;
95
94
  jobs?: undefined;
96
95
  total?: undefined;
96
+ deleted?: undefined;
97
97
  jobId?: undefined;
98
98
  hits: Record<string, unknown>[];
99
99
  offset: number;
@@ -49,11 +49,11 @@ export declare function handleUpdateResource(event: any): Promise<import("./stor
49
49
  }>;
50
50
  /** DELETE /_agent-native/resources/:id — delete a resource */
51
51
  export declare function handleDeleteResource(event: any): Promise<{
52
- error: string;
53
52
  ok?: undefined;
53
+ error: string;
54
54
  } | {
55
- ok: boolean;
56
55
  error?: undefined;
56
+ ok: boolean;
57
57
  }>;
58
58
  /** POST /_agent-native/resources/upload — upload a file as a resource */
59
59
  export declare function handleUploadResource(event: any): Promise<import("./store.js").Resource | {
@@ -74,10 +74,10 @@ export declare function handleUploadResource(event: any): Promise<import("./stor
74
74
  runId: string | null;
75
75
  expiresAt: number | null;
76
76
  metadata: string | null;
77
+ error?: undefined;
77
78
  url: string;
78
79
  provider: string;
79
80
  storageSetupRequired?: undefined;
80
- error?: undefined;
81
81
  } | {
82
82
  error: string;
83
83
  storageSetupRequired: boolean;
@@ -27,11 +27,11 @@ export declare function resolveAgentEngineApiKeyWriteTarget(event: H3Event, scop
27
27
  export declare function createAgentEngineApiKeyHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
28
28
  error: any;
29
29
  } | {
30
+ error?: undefined;
30
31
  ok: boolean;
31
32
  key: string;
32
33
  baseUrlKey?: string;
33
34
  scope: AgentEngineApiKeyScope;
34
- error?: undefined;
35
35
  }>>;
36
36
  export {};
37
37
  //# sourceMappingURL=agent-engine-api-key-route.d.ts.map
@@ -20,7 +20,7 @@ export declare function createTranscribeVoiceHandler(): import("h3").EventHandle
20
20
  error: string;
21
21
  text?: undefined;
22
22
  } | {
23
- text: string;
24
23
  error?: undefined;
24
+ text: string;
25
25
  }>>;
26
26
  //# sourceMappingURL=transcribe-voice.d.ts.map