@xopcai/xopc 0.0.83 → 0.0.85

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 (457) hide show
  1. package/README.md +2 -0
  2. package/README.zh-CN.md +3 -1
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  5. package/dist/extensions/feishu/src/plugin.d.ts +2 -0
  6. package/dist/extensions/feishu/src/plugin.js +10 -0
  7. package/dist/extensions/feishu/src/plugin.js.map +1 -1
  8. package/dist/extensions/feishu/src/workflow-progress.d.ts +27 -0
  9. package/dist/extensions/feishu/src/workflow-progress.js +99 -0
  10. package/dist/extensions/feishu/src/workflow-progress.js.map +1 -0
  11. package/dist/extensions/telegram/src/plugin.d.ts +2 -0
  12. package/dist/extensions/telegram/src/plugin.js +11 -1
  13. package/dist/extensions/telegram/src/plugin.js.map +1 -1
  14. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  15. package/dist/extensions/telegram/src/workflow-progress.d.ts +24 -0
  16. package/dist/extensions/telegram/src/workflow-progress.js +73 -0
  17. package/dist/extensions/telegram/src/workflow-progress.js.map +1 -0
  18. package/dist/extensions/telegram/xopc.extension.json +1 -1
  19. package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js +158 -0
  20. package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js.map +1 -0
  21. package/dist/extensions/weixin/src/api/api.js +2 -2
  22. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  23. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  24. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  25. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  26. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  27. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  28. package/dist/extensions/weixin/src/plugin.d.ts +2 -0
  29. package/dist/extensions/weixin/src/plugin.js +11 -1
  30. package/dist/extensions/weixin/src/plugin.js.map +1 -1
  31. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  32. package/dist/extensions/weixin/src/workflow-progress.d.ts +26 -0
  33. package/dist/extensions/weixin/src/workflow-progress.js +99 -0
  34. package/dist/extensions/weixin/src/workflow-progress.js.map +1 -0
  35. package/dist/gateway/static/root/assets/agents-D3_-kNlZ.js +222 -0
  36. package/dist/gateway/static/root/assets/apps-page-D7v7649T.js +1 -0
  37. package/dist/gateway/static/root/assets/channels-settings-nCaMb0a7.js +1 -0
  38. package/dist/gateway/static/root/assets/channels-status-swr-C1gZBcJV.js +8 -0
  39. package/dist/gateway/static/root/assets/createLucideIcon-DPHK1VkS.js +1 -0
  40. package/dist/gateway/static/root/assets/cron-api-CoYK0hlm.js +1 -0
  41. package/dist/gateway/static/root/assets/cron-page-DeGo-Vjc.js +1 -0
  42. package/dist/gateway/static/root/assets/dist-BTWC-BTN.js +45 -0
  43. package/dist/gateway/static/root/assets/{dist-BpQxde0t.js → dist-DaK4dsss.js} +1 -1
  44. package/dist/gateway/static/root/assets/{extension-debug-page-CY27wj_p.js → extension-debug-page-BZngZWbO.js} +1 -1
  45. package/dist/gateway/static/root/assets/extension-page-D6JSyV27.js +1 -0
  46. package/dist/gateway/static/root/assets/extension-settings-page-8PZcmWI7.js +1 -0
  47. package/dist/gateway/static/root/assets/fetch-B2MYHbWg.js +1 -0
  48. package/dist/gateway/static/root/assets/{field-primitives-fa_hiQcX.js → field-primitives-Zzl22MvN.js} +1 -1
  49. package/dist/gateway/static/root/assets/heartbeat-config-api-BtIcpG0O.js +1 -0
  50. package/dist/gateway/static/root/assets/index-D4vM3-P7.js +4700 -0
  51. package/dist/gateway/static/root/assets/index-ew_2L2We.css +1 -0
  52. package/dist/gateway/static/root/assets/logs-page-_d4UJ-qQ.js +1 -0
  53. package/dist/gateway/static/root/assets/sessions-page-5N4aF2Wk.js +1 -0
  54. package/dist/gateway/static/root/assets/settings-form-section-D_tgb8r2.js +1 -0
  55. package/dist/gateway/static/root/assets/settings-page-C18xBt4X.js +3 -0
  56. package/dist/gateway/static/root/assets/share-preview-page-D4EG_vM1.js +2 -0
  57. package/dist/gateway/static/root/assets/skills-page-sPAXhh8w.js +2 -0
  58. package/dist/gateway/static/root/assets/theme-store-DryYl3qD.js +1 -0
  59. package/dist/gateway/static/root/assets/url-BwNL6Rgk.js +3 -0
  60. package/dist/gateway/static/root/assets/utils-CYO9eTCM.js +1 -0
  61. package/dist/gateway/static/root/assets/voice-api-key-field-Ds51havm.js +1 -0
  62. package/dist/gateway/static/root/index.html +7 -6
  63. package/dist/package.js +1 -1
  64. package/dist/src/agent/agent-manager.js +7 -7
  65. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  66. package/dist/src/agent/context/workspace-seed.js +3 -3
  67. package/dist/src/agent/embedded/map-stream-events.js +6 -0
  68. package/dist/src/agent/embedded/map-stream-events.js.map +1 -1
  69. package/dist/src/agent/embedded/subscribe-session.js +24 -0
  70. package/dist/src/agent/embedded/subscribe-session.js.map +1 -1
  71. package/dist/src/agent/embedded/types.d.ts +19 -0
  72. package/dist/src/agent/goals/goal-locale.js +2 -2
  73. package/dist/src/agent/goals/goal-run-store.js +4 -4
  74. package/dist/src/agent/goals/persistent-goal-service.js +1 -1
  75. package/dist/src/agent/goals/post-turn.js +2 -2
  76. package/dist/src/agent/image/load-image-media.js +2 -2
  77. package/dist/src/agent/ipc/bus.js +1 -1
  78. package/dist/src/agent/ipc/inbox.js +2 -2
  79. package/dist/src/agent/ipc/socket.js +1 -1
  80. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  81. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  82. package/dist/src/agent/memory/dreaming/events.js +1 -1
  83. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  84. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  85. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  86. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  87. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  88. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  89. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  90. package/dist/src/agent/models/manager.js +1 -1
  91. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  92. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  93. package/dist/src/agent/reply/startup-context.d.ts +3 -0
  94. package/dist/src/agent/reply/startup-context.js +25 -2
  95. package/dist/src/agent/reply/startup-context.js.map +1 -1
  96. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  97. package/dist/src/agent/sandbox/path-policy.js +2 -2
  98. package/dist/src/agent/service/build-direct-message-content.js +1 -1
  99. package/dist/src/agent/service.d.ts +1 -0
  100. package/dist/src/agent/service.js +10 -4
  101. package/dist/src/agent/service.js.map +1 -1
  102. package/dist/src/agent/session/session-inspector.js +1 -1
  103. package/dist/src/agent/skills/config.js +1 -1
  104. package/dist/src/agent/skills/hub-hash.js +2 -2
  105. package/dist/src/agent/skills/hub-lock.js +1 -1
  106. package/dist/src/agent/skills/hub-pull.js +3 -3
  107. package/dist/src/agent/skills/index.js +1 -1
  108. package/dist/src/agent/skills/managed-store.js +1 -1
  109. package/dist/src/agent/skills/scanner.js +1 -1
  110. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  111. package/dist/src/agent/skills/skill-manager.js +1 -1
  112. package/dist/src/agent/tools/create-share-tool.d.ts +27 -0
  113. package/dist/src/agent/tools/create-share-tool.js +237 -0
  114. package/dist/src/agent/tools/create-share-tool.js.map +1 -0
  115. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  116. package/dist/src/agent/tools/factory.js +35 -1
  117. package/dist/src/agent/tools/factory.js.map +1 -1
  118. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  119. package/dist/src/agent/tools/index.d.ts +2 -0
  120. package/dist/src/agent/tools/index.js +3 -1
  121. package/dist/src/agent/tools/send-media.js +1 -1
  122. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  123. package/dist/src/agent/tools/workflow-tool.d.ts +41 -0
  124. package/dist/src/agent/tools/workflow-tool.js +271 -0
  125. package/dist/src/agent/tools/workflow-tool.js.map +1 -0
  126. package/dist/src/agent/tools/write.js +1 -1
  127. package/dist/src/agent/workflow/builtins/audit-repo.d.ts +9 -0
  128. package/dist/src/agent/workflow/builtins/audit-repo.js +115 -0
  129. package/dist/src/agent/workflow/builtins/audit-repo.js.map +1 -0
  130. package/dist/src/agent/workflow/builtins/index.d.ts +15 -0
  131. package/dist/src/agent/workflow/builtins/index.js +28 -0
  132. package/dist/src/agent/workflow/builtins/index.js.map +1 -0
  133. package/dist/src/agent/workflow/builtins/multi-perspective-review.d.ts +9 -0
  134. package/dist/src/agent/workflow/builtins/multi-perspective-review.js +113 -0
  135. package/dist/src/agent/workflow/builtins/multi-perspective-review.js.map +1 -0
  136. package/dist/src/agent/workflow/builtins/research.d.ts +9 -0
  137. package/dist/src/agent/workflow/builtins/research.js +129 -0
  138. package/dist/src/agent/workflow/builtins/research.js.map +1 -0
  139. package/dist/src/agent/workflow/catalog.d.ts +51 -0
  140. package/dist/src/agent/workflow/catalog.js +155 -0
  141. package/dist/src/agent/workflow/catalog.js.map +1 -0
  142. package/dist/src/agent/workflow/channel-capability.d.ts +76 -0
  143. package/dist/src/agent/workflow/channel-capability.js +1 -0
  144. package/dist/src/agent/workflow/index.d.ts +11 -0
  145. package/dist/src/agent/workflow/index.js +10 -0
  146. package/dist/src/agent/workflow/last-run-memory.d.ts +42 -0
  147. package/dist/src/agent/workflow/last-run-memory.js +60 -0
  148. package/dist/src/agent/workflow/last-run-memory.js.map +1 -0
  149. package/dist/src/agent/workflow/parser.d.ts +20 -0
  150. package/dist/src/agent/workflow/parser.js +137 -0
  151. package/dist/src/agent/workflow/parser.js.map +1 -0
  152. package/dist/src/agent/workflow/progress-broker.d.ts +80 -0
  153. package/dist/src/agent/workflow/progress-broker.js +263 -0
  154. package/dist/src/agent/workflow/progress-broker.js.map +1 -0
  155. package/dist/src/agent/workflow/runtime.d.ts +31 -0
  156. package/dist/src/agent/workflow/runtime.js +301 -0
  157. package/dist/src/agent/workflow/runtime.js.map +1 -0
  158. package/dist/src/agent/workflow/snapshot.d.ts +18 -0
  159. package/dist/src/agent/workflow/snapshot.js +144 -0
  160. package/dist/src/agent/workflow/snapshot.js.map +1 -0
  161. package/dist/src/agent/workflow/structured-output-tool.d.ts +33 -0
  162. package/dist/src/agent/workflow/structured-output-tool.js +58 -0
  163. package/dist/src/agent/workflow/structured-output-tool.js.map +1 -0
  164. package/dist/src/agent/workflow/subagent-runner.d.ts +42 -0
  165. package/dist/src/agent/workflow/subagent-runner.js +104 -0
  166. package/dist/src/agent/workflow/subagent-runner.js.map +1 -0
  167. package/dist/src/agent/workflow/types.d.ts +137 -0
  168. package/dist/src/agent/workflow/types.js +1 -0
  169. package/dist/src/auth/credentials.js +3 -3
  170. package/dist/src/auth/profiles/store.js +1 -1
  171. package/dist/src/auth/sync-provider-auth.js +1 -1
  172. package/dist/src/browser/cache-dir-policy.js +1 -1
  173. package/dist/src/browser/cdp-local-launcher.js +2 -2
  174. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  175. package/dist/src/browser/providers/cloakbrowser.js +4 -4
  176. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  177. package/dist/src/browser/stealth.js +1 -1
  178. package/dist/src/channels/attachments/inbound-persist.js +1 -1
  179. package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
  180. package/dist/src/channels/outbound/persist-store.js +1 -1
  181. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  182. package/dist/src/channels/pairing/pairing-store.js +2 -2
  183. package/dist/src/chat-commands/builtins/config.js +2 -2
  184. package/dist/src/chat-commands/builtins/model.js +40 -23
  185. package/dist/src/chat-commands/builtins/model.js.map +1 -1
  186. package/dist/src/chat-commands/builtins/system.js +30 -15
  187. package/dist/src/chat-commands/builtins/system.js.map +1 -1
  188. package/dist/src/chat-commands/builtins/workflow.d.ts +18 -0
  189. package/dist/src/chat-commands/builtins/workflow.js +167 -0
  190. package/dist/src/chat-commands/builtins/workflow.js.map +1 -0
  191. package/dist/src/chat-commands/context.js +1 -1
  192. package/dist/src/chat-commands/format-output.d.ts +28 -0
  193. package/dist/src/chat-commands/format-output.js +45 -0
  194. package/dist/src/chat-commands/format-output.js.map +1 -0
  195. package/dist/src/chat-commands/index.d.ts +1 -0
  196. package/dist/src/chat-commands/index.js +3 -1
  197. package/dist/src/chat-commands/index.js.map +1 -1
  198. package/dist/src/cli/command-catalog.js +110 -8
  199. package/dist/src/cli/command-catalog.js.map +1 -1
  200. package/dist/src/cli/command-loaders.js +2 -0
  201. package/dist/src/cli/command-loaders.js.map +1 -1
  202. package/dist/src/cli/command-manifest.js +9 -1
  203. package/dist/src/cli/command-manifest.js.map +1 -1
  204. package/dist/src/cli/commands/config.js +71 -20
  205. package/dist/src/cli/commands/config.js.map +1 -1
  206. package/dist/src/cli/commands/cron-cli.d.ts +2 -0
  207. package/dist/src/cli/commands/cron-cli.js +15 -0
  208. package/dist/src/cli/commands/cron-cli.js.map +1 -0
  209. package/dist/src/cli/commands/cron.d.ts +4 -1
  210. package/dist/src/cli/commands/cron.js +76 -41
  211. package/dist/src/cli/commands/cron.js.map +1 -1
  212. package/dist/src/cli/commands/doctor/checks/channel-config.js +1 -1
  213. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
  214. package/dist/src/cli/commands/doctor/checks/config-health.js +2 -2
  215. package/dist/src/cli/commands/doctor/checks/config-health.js.map +1 -1
  216. package/dist/src/cli/commands/doctor/checks/cron-health.js +1 -1
  217. package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -1
  218. package/dist/src/cli/commands/doctor/checks/gateway-health.js +2 -2
  219. package/dist/src/cli/commands/doctor/checks/gateway-health.js.map +1 -1
  220. package/dist/src/cli/commands/doctor/checks/gateway-service.js +2 -2
  221. package/dist/src/cli/commands/doctor/checks/gateway-service.js.map +1 -1
  222. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  223. package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
  224. package/dist/src/cli/commands/doctor/checks/state-integrity.js +2 -2
  225. package/dist/src/cli/commands/doctor/checks/state-integrity.js.map +1 -1
  226. package/dist/src/cli/commands/doctor/checks/workspace-status.js +4 -4
  227. package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +1 -1
  228. package/dist/src/cli/commands/extension-dev.js +1 -1
  229. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  230. package/dist/src/cli/commands/extension-pack.js +1 -1
  231. package/dist/src/cli/commands/gateway/index.d.ts +1 -1
  232. package/dist/src/cli/commands/gateway/index.js +2 -2
  233. package/dist/src/cli/commands/gateway/lifecycle.js +10 -4
  234. package/dist/src/cli/commands/gateway/lifecycle.js.map +1 -1
  235. package/dist/src/cli/commands/gateway/service.d.ts +4 -0
  236. package/dist/src/cli/commands/gateway/service.js +17 -2
  237. package/dist/src/cli/commands/gateway/service.js.map +1 -1
  238. package/dist/src/cli/commands/gateway/shared.js +1 -1
  239. package/dist/src/cli/commands/gateway/subcommands.js +1 -4
  240. package/dist/src/cli/commands/gateway/subcommands.js.map +1 -1
  241. package/dist/src/cli/commands/image.js +1 -1
  242. package/dist/src/cli/commands/init.js +31 -4
  243. package/dist/src/cli/commands/init.js.map +1 -1
  244. package/dist/src/cli/commands/models.d.ts +4 -1
  245. package/dist/src/cli/commands/models.js +86 -74
  246. package/dist/src/cli/commands/models.js.map +1 -1
  247. package/dist/src/cli/commands/onboard.js +4 -2
  248. package/dist/src/cli/commands/onboard.js.map +1 -1
  249. package/dist/src/cli/commands/profile.d.ts +3 -5
  250. package/dist/src/cli/commands/profile.js +31 -31
  251. package/dist/src/cli/commands/profile.js.map +1 -1
  252. package/dist/src/cli/commands/setup.js +6 -1
  253. package/dist/src/cli/commands/setup.js.map +1 -1
  254. package/dist/src/cli/commands/tunnel.js +2 -2
  255. package/dist/src/cli/gateway-run-argv.js +15 -5
  256. package/dist/src/cli/gateway-run-argv.js.map +1 -1
  257. package/dist/src/cli/utils/gateway-client.js +1 -1
  258. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  259. package/dist/src/config/agent-profile.js +1 -1
  260. package/dist/src/config/gateway-bind.js +1 -1
  261. package/dist/src/config/index.js +5 -5
  262. package/dist/src/config/loader.js +2 -2
  263. package/dist/src/config/models-json.js +2 -2
  264. package/dist/src/config/paths-state.js +1 -1
  265. package/dist/src/config/profile.js +2 -2
  266. package/dist/src/config/public-url.d.ts +28 -0
  267. package/dist/src/config/public-url.js +103 -0
  268. package/dist/src/config/public-url.js.map +1 -0
  269. package/dist/src/config/schema.d.ts +82 -0
  270. package/dist/src/config/schema.js +130 -1
  271. package/dist/src/config/schema.js.map +1 -1
  272. package/dist/src/config/workspace-path.js +1 -1
  273. package/dist/src/cron/executor.js +2 -2
  274. package/dist/src/cron/persistence.js +1 -1
  275. package/dist/src/cron/run-log-store.js +1 -1
  276. package/dist/src/daemon/constants.js +1 -1
  277. package/dist/src/daemon/install-plan.js +3 -3
  278. package/dist/src/daemon/install-plan.js.map +1 -1
  279. package/dist/src/daemon/launchd.js +2 -2
  280. package/dist/src/daemon/schtasks.js +38 -1
  281. package/dist/src/daemon/schtasks.js.map +1 -1
  282. package/dist/src/daemon/systemd.js +2 -2
  283. package/dist/src/extensions/bundle-mcp.js +1 -1
  284. package/dist/src/extensions/discover-extensions.js +1 -1
  285. package/dist/src/extensions/health.js +1 -1
  286. package/dist/src/extensions/loader.js +1 -1
  287. package/dist/src/extensions/lockfile.js +2 -2
  288. package/dist/src/gateway/agents-admin.js +2 -2
  289. package/dist/src/gateway/file-path-classifier.js +2 -2
  290. package/dist/src/gateway/heartbeat/service.js +1 -1
  291. package/dist/src/gateway/hono/app.js +33 -2
  292. package/dist/src/gateway/hono/app.js.map +1 -1
  293. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  294. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  295. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  296. package/dist/src/gateway/hono/oauth.js +1 -1
  297. package/dist/src/gateway/hono/routes/agents.js +1 -1
  298. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  299. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  300. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  301. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  302. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  303. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  304. package/dist/src/gateway/hono/routes/models.js +1 -1
  305. package/dist/src/gateway/hono/routes/shares.js +631 -34
  306. package/dist/src/gateway/hono/routes/shares.js.map +1 -1
  307. package/dist/src/gateway/hono/routes/site-shares.d.ts +3 -0
  308. package/dist/src/gateway/hono/routes/site-shares.js +228 -0
  309. package/dist/src/gateway/hono/routes/site-shares.js.map +1 -0
  310. package/dist/src/gateway/hono/routes/tunnel.js +97 -8
  311. package/dist/src/gateway/hono/routes/tunnel.js.map +1 -1
  312. package/dist/src/gateway/hono/routes/workspace.js +5 -5
  313. package/dist/src/gateway/hono/sse.js +2 -2
  314. package/dist/src/gateway/host.d.ts +3 -1
  315. package/dist/src/gateway/host.js +3 -1
  316. package/dist/src/gateway/host.js.map +1 -1
  317. package/dist/src/gateway/lock.js +3 -3
  318. package/dist/src/gateway/ports.d.ts +6 -0
  319. package/dist/src/gateway/ports.js +38 -2
  320. package/dist/src/gateway/ports.js.map +1 -1
  321. package/dist/src/gateway/public-url.d.ts +8 -0
  322. package/dist/src/gateway/public-url.js +10 -0
  323. package/dist/src/gateway/public-url.js.map +1 -0
  324. package/dist/src/gateway/security/origin-check.d.ts +9 -1
  325. package/dist/src/gateway/security/origin-check.js +4 -0
  326. package/dist/src/gateway/security/origin-check.js.map +1 -1
  327. package/dist/src/gateway/server.js +15 -0
  328. package/dist/src/gateway/server.js.map +1 -1
  329. package/dist/src/gateway/service/agent-runner.js +2 -2
  330. package/dist/src/gateway/service/marketplace-service.js +2 -2
  331. package/dist/src/gateway/service/run-gateway-agent.js +2 -2
  332. package/dist/src/gateway/service.js +3 -2
  333. package/dist/src/gateway/service.js.map +1 -1
  334. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  335. package/dist/src/heartbeat/index.js +1 -1
  336. package/dist/src/i18n/goals-bundle.js +1 -1
  337. package/dist/src/i18n/index.d.ts +1 -0
  338. package/dist/src/i18n/index.js +2 -1
  339. package/dist/src/i18n/locales/share-tool.en.js +15 -0
  340. package/dist/src/i18n/locales/share-tool.en.js.map +1 -0
  341. package/dist/src/i18n/locales/share-tool.zh.js +15 -0
  342. package/dist/src/i18n/locales/share-tool.zh.js.map +1 -0
  343. package/dist/src/i18n/share-tool-bundle.d.ts +20 -0
  344. package/dist/src/i18n/share-tool-bundle.js +56 -0
  345. package/dist/src/i18n/share-tool-bundle.js.map +1 -0
  346. package/dist/src/infra/gateway-processes.js +1 -0
  347. package/dist/src/infra/gateway-processes.js.map +1 -1
  348. package/dist/src/infra/restart.js +2 -2
  349. package/dist/src/infra/update-check.js +1 -1
  350. package/dist/src/infra/update-lock.js +3 -3
  351. package/dist/src/infra/update-runner.js +1 -1
  352. package/dist/src/infra/update-startup.js +2 -2
  353. package/dist/src/infra/write-file-atomic.js +2 -2
  354. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  355. package/dist/src/providers/index.js +2 -2
  356. package/dist/src/providers/model-registry.js +1 -1
  357. package/dist/src/session/config-store.js +2 -2
  358. package/dist/src/session/parity/jsonl-transcript-io.js +2 -2
  359. package/dist/src/session/parity/sessions-json-file.js +1 -1
  360. package/dist/src/session/parity/transcript-file-lock.js +2 -2
  361. package/dist/src/session/parity/transcript-paths.js +1 -1
  362. package/dist/src/session/search-index-cache.js +1 -1
  363. package/dist/src/session/search-index.js +1 -1
  364. package/dist/src/session/session-title.js +3 -2
  365. package/dist/src/session/session-title.js.map +1 -1
  366. package/dist/src/session/store.js +5 -5
  367. package/dist/src/share/share-auto.d.ts +74 -0
  368. package/dist/src/share/share-auto.js +247 -0
  369. package/dist/src/share/share-auto.js.map +1 -0
  370. package/dist/src/share/share-config.js +63 -4
  371. package/dist/src/share/share-config.js.map +1 -1
  372. package/dist/src/share/share-landing.d.ts +28 -2
  373. package/dist/src/share/share-landing.js +155 -34
  374. package/dist/src/share/share-landing.js.map +1 -1
  375. package/dist/src/share/share-store.d.ts +48 -4
  376. package/dist/src/share/share-store.js +322 -51
  377. package/dist/src/share/share-store.js.map +1 -1
  378. package/dist/src/share/share-thumbnail.d.ts +35 -0
  379. package/dist/src/share/share-thumbnail.js +277 -0
  380. package/dist/src/share/share-thumbnail.js.map +1 -0
  381. package/dist/src/share/share-types.d.ts +68 -10
  382. package/dist/src/share/share-types.js +18 -1
  383. package/dist/src/share/share-types.js.map +1 -1
  384. package/dist/src/share/share-url.js +1 -1
  385. package/dist/src/share/share-zip.d.ts +35 -0
  386. package/dist/src/share/share-zip.js +303 -0
  387. package/dist/src/share/share-zip.js.map +1 -0
  388. package/dist/src/share/site-proxy.d.ts +35 -0
  389. package/dist/src/share/site-proxy.js +234 -0
  390. package/dist/src/share/site-proxy.js.map +1 -0
  391. package/dist/src/share/site-share-config.d.ts +11 -0
  392. package/dist/src/share/site-share-config.js +103 -0
  393. package/dist/src/share/site-share-config.js.map +1 -0
  394. package/dist/src/share/site-share-router.d.ts +23 -0
  395. package/dist/src/share/site-share-router.js +147 -0
  396. package/dist/src/share/site-share-router.js.map +1 -0
  397. package/dist/src/share/site-share-store.d.ts +53 -0
  398. package/dist/src/share/site-share-store.js +400 -0
  399. package/dist/src/share/site-share-store.js.map +1 -0
  400. package/dist/src/share/site-share-types.d.ts +103 -0
  401. package/dist/src/share/site-share-types.js +41 -0
  402. package/dist/src/share/site-share-types.js.map +1 -0
  403. package/dist/src/share/site-static-serve.d.ts +10 -0
  404. package/dist/src/share/site-static-serve.js +145 -0
  405. package/dist/src/share/site-static-serve.js.map +1 -0
  406. package/dist/src/tui/clipboard-image.js +3 -3
  407. package/dist/src/tui/theme-manager.js +1 -1
  408. package/dist/src/tui/tui-commands.js +18 -0
  409. package/dist/src/tui/tui-commands.js.map +1 -1
  410. package/dist/src/tui/tui-keybindings-file.js +1 -1
  411. package/dist/src/tui/tui-scoped-models.js +2 -2
  412. package/dist/src/tui/tui-settings.js +1 -1
  413. package/dist/src/tui/tui-workflow-slash.d.ts +32 -0
  414. package/dist/src/tui/tui-workflow-slash.js +63 -0
  415. package/dist/src/tui/tui-workflow-slash.js.map +1 -0
  416. package/dist/src/tui/tui.js +2 -2
  417. package/dist/src/tunnel/enable-lan-pairing.js +1 -1
  418. package/dist/src/tunnel/frpc-binary.js +3 -3
  419. package/dist/src/tunnel/frpc-config.js +1 -1
  420. package/dist/src/tunnel/frpc-extract.js +1 -1
  421. package/dist/src/tunnel/index.js +2 -2
  422. package/dist/src/tunnel/pair-context.d.ts +7 -1
  423. package/dist/src/tunnel/pair-context.js +25 -9
  424. package/dist/src/tunnel/pair-context.js.map +1 -1
  425. package/dist/src/tunnel/pair-url.d.ts +14 -1
  426. package/dist/src/tunnel/pair-url.js +14 -1
  427. package/dist/src/tunnel/pair-url.js.map +1 -1
  428. package/dist/src/tunnel/tunnel-service.js +2 -2
  429. package/dist/src/tunnel/tunnel-state.js +1 -1
  430. package/dist/src/utils/logger/audit.js +1 -1
  431. package/dist/src/utils/logger/log-store.js +1 -1
  432. package/dist/src/utils/logger/rotation.js +1 -1
  433. package/dist/src/voice/tts/audio.js +1 -1
  434. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  435. package/package.json +3 -2
  436. package/dist/gateway/static/root/assets/agents-CrpYTHJS.js +0 -222
  437. package/dist/gateway/static/root/assets/apps-page-1mcKh5Rh.js +0 -1
  438. package/dist/gateway/static/root/assets/button-KafIU8dx.js +0 -1
  439. package/dist/gateway/static/root/assets/channels-settings-zd6QNKPx.js +0 -1
  440. package/dist/gateway/static/root/assets/channels-status-swr-uRAuhiUo.js +0 -8
  441. package/dist/gateway/static/root/assets/cron-api-O2Q_ruV6.js +0 -1
  442. package/dist/gateway/static/root/assets/cron-page-By09AQD-.js +0 -1
  443. package/dist/gateway/static/root/assets/dist-C57OMHW8.js +0 -48
  444. package/dist/gateway/static/root/assets/extension-page-C-Ed5ZmP.js +0 -1
  445. package/dist/gateway/static/root/assets/extension-settings-page-raLux7E7.js +0 -1
  446. package/dist/gateway/static/root/assets/fetch-2iRFmd3n.js +0 -3
  447. package/dist/gateway/static/root/assets/heartbeat-config-api-BVl5VHvL.js +0 -1
  448. package/dist/gateway/static/root/assets/index-BuFldCsB.css +0 -1
  449. package/dist/gateway/static/root/assets/index-Y-iqo-gL.js +0 -4693
  450. package/dist/gateway/static/root/assets/logs-page-BdH2n7ZW.js +0 -1
  451. package/dist/gateway/static/root/assets/sessions-page-Vpchzdp-.js +0 -1
  452. package/dist/gateway/static/root/assets/settings-form-section-Kk1yAGBl.js +0 -1
  453. package/dist/gateway/static/root/assets/settings-page-KBm0u6Dz.js +0 -3
  454. package/dist/gateway/static/root/assets/skills-page-BjeXXaOn.js +0 -2
  455. package/dist/gateway/static/root/assets/theme-store-D01dJt95.js +0 -1
  456. package/dist/gateway/static/root/assets/utils-DpTxN4AF.js +0 -1
  457. package/dist/gateway/static/root/assets/voice-api-key-field-CwO8Cf01.js +0 -1
@@ -220,6 +220,12 @@ export declare const AgentDefaultsSchema: z.ZodObject<{
220
220
  executeCode: z.ZodOptional<z.ZodObject<{
221
221
  enabled: z.ZodOptional<z.ZodBoolean>;
222
222
  }, z.core.$strip>>;
223
+ workflow: z.ZodOptional<z.ZodObject<{
224
+ enabled: z.ZodDefault<z.ZodBoolean>;
225
+ maxConcurrency: z.ZodDefault<z.ZodNumber>;
226
+ maxSubagents: z.ZodDefault<z.ZodNumber>;
227
+ defaultTimeoutSec: z.ZodDefault<z.ZodNumber>;
228
+ }, z.core.$strip>>;
223
229
  systemPromptOverride: z.ZodOptional<z.ZodString>;
224
230
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
225
231
  tools: z.ZodOptional<z.ZodObject<{
@@ -470,6 +476,12 @@ export declare const AgentsConfigSchema: z.ZodDefault<z.ZodObject<{
470
476
  executeCode: z.ZodOptional<z.ZodObject<{
471
477
  enabled: z.ZodOptional<z.ZodBoolean>;
472
478
  }, z.core.$strip>>;
479
+ workflow: z.ZodOptional<z.ZodObject<{
480
+ enabled: z.ZodDefault<z.ZodBoolean>;
481
+ maxConcurrency: z.ZodDefault<z.ZodNumber>;
482
+ maxSubagents: z.ZodDefault<z.ZodNumber>;
483
+ defaultTimeoutSec: z.ZodDefault<z.ZodNumber>;
484
+ }, z.core.$strip>>;
473
485
  systemPromptOverride: z.ZodOptional<z.ZodString>;
474
486
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
475
487
  tools: z.ZodOptional<z.ZodObject<{
@@ -965,6 +977,7 @@ export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
965
977
  }, z.core.$strip>>>;
966
978
  maxSseConnections: z.ZodOptional<z.ZodNumber>;
967
979
  corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
980
+ publicUrl: z.ZodOptional<z.ZodString>;
968
981
  dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
969
982
  trustedProxies: z.ZodOptional<z.ZodArray<z.ZodString>>;
970
983
  allowRealIpFallback: z.ZodOptional<z.ZodBoolean>;
@@ -987,6 +1000,37 @@ export declare const GatewayConfigSchema: z.ZodDefault<z.ZodObject<{
987
1000
  maxActiveShares: z.ZodDefault<z.ZodNumber>;
988
1001
  maxFileSize: z.ZodDefault<z.ZodNumber>;
989
1002
  inlinePreviewMimes: z.ZodDefault<z.ZodArray<z.ZodString>>;
1003
+ directory: z.ZodDefault<z.ZodObject<{
1004
+ enabled: z.ZodDefault<z.ZodBoolean>;
1005
+ maxFolderSize: z.ZodDefault<z.ZodNumber>;
1006
+ maxFileCount: z.ZodDefault<z.ZodNumber>;
1007
+ maxDepth: z.ZodDefault<z.ZodNumber>;
1008
+ listingCacheMs: z.ZodDefault<z.ZodNumber>;
1009
+ zipConcurrency: z.ZodDefault<z.ZodNumber>;
1010
+ }, z.core.$strip>>;
1011
+ }, z.core.$strip>>;
1012
+ siteShare: z.ZodOptional<z.ZodObject<{
1013
+ enabled: z.ZodDefault<z.ZodBoolean>;
1014
+ publicHostSuffix: z.ZodDefault<z.ZodString>;
1015
+ defaultTtlMs: z.ZodDefault<z.ZodNumber>;
1016
+ maxTtlMs: z.ZodDefault<z.ZodNumber>;
1017
+ maxActiveSites: z.ZodDefault<z.ZodNumber>;
1018
+ static: z.ZodDefault<z.ZodObject<{
1019
+ enabled: z.ZodDefault<z.ZodBoolean>;
1020
+ maxRootDirSize: z.ZodDefault<z.ZodNumber>;
1021
+ maxFileCount: z.ZodDefault<z.ZodNumber>;
1022
+ rewriteEnabledByDefault: z.ZodDefault<z.ZodBoolean>;
1023
+ }, z.core.$strip>>;
1024
+ proxy: z.ZodDefault<z.ZodObject<{
1025
+ enabled: z.ZodDefault<z.ZodBoolean>;
1026
+ allowedUpstreamHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
1027
+ allowedUpstreamPorts: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1028
+ forwardWebSocket: z.ZodDefault<z.ZodBoolean>;
1029
+ bodySizeLimit: z.ZodDefault<z.ZodNumber>;
1030
+ requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
1031
+ wsIdleTimeoutMs: z.ZodDefault<z.ZodNumber>;
1032
+ rewriteSetCookiePath: z.ZodDefault<z.ZodBoolean>;
1033
+ }, z.core.$strip>>;
990
1034
  }, z.core.$strip>>;
991
1035
  }, z.core.$strip>>;
992
1036
  export declare const CronConfigSchema: z.ZodDefault<z.ZodObject<{
@@ -1709,6 +1753,12 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
1709
1753
  executeCode: z.ZodOptional<z.ZodObject<{
1710
1754
  enabled: z.ZodOptional<z.ZodBoolean>;
1711
1755
  }, z.core.$strip>>;
1756
+ workflow: z.ZodOptional<z.ZodObject<{
1757
+ enabled: z.ZodDefault<z.ZodBoolean>;
1758
+ maxConcurrency: z.ZodDefault<z.ZodNumber>;
1759
+ maxSubagents: z.ZodDefault<z.ZodNumber>;
1760
+ defaultTimeoutSec: z.ZodDefault<z.ZodNumber>;
1761
+ }, z.core.$strip>>;
1712
1762
  systemPromptOverride: z.ZodOptional<z.ZodString>;
1713
1763
  skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
1714
1764
  tools: z.ZodOptional<z.ZodObject<{
@@ -1871,6 +1921,7 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
1871
1921
  }, z.core.$strip>>>;
1872
1922
  maxSseConnections: z.ZodOptional<z.ZodNumber>;
1873
1923
  corsOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
1924
+ publicUrl: z.ZodOptional<z.ZodString>;
1874
1925
  dangerouslyAllowHostHeaderOriginFallback: z.ZodOptional<z.ZodBoolean>;
1875
1926
  trustedProxies: z.ZodOptional<z.ZodArray<z.ZodString>>;
1876
1927
  allowRealIpFallback: z.ZodOptional<z.ZodBoolean>;
@@ -1893,6 +1944,37 @@ export declare const ConfigSchema: z.ZodDefault<z.ZodObject<{
1893
1944
  maxActiveShares: z.ZodDefault<z.ZodNumber>;
1894
1945
  maxFileSize: z.ZodDefault<z.ZodNumber>;
1895
1946
  inlinePreviewMimes: z.ZodDefault<z.ZodArray<z.ZodString>>;
1947
+ directory: z.ZodDefault<z.ZodObject<{
1948
+ enabled: z.ZodDefault<z.ZodBoolean>;
1949
+ maxFolderSize: z.ZodDefault<z.ZodNumber>;
1950
+ maxFileCount: z.ZodDefault<z.ZodNumber>;
1951
+ maxDepth: z.ZodDefault<z.ZodNumber>;
1952
+ listingCacheMs: z.ZodDefault<z.ZodNumber>;
1953
+ zipConcurrency: z.ZodDefault<z.ZodNumber>;
1954
+ }, z.core.$strip>>;
1955
+ }, z.core.$strip>>;
1956
+ siteShare: z.ZodOptional<z.ZodObject<{
1957
+ enabled: z.ZodDefault<z.ZodBoolean>;
1958
+ publicHostSuffix: z.ZodDefault<z.ZodString>;
1959
+ defaultTtlMs: z.ZodDefault<z.ZodNumber>;
1960
+ maxTtlMs: z.ZodDefault<z.ZodNumber>;
1961
+ maxActiveSites: z.ZodDefault<z.ZodNumber>;
1962
+ static: z.ZodDefault<z.ZodObject<{
1963
+ enabled: z.ZodDefault<z.ZodBoolean>;
1964
+ maxRootDirSize: z.ZodDefault<z.ZodNumber>;
1965
+ maxFileCount: z.ZodDefault<z.ZodNumber>;
1966
+ rewriteEnabledByDefault: z.ZodDefault<z.ZodBoolean>;
1967
+ }, z.core.$strip>>;
1968
+ proxy: z.ZodDefault<z.ZodObject<{
1969
+ enabled: z.ZodDefault<z.ZodBoolean>;
1970
+ allowedUpstreamHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
1971
+ allowedUpstreamPorts: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1972
+ forwardWebSocket: z.ZodDefault<z.ZodBoolean>;
1973
+ bodySizeLimit: z.ZodDefault<z.ZodNumber>;
1974
+ requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
1975
+ wsIdleTimeoutMs: z.ZodDefault<z.ZodNumber>;
1976
+ rewriteSetCookiePath: z.ZodDefault<z.ZodBoolean>;
1977
+ }, z.core.$strip>>;
1896
1978
  }, z.core.$strip>>;
1897
1979
  }, z.core.$strip>>;
1898
1980
  tunnel: z.ZodOptional<z.ZodDefault<z.ZodObject<{
@@ -1,5 +1,6 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { checkCacheDir, init_cache_dir_policy } from "../browser/cache-dir-policy.js";
3
+ import { init_public_url, validatePublicUrl } from "./public-url.js";
3
4
  import { TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, init_config_schema } from "../../extensions/telegram/src/config-schema.js";
4
5
  import { WeixinAccountConfigSchema, WeixinConfigSchema, init_config_schema as init_config_schema$1 } from "../../extensions/weixin/src/config-schema.js";
5
6
  import { z } from "zod";
@@ -29,6 +30,7 @@ function parseModelRef(ref) {
29
30
  var AgentModelRefSchema, AgentImageGenerationModelSchema, AgentDefaultsSchema, AgentConfigSchema, AgentsConfigSchema, BindingMatchSchema, BindingRuleSchema, BindingsConfigSchema, SessionDmScopeSchema, SessionStorageConfigSchema, SessionConfigSchema, ChannelsConfigSchema, SearchProviderEntrySchema, WebSearchConfigSchema, WebsiteBlocklistSchema, WebToolsConfigSchema, ToolsConfigSchema, GatewayAuthRateLimitSchema, GatewaySecuritySchema, GatewayTrustedProxySchema, GatewayAuthSchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayRemoteSchema, GatewayTlsSchema, GatewayModeSchema, HeartbeatConfigSchema, GatewayChannelConnectDeferModeSchema, TunnelConsentSchema, TunnelConfigSchema, WorkspaceImportConfigSchema, WorkspaceConfigSchema, GatewayBindModeSchema, GatewayConfigSchema, CronConfigSchema, ModelsDevConfigSchema, SttProviderConfigCatchallSchema, STTProviderConfigSchema, STTFallbackConfigSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, STTConfigSchema, TtsProviderConfigCatchallSchema, TTSProviderConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSEdgeConfigSchema, TTSSummarizationConfigSchema, TTSConfigSchema, MessagesConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProviderAuthConfigSchema, ProvidersConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, UpdateAutoConfigSchema, GoalsConfigSchema, UpdateConfigSchema, CommandsConfigSchema, McpHttpUrlSchema, McpServerSchema, McpConfigSchema, ConfigSchema;
30
31
  var init_schema = __esmMin((() => {
31
32
  init_cache_dir_policy();
33
+ init_public_url();
32
34
  init_config_schema();
33
35
  init_config_schema$1();
34
36
  AgentModelRefSchema = z.union([z.string(), z.object({
@@ -297,6 +299,18 @@ summaryModel: z.string().optional() }).optional(),
297
299
  delegate: z.object({ enabled: z.boolean().optional() }).optional(),
298
300
  /** Sandboxed `execute_code` (programmatic tool calls). Opt-in. */
299
301
  executeCode: z.object({ enabled: z.boolean().optional() }).optional(),
302
+ /**
303
+ * Dynamic workflows (`workflow` tool). On by default — disable to remove the
304
+ * tool from the agent surface entirely. Subagents spawned by workflows still
305
+ * obey the global `delegate` allowlist; `maxSubagents` caps a single workflow
306
+ * run, `defaultTimeoutSec` caps wall-clock per run.
307
+ */
308
+ workflow: z.object({
309
+ enabled: z.boolean().default(true),
310
+ maxConcurrency: z.number().int().min(1).max(64).default(16),
311
+ maxSubagents: z.number().int().min(1).max(1e4).default(1e3),
312
+ defaultTimeoutSec: z.number().int().min(60).max(14400).default(1800)
313
+ }).optional(),
300
314
  /** Optional full system prompt replacement (merged with per-agent entry; entry wins). */
301
315
  systemPromptOverride: z.string().optional(),
302
316
  /** Optional allowlist of skill names for `<available_skills>`; when set, replaces unfiltered list. */
@@ -629,6 +643,21 @@ strict: z.boolean().optional() }).optional();
629
643
  heartbeat: HeartbeatConfigSchema.optional(),
630
644
  maxSseConnections: z.number().optional(),
631
645
  corsOrigins: z.array(z.string()).optional(),
646
+ /**
647
+ * Reverse-proxy publicly reachable URL (e.g. `https://gateway.example.com`).
648
+ * Optional. When set, mobile pairing surfaces this URL as the preferred
649
+ * baseUrl and it is auto-added to the browser CORS/CSRF allowlist.
650
+ * - Must be a URL with no path / query / userinfo.
651
+ * - Must use `https:` for public hosts; `http:` is only allowed when the
652
+ * hostname is in an RFC1918 / `.local` private range.
653
+ */
654
+ publicUrl: z.string().superRefine((value, ctx) => {
655
+ const result = validatePublicUrl(value);
656
+ if (result.ok === false) ctx.addIssue({
657
+ code: "custom",
658
+ message: `gateway.publicUrl: ${result.message}`
659
+ });
660
+ }).optional(),
632
661
  /** Dangerous: allow browser Origin to match the HTTP Host header when not in corsOrigins. */
633
662
  dangerouslyAllowHostHeaderOriginFallback: z.boolean().optional(),
634
663
  /** CIDRs or exact IPs of reverse proxies allowed to terminate auth (trusted-proxy mode). */
@@ -674,7 +703,107 @@ strict: z.boolean().optional() }).optional();
674
703
  "text/markdown",
675
704
  "text/plain",
676
705
  "application/json"
677
- ])
706
+ ]),
707
+ /** Folder-sharing controls (browse + ZIP). */
708
+ directory: z.object({
709
+ enabled: z.boolean().default(true),
710
+ /** Maximum folder size in bytes at scan time (default 1 GB). */
711
+ maxFolderSize: z.number().int().min(1048576).max(10737418240).default(1073741824),
712
+ /** Maximum number of entries scanned for a single folder share. */
713
+ maxFileCount: z.number().int().min(1).max(1e5).default(1e3),
714
+ /** Traversal depth cap (defense against recursive symlinks). */
715
+ maxDepth: z.number().int().min(1).max(64).default(20),
716
+ /** In-memory directory listing cache TTL. */
717
+ listingCacheMs: z.number().int().min(0).max(6e5).default(6e4),
718
+ /** Maximum simultaneous ZIP streams per share token. */
719
+ zipConcurrency: z.number().int().min(1).max(8).default(1)
720
+ }).default({
721
+ enabled: true,
722
+ maxFolderSize: 1073741824,
723
+ maxFileCount: 1e3,
724
+ maxDepth: 20,
725
+ listingCacheMs: 6e4,
726
+ zipConcurrency: 1
727
+ })
728
+ }).optional(),
729
+ /** Site-share configuration (static directory or reverse-proxy a local dev server). */
730
+ siteShare: z.object({
731
+ enabled: z.boolean().default(true),
732
+ /** Public host suffix that subdomain shares are served under. */
733
+ publicHostSuffix: z.string().min(1).default("share.xopc.ai"),
734
+ /** Default TTL in ms (default 6h, shorter than file shares — live app surface). */
735
+ defaultTtlMs: z.number().int().min(6e4).max(6048e5).default(216e5),
736
+ /** Maximum TTL in ms (default 7 days). */
737
+ maxTtlMs: z.number().int().min(6e4).max(2592e6).default(6048e5),
738
+ /** Maximum concurrent active site shares. */
739
+ maxActiveSites: z.number().int().min(1).max(1e3).default(5),
740
+ static: z.object({
741
+ enabled: z.boolean().default(true),
742
+ /** Maximum total bytes of files served per static site. */
743
+ maxRootDirSize: z.number().int().min(1048576).max(10737418240).default(524288e3),
744
+ /** Maximum file count under root dir. */
745
+ maxFileCount: z.number().int().min(1).max(1e5).default(1e4),
746
+ /** Whether HTML/CSS rewrite of absolute paths is on by default. */
747
+ rewriteEnabledByDefault: z.boolean().default(false)
748
+ }).default({
749
+ enabled: true,
750
+ maxRootDirSize: 524288e3,
751
+ maxFileCount: 1e4,
752
+ rewriteEnabledByDefault: false
753
+ }),
754
+ proxy: z.object({
755
+ /** Reverse-proxy mode default-enabled per the product brief. */
756
+ enabled: z.boolean().default(true),
757
+ /** Upstream host whitelist. Loopback by default. */
758
+ allowedUpstreamHosts: z.array(z.string().min(1)).default([
759
+ "127.0.0.1",
760
+ "localhost",
761
+ "::1"
762
+ ]),
763
+ /** Upstream port whitelist (common dev-server ports). */
764
+ allowedUpstreamPorts: z.array(z.number().int().min(1).max(65535)).default([
765
+ 3e3,
766
+ 3001,
767
+ 4321,
768
+ 5173,
769
+ 8e3,
770
+ 8080,
771
+ 8888,
772
+ 9e3
773
+ ]),
774
+ /** Whether to forward WebSocket upgrades. */
775
+ forwardWebSocket: z.boolean().default(true),
776
+ /** Maximum request body size in bytes (50 MB). */
777
+ bodySizeLimit: z.number().int().min(0).max(1073741824).default(52428800),
778
+ /** Per-request HTTP timeout in ms. */
779
+ requestTimeoutMs: z.number().int().min(1e3).max(6e5).default(3e4),
780
+ /** Per-WebSocket idle timeout in ms. */
781
+ wsIdleTimeoutMs: z.number().int().min(1e4).max(36e5).default(3e5),
782
+ /** Rewrite Set-Cookie Path attribute (subpath mode only). */
783
+ rewriteSetCookiePath: z.boolean().default(true)
784
+ }).default({
785
+ enabled: true,
786
+ allowedUpstreamHosts: [
787
+ "127.0.0.1",
788
+ "localhost",
789
+ "::1"
790
+ ],
791
+ allowedUpstreamPorts: [
792
+ 3e3,
793
+ 3001,
794
+ 4321,
795
+ 5173,
796
+ 8e3,
797
+ 8080,
798
+ 8888,
799
+ 9e3
800
+ ],
801
+ forwardWebSocket: true,
802
+ bodySizeLimit: 52428800,
803
+ requestTimeoutMs: 3e4,
804
+ wsIdleTimeoutMs: 3e5,
805
+ rewriteSetCookiePath: true
806
+ })
678
807
  }).optional()
679
808
  }).default({
680
809
  bind: "loopback",