@xopcai/xopc 0.0.115 → 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 (578) hide show
  1. package/README.md +26 -10
  2. package/README.zh-CN.md +26 -10
  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/schema/config-schema.d.ts +3 -3
  9. package/dist/extensions/telegram/src/command-handler.js +1 -2
  10. package/dist/extensions/telegram/src/command-handler.js.map +1 -1
  11. package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
  12. package/dist/extensions/telegram/xopc.extension.json +1 -1
  13. package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
  14. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DVnBfANm.js → agent-avatar-dicebear-BBLhJ2C6.js} +1 -1
  15. package/dist/gateway/static/root/assets/agents-C6xgagZd.js +71 -0
  16. package/dist/gateway/static/root/assets/app-management-settings-panel-CBpLONvG.js +1 -0
  17. package/dist/gateway/static/root/assets/{appearance-settings-BQpPSTHD.js → appearance-settings-CGcc54yj.js} +1 -1
  18. package/dist/gateway/static/root/assets/apps-page-DdDx0V4z.js +1 -0
  19. package/dist/gateway/static/root/assets/{archive-plugin-CXu-Csep.js → archive-plugin-DZsVqMhU.js} +1 -1
  20. package/dist/gateway/static/root/assets/{attachment-load-BAjgOoGY.js → attachment-load-CIol6JWX.js} +1 -1
  21. package/dist/gateway/static/root/assets/{binary-plugins-BSBgB2hO.js → binary-plugins-B3UauMfp.js} +1 -1
  22. package/dist/gateway/static/root/assets/{block-editor-BpXw9TTR.js → block-editor-2HJoFchH.js} +3 -3
  23. package/dist/gateway/static/root/assets/browser-settings-page-CUOO-PQk.js +8 -0
  24. package/dist/gateway/static/root/assets/capability-presets-api-XQoMTI0A.js +1 -0
  25. package/dist/gateway/static/root/assets/capability-presets-settings-panel-CfqF-kGr.js +1 -0
  26. package/dist/gateway/static/root/assets/{channels-settings-BbPUpzWB.js → channels-settings-BYyRzsex.js} +1 -1
  27. package/dist/gateway/static/root/assets/connectors-page-DIvEz4NX.js +2 -0
  28. package/dist/gateway/static/root/assets/cron-api-R41aQCX9.js +1 -0
  29. package/dist/gateway/static/root/assets/cron-page-D97nFqQD.js +3 -0
  30. package/dist/gateway/static/root/assets/dreaming-settings-Bceaw1PG.js +1 -0
  31. package/dist/gateway/static/root/assets/{extension-debug-page-D9kgUHCc.js → extension-debug-page-DX5WRE_t.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-page-CGyhXqzR.js → extension-page-Buah7Bw-.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-settings-page-DL8Xquqd.js → extension-settings-page-DuroLVnf.js} +1 -1
  34. package/dist/gateway/static/root/assets/{fetch-D0VXA932.js → fetch-B5zdl27C.js} +1 -1
  35. package/dist/gateway/static/root/assets/{format-interval-label-Be8SmgUw.js → format-interval-label-Dn_QKIqb.js} +1 -1
  36. package/dist/gateway/static/root/assets/gateway-config-api-gT4ZhE7h.js +1 -0
  37. package/dist/gateway/static/root/assets/gateway-settings-iISWAZRm.js +1 -0
  38. package/dist/gateway/static/root/assets/{gateway-startup-retry-DERUH61L.js → gateway-startup-retry-B3kL8KGY.js} +1 -1
  39. package/dist/gateway/static/root/assets/goal-detail-page-DCUROLMQ.js +1 -0
  40. package/dist/gateway/static/root/assets/{goals-config-api-BPmqWk90.js → goals-config-api-AR-fVh0P.js} +1 -1
  41. package/dist/gateway/static/root/assets/goals-page-Cpb21ezg.js +2 -0
  42. package/dist/gateway/static/root/assets/goals-settings-CPAuFwoD.js +1 -0
  43. package/dist/gateway/static/root/assets/{heartbeat-config-api-Bfdzr8oV.js → heartbeat-config-api-D7bKFEeO.js} +1 -1
  44. package/dist/gateway/static/root/assets/heartbeat-settings-CC69vNx0.js +1 -0
  45. package/dist/gateway/static/root/assets/index-CwhK8qCh.js +122 -0
  46. package/dist/gateway/static/root/assets/index-CyfhARL-.css +1 -0
  47. package/dist/gateway/static/root/assets/{interval-presets-utKbuCRY.js → interval-presets-0DtsnxE0.js} +1 -1
  48. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CjqS6c6V.js → keyboard-shortcuts-settings-BPREtN8B.js} +1 -1
  49. package/dist/gateway/static/root/assets/logs-page-DefCgF4o.js +2 -0
  50. package/dist/gateway/static/root/assets/{markdown-split-DW8C47iB.js → markdown-split-ChbR9LGO.js} +1 -1
  51. package/dist/gateway/static/root/assets/{media-plugins-D6HwDhDT.js → media-plugins-B82oP80n.js} +1 -1
  52. package/dist/gateway/static/root/assets/messages-Cf1O9JB0.js +3 -0
  53. package/dist/gateway/static/root/assets/models-hub-panel-DmKiIihT.js +2 -0
  54. package/dist/gateway/static/root/assets/note-detail-page-CxxfLRJZ.js +2 -0
  55. package/dist/gateway/static/root/assets/{note-image-lightbox-pJM35Pz5.js → note-image-lightbox-CDknITM3.js} +1 -1
  56. package/dist/gateway/static/root/assets/notes-page-X2slSx7V.js +1 -0
  57. package/dist/gateway/static/root/assets/{preview-open-alternatives-CVwHuyN6.js → preview-open-alternatives-DV3xQsWB.js} +1 -1
  58. package/dist/gateway/static/root/assets/remote-access-hub-BvmUWqgu.js +1 -0
  59. package/dist/gateway/static/root/assets/{save-bar-controls-Ba-UEk7x.js → save-bar-controls-BODCXnvY.js} +1 -1
  60. package/dist/gateway/static/root/assets/{schedule-field-CNN9595U.js → schedule-field-CgJSCD3B.js} +1 -1
  61. package/dist/gateway/static/root/assets/{schema-form-DnNMmtD5.js → schema-form-qtfEI6QM.js} +1 -1
  62. package/dist/gateway/static/root/assets/sessions-page-B0yESuuL.js +1 -0
  63. package/dist/gateway/static/root/assets/settings-advanced-gate-q2M8RKOo.js +1 -0
  64. package/dist/gateway/static/root/assets/{settings-collapsible-section-CmOz80i5.js → settings-collapsible-section-BHZKjVcS.js} +1 -1
  65. package/dist/gateway/static/root/assets/{settings-form-section-BmK7JJOV.js → settings-form-section-5i35D-J1.js} +1 -1
  66. package/dist/gateway/static/root/assets/settings-page-CGozabLD.js +1 -0
  67. package/dist/gateway/static/root/assets/setup-status-panel-FoOSe6nU.js +1 -0
  68. package/dist/gateway/static/root/assets/{share-preview-page-Dp2qGrHC.js → share-preview-page-B0H63tDv.js} +1 -1
  69. package/dist/gateway/static/root/assets/shares-settings-Cy5zWyYQ.js +1 -0
  70. package/dist/gateway/static/root/assets/skill-reload-api-DaZNFro9.js +1 -0
  71. package/dist/gateway/static/root/assets/skills-page-CnwtUzvw.js +2 -0
  72. package/dist/gateway/static/root/assets/system-settings-panel-DXs2VmBt.js +1 -0
  73. package/dist/gateway/static/root/assets/typed-models-lib-4gPuydz_.js +1 -0
  74. package/dist/gateway/static/root/assets/{use-channel-catalog-CHlO8J9G.js → use-channel-catalog-BCjP_VHb.js} +1 -1
  75. package/dist/gateway/static/root/assets/voice-api-key-field-DvKiOglO.js +1 -0
  76. package/dist/gateway/static/root/assets/{voice-player-store-DDDWYHvg.js → voice-player-store-BlF9V05n.js} +1 -1
  77. package/dist/gateway/static/root/assets/workflows-page-CAVZcONQ.js +18 -0
  78. package/dist/gateway/static/root/index.html +5 -5
  79. package/dist/package.js +1 -1
  80. package/dist/src/agent/agent-manager.d.ts +1 -1
  81. package/dist/src/agent/agent-manager.js +7 -8
  82. package/dist/src/agent/agent-manager.js.map +1 -1
  83. package/dist/src/agent/agent-scope.js +6 -8
  84. package/dist/src/agent/agent-scope.js.map +1 -1
  85. package/dist/src/agent/background-review/coordinator.js +0 -1
  86. package/dist/src/agent/background-review/coordinator.js.map +1 -1
  87. package/dist/src/agent/background-review/run-background-review.d.ts +0 -2
  88. package/dist/src/agent/background-review/run-background-review.js +2 -4
  89. package/dist/src/agent/background-review/run-background-review.js.map +1 -1
  90. package/dist/src/agent/background-review/settings.js +8 -7
  91. package/dist/src/agent/background-review/settings.js.map +1 -1
  92. package/dist/src/agent/bootstrap/bootstrap-context.d.ts +2 -2
  93. package/dist/src/agent/bootstrap/bootstrap-context.js +4 -4
  94. package/dist/src/agent/bootstrap/bootstrap-context.js.map +1 -1
  95. package/dist/src/agent/context/workspace-seed.js +1 -1
  96. package/dist/src/agent/embedded/run-for-session.js +1 -1
  97. package/dist/src/agent/embedded/run-for-session.js.map +1 -1
  98. package/dist/src/agent/fallback/candidates.js +6 -3
  99. package/dist/src/agent/fallback/candidates.js.map +1 -1
  100. package/dist/src/agent/goals/checklist-judge.d.ts +1 -0
  101. package/dist/src/agent/goals/checklist-judge.js +1 -1
  102. package/dist/src/agent/goals/checklist-judge.js.map +1 -1
  103. package/dist/src/agent/goals/evaluate-turn.d.ts +1 -0
  104. package/dist/src/agent/goals/evaluate-turn.js +1 -0
  105. package/dist/src/agent/goals/evaluate-turn.js.map +1 -1
  106. package/dist/src/agent/goals/post-turn.js +8 -1
  107. package/dist/src/agent/goals/post-turn.js.map +1 -1
  108. package/dist/src/agent/image/generation/runtime-types.d.ts +2 -0
  109. package/dist/src/agent/image/generation/runtime.js +1 -1
  110. package/dist/src/agent/image/generation/runtime.js.map +1 -1
  111. package/dist/src/agent/image/image-helpers.d.ts +1 -1
  112. package/dist/src/agent/image/image-helpers.js +4 -17
  113. package/dist/src/agent/image/image-helpers.js.map +1 -1
  114. package/dist/src/agent/image/image-model-fallback.js +1 -1
  115. package/dist/src/agent/image/image-model-fallback.js.map +1 -1
  116. package/dist/src/agent/image/inbound-image-handling.js +1 -1
  117. package/dist/src/agent/image/inbound-image-handling.js.map +1 -1
  118. package/dist/src/agent/image/tool-model-config.d.ts +1 -1
  119. package/dist/src/agent/image/tool-model-config.js +2 -2
  120. package/dist/src/agent/image/tool-model-config.js.map +1 -1
  121. package/dist/src/agent/image/understanding/pi-ai-provider.js +5 -2
  122. package/dist/src/agent/image/understanding/pi-ai-provider.js.map +1 -1
  123. package/dist/src/agent/image/understanding/provider-registry.d.ts +1 -0
  124. package/dist/src/agent/image/understanding/provider-registry.js +16 -2
  125. package/dist/src/agent/image/understanding/provider-registry.js.map +1 -1
  126. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +1 -1
  127. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +1 -1
  128. package/dist/src/agent/media-generation/runtime-shared.d.ts +5 -2
  129. package/dist/src/agent/media-generation/runtime-shared.js +1 -1
  130. package/dist/src/agent/media-generation/runtime-shared.js.map +1 -1
  131. package/dist/src/agent/memory/builtin-memory-store.d.ts +2 -0
  132. package/dist/src/agent/memory/builtin-memory-store.js +4 -0
  133. package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
  134. package/dist/src/agent/memory/builtin-provider.d.ts +31 -9
  135. package/dist/src/agent/memory/builtin-provider.js +261 -11
  136. package/dist/src/agent/memory/builtin-provider.js.map +1 -1
  137. package/dist/src/agent/memory/context-assembler.d.ts +10 -0
  138. package/dist/src/agent/memory/context-assembler.js +26 -0
  139. package/dist/src/agent/memory/context-assembler.js.map +1 -0
  140. package/dist/src/agent/memory/create-memory-manager.js +25 -7
  141. package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
  142. package/dist/src/agent/memory/dreaming/config.d.ts +1 -6
  143. package/dist/src/agent/memory/dreaming/config.js +8 -8
  144. package/dist/src/agent/memory/dreaming/config.js.map +1 -1
  145. package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +2 -0
  146. package/dist/src/agent/memory/dreaming/deep-promotion.js +24 -0
  147. package/dist/src/agent/memory/dreaming/deep-promotion.js.map +1 -1
  148. package/dist/src/agent/memory/index.d.ts +1 -0
  149. package/dist/src/agent/memory/index.js +4 -3
  150. package/dist/src/agent/memory/inject-prefetch.js +6 -2
  151. package/dist/src/agent/memory/inject-prefetch.js.map +1 -1
  152. package/dist/src/agent/memory/manager.d.ts +37 -1
  153. package/dist/src/agent/memory/manager.js +332 -40
  154. package/dist/src/agent/memory/manager.js.map +1 -1
  155. package/dist/src/agent/memory/memory-config.js +12 -15
  156. package/dist/src/agent/memory/memory-config.js.map +1 -1
  157. package/dist/src/agent/memory/plugin-discovery.d.ts +19 -5
  158. package/dist/src/agent/memory/plugin-discovery.js +97 -31
  159. package/dist/src/agent/memory/plugin-discovery.js.map +1 -1
  160. package/dist/src/agent/memory/provider.d.ts +20 -15
  161. package/dist/src/agent/memory/stub-memory-provider.d.ts +17 -2
  162. package/dist/src/agent/memory/stub-memory-provider.js +20 -3
  163. package/dist/src/agent/memory/stub-memory-provider.js.map +1 -1
  164. package/dist/src/agent/memory/types.d.ts +136 -0
  165. package/dist/src/agent/models/manager.d.ts +1 -1
  166. package/dist/src/agent/models/manager.js +1 -1
  167. package/dist/src/agent/models/manager.js.map +1 -1
  168. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +1 -1
  169. package/dist/src/agent/orchestration/agent-orchestrator.js +2 -1
  170. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  171. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +2 -2
  172. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
  173. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
  174. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +2 -6
  175. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +2 -8
  176. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +1 -1
  177. package/dist/src/agent/reply/post-compaction-context.js +11 -6
  178. package/dist/src/agent/reply/post-compaction-context.js.map +1 -1
  179. package/dist/src/agent/reply/startup-context.js +8 -9
  180. package/dist/src/agent/reply/startup-context.js.map +1 -1
  181. package/dist/src/agent/service/process-direct-streaming.js +1 -4
  182. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  183. package/dist/src/agent/service/session-context-report.js +1 -1
  184. package/dist/src/agent/service/session-context-report.js.map +1 -1
  185. package/dist/src/agent/service.js +21 -25
  186. package/dist/src/agent/service.js.map +1 -1
  187. package/dist/src/agent/service.types.d.ts +1 -2
  188. package/dist/src/agent/session/session-hydrator.js +1 -2
  189. package/dist/src/agent/session/session-hydrator.js.map +1 -1
  190. package/dist/src/agent/session/session-inspector.d.ts +1 -1
  191. package/dist/src/agent/session/session-inspector.js +9 -14
  192. package/dist/src/agent/session/session-inspector.js.map +1 -1
  193. package/dist/src/agent/skills/hub-pull.js +1 -1
  194. package/dist/src/agent/starter-agents.d.ts +1 -3
  195. package/dist/src/agent/starter-agents.js +13 -21
  196. package/dist/src/agent/starter-agents.js.map +1 -1
  197. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -2
  198. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
  199. package/dist/src/agent/tools/composio-tool.d.ts +8 -0
  200. package/dist/src/agent/tools/composio-tool.js +46 -0
  201. package/dist/src/agent/tools/composio-tool.js.map +1 -0
  202. package/dist/src/agent/tools/curated-memory-tool.d.ts +2 -5
  203. package/dist/src/agent/tools/curated-memory-tool.js +20 -16
  204. package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
  205. package/dist/src/agent/tools/factory.d.ts +0 -4
  206. package/dist/src/agent/tools/factory.js +32 -66
  207. package/dist/src/agent/tools/factory.js.map +1 -1
  208. package/dist/src/agent/tools/image-generate-tool.d.ts +1 -1
  209. package/dist/src/agent/tools/image-generate-tool.js +19 -14
  210. package/dist/src/agent/tools/image-generate-tool.js.map +1 -1
  211. package/dist/src/agent/tools/image-tool.js +1 -3
  212. package/dist/src/agent/tools/image-tool.js.map +1 -1
  213. package/dist/src/agent/tools/index.d.ts +1 -0
  214. package/dist/src/agent/tools/index.js +2 -1
  215. package/dist/src/agent/tools/memory-tool.d.ts +2 -2
  216. package/dist/src/agent/tools/memory-tool.js +39 -14
  217. package/dist/src/agent/tools/memory-tool.js.map +1 -1
  218. package/dist/src/agent/tools/session-search-tool.js +1 -3
  219. package/dist/src/agent/tools/session-search-tool.js.map +1 -1
  220. package/dist/src/agent/tools/web-extract.js +6 -5
  221. package/dist/src/agent/tools/web-extract.js.map +1 -1
  222. package/dist/src/agent/workflow/builtins/audit-repo.d.ts +1 -1
  223. package/dist/src/agent/workflow/builtins/audit-repo.js +15 -2
  224. package/dist/src/agent/workflow/builtins/audit-repo.js.map +1 -1
  225. package/dist/src/agent/workflow/builtins/client-proposal.d.ts +1 -1
  226. package/dist/src/agent/workflow/builtins/client-proposal.js +10 -1
  227. package/dist/src/agent/workflow/builtins/client-proposal.js.map +1 -1
  228. package/dist/src/agent/workflow/builtins/competitor-scan.d.ts +1 -1
  229. package/dist/src/agent/workflow/builtins/competitor-scan.js +16 -2
  230. package/dist/src/agent/workflow/builtins/competitor-scan.js.map +1 -1
  231. package/dist/src/agent/workflow/builtins/content-draft.d.ts +1 -1
  232. package/dist/src/agent/workflow/builtins/content-draft.js +15 -2
  233. package/dist/src/agent/workflow/builtins/content-draft.js.map +1 -1
  234. package/dist/src/agent/workflow/builtins/content-repurpose.d.ts +1 -1
  235. package/dist/src/agent/workflow/builtins/content-repurpose.js +10 -1
  236. package/dist/src/agent/workflow/builtins/content-repurpose.js.map +1 -1
  237. package/dist/src/agent/workflow/builtins/debug-incident.d.ts +1 -1
  238. package/dist/src/agent/workflow/builtins/debug-incident.js +9 -1
  239. package/dist/src/agent/workflow/builtins/debug-incident.js.map +1 -1
  240. package/dist/src/agent/workflow/builtins/decision-compare.d.ts +1 -1
  241. package/dist/src/agent/workflow/builtins/decision-compare.js +16 -2
  242. package/dist/src/agent/workflow/builtins/decision-compare.js.map +1 -1
  243. package/dist/src/agent/workflow/builtins/implementation-plan.d.ts +1 -1
  244. package/dist/src/agent/workflow/builtins/implementation-plan.js +11 -1
  245. package/dist/src/agent/workflow/builtins/implementation-plan.js.map +1 -1
  246. package/dist/src/agent/workflow/builtins/inbox-triage.d.ts +1 -1
  247. package/dist/src/agent/workflow/builtins/inbox-triage.js +11 -1
  248. package/dist/src/agent/workflow/builtins/inbox-triage.js.map +1 -1
  249. package/dist/src/agent/workflow/builtins/meeting-prep.d.ts +1 -1
  250. package/dist/src/agent/workflow/builtins/meeting-prep.js +9 -1
  251. package/dist/src/agent/workflow/builtins/meeting-prep.js.map +1 -1
  252. package/dist/src/agent/workflow/builtins/multi-perspective-review.d.ts +1 -1
  253. package/dist/src/agent/workflow/builtins/multi-perspective-review.js +9 -1
  254. package/dist/src/agent/workflow/builtins/multi-perspective-review.js.map +1 -1
  255. package/dist/src/agent/workflow/builtins/offer-design.d.ts +1 -1
  256. package/dist/src/agent/workflow/builtins/offer-design.js +10 -1
  257. package/dist/src/agent/workflow/builtins/offer-design.js.map +1 -1
  258. package/dist/src/agent/workflow/builtins/pr-review.d.ts +1 -1
  259. package/dist/src/agent/workflow/builtins/pr-review.js +9 -1
  260. package/dist/src/agent/workflow/builtins/pr-review.js.map +1 -1
  261. package/dist/src/agent/workflow/builtins/release-check.d.ts +1 -1
  262. package/dist/src/agent/workflow/builtins/release-check.js +10 -1
  263. package/dist/src/agent/workflow/builtins/release-check.js.map +1 -1
  264. package/dist/src/agent/workflow/builtins/research.d.ts +1 -1
  265. package/dist/src/agent/workflow/builtins/research.js +16 -2
  266. package/dist/src/agent/workflow/builtins/research.js.map +1 -1
  267. package/dist/src/agent/workflow/builtins/weekly-review.d.ts +1 -1
  268. package/dist/src/agent/workflow/builtins/weekly-review.js +9 -1
  269. package/dist/src/agent/workflow/builtins/weekly-review.js.map +1 -1
  270. package/dist/src/agent/workflow/subagent-runner.js +1 -3
  271. package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
  272. package/dist/src/agent-manifest/index.d.ts +4 -0
  273. package/dist/src/agent-manifest/index.js +10 -0
  274. package/dist/src/agent-manifest/index.js.map +1 -0
  275. package/dist/src/agent-manifest/prompt.d.ts +2 -0
  276. package/dist/src/agent-manifest/prompt.js +57 -0
  277. package/dist/src/agent-manifest/prompt.js.map +1 -0
  278. package/dist/src/agent-manifest/resolver.d.ts +11 -0
  279. package/dist/src/agent-manifest/resolver.js +93 -0
  280. package/dist/src/agent-manifest/resolver.js.map +1 -0
  281. package/dist/src/agent-manifest/schema.d.ts +778 -0
  282. package/dist/src/agent-manifest/schema.js +267 -0
  283. package/dist/src/agent-manifest/schema.js.map +1 -0
  284. package/dist/src/agent-manifest/validator.d.ts +24 -0
  285. package/dist/src/agent-manifest/validator.js +87 -0
  286. package/dist/src/agent-manifest/validator.js.map +1 -0
  287. package/dist/src/agent-runtime/boundary-guard.d.ts +12 -0
  288. package/dist/src/agent-runtime/boundary-guard.js +23 -0
  289. package/dist/src/agent-runtime/boundary-guard.js.map +1 -0
  290. package/dist/src/agent-runtime/index.d.ts +7 -0
  291. package/dist/src/agent-runtime/index.js +8 -0
  292. package/dist/src/agent-runtime/memory-runtime.d.ts +21 -0
  293. package/dist/src/agent-runtime/memory-runtime.js +50 -0
  294. package/dist/src/agent-runtime/memory-runtime.js.map +1 -0
  295. package/dist/src/agent-runtime/model-router.d.ts +11 -0
  296. package/dist/src/agent-runtime/model-router.js +16 -0
  297. package/dist/src/agent-runtime/model-router.js.map +1 -0
  298. package/dist/src/agent-runtime/run-trace.d.ts +27 -0
  299. package/dist/src/agent-runtime/run-trace.js +53 -0
  300. package/dist/src/agent-runtime/run-trace.js.map +1 -0
  301. package/dist/src/agent-runtime/runtime-profile.d.ts +24 -0
  302. package/dist/src/agent-runtime/runtime-profile.js +44 -0
  303. package/dist/src/agent-runtime/runtime-profile.js.map +1 -0
  304. package/dist/src/agent-runtime/tool-registry.d.ts +28 -0
  305. package/dist/src/agent-runtime/tool-registry.js +52 -0
  306. package/dist/src/agent-runtime/tool-registry.js.map +1 -0
  307. package/dist/src/agent-runtime/workflow-runtime.d.ts +31 -0
  308. package/dist/src/agent-runtime/workflow-runtime.js +34 -0
  309. package/dist/src/agent-runtime/workflow-runtime.js.map +1 -0
  310. package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
  311. package/dist/src/browser/actions/extension-registry-bridge.js.map +1 -1
  312. package/dist/src/browser/actions/registry.js +5 -8
  313. package/dist/src/browser/actions/registry.js.map +1 -1
  314. package/dist/src/browser/backend-from-config.d.ts +1 -1
  315. package/dist/src/browser/backend-from-config.js +50 -71
  316. package/dist/src/browser/backend-from-config.js.map +1 -1
  317. package/dist/src/browser/browser-command-timeout.d.ts +0 -1
  318. package/dist/src/browser/browser-command-timeout.js +3 -7
  319. package/dist/src/browser/browser-command-timeout.js.map +1 -1
  320. package/dist/src/browser/providers/browser-ext-install.d.ts +2 -12
  321. package/dist/src/browser/providers/browser-ext-install.js +3 -8
  322. package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
  323. package/dist/src/browser/readiness.js +16 -16
  324. package/dist/src/browser/readiness.js.map +1 -1
  325. package/dist/src/browser/schemas.js +1 -1
  326. package/dist/src/browser/schemas.js.map +1 -1
  327. package/dist/src/chat-commands/builtins/config.js +4 -4
  328. package/dist/src/chat-commands/builtins/config.js.map +1 -1
  329. package/dist/src/chat-commands/builtins/thinking.js +16 -42
  330. package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
  331. package/dist/src/chat-commands/config-paths.js +1 -1
  332. package/dist/src/chat-commands/config-paths.js.map +1 -1
  333. package/dist/src/chat-commands/context.js +3 -4
  334. package/dist/src/chat-commands/context.js.map +1 -1
  335. package/dist/src/cli/command-manifest.js +1 -1
  336. package/dist/src/cli/command-manifest.js.map +1 -1
  337. package/dist/src/cli/commands/agent.js +3 -1
  338. package/dist/src/cli/commands/agent.js.map +1 -1
  339. package/dist/src/cli/commands/agents.js +3 -6
  340. package/dist/src/cli/commands/agents.js.map +1 -1
  341. package/dist/src/cli/commands/browser-cli-helpers.js +9 -11
  342. package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
  343. package/dist/src/cli/commands/config.js +5 -5
  344. package/dist/src/cli/commands/config.js.map +1 -1
  345. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  346. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -17
  347. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
  348. package/dist/src/cli/commands/goal.js +1 -1
  349. package/dist/src/cli/commands/image.js +13 -372
  350. package/dist/src/cli/commands/image.js.map +1 -1
  351. package/dist/src/cli/commands/models.js +26 -10
  352. package/dist/src/cli/commands/models.js.map +1 -1
  353. package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
  354. package/dist/src/cli/commands/onboard/model.js +20 -22
  355. package/dist/src/cli/commands/onboard/model.js.map +1 -1
  356. package/dist/src/cli/commands/onboard.js +1 -1
  357. package/dist/src/cli/commands/onboard.js.map +1 -1
  358. package/dist/src/cli/utils/init-workspace-core.d.ts +1 -4
  359. package/dist/src/cli/utils/init-workspace-core.js +7 -6
  360. package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
  361. package/dist/src/commands/agents.config.d.ts +0 -1
  362. package/dist/src/commands/agents.config.js +66 -12
  363. package/dist/src/commands/agents.config.js.map +1 -1
  364. package/dist/src/config/agent-profile.d.ts +5 -17
  365. package/dist/src/config/agent-profile.js +31 -64
  366. package/dist/src/config/agent-profile.js.map +1 -1
  367. package/dist/src/config/agent-typed-models.d.ts +1 -1
  368. package/dist/src/config/agent-typed-models.js +0 -1
  369. package/dist/src/config/agent-typed-models.js.map +1 -1
  370. package/dist/src/config/index.js +3 -3
  371. package/dist/src/config/integration.d.ts +1 -1
  372. package/dist/src/config/reload.js +1 -1
  373. package/dist/src/config/reload.js.map +1 -1
  374. package/dist/src/config/rules.js +6 -56
  375. package/dist/src/config/rules.js.map +1 -1
  376. package/dist/src/config/schema.d.ts +925 -781
  377. package/dist/src/config/schema.js +157 -424
  378. package/dist/src/config/schema.js.map +1 -1
  379. package/dist/src/connectors/composio-triggers.d.ts +10 -0
  380. package/dist/src/connectors/composio-triggers.js +32 -0
  381. package/dist/src/connectors/composio-triggers.js.map +1 -0
  382. package/dist/src/connectors/composio.d.ts +54 -0
  383. package/dist/src/connectors/composio.js +334 -0
  384. package/dist/src/connectors/composio.js.map +1 -0
  385. package/dist/src/connectors/health.js +16 -1
  386. package/dist/src/connectors/health.js.map +1 -1
  387. package/dist/src/connectors/install.d.ts +2 -1
  388. package/dist/src/connectors/install.js +50 -13
  389. package/dist/src/connectors/install.js.map +1 -1
  390. package/dist/src/connectors/instances.js +57 -6
  391. package/dist/src/connectors/instances.js.map +1 -1
  392. package/dist/src/connectors/lifecycle.d.ts +3 -0
  393. package/dist/src/connectors/lifecycle.js +23 -0
  394. package/dist/src/connectors/lifecycle.js.map +1 -0
  395. package/dist/src/connectors/materialize.js +2 -1
  396. package/dist/src/connectors/materialize.js.map +1 -1
  397. package/dist/src/connectors/providers.d.ts +1 -0
  398. package/dist/src/connectors/providers.js +10 -2
  399. package/dist/src/connectors/providers.js.map +1 -1
  400. package/dist/src/connectors/registries/modelscope.d.ts +2 -0
  401. package/dist/src/connectors/registries/modelscope.js +205 -0
  402. package/dist/src/connectors/registries/modelscope.js.map +1 -0
  403. package/dist/src/connectors/registries/official-mcp.d.ts +2 -0
  404. package/dist/src/connectors/registries/official-mcp.js +142 -0
  405. package/dist/src/connectors/registries/official-mcp.js.map +1 -0
  406. package/dist/src/connectors/registries/search.d.ts +12 -0
  407. package/dist/src/connectors/registries/search.js +89 -0
  408. package/dist/src/connectors/registries/search.js.map +1 -0
  409. package/dist/src/connectors/registries/smithery.d.ts +2 -0
  410. package/dist/src/connectors/registries/smithery.js +98 -0
  411. package/dist/src/connectors/registries/smithery.js.map +1 -0
  412. package/dist/src/connectors/registries/types.d.ts +20 -0
  413. package/dist/src/connectors/registries/types.js +1 -0
  414. package/dist/src/connectors/secret-store.js +4 -2
  415. package/dist/src/connectors/secret-store.js.map +1 -1
  416. package/dist/src/connectors/setup-secrets.d.ts +15 -0
  417. package/dist/src/connectors/setup-secrets.js +64 -0
  418. package/dist/src/connectors/setup-secrets.js.map +1 -0
  419. package/dist/src/connectors/supervisor.d.ts +15 -0
  420. package/dist/src/connectors/supervisor.js +73 -0
  421. package/dist/src/connectors/supervisor.js.map +1 -0
  422. package/dist/src/connectors/types.d.ts +27 -3
  423. package/dist/src/connectors/usage.js +6 -1
  424. package/dist/src/connectors/usage.js.map +1 -1
  425. package/dist/src/cron/index.js +1 -1
  426. package/dist/src/cron/service.js +1 -1
  427. package/dist/src/cron/validation.d.ts +3 -3
  428. package/dist/src/extensions/activation-context.js +13 -7
  429. package/dist/src/extensions/activation-context.js.map +1 -1
  430. package/dist/src/gateway/agents-admin.d.ts +17 -18
  431. package/dist/src/gateway/agents-admin.js +123 -88
  432. package/dist/src/gateway/agents-admin.js.map +1 -1
  433. package/dist/src/gateway/capability-presets-admin.d.ts +56 -0
  434. package/dist/src/gateway/capability-presets-admin.js +214 -0
  435. package/dist/src/gateway/capability-presets-admin.js.map +1 -0
  436. package/dist/src/gateway/hono/lib/agent-model.d.ts +1 -1
  437. package/dist/src/gateway/hono/lib/agent-model.js +1 -1
  438. package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
  439. package/dist/src/gateway/hono/lib/config-payload.d.ts +234 -127
  440. package/dist/src/gateway/hono/lib/config-payload.js +13 -37
  441. package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
  442. package/dist/src/gateway/hono/routes/agents.js +56 -33
  443. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  444. package/dist/src/gateway/hono/routes/browser.js +8 -15
  445. package/dist/src/gateway/hono/routes/browser.js.map +1 -1
  446. package/dist/src/gateway/hono/routes/capability-presets.d.ts +3 -0
  447. package/dist/src/gateway/hono/routes/capability-presets.js +145 -0
  448. package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -0
  449. package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +1 -17
  450. package/dist/src/gateway/hono/routes/config-patch/agents.js +2 -443
  451. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
  452. package/dist/src/gateway/hono/routes/config-patch/misc.js +7 -1
  453. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
  454. package/dist/src/gateway/hono/routes/config.js +1 -1
  455. package/dist/src/gateway/hono/routes/config.js.map +1 -1
  456. package/dist/src/gateway/hono/routes/connectors.js +230 -3
  457. package/dist/src/gateway/hono/routes/connectors.js.map +1 -1
  458. package/dist/src/gateway/hono/routes/dreaming.js +7 -0
  459. package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
  460. package/dist/src/gateway/hono/routes/goals.js +52 -5
  461. package/dist/src/gateway/hono/routes/goals.js.map +1 -1
  462. package/dist/src/gateway/hono/routes/index.js +2 -0
  463. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  464. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  465. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  466. package/dist/src/gateway/hono/routes/memory.d.ts +3 -0
  467. package/dist/src/gateway/hono/routes/memory.js +290 -0
  468. package/dist/src/gateway/hono/routes/memory.js.map +1 -0
  469. package/dist/src/gateway/hono/routes/voice.js +14 -1
  470. package/dist/src/gateway/hono/routes/voice.js.map +1 -1
  471. package/dist/src/gateway/hono/sse.js.map +1 -1
  472. package/dist/src/gateway/service/agent-runner.d.ts +5 -12
  473. package/dist/src/gateway/service/agent-runner.js +8 -8
  474. package/dist/src/gateway/service/agent-runner.js.map +1 -1
  475. package/dist/src/gateway/service/run-gateway-agent.d.ts +2 -10
  476. package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
  477. package/dist/src/gateway/service.d.ts +2 -2
  478. package/dist/src/gateway/service.js +20 -16
  479. package/dist/src/gateway/service.js.map +1 -1
  480. package/dist/src/gateway/user-turn-input.d.ts +18 -0
  481. package/dist/src/gateway/user-turn-input.js +16 -0
  482. package/dist/src/gateway/user-turn-input.js.map +1 -0
  483. package/dist/src/goals/goal-queue-store.d.ts +2 -1
  484. package/dist/src/goals/goal-queue-store.js +2 -2
  485. package/dist/src/goals/goal-queue-store.js.map +1 -1
  486. package/dist/src/goals/goal-queue-types.d.ts +4 -3
  487. package/dist/src/goals/goal-runner.js +25 -3
  488. package/dist/src/goals/goal-runner.js.map +1 -1
  489. package/dist/src/goals/goal-service.d.ts +6 -1
  490. package/dist/src/goals/goal-service.js +9 -2
  491. package/dist/src/goals/goal-service.js.map +1 -1
  492. package/dist/src/goals/goal-store.d.ts +7 -1
  493. package/dist/src/goals/goal-store.js +42 -0
  494. package/dist/src/goals/goal-store.js.map +1 -1
  495. package/dist/src/goals/types.d.ts +10 -0
  496. package/dist/src/notes/agent-context.js +2 -2
  497. package/dist/src/providers/index.d.ts +2 -2
  498. package/dist/src/providers/index.js +10 -14
  499. package/dist/src/providers/index.js.map +1 -1
  500. package/dist/src/session/index.js +1 -1
  501. package/dist/src/session/session-workspace.js +7 -2
  502. package/dist/src/session/session-workspace.js.map +1 -1
  503. package/dist/src/session/store.js +5 -0
  504. package/dist/src/session/store.js.map +1 -1
  505. package/dist/src/session/thinking-resolve.d.ts +1 -1
  506. package/dist/src/session/thinking-resolve.js +1 -1
  507. package/dist/src/session/thinking-resolve.js.map +1 -1
  508. package/dist/src/storage/sqlite/connection.js +1 -1
  509. package/dist/src/storage/sqlite/index.d.ts +1 -0
  510. package/dist/src/storage/sqlite/index.js +2 -1
  511. package/dist/src/storage/sqlite/memory-records-repository.d.ts +101 -0
  512. package/dist/src/storage/sqlite/memory-records-repository.js +309 -0
  513. package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -0
  514. package/dist/src/storage/sqlite/migrations/011_goal_context_messages.sql +8 -0
  515. package/dist/src/storage/sqlite/migrations/012_memory_records.sql +63 -0
  516. package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +21 -0
  517. package/dist/src/storage/sqlite/migrations/runner.d.ts +2 -2
  518. package/dist/src/storage/sqlite/migrations/runner.js +4 -4
  519. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  520. package/dist/src/storage/sqlite/migrations/runner.ts +2 -2
  521. package/dist/src/storage/sqlite/schema.js +3 -3
  522. package/dist/src/storage/sqlite/schema.sql +95 -0
  523. package/dist/src/tui/backends/embedded-backend.js +6 -4
  524. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  525. package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
  526. package/dist/src/voice/tts/openai-compatible-speech.d.ts +1 -1
  527. package/dist/src/voice/tts/openai-compatible-speech.js.map +1 -1
  528. package/dist/src/voice/tts/providers/edge-speech.js +14 -2
  529. package/dist/src/voice/tts/providers/edge-speech.js.map +1 -1
  530. package/dist/src/voice/tts/speak-core.js +3 -3
  531. package/dist/src/voice/tts/speak-core.js.map +1 -1
  532. package/dist/src/voice/tts/speech-provider-types.d.ts +2 -2
  533. package/dist/src/voice/tts/types.js +1 -1
  534. package/dist/src/voice/tts/types.js.map +1 -1
  535. package/dist/src/workflows/domain/result.d.ts +0 -1
  536. package/dist/src/workflows/engine/workflow-engine.js +7 -23
  537. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  538. package/dist/src/workflows/service/workflow-run-service.js +3 -4
  539. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  540. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  541. package/package.json +4 -3
  542. package/dist/gateway/static/root/assets/agent-browser-settings-page-DPXc4hz8.js +0 -6
  543. package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-CTJ0YnRQ.js +0 -1
  544. package/dist/gateway/static/root/assets/agents-zJXQfJ_W.js +0 -71
  545. package/dist/gateway/static/root/assets/app-management-settings-panel-DzGbdr04.js +0 -1
  546. package/dist/gateway/static/root/assets/apps-page-CPjfyzSD.js +0 -1
  547. package/dist/gateway/static/root/assets/config-api-NOoPiIYz.js +0 -3
  548. package/dist/gateway/static/root/assets/connectors-settings-CAXYMOdp.js +0 -2
  549. package/dist/gateway/static/root/assets/cron-api-C9BOqAXd.js +0 -1
  550. package/dist/gateway/static/root/assets/cron-page-DuUbBeKI.js +0 -3
  551. package/dist/gateway/static/root/assets/dreaming-settings-DQ4DtiK1.js +0 -1
  552. package/dist/gateway/static/root/assets/gateway-config-api-C-xjn__h.js +0 -1
  553. package/dist/gateway/static/root/assets/gateway-settings-BMPwIjKI.js +0 -1
  554. package/dist/gateway/static/root/assets/goal-detail-page-BJsyjJnF.js +0 -1
  555. package/dist/gateway/static/root/assets/goals-page-BerDgIhw.js +0 -2
  556. package/dist/gateway/static/root/assets/goals-settings-ByTjeAto.js +0 -1
  557. package/dist/gateway/static/root/assets/heartbeat-settings-TbHgcjTn.js +0 -1
  558. package/dist/gateway/static/root/assets/index-AkTrf6Pb.js +0 -122
  559. package/dist/gateway/static/root/assets/index-fh5sXTj9.css +0 -1
  560. package/dist/gateway/static/root/assets/logs-page-DGXuPf5B.js +0 -2
  561. package/dist/gateway/static/root/assets/messages-upgxw6Ub.js +0 -3
  562. package/dist/gateway/static/root/assets/models-hub-panel-Bot16nn7.js +0 -2
  563. package/dist/gateway/static/root/assets/note-detail-page-Brlyou8M.js +0 -2
  564. package/dist/gateway/static/root/assets/notes-page-DvZ4pwc-.js +0 -1
  565. package/dist/gateway/static/root/assets/remote-access-hub-BZEDmxbZ.js +0 -1
  566. package/dist/gateway/static/root/assets/sessions-page-DdGGlsfn.js +0 -1
  567. package/dist/gateway/static/root/assets/settings-advanced-gate-DlkEkPf9.js +0 -1
  568. package/dist/gateway/static/root/assets/settings-page-DFPTrsPF.js +0 -1
  569. package/dist/gateway/static/root/assets/setup-status-panel-CYCCfgh4.js +0 -1
  570. package/dist/gateway/static/root/assets/shares-settings-Bff1pGd0.js +0 -1
  571. package/dist/gateway/static/root/assets/skill-reload-api-CJGKpBur.js +0 -1
  572. package/dist/gateway/static/root/assets/skills-page-C6ocduTD.js +0 -2
  573. package/dist/gateway/static/root/assets/system-settings-panel-5jrIEr5b.js +0 -1
  574. package/dist/gateway/static/root/assets/use-agent-defaults-form-BuiXLIs5.js +0 -1
  575. package/dist/gateway/static/root/assets/use-settings-tab-guard-CW5JORnl.js +0 -1
  576. package/dist/gateway/static/root/assets/voice-api-key-field-DDoQyghO.js +0 -1
  577. package/dist/gateway/static/root/assets/workflow-page.utils-CKjeEGqx.js +0 -1
  578. package/dist/gateway/static/root/assets/workflows-page-B604ehHG.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 };