@xopcai/xopc 0.0.111 → 0.0.113

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 (443) hide show
  1. package/dist/browser-ext/icons/icon-128.png +0 -0
  2. package/dist/browser-ext/icons/icon-16.png +0 -0
  3. package/dist/browser-ext/icons/icon-32.png +0 -0
  4. package/dist/browser-ext/icons/icon-48.png +0 -0
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  7. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  8. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  9. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  10. package/dist/extensions/telegram/src/plugin.js +1 -1
  11. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  12. package/dist/extensions/telegram/src/update-offset-store.js +1 -1
  13. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  14. package/dist/extensions/telegram/xopc.extension.json +1 -1
  15. package/dist/extensions/weixin/src/api/api.js +2 -2
  16. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  17. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  18. package/dist/extensions/weixin/src/delivery-to.d.ts +3 -3
  19. package/dist/extensions/weixin/src/delivery-to.js.map +1 -1
  20. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  21. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  22. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  23. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  24. package/dist/extensions/weixin/src/plugin.js +1 -1
  25. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  26. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  27. package/dist/gateway/static/root/apple-touch-icon.png +0 -0
  28. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-zlx9l5Yp.js → agent-avatar-dicebear-CBlklyNr.js} +1 -1
  29. package/dist/gateway/static/root/assets/agent-browser-settings-page-rGbKc2Hh.js +6 -0
  30. package/dist/gateway/static/root/assets/{agent-defaults-tabbed-page-Bz7JWjRM.js → agent-defaults-tabbed-page-CtwVbjOA.js} +1 -1
  31. package/dist/gateway/static/root/assets/agents-CCBmGcwc.js +71 -0
  32. package/dist/gateway/static/root/assets/{app-management-settings-panel-DaQwdeCq.js → app-management-settings-panel-28E_WfMe.js} +1 -1
  33. package/dist/gateway/static/root/assets/{appearance-settings-D2zv6r3P.js → appearance-settings-Do1z0XgJ.js} +1 -1
  34. package/dist/gateway/static/root/assets/{apps-page-BIppe_jj.js → apps-page-xwCsJS15.js} +1 -1
  35. package/dist/gateway/static/root/assets/{archive-plugin-DEmu8eH7.js → archive-plugin-BAFlsov_.js} +1 -1
  36. package/dist/gateway/static/root/assets/{attachment-load-B98lJoN5.js → attachment-load-V3qGPC3x.js} +1 -1
  37. package/dist/gateway/static/root/assets/{binary-plugins-CL9QKmyo.js → binary-plugins-DT8NvA6W.js} +1 -1
  38. package/dist/gateway/static/root/assets/{block-editor-BOAhMAhT.js → block-editor-CdLMEcHd.js} +1 -1
  39. package/dist/gateway/static/root/assets/{channels-settings-Br8iRnXp.js → channels-settings-C044DcYk.js} +1 -1
  40. package/dist/gateway/static/root/assets/{config-api-0o1WYdz2.js → config-api-Bf5mjpu7.js} +1 -1
  41. package/dist/gateway/static/root/assets/config-reload-event-Bjh2zoKp.js +1 -0
  42. package/dist/gateway/static/root/assets/connectors-settings-8VEWUOTj.js +2 -0
  43. package/dist/gateway/static/root/assets/cron-api--pAB_rps.js +1 -0
  44. package/dist/gateway/static/root/assets/cron-page-DqmNGNOy.js +3 -0
  45. package/dist/gateway/static/root/assets/dreaming-settings-6UZE1FSK.js +1 -0
  46. package/dist/gateway/static/root/assets/{extension-debug-page-Cjx6pZVz.js → extension-debug-page-BGhE7msg.js} +1 -1
  47. package/dist/gateway/static/root/assets/{extension-page-BSPNL90V.js → extension-page-CvpI45WG.js} +1 -1
  48. package/dist/gateway/static/root/assets/extension-settings-page-DAmR5FUe.js +1 -0
  49. package/dist/gateway/static/root/assets/{fetch-Bs7in_4F.js → fetch-NZmjSXLl.js} +1 -1
  50. package/dist/gateway/static/root/assets/format-cron-label-BsotZDO5.js +2 -0
  51. package/dist/gateway/static/root/assets/{format-interval-label-CftJ5uXu.js → format-interval-label-qhth3BMV.js} +1 -1
  52. package/dist/gateway/static/root/assets/{gateway-config-api-Clfck-hW.js → gateway-config-api-CaXBt-9R.js} +1 -1
  53. package/dist/gateway/static/root/assets/gateway-settings-DphpbLBc.js +1 -0
  54. package/dist/gateway/static/root/assets/{gateway-startup-retry-BkjVJc38.js → gateway-startup-retry-Be1omjh3.js} +1 -1
  55. package/dist/gateway/static/root/assets/{goal-detail-page-kqJue0sE.js → goal-detail-page-bv0VRDaf.js} +1 -1
  56. package/dist/gateway/static/root/assets/goals-page-1Ywnt4Cb.js +2 -0
  57. package/dist/gateway/static/root/assets/{goals-settings-CJnzNSDo.js → goals-settings-ceEBjnfc.js} +1 -1
  58. package/dist/gateway/static/root/assets/{heartbeat-config-api-Cp7CPuIn.js → heartbeat-config-api-BzO6G4fD.js} +1 -1
  59. package/dist/gateway/static/root/assets/{heartbeat-settings-ifSI1Wbh.js → heartbeat-settings-DCST9-du.js} +1 -1
  60. package/dist/gateway/static/root/assets/index-Cxm6xsps.js +122 -0
  61. package/dist/gateway/static/root/assets/index-b_R4tKqt.css +1 -0
  62. package/dist/gateway/static/root/assets/interval-presets-DJmshV8n.js +1 -0
  63. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings--MI1rYl7.js → keyboard-shortcuts-settings-9AUUlQ5Q.js} +1 -1
  64. package/dist/gateway/static/root/assets/{logs-page-BwrVNlyW.js → logs-page-B_wrxhee.js} +1 -1
  65. package/dist/gateway/static/root/assets/{markdown-split-B_oc9lJe.js → markdown-split-CYYELqAr.js} +1 -1
  66. package/dist/gateway/static/root/assets/{media-plugins-DLPvB5H3.js → media-plugins-BEcMR2M8.js} +1 -1
  67. package/dist/gateway/static/root/assets/messages-CkT-lcgP.js +3 -0
  68. package/dist/gateway/static/root/assets/models-hub-panel-D0JDSbNu.js +2 -0
  69. package/dist/gateway/static/root/assets/note-detail-page-DpFV-EO6.js +2 -0
  70. package/dist/gateway/static/root/assets/{note-image-lightbox-rSqAgOi9.js → note-image-lightbox-DNAoPcmm.js} +1 -1
  71. package/dist/gateway/static/root/assets/{notes-page-C9ACGEty.js → notes-page-CdkjTch8.js} +1 -1
  72. package/dist/gateway/static/root/assets/{preview-open-alternatives-Bw_N2oZi.js → preview-open-alternatives-BPLz0AIv.js} +1 -1
  73. package/dist/gateway/static/root/assets/{remote-access-hub-BhcWIKuM.js → remote-access-hub-DSYVAi96.js} +1 -1
  74. package/dist/gateway/static/root/assets/{save-bar-controls-CNP2jmw0.js → save-bar-controls-CrWwWRVK.js} +1 -1
  75. package/dist/gateway/static/root/assets/schedule-field-CF2sadvN.js +1 -0
  76. package/dist/gateway/static/root/assets/{schema-form-CDPzua9q.js → schema-form-Di5cKjYE.js} +1 -1
  77. package/dist/gateway/static/root/assets/{sessions-page-DzkpSDZr.js → sessions-page-CenkcVjF.js} +1 -1
  78. package/dist/gateway/static/root/assets/settings-advanced-gate-D9sva86V.js +1 -0
  79. package/dist/gateway/static/root/assets/{settings-collapsible-section-C9bff85B.js → settings-collapsible-section-Chh282jW.js} +1 -1
  80. package/dist/gateway/static/root/assets/settings-form-section-Dq-83cQd.js +1 -0
  81. package/dist/gateway/static/root/assets/{settings-page-DWK4Zo7s.js → settings-page-DL35U0x0.js} +1 -1
  82. package/dist/gateway/static/root/assets/setup-status-panel-Ctwbp9Er.js +1 -0
  83. package/dist/gateway/static/root/assets/{share-preview-page-DnutoY_S.js → share-preview-page-0FXYnSUA.js} +1 -1
  84. package/dist/gateway/static/root/assets/{shares-settings-6oRgJMpn.js → shares-settings-DIM3JNsr.js} +1 -1
  85. package/dist/gateway/static/root/assets/skill-reload-api-DAlNaNzL.js +1 -0
  86. package/dist/gateway/static/root/assets/skills-page-CLrHVzAt.js +2 -0
  87. package/dist/gateway/static/root/assets/{system-settings-panel-qP1JDtDd.js → system-settings-panel-W1pTcojB.js} +1 -1
  88. package/dist/gateway/static/root/assets/use-agent-defaults-form-BVRvkK7m.js +1 -0
  89. package/dist/gateway/static/root/assets/{use-channel-catalog-C4mg1hjD.js → use-channel-catalog-CgJibfMM.js} +1 -1
  90. package/dist/gateway/static/root/assets/{use-settings-tab-guard-F6C0mpJt.js → use-settings-tab-guard-Bw_qkRQE.js} +1 -1
  91. package/dist/gateway/static/root/assets/{voice-api-key-field-BnDDb6qO.js → voice-api-key-field-vYAO71Gn.js} +1 -1
  92. package/dist/gateway/static/root/assets/{voice-player-store-B2EwIhtY.js → voice-player-store-C7lziaAx.js} +1 -1
  93. package/dist/gateway/static/root/assets/{workflow-page.utils-CRB7WX9l.js → workflow-page.utils-sgHjOXOm.js} +1 -1
  94. package/dist/gateway/static/root/assets/{workflows-page-2Fptr0je.js → workflows-page-DYyOTmFx.js} +1 -1
  95. package/dist/gateway/static/root/favicon-16x16.png +0 -0
  96. package/dist/gateway/static/root/favicon-32x32.png +0 -0
  97. package/dist/gateway/static/root/favicon-icon.svg +1 -0
  98. package/dist/gateway/static/root/favicon.ico +0 -0
  99. package/dist/gateway/static/root/favicon.png +0 -0
  100. package/dist/gateway/static/root/favicon.svg +24 -15
  101. package/dist/gateway/static/root/index.html +11 -10
  102. package/dist/gateway/static/root/logo-dark.svg +23 -15
  103. package/dist/gateway/static/root/logo.svg +23 -16
  104. package/dist/package.js +1 -1
  105. package/dist/src/agent/agent-manager.d.ts +28 -2
  106. package/dist/src/agent/agent-manager.js +82 -11
  107. package/dist/src/agent/agent-manager.js.map +1 -1
  108. package/dist/src/agent/agent-scope.js +1 -1
  109. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  110. package/dist/src/agent/context/workspace-seed.js +2 -2
  111. package/dist/src/agent/context/workspace-state.js +1 -1
  112. package/dist/src/agent/context/workspace.js +1 -1
  113. package/dist/src/agent/goals/goal-locale.js +2 -2
  114. package/dist/src/agent/goals/persistent-goal-service.js +1 -1
  115. package/dist/src/agent/goals/post-turn.js +3 -3
  116. package/dist/src/agent/image/load-image-media.js +2 -2
  117. package/dist/src/agent/ipc/inbox.js +3 -3
  118. package/dist/src/agent/ipc/socket.js +1 -1
  119. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  120. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  121. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  122. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  123. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  124. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  125. package/dist/src/agent/memory/dreaming/events.js +1 -1
  126. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  127. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  128. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  129. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  130. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  131. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  132. package/dist/src/agent/memory/memory-flush.js +1 -1
  133. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  134. package/dist/src/agent/messaging/command-handler.d.ts +3 -0
  135. package/dist/src/agent/messaging/command-handler.js +5 -0
  136. package/dist/src/agent/messaging/command-handler.js.map +1 -1
  137. package/dist/src/agent/models/manager.js +1 -1
  138. package/dist/src/agent/prompt/memory/index.js +1 -1
  139. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  140. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  141. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  142. package/dist/src/agent/sandbox/path-policy.js +2 -2
  143. package/dist/src/agent/service/process-direct-streaming.js +9 -4
  144. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  145. package/dist/src/agent/service/reconcile-dreaming-cron.js +8 -5
  146. package/dist/src/agent/service/reconcile-dreaming-cron.js.map +1 -1
  147. package/dist/src/agent/service.d.ts +2 -1
  148. package/dist/src/agent/service.js +10 -5
  149. package/dist/src/agent/service.js.map +1 -1
  150. package/dist/src/agent/service.types.d.ts +4 -0
  151. package/dist/src/agent/session/session-config-service.d.ts +8 -0
  152. package/dist/src/agent/session/session-config-service.js +20 -0
  153. package/dist/src/agent/session/session-config-service.js.map +1 -1
  154. package/dist/src/agent/session/session-inspector.js +1 -1
  155. package/dist/src/agent/skills/config.js +2 -2
  156. package/dist/src/agent/skills/filesystem-watcher.d.ts +19 -0
  157. package/dist/src/agent/skills/filesystem-watcher.js +182 -0
  158. package/dist/src/agent/skills/filesystem-watcher.js.map +1 -0
  159. package/dist/src/agent/skills/hub-hash.js +2 -2
  160. package/dist/src/agent/skills/hub-lock.js +1 -1
  161. package/dist/src/agent/skills/hub-pull.js +30 -36
  162. package/dist/src/agent/skills/hub-pull.js.map +1 -1
  163. package/dist/src/agent/skills/index.js +82 -38
  164. package/dist/src/agent/skills/index.js.map +1 -1
  165. package/dist/src/agent/skills/installer.js +2 -2
  166. package/dist/src/agent/skills/managed-store.d.ts +19 -0
  167. package/dist/src/agent/skills/managed-store.js +97 -38
  168. package/dist/src/agent/skills/managed-store.js.map +1 -1
  169. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  170. package/dist/src/agent/skills/skill-manager.d.ts +16 -6
  171. package/dist/src/agent/skills/skill-manager.js +79 -24
  172. package/dist/src/agent/skills/skill-manager.js.map +1 -1
  173. package/dist/src/agent/skills/skill-view-path.js +1 -1
  174. package/dist/src/agent/skills/test-framework.js +1 -1
  175. package/dist/src/agent/skills/types.d.ts +11 -0
  176. package/dist/src/agent/skills/watcher.js +1 -1
  177. package/dist/src/agent/starter-agents.js +1 -1
  178. package/dist/src/agent/tools/cronjob-tool.d.ts +6 -3
  179. package/dist/src/agent/tools/cronjob-tool.js +58 -23
  180. package/dist/src/agent/tools/cronjob-tool.js.map +1 -1
  181. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  182. package/dist/src/agent/tools/factory.js +1 -1
  183. package/dist/src/agent/tools/find.js +1 -1
  184. package/dist/src/agent/tools/grep.js +1 -1
  185. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  186. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  187. package/dist/src/agent/tools/workflow-tool.js +1 -1
  188. package/dist/src/agent/workflow/catalog.js +1 -1
  189. package/dist/src/agent/workspace-runtime/registry.d.ts +5 -0
  190. package/dist/src/agent/workspace-runtime/registry.js +7 -0
  191. package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
  192. package/dist/src/ai-assist/text-assist.d.ts +42 -0
  193. package/dist/src/ai-assist/text-assist.js +252 -0
  194. package/dist/src/ai-assist/text-assist.js.map +1 -0
  195. package/dist/src/auth/credentials.js +2 -2
  196. package/dist/src/auth/profiles/store.js +2 -2
  197. package/dist/src/auth/sync-provider-auth.js +1 -1
  198. package/dist/src/browser/cache-dir-policy.js +1 -1
  199. package/dist/src/browser/cdp-local-launcher.js +2 -2
  200. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  201. package/dist/src/browser/providers/cloakbrowser.js +5 -5
  202. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  203. package/dist/src/browser/stealth.js +1 -1
  204. package/dist/src/channels/outbound/persist-store.js +1 -1
  205. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  206. package/dist/src/channels/pairing/pairing-store.js +2 -2
  207. package/dist/src/channels/plugins/types.adapters.d.ts +2 -2
  208. package/dist/src/chat-commands/agent-edit.js +2 -2
  209. package/dist/src/chat-commands/builtins/config.js +3 -3
  210. package/dist/src/chat-commands/builtins/system.js +11 -4
  211. package/dist/src/chat-commands/builtins/system.js.map +1 -1
  212. package/dist/src/chat-commands/context.d.ts +3 -0
  213. package/dist/src/chat-commands/context.js +7 -0
  214. package/dist/src/chat-commands/context.js.map +1 -1
  215. package/dist/src/chat-commands/types.d.ts +2 -0
  216. package/dist/src/cli/commands/config.js +1 -1
  217. package/dist/src/cli/commands/cron.js +55 -16
  218. package/dist/src/cli/commands/cron.js.map +1 -1
  219. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  220. package/dist/src/cli/commands/doctor/checks/cron-health.js +2 -83
  221. package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -1
  222. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  223. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  224. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  225. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  226. package/dist/src/cli/commands/extension-create.js +1 -1
  227. package/dist/src/cli/commands/extension-dev.js +2 -2
  228. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  229. package/dist/src/cli/commands/extension-pack.js +2 -2
  230. package/dist/src/cli/commands/extension.js +3 -3
  231. package/dist/src/cli/commands/gateway/logs.js +1 -1
  232. package/dist/src/cli/commands/image.js +1 -1
  233. package/dist/src/cli/commands/init.js +2 -2
  234. package/dist/src/cli/commands/models.js +1 -1
  235. package/dist/src/cli/commands/skills-test.js +1 -1
  236. package/dist/src/cli/templates.js +1 -1
  237. package/dist/src/cli/utils/gateway-client.js +1 -1
  238. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  239. package/dist/src/config/agent-profile.js +1 -1
  240. package/dist/src/config/agent-typed-models.js +1 -1
  241. package/dist/src/config/gateway-bind.js +1 -1
  242. package/dist/src/config/index.js +7 -7
  243. package/dist/src/config/loader.js +4 -4
  244. package/dist/src/config/models-json.js +2 -2
  245. package/dist/src/config/paths-state.js +1 -1
  246. package/dist/src/config/paths.js +1 -1
  247. package/dist/src/config/profile.js +1 -1
  248. package/dist/src/config/reload.js +1 -1
  249. package/dist/src/config/schema.d.ts +0 -2
  250. package/dist/src/config/schema.js +0 -3
  251. package/dist/src/config/schema.js.map +1 -1
  252. package/dist/src/config/web-patch.d.ts +0 -1
  253. package/dist/src/config/web-patch.js +0 -2
  254. package/dist/src/config/web-patch.js.map +1 -1
  255. package/dist/src/config/workspace-path.js +1 -1
  256. package/dist/src/cron/executor.js +102 -71
  257. package/dist/src/cron/executor.js.map +1 -1
  258. package/dist/src/cron/index.d.ts +1 -1
  259. package/dist/src/cron/index.js +3 -3
  260. package/dist/src/cron/run-log-store.d.ts +1 -0
  261. package/dist/src/cron/run-log-store.js +4 -2
  262. package/dist/src/cron/run-log-store.js.map +1 -1
  263. package/dist/src/cron/schedule.d.ts +10 -0
  264. package/dist/src/cron/schedule.js +85 -0
  265. package/dist/src/cron/schedule.js.map +1 -0
  266. package/dist/src/cron/service.d.ts +34 -77
  267. package/dist/src/cron/service.js +327 -264
  268. package/dist/src/cron/service.js.map +1 -1
  269. package/dist/src/cron/types.d.ts +80 -50
  270. package/dist/src/cron/validation.d.ts +358 -90
  271. package/dist/src/cron/validation.js +152 -132
  272. package/dist/src/cron/validation.js.map +1 -1
  273. package/dist/src/cron/workflow-run-completion.js +1 -1
  274. package/dist/src/daemon/constants.js +1 -1
  275. package/dist/src/daemon/install-plan.js +2 -2
  276. package/dist/src/daemon/launchd.js +2 -2
  277. package/dist/src/daemon/schtasks.js +2 -2
  278. package/dist/src/daemon/systemd.js +2 -2
  279. package/dist/src/extensions/bundle-mcp.js +1 -1
  280. package/dist/src/extensions/discover-extensions.js +2 -2
  281. package/dist/src/extensions/health.js +1 -1
  282. package/dist/src/extensions/install.js +2 -2
  283. package/dist/src/extensions/loader.js +2 -2
  284. package/dist/src/extensions/lockfile.js +3 -3
  285. package/dist/src/extensions/security.js +1 -1
  286. package/dist/src/extensions/update.js +2 -2
  287. package/dist/src/gateway/agents-admin.js +2 -2
  288. package/dist/src/gateway/chat-stream/mapper.d.ts +1 -0
  289. package/dist/src/gateway/chat-stream/mapper.js +6 -2
  290. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  291. package/dist/src/gateway/chat-stream/protocol.d.ts +2 -0
  292. package/dist/src/gateway/file-path-classifier.js +2 -2
  293. package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -1
  294. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  295. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  296. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  297. package/dist/src/gateway/hono/oauth-async.js +1 -1
  298. package/dist/src/gateway/hono/routes/agents.js +1 -1
  299. package/dist/src/gateway/hono/routes/ai-assist.d.ts +3 -0
  300. package/dist/src/gateway/hono/routes/ai-assist.js +66 -0
  301. package/dist/src/gateway/hono/routes/ai-assist.js.map +1 -0
  302. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  303. package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
  304. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  305. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  306. package/dist/src/gateway/hono/routes/cron.js +24 -5
  307. package/dist/src/gateway/hono/routes/cron.js.map +1 -1
  308. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  309. package/dist/src/gateway/hono/routes/home.js +5 -3
  310. package/dist/src/gateway/hono/routes/home.js.map +1 -1
  311. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  312. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  313. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  314. package/dist/src/gateway/hono/routes/models.js +1 -1
  315. package/dist/src/gateway/hono/routes/shares.js +1 -1
  316. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  317. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  318. package/dist/src/gateway/lock.js +3 -3
  319. package/dist/src/gateway/ports.js +1 -1
  320. package/dist/src/gateway/service/agent-runner.js +2 -2
  321. package/dist/src/gateway/service/config-coordinator.js +1 -1
  322. package/dist/src/gateway/service/marketplace-service.d.ts +22 -10
  323. package/dist/src/gateway/service/marketplace-service.js +46 -5
  324. package/dist/src/gateway/service/marketplace-service.js.map +1 -1
  325. package/dist/src/gateway/service.js +11 -5
  326. package/dist/src/gateway/service.js.map +1 -1
  327. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  328. package/dist/src/goals/goal-notifications.js +1 -1
  329. package/dist/src/goals/goal-workflow-judge.js +3 -3
  330. package/dist/src/i18n/goals-bundle.js +1 -1
  331. package/dist/src/i18n/index.js +1 -1
  332. package/dist/src/i18n/share-tool-bundle.js +2 -2
  333. package/dist/src/infra/brew.js +1 -1
  334. package/dist/src/infra/package-json.js +1 -1
  335. package/dist/src/infra/package-update-steps.js +1 -1
  336. package/dist/src/infra/path-env.js +2 -2
  337. package/dist/src/infra/restart.js +1 -1
  338. package/dist/src/infra/stable-node-path.js +1 -1
  339. package/dist/src/infra/update-check.js +1 -1
  340. package/dist/src/infra/update-global.js +1 -1
  341. package/dist/src/infra/update-lock.js +2 -2
  342. package/dist/src/infra/update-restart.js +1 -1
  343. package/dist/src/infra/update-runner.js +1 -1
  344. package/dist/src/infra/update-startup.js +1 -1
  345. package/dist/src/infra/write-file-atomic.js +2 -2
  346. package/dist/src/media/store.js +1 -1
  347. package/dist/src/notes/agent-context.js +1 -1
  348. package/dist/src/notes/service.js +1 -1
  349. package/dist/src/notes/store.js +2 -2
  350. package/dist/src/project-trust/trust-store.js +2 -2
  351. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  352. package/dist/src/providers/index.js +1 -1
  353. package/dist/src/providers/model-registry.js +4 -4
  354. package/dist/src/session/init-session-turn.js +2 -2
  355. package/dist/src/session/resolve-session.js +3 -3
  356. package/dist/src/session/session-title.js +2 -2
  357. package/dist/src/session/store-reader.d.ts +5 -0
  358. package/dist/src/session/store-reader.js +1 -0
  359. package/dist/src/session/store.js +1 -1
  360. package/dist/src/share/share-auto.js +2 -2
  361. package/dist/src/share/share-store.js +3 -3
  362. package/dist/src/share/share-thumbnail.js +2 -2
  363. package/dist/src/share/share-zip.js +1 -1
  364. package/dist/src/share/site-share-store.js +3 -3
  365. package/dist/src/share/site-static-serve.js +1 -1
  366. package/dist/src/storage/sqlite/connection.js +1 -1
  367. package/dist/src/storage/sqlite/cron-job-repository.d.ts +6 -0
  368. package/dist/src/storage/sqlite/cron-job-repository.js +70 -0
  369. package/dist/src/storage/sqlite/cron-job-repository.js.map +1 -0
  370. package/dist/src/storage/sqlite/cron-run-repository.js +0 -1
  371. package/dist/src/storage/sqlite/cron-run-repository.js.map +1 -1
  372. package/dist/src/storage/sqlite/index.d.ts +1 -0
  373. package/dist/src/storage/sqlite/index.js +2 -1
  374. package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
  375. package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +24 -0
  376. package/dist/src/storage/sqlite/migrations/discover.js +1 -1
  377. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  378. package/dist/src/storage/sqlite/migrations/runner.js +4 -4
  379. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  380. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  381. package/dist/src/storage/sqlite/schema.js +2 -2
  382. package/dist/src/storage/sqlite/schema.sql +25 -0
  383. package/dist/src/tui/clipboard-image.js +3 -3
  384. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  385. package/dist/src/tui/theme-manager.js +1 -1
  386. package/dist/src/tui/tui-command-formatters.js +4 -4
  387. package/dist/src/tui/tui-commands.js +2 -2
  388. package/dist/src/tui/tui-keybindings-file.js +1 -1
  389. package/dist/src/tui/tui-scoped-models.js +2 -2
  390. package/dist/src/tui/tui-settings.js +1 -1
  391. package/dist/src/tui/tui-startup-resources.js +1 -1
  392. package/dist/src/tui/tui.js +6 -6
  393. package/dist/src/tunnel/frpc-binary.js +4 -4
  394. package/dist/src/tunnel/frpc-config.js +1 -1
  395. package/dist/src/tunnel/frpc-extract.js +1 -1
  396. package/dist/src/tunnel/tunnel-state.js +1 -1
  397. package/dist/src/utils/logger/audit.js +1 -1
  398. package/dist/src/utils/logger/log-store.js +1 -1
  399. package/dist/src/utils/logger/rotation.js +1 -1
  400. package/dist/src/utils/logger/streams.js +1 -1
  401. package/dist/src/voice/tts/audio.js +1 -1
  402. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  403. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  404. package/dist/src/workflows/engine/projector.js +23 -14
  405. package/dist/src/workflows/engine/projector.js.map +1 -1
  406. package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
  407. package/dist/src/workflows/engine/workflow-engine.js +36 -0
  408. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  409. package/dist/src/workflows/index.js +1 -1
  410. package/dist/src/workflows/service/workflow-run-service.js +2 -2
  411. package/dist/src/workflows/service/workflow-session-bridge.js +2 -2
  412. package/dist/src/workflows/store/event-store.js +1 -1
  413. package/dist/src/workflows/store/run-store.js +1 -1
  414. package/package.json +2 -3
  415. package/dist/gateway/static/root/assets/agent-browser-settings-page-B-0zGjt8.js +0 -6
  416. package/dist/gateway/static/root/assets/agents-DwDnJlXT.js +0 -71
  417. package/dist/gateway/static/root/assets/connectors-settings-DDvHo9in.js +0 -2
  418. package/dist/gateway/static/root/assets/cron-api-Dj_UZKST.js +0 -1
  419. package/dist/gateway/static/root/assets/cron-page-Dv7GII9G.js +0 -1
  420. package/dist/gateway/static/root/assets/cron-schedule-picker-DH10KgD6.js +0 -1
  421. package/dist/gateway/static/root/assets/dreaming-settings-L2rgZDQl.js +0 -1
  422. package/dist/gateway/static/root/assets/extension-settings-page-m_UQYkVc.js +0 -1
  423. package/dist/gateway/static/root/assets/gateway-settings-CS177xni.js +0 -1
  424. package/dist/gateway/static/root/assets/goals-page-C0FujUB5.js +0 -2
  425. package/dist/gateway/static/root/assets/index-COkF54xv.js +0 -121
  426. package/dist/gateway/static/root/assets/index-DIaSNGEO.css +0 -1
  427. package/dist/gateway/static/root/assets/interval-presets-B29Ss_2y.js +0 -2
  428. package/dist/gateway/static/root/assets/messages-Csef1aW7.js +0 -3
  429. package/dist/gateway/static/root/assets/models-hub-panel-DHGiTIvf.js +0 -2
  430. package/dist/gateway/static/root/assets/note-detail-page-BM7zlDiT.js +0 -2
  431. package/dist/gateway/static/root/assets/schedule-field-BPAWui3P.js +0 -1
  432. package/dist/gateway/static/root/assets/schedule-summary-B-hdSRdR.js +0 -1
  433. package/dist/gateway/static/root/assets/settings-advanced-gate-BYS-rpzn.js +0 -1
  434. package/dist/gateway/static/root/assets/settings-form-section-BsrK7TBF.js +0 -1
  435. package/dist/gateway/static/root/assets/setup-status-panel-DJiksNu4.js +0 -1
  436. package/dist/gateway/static/root/assets/skill-reload-api-CU9i0nJV.js +0 -1
  437. package/dist/gateway/static/root/assets/skills-page-ERbdWENm.js +0 -2
  438. package/dist/gateway/static/root/assets/use-agent-defaults-form-D3FGVLZb.js +0 -1
  439. package/dist/gateway/static/root/favicon-16.png +0 -0
  440. package/dist/gateway/static/root/favicon-32.png +0 -0
  441. package/dist/src/cron/persistence.d.ts +0 -62
  442. package/dist/src/cron/persistence.js +0 -188
  443. package/dist/src/cron/persistence.js.map +0 -1
Binary file
Binary file
Binary file
Binary file
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "xopc Browser Bridge",
4
- "version": "0.0.111",
4
+ "version": "0.0.113",
5
5
  "description": "Browser automation bridge for xopc — executes commands in Chrome via the local xopc daemon.",
6
6
  "permissions": [
7
7
  "debugger",
@@ -1,8 +1,8 @@
1
1
  import { checkFileSafety } from "../../../../src/agent/prompt/safety.js";
2
2
  import { getMimeType } from "../../../../src/channels/media.js";
3
3
  import { getWorkspacePath } from "../../../../src/config/workspace-path-helpers.js";
4
- import path from "node:path";
5
4
  import { promises } from "node:fs";
5
+ import path from "node:path";
6
6
  import { Readable } from "node:stream";
7
7
  //#region extensions/feishu/src/outbound/media-load.ts
8
8
  function isPathUnderRoots(resolved, roots) {
@@ -1,6 +1,6 @@
1
- import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
2
1
  import { createLogger } from "../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
4
4
  import { resolveFeishuAccount } from "./state/accounts.js";
5
5
  //#region extensions/feishu/src/workflow-progress.ts
6
6
  init_session_key();
@@ -1,6 +1,6 @@
1
- import { init_config_schema, resolveTelegramStreamingMode } from "../config-schema.js";
2
1
  import { createLogger } from "../../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../../src/utils/logger.js";
3
+ import { init_config_schema, resolveTelegramStreamingMode } from "../config-schema.js";
4
4
  import { renderTelegramHtmlText } from "../format.js";
5
5
  import { telegramReplyTracker } from "../reply-params.js";
6
6
  import { createTelegramDraftStream } from "../draft-stream.js";
@@ -1,6 +1,6 @@
1
- import { resolveRoute } from "../../../src/routing/resolve-route.js";
2
1
  import { createLogger } from "../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { resolveRoute } from "../../../src/routing/resolve-route.js";
4
4
  import { normalizeTelegramCommandName, parseSlashCommand } from "../../../src/chat-commands/command-parse.js";
5
5
  import { checkMentionInTranscription } from "../../../src/voice/stt/mention.js";
6
6
  import { tryConsumeTelegramClarifyFreeText } from "../../../src/gateway/clarify-runtime.js";
@@ -1,6 +1,6 @@
1
- import { TelegramConfigSchema, init_config_schema } from "./config-schema.js";
2
1
  import { createLogger } from "../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { TelegramConfigSchema, init_config_schema } from "./config-schema.js";
4
4
  import { registerChannelExecApprovalHandler } from "../../../src/channels/exec-approval-runtime.js";
5
5
  import { isSTTAvailable } from "../../../src/voice/stt/availability.js";
6
6
  import { generateSessionKey } from "../../../src/chat-commands/session-key.js";
@@ -1,7 +1,7 @@
1
- import { buildSessionKey } from "../../../src/routing/session-key.js";
2
- import { applyIdentityLinks, resolveRoute } from "../../../src/routing/resolve-route.js";
3
1
  import { createLogger } from "../../../src/utils/logger/index.js";
4
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { buildSessionKey } from "../../../src/routing/session-key.js";
4
+ import { applyIdentityLinks, resolveRoute } from "../../../src/routing/resolve-route.js";
5
5
  import "../../../src/routing/index.js";
6
6
  //#region extensions/telegram/src/routing-integration.ts
7
7
  init_logger();
@@ -1,7 +1,7 @@
1
1
  import { resolveStateDir } from "../../../src/config/paths-state.js";
2
2
  import { init_paths } from "../../../src/config/paths.js";
3
- import { join } from "node:path";
4
3
  import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
4
+ import { join } from "node:path";
5
5
  //#region extensions/telegram/src/update-offset-store.ts
6
6
  init_paths();
7
7
  const STORE_VERSION = 2;
@@ -1,6 +1,6 @@
1
- import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
2
1
  import { createLogger } from "../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
4
4
  //#region extensions/telegram/src/workflow-progress.ts
5
5
  init_session_key();
6
6
  init_logger();
@@ -2,7 +2,7 @@
2
2
  "id": "telegram",
3
3
  "name": "Telegram Channel",
4
4
  "description": "Bundled Telegram Bot channel (private workspace sources; ships inside @xopcai/xopc dist/)",
5
- "version": "0.0.111",
5
+ "version": "0.0.113",
6
6
  "kind": "channel",
7
7
  "main": "src/index.js",
8
8
  "channels": [
@@ -1,9 +1,9 @@
1
1
  import { hasProxyEnv } from "../../../../src/infra/http-proxy-env.js";
2
2
  import { logger } from "../util/logger.js";
3
3
  import { redactBody, redactUrl } from "../util/redact.js";
4
- import path from "node:path";
5
- import fs from "node:fs";
6
4
  import crypto from "node:crypto";
5
+ import fs from "node:fs";
6
+ import path from "node:path";
7
7
  import { fileURLToPath } from "node:url";
8
8
  import { Agent, EnvHttpProxyAgent, fetch as fetch$1 } from "undici";
9
9
  //#region extensions/weixin/src/api/api.ts
@@ -1,8 +1,8 @@
1
1
  import { logger } from "../util/logger.js";
2
2
  import { normalizeWeixinAccountId } from "./weixin-account-id.js";
3
3
  import { resolveWeixinRootDir } from "../storage/state-dir.js";
4
- import path from "node:path";
5
4
  import fs from "node:fs";
5
+ import path from "node:path";
6
6
  //#region extensions/weixin/src/auth/accounts.ts
7
7
  const DEFAULT_BASE_URL = "https://ilinkai.weixin.qq.com";
8
8
  const CDN_BASE_URL = "https://novac2c.cdn.weixin.qq.com/c2c";
@@ -6,9 +6,9 @@ import { getUploadUrl } from "../api/api.js";
6
6
  import { getExtensionFromContentTypeOrUrl } from "../media/mime.js";
7
7
  import { aesEcbPaddedSize } from "./aes-ecb.js";
8
8
  import { uploadBufferToCdn } from "./cdn-upload.js";
9
- import path from "node:path";
10
9
  import crypto from "node:crypto";
11
10
  import fs from "node:fs/promises";
11
+ import path from "node:path";
12
12
  //#region extensions/weixin/src/cdn/upload.ts
13
13
  /**
14
14
  * Download a remote media URL (image, video, file) to a local temp file in destDir.
@@ -1,4 +1,4 @@
1
- import type { SessionStore } from '@xopcai/xopc/session/store.js';
1
+ import type { SessionListReader } from '@xopcai/xopc/session/store-reader.js';
2
2
  export type NormalizedWeixinCronDelivery = {
3
3
  chatId: string;
4
4
  /** Set on OutboundMessage.metadata for multi-account Weixin */
@@ -11,6 +11,6 @@ export declare function normalizeWeixinCronDeliveryTo(to: string): NormalizedWei
11
11
  /**
12
12
  * If exactly one indexed weixin DM session matches `ilinkPeerId`, return that session's accountId.
13
13
  */
14
- export declare function resolveWeixinAccountIdFromSessions(store: SessionStore, ilinkPeerId: string): Promise<string | undefined>;
14
+ export declare function resolveWeixinAccountIdFromSessions(store: SessionListReader, ilinkPeerId: string): Promise<string | undefined>;
15
15
  /** Like {@link normalizeWeixinCronDeliveryTo}, plus session-index lookup for bare ilink user ids. */
16
- export declare function normalizeWeixinCronDeliveryToResolved(to: string, sessionStore?: SessionStore): Promise<NormalizedWeixinCronDelivery>;
16
+ export declare function normalizeWeixinCronDeliveryToResolved(to: string, sessionStore?: SessionListReader): Promise<NormalizedWeixinCronDelivery>;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-to.js","names":[],"sources":["../../../../extensions/weixin/src/delivery-to.ts"],"sourcesContent":["import { parseSessionKey } from '@xopcai/xopc/routing/session-key.js';\nimport type { SessionStore } from '@xopcai/xopc/session/store.js';\n\nexport type NormalizedWeixinCronDelivery = {\n chatId: string;\n /** Set on OutboundMessage.metadata for multi-account Weixin */\n accountId?: string;\n};\n\n/**\n * Resolves Weixin ilink `chat_id` and optional `accountId` from cron / UI `delivery.to`.\n */\nexport function normalizeWeixinCronDeliveryTo(to: string): NormalizedWeixinCronDelivery {\n const trimmed = to.trim();\n if (!trimmed) {\n return { chatId: trimmed };\n }\n\n const parsed = parseSessionKey(trimmed);\n if (parsed?.source === 'weixin' && (parsed.peerKind === 'direct' || parsed.peerKind === 'dm') && parsed.peerId) {\n const accountId = parsed.accountId && parsed.accountId !== '_' ? parsed.accountId : undefined;\n return { chatId: parsed.peerId, accountId };\n }\n\n const parts = trimmed.split(':');\n if (parts.length === 3 && parts[1]?.toLowerCase() === 'direct' && parts[0] && parts[2]) {\n return { chatId: parts[2], accountId: parts[0] };\n }\n\n return { chatId: trimmed };\n}\n\n/**\n * If exactly one indexed weixin DM session matches `ilinkPeerId`, return that session's accountId.\n */\nexport async function resolveWeixinAccountIdFromSessions(\n store: SessionStore,\n ilinkPeerId: string,\n): Promise<string | undefined> {\n const normalized = ilinkPeerId.trim().toLowerCase();\n if (!normalized) return undefined;\n\n const accountIds = new Set<string>();\n let offset = 0;\n const pageSize = 2000;\n\n for (;;) {\n const batch = await store.list({ channel: 'weixin', limit: pageSize, offset });\n for (const s of batch.items) {\n const rp = s.routing?.peerId?.toLowerCase();\n if (rp === normalized && s.routing?.accountId) {\n accountIds.add(s.routing.accountId);\n }\n }\n if (!batch.hasMore) break;\n offset += pageSize;\n }\n\n if (accountIds.size === 1) return [...accountIds][0];\n return undefined;\n}\n\n/** Like {@link normalizeWeixinCronDeliveryTo}, plus session-index lookup for bare ilink user ids. */\nexport async function normalizeWeixinCronDeliveryToResolved(\n to: string,\n sessionStore?: SessionStore,\n): Promise<NormalizedWeixinCronDelivery> {\n const base = normalizeWeixinCronDeliveryTo(to);\n if (base.accountId || !sessionStore) return base;\n if (!to.trim().includes(':')) {\n const accountId = await resolveWeixinAccountIdFromSessions(sessionStore, base.chatId);\n if (accountId) return { chatId: base.chatId, accountId };\n }\n return base;\n}\n"],"mappings":";;kBAAsE;;;;AAYtE,SAAgB,8BAA8B,IAA0C;CACtF,MAAM,UAAU,GAAG,MAAM;AACzB,KAAI,CAAC,QACH,QAAO,EAAE,QAAQ,SAAS;CAG5B,MAAM,SAAS,gBAAgB,QAAQ;AACvC,KAAI,QAAQ,WAAW,aAAa,OAAO,aAAa,YAAY,OAAO,aAAa,SAAS,OAAO,QAAQ;EAC9G,MAAM,YAAY,OAAO,aAAa,OAAO,cAAc,MAAM,OAAO,YAAY,KAAA;AACpF,SAAO;GAAE,QAAQ,OAAO;GAAQ;GAAW;;CAG7C,MAAM,QAAQ,QAAQ,MAAM,IAAI;AAChC,KAAI,MAAM,WAAW,KAAK,MAAM,IAAI,aAAa,KAAK,YAAY,MAAM,MAAM,MAAM,GAClF,QAAO;EAAE,QAAQ,MAAM;EAAI,WAAW,MAAM;EAAI;AAGlD,QAAO,EAAE,QAAQ,SAAS;;;;;AAM5B,eAAsB,mCACpB,OACA,aAC6B;CAC7B,MAAM,aAAa,YAAY,MAAM,CAAC,aAAa;AACnD,KAAI,CAAC,WAAY,QAAO,KAAA;CAExB,MAAM,6BAAa,IAAI,KAAa;CACpC,IAAI,SAAS;CACb,MAAM,WAAW;AAEjB,UAAS;EACP,MAAM,QAAQ,MAAM,MAAM,KAAK;GAAE,SAAS;GAAU,OAAO;GAAU;GAAQ,CAAC;AAC9E,OAAK,MAAM,KAAK,MAAM,MAEpB,KADW,EAAE,SAAS,QAAQ,aAAa,KAChC,cAAc,EAAE,SAAS,UAClC,YAAW,IAAI,EAAE,QAAQ,UAAU;AAGvC,MAAI,CAAC,MAAM,QAAS;AACpB,YAAU;;AAGZ,KAAI,WAAW,SAAS,EAAG,QAAO,CAAC,GAAG,WAAW,CAAC;;;AAKpD,eAAsB,sCACpB,IACA,cACuC;CACvC,MAAM,OAAO,8BAA8B,GAAG;AAC9C,KAAI,KAAK,aAAa,CAAC,aAAc,QAAO;AAC5C,KAAI,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE;EAC5B,MAAM,YAAY,MAAM,mCAAmC,cAAc,KAAK,OAAO;AACrF,MAAI,UAAW,QAAO;GAAE,QAAQ,KAAK;GAAQ;GAAW;;AAE1D,QAAO"}
1
+ {"version":3,"file":"delivery-to.js","names":[],"sources":["../../../../extensions/weixin/src/delivery-to.ts"],"sourcesContent":["import { parseSessionKey } from '@xopcai/xopc/routing/session-key.js';\nimport type { SessionListReader } from '@xopcai/xopc/session/store-reader.js';\n\nexport type NormalizedWeixinCronDelivery = {\n chatId: string;\n /** Set on OutboundMessage.metadata for multi-account Weixin */\n accountId?: string;\n};\n\n/**\n * Resolves Weixin ilink `chat_id` and optional `accountId` from cron / UI `delivery.to`.\n */\nexport function normalizeWeixinCronDeliveryTo(to: string): NormalizedWeixinCronDelivery {\n const trimmed = to.trim();\n if (!trimmed) {\n return { chatId: trimmed };\n }\n\n const parsed = parseSessionKey(trimmed);\n if (parsed?.source === 'weixin' && (parsed.peerKind === 'direct' || parsed.peerKind === 'dm') && parsed.peerId) {\n const accountId = parsed.accountId && parsed.accountId !== '_' ? parsed.accountId : undefined;\n return { chatId: parsed.peerId, accountId };\n }\n\n const parts = trimmed.split(':');\n if (parts.length === 3 && parts[1]?.toLowerCase() === 'direct' && parts[0] && parts[2]) {\n return { chatId: parts[2], accountId: parts[0] };\n }\n\n return { chatId: trimmed };\n}\n\n/**\n * If exactly one indexed weixin DM session matches `ilinkPeerId`, return that session's accountId.\n */\nexport async function resolveWeixinAccountIdFromSessions(\n store: SessionListReader,\n ilinkPeerId: string,\n): Promise<string | undefined> {\n const normalized = ilinkPeerId.trim().toLowerCase();\n if (!normalized) return undefined;\n\n const accountIds = new Set<string>();\n let offset = 0;\n const pageSize = 2000;\n\n for (;;) {\n const batch = await store.list({ channel: 'weixin', limit: pageSize, offset });\n for (const s of batch.items) {\n const rp = s.routing?.peerId?.toLowerCase();\n if (rp === normalized && s.routing?.accountId) {\n accountIds.add(s.routing.accountId);\n }\n }\n if (!batch.hasMore) break;\n offset += pageSize;\n }\n\n if (accountIds.size === 1) return [...accountIds][0];\n return undefined;\n}\n\n/** Like {@link normalizeWeixinCronDeliveryTo}, plus session-index lookup for bare ilink user ids. */\nexport async function normalizeWeixinCronDeliveryToResolved(\n to: string,\n sessionStore?: SessionListReader,\n): Promise<NormalizedWeixinCronDelivery> {\n const base = normalizeWeixinCronDeliveryTo(to);\n if (base.accountId || !sessionStore) return base;\n if (!to.trim().includes(':')) {\n const accountId = await resolveWeixinAccountIdFromSessions(sessionStore, base.chatId);\n if (accountId) return { chatId: base.chatId, accountId };\n }\n return base;\n}\n"],"mappings":";;kBAAsE;;;;AAYtE,SAAgB,8BAA8B,IAA0C;CACtF,MAAM,UAAU,GAAG,MAAM;AACzB,KAAI,CAAC,QACH,QAAO,EAAE,QAAQ,SAAS;CAG5B,MAAM,SAAS,gBAAgB,QAAQ;AACvC,KAAI,QAAQ,WAAW,aAAa,OAAO,aAAa,YAAY,OAAO,aAAa,SAAS,OAAO,QAAQ;EAC9G,MAAM,YAAY,OAAO,aAAa,OAAO,cAAc,MAAM,OAAO,YAAY,KAAA;AACpF,SAAO;GAAE,QAAQ,OAAO;GAAQ;GAAW;;CAG7C,MAAM,QAAQ,QAAQ,MAAM,IAAI;AAChC,KAAI,MAAM,WAAW,KAAK,MAAM,IAAI,aAAa,KAAK,YAAY,MAAM,MAAM,MAAM,GAClF,QAAO;EAAE,QAAQ,MAAM;EAAI,WAAW,MAAM;EAAI;AAGlD,QAAO,EAAE,QAAQ,SAAS;;;;;AAM5B,eAAsB,mCACpB,OACA,aAC6B;CAC7B,MAAM,aAAa,YAAY,MAAM,CAAC,aAAa;AACnD,KAAI,CAAC,WAAY,QAAO,KAAA;CAExB,MAAM,6BAAa,IAAI,KAAa;CACpC,IAAI,SAAS;CACb,MAAM,WAAW;AAEjB,UAAS;EACP,MAAM,QAAQ,MAAM,MAAM,KAAK;GAAE,SAAS;GAAU,OAAO;GAAU;GAAQ,CAAC;AAC9E,OAAK,MAAM,KAAK,MAAM,MAEpB,KADW,EAAE,SAAS,QAAQ,aAAa,KAChC,cAAc,EAAE,SAAS,UAClC,YAAW,IAAI,EAAE,QAAQ,UAAU;AAGvC,MAAI,CAAC,MAAM,QAAS;AACpB,YAAU;;AAGZ,KAAI,WAAW,SAAS,EAAG,QAAO,CAAC,GAAG,WAAW,CAAC;;;AAKpD,eAAsB,sCACpB,IACA,cACuC;CACvC,MAAM,OAAO,8BAA8B,GAAG;AAC9C,KAAI,KAAK,aAAa,CAAC,aAAc,QAAO;AAC5C,KAAI,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE;EAC5B,MAAM,YAAY,MAAM,mCAAmC,cAAc,KAAK,OAAO;AACrF,MAAI,UAAW,QAAO;GAAE,QAAQ,KAAK;GAAQ;GAAW;;AAE1D,QAAO"}
@@ -1,7 +1,7 @@
1
1
  import { getExtensionFromMime } from "./mime.js";
2
- import path from "node:path";
3
2
  import { randomBytes } from "node:crypto";
4
3
  import fs from "node:fs/promises";
4
+ import path from "node:path";
5
5
  //#region extensions/weixin/src/media/data-url.ts
6
6
  /**
7
7
  * Parse `data:mime;base64,...` into buffer (aligned with Telegram `parseDataUrl`).
@@ -1,7 +1,7 @@
1
1
  import { logger } from "../util/logger.js";
2
2
  import { resolveWeixinRootDir } from "../storage/state-dir.js";
3
- import path from "node:path";
4
3
  import fs from "node:fs";
4
+ import path from "node:path";
5
5
  //#region extensions/weixin/src/messaging/debug-mode.ts
6
6
  /**
7
7
  * Per-bot debug mode toggle, persisted to disk so it survives gateway restarts.
@@ -3,8 +3,8 @@ import { generateId } from "../util/random.js";
3
3
  import { MessageItemType } from "../api/types.js";
4
4
  import { canonicalWeixinPeerId, normalizeWeixinAccountId } from "../auth/weixin-account-id.js";
5
5
  import { resolveWeixinRootDir } from "../storage/state-dir.js";
6
- import path from "node:path";
7
6
  import fs from "node:fs";
7
+ import path from "node:path";
8
8
  //#region extensions/weixin/src/messaging/inbound.ts
9
9
  /**
10
10
  * contextToken is issued per-message by the Weixin getupdates API and must
@@ -11,9 +11,9 @@ import { downloadMediaFromItem } from "../media/media-download.js";
11
11
  import { isDebugMode } from "./debug-mode.js";
12
12
  import { sendMessageWeixin } from "./send.js";
13
13
  import { handleSlashCommand } from "./slash-commands.js";
14
- import path from "node:path";
15
14
  import { randomBytes } from "node:crypto";
16
15
  import { mkdir, readFile, writeFile } from "node:fs/promises";
16
+ import path from "node:path";
17
17
  //#region extensions/weixin/src/messaging/process-message.ts
18
18
  function extractTextBody(itemList) {
19
19
  if (!itemList?.length) return "";
@@ -1,6 +1,6 @@
1
- import { WeixinConfigSchema, init_config_schema } from "./config-schema.js";
2
1
  import { createLogger } from "../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { WeixinConfigSchema, init_config_schema } from "./config-schema.js";
4
4
  import { evaluateAccess, resolveDmPolicy } from "../../../src/channels/security.js";
5
5
  import { createStandardPairingAdapter } from "../../../src/channels/pairing/pairing-store-adapter.js";
6
6
  import { weixinConfigSurface } from "./config-surface.js";
@@ -1,6 +1,6 @@
1
1
  import { resolveWeixinRootDir } from "./state-dir.js";
2
- import path from "node:path";
3
2
  import fs from "node:fs";
3
+ import path from "node:path";
4
4
  //#region extensions/weixin/src/storage/sync-buf.ts
5
5
  function resolveAccountsDir() {
6
6
  return path.join(resolveWeixinRootDir(), "accounts");
@@ -1,6 +1,6 @@
1
- import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
2
1
  import { createLogger } from "../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
4
4
  import { getContextToken } from "./messaging/inbound.js";
5
5
  import { resolveWeixinAccount } from "./auth/accounts.js";
6
6
  import { sendMessageWeixin } from "./messaging/send.js";