@xopcai/xopc 0.0.116 → 0.0.118

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 (677) hide show
  1. package/README.md +44 -28
  2. package/README.zh-CN.md +63 -45
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/demo-memory/src/index.d.ts +6 -0
  5. package/dist/extensions/demo-memory/src/index.js +132 -0
  6. package/dist/extensions/demo-memory/src/index.js.map +1 -0
  7. package/dist/extensions/demo-memory/xopc.extension.json +15 -0
  8. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  9. package/dist/extensions/feishu/src/schema/config-schema.d.ts +3 -3
  10. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  11. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  12. package/dist/extensions/telegram/src/command-handler.js +1 -2
  13. package/dist/extensions/telegram/src/command-handler.js.map +1 -1
  14. package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
  15. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  16. package/dist/extensions/telegram/src/plugin.js +1 -1
  17. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  18. package/dist/extensions/telegram/src/update-offset-store.js +1 -1
  19. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  20. package/dist/extensions/telegram/xopc.extension.json +1 -1
  21. package/dist/extensions/weixin/src/api/api.js +2 -2
  22. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  23. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  24. package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
  25. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  26. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  27. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  28. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  29. package/dist/extensions/weixin/src/plugin.js +1 -1
  30. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  31. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  32. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CWM1UU5P.js → agent-avatar-dicebear-dzUrQoeZ.js} +1 -1
  33. package/dist/gateway/static/root/assets/agents-BCxZbkOw.js +2 -0
  34. package/dist/gateway/static/root/assets/{app-management-settings-panel-yXSXY_bu.js → app-management-settings-panel-bxYJVJpx.js} +1 -1
  35. package/dist/gateway/static/root/assets/{appearance-settings-DjY1P_ug.js → appearance-settings-BCIykXlI.js} +1 -1
  36. package/dist/gateway/static/root/assets/apps-page--wMEL00f.js +1 -0
  37. package/dist/gateway/static/root/assets/{archive-plugin-CytE5j-e.js → archive-plugin-Cki4SfU2.js} +1 -1
  38. package/dist/gateway/static/root/assets/{attachment-load-BvvrN6rF.js → attachment-load-D-KnS2Do.js} +1 -1
  39. package/dist/gateway/static/root/assets/{binary-plugins-IBWSitnj.js → binary-plugins-D2sgvJja.js} +1 -1
  40. package/dist/gateway/static/root/assets/{block-editor-C-wDpsf-.js → block-editor-DIq-4Gvb.js} +27 -27
  41. package/dist/gateway/static/root/assets/browser-settings-page-DRhKdn81.js +8 -0
  42. package/dist/gateway/static/root/assets/capability-presets-api-CorhiHlg.js +1 -0
  43. package/dist/gateway/static/root/assets/capability-presets-settings-panel-qFx9Jtce.js +1 -0
  44. package/dist/gateway/static/root/assets/channels-settings-BAwAkqIA.js +1 -0
  45. package/dist/gateway/static/root/assets/connectors-page-BQLcfitM.js +2 -0
  46. package/dist/gateway/static/root/assets/cron-api-qGwmL-24.js +1 -0
  47. package/dist/gateway/static/root/assets/cron-page-BBWMAj8-.js +3 -0
  48. package/dist/gateway/static/root/assets/dreaming-settings-Dw89Obml.js +1 -0
  49. package/dist/gateway/static/root/assets/{extension-debug-page-BAIyjDlq.js → extension-debug-page-DYu1KaFQ.js} +1 -1
  50. package/dist/gateway/static/root/assets/{extension-page-DEhv2GpC.js → extension-page-B3W6QwlZ.js} +1 -1
  51. package/dist/gateway/static/root/assets/{extension-settings-page-DOuAxTDW.js → extension-settings-page-D7VQ-cxE.js} +1 -1
  52. package/dist/gateway/static/root/assets/{fetch-CTsREQIe.js → fetch-B7xDPu-R.js} +1 -1
  53. package/dist/gateway/static/root/assets/{format-interval-label-D35Bfhtx.js → format-interval-label-BzxafKxR.js} +1 -1
  54. package/dist/gateway/static/root/assets/gateway-config-api-BTBLSeUu.js +1 -0
  55. package/dist/gateway/static/root/assets/gateway-settings-Cmwy58rS.js +1 -0
  56. package/dist/gateway/static/root/assets/{gateway-startup-retry-C1KAHrd2.js → gateway-startup-retry-CYj9FWCp.js} +1 -1
  57. package/dist/gateway/static/root/assets/goal-detail-page-l7mu5GWX.js +1 -0
  58. package/dist/gateway/static/root/assets/{goals-config-api-KnLGpu6h.js → goals-config-api-CQQgzPr3.js} +1 -1
  59. package/dist/gateway/static/root/assets/goals-page-BHitvJAv.js +2 -0
  60. package/dist/gateway/static/root/assets/{goals-settings-DtPtqZi8.js → goals-settings-CYVY4NGp.js} +1 -1
  61. package/dist/gateway/static/root/assets/{heartbeat-config-api-uKw1f0IG.js → heartbeat-config-api-DriO_CN9.js} +1 -1
  62. package/dist/gateway/static/root/assets/heartbeat-settings-CUQTKxg7.js +1 -0
  63. package/dist/gateway/static/root/assets/index-C17Tsd_b.css +1 -0
  64. package/dist/gateway/static/root/assets/index-Cc41r16l.js +191 -0
  65. package/dist/gateway/static/root/assets/{interval-presets-Dq0FXJ65.js → interval-presets-DFPCKW_W.js} +1 -1
  66. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-C9_t4m7t.js → keyboard-shortcuts-settings-CcVcqstx.js} +1 -1
  67. package/dist/gateway/static/root/assets/{logs-page-SNkWzidV.js → logs-page-C2Uqvae9.js} +2 -2
  68. package/dist/gateway/static/root/assets/{markdown-split-Ca87W8-h.js → markdown-split-BwOFrJ2E.js} +1 -1
  69. package/dist/gateway/static/root/assets/{media-plugins-BAcUjPRJ.js → media-plugins-Cnz6Q5G6.js} +1 -1
  70. package/dist/gateway/static/root/assets/messages-B1iSKjiw.js +3 -0
  71. package/dist/gateway/static/root/assets/models-hub-panel-BfLfcta8.js +2 -0
  72. package/dist/gateway/static/root/assets/note-detail-page-BjwOQBfT.js +2 -0
  73. package/dist/gateway/static/root/assets/{note-image-lightbox-hnSX5SSn.js → note-image-lightbox-B-Svpmza.js} +1 -1
  74. package/dist/gateway/static/root/assets/notes-page-DktdBiwB.js +1 -0
  75. package/dist/gateway/static/root/assets/{preview-open-alternatives-CNgM20H5.js → preview-open-alternatives-Bss4TiwP.js} +1 -1
  76. package/dist/gateway/static/root/assets/remote-access-hub-rfVx96fq.js +1 -0
  77. package/dist/gateway/static/root/assets/{save-bar-controls-CcdjGcfT.js → save-bar-controls-BRNjdgKq.js} +1 -1
  78. package/dist/gateway/static/root/assets/{schedule-field-CYr39z76.js → schedule-field-CUCKODde.js} +1 -1
  79. package/dist/gateway/static/root/assets/{schema-form-BRAJgZQ2.js → schema-form-Dub9sy8r.js} +1 -1
  80. package/dist/gateway/static/root/assets/sessions-page-DbtMFuuH.js +1 -0
  81. package/dist/gateway/static/root/assets/settings-advanced-gate-5re5gAnP.js +1 -0
  82. package/dist/gateway/static/root/assets/{settings-collapsible-section-BhzjeGWi.js → settings-collapsible-section-BeFLavGi.js} +1 -1
  83. package/dist/gateway/static/root/assets/{settings-form-section-Cz3Pcr9b.js → settings-form-section-dmyaPOTG.js} +1 -1
  84. package/dist/gateway/static/root/assets/settings-page-D-WMyLlj.js +1 -0
  85. package/dist/gateway/static/root/assets/setup-status-panel-Cl-DEJAU.js +1 -0
  86. package/dist/gateway/static/root/assets/{share-preview-page-DL4y9K5e.js → share-preview-page-C8glrdqe.js} +1 -1
  87. package/dist/gateway/static/root/assets/shares-settings-CyPVvbLt.js +1 -0
  88. package/dist/gateway/static/root/assets/skill-reload-api-CleTH1oz.js +1 -0
  89. package/dist/gateway/static/root/assets/skills-page-Ck8hdXqR.js +2 -0
  90. package/dist/gateway/static/root/assets/{system-settings-panel-FD2jxRZ3.js → system-settings-panel-DI-LN_8G.js} +1 -1
  91. package/dist/gateway/static/root/assets/typed-models-lib-kX9duch4.js +1 -0
  92. package/dist/gateway/static/root/assets/{use-channel-catalog-BInPrfR5.js → use-channel-catalog-DqlWTsDb.js} +1 -1
  93. package/dist/gateway/static/root/assets/user-profile-settings-panel-B-UFPMXy.js +1 -0
  94. package/dist/gateway/static/root/assets/utils-Dm0hKalR.js +1 -0
  95. package/dist/gateway/static/root/assets/voice-api-key-field-C73IVZeC.js +1 -0
  96. package/dist/gateway/static/root/assets/{voice-player-store-1U3vFppm.js → voice-player-store-C_ArLJPM.js} +1 -1
  97. package/dist/gateway/static/root/assets/workflows-page-BtFGp2y_.js +18 -0
  98. package/dist/gateway/static/root/index.html +5 -5
  99. package/dist/package.js +1 -1
  100. package/dist/src/agent/agent-manager.d.ts +1 -1
  101. package/dist/src/agent/agent-manager.js +14 -14
  102. package/dist/src/agent/agent-manager.js.map +1 -1
  103. package/dist/src/agent/agent-scope.js +5 -9
  104. package/dist/src/agent/agent-scope.js.map +1 -1
  105. package/dist/src/agent/background-review/coordinator.js +0 -1
  106. package/dist/src/agent/background-review/coordinator.js.map +1 -1
  107. package/dist/src/agent/background-review/prompts.d.ts +2 -2
  108. package/dist/src/agent/background-review/prompts.js +2 -2
  109. package/dist/src/agent/background-review/prompts.js.map +1 -1
  110. package/dist/src/agent/background-review/run-background-review.d.ts +0 -2
  111. package/dist/src/agent/background-review/run-background-review.js +2 -4
  112. package/dist/src/agent/background-review/run-background-review.js.map +1 -1
  113. package/dist/src/agent/background-review/settings.d.ts +1 -1
  114. package/dist/src/agent/background-review/settings.js +8 -8
  115. package/dist/src/agent/background-review/settings.js.map +1 -1
  116. package/dist/src/agent/bootstrap/bootstrap-cache.d.ts +1 -0
  117. package/dist/src/agent/bootstrap/bootstrap-cache.js +4 -3
  118. package/dist/src/agent/bootstrap/bootstrap-cache.js.map +1 -1
  119. package/dist/src/agent/bootstrap/bootstrap-context.d.ts +2 -2
  120. package/dist/src/agent/bootstrap/bootstrap-context.js +4 -4
  121. package/dist/src/agent/bootstrap/bootstrap-context.js.map +1 -1
  122. package/dist/src/agent/bootstrap/bootstrap-files.d.ts +4 -0
  123. package/dist/src/agent/bootstrap/bootstrap-files.js +4 -3
  124. package/dist/src/agent/bootstrap/bootstrap-files.js.map +1 -1
  125. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +4 -2
  126. package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +1 -1
  127. package/dist/src/agent/bootstrap/load-bootstrap-files.d.ts +2 -1
  128. package/dist/src/agent/bootstrap/load-bootstrap-files.js +18 -17
  129. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +1 -1
  130. package/dist/src/agent/bootstrap/project-agents-context.js +1 -1
  131. package/dist/src/agent/bootstrap/types.d.ts +1 -1
  132. package/dist/src/agent/context/workspace-seed.js +3 -3
  133. package/dist/src/agent/context/workspace-state.js +1 -1
  134. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  135. package/dist/src/agent/context/workspace.d.ts +4 -2
  136. package/dist/src/agent/context/workspace.js +6 -5
  137. package/dist/src/agent/context/workspace.js.map +1 -1
  138. package/dist/src/agent/embedded/run-for-session.js +4 -1
  139. package/dist/src/agent/embedded/run-for-session.js.map +1 -1
  140. package/dist/src/agent/fallback/candidates.js +11 -9
  141. package/dist/src/agent/fallback/candidates.js.map +1 -1
  142. package/dist/src/agent/goals/goal-locale.js +2 -2
  143. package/dist/src/agent/goals/post-turn.js +3 -3
  144. package/dist/src/agent/image/generation/runtime-types.d.ts +2 -0
  145. package/dist/src/agent/image/generation/runtime.js +1 -1
  146. package/dist/src/agent/image/generation/runtime.js.map +1 -1
  147. package/dist/src/agent/image/image-helpers.d.ts +1 -1
  148. package/dist/src/agent/image/image-helpers.js +4 -17
  149. package/dist/src/agent/image/image-helpers.js.map +1 -1
  150. package/dist/src/agent/image/image-model-fallback.js +1 -1
  151. package/dist/src/agent/image/image-model-fallback.js.map +1 -1
  152. package/dist/src/agent/image/inbound-image-handling.js +1 -1
  153. package/dist/src/agent/image/inbound-image-handling.js.map +1 -1
  154. package/dist/src/agent/image/load-image-media.js +2 -2
  155. package/dist/src/agent/image/tool-model-config.d.ts +1 -1
  156. package/dist/src/agent/image/tool-model-config.js +2 -2
  157. package/dist/src/agent/image/tool-model-config.js.map +1 -1
  158. package/dist/src/agent/ipc/inbox.js +3 -3
  159. package/dist/src/agent/ipc/socket.js +1 -1
  160. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  161. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  162. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  163. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  164. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +1 -1
  165. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +1 -1
  166. package/dist/src/agent/media-generation/runtime-shared.d.ts +5 -2
  167. package/dist/src/agent/media-generation/runtime-shared.js +1 -1
  168. package/dist/src/agent/media-generation/runtime-shared.js.map +1 -1
  169. package/dist/src/agent/memory/builtin-memory-store.d.ts +6 -2
  170. package/dist/src/agent/memory/builtin-memory-store.js +15 -6
  171. package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
  172. package/dist/src/agent/memory/builtin-provider.d.ts +31 -9
  173. package/dist/src/agent/memory/builtin-provider.js +290 -11
  174. package/dist/src/agent/memory/builtin-provider.js.map +1 -1
  175. package/dist/src/agent/memory/candidate-extractor.d.ts +6 -0
  176. package/dist/src/agent/memory/candidate-extractor.js +60 -0
  177. package/dist/src/agent/memory/candidate-extractor.js.map +1 -0
  178. package/dist/src/agent/memory/context-assembler.d.ts +10 -0
  179. package/dist/src/agent/memory/context-assembler.js +26 -0
  180. package/dist/src/agent/memory/context-assembler.js.map +1 -0
  181. package/dist/src/agent/memory/create-memory-manager.js +25 -7
  182. package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
  183. package/dist/src/agent/memory/dreaming/config.d.ts +1 -6
  184. package/dist/src/agent/memory/dreaming/config.js +8 -8
  185. package/dist/src/agent/memory/dreaming/config.js.map +1 -1
  186. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +2 -0
  187. package/dist/src/agent/memory/dreaming/deep-promotion.js +25 -1
  188. package/dist/src/agent/memory/dreaming/deep-promotion.js.map +1 -1
  189. package/dist/src/agent/memory/dreaming/events.js +1 -1
  190. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  191. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  192. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  193. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  194. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  195. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  196. package/dist/src/agent/memory/index.d.ts +1 -0
  197. package/dist/src/agent/memory/index.js +4 -3
  198. package/dist/src/agent/memory/inject-prefetch.js +6 -2
  199. package/dist/src/agent/memory/inject-prefetch.js.map +1 -1
  200. package/dist/src/agent/memory/manager.d.ts +39 -2
  201. package/dist/src/agent/memory/manager.js +355 -39
  202. package/dist/src/agent/memory/manager.js.map +1 -1
  203. package/dist/src/agent/memory/memory-config.js +15 -15
  204. package/dist/src/agent/memory/memory-config.js.map +1 -1
  205. package/dist/src/agent/memory/memory-flush.js +1 -1
  206. package/dist/src/agent/memory/plugin-discovery.d.ts +19 -5
  207. package/dist/src/agent/memory/plugin-discovery.js +97 -31
  208. package/dist/src/agent/memory/plugin-discovery.js.map +1 -1
  209. package/dist/src/agent/memory/prefetch-coordinator.js.map +1 -1
  210. package/dist/src/agent/memory/provider.d.ts +20 -15
  211. package/dist/src/agent/memory/stub-memory-provider.d.ts +17 -2
  212. package/dist/src/agent/memory/stub-memory-provider.js +20 -3
  213. package/dist/src/agent/memory/stub-memory-provider.js.map +1 -1
  214. package/dist/src/agent/memory/types.d.ts +162 -3
  215. package/dist/src/agent/models/manager.d.ts +1 -1
  216. package/dist/src/agent/models/manager.js +2 -2
  217. package/dist/src/agent/models/manager.js.map +1 -1
  218. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +1 -1
  219. package/dist/src/agent/orchestration/agent-orchestrator.js +2 -1
  220. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  221. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +2 -2
  222. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
  223. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
  224. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +2 -6
  225. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +2 -8
  226. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +1 -1
  227. package/dist/src/agent/prompt/memory/index.d.ts +4 -2
  228. package/dist/src/agent/prompt/memory/index.js +19 -13
  229. package/dist/src/agent/prompt/memory/index.js.map +1 -1
  230. package/dist/src/agent/prompt/sections/memory-skills.js +1 -1
  231. package/dist/src/agent/prompt/sections/memory-skills.js.map +1 -1
  232. package/dist/src/agent/prompt/service-prompt-builder.js +5 -20
  233. package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
  234. package/dist/src/agent/reply/post-compaction-context.js +10 -7
  235. package/dist/src/agent/reply/post-compaction-context.js.map +1 -1
  236. package/dist/src/agent/reply/startup-context.js +7 -12
  237. package/dist/src/agent/reply/startup-context.js.map +1 -1
  238. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  239. package/dist/src/agent/sandbox/path-policy.js +2 -2
  240. package/dist/src/agent/service/process-direct-streaming.js +1 -4
  241. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  242. package/dist/src/agent/service/session-context-report.js +1 -1
  243. package/dist/src/agent/service/session-context-report.js.map +1 -1
  244. package/dist/src/agent/service.d.ts +3 -3
  245. package/dist/src/agent/service.js +30 -35
  246. package/dist/src/agent/service.js.map +1 -1
  247. package/dist/src/agent/service.types.d.ts +1 -2
  248. package/dist/src/agent/session/session-hydrator.js +1 -2
  249. package/dist/src/agent/session/session-hydrator.js.map +1 -1
  250. package/dist/src/agent/session/session-inspector.d.ts +1 -1
  251. package/dist/src/agent/session/session-inspector.js +10 -15
  252. package/dist/src/agent/session/session-inspector.js.map +1 -1
  253. package/dist/src/agent/skills/config.js +2 -2
  254. package/dist/src/agent/skills/filesystem-watcher.js +1 -1
  255. package/dist/src/agent/skills/hub-hash.js +2 -2
  256. package/dist/src/agent/skills/hub-lock.js +1 -1
  257. package/dist/src/agent/skills/hub-pull.js +3 -3
  258. package/dist/src/agent/skills/index.js +2 -2
  259. package/dist/src/agent/skills/installer.js +2 -2
  260. package/dist/src/agent/skills/managed-store.js +1 -1
  261. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  262. package/dist/src/agent/skills/skill-manager.js +1 -1
  263. package/dist/src/agent/skills/skill-view-path.js +1 -1
  264. package/dist/src/agent/skills/test-framework.js +1 -1
  265. package/dist/src/agent/starter-agents.d.ts +1 -3
  266. package/dist/src/agent/starter-agents.js +14 -22
  267. package/dist/src/agent/starter-agents.js.map +1 -1
  268. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -2
  269. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
  270. package/dist/src/agent/tools/curated-memory-tool.d.ts +2 -5
  271. package/dist/src/agent/tools/curated-memory-tool.js +77 -18
  272. package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
  273. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  274. package/dist/src/agent/tools/factory.d.ts +0 -4
  275. package/dist/src/agent/tools/factory.js +19 -58
  276. package/dist/src/agent/tools/factory.js.map +1 -1
  277. package/dist/src/agent/tools/find.js +1 -1
  278. package/dist/src/agent/tools/grep.js +1 -1
  279. package/dist/src/agent/tools/image-generate-tool.d.ts +1 -1
  280. package/dist/src/agent/tools/image-generate-tool.js +20 -15
  281. package/dist/src/agent/tools/image-generate-tool.js.map +1 -1
  282. package/dist/src/agent/tools/image-tool.js +1 -3
  283. package/dist/src/agent/tools/image-tool.js.map +1 -1
  284. package/dist/src/agent/tools/memory-tool.d.ts +2 -2
  285. package/dist/src/agent/tools/memory-tool.js +39 -14
  286. package/dist/src/agent/tools/memory-tool.js.map +1 -1
  287. package/dist/src/agent/tools/session-search-tool.js +1 -3
  288. package/dist/src/agent/tools/session-search-tool.js.map +1 -1
  289. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  290. package/dist/src/agent/tools/web-extract.js +8 -9
  291. package/dist/src/agent/tools/web-extract.js.map +1 -1
  292. package/dist/src/agent/tools/workflow-tool.js +1 -1
  293. package/dist/src/agent/workflow/catalog.js +1 -1
  294. package/dist/src/agent/workflow/subagent-runner.js +1 -3
  295. package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
  296. package/dist/src/agent-manifest/index.d.ts +4 -0
  297. package/dist/src/agent-manifest/index.js +10 -0
  298. package/dist/src/agent-manifest/index.js.map +1 -0
  299. package/dist/src/agent-manifest/prompt.d.ts +2 -0
  300. package/dist/src/agent-manifest/prompt.js +57 -0
  301. package/dist/src/agent-manifest/prompt.js.map +1 -0
  302. package/dist/src/agent-manifest/resolver.d.ts +12 -0
  303. package/dist/src/agent-manifest/resolver.js +95 -0
  304. package/dist/src/agent-manifest/resolver.js.map +1 -0
  305. package/dist/src/agent-manifest/schema.d.ts +1010 -0
  306. package/dist/src/agent-manifest/schema.js +269 -0
  307. package/dist/src/agent-manifest/schema.js.map +1 -0
  308. package/dist/src/agent-manifest/validator.d.ts +25 -0
  309. package/dist/src/agent-manifest/validator.js +88 -0
  310. package/dist/src/agent-manifest/validator.js.map +1 -0
  311. package/dist/src/agent-runtime/boundary-guard.d.ts +12 -0
  312. package/dist/src/agent-runtime/boundary-guard.js +23 -0
  313. package/dist/src/agent-runtime/boundary-guard.js.map +1 -0
  314. package/dist/src/agent-runtime/index.d.ts +7 -0
  315. package/dist/src/agent-runtime/index.js +8 -0
  316. package/dist/src/agent-runtime/memory-runtime.d.ts +21 -0
  317. package/dist/src/agent-runtime/memory-runtime.js +50 -0
  318. package/dist/src/agent-runtime/memory-runtime.js.map +1 -0
  319. package/dist/src/agent-runtime/model-router.d.ts +11 -0
  320. package/dist/src/agent-runtime/model-router.js +16 -0
  321. package/dist/src/agent-runtime/model-router.js.map +1 -0
  322. package/dist/src/agent-runtime/run-trace.d.ts +27 -0
  323. package/dist/src/agent-runtime/run-trace.js +53 -0
  324. package/dist/src/agent-runtime/run-trace.js.map +1 -0
  325. package/dist/src/agent-runtime/runtime-profile.d.ts +24 -0
  326. package/dist/src/agent-runtime/runtime-profile.js +44 -0
  327. package/dist/src/agent-runtime/runtime-profile.js.map +1 -0
  328. package/dist/src/agent-runtime/tool-registry.d.ts +28 -0
  329. package/dist/src/agent-runtime/tool-registry.js +52 -0
  330. package/dist/src/agent-runtime/tool-registry.js.map +1 -0
  331. package/dist/src/agent-runtime/workflow-runtime.d.ts +31 -0
  332. package/dist/src/agent-runtime/workflow-runtime.js +34 -0
  333. package/dist/src/agent-runtime/workflow-runtime.js.map +1 -0
  334. package/dist/src/ai-assist/text-assist.js +1 -1
  335. package/dist/src/auth/credentials.js +2 -2
  336. package/dist/src/auth/profiles/store.js +2 -2
  337. package/dist/src/auth/sync-provider-auth.js +1 -1
  338. package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
  339. package/dist/src/browser/actions/extension-registry-bridge.js.map +1 -1
  340. package/dist/src/browser/actions/registry.js +5 -8
  341. package/dist/src/browser/actions/registry.js.map +1 -1
  342. package/dist/src/browser/backend-from-config.d.ts +1 -1
  343. package/dist/src/browser/backend-from-config.js +50 -71
  344. package/dist/src/browser/backend-from-config.js.map +1 -1
  345. package/dist/src/browser/browser-command-timeout.d.ts +0 -1
  346. package/dist/src/browser/browser-command-timeout.js +3 -7
  347. package/dist/src/browser/browser-command-timeout.js.map +1 -1
  348. package/dist/src/browser/cache-dir-policy.js +1 -1
  349. package/dist/src/browser/cdp-local-launcher.js +2 -2
  350. package/dist/src/browser/pipeline/source.js +1 -1
  351. package/dist/src/browser/providers/browser-ext-install.d.ts +2 -12
  352. package/dist/src/browser/providers/browser-ext-install.js +7 -12
  353. package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
  354. package/dist/src/browser/providers/cloakbrowser.js +5 -5
  355. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  356. package/dist/src/browser/readiness.js +16 -16
  357. package/dist/src/browser/readiness.js.map +1 -1
  358. package/dist/src/browser/schemas.js +1 -1
  359. package/dist/src/browser/schemas.js.map +1 -1
  360. package/dist/src/browser/stealth.js +1 -1
  361. package/dist/src/channels/catalog/channel-catalog-service.js +1 -1
  362. package/dist/src/channels/outbound/persist-store.js +1 -1
  363. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  364. package/dist/src/channels/pairing/pairing-store.js +2 -2
  365. package/dist/src/channels/pipeline.d.ts +1 -1
  366. package/dist/src/channels/pipeline.js.map +1 -1
  367. package/dist/src/chat-commands/agent-edit.js +2 -3
  368. package/dist/src/chat-commands/agent-edit.js.map +1 -1
  369. package/dist/src/chat-commands/builtins/config.js +6 -6
  370. package/dist/src/chat-commands/builtins/config.js.map +1 -1
  371. package/dist/src/chat-commands/builtins/model.js +2 -2
  372. package/dist/src/chat-commands/builtins/model.js.map +1 -1
  373. package/dist/src/chat-commands/builtins/thinking.js +16 -42
  374. package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
  375. package/dist/src/chat-commands/config-paths.js +1 -1
  376. package/dist/src/chat-commands/config-paths.js.map +1 -1
  377. package/dist/src/chat-commands/context.js +3 -4
  378. package/dist/src/chat-commands/context.js.map +1 -1
  379. package/dist/src/cli/command-manifest.d.ts +1 -1
  380. package/dist/src/cli/command-manifest.js +2 -2
  381. package/dist/src/cli/command-manifest.js.map +1 -1
  382. package/dist/src/cli/commands/agent.js +3 -1
  383. package/dist/src/cli/commands/agent.js.map +1 -1
  384. package/dist/src/cli/commands/agents.js +3 -6
  385. package/dist/src/cli/commands/agents.js.map +1 -1
  386. package/dist/src/cli/commands/browser-cli-helpers.js +9 -11
  387. package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
  388. package/dist/src/cli/commands/config.js +6 -6
  389. package/dist/src/cli/commands/config.js.map +1 -1
  390. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  391. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  392. package/dist/src/cli/commands/doctor/checks/provider-auth.js +3 -18
  393. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
  394. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  395. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -2
  396. package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +1 -1
  397. package/dist/src/cli/commands/extension-create.js +1 -1
  398. package/dist/src/cli/commands/extension-dev.js +2 -2
  399. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  400. package/dist/src/cli/commands/extension-pack.js +2 -2
  401. package/dist/src/cli/commands/extension.js +3 -3
  402. package/dist/src/cli/commands/gateway/logs.js +1 -1
  403. package/dist/src/cli/commands/goal.js +1 -1
  404. package/dist/src/cli/commands/image.js +13 -372
  405. package/dist/src/cli/commands/image.js.map +1 -1
  406. package/dist/src/cli/commands/init.js +7 -6
  407. package/dist/src/cli/commands/init.js.map +1 -1
  408. package/dist/src/cli/commands/models.js +14 -16
  409. package/dist/src/cli/commands/models.js.map +1 -1
  410. package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
  411. package/dist/src/cli/commands/onboard/model.js +28 -23
  412. package/dist/src/cli/commands/onboard/model.js.map +1 -1
  413. package/dist/src/cli/commands/onboard.js +3 -3
  414. package/dist/src/cli/commands/onboard.js.map +1 -1
  415. package/dist/src/cli/commands/skills-test.js +1 -1
  416. package/dist/src/cli/commands/tui.js +2 -2
  417. package/dist/src/cli/commands/tui.js.map +1 -1
  418. package/dist/src/cli/index.d.ts +1 -0
  419. package/dist/src/cli/index.js +10 -5
  420. package/dist/src/cli/index.js.map +1 -1
  421. package/dist/src/cli/registry.js +1 -1
  422. package/dist/src/cli/registry.js.map +1 -1
  423. package/dist/src/cli/templates.d.ts +1 -1
  424. package/dist/src/cli/templates.js +2 -12
  425. package/dist/src/cli/templates.js.map +1 -1
  426. package/dist/src/cli/utils/gateway-client.js +1 -1
  427. package/dist/src/cli/utils/init-workspace-core.d.ts +1 -4
  428. package/dist/src/cli/utils/init-workspace-core.js +9 -8
  429. package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
  430. package/dist/src/commands/agents.config.d.ts +0 -1
  431. package/dist/src/commands/agents.config.js +59 -13
  432. package/dist/src/commands/agents.config.js.map +1 -1
  433. package/dist/src/config/agent-profile.d.ts +5 -17
  434. package/dist/src/config/agent-profile.js +32 -64
  435. package/dist/src/config/agent-profile.js.map +1 -1
  436. package/dist/src/config/agent-typed-models.d.ts +1 -1
  437. package/dist/src/config/agent-typed-models.js +3 -6
  438. package/dist/src/config/agent-typed-models.js.map +1 -1
  439. package/dist/src/config/gateway-bind.js +1 -1
  440. package/dist/src/config/index.js +9 -9
  441. package/dist/src/config/integration.d.ts +1 -1
  442. package/dist/src/config/loader.js +4 -4
  443. package/dist/src/config/models-json.js +2 -2
  444. package/dist/src/config/paths-state.js +1 -1
  445. package/dist/src/config/paths.d.ts +8 -1
  446. package/dist/src/config/paths.js +17 -4
  447. package/dist/src/config/paths.js.map +1 -1
  448. package/dist/src/config/profile.js +1 -1
  449. package/dist/src/config/reload.js +2 -2
  450. package/dist/src/config/reload.js.map +1 -1
  451. package/dist/src/config/rules.js +6 -56
  452. package/dist/src/config/rules.js.map +1 -1
  453. package/dist/src/config/schema.d.ts +916 -779
  454. package/dist/src/config/schema.js +174 -423
  455. package/dist/src/config/schema.js.map +1 -1
  456. package/dist/src/config/workspace-path.js +1 -1
  457. package/dist/src/connectors/composio-triggers.js +1 -1
  458. package/dist/src/cron/executor.js +1 -1
  459. package/dist/src/cron/index.js +1 -1
  460. package/dist/src/cron/service.js +2 -2
  461. package/dist/src/cron/validation.d.ts +3 -3
  462. package/dist/src/daemon/constants.js +1 -1
  463. package/dist/src/daemon/install-plan.js +2 -2
  464. package/dist/src/daemon/launchd.js +2 -2
  465. package/dist/src/daemon/schtasks.js +2 -2
  466. package/dist/src/daemon/systemd.js +2 -2
  467. package/dist/src/extensions/activation-context.js +13 -7
  468. package/dist/src/extensions/activation-context.js.map +1 -1
  469. package/dist/src/extensions/bundle-mcp.js +1 -1
  470. package/dist/src/extensions/discover-extensions.js +2 -2
  471. package/dist/src/extensions/health.js +1 -1
  472. package/dist/src/extensions/install.js +2 -2
  473. package/dist/src/extensions/loader.js +2 -2
  474. package/dist/src/extensions/lockfile.js +3 -3
  475. package/dist/src/extensions/security.js +1 -1
  476. package/dist/src/extensions/update.js +2 -2
  477. package/dist/src/gateway/agents-admin.d.ts +24 -18
  478. package/dist/src/gateway/agents-admin.js +158 -92
  479. package/dist/src/gateway/agents-admin.js.map +1 -1
  480. package/dist/src/gateway/capability-presets-admin.d.ts +56 -0
  481. package/dist/src/gateway/capability-presets-admin.js +214 -0
  482. package/dist/src/gateway/capability-presets-admin.js.map +1 -0
  483. package/dist/src/gateway/chat-stream/mapper.js +9 -2
  484. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  485. package/dist/src/gateway/file-path-classifier.js +2 -2
  486. package/dist/src/gateway/global-defaults-admin.d.ts +36 -0
  487. package/dist/src/gateway/global-defaults-admin.js +146 -0
  488. package/dist/src/gateway/global-defaults-admin.js.map +1 -0
  489. package/dist/src/gateway/hono/lib/agent-model.d.ts +1 -1
  490. package/dist/src/gateway/hono/lib/agent-model.js +1 -1
  491. package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
  492. package/dist/src/gateway/hono/lib/config-payload.d.ts +234 -127
  493. package/dist/src/gateway/hono/lib/config-payload.js +14 -38
  494. package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
  495. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  496. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  497. package/dist/src/gateway/hono/routes/agents.js +88 -33
  498. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  499. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  500. package/dist/src/gateway/hono/routes/browser.js +8 -15
  501. package/dist/src/gateway/hono/routes/browser.js.map +1 -1
  502. package/dist/src/gateway/hono/routes/capability-presets.d.ts +3 -0
  503. package/dist/src/gateway/hono/routes/capability-presets.js +145 -0
  504. package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -0
  505. package/dist/src/gateway/hono/routes/commands-skills.js +4 -5
  506. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  507. package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +1 -17
  508. package/dist/src/gateway/hono/routes/config-patch/agents.js +2 -443
  509. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
  510. package/dist/src/gateway/hono/routes/config-patch/misc.js +7 -1
  511. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
  512. package/dist/src/gateway/hono/routes/config.js +1 -1
  513. package/dist/src/gateway/hono/routes/config.js.map +1 -1
  514. package/dist/src/gateway/hono/routes/dreaming.js +8 -1
  515. package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
  516. package/dist/src/gateway/hono/routes/global-defaults.d.ts +3 -0
  517. package/dist/src/gateway/hono/routes/global-defaults.js +61 -0
  518. package/dist/src/gateway/hono/routes/global-defaults.js.map +1 -0
  519. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  520. package/dist/src/gateway/hono/routes/index.js +2 -0
  521. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  522. package/dist/src/gateway/hono/routes/lazy-bundles.js +17 -1
  523. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  524. package/dist/src/gateway/hono/routes/memory.d.ts +3 -0
  525. package/dist/src/gateway/hono/routes/memory.js +361 -0
  526. package/dist/src/gateway/hono/routes/memory.js.map +1 -0
  527. package/dist/src/gateway/hono/routes/models.js +2 -2
  528. package/dist/src/gateway/hono/routes/shares.js +1 -1
  529. package/dist/src/gateway/hono/routes/workflows.js +1 -1
  530. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  531. package/dist/src/gateway/lock.js +3 -3
  532. package/dist/src/gateway/ports.js +1 -1
  533. package/dist/src/gateway/service/config-coordinator.js +1 -1
  534. package/dist/src/gateway/service/marketplace-service.d.ts +4 -4
  535. package/dist/src/gateway/service/marketplace-service.js +13 -9
  536. package/dist/src/gateway/service/marketplace-service.js.map +1 -1
  537. package/dist/src/gateway/service.d.ts +1 -1
  538. package/dist/src/gateway/service.js +15 -16
  539. package/dist/src/gateway/service.js.map +1 -1
  540. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  541. package/dist/src/goals/goal-workflow-judge.js +2 -2
  542. package/dist/src/i18n/goals-bundle.js +1 -1
  543. package/dist/src/i18n/index.js +1 -1
  544. package/dist/src/i18n/share-tool-bundle.js +2 -2
  545. package/dist/src/infra/brew.js +1 -1
  546. package/dist/src/infra/package-json.js +1 -1
  547. package/dist/src/infra/package-update-steps.js +1 -1
  548. package/dist/src/infra/path-env.js +2 -2
  549. package/dist/src/infra/restart.js +1 -1
  550. package/dist/src/infra/stable-node-path.js +1 -1
  551. package/dist/src/infra/update-check.js +1 -1
  552. package/dist/src/infra/update-global.js +1 -1
  553. package/dist/src/infra/update-lock.js +2 -2
  554. package/dist/src/infra/update-restart.js +1 -1
  555. package/dist/src/infra/update-runner.js +1 -1
  556. package/dist/src/infra/update-startup.js +1 -1
  557. package/dist/src/infra/write-file-atomic.js +2 -2
  558. package/dist/src/media/store.js +1 -1
  559. package/dist/src/notes/agent-context.js +3 -3
  560. package/dist/src/notes/service.js +4 -2
  561. package/dist/src/notes/service.js.map +1 -1
  562. package/dist/src/notes/store.js +2 -2
  563. package/dist/src/project-trust/trust-store.js +2 -2
  564. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  565. package/dist/src/providers/index.d.ts +5 -6
  566. package/dist/src/providers/index.js +26 -30
  567. package/dist/src/providers/index.js.map +1 -1
  568. package/dist/src/providers/model-registry.js +4 -4
  569. package/dist/src/session/index.js +1 -1
  570. package/dist/src/session/init-session-turn.js +1 -1
  571. package/dist/src/session/resolve-session.js +1 -1
  572. package/dist/src/session/session-title.js +2 -2
  573. package/dist/src/session/store.js +1 -1
  574. package/dist/src/session/thinking-resolve.d.ts +1 -1
  575. package/dist/src/session/thinking-resolve.js +1 -1
  576. package/dist/src/session/thinking-resolve.js.map +1 -1
  577. package/dist/src/share/share-auto.js +2 -2
  578. package/dist/src/share/share-store.js +3 -3
  579. package/dist/src/share/share-thumbnail.js +2 -2
  580. package/dist/src/share/share-zip.js +1 -1
  581. package/dist/src/share/site-share-store.js +3 -3
  582. package/dist/src/share/site-static-serve.js +1 -1
  583. package/dist/src/storage/sqlite/connection.js +2 -2
  584. package/dist/src/storage/sqlite/index.d.ts +1 -0
  585. package/dist/src/storage/sqlite/index.js +2 -1
  586. package/dist/src/storage/sqlite/memory-index-repository.d.ts +1 -0
  587. package/dist/src/storage/sqlite/memory-index-repository.js +17 -16
  588. package/dist/src/storage/sqlite/memory-index-repository.js.map +1 -1
  589. package/dist/src/storage/sqlite/memory-records-repository.d.ts +144 -0
  590. package/dist/src/storage/sqlite/memory-records-repository.js +453 -0
  591. package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -0
  592. package/dist/src/storage/sqlite/migrations/012_memory_records.sql +63 -0
  593. package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +21 -0
  594. package/dist/src/storage/sqlite/migrations/014_memory_record_governance.sql +10 -0
  595. package/dist/src/storage/sqlite/migrations/015_memory_trace_feedback.sql +4 -0
  596. package/dist/src/storage/sqlite/migrations/discover.js +1 -1
  597. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  598. package/dist/src/storage/sqlite/migrations/runner.js +4 -4
  599. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  600. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  601. package/dist/src/storage/sqlite/schema.js +2 -2
  602. package/dist/src/storage/sqlite/schema.sql +86 -0
  603. package/dist/src/tui/backends/embedded-backend.d.ts +3 -0
  604. package/dist/src/tui/backends/embedded-backend.js +43 -24
  605. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  606. package/dist/src/tui/backends/gateway-sse-backend.d.ts +1 -0
  607. package/dist/src/tui/backends/gateway-sse-backend.js +16 -3
  608. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  609. package/dist/src/tui/clipboard-image.js +3 -3
  610. package/dist/src/tui/components/tui-header.d.ts +0 -1
  611. package/dist/src/tui/components/tui-header.js +3 -8
  612. package/dist/src/tui/components/tui-header.js.map +1 -1
  613. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  614. package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
  615. package/dist/src/tui/theme-manager.js +1 -1
  616. package/dist/src/tui/tui-command-formatters.js +4 -4
  617. package/dist/src/tui/tui-commands.js +2 -2
  618. package/dist/src/tui/tui-keybindings-file.js +1 -1
  619. package/dist/src/tui/tui-scoped-models.js +2 -2
  620. package/dist/src/tui/tui-settings.js +1 -1
  621. package/dist/src/tui/tui-startup-resources.js +2 -1
  622. package/dist/src/tui/tui-startup-resources.js.map +1 -1
  623. package/dist/src/tui/tui-startup-text.js +12 -12
  624. package/dist/src/tui/tui-startup-text.js.map +1 -1
  625. package/dist/src/tui/tui.js +10 -7
  626. package/dist/src/tui/tui.js.map +1 -1
  627. package/dist/src/tunnel/frpc-binary.js +4 -4
  628. package/dist/src/tunnel/frpc-config.js +1 -1
  629. package/dist/src/tunnel/frpc-extract.js +1 -1
  630. package/dist/src/tunnel/tunnel-state.js +1 -1
  631. package/dist/src/utils/logger/audit.js +1 -1
  632. package/dist/src/utils/logger/log-store.js +1 -1
  633. package/dist/src/utils/logger/rotation.js +1 -1
  634. package/dist/src/utils/logger/streams.js +1 -1
  635. package/dist/src/voice/tts/audio.js +1 -1
  636. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  637. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  638. package/dist/src/workflows/service/workflow-run-service.js +4 -5
  639. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  640. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  641. package/dist/src/workflows/store/event-store.js +1 -1
  642. package/dist/src/workflows/store/run-store.js +1 -1
  643. package/package.json +3 -2
  644. package/dist/gateway/static/root/assets/agent-browser-settings-page-D1SyFYeh.js +0 -6
  645. package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-C9YxgvuI.js +0 -1
  646. package/dist/gateway/static/root/assets/agents-CteVs3UO.js +0 -71
  647. package/dist/gateway/static/root/assets/apps-page-CVQ1M8Ax.js +0 -1
  648. package/dist/gateway/static/root/assets/channels-settings-Cd3JbeQ1.js +0 -1
  649. package/dist/gateway/static/root/assets/config-api-C4RAtTKW.js +0 -3
  650. package/dist/gateway/static/root/assets/connectors-page-MsMa5qBr.js +0 -2
  651. package/dist/gateway/static/root/assets/cron-api-sJNMqB6P.js +0 -1
  652. package/dist/gateway/static/root/assets/cron-page-D30CSwkn.js +0 -3
  653. package/dist/gateway/static/root/assets/dreaming-settings-6fCUWRQf.js +0 -1
  654. package/dist/gateway/static/root/assets/gateway-config-api-C6989a-W.js +0 -1
  655. package/dist/gateway/static/root/assets/gateway-settings-BpF26t91.js +0 -1
  656. package/dist/gateway/static/root/assets/goal-detail-page-DOjhmRyf.js +0 -1
  657. package/dist/gateway/static/root/assets/goals-page-Xl9_wrFc.js +0 -2
  658. package/dist/gateway/static/root/assets/heartbeat-settings-DN9vEj9P.js +0 -1
  659. package/dist/gateway/static/root/assets/index-C8ytlAF2.js +0 -122
  660. package/dist/gateway/static/root/assets/index-CVpJW2NS.css +0 -1
  661. package/dist/gateway/static/root/assets/messages-BqzIDrlr.js +0 -3
  662. package/dist/gateway/static/root/assets/models-hub-panel-BO4o-GmO.js +0 -2
  663. package/dist/gateway/static/root/assets/note-detail-page-DLV_XDmT.js +0 -2
  664. package/dist/gateway/static/root/assets/notes-page-ycsDlkFA.js +0 -1
  665. package/dist/gateway/static/root/assets/remote-access-hub-DQpnE8K9.js +0 -1
  666. package/dist/gateway/static/root/assets/sessions-page-BZui7iAY.js +0 -1
  667. package/dist/gateway/static/root/assets/settings-advanced-gate-DEfzZ1ax.js +0 -1
  668. package/dist/gateway/static/root/assets/settings-page-CLuSsu1-.js +0 -1
  669. package/dist/gateway/static/root/assets/setup-status-panel-Cq4qpXLi.js +0 -1
  670. package/dist/gateway/static/root/assets/shares-settings-B9F3HyYQ.js +0 -1
  671. package/dist/gateway/static/root/assets/skill-reload-api-Bp9UPPwm.js +0 -1
  672. package/dist/gateway/static/root/assets/skills-page-BIoBsfSV.js +0 -2
  673. package/dist/gateway/static/root/assets/use-agent-defaults-form-Cz2_pPzu.js +0 -1
  674. package/dist/gateway/static/root/assets/use-settings-tab-guard-nuHMmZQv.js +0 -1
  675. package/dist/gateway/static/root/assets/voice-api-key-field-BUIrKb8s.js +0 -1
  676. package/dist/gateway/static/root/assets/workflows-page-qE3SexnO.js +0 -18
  677. package/dist/src/agent/context/workspace-templates/USER.md +0 -24
@@ -0,0 +1,269 @@
1
+ import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ import { z } from "zod";
3
+ //#region src/agent-manifest/schema.ts
4
+ var IdSchema, DEFAULT_CAPABILITY_PRESET_ID, ManifestModelRoleSchema, ModelPolicySchema, ModelPolicyPatchSchema, ToolModeSchema, ToolScopeSchema, ToolPolicySchema, ToolPolicySetSchema, SkillPolicySchema, DreamingPhasePolicySchema, DreamingLightPolicySchema, DreamingDeepPolicySchema, DreamingRemPolicySchema, DreamingPolicySchema, MemoryPolicySchema, WorkflowPolicySchema, BoundaryPolicySchema, WorkspacePolicySchema, RuntimePolicySchema, PromptPolicySchema, AgentIdentitySchema, AgentResponsibilitiesSchema, AgentManifestSchema, AgentConfigEntrySchema, CapabilityPresetSchema;
5
+ var init_schema = __esmMin((() => {
6
+ IdSchema = z.string().regex(/^[a-z][a-z0-9_-]{0,63}$/);
7
+ DEFAULT_CAPABILITY_PRESET_ID = "default";
8
+ ManifestModelRoleSchema = z.object({
9
+ model: z.string().min(1),
10
+ description: z.string().max(500).optional()
11
+ }).strict().superRefine((entry, ctx) => {
12
+ const trimmed = entry.model.trim();
13
+ const idx = trimmed.indexOf("/");
14
+ if (idx <= 0 || idx === trimmed.length - 1) ctx.addIssue({
15
+ code: "custom",
16
+ message: `model must be provider/model format (got '${entry.model}')`,
17
+ path: ["model"]
18
+ });
19
+ });
20
+ ModelPolicySchema = z.object({
21
+ defaultRole: IdSchema,
22
+ roles: z.record(IdSchema, ManifestModelRoleSchema).default({}),
23
+ policy: z.object({
24
+ allowFallbacks: z.boolean().optional(),
25
+ maxCostTier: z.enum([
26
+ "low",
27
+ "medium",
28
+ "high"
29
+ ]).optional()
30
+ }).strict().optional()
31
+ }).strict();
32
+ ModelPolicyPatchSchema = z.object({
33
+ defaultRole: IdSchema.optional(),
34
+ roles: z.record(IdSchema, ManifestModelRoleSchema).optional(),
35
+ policy: z.object({
36
+ allowFallbacks: z.boolean().optional(),
37
+ maxCostTier: z.enum([
38
+ "low",
39
+ "medium",
40
+ "high"
41
+ ]).optional()
42
+ }).strict().optional()
43
+ }).strict();
44
+ ToolModeSchema = z.enum([
45
+ "allow",
46
+ "confirm",
47
+ "deny"
48
+ ]);
49
+ ToolScopeSchema = z.enum([
50
+ "readonly",
51
+ "workspace",
52
+ "unrestricted"
53
+ ]);
54
+ ToolPolicySchema = z.object({
55
+ mode: ToolModeSchema,
56
+ scope: ToolScopeSchema.optional(),
57
+ limits: z.object({
58
+ maxCallsPerTurn: z.number().int().positive().optional(),
59
+ timeoutMs: z.number().int().positive().optional()
60
+ }).strict().optional()
61
+ }).strict();
62
+ ToolPolicySetSchema = z.object({
63
+ builtin: z.record(z.string().min(1), ToolPolicySchema).default({}),
64
+ mcp: z.object({
65
+ servers: z.record(z.string().min(1), ToolPolicySchema).optional(),
66
+ tools: z.record(z.string().min(1), ToolPolicySchema).optional()
67
+ }).strict().optional()
68
+ }).strict().default({ builtin: {} });
69
+ SkillPolicySchema = z.object({
70
+ mode: z.enum([
71
+ "all",
72
+ "allowlist",
73
+ "denylist",
74
+ "off"
75
+ ]).default("all"),
76
+ allow: z.array(z.string().min(1)).optional(),
77
+ deny: z.array(z.string().min(1)).optional()
78
+ }).strict().default({ mode: "all" });
79
+ DreamingPhasePolicySchema = z.object({
80
+ enabled: z.boolean().optional(),
81
+ cron: z.string().min(1).optional()
82
+ }).strict();
83
+ DreamingLightPolicySchema = DreamingPhasePolicySchema.extend({
84
+ lookbackDays: z.number().int().positive().optional(),
85
+ limit: z.number().int().nonnegative().optional(),
86
+ dedupeSimilarity: z.number().min(0).max(1).optional()
87
+ }).strict();
88
+ DreamingDeepPolicySchema = DreamingPhasePolicySchema.extend({
89
+ minScore: z.number().min(0).max(1).optional(),
90
+ minRecallCount: z.number().int().positive().optional(),
91
+ minUniqueQueries: z.number().int().positive().optional(),
92
+ limit: z.number().int().nonnegative().optional(),
93
+ recencyHalfLifeDays: z.number().positive().optional(),
94
+ maxAgeDays: z.number().positive().optional()
95
+ }).strict();
96
+ DreamingRemPolicySchema = DreamingPhasePolicySchema.extend({
97
+ lookbackDays: z.number().int().positive().optional(),
98
+ limit: z.number().int().nonnegative().optional(),
99
+ minPatternStrength: z.number().min(0).max(1).optional()
100
+ }).strict();
101
+ DreamingPolicySchema = z.object({
102
+ enabled: z.boolean().default(false),
103
+ frequency: z.string().min(1).optional(),
104
+ timezone: z.string().optional(),
105
+ phases: z.object({
106
+ light: DreamingLightPolicySchema.optional(),
107
+ deep: DreamingDeepPolicySchema.optional(),
108
+ rem: DreamingRemPolicySchema.optional()
109
+ }).strict().optional()
110
+ }).strict().optional();
111
+ MemoryPolicySchema = z.object({
112
+ mode: z.enum([
113
+ "off",
114
+ "readOnly",
115
+ "confirmWrite",
116
+ "auto"
117
+ ]).default("off"),
118
+ sources: z.array(z.enum([
119
+ "session",
120
+ "userProfile",
121
+ "agentProfile",
122
+ "curated",
123
+ "workspace"
124
+ ])).default(["session"]),
125
+ writePolicy: z.object({
126
+ userProfile: z.enum([
127
+ "deny",
128
+ "confirm",
129
+ "allow"
130
+ ]).optional(),
131
+ agentProfile: z.enum([
132
+ "deny",
133
+ "confirm",
134
+ "allow"
135
+ ]).optional(),
136
+ curated: z.enum([
137
+ "deny",
138
+ "confirm",
139
+ "allow"
140
+ ]).optional(),
141
+ workspace: z.enum([
142
+ "deny",
143
+ "confirm",
144
+ "allow"
145
+ ]).optional()
146
+ }).strict().optional(),
147
+ retention: z.object({
148
+ compaction: z.boolean().default(true),
149
+ maxAgeDays: z.number().int().positive().optional(),
150
+ maxItems: z.number().int().positive().optional()
151
+ }).strict().optional(),
152
+ privacy: z.object({
153
+ crossAgentSharing: z.enum([
154
+ "deny",
155
+ "readOnly",
156
+ "allow"
157
+ ]).default("deny"),
158
+ sensitiveWritePolicy: z.enum([
159
+ "deny",
160
+ "confirm",
161
+ "allow"
162
+ ]).default("confirm")
163
+ }).strict().optional(),
164
+ providerRouting: z.object({
165
+ searchStrategy: z.enum([
166
+ "local-first",
167
+ "external-first",
168
+ "fanout",
169
+ "local-only",
170
+ "external-only"
171
+ ]).default("fanout"),
172
+ writeStrategy: z.enum([
173
+ "local-first",
174
+ "external-first",
175
+ "write-through",
176
+ "local-only",
177
+ "external-only"
178
+ ]).default("local-first"),
179
+ allowExternalWrites: z.boolean().default(false),
180
+ allowedProviderIds: z.array(z.string().min(1)).optional(),
181
+ autoWriteKinds: z.array(z.enum([
182
+ "user_profile",
183
+ "agent_note",
184
+ "workspace_fact",
185
+ "daily_note",
186
+ "session_summary",
187
+ "derived_insight"
188
+ ])).optional()
189
+ }).strict().optional(),
190
+ dreaming: DreamingPolicySchema
191
+ }).strict().default({
192
+ mode: "off",
193
+ sources: ["session"]
194
+ });
195
+ WorkflowPolicySchema = z.object({
196
+ default: z.string().min(1).optional(),
197
+ allowed: z.array(z.string().min(1)).optional(),
198
+ suggested: z.array(z.object({
199
+ intent: z.string().min(1),
200
+ workflow: z.string().min(1)
201
+ }).strict()).optional()
202
+ }).strict().default({});
203
+ BoundaryPolicySchema = z.object({
204
+ requiresConfirmation: z.array(z.string().min(1)).default([]),
205
+ forbidden: z.array(z.string().min(1)).default([]),
206
+ escalation: z.array(z.string().min(1)).default([])
207
+ }).strict().default({
208
+ requiresConfirmation: [],
209
+ forbidden: [],
210
+ escalation: []
211
+ });
212
+ WorkspacePolicySchema = z.object({ root: z.string().min(1) }).strict();
213
+ RuntimePolicySchema = z.object({
214
+ maxTurns: z.number().int().positive().optional(),
215
+ timeoutMs: z.number().int().positive().optional(),
216
+ maxToolFailuresPerTurn: z.number().int().positive().optional()
217
+ }).strict().optional();
218
+ PromptPolicySchema = z.object({ customInstructions: z.string().optional() }).strict().optional();
219
+ AgentIdentitySchema = z.object({
220
+ name: z.string().min(1),
221
+ description: z.string().optional(),
222
+ role: z.string().min(1),
223
+ language: z.string().min(1).default("en"),
224
+ tone: z.string().min(1).default("direct"),
225
+ avatar: z.string().optional()
226
+ }).strict();
227
+ AgentResponsibilitiesSchema = z.object({
228
+ primary: z.array(z.string().min(1)).min(1),
229
+ secondary: z.array(z.string().min(1)).optional(),
230
+ outOfScope: z.array(z.string().min(1)).optional()
231
+ }).strict();
232
+ AgentManifestSchema = z.object({
233
+ id: IdSchema,
234
+ enabled: z.boolean().default(true),
235
+ extends: z.array(IdSchema).optional(),
236
+ identity: AgentIdentitySchema,
237
+ responsibilities: AgentResponsibilitiesSchema,
238
+ workspace: WorkspacePolicySchema,
239
+ models: ModelPolicySchema,
240
+ tools: ToolPolicySetSchema,
241
+ skills: SkillPolicySchema,
242
+ memory: MemoryPolicySchema,
243
+ workflows: WorkflowPolicySchema,
244
+ boundaries: BoundaryPolicySchema,
245
+ runtime: RuntimePolicySchema,
246
+ prompt: PromptPolicySchema
247
+ }).strict();
248
+ AgentConfigEntrySchema = AgentManifestSchema.extend({ models: ModelPolicySchema.optional() }).strict();
249
+ CapabilityPresetSchema = z.object({
250
+ id: IdSchema,
251
+ name: z.string().min(1),
252
+ description: z.string().optional(),
253
+ version: z.number().int().positive().default(1),
254
+ extends: z.array(IdSchema).optional(),
255
+ models: ModelPolicyPatchSchema.optional(),
256
+ tools: ToolPolicySetSchema.optional(),
257
+ skills: SkillPolicySchema.optional(),
258
+ memory: MemoryPolicySchema.optional(),
259
+ workflows: WorkflowPolicySchema.optional(),
260
+ boundaries: BoundaryPolicySchema.optional(),
261
+ runtime: RuntimePolicySchema,
262
+ locks: z.array(z.string().min(1)).optional()
263
+ }).strict();
264
+ }));
265
+ //#endregion
266
+ init_schema();
267
+ export { AgentConfigEntrySchema, AgentIdentitySchema, AgentManifestSchema, AgentResponsibilitiesSchema, BoundaryPolicySchema, CapabilityPresetSchema, DEFAULT_CAPABILITY_PRESET_ID, DreamingDeepPolicySchema, DreamingLightPolicySchema, DreamingPhasePolicySchema, DreamingPolicySchema, DreamingRemPolicySchema, ManifestModelRoleSchema, MemoryPolicySchema, ModelPolicyPatchSchema, ModelPolicySchema, PromptPolicySchema, RuntimePolicySchema, SkillPolicySchema, ToolModeSchema, ToolPolicySchema, ToolPolicySetSchema, ToolScopeSchema, WorkflowPolicySchema, WorkspacePolicySchema, init_schema };
268
+
269
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../src/agent-manifest/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\nconst IdSchema = z.string().regex(/^[a-z][a-z0-9_-]{0,63}$/);\n\nexport const DEFAULT_CAPABILITY_PRESET_ID = 'default';\n\nexport const ManifestModelRoleSchema = z\n .object({\n model: z.string().min(1),\n description: z.string().max(500).optional(),\n })\n .strict()\n .superRefine((entry, ctx) => {\n const trimmed = entry.model.trim();\n const idx = trimmed.indexOf('/');\n if (idx <= 0 || idx === trimmed.length - 1) {\n ctx.addIssue({\n code: 'custom',\n message: `model must be provider/model format (got '${entry.model}')`,\n path: ['model'],\n });\n }\n });\n\nexport const ModelPolicySchema = z\n .object({\n defaultRole: IdSchema,\n roles: z.record(IdSchema, ManifestModelRoleSchema).default({}),\n policy: z\n .object({\n allowFallbacks: z.boolean().optional(),\n maxCostTier: z.enum(['low', 'medium', 'high']).optional(),\n })\n .strict()\n .optional(),\n })\n .strict();\n\nexport const ModelPolicyPatchSchema = z\n .object({\n defaultRole: IdSchema.optional(),\n roles: z.record(IdSchema, ManifestModelRoleSchema).optional(),\n policy: z\n .object({\n allowFallbacks: z.boolean().optional(),\n maxCostTier: z.enum(['low', 'medium', 'high']).optional(),\n })\n .strict()\n .optional(),\n })\n .strict();\n\nexport const ToolModeSchema = z.enum(['allow', 'confirm', 'deny']);\nexport const ToolScopeSchema = z.enum(['readonly', 'workspace', 'unrestricted']);\n\nexport const ToolPolicySchema = z\n .object({\n mode: ToolModeSchema,\n scope: ToolScopeSchema.optional(),\n limits: z\n .object({\n maxCallsPerTurn: z.number().int().positive().optional(),\n timeoutMs: z.number().int().positive().optional(),\n })\n .strict()\n .optional(),\n })\n .strict();\n\nexport const ToolPolicySetSchema = z\n .object({\n builtin: z.record(z.string().min(1), ToolPolicySchema).default({}),\n mcp: z\n .object({\n servers: z.record(z.string().min(1), ToolPolicySchema).optional(),\n tools: z.record(z.string().min(1), ToolPolicySchema).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .default({ builtin: {} });\n\nexport const SkillPolicySchema = z\n .object({\n mode: z.enum(['all', 'allowlist', 'denylist', 'off']).default('all'),\n allow: z.array(z.string().min(1)).optional(),\n deny: z.array(z.string().min(1)).optional(),\n })\n .strict()\n .default({ mode: 'all' });\n\nexport const DreamingPhasePolicySchema = z\n .object({\n enabled: z.boolean().optional(),\n cron: z.string().min(1).optional(),\n })\n .strict();\n\nexport const DreamingLightPolicySchema = DreamingPhasePolicySchema.extend({\n lookbackDays: z.number().int().positive().optional(),\n limit: z.number().int().nonnegative().optional(),\n dedupeSimilarity: z.number().min(0).max(1).optional(),\n}).strict();\n\nexport const DreamingDeepPolicySchema = DreamingPhasePolicySchema.extend({\n minScore: z.number().min(0).max(1).optional(),\n minRecallCount: z.number().int().positive().optional(),\n minUniqueQueries: z.number().int().positive().optional(),\n limit: z.number().int().nonnegative().optional(),\n recencyHalfLifeDays: z.number().positive().optional(),\n maxAgeDays: z.number().positive().optional(),\n}).strict();\n\nexport const DreamingRemPolicySchema = DreamingPhasePolicySchema.extend({\n lookbackDays: z.number().int().positive().optional(),\n limit: z.number().int().nonnegative().optional(),\n minPatternStrength: z.number().min(0).max(1).optional(),\n}).strict();\n\nexport const DreamingPolicySchema = z\n .object({\n enabled: z.boolean().default(false),\n frequency: z.string().min(1).optional(),\n timezone: z.string().optional(),\n phases: z\n .object({\n light: DreamingLightPolicySchema.optional(),\n deep: DreamingDeepPolicySchema.optional(),\n rem: DreamingRemPolicySchema.optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional();\n\nexport const MemoryPolicySchema = z\n .object({\n mode: z.enum(['off', 'readOnly', 'confirmWrite', 'auto']).default('off'),\n sources: z\n .array(z.enum(['session', 'userProfile', 'agentProfile', 'curated', 'workspace']))\n .default(['session']),\n writePolicy: z\n .object({\n userProfile: z.enum(['deny', 'confirm', 'allow']).optional(),\n agentProfile: z.enum(['deny', 'confirm', 'allow']).optional(),\n curated: z.enum(['deny', 'confirm', 'allow']).optional(),\n workspace: z.enum(['deny', 'confirm', 'allow']).optional(),\n })\n .strict()\n .optional(),\n retention: z\n .object({\n compaction: z.boolean().default(true),\n maxAgeDays: z.number().int().positive().optional(),\n maxItems: z.number().int().positive().optional(),\n })\n .strict()\n .optional(),\n privacy: z\n .object({\n crossAgentSharing: z.enum(['deny', 'readOnly', 'allow']).default('deny'),\n sensitiveWritePolicy: z.enum(['deny', 'confirm', 'allow']).default('confirm'),\n })\n .strict()\n .optional(),\n providerRouting: z\n .object({\n searchStrategy: z\n .enum(['local-first', 'external-first', 'fanout', 'local-only', 'external-only'])\n .default('fanout'),\n writeStrategy: z\n .enum(['local-first', 'external-first', 'write-through', 'local-only', 'external-only'])\n .default('local-first'),\n allowExternalWrites: z.boolean().default(false),\n allowedProviderIds: z.array(z.string().min(1)).optional(),\n autoWriteKinds: z\n .array(\n z.enum([\n 'user_profile',\n 'agent_note',\n 'workspace_fact',\n 'daily_note',\n 'session_summary',\n 'derived_insight',\n ]),\n )\n .optional(),\n })\n .strict()\n .optional(),\n dreaming: DreamingPolicySchema,\n })\n .strict()\n .default({ mode: 'off', sources: ['session'] });\n\nexport const WorkflowPolicySchema = z\n .object({\n default: z.string().min(1).optional(),\n allowed: z.array(z.string().min(1)).optional(),\n suggested: z\n .array(\n z\n .object({\n intent: z.string().min(1),\n workflow: z.string().min(1),\n })\n .strict(),\n )\n .optional(),\n })\n .strict()\n .default({});\n\nexport const BoundaryPolicySchema = z\n .object({\n requiresConfirmation: z.array(z.string().min(1)).default([]),\n forbidden: z.array(z.string().min(1)).default([]),\n escalation: z.array(z.string().min(1)).default([]),\n })\n .strict()\n .default({ requiresConfirmation: [], forbidden: [], escalation: [] });\n\nexport const WorkspacePolicySchema = z\n .object({\n root: z.string().min(1),\n })\n .strict();\n\nexport const RuntimePolicySchema = z\n .object({\n maxTurns: z.number().int().positive().optional(),\n timeoutMs: z.number().int().positive().optional(),\n maxToolFailuresPerTurn: z.number().int().positive().optional(),\n })\n .strict()\n .optional();\n\nexport const PromptPolicySchema = z\n .object({\n customInstructions: z.string().optional(),\n })\n .strict()\n .optional();\n\nexport const AgentIdentitySchema = z\n .object({\n name: z.string().min(1),\n description: z.string().optional(),\n role: z.string().min(1),\n language: z.string().min(1).default('en'),\n tone: z.string().min(1).default('direct'),\n avatar: z.string().optional(),\n })\n .strict();\n\nexport const AgentResponsibilitiesSchema = z\n .object({\n primary: z.array(z.string().min(1)).min(1),\n secondary: z.array(z.string().min(1)).optional(),\n outOfScope: z.array(z.string().min(1)).optional(),\n })\n .strict();\n\nexport const AgentManifestSchema = z\n .object({\n id: IdSchema,\n enabled: z.boolean().default(true),\n extends: z.array(IdSchema).optional(),\n identity: AgentIdentitySchema,\n responsibilities: AgentResponsibilitiesSchema,\n workspace: WorkspacePolicySchema,\n models: ModelPolicySchema,\n tools: ToolPolicySetSchema,\n skills: SkillPolicySchema,\n memory: MemoryPolicySchema,\n workflows: WorkflowPolicySchema,\n boundaries: BoundaryPolicySchema,\n runtime: RuntimePolicySchema,\n prompt: PromptPolicySchema,\n })\n .strict();\n\nexport const AgentConfigEntrySchema = AgentManifestSchema.extend({\n models: ModelPolicySchema.optional(),\n}).strict();\n\nexport const CapabilityPresetSchema = z\n .object({\n id: IdSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n version: z.number().int().positive().default(1),\n extends: z.array(IdSchema).optional(),\n models: ModelPolicyPatchSchema.optional(),\n tools: ToolPolicySetSchema.optional(),\n skills: SkillPolicySchema.optional(),\n memory: MemoryPolicySchema.optional(),\n workflows: WorkflowPolicySchema.optional(),\n boundaries: BoundaryPolicySchema.optional(),\n runtime: RuntimePolicySchema,\n locks: z.array(z.string().min(1)).optional(),\n })\n .strict();\n\nexport type AgentManifest = z.infer<typeof AgentManifestSchema>;\nexport type AgentConfigEntry = z.infer<typeof AgentConfigEntrySchema>;\nexport type CapabilityPreset = z.infer<typeof CapabilityPresetSchema>;\nexport type EffectiveAgentManifest = AgentManifest;\nexport type ToolPolicy = z.infer<typeof ToolPolicySchema>;\n"],"mappings":";;;;;AAEM,YAAW,EAAE,QAAQ,CAAC,MAAM,0BAA0B;AAE/C,gCAA+B;AAE/B,2BAA0B,EACpC,OAAO;EACN,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE;EACxB,aAAa,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU;EAC5C,CAAC,CACD,QAAQ,CACR,aAAa,OAAO,QAAQ;EAC3B,MAAM,UAAU,MAAM,MAAM,MAAM;EAClC,MAAM,MAAM,QAAQ,QAAQ,IAAI;AAChC,MAAI,OAAO,KAAK,QAAQ,QAAQ,SAAS,EACvC,KAAI,SAAS;GACX,MAAM;GACN,SAAS,6CAA6C,MAAM,MAAM;GAClE,MAAM,CAAC,QAAQ;GAChB,CAAC;GAEJ;AAES,qBAAoB,EAC9B,OAAO;EACN,aAAa;EACb,OAAO,EAAE,OAAO,UAAU,wBAAwB,CAAC,QAAQ,EAAE,CAAC;EAC9D,QAAQ,EACL,OAAO;GACN,gBAAgB,EAAE,SAAS,CAAC,UAAU;GACtC,aAAa,EAAE,KAAK;IAAC;IAAO;IAAU;IAAO,CAAC,CAAC,UAAU;GAC1D,CAAC,CACD,QAAQ,CACR,UAAU;EACd,CAAC,CACD,QAAQ;AAEE,0BAAyB,EACnC,OAAO;EACN,aAAa,SAAS,UAAU;EAChC,OAAO,EAAE,OAAO,UAAU,wBAAwB,CAAC,UAAU;EAC7D,QAAQ,EACL,OAAO;GACN,gBAAgB,EAAE,SAAS,CAAC,UAAU;GACtC,aAAa,EAAE,KAAK;IAAC;IAAO;IAAU;IAAO,CAAC,CAAC,UAAU;GAC1D,CAAC,CACD,QAAQ,CACR,UAAU;EACd,CAAC,CACD,QAAQ;AAEE,kBAAiB,EAAE,KAAK;EAAC;EAAS;EAAW;EAAO,CAAC;AACrD,mBAAkB,EAAE,KAAK;EAAC;EAAY;EAAa;EAAe,CAAC;AAEnE,oBAAmB,EAC7B,OAAO;EACN,MAAM;EACN,OAAO,gBAAgB,UAAU;EACjC,QAAQ,EACL,OAAO;GACN,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;GACvD,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;GAClD,CAAC,CACD,QAAQ,CACR,UAAU;EACd,CAAC,CACD,QAAQ;AAEE,uBAAsB,EAChC,OAAO;EACN,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC;EAClE,KAAK,EACF,OAAO;GACN,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,UAAU;GACjE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,UAAU;GAChE,CAAC,CACD,QAAQ,CACR,UAAU;EACd,CAAC,CACD,QAAQ,CACR,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC;AAEd,qBAAoB,EAC9B,OAAO;EACN,MAAM,EAAE,KAAK;GAAC;GAAO;GAAa;GAAY;GAAM,CAAC,CAAC,QAAQ,MAAM;EACpE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;EAC5C,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;EAC5C,CAAC,CACD,QAAQ,CACR,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEd,6BAA4B,EACtC,OAAO;EACN,SAAS,EAAE,SAAS,CAAC,UAAU;EAC/B,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;EACnC,CAAC,CACD,QAAQ;AAEE,6BAA4B,0BAA0B,OAAO;EACxE,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;EACpD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;EAChD,kBAAkB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;EACtD,CAAC,CAAC,QAAQ;AAEE,4BAA2B,0BAA0B,OAAO;EACvE,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;EAC7C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;EACtD,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;EACxD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;EAChD,qBAAqB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;EACrD,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;EAC7C,CAAC,CAAC,QAAQ;AAEE,2BAA0B,0BAA0B,OAAO;EACtE,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;EACpD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;EAChD,oBAAoB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU;EACxD,CAAC,CAAC,QAAQ;AAEE,wBAAuB,EACjC,OAAO;EACN,SAAS,EAAE,SAAS,CAAC,QAAQ,MAAM;EACnC,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;EACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;EAC/B,QAAQ,EACL,OAAO;GACN,OAAO,0BAA0B,UAAU;GAC3C,MAAM,yBAAyB,UAAU;GACzC,KAAK,wBAAwB,UAAU;GACxC,CAAC,CACD,QAAQ,CACR,UAAU;EACd,CAAC,CACD,QAAQ,CACR,UAAU;AAEA,sBAAqB,EAC/B,OAAO;EACN,MAAM,EAAE,KAAK;GAAC;GAAO;GAAY;GAAgB;GAAO,CAAC,CAAC,QAAQ,MAAM;EACxE,SAAS,EACN,MAAM,EAAE,KAAK;GAAC;GAAW;GAAe;GAAgB;GAAW;GAAY,CAAC,CAAC,CACjF,QAAQ,CAAC,UAAU,CAAC;EACvB,aAAa,EACV,OAAO;GACN,aAAa,EAAE,KAAK;IAAC;IAAQ;IAAW;IAAQ,CAAC,CAAC,UAAU;GAC5D,cAAc,EAAE,KAAK;IAAC;IAAQ;IAAW;IAAQ,CAAC,CAAC,UAAU;GAC7D,SAAS,EAAE,KAAK;IAAC;IAAQ;IAAW;IAAQ,CAAC,CAAC,UAAU;GACxD,WAAW,EAAE,KAAK;IAAC;IAAQ;IAAW;IAAQ,CAAC,CAAC,UAAU;GAC3D,CAAC,CACD,QAAQ,CACR,UAAU;EACb,WAAW,EACR,OAAO;GACN,YAAY,EAAE,SAAS,CAAC,QAAQ,KAAK;GACrC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;GAClD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;GACjD,CAAC,CACD,QAAQ,CACR,UAAU;EACb,SAAS,EACN,OAAO;GACN,mBAAmB,EAAE,KAAK;IAAC;IAAQ;IAAY;IAAQ,CAAC,CAAC,QAAQ,OAAO;GACxE,sBAAsB,EAAE,KAAK;IAAC;IAAQ;IAAW;IAAQ,CAAC,CAAC,QAAQ,UAAU;GAC9E,CAAC,CACD,QAAQ,CACR,UAAU;EACb,iBAAiB,EACd,OAAO;GACN,gBAAgB,EACb,KAAK;IAAC;IAAe;IAAkB;IAAU;IAAc;IAAgB,CAAC,CAChF,QAAQ,SAAS;GACpB,eAAe,EACZ,KAAK;IAAC;IAAe;IAAkB;IAAiB;IAAc;IAAgB,CAAC,CACvF,QAAQ,cAAc;GACzB,qBAAqB,EAAE,SAAS,CAAC,QAAQ,MAAM;GAC/C,oBAAoB,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;GACzD,gBAAgB,EACb,MACC,EAAE,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACD,CAAC,CACH,CACA,UAAU;GACd,CAAC,CACD,QAAQ,CACR,UAAU;EACb,UAAU;EACX,CAAC,CACD,QAAQ,CACR,QAAQ;EAAE,MAAM;EAAO,SAAS,CAAC,UAAU;EAAE,CAAC;AAEpC,wBAAuB,EACjC,OAAO;EACN,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;EACrC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;EAC9C,WAAW,EACR,MACC,EACG,OAAO;GACN,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;GACzB,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE;GAC5B,CAAC,CACD,QAAQ,CACZ,CACA,UAAU;EACd,CAAC,CACD,QAAQ,CACR,QAAQ,EAAE,CAAC;AAED,wBAAuB,EACjC,OAAO;EACN,sBAAsB,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;EAC5D,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;EACjD,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;EACnD,CAAC,CACD,QAAQ,CACR,QAAQ;EAAE,sBAAsB,EAAE;EAAE,WAAW,EAAE;EAAE,YAAY,EAAE;EAAE,CAAC;AAE1D,yBAAwB,EAClC,OAAO,EACN,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,EACxB,CAAC,CACD,QAAQ;AAEE,uBAAsB,EAChC,OAAO;EACN,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;EAChD,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;EACjD,wBAAwB,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU;EAC/D,CAAC,CACD,QAAQ,CACR,UAAU;AAEA,sBAAqB,EAC/B,OAAO,EACN,oBAAoB,EAAE,QAAQ,CAAC,UAAU,EAC1C,CAAC,CACD,QAAQ,CACR,UAAU;AAEA,uBAAsB,EAChC,OAAO;EACN,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;EACvB,aAAa,EAAE,QAAQ,CAAC,UAAU;EAClC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;EACvB,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,KAAK;EACzC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,SAAS;EACzC,QAAQ,EAAE,QAAQ,CAAC,UAAU;EAC9B,CAAC,CACD,QAAQ;AAEE,+BAA8B,EACxC,OAAO;EACN,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;EAC1C,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;EAChD,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;EAClD,CAAC,CACD,QAAQ;AAEE,uBAAsB,EAChC,OAAO;EACN,IAAI;EACJ,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;EAClC,SAAS,EAAE,MAAM,SAAS,CAAC,UAAU;EACrC,UAAU;EACV,kBAAkB;EAClB,WAAW;EACX,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,WAAW;EACX,YAAY;EACZ,SAAS;EACT,QAAQ;EACT,CAAC,CACD,QAAQ;AAEE,0BAAyB,oBAAoB,OAAO,EAC/D,QAAQ,kBAAkB,UAAU,EACrC,CAAC,CAAC,QAAQ;AAEE,0BAAyB,EACnC,OAAO;EACN,IAAI;EACJ,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;EACvB,aAAa,EAAE,QAAQ,CAAC,UAAU;EAClC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;EAC/C,SAAS,EAAE,MAAM,SAAS,CAAC,UAAU;EACrC,QAAQ,uBAAuB,UAAU;EACzC,OAAO,oBAAoB,UAAU;EACrC,QAAQ,kBAAkB,UAAU;EACpC,QAAQ,mBAAmB,UAAU;EACrC,WAAW,qBAAqB,UAAU;EAC1C,YAAY,qBAAqB,UAAU;EAC3C,SAAS;EACT,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;EAC7C,CAAC,CACD,QAAQ"}
@@ -0,0 +1,25 @@
1
+ import type { AgentConfigEntry, CapabilityPreset, EffectiveAgentManifest } from './schema.js';
2
+ export type ManifestIssueSeverity = 'error' | 'warning';
3
+ export interface ManifestIssue {
4
+ severity: ManifestIssueSeverity;
5
+ path: string;
6
+ message: string;
7
+ }
8
+ export interface ManifestCatalogs {
9
+ tools?: Iterable<string>;
10
+ skills?: Iterable<string>;
11
+ workflows?: Iterable<string>;
12
+ mcpServers?: Iterable<string>;
13
+ }
14
+ export interface ValidateManifestParams {
15
+ agent: AgentConfigEntry;
16
+ presets?: Record<string, CapabilityPreset>;
17
+ defaultPresetId?: string;
18
+ catalogs?: ManifestCatalogs;
19
+ }
20
+ export interface ValidateManifestResult {
21
+ ok: boolean;
22
+ manifest?: EffectiveAgentManifest;
23
+ issues: ManifestIssue[];
24
+ }
25
+ export declare function validateAgentManifest(params: ValidateManifestParams): ValidateManifestResult;
@@ -0,0 +1,88 @@
1
+ import { resolveEffectiveAgentManifest } from "./resolver.js";
2
+ //#region src/agent-manifest/validator.ts
3
+ function toSet(values) {
4
+ if (!values) return void 0;
5
+ return new Set([...values].map((value) => value.toLowerCase()));
6
+ }
7
+ function hasValue(set, value) {
8
+ return set === void 0 || set.has(value.toLowerCase());
9
+ }
10
+ function addIssue(issues, severity, path, message) {
11
+ issues.push({
12
+ severity,
13
+ path,
14
+ message
15
+ });
16
+ }
17
+ function validateModels(manifest, issues) {
18
+ if (!manifest.models.roles[manifest.models.defaultRole]) addIssue(issues, "error", "models.defaultRole", `defaultRole "${manifest.models.defaultRole}" does not exist in models.roles`);
19
+ }
20
+ function validateTools(manifest, issues, catalogs) {
21
+ const tools = toSet(catalogs.tools);
22
+ for (const [name, policy] of Object.entries(manifest.tools.builtin)) {
23
+ if (!hasValue(tools, name)) addIssue(issues, "error", `tools.builtin.${name}`, `tool "${name}" is not in the tool catalog`);
24
+ if (policy.mode === "allow" && policy.scope === "unrestricted") addIssue(issues, "warning", `tools.builtin.${name}.scope`, `tool "${name}" is unrestricted; consider using confirm or a narrower scope`);
25
+ }
26
+ const mcpServers = toSet(catalogs.mcpServers);
27
+ for (const serverName of Object.keys(manifest.tools.mcp?.servers ?? {})) if (!hasValue(mcpServers, serverName)) addIssue(issues, "error", `tools.mcp.servers.${serverName}`, `MCP server "${serverName}" is not configured`);
28
+ }
29
+ function validateSkills(manifest, issues, catalogs) {
30
+ const skills = toSet(catalogs.skills);
31
+ for (const name of manifest.skills.allow ?? []) if (!hasValue(skills, name)) addIssue(issues, "error", `skills.allow`, `skill "${name}" is not installed`);
32
+ for (const name of manifest.skills.deny ?? []) if (!hasValue(skills, name)) addIssue(issues, "warning", `skills.deny`, `skill "${name}" is not installed`);
33
+ if (manifest.skills.mode === "allowlist" && (manifest.skills.allow?.length ?? 0) === 0) addIssue(issues, "warning", "skills.allow", "allowlist mode has no allowed skills");
34
+ }
35
+ function validateMemory(manifest, issues) {
36
+ if (manifest.memory.mode === "off" && manifest.memory.sources.some((source) => source !== "session")) addIssue(issues, "warning", "memory.sources", "memory sources are configured while memory mode is off");
37
+ if (manifest.memory.mode === "auto") {
38
+ const privacy = manifest.memory.privacy;
39
+ if (!privacy || privacy.sensitiveWritePolicy === "allow") addIssue(issues, "warning", "memory.privacy", "auto memory writes should configure sensitiveWritePolicy");
40
+ }
41
+ if (manifest.memory.mode !== "off") {
42
+ const policy = manifest.memory.writePolicy ?? {};
43
+ if (!Object.values(policy).some(Boolean) && manifest.memory.mode !== "readOnly") addIssue(issues, "warning", "memory.writePolicy", "write-capable memory mode has no write policy");
44
+ }
45
+ }
46
+ function validateWorkflows(manifest, issues, catalogs) {
47
+ const workflows = toSet(catalogs.workflows);
48
+ const check = (path, value) => {
49
+ if (value && !hasValue(workflows, value)) addIssue(issues, "error", path, `workflow "${value}" is not in the workflow catalog`);
50
+ };
51
+ check("workflows.default", manifest.workflows.default);
52
+ for (const [index, value] of (manifest.workflows.allowed ?? []).entries()) check(`workflows.allowed.${index}`, value);
53
+ for (const [index, entry] of (manifest.workflows.suggested ?? []).entries()) check(`workflows.suggested.${index}.workflow`, entry.workflow);
54
+ }
55
+ function validateAgentManifest(params) {
56
+ const issues = [];
57
+ let manifest;
58
+ try {
59
+ manifest = resolveEffectiveAgentManifest({
60
+ agent: params.agent,
61
+ presets: params.presets,
62
+ defaultPresetId: params.defaultPresetId
63
+ }).manifest;
64
+ } catch (error) {
65
+ return {
66
+ ok: false,
67
+ issues: [{
68
+ severity: "error",
69
+ path: "manifest",
70
+ message: error instanceof Error ? error.message : String(error)
71
+ }]
72
+ };
73
+ }
74
+ validateModels(manifest, issues);
75
+ validateTools(manifest, issues, params.catalogs ?? {});
76
+ validateSkills(manifest, issues, params.catalogs ?? {});
77
+ validateMemory(manifest, issues);
78
+ validateWorkflows(manifest, issues, params.catalogs ?? {});
79
+ return {
80
+ ok: issues.every((issue) => issue.severity !== "error"),
81
+ manifest,
82
+ issues
83
+ };
84
+ }
85
+ //#endregion
86
+ export { validateAgentManifest };
87
+
88
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","names":[],"sources":["../../../src/agent-manifest/validator.ts"],"sourcesContent":["import type { AgentConfigEntry, CapabilityPreset, EffectiveAgentManifest } from './schema.js';\nimport { resolveEffectiveAgentManifest } from './resolver.js';\n\nexport type ManifestIssueSeverity = 'error' | 'warning';\n\nexport interface ManifestIssue {\n severity: ManifestIssueSeverity;\n path: string;\n message: string;\n}\n\nexport interface ManifestCatalogs {\n tools?: Iterable<string>;\n skills?: Iterable<string>;\n workflows?: Iterable<string>;\n mcpServers?: Iterable<string>;\n}\n\nexport interface ValidateManifestParams {\n agent: AgentConfigEntry;\n presets?: Record<string, CapabilityPreset>;\n defaultPresetId?: string;\n catalogs?: ManifestCatalogs;\n}\n\nexport interface ValidateManifestResult {\n ok: boolean;\n manifest?: EffectiveAgentManifest;\n issues: ManifestIssue[];\n}\n\nfunction toSet(values: Iterable<string> | undefined): Set<string> | undefined {\n if (!values) return undefined;\n return new Set([...values].map((value) => value.toLowerCase()));\n}\n\nfunction hasValue(set: Set<string> | undefined, value: string): boolean {\n return set === undefined || set.has(value.toLowerCase());\n}\n\nfunction addIssue(issues: ManifestIssue[], severity: ManifestIssueSeverity, path: string, message: string): void {\n issues.push({ severity, path, message });\n}\n\nfunction validateModels(manifest: EffectiveAgentManifest, issues: ManifestIssue[]): void {\n if (!manifest.models.roles[manifest.models.defaultRole]) {\n addIssue(\n issues,\n 'error',\n 'models.defaultRole',\n `defaultRole \"${manifest.models.defaultRole}\" does not exist in models.roles`,\n );\n }\n}\n\nfunction validateTools(manifest: EffectiveAgentManifest, issues: ManifestIssue[], catalogs: ManifestCatalogs): void {\n const tools = toSet(catalogs.tools);\n for (const [name, policy] of Object.entries(manifest.tools.builtin)) {\n if (!hasValue(tools, name)) {\n addIssue(issues, 'error', `tools.builtin.${name}`, `tool \"${name}\" is not in the tool catalog`);\n }\n if (policy.mode === 'allow' && policy.scope === 'unrestricted') {\n addIssue(\n issues,\n 'warning',\n `tools.builtin.${name}.scope`,\n `tool \"${name}\" is unrestricted; consider using confirm or a narrower scope`,\n );\n }\n }\n\n const mcpServers = toSet(catalogs.mcpServers);\n for (const serverName of Object.keys(manifest.tools.mcp?.servers ?? {})) {\n if (!hasValue(mcpServers, serverName)) {\n addIssue(issues, 'error', `tools.mcp.servers.${serverName}`, `MCP server \"${serverName}\" is not configured`);\n }\n }\n}\n\nfunction validateSkills(manifest: EffectiveAgentManifest, issues: ManifestIssue[], catalogs: ManifestCatalogs): void {\n const skills = toSet(catalogs.skills);\n for (const name of manifest.skills.allow ?? []) {\n if (!hasValue(skills, name)) {\n addIssue(issues, 'error', `skills.allow`, `skill \"${name}\" is not installed`);\n }\n }\n for (const name of manifest.skills.deny ?? []) {\n if (!hasValue(skills, name)) {\n addIssue(issues, 'warning', `skills.deny`, `skill \"${name}\" is not installed`);\n }\n }\n if (manifest.skills.mode === 'allowlist' && (manifest.skills.allow?.length ?? 0) === 0) {\n addIssue(issues, 'warning', 'skills.allow', 'allowlist mode has no allowed skills');\n }\n}\n\nfunction validateMemory(manifest: EffectiveAgentManifest, issues: ManifestIssue[]): void {\n if (manifest.memory.mode === 'off' && manifest.memory.sources.some((source) => source !== 'session')) {\n addIssue(issues, 'warning', 'memory.sources', 'memory sources are configured while memory mode is off');\n }\n if (manifest.memory.mode === 'auto') {\n const privacy = manifest.memory.privacy;\n if (!privacy || privacy.sensitiveWritePolicy === 'allow') {\n addIssue(issues, 'warning', 'memory.privacy', 'auto memory writes should configure sensitiveWritePolicy');\n }\n }\n if (manifest.memory.mode !== 'off') {\n const policy = manifest.memory.writePolicy ?? {};\n const hasWritePolicy = Object.values(policy).some(Boolean);\n if (!hasWritePolicy && manifest.memory.mode !== 'readOnly') {\n addIssue(issues, 'warning', 'memory.writePolicy', 'write-capable memory mode has no write policy');\n }\n }\n}\n\nfunction validateWorkflows(manifest: EffectiveAgentManifest, issues: ManifestIssue[], catalogs: ManifestCatalogs): void {\n const workflows = toSet(catalogs.workflows);\n const check = (path: string, value: string | undefined) => {\n if (value && !hasValue(workflows, value)) {\n addIssue(issues, 'error', path, `workflow \"${value}\" is not in the workflow catalog`);\n }\n };\n check('workflows.default', manifest.workflows.default);\n for (const [index, value] of (manifest.workflows.allowed ?? []).entries()) {\n check(`workflows.allowed.${index}`, value);\n }\n for (const [index, entry] of (manifest.workflows.suggested ?? []).entries()) {\n check(`workflows.suggested.${index}.workflow`, entry.workflow);\n }\n}\n\nexport function validateAgentManifest(params: ValidateManifestParams): ValidateManifestResult {\n const issues: ManifestIssue[] = [];\n let manifest: EffectiveAgentManifest;\n try {\n manifest = resolveEffectiveAgentManifest({\n agent: params.agent,\n presets: params.presets,\n defaultPresetId: params.defaultPresetId,\n }).manifest;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n ok: false,\n issues: [{ severity: 'error', path: 'manifest', message }],\n };\n }\n\n validateModels(manifest, issues);\n validateTools(manifest, issues, params.catalogs ?? {});\n validateSkills(manifest, issues, params.catalogs ?? {});\n validateMemory(manifest, issues);\n validateWorkflows(manifest, issues, params.catalogs ?? {});\n\n return {\n ok: issues.every((issue) => issue.severity !== 'error'),\n manifest,\n issues,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
2
+ export type BoundaryDecision = 'allow' | 'confirm' | 'deny' | 'escalate';
3
+ export interface BoundaryCheckParams {
4
+ manifest: EffectiveAgentManifest;
5
+ action: string;
6
+ detail?: string;
7
+ }
8
+ export interface BoundaryCheckResult {
9
+ decision: BoundaryDecision;
10
+ matchedRule?: string;
11
+ }
12
+ export declare function checkBoundary(params: BoundaryCheckParams): BoundaryCheckResult;
@@ -0,0 +1,23 @@
1
+ //#region src/agent-runtime/boundary-guard.ts
2
+ function matchesRule(action, detail, rule) {
3
+ return `${action}\n${detail ?? ""}`.toLowerCase().includes(rule.toLowerCase());
4
+ }
5
+ function checkBoundary(params) {
6
+ for (const rule of params.manifest.boundaries.forbidden) if (matchesRule(params.action, params.detail, rule)) return {
7
+ decision: "deny",
8
+ matchedRule: rule
9
+ };
10
+ for (const rule of params.manifest.boundaries.escalation) if (matchesRule(params.action, params.detail, rule)) return {
11
+ decision: "escalate",
12
+ matchedRule: rule
13
+ };
14
+ for (const rule of params.manifest.boundaries.requiresConfirmation) if (matchesRule(params.action, params.detail, rule)) return {
15
+ decision: "confirm",
16
+ matchedRule: rule
17
+ };
18
+ return { decision: "allow" };
19
+ }
20
+ //#endregion
21
+ export { checkBoundary };
22
+
23
+ //# sourceMappingURL=boundary-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundary-guard.js","names":[],"sources":["../../../src/agent-runtime/boundary-guard.ts"],"sourcesContent":["import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';\n\nexport type BoundaryDecision = 'allow' | 'confirm' | 'deny' | 'escalate';\n\nexport interface BoundaryCheckParams {\n manifest: EffectiveAgentManifest;\n action: string;\n detail?: string;\n}\n\nexport interface BoundaryCheckResult {\n decision: BoundaryDecision;\n matchedRule?: string;\n}\n\nfunction matchesRule(action: string, detail: string | undefined, rule: string): boolean {\n const haystack = `${action}\\n${detail ?? ''}`.toLowerCase();\n return haystack.includes(rule.toLowerCase());\n}\n\nexport function checkBoundary(params: BoundaryCheckParams): BoundaryCheckResult {\n for (const rule of params.manifest.boundaries.forbidden) {\n if (matchesRule(params.action, params.detail, rule)) {\n return { decision: 'deny', matchedRule: rule };\n }\n }\n for (const rule of params.manifest.boundaries.escalation) {\n if (matchesRule(params.action, params.detail, rule)) {\n return { decision: 'escalate', matchedRule: rule };\n }\n }\n for (const rule of params.manifest.boundaries.requiresConfirmation) {\n if (matchesRule(params.action, params.detail, rule)) {\n return { decision: 'confirm', matchedRule: rule };\n }\n }\n return { decision: 'allow' };\n}\n"],"mappings":";AAeA,SAAS,YAAY,QAAgB,QAA4B,MAAuB;AAEtF,QADiB,GAAG,OAAO,IAAI,UAAU,KAAK,aAC/B,CAAC,SAAS,KAAK,aAAa,CAAC;;AAG9C,SAAgB,cAAc,QAAkD;AAC9E,MAAK,MAAM,QAAQ,OAAO,SAAS,WAAW,UAC5C,KAAI,YAAY,OAAO,QAAQ,OAAO,QAAQ,KAAK,CACjD,QAAO;EAAE,UAAU;EAAQ,aAAa;EAAM;AAGlD,MAAK,MAAM,QAAQ,OAAO,SAAS,WAAW,WAC5C,KAAI,YAAY,OAAO,QAAQ,OAAO,QAAQ,KAAK,CACjD,QAAO;EAAE,UAAU;EAAY,aAAa;EAAM;AAGtD,MAAK,MAAM,QAAQ,OAAO,SAAS,WAAW,qBAC5C,KAAI,YAAY,OAAO,QAAQ,OAAO,QAAQ,KAAK,CACjD,QAAO;EAAE,UAAU;EAAW,aAAa;EAAM;AAGrD,QAAO,EAAE,UAAU,SAAS"}
@@ -0,0 +1,7 @@
1
+ export * from './model-router.js';
2
+ export * from './tool-registry.js';
3
+ export * from './boundary-guard.js';
4
+ export * from './memory-runtime.js';
5
+ export * from './runtime-profile.js';
6
+ export * from './run-trace.js';
7
+ export * from './workflow-runtime.js';
@@ -0,0 +1,8 @@
1
+ import { checkBoundary } from "./boundary-guard.js";
2
+ import { resolveModelRole } from "./model-router.js";
3
+ import { buildRuntimeToolRegistry } from "./tool-registry.js";
4
+ import { buildMemoryRuntime } from "./memory-runtime.js";
5
+ import { resolveWorkflow, validateWorkflowForRuntime } from "./workflow-runtime.js";
6
+ import { buildAgentRuntimeProfile } from "./runtime-profile.js";
7
+ import { appendAgentRunEvent, createAgentRunTrace, finishAgentRunTrace, hashEffectiveManifest } from "./run-trace.js";
8
+ export { appendAgentRunEvent, buildAgentRuntimeProfile, buildMemoryRuntime, buildRuntimeToolRegistry, checkBoundary, createAgentRunTrace, finishAgentRunTrace, hashEffectiveManifest, resolveModelRole, resolveWorkflow, validateWorkflowForRuntime };
@@ -0,0 +1,21 @@
1
+ import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
2
+ export type MemorySource = 'session' | 'userProfile' | 'agentProfile' | 'curated' | 'workspace';
3
+ export type MemoryWriteTarget = 'userProfile' | 'agentProfile' | 'curated' | 'workspace';
4
+ export type MemoryWriteDecision = 'allow' | 'confirm' | 'deny';
5
+ export interface MemoryCandidate {
6
+ target: MemoryWriteTarget;
7
+ content: string;
8
+ source: string;
9
+ confidence?: number;
10
+ sensitive?: boolean;
11
+ }
12
+ export interface MemoryWriteCheckResult {
13
+ decision: MemoryWriteDecision;
14
+ reason: string;
15
+ }
16
+ export interface MemoryRuntime {
17
+ readableSources: MemorySource[];
18
+ canRead: (source: MemorySource) => boolean;
19
+ checkWrite: (candidate: MemoryCandidate) => MemoryWriteCheckResult;
20
+ }
21
+ export declare function buildMemoryRuntime(manifest: EffectiveAgentManifest): MemoryRuntime;
@@ -0,0 +1,50 @@
1
+ //#region src/agent-runtime/memory-runtime.ts
2
+ const READ_ONLY_MODES = new Set(["readOnly"]);
3
+ function normalizeConfidence(value) {
4
+ if (typeof value !== "number" || !Number.isFinite(value)) return .5;
5
+ return Math.max(0, Math.min(1, value));
6
+ }
7
+ function buildMemoryRuntime(manifest) {
8
+ const readableSources = manifest.memory.mode === "off" ? [] : [...manifest.memory.sources];
9
+ const sourceSet = new Set(readableSources);
10
+ return {
11
+ readableSources,
12
+ canRead: (source) => sourceSet.has(source),
13
+ checkWrite: (candidate) => {
14
+ if (manifest.memory.mode === "off") return {
15
+ decision: "deny",
16
+ reason: "memory is disabled"
17
+ };
18
+ if (READ_ONLY_MODES.has(manifest.memory.mode)) return {
19
+ decision: "deny",
20
+ reason: "memory is read-only"
21
+ };
22
+ if (!candidate.content.trim()) return {
23
+ decision: "deny",
24
+ reason: "memory content is empty"
25
+ };
26
+ if (normalizeConfidence(candidate.confidence) < .3) return {
27
+ decision: "deny",
28
+ reason: "memory confidence is too low"
29
+ };
30
+ const sensitivePolicy = manifest.memory.privacy?.sensitiveWritePolicy ?? "confirm";
31
+ if (candidate.sensitive && sensitivePolicy !== "allow") return {
32
+ decision: sensitivePolicy,
33
+ reason: "memory candidate is sensitive"
34
+ };
35
+ const targetPolicy = manifest.memory.writePolicy?.[candidate.target] ?? "deny";
36
+ if (manifest.memory.mode === "confirmWrite" && targetPolicy === "allow") return {
37
+ decision: "confirm",
38
+ reason: "agent memory mode requires confirmation"
39
+ };
40
+ return {
41
+ decision: targetPolicy,
42
+ reason: `target policy is ${targetPolicy}`
43
+ };
44
+ }
45
+ };
46
+ }
47
+ //#endregion
48
+ export { buildMemoryRuntime };
49
+
50
+ //# sourceMappingURL=memory-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-runtime.js","names":[],"sources":["../../../src/agent-runtime/memory-runtime.ts"],"sourcesContent":["import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';\n\nexport type MemorySource = 'session' | 'userProfile' | 'agentProfile' | 'curated' | 'workspace';\nexport type MemoryWriteTarget = 'userProfile' | 'agentProfile' | 'curated' | 'workspace';\nexport type MemoryWriteDecision = 'allow' | 'confirm' | 'deny';\n\nexport interface MemoryCandidate {\n target: MemoryWriteTarget;\n content: string;\n source: string;\n confidence?: number;\n sensitive?: boolean;\n}\n\nexport interface MemoryWriteCheckResult {\n decision: MemoryWriteDecision;\n reason: string;\n}\n\nexport interface MemoryRuntime {\n readableSources: MemorySource[];\n canRead: (source: MemorySource) => boolean;\n checkWrite: (candidate: MemoryCandidate) => MemoryWriteCheckResult;\n}\n\nconst READ_ONLY_MODES = new Set(['readOnly']);\n\nfunction normalizeConfidence(value: number | undefined): number {\n if (typeof value !== 'number' || !Number.isFinite(value)) return 0.5;\n return Math.max(0, Math.min(1, value));\n}\n\nexport function buildMemoryRuntime(manifest: EffectiveAgentManifest): MemoryRuntime {\n const readableSources = manifest.memory.mode === 'off' ? [] : [...manifest.memory.sources];\n const sourceSet = new Set<MemorySource>(readableSources);\n\n return {\n readableSources,\n canRead: (source) => sourceSet.has(source),\n checkWrite: (candidate) => {\n if (manifest.memory.mode === 'off') {\n return { decision: 'deny', reason: 'memory is disabled' };\n }\n if (READ_ONLY_MODES.has(manifest.memory.mode)) {\n return { decision: 'deny', reason: 'memory is read-only' };\n }\n if (!candidate.content.trim()) {\n return { decision: 'deny', reason: 'memory content is empty' };\n }\n const confidence = normalizeConfidence(candidate.confidence);\n if (confidence < 0.3) {\n return { decision: 'deny', reason: 'memory confidence is too low' };\n }\n const sensitivePolicy = manifest.memory.privacy?.sensitiveWritePolicy ?? 'confirm';\n if (candidate.sensitive && sensitivePolicy !== 'allow') {\n return {\n decision: sensitivePolicy,\n reason: 'memory candidate is sensitive',\n };\n }\n const targetPolicy = manifest.memory.writePolicy?.[candidate.target] ?? 'deny';\n if (manifest.memory.mode === 'confirmWrite' && targetPolicy === 'allow') {\n return { decision: 'confirm', reason: 'agent memory mode requires confirmation' };\n }\n return {\n decision: targetPolicy,\n reason: `target policy is ${targetPolicy}`,\n };\n },\n };\n}\n"],"mappings":";AAyBA,MAAM,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC;AAE7C,SAAS,oBAAoB,OAAmC;AAC9D,KAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,MAAM,CAAE,QAAO;AACjE,QAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,MAAM,CAAC;;AAGxC,SAAgB,mBAAmB,UAAiD;CAClF,MAAM,kBAAkB,SAAS,OAAO,SAAS,QAAQ,EAAE,GAAG,CAAC,GAAG,SAAS,OAAO,QAAQ;CAC1F,MAAM,YAAY,IAAI,IAAkB,gBAAgB;AAExD,QAAO;EACL;EACA,UAAU,WAAW,UAAU,IAAI,OAAO;EAC1C,aAAa,cAAc;AACzB,OAAI,SAAS,OAAO,SAAS,MAC3B,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAAsB;AAE3D,OAAI,gBAAgB,IAAI,SAAS,OAAO,KAAK,CAC3C,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAAuB;AAE5D,OAAI,CAAC,UAAU,QAAQ,MAAM,CAC3B,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAA2B;AAGhE,OADmB,oBAAoB,UAAU,WACnC,GAAG,GACf,QAAO;IAAE,UAAU;IAAQ,QAAQ;IAAgC;GAErE,MAAM,kBAAkB,SAAS,OAAO,SAAS,wBAAwB;AACzE,OAAI,UAAU,aAAa,oBAAoB,QAC7C,QAAO;IACL,UAAU;IACV,QAAQ;IACT;GAEH,MAAM,eAAe,SAAS,OAAO,cAAc,UAAU,WAAW;AACxE,OAAI,SAAS,OAAO,SAAS,kBAAkB,iBAAiB,QAC9D,QAAO;IAAE,UAAU;IAAW,QAAQ;IAA2C;AAEnF,UAAO;IACL,UAAU;IACV,QAAQ,oBAAoB;IAC7B;;EAEJ"}
@@ -0,0 +1,11 @@
1
+ import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
2
+ export interface ResolveModelRoleParams {
3
+ manifest: EffectiveAgentManifest;
4
+ role?: string;
5
+ }
6
+ export interface ResolvedModelRole {
7
+ role: string;
8
+ model: string;
9
+ description?: string;
10
+ }
11
+ export declare function resolveModelRole(params: ResolveModelRoleParams): ResolvedModelRole;
@@ -0,0 +1,16 @@
1
+ //#region src/agent-runtime/model-router.ts
2
+ function resolveModelRole(params) {
3
+ const requested = params.role?.trim() || params.manifest.models.defaultRole;
4
+ const role = params.manifest.models.roles[requested] ? requested : params.manifest.models.defaultRole;
5
+ const entry = params.manifest.models.roles[role];
6
+ if (!entry) throw new Error(`Model role "${role}" is not configured`);
7
+ return {
8
+ role,
9
+ model: entry.model,
10
+ ...entry.description !== void 0 ? { description: entry.description } : {}
11
+ };
12
+ }
13
+ //#endregion
14
+ export { resolveModelRole };
15
+
16
+ //# sourceMappingURL=model-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-router.js","names":[],"sources":["../../../src/agent-runtime/model-router.ts"],"sourcesContent":["import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';\n\nexport interface ResolveModelRoleParams {\n manifest: EffectiveAgentManifest;\n role?: string;\n}\n\nexport interface ResolvedModelRole {\n role: string;\n model: string;\n description?: string;\n}\n\nexport function resolveModelRole(params: ResolveModelRoleParams): ResolvedModelRole {\n const requested = params.role?.trim() || params.manifest.models.defaultRole;\n const role = params.manifest.models.roles[requested] ? requested : params.manifest.models.defaultRole;\n const entry = params.manifest.models.roles[role];\n if (!entry) {\n throw new Error(`Model role \"${role}\" is not configured`);\n }\n return {\n role,\n model: entry.model,\n ...(entry.description !== undefined ? { description: entry.description } : {}),\n };\n}\n"],"mappings":";AAaA,SAAgB,iBAAiB,QAAmD;CAClF,MAAM,YAAY,OAAO,MAAM,MAAM,IAAI,OAAO,SAAS,OAAO;CAChE,MAAM,OAAO,OAAO,SAAS,OAAO,MAAM,aAAa,YAAY,OAAO,SAAS,OAAO;CAC1F,MAAM,QAAQ,OAAO,SAAS,OAAO,MAAM;AAC3C,KAAI,CAAC,MACH,OAAM,IAAI,MAAM,eAAe,KAAK,qBAAqB;AAE3D,QAAO;EACL;EACA,OAAO,MAAM;EACb,GAAI,MAAM,gBAAgB,KAAA,IAAY,EAAE,aAAa,MAAM,aAAa,GAAG,EAAE;EAC9E"}
@@ -0,0 +1,27 @@
1
+ import type { EffectiveAgentManifest } from '../agent-manifest/schema.js';
2
+ export type AgentRunStatus = 'running' | 'completed' | 'failed' | 'cancelled';
3
+ export type AgentRunEventType = 'run.started' | 'model.selected' | 'tool.called' | 'memory.read' | 'memory.write.checked' | 'workflow.selected' | 'boundary.checked' | 'run.completed' | 'run.failed';
4
+ export interface AgentRunEvent {
5
+ id: string;
6
+ runId: string;
7
+ type: AgentRunEventType;
8
+ payload: Record<string, unknown>;
9
+ createdAt: string;
10
+ }
11
+ export interface AgentRunTrace {
12
+ id: string;
13
+ agentId: string;
14
+ status: AgentRunStatus;
15
+ effectiveManifestHash: string;
16
+ startedAt: string;
17
+ endedAt?: string;
18
+ events: AgentRunEvent[];
19
+ }
20
+ export declare function hashEffectiveManifest(manifest: EffectiveAgentManifest): string;
21
+ export declare function createAgentRunTrace(params: {
22
+ agentId: string;
23
+ manifest: EffectiveAgentManifest;
24
+ now?: Date;
25
+ }): AgentRunTrace;
26
+ export declare function appendAgentRunEvent(trace: AgentRunTrace, type: AgentRunEventType, payload: Record<string, unknown>, now?: Date): AgentRunTrace;
27
+ export declare function finishAgentRunTrace(trace: AgentRunTrace, status: Exclude<AgentRunStatus, 'running'>, payload?: Record<string, unknown>, now?: Date): AgentRunTrace;