@xopcai/xopc 0.0.82 → 0.0.83

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 (704) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/feishu/src/outbound/media-load.js +2 -3
  5. package/dist/extensions/feishu/src/outbound/media-load.js.map +1 -1
  6. package/dist/extensions/feishu/src/schema/config-schema.d.ts +6 -6
  7. package/dist/extensions/telegram/src/config-schema.d.ts +6 -6
  8. package/dist/extensions/telegram/src/plugin.d.ts +1 -1
  9. package/dist/extensions/telegram/src/plugin.js +1 -1
  10. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  11. package/dist/extensions/telegram/xopc.extension.json +1 -1
  12. package/dist/extensions/weixin/src/api/api.js +3 -3
  13. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  14. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  15. package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
  16. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  17. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  18. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  19. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  20. package/dist/extensions/weixin/src/plugin.js +1 -1
  21. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  22. package/dist/gateway/static/root/assets/agents-CrpYTHJS.js +222 -0
  23. package/dist/gateway/static/root/assets/{apps-page-pJ27dsqn.js → apps-page-1mcKh5Rh.js} +1 -1
  24. package/dist/gateway/static/root/assets/channels-settings-zd6QNKPx.js +1 -0
  25. package/dist/gateway/static/root/assets/{channels-status-swr-D1KYmOmi.js → channels-status-swr-uRAuhiUo.js} +1 -1
  26. package/dist/gateway/static/root/assets/{cron-api-Y2wfSJVI.js → cron-api-O2Q_ruV6.js} +1 -1
  27. package/dist/gateway/static/root/assets/{cron-page-B97KU_RG.js → cron-page-By09AQD-.js} +1 -1
  28. package/dist/gateway/static/root/assets/{dist-CboA_Css.js → dist-BpQxde0t.js} +1 -1
  29. package/dist/gateway/static/root/assets/{extension-debug-page-DN_zNmpo.js → extension-debug-page-CY27wj_p.js} +1 -1
  30. package/dist/gateway/static/root/assets/{extension-page-BUXtOzv5.js → extension-page-C-Ed5ZmP.js} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-settings-page-C2dX4KCW.js → extension-settings-page-raLux7E7.js} +1 -1
  32. package/dist/gateway/static/root/assets/fetch-2iRFmd3n.js +3 -0
  33. package/dist/gateway/static/root/assets/{field-primitives-B9rOLqdm.js → field-primitives-fa_hiQcX.js} +1 -1
  34. package/dist/gateway/static/root/assets/{heartbeat-config-api-DvfiRVrc.js → heartbeat-config-api-BVl5VHvL.js} +1 -1
  35. package/dist/gateway/static/root/assets/index-BuFldCsB.css +1 -0
  36. package/dist/gateway/static/root/assets/{index-DQuaMye9.js → index-Y-iqo-gL.js} +94 -85
  37. package/dist/gateway/static/root/assets/{logs-page-BQuBpHcc.js → logs-page-BdH2n7ZW.js} +1 -1
  38. package/dist/gateway/static/root/assets/sessions-page-Vpchzdp-.js +1 -0
  39. package/dist/gateway/static/root/assets/{settings-form-section-2Yu-FASs.js → settings-form-section-Kk1yAGBl.js} +1 -1
  40. package/dist/gateway/static/root/assets/settings-page-KBm0u6Dz.js +3 -0
  41. package/dist/gateway/static/root/assets/skills-page-BjeXXaOn.js +2 -0
  42. package/dist/gateway/static/root/assets/{theme-store-DnwYutiX.js → theme-store-D01dJt95.js} +1 -1
  43. package/dist/gateway/static/root/assets/{utils-D2Gn2qod.js → utils-DpTxN4AF.js} +1 -1
  44. package/dist/gateway/static/root/assets/voice-api-key-field-CwO8Cf01.js +1 -0
  45. package/dist/gateway/static/root/index.html +4 -4
  46. package/dist/package.js +1 -1
  47. package/dist/src/agent/agent-instance-gateway.d.ts +50 -0
  48. package/dist/src/agent/agent-instance-gateway.js +1 -0
  49. package/dist/src/agent/agent-manager.d.ts +20 -14
  50. package/dist/src/agent/agent-manager.js +74 -186
  51. package/dist/src/agent/agent-manager.js.map +1 -1
  52. package/dist/src/agent/background-review/coordinator.d.ts +61 -0
  53. package/dist/src/agent/background-review/coordinator.js +120 -0
  54. package/dist/src/agent/background-review/coordinator.js.map +1 -0
  55. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  56. package/dist/src/agent/child-agent-factory.d.ts +14 -0
  57. package/dist/src/agent/child-agent-factory.js +2 -8
  58. package/dist/src/agent/child-agent-factory.js.map +1 -1
  59. package/dist/src/agent/context/workspace-seed.js +3 -3
  60. package/dist/src/agent/embedded/index.d.ts +1 -2
  61. package/dist/src/agent/embedded/index.js +2 -3
  62. package/dist/src/agent/embedded/run-for-session.d.ts +2 -2
  63. package/dist/src/agent/embedded/run-for-session.js.map +1 -1
  64. package/dist/src/agent/embedded/runs.d.ts +32 -0
  65. package/dist/src/agent/embedded/runs.js +79 -19
  66. package/dist/src/agent/embedded/runs.js.map +1 -1
  67. package/dist/src/agent/embedded/session-manager-cache.d.ts +14 -0
  68. package/dist/src/agent/embedded/session-manager-cache.js +32 -11
  69. package/dist/src/agent/embedded/session-manager-cache.js.map +1 -1
  70. package/dist/src/agent/embedded/session-runner.d.ts +37 -7
  71. package/dist/src/agent/embedded/session-runner.js +184 -153
  72. package/dist/src/agent/embedded/session-runner.js.map +1 -1
  73. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +57 -9
  74. package/dist/src/agent/embedded/session-tool-result-guard.js +159 -67
  75. package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
  76. package/dist/src/agent/goals/goal-run-store.js +4 -4
  77. package/dist/src/agent/goals/persistent-goal-service.d.ts +84 -0
  78. package/dist/src/agent/goals/persistent-goal-service.js +139 -0
  79. package/dist/src/agent/goals/persistent-goal-service.js.map +1 -0
  80. package/dist/src/agent/goals/post-turn.js +2 -2
  81. package/dist/src/agent/goals/state.d.ts +1 -1
  82. package/dist/src/agent/goals/state.js.map +1 -1
  83. package/dist/src/agent/image/load-image-media.js +1 -1
  84. package/dist/src/agent/inbound/inbound-loop.d.ts +77 -0
  85. package/dist/src/agent/inbound/inbound-loop.js +226 -0
  86. package/dist/src/agent/inbound/inbound-loop.js.map +1 -0
  87. package/dist/src/agent/inbound/turn-dispatcher.d.ts +80 -0
  88. package/dist/src/agent/inbound/turn-dispatcher.js +138 -0
  89. package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -0
  90. package/dist/src/agent/ipc/bus.js +1 -1
  91. package/dist/src/agent/ipc/inbox.js +2 -2
  92. package/dist/src/agent/ipc/socket.js +1 -1
  93. package/dist/src/agent/lifecycle/handlers/compaction.d.ts +1 -1
  94. package/dist/src/agent/lifecycle/handlers/compaction.js.map +1 -1
  95. package/dist/src/agent/lifecycle/manager.d.ts +1 -1
  96. package/dist/src/agent/lifecycle/manager.js.map +1 -1
  97. package/dist/src/agent/lifecycle/types.d.ts +1 -1
  98. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  99. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  100. package/dist/src/agent/memory/dreaming/events.js +1 -1
  101. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  102. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  103. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  104. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  105. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  106. package/dist/src/agent/memory/dreaming/utils.d.ts +12 -2
  107. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  108. package/dist/src/agent/memory/dreaming/utils.js.map +1 -1
  109. package/dist/src/agent/memory/index.js +3 -3
  110. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  111. package/dist/src/agent/memory/prefetch-coordinator.d.ts +37 -0
  112. package/dist/src/agent/memory/prefetch-coordinator.js +45 -0
  113. package/dist/src/agent/memory/prefetch-coordinator.js.map +1 -0
  114. package/dist/src/agent/messaging/command-handler.d.ts +5 -1
  115. package/dist/src/agent/messaging/command-handler.js +24 -96
  116. package/dist/src/agent/messaging/command-handler.js.map +1 -1
  117. package/dist/src/agent/messaging/index.d.ts +1 -0
  118. package/dist/src/agent/messaging/index.js +2 -1
  119. package/dist/src/agent/messaging/message-router.d.ts +1 -1
  120. package/dist/src/agent/messaging/message-router.js.map +1 -1
  121. package/dist/src/agent/messaging/outbound-coordinator.d.ts +82 -0
  122. package/dist/src/agent/messaging/outbound-coordinator.js +123 -0
  123. package/dist/src/agent/messaging/outbound-coordinator.js.map +1 -0
  124. package/dist/src/agent/models/manager.js +1 -1
  125. package/dist/src/agent/orchestration/agent-event-handler.d.ts +36 -33
  126. package/dist/src/agent/orchestration/agent-event-handler.js +212 -174
  127. package/dist/src/agent/orchestration/agent-event-handler.js.map +1 -1
  128. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +4 -4
  129. package/dist/src/agent/orchestration/agent-orchestrator.js +4 -8
  130. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  131. package/dist/src/agent/orchestration/index.d.ts +1 -1
  132. package/dist/src/agent/orchestration/index.js +2 -2
  133. package/dist/src/agent/prompt/service-prompt-builder.js +4 -4
  134. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  135. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  136. package/dist/src/agent/sandbox/path-policy.js +1 -1
  137. package/dist/src/agent/service/async-queue.d.ts +20 -0
  138. package/dist/src/agent/service/async-queue.js +53 -0
  139. package/dist/src/agent/service/async-queue.js.map +1 -0
  140. package/dist/src/agent/service/build-direct-message-content.d.ts +2 -2
  141. package/dist/src/agent/service/build-direct-message-content.js.map +1 -1
  142. package/dist/src/agent/service/direct-turn-helpers.d.ts +70 -0
  143. package/dist/src/agent/service/direct-turn-helpers.js +90 -0
  144. package/dist/src/agent/service/direct-turn-helpers.js.map +1 -0
  145. package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -3
  146. package/dist/src/agent/service/process-direct-one-shot.js +17 -34
  147. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  148. package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
  149. package/dist/src/agent/service/process-direct-streaming.js +122 -168
  150. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  151. package/dist/src/agent/service/webchat-tts.d.ts +2 -2
  152. package/dist/src/agent/service/webchat-tts.js +1 -1
  153. package/dist/src/agent/service/webchat-tts.js.map +1 -1
  154. package/dist/src/agent/service.d.ts +62 -167
  155. package/dist/src/agent/service.js +177 -786
  156. package/dist/src/agent/service.js.map +1 -1
  157. package/dist/src/agent/session/index.d.ts +4 -0
  158. package/dist/src/agent/session/index.js +5 -1
  159. package/dist/src/agent/session/session-config-service.d.ts +68 -0
  160. package/dist/src/agent/session/session-config-service.js +172 -0
  161. package/dist/src/agent/session/session-config-service.js.map +1 -0
  162. package/dist/src/agent/session/session-context.d.ts +27 -19
  163. package/dist/src/agent/session/session-context.js +39 -24
  164. package/dist/src/agent/session/session-context.js.map +1 -1
  165. package/dist/src/agent/session/session-hydrator.d.ts +42 -0
  166. package/dist/src/agent/session/session-hydrator.js +66 -0
  167. package/dist/src/agent/session/session-hydrator.js.map +1 -0
  168. package/dist/src/agent/session/session-inspector.d.ts +80 -0
  169. package/dist/src/agent/session/session-inspector.js +119 -0
  170. package/dist/src/agent/session/session-inspector.js.map +1 -0
  171. package/dist/src/agent/session/session-state-bag.d.ts +83 -0
  172. package/dist/src/agent/session/session-state-bag.js +192 -0
  173. package/dist/src/agent/session/session-state-bag.js.map +1 -0
  174. package/dist/src/agent/skills/config.js +1 -1
  175. package/dist/src/agent/skills/hub-hash.js +2 -2
  176. package/dist/src/agent/skills/hub-lock.js +1 -1
  177. package/dist/src/agent/skills/hub-pull.js +2 -2
  178. package/dist/src/agent/skills/index.d.ts +0 -2
  179. package/dist/src/agent/skills/index.js +3 -5
  180. package/dist/src/agent/skills/index.js.map +1 -1
  181. package/dist/src/agent/skills/managed-store.js +1 -1
  182. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +11 -6
  183. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +1 -1
  184. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +35 -7
  185. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +1 -1
  186. package/dist/src/agent/skills/scanner.js +1 -1
  187. package/dist/src/agent/skills/skill-manage-ops.js +2 -2
  188. package/dist/src/agent/skills/skill-manager.js +1 -1
  189. package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +7 -0
  190. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +37 -0
  191. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
  192. package/dist/src/agent/tools/delegate-tool.d.ts +7 -0
  193. package/dist/src/agent/tools/delegate-tool.js +2 -1
  194. package/dist/src/agent/tools/delegate-tool.js.map +1 -1
  195. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  196. package/dist/src/agent/tools/executor.d.ts +34 -15
  197. package/dist/src/agent/tools/executor.js +44 -79
  198. package/dist/src/agent/tools/executor.js.map +1 -1
  199. package/dist/src/agent/tools/factory.d.ts +6 -0
  200. package/dist/src/agent/tools/factory.js +63 -4
  201. package/dist/src/agent/tools/factory.js.map +1 -1
  202. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  203. package/dist/src/agent/tools/send-media.js +1 -1
  204. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  205. package/dist/src/agent/tools/skills-tools.js +1 -1
  206. package/dist/src/agent/tools/tts-tool.js +1 -1
  207. package/dist/src/agent/tools/write.js +1 -1
  208. package/dist/src/agent/workspace-runtime/registry.d.ts +48 -0
  209. package/dist/src/agent/workspace-runtime/registry.js +59 -0
  210. package/dist/src/agent/workspace-runtime/registry.js.map +1 -0
  211. package/dist/src/auth/credentials.js +3 -3
  212. package/dist/src/auth/profiles/store.js +1 -1
  213. package/dist/src/auth/sync-provider-auth.js +1 -1
  214. package/dist/src/browser/cdp-local-launcher.js +4 -3
  215. package/dist/src/browser/cdp-local-launcher.js.map +1 -1
  216. package/dist/src/browser/index.d.ts +1 -0
  217. package/dist/src/browser/index.js +2 -1
  218. package/dist/src/browser/manager.js +3 -2
  219. package/dist/src/browser/manager.js.map +1 -1
  220. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  221. package/dist/src/browser/providers/browser-use.js +2 -1
  222. package/dist/src/browser/providers/browser-use.js.map +1 -1
  223. package/dist/src/browser/providers/browserbase.js +2 -1
  224. package/dist/src/browser/providers/browserbase.js.map +1 -1
  225. package/dist/src/browser/providers/cloakbrowser.js +7 -6
  226. package/dist/src/browser/providers/cloakbrowser.js.map +1 -1
  227. package/dist/src/browser/providers/playwright-doctor.d.ts +2 -0
  228. package/dist/src/browser/providers/playwright-doctor.js +7 -3
  229. package/dist/src/browser/providers/playwright-doctor.js.map +1 -1
  230. package/dist/src/browser/readiness.d.ts +33 -0
  231. package/dist/src/browser/readiness.js +138 -0
  232. package/dist/src/browser/readiness.js.map +1 -0
  233. package/dist/src/browser/stealth.js +2 -2
  234. package/dist/src/channels/attachments/inbound-persist.js +1 -1
  235. package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
  236. package/dist/src/channels/channel-domain.d.ts +1 -1
  237. package/dist/src/channels/config-helpers.d.ts +1 -1
  238. package/dist/src/channels/config-helpers.js.map +1 -1
  239. package/dist/src/channels/heartbeat-scheduler.d.ts +40 -0
  240. package/dist/src/channels/heartbeat-scheduler.js +94 -0
  241. package/dist/src/channels/heartbeat-scheduler.js.map +1 -0
  242. package/dist/src/channels/lifecycle-supervisor.d.ts +81 -0
  243. package/dist/src/channels/lifecycle-supervisor.js +263 -0
  244. package/dist/src/channels/lifecycle-supervisor.js.map +1 -0
  245. package/dist/src/channels/manager.d.ts +34 -68
  246. package/dist/src/channels/manager.js +107 -477
  247. package/dist/src/channels/manager.js.map +1 -1
  248. package/dist/src/channels/outbound/deliver.d.ts +1 -1
  249. package/dist/src/channels/outbound/deliver.js.map +1 -1
  250. package/dist/src/channels/outbound/persist-store.js +1 -1
  251. package/dist/src/channels/outbound-sender.d.ts +51 -0
  252. package/dist/src/channels/outbound-sender.js +125 -0
  253. package/dist/src/channels/outbound-sender.js.map +1 -0
  254. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  255. package/dist/src/channels/pairing/pairing-service.d.ts +3 -10
  256. package/dist/src/channels/pairing/pairing-service.js.map +1 -1
  257. package/dist/src/channels/pairing/pairing-store.js +2 -2
  258. package/dist/src/channels/pairing/pairing-types.d.ts +15 -0
  259. package/dist/src/channels/pairing/pairing-types.js +1 -0
  260. package/dist/src/channels/plugin-registry.d.ts +22 -0
  261. package/dist/src/channels/plugin-registry.js +44 -0
  262. package/dist/src/channels/plugin-registry.js.map +1 -0
  263. package/dist/src/channels/plugin-types.d.ts +1 -1
  264. package/dist/src/channels/plugins/types.adapters.d.ts +2 -2
  265. package/dist/src/channels/security-helpers.d.ts +1 -1
  266. package/dist/src/channels/security-helpers.js.map +1 -1
  267. package/dist/src/channels/setup-wizard.d.ts +1 -1
  268. package/dist/src/chat-commands/builtins/config.js +2 -2
  269. package/dist/src/chat-commands/context.js +1 -1
  270. package/dist/src/cli/commands/agent/stream-renderer.js +1 -1
  271. package/dist/src/cli/commands/agent/stream-renderer.js.map +1 -1
  272. package/dist/src/cli/commands/agent.js +4 -4
  273. package/dist/src/cli/commands/agent.js.map +1 -1
  274. package/dist/src/cli/commands/browser-cli-helpers.js +2 -1
  275. package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
  276. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  277. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  278. package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
  279. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  280. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  281. package/dist/src/cli/commands/extension-dev.js +2 -2
  282. package/dist/src/cli/commands/extension-dev.js.map +1 -1
  283. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  284. package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
  285. package/dist/src/cli/commands/extension-pack.js +1 -1
  286. package/dist/src/cli/commands/gateway/call.js +1 -1
  287. package/dist/src/cli/commands/gateway/call.js.map +1 -1
  288. package/dist/src/cli/commands/gateway/health.js +1 -1
  289. package/dist/src/cli/commands/gateway/health.js.map +1 -1
  290. package/dist/src/cli/commands/gateway/lifecycle-core.d.ts +31 -12
  291. package/dist/src/cli/commands/gateway/lifecycle-core.js +167 -116
  292. package/dist/src/cli/commands/gateway/lifecycle-core.js.map +1 -1
  293. package/dist/src/cli/commands/gateway/lifecycle.d.ts +11 -0
  294. package/dist/src/cli/commands/gateway/lifecycle.js +102 -0
  295. package/dist/src/cli/commands/gateway/lifecycle.js.map +1 -0
  296. package/dist/src/cli/commands/gateway/logs.js +1 -1
  297. package/dist/src/cli/commands/gateway/logs.js.map +1 -1
  298. package/dist/src/cli/commands/gateway/probe.js +1 -1
  299. package/dist/src/cli/commands/gateway/probe.js.map +1 -1
  300. package/dist/src/cli/commands/gateway/restart-health.d.ts +12 -0
  301. package/dist/src/cli/commands/gateway/restart-health.js +45 -1
  302. package/dist/src/cli/commands/gateway/restart-health.js.map +1 -1
  303. package/dist/src/cli/commands/gateway/restart.js +3 -3
  304. package/dist/src/cli/commands/gateway/restart.js.map +1 -1
  305. package/dist/src/cli/commands/gateway/run-foreground.d.ts +0 -1
  306. package/dist/src/cli/commands/gateway/run-foreground.js +0 -35
  307. package/dist/src/cli/commands/gateway/run-foreground.js.map +1 -1
  308. package/dist/src/cli/commands/gateway/service.js +1 -1
  309. package/dist/src/cli/commands/gateway/service.js.map +1 -1
  310. package/dist/src/cli/commands/gateway/shared.d.ts +3 -0
  311. package/dist/src/cli/commands/gateway/shared.js +54 -0
  312. package/dist/src/cli/commands/gateway/shared.js.map +1 -0
  313. package/dist/src/cli/commands/gateway/status.js +1 -1
  314. package/dist/src/cli/commands/gateway/status.js.map +1 -1
  315. package/dist/src/cli/commands/gateway/stop.js +2 -2
  316. package/dist/src/cli/commands/gateway/stop.js.map +1 -1
  317. package/dist/src/cli/commands/gateway/token.js +1 -1
  318. package/dist/src/cli/commands/gateway/token.js.map +1 -1
  319. package/dist/src/cli/commands/gateway.js +5 -5
  320. package/dist/src/cli/commands/gateway.js.map +1 -1
  321. package/dist/src/cli/commands/image.js +2 -2
  322. package/dist/src/cli/commands/image.js.map +1 -1
  323. package/dist/src/cli/commands/init.js +4 -4
  324. package/dist/src/cli/commands/models.js +1 -1
  325. package/dist/src/cli/commands/models.js.map +1 -1
  326. package/dist/src/cli/commands/onboard/gateway.d.ts +0 -8
  327. package/dist/src/cli/commands/onboard/gateway.js +48 -49
  328. package/dist/src/cli/commands/onboard/gateway.js.map +1 -1
  329. package/dist/src/cli/commands/onboard.js +9 -64
  330. package/dist/src/cli/commands/onboard.js.map +1 -1
  331. package/dist/src/cli/commands/session/utils.js +1 -1
  332. package/dist/src/cli/commands/session/utils.js.map +1 -1
  333. package/dist/src/cli/commands/skills.js +1 -1
  334. package/dist/src/cli/commands/tailscale.js +1 -1
  335. package/dist/src/cli/commands/tailscale.js.map +1 -1
  336. package/dist/src/cli/context.d.ts +20 -0
  337. package/dist/src/cli/context.js +23 -0
  338. package/dist/src/cli/context.js.map +1 -0
  339. package/dist/src/cli/extension-cli-register.js +3 -3
  340. package/dist/src/cli/gateway-run-argv.js +1 -4
  341. package/dist/src/cli/gateway-run-argv.js.map +1 -1
  342. package/dist/src/cli/gateway-run-fast-path.js +1 -1
  343. package/dist/src/cli/gateway-run-fast-path.js.map +1 -1
  344. package/dist/src/cli/index.d.ts +1 -7
  345. package/dist/src/cli/index.js +4 -6
  346. package/dist/src/cli/index.js.map +1 -1
  347. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  348. package/dist/src/config/commands.flags.d.ts +3 -0
  349. package/dist/src/config/commands.flags.js +11 -0
  350. package/dist/src/config/commands.flags.js.map +1 -0
  351. package/dist/src/config/index.d.ts +1 -0
  352. package/dist/src/config/index.js +6 -5
  353. package/dist/src/config/index.js.map +1 -1
  354. package/dist/src/config/loader.js +2 -2
  355. package/dist/src/config/models-json.js +2 -2
  356. package/dist/src/config/profile.js +2 -2
  357. package/dist/src/config/schema.d.ts +11 -4
  358. package/dist/src/config/schema.js +13 -12
  359. package/dist/src/config/schema.js.map +1 -1
  360. package/dist/src/config/workspace-path-helpers.d.ts +15 -0
  361. package/dist/src/config/workspace-path-helpers.js +14 -0
  362. package/dist/src/config/workspace-path-helpers.js.map +1 -0
  363. package/dist/src/cron/executor.js +4 -4
  364. package/dist/src/cron/executor.js.map +1 -1
  365. package/dist/src/cron/persistence.js +1 -1
  366. package/dist/src/cron/run-log-store.js +1 -1
  367. package/dist/src/daemon/index.d.ts +0 -1
  368. package/dist/src/daemon/index.js +1 -2
  369. package/dist/src/daemon/install-plan.js +3 -2
  370. package/dist/src/daemon/install-plan.js.map +1 -1
  371. package/dist/src/daemon/launchd.js +2 -2
  372. package/dist/src/daemon/systemd.js +2 -2
  373. package/dist/src/daemon/types.d.ts +0 -6
  374. package/dist/src/extensions/api.d.ts +1 -1
  375. package/dist/src/extensions/api.js +2 -2
  376. package/dist/src/extensions/api.js.map +1 -1
  377. package/dist/src/extensions/bundle-mcp.js +1 -1
  378. package/dist/src/extensions/discover-extensions.js +1 -1
  379. package/dist/src/extensions/extension-registry-impl.d.ts +51 -0
  380. package/dist/src/extensions/extension-registry-impl.js +117 -0
  381. package/dist/src/extensions/extension-registry-impl.js.map +1 -0
  382. package/dist/src/extensions/health.js +1 -1
  383. package/dist/src/extensions/index.js +3 -2
  384. package/dist/src/extensions/loader.d.ts +3 -43
  385. package/dist/src/extensions/loader.js +3 -110
  386. package/dist/src/extensions/loader.js.map +1 -1
  387. package/dist/src/extensions/lockfile.js +2 -2
  388. package/dist/src/extensions/sdk/index.js +2 -1
  389. package/dist/src/extensions/sdk/index.js.map +1 -1
  390. package/dist/src/extensions/types/events.d.ts +7 -1
  391. package/dist/src/gateway/agents-admin.js +2 -2
  392. package/dist/src/gateway/file-path-classifier.js +2 -2
  393. package/dist/src/gateway/heartbeat/service.js +2 -2
  394. package/dist/src/gateway/heartbeat/service.js.map +1 -1
  395. package/dist/src/gateway/hono/app.js +5 -53
  396. package/dist/src/gateway/hono/app.js.map +1 -1
  397. package/dist/src/gateway/hono/lib/extension-store.js +1 -1
  398. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  399. package/dist/src/gateway/hono/middleware/auth.d.ts +5 -14
  400. package/dist/src/gateway/hono/middleware/auth.js +89 -126
  401. package/dist/src/gateway/hono/middleware/auth.js.map +1 -1
  402. package/dist/src/gateway/hono/middleware/logger.js +1 -1
  403. package/dist/src/gateway/hono/middleware/logger.js.map +1 -1
  404. package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +14 -0
  405. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +62 -0
  406. package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +1 -0
  407. package/dist/src/gateway/hono/oauth.js +1 -1
  408. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +4 -4
  409. package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +1 -1
  410. package/dist/src/gateway/hono/routes/browser.d.ts +20 -0
  411. package/dist/src/gateway/hono/routes/browser.js +626 -0
  412. package/dist/src/gateway/hono/routes/browser.js.map +1 -0
  413. package/dist/src/gateway/hono/routes/commands-skills.js +13 -13
  414. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  415. package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +18 -0
  416. package/dist/src/gateway/hono/routes/config-patch/agents.js +418 -0
  417. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -0
  418. package/dist/src/gateway/hono/routes/config-patch/channels.d.ts +12 -0
  419. package/dist/src/gateway/hono/routes/config-patch/channels.js +186 -0
  420. package/dist/src/gateway/hono/routes/config-patch/channels.js.map +1 -0
  421. package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +18 -0
  422. package/dist/src/gateway/hono/routes/config-patch/gateway.js +264 -0
  423. package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +1 -0
  424. package/dist/src/gateway/hono/routes/config-patch/index.d.ts +9 -0
  425. package/dist/src/gateway/hono/routes/config-patch/index.js +6 -0
  426. package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +23 -0
  427. package/dist/src/gateway/hono/routes/config-patch/misc.js +139 -0
  428. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -0
  429. package/dist/src/gateway/hono/routes/config-patch/result.d.ts +18 -0
  430. package/dist/src/gateway/hono/routes/config-patch/result.js +13 -0
  431. package/dist/src/gateway/hono/routes/config-patch/result.js.map +1 -0
  432. package/dist/src/gateway/hono/routes/config.js +20 -1764
  433. package/dist/src/gateway/hono/routes/config.js.map +1 -1
  434. package/dist/src/gateway/hono/routes/dreaming.js +2 -3
  435. package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
  436. package/dist/src/gateway/hono/routes/host-fs.js +1 -1
  437. package/dist/src/gateway/hono/routes/lazy-bundles.js +10 -5
  438. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  439. package/dist/src/gateway/hono/routes/mcp.js +1 -2
  440. package/dist/src/gateway/hono/routes/mcp.js.map +1 -1
  441. package/dist/src/gateway/hono/routes/models.js +1 -1
  442. package/dist/src/gateway/hono/routes/sessions.js +32 -32
  443. package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
  444. package/dist/src/gateway/hono/routes/shares.js +4 -4
  445. package/dist/src/gateway/hono/routes/shares.js.map +1 -1
  446. package/dist/src/gateway/hono/routes/tunnel.js +1 -1
  447. package/dist/src/gateway/hono/routes/tunnel.js.map +1 -1
  448. package/dist/src/gateway/hono/routes/workspace.js +6 -7
  449. package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
  450. package/dist/src/gateway/hono/sse.js +2 -2
  451. package/dist/src/gateway/index.d.ts +1 -1
  452. package/dist/src/gateway/index.js +4 -2
  453. package/dist/src/gateway/lock.js +3 -3
  454. package/dist/src/gateway/rate-limit/auth-policy.d.ts +34 -0
  455. package/dist/src/gateway/rate-limit/auth-policy.js +49 -0
  456. package/dist/src/gateway/rate-limit/auth-policy.js.map +1 -0
  457. package/dist/src/gateway/rate-limit/buckets.d.ts +63 -0
  458. package/dist/src/gateway/rate-limit/buckets.js +143 -0
  459. package/dist/src/gateway/rate-limit/buckets.js.map +1 -0
  460. package/dist/src/gateway/rate-limit/env-flags.d.ts +13 -0
  461. package/dist/src/gateway/rate-limit/env-flags.js +16 -0
  462. package/dist/src/gateway/rate-limit/env-flags.js.map +1 -0
  463. package/dist/src/gateway/rate-limit/index.d.ts +3 -0
  464. package/dist/src/gateway/rate-limit/index.js +4 -0
  465. package/dist/src/gateway/run-loop.d.ts +1 -1
  466. package/dist/src/gateway/run-loop.js +24 -4
  467. package/dist/src/gateway/run-loop.js.map +1 -1
  468. package/dist/src/gateway/runtime-config.js +2 -1
  469. package/dist/src/gateway/runtime-config.js.map +1 -1
  470. package/dist/src/gateway/security/audit.js +2 -1
  471. package/dist/src/gateway/security/audit.js.map +1 -1
  472. package/dist/src/gateway/security/index.d.ts +0 -1
  473. package/dist/src/gateway/security/index.js +1 -2
  474. package/dist/src/gateway/security/loopback.d.ts +13 -0
  475. package/dist/src/gateway/security/loopback.js +45 -0
  476. package/dist/src/gateway/security/loopback.js.map +1 -0
  477. package/dist/src/gateway/service/agent-runner.d.ts +108 -0
  478. package/dist/src/gateway/service/agent-runner.js +184 -0
  479. package/dist/src/gateway/service/agent-runner.js.map +1 -0
  480. package/dist/src/gateway/service/config-coordinator.d.ts +119 -0
  481. package/dist/src/gateway/service/config-coordinator.js +351 -0
  482. package/dist/src/gateway/service/config-coordinator.js.map +1 -0
  483. package/dist/src/gateway/service/marketplace-service.d.ts +85 -0
  484. package/dist/src/gateway/service/marketplace-service.js +239 -0
  485. package/dist/src/gateway/service/marketplace-service.js.map +1 -0
  486. package/dist/src/gateway/service/run-gateway-agent.js +5 -5
  487. package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
  488. package/dist/src/gateway/service/sessions-api.d.ts +125 -0
  489. package/dist/src/gateway/service/sessions-api.js +135 -0
  490. package/dist/src/gateway/service/sessions-api.js.map +1 -0
  491. package/dist/src/gateway/service.d.ts +30 -360
  492. package/dist/src/gateway/service.js +121 -903
  493. package/dist/src/gateway/service.js.map +1 -1
  494. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  495. package/dist/src/gateway/workspace-heartbeat-path.js +1 -2
  496. package/dist/src/gateway/workspace-heartbeat-path.js.map +1 -1
  497. package/dist/src/heartbeat/index.js +1 -1
  498. package/dist/src/infra/gateway-process-argv.d.ts +4 -0
  499. package/dist/src/infra/gateway-process-argv.js +26 -0
  500. package/dist/src/infra/gateway-process-argv.js.map +1 -0
  501. package/dist/src/infra/gateway-processes.d.ts +5 -0
  502. package/dist/src/infra/gateway-processes.js +65 -0
  503. package/dist/src/infra/gateway-processes.js.map +1 -0
  504. package/dist/src/infra/rate-limit/failure-limiter.d.ts +50 -0
  505. package/dist/src/infra/rate-limit/failure-limiter.js +100 -0
  506. package/dist/src/infra/rate-limit/failure-limiter.js.map +1 -0
  507. package/dist/src/infra/rate-limit/index.d.ts +5 -0
  508. package/dist/src/infra/rate-limit/index.js +3 -0
  509. package/dist/src/infra/rate-limit/keyed-store.d.ts +34 -0
  510. package/dist/src/infra/rate-limit/keyed-store.js +44 -0
  511. package/dist/src/infra/rate-limit/keyed-store.js.map +1 -0
  512. package/dist/src/infra/rate-limit/rate-limiter.d.ts +39 -0
  513. package/dist/src/infra/rate-limit/rate-limiter.js +65 -0
  514. package/dist/src/infra/rate-limit/rate-limiter.js.map +1 -0
  515. package/dist/src/infra/restart.d.ts +21 -0
  516. package/dist/src/infra/restart.js +122 -0
  517. package/dist/src/infra/restart.js.map +1 -0
  518. package/dist/src/infra/update-check.js +1 -1
  519. package/dist/src/infra/update-lock.js +3 -3
  520. package/dist/src/infra/update-runner.js +1 -1
  521. package/dist/src/infra/update-startup.js +2 -2
  522. package/dist/src/infra/write-file-atomic.js +2 -2
  523. package/dist/src/mcp/channel-bridge.d.ts +0 -6
  524. package/dist/src/mcp/channel-bridge.js +1 -5
  525. package/dist/src/mcp/channel-bridge.js.map +1 -1
  526. package/dist/src/media-shared/http/ssrf-guard.js +1 -1
  527. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  528. package/dist/src/providers/index.js +2 -2
  529. package/dist/src/providers/model-registry.js +1 -1
  530. package/dist/src/session/config-store.js +2 -2
  531. package/dist/src/session/parity/jsonl-transcript-io.js +2 -2
  532. package/dist/src/session/parity/sessions-json-file-read.d.ts +2 -1
  533. package/dist/src/session/parity/sessions-json-file-read.js.map +1 -1
  534. package/dist/src/session/parity/sessions-json-file.js +1 -1
  535. package/dist/src/session/parity/transcript-file-lock.js +2 -2
  536. package/dist/src/session/parity/transcript-paths.js +1 -1
  537. package/dist/src/session/search-index-cache.js +1 -1
  538. package/dist/src/session/search-index.js +1 -1
  539. package/dist/src/session/session-title.js +1 -1
  540. package/dist/src/session/store.js +5 -5
  541. package/dist/src/share/share-rate-limit.d.ts +10 -2
  542. package/dist/src/share/share-rate-limit.js +33 -42
  543. package/dist/src/share/share-rate-limit.js.map +1 -1
  544. package/dist/src/share/share-store.js +3 -3
  545. package/dist/src/tui/backends/embedded-backend.js +16 -12
  546. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  547. package/dist/src/tui/clipboard-image.js +2 -2
  548. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  549. package/dist/src/tui/format-tui-hotkeys.js +1 -1
  550. package/dist/src/tui/theme-manager.js +1 -1
  551. package/dist/src/tui/tui-keybindings-file.js +1 -1
  552. package/dist/src/tui/tui-scoped-models.js +1 -1
  553. package/dist/src/tui/tui-settings.js +1 -1
  554. package/dist/src/tui/tui-skills-autocomplete.js +1 -1
  555. package/dist/src/tui/tui.js +1 -2
  556. package/dist/src/tui/tui.js.map +1 -1
  557. package/dist/src/tui/xopc-tui-keybindings.d.ts +0 -1
  558. package/dist/src/tui/xopc-tui-keybindings.js +1 -2
  559. package/dist/src/tui/xopc-tui-keybindings.js.map +1 -1
  560. package/dist/src/tunnel/frpc-binary.js +2 -2
  561. package/dist/src/tunnel/frpc-config.js +1 -1
  562. package/dist/src/tunnel/frpc-extract.js +1 -1
  563. package/dist/src/tunnel/pairing-rate-limit.d.ts +10 -2
  564. package/dist/src/tunnel/pairing-rate-limit.js +19 -15
  565. package/dist/src/tunnel/pairing-rate-limit.js.map +1 -1
  566. package/dist/src/tunnel/tunnel-rate-limit.d.ts +6 -3
  567. package/dist/src/tunnel/tunnel-rate-limit.js +11 -22
  568. package/dist/src/tunnel/tunnel-rate-limit.js.map +1 -1
  569. package/dist/src/tunnel/tunnel-state.js +1 -1
  570. package/dist/src/utils/logger/audit.js +1 -1
  571. package/dist/src/utils/logger/log-store.js +1 -1
  572. package/dist/src/utils/logger/rotation.js +1 -1
  573. package/dist/src/utils/logger/stats.d.ts +1 -1
  574. package/dist/src/voice/tts/audio.js +1 -1
  575. package/dist/src/voice/tts/factory.js +1 -1
  576. package/dist/src/voice/tts/index.js +2 -2
  577. package/dist/src/voice/tts/merge-config.js +1 -1
  578. package/dist/src/voice/tts/providers/edge-speech.js +1 -1
  579. package/dist/src/voice/tts/service.js +1 -1
  580. package/dist/src/voice/tts/service.js.map +1 -1
  581. package/dist/src/voice/tts/speak-core.js +1 -1
  582. package/package.json +10 -5
  583. package/dist/gateway/static/root/assets/agents-Cqh1ts38.js +0 -222
  584. package/dist/gateway/static/root/assets/channels-settings-wTiWStg9.js +0 -1
  585. package/dist/gateway/static/root/assets/fetch-BAAh_kXG.js +0 -3
  586. package/dist/gateway/static/root/assets/index-C8yHX-AA.css +0 -1
  587. package/dist/gateway/static/root/assets/sessions-page-BeiFm0Ms.js +0 -1
  588. package/dist/gateway/static/root/assets/settings-page-RPAz_Wg_.js +0 -3
  589. package/dist/gateway/static/root/assets/skills-page-Wu4aNWDx.js +0 -2
  590. package/dist/gateway/static/root/assets/voice-api-key-field-BxIGhhEL.js +0 -1
  591. package/dist/src/agent/embedded/session-raw-append-message.d.ts +0 -11
  592. package/dist/src/agent/embedded/session-raw-append-message.js +0 -15
  593. package/dist/src/agent/embedded/session-raw-append-message.js.map +0 -1
  594. package/dist/src/agent/embedded/session-tool-result-guard-wrapper.d.ts +0 -15
  595. package/dist/src/agent/embedded/session-tool-result-guard-wrapper.js +0 -24
  596. package/dist/src/agent/embedded/session-tool-result-guard-wrapper.js.map +0 -1
  597. package/dist/src/agent/embedded/session-tool-result-state.d.ts +0 -17
  598. package/dist/src/agent/embedded/session-tool-result-state.js +0 -26
  599. package/dist/src/agent/embedded/session-tool-result-state.js.map +0 -1
  600. package/dist/src/daemon/launchd-restart-handoff.d.ts +0 -25
  601. package/dist/src/daemon/launchd-restart-handoff.js +0 -132
  602. package/dist/src/daemon/launchd-restart-handoff.js.map +0 -1
  603. package/dist/src/gateway/auth-rate-limit.d.ts +0 -71
  604. package/dist/src/gateway/auth-rate-limit.js +0 -192
  605. package/dist/src/gateway/auth-rate-limit.js.map +0 -1
  606. package/dist/src/gateway/restart-handler.d.ts +0 -14
  607. package/dist/src/gateway/restart-handler.js +0 -64
  608. package/dist/src/gateway/restart-handler.js.map +0 -1
  609. package/dist/src/gateway/security/flood-guard.d.ts +0 -28
  610. package/dist/src/gateway/security/flood-guard.js +0 -42
  611. package/dist/src/gateway/security/flood-guard.js.map +0 -1
  612. package/dist/src/infra/rate-limit.d.ts +0 -38
  613. package/dist/src/infra/rate-limit.js +0 -60
  614. package/dist/src/infra/rate-limit.js.map +0 -1
  615. package/dist/src/infra/restart-intent.d.ts +0 -13
  616. package/dist/src/infra/restart-intent.js +0 -40
  617. package/dist/src/infra/restart-intent.js.map +0 -1
  618. package/dist/src/infra/restart-sentinel.d.ts +0 -23
  619. package/dist/src/infra/restart-sentinel.js +0 -75
  620. package/dist/src/infra/restart-sentinel.js.map +0 -1
  621. package/skills/creative/canvas-design/LICENSE.txt +0 -202
  622. package/skills/creative/canvas-design/SKILL-zh.md +0 -130
  623. package/skills/creative/canvas-design/SKILL.md +0 -130
  624. package/skills/creative/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  625. package/skills/creative/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  626. package/skills/creative/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  627. package/skills/creative/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
  628. package/skills/creative/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  629. package/skills/creative/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
  630. package/skills/creative/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  631. package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  632. package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  633. package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  634. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  635. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  636. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  637. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  638. package/skills/creative/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
  639. package/skills/creative/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  640. package/skills/creative/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
  641. package/skills/creative/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  642. package/skills/creative/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  643. package/skills/creative/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
  644. package/skills/creative/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  645. package/skills/creative/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
  646. package/skills/creative/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  647. package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  648. package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  649. package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  650. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  651. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  652. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  653. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  654. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  655. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  656. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  657. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  658. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  659. package/skills/creative/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  660. package/skills/creative/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  661. package/skills/creative/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
  662. package/skills/creative/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  663. package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  664. package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  665. package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  666. package/skills/creative/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  667. package/skills/creative/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  668. package/skills/creative/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
  669. package/skills/creative/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  670. package/skills/creative/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  671. package/skills/creative/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  672. package/skills/creative/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  673. package/skills/creative/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  674. package/skills/creative/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
  675. package/skills/creative/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  676. package/skills/creative/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  677. package/skills/creative/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
  678. package/skills/creative/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  679. package/skills/creative/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  680. package/skills/creative/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  681. package/skills/creative/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  682. package/skills/creative/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
  683. package/skills/creative/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  684. package/skills/creative/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  685. package/skills/creative/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
  686. package/skills/creative/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
  687. package/skills/creative/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  688. package/skills/creative/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  689. package/skills/creative/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
  690. package/skills/creative/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  691. package/skills/creative/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
  692. package/skills/creative/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  693. package/skills/creative/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  694. package/skills/creative/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
  695. package/skills/creative/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  696. package/skills/creative/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
  697. package/skills/creative/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  698. package/skills/creative/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  699. package/skills/creative/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  700. package/skills/creative/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  701. package/skills/creative/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
  702. package/skills/creative/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  703. package/skills/creative/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
  704. package/skills/creative/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
@@ -0,0 +1,418 @@
1
+ import { normalizePatchAgentImageGenerationModel, normalizePatchAgentModel } from "../../lib/agent-model.js";
2
+ //#region src/gateway/hono/routes/config-patch/agents.ts
3
+ function applyAgentsPatch(config, body) {
4
+ if (!body.agents?.defaults) return;
5
+ if (!config.agents) config.agents = { defaults: {
6
+ workspace: "~/.xopc/workspace",
7
+ model: "anthropic/claude-sonnet-4-5",
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.model !== void 0) config.agents.defaults.model = normalizePatchAgentModel(body.agents.defaults.model);
19
+ if (body.agents.defaults.maxTokens !== void 0) config.agents.defaults.maxTokens = body.agents.defaults.maxTokens;
20
+ if (body.agents.defaults.temperature !== void 0) config.agents.defaults.temperature = body.agents.defaults.temperature;
21
+ if (body.agents.defaults.maxToolIterations !== void 0) config.agents.defaults.maxToolIterations = body.agents.defaults.maxToolIterations;
22
+ if (body.agents.defaults.workspace !== void 0) config.agents.defaults.workspace = body.agents.defaults.workspace;
23
+ if (body.agents.defaults.thinkingDefault !== void 0) config.agents.defaults.thinkingDefault = body.agents.defaults.thinkingDefault;
24
+ if (body.agents.defaults.reasoningDefault !== void 0) config.agents.defaults.reasoningDefault = body.agents.defaults.reasoningDefault;
25
+ if (body.agents.defaults.verboseDefault !== void 0) config.agents.defaults.verboseDefault = body.agents.defaults.verboseDefault;
26
+ if (body.agents.defaults.imageModel !== void 0) {
27
+ const v = body.agents.defaults.imageModel;
28
+ if (v === "" || v === null) delete config.agents.defaults.imageModel;
29
+ else config.agents.defaults.imageModel = normalizePatchAgentModel(v);
30
+ }
31
+ if (body.agents.defaults.imageGenerationModel !== void 0) {
32
+ const v = body.agents.defaults.imageGenerationModel;
33
+ if (v === "" || v === null) delete config.agents.defaults.imageGenerationModel;
34
+ else {
35
+ const normalized = normalizePatchAgentImageGenerationModel(v);
36
+ if (normalized === void 0) delete config.agents.defaults.imageGenerationModel;
37
+ else config.agents.defaults.imageGenerationModel = normalized;
38
+ }
39
+ }
40
+ if (body.agents.defaults.mediaMaxMb !== void 0) {
41
+ const v = body.agents.defaults.mediaMaxMb;
42
+ if (v === null) delete config.agents.defaults.mediaMaxMb;
43
+ else {
44
+ const n = typeof v === "number" ? v : Number(v);
45
+ if (!Number.isNaN(n) && n > 0) config.agents.defaults.mediaMaxMb = n;
46
+ }
47
+ }
48
+ if (body.agents.defaults.browser !== void 0) {
49
+ const b = body.agents.defaults.browser;
50
+ if (b === null) delete config.agents.defaults.browser;
51
+ else if (typeof b === "object" && !Array.isArray(b)) {
52
+ const br = b;
53
+ if (!config.agents.defaults.browser) config.agents.defaults.browser = {
54
+ enabled: false,
55
+ headless: false
56
+ };
57
+ const target = config.agents.defaults.browser;
58
+ if (br.enabled !== void 0) if (br.enabled === null) delete target.enabled;
59
+ else target.enabled = Boolean(br.enabled);
60
+ if (br.headless !== void 0) if (br.headless === null) delete target.headless;
61
+ else target.headless = Boolean(br.headless);
62
+ if (br.allowPrivateUrls !== void 0) if (br.allowPrivateUrls === null) delete target.allowPrivateUrls;
63
+ else target.allowPrivateUrls = Boolean(br.allowPrivateUrls);
64
+ if (br.commandTimeout !== void 0) {
65
+ if (br.commandTimeout === null) delete target.commandTimeout;
66
+ else if (typeof br.commandTimeout === "number" && Number.isFinite(br.commandTimeout)) {
67
+ const n = Math.floor(br.commandTimeout);
68
+ if (n >= 5 && n <= 900) target.commandTimeout = n;
69
+ }
70
+ }
71
+ if (br.backend !== void 0) {
72
+ if (br.backend === null || br.backend === "" || br.backend === "extension") delete target.backend;
73
+ else if (br.backend === "local" || br.backend === "cdp" || br.backend === "cloud" || br.backend === "cloakbrowser") target.backend = br.backend;
74
+ }
75
+ if (br.cloudProvider !== void 0) {
76
+ if (br.cloudProvider === null || br.cloudProvider === "") delete target.cloudProvider;
77
+ else if (br.cloudProvider === "browserbase" || br.cloudProvider === "browser-use") target.cloudProvider = br.cloudProvider;
78
+ }
79
+ if (br.cloud !== void 0) {
80
+ if (br.cloud === null) delete target.cloud;
81
+ else if (typeof br.cloud === "object" && !Array.isArray(br.cloud)) {
82
+ const cloudPatch = br.cloud;
83
+ const cloudTarget = { ...target.cloud && typeof target.cloud === "object" && !Array.isArray(target.cloud) ? target.cloud : {} };
84
+ if (cloudPatch.apiKey !== void 0) {
85
+ if (cloudPatch.apiKey === null || cloudPatch.apiKey === "") delete cloudTarget.apiKey;
86
+ else if (cloudPatch.apiKey === "***") {} else if (typeof cloudPatch.apiKey === "string") cloudTarget.apiKey = cloudPatch.apiKey.trim();
87
+ }
88
+ for (const key of ["projectId", "region"]) {
89
+ const value = cloudPatch[key];
90
+ if (value === null || value === "") delete cloudTarget[key];
91
+ else if (typeof value === "string" && value.trim()) cloudTarget[key] = value.trim();
92
+ }
93
+ if (Object.keys(cloudTarget).length > 0) target.cloud = cloudTarget;
94
+ else delete target.cloud;
95
+ }
96
+ }
97
+ if (br.cdpUrl !== void 0) {
98
+ if (br.cdpUrl === null || br.cdpUrl === "") delete target.cdpUrl;
99
+ else if (typeof br.cdpUrl === "string") target.cdpUrl = br.cdpUrl.trim();
100
+ }
101
+ if (br.extension !== void 0) {
102
+ if (br.extension === null) delete target.extension;
103
+ else if (typeof br.extension === "object" && !Array.isArray(br.extension)) {
104
+ const ext = br.extension;
105
+ const extTarget = {};
106
+ if (ext.port === null || ext.port === "") {} else if (typeof ext.port === "number" && ext.port >= 1024 && ext.port <= 65535) extTarget.port = Math.floor(ext.port);
107
+ if (ext.host === null || ext.host === "") {} else if (typeof ext.host === "string" && ext.host.trim()) extTarget.host = ext.host.trim();
108
+ 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);
109
+ if (Object.keys(extTarget).length > 0) target.extension = extTarget;
110
+ else delete target.extension;
111
+ }
112
+ }
113
+ if (br.cloakbrowser !== void 0) {
114
+ if (br.cloakbrowser === null) delete target.cloakbrowser;
115
+ else if (typeof br.cloakbrowser === "object" && !Array.isArray(br.cloakbrowser)) {
116
+ const cloakbrowserPatch = br.cloakbrowser;
117
+ const cloakbrowserTarget = {};
118
+ if (typeof cloakbrowserPatch.keepOpen === "boolean") cloakbrowserTarget.keepOpen = cloakbrowserPatch.keepOpen;
119
+ if (typeof cloakbrowserPatch.temporaryProfile === "boolean") cloakbrowserTarget.temporaryProfile = cloakbrowserPatch.temporaryProfile;
120
+ for (const key of [
121
+ "cacheDir",
122
+ "binaryPath",
123
+ "timezone",
124
+ "locale",
125
+ "webrtcIp",
126
+ "fingerprintPlatform"
127
+ ]) {
128
+ const value = cloakbrowserPatch[key];
129
+ if (typeof value === "string" && value.trim()) cloakbrowserTarget[key] = value.trim();
130
+ }
131
+ if (Array.isArray(cloakbrowserPatch.extraArgs) && cloakbrowserPatch.extraArgs.every((value) => typeof value === "string")) cloakbrowserTarget.extraArgs = cloakbrowserPatch.extraArgs;
132
+ if (Object.keys(cloakbrowserTarget).length > 0) target.cloakbrowser = cloakbrowserTarget;
133
+ else delete target.cloakbrowser;
134
+ }
135
+ }
136
+ if (br.humanize !== void 0) if (br.humanize === null) delete target.humanize;
137
+ else target.humanize = Boolean(br.humanize);
138
+ if (br.humanPreset !== void 0) {
139
+ if (br.humanPreset === null) delete target.humanPreset;
140
+ else if (br.humanPreset === "default" || br.humanPreset === "careful") target.humanPreset = br.humanPreset;
141
+ }
142
+ if (br.dialogPolicy !== void 0) {
143
+ if (br.dialogPolicy === null) delete target.dialogPolicy;
144
+ else if (br.dialogPolicy === "must_respond" || br.dialogPolicy === "auto_dismiss" || br.dialogPolicy === "auto_accept") target.dialogPolicy = br.dialogPolicy;
145
+ }
146
+ if (br.dialogTimeoutSeconds !== void 0) {
147
+ if (br.dialogTimeoutSeconds === null) delete target.dialogTimeoutSeconds;
148
+ else if (typeof br.dialogTimeoutSeconds === "number" && Number.isFinite(br.dialogTimeoutSeconds)) {
149
+ const n = Math.floor(br.dialogTimeoutSeconds);
150
+ if (n >= 1 && n <= 86400) target.dialogTimeoutSeconds = n;
151
+ }
152
+ }
153
+ }
154
+ }
155
+ const dPatch = body.agents.defaults;
156
+ const def = config.agents.defaults;
157
+ if (dPatch.maxTaskDurationMs !== void 0) {
158
+ const v = dPatch.maxTaskDurationMs;
159
+ if (v === null) delete def.maxTaskDurationMs;
160
+ else if (typeof v === "number" && Number.isFinite(v)) {
161
+ const ms = Math.floor(v);
162
+ if (ms >= 6e4 && ms <= 144e5) def.maxTaskDurationMs = ms;
163
+ }
164
+ }
165
+ if (dPatch.maxRequestsPerTurn !== void 0) {
166
+ const v = dPatch.maxRequestsPerTurn;
167
+ if (v === null) delete def.maxRequestsPerTurn;
168
+ else if (typeof v === "number" && Number.isFinite(v)) {
169
+ const n = Math.floor(v);
170
+ if (n >= 10 && n <= 200) def.maxRequestsPerTurn = n;
171
+ }
172
+ }
173
+ if (dPatch.maxToolFailuresPerTurn !== void 0) {
174
+ const v = dPatch.maxToolFailuresPerTurn;
175
+ if (v === null) delete def.maxToolFailuresPerTurn;
176
+ else if (typeof v === "number" && Number.isFinite(v)) {
177
+ const n = Math.floor(v);
178
+ if (n >= 1 && n <= 20) def.maxToolFailuresPerTurn = n;
179
+ }
180
+ }
181
+ if (dPatch.compaction !== void 0) {
182
+ const c = dPatch.compaction;
183
+ if (c === null) delete def.compaction;
184
+ else if (typeof c === "object" && !Array.isArray(c)) {
185
+ const p = c;
186
+ if (!def.compaction || typeof def.compaction !== "object") def.compaction = {};
187
+ const t = def.compaction;
188
+ if (p.enabled !== void 0) t.enabled = Boolean(p.enabled);
189
+ if (p.mode === "default" || p.mode === "safeguard") t.mode = p.mode;
190
+ if (typeof p.reserveTokens === "number" && Number.isFinite(p.reserveTokens)) t.reserveTokens = Math.floor(p.reserveTokens);
191
+ if (typeof p.triggerThreshold === "number" && Number.isFinite(p.triggerThreshold)) {
192
+ const x = p.triggerThreshold;
193
+ if (x >= .5 && x <= .95) t.triggerThreshold = x;
194
+ }
195
+ if (typeof p.minMessagesBeforeCompact === "number" && Number.isFinite(p.minMessagesBeforeCompact)) t.minMessagesBeforeCompact = Math.floor(p.minMessagesBeforeCompact);
196
+ if (typeof p.keepRecentMessages === "number" && Number.isFinite(p.keepRecentMessages)) t.keepRecentMessages = Math.floor(p.keepRecentMessages);
197
+ if (typeof p.evictionWindow === "number" && Number.isFinite(p.evictionWindow)) {
198
+ const x = p.evictionWindow;
199
+ if (x >= .1 && x <= .5) t.evictionWindow = x;
200
+ }
201
+ if (typeof p.retentionWindow === "number" && Number.isFinite(p.retentionWindow)) {
202
+ const n = Math.floor(p.retentionWindow);
203
+ if (n >= 3 && n <= 20) t.retentionWindow = n;
204
+ }
205
+ }
206
+ }
207
+ if (dPatch.pruning !== void 0) {
208
+ const c = dPatch.pruning;
209
+ if (c === null) delete def.pruning;
210
+ else if (typeof c === "object" && !Array.isArray(c)) {
211
+ const p = c;
212
+ if (!def.pruning || typeof def.pruning !== "object") def.pruning = {};
213
+ const t = def.pruning;
214
+ if (p.enabled !== void 0) t.enabled = Boolean(p.enabled);
215
+ if (typeof p.maxToolResultChars === "number" && Number.isFinite(p.maxToolResultChars)) t.maxToolResultChars = Math.floor(p.maxToolResultChars);
216
+ if (typeof p.headKeepRatio === "number" && Number.isFinite(p.headKeepRatio)) t.headKeepRatio = p.headKeepRatio;
217
+ if (typeof p.tailKeepRatio === "number" && Number.isFinite(p.tailKeepRatio)) t.tailKeepRatio = p.tailKeepRatio;
218
+ }
219
+ }
220
+ if (dPatch.memory !== void 0) {
221
+ const c = dPatch.memory;
222
+ if (c === null) delete def.memory;
223
+ else if (typeof c === "object" && !Array.isArray(c)) {
224
+ const p = c;
225
+ if (!def.memory || typeof def.memory !== "object") def.memory = {};
226
+ const t = def.memory;
227
+ if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
228
+ else t.enabled = Boolean(p.enabled);
229
+ if (p.useEnhancedSystem !== void 0) if (p.useEnhancedSystem === null) delete t.useEnhancedSystem;
230
+ else t.useEnhancedSystem = Boolean(p.useEnhancedSystem);
231
+ if (p.userProfileEnabled !== void 0) if (p.userProfileEnabled === null) delete t.userProfileEnabled;
232
+ else t.userProfileEnabled = Boolean(p.userProfileEnabled);
233
+ if (p.memoryCharLimit !== void 0) {
234
+ if (p.memoryCharLimit === null) delete t.memoryCharLimit;
235
+ else if (typeof p.memoryCharLimit === "number" && p.memoryCharLimit > 0) t.memoryCharLimit = Math.floor(p.memoryCharLimit);
236
+ }
237
+ if (p.userCharLimit !== void 0) {
238
+ if (p.userCharLimit === null) delete t.userCharLimit;
239
+ else if (typeof p.userCharLimit === "number" && p.userCharLimit > 0) t.userCharLimit = Math.floor(p.userCharLimit);
240
+ }
241
+ if (p.provider === "none" || p.provider === "stub") t.provider = p.provider;
242
+ else if (p.provider === null) delete t.provider;
243
+ if (p.injectionFrequency === "every-turn" || p.injectionFrequency === "first-turn") t.injectionFrequency = p.injectionFrequency;
244
+ else if (p.injectionFrequency === null) delete t.injectionFrequency;
245
+ if (p.contextCadence !== void 0) {
246
+ if (p.contextCadence === null) delete t.contextCadence;
247
+ else if (typeof p.contextCadence === "number" && p.contextCadence >= 1) t.contextCadence = Math.floor(p.contextCadence);
248
+ }
249
+ if (p.dialecticCadence !== void 0) {
250
+ if (p.dialecticCadence === null) delete t.dialecticCadence;
251
+ else if (typeof p.dialecticCadence === "number" && p.dialecticCadence >= 1) t.dialecticCadence = Math.floor(p.dialecticCadence);
252
+ }
253
+ if (p.dreaming !== void 0) {
254
+ const d0 = p.dreaming;
255
+ if (d0 === null) delete t.dreaming;
256
+ else if (typeof d0 === "object" && d0 !== null && !Array.isArray(d0)) {
257
+ if (!("dreaming" in t) || typeof t.dreaming !== "object") t.dreaming = {};
258
+ const dt = t.dreaming;
259
+ const dp = d0;
260
+ if (dp.enabled !== void 0) if (dp.enabled === null) delete dt.enabled;
261
+ else dt.enabled = Boolean(dp.enabled);
262
+ if (dp.frequency !== void 0) {
263
+ const v = dp.frequency;
264
+ if (v === null || v === "") delete dt.frequency;
265
+ else if (typeof v === "string") dt.frequency = v;
266
+ }
267
+ if (dp.timezone !== void 0) {
268
+ const v = dp.timezone;
269
+ if (v === null || v === "") delete dt.timezone;
270
+ else if (typeof v === "string") dt.timezone = v;
271
+ }
272
+ if (dp.phases !== void 0 || dp.deep !== void 0) {
273
+ if (!("phases" in dt) || typeof dt.phases !== "object" || dt.phases === null) dt.phases = {};
274
+ const phases = dt.phases;
275
+ if (!("deep" in phases) || typeof phases.deep !== "object" || phases.deep === null) phases.deep = {};
276
+ const deep = phases.deep;
277
+ const deepPatchRaw = typeof dp.phases === "object" && dp.phases !== null && !Array.isArray(dp.phases) ? dp.phases.deep : dp.deep;
278
+ const deepPatch = typeof deepPatchRaw === "object" && deepPatchRaw !== null && !Array.isArray(deepPatchRaw) ? deepPatchRaw : null;
279
+ if (deepPatch) {
280
+ if (deepPatch.enabled !== void 0) if (deepPatch.enabled === null) delete deep.enabled;
281
+ else deep.enabled = Boolean(deepPatch.enabled);
282
+ if (deepPatch.minScore !== void 0) {
283
+ const v = deepPatch.minScore;
284
+ if (v === null) delete deep.minScore;
285
+ else if (typeof v === "number" && Number.isFinite(v)) deep.minScore = v;
286
+ }
287
+ if (deepPatch.minRecallCount !== void 0) {
288
+ const v = deepPatch.minRecallCount;
289
+ if (v === null) delete deep.minRecallCount;
290
+ else if (typeof v === "number" && Number.isFinite(v)) deep.minRecallCount = Math.floor(v);
291
+ }
292
+ if (deepPatch.limit !== void 0) {
293
+ const v = deepPatch.limit;
294
+ if (v === null) delete deep.limit;
295
+ else if (typeof v === "number" && Number.isFinite(v)) deep.limit = Math.floor(v);
296
+ }
297
+ }
298
+ }
299
+ }
300
+ }
301
+ }
302
+ }
303
+ if (dPatch.sessionSearch !== void 0) {
304
+ const c = dPatch.sessionSearch;
305
+ if (c === null) delete def.sessionSearch;
306
+ else if (typeof c === "object" && !Array.isArray(c)) {
307
+ const p = c;
308
+ if (!def.sessionSearch || typeof def.sessionSearch !== "object") def.sessionSearch = {};
309
+ const t = def.sessionSearch;
310
+ if (p.summaryModel !== void 0) {
311
+ if (p.summaryModel === null || p.summaryModel === "") delete t.summaryModel;
312
+ else if (typeof p.summaryModel === "string") t.summaryModel = p.summaryModel;
313
+ }
314
+ }
315
+ }
316
+ if (dPatch.backgroundReview !== void 0) {
317
+ const c = dPatch.backgroundReview;
318
+ if (c === null) delete def.backgroundReview;
319
+ else if (typeof c === "object" && !Array.isArray(c)) {
320
+ const p = c;
321
+ if (!def.backgroundReview || typeof def.backgroundReview !== "object") def.backgroundReview = {};
322
+ const t = def.backgroundReview;
323
+ if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
324
+ else t.enabled = Boolean(p.enabled);
325
+ if (p.memoryNudgeInterval !== void 0) {
326
+ if (p.memoryNudgeInterval === null) delete t.memoryNudgeInterval;
327
+ else if (typeof p.memoryNudgeInterval === "number" && p.memoryNudgeInterval >= 0) t.memoryNudgeInterval = Math.floor(p.memoryNudgeInterval);
328
+ }
329
+ if (p.skillNudgeInterval !== void 0) {
330
+ if (p.skillNudgeInterval === null) delete t.skillNudgeInterval;
331
+ else if (typeof p.skillNudgeInterval === "number" && p.skillNudgeInterval >= 0) t.skillNudgeInterval = Math.floor(p.skillNudgeInterval);
332
+ }
333
+ if (p.maxToolRounds !== void 0) {
334
+ if (p.maxToolRounds === null) delete t.maxToolRounds;
335
+ else if (typeof p.maxToolRounds === "number" && p.maxToolRounds >= 1 && p.maxToolRounds <= 32) t.maxToolRounds = Math.floor(p.maxToolRounds);
336
+ }
337
+ if (p.maxHistoryMessages !== void 0) {
338
+ if (p.maxHistoryMessages === null) delete t.maxHistoryMessages;
339
+ else if (typeof p.maxHistoryMessages === "number" && p.maxHistoryMessages >= 10 && p.maxHistoryMessages <= 200) t.maxHistoryMessages = Math.floor(p.maxHistoryMessages);
340
+ }
341
+ if (p.maxDurationMs !== void 0) {
342
+ if (p.maxDurationMs === null) delete t.maxDurationMs;
343
+ else if (typeof p.maxDurationMs === "number" && p.maxDurationMs >= 3e4 && p.maxDurationMs <= 6e5) t.maxDurationMs = Math.floor(p.maxDurationMs);
344
+ }
345
+ }
346
+ }
347
+ if (dPatch.webExtract !== void 0) {
348
+ const c = dPatch.webExtract;
349
+ if (c === null) delete def.webExtract;
350
+ else if (typeof c === "object" && !Array.isArray(c)) {
351
+ const p = c;
352
+ if (!def.webExtract || typeof def.webExtract !== "object") def.webExtract = {};
353
+ const t = def.webExtract;
354
+ if (p.model !== void 0) {
355
+ if (p.model === null || p.model === "") delete t.model;
356
+ else if (typeof p.model === "string") t.model = p.model;
357
+ }
358
+ if (p.maxLength !== void 0) {
359
+ if (p.maxLength === null) delete t.maxLength;
360
+ else if (typeof p.maxLength === "number" && p.maxLength > 0) t.maxLength = p.maxLength;
361
+ }
362
+ }
363
+ }
364
+ if (dPatch.delegate !== void 0) {
365
+ const c = dPatch.delegate;
366
+ if (c === null) delete def.delegate;
367
+ else if (typeof c === "object" && !Array.isArray(c)) {
368
+ const p = c;
369
+ if (!def.delegate || typeof def.delegate !== "object") def.delegate = {};
370
+ const t = def.delegate;
371
+ if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
372
+ else t.enabled = Boolean(p.enabled);
373
+ }
374
+ }
375
+ if (dPatch.executeCode !== void 0) {
376
+ const c = dPatch.executeCode;
377
+ if (c === null) delete def.executeCode;
378
+ else if (typeof c === "object" && !Array.isArray(c)) {
379
+ const p = c;
380
+ if (!def.executeCode || typeof def.executeCode !== "object") def.executeCode = {};
381
+ const t = def.executeCode;
382
+ if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
383
+ else t.enabled = Boolean(p.enabled);
384
+ }
385
+ }
386
+ if (dPatch.systemPromptOverride !== void 0) {
387
+ const v = dPatch.systemPromptOverride;
388
+ if (v === null || v === "") delete def.systemPromptOverride;
389
+ else if (typeof v === "string") def.systemPromptOverride = v;
390
+ }
391
+ if (dPatch.skills !== void 0) {
392
+ const v = dPatch.skills;
393
+ if (v === null) delete def.skills;
394
+ else if (Array.isArray(v) && v.every((x) => typeof x === "string")) def.skills = v;
395
+ }
396
+ if (dPatch.tools !== void 0) {
397
+ const t0 = dPatch.tools;
398
+ if (t0 === null) delete def.tools;
399
+ else if (typeof t0 === "object" && !Array.isArray(t0)) {
400
+ const p = t0;
401
+ if (!def.tools || typeof def.tools !== "object") def.tools = {};
402
+ const t = def.tools;
403
+ if (p.disable !== void 0) {
404
+ if (p.disable === null || Array.isArray(p.disable) && p.disable.length === 0) delete t.disable;
405
+ else if (Array.isArray(p.disable) && p.disable.every((x) => typeof x === "string")) t.disable = p.disable;
406
+ }
407
+ }
408
+ }
409
+ if (dPatch.params !== void 0) {
410
+ const v = dPatch.params;
411
+ if (v === null) delete def.params;
412
+ else if (typeof v === "object" && !Array.isArray(v) && v !== null) def.params = v;
413
+ }
414
+ }
415
+ //#endregion
416
+ export { applyAgentsPatch };
417
+
418
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","names":[],"sources":["../../../../../../src/gateway/hono/routes/config-patch/agents.ts"],"sourcesContent":["/**\n * `PATCH /api/config` — `body.agents.defaults.*` section.\n *\n * Mutates `config.agents.defaults` in place to match the patch body. All\n * branches are field-by-field \"if undefined skip, if null delete, else\n * coerce/validate then assign\" so the web UI can clear individual settings\n * with `{ field: null }` without rewriting the rest.\n *\n * Was 660 lines inlined in `config.ts` (40% of the route handler) — extracted\n * so the dispatcher can chain section patchers instead of being a single 1600\n * -line if-else cascade.\n *\n * **No early returns / errors.** This section never rejects the patch; out-of\n * -range numbers and unrecognized strings are silently dropped (preserves\n * pre-extraction behavior so the route stays a \"best-effort merge\").\n */\nimport type { Config } from '../../../../config/schema.js';\nimport {\n normalizePatchAgentImageGenerationModel,\n normalizePatchAgentModel,\n} from '../../lib/agent-model.js';\n\nexport function applyAgentsPatch(config: Config, body: any): void {\n if (!body.agents?.defaults) return;\n\n if (!config.agents) config.agents = { defaults: { workspace: '~/.xopc/workspace', model: 'anthropic/claude-sonnet-4-5', maxTokens: 8192, temperature: 0.7, maxToolIterations: 20, maxRequestsPerTurn: 50, maxToolFailuresPerTurn: 3, thinkingDefault: 'medium', reasoningDefault: 'stream', verboseDefault: 'full' } };\n if (!config.agents.defaults) config.agents.defaults = {} as any;\n\n if (body.agents.defaults.model !== undefined) {\n config.agents.defaults.model = normalizePatchAgentModel(body.agents.defaults.model) as Config['agents']['defaults']['model'];\n }\n if (body.agents.defaults.maxTokens !== undefined) {\n config.agents.defaults.maxTokens = body.agents.defaults.maxTokens;\n }\n if (body.agents.defaults.temperature !== undefined) {\n config.agents.defaults.temperature = body.agents.defaults.temperature;\n }\n if (body.agents.defaults.maxToolIterations !== undefined) {\n config.agents.defaults.maxToolIterations = body.agents.defaults.maxToolIterations;\n }\n if (body.agents.defaults.workspace !== undefined) {\n config.agents.defaults.workspace = body.agents.defaults.workspace;\n }\n if (body.agents.defaults.thinkingDefault !== undefined) {\n config.agents.defaults.thinkingDefault = body.agents.defaults.thinkingDefault;\n }\n if (body.agents.defaults.reasoningDefault !== undefined) {\n config.agents.defaults.reasoningDefault = body.agents.defaults.reasoningDefault;\n }\n if (body.agents.defaults.verboseDefault !== undefined) {\n config.agents.defaults.verboseDefault = body.agents.defaults.verboseDefault;\n }\n if (body.agents.defaults.imageModel !== undefined) {\n const v = body.agents.defaults.imageModel;\n if (v === '' || v === null) {\n delete (config.agents.defaults as Record<string, unknown>).imageModel;\n } else {\n config.agents.defaults.imageModel = normalizePatchAgentModel(v) as Config['agents']['defaults']['imageModel'];\n }\n }\n if (body.agents.defaults.imageGenerationModel !== undefined) {\n const v = body.agents.defaults.imageGenerationModel;\n if (v === '' || v === null) {\n delete (config.agents.defaults as Record<string, unknown>).imageGenerationModel;\n } else {\n const normalized = normalizePatchAgentImageGenerationModel(v);\n if (normalized === undefined) {\n delete (config.agents.defaults as Record<string, unknown>).imageGenerationModel;\n } else {\n config.agents.defaults.imageGenerationModel =\n normalized as Config['agents']['defaults']['imageGenerationModel'];\n }\n }\n }\n if (body.agents.defaults.mediaMaxMb !== undefined) {\n const v = body.agents.defaults.mediaMaxMb;\n if (v === null) {\n delete (config.agents.defaults as Record<string, unknown>).mediaMaxMb;\n } else {\n const n = typeof v === 'number' ? v : Number(v);\n if (!Number.isNaN(n) && n > 0) {\n config.agents.defaults.mediaMaxMb = n;\n }\n }\n }\n if (body.agents.defaults.browser !== undefined) {\n const b = body.agents.defaults.browser;\n if (b === null) {\n delete (config.agents.defaults as Record<string, unknown>).browser;\n } else if (typeof b === 'object' && !Array.isArray(b)) {\n const br = b as Record<string, unknown>;\n if (!config.agents.defaults.browser) {\n config.agents.defaults.browser = { enabled: false, headless: false };\n }\n const target = config.agents.defaults.browser as Record<string, unknown>;\n if (br.enabled !== undefined) {\n if (br.enabled === null) delete target.enabled;\n else target.enabled = Boolean(br.enabled);\n }\n if (br.headless !== undefined) {\n if (br.headless === null) delete target.headless;\n else target.headless = Boolean(br.headless);\n }\n if (br.allowPrivateUrls !== undefined) {\n if (br.allowPrivateUrls === null) delete target.allowPrivateUrls;\n else target.allowPrivateUrls = Boolean(br.allowPrivateUrls);\n }\n if (br.commandTimeout !== undefined) {\n if (br.commandTimeout === null) {\n delete target.commandTimeout;\n } else if (typeof br.commandTimeout === 'number' && Number.isFinite(br.commandTimeout)) {\n const n = Math.floor(br.commandTimeout);\n if (n >= 5 && n <= 900) {\n target.commandTimeout = n;\n }\n }\n }\n if (br.backend !== undefined) {\n if (br.backend === null || br.backend === '' || br.backend === 'extension') {\n delete target.backend;\n } else if (\n br.backend === 'local' ||\n br.backend === 'cdp' ||\n br.backend === 'cloud' ||\n br.backend === 'cloakbrowser'\n ) {\n target.backend = br.backend;\n }\n }\n if (br.cloudProvider !== undefined) {\n if (br.cloudProvider === null || br.cloudProvider === '') {\n delete target.cloudProvider;\n } else if (br.cloudProvider === 'browserbase' || br.cloudProvider === 'browser-use') {\n target.cloudProvider = br.cloudProvider;\n }\n }\n if (br.cloud !== undefined) {\n if (br.cloud === null) {\n delete target.cloud;\n } else if (typeof br.cloud === 'object' && !Array.isArray(br.cloud)) {\n const cloudPatch = br.cloud as Record<string, unknown>;\n const existingCloud =\n target.cloud && typeof target.cloud === 'object' && !Array.isArray(target.cloud)\n ? (target.cloud as Record<string, unknown>)\n : {};\n const cloudTarget: Record<string, unknown> = { ...existingCloud };\n if (cloudPatch.apiKey !== undefined) {\n if (cloudPatch.apiKey === null || cloudPatch.apiKey === '') {\n delete cloudTarget.apiKey;\n } else if (cloudPatch.apiKey === '***') {\n // Keep the existing stored key when the web UI sends the masked sentinel.\n } else if (typeof cloudPatch.apiKey === 'string') {\n cloudTarget.apiKey = cloudPatch.apiKey.trim();\n }\n }\n for (const key of ['projectId', 'region']) {\n const value = cloudPatch[key];\n if (value === null || value === '') {\n delete cloudTarget[key];\n } else if (typeof value === 'string' && value.trim()) {\n cloudTarget[key] = value.trim();\n }\n }\n if (Object.keys(cloudTarget).length > 0) {\n target.cloud = cloudTarget;\n } else {\n delete target.cloud;\n }\n }\n }\n if (br.cdpUrl !== undefined) {\n if (br.cdpUrl === null || br.cdpUrl === '') {\n delete target.cdpUrl;\n } else if (typeof br.cdpUrl === 'string') {\n target.cdpUrl = br.cdpUrl.trim();\n }\n }\n if (br.extension !== undefined) {\n if (br.extension === null) {\n delete target.extension;\n } else if (typeof br.extension === 'object' && !Array.isArray(br.extension)) {\n const ext = br.extension as Record<string, unknown>;\n const extTarget: Record<string, unknown> = {};\n if (ext.port === null || ext.port === '') {\n // explicit clear: leave unset (consumers fall back to default)\n } else if (typeof ext.port === 'number' && ext.port >= 1024 && ext.port <= 65535) {\n extTarget.port = Math.floor(ext.port);\n }\n if (ext.host === null || ext.host === '') {\n // explicit clear\n } else if (typeof ext.host === 'string' && ext.host.trim()) {\n extTarget.host = ext.host.trim();\n }\n if (\n ext.connectionTimeout === null ||\n ext.connectionTimeout === ''\n ) {\n // explicit clear\n } else if (\n typeof ext.connectionTimeout === 'number' &&\n Number.isFinite(ext.connectionTimeout) &&\n ext.connectionTimeout >= 1000\n ) {\n extTarget.connectionTimeout = Math.floor(ext.connectionTimeout);\n }\n if (Object.keys(extTarget).length > 0) {\n target.extension = extTarget;\n } else {\n delete target.extension;\n }\n }\n }\n if (br.cloakbrowser !== undefined) {\n if (br.cloakbrowser === null) {\n delete target.cloakbrowser;\n } else if (typeof br.cloakbrowser === 'object' && !Array.isArray(br.cloakbrowser)) {\n const cloakbrowserPatch = br.cloakbrowser as Record<string, unknown>;\n const cloakbrowserTarget: Record<string, unknown> = {};\n if (typeof cloakbrowserPatch.keepOpen === 'boolean') {\n cloakbrowserTarget.keepOpen = cloakbrowserPatch.keepOpen;\n }\n if (typeof cloakbrowserPatch.temporaryProfile === 'boolean') {\n cloakbrowserTarget.temporaryProfile = cloakbrowserPatch.temporaryProfile;\n }\n for (const key of ['cacheDir', 'binaryPath', 'timezone', 'locale', 'webrtcIp', 'fingerprintPlatform']) {\n const value = cloakbrowserPatch[key];\n if (typeof value === 'string' && value.trim()) {\n cloakbrowserTarget[key] = value.trim();\n }\n }\n if (\n Array.isArray(cloakbrowserPatch.extraArgs) &&\n cloakbrowserPatch.extraArgs.every((value) => typeof value === 'string')\n ) {\n cloakbrowserTarget.extraArgs = cloakbrowserPatch.extraArgs;\n }\n if (Object.keys(cloakbrowserTarget).length > 0) {\n target.cloakbrowser = cloakbrowserTarget;\n } else {\n delete target.cloakbrowser;\n }\n }\n }\n if (br.humanize !== undefined) {\n if (br.humanize === null) {\n delete target.humanize;\n } else {\n target.humanize = Boolean(br.humanize);\n }\n }\n if (br.humanPreset !== undefined) {\n if (br.humanPreset === null) {\n delete target.humanPreset;\n } else if (br.humanPreset === 'default' || br.humanPreset === 'careful') {\n target.humanPreset = br.humanPreset;\n }\n }\n if (br.dialogPolicy !== undefined) {\n if (br.dialogPolicy === null) {\n delete target.dialogPolicy;\n } else if (\n br.dialogPolicy === 'must_respond' ||\n br.dialogPolicy === 'auto_dismiss' ||\n br.dialogPolicy === 'auto_accept'\n ) {\n target.dialogPolicy = br.dialogPolicy;\n }\n }\n if (br.dialogTimeoutSeconds !== undefined) {\n if (br.dialogTimeoutSeconds === null) {\n delete target.dialogTimeoutSeconds;\n } else if (typeof br.dialogTimeoutSeconds === 'number' && Number.isFinite(br.dialogTimeoutSeconds)) {\n const n = Math.floor(br.dialogTimeoutSeconds);\n if (n >= 1 && n <= 86_400) {\n target.dialogTimeoutSeconds = n;\n }\n }\n }\n }\n }\n\n const dPatch = body.agents.defaults as Record<string, unknown>;\n const def = config.agents.defaults as Record<string, unknown>;\n\n if (dPatch.maxTaskDurationMs !== undefined) {\n const v = dPatch.maxTaskDurationMs;\n if (v === null) {\n delete def.maxTaskDurationMs;\n } else if (typeof v === 'number' && Number.isFinite(v)) {\n const ms = Math.floor(v);\n if (ms >= 60_000 && ms <= 14_400_000) {\n def.maxTaskDurationMs = ms;\n }\n }\n }\n if (dPatch.maxRequestsPerTurn !== undefined) {\n const v = dPatch.maxRequestsPerTurn;\n if (v === null) {\n delete def.maxRequestsPerTurn;\n } else if (typeof v === 'number' && Number.isFinite(v)) {\n const n = Math.floor(v);\n if (n >= 10 && n <= 200) {\n def.maxRequestsPerTurn = n;\n }\n }\n }\n if (dPatch.maxToolFailuresPerTurn !== undefined) {\n const v = dPatch.maxToolFailuresPerTurn;\n if (v === null) {\n delete def.maxToolFailuresPerTurn;\n } else if (typeof v === 'number' && Number.isFinite(v)) {\n const n = Math.floor(v);\n if (n >= 1 && n <= 20) {\n def.maxToolFailuresPerTurn = n;\n }\n }\n }\n\n if (dPatch.compaction !== undefined) {\n const c = dPatch.compaction;\n if (c === null) {\n delete def.compaction;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.compaction || typeof def.compaction !== 'object') {\n def.compaction = {};\n }\n const t = def.compaction as Record<string, unknown>;\n if (p.enabled !== undefined) t.enabled = Boolean(p.enabled);\n if (p.mode === 'default' || p.mode === 'safeguard') t.mode = p.mode;\n if (typeof p.reserveTokens === 'number' && Number.isFinite(p.reserveTokens)) {\n t.reserveTokens = Math.floor(p.reserveTokens);\n }\n if (typeof p.triggerThreshold === 'number' && Number.isFinite(p.triggerThreshold)) {\n const x = p.triggerThreshold;\n if (x >= 0.5 && x <= 0.95) t.triggerThreshold = x;\n }\n if (typeof p.minMessagesBeforeCompact === 'number' && Number.isFinite(p.minMessagesBeforeCompact)) {\n t.minMessagesBeforeCompact = Math.floor(p.minMessagesBeforeCompact);\n }\n if (typeof p.keepRecentMessages === 'number' && Number.isFinite(p.keepRecentMessages)) {\n t.keepRecentMessages = Math.floor(p.keepRecentMessages);\n }\n if (typeof p.evictionWindow === 'number' && Number.isFinite(p.evictionWindow)) {\n const x = p.evictionWindow;\n if (x >= 0.1 && x <= 0.5) t.evictionWindow = x;\n }\n if (typeof p.retentionWindow === 'number' && Number.isFinite(p.retentionWindow)) {\n const n = Math.floor(p.retentionWindow);\n if (n >= 3 && n <= 20) t.retentionWindow = n;\n }\n }\n }\n\n if (dPatch.pruning !== undefined) {\n const c = dPatch.pruning;\n if (c === null) {\n delete def.pruning;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.pruning || typeof def.pruning !== 'object') {\n def.pruning = {};\n }\n const t = def.pruning as Record<string, unknown>;\n if (p.enabled !== undefined) t.enabled = Boolean(p.enabled);\n if (typeof p.maxToolResultChars === 'number' && Number.isFinite(p.maxToolResultChars)) {\n t.maxToolResultChars = Math.floor(p.maxToolResultChars);\n }\n if (typeof p.headKeepRatio === 'number' && Number.isFinite(p.headKeepRatio)) {\n t.headKeepRatio = p.headKeepRatio;\n }\n if (typeof p.tailKeepRatio === 'number' && Number.isFinite(p.tailKeepRatio)) {\n t.tailKeepRatio = p.tailKeepRatio;\n }\n }\n }\n\n if (dPatch.memory !== undefined) {\n const c = dPatch.memory;\n if (c === null) {\n delete def.memory;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.memory || typeof def.memory !== 'object') {\n def.memory = {};\n }\n const t = def.memory as Record<string, unknown>;\n if (p.enabled !== undefined) {\n if (p.enabled === null) delete t.enabled;\n else t.enabled = Boolean(p.enabled);\n }\n if (p.useEnhancedSystem !== undefined) {\n if (p.useEnhancedSystem === null) delete t.useEnhancedSystem;\n else t.useEnhancedSystem = Boolean(p.useEnhancedSystem);\n }\n if (p.userProfileEnabled !== undefined) {\n if (p.userProfileEnabled === null) delete t.userProfileEnabled;\n else t.userProfileEnabled = Boolean(p.userProfileEnabled);\n }\n if (p.memoryCharLimit !== undefined) {\n if (p.memoryCharLimit === null) delete t.memoryCharLimit;\n else if (typeof p.memoryCharLimit === 'number' && p.memoryCharLimit > 0) {\n t.memoryCharLimit = Math.floor(p.memoryCharLimit);\n }\n }\n if (p.userCharLimit !== undefined) {\n if (p.userCharLimit === null) delete t.userCharLimit;\n else if (typeof p.userCharLimit === 'number' && p.userCharLimit > 0) {\n t.userCharLimit = Math.floor(p.userCharLimit);\n }\n }\n if (p.provider === 'none' || p.provider === 'stub') {\n t.provider = p.provider;\n } else if (p.provider === null) {\n delete t.provider;\n }\n if (p.injectionFrequency === 'every-turn' || p.injectionFrequency === 'first-turn') {\n t.injectionFrequency = p.injectionFrequency;\n } else if (p.injectionFrequency === null) {\n delete t.injectionFrequency;\n }\n if (p.contextCadence !== undefined) {\n if (p.contextCadence === null) delete t.contextCadence;\n else if (typeof p.contextCadence === 'number' && p.contextCadence >= 1) {\n t.contextCadence = Math.floor(p.contextCadence);\n }\n }\n if (p.dialecticCadence !== undefined) {\n if (p.dialecticCadence === null) delete t.dialecticCadence;\n else if (typeof p.dialecticCadence === 'number' && p.dialecticCadence >= 1) {\n t.dialecticCadence = Math.floor(p.dialecticCadence);\n }\n }\n\n // Dreaming (schemaless patch): agents.defaults.memory.dreaming\n if (p.dreaming !== undefined) {\n const d0 = p.dreaming;\n if (d0 === null) {\n delete (t as { dreaming?: unknown }).dreaming;\n } else if (typeof d0 === 'object' && d0 !== null && !Array.isArray(d0)) {\n if (!('dreaming' in t) || typeof (t as { dreaming?: unknown }).dreaming !== 'object') {\n (t as { dreaming?: Record<string, unknown> }).dreaming = {};\n }\n const dt = (t as { dreaming: Record<string, unknown> }).dreaming;\n const dp = d0 as Record<string, unknown>;\n\n if (dp.enabled !== undefined) {\n if (dp.enabled === null) delete dt.enabled;\n else dt.enabled = Boolean(dp.enabled);\n }\n if (dp.frequency !== undefined) {\n const v = dp.frequency;\n if (v === null || v === '') delete dt.frequency;\n else if (typeof v === 'string') dt.frequency = v;\n }\n if (dp.timezone !== undefined) {\n const v = dp.timezone;\n if (v === null || v === '') delete dt.timezone;\n else if (typeof v === 'string') dt.timezone = v;\n }\n\n // Accept either `phases.deep` or `deep`.\n if (dp.phases !== undefined || dp.deep !== undefined) {\n if (!('phases' in dt) || typeof (dt as { phases?: unknown }).phases !== 'object' || (dt as { phases?: unknown }).phases === null) {\n dt.phases = {};\n }\n const phases = (dt as { phases: Record<string, unknown> }).phases;\n if (!('deep' in phases) || typeof phases.deep !== 'object' || phases.deep === null) {\n phases.deep = {};\n }\n const deep = phases.deep as Record<string, unknown>;\n\n const deepPatchRaw =\n typeof dp.phases === 'object' && dp.phases !== null && !Array.isArray(dp.phases)\n ? (dp.phases as Record<string, unknown>).deep\n : dp.deep;\n const deepPatch =\n typeof deepPatchRaw === 'object' && deepPatchRaw !== null && !Array.isArray(deepPatchRaw)\n ? (deepPatchRaw as Record<string, unknown>)\n : null;\n\n if (deepPatch) {\n if (deepPatch.enabled !== undefined) {\n if (deepPatch.enabled === null) delete deep.enabled;\n else deep.enabled = Boolean(deepPatch.enabled);\n }\n if (deepPatch.minScore !== undefined) {\n const v = deepPatch.minScore;\n if (v === null) delete deep.minScore;\n else if (typeof v === 'number' && Number.isFinite(v)) deep.minScore = v;\n }\n if (deepPatch.minRecallCount !== undefined) {\n const v = deepPatch.minRecallCount;\n if (v === null) delete deep.minRecallCount;\n else if (typeof v === 'number' && Number.isFinite(v)) deep.minRecallCount = Math.floor(v);\n }\n if (deepPatch.limit !== undefined) {\n const v = deepPatch.limit;\n if (v === null) delete deep.limit;\n else if (typeof v === 'number' && Number.isFinite(v)) deep.limit = Math.floor(v);\n }\n }\n }\n }\n }\n }\n }\n\n if (dPatch.sessionSearch !== undefined) {\n const c = dPatch.sessionSearch;\n if (c === null) {\n delete def.sessionSearch;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.sessionSearch || typeof def.sessionSearch !== 'object') {\n def.sessionSearch = {};\n }\n const t = def.sessionSearch as Record<string, unknown>;\n if (p.summaryModel !== undefined) {\n if (p.summaryModel === null || p.summaryModel === '') {\n delete t.summaryModel;\n } else if (typeof p.summaryModel === 'string') {\n t.summaryModel = p.summaryModel;\n }\n }\n }\n }\n\n if (dPatch.backgroundReview !== undefined) {\n const c = dPatch.backgroundReview;\n if (c === null) {\n delete def.backgroundReview;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.backgroundReview || typeof def.backgroundReview !== 'object') {\n def.backgroundReview = {};\n }\n const t = def.backgroundReview as Record<string, unknown>;\n if (p.enabled !== undefined) {\n if (p.enabled === null) delete t.enabled;\n else t.enabled = Boolean(p.enabled);\n }\n if (p.memoryNudgeInterval !== undefined) {\n if (p.memoryNudgeInterval === null) delete t.memoryNudgeInterval;\n else if (typeof p.memoryNudgeInterval === 'number' && p.memoryNudgeInterval >= 0) {\n t.memoryNudgeInterval = Math.floor(p.memoryNudgeInterval);\n }\n }\n if (p.skillNudgeInterval !== undefined) {\n if (p.skillNudgeInterval === null) delete t.skillNudgeInterval;\n else if (typeof p.skillNudgeInterval === 'number' && p.skillNudgeInterval >= 0) {\n t.skillNudgeInterval = Math.floor(p.skillNudgeInterval);\n }\n }\n if (p.maxToolRounds !== undefined) {\n if (p.maxToolRounds === null) delete t.maxToolRounds;\n else if (typeof p.maxToolRounds === 'number' && p.maxToolRounds >= 1 && p.maxToolRounds <= 32) {\n t.maxToolRounds = Math.floor(p.maxToolRounds);\n }\n }\n if (p.maxHistoryMessages !== undefined) {\n if (p.maxHistoryMessages === null) delete t.maxHistoryMessages;\n else if (typeof p.maxHistoryMessages === 'number' && p.maxHistoryMessages >= 10 && p.maxHistoryMessages <= 200) {\n t.maxHistoryMessages = Math.floor(p.maxHistoryMessages);\n }\n }\n if (p.maxDurationMs !== undefined) {\n if (p.maxDurationMs === null) delete t.maxDurationMs;\n else if (typeof p.maxDurationMs === 'number' && p.maxDurationMs >= 30_000 && p.maxDurationMs <= 600_000) {\n t.maxDurationMs = Math.floor(p.maxDurationMs);\n }\n }\n }\n }\n\n if (dPatch.webExtract !== undefined) {\n const c = dPatch.webExtract;\n if (c === null) {\n delete def.webExtract;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.webExtract || typeof def.webExtract !== 'object') {\n def.webExtract = {};\n }\n const t = def.webExtract as Record<string, unknown>;\n if (p.model !== undefined) {\n if (p.model === null || p.model === '') {\n delete t.model;\n } else if (typeof p.model === 'string') {\n t.model = p.model;\n }\n }\n if (p.maxLength !== undefined) {\n if (p.maxLength === null) delete t.maxLength;\n else if (typeof p.maxLength === 'number' && p.maxLength > 0) {\n t.maxLength = p.maxLength;\n }\n }\n }\n }\n\n if (dPatch.delegate !== undefined) {\n const c = dPatch.delegate;\n if (c === null) {\n delete def.delegate;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.delegate || typeof def.delegate !== 'object') {\n def.delegate = {};\n }\n const t = def.delegate as Record<string, unknown>;\n if (p.enabled !== undefined) {\n if (p.enabled === null) delete t.enabled;\n else t.enabled = Boolean(p.enabled);\n }\n }\n }\n\n if (dPatch.executeCode !== undefined) {\n const c = dPatch.executeCode;\n if (c === null) {\n delete def.executeCode;\n } else if (typeof c === 'object' && !Array.isArray(c)) {\n const p = c as Record<string, unknown>;\n if (!def.executeCode || typeof def.executeCode !== 'object') {\n def.executeCode = {};\n }\n const t = def.executeCode as Record<string, unknown>;\n if (p.enabled !== undefined) {\n if (p.enabled === null) delete t.enabled;\n else t.enabled = Boolean(p.enabled);\n }\n }\n }\n\n if (dPatch.systemPromptOverride !== undefined) {\n const v = dPatch.systemPromptOverride;\n if (v === null || v === '') {\n delete def.systemPromptOverride;\n } else if (typeof v === 'string') {\n def.systemPromptOverride = v;\n }\n }\n\n if (dPatch.skills !== undefined) {\n const v = dPatch.skills;\n if (v === null) {\n delete def.skills;\n } else if (Array.isArray(v) && v.every((x) => typeof x === 'string')) {\n def.skills = v;\n }\n }\n\n if (dPatch.tools !== undefined) {\n const t0 = dPatch.tools;\n if (t0 === null) {\n delete def.tools;\n } else if (typeof t0 === 'object' && !Array.isArray(t0)) {\n const p = t0 as { disable?: unknown };\n if (!def.tools || typeof def.tools !== 'object') {\n def.tools = {};\n }\n const t = def.tools as { disable?: string[] };\n if (p.disable !== undefined) {\n if (p.disable === null || (Array.isArray(p.disable) && p.disable.length === 0)) {\n delete t.disable;\n } else if (Array.isArray(p.disable) && p.disable.every((x) => typeof x === 'string')) {\n t.disable = p.disable;\n }\n }\n }\n }\n\n if (dPatch.params !== undefined) {\n const v = dPatch.params;\n if (v === null) {\n delete def.params;\n } else if (typeof v === 'object' && !Array.isArray(v) && v !== null) {\n def.params = v as Record<string, unknown>;\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `PATCH /api/config` — `body.channels.{telegram,weixin,feishu}` section.
3
+ *
4
+ * Uses `in patchChannels` / `null` semantics so the web UI can remove a
5
+ * provider with `{ weixin: null }` — `if (ch.weixin)` would silently drop
6
+ * those clears.
7
+ *
8
+ * Each provider has its own first-init template (so a brand-new install gets
9
+ * sane account / policy defaults), then field-by-field overlay.
10
+ */
11
+ import type { Config } from '../../../../config/schema.js';
12
+ export declare function applyChannelsPatch(config: Config, body: any): void;