@0xmaxma/claude-gateway 1.8.13 → 2.0.0

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 (594) hide show
  1. package/README.md +28 -1605
  2. package/config.template.json +7 -1
  3. package/dist/agent/runner.d.ts +394 -0
  4. package/dist/agent/runner.d.ts.map +1 -1
  5. package/dist/agent/runner.js +867 -38
  6. package/dist/agent/runner.js.map +1 -1
  7. package/dist/agent/skill-learning/index.d.ts +6 -4
  8. package/dist/agent/skill-learning/index.d.ts.map +1 -1
  9. package/dist/agent/skill-learning/index.js +3 -3
  10. package/dist/agent/skill-learning/index.js.map +1 -1
  11. package/dist/agent/skill-learning/notifier.d.ts +3 -4
  12. package/dist/agent/skill-learning/notifier.d.ts.map +1 -1
  13. package/dist/agent/skill-learning/notifier.js +15 -13
  14. package/dist/agent/skill-learning/notifier.js.map +1 -1
  15. package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
  16. package/dist/agent/skill-learning/reviewer.js +3 -1
  17. package/dist/agent/skill-learning/reviewer.js.map +1 -1
  18. package/dist/api/connectors-router.d.ts.map +1 -1
  19. package/dist/api/connectors-router.js +110 -4
  20. package/dist/api/connectors-router.js.map +1 -1
  21. package/dist/api/gateway-router.d.ts +1 -0
  22. package/dist/api/gateway-router.d.ts.map +1 -1
  23. package/dist/api/gateway-router.js +13 -1
  24. package/dist/api/gateway-router.js.map +1 -1
  25. package/dist/api/line-webhook-router.d.ts +2 -2
  26. package/dist/api/line-webhook-router.d.ts.map +1 -1
  27. package/dist/api/line-webhook-router.js +264 -230
  28. package/dist/api/line-webhook-router.js.map +1 -1
  29. package/dist/api/router.d.ts.map +1 -1
  30. package/dist/api/router.js +372 -11
  31. package/dist/api/router.js.map +1 -1
  32. package/dist/api/share-router.d.ts.map +1 -1
  33. package/dist/api/share-router.js +29 -10
  34. package/dist/api/share-router.js.map +1 -1
  35. package/dist/api/slack-client.d.ts +2 -0
  36. package/dist/api/slack-client.d.ts.map +1 -1
  37. package/dist/api/slack-client.js +6 -2
  38. package/dist/api/slack-client.js.map +1 -1
  39. package/dist/api/slack-webhook-router.d.ts +3 -0
  40. package/dist/api/slack-webhook-router.d.ts.map +1 -1
  41. package/dist/api/slack-webhook-router.js +226 -131
  42. package/dist/api/slack-webhook-router.js.map +1 -1
  43. package/dist/api/voice-router.d.ts +21 -0
  44. package/dist/api/voice-router.d.ts.map +1 -0
  45. package/dist/api/voice-router.js +372 -0
  46. package/dist/api/voice-router.js.map +1 -0
  47. package/dist/api/voice-settings-router.d.ts +5 -0
  48. package/dist/api/voice-settings-router.d.ts.map +1 -0
  49. package/dist/api/voice-settings-router.js +318 -0
  50. package/dist/api/voice-settings-router.js.map +1 -0
  51. package/dist/api/wechat-access.d.ts +45 -0
  52. package/dist/api/wechat-access.d.ts.map +1 -0
  53. package/dist/api/wechat-access.js +48 -0
  54. package/dist/api/wechat-access.js.map +1 -0
  55. package/dist/apps/agent-container-migration.d.ts +11 -0
  56. package/dist/apps/agent-container-migration.d.ts.map +1 -0
  57. package/dist/apps/agent-container-migration.js +85 -0
  58. package/dist/apps/agent-container-migration.js.map +1 -0
  59. package/dist/apps/installer.d.ts +1 -1
  60. package/dist/apps/installer.d.ts.map +1 -1
  61. package/dist/apps/installer.js +2 -1
  62. package/dist/apps/installer.js.map +1 -1
  63. package/dist/cli/commands/tasks.d.ts +5 -0
  64. package/dist/cli/commands/tasks.d.ts.map +1 -0
  65. package/dist/cli/commands/tasks.js +92 -0
  66. package/dist/cli/commands/tasks.js.map +1 -0
  67. package/dist/cli/http-client.d.ts +2 -0
  68. package/dist/cli/http-client.d.ts.map +1 -1
  69. package/dist/cli/http-client.js +8 -3
  70. package/dist/cli/http-client.js.map +1 -1
  71. package/dist/cli/index.d.ts.map +1 -1
  72. package/dist/cli/index.js +5 -1
  73. package/dist/cli/index.js.map +1 -1
  74. package/dist/config/config-write-lock.d.ts +2 -0
  75. package/dist/config/config-write-lock.d.ts.map +1 -1
  76. package/dist/config/config-write-lock.js +5 -0
  77. package/dist/config/config-write-lock.js.map +1 -1
  78. package/dist/config/loader.d.ts.map +1 -1
  79. package/dist/config/loader.js +87 -2
  80. package/dist/config/loader.js.map +1 -1
  81. package/dist/config/migrator.d.ts.map +1 -1
  82. package/dist/config/migrator.js +12 -1
  83. package/dist/config/migrator.js.map +1 -1
  84. package/dist/config/watcher.d.ts.map +1 -1
  85. package/dist/config/watcher.js +6 -0
  86. package/dist/config/watcher.js.map +1 -1
  87. package/dist/connectors/resolve.d.ts.map +1 -1
  88. package/dist/connectors/resolve.js +3 -1
  89. package/dist/connectors/resolve.js.map +1 -1
  90. package/dist/connectors/types.d.ts +8 -0
  91. package/dist/connectors/types.d.ts.map +1 -1
  92. package/dist/cron/manager.d.ts.map +1 -1
  93. package/dist/cron/manager.js +21 -2
  94. package/dist/cron/manager.js.map +1 -1
  95. package/dist/discord/receiver.d.ts +2 -1
  96. package/dist/discord/receiver.d.ts.map +1 -1
  97. package/dist/discord/receiver.js +5 -1
  98. package/dist/discord/receiver.js.map +1 -1
  99. package/dist/history/db.d.ts +3 -0
  100. package/dist/history/db.d.ts.map +1 -1
  101. package/dist/history/db.js +21 -1
  102. package/dist/history/db.js.map +1 -1
  103. package/dist/history/types.d.ts +12 -1
  104. package/dist/history/types.d.ts.map +1 -1
  105. package/dist/history/types.js +10 -1
  106. package/dist/history/types.js.map +1 -1
  107. package/dist/index.js +48 -9
  108. package/dist/index.js.map +1 -1
  109. package/dist/orchestration/bounded-queue.d.ts +15 -0
  110. package/dist/orchestration/bounded-queue.d.ts.map +1 -0
  111. package/dist/orchestration/bounded-queue.js +58 -0
  112. package/dist/orchestration/bounded-queue.js.map +1 -0
  113. package/dist/orchestration/bridge.d.ts +55 -0
  114. package/dist/orchestration/bridge.d.ts.map +1 -0
  115. package/dist/orchestration/bridge.js +234 -0
  116. package/dist/orchestration/bridge.js.map +1 -0
  117. package/dist/orchestration/browser-routing.d.ts +7 -0
  118. package/dist/orchestration/browser-routing.d.ts.map +1 -0
  119. package/dist/orchestration/browser-routing.js +22 -0
  120. package/dist/orchestration/browser-routing.js.map +1 -0
  121. package/dist/orchestration/capabilities.d.ts +49 -0
  122. package/dist/orchestration/capabilities.d.ts.map +1 -0
  123. package/dist/orchestration/capabilities.js +417 -0
  124. package/dist/orchestration/capabilities.js.map +1 -0
  125. package/dist/orchestration/capacity.d.ts +14 -0
  126. package/dist/orchestration/capacity.d.ts.map +1 -0
  127. package/dist/orchestration/capacity.js +52 -0
  128. package/dist/orchestration/capacity.js.map +1 -0
  129. package/dist/orchestration/channel-activity.d.ts +21 -0
  130. package/dist/orchestration/channel-activity.d.ts.map +1 -0
  131. package/dist/orchestration/channel-activity.js +72 -0
  132. package/dist/orchestration/channel-activity.js.map +1 -0
  133. package/dist/orchestration/channel-controls.d.ts +32 -0
  134. package/dist/orchestration/channel-controls.d.ts.map +1 -0
  135. package/dist/orchestration/channel-controls.js +105 -0
  136. package/dist/orchestration/channel-controls.js.map +1 -0
  137. package/dist/orchestration/channel-input-media.d.ts +11 -0
  138. package/dist/orchestration/channel-input-media.d.ts.map +1 -0
  139. package/dist/orchestration/channel-input-media.js +54 -0
  140. package/dist/orchestration/channel-input-media.js.map +1 -0
  141. package/dist/orchestration/channel-media.d.ts +4 -0
  142. package/dist/orchestration/channel-media.d.ts.map +1 -0
  143. package/dist/orchestration/channel-media.js +70 -0
  144. package/dist/orchestration/channel-media.js.map +1 -0
  145. package/dist/orchestration/channel-speech.d.ts +7 -0
  146. package/dist/orchestration/channel-speech.d.ts.map +1 -0
  147. package/dist/orchestration/channel-speech.js +65 -0
  148. package/dist/orchestration/channel-speech.js.map +1 -0
  149. package/dist/orchestration/cli-skills.d.ts +12 -0
  150. package/dist/orchestration/cli-skills.d.ts.map +1 -0
  151. package/dist/orchestration/cli-skills.js +132 -0
  152. package/dist/orchestration/cli-skills.js.map +1 -0
  153. package/dist/orchestration/config.d.ts +256 -0
  154. package/dist/orchestration/config.d.ts.map +1 -0
  155. package/dist/orchestration/config.js +110 -0
  156. package/dist/orchestration/config.js.map +1 -0
  157. package/dist/orchestration/container.d.ts +21 -0
  158. package/dist/orchestration/container.d.ts.map +1 -0
  159. package/dist/orchestration/container.js +195 -0
  160. package/dist/orchestration/container.js.map +1 -0
  161. package/dist/orchestration/control-delivery.d.ts +5 -0
  162. package/dist/orchestration/control-delivery.d.ts.map +1 -0
  163. package/dist/orchestration/control-delivery.js +50 -0
  164. package/dist/orchestration/control-delivery.js.map +1 -0
  165. package/dist/orchestration/conversation-intake.d.ts +32 -0
  166. package/dist/orchestration/conversation-intake.d.ts.map +1 -0
  167. package/dist/orchestration/conversation-intake.js +92 -0
  168. package/dist/orchestration/conversation-intake.js.map +1 -0
  169. package/dist/orchestration/decisions.d.ts +27 -0
  170. package/dist/orchestration/decisions.d.ts.map +1 -0
  171. package/dist/orchestration/decisions.js +148 -0
  172. package/dist/orchestration/decisions.js.map +1 -0
  173. package/dist/orchestration/delivery.d.ts +30 -0
  174. package/dist/orchestration/delivery.d.ts.map +1 -0
  175. package/dist/orchestration/delivery.js +219 -0
  176. package/dist/orchestration/delivery.js.map +1 -0
  177. package/dist/orchestration/display-stream.d.ts +4 -0
  178. package/dist/orchestration/display-stream.d.ts.map +1 -0
  179. package/dist/orchestration/display-stream.js +77 -0
  180. package/dist/orchestration/display-stream.js.map +1 -0
  181. package/dist/orchestration/events.d.ts +30 -0
  182. package/dist/orchestration/events.d.ts.map +1 -0
  183. package/dist/orchestration/events.js +65 -0
  184. package/dist/orchestration/events.js.map +1 -0
  185. package/dist/orchestration/execution-observation.d.ts +38 -0
  186. package/dist/orchestration/execution-observation.d.ts.map +1 -0
  187. package/dist/orchestration/execution-observation.js +25 -0
  188. package/dist/orchestration/execution-observation.js.map +1 -0
  189. package/dist/orchestration/file-delivery.d.ts +16 -0
  190. package/dist/orchestration/file-delivery.d.ts.map +1 -0
  191. package/dist/orchestration/file-delivery.js +139 -0
  192. package/dist/orchestration/file-delivery.js.map +1 -0
  193. package/dist/orchestration/gateway-config.d.ts +17 -0
  194. package/dist/orchestration/gateway-config.d.ts.map +1 -0
  195. package/dist/orchestration/gateway-config.js +128 -0
  196. package/dist/orchestration/gateway-config.js.map +1 -0
  197. package/dist/orchestration/history.d.ts +13 -0
  198. package/dist/orchestration/history.d.ts.map +1 -0
  199. package/dist/orchestration/history.js +48 -0
  200. package/dist/orchestration/history.js.map +1 -0
  201. package/dist/orchestration/identity.d.ts +6 -0
  202. package/dist/orchestration/identity.d.ts.map +1 -0
  203. package/dist/orchestration/identity.js +13 -0
  204. package/dist/orchestration/identity.js.map +1 -0
  205. package/dist/orchestration/inference-errors.d.ts +3 -0
  206. package/dist/orchestration/inference-errors.d.ts.map +1 -0
  207. package/dist/orchestration/inference-errors.js +16 -0
  208. package/dist/orchestration/inference-errors.js.map +1 -0
  209. package/dist/orchestration/input-images.d.ts +12 -0
  210. package/dist/orchestration/input-images.d.ts.map +1 -0
  211. package/dist/orchestration/input-images.js +66 -0
  212. package/dist/orchestration/input-images.js.map +1 -0
  213. package/dist/orchestration/instance-lock.d.ts +5 -0
  214. package/dist/orchestration/instance-lock.d.ts.map +1 -0
  215. package/dist/orchestration/instance-lock.js +33 -0
  216. package/dist/orchestration/instance-lock.js.map +1 -0
  217. package/dist/orchestration/line-loading.d.ts +21 -0
  218. package/dist/orchestration/line-loading.d.ts.map +1 -0
  219. package/dist/orchestration/line-loading.js +89 -0
  220. package/dist/orchestration/line-loading.js.map +1 -0
  221. package/dist/orchestration/media.d.ts +3 -0
  222. package/dist/orchestration/media.d.ts.map +1 -0
  223. package/dist/orchestration/media.js +46 -0
  224. package/dist/orchestration/media.js.map +1 -0
  225. package/dist/orchestration/migrations/schema.d.ts +3 -0
  226. package/dist/orchestration/migrations/schema.d.ts.map +1 -0
  227. package/dist/orchestration/migrations/schema.js +80 -0
  228. package/dist/orchestration/migrations/schema.js.map +1 -0
  229. package/dist/orchestration/notification-mailbox.d.ts +5 -0
  230. package/dist/orchestration/notification-mailbox.d.ts.map +1 -0
  231. package/dist/orchestration/notification-mailbox.js +29 -0
  232. package/dist/orchestration/notification-mailbox.js.map +1 -0
  233. package/dist/orchestration/process-activity.d.ts +23 -0
  234. package/dist/orchestration/process-activity.d.ts.map +1 -0
  235. package/dist/orchestration/process-activity.js +95 -0
  236. package/dist/orchestration/process-activity.js.map +1 -0
  237. package/dist/orchestration/process-supervisor.d.ts +15 -0
  238. package/dist/orchestration/process-supervisor.d.ts.map +1 -0
  239. package/dist/orchestration/process-supervisor.js +92 -0
  240. package/dist/orchestration/process-supervisor.js.map +1 -0
  241. package/dist/orchestration/process-turn.d.ts +35 -0
  242. package/dist/orchestration/process-turn.d.ts.map +1 -0
  243. package/dist/orchestration/process-turn.js +246 -0
  244. package/dist/orchestration/process-turn.js.map +1 -0
  245. package/dist/orchestration/progress-review.d.ts +28 -0
  246. package/dist/orchestration/progress-review.d.ts.map +1 -0
  247. package/dist/orchestration/progress-review.js +48 -0
  248. package/dist/orchestration/progress-review.js.map +1 -0
  249. package/dist/orchestration/recovery.d.ts +8 -0
  250. package/dist/orchestration/recovery.d.ts.map +1 -0
  251. package/dist/orchestration/recovery.js +35 -0
  252. package/dist/orchestration/recovery.js.map +1 -0
  253. package/dist/orchestration/reply-context.d.ts +7 -0
  254. package/dist/orchestration/reply-context.d.ts.map +1 -0
  255. package/dist/orchestration/reply-context.js +54 -0
  256. package/dist/orchestration/reply-context.js.map +1 -0
  257. package/dist/orchestration/runtime.d.ts +232 -0
  258. package/dist/orchestration/runtime.d.ts.map +1 -0
  259. package/dist/orchestration/runtime.js +962 -0
  260. package/dist/orchestration/runtime.js.map +1 -0
  261. package/dist/orchestration/skills.d.ts +17 -0
  262. package/dist/orchestration/skills.d.ts.map +1 -0
  263. package/dist/orchestration/skills.js +32 -0
  264. package/dist/orchestration/skills.js.map +1 -0
  265. package/dist/orchestration/source-policy.d.ts +6 -0
  266. package/dist/orchestration/source-policy.d.ts.map +1 -0
  267. package/dist/orchestration/source-policy.js +16 -0
  268. package/dist/orchestration/source-policy.js.map +1 -0
  269. package/dist/orchestration/speech.d.ts +24 -0
  270. package/dist/orchestration/speech.d.ts.map +1 -0
  271. package/dist/orchestration/speech.js +61 -0
  272. package/dist/orchestration/speech.js.map +1 -0
  273. package/dist/orchestration/stop-controls.d.ts +30 -0
  274. package/dist/orchestration/stop-controls.d.ts.map +1 -0
  275. package/dist/orchestration/stop-controls.js +79 -0
  276. package/dist/orchestration/stop-controls.js.map +1 -0
  277. package/dist/orchestration/store.d.ts +86 -0
  278. package/dist/orchestration/store.d.ts.map +1 -0
  279. package/dist/orchestration/store.js +275 -0
  280. package/dist/orchestration/store.js.map +1 -0
  281. package/dist/orchestration/task-controls.d.ts +130 -0
  282. package/dist/orchestration/task-controls.d.ts.map +1 -0
  283. package/dist/orchestration/task-controls.js +55 -0
  284. package/dist/orchestration/task-controls.js.map +1 -0
  285. package/dist/orchestration/task-files.d.ts +29 -0
  286. package/dist/orchestration/task-files.d.ts.map +1 -0
  287. package/dist/orchestration/task-files.js +200 -0
  288. package/dist/orchestration/task-files.js.map +1 -0
  289. package/dist/orchestration/task-report.d.ts +7 -0
  290. package/dist/orchestration/task-report.d.ts.map +1 -0
  291. package/dist/orchestration/task-report.js +33 -0
  292. package/dist/orchestration/task-report.js.map +1 -0
  293. package/dist/orchestration/tasks/checkpoint-hook.d.ts +19 -0
  294. package/dist/orchestration/tasks/checkpoint-hook.d.ts.map +1 -0
  295. package/dist/orchestration/tasks/checkpoint-hook.js +49 -0
  296. package/dist/orchestration/tasks/checkpoint-hook.js.map +1 -0
  297. package/dist/orchestration/tasks/cleanup.d.ts +18 -0
  298. package/dist/orchestration/tasks/cleanup.d.ts.map +1 -0
  299. package/dist/orchestration/tasks/cleanup.js +113 -0
  300. package/dist/orchestration/tasks/cleanup.js.map +1 -0
  301. package/dist/orchestration/tasks/driver.d.ts +23 -0
  302. package/dist/orchestration/tasks/driver.d.ts.map +1 -0
  303. package/dist/orchestration/tasks/driver.js +209 -0
  304. package/dist/orchestration/tasks/driver.js.map +1 -0
  305. package/dist/orchestration/tasks/failure.d.ts +5 -0
  306. package/dist/orchestration/tasks/failure.d.ts.map +1 -0
  307. package/dist/orchestration/tasks/failure.js +17 -0
  308. package/dist/orchestration/tasks/failure.js.map +1 -0
  309. package/dist/orchestration/tasks/pool.d.ts +18 -0
  310. package/dist/orchestration/tasks/pool.d.ts.map +1 -0
  311. package/dist/orchestration/tasks/pool.js +73 -0
  312. package/dist/orchestration/tasks/pool.js.map +1 -0
  313. package/dist/orchestration/tasks/scheduler.d.ts +38 -0
  314. package/dist/orchestration/tasks/scheduler.d.ts.map +1 -0
  315. package/dist/orchestration/tasks/scheduler.js +160 -0
  316. package/dist/orchestration/tasks/scheduler.js.map +1 -0
  317. package/dist/orchestration/tasks/service.d.ts +109 -0
  318. package/dist/orchestration/tasks/service.d.ts.map +1 -0
  319. package/dist/orchestration/tasks/service.js +697 -0
  320. package/dist/orchestration/tasks/service.js.map +1 -0
  321. package/dist/orchestration/tasks/shared-workspace.d.ts +25 -0
  322. package/dist/orchestration/tasks/shared-workspace.d.ts.map +1 -0
  323. package/dist/orchestration/tasks/shared-workspace.js +162 -0
  324. package/dist/orchestration/tasks/shared-workspace.js.map +1 -0
  325. package/dist/orchestration/tasks/task-directive.d.ts +6 -0
  326. package/dist/orchestration/tasks/task-directive.d.ts.map +1 -0
  327. package/dist/orchestration/tasks/task-directive.js +41 -0
  328. package/dist/orchestration/tasks/task-directive.js.map +1 -0
  329. package/dist/orchestration/tasks/timing.d.ts +15 -0
  330. package/dist/orchestration/tasks/timing.d.ts.map +1 -0
  331. package/dist/orchestration/tasks/timing.js +48 -0
  332. package/dist/orchestration/tasks/timing.js.map +1 -0
  333. package/dist/orchestration/tasks/tool-repetition.d.ts +3 -0
  334. package/dist/orchestration/tasks/tool-repetition.d.ts.map +1 -0
  335. package/dist/orchestration/tasks/tool-repetition.js +30 -0
  336. package/dist/orchestration/tasks/tool-repetition.js.map +1 -0
  337. package/dist/orchestration/tasks/workspace.d.ts +24 -0
  338. package/dist/orchestration/tasks/workspace.d.ts.map +1 -0
  339. package/dist/orchestration/tasks/workspace.js +147 -0
  340. package/dist/orchestration/tasks/workspace.js.map +1 -0
  341. package/dist/orchestration/telegram-speech.d.ts +17 -0
  342. package/dist/orchestration/telegram-speech.d.ts.map +1 -0
  343. package/dist/orchestration/telegram-speech.js +55 -0
  344. package/dist/orchestration/telegram-speech.js.map +1 -0
  345. package/dist/orchestration/telegram-tool-status.d.ts +23 -0
  346. package/dist/orchestration/telegram-tool-status.d.ts.map +1 -0
  347. package/dist/orchestration/telegram-tool-status.js +207 -0
  348. package/dist/orchestration/telegram-tool-status.js.map +1 -0
  349. package/dist/orchestration/telegram-voices.d.ts +42 -0
  350. package/dist/orchestration/telegram-voices.d.ts.map +1 -0
  351. package/dist/orchestration/telegram-voices.js +70 -0
  352. package/dist/orchestration/telegram-voices.js.map +1 -0
  353. package/dist/orchestration/tool-activity.d.ts +10 -0
  354. package/dist/orchestration/tool-activity.d.ts.map +1 -0
  355. package/dist/orchestration/tool-activity.js +38 -0
  356. package/dist/orchestration/tool-activity.js.map +1 -0
  357. package/dist/orchestration/types.d.ts +177 -0
  358. package/dist/orchestration/types.d.ts.map +1 -0
  359. package/dist/orchestration/types.js +13 -0
  360. package/dist/orchestration/types.js.map +1 -0
  361. package/dist/orchestration/voice-reply-policy.d.ts +8 -0
  362. package/dist/orchestration/voice-reply-policy.d.ts.map +1 -0
  363. package/dist/orchestration/voice-reply-policy.js +46 -0
  364. package/dist/orchestration/voice-reply-policy.js.map +1 -0
  365. package/dist/orchestration/worker-shares.d.ts +8 -0
  366. package/dist/orchestration/worker-shares.d.ts.map +1 -0
  367. package/dist/orchestration/worker-shares.js +59 -0
  368. package/dist/orchestration/worker-shares.js.map +1 -0
  369. package/dist/orchestration/workflow.d.ts +121 -0
  370. package/dist/orchestration/workflow.d.ts.map +1 -0
  371. package/dist/orchestration/workflow.js +69 -0
  372. package/dist/orchestration/workflow.js.map +1 -0
  373. package/dist/session/input-image.d.ts +10 -0
  374. package/dist/session/input-image.d.ts.map +1 -0
  375. package/dist/session/input-image.js +3 -0
  376. package/dist/session/input-image.js.map +1 -0
  377. package/dist/session/process.d.ts +15 -3
  378. package/dist/session/process.d.ts.map +1 -1
  379. package/dist/session/process.js +144 -35
  380. package/dist/session/process.js.map +1 -1
  381. package/dist/session/runtime-profile.d.ts +36 -0
  382. package/dist/session/runtime-profile.d.ts.map +1 -0
  383. package/dist/session/runtime-profile.js +63 -0
  384. package/dist/session/runtime-profile.js.map +1 -0
  385. package/dist/session/store.d.ts.map +1 -1
  386. package/dist/session/store.js +23 -1
  387. package/dist/session/store.js.map +1 -1
  388. package/dist/share/share-store.d.ts +3 -1
  389. package/dist/share/share-store.d.ts.map +1 -1
  390. package/dist/share/share-store.js +13 -2
  391. package/dist/share/share-store.js.map +1 -1
  392. package/dist/shared/line-request-order.d.ts +2 -0
  393. package/dist/shared/line-request-order.d.ts.map +1 -0
  394. package/dist/shared/line-request-order.js +16 -0
  395. package/dist/shared/line-request-order.js.map +1 -0
  396. package/dist/shared/task-elapsed.d.ts +3 -0
  397. package/dist/shared/task-elapsed.d.ts.map +1 -0
  398. package/dist/shared/task-elapsed.js +12 -0
  399. package/dist/shared/task-elapsed.js.map +1 -0
  400. package/dist/shared/task-updated-time.d.ts +3 -0
  401. package/dist/shared/task-updated-time.d.ts.map +1 -0
  402. package/dist/shared/task-updated-time.js +15 -0
  403. package/dist/shared/task-updated-time.js.map +1 -0
  404. package/dist/skills/loader.d.ts +2 -0
  405. package/dist/skills/loader.d.ts.map +1 -1
  406. package/dist/skills/loader.js.map +1 -1
  407. package/dist/telegram/chunks.d.ts +19 -0
  408. package/dist/telegram/chunks.d.ts.map +1 -0
  409. package/dist/telegram/chunks.js +129 -0
  410. package/dist/telegram/chunks.js.map +1 -0
  411. package/dist/telegram/markdown.d.ts.map +1 -1
  412. package/dist/telegram/markdown.js +18 -3
  413. package/dist/telegram/markdown.js.map +1 -1
  414. package/dist/telegram/receiver.d.ts +2 -1
  415. package/dist/telegram/receiver.d.ts.map +1 -1
  416. package/dist/telegram/receiver.js +6 -1
  417. package/dist/telegram/receiver.js.map +1 -1
  418. package/dist/types.d.ts +54 -0
  419. package/dist/types.d.ts.map +1 -1
  420. package/dist/ui/web-ui.d.ts.map +1 -1
  421. package/dist/ui/web-ui.js +31 -5
  422. package/dist/ui/web-ui.js.map +1 -1
  423. package/dist/voice/diagnostics.d.ts +29 -0
  424. package/dist/voice/diagnostics.d.ts.map +1 -0
  425. package/dist/voice/diagnostics.js +37 -0
  426. package/dist/voice/diagnostics.js.map +1 -0
  427. package/dist/voice/errors.d.ts +19 -0
  428. package/dist/voice/errors.d.ts.map +1 -0
  429. package/dist/voice/errors.js +133 -0
  430. package/dist/voice/errors.js.map +1 -0
  431. package/dist/voice/line-audio.d.ts +4 -0
  432. package/dist/voice/line-audio.d.ts.map +1 -0
  433. package/dist/voice/line-audio.js +27 -0
  434. package/dist/voice/line-audio.js.map +1 -0
  435. package/dist/voice/managed-quota.d.ts +5 -0
  436. package/dist/voice/managed-quota.d.ts.map +1 -0
  437. package/dist/voice/managed-quota.js +35 -0
  438. package/dist/voice/managed-quota.js.map +1 -0
  439. package/dist/voice/mp3.d.ts +3 -0
  440. package/dist/voice/mp3.d.ts.map +1 -0
  441. package/dist/voice/mp3.js +30 -0
  442. package/dist/voice/mp3.js.map +1 -0
  443. package/dist/voice/notes.d.ts +9 -0
  444. package/dist/voice/notes.d.ts.map +1 -0
  445. package/dist/voice/notes.js +68 -0
  446. package/dist/voice/notes.js.map +1 -0
  447. package/dist/voice/playback.d.ts +22 -0
  448. package/dist/voice/playback.d.ts.map +1 -0
  449. package/dist/voice/playback.js +52 -0
  450. package/dist/voice/playback.js.map +1 -0
  451. package/dist/voice/preview.d.ts +6 -0
  452. package/dist/voice/preview.d.ts.map +1 -0
  453. package/dist/voice/preview.js +44 -0
  454. package/dist/voice/preview.js.map +1 -0
  455. package/dist/voice/protocol.d.ts +10 -0
  456. package/dist/voice/protocol.d.ts.map +1 -0
  457. package/dist/voice/protocol.js +30 -0
  458. package/dist/voice/protocol.js.map +1 -0
  459. package/dist/voice/providers/cartesia-tts.d.ts +26 -0
  460. package/dist/voice/providers/cartesia-tts.d.ts.map +1 -0
  461. package/dist/voice/providers/cartesia-tts.js +95 -0
  462. package/dist/voice/providers/cartesia-tts.js.map +1 -0
  463. package/dist/voice/providers/deepgram-stt.d.ts +20 -0
  464. package/dist/voice/providers/deepgram-stt.d.ts.map +1 -0
  465. package/dist/voice/providers/deepgram-stt.js +66 -0
  466. package/dist/voice/providers/deepgram-stt.js.map +1 -0
  467. package/dist/voice/providers/elevenlabs-stt.d.ts +20 -0
  468. package/dist/voice/providers/elevenlabs-stt.d.ts.map +1 -0
  469. package/dist/voice/providers/elevenlabs-stt.js +92 -0
  470. package/dist/voice/providers/elevenlabs-stt.js.map +1 -0
  471. package/dist/voice/providers/elevenlabs-tts.d.ts +26 -0
  472. package/dist/voice/providers/elevenlabs-tts.d.ts.map +1 -0
  473. package/dist/voice/providers/elevenlabs-tts.js +82 -0
  474. package/dist/voice/providers/elevenlabs-tts.js.map +1 -0
  475. package/dist/voice/providers/encoded-audio-tts.d.ts +21 -0
  476. package/dist/voice/providers/encoded-audio-tts.d.ts.map +1 -0
  477. package/dist/voice/providers/encoded-audio-tts.js +175 -0
  478. package/dist/voice/providers/encoded-audio-tts.js.map +1 -0
  479. package/dist/voice/providers/fake.d.ts +39 -0
  480. package/dist/voice/providers/fake.d.ts.map +1 -0
  481. package/dist/voice/providers/fake.js +41 -0
  482. package/dist/voice/providers/fake.js.map +1 -0
  483. package/dist/voice/providers/gemini-live-stt.d.ts +21 -0
  484. package/dist/voice/providers/gemini-live-stt.d.ts.map +1 -0
  485. package/dist/voice/providers/gemini-live-stt.js +158 -0
  486. package/dist/voice/providers/gemini-live-stt.js.map +1 -0
  487. package/dist/voice/providers/gemini.d.ts +60 -0
  488. package/dist/voice/providers/gemini.d.ts.map +1 -0
  489. package/dist/voice/providers/gemini.js +124 -0
  490. package/dist/voice/providers/gemini.js.map +1 -0
  491. package/dist/voice/providers/model-ref.d.ts +9 -0
  492. package/dist/voice/providers/model-ref.d.ts.map +1 -0
  493. package/dist/voice/providers/model-ref.js +31 -0
  494. package/dist/voice/providers/model-ref.js.map +1 -0
  495. package/dist/voice/providers/openrouter.d.ts +39 -0
  496. package/dist/voice/providers/openrouter.d.ts.map +1 -0
  497. package/dist/voice/providers/openrouter.js +154 -0
  498. package/dist/voice/providers/openrouter.js.map +1 -0
  499. package/dist/voice/providers/paxalabs-stt.d.ts +12 -0
  500. package/dist/voice/providers/paxalabs-stt.d.ts.map +1 -0
  501. package/dist/voice/providers/paxalabs-stt.js +41 -0
  502. package/dist/voice/providers/paxalabs-stt.js.map +1 -0
  503. package/dist/voice/providers/paxalabs-tts.d.ts +23 -0
  504. package/dist/voice/providers/paxalabs-tts.d.ts.map +1 -0
  505. package/dist/voice/providers/paxalabs-tts.js +80 -0
  506. package/dist/voice/providers/paxalabs-tts.js.map +1 -0
  507. package/dist/voice/providers/recorded-stt.d.ts +34 -0
  508. package/dist/voice/providers/recorded-stt.d.ts.map +1 -0
  509. package/dist/voice/providers/recorded-stt.js +59 -0
  510. package/dist/voice/providers/recorded-stt.js.map +1 -0
  511. package/dist/voice/providers/registry.d.ts +10 -0
  512. package/dist/voice/providers/registry.d.ts.map +1 -0
  513. package/dist/voice/providers/registry.js +77 -0
  514. package/dist/voice/providers/registry.js.map +1 -0
  515. package/dist/voice/providers/socket.d.ts +10 -0
  516. package/dist/voice/providers/socket.d.ts.map +1 -0
  517. package/dist/voice/providers/socket.js +91 -0
  518. package/dist/voice/providers/socket.js.map +1 -0
  519. package/dist/voice/providers/upstream.d.ts +9 -0
  520. package/dist/voice/providers/upstream.d.ts.map +1 -0
  521. package/dist/voice/providers/upstream.js +51 -0
  522. package/dist/voice/providers/upstream.js.map +1 -0
  523. package/dist/voice/providers/voice-catalog.d.ts +17 -0
  524. package/dist/voice/providers/voice-catalog.d.ts.map +1 -0
  525. package/dist/voice/providers/voice-catalog.js +167 -0
  526. package/dist/voice/providers/voice-catalog.js.map +1 -0
  527. package/dist/voice/queue.d.ts +2 -0
  528. package/dist/voice/queue.d.ts.map +1 -0
  529. package/dist/voice/queue.js +6 -0
  530. package/dist/voice/queue.js.map +1 -0
  531. package/dist/voice/session.d.ts +86 -0
  532. package/dist/voice/session.d.ts.map +1 -0
  533. package/dist/voice/session.js +464 -0
  534. package/dist/voice/session.js.map +1 -0
  535. package/dist/voice/turn-manager.d.ts +27 -0
  536. package/dist/voice/turn-manager.d.ts.map +1 -0
  537. package/dist/voice/turn-manager.js +75 -0
  538. package/dist/voice/turn-manager.js.map +1 -0
  539. package/dist/voice/types.d.ts +78 -0
  540. package/dist/voice/types.d.ts.map +1 -0
  541. package/dist/voice/types.js +18 -0
  542. package/dist/voice/types.js.map +1 -0
  543. package/dist/voice/wav.d.ts +2 -0
  544. package/dist/voice/wav.d.ts.map +1 -0
  545. package/dist/voice/wav.js +21 -0
  546. package/dist/voice/wav.js.map +1 -0
  547. package/dist/wechat/ilink-client.d.ts +207 -0
  548. package/dist/wechat/ilink-client.d.ts.map +1 -0
  549. package/dist/wechat/ilink-client.js +660 -0
  550. package/dist/wechat/ilink-client.js.map +1 -0
  551. package/dist/wechat/manager.d.ts +93 -0
  552. package/dist/wechat/manager.d.ts.map +1 -0
  553. package/dist/wechat/manager.js +409 -0
  554. package/dist/wechat/manager.js.map +1 -0
  555. package/dist/whatsapp/manager.d.ts.map +1 -1
  556. package/dist/whatsapp/manager.js +51 -1
  557. package/dist/whatsapp/manager.js.map +1 -1
  558. package/mcp/capability-catalog.ts +206 -0
  559. package/mcp/modules.ts +56 -0
  560. package/mcp/server.ts +18 -35
  561. package/mcp/tools/browser/module.ts +1 -1
  562. package/mcp/tools/browser/skills/open-browser/SKILL.md +5 -3
  563. package/mcp/tools/discord/commands.ts +17 -1
  564. package/mcp/tools/discord/inbound.ts +11 -0
  565. package/mcp/tools/discord/module.ts +42 -2
  566. package/mcp/tools/discord/receiver-server.ts +10 -0
  567. package/mcp/tools/discord/types.ts +4 -1
  568. package/mcp/tools/image/module.ts +3 -1
  569. package/mcp/tools/receiver-spool.test.ts +28 -0
  570. package/mcp/tools/receiver-spool.ts +56 -0
  571. package/mcp/tools/share-file/module.ts +9 -1
  572. package/mcp/tools/shared/share-client.ts +19 -0
  573. package/mcp/tools/tasks/module.ts +35 -0
  574. package/mcp/tools/telegram/media-group.ts +21 -0
  575. package/mcp/tools/telegram/receiver-server.ts +232 -11
  576. package/mcp/tools/telegram/selection-confirmation.ts +20 -0
  577. package/mcp/tools/telegram/task-browser.ts +117 -0
  578. package/mcp/tools/telegram/task-detail.ts +36 -0
  579. package/mcp/tools/telegram/task-elapsed.ts +1 -0
  580. package/mcp/tools/telegram/typing.ts +6 -116
  581. package/mcp/tools/video/module.ts +1 -1
  582. package/mcp/tools/wechat/client.ts +49 -0
  583. package/mcp/tools/wechat/module.ts +88 -0
  584. package/mcp/types.ts +5 -0
  585. package/package.json +2 -1
  586. package/resource/claude_gateway.jpeg +0 -0
  587. package/scripts/orchestration/bench-store.cjs +30 -0
  588. package/scripts/orchestration/inspect.cjs +16 -0
  589. package/scripts/orchestration/probe-profile.cjs +67 -0
  590. package/scripts/orchestration/reconcile.cjs +21 -0
  591. package/scripts/orchestration/smoke-elevenlabs.cjs +90 -0
  592. package/scripts/orchestration/smoke-media.cjs +70 -0
  593. package/scripts/orchestration/smoke-text.cjs +101 -0
  594. package/scripts/orchestration/smoke-vision.cjs +49 -0
@@ -63,7 +63,7 @@ const MAX_IMAGE_BYTES = media_store_1.MediaStore.maxUploadBytes;
63
63
  * Returns null on an empty body; throws on HTTP failure or over-cap size — the
64
64
  * caller logs and forwards the turn regardless.
65
65
  */
66
- async function downloadSlackImage(botToken, fileUrl, fileId) {
66
+ async function downloadSlackImage(botToken, fileUrl, fileId, audioMime, fileName) {
67
67
  // Defence in depth: the signature check upstream already guarantees the event
68
68
  // (and thus `url_private`) is authentic Slack data, but never send the bot
69
69
  // token anywhere other than Slack's own file host. If a future refactor ever
@@ -71,7 +71,10 @@ async function downloadSlackImage(botToken, fileUrl, fileId) {
71
71
  // shape, this stops the token from leaking to an attacker-chosen host.
72
72
  let host;
73
73
  try {
74
- host = new URL(fileUrl).hostname;
74
+ const parsed = new URL(fileUrl);
75
+ if (parsed.protocol !== 'https:' || parsed.username || parsed.password)
76
+ throw Error('invalid file url');
77
+ host = parsed.hostname;
75
78
  }
76
79
  catch {
77
80
  throw new Error('invalid file url');
@@ -79,7 +82,7 @@ async function downloadSlackImage(botToken, fileUrl, fileId) {
79
82
  if (host !== 'slack.com' && !host.endsWith('.slack.com')) {
80
83
  throw new Error(`refusing to send bot token to non-Slack host: ${host}`);
81
84
  }
82
- const res = await fetch(fileUrl, { headers: { Authorization: `Bearer ${botToken}` } });
85
+ const res = await fetch(fileUrl, { headers: { Authorization: `Bearer ${botToken}` }, redirect: 'error', signal: AbortSignal.timeout(30000) });
83
86
  if (!res.ok)
84
87
  throw new Error(`HTTP ${res.status}`);
85
88
  // Cheap early reject on the declared length, then enforce the cap again while
@@ -111,8 +114,8 @@ async function downloadSlackImage(botToken, fileUrl, fileId) {
111
114
  // Include the Slack file id (like LINE's `line-img-${messageId}-…`) so two
112
115
  // events landing in the same millisecond on a shared tmpdir can't collide.
113
116
  const suffix = fileId ? `${fileId}-${Date.now()}` : `${Date.now()}`;
114
- const dest = path.join(os.tmpdir(), `slack-img-${suffix}.${(0, image_sniff_1.sniffImageExt)(buf)}`);
115
- fs.writeFileSync(dest, buf);
117
+ const dest = path.join(os.tmpdir(), `slack-img-${suffix.replace(/[^A-Za-z0-9-]/g, '')}.${fileName ? path.extname(fileName).replace(/[^A-Za-z0-9.]/g, '').slice(1, 12) || 'bin' : audioMime ? { 'audio/mpeg': 'mp3', 'audio/mp4': 'm4a', 'audio/ogg': 'ogg', 'audio/wav': 'wav', 'audio/webm': 'webm' }[audioMime] ?? 'audio' : (0, image_sniff_1.sniffImageExt)(buf)}`);
118
+ fs.writeFileSync(dest, buf, { mode: 0o600 });
116
119
  return dest;
117
120
  }
118
121
  /**
@@ -130,6 +133,18 @@ function pairingMessage(code, kind) {
130
133
  `Your pairing code: ${code}\n` +
131
134
  `Share this code with the admin to get access${enWhere}. (No need to reply with it.)`);
132
135
  }
136
+ function isSlackAudio(file) {
137
+ return !!(file.mimetype?.startsWith('audio/') || file.subtype === 'slack_audio' || file.media_display_type === 'audio');
138
+ }
139
+ function slackAudioMime(file) {
140
+ if (!isSlackAudio(file))
141
+ return;
142
+ if (file.mimetype === 'video/mp4')
143
+ return 'audio/mp4';
144
+ if (file.mimetype === 'video/webm')
145
+ return 'audio/webm';
146
+ return file.mimetype?.startsWith('audio/') ? file.mimetype : 'audio/mp4';
147
+ }
133
148
  /**
134
149
  * Strip a leading/embedded bot self-mention (`<@U…>`) from `app_mention` text.
135
150
  * Slack delivers the raw text with the mention markup inline (e.g.
@@ -173,8 +188,11 @@ function normalizeSlackEvent(event, resolved, botUserId) {
173
188
  ts: event.event_ts ?? event.ts ?? '',
174
189
  slack_chat_type: r.kind, // 'user' | 'group'
175
190
  };
176
- if (event.thread_ts)
191
+ if (event.thread_ts) {
177
192
  meta.thread_ts = event.thread_ts;
193
+ if (event.thread_ts !== event.ts)
194
+ meta.replied_message_id = event.thread_ts;
195
+ }
178
196
  return { content: stripBotMention(event.text ?? '', botUserId), meta };
179
197
  }
180
198
  /** Verify `X-Slack-Signature` (HMAC-SHA256 of "v0:{timestamp}:{rawBody}") and reject stale requests. */
@@ -249,157 +267,234 @@ function createSlackWebhookHandler(agents, logDir, opts = {}) {
249
267
  }
250
268
  let payload;
251
269
  try {
252
- payload = JSON.parse(buf.toString('utf8'));
270
+ if (req.header('content-type')?.includes('application/x-www-form-urlencoded')) {
271
+ const form = new URLSearchParams(buf.toString('utf8'));
272
+ payload = form.has('payload') ? JSON.parse(form.get('payload')) : { ...Object.fromEntries(form), type: 'slash_command' };
273
+ }
274
+ else
275
+ payload = JSON.parse(buf.toString('utf8'));
253
276
  }
254
277
  catch (err) {
255
278
  logger.warn('Slack webhook: bad JSON', { error: err.message });
256
279
  res.status(400).json({ error: 'bad JSON' });
257
280
  return;
258
281
  }
282
+ if (payload.type === 'block_actions' || payload.type === 'slash_command') {
283
+ const slash = payload.type === 'slash_command', user = payload.user, channel = payload.channel;
284
+ const chatId = slash ? String(payload.channel_id ?? '') : channel?.id ?? '', userId = slash ? String(payload.user_id ?? '') : user?.id ?? '';
285
+ const actions = payload.actions;
286
+ const data = actions?.[0]?.value ?? actions?.[0]?.action_id ?? '';
287
+ const command = String(payload.command ?? '');
288
+ if (slash ? !['/session', '/sessions', '/voice', '/voices', '/tasks', '/stop', '/help'].includes(command) : !/^orch:[a-f0-9-]{36}$/.test(data)) {
289
+ res.status(200).json({ text: 'Unknown command.' });
290
+ return;
291
+ }
292
+ const resolved = { conversationId: chatId, senderId: userId, kind: chatId.startsWith('D') ? 'user' : 'group' };
293
+ if (!userId || !chatId || !(0, slack_access_1.isResolvedSourceAllowed)(cfg, resolved)) {
294
+ res.status(200).json({ response_type: 'ephemeral', text: 'Not authorized.' });
295
+ return;
296
+ }
297
+ const message = payload.message;
298
+ res.status(200).end(); // Slack requires acknowledgement before catalog/network work.
299
+ try {
300
+ await fetch(`http://127.0.0.1:${runner.getCallbackPort()}/channel`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, signal: AbortSignal.timeout(30000), body: JSON.stringify({ content: slash ? `${command} ${String(payload.text ?? '')}`.trim() : `/orch ${data.slice(5)}`, meta: { source: 'slack', chat_id: chatId, user_id: userId, slack_chat_type: resolved.kind, ...(!slash && message?.ts ? { control_message_id: message.ts } : {}), ...(message?.thread_ts ? { thread_ts: message.thread_ts } : {}) } }) });
301
+ }
302
+ catch {
303
+ logger.warn('Slack control callback unavailable');
304
+ }
305
+ return;
306
+ }
259
307
  // URL verification handshake (signature already verified above — Slack
260
308
  // signs this request type too). Must respond with the raw challenge, not JSON-wrapped.
261
309
  if (payload.type === 'url_verification') {
262
310
  res.status(200).json({ challenge: payload.challenge });
263
311
  return;
264
312
  }
265
- // Ack immediately (Slack retries if we don't respond within ~3s) — process after.
266
- res.status(200).json({ ok: true });
267
- if (payload.type !== 'event_callback')
268
- return;
269
- const eventId = typeof payload.event_id === 'string' ? payload.event_id : '';
270
- if (eventId && isDuplicateSlackEvent(eventId)) {
271
- logger.debug('Slack webhook: duplicate event_id (Slack retry), skipping', { eventId });
272
- return;
273
- }
274
- const event = payload.event;
275
- if (!event)
276
- return;
277
- // The bot's own Slack user id — carried on every event_callback in
278
- // `authorizations` used to strip the bot's self-mention from
279
- // app_mention text (see normalizeSlackEvent below).
280
- const authorizations = payload.authorizations;
281
- const botUserId = authorizations?.[0]?.user_id;
282
- const deniedAgentId = runner.getAgentConfig().id;
283
- const resolved = (0, slack_access_1.resolveSlackSource)(event);
284
- // Bot-loop protection before the access gate too — a bot's own message
285
- // should never mint a pairing knock either.
286
- if (event.bot_id)
287
- return;
288
- if (!(0, slack_access_1.isResolvedSourceAllowed)(cfg, resolved)) {
289
- logger.debug('Slack webhook: source not allowed', {
290
- agentId: deniedAgentId,
291
- kind: resolved.kind,
292
- policy: (resolved.kind === 'user' ? cfg?.dmPolicy : cfg?.groupPolicy) ?? '(closed)',
293
- conversationId: resolved.conversationId,
294
- });
295
- const knockId = resolved.kind === 'user' ? resolved.senderId : resolved.conversationId;
296
- if (knockId) {
297
- const sourcePolicy = resolved.kind === 'user' ? cfg?.dmPolicy : cfg?.groupPolicy;
298
- const isPairing = cfg?.pairing !== false && sourcePolicy !== 'open' && sourcePolicy !== 'disabled';
299
- const prev = (0, pending_senders_1.getPendingSender)('slack', deniedAgentId, knockId);
300
- const code = prev?.code ?? (isPairing ? (0, pending_senders_1.generatePairingCode)() : undefined);
301
- const client = cfg?.botToken
302
- ? new slack_client_1.SlackClient({ botToken: cfg.botToken, logDir, apiBase: opts.apiBase })
303
- : null;
304
- let wasNew = false;
305
- if (resolved.kind === 'user') {
306
- wasNew = (0, pending_senders_1.recordDeniedSender)('slack', deniedAgentId, knockId, undefined, Date.now(), code);
307
- // Best-effort display-name backfill — mirrors LINE's getProfile() call.
308
- if (client) {
309
- void client
310
- .getUserDisplayName(knockId)
311
- .then((name) => {
312
- const e = (0, pending_senders_1.getPendingSender)('slack', deniedAgentId, knockId);
313
- if (e && name && !e.displayName)
314
- e.displayName = name;
315
- })
316
- .catch(() => { });
313
+ // Orchestrated conversations retain durable admission while draining after opt-out.
314
+ const orchestrationConfig = runner.getAgentConfig().orchestration;
315
+ const durableIngress = runner.requiresDurableChannelIngress?.('slack') ?? (orchestrationConfig?.enabled && (orchestrationConfig.channels ?? ['api']).includes('slack'));
316
+ if (!durableIngress)
317
+ res.status(200).json({ ok: true });
318
+ try {
319
+ if (payload.type !== 'event_callback')
320
+ return;
321
+ const eventId = typeof payload.event_id === 'string' ? payload.event_id : '';
322
+ if (!durableIngress && eventId && isDuplicateSlackEvent(eventId)) {
323
+ logger.debug('Slack webhook: duplicate event_id (Slack retry), skipping', { eventId });
324
+ return;
325
+ }
326
+ const event = payload.event;
327
+ if (!event)
328
+ return;
329
+ // The bot's own Slack user id — carried on every event_callback in
330
+ // `authorizations` used to strip the bot's self-mention from
331
+ // app_mention text (see normalizeSlackEvent below).
332
+ const authorizations = payload.authorizations;
333
+ const botUserId = authorizations?.[0]?.user_id;
334
+ const deniedAgentId = runner.getAgentConfig().id;
335
+ const resolved = (0, slack_access_1.resolveSlackSource)(event);
336
+ // Bot-loop protection before the access gate too — a bot's own message
337
+ // should never mint a pairing knock either.
338
+ if (event.bot_id)
339
+ return;
340
+ if (!(0, slack_access_1.isResolvedSourceAllowed)(cfg, resolved)) {
341
+ logger.debug('Slack webhook: source not allowed', {
342
+ agentId: deniedAgentId,
343
+ kind: resolved.kind,
344
+ policy: (resolved.kind === 'user' ? cfg?.dmPolicy : cfg?.groupPolicy) ?? '(closed)',
345
+ conversationId: resolved.conversationId,
346
+ });
347
+ const knockId = resolved.kind === 'user' ? resolved.senderId : resolved.conversationId;
348
+ if (knockId) {
349
+ const sourcePolicy = resolved.kind === 'user' ? cfg?.dmPolicy : cfg?.groupPolicy;
350
+ const isPairing = cfg?.pairing !== false && sourcePolicy !== 'open' && sourcePolicy !== 'disabled';
351
+ const prev = (0, pending_senders_1.getPendingSender)('slack', deniedAgentId, knockId);
352
+ const code = prev?.code ?? (isPairing ? (0, pending_senders_1.generatePairingCode)() : undefined);
353
+ const client = cfg?.botToken
354
+ ? new slack_client_1.SlackClient({ botToken: cfg.botToken, logDir, apiBase: opts.apiBase })
355
+ : null;
356
+ let wasNew = false;
357
+ if (resolved.kind === 'user') {
358
+ wasNew = (0, pending_senders_1.recordDeniedSender)('slack', deniedAgentId, knockId, undefined, Date.now(), code);
359
+ // Best-effort display-name backfill — mirrors LINE's getProfile() call.
360
+ if (client) {
361
+ void client
362
+ .getUserDisplayName(knockId)
363
+ .then((name) => {
364
+ const e = (0, pending_senders_1.getPendingSender)('slack', deniedAgentId, knockId);
365
+ if (e && name && !e.displayName)
366
+ e.displayName = name;
367
+ })
368
+ .catch(() => { });
369
+ }
317
370
  }
318
- }
319
- else if (resolved.kind === 'group') {
320
- wasNew = (0, pending_senders_1.recordDeniedConversation)('slack', deniedAgentId, knockId, 'group', undefined, Date.now(), code);
321
- // Best-effort channel-name backfill — mirrors LINE's getGroupSummary() call.
322
- if (client) {
371
+ else if (resolved.kind === 'group') {
372
+ wasNew = (0, pending_senders_1.recordDeniedConversation)('slack', deniedAgentId, knockId, 'group', undefined, Date.now(), code);
373
+ // Best-effort channel-name backfill mirrors LINE's getGroupSummary() call.
374
+ if (client) {
375
+ void client
376
+ .getChannelName(knockId)
377
+ .then((name) => {
378
+ const e = (0, pending_senders_1.getPendingSender)('slack', deniedAgentId, knockId);
379
+ if (e && name && !e.displayName)
380
+ e.displayName = name;
381
+ })
382
+ .catch(() => { });
383
+ }
384
+ }
385
+ // Send the pairing code exactly once — on first contact only.
386
+ if (isPairing && wasNew && code && client) {
387
+ const target = resolved.conversationId;
323
388
  void client
324
- .getChannelName(knockId)
325
- .then((name) => {
326
- const e = (0, pending_senders_1.getPendingSender)('slack', deniedAgentId, knockId);
327
- if (e && name && !e.displayName)
328
- e.displayName = name;
329
- })
330
- .catch(() => { });
389
+ .postMessage(target, pairingMessage(code, resolved.kind === 'group' ? 'group' : 'user'))
390
+ .catch((err) => logger.debug('Slack pairing code reply failed', { error: err.message }));
331
391
  }
332
392
  }
333
- // Send the pairing code exactly once — on first contact only.
334
- if (isPairing && wasNew && code && client) {
335
- const target = resolved.conversationId;
336
- void client
337
- .postMessage(target, pairingMessage(code, resolved.kind === 'group' ? 'group' : 'user'))
338
- .catch((err) => logger.debug('Slack pairing code reply failed', { error: err.message }));
393
+ return;
394
+ }
395
+ const norm = normalizeSlackEvent(event, resolved, botUserId);
396
+ if (!norm)
397
+ return;
398
+ // Channel activation gate: unless requireMention is explicitly false,
399
+ // only respond to app_mention events in channels (DMs always pass).
400
+ // event.type === 'app_mention' already IS the "bot was mentioned" signal
401
+ // at the Slack API level — a plain 'message' event in a channel never
402
+ // reaches this handler unless the workspace also subscribes to broader
403
+ // message.* events, so this check is a defensive no-op today but keeps
404
+ // the same explicit posture LINE's requireMention gate has.
405
+ if (resolved.kind === 'group' &&
406
+ cfg?.requireMention !== false &&
407
+ event.type !== 'app_mention') {
408
+ logger.debug('Slack webhook: channel message without bot mention, ignoring', {
409
+ agentId: deniedAgentId,
410
+ conversationId: resolved.conversationId,
411
+ });
412
+ return;
413
+ }
414
+ // Ack-reaction (2c): added here on receipt; removed by the `slack_reply`
415
+ // MCP tool (mcp/tools/slack/module.ts) once the agent's reply actually
416
+ // posts, using the same `chat_id`/`message_id` passed through `norm.meta`
417
+ // below — this file only ever adds it, never removes it.
418
+ const token = cfg?.botToken;
419
+ if (token) {
420
+ const client = new slack_client_1.SlackClient({ botToken: token, logDir, apiBase: opts.apiBase });
421
+ if (event.ts) {
422
+ void client.addReaction(resolved.conversationId, event.ts).catch(() => { });
339
423
  }
340
424
  }
341
- return;
342
- }
343
- const norm = normalizeSlackEvent(event, resolved, botUserId);
344
- if (!norm)
345
- return;
346
- // Channel activation gate: unless requireMention is explicitly false,
347
- // only respond to app_mention events in channels (DMs always pass).
348
- // event.type === 'app_mention' already IS the "bot was mentioned" signal
349
- // at the Slack API level — a plain 'message' event in a channel never
350
- // reaches this handler unless the workspace also subscribes to broader
351
- // message.* events, so this check is a defensive no-op today but keeps
352
- // the same explicit posture LINE's requireMention gate has.
353
- if (resolved.kind === 'group' &&
354
- cfg?.requireMention !== false &&
355
- event.type !== 'app_mention') {
356
- logger.debug('Slack webhook: channel message without bot mention, ignoring', {
357
- agentId: deniedAgentId,
358
- conversationId: resolved.conversationId,
359
- });
360
- return;
361
- }
362
- // Ack-reaction (2c): added here on receipt; removed by the `slack_reply`
363
- // MCP tool (mcp/tools/slack/module.ts) once the agent's reply actually
364
- // posts, using the same `chat_id`/`message_id` passed through `norm.meta`
365
- // below — this file only ever adds it, never removes it.
366
- const token = cfg?.botToken;
367
- if (token) {
368
- const client = new slack_client_1.SlackClient({ botToken: token, logDir, apiBase: opts.apiBase });
369
- if (event.ts) {
370
- void client.addReaction(resolved.conversationId, event.ts).catch(() => { });
425
+ // Inbound image: fetch the first image attachment's bytes with the bot token
426
+ // and hand the agent an absolute path (meta.image_path) — the same contract
427
+ // LINE uses, so the runner persists it to MediaStore and tells the agent to
428
+ // Read it. Best-effort: a failure only logs, the text turn still forwards.
429
+ // Scope is images only; other file types are left alone for now.
430
+ const managed = !!(orchestrationConfig?.enabled && (orchestrationConfig.channels ?? ['api']).includes('slack'));
431
+ let quoted;
432
+ if (managed && token && norm.meta.replied_message_id) {
433
+ try {
434
+ const response = await new slack_client_1.SlackClient({ botToken: token, logDir, apiBase: opts.apiBase }).threadRoot(resolved.conversationId, norm.meta.replied_message_id);
435
+ const messages = response.ok && Array.isArray(response.messages) ? response.messages : [];
436
+ quoted = messages.find(message => message.ts === norm.meta.replied_message_id);
437
+ if (quoted) {
438
+ norm.meta.replied_text = quoted.text ?? '';
439
+ norm.meta.replied_user = quoted.user ?? quoted.bot_id ?? '';
440
+ }
441
+ }
442
+ catch { /* ID-only quote is resolved from scoped local history when possible. */ }
443
+ }
444
+ const files = (event.files ?? []).filter(f => (managed || f.mimetype?.startsWith('image/')) && (f.url_private_download || f.url_private)).slice(0, managed ? 10 : 1);
445
+ const quotedFiles = (quoted?.files ?? []).filter(f => f.url_private_download || f.url_private).slice(0, 10);
446
+ const staged = [];
447
+ if (token)
448
+ for (const file of [...files, ...quotedFiles]) {
449
+ try {
450
+ const mediaPath = await downloadSlackImage(token, file.url_private_download ?? file.url_private, file.id, slackAudioMime(file), !file.mimetype?.startsWith('image/') && !isSlackAudio(file) ? file.name ?? 'attachment.bin' : undefined);
451
+ if (mediaPath)
452
+ staged.push({ path: mediaPath, name: file.name, quoted: quotedFiles.includes(file), kind: isSlackAudio(file) ? 'audio' : file.mimetype?.startsWith('image/') ? 'image' : 'file' });
453
+ }
454
+ catch {
455
+ norm.meta.attachment_error = 'One or more attached files could not be downloaded. Do not claim to have read them.';
456
+ logger.warn('Slack webhook: attachment download failed', { fileId: file.id });
457
+ }
458
+ }
459
+ if (staged.length) {
460
+ norm.meta.image_path = staged[0].path;
461
+ norm.meta.media_ephemeral = '1';
462
+ if (managed)
463
+ norm.meta.attachments_json = JSON.stringify(staged);
464
+ norm.meta.attachment_name = staged[0].name ?? '';
465
+ if (!staged[0].quoted && staged[0].kind === 'audio') {
466
+ norm.meta.media_type = 'audio';
467
+ norm.meta.attachment_kind = 'voice';
468
+ if (!norm.content)
469
+ norm.content = '(voice message)';
470
+ }
471
+ else if (staged[0].kind === 'file') {
472
+ norm.meta.media_type = 'file';
473
+ norm.meta.attachment_kind = 'document';
474
+ if (!norm.content)
475
+ norm.content = '(file attachment)';
476
+ }
371
477
  }
372
- }
373
- // Inbound image: fetch the first image attachment's bytes with the bot token
374
- // and hand the agent an absolute path (meta.image_path) — the same contract
375
- // LINE uses, so the runner persists it to MediaStore and tells the agent to
376
- // Read it. Best-effort: a failure only logs, the text turn still forwards.
377
- // Scope is images only; other file types are left alone for now.
378
- const imageFile = event.files?.find((f) => typeof f.mimetype === 'string' && f.mimetype.startsWith('image/') && f.url_private);
379
- if (token && imageFile?.url_private) {
380
478
  try {
381
- const imgPath = await downloadSlackImage(token, imageFile.url_private, imageFile.id);
382
- if (imgPath)
383
- norm.meta.image_path = imgPath;
479
+ const forwarded = await fetch(`http://127.0.0.1:${runner.getCallbackPort()}/channel`, {
480
+ method: 'POST',
481
+ headers: { 'Content-Type': 'application/json' },
482
+ body: JSON.stringify(norm),
483
+ });
484
+ if (durableIngress && !forwarded.ok)
485
+ throw new Error('Durable input admission failed');
384
486
  }
385
487
  catch (err) {
386
- logger.warn('Slack webhook: image download failed', {
387
- fileId: imageFile.id,
488
+ if (durableIngress && !res.headersSent)
489
+ res.status(503).json({ error: 'Input admission unavailable' });
490
+ logger.error('Slack webhook: failed to forward to callback', {
388
491
  error: err.message,
389
492
  });
390
493
  }
391
494
  }
392
- try {
393
- await fetch(`http://127.0.0.1:${runner.getCallbackPort()}/channel`, {
394
- method: 'POST',
395
- headers: { 'Content-Type': 'application/json' },
396
- body: JSON.stringify(norm),
397
- });
398
- }
399
- catch (err) {
400
- logger.error('Slack webhook: failed to forward to callback', {
401
- error: err.message,
402
- });
495
+ finally {
496
+ if (!res.headersSent)
497
+ res.status(200).json({ ok: true });
403
498
  }
404
499
  };
405
500
  return { verify, handlePost };
@@ -1 +1 @@
1
- {"version":3,"file":"slack-webhook-router.js","sourceRoot":"","sources":["../../src/api/slack-webhook-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-webhook-router.js","sourceRoot":"","sources":["../../src/api/slack-webhook-router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwMA,kDAyBC;AAGD,oDAiBC;AA6BD,8DA2PC;AA7fD,mCAAqD;AACrD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAE7B,sCAAyC;AACzC,iDAKwB;AACxB,uDAK2B;AAC3B,iDAA6C;AAC7C,wDAAoD;AACpD,uDAAsD;AAGtD,gFAAgF;AAChF,wEAAwE;AACxE,MAAM,uBAAuB,GAAG,EAAE,GAAG,CAAC,CAAC;AAEvC,4EAA4E;AAC5E,gFAAgF;AAChF,sBAAsB;AACtB,MAAM,eAAe,GAAG,wBAAU,CAAC,cAAc,CAAC;AAElD;;;;;;;;;GASG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,OAAe,EACf,MAAe,EACf,SAAkB,EAClB,QAAiB;IAEjB,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,uEAAuE;IACvE,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAG,MAAM,CAAC,QAAQ,KAAG,QAAQ,IAAE,MAAM,CAAC,QAAQ,IAAE,MAAM,CAAC,QAAQ;YAAC,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAChG,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,QAAQ,EAAE,EAAE,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1I,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnD,8EAA8E;IAC9E,2EAA2E;IAC3E,wBAAwB;IACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,iBAAiB,eAAe,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,IAA4C,EAAE,CAAC;YAC3E,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;YAC1B,IAAI,KAAK,GAAG,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,eAAe,WAAW,CAAC,CAAC;YAC1F,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,MAAM,GAAG,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,eAAe,WAAW,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAC,EAAE,CAAC,IAAI,QAAQ,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,IAAE,KAAK,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAC,EAAC,YAAY,EAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAC,YAAY,EAAC,MAAM,EAA2B,CAAC,SAAS,CAAC,IAAE,OAAO,CAAA,CAAC,CAAA,IAAA,2BAAa,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtV,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAY,EAAE,IAAsB;IAC1D,MAAM,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC;IACnC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,CACL,wCAAwC,IAAI,IAAI;QAChD,gDAAgD,OAAO,gCAAgC;QACvF,sBAAsB,IAAI,IAAI;QAC9B,+CAA+C,OAAO,+BAA+B,CACtF,CAAC;AACJ,CAAC;AAmBD,SAAS,YAAY,CAAC,IAAmB;IACvC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAI,CAAC,OAAO,KAAG,aAAa,IAAE,IAAI,CAAC,kBAAkB,KAAG,OAAO,CAAC,CAAC;AAClH,CAAC;AACD,SAAS,cAAc,CAAC,IAAmB;IACzC,IAAG,CAAC,YAAY,CAAC,IAAI,CAAC;QAAC,OAAO;IAC9B,IAAG,IAAI,CAAC,QAAQ,KAAG,WAAW;QAAC,OAAO,WAAW,CAAC;IAClD,IAAG,IAAI,CAAC,QAAQ,KAAG,YAAY;QAAC,OAAO,YAAY,CAAC;IACpD,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,WAAW,CAAC;AACvE,CAAC;AAgBD;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,SAA6B;IAClE,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,8DAA8D;IAC9D,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,SAAS,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CACjC,KAAiB,EACjB,QAA8B,EAC9B,SAAkB;IAElB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAC1E,2EAA2E;IAC3E,+CAA+C;IAC/C,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,CAAC,GAAG,QAAQ,IAAI,IAAA,iCAAkB,EAAC,KAAuB,CAAC,CAAC;IAClE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAEzD,MAAM,IAAI,GAA2B;QACnC,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,CAAC,CAAC,cAAc;QACzB,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc;QACvC,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;QAC1B,EAAE,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE;QACpC,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,mBAAmB;KAC7C,CAAC;IACF,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAAC,IAAG,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE;YAAC,IAAI,CAAC,kBAAkB,GAAC,KAAK,CAAC,SAAS,CAAC;IAAC,CAAC;IAEnI,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;AACzE,CAAC;AAED,wGAAwG;AACxG,SAAgB,oBAAoB,CAClC,OAAe,EACf,aAAqB,EACrB,eAAmC,EACnC,eAAmC;IAEnC,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;IACzE,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,uBAAuB;QAAE,OAAO,KAAK,CAAC;IAEpF,MAAM,IAAI,GAAG,MAAM,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAU,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACxF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,IAAA,wBAAe,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,mHAAmH;AACnH,SAAS,iBAAiB,CACxB,MAAgC,EAChC,OAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,aAAa;YAAE,OAAO,MAAM,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,4EAA4E;AAC5E,+EAA+E;AAC/E,wEAAwE;AACxE,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,qBAAqB,GAAG,EAAE,GAAG,KAAM,CAAC;AAE1C,SAAgB,yBAAyB,CACvC,MAAgC,EAChC,MAAc,EACd,OAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;YACpC,IAAI,GAAG,GAAG,EAAE,GAAG,qBAAqB;gBAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,GAAa,EAAQ,EAAE;QACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QACtE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAA6B,CAAC;QACzD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,EAAE,aAAa,IAAI,EAAE,CAAC;QACxC,MAAM,GAAG,GAAW,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3E,IACE,CAAC,oBAAoB,CACnB,GAAG,EACH,MAAM,EACN,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC,EACvC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAChC,EACD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9F,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,IAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,mCAAmC,CAAC,EAAC,CAAC;gBAC5E,MAAM,IAAI,GAAC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrD,OAAO,GAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,CAAA,CAAC,CAAA,EAAC,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,eAAe,EAAC,CAAC;YAClH,CAAC;;gBAAK,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAG,OAAO,CAAC,IAAI,KAAG,eAAe,IAAE,OAAO,CAAC,IAAI,KAAG,eAAe,EAAC,CAAC;YACjE,MAAM,KAAK,GAAC,OAAO,CAAC,IAAI,KAAG,eAAe,EAAC,IAAI,GAAC,OAAO,CAAC,IAA8B,EAAC,OAAO,GAAC,OAAO,CAAC,OAAiC,CAAC;YACzI,MAAM,MAAM,GAAC,KAAK,CAAA,CAAC,CAAA,MAAM,CAAC,OAAO,CAAC,UAAU,IAAE,EAAE,CAAC,CAAA,CAAC,CAAA,OAAO,EAAE,EAAE,IAAE,EAAE,EAAC,MAAM,GAAC,KAAK,CAAA,CAAC,CAAA,MAAM,CAAC,OAAO,CAAC,OAAO,IAAE,EAAE,CAAC,CAAA,CAAC,CAAA,IAAI,EAAE,EAAE,IAAE,EAAE,CAAC;YACxH,MAAM,OAAO,GAAC,OAAO,CAAC,OAA6D,CAAC;YACpF,MAAM,IAAI,GAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,IAAE,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC;YAC1C,IAAG,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,UAAU,EAAC,WAAW,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC;gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,kBAAkB,EAAC,CAAC,CAAC;gBAAA,OAAO;YAAA,CAAC;YAC7L,MAAM,QAAQ,GAAC,EAAC,cAAc,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,CAAC,CAAA,MAAe,CAAA,CAAC,CAAA,OAAgB,EAAC,CAAC;YACpH,IAAG,CAAC,MAAM,IAAE,CAAC,MAAM,IAAE,CAAC,IAAA,sCAAuB,EAAC,GAAG,EAAC,QAAQ,CAAC,EAAC,CAAC;gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,aAAa,EAAC,WAAW,EAAC,IAAI,EAAC,iBAAiB,EAAC,CAAC,CAAC;gBAAA,OAAO;YAAA,CAAC;YAC9I,MAAM,OAAO,GAAC,OAAO,CAAC,OAAmD,CAAC;YAC1E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,8DAA8D;YACrF,IAAG,CAAC;gBACF,MAAM,KAAK,CAAC,oBAAoB,MAAM,CAAC,eAAe,EAAE,UAAU,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC,EAAC,MAAM,EAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,KAAK,CAAA,CAAC,CAAA,GAAG,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA,CAAC,CAAA,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAC,IAAI,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,eAAe,EAAC,QAAQ,CAAC,IAAI,EAAC,GAAG,CAAC,CAAC,KAAK,IAAE,OAAO,EAAE,EAAE,CAAA,CAAC,CAAA,EAAC,kBAAkB,EAAC,OAAO,CAAC,EAAE,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAA,CAAC,CAAA,EAAC,SAAS,EAAC,OAAO,CAAC,SAAS,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YACzd,CAAC;YAAA,MAAK,CAAC;gBAAA,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAAA,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,uFAAuF;QACvF,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACxC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,oFAAoF;QACpF,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC;QAClE,MAAM,cAAc,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACxK,IAAI,CAAC,cAAc;YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC;YACL,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB;gBAAE,OAAO;YAC9C,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,cAAc,IAAI,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjE,MAAM,CAAC,KAAK,CAAC,2DAA2D,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAA+B,CAAC;YACtD,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,mEAAmE;YACnE,+DAA+D;YAC/D,oDAAoD;YACpD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAyD,CAAC;YACzF,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;YAE/C,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAA,iCAAkB,EAAC,KAAuB,CAAC,CAAC;YAE7D,uEAAuE;YACvE,4CAA4C;YAC5C,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO;YAEzB,IAAI,CAAC,IAAA,sCAAuB,EAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;oBAChD,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,UAAU;oBACnF,cAAc,EAAE,QAAQ,CAAC,cAAc;iBACxC,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACvF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC;oBACjF,MAAM,SAAS,GAAG,GAAG,EAAE,OAAO,KAAK,KAAK,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,UAAU,CAAC;oBACnG,MAAM,IAAI,GAAG,IAAA,kCAAgB,EAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;oBAC/D,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,qCAAmB,GAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAC3E,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ;wBAC1B,CAAC,CAAC,IAAI,0BAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC5E,CAAC,CAAC,IAAI,CAAC;oBAET,IAAI,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC7B,MAAM,GAAG,IAAA,oCAAkB,EAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;wBAC1F,wEAAwE;wBACxE,IAAI,MAAM,EAAE,CAAC;4BACX,KAAK,MAAM;iCACR,kBAAkB,CAAC,OAAO,CAAC;iCAC3B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gCACb,MAAM,CAAC,GAAG,IAAA,kCAAgB,EAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;gCAC5D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW;oCAAE,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;4BACxD,CAAC,CAAC;iCACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;yBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACrC,MAAM,GAAG,IAAA,0CAAwB,EAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;wBACzG,6EAA6E;wBAC7E,IAAI,MAAM,EAAE,CAAC;4BACX,KAAK,MAAM;iCACR,cAAc,CAAC,OAAO,CAAC;iCACvB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gCACb,MAAM,CAAC,GAAG,IAAA,kCAAgB,EAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;gCAC5D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW;oCAAE,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;4BACxD,CAAC,CAAC;iCACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;oBAED,8DAA8D;oBAC9D,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;wBAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC;wBACvC,KAAK,MAAM;6BACR,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;6BACvF,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxG,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,sEAAsE;YACtE,oEAAoE;YACpE,yEAAyE;YACzE,sEAAsE;YACtE,uEAAuE;YACvE,uEAAuE;YACvE,4DAA4D;YAC5D,IACE,QAAQ,CAAC,IAAI,KAAK,OAAO;gBACzB,GAAG,EAAE,cAAc,KAAK,KAAK;gBAC7B,KAAK,CAAC,IAAI,KAAK,aAAa,EAC5B,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,8DAA8D,EAAE;oBAC3E,OAAO,EAAE,aAAa;oBACtB,cAAc,EAAE,QAAQ,CAAC,cAAc;iBACxC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,yEAAyE;YACzE,uEAAuE;YACvE,0EAA0E;YAC1E,yDAAyD;YACzD,MAAM,KAAK,GAAG,GAAG,EAAE,QAAQ,CAAC;YAC5B,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,IAAI,0BAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnF,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;oBACb,KAAK,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;YAED,6EAA6E;YAC7E,4EAA4E;YAC5E,4EAA4E;YAC5E,2EAA2E;YAC3E,iEAAiE;YACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9G,IAAI,MAA8B,CAAC;YACnC,IAAG,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAC,CAAC;gBACnD,IAAG,CAAC;oBACF,MAAM,QAAQ,GAAC,MAAM,IAAI,0BAAW,CAAC,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACpJ,MAAM,QAAQ,GAAC,QAAQ,CAAC,EAAE,IAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,QAAQ,CAAC,QAAwB,CAAA,CAAC,CAAA,EAAE,CAAC;oBAClG,MAAM,GAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAA,EAAE,CAAA,OAAO,CAAC,EAAE,KAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACzE,IAAG,MAAM,EAAC,CAAC;wBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAC,MAAM,CAAC,IAAI,IAAE,EAAE,CAAC;wBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,GAAC,MAAM,CAAC,IAAI,IAAE,MAAM,CAAC,MAAM,IAAE,EAAE,CAAC;oBAAA,CAAC;gBAC3G,CAAC;gBAAA,MAAK,CAAC,CAAA,wEAAwE,CAAA,CAAC;YAClF,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,IAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,OAAO,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC;YAC5J,MAAM,WAAW,GAAC,CAAC,MAAM,EAAE,KAAK,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,oBAAoB,IAAE,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;YACnG,MAAM,MAAM,GAAkE,EAAE,CAAC;YACjF,IAAI,KAAK;gBAAE,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,EAAC,GAAG,WAAW,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAC,IAAI,CAAC,oBAAoB,IAAE,IAAI,CAAC,WAAY,EAAC,IAAI,CAAC,EAAE,EAAC,cAAc,CAAC,IAAI,CAAC,EAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,IAAE,gBAAgB,CAAA,CAAC,CAAA,SAAS,CAAC,CAAC;wBAC5N,IAAI,SAAS;4BAAE,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,MAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,YAAY,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,MAAM,EAAC,CAAC,CAAC;oBACnL,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAC,qFAAqF,CAAC;wBACjH,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAC,EAAC,MAAM,EAAC,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAC,GAAG,CAAC;gBACnE,IAAG,OAAO;oBAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,eAAe,GAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC;gBAC7C,IAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,OAAO,EAAC,CAAC;oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,OAAO,CAAC;oBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,GAAC,OAAO,CAAC;oBAAA,IAAG,CAAC,IAAI,CAAC,OAAO;wBAAC,IAAI,CAAC,OAAO,GAAC,iBAAiB,CAAC;gBAAA,CAAC;qBAC3J,IAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,MAAM,CAAC;oBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,GAAC,UAAU,CAAC;oBAAA,IAAG,CAAC,IAAI,CAAC,OAAO;wBAAC,IAAI,CAAC,OAAO,GAAC,mBAAmB,CAAC;gBAAA,CAAC;YACvJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,oBAAoB,MAAM,CAAC,eAAe,EAAE,UAAU,EAAE;oBACpF,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAC;gBACH,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,cAAc,IAAI,CAAC,GAAG,CAAC,WAAW;oBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;gBACvG,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE;oBAC3D,KAAK,EAAG,GAAa,CAAC,OAAO;iBAC9B,CAAC,CAAC;YACL,CAAC;QACD,CAAC;gBAAS,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,WAAW;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;IACzE,CAAC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { IncomingMessage } from 'http';
2
+ import { Duplex } from 'stream';
3
+ import { AgentConfig, ApiKey } from '../types';
4
+ import { AgentRunner } from '../agent/runner';
5
+ /** Authenticated voice sessions share conversation ownership with text and task controls. */
6
+ export declare class VoiceApi {
7
+ private readonly agents;
8
+ private readonly configs;
9
+ readonly router: import("express-serve-static-core").Router;
10
+ private readonly wss;
11
+ private readonly tickets;
12
+ private readonly leases;
13
+ private readonly sessions;
14
+ private readonly pruner;
15
+ constructor(agents: Map<string, AgentRunner>, configs: Map<string, AgentConfig>, keys: ApiKey[]);
16
+ upgrade(request: IncomingMessage, socket: Duplex, head: Buffer): boolean;
17
+ private releaseLease;
18
+ private prune;
19
+ close(): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=voice-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-router.d.ts","sourceRoot":"","sources":["../../src/api/voice-router.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAc9C,6FAA6F;AAC7F,qBAAa,QAAQ;IAOP,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA4B,OAAO,CAAC,QAAQ,CAAC,OAAO;IANvF,QAAQ,CAAC,MAAM,6CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA8D;IAClF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwF;IACjH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAmB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAiFjI,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAqHxE,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,KAAK;IAGP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}