@xopcai/xopc 0.0.116 → 0.0.117

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 (599) hide show
  1. package/README.md +21 -6
  2. package/README.zh-CN.md +21 -6
  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-BBLhJ2C6.js} +1 -1
  33. package/dist/gateway/static/root/assets/agents-C6xgagZd.js +71 -0
  34. package/dist/gateway/static/root/assets/{app-management-settings-panel-yXSXY_bu.js → app-management-settings-panel-CBpLONvG.js} +1 -1
  35. package/dist/gateway/static/root/assets/{appearance-settings-DjY1P_ug.js → appearance-settings-CGcc54yj.js} +1 -1
  36. package/dist/gateway/static/root/assets/apps-page-DdDx0V4z.js +1 -0
  37. package/dist/gateway/static/root/assets/{archive-plugin-CytE5j-e.js → archive-plugin-DZsVqMhU.js} +1 -1
  38. package/dist/gateway/static/root/assets/{attachment-load-BvvrN6rF.js → attachment-load-CIol6JWX.js} +1 -1
  39. package/dist/gateway/static/root/assets/{binary-plugins-IBWSitnj.js → binary-plugins-B3UauMfp.js} +1 -1
  40. package/dist/gateway/static/root/assets/{block-editor-C-wDpsf-.js → block-editor-2HJoFchH.js} +3 -3
  41. package/dist/gateway/static/root/assets/browser-settings-page-CUOO-PQk.js +8 -0
  42. package/dist/gateway/static/root/assets/capability-presets-api-XQoMTI0A.js +1 -0
  43. package/dist/gateway/static/root/assets/capability-presets-settings-panel-CfqF-kGr.js +1 -0
  44. package/dist/gateway/static/root/assets/{channels-settings-Cd3JbeQ1.js → channels-settings-BYyRzsex.js} +1 -1
  45. package/dist/gateway/static/root/assets/connectors-page-DIvEz4NX.js +2 -0
  46. package/dist/gateway/static/root/assets/cron-api-R41aQCX9.js +1 -0
  47. package/dist/gateway/static/root/assets/cron-page-D97nFqQD.js +3 -0
  48. package/dist/gateway/static/root/assets/dreaming-settings-Bceaw1PG.js +1 -0
  49. package/dist/gateway/static/root/assets/{extension-debug-page-BAIyjDlq.js → extension-debug-page-DX5WRE_t.js} +1 -1
  50. package/dist/gateway/static/root/assets/{extension-page-DEhv2GpC.js → extension-page-Buah7Bw-.js} +1 -1
  51. package/dist/gateway/static/root/assets/{extension-settings-page-DOuAxTDW.js → extension-settings-page-DuroLVnf.js} +1 -1
  52. package/dist/gateway/static/root/assets/{fetch-CTsREQIe.js → fetch-B5zdl27C.js} +1 -1
  53. package/dist/gateway/static/root/assets/{format-interval-label-D35Bfhtx.js → format-interval-label-Dn_QKIqb.js} +1 -1
  54. package/dist/gateway/static/root/assets/gateway-config-api-gT4ZhE7h.js +1 -0
  55. package/dist/gateway/static/root/assets/gateway-settings-iISWAZRm.js +1 -0
  56. package/dist/gateway/static/root/assets/{gateway-startup-retry-C1KAHrd2.js → gateway-startup-retry-B3kL8KGY.js} +1 -1
  57. package/dist/gateway/static/root/assets/goal-detail-page-DCUROLMQ.js +1 -0
  58. package/dist/gateway/static/root/assets/{goals-config-api-KnLGpu6h.js → goals-config-api-AR-fVh0P.js} +1 -1
  59. package/dist/gateway/static/root/assets/goals-page-Cpb21ezg.js +2 -0
  60. package/dist/gateway/static/root/assets/{goals-settings-DtPtqZi8.js → goals-settings-CPAuFwoD.js} +1 -1
  61. package/dist/gateway/static/root/assets/{heartbeat-config-api-uKw1f0IG.js → heartbeat-config-api-D7bKFEeO.js} +1 -1
  62. package/dist/gateway/static/root/assets/{heartbeat-settings-DN9vEj9P.js → heartbeat-settings-CC69vNx0.js} +1 -1
  63. package/dist/gateway/static/root/assets/index-CwhK8qCh.js +122 -0
  64. package/dist/gateway/static/root/assets/index-CyfhARL-.css +1 -0
  65. package/dist/gateway/static/root/assets/{interval-presets-Dq0FXJ65.js → interval-presets-0DtsnxE0.js} +1 -1
  66. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-C9_t4m7t.js → keyboard-shortcuts-settings-BPREtN8B.js} +1 -1
  67. package/dist/gateway/static/root/assets/{logs-page-SNkWzidV.js → logs-page-DefCgF4o.js} +2 -2
  68. package/dist/gateway/static/root/assets/{markdown-split-Ca87W8-h.js → markdown-split-ChbR9LGO.js} +1 -1
  69. package/dist/gateway/static/root/assets/{media-plugins-BAcUjPRJ.js → media-plugins-B82oP80n.js} +1 -1
  70. package/dist/gateway/static/root/assets/messages-Cf1O9JB0.js +3 -0
  71. package/dist/gateway/static/root/assets/models-hub-panel-DmKiIihT.js +2 -0
  72. package/dist/gateway/static/root/assets/note-detail-page-CxxfLRJZ.js +2 -0
  73. package/dist/gateway/static/root/assets/{note-image-lightbox-hnSX5SSn.js → note-image-lightbox-CDknITM3.js} +1 -1
  74. package/dist/gateway/static/root/assets/{notes-page-ycsDlkFA.js → notes-page-X2slSx7V.js} +1 -1
  75. package/dist/gateway/static/root/assets/{preview-open-alternatives-CNgM20H5.js → preview-open-alternatives-DV3xQsWB.js} +1 -1
  76. package/dist/gateway/static/root/assets/remote-access-hub-BvmUWqgu.js +1 -0
  77. package/dist/gateway/static/root/assets/{save-bar-controls-CcdjGcfT.js → save-bar-controls-BODCXnvY.js} +1 -1
  78. package/dist/gateway/static/root/assets/{schedule-field-CYr39z76.js → schedule-field-CgJSCD3B.js} +1 -1
  79. package/dist/gateway/static/root/assets/{schema-form-BRAJgZQ2.js → schema-form-qtfEI6QM.js} +1 -1
  80. package/dist/gateway/static/root/assets/sessions-page-B0yESuuL.js +1 -0
  81. package/dist/gateway/static/root/assets/settings-advanced-gate-q2M8RKOo.js +1 -0
  82. package/dist/gateway/static/root/assets/{settings-collapsible-section-BhzjeGWi.js → settings-collapsible-section-BHZKjVcS.js} +1 -1
  83. package/dist/gateway/static/root/assets/{settings-form-section-Cz3Pcr9b.js → settings-form-section-5i35D-J1.js} +1 -1
  84. package/dist/gateway/static/root/assets/settings-page-CGozabLD.js +1 -0
  85. package/dist/gateway/static/root/assets/setup-status-panel-FoOSe6nU.js +1 -0
  86. package/dist/gateway/static/root/assets/{share-preview-page-DL4y9K5e.js → share-preview-page-B0H63tDv.js} +1 -1
  87. package/dist/gateway/static/root/assets/shares-settings-Cy5zWyYQ.js +1 -0
  88. package/dist/gateway/static/root/assets/skill-reload-api-DaZNFro9.js +1 -0
  89. package/dist/gateway/static/root/assets/skills-page-CnwtUzvw.js +2 -0
  90. package/dist/gateway/static/root/assets/{system-settings-panel-FD2jxRZ3.js → system-settings-panel-DXs2VmBt.js} +1 -1
  91. package/dist/gateway/static/root/assets/typed-models-lib-4gPuydz_.js +1 -0
  92. package/dist/gateway/static/root/assets/{use-channel-catalog-BInPrfR5.js → use-channel-catalog-BCjP_VHb.js} +1 -1
  93. package/dist/gateway/static/root/assets/voice-api-key-field-DvKiOglO.js +1 -0
  94. package/dist/gateway/static/root/assets/{voice-player-store-1U3vFppm.js → voice-player-store-BlF9V05n.js} +1 -1
  95. package/dist/gateway/static/root/assets/workflows-page-CAVZcONQ.js +18 -0
  96. package/dist/gateway/static/root/index.html +5 -5
  97. package/dist/package.js +1 -1
  98. package/dist/src/agent/agent-manager.d.ts +1 -1
  99. package/dist/src/agent/agent-manager.js +13 -14
  100. package/dist/src/agent/agent-manager.js.map +1 -1
  101. package/dist/src/agent/agent-scope.js +7 -9
  102. package/dist/src/agent/agent-scope.js.map +1 -1
  103. package/dist/src/agent/background-review/coordinator.js +0 -1
  104. package/dist/src/agent/background-review/coordinator.js.map +1 -1
  105. package/dist/src/agent/background-review/run-background-review.d.ts +0 -2
  106. package/dist/src/agent/background-review/run-background-review.js +2 -4
  107. package/dist/src/agent/background-review/run-background-review.js.map +1 -1
  108. package/dist/src/agent/background-review/settings.js +8 -7
  109. package/dist/src/agent/background-review/settings.js.map +1 -1
  110. package/dist/src/agent/bootstrap/bootstrap-context.d.ts +2 -2
  111. package/dist/src/agent/bootstrap/bootstrap-context.js +4 -4
  112. package/dist/src/agent/bootstrap/bootstrap-context.js.map +1 -1
  113. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  114. package/dist/src/agent/bootstrap/project-agents-context.js +1 -1
  115. package/dist/src/agent/context/workspace-seed.js +3 -3
  116. package/dist/src/agent/context/workspace-state.js +1 -1
  117. package/dist/src/agent/context/workspace.js +1 -1
  118. package/dist/src/agent/embedded/run-for-session.js +1 -1
  119. package/dist/src/agent/embedded/run-for-session.js.map +1 -1
  120. package/dist/src/agent/fallback/candidates.js +6 -3
  121. package/dist/src/agent/fallback/candidates.js.map +1 -1
  122. package/dist/src/agent/goals/goal-locale.js +2 -2
  123. package/dist/src/agent/goals/post-turn.js +3 -3
  124. package/dist/src/agent/image/generation/runtime-types.d.ts +2 -0
  125. package/dist/src/agent/image/generation/runtime.js +1 -1
  126. package/dist/src/agent/image/generation/runtime.js.map +1 -1
  127. package/dist/src/agent/image/image-helpers.d.ts +1 -1
  128. package/dist/src/agent/image/image-helpers.js +4 -17
  129. package/dist/src/agent/image/image-helpers.js.map +1 -1
  130. package/dist/src/agent/image/image-model-fallback.js +1 -1
  131. package/dist/src/agent/image/image-model-fallback.js.map +1 -1
  132. package/dist/src/agent/image/inbound-image-handling.js +1 -1
  133. package/dist/src/agent/image/inbound-image-handling.js.map +1 -1
  134. package/dist/src/agent/image/load-image-media.js +2 -2
  135. package/dist/src/agent/image/tool-model-config.d.ts +1 -1
  136. package/dist/src/agent/image/tool-model-config.js +2 -2
  137. package/dist/src/agent/image/tool-model-config.js.map +1 -1
  138. package/dist/src/agent/ipc/inbox.js +3 -3
  139. package/dist/src/agent/ipc/socket.js +1 -1
  140. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  141. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  142. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  143. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  144. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +1 -1
  145. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +1 -1
  146. package/dist/src/agent/media-generation/runtime-shared.d.ts +5 -2
  147. package/dist/src/agent/media-generation/runtime-shared.js +1 -1
  148. package/dist/src/agent/media-generation/runtime-shared.js.map +1 -1
  149. package/dist/src/agent/memory/builtin-memory-store.d.ts +2 -0
  150. package/dist/src/agent/memory/builtin-memory-store.js +5 -1
  151. package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
  152. package/dist/src/agent/memory/builtin-provider.d.ts +31 -9
  153. package/dist/src/agent/memory/builtin-provider.js +261 -11
  154. package/dist/src/agent/memory/builtin-provider.js.map +1 -1
  155. package/dist/src/agent/memory/context-assembler.d.ts +10 -0
  156. package/dist/src/agent/memory/context-assembler.js +26 -0
  157. package/dist/src/agent/memory/context-assembler.js.map +1 -0
  158. package/dist/src/agent/memory/create-memory-manager.js +25 -7
  159. package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
  160. package/dist/src/agent/memory/dreaming/config.d.ts +1 -6
  161. package/dist/src/agent/memory/dreaming/config.js +8 -8
  162. package/dist/src/agent/memory/dreaming/config.js.map +1 -1
  163. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +2 -0
  164. package/dist/src/agent/memory/dreaming/deep-promotion.js +25 -1
  165. package/dist/src/agent/memory/dreaming/deep-promotion.js.map +1 -1
  166. package/dist/src/agent/memory/dreaming/events.js +1 -1
  167. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  168. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  169. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  170. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  171. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  172. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  173. package/dist/src/agent/memory/index.d.ts +1 -0
  174. package/dist/src/agent/memory/index.js +4 -3
  175. package/dist/src/agent/memory/inject-prefetch.js +6 -2
  176. package/dist/src/agent/memory/inject-prefetch.js.map +1 -1
  177. package/dist/src/agent/memory/manager.d.ts +37 -1
  178. package/dist/src/agent/memory/manager.js +332 -40
  179. package/dist/src/agent/memory/manager.js.map +1 -1
  180. package/dist/src/agent/memory/memory-config.js +12 -15
  181. package/dist/src/agent/memory/memory-config.js.map +1 -1
  182. package/dist/src/agent/memory/memory-flush.js +1 -1
  183. package/dist/src/agent/memory/plugin-discovery.d.ts +19 -5
  184. package/dist/src/agent/memory/plugin-discovery.js +97 -31
  185. package/dist/src/agent/memory/plugin-discovery.js.map +1 -1
  186. package/dist/src/agent/memory/provider.d.ts +20 -15
  187. package/dist/src/agent/memory/stub-memory-provider.d.ts +17 -2
  188. package/dist/src/agent/memory/stub-memory-provider.js +20 -3
  189. package/dist/src/agent/memory/stub-memory-provider.js.map +1 -1
  190. package/dist/src/agent/memory/types.d.ts +136 -0
  191. package/dist/src/agent/models/manager.d.ts +1 -1
  192. package/dist/src/agent/models/manager.js +2 -2
  193. package/dist/src/agent/models/manager.js.map +1 -1
  194. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +1 -1
  195. package/dist/src/agent/orchestration/agent-orchestrator.js +2 -1
  196. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  197. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +2 -2
  198. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
  199. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
  200. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +2 -6
  201. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +2 -8
  202. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +1 -1
  203. package/dist/src/agent/prompt/memory/index.js +1 -1
  204. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  205. package/dist/src/agent/reply/post-compaction-context.js +12 -7
  206. package/dist/src/agent/reply/post-compaction-context.js.map +1 -1
  207. package/dist/src/agent/reply/startup-context.js +8 -9
  208. package/dist/src/agent/reply/startup-context.js.map +1 -1
  209. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  210. package/dist/src/agent/sandbox/path-policy.js +2 -2
  211. package/dist/src/agent/service/process-direct-streaming.js +1 -4
  212. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  213. package/dist/src/agent/service/session-context-report.js +1 -1
  214. package/dist/src/agent/service/session-context-report.js.map +1 -1
  215. package/dist/src/agent/service.js +25 -29
  216. package/dist/src/agent/service.js.map +1 -1
  217. package/dist/src/agent/service.types.d.ts +1 -2
  218. package/dist/src/agent/session/session-hydrator.js +1 -2
  219. package/dist/src/agent/session/session-hydrator.js.map +1 -1
  220. package/dist/src/agent/session/session-inspector.d.ts +1 -1
  221. package/dist/src/agent/session/session-inspector.js +10 -15
  222. package/dist/src/agent/session/session-inspector.js.map +1 -1
  223. package/dist/src/agent/skills/config.js +2 -2
  224. package/dist/src/agent/skills/filesystem-watcher.js +1 -1
  225. package/dist/src/agent/skills/hub-hash.js +2 -2
  226. package/dist/src/agent/skills/hub-lock.js +1 -1
  227. package/dist/src/agent/skills/hub-pull.js +3 -3
  228. package/dist/src/agent/skills/index.js +2 -2
  229. package/dist/src/agent/skills/installer.js +2 -2
  230. package/dist/src/agent/skills/managed-store.js +1 -1
  231. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  232. package/dist/src/agent/skills/skill-manager.js +1 -1
  233. package/dist/src/agent/skills/skill-view-path.js +1 -1
  234. package/dist/src/agent/skills/test-framework.js +1 -1
  235. package/dist/src/agent/starter-agents.d.ts +1 -3
  236. package/dist/src/agent/starter-agents.js +14 -22
  237. package/dist/src/agent/starter-agents.js.map +1 -1
  238. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -2
  239. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
  240. package/dist/src/agent/tools/curated-memory-tool.d.ts +2 -5
  241. package/dist/src/agent/tools/curated-memory-tool.js +20 -16
  242. package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
  243. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  244. package/dist/src/agent/tools/factory.d.ts +0 -4
  245. package/dist/src/agent/tools/factory.js +19 -58
  246. package/dist/src/agent/tools/factory.js.map +1 -1
  247. package/dist/src/agent/tools/find.js +1 -1
  248. package/dist/src/agent/tools/grep.js +1 -1
  249. package/dist/src/agent/tools/image-generate-tool.d.ts +1 -1
  250. package/dist/src/agent/tools/image-generate-tool.js +20 -15
  251. package/dist/src/agent/tools/image-generate-tool.js.map +1 -1
  252. package/dist/src/agent/tools/image-tool.js +1 -3
  253. package/dist/src/agent/tools/image-tool.js.map +1 -1
  254. package/dist/src/agent/tools/memory-tool.d.ts +2 -2
  255. package/dist/src/agent/tools/memory-tool.js +39 -14
  256. package/dist/src/agent/tools/memory-tool.js.map +1 -1
  257. package/dist/src/agent/tools/session-search-tool.js +1 -3
  258. package/dist/src/agent/tools/session-search-tool.js.map +1 -1
  259. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  260. package/dist/src/agent/tools/web-extract.js +6 -5
  261. package/dist/src/agent/tools/web-extract.js.map +1 -1
  262. package/dist/src/agent/tools/workflow-tool.js +1 -1
  263. package/dist/src/agent/workflow/catalog.js +1 -1
  264. package/dist/src/agent/workflow/subagent-runner.js +1 -3
  265. package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
  266. package/dist/src/agent-manifest/index.d.ts +4 -0
  267. package/dist/src/agent-manifest/index.js +10 -0
  268. package/dist/src/agent-manifest/index.js.map +1 -0
  269. package/dist/src/agent-manifest/prompt.d.ts +2 -0
  270. package/dist/src/agent-manifest/prompt.js +57 -0
  271. package/dist/src/agent-manifest/prompt.js.map +1 -0
  272. package/dist/src/agent-manifest/resolver.d.ts +11 -0
  273. package/dist/src/agent-manifest/resolver.js +93 -0
  274. package/dist/src/agent-manifest/resolver.js.map +1 -0
  275. package/dist/src/agent-manifest/schema.d.ts +778 -0
  276. package/dist/src/agent-manifest/schema.js +267 -0
  277. package/dist/src/agent-manifest/schema.js.map +1 -0
  278. package/dist/src/agent-manifest/validator.d.ts +24 -0
  279. package/dist/src/agent-manifest/validator.js +87 -0
  280. package/dist/src/agent-manifest/validator.js.map +1 -0
  281. package/dist/src/agent-runtime/boundary-guard.d.ts +12 -0
  282. package/dist/src/agent-runtime/boundary-guard.js +23 -0
  283. package/dist/src/agent-runtime/boundary-guard.js.map +1 -0
  284. package/dist/src/agent-runtime/index.d.ts +7 -0
  285. package/dist/src/agent-runtime/index.js +8 -0
  286. package/dist/src/agent-runtime/memory-runtime.d.ts +21 -0
  287. package/dist/src/agent-runtime/memory-runtime.js +50 -0
  288. package/dist/src/agent-runtime/memory-runtime.js.map +1 -0
  289. package/dist/src/agent-runtime/model-router.d.ts +11 -0
  290. package/dist/src/agent-runtime/model-router.js +16 -0
  291. package/dist/src/agent-runtime/model-router.js.map +1 -0
  292. package/dist/src/agent-runtime/run-trace.d.ts +27 -0
  293. package/dist/src/agent-runtime/run-trace.js +53 -0
  294. package/dist/src/agent-runtime/run-trace.js.map +1 -0
  295. package/dist/src/agent-runtime/runtime-profile.d.ts +24 -0
  296. package/dist/src/agent-runtime/runtime-profile.js +44 -0
  297. package/dist/src/agent-runtime/runtime-profile.js.map +1 -0
  298. package/dist/src/agent-runtime/tool-registry.d.ts +28 -0
  299. package/dist/src/agent-runtime/tool-registry.js +52 -0
  300. package/dist/src/agent-runtime/tool-registry.js.map +1 -0
  301. package/dist/src/agent-runtime/workflow-runtime.d.ts +31 -0
  302. package/dist/src/agent-runtime/workflow-runtime.js +34 -0
  303. package/dist/src/agent-runtime/workflow-runtime.js.map +1 -0
  304. package/dist/src/ai-assist/text-assist.js +1 -1
  305. package/dist/src/auth/credentials.js +2 -2
  306. package/dist/src/auth/profiles/store.js +2 -2
  307. package/dist/src/auth/sync-provider-auth.js +1 -1
  308. package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
  309. package/dist/src/browser/actions/extension-registry-bridge.js.map +1 -1
  310. package/dist/src/browser/actions/registry.js +5 -8
  311. package/dist/src/browser/actions/registry.js.map +1 -1
  312. package/dist/src/browser/backend-from-config.d.ts +1 -1
  313. package/dist/src/browser/backend-from-config.js +50 -71
  314. package/dist/src/browser/backend-from-config.js.map +1 -1
  315. package/dist/src/browser/browser-command-timeout.d.ts +0 -1
  316. package/dist/src/browser/browser-command-timeout.js +3 -7
  317. package/dist/src/browser/browser-command-timeout.js.map +1 -1
  318. package/dist/src/browser/cache-dir-policy.js +1 -1
  319. package/dist/src/browser/cdp-local-launcher.js +2 -2
  320. package/dist/src/browser/pipeline/source.js +1 -1
  321. package/dist/src/browser/providers/browser-ext-install.d.ts +2 -12
  322. package/dist/src/browser/providers/browser-ext-install.js +7 -12
  323. package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
  324. package/dist/src/browser/providers/cloakbrowser.js +5 -5
  325. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  326. package/dist/src/browser/readiness.js +16 -16
  327. package/dist/src/browser/readiness.js.map +1 -1
  328. package/dist/src/browser/schemas.js +1 -1
  329. package/dist/src/browser/schemas.js.map +1 -1
  330. package/dist/src/browser/stealth.js +1 -1
  331. package/dist/src/channels/catalog/channel-catalog-service.js +1 -1
  332. package/dist/src/channels/outbound/persist-store.js +1 -1
  333. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  334. package/dist/src/channels/pairing/pairing-store.js +2 -2
  335. package/dist/src/chat-commands/agent-edit.js +2 -2
  336. package/dist/src/chat-commands/builtins/config.js +6 -6
  337. package/dist/src/chat-commands/builtins/config.js.map +1 -1
  338. package/dist/src/chat-commands/builtins/thinking.js +16 -42
  339. package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
  340. package/dist/src/chat-commands/config-paths.js +1 -1
  341. package/dist/src/chat-commands/config-paths.js.map +1 -1
  342. package/dist/src/chat-commands/context.js +3 -4
  343. package/dist/src/chat-commands/context.js.map +1 -1
  344. package/dist/src/cli/command-manifest.js +1 -1
  345. package/dist/src/cli/command-manifest.js.map +1 -1
  346. package/dist/src/cli/commands/agent.js +3 -1
  347. package/dist/src/cli/commands/agent.js.map +1 -1
  348. package/dist/src/cli/commands/agents.js +3 -6
  349. package/dist/src/cli/commands/agents.js.map +1 -1
  350. package/dist/src/cli/commands/browser-cli-helpers.js +9 -11
  351. package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
  352. package/dist/src/cli/commands/config.js +6 -6
  353. package/dist/src/cli/commands/config.js.map +1 -1
  354. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  355. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  356. package/dist/src/cli/commands/doctor/checks/provider-auth.js +2 -18
  357. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
  358. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  359. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  360. package/dist/src/cli/commands/extension-create.js +1 -1
  361. package/dist/src/cli/commands/extension-dev.js +2 -2
  362. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  363. package/dist/src/cli/commands/extension-pack.js +2 -2
  364. package/dist/src/cli/commands/extension.js +3 -3
  365. package/dist/src/cli/commands/gateway/logs.js +1 -1
  366. package/dist/src/cli/commands/goal.js +1 -1
  367. package/dist/src/cli/commands/image.js +13 -372
  368. package/dist/src/cli/commands/image.js.map +1 -1
  369. package/dist/src/cli/commands/init.js +2 -2
  370. package/dist/src/cli/commands/models.js +27 -11
  371. package/dist/src/cli/commands/models.js.map +1 -1
  372. package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
  373. package/dist/src/cli/commands/onboard/model.js +20 -22
  374. package/dist/src/cli/commands/onboard/model.js.map +1 -1
  375. package/dist/src/cli/commands/onboard.js +1 -1
  376. package/dist/src/cli/commands/onboard.js.map +1 -1
  377. package/dist/src/cli/commands/skills-test.js +1 -1
  378. package/dist/src/cli/templates.js +1 -1
  379. package/dist/src/cli/utils/gateway-client.js +1 -1
  380. package/dist/src/cli/utils/init-workspace-core.d.ts +1 -4
  381. package/dist/src/cli/utils/init-workspace-core.js +9 -8
  382. package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
  383. package/dist/src/commands/agents.config.d.ts +0 -1
  384. package/dist/src/commands/agents.config.js +66 -12
  385. package/dist/src/commands/agents.config.js.map +1 -1
  386. package/dist/src/config/agent-profile.d.ts +5 -17
  387. package/dist/src/config/agent-profile.js +31 -64
  388. package/dist/src/config/agent-profile.js.map +1 -1
  389. package/dist/src/config/agent-typed-models.d.ts +1 -1
  390. package/dist/src/config/agent-typed-models.js +1 -2
  391. package/dist/src/config/agent-typed-models.js.map +1 -1
  392. package/dist/src/config/gateway-bind.js +1 -1
  393. package/dist/src/config/index.js +8 -8
  394. package/dist/src/config/integration.d.ts +1 -1
  395. package/dist/src/config/loader.js +4 -4
  396. package/dist/src/config/models-json.js +2 -2
  397. package/dist/src/config/paths-state.js +1 -1
  398. package/dist/src/config/paths.js +1 -1
  399. package/dist/src/config/profile.js +1 -1
  400. package/dist/src/config/reload.js +2 -2
  401. package/dist/src/config/reload.js.map +1 -1
  402. package/dist/src/config/rules.js +6 -56
  403. package/dist/src/config/rules.js.map +1 -1
  404. package/dist/src/config/schema.d.ts +918 -781
  405. package/dist/src/config/schema.js +154 -423
  406. package/dist/src/config/schema.js.map +1 -1
  407. package/dist/src/config/workspace-path.js +1 -1
  408. package/dist/src/connectors/composio-triggers.js +1 -1
  409. package/dist/src/cron/executor.js +1 -1
  410. package/dist/src/cron/index.js +1 -1
  411. package/dist/src/cron/service.js +2 -2
  412. package/dist/src/cron/validation.d.ts +3 -3
  413. package/dist/src/daemon/constants.js +1 -1
  414. package/dist/src/daemon/install-plan.js +2 -2
  415. package/dist/src/daemon/launchd.js +2 -2
  416. package/dist/src/daemon/schtasks.js +2 -2
  417. package/dist/src/daemon/systemd.js +2 -2
  418. package/dist/src/extensions/activation-context.js +13 -7
  419. package/dist/src/extensions/activation-context.js.map +1 -1
  420. package/dist/src/extensions/bundle-mcp.js +1 -1
  421. package/dist/src/extensions/discover-extensions.js +2 -2
  422. package/dist/src/extensions/health.js +1 -1
  423. package/dist/src/extensions/install.js +2 -2
  424. package/dist/src/extensions/loader.js +2 -2
  425. package/dist/src/extensions/lockfile.js +3 -3
  426. package/dist/src/extensions/security.js +1 -1
  427. package/dist/src/extensions/update.js +2 -2
  428. package/dist/src/gateway/agents-admin.d.ts +17 -18
  429. package/dist/src/gateway/agents-admin.js +125 -90
  430. package/dist/src/gateway/agents-admin.js.map +1 -1
  431. package/dist/src/gateway/capability-presets-admin.d.ts +56 -0
  432. package/dist/src/gateway/capability-presets-admin.js +214 -0
  433. package/dist/src/gateway/capability-presets-admin.js.map +1 -0
  434. package/dist/src/gateway/file-path-classifier.js +2 -2
  435. package/dist/src/gateway/hono/lib/agent-model.d.ts +1 -1
  436. package/dist/src/gateway/hono/lib/agent-model.js +1 -1
  437. package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
  438. package/dist/src/gateway/hono/lib/config-payload.d.ts +234 -127
  439. package/dist/src/gateway/hono/lib/config-payload.js +14 -38
  440. package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
  441. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  442. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  443. package/dist/src/gateway/hono/routes/agents.js +56 -33
  444. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  445. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  446. package/dist/src/gateway/hono/routes/browser.js +8 -15
  447. package/dist/src/gateway/hono/routes/browser.js.map +1 -1
  448. package/dist/src/gateway/hono/routes/capability-presets.d.ts +3 -0
  449. package/dist/src/gateway/hono/routes/capability-presets.js +145 -0
  450. package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -0
  451. package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +1 -17
  452. package/dist/src/gateway/hono/routes/config-patch/agents.js +2 -443
  453. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
  454. package/dist/src/gateway/hono/routes/config-patch/misc.js +7 -1
  455. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
  456. package/dist/src/gateway/hono/routes/config.js +1 -1
  457. package/dist/src/gateway/hono/routes/config.js.map +1 -1
  458. package/dist/src/gateway/hono/routes/dreaming.js +8 -1
  459. package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
  460. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  461. package/dist/src/gateway/hono/routes/index.js +2 -0
  462. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  463. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  464. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  465. package/dist/src/gateway/hono/routes/memory.d.ts +3 -0
  466. package/dist/src/gateway/hono/routes/memory.js +290 -0
  467. package/dist/src/gateway/hono/routes/memory.js.map +1 -0
  468. package/dist/src/gateway/hono/routes/models.js +1 -1
  469. package/dist/src/gateway/hono/routes/shares.js +1 -1
  470. package/dist/src/gateway/hono/routes/workflows.js +1 -1
  471. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  472. package/dist/src/gateway/lock.js +3 -3
  473. package/dist/src/gateway/ports.js +1 -1
  474. package/dist/src/gateway/service/config-coordinator.js +1 -1
  475. package/dist/src/gateway/service/marketplace-service.js +2 -2
  476. package/dist/src/gateway/service.d.ts +1 -1
  477. package/dist/src/gateway/service.js +15 -16
  478. package/dist/src/gateway/service.js.map +1 -1
  479. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  480. package/dist/src/goals/goal-workflow-judge.js +2 -2
  481. package/dist/src/i18n/goals-bundle.js +1 -1
  482. package/dist/src/i18n/index.js +1 -1
  483. package/dist/src/i18n/share-tool-bundle.js +2 -2
  484. package/dist/src/infra/brew.js +1 -1
  485. package/dist/src/infra/package-json.js +1 -1
  486. package/dist/src/infra/package-update-steps.js +1 -1
  487. package/dist/src/infra/path-env.js +2 -2
  488. package/dist/src/infra/restart.js +1 -1
  489. package/dist/src/infra/stable-node-path.js +1 -1
  490. package/dist/src/infra/update-check.js +1 -1
  491. package/dist/src/infra/update-global.js +1 -1
  492. package/dist/src/infra/update-lock.js +2 -2
  493. package/dist/src/infra/update-restart.js +1 -1
  494. package/dist/src/infra/update-runner.js +1 -1
  495. package/dist/src/infra/update-startup.js +1 -1
  496. package/dist/src/infra/write-file-atomic.js +2 -2
  497. package/dist/src/media/store.js +1 -1
  498. package/dist/src/notes/agent-context.js +3 -3
  499. package/dist/src/notes/service.js +1 -1
  500. package/dist/src/notes/store.js +2 -2
  501. package/dist/src/project-trust/trust-store.js +2 -2
  502. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  503. package/dist/src/providers/index.d.ts +2 -2
  504. package/dist/src/providers/index.js +11 -15
  505. package/dist/src/providers/index.js.map +1 -1
  506. package/dist/src/providers/model-registry.js +4 -4
  507. package/dist/src/session/index.js +1 -1
  508. package/dist/src/session/init-session-turn.js +1 -1
  509. package/dist/src/session/resolve-session.js +1 -1
  510. package/dist/src/session/session-title.js +2 -2
  511. package/dist/src/session/session-workspace.js +7 -2
  512. package/dist/src/session/session-workspace.js.map +1 -1
  513. package/dist/src/session/store.js +6 -1
  514. package/dist/src/session/store.js.map +1 -1
  515. package/dist/src/session/thinking-resolve.d.ts +1 -1
  516. package/dist/src/session/thinking-resolve.js +1 -1
  517. package/dist/src/session/thinking-resolve.js.map +1 -1
  518. package/dist/src/share/share-auto.js +2 -2
  519. package/dist/src/share/share-store.js +3 -3
  520. package/dist/src/share/share-thumbnail.js +2 -2
  521. package/dist/src/share/share-zip.js +1 -1
  522. package/dist/src/share/site-share-store.js +3 -3
  523. package/dist/src/share/site-static-serve.js +1 -1
  524. package/dist/src/storage/sqlite/connection.js +2 -2
  525. package/dist/src/storage/sqlite/index.d.ts +1 -0
  526. package/dist/src/storage/sqlite/index.js +2 -1
  527. package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
  528. package/dist/src/storage/sqlite/memory-records-repository.d.ts +101 -0
  529. package/dist/src/storage/sqlite/memory-records-repository.js +309 -0
  530. package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -0
  531. package/dist/src/storage/sqlite/migrations/012_memory_records.sql +63 -0
  532. package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +21 -0
  533. package/dist/src/storage/sqlite/migrations/discover.js +1 -1
  534. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  535. package/dist/src/storage/sqlite/migrations/runner.js +4 -4
  536. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  537. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  538. package/dist/src/storage/sqlite/schema.js +2 -2
  539. package/dist/src/storage/sqlite/schema.sql +86 -0
  540. package/dist/src/tui/backends/embedded-backend.js +7 -5
  541. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  542. package/dist/src/tui/clipboard-image.js +3 -3
  543. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  544. package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
  545. package/dist/src/tui/theme-manager.js +1 -1
  546. package/dist/src/tui/tui-command-formatters.js +4 -4
  547. package/dist/src/tui/tui-commands.js +2 -2
  548. package/dist/src/tui/tui-keybindings-file.js +1 -1
  549. package/dist/src/tui/tui-scoped-models.js +2 -2
  550. package/dist/src/tui/tui-settings.js +1 -1
  551. package/dist/src/tui/tui-startup-resources.js +1 -1
  552. package/dist/src/tui/tui.js +6 -6
  553. package/dist/src/tunnel/frpc-binary.js +4 -4
  554. package/dist/src/tunnel/frpc-config.js +1 -1
  555. package/dist/src/tunnel/frpc-extract.js +1 -1
  556. package/dist/src/tunnel/tunnel-state.js +1 -1
  557. package/dist/src/utils/logger/audit.js +1 -1
  558. package/dist/src/utils/logger/log-store.js +1 -1
  559. package/dist/src/utils/logger/rotation.js +1 -1
  560. package/dist/src/utils/logger/streams.js +1 -1
  561. package/dist/src/voice/tts/audio.js +1 -1
  562. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  563. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  564. package/dist/src/workflows/service/workflow-run-service.js +4 -5
  565. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  566. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  567. package/dist/src/workflows/store/event-store.js +1 -1
  568. package/dist/src/workflows/store/run-store.js +1 -1
  569. package/package.json +3 -2
  570. package/dist/gateway/static/root/assets/agent-browser-settings-page-D1SyFYeh.js +0 -6
  571. package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-C9YxgvuI.js +0 -1
  572. package/dist/gateway/static/root/assets/agents-CteVs3UO.js +0 -71
  573. package/dist/gateway/static/root/assets/apps-page-CVQ1M8Ax.js +0 -1
  574. package/dist/gateway/static/root/assets/config-api-C4RAtTKW.js +0 -3
  575. package/dist/gateway/static/root/assets/connectors-page-MsMa5qBr.js +0 -2
  576. package/dist/gateway/static/root/assets/cron-api-sJNMqB6P.js +0 -1
  577. package/dist/gateway/static/root/assets/cron-page-D30CSwkn.js +0 -3
  578. package/dist/gateway/static/root/assets/dreaming-settings-6fCUWRQf.js +0 -1
  579. package/dist/gateway/static/root/assets/gateway-config-api-C6989a-W.js +0 -1
  580. package/dist/gateway/static/root/assets/gateway-settings-BpF26t91.js +0 -1
  581. package/dist/gateway/static/root/assets/goal-detail-page-DOjhmRyf.js +0 -1
  582. package/dist/gateway/static/root/assets/goals-page-Xl9_wrFc.js +0 -2
  583. package/dist/gateway/static/root/assets/index-C8ytlAF2.js +0 -122
  584. package/dist/gateway/static/root/assets/index-CVpJW2NS.css +0 -1
  585. package/dist/gateway/static/root/assets/messages-BqzIDrlr.js +0 -3
  586. package/dist/gateway/static/root/assets/models-hub-panel-BO4o-GmO.js +0 -2
  587. package/dist/gateway/static/root/assets/note-detail-page-DLV_XDmT.js +0 -2
  588. package/dist/gateway/static/root/assets/remote-access-hub-DQpnE8K9.js +0 -1
  589. package/dist/gateway/static/root/assets/sessions-page-BZui7iAY.js +0 -1
  590. package/dist/gateway/static/root/assets/settings-advanced-gate-DEfzZ1ax.js +0 -1
  591. package/dist/gateway/static/root/assets/settings-page-CLuSsu1-.js +0 -1
  592. package/dist/gateway/static/root/assets/setup-status-panel-Cq4qpXLi.js +0 -1
  593. package/dist/gateway/static/root/assets/shares-settings-B9F3HyYQ.js +0 -1
  594. package/dist/gateway/static/root/assets/skill-reload-api-Bp9UPPwm.js +0 -1
  595. package/dist/gateway/static/root/assets/skills-page-BIoBsfSV.js +0 -2
  596. package/dist/gateway/static/root/assets/use-agent-defaults-form-Cz2_pPzu.js +0 -1
  597. package/dist/gateway/static/root/assets/use-settings-tab-guard-nuHMmZQv.js +0 -1
  598. package/dist/gateway/static/root/assets/voice-api-key-field-BUIrKb8s.js +0 -1
  599. package/dist/gateway/static/root/assets/workflows-page-qE3SexnO.js +0 -18
@@ -0,0 +1,145 @@
1
+ import { CapabilityPresetSchema, init_schema } from "../../../agent-manifest/schema.js";
2
+ import { init_agent_scope, normalizeAgentId } from "../../../agent/agent-scope.js";
3
+ import { listCapabilityPresets, prepareCreateCapabilityPreset, prepareDeleteCapabilityPreset, prepareUpdateCapabilityPreset } from "../../capability-presets-admin.js";
4
+ //#region src/gateway/hono/routes/capability-presets.ts
5
+ init_schema();
6
+ init_agent_scope();
7
+ function parseJsonObject(raw) {
8
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return { error: "body must be an object" };
9
+ return raw;
10
+ }
11
+ function isParseError(value) {
12
+ return typeof value === "object" && value !== null && "error" in value && typeof value.error === "string";
13
+ }
14
+ function parseCreateBody(raw) {
15
+ const body = parseJsonObject(raw);
16
+ if (isParseError(body)) return body;
17
+ return {
18
+ id: typeof body.id === "string" ? body.id : void 0,
19
+ name: typeof body.name === "string" ? body.name : void 0,
20
+ description: typeof body.description === "string" ? body.description : void 0
21
+ };
22
+ }
23
+ function parseUpdateBody(raw) {
24
+ const body = parseJsonObject(raw);
25
+ if (isParseError(body)) return body;
26
+ const out = {};
27
+ if (Object.hasOwn(body, "name")) out.name = String(body.name ?? "");
28
+ if (Object.hasOwn(body, "description")) out.description = body.description === null ? null : String(body.description ?? "");
29
+ if (Object.hasOwn(body, "version")) out.version = Number(body.version);
30
+ for (const key of [
31
+ "extends",
32
+ "models",
33
+ "tools",
34
+ "skills",
35
+ "memory",
36
+ "workflows",
37
+ "boundaries",
38
+ "runtime",
39
+ "locks"
40
+ ]) {
41
+ if (!Object.hasOwn(body, key)) continue;
42
+ if (body[key] === null) {
43
+ out[key] = null;
44
+ continue;
45
+ }
46
+ const parsed = CapabilityPresetSchema.pick({ [key]: true }).safeParse({ [key]: body[key] });
47
+ if (!parsed.success) return { error: `${key} ${parsed.error.issues[0]?.message ?? "is invalid"}` };
48
+ out[key] = parsed.data[key];
49
+ }
50
+ return out;
51
+ }
52
+ function registerCapabilityPresetsRoutes(authenticated, deps) {
53
+ const { service, strictRateLimitMiddleware } = deps;
54
+ authenticated.get("/api/capability-presets", async (c) => {
55
+ return c.json({
56
+ ok: true,
57
+ payload: listCapabilityPresets(service.currentConfig)
58
+ });
59
+ });
60
+ authenticated.post("/api/capability-presets", strictRateLimitMiddleware, async (c) => {
61
+ let raw;
62
+ try {
63
+ raw = await c.req.json();
64
+ } catch {
65
+ return c.json({
66
+ ok: false,
67
+ error: { message: "Invalid JSON" }
68
+ }, 400);
69
+ }
70
+ const body = parseCreateBody(raw);
71
+ if (isParseError(body)) return c.json({
72
+ ok: false,
73
+ error: { message: body.error }
74
+ }, 400);
75
+ const prep = prepareCreateCapabilityPreset(service.currentConfig, body);
76
+ if (prep.ok === false) return c.json({
77
+ ok: false,
78
+ error: { message: prep.error }
79
+ }, prep.status ?? 400);
80
+ const save = await service.saveConfig(prep.data.nextConfig);
81
+ if (!save.saved) return c.json({
82
+ ok: false,
83
+ error: { message: save.error ?? "save failed" }
84
+ }, 500);
85
+ return c.json({
86
+ ok: true,
87
+ payload: {
88
+ presetId: prep.data.presetId,
89
+ presets: listCapabilityPresets(service.currentConfig)
90
+ }
91
+ });
92
+ });
93
+ authenticated.patch("/api/capability-presets/:id", strictRateLimitMiddleware, async (c) => {
94
+ const id = normalizeAgentId(c.req.param("id") ?? "");
95
+ let raw;
96
+ try {
97
+ raw = await c.req.json();
98
+ } catch {
99
+ return c.json({
100
+ ok: false,
101
+ error: { message: "Invalid JSON" }
102
+ }, 400);
103
+ }
104
+ const body = parseUpdateBody(raw);
105
+ if (isParseError(body)) return c.json({
106
+ ok: false,
107
+ error: { message: body.error }
108
+ }, 400);
109
+ const prep = prepareUpdateCapabilityPreset(service.currentConfig, id, body);
110
+ if (prep.ok === false) return c.json({
111
+ ok: false,
112
+ error: { message: prep.error }
113
+ }, prep.status ?? 400);
114
+ const save = await service.saveConfig(prep.data.nextConfig);
115
+ if (!save.saved) return c.json({
116
+ ok: false,
117
+ error: { message: save.error ?? "save failed" }
118
+ }, 500);
119
+ return c.json({
120
+ ok: true,
121
+ payload: listCapabilityPresets(service.currentConfig)
122
+ });
123
+ });
124
+ authenticated.delete("/api/capability-presets/:id", strictRateLimitMiddleware, async (c) => {
125
+ const id = normalizeAgentId(c.req.param("id") ?? "");
126
+ const prep = prepareDeleteCapabilityPreset(service.currentConfig, id);
127
+ if (prep.ok === false) return c.json({
128
+ ok: false,
129
+ error: { message: prep.error }
130
+ }, prep.status ?? 400);
131
+ const save = await service.saveConfig(prep.data.nextConfig);
132
+ if (!save.saved) return c.json({
133
+ ok: false,
134
+ error: { message: save.error ?? "save failed" }
135
+ }, 500);
136
+ return c.json({
137
+ ok: true,
138
+ payload: listCapabilityPresets(service.currentConfig)
139
+ });
140
+ });
141
+ }
142
+ //#endregion
143
+ export { registerCapabilityPresetsRoutes };
144
+
145
+ //# sourceMappingURL=capability-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-presets.js","names":[],"sources":["../../../../../src/gateway/hono/routes/capability-presets.ts"],"sourcesContent":["import type { Hono } from 'hono';\n\nimport { CapabilityPresetSchema } from '../../../agent-manifest/schema.js';\nimport type { Config } from '../../../config/schema.js';\nimport {\n listCapabilityPresets,\n prepareCreateCapabilityPreset,\n prepareDeleteCapabilityPreset,\n prepareUpdateCapabilityPreset,\n type CreateCapabilityPresetBody,\n type UpdateCapabilityPresetBody,\n} from '../../capability-presets-admin.js';\nimport { normalizeAgentId } from '../../../agent/agent-scope.js';\nimport type { AuthenticatedRouteDeps } from './deps.js';\n\nfunction parseJsonObject(raw: unknown): Record<string, unknown> | { error: string } {\n if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {\n return { error: 'body must be an object' };\n }\n return raw as Record<string, unknown>;\n}\n\nfunction isParseError(value: unknown): value is { error: string } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'error' in value &&\n typeof (value as { error: string }).error === 'string'\n );\n}\n\nfunction parseCreateBody(raw: unknown): CreateCapabilityPresetBody | { error: string } {\n const body = parseJsonObject(raw);\n if (isParseError(body)) return body;\n return {\n id: typeof body.id === 'string' ? body.id : undefined,\n name: typeof body.name === 'string' ? body.name : undefined,\n description: typeof body.description === 'string' ? body.description : undefined,\n };\n}\n\nfunction parseUpdateBody(raw: unknown): UpdateCapabilityPresetBody | { error: string } {\n const body = parseJsonObject(raw);\n if (isParseError(body)) return body;\n const out: UpdateCapabilityPresetBody = {};\n if (Object.hasOwn(body, 'name')) out.name = String(body.name ?? '');\n if (Object.hasOwn(body, 'description')) {\n out.description = body.description === null ? null : String(body.description ?? '');\n }\n if (Object.hasOwn(body, 'version')) out.version = Number(body.version);\n for (const key of ['extends', 'models', 'tools', 'skills', 'memory', 'workflows', 'boundaries', 'runtime', 'locks'] as const) {\n if (!Object.hasOwn(body, key)) continue;\n if (body[key] === null) {\n out[key] = null as never;\n continue;\n }\n const parsed = CapabilityPresetSchema.pick({ [key]: true } as Record<typeof key, true>).safeParse({\n [key]: body[key],\n });\n if (!parsed.success) {\n return { error: `${key} ${parsed.error.issues[0]?.message ?? 'is invalid'}` };\n }\n out[key] = parsed.data[key] as never;\n }\n return out;\n}\n\nexport function registerCapabilityPresetsRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void {\n const { service, strictRateLimitMiddleware } = deps;\n\n authenticated.get('/api/capability-presets', async (c) => {\n return c.json({ ok: true, payload: listCapabilityPresets(service.currentConfig as Config) });\n });\n\n authenticated.post('/api/capability-presets', strictRateLimitMiddleware, async (c) => {\n let raw: unknown;\n try {\n raw = await c.req.json();\n } catch {\n return c.json({ ok: false, error: { message: 'Invalid JSON' } }, 400);\n }\n const body = parseCreateBody(raw);\n if (isParseError(body)) {\n return c.json({ ok: false, error: { message: body.error } }, 400);\n }\n const prep = prepareCreateCapabilityPreset(service.currentConfig as Config, body);\n if (prep.ok === false) {\n return c.json({ ok: false, error: { message: prep.error } }, prep.status ?? 400);\n }\n const save = await service.saveConfig(prep.data.nextConfig);\n if (!save.saved) {\n return c.json({ ok: false, error: { message: save.error ?? 'save failed' } }, 500);\n }\n return c.json({\n ok: true,\n payload: {\n presetId: prep.data.presetId,\n presets: listCapabilityPresets(service.currentConfig as Config),\n },\n });\n });\n\n authenticated.patch('/api/capability-presets/:id', strictRateLimitMiddleware, async (c) => {\n const id = normalizeAgentId(c.req.param('id') ?? '');\n let raw: unknown;\n try {\n raw = await c.req.json();\n } catch {\n return c.json({ ok: false, error: { message: 'Invalid JSON' } }, 400);\n }\n const body = parseUpdateBody(raw);\n if (isParseError(body)) {\n return c.json({ ok: false, error: { message: body.error } }, 400);\n }\n const prep = prepareUpdateCapabilityPreset(service.currentConfig as Config, id, body);\n if (prep.ok === false) {\n return c.json({ ok: false, error: { message: prep.error } }, prep.status ?? 400);\n }\n const save = await service.saveConfig(prep.data.nextConfig);\n if (!save.saved) {\n return c.json({ ok: false, error: { message: save.error ?? 'save failed' } }, 500);\n }\n return c.json({ ok: true, payload: listCapabilityPresets(service.currentConfig as Config) });\n });\n\n authenticated.delete('/api/capability-presets/:id', strictRateLimitMiddleware, async (c) => {\n const id = normalizeAgentId(c.req.param('id') ?? '');\n const prep = prepareDeleteCapabilityPreset(service.currentConfig as Config, id);\n if (prep.ok === false) {\n return c.json({ ok: false, error: { message: prep.error } }, prep.status ?? 400);\n }\n const save = await service.saveConfig(prep.data.nextConfig);\n if (!save.saved) {\n return c.json({ ok: false, error: { message: save.error ?? 'save failed' } }, 500);\n }\n return c.json({ ok: true, payload: listCapabilityPresets(service.currentConfig as Config) });\n });\n}\n"],"mappings":"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"}
@@ -1,18 +1,2 @@
1
- /**
2
- * `PATCH /api/config` — `body.agents.defaults.*` section.
3
- *
4
- * Mutates `config.agents.defaults` in place to match the patch body. All
5
- * branches are field-by-field "if undefined skip, if null delete, else
6
- * coerce/validate then assign" so the web UI can clear individual settings
7
- * with `{ field: null }` without rewriting the rest.
8
- *
9
- * Was 660 lines inlined in `config.ts` (40% of the route handler) — extracted
10
- * so the dispatcher can chain section patchers instead of being a single 1600
11
- * -line if-else cascade.
12
- *
13
- * **No early returns / errors.** This section never rejects the patch; out-of
14
- * -range numbers and unrecognized strings are silently dropped (preserves
15
- * pre-extraction behavior so the route stays a "best-effort merge").
16
- */
17
1
  import type { Config } from '../../../../config/schema.js';
18
- export declare function applyAgentsPatch(config: Config, body: any): void;
2
+ export declare function applyAgentsPatch(_config: Config, body: any): void;
@@ -1,447 +1,6 @@
1
- import { isMaskedSecretPatchValue } from "../../lib/mask-secret-length.js";
2
- import { normalizePatchAgentImageGenerationModel, normalizePatchAgentModel, normalizePatchTypedModels } from "../../lib/agent-model.js";
3
1
  //#region src/gateway/hono/routes/config-patch/agents.ts
4
- function applyAgentsPatch(config, body) {
5
- if (!body.agents?.defaults) return;
6
- if (!config.agents) config.agents = { defaults: {
7
- workspace: "~/.xopc/workspace",
8
- maxTokens: 8192,
9
- temperature: .7,
10
- maxToolIterations: 20,
11
- maxRequestsPerTurn: 50,
12
- maxToolFailuresPerTurn: 3,
13
- thinkingDefault: "medium",
14
- reasoningDefault: "stream",
15
- verboseDefault: "full"
16
- } };
17
- if (!config.agents.defaults) config.agents.defaults = {};
18
- if (body.agents.defaults.maxTokens !== void 0) config.agents.defaults.maxTokens = body.agents.defaults.maxTokens;
19
- if (body.agents.defaults.temperature !== void 0) config.agents.defaults.temperature = body.agents.defaults.temperature;
20
- if (body.agents.defaults.maxToolIterations !== void 0) config.agents.defaults.maxToolIterations = body.agents.defaults.maxToolIterations;
21
- if (body.agents.defaults.workspace !== void 0) config.agents.defaults.workspace = body.agents.defaults.workspace;
22
- if (body.agents.defaults.thinkingDefault !== void 0) config.agents.defaults.thinkingDefault = body.agents.defaults.thinkingDefault;
23
- if (body.agents.defaults.reasoningDefault !== void 0) config.agents.defaults.reasoningDefault = body.agents.defaults.reasoningDefault;
24
- if (body.agents.defaults.verboseDefault !== void 0) config.agents.defaults.verboseDefault = body.agents.defaults.verboseDefault;
25
- if (body.agents.defaults.imageModel !== void 0) {
26
- const v = body.agents.defaults.imageModel;
27
- if (v === null) delete config.agents.defaults.imageModel;
28
- else {
29
- const normalized = normalizePatchAgentModel(v);
30
- if (normalized === void 0) delete config.agents.defaults.imageModel;
31
- else config.agents.defaults.imageModel = normalized;
32
- }
33
- }
34
- if (body.agents.defaults.imageGenerationModel !== void 0) {
35
- const v = body.agents.defaults.imageGenerationModel;
36
- if (v === null) delete config.agents.defaults.imageGenerationModel;
37
- else {
38
- const normalized = normalizePatchAgentImageGenerationModel(v);
39
- if (normalized === void 0) delete config.agents.defaults.imageGenerationModel;
40
- else config.agents.defaults.imageGenerationModel = normalized;
41
- }
42
- }
43
- if (body.agents.defaults.mediaMaxMb !== void 0) {
44
- const v = body.agents.defaults.mediaMaxMb;
45
- if (v === null) delete config.agents.defaults.mediaMaxMb;
46
- else {
47
- const n = typeof v === "number" ? v : Number(v);
48
- if (!Number.isNaN(n) && n > 0) config.agents.defaults.mediaMaxMb = n;
49
- }
50
- }
51
- if (body.agents.defaults.browser !== void 0) {
52
- const b = body.agents.defaults.browser;
53
- if (b === null) delete config.agents.defaults.browser;
54
- else if (typeof b === "object" && !Array.isArray(b)) {
55
- const br = b;
56
- if (!config.agents.defaults.browser) config.agents.defaults.browser = {
57
- enabled: false,
58
- headless: false
59
- };
60
- const target = config.agents.defaults.browser;
61
- if (br.enabled !== void 0) if (br.enabled === null) delete target.enabled;
62
- else target.enabled = Boolean(br.enabled);
63
- if (br.headless !== void 0) if (br.headless === null) delete target.headless;
64
- else target.headless = Boolean(br.headless);
65
- if (br.allowPrivateUrls !== void 0) if (br.allowPrivateUrls === null) delete target.allowPrivateUrls;
66
- else target.allowPrivateUrls = Boolean(br.allowPrivateUrls);
67
- if (br.commandTimeout !== void 0) {
68
- if (br.commandTimeout === null) delete target.commandTimeout;
69
- else if (typeof br.commandTimeout === "number" && Number.isFinite(br.commandTimeout)) {
70
- const n = Math.floor(br.commandTimeout);
71
- if (n >= 5 && n <= 900) target.commandTimeout = n;
72
- }
73
- }
74
- if (br.backend !== void 0) {
75
- if (br.backend === null || br.backend === "" || br.backend === "extension") delete target.backend;
76
- else if (br.backend === "local" || br.backend === "cdp" || br.backend === "cloud" || br.backend === "cloakbrowser") target.backend = br.backend;
77
- }
78
- if (br.cloudProvider !== void 0) {
79
- if (br.cloudProvider === null || br.cloudProvider === "") delete target.cloudProvider;
80
- else if (br.cloudProvider === "browserbase" || br.cloudProvider === "browser-use") target.cloudProvider = br.cloudProvider;
81
- }
82
- if (br.cloud !== void 0) {
83
- if (br.cloud === null) delete target.cloud;
84
- else if (typeof br.cloud === "object" && !Array.isArray(br.cloud)) {
85
- const cloudPatch = br.cloud;
86
- const cloudTarget = { ...target.cloud && typeof target.cloud === "object" && !Array.isArray(target.cloud) ? target.cloud : {} };
87
- if (cloudPatch.apiKey !== void 0) {
88
- if (cloudPatch.apiKey === null || cloudPatch.apiKey === "") delete cloudTarget.apiKey;
89
- else if (isMaskedSecretPatchValue(String(cloudPatch.apiKey))) {} else if (typeof cloudPatch.apiKey === "string") cloudTarget.apiKey = cloudPatch.apiKey.trim();
90
- }
91
- for (const key of ["projectId", "region"]) {
92
- const value = cloudPatch[key];
93
- if (value === null || value === "") delete cloudTarget[key];
94
- else if (typeof value === "string" && value.trim()) cloudTarget[key] = value.trim();
95
- }
96
- if (Object.keys(cloudTarget).length > 0) target.cloud = cloudTarget;
97
- else delete target.cloud;
98
- }
99
- }
100
- if (br.cdpUrl !== void 0) {
101
- if (br.cdpUrl === null || br.cdpUrl === "") delete target.cdpUrl;
102
- else if (typeof br.cdpUrl === "string") target.cdpUrl = br.cdpUrl.trim();
103
- }
104
- if (br.extension !== void 0) {
105
- if (br.extension === null) delete target.extension;
106
- else if (typeof br.extension === "object" && !Array.isArray(br.extension)) {
107
- const ext = br.extension;
108
- const extTarget = {};
109
- if (ext.port === null || ext.port === "") {} else if (typeof ext.port === "number" && ext.port >= 1024 && ext.port <= 65535) extTarget.port = Math.floor(ext.port);
110
- if (ext.host === null || ext.host === "") {} else if (typeof ext.host === "string" && ext.host.trim()) extTarget.host = ext.host.trim();
111
- if (ext.connectionTimeout === null || ext.connectionTimeout === "") {} else if (typeof ext.connectionTimeout === "number" && Number.isFinite(ext.connectionTimeout) && ext.connectionTimeout >= 1e3) extTarget.connectionTimeout = Math.floor(ext.connectionTimeout);
112
- if (Object.keys(extTarget).length > 0) target.extension = extTarget;
113
- else delete target.extension;
114
- }
115
- }
116
- if (br.cloakbrowser !== void 0) {
117
- if (br.cloakbrowser === null) delete target.cloakbrowser;
118
- else if (typeof br.cloakbrowser === "object" && !Array.isArray(br.cloakbrowser)) {
119
- const cloakbrowserPatch = br.cloakbrowser;
120
- const cloakbrowserTarget = {};
121
- if (typeof cloakbrowserPatch.keepOpen === "boolean") cloakbrowserTarget.keepOpen = cloakbrowserPatch.keepOpen;
122
- if (typeof cloakbrowserPatch.temporaryProfile === "boolean") cloakbrowserTarget.temporaryProfile = cloakbrowserPatch.temporaryProfile;
123
- for (const key of [
124
- "cacheDir",
125
- "binaryPath",
126
- "timezone",
127
- "locale",
128
- "webrtcIp",
129
- "fingerprintPlatform"
130
- ]) {
131
- const value = cloakbrowserPatch[key];
132
- if (typeof value === "string" && value.trim()) cloakbrowserTarget[key] = value.trim();
133
- }
134
- if (Array.isArray(cloakbrowserPatch.extraArgs) && cloakbrowserPatch.extraArgs.every((value) => typeof value === "string")) cloakbrowserTarget.extraArgs = cloakbrowserPatch.extraArgs;
135
- if (Object.keys(cloakbrowserTarget).length > 0) target.cloakbrowser = cloakbrowserTarget;
136
- else delete target.cloakbrowser;
137
- }
138
- }
139
- if (br.humanize !== void 0) if (br.humanize === null) delete target.humanize;
140
- else target.humanize = Boolean(br.humanize);
141
- if (br.humanPreset !== void 0) {
142
- if (br.humanPreset === null) delete target.humanPreset;
143
- else if (br.humanPreset === "default" || br.humanPreset === "careful") target.humanPreset = br.humanPreset;
144
- }
145
- if (br.dialogPolicy !== void 0) {
146
- if (br.dialogPolicy === null) delete target.dialogPolicy;
147
- else if (br.dialogPolicy === "must_respond" || br.dialogPolicy === "auto_dismiss" || br.dialogPolicy === "auto_accept") target.dialogPolicy = br.dialogPolicy;
148
- }
149
- if (br.dialogTimeoutSeconds !== void 0) {
150
- if (br.dialogTimeoutSeconds === null) delete target.dialogTimeoutSeconds;
151
- else if (typeof br.dialogTimeoutSeconds === "number" && Number.isFinite(br.dialogTimeoutSeconds)) {
152
- const n = Math.floor(br.dialogTimeoutSeconds);
153
- if (n >= 1 && n <= 86400) target.dialogTimeoutSeconds = n;
154
- }
155
- }
156
- }
157
- }
158
- const dPatch = body.agents.defaults;
159
- const def = config.agents.defaults;
160
- if (dPatch.maxTaskDurationMs !== void 0) {
161
- const v = dPatch.maxTaskDurationMs;
162
- if (v === null) delete def.maxTaskDurationMs;
163
- else if (typeof v === "number" && Number.isFinite(v)) {
164
- const ms = Math.floor(v);
165
- if (ms >= 6e4 && ms <= 144e5) def.maxTaskDurationMs = ms;
166
- }
167
- }
168
- if (dPatch.maxRequestsPerTurn !== void 0) {
169
- const v = dPatch.maxRequestsPerTurn;
170
- if (v === null) delete def.maxRequestsPerTurn;
171
- else if (typeof v === "number" && Number.isFinite(v)) {
172
- const n = Math.floor(v);
173
- if (n >= 10 && n <= 200) def.maxRequestsPerTurn = n;
174
- }
175
- }
176
- if (dPatch.maxToolFailuresPerTurn !== void 0) {
177
- const v = dPatch.maxToolFailuresPerTurn;
178
- if (v === null) delete def.maxToolFailuresPerTurn;
179
- else if (typeof v === "number" && Number.isFinite(v)) {
180
- const n = Math.floor(v);
181
- if (n >= 1 && n <= 20) def.maxToolFailuresPerTurn = n;
182
- }
183
- }
184
- if (dPatch.compaction !== void 0) {
185
- const c = dPatch.compaction;
186
- if (c === null) delete def.compaction;
187
- else if (typeof c === "object" && !Array.isArray(c)) {
188
- const p = c;
189
- if (!def.compaction || typeof def.compaction !== "object") def.compaction = {};
190
- const t = def.compaction;
191
- if (p.enabled !== void 0) t.enabled = Boolean(p.enabled);
192
- if (p.mode === "default" || p.mode === "safeguard") t.mode = p.mode;
193
- if (typeof p.reserveTokens === "number" && Number.isFinite(p.reserveTokens)) t.reserveTokens = Math.floor(p.reserveTokens);
194
- if (typeof p.triggerThreshold === "number" && Number.isFinite(p.triggerThreshold)) {
195
- const x = p.triggerThreshold;
196
- if (x >= .5 && x <= .95) t.triggerThreshold = x;
197
- }
198
- if (typeof p.minMessagesBeforeCompact === "number" && Number.isFinite(p.minMessagesBeforeCompact)) t.minMessagesBeforeCompact = Math.floor(p.minMessagesBeforeCompact);
199
- if (typeof p.keepRecentMessages === "number" && Number.isFinite(p.keepRecentMessages)) t.keepRecentMessages = Math.floor(p.keepRecentMessages);
200
- if (typeof p.evictionWindow === "number" && Number.isFinite(p.evictionWindow)) {
201
- const x = p.evictionWindow;
202
- if (x >= .1 && x <= .5) t.evictionWindow = x;
203
- }
204
- if (typeof p.retentionWindow === "number" && Number.isFinite(p.retentionWindow)) {
205
- const n = Math.floor(p.retentionWindow);
206
- if (n >= 3 && n <= 20) t.retentionWindow = n;
207
- }
208
- }
209
- }
210
- if (dPatch.pruning !== void 0) {
211
- const c = dPatch.pruning;
212
- if (c === null) delete def.pruning;
213
- else if (typeof c === "object" && !Array.isArray(c)) {
214
- const p = c;
215
- if (!def.pruning || typeof def.pruning !== "object") def.pruning = {};
216
- const t = def.pruning;
217
- if (p.enabled !== void 0) t.enabled = Boolean(p.enabled);
218
- if (typeof p.maxToolResultChars === "number" && Number.isFinite(p.maxToolResultChars)) t.maxToolResultChars = Math.floor(p.maxToolResultChars);
219
- if (typeof p.headKeepRatio === "number" && Number.isFinite(p.headKeepRatio)) t.headKeepRatio = p.headKeepRatio;
220
- if (typeof p.tailKeepRatio === "number" && Number.isFinite(p.tailKeepRatio)) t.tailKeepRatio = p.tailKeepRatio;
221
- }
222
- }
223
- if (dPatch.memory !== void 0) {
224
- const c = dPatch.memory;
225
- if (c === null) delete def.memory;
226
- else if (typeof c === "object" && !Array.isArray(c)) {
227
- const p = c;
228
- if (!def.memory || typeof def.memory !== "object") def.memory = {};
229
- const t = def.memory;
230
- if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
231
- else t.enabled = Boolean(p.enabled);
232
- if (p.useEnhancedSystem !== void 0) if (p.useEnhancedSystem === null) delete t.useEnhancedSystem;
233
- else t.useEnhancedSystem = Boolean(p.useEnhancedSystem);
234
- if (p.userProfileEnabled !== void 0) if (p.userProfileEnabled === null) delete t.userProfileEnabled;
235
- else t.userProfileEnabled = Boolean(p.userProfileEnabled);
236
- if (p.memoryCharLimit !== void 0) {
237
- if (p.memoryCharLimit === null) delete t.memoryCharLimit;
238
- else if (typeof p.memoryCharLimit === "number" && p.memoryCharLimit > 0) t.memoryCharLimit = Math.floor(p.memoryCharLimit);
239
- }
240
- if (p.userCharLimit !== void 0) {
241
- if (p.userCharLimit === null) delete t.userCharLimit;
242
- else if (typeof p.userCharLimit === "number" && p.userCharLimit > 0) t.userCharLimit = Math.floor(p.userCharLimit);
243
- }
244
- if (p.provider === "none" || p.provider === "stub") t.provider = p.provider;
245
- else if (p.provider === null) delete t.provider;
246
- if (p.injectionFrequency === "every-turn" || p.injectionFrequency === "first-turn") t.injectionFrequency = p.injectionFrequency;
247
- else if (p.injectionFrequency === null) delete t.injectionFrequency;
248
- if (p.contextCadence !== void 0) {
249
- if (p.contextCadence === null) delete t.contextCadence;
250
- else if (typeof p.contextCadence === "number" && p.contextCadence >= 1) t.contextCadence = Math.floor(p.contextCadence);
251
- }
252
- if (p.dialecticCadence !== void 0) {
253
- if (p.dialecticCadence === null) delete t.dialecticCadence;
254
- else if (typeof p.dialecticCadence === "number" && p.dialecticCadence >= 1) t.dialecticCadence = Math.floor(p.dialecticCadence);
255
- }
256
- if (p.dreaming !== void 0) {
257
- const d0 = p.dreaming;
258
- if (d0 === null) delete t.dreaming;
259
- else if (typeof d0 === "object" && d0 !== null && !Array.isArray(d0)) {
260
- if (!("dreaming" in t) || typeof t.dreaming !== "object") t.dreaming = {};
261
- const dt = t.dreaming;
262
- const dp = d0;
263
- if (dp.enabled !== void 0) if (dp.enabled === null) delete dt.enabled;
264
- else dt.enabled = Boolean(dp.enabled);
265
- if (dp.frequency !== void 0) {
266
- const v = dp.frequency;
267
- if (v === null || v === "") delete dt.frequency;
268
- else if (typeof v === "string") dt.frequency = v;
269
- }
270
- if (dp.timezone !== void 0) {
271
- const v = dp.timezone;
272
- if (v === null || v === "") delete dt.timezone;
273
- else if (typeof v === "string") dt.timezone = v;
274
- }
275
- if (dp.phases !== void 0 || dp.deep !== void 0) {
276
- if (!("phases" in dt) || typeof dt.phases !== "object" || dt.phases === null) dt.phases = {};
277
- const phases = dt.phases;
278
- if (!("deep" in phases) || typeof phases.deep !== "object" || phases.deep === null) phases.deep = {};
279
- const deep = phases.deep;
280
- const deepPatchRaw = typeof dp.phases === "object" && dp.phases !== null && !Array.isArray(dp.phases) ? dp.phases.deep : dp.deep;
281
- const deepPatch = typeof deepPatchRaw === "object" && deepPatchRaw !== null && !Array.isArray(deepPatchRaw) ? deepPatchRaw : null;
282
- if (deepPatch) {
283
- if (deepPatch.enabled !== void 0) if (deepPatch.enabled === null) delete deep.enabled;
284
- else deep.enabled = Boolean(deepPatch.enabled);
285
- if (deepPatch.minScore !== void 0) {
286
- const v = deepPatch.minScore;
287
- if (v === null) delete deep.minScore;
288
- else if (typeof v === "number" && Number.isFinite(v)) deep.minScore = v;
289
- }
290
- if (deepPatch.minRecallCount !== void 0) {
291
- const v = deepPatch.minRecallCount;
292
- if (v === null) delete deep.minRecallCount;
293
- else if (typeof v === "number" && Number.isFinite(v)) deep.minRecallCount = Math.floor(v);
294
- }
295
- if (deepPatch.limit !== void 0) {
296
- const v = deepPatch.limit;
297
- if (v === null) delete deep.limit;
298
- else if (typeof v === "number" && Number.isFinite(v)) deep.limit = Math.floor(v);
299
- }
300
- }
301
- }
302
- }
303
- }
304
- }
305
- }
306
- if (dPatch.sessionSearch !== void 0) {
307
- const c = dPatch.sessionSearch;
308
- if (c === null) delete def.sessionSearch;
309
- else if (typeof c === "object" && !Array.isArray(c)) {
310
- const p = c;
311
- if (!def.sessionSearch || typeof def.sessionSearch !== "object") def.sessionSearch = {};
312
- const t = def.sessionSearch;
313
- if (p.summaryModel !== void 0) {
314
- if (p.summaryModel === null || p.summaryModel === "") delete t.summaryModel;
315
- else if (typeof p.summaryModel === "string") t.summaryModel = p.summaryModel;
316
- }
317
- }
318
- }
319
- if (dPatch.backgroundReview !== void 0) {
320
- const c = dPatch.backgroundReview;
321
- if (c === null) delete def.backgroundReview;
322
- else if (typeof c === "object" && !Array.isArray(c)) {
323
- const p = c;
324
- if (!def.backgroundReview || typeof def.backgroundReview !== "object") def.backgroundReview = {};
325
- const t = def.backgroundReview;
326
- if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
327
- else t.enabled = Boolean(p.enabled);
328
- if (p.memoryNudgeInterval !== void 0) {
329
- if (p.memoryNudgeInterval === null) delete t.memoryNudgeInterval;
330
- else if (typeof p.memoryNudgeInterval === "number" && p.memoryNudgeInterval >= 0) t.memoryNudgeInterval = Math.floor(p.memoryNudgeInterval);
331
- }
332
- if (p.skillNudgeInterval !== void 0) {
333
- if (p.skillNudgeInterval === null) delete t.skillNudgeInterval;
334
- else if (typeof p.skillNudgeInterval === "number" && p.skillNudgeInterval >= 0) t.skillNudgeInterval = Math.floor(p.skillNudgeInterval);
335
- }
336
- if (p.maxToolRounds !== void 0) {
337
- if (p.maxToolRounds === null) delete t.maxToolRounds;
338
- else if (typeof p.maxToolRounds === "number" && p.maxToolRounds >= 1 && p.maxToolRounds <= 32) t.maxToolRounds = Math.floor(p.maxToolRounds);
339
- }
340
- if (p.maxHistoryMessages !== void 0) {
341
- if (p.maxHistoryMessages === null) delete t.maxHistoryMessages;
342
- else if (typeof p.maxHistoryMessages === "number" && p.maxHistoryMessages >= 10 && p.maxHistoryMessages <= 200) t.maxHistoryMessages = Math.floor(p.maxHistoryMessages);
343
- }
344
- if (p.maxDurationMs !== void 0) {
345
- if (p.maxDurationMs === null) delete t.maxDurationMs;
346
- else if (typeof p.maxDurationMs === "number" && p.maxDurationMs >= 3e4 && p.maxDurationMs <= 6e5) t.maxDurationMs = Math.floor(p.maxDurationMs);
347
- }
348
- }
349
- }
350
- if (dPatch.webExtract !== void 0) {
351
- const c = dPatch.webExtract;
352
- if (c === null) delete def.webExtract;
353
- else if (typeof c === "object" && !Array.isArray(c)) {
354
- const p = c;
355
- if (!def.webExtract || typeof def.webExtract !== "object") def.webExtract = {};
356
- const t = def.webExtract;
357
- if (p.model !== void 0) {
358
- if (p.model === null || p.model === "") delete t.model;
359
- else if (typeof p.model === "string") t.model = p.model;
360
- }
361
- if (p.maxLength !== void 0) {
362
- if (p.maxLength === null) delete t.maxLength;
363
- else if (typeof p.maxLength === "number" && p.maxLength > 0) t.maxLength = p.maxLength;
364
- }
365
- }
366
- }
367
- if (dPatch.delegate !== void 0) {
368
- const c = dPatch.delegate;
369
- if (c === null) delete def.delegate;
370
- else if (typeof c === "object" && !Array.isArray(c)) {
371
- const p = c;
372
- if (!def.delegate || typeof def.delegate !== "object") def.delegate = {};
373
- const t = def.delegate;
374
- if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
375
- else t.enabled = Boolean(p.enabled);
376
- }
377
- }
378
- if (dPatch.executeCode !== void 0) {
379
- const c = dPatch.executeCode;
380
- if (c === null) delete def.executeCode;
381
- else if (typeof c === "object" && !Array.isArray(c)) {
382
- const p = c;
383
- if (!def.executeCode || typeof def.executeCode !== "object") def.executeCode = {};
384
- const t = def.executeCode;
385
- if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
386
- else t.enabled = Boolean(p.enabled);
387
- }
388
- }
389
- if (dPatch.systemPromptOverride !== void 0) {
390
- const v = dPatch.systemPromptOverride;
391
- if (v === null || v === "") delete def.systemPromptOverride;
392
- else if (typeof v === "string") def.systemPromptOverride = v;
393
- }
394
- if (dPatch.skills !== void 0) {
395
- const v = dPatch.skills;
396
- if (v === null) delete def.skills;
397
- else if (Array.isArray(v) && v.every((x) => typeof x === "string")) def.skills = v;
398
- }
399
- if (dPatch.models !== void 0) {
400
- if (!def.models || typeof def.models !== "object") def.models = {};
401
- const modelsTarget = def.models;
402
- const modelPatch = dPatch.models;
403
- if (modelPatch === null) delete def.models;
404
- else if (typeof modelPatch === "object" && !Array.isArray(modelPatch)) {
405
- const p = modelPatch;
406
- if (Object.hasOwn(p, "chat")) {
407
- const chat = p.chat;
408
- if (chat === null) delete modelsTarget.chat;
409
- else {
410
- const normalizedChat = normalizePatchAgentModel(chat);
411
- if (normalizedChat === void 0) delete modelsTarget.chat;
412
- else modelsTarget.chat = normalizedChat;
413
- }
414
- }
415
- if (Object.hasOwn(p, "roles")) {
416
- const normalized = normalizePatchTypedModels({ roles: p.roles });
417
- if (normalized === void 0) {} else if (normalized === null) delete modelsTarget.roles;
418
- else modelsTarget.roles = normalized;
419
- }
420
- } else {
421
- const normalized = normalizePatchTypedModels(modelPatch);
422
- if (normalized === void 0) {} else if (normalized === null) delete modelsTarget.roles;
423
- else modelsTarget.roles = normalized;
424
- }
425
- if (def.models && Object.keys(def.models).length === 0) delete def.models;
426
- }
427
- if (dPatch.tools !== void 0) {
428
- const t0 = dPatch.tools;
429
- if (t0 === null) delete def.tools;
430
- else if (typeof t0 === "object" && !Array.isArray(t0)) {
431
- const p = t0;
432
- if (!def.tools || typeof def.tools !== "object") def.tools = {};
433
- const t = def.tools;
434
- if (p.disable !== void 0) {
435
- if (p.disable === null || Array.isArray(p.disable) && p.disable.length === 0) delete t.disable;
436
- else if (Array.isArray(p.disable) && p.disable.every((x) => typeof x === "string")) t.disable = p.disable;
437
- }
438
- }
439
- }
440
- if (dPatch.params !== void 0) {
441
- const v = dPatch.params;
442
- if (v === null) delete def.params;
443
- else if (typeof v === "object" && !Array.isArray(v) && v !== null) def.params = v;
444
- }
2
+ function applyAgentsPatch(_config, body) {
3
+ if (body.agents !== void 0) throw new Error("agents config patching was removed; use manifest-specific agent APIs");
445
4
  }
446
5
  //#endregion
447
6
  export { applyAgentsPatch };