@xopcai/xopc 0.0.99 → 0.0.101

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 (362) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/src/account-manager.d.ts +3 -3
  3. package/dist/extensions/telegram/src/account-manager.js +8 -8
  4. package/dist/extensions/telegram/src/account-manager.js.map +1 -1
  5. package/dist/extensions/telegram/src/actions/message-actions.d.ts +4 -0
  6. package/dist/extensions/telegram/src/actions/message-actions.js +71 -0
  7. package/dist/extensions/telegram/src/actions/message-actions.js.map +1 -0
  8. package/dist/extensions/telegram/src/adapters/config-adapter.js +9 -1
  9. package/dist/extensions/telegram/src/adapters/config-adapter.js.map +1 -1
  10. package/dist/extensions/telegram/src/adapters/config-surface.js +1 -1
  11. package/dist/extensions/telegram/src/adapters/config-surface.js.map +1 -1
  12. package/dist/extensions/telegram/src/adapters/outbound-adapter.d.ts +2 -1
  13. package/dist/extensions/telegram/src/adapters/outbound-adapter.js +18 -4
  14. package/dist/extensions/telegram/src/adapters/outbound-adapter.js.map +1 -1
  15. package/dist/extensions/telegram/src/adapters/security-adapter.js +2 -1
  16. package/dist/extensions/telegram/src/adapters/security-adapter.js.map +1 -1
  17. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +90 -6
  18. package/dist/extensions/telegram/src/adapters/streaming-adapter.js.map +1 -1
  19. package/dist/extensions/telegram/src/adapters/types.d.ts +9 -1
  20. package/dist/extensions/telegram/src/api-root.d.ts +4 -0
  21. package/dist/extensions/telegram/src/api-root.js +42 -0
  22. package/dist/extensions/telegram/src/api-root.js.map +1 -0
  23. package/dist/extensions/telegram/src/approval-delivery.d.ts +9 -0
  24. package/dist/extensions/telegram/src/approval-delivery.js +36 -0
  25. package/dist/extensions/telegram/src/approval-delivery.js.map +1 -0
  26. package/dist/extensions/telegram/src/approval-store.d.ts +25 -0
  27. package/dist/extensions/telegram/src/approval-store.js +61 -0
  28. package/dist/extensions/telegram/src/approval-store.js.map +1 -0
  29. package/dist/extensions/telegram/src/config-schema.d.ts +185 -35
  30. package/dist/extensions/telegram/src/config-schema.js +67 -45
  31. package/dist/extensions/telegram/src/config-schema.js.map +1 -1
  32. package/dist/extensions/telegram/src/conversation-id.d.ts +6 -0
  33. package/dist/extensions/telegram/src/conversation-id.js +18 -0
  34. package/dist/extensions/telegram/src/conversation-id.js.map +1 -0
  35. package/dist/extensions/telegram/src/doctor.d.ts +5 -0
  36. package/dist/extensions/telegram/src/doctor.js +80 -0
  37. package/dist/extensions/telegram/src/doctor.js.map +1 -0
  38. package/dist/extensions/telegram/src/exec-approval-handler.d.ts +7 -0
  39. package/dist/extensions/telegram/src/exec-approval-handler.js +36 -0
  40. package/dist/extensions/telegram/src/exec-approval-handler.js.map +1 -0
  41. package/dist/extensions/telegram/src/exec-approvals.d.ts +8 -0
  42. package/dist/extensions/telegram/src/exec-approvals.js +20 -0
  43. package/dist/extensions/telegram/src/exec-approvals.js.map +1 -0
  44. package/dist/extensions/telegram/src/focus-handler.d.ts +12 -0
  45. package/dist/extensions/telegram/src/focus-handler.js +55 -0
  46. package/dist/extensions/telegram/src/focus-handler.js.map +1 -0
  47. package/dist/extensions/telegram/src/group-config-resolver.d.ts +12 -0
  48. package/dist/extensions/telegram/src/group-config-resolver.js +17 -0
  49. package/dist/extensions/telegram/src/group-config-resolver.js.map +1 -0
  50. package/dist/extensions/telegram/src/inbound-coalescer.d.ts +15 -0
  51. package/dist/extensions/telegram/src/inbound-coalescer.js +107 -0
  52. package/dist/extensions/telegram/src/inbound-coalescer.js.map +1 -0
  53. package/dist/extensions/telegram/src/inbound-processor.d.ts +1 -0
  54. package/dist/extensions/telegram/src/inbound-processor.js +41 -4
  55. package/dist/extensions/telegram/src/inbound-processor.js.map +1 -1
  56. package/dist/extensions/telegram/src/network-errors.d.ts +2 -0
  57. package/dist/extensions/telegram/src/network-errors.js +23 -0
  58. package/dist/extensions/telegram/src/network-errors.js.map +1 -0
  59. package/dist/extensions/telegram/src/plugin.d.ts +11 -0
  60. package/dist/extensions/telegram/src/plugin.js +191 -57
  61. package/dist/extensions/telegram/src/plugin.js.map +1 -1
  62. package/dist/extensions/telegram/src/polling-session.d.ts +17 -0
  63. package/dist/extensions/telegram/src/polling-session.js +112 -0
  64. package/dist/extensions/telegram/src/polling-session.js.map +1 -0
  65. package/dist/extensions/telegram/src/proxy-fetch.d.ts +2 -0
  66. package/dist/extensions/telegram/src/proxy-fetch.js +14 -0
  67. package/dist/extensions/telegram/src/proxy-fetch.js.map +1 -0
  68. package/dist/extensions/telegram/src/reactions.d.ts +14 -0
  69. package/dist/extensions/telegram/src/reactions.js +48 -0
  70. package/dist/extensions/telegram/src/reactions.js.map +1 -0
  71. package/dist/extensions/telegram/src/reply-params.d.ts +15 -0
  72. package/dist/extensions/telegram/src/reply-params.js +28 -0
  73. package/dist/extensions/telegram/src/reply-params.js.map +1 -0
  74. package/dist/extensions/telegram/src/startup-errors.d.ts +3 -0
  75. package/dist/extensions/telegram/src/startup-errors.js +27 -0
  76. package/dist/extensions/telegram/src/startup-errors.js.map +1 -0
  77. package/dist/extensions/telegram/src/telegram-actions.d.ts +25 -0
  78. package/dist/extensions/telegram/src/telegram-actions.js +65 -0
  79. package/dist/extensions/telegram/src/telegram-actions.js.map +1 -0
  80. package/dist/extensions/telegram/src/thread-bindings.d.ts +15 -0
  81. package/dist/extensions/telegram/src/thread-bindings.js +22 -0
  82. package/dist/extensions/telegram/src/thread-bindings.js.map +1 -0
  83. package/dist/extensions/telegram/src/token-resolver.d.ts +8 -0
  84. package/dist/extensions/telegram/src/token-resolver.js +34 -0
  85. package/dist/extensions/telegram/src/token-resolver.js.map +1 -0
  86. package/dist/extensions/telegram/src/update-offset-store.d.ts +9 -0
  87. package/dist/extensions/telegram/src/update-offset-store.js +66 -0
  88. package/dist/extensions/telegram/src/update-offset-store.js.map +1 -0
  89. package/dist/extensions/telegram/xopc.extension.json +1 -1
  90. package/dist/extensions/weixin/src/api/api.js +5 -3
  91. package/dist/extensions/weixin/src/api/api.js.map +1 -1
  92. package/dist/gateway/static/root/assets/{agents-4KTK-Ku7.js → agents-u8cmUfGQ.js} +2 -2
  93. package/dist/gateway/static/root/assets/{apps-page-DkgInY2w.js → apps-page-DF8m9cUE.js} +1 -1
  94. package/dist/gateway/static/root/assets/{attachment-preview-renderer-DBAxQXb-.js → attachment-preview-renderer-CybMSIoS.js} +2 -2
  95. package/dist/gateway/static/root/assets/{attachment-process-heavy-Csq3TrrP.js → attachment-process-heavy-RnGYy9bC.js} +2 -2
  96. package/dist/gateway/static/root/assets/channels-settings-BM3doRvi.js +1 -0
  97. package/dist/gateway/static/root/assets/channels-status-swr-ah4zWEIP.js +8 -0
  98. package/dist/gateway/static/root/assets/{cron-api-BRDli2Mm.js → cron-api-DgMuL_2b.js} +1 -1
  99. package/dist/gateway/static/root/assets/{cron-page-BzEr5Za8.js → cron-page-COfUPKfq.js} +1 -1
  100. package/dist/gateway/static/root/assets/{dist-BsHh1vX0.js → dist-Dzy3Q0ZH.js} +1 -1
  101. package/dist/gateway/static/root/assets/{docx-preview-Dxj1EkCO.js → docx-preview-CajIk2FR.js} +1 -1
  102. package/dist/gateway/static/root/assets/{extension-debug-page-TWt5q_ef.js → extension-debug-page-kyxxefKh.js} +1 -1
  103. package/dist/gateway/static/root/assets/{extension-page-C3kV8ZvZ.js → extension-page-BVbCBHoI.js} +1 -1
  104. package/dist/gateway/static/root/assets/{extension-settings-page-Csy9LNC6.js → extension-settings-page-t1lb2A7v.js} +1 -1
  105. package/dist/gateway/static/root/assets/{fetch-BLLOP2CM.js → fetch-drJUxxKP.js} +1 -1
  106. package/dist/gateway/static/root/assets/{field-primitives-MXbM8HvY.js → field-primitives-6Vo1Yga4.js} +1 -1
  107. package/dist/gateway/static/root/assets/{heartbeat-config-api-CkoyqfRx.js → heartbeat-config-api-BF3psu4O.js} +1 -1
  108. package/dist/gateway/static/root/assets/index-DjNDHzwG.css +1 -0
  109. package/dist/gateway/static/root/assets/index-WAyKAilR.js +4840 -0
  110. package/dist/gateway/static/root/assets/{logs-page-B2vY41ph.js → logs-page-BTVPXcHV.js} +1 -1
  111. package/dist/gateway/static/root/assets/{note-detail-page-B7qE5pkO.js → note-detail-page-DqSAg_5Z.js} +1 -1
  112. package/dist/gateway/static/root/assets/{note-time-NBBReVR4.js → note-time-FSOjchic.js} +1 -1
  113. package/dist/gateway/static/root/assets/{notes-page-CsWYaqYM.js → notes-page-DkRX7BE2.js} +1 -1
  114. package/dist/gateway/static/root/assets/{sessions-page-BPGY3SCT.js → sessions-page-Khdw35Zk.js} +1 -1
  115. package/dist/gateway/static/root/assets/{settings-advanced-gate-DtA451RM.js → settings-advanced-gate-DspC8oEm.js} +2 -2
  116. package/dist/gateway/static/root/assets/{settings-form-section-DYR_SPlX.js → settings-form-section-DuxvUuur.js} +1 -1
  117. package/dist/gateway/static/root/assets/{settings-page-BJUgZQzN.js → settings-page-DN8JBZ8F.js} +2 -2
  118. package/dist/gateway/static/root/assets/{share-preview-page-3u8VFmdo.js → share-preview-page-UNAcbiMb.js} +2 -2
  119. package/dist/gateway/static/root/assets/{skills-page-DuyhcH4U.js → skills-page-ByYT0fXZ.js} +1 -1
  120. package/dist/gateway/static/root/assets/{theme-store-e2q2yjs4.js → theme-store-B6KXPHgK.js} +1 -1
  121. package/dist/gateway/static/root/assets/url-q28QhI7l.js +3 -0
  122. package/dist/gateway/static/root/assets/{utils-B4Vw3fnc.js → utils-DK_1H47k.js} +1 -1
  123. package/dist/gateway/static/root/assets/{voice-api-key-field-BFY67Hhp.js → voice-api-key-field-BYN2EIMs.js} +1 -1
  124. package/dist/gateway/static/root/assets/{workflow-page.utils-yUJ5jexd.js → workflow-page.utils-Bi19YNTr.js} +1 -1
  125. package/dist/gateway/static/root/assets/{workflows-page-DIMHCpNt.js → workflows-page-DP57FEKW.js} +1 -1
  126. package/dist/gateway/static/root/index.html +5 -5
  127. package/dist/package.js +1 -1
  128. package/dist/src/agent/agent-manager.d.ts +4 -0
  129. package/dist/src/agent/agent-manager.js +84 -4
  130. package/dist/src/agent/agent-manager.js.map +1 -1
  131. package/dist/src/agent/child-agent-factory.d.ts +1 -0
  132. package/dist/src/agent/child-agent-factory.js +13 -10
  133. package/dist/src/agent/child-agent-factory.js.map +1 -1
  134. package/dist/src/agent/embedded/run-for-session.d.ts +1 -0
  135. package/dist/src/agent/embedded/run-for-session.js +2 -0
  136. package/dist/src/agent/embedded/run-for-session.js.map +1 -1
  137. package/dist/src/agent/embedded/run-turn.js +1 -17
  138. package/dist/src/agent/embedded/run-turn.js.map +1 -1
  139. package/dist/src/agent/embedded/session-runner.js +3 -1
  140. package/dist/src/agent/embedded/session-runner.js.map +1 -1
  141. package/dist/src/agent/embedded/session-tool-result-guard.d.ts +1 -0
  142. package/dist/src/agent/embedded/session-tool-result-guard.js +1 -0
  143. package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
  144. package/dist/src/agent/inbound/attachment-pipeline.d.ts +37 -0
  145. package/dist/src/agent/inbound/attachment-pipeline.js +169 -0
  146. package/dist/src/agent/inbound/attachment-pipeline.js.map +1 -0
  147. package/dist/src/agent/inbound/turn-dispatcher.d.ts +3 -5
  148. package/dist/src/agent/inbound/turn-dispatcher.js +1 -2
  149. package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -1
  150. package/dist/src/agent/memory/index.d.ts +2 -0
  151. package/dist/src/agent/memory/index.js +2 -1
  152. package/dist/src/agent/memory/memory-flush.d.ts +27 -0
  153. package/dist/src/agent/memory/memory-flush.js +124 -0
  154. package/dist/src/agent/memory/memory-flush.js.map +1 -0
  155. package/dist/src/agent/messaging/outbound-coordinator.js +2 -1
  156. package/dist/src/agent/messaging/outbound-coordinator.js.map +1 -1
  157. package/dist/src/agent/messaging/stream-manager.d.ts +2 -0
  158. package/dist/src/agent/messaging/stream-manager.js +3 -0
  159. package/dist/src/agent/messaging/stream-manager.js.map +1 -1
  160. package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -4
  161. package/dist/src/agent/orchestration/agent-orchestrator.js +40 -107
  162. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  163. package/dist/src/agent/prompt/contribution.d.ts +9 -0
  164. package/dist/src/agent/prompt/contribution.js +1 -0
  165. package/dist/src/agent/prompt/safety.js +0 -10
  166. package/dist/src/agent/prompt/safety.js.map +1 -1
  167. package/dist/src/agent/prompt/sanitize-for-prompt.d.ts +6 -0
  168. package/dist/src/agent/prompt/sanitize-for-prompt.js +13 -0
  169. package/dist/src/agent/prompt/sanitize-for-prompt.js.map +1 -0
  170. package/dist/src/agent/prompt/sections/behavior.d.ts +5 -0
  171. package/dist/src/agent/prompt/sections/behavior.js +50 -0
  172. package/dist/src/agent/prompt/sections/behavior.js.map +1 -0
  173. package/dist/src/agent/prompt/sections/memory-skills.d.ts +9 -0
  174. package/dist/src/agent/prompt/sections/memory-skills.js +59 -0
  175. package/dist/src/agent/prompt/sections/memory-skills.js.map +1 -0
  176. package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +16 -0
  177. package/dist/src/agent/prompt/sections/messaging-runtime.js +69 -0
  178. package/dist/src/agent/prompt/sections/messaging-runtime.js.map +1 -0
  179. package/dist/src/agent/prompt/sections/project-context.d.ts +16 -0
  180. package/dist/src/agent/prompt/sections/project-context.js +58 -0
  181. package/dist/src/agent/prompt/sections/project-context.js.map +1 -0
  182. package/dist/src/agent/prompt/sections/tooling.d.ts +5 -0
  183. package/dist/src/agent/prompt/sections/tooling.js +119 -0
  184. package/dist/src/agent/prompt/sections/tooling.js.map +1 -0
  185. package/dist/src/agent/prompt/sections/workspace-runtime.d.ts +11 -0
  186. package/dist/src/agent/prompt/sections/workspace-runtime.js +32 -0
  187. package/dist/src/agent/prompt/sections/workspace-runtime.js.map +1 -0
  188. package/dist/src/agent/prompt/service-prompt-builder.d.ts +13 -0
  189. package/dist/src/agent/prompt/service-prompt-builder.js +54 -13
  190. package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
  191. package/dist/src/agent/prompt/subagent-context.d.ts +15 -0
  192. package/dist/src/agent/prompt/subagent-context.js +68 -0
  193. package/dist/src/agent/prompt/subagent-context.js.map +1 -0
  194. package/dist/src/agent/prompt/system-prompt-params.d.ts +53 -0
  195. package/dist/src/agent/prompt/system-prompt-params.js +74 -0
  196. package/dist/src/agent/prompt/system-prompt-params.js.map +1 -0
  197. package/dist/src/agent/prompt/system-prompt.d.ts +22 -11
  198. package/dist/src/agent/prompt/system-prompt.js +79 -193
  199. package/dist/src/agent/prompt/system-prompt.js.map +1 -1
  200. package/dist/src/agent/prompt/types.d.ts +3 -0
  201. package/dist/src/agent/service/build-direct-message-content.d.ts +5 -21
  202. package/dist/src/agent/service/build-direct-message-content.js +11 -64
  203. package/dist/src/agent/service/build-direct-message-content.js.map +1 -1
  204. package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -1
  205. package/dist/src/agent/service/direct-turn-helpers.js +7 -0
  206. package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
  207. package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -3
  208. package/dist/src/agent/service/process-direct-one-shot.js +22 -17
  209. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  210. package/dist/src/agent/service/process-direct-streaming.d.ts +6 -20
  211. package/dist/src/agent/service/process-direct-streaming.js +39 -40
  212. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  213. package/dist/src/agent/service/webchat-tts.d.ts +4 -9
  214. package/dist/src/agent/service/webchat-tts.js +9 -20
  215. package/dist/src/agent/service/webchat-tts.js.map +1 -1
  216. package/dist/src/agent/service.d.ts +8 -19
  217. package/dist/src/agent/service.js +53 -11
  218. package/dist/src/agent/service.js.map +1 -1
  219. package/dist/src/agent/tools/factory.js +2 -0
  220. package/dist/src/agent/tools/factory.js.map +1 -1
  221. package/dist/src/agent/tools/index.d.ts +1 -0
  222. package/dist/src/agent/tools/index.js +2 -1
  223. package/dist/src/agent/tools/media-read-tool.d.ts +2 -0
  224. package/dist/src/agent/tools/media-read-tool.js +89 -0
  225. package/dist/src/agent/tools/media-read-tool.js.map +1 -0
  226. package/dist/src/auth/credentials.js +0 -1
  227. package/dist/src/auth/credentials.js.map +1 -1
  228. package/dist/src/channels/attachments/attachment-classifiers.d.ts +8 -0
  229. package/dist/src/channels/attachments/attachment-classifiers.js +11 -0
  230. package/dist/src/channels/attachments/attachment-classifiers.js.map +1 -0
  231. package/dist/src/channels/attachments/inbound-persist.d.ts +13 -34
  232. package/dist/src/channels/attachments/inbound-persist.js +34 -102
  233. package/dist/src/channels/attachments/inbound-persist.js.map +1 -1
  234. package/dist/src/channels/attachments/inbound-types.d.ts +13 -0
  235. package/dist/src/channels/attachments/inbound-types.js +30 -0
  236. package/dist/src/channels/attachments/inbound-types.js.map +1 -0
  237. package/dist/src/channels/attachments/outbound-tts-persist.d.ts +3 -12
  238. package/dist/src/channels/attachments/outbound-tts-persist.js +28 -48
  239. package/dist/src/channels/attachments/outbound-tts-persist.js.map +1 -1
  240. package/dist/src/channels/attachments/voice-stt-webchat.d.ts +3 -3
  241. package/dist/src/channels/attachments/voice-stt-webchat.js +8 -14
  242. package/dist/src/channels/attachments/voice-stt-webchat.js.map +1 -1
  243. package/dist/src/channels/channel-domain.d.ts +30 -2
  244. package/dist/src/channels/exec-approval-runtime.d.ts +29 -0
  245. package/dist/src/channels/exec-approval-runtime.js +30 -0
  246. package/dist/src/channels/exec-approval-runtime.js.map +1 -0
  247. package/dist/src/channels/index.js +1 -1
  248. package/dist/src/channels/plugin-types.d.ts +1 -0
  249. package/dist/src/channels/transport-types.d.ts +2 -2
  250. package/dist/src/cli/bin.d.ts +1 -0
  251. package/dist/src/cli/bin.js +1 -0
  252. package/dist/src/cli/bin.js.map +1 -1
  253. package/dist/src/cli/commands/channels.js +1 -1
  254. package/dist/src/cli/commands/doctor/checks/database-schema.d.ts +2 -0
  255. package/dist/src/cli/commands/doctor/checks/database-schema.js +62 -0
  256. package/dist/src/cli/commands/doctor/checks/database-schema.js.map +1 -0
  257. package/dist/src/cli/commands/doctor/flow.js +2 -0
  258. package/dist/src/cli/commands/doctor/flow.js.map +1 -1
  259. package/dist/src/cli/commands/init.js +2 -57
  260. package/dist/src/cli/commands/init.js.map +1 -1
  261. package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
  262. package/dist/src/cli/commands/setup.js +6 -5
  263. package/dist/src/cli/commands/setup.js.map +1 -1
  264. package/dist/src/cli/utils/init-workspace-core.js +1 -2
  265. package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
  266. package/dist/src/config/index.js +2 -2
  267. package/dist/src/config/paths.d.ts +0 -13
  268. package/dist/src/config/paths.js +1 -20
  269. package/dist/src/config/paths.js.map +1 -1
  270. package/dist/src/config/rules.js +1 -1
  271. package/dist/src/config/schema.d.ts +24 -0
  272. package/dist/src/config/schema.js +33 -2
  273. package/dist/src/config/schema.js.map +1 -1
  274. package/dist/src/cron/executor.js +2 -2
  275. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  276. package/dist/src/gateway/hono/oauth-async.js +36 -3
  277. package/dist/src/gateway/hono/oauth-async.js.map +1 -1
  278. package/dist/src/gateway/hono/routes/config-patch/channels.js +3 -3
  279. package/dist/src/gateway/hono/routes/config-patch/channels.js.map +1 -1
  280. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  281. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  282. package/dist/src/gateway/hono/routes/media.d.ts +3 -0
  283. package/dist/src/gateway/hono/routes/media.js +50 -0
  284. package/dist/src/gateway/hono/routes/media.js.map +1 -0
  285. package/dist/src/gateway/hono/routes/sessions.js +6 -0
  286. package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
  287. package/dist/src/gateway/hono/routes/workspace.js +1 -87
  288. package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
  289. package/dist/src/gateway/service/sessions-api.js +3 -0
  290. package/dist/src/gateway/service/sessions-api.js.map +1 -1
  291. package/dist/src/infra/http-proxy-env.d.ts +4 -0
  292. package/dist/src/infra/http-proxy-env.js +23 -0
  293. package/dist/src/infra/http-proxy-env.js.map +1 -0
  294. package/dist/src/media/index.d.ts +5 -0
  295. package/dist/src/media/index.js +5 -0
  296. package/dist/src/media/media-reference.d.ts +23 -0
  297. package/dist/src/media/media-reference.js +34 -0
  298. package/dist/src/media/media-reference.js.map +1 -0
  299. package/dist/src/media/paths.d.ts +5 -0
  300. package/dist/src/media/paths.js +20 -0
  301. package/dist/src/media/paths.js.map +1 -0
  302. package/dist/src/media/session-references.d.ts +8 -0
  303. package/dist/src/media/session-references.js +45 -0
  304. package/dist/src/media/session-references.js.map +1 -0
  305. package/dist/src/media/store.d.ts +19 -0
  306. package/dist/src/media/store.js +131 -0
  307. package/dist/src/media/store.js.map +1 -0
  308. package/dist/src/media/types.d.ts +34 -0
  309. package/dist/src/media/types.js +1 -0
  310. package/dist/src/media/uri.d.ts +15 -0
  311. package/dist/src/media/uri.js +51 -0
  312. package/dist/src/media/uri.js.map +1 -0
  313. package/dist/src/session/session-title.js +6 -3
  314. package/dist/src/session/session-title.js.map +1 -1
  315. package/dist/src/session/store.js +1 -1
  316. package/dist/src/session/store.js.map +1 -1
  317. package/dist/src/session/types.d.ts +12 -7
  318. package/dist/src/session/types.js.map +1 -1
  319. package/dist/src/storage/sqlite/index.d.ts +4 -1
  320. package/dist/src/storage/sqlite/index.js +6 -2
  321. package/dist/src/storage/sqlite/migrations/002_add_flush_columns.sql +3 -0
  322. package/dist/src/storage/sqlite/migrations/discover.d.ts +4 -0
  323. package/dist/src/storage/sqlite/migrations/discover.js +38 -0
  324. package/dist/src/storage/sqlite/migrations/discover.js.map +1 -0
  325. package/dist/src/storage/sqlite/migrations/discover.ts +52 -0
  326. package/dist/src/storage/sqlite/migrations/errors.d.ts +11 -0
  327. package/dist/src/storage/sqlite/migrations/errors.js +27 -0
  328. package/dist/src/storage/sqlite/migrations/errors.js.map +1 -0
  329. package/dist/src/storage/sqlite/migrations/errors.ts +32 -0
  330. package/dist/src/storage/sqlite/migrations/runner.d.ts +22 -0
  331. package/dist/src/storage/sqlite/migrations/runner.js +97 -0
  332. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -0
  333. package/dist/src/storage/sqlite/migrations/runner.ts +153 -0
  334. package/dist/src/storage/sqlite/migrations/types.d.ts +12 -0
  335. package/dist/src/storage/sqlite/migrations/types.js +1 -0
  336. package/dist/src/storage/sqlite/migrations/types.ts +13 -0
  337. package/dist/src/storage/sqlite/row-mappers.d.ts +4 -0
  338. package/dist/src/storage/sqlite/row-mappers.js +4 -0
  339. package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
  340. package/dist/src/storage/sqlite/schema-version.d.ts +6 -0
  341. package/dist/src/storage/sqlite/schema-version.js +29 -0
  342. package/dist/src/storage/sqlite/schema-version.js.map +1 -0
  343. package/dist/src/storage/sqlite/schema.d.ts +5 -3
  344. package/dist/src/storage/sqlite/schema.js +24 -28
  345. package/dist/src/storage/sqlite/schema.js.map +1 -1
  346. package/dist/src/storage/sqlite/schema.sql +2 -0
  347. package/dist/src/storage/sqlite/session-metadata.js +1 -0
  348. package/dist/src/storage/sqlite/session-metadata.js.map +1 -1
  349. package/dist/src/storage/sqlite/session-repository.js +7 -3
  350. package/dist/src/storage/sqlite/session-repository.js.map +1 -1
  351. package/package.json +3 -3
  352. package/dist/gateway/static/root/assets/channels-settings-BxW1Xio4.js +0 -1
  353. package/dist/gateway/static/root/assets/channels-status-swr-Cxm6AvQO.js +0 -8
  354. package/dist/gateway/static/root/assets/index-BJDmBCSl.css +0 -1
  355. package/dist/gateway/static/root/assets/index-Cbg5TS5m.js +0 -4707
  356. package/dist/gateway/static/root/assets/url-DpFBIyN9.js +0 -3
  357. package/dist/src/cli/commands/onboard/workspace.d.ts +0 -14
  358. package/dist/src/cli/commands/onboard/workspace.js +0 -33
  359. package/dist/src/cli/commands/onboard/workspace.js.map +0 -1
  360. package/dist/src/cli/utils/workspace.d.ts +0 -35
  361. package/dist/src/cli/utils/workspace.js +0 -72
  362. package/dist/src/cli/utils/workspace.js.map +0 -1
@@ -0,0 +1,42 @@
1
+ //#region extensions/telegram/src/api-root.ts
2
+ const DEFAULT_TELEGRAM_API_ROOT = "https://api.telegram.org";
3
+ const TELEGRAM_BOT_ENDPOINT_SEGMENT_RE = /^bot\d+:[^/]+$/u;
4
+ function isTelegramBotEndpointSegment(segment) {
5
+ try {
6
+ return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(decodeURIComponent(segment));
7
+ } catch {
8
+ return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(segment);
9
+ }
10
+ }
11
+ /** Strip trailing `/bot<token>` from a misconfigured apiRoot URL. */
12
+ function normalizeTelegramApiRoot(apiRoot) {
13
+ const trimmed = apiRoot?.trim();
14
+ if (!trimmed) return DEFAULT_TELEGRAM_API_ROOT;
15
+ let normalized = trimmed.replace(/\/+$/u, "");
16
+ try {
17
+ const url = new URL(normalized);
18
+ const segments = url.pathname.split("/").filter(Boolean);
19
+ if (segments.length > 0 && isTelegramBotEndpointSegment(segments[segments.length - 1] ?? "")) {
20
+ segments.pop();
21
+ url.pathname = segments.length > 0 ? `/${segments.join("/")}` : "/";
22
+ url.search = "";
23
+ url.hash = "";
24
+ normalized = url.toString().replace(/\/+$/u, "");
25
+ }
26
+ } catch {}
27
+ return normalized;
28
+ }
29
+ function hasTelegramBotEndpointApiRoot(apiRoot) {
30
+ if (typeof apiRoot !== "string" || !apiRoot.trim()) return false;
31
+ try {
32
+ const segments = new URL(apiRoot.trim()).pathname.split("/").filter(Boolean);
33
+ const last = segments[segments.length - 1];
34
+ return Boolean(last && isTelegramBotEndpointSegment(last));
35
+ } catch {
36
+ return false;
37
+ }
38
+ }
39
+ //#endregion
40
+ export { DEFAULT_TELEGRAM_API_ROOT, hasTelegramBotEndpointApiRoot, normalizeTelegramApiRoot };
41
+
42
+ //# sourceMappingURL=api-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-root.js","names":[],"sources":["../../../../extensions/telegram/src/api-root.ts"],"sourcesContent":["export const DEFAULT_TELEGRAM_API_ROOT = 'https://api.telegram.org';\n\nconst TELEGRAM_BOT_ENDPOINT_SEGMENT_RE = /^bot\\d+:[^/]+$/u;\n\nfunction isTelegramBotEndpointSegment(segment: string): boolean {\n try {\n return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(decodeURIComponent(segment));\n } catch {\n return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(segment);\n }\n}\n\n/** Strip trailing `/bot<token>` from a misconfigured apiRoot URL. */\nexport function normalizeTelegramApiRoot(apiRoot?: string): string {\n const trimmed = apiRoot?.trim();\n if (!trimmed) {\n return DEFAULT_TELEGRAM_API_ROOT;\n }\n\n let normalized = trimmed.replace(/\\/+$/u, '');\n try {\n const url = new URL(normalized);\n const segments = url.pathname.split('/').filter(Boolean);\n if (segments.length > 0 && isTelegramBotEndpointSegment(segments[segments.length - 1] ?? '')) {\n segments.pop();\n url.pathname = segments.length > 0 ? `/${segments.join('/')}` : '/';\n url.search = '';\n url.hash = '';\n normalized = url.toString().replace(/\\/+$/u, '');\n }\n } catch {\n // Invalid URLs are caught at config validation; keep trimmed value for runtime callers.\n }\n return normalized;\n}\n\nexport function hasTelegramBotEndpointApiRoot(apiRoot: unknown): boolean {\n if (typeof apiRoot !== 'string' || !apiRoot.trim()) {\n return false;\n }\n try {\n const url = new URL(apiRoot.trim());\n const segments = url.pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1];\n return Boolean(last && isTelegramBotEndpointSegment(last));\n } catch {\n return false;\n }\n}\n"],"mappings":";AAAA,MAAa,4BAA4B;AAEzC,MAAM,mCAAmC;AAEzC,SAAS,6BAA6B,SAA0B;AAC9D,KAAI;AACF,SAAO,iCAAiC,KAAK,mBAAmB,QAAQ,CAAC;SACnE;AACN,SAAO,iCAAiC,KAAK,QAAQ;;;;AAKzD,SAAgB,yBAAyB,SAA0B;CACjE,MAAM,UAAU,SAAS,MAAM;AAC/B,KAAI,CAAC,QACH,QAAO;CAGT,IAAI,aAAa,QAAQ,QAAQ,SAAS,GAAG;AAC7C,KAAI;EACF,MAAM,MAAM,IAAI,IAAI,WAAW;EAC/B,MAAM,WAAW,IAAI,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ;AACxD,MAAI,SAAS,SAAS,KAAK,6BAA6B,SAAS,SAAS,SAAS,MAAM,GAAG,EAAE;AAC5F,YAAS,KAAK;AACd,OAAI,WAAW,SAAS,SAAS,IAAI,IAAI,SAAS,KAAK,IAAI,KAAK;AAChE,OAAI,SAAS;AACb,OAAI,OAAO;AACX,gBAAa,IAAI,UAAU,CAAC,QAAQ,SAAS,GAAG;;SAE5C;AAGR,QAAO;;AAGT,SAAgB,8BAA8B,SAA2B;AACvE,KAAI,OAAO,YAAY,YAAY,CAAC,QAAQ,MAAM,CAChD,QAAO;AAET,KAAI;EAEF,MAAM,WAAW,IADD,IAAI,QAAQ,MAAM,CACd,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ;EACxD,MAAM,OAAO,SAAS,SAAS,SAAS;AACxC,SAAO,QAAQ,QAAQ,6BAA6B,KAAK,CAAC;SACpD;AACN,SAAO"}
@@ -0,0 +1,9 @@
1
+ import type { Bot } from 'grammy';
2
+ import type { TelegramPendingApproval } from './approval-store.js';
3
+ import type { Config } from '@xopcai/xopc/config/index.js';
4
+ export declare function deliverTelegramExecApprovalPrompt(params: {
5
+ bot: Bot;
6
+ cfg: Config;
7
+ accountId: string;
8
+ approval: TelegramPendingApproval;
9
+ }): Promise<void>;
@@ -0,0 +1,36 @@
1
+ import { createLogger } from "../../../src/utils/logger/index.js";
2
+ import { init_logger } from "../../../src/utils/logger.js";
3
+ import { resolveTelegramExecApprovers } from "./exec-approvals.js";
4
+ import { InlineKeyboard } from "grammy";
5
+ //#region extensions/telegram/src/approval-delivery.ts
6
+ init_logger();
7
+ const log = createLogger("TelegramApprovalDelivery");
8
+ async function deliverTelegramExecApprovalPrompt(params) {
9
+ const approvers = resolveTelegramExecApprovers(params.cfg, params.accountId);
10
+ if (approvers.length === 0) {
11
+ log.warn({ accountId: params.accountId }, "No exec approvers configured");
12
+ return;
13
+ }
14
+ const keyboard = new InlineKeyboard().text("✅ Approve", `approval:approve:${params.approval.id}`).text("❌ Deny", `approval:deny:${params.approval.id}`);
15
+ const text = [
16
+ "⚠️ Exec approval required",
17
+ "",
18
+ `Tool: ${params.approval.toolName}`,
19
+ params.approval.summary,
20
+ "",
21
+ `ID: ${params.approval.id}`
22
+ ].join("\n");
23
+ for (const approver of approvers) try {
24
+ await params.bot.api.sendMessage(approver, text, { reply_markup: keyboard });
25
+ } catch (err) {
26
+ log.warn({
27
+ err,
28
+ approver,
29
+ approvalId: params.approval.id
30
+ }, "Failed to send approval prompt");
31
+ }
32
+ }
33
+ //#endregion
34
+ export { deliverTelegramExecApprovalPrompt };
35
+
36
+ //# sourceMappingURL=approval-delivery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-delivery.js","names":[],"sources":["../../../../extensions/telegram/src/approval-delivery.ts"],"sourcesContent":["import type { Bot } from 'grammy';\nimport { InlineKeyboard } from 'grammy';\nimport { createLogger } from '@xopcai/xopc/utils/logger.js';\nimport type { TelegramPendingApproval } from './approval-store.js';\nimport { resolveTelegramExecApprovers } from './exec-approvals.js';\nimport type { Config } from '@xopcai/xopc/config/index.js';\n\nconst log = createLogger('TelegramApprovalDelivery');\n\nexport async function deliverTelegramExecApprovalPrompt(params: {\n bot: Bot;\n cfg: Config;\n accountId: string;\n approval: TelegramPendingApproval;\n}): Promise<void> {\n const approvers = resolveTelegramExecApprovers(params.cfg, params.accountId);\n if (approvers.length === 0) {\n log.warn({ accountId: params.accountId }, 'No exec approvers configured');\n return;\n }\n\n const keyboard = new InlineKeyboard()\n .text('✅ Approve', `approval:approve:${params.approval.id}`)\n .text('❌ Deny', `approval:deny:${params.approval.id}`);\n\n const text = [\n '⚠️ Exec approval required',\n '',\n `Tool: ${params.approval.toolName}`,\n params.approval.summary,\n '',\n `ID: ${params.approval.id}`,\n ].join('\\n');\n\n for (const approver of approvers) {\n try {\n await params.bot.api.sendMessage(approver, text, { reply_markup: keyboard });\n } catch (err) {\n log.warn({ err, approver, approvalId: params.approval.id }, 'Failed to send approval prompt');\n }\n }\n}\n"],"mappings":";;;;;aAE4D;AAK5D,MAAM,MAAM,aAAa,2BAA2B;AAEpD,eAAsB,kCAAkC,QAKtC;CAChB,MAAM,YAAY,6BAA6B,OAAO,KAAK,OAAO,UAAU;AAC5E,KAAI,UAAU,WAAW,GAAG;AAC1B,MAAI,KAAK,EAAE,WAAW,OAAO,WAAW,EAAE,+BAA+B;AACzE;;CAGF,MAAM,WAAW,IAAI,gBAAgB,CAClC,KAAK,aAAa,oBAAoB,OAAO,SAAS,KAAK,CAC3D,KAAK,UAAU,iBAAiB,OAAO,SAAS,KAAK;CAExD,MAAM,OAAO;EACX;EACA;EACA,SAAS,OAAO,SAAS;EACzB,OAAO,SAAS;EAChB;EACA,OAAO,OAAO,SAAS;EACxB,CAAC,KAAK,KAAK;AAEZ,MAAK,MAAM,YAAY,UACrB,KAAI;AACF,QAAM,OAAO,IAAI,IAAI,YAAY,UAAU,MAAM,EAAE,cAAc,UAAU,CAAC;UACrE,KAAK;AACZ,MAAI,KAAK;GAAE;GAAK;GAAU,YAAY,OAAO,SAAS;GAAI,EAAE,iCAAiC"}
@@ -0,0 +1,25 @@
1
+ export type TelegramApprovalStatus = 'pending' | 'approved' | 'denied' | 'expired';
2
+ export interface TelegramPendingApproval {
3
+ id: string;
4
+ accountId: string;
5
+ sessionKey: string;
6
+ chatId: string;
7
+ toolName: string;
8
+ summary: string;
9
+ createdAtMs: number;
10
+ expiresAtMs: number;
11
+ status: TelegramApprovalStatus;
12
+ resolve?: (approved: boolean) => void;
13
+ }
14
+ export declare function createTelegramPendingApproval(params: {
15
+ accountId: string;
16
+ sessionKey: string;
17
+ chatId: string;
18
+ toolName: string;
19
+ summary: string;
20
+ ttlMs?: number;
21
+ }): TelegramPendingApproval;
22
+ export declare function waitForTelegramApproval(id: string, timeoutMs?: number): Promise<boolean>;
23
+ export declare function resolveTelegramApproval(id: string, approved: boolean): boolean;
24
+ export declare function getTelegramPendingApproval(id: string): TelegramPendingApproval | undefined;
25
+ export declare function listTelegramPendingApprovals(): TelegramPendingApproval[];
@@ -0,0 +1,61 @@
1
+ import { randomUUID } from "node:crypto";
2
+ //#region extensions/telegram/src/approval-store.ts
3
+ const DEFAULT_TTL_MS = 300 * 1e3;
4
+ const pending = /* @__PURE__ */ new Map();
5
+ function createTelegramPendingApproval(params) {
6
+ const id = randomUUID().slice(0, 8);
7
+ const now = Date.now();
8
+ const entry = {
9
+ id,
10
+ accountId: params.accountId,
11
+ sessionKey: params.sessionKey,
12
+ chatId: params.chatId,
13
+ toolName: params.toolName,
14
+ summary: params.summary,
15
+ createdAtMs: now,
16
+ expiresAtMs: now + (params.ttlMs ?? DEFAULT_TTL_MS),
17
+ status: "pending"
18
+ };
19
+ pending.set(id, entry);
20
+ return entry;
21
+ }
22
+ function waitForTelegramApproval(id, timeoutMs = DEFAULT_TTL_MS) {
23
+ const entry = pending.get(id);
24
+ if (!entry || entry.status !== "pending") return Promise.resolve(false);
25
+ return new Promise((resolve) => {
26
+ const timer = setTimeout(() => {
27
+ if (entry.status === "pending") {
28
+ entry.status = "expired";
29
+ pending.delete(id);
30
+ }
31
+ resolve(false);
32
+ }, timeoutMs);
33
+ entry.resolve = (approved) => {
34
+ clearTimeout(timer);
35
+ resolve(approved);
36
+ };
37
+ });
38
+ }
39
+ function resolveTelegramApproval(id, approved) {
40
+ const entry = pending.get(id);
41
+ if (!entry || entry.status !== "pending") return false;
42
+ entry.status = approved ? "approved" : "denied";
43
+ entry.resolve?.(approved);
44
+ pending.delete(id);
45
+ return true;
46
+ }
47
+ function getTelegramPendingApproval(id) {
48
+ return pending.get(id);
49
+ }
50
+ function listTelegramPendingApprovals() {
51
+ const now = Date.now();
52
+ for (const [id, entry] of pending) if (entry.status === "pending" && entry.expiresAtMs <= now) {
53
+ entry.status = "expired";
54
+ pending.delete(id);
55
+ }
56
+ return [...pending.values()].filter((e) => e.status === "pending");
57
+ }
58
+ //#endregion
59
+ export { createTelegramPendingApproval, getTelegramPendingApproval, listTelegramPendingApprovals, resolveTelegramApproval, waitForTelegramApproval };
60
+
61
+ //# sourceMappingURL=approval-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-store.js","names":[],"sources":["../../../../extensions/telegram/src/approval-store.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nexport type TelegramApprovalStatus = 'pending' | 'approved' | 'denied' | 'expired';\n\nexport interface TelegramPendingApproval {\n id: string;\n accountId: string;\n sessionKey: string;\n chatId: string;\n toolName: string;\n summary: string;\n createdAtMs: number;\n expiresAtMs: number;\n status: TelegramApprovalStatus;\n resolve?: (approved: boolean) => void;\n}\n\nconst DEFAULT_TTL_MS = 5 * 60 * 1000;\nconst pending = new Map<string, TelegramPendingApproval>();\n\nexport function createTelegramPendingApproval(params: {\n accountId: string;\n sessionKey: string;\n chatId: string;\n toolName: string;\n summary: string;\n ttlMs?: number;\n}): TelegramPendingApproval {\n const id = randomUUID().slice(0, 8);\n const now = Date.now();\n const entry: TelegramPendingApproval = {\n id,\n accountId: params.accountId,\n sessionKey: params.sessionKey,\n chatId: params.chatId,\n toolName: params.toolName,\n summary: params.summary,\n createdAtMs: now,\n expiresAtMs: now + (params.ttlMs ?? DEFAULT_TTL_MS),\n status: 'pending',\n };\n pending.set(id, entry);\n return entry;\n}\n\nexport function waitForTelegramApproval(id: string, timeoutMs = DEFAULT_TTL_MS): Promise<boolean> {\n const entry = pending.get(id);\n if (!entry || entry.status !== 'pending') {\n return Promise.resolve(false);\n }\n return new Promise((resolve) => {\n const timer = setTimeout(() => {\n if (entry.status === 'pending') {\n entry.status = 'expired';\n pending.delete(id);\n }\n resolve(false);\n }, timeoutMs);\n entry.resolve = (approved) => {\n clearTimeout(timer);\n resolve(approved);\n };\n });\n}\n\nexport function resolveTelegramApproval(id: string, approved: boolean): boolean {\n const entry = pending.get(id);\n if (!entry || entry.status !== 'pending') {\n return false;\n }\n entry.status = approved ? 'approved' : 'denied';\n entry.resolve?.(approved);\n pending.delete(id);\n return true;\n}\n\nexport function getTelegramPendingApproval(id: string): TelegramPendingApproval | undefined {\n return pending.get(id);\n}\n\nexport function listTelegramPendingApprovals(): TelegramPendingApproval[] {\n const now = Date.now();\n for (const [id, entry] of pending) {\n if (entry.status === 'pending' && entry.expiresAtMs <= now) {\n entry.status = 'expired';\n pending.delete(id);\n }\n }\n return [...pending.values()].filter((e) => e.status === 'pending');\n}\n"],"mappings":";;AAiBA,MAAM,iBAAiB,MAAS;AAChC,MAAM,0BAAU,IAAI,KAAsC;AAE1D,SAAgB,8BAA8B,QAOlB;CAC1B,MAAM,KAAK,YAAY,CAAC,MAAM,GAAG,EAAE;CACnC,MAAM,MAAM,KAAK,KAAK;CACtB,MAAM,QAAiC;EACrC;EACA,WAAW,OAAO;EAClB,YAAY,OAAO;EACnB,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,SAAS,OAAO;EAChB,aAAa;EACb,aAAa,OAAO,OAAO,SAAS;EACpC,QAAQ;EACT;AACD,SAAQ,IAAI,IAAI,MAAM;AACtB,QAAO;;AAGT,SAAgB,wBAAwB,IAAY,YAAY,gBAAkC;CAChG,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAC7B,KAAI,CAAC,SAAS,MAAM,WAAW,UAC7B,QAAO,QAAQ,QAAQ,MAAM;AAE/B,QAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,QAAQ,iBAAiB;AAC7B,OAAI,MAAM,WAAW,WAAW;AAC9B,UAAM,SAAS;AACf,YAAQ,OAAO,GAAG;;AAEpB,WAAQ,MAAM;KACb,UAAU;AACb,QAAM,WAAW,aAAa;AAC5B,gBAAa,MAAM;AACnB,WAAQ,SAAS;;GAEnB;;AAGJ,SAAgB,wBAAwB,IAAY,UAA4B;CAC9E,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAC7B,KAAI,CAAC,SAAS,MAAM,WAAW,UAC7B,QAAO;AAET,OAAM,SAAS,WAAW,aAAa;AACvC,OAAM,UAAU,SAAS;AACzB,SAAQ,OAAO,GAAG;AAClB,QAAO;;AAGT,SAAgB,2BAA2B,IAAiD;AAC1F,QAAO,QAAQ,IAAI,GAAG;;AAGxB,SAAgB,+BAA0D;CACxE,MAAM,MAAM,KAAK,KAAK;AACtB,MAAK,MAAM,CAAC,IAAI,UAAU,QACxB,KAAI,MAAM,WAAW,aAAa,MAAM,eAAe,KAAK;AAC1D,QAAM,SAAS;AACf,UAAQ,OAAO,GAAG;;AAGtB,QAAO,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,QAAQ,MAAM,EAAE,WAAW,UAAU"}
@@ -1,27 +1,71 @@
1
1
  import { z } from 'zod';
2
+ export declare const TelegramStreamingBlockCoalesceSchema: z.ZodObject<{
3
+ minChars: z.ZodDefault<z.ZodNumber>;
4
+ idleMs: z.ZodDefault<z.ZodNumber>;
5
+ }, z.core.$strict>;
6
+ export declare const TelegramStreamingPreviewSchema: z.ZodObject<{
7
+ toolProgress: z.ZodDefault<z.ZodBoolean>;
8
+ }, z.core.$strict>;
9
+ export declare const TelegramStreamingConfigSchema: z.ZodObject<{
10
+ mode: z.ZodDefault<z.ZodEnum<{
11
+ off: "off";
12
+ partial: "partial";
13
+ block: "block";
14
+ }>>;
15
+ preview: z.ZodOptional<z.ZodObject<{
16
+ toolProgress: z.ZodDefault<z.ZodBoolean>;
17
+ }, z.core.$strict>>;
18
+ block: z.ZodOptional<z.ZodObject<{
19
+ coalesce: z.ZodOptional<z.ZodObject<{
20
+ minChars: z.ZodDefault<z.ZodNumber>;
21
+ idleMs: z.ZodDefault<z.ZodNumber>;
22
+ }, z.core.$strict>>;
23
+ }, z.core.$strict>>;
24
+ }, z.core.$strict>;
2
25
  export declare const TelegramTopicConfigSchema: z.ZodObject<{
3
- topicId: z.ZodString;
26
+ topicId: z.ZodOptional<z.ZodString>;
4
27
  requireMention: z.ZodOptional<z.ZodBoolean>;
5
28
  enabled: z.ZodOptional<z.ZodBoolean>;
6
29
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
7
30
  systemPrompt: z.ZodOptional<z.ZodString>;
8
- }, z.core.$strip>;
31
+ agentId: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strict>;
9
33
  export declare const TelegramGroupConfigSchema: z.ZodObject<{
10
- groupId: z.ZodString;
34
+ groupId: z.ZodOptional<z.ZodString>;
11
35
  requireMention: z.ZodOptional<z.ZodBoolean>;
12
36
  enabled: z.ZodOptional<z.ZodBoolean>;
13
37
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
14
38
  systemPrompt: z.ZodOptional<z.ZodString>;
39
+ agentId: z.ZodOptional<z.ZodString>;
15
40
  topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
16
- topicId: z.ZodString;
41
+ topicId: z.ZodOptional<z.ZodString>;
17
42
  requireMention: z.ZodOptional<z.ZodBoolean>;
18
43
  enabled: z.ZodOptional<z.ZodBoolean>;
19
44
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
20
45
  systemPrompt: z.ZodOptional<z.ZodString>;
21
- }, z.core.$strip>>>;
22
- }, z.core.$strip>;
46
+ agentId: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strict>>>;
48
+ }, z.core.$strict>;
49
+ export declare const TelegramActionsConfigSchema: z.ZodObject<{
50
+ reactions: z.ZodDefault<z.ZodBoolean>;
51
+ sendMessage: z.ZodDefault<z.ZodBoolean>;
52
+ editMessage: z.ZodDefault<z.ZodBoolean>;
53
+ deleteMessage: z.ZodDefault<z.ZodBoolean>;
54
+ poll: z.ZodDefault<z.ZodBoolean>;
55
+ sticker: z.ZodDefault<z.ZodBoolean>;
56
+ createForumTopic: z.ZodDefault<z.ZodBoolean>;
57
+ }, z.core.$strict>;
58
+ export declare const TelegramExecApprovalsConfigSchema: z.ZodObject<{
59
+ enabled: z.ZodDefault<z.ZodBoolean>;
60
+ approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
61
+ }, z.core.$strict>;
62
+ export declare const TelegramThreadBindingsConfigSchema: z.ZodObject<{
63
+ enabled: z.ZodDefault<z.ZodBoolean>;
64
+ idleTimeoutMs: z.ZodOptional<z.ZodNumber>;
65
+ maxAgeMs: z.ZodOptional<z.ZodNumber>;
66
+ }, z.core.$strict>;
23
67
  export declare const TelegramAccountConfigSchema: z.ZodObject<{
24
- accountId: z.ZodString;
68
+ accountId: z.ZodOptional<z.ZodString>;
25
69
  name: z.ZodOptional<z.ZodString>;
26
70
  enabled: z.ZodDefault<z.ZodBoolean>;
27
71
  botToken: z.ZodDefault<z.ZodString>;
@@ -45,37 +89,81 @@ export declare const TelegramAccountConfigSchema: z.ZodObject<{
45
89
  all: "all";
46
90
  }>>;
47
91
  groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
48
- groupId: z.ZodString;
92
+ groupId: z.ZodOptional<z.ZodString>;
49
93
  requireMention: z.ZodOptional<z.ZodBoolean>;
50
94
  enabled: z.ZodOptional<z.ZodBoolean>;
51
95
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
52
96
  systemPrompt: z.ZodOptional<z.ZodString>;
97
+ agentId: z.ZodOptional<z.ZodString>;
53
98
  topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
54
- topicId: z.ZodString;
99
+ topicId: z.ZodOptional<z.ZodString>;
55
100
  requireMention: z.ZodOptional<z.ZodBoolean>;
56
101
  enabled: z.ZodOptional<z.ZodBoolean>;
57
102
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
58
103
  systemPrompt: z.ZodOptional<z.ZodString>;
59
- }, z.core.$strip>>>;
60
- }, z.core.$strip>>>;
104
+ agentId: z.ZodOptional<z.ZodString>;
105
+ }, z.core.$strict>>>;
106
+ }, z.core.$strict>>>;
61
107
  historyLimit: z.ZodDefault<z.ZodNumber>;
62
108
  textChunkLimit: z.ZodDefault<z.ZodNumber>;
63
- streamMode: z.ZodDefault<z.ZodEnum<{
64
- off: "off";
65
- partial: "partial";
66
- block: "block";
67
- }>>;
109
+ streaming: z.ZodOptional<z.ZodObject<{
110
+ mode: z.ZodDefault<z.ZodEnum<{
111
+ off: "off";
112
+ partial: "partial";
113
+ block: "block";
114
+ }>>;
115
+ preview: z.ZodOptional<z.ZodObject<{
116
+ toolProgress: z.ZodDefault<z.ZodBoolean>;
117
+ }, z.core.$strict>>;
118
+ block: z.ZodOptional<z.ZodObject<{
119
+ coalesce: z.ZodOptional<z.ZodObject<{
120
+ minChars: z.ZodDefault<z.ZodNumber>;
121
+ idleMs: z.ZodDefault<z.ZodNumber>;
122
+ }, z.core.$strict>>;
123
+ }, z.core.$strict>>;
124
+ }, z.core.$strict>>;
68
125
  proxy: z.ZodOptional<z.ZodString>;
69
126
  apiRoot: z.ZodOptional<z.ZodString>;
70
- }, z.core.$strip>;
71
- export declare const TelegramConfigSchema: z.ZodPreprocess<z.ZodObject<{
127
+ pollingStallThresholdMs: z.ZodOptional<z.ZodNumber>;
128
+ reactionLevel: z.ZodDefault<z.ZodEnum<{
129
+ off: "off";
130
+ minimal: "minimal";
131
+ ack: "ack";
132
+ extensive: "extensive";
133
+ }>>;
134
+ reactionNotifications: z.ZodDefault<z.ZodEnum<{
135
+ off: "off";
136
+ all: "all";
137
+ own: "own";
138
+ }>>;
139
+ ackReaction: z.ZodOptional<z.ZodString>;
140
+ actions: z.ZodOptional<z.ZodObject<{
141
+ reactions: z.ZodDefault<z.ZodBoolean>;
142
+ sendMessage: z.ZodDefault<z.ZodBoolean>;
143
+ editMessage: z.ZodDefault<z.ZodBoolean>;
144
+ deleteMessage: z.ZodDefault<z.ZodBoolean>;
145
+ poll: z.ZodDefault<z.ZodBoolean>;
146
+ sticker: z.ZodDefault<z.ZodBoolean>;
147
+ createForumTopic: z.ZodDefault<z.ZodBoolean>;
148
+ }, z.core.$strict>>;
149
+ execApprovals: z.ZodOptional<z.ZodObject<{
150
+ enabled: z.ZodDefault<z.ZodBoolean>;
151
+ approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
152
+ }, z.core.$strict>>;
153
+ threadBindings: z.ZodOptional<z.ZodObject<{
154
+ enabled: z.ZodDefault<z.ZodBoolean>;
155
+ idleTimeoutMs: z.ZodOptional<z.ZodNumber>;
156
+ maxAgeMs: z.ZodOptional<z.ZodNumber>;
157
+ }, z.core.$strict>>;
158
+ }, z.core.$strict>;
159
+ export declare const TelegramConfigSchema: z.ZodObject<{
72
160
  enabled: z.ZodDefault<z.ZodBoolean>;
73
161
  allowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
74
162
  groupAllowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
75
163
  apiRoot: z.ZodOptional<z.ZodString>;
76
164
  debug: z.ZodDefault<z.ZodBoolean>;
77
165
  accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
78
- accountId: z.ZodString;
166
+ accountId: z.ZodOptional<z.ZodString>;
79
167
  name: z.ZodOptional<z.ZodString>;
80
168
  enabled: z.ZodDefault<z.ZodBoolean>;
81
169
  botToken: z.ZodDefault<z.ZodString>;
@@ -99,29 +187,73 @@ export declare const TelegramConfigSchema: z.ZodPreprocess<z.ZodObject<{
99
187
  all: "all";
100
188
  }>>;
101
189
  groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
102
- groupId: z.ZodString;
190
+ groupId: z.ZodOptional<z.ZodString>;
103
191
  requireMention: z.ZodOptional<z.ZodBoolean>;
104
192
  enabled: z.ZodOptional<z.ZodBoolean>;
105
193
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
106
194
  systemPrompt: z.ZodOptional<z.ZodString>;
195
+ agentId: z.ZodOptional<z.ZodString>;
107
196
  topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
108
- topicId: z.ZodString;
197
+ topicId: z.ZodOptional<z.ZodString>;
109
198
  requireMention: z.ZodOptional<z.ZodBoolean>;
110
199
  enabled: z.ZodOptional<z.ZodBoolean>;
111
200
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
112
201
  systemPrompt: z.ZodOptional<z.ZodString>;
113
- }, z.core.$strip>>>;
114
- }, z.core.$strip>>>;
202
+ agentId: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strict>>>;
204
+ }, z.core.$strict>>>;
115
205
  historyLimit: z.ZodDefault<z.ZodNumber>;
116
206
  textChunkLimit: z.ZodDefault<z.ZodNumber>;
117
- streamMode: z.ZodDefault<z.ZodEnum<{
118
- off: "off";
119
- partial: "partial";
120
- block: "block";
121
- }>>;
207
+ streaming: z.ZodOptional<z.ZodObject<{
208
+ mode: z.ZodDefault<z.ZodEnum<{
209
+ off: "off";
210
+ partial: "partial";
211
+ block: "block";
212
+ }>>;
213
+ preview: z.ZodOptional<z.ZodObject<{
214
+ toolProgress: z.ZodDefault<z.ZodBoolean>;
215
+ }, z.core.$strict>>;
216
+ block: z.ZodOptional<z.ZodObject<{
217
+ coalesce: z.ZodOptional<z.ZodObject<{
218
+ minChars: z.ZodDefault<z.ZodNumber>;
219
+ idleMs: z.ZodDefault<z.ZodNumber>;
220
+ }, z.core.$strict>>;
221
+ }, z.core.$strict>>;
222
+ }, z.core.$strict>>;
122
223
  proxy: z.ZodOptional<z.ZodString>;
123
224
  apiRoot: z.ZodOptional<z.ZodString>;
124
- }, z.core.$strip>>>;
225
+ pollingStallThresholdMs: z.ZodOptional<z.ZodNumber>;
226
+ reactionLevel: z.ZodDefault<z.ZodEnum<{
227
+ off: "off";
228
+ minimal: "minimal";
229
+ ack: "ack";
230
+ extensive: "extensive";
231
+ }>>;
232
+ reactionNotifications: z.ZodDefault<z.ZodEnum<{
233
+ off: "off";
234
+ all: "all";
235
+ own: "own";
236
+ }>>;
237
+ ackReaction: z.ZodOptional<z.ZodString>;
238
+ actions: z.ZodOptional<z.ZodObject<{
239
+ reactions: z.ZodDefault<z.ZodBoolean>;
240
+ sendMessage: z.ZodDefault<z.ZodBoolean>;
241
+ editMessage: z.ZodDefault<z.ZodBoolean>;
242
+ deleteMessage: z.ZodDefault<z.ZodBoolean>;
243
+ poll: z.ZodDefault<z.ZodBoolean>;
244
+ sticker: z.ZodDefault<z.ZodBoolean>;
245
+ createForumTopic: z.ZodDefault<z.ZodBoolean>;
246
+ }, z.core.$strict>>;
247
+ execApprovals: z.ZodOptional<z.ZodObject<{
248
+ enabled: z.ZodDefault<z.ZodBoolean>;
249
+ approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
250
+ }, z.core.$strict>>;
251
+ threadBindings: z.ZodOptional<z.ZodObject<{
252
+ enabled: z.ZodDefault<z.ZodBoolean>;
253
+ idleTimeoutMs: z.ZodOptional<z.ZodNumber>;
254
+ maxAgeMs: z.ZodOptional<z.ZodNumber>;
255
+ }, z.core.$strict>>;
256
+ }, z.core.$strict>>>;
125
257
  dmPolicy: z.ZodDefault<z.ZodEnum<{
126
258
  pairing: "pairing";
127
259
  allowlist: "allowlist";
@@ -138,13 +270,31 @@ export declare const TelegramConfigSchema: z.ZodPreprocess<z.ZodObject<{
138
270
  first: "first";
139
271
  all: "all";
140
272
  }>>;
141
- streamMode: z.ZodOptional<z.ZodEnum<{
142
- off: "off";
143
- partial: "partial";
144
- block: "block";
145
- }>>;
273
+ streaming: z.ZodOptional<z.ZodObject<{
274
+ mode: z.ZodDefault<z.ZodEnum<{
275
+ off: "off";
276
+ partial: "partial";
277
+ block: "block";
278
+ }>>;
279
+ preview: z.ZodOptional<z.ZodObject<{
280
+ toolProgress: z.ZodDefault<z.ZodBoolean>;
281
+ }, z.core.$strict>>;
282
+ block: z.ZodOptional<z.ZodObject<{
283
+ coalesce: z.ZodOptional<z.ZodObject<{
284
+ minChars: z.ZodDefault<z.ZodNumber>;
285
+ idleMs: z.ZodDefault<z.ZodNumber>;
286
+ }, z.core.$strict>>;
287
+ }, z.core.$strict>>;
288
+ }, z.core.$strict>>;
146
289
  historyLimit: z.ZodDefault<z.ZodNumber>;
147
290
  textChunkLimit: z.ZodDefault<z.ZodNumber>;
148
291
  proxy: z.ZodOptional<z.ZodString>;
149
- }, z.core.$strip>>;
292
+ }, z.core.$strict>;
150
293
  export type TelegramConfig = z.infer<typeof TelegramConfigSchema>;
294
+ export type TelegramStreamingConfig = z.infer<typeof TelegramStreamingConfigSchema>;
295
+ /** Resolve effective streaming mode for an account. */
296
+ export declare function resolveTelegramStreamingMode(account: {
297
+ streaming?: {
298
+ mode?: 'off' | 'partial' | 'block';
299
+ };
300
+ }): 'off' | 'partial' | 'block';
@@ -1,48 +1,63 @@
1
1
  import { __esmMin } from "../../../_virtual/_rolldown/runtime.js";
2
2
  import { z } from "zod";
3
3
  //#region extensions/telegram/src/config-schema.ts
4
- /** Migrate legacy top-level `botToken` into `accounts.default`; implicit enable when `accounts.default.botToken` is set. */
5
- function preprocessTelegramConfigInput(raw) {
6
- if (raw === null || raw === void 0) return raw;
7
- if (typeof raw !== "object" || Array.isArray(raw)) return raw;
8
- const o = { ...raw };
9
- const legacyToken = typeof o.botToken === "string" ? o.botToken.trim() : "";
10
- if (legacyToken) {
11
- const acc = { ...o.accounts && typeof o.accounts === "object" && !Array.isArray(o.accounts) ? o.accounts : {} };
12
- const rawDef = acc.default;
13
- const def = rawDef && typeof rawDef === "object" && !Array.isArray(rawDef) ? { ...rawDef } : {};
14
- if (!(typeof def.botToken === "string" ? def.botToken.trim() : "")) acc.default = {
15
- ...def,
16
- accountId: "default",
17
- botToken: legacyToken
18
- };
19
- o.accounts = acc;
20
- }
21
- delete o.botToken;
22
- const defaultAcc = o.accounts?.default;
23
- const token = defaultAcc && typeof defaultAcc === "object" && typeof defaultAcc.botToken === "string" ? defaultAcc.botToken : "";
24
- if (o.enabled === void 0 && token.trim().length > 0) o.enabled = true;
25
- return o;
4
+ /** Resolve effective streaming mode for an account. */
5
+ function resolveTelegramStreamingMode(account) {
6
+ return account.streaming?.mode ?? "partial";
26
7
  }
27
- var TelegramTopicConfigSchema, TelegramGroupConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchemaInner, TelegramConfigSchema;
8
+ var TelegramStreamingBlockCoalesceSchema, TelegramStreamingPreviewSchema, TelegramStreamingConfigSchema, TelegramTopicConfigSchema, TelegramGroupConfigSchema, TelegramActionsConfigSchema, TelegramExecApprovalsConfigSchema, TelegramThreadBindingsConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema;
28
9
  var init_config_schema = __esmMin((() => {
10
+ TelegramStreamingBlockCoalesceSchema = z.object({
11
+ minChars: z.number().default(800),
12
+ idleMs: z.number().default(1e3)
13
+ }).strict();
14
+ TelegramStreamingPreviewSchema = z.object({ toolProgress: z.boolean().default(true) }).strict();
15
+ TelegramStreamingConfigSchema = z.object({
16
+ mode: z.enum([
17
+ "off",
18
+ "partial",
19
+ "block"
20
+ ]).default("partial"),
21
+ preview: TelegramStreamingPreviewSchema.optional(),
22
+ block: z.object({ coalesce: TelegramStreamingBlockCoalesceSchema.optional() }).strict().optional()
23
+ }).strict();
29
24
  TelegramTopicConfigSchema = z.object({
30
- topicId: z.string(),
25
+ topicId: z.string().optional(),
31
26
  requireMention: z.boolean().optional(),
32
27
  enabled: z.boolean().optional(),
33
28
  allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
34
- systemPrompt: z.string().optional()
35
- });
29
+ systemPrompt: z.string().optional(),
30
+ agentId: z.string().optional()
31
+ }).strict();
36
32
  TelegramGroupConfigSchema = z.object({
37
- groupId: z.string(),
33
+ groupId: z.string().optional(),
38
34
  requireMention: z.boolean().optional(),
39
35
  enabled: z.boolean().optional(),
40
36
  allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
41
37
  systemPrompt: z.string().optional(),
38
+ agentId: z.string().optional(),
42
39
  topics: z.record(z.string(), TelegramTopicConfigSchema).optional()
43
- });
40
+ }).strict();
41
+ TelegramActionsConfigSchema = z.object({
42
+ reactions: z.boolean().default(true),
43
+ sendMessage: z.boolean().default(true),
44
+ editMessage: z.boolean().default(true),
45
+ deleteMessage: z.boolean().default(false),
46
+ poll: z.boolean().default(false),
47
+ sticker: z.boolean().default(false),
48
+ createForumTopic: z.boolean().default(false)
49
+ }).strict();
50
+ TelegramExecApprovalsConfigSchema = z.object({
51
+ enabled: z.boolean().default(false),
52
+ approvers: z.array(z.union([z.string(), z.number()])).optional()
53
+ }).strict();
54
+ TelegramThreadBindingsConfigSchema = z.object({
55
+ enabled: z.boolean().default(false),
56
+ idleTimeoutMs: z.number().optional(),
57
+ maxAgeMs: z.number().optional()
58
+ }).strict();
44
59
  TelegramAccountConfigSchema = z.object({
45
- accountId: z.string(),
60
+ accountId: z.string().optional(),
46
61
  name: z.string().optional(),
47
62
  enabled: z.boolean().default(true),
48
63
  botToken: z.string().default(""),
@@ -68,15 +83,27 @@ var init_config_schema = __esmMin((() => {
68
83
  groups: z.record(z.string(), TelegramGroupConfigSchema).optional(),
69
84
  historyLimit: z.number().default(50),
70
85
  textChunkLimit: z.number().default(4e3),
71
- streamMode: z.enum([
72
- "off",
73
- "partial",
74
- "block"
75
- ]).default("partial"),
86
+ streaming: TelegramStreamingConfigSchema.optional(),
76
87
  proxy: z.string().optional(),
77
- apiRoot: z.string().optional()
78
- });
79
- TelegramConfigSchemaInner = z.object({
88
+ apiRoot: z.string().optional(),
89
+ pollingStallThresholdMs: z.number().min(3e4).max(6e5).optional(),
90
+ reactionLevel: z.enum([
91
+ "off",
92
+ "ack",
93
+ "minimal",
94
+ "extensive"
95
+ ]).default("ack"),
96
+ reactionNotifications: z.enum([
97
+ "off",
98
+ "own",
99
+ "all"
100
+ ]).default("own"),
101
+ ackReaction: z.string().optional(),
102
+ actions: TelegramActionsConfigSchema.optional(),
103
+ execApprovals: TelegramExecApprovalsConfigSchema.optional(),
104
+ threadBindings: TelegramThreadBindingsConfigSchema.optional()
105
+ }).strict();
106
+ TelegramConfigSchema = z.object({
80
107
  enabled: z.boolean().default(false),
81
108
  allowFrom: z.array(z.union([z.string(), z.number()])).default([]),
82
109
  groupAllowFrom: z.array(z.union([z.string(), z.number()])).default([]),
@@ -99,19 +126,14 @@ var init_config_schema = __esmMin((() => {
99
126
  "first",
100
127
  "all"
101
128
  ]).default("off"),
102
- streamMode: z.enum([
103
- "off",
104
- "partial",
105
- "block"
106
- ]).optional(),
129
+ streaming: TelegramStreamingConfigSchema.optional(),
107
130
  historyLimit: z.number().default(50),
108
131
  textChunkLimit: z.number().default(4e3),
109
132
  proxy: z.string().optional()
110
- });
111
- TelegramConfigSchema = z.preprocess(preprocessTelegramConfigInput, TelegramConfigSchemaInner);
133
+ }).strict();
112
134
  }));
113
135
  //#endregion
114
136
  init_config_schema();
115
- export { TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, init_config_schema };
137
+ export { TelegramAccountConfigSchema, TelegramActionsConfigSchema, TelegramConfigSchema, TelegramExecApprovalsConfigSchema, TelegramGroupConfigSchema, TelegramStreamingBlockCoalesceSchema, TelegramStreamingConfigSchema, TelegramStreamingPreviewSchema, TelegramThreadBindingsConfigSchema, TelegramTopicConfigSchema, init_config_schema, resolveTelegramStreamingMode };
116
138
 
117
139
  //# sourceMappingURL=config-schema.js.map