@gaodefa/daocore 2026.5.25 → 2026.5.26

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 (1740) hide show
  1. package/dist/abort-By0wxKlI.js +277 -0
  2. package/dist/abort.runtime-C7zfjxBp.js +2 -0
  3. package/dist/abort.runtime.js +1 -1
  4. package/dist/account-inspect-DTeLlJz-.js +173 -0
  5. package/dist/accounts-B776XBaL.js +119 -0
  6. package/dist/accounts-CLyZILFF.js +107 -0
  7. package/dist/accounts-DiXgq14W.js +107 -0
  8. package/dist/accounts-iTlRLYN8.js +2 -0
  9. package/dist/acp/control-plane/manager.d.ts +2 -1
  10. package/dist/acp-runtime-D9YQyGax.js +26 -0
  11. package/dist/acp-spawn-CWciV70C.js +1275 -0
  12. package/dist/acp-spawn-DjaS4O_V.js +2 -0
  13. package/dist/acp-stateful-target-driver-ByvGCj_i.js +89 -0
  14. package/dist/action-kill-DXeOA6YH.js +33 -0
  15. package/dist/action-runtime-BjQnG6qb.js +469 -0
  16. package/dist/action-runtime-api-a73ODsYk.js +2 -0
  17. package/dist/action-send-B_F3xwIu.js +39 -0
  18. package/dist/action-spawn-BFiW7gZJ.js +47 -0
  19. package/dist/actions-Bi7eE2I6.js +161 -0
  20. package/dist/actions.runtime-DmtbCLld.js +5 -0
  21. package/dist/agent-BOI4AdYK.js +3 -0
  22. package/dist/agent-DQPyDWP5.js +2 -0
  23. package/dist/agent-command-ClCxEw82.js +1367 -0
  24. package/dist/agent-command-DKqx29vm.d.ts +105 -0
  25. package/dist/agent-components.runtime-C5wxy4D_.js +10 -0
  26. package/dist/agent-components.runtime.js +1 -1
  27. package/dist/agent-harness-BsBVO7nU.d.ts +146 -0
  28. package/dist/agent-harness-runtime-CkdXIMHI.js +180 -0
  29. package/dist/agent-harness-runtime-KHFO733B.d.ts +691 -0
  30. package/dist/agent-harness-task-runtime-CDtn5RjX.js +140 -0
  31. package/dist/agent-runner-execution-lXW8y0i2.js +1713 -0
  32. package/dist/agent-runner-utils-OdM9hLGt.js +266 -0
  33. package/dist/agent-runner.runtime-fZnfhCJI.js +3455 -0
  34. package/dist/agent-runner.runtime.js +1 -1
  35. package/dist/agent-runtime-Dp0RDnX1.js +229 -0
  36. package/dist/agent-via-gateway-vsBf3nqZ.js +463 -0
  37. package/dist/agents/pi-embedded-runner/tool-split.d.ts +1 -1
  38. package/dist/agents.commands.add-C94vGOFH.js +304 -0
  39. package/dist/agents.commands.delete-D-p2NL4v.js +128 -0
  40. package/dist/api-BZ2QC7WM.js +2 -0
  41. package/dist/api-BmYK5Dge.js +6 -0
  42. package/dist/api-CGdlHCIH.js +3 -0
  43. package/dist/api-CGjlsXii.js +134 -0
  44. package/dist/api-DGqp6wZo.js +2 -0
  45. package/dist/api-DKpE-zdY.js +639 -0
  46. package/dist/api-DNyivJXK.d.ts +52 -0
  47. package/dist/apply-GK4z5lYw.js +54 -0
  48. package/dist/apply-_yxsBkiR.js +41 -0
  49. package/dist/approval-handler.runtime-C7d9p3DG.js +130 -0
  50. package/dist/assistant-B-h25aRy.js +291 -0
  51. package/dist/attachment-normalize-DWZ4Nrn-.js +225 -0
  52. package/dist/attempt-execution-BY9C1EOu.js +558 -0
  53. package/dist/attempt-execution.runtime-SR7eolDa.js +3 -0
  54. package/dist/attempt-execution.runtime.js +1 -1
  55. package/dist/attempt-execution.shared-h6uYmkJz.js +38 -0
  56. package/dist/attempt.prompt-helpers-COc5m_TZ.js +475 -0
  57. package/dist/attempt.tool-run-context-CAtfgOqC.js +2094 -0
  58. package/dist/auth-BdkNYTYU.js +541 -0
  59. package/dist/banner-0TOO6XHd.js +397 -0
  60. package/dist/banner-DTHug6Ey.js +2 -0
  61. package/dist/binding-routing-BJ_A83Nl.js +113 -0
  62. package/dist/binding-targets-D5dmPh4R.js +121 -0
  63. package/dist/bot-DX1uG3P-.js +7894 -0
  64. package/dist/bot-deps-BpaYejaN.js +2 -0
  65. package/dist/bot-deps-CKFDy5y3.js +747 -0
  66. package/dist/bot-message-context.runtime-BKOeRg34.js +7 -0
  67. package/dist/bot-message-context.runtime.js +1 -1
  68. package/dist/bot-message-context.session.runtime-xgZdFv6P.js +12 -0
  69. package/dist/bot-message-context.session.runtime.js +1 -1
  70. package/dist/bot-native-commands.delivery.runtime-DDMQrRfJ.js +4 -0
  71. package/dist/bot-native-commands.delivery.runtime.js +1 -1
  72. package/dist/bot-native-commands.runtime-CVVvUz0h.js +13 -0
  73. package/dist/bot-native-commands.runtime.js +1 -1
  74. package/dist/bridge-server-37OWsDZc.js +113 -0
  75. package/dist/browser-cli-BC_6aZJV.js +2 -0
  76. package/dist/browser-cli-Dg1ipmgf.js +230 -0
  77. package/dist/browser-cli-actions-input-B0QuzzSW.js +473 -0
  78. package/dist/browser-cli-actions-observe-C246bas5.js +81 -0
  79. package/dist/browser-cli-debug-F64e_v4B.js +137 -0
  80. package/dist/browser-cli-inspect-Srn6eWjO.js +104 -0
  81. package/dist/browser-cli-manage-CaZ97-Me.js +443 -0
  82. package/dist/browser-cli-resize-CUR20fvZ.js +26 -0
  83. package/dist/browser-cli-shared-BhphnFVo.js +50 -0
  84. package/dist/browser-cli-state-CzaNXNWF.js +337 -0
  85. package/dist/browser-control-auth-DTY0Wx2B.js +2 -0
  86. package/dist/browser-profiles-BDGPPDJ7.js +2 -0
  87. package/dist/browser-runtime-aqBKI8Oi.js +384 -0
  88. package/dist/build-CG7aTzO9.js +257 -0
  89. package/dist/build-info.json +3 -3
  90. package/dist/bundled/boot-md/handler.js +2 -2
  91. package/dist/bundled/session-memory/handler.js +1 -1
  92. package/dist/bundled-channel-config-schema-vrKpzJVf.d.ts +3163 -0
  93. package/dist/call-Za47o1YZ.d.ts +43 -0
  94. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  95. package/dist/capability-cli-BhF26gVm.js +1782 -0
  96. package/dist/channel-5RHqx1Ge.d.ts +26 -0
  97. package/dist/channel-5_XS0Mss.js +508 -0
  98. package/dist/channel-7L-vyWOO.js +362 -0
  99. package/dist/channel-B07xPK0L.d.ts +114 -0
  100. package/dist/channel-B9b-GX-e.d.ts +14 -0
  101. package/dist/channel-BBWX_bA0.d.ts +7 -0
  102. package/dist/channel-BVxTyJ0I.js +376 -0
  103. package/dist/channel-BWIsr1r-.js +808 -0
  104. package/dist/channel-Ba0p4xM-.js +1134 -0
  105. package/dist/channel-Bi2nTop1.js +481 -0
  106. package/dist/channel-Bj29iFgF.js +740 -0
  107. package/dist/channel-Bl8tKAuG.d.ts +427 -0
  108. package/dist/channel-Bqy7BYGm.d.ts +28 -0
  109. package/dist/channel-BvzHMdKo.d.ts +8 -0
  110. package/dist/channel-C6G6-tH6.js +562 -0
  111. package/dist/channel-CBhuuq-_.js +2126 -0
  112. package/dist/channel-CMmVpcnl.js +867 -0
  113. package/dist/channel-COc7idAe.js +653 -0
  114. package/dist/channel-CcsuLAYt.d.ts +49 -0
  115. package/dist/channel-CjfuHhSU.js +1556 -0
  116. package/dist/channel-Cquy73C-.js +1249 -0
  117. package/dist/channel-Cu7Jxm_X.d.ts +104 -0
  118. package/dist/channel-CzvuskEn.js +955 -0
  119. package/dist/channel-D6u-243v.js +1777 -0
  120. package/dist/channel-DId5JNlc.d.ts +47 -0
  121. package/dist/channel-DR8PbP31.js +238 -0
  122. package/dist/channel-DUYRu5km.d.ts +7 -0
  123. package/dist/channel-DUZ0s98I.js +1496 -0
  124. package/dist/channel-DXelghSl.d.ts +8 -0
  125. package/dist/channel-FhfE8D-t.d.ts +6 -0
  126. package/dist/channel-PEX_yYEO.d.ts +64 -0
  127. package/dist/channel-aWqPl-K4.d.ts +106 -0
  128. package/dist/channel-actions.runtime-BzEqt_Va.js +265 -0
  129. package/dist/channel-actions.runtime.js +1 -1
  130. package/dist/channel-cSdO0kAq.d.ts +8 -0
  131. package/dist/channel-core-ClgodQav.d.ts +6 -0
  132. package/dist/channel-core-DDZnTvT6.js +5 -0
  133. package/dist/channel-entry-contract-Bzkb_oJX.d.ts +112 -0
  134. package/dist/channel-inbound-C2wLEE7Q.js +80 -0
  135. package/dist/channel-lifecycle-DCTZ2J_8.d.ts +126 -0
  136. package/dist/channel-pairing-pKisqGWj.d.ts +58 -0
  137. package/dist/channel-plugin-runtime-B8AWkA0i.js +998 -0
  138. package/dist/channel-plugin-runtime-ntEeH9SC.d.ts +7 -0
  139. package/dist/channel-runtime-CciKN6E5.js +408 -0
  140. package/dist/channel-za2kUUnL.d.ts +12 -0
  141. package/dist/channel.runtime-BQN8Bkb0.js +254 -0
  142. package/dist/channel.runtime-BXeGEvv7.js +21009 -0
  143. package/dist/channel.runtime-C40ILulM.js +1008 -0
  144. package/dist/channel.runtime-CJ2DSojv.js +733 -0
  145. package/dist/channel.runtime-CUaygROD.js +652 -0
  146. package/dist/channel.runtime-CcCbJhDb.js +88 -0
  147. package/dist/channel.runtime-DJbKu9D3.js +4 -0
  148. package/dist/channel.runtime-DgRuSo5T.js +109 -0
  149. package/dist/channel.runtime-tRXUD2p2.js +2528 -0
  150. package/dist/channel.setup-3aVku-g-.js +1098 -0
  151. package/dist/channel.setup-Cau-V9UT.d.ts +7 -0
  152. package/dist/channel.setup-DT7Z9egu.js +343 -0
  153. package/dist/channel.setup-DhlkGTJV.js +10 -0
  154. package/dist/channel.setup-P5V7jWHY.d.ts +6 -0
  155. package/dist/channel.setup-x333W0eZ.d.ts +8 -0
  156. package/dist/chat-D3LWYymW.js +2666 -0
  157. package/dist/chrome--ATU1T0X.js +1503 -0
  158. package/dist/cli/run-main.js +9 -9
  159. package/dist/cli-D8hIXnS1.js +1341 -0
  160. package/dist/cli-backend-C1JA33SE.d.ts +5 -0
  161. package/dist/cli-backend-D8WmqNqJ.d.ts +5 -0
  162. package/dist/cli-compaction-jmi3u2HG.js +347 -0
  163. package/dist/cli-daS2Mzjd.d.ts +20 -0
  164. package/dist/cli-metadata-Cy9MEdPv.js +22 -0
  165. package/dist/cli-runner-DuT8oeZF.js +540 -0
  166. package/dist/cli-runner-DvKgnkCL.js +2 -0
  167. package/dist/cli-runner.runtime-B-aD16MD.js +4 -0
  168. package/dist/cli-runner.runtime-DofcKX1U.js +3 -0
  169. package/dist/cli-runner.runtime.js +1 -1
  170. package/dist/cli-shared-BFZytJBA.d.ts +20 -0
  171. package/dist/cli-startup-metadata.json +13 -13
  172. package/dist/client-B5IcAlfB.js +650 -0
  173. package/dist/client-adapter-CXA67h2E.js +897 -0
  174. package/dist/client-factory-aY6TuKfQ.js +9 -0
  175. package/dist/command-auth-DS9XgXEG.js +135 -0
  176. package/dist/command-execution-startup-DQOLt5Sz.js +87 -0
  177. package/dist/command-handlers-DqxF-IM9.js +1609 -0
  178. package/dist/command-registry-BSVx1oOc.js +4 -0
  179. package/dist/command-registry-CsPIOiQ3.js +9 -0
  180. package/dist/command-registry-core-Bzu5ff5F.js +110 -0
  181. package/dist/command-status.runtime-MKsizBC-.js +90 -0
  182. package/dist/command-status.runtime.js +1 -1
  183. package/dist/commands-B6Y6rqal.d.ts +113 -0
  184. package/dist/commands-acp-ClJofWty.js +74 -0
  185. package/dist/commands-compact.runtime-7VqYX4tS.js +10 -0
  186. package/dist/commands-compact.runtime.js +1 -1
  187. package/dist/commands-handlers.runtime-Dfqf_Oyp.js +6154 -0
  188. package/dist/commands-handlers.runtime.js +1 -1
  189. package/dist/commands-status-CRaEj9Vf.js +16 -0
  190. package/dist/commands-status-uDaqCP2F.js +3 -0
  191. package/dist/commands-status.runtime-uDaqCP2F.js +3 -0
  192. package/dist/commands-status.runtime.js +1 -1
  193. package/dist/commands-subagents-control.runtime-BaYcGLtc.js +2 -0
  194. package/dist/commands-subagents-control.runtime-C4xMpLed.js +3 -0
  195. package/dist/commands-subagents-control.runtime.js +1 -1
  196. package/dist/commands-system-prompt-C3lzz7wW.js +162 -0
  197. package/dist/commands-system-prompt-DpiW5FkQ.js +2 -0
  198. package/dist/commands.runtime-l4fGcB5c.js +176 -0
  199. package/dist/commands.runtime.js +1 -1
  200. package/dist/commitments/runtime.js +1 -1
  201. package/dist/compact-Dq0mi-y_.js +480 -0
  202. package/dist/compact-voJdoXm-.js +1141 -0
  203. package/dist/compact.runtime-BNLPSDQQ.js +12 -0
  204. package/dist/compact.runtime.js +1 -1
  205. package/dist/completion-cli-qHUelvvd.js +315 -0
  206. package/dist/computer-use-dP3FCUtq.js +367 -0
  207. package/dist/config-BDGPPDJ7.js +2 -0
  208. package/dist/config-Dg3sgjXu.js +373 -0
  209. package/dist/config-cli-INHPnZOG.js +1633 -0
  210. package/dist/config-mutations-CAgnXnDt.js +159 -0
  211. package/dist/config-schema-BkkovNaj.d.ts +20 -0
  212. package/dist/configure-M1VU0h9O.js +3 -0
  213. package/dist/configure.commands-CM8RXyn3.js +1251 -0
  214. package/dist/configure.commands-PvOJd4nu.js +2 -0
  215. package/dist/context-engine-host-compat-D7I7Q63Z.js +288 -0
  216. package/dist/context-engine-host-compat-DGHUiQUV.js +2 -0
  217. package/dist/context-engine-lifecycle-Zsi-S6qy.js +1274 -0
  218. package/dist/contracts-testkit-Ch7UfUw6.d.ts +145 -0
  219. package/dist/control-auth-BKUTwIvH.js +114 -0
  220. package/dist/control-service-CKUzEAa0.js +145 -0
  221. package/dist/control-ui/assets/agents-CUjpwxUf.js +1008 -0
  222. package/dist/control-ui/assets/channel-config-extras-Dd4z5RQ8.js +2 -0
  223. package/dist/control-ui/assets/channels-554ojNKp.js +367 -0
  224. package/dist/control-ui/assets/cron-BAd2PXq5.js +1013 -0
  225. package/dist/control-ui/assets/debug-BGCb3cT4.js +97 -0
  226. package/dist/control-ui/assets/index-BXico1DI.js +7370 -0
  227. package/dist/control-ui/assets/instances-EkBPy6m3.js +57 -0
  228. package/dist/control-ui/assets/logs-zcOeZekZ.js +74 -0
  229. package/dist/control-ui/assets/nodes-BymRwDa6.js +436 -0
  230. package/dist/control-ui/assets/sessions-C_oSuy7x.js +399 -0
  231. package/dist/control-ui/assets/skills-BVjEetcV.js +314 -0
  232. package/dist/control-ui/assets/skills-shared-weS2ZYM5.js +11 -0
  233. package/dist/control-ui/index.html +1 -1
  234. package/dist/control-ui/sw.js +1 -1
  235. package/dist/conversation-binding-runtime-rXAYUZyM.js +4 -0
  236. package/dist/conversation-runtime-CV0pSg81.js +31 -0
  237. package/dist/core-BV0irASW.js +282 -0
  238. package/dist/core-DIjsbXou.d.ts +224 -0
  239. package/dist/core-api-CyhjZVzn.js +5 -0
  240. package/dist/core-api-YdHGjff8.js +2 -0
  241. package/dist/crestodian/crestodian.js +1 -1
  242. package/dist/crestodian/rescue-message.js +1 -1
  243. package/dist/crestodian-n5FVHIW5.js +55 -0
  244. package/dist/daocore-runtime-DhfJoXrT.d.ts +151 -0
  245. package/dist/daocore-tools-CXDZ1Xhe.js +11727 -0
  246. package/dist/dashboard-CeQV6L1K.js +263 -0
  247. package/dist/delivery-D7LfafSk.js +1002 -0
  248. package/dist/dev-BSY4rs1s.js +97 -0
  249. package/dist/dialogue-DWFnjTiN.js +37 -0
  250. package/dist/dir-fetch-tool-BnlEyfZh.js +565 -0
  251. package/dist/dir-list-tool-Blhg_vTH.js +100 -0
  252. package/dist/direct-dm-DJPIaf5J.js +64 -0
  253. package/dist/directive-handling.fast-lane-DGV6PZYZ.js +68 -0
  254. package/dist/directive-handling.impl-CTDwclQa.js +818 -0
  255. package/dist/directive-handling.impl-_zI0_GsT.js +2 -0
  256. package/dist/directive-handling.model-selection-C8lG4FHQ.js +122 -0
  257. package/dist/directive-handling.persist.runtime-CmLb1evR.js +263 -0
  258. package/dist/directive-handling.persist.runtime.js +1 -1
  259. package/dist/dispatch-DvZRbIrc.js +1640 -0
  260. package/dist/dispatch-acp-transcript.runtime-PehNIsnR.js +40 -0
  261. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  262. package/dist/dispatch-acp.runtime-Dg8ft-Ve.js +18 -0
  263. package/dist/dispatch-acp.runtime.js +1 -1
  264. package/dist/doctor-DJFM3lrT.js +6 -0
  265. package/dist/doctor-_ob4EiVf.js +2 -0
  266. package/dist/doctor-config-flow-D6iEk-en.js +1741 -0
  267. package/dist/doctor-core-checks-CCfWWL1-.js +573 -0
  268. package/dist/doctor-core-checks-CqkHUVcZ.js +2 -0
  269. package/dist/doctor-health-CrNPft4G.js +65 -0
  270. package/dist/doctor-health-contributions-Bwu5M_GQ.js +696 -0
  271. package/dist/doctor-lint-B2Wb_jEn.js +94 -0
  272. package/dist/doctor-prompter-cXq7RExi.js +58 -0
  273. package/dist/doctor-state-integrity-DfYyVFbQ.js +1231 -0
  274. package/dist/dynamic-tools-CbHsYkuk.js +486 -0
  275. package/dist/embedded-backend-IYuqoxzv.js +579 -0
  276. package/dist/embedded-gateway-stub.runtime-BjJ_93Pp.js +12 -0
  277. package/dist/embedded-gateway-stub.runtime.js +1 -1
  278. package/dist/embedding-provider-B50jxKn8.d.ts +65 -0
  279. package/dist/embedding-provider-DOktf4gm.d.ts +21 -0
  280. package/dist/embedding-provider-DZOjws8e.d.ts +16 -0
  281. package/dist/entry.d.ts +1 -1
  282. package/dist/entry.js +1 -1
  283. package/dist/exec-approvals-VjIKwFog.js +149 -0
  284. package/dist/extensionAPI.js +1 -1
  285. package/dist/extensions/active-memory/index.d.ts +1 -1
  286. package/dist/extensions/active-memory/index.js +1 -1
  287. package/dist/extensions/admin-http-rpc/index.d.ts +1 -1
  288. package/dist/extensions/admin-http-rpc/index.js +1 -1
  289. package/dist/extensions/alibaba/index.d.ts +1 -1
  290. package/dist/extensions/anthropic/api.d.ts +3 -3
  291. package/dist/extensions/anthropic/cli-backend-api.d.ts +2 -2
  292. package/dist/extensions/anthropic/cli-backend.d.ts +1 -1
  293. package/dist/extensions/anthropic/cli-migration.d.ts +1 -1
  294. package/dist/extensions/anthropic/cli-shared.d.ts +1 -1
  295. package/dist/extensions/anthropic/contract-api.d.ts +1 -1
  296. package/dist/extensions/anthropic/index.d.ts +1 -1
  297. package/dist/extensions/anthropic/provider-contract-api.d.ts +1 -1
  298. package/dist/extensions/anthropic/provider-discovery.d.ts +1 -1
  299. package/dist/extensions/anthropic/provider-policy-api.d.ts +1 -1
  300. package/dist/extensions/anthropic/register.runtime.d.ts +1 -1
  301. package/dist/extensions/anthropic/replay-policy.d.ts +1 -1
  302. package/dist/extensions/anthropic/setup-api.d.ts +1 -1
  303. package/dist/extensions/anthropic/stream-wrappers.d.ts +1 -1
  304. package/dist/extensions/anthropic/test-api.d.ts +2 -2
  305. package/dist/extensions/arcee/index.d.ts +1 -1
  306. package/dist/extensions/azure-speech/index.d.ts +1 -1
  307. package/dist/extensions/azure-speech/speech-provider.d.ts +1 -1
  308. package/dist/extensions/bonjour/index.d.ts +1 -1
  309. package/dist/extensions/browser/browser-bridge.js +1 -1
  310. package/dist/extensions/browser/browser-config.js +4 -4
  311. package/dist/extensions/browser/browser-control-auth.js +2 -2
  312. package/dist/extensions/browser/browser-doctor.js +2 -2
  313. package/dist/extensions/browser/browser-maintenance.js +1 -1
  314. package/dist/extensions/browser/browser-profiles.js +2 -2
  315. package/dist/extensions/browser/browser-runtime-api.js +11 -11
  316. package/dist/extensions/browser/cli-metadata.d.ts +1 -1
  317. package/dist/extensions/browser/cli-metadata.js +1 -1
  318. package/dist/extensions/browser/index.d.ts +1 -1
  319. package/dist/extensions/browser/index.js +1 -1
  320. package/dist/extensions/browser/plugin-registration.d.ts +1 -1
  321. package/dist/extensions/browser/plugin-registration.js +1 -1
  322. package/dist/extensions/browser/register.runtime.d.ts +2 -2
  323. package/dist/extensions/browser/register.runtime.js +4 -4
  324. package/dist/extensions/browser/runtime-api.d.ts +3 -3
  325. package/dist/extensions/browser/runtime-api.js +13 -13
  326. package/dist/extensions/browser/setup-api.d.ts +1 -1
  327. package/dist/extensions/byteplus/index.d.ts +1 -1
  328. package/dist/extensions/byteplus/provider-discovery.d.ts +1 -1
  329. package/dist/extensions/canvas/cli-metadata.d.ts +1 -1
  330. package/dist/extensions/canvas/index.d.ts +1 -1
  331. package/dist/extensions/canvas/index.js +1 -1
  332. package/dist/extensions/canvas/runtime-api.d.ts +2 -2
  333. package/dist/extensions/canvas/setup-api.d.ts +1 -1
  334. package/dist/extensions/cerebras/index.d.ts +1 -1
  335. package/dist/extensions/chutes/index.d.ts +1 -1
  336. package/dist/extensions/clickclack/api.d.ts +2 -2
  337. package/dist/extensions/clickclack/api.js +2 -2
  338. package/dist/extensions/clickclack/channel-plugin-api.d.ts +1 -1
  339. package/dist/extensions/clickclack/channel-plugin-api.js +1 -1
  340. package/dist/extensions/clickclack/index.d.ts +2 -2
  341. package/dist/extensions/clickclack/runtime-api.d.ts +2 -2
  342. package/dist/extensions/clickclack/runtime-api.js +2 -2
  343. package/dist/extensions/cloudflare-ai-gateway/index.d.ts +1 -1
  344. package/dist/extensions/cloudflare-ai-gateway/stream-wrappers.d.ts +1 -1
  345. package/dist/extensions/comfy/index.d.ts +1 -1
  346. package/dist/extensions/copilot-proxy/index.d.ts +1 -1
  347. package/dist/extensions/copilot-proxy/runtime-api.d.ts +2 -2
  348. package/dist/extensions/deepgram/index.d.ts +1 -1
  349. package/dist/extensions/deepgram/realtime-transcription-provider.d.ts +1 -1
  350. package/dist/extensions/deepgram/test-api.d.ts +1 -1
  351. package/dist/extensions/deepinfra/api.d.ts +2 -2
  352. package/dist/extensions/deepinfra/embedding-provider.d.ts +1 -1
  353. package/dist/extensions/deepinfra/index.d.ts +1 -1
  354. package/dist/extensions/deepinfra/memory-embedding-adapter.d.ts +1 -1
  355. package/dist/extensions/deepinfra/speech-provider.d.ts +1 -1
  356. package/dist/extensions/deepseek/api.d.ts +1 -1
  357. package/dist/extensions/deepseek/index.d.ts +1 -1
  358. package/dist/extensions/deepseek/provider-discovery.d.ts +1 -1
  359. package/dist/extensions/deepseek/provider-policy-api.d.ts +1 -1
  360. package/dist/extensions/deepseek/stream.d.ts +1 -1
  361. package/dist/extensions/deepseek/thinking.d.ts +1 -1
  362. package/dist/extensions/device-pair/api.d.ts +3 -3
  363. package/dist/extensions/device-pair/api.js +1 -1
  364. package/dist/extensions/device-pair/index.d.ts +1 -1
  365. package/dist/extensions/device-pair/notify.d.ts +1 -1
  366. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  367. package/dist/extensions/document-extract/index.d.ts +1 -1
  368. package/dist/extensions/duckduckgo/index.d.ts +1 -1
  369. package/dist/extensions/elevenlabs/index.d.ts +1 -1
  370. package/dist/extensions/elevenlabs/realtime-transcription-provider.d.ts +1 -1
  371. package/dist/extensions/elevenlabs/setup-api.d.ts +1 -1
  372. package/dist/extensions/elevenlabs/speech-provider.d.ts +1 -1
  373. package/dist/extensions/elevenlabs/test-api.d.ts +2 -2
  374. package/dist/extensions/exa/index.d.ts +1 -1
  375. package/dist/extensions/fal/index.d.ts +1 -1
  376. package/dist/extensions/fal/provider-contract-api.d.ts +1 -1
  377. package/dist/extensions/fal/provider-registration.d.ts +1 -1
  378. package/dist/extensions/file-transfer/index.d.ts +1 -1
  379. package/dist/extensions/file-transfer/index.js +4 -4
  380. package/dist/extensions/firecrawl/index.d.ts +1 -1
  381. package/dist/extensions/fireworks/index.d.ts +1 -1
  382. package/dist/extensions/fireworks/provider-policy-api.d.ts +1 -1
  383. package/dist/extensions/fireworks/stream.d.ts +1 -1
  384. package/dist/extensions/fireworks/thinking-policy.d.ts +1 -1
  385. package/dist/extensions/github-copilot/embeddings.d.ts +1 -1
  386. package/dist/extensions/github-copilot/index.d.ts +1 -1
  387. package/dist/extensions/github-copilot/models.d.ts +1 -1
  388. package/dist/extensions/github-copilot/register.runtime.d.ts +2 -2
  389. package/dist/extensions/github-copilot/stream.d.ts +1 -1
  390. package/dist/extensions/google/api.d.ts +5 -5
  391. package/dist/extensions/google/cli-backend.d.ts +1 -1
  392. package/dist/extensions/google/embedding-batch.d.ts +1 -1
  393. package/dist/extensions/google/embedding-provider.d.ts +1 -1
  394. package/dist/extensions/google/gemini-cli-provider.d.ts +1 -1
  395. package/dist/extensions/google/index.d.ts +1 -1
  396. package/dist/extensions/google/memory-embedding-adapter.d.ts +1 -1
  397. package/dist/extensions/google/provider-contract-api.d.ts +1 -1
  398. package/dist/extensions/google/provider-hooks.d.ts +2 -2
  399. package/dist/extensions/google/provider-models.d.ts +1 -1
  400. package/dist/extensions/google/provider-policy-api.d.ts +1 -1
  401. package/dist/extensions/google/provider-policy.d.ts +1 -1
  402. package/dist/extensions/google/provider-registration.d.ts +1 -1
  403. package/dist/extensions/google/realtime-voice-provider.d.ts +1 -1
  404. package/dist/extensions/google/runtime-api.d.ts +3 -3
  405. package/dist/extensions/google/setup-api.d.ts +1 -1
  406. package/dist/extensions/google/speech-provider.d.ts +1 -1
  407. package/dist/extensions/google/test-api.d.ts +2 -2
  408. package/dist/extensions/google/thinking-api.d.ts +1 -1
  409. package/dist/extensions/google/thinking.d.ts +1 -1
  410. package/dist/extensions/google/transport-stream.d.ts +1 -1
  411. package/dist/extensions/gradium/index.d.ts +1 -1
  412. package/dist/extensions/gradium/speech-provider.d.ts +1 -1
  413. package/dist/extensions/groq/index.d.ts +1 -1
  414. package/dist/extensions/huggingface/index.d.ts +1 -1
  415. package/dist/extensions/image-generation-core/api.d.ts +4 -4
  416. package/dist/extensions/image-generation-core/runtime-api.d.ts +1 -1
  417. package/dist/extensions/imessage/api.d.ts +2 -2
  418. package/dist/extensions/imessage/api.js +2 -2
  419. package/dist/extensions/imessage/channel-plugin-api.d.ts +1 -1
  420. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  421. package/dist/extensions/imessage/index.d.ts +2 -2
  422. package/dist/extensions/imessage/message-tool-api.d.ts +1 -1
  423. package/dist/extensions/imessage/runtime-api.d.ts +4 -4
  424. package/dist/extensions/imessage/runtime-api.js +3 -3
  425. package/dist/extensions/imessage/setup-entry.d.ts +2 -2
  426. package/dist/extensions/imessage/test-api.d.ts +1 -1
  427. package/dist/extensions/inworld/index.d.ts +1 -1
  428. package/dist/extensions/inworld/speech-provider.d.ts +1 -1
  429. package/dist/extensions/irc/api.d.ts +1 -1
  430. package/dist/extensions/irc/api.js +2 -2
  431. package/dist/extensions/irc/channel-plugin-api.d.ts +1 -1
  432. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  433. package/dist/extensions/irc/index.d.ts +2 -2
  434. package/dist/extensions/irc/setup-entry.d.ts +2 -2
  435. package/dist/extensions/kilocode/index.d.ts +1 -1
  436. package/dist/extensions/kimi-coding/index.d.ts +1 -1
  437. package/dist/extensions/kimi-coding/stream.d.ts +1 -1
  438. package/dist/extensions/litellm/index.d.ts +1 -1
  439. package/dist/extensions/llm-task/api.d.ts +2 -2
  440. package/dist/extensions/llm-task/index.d.ts +1 -1
  441. package/dist/extensions/llm-task/index.js +1 -1
  442. package/dist/extensions/lmstudio/api.d.ts +1 -1
  443. package/dist/extensions/lmstudio/index.d.ts +1 -1
  444. package/dist/extensions/lmstudio/memory-embedding-adapter.d.ts +1 -1
  445. package/dist/extensions/mattermost/api.js +1 -1
  446. package/dist/extensions/mattermost/channel-plugin-api.d.ts +2 -2
  447. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  448. package/dist/extensions/mattermost/channel-plugin-runtime.d.ts +1 -1
  449. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  450. package/dist/extensions/mattermost/index.d.ts +2 -2
  451. package/dist/extensions/mattermost/policy-api.js +1 -1
  452. package/dist/extensions/mattermost/runtime-api.d.ts +9 -9
  453. package/dist/extensions/mattermost/runtime-api.js +2 -2
  454. package/dist/extensions/mattermost/setup-entry.d.ts +2 -2
  455. package/dist/extensions/mattermost/slash-route-api.d.ts +1 -1
  456. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  457. package/dist/extensions/memory-core/api.d.ts +1 -1
  458. package/dist/extensions/memory-core/cli-metadata.d.ts +1 -1
  459. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  460. package/dist/extensions/memory-core/index.d.ts +1 -1
  461. package/dist/extensions/memory-core/manager-runtime.d.ts +1 -1
  462. package/dist/extensions/memory-core/runtime-api.d.ts +2 -2
  463. package/dist/extensions/memory-wiki/api.d.ts +3 -3
  464. package/dist/extensions/memory-wiki/cli-metadata.d.ts +1 -1
  465. package/dist/extensions/memory-wiki/index.d.ts +1 -1
  466. package/dist/extensions/memory-wiki/setup-api.d.ts +1 -1
  467. package/dist/extensions/microsoft/index.d.ts +1 -1
  468. package/dist/extensions/microsoft/speech-provider.d.ts +1 -1
  469. package/dist/extensions/microsoft/test-api.d.ts +1 -1
  470. package/dist/extensions/microsoft-foundry/auth.d.ts +1 -1
  471. package/dist/extensions/microsoft-foundry/cli.d.ts +1 -1
  472. package/dist/extensions/microsoft-foundry/index.d.ts +1 -1
  473. package/dist/extensions/microsoft-foundry/onboard.d.ts +3 -3
  474. package/dist/extensions/microsoft-foundry/provider.d.ts +1 -1
  475. package/dist/extensions/microsoft-foundry/runtime.d.ts +1 -1
  476. package/dist/extensions/microsoft-foundry/shared-runtime.d.ts +1 -1
  477. package/dist/extensions/microsoft-foundry/shared.d.ts +1 -1
  478. package/dist/extensions/migrate-claude/apply.d.ts +1 -1
  479. package/dist/extensions/migrate-claude/apply.js +1 -1
  480. package/dist/extensions/migrate-claude/config.d.ts +1 -1
  481. package/dist/extensions/migrate-claude/helpers.d.ts +1 -1
  482. package/dist/extensions/migrate-claude/index.d.ts +1 -1
  483. package/dist/extensions/migrate-claude/index.js +1 -1
  484. package/dist/extensions/migrate-claude/memory.d.ts +2 -2
  485. package/dist/extensions/migrate-claude/plan.d.ts +1 -1
  486. package/dist/extensions/migrate-claude/plan.js +1 -1
  487. package/dist/extensions/migrate-claude/provider.d.ts +1 -1
  488. package/dist/extensions/migrate-claude/provider.js +1 -1
  489. package/dist/extensions/migrate-claude/skills.d.ts +2 -2
  490. package/dist/extensions/migrate-claude/targets.d.ts +1 -1
  491. package/dist/extensions/migrate-claude/targets.js +1 -1
  492. package/dist/extensions/migrate-hermes/apply.d.ts +1 -1
  493. package/dist/extensions/migrate-hermes/apply.js +1 -1
  494. package/dist/extensions/migrate-hermes/config.d.ts +1 -1
  495. package/dist/extensions/migrate-hermes/helpers.d.ts +1 -1
  496. package/dist/extensions/migrate-hermes/index.d.ts +1 -1
  497. package/dist/extensions/migrate-hermes/index.js +1 -1
  498. package/dist/extensions/migrate-hermes/items.d.ts +1 -1
  499. package/dist/extensions/migrate-hermes/model.d.ts +1 -1
  500. package/dist/extensions/migrate-hermes/model.js +1 -1
  501. package/dist/extensions/migrate-hermes/plan.d.ts +1 -1
  502. package/dist/extensions/migrate-hermes/plan.js +1 -1
  503. package/dist/extensions/migrate-hermes/provider.d.ts +1 -1
  504. package/dist/extensions/migrate-hermes/provider.js +1 -1
  505. package/dist/extensions/migrate-hermes/secrets.d.ts +2 -2
  506. package/dist/extensions/migrate-hermes/secrets.js +1 -1
  507. package/dist/extensions/migrate-hermes/skills.d.ts +2 -2
  508. package/dist/extensions/migrate-hermes/targets.d.ts +1 -1
  509. package/dist/extensions/migrate-hermes/targets.js +1 -1
  510. package/dist/extensions/minimax/index.d.ts +1 -1
  511. package/dist/extensions/minimax/provider-contract-api.d.ts +1 -1
  512. package/dist/extensions/minimax/provider-registration.d.ts +1 -1
  513. package/dist/extensions/minimax/speech-provider.d.ts +1 -1
  514. package/dist/extensions/mistral/embedding-provider.d.ts +1 -1
  515. package/dist/extensions/mistral/index.d.ts +1 -1
  516. package/dist/extensions/mistral/memory-embedding-adapter.d.ts +1 -1
  517. package/dist/extensions/mistral/realtime-transcription-provider.d.ts +1 -1
  518. package/dist/extensions/mistral/test-api.d.ts +1 -1
  519. package/dist/extensions/moonshot/index.d.ts +1 -1
  520. package/dist/extensions/moonshot/provider-contract-api.d.ts +1 -1
  521. package/dist/extensions/moonshot/provider-discovery.d.ts +1 -1
  522. package/dist/extensions/nvidia/index.d.ts +1 -1
  523. package/dist/extensions/oc-path/cli-metadata.d.ts +1 -1
  524. package/dist/extensions/oc-path/cli-registration.d.ts +1 -1
  525. package/dist/extensions/oc-path/index.d.ts +1 -1
  526. package/dist/extensions/ollama/api.d.ts +1 -1
  527. package/dist/extensions/ollama/index.d.ts +1 -1
  528. package/dist/extensions/ollama/provider-discovery.d.ts +1 -1
  529. package/dist/extensions/ollama/provider-policy-api.d.ts +1 -1
  530. package/dist/extensions/ollama/runtime-api.d.ts +1 -1
  531. package/dist/extensions/open-prose/index.d.ts +1 -1
  532. package/dist/extensions/open-prose/runtime-api.d.ts +2 -2
  533. package/dist/extensions/openai/api.d.ts +4 -4
  534. package/dist/extensions/openai/embedding-batch.d.ts +1 -1
  535. package/dist/extensions/openai/embedding-provider.d.ts +1 -1
  536. package/dist/extensions/openai/index.d.ts +1 -1
  537. package/dist/extensions/openai/memory-embedding-adapter.d.ts +1 -1
  538. package/dist/extensions/openai/openai-codex-oauth.runtime.d.ts +1 -1
  539. package/dist/extensions/openai/openai-codex-provider.d.ts +1 -1
  540. package/dist/extensions/openai/openai-provider.d.ts +1 -1
  541. package/dist/extensions/openai/prompt-overlay.d.ts +1 -1
  542. package/dist/extensions/openai/provider-contract-api.d.ts +1 -1
  543. package/dist/extensions/openai/provider-policy-api.d.ts +1 -1
  544. package/dist/extensions/openai/realtime-transcription-provider.d.ts +1 -1
  545. package/dist/extensions/openai/realtime-voice-provider.d.ts +1 -1
  546. package/dist/extensions/openai/register.runtime.d.ts +6 -6
  547. package/dist/extensions/openai/replay-policy.d.ts +1 -1
  548. package/dist/extensions/openai/setup-api.d.ts +1 -1
  549. package/dist/extensions/openai/shared.d.ts +3 -3
  550. package/dist/extensions/openai/speech-provider.d.ts +1 -1
  551. package/dist/extensions/openai/test-api.d.ts +3 -3
  552. package/dist/extensions/openai/thinking-policy.d.ts +1 -1
  553. package/dist/extensions/openai/transport-policy.d.ts +1 -1
  554. package/dist/extensions/opencode/index.d.ts +1 -1
  555. package/dist/extensions/opencode/provider-policy-api.d.ts +1 -1
  556. package/dist/extensions/opencode-go/index.d.ts +1 -1
  557. package/dist/extensions/opencode-go/provider-catalog.d.ts +1 -1
  558. package/dist/extensions/opencode-go/stream.d.ts +1 -1
  559. package/dist/extensions/openrouter/api.d.ts +1 -1
  560. package/dist/extensions/openrouter/index.d.ts +1 -1
  561. package/dist/extensions/openrouter/provider-contract-api.d.ts +1 -1
  562. package/dist/extensions/openrouter/provider-policy-api.d.ts +1 -1
  563. package/dist/extensions/openrouter/speech-provider.d.ts +1 -1
  564. package/dist/extensions/openrouter/stream.d.ts +1 -1
  565. package/dist/extensions/openrouter/test-api.d.ts +1 -1
  566. package/dist/extensions/openrouter/thinking-policy.d.ts +1 -1
  567. package/dist/extensions/openrouter/video-generation-provider.d.ts +1 -1
  568. package/dist/extensions/openrouter/video-model-catalog.d.ts +1 -1
  569. package/dist/extensions/perplexity/index.d.ts +1 -1
  570. package/dist/extensions/phone-control/index.d.ts +1 -1
  571. package/dist/extensions/phone-control/runtime-api.d.ts +2 -2
  572. package/dist/extensions/policy/api.js +1 -1
  573. package/dist/extensions/policy/index.d.ts +1 -1
  574. package/dist/extensions/policy/index.js +2 -2
  575. package/dist/extensions/qianfan/index.d.ts +1 -1
  576. package/dist/extensions/qwen/api.d.ts +1 -1
  577. package/dist/extensions/qwen/index.d.ts +1 -1
  578. package/dist/extensions/qwen/stream.d.ts +1 -1
  579. package/dist/extensions/runway/index.d.ts +1 -1
  580. package/dist/extensions/searxng/index.d.ts +1 -1
  581. package/dist/extensions/senseaudio/index.d.ts +1 -1
  582. package/dist/extensions/sglang/index.d.ts +1 -1
  583. package/dist/extensions/signal/api.d.ts +3 -3
  584. package/dist/extensions/signal/api.js +6 -6
  585. package/dist/extensions/signal/channel-entry.d.ts +2 -2
  586. package/dist/extensions/signal/channel-plugin-api.d.ts +1 -1
  587. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  588. package/dist/extensions/signal/index.d.ts +2 -2
  589. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  590. package/dist/extensions/signal/runtime-api.d.ts +7 -7
  591. package/dist/extensions/signal/runtime-api.js +7 -7
  592. package/dist/extensions/signal/setup-entry.d.ts +2 -2
  593. package/dist/extensions/skill-workshop/api.d.ts +2 -2
  594. package/dist/extensions/skill-workshop/api.js +1 -1
  595. package/dist/extensions/skill-workshop/index.d.ts +1 -1
  596. package/dist/extensions/skill-workshop/index.js +2 -2
  597. package/dist/extensions/speech-core/api.d.ts +3 -3
  598. package/dist/extensions/speech-core/runtime-api.d.ts +2 -2
  599. package/dist/extensions/stepfun/index.d.ts +1 -1
  600. package/dist/extensions/synthetic/index.d.ts +1 -1
  601. package/dist/extensions/talk-voice/api.d.ts +2 -2
  602. package/dist/extensions/talk-voice/index.d.ts +1 -1
  603. package/dist/extensions/tavily/index.d.ts +1 -1
  604. package/dist/extensions/telegram/account-inspect-api.js +1 -1
  605. package/dist/extensions/telegram/api.d.ts +4 -4
  606. package/dist/extensions/telegram/api.js +11 -11
  607. package/dist/extensions/telegram/channel-plugin-api.d.ts +2 -2
  608. package/dist/extensions/telegram/channel-plugin-api.js +2 -2
  609. package/dist/extensions/telegram/contract-api.d.ts +1 -1
  610. package/dist/extensions/telegram/contract-api.js +3 -3
  611. package/dist/extensions/telegram/index.d.ts +2 -2
  612. package/dist/extensions/telegram/runtime-api.d.ts +4 -4
  613. package/dist/extensions/telegram/runtime-api.js +7 -7
  614. package/dist/extensions/telegram/security-audit-contract-api.js +1 -1
  615. package/dist/extensions/telegram/setup-entry.d.ts +2 -2
  616. package/dist/extensions/telegram/setup-plugin-api.d.ts +1 -1
  617. package/dist/extensions/telegram/setup-plugin-api.js +1 -1
  618. package/dist/extensions/telegram/test-api.js +2 -2
  619. package/dist/extensions/tencent/index.d.ts +1 -1
  620. package/dist/extensions/tencent/provider-discovery.d.ts +1 -1
  621. package/dist/extensions/thread-ownership/api.d.ts +2 -2
  622. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  623. package/dist/extensions/together/index.d.ts +1 -1
  624. package/dist/extensions/tokenjuice/index.d.ts +1 -1
  625. package/dist/extensions/tokenjuice/tool-result-middleware.d.ts +1 -1
  626. package/dist/extensions/tts-local-cli/index.d.ts +1 -1
  627. package/dist/extensions/tts-local-cli/speech-provider.d.ts +1 -1
  628. package/dist/extensions/venice/index.d.ts +1 -1
  629. package/dist/extensions/venice/stream.d.ts +1 -1
  630. package/dist/extensions/vercel-ai-gateway/index.d.ts +1 -1
  631. package/dist/extensions/vercel-ai-gateway/thinking.d.ts +1 -1
  632. package/dist/extensions/video-generation-core/api.d.ts +3 -3
  633. package/dist/extensions/video-generation-core/runtime-api.d.ts +1 -1
  634. package/dist/extensions/vllm/api.d.ts +1 -1
  635. package/dist/extensions/vllm/index.d.ts +1 -1
  636. package/dist/extensions/vllm/stream.d.ts +1 -1
  637. package/dist/extensions/volcengine/index.d.ts +1 -1
  638. package/dist/extensions/volcengine/provider-discovery.d.ts +1 -1
  639. package/dist/extensions/volcengine/speech-provider.d.ts +1 -1
  640. package/dist/extensions/voyage/embedding-batch.d.ts +1 -1
  641. package/dist/extensions/voyage/embedding-provider.d.ts +1 -1
  642. package/dist/extensions/voyage/index.d.ts +1 -1
  643. package/dist/extensions/voyage/memory-embedding-adapter.d.ts +1 -1
  644. package/dist/extensions/vydra/index.d.ts +1 -1
  645. package/dist/extensions/vydra/speech-provider.d.ts +1 -1
  646. package/dist/extensions/web-readability/index.d.ts +1 -1
  647. package/dist/extensions/webhooks/api.d.ts +2 -2
  648. package/dist/extensions/webhooks/api.js +1 -1
  649. package/dist/extensions/webhooks/index.d.ts +1 -1
  650. package/dist/extensions/webhooks/index.js +1 -1
  651. package/dist/extensions/webhooks/runtime-api.d.ts +2 -2
  652. package/dist/extensions/xai/api.d.ts +1 -1
  653. package/dist/extensions/xai/index.d.ts +1 -1
  654. package/dist/extensions/xai/index.js +4 -4
  655. package/dist/extensions/xai/provider-contract-api.d.ts +1 -1
  656. package/dist/extensions/xai/provider-discovery.d.ts +1 -1
  657. package/dist/extensions/xai/provider-models.d.ts +1 -1
  658. package/dist/extensions/xai/provider-policy-api.d.ts +1 -1
  659. package/dist/extensions/xai/realtime-transcription-provider.d.ts +1 -1
  660. package/dist/extensions/xai/realtime-transcription-provider.js +1 -1
  661. package/dist/extensions/xai/setup-api.d.ts +1 -1
  662. package/dist/extensions/xai/speech-provider.d.ts +1 -1
  663. package/dist/extensions/xai/speech-provider.js +1 -1
  664. package/dist/extensions/xai/stream.d.ts +1 -1
  665. package/dist/extensions/xai/test-api.js +1 -1
  666. package/dist/extensions/xai/tts.js +1 -1
  667. package/dist/extensions/xai/web-search.js +1 -1
  668. package/dist/extensions/xai/xai-oauth.d.ts +1 -1
  669. package/dist/extensions/xai/xai-oauth.js +1 -1
  670. package/dist/extensions/xiaomi/index.d.ts +1 -1
  671. package/dist/extensions/xiaomi/speech-provider.d.ts +1 -1
  672. package/dist/extensions/xiaomi/stream.d.ts +1 -1
  673. package/dist/extensions/xiaomi/thinking.d.ts +1 -1
  674. package/dist/extensions/zai/index.d.ts +1 -1
  675. package/dist/file-fetch-tool-smMykVXl.js +124 -0
  676. package/dist/file-write-tool-yEYLZ2hU.js +127 -0
  677. package/dist/format-DyREJP5V.js +1145 -0
  678. package/dist/gateway/protocol/index.d.ts +1 -1
  679. package/dist/gateway-cli-D4yhwJa8.js +435 -0
  680. package/dist/gateway-method-runtime-B8AOnwqD.js +21 -0
  681. package/dist/gateway-runtime-BqKz92h9.d.ts +163 -0
  682. package/dist/gemini-cli-provider-wUxyeRzT.d.ts +6 -0
  683. package/dist/get-reply-Co-_Qlr-.js +4689 -0
  684. package/dist/get-reply-from-config.runtime-BcbRKxzJ.js +2 -0
  685. package/dist/get-reply-from-config.runtime.js +1 -1
  686. package/dist/graph-users-CF7Dlee2.js +1419 -0
  687. package/dist/group-access-BTU-w5S5.js +112 -0
  688. package/dist/group-keys-B_lbVBmI.d.ts +17 -0
  689. package/dist/handle-action.guild-admin-DS29y_6h.js +288 -0
  690. package/dist/harness-d9YmZWA3.js +61 -0
  691. package/dist/health-Cov1Kryj.js +4 -0
  692. package/dist/heartbeat-runner-B2wo_xDj.js +5 -0
  693. package/dist/heartbeat-runner.runtime-DrHZD-P2.js +4 -0
  694. package/dist/heartbeat-runner.runtime.js +1 -1
  695. package/dist/help-BgDd1atJ.js +136 -0
  696. package/dist/hook-runtime-UU80d5qW.d.ts +108 -0
  697. package/dist/hooks-CgXKCJSD.js +534 -0
  698. package/dist/http-registry-CBDAGRJy.d.ts +23 -0
  699. package/dist/image-generation-runtime-BFOnMPYD.d.ts +21 -0
  700. package/dist/inbound-direct-dm-runtime-DjOHl6c_.js +2 -0
  701. package/dist/inbound-reply-dispatch-BCTiM2jm.js +148 -0
  702. package/dist/index-D7Vsu6c4.d.ts +3971 -0
  703. package/dist/index.d.ts +1 -1
  704. package/dist/index.js +1 -1
  705. package/dist/init-CreYGHpp.js +59 -0
  706. package/dist/inline-buttons-C94TOhmL.js +40 -0
  707. package/dist/interactive-dispatch-AIMj_vt7.d.ts +143 -0
  708. package/dist/interactive-dispatch-Bh_T3uZG.d.ts +56 -0
  709. package/dist/internal-events-B6D5bqsn.js +90 -0
  710. package/dist/isolated-agent-9faqxl7c.js +1118 -0
  711. package/dist/isolated-agent-CaY4uTcE.js +2 -0
  712. package/dist/lifecycle-pTz4liUn.js +571 -0
  713. package/dist/list.probe-B8pt-DOd.js +449 -0
  714. package/dist/list.status-command-Wgmt361J.js +789 -0
  715. package/dist/llm-slug-generator-Do4oXnXl.js +78 -0
  716. package/dist/llm-slug-generator.js +1 -1
  717. package/dist/loader-BFBzvUK_.d.ts +142 -0
  718. package/dist/local-dispatch.runtime-7keeuHHm.js +9 -0
  719. package/dist/local-dispatch.runtime.js +1 -1
  720. package/dist/manager-D058VQAp.d.ts +10 -0
  721. package/dist/manager-DerRaxsV.d.ts +356 -0
  722. package/dist/manager.core-DKeUsAcV.d.ts +198 -0
  723. package/dist/manager.runtime-B3nVh8Nl.js +2714 -0
  724. package/dist/manager.runtime.js +1 -1
  725. package/dist/markdown-to-line-CZLeX0SL.js +811 -0
  726. package/dist/mcp-http-LaAmzBev.js +2 -0
  727. package/dist/mcp-http-M4GjuKFd.js +555 -0
  728. package/dist/media-understanding-provider-DLA6VsQZ.js +339 -0
  729. package/dist/memory-core-host-engine-storage-MF-67Z8w.d.ts +54 -0
  730. package/dist/memory-embedding-adapter-CEwgurWU.d.ts +5 -0
  731. package/dist/message-actions-Dlv-B5yk.js +145 -0
  732. package/dist/message-handler-2HSbEoAi.js +384 -0
  733. package/dist/message-handler-XiApv_iS.js +1715 -0
  734. package/dist/message-handler.preflight-CN-g4nxs.js +1125 -0
  735. package/dist/message-handler.process-BzVq3Lq_.js +1484 -0
  736. package/dist/migration-BXmTbRk9.d.ts +45 -0
  737. package/dist/model-Ci5kQ7PA.d.ts +33 -0
  738. package/dist/model-Sqz99RFi.js +74 -0
  739. package/dist/model-selection-Bh9QtqlJ.js +272 -0
  740. package/dist/models-C_dD1FNN.js +2 -0
  741. package/dist/models-CtpB-fi2.js +104 -0
  742. package/dist/models-Cxa7r3rl.d.ts +24 -0
  743. package/dist/models-cli-I2sJE5tg.js +256 -0
  744. package/dist/monitor-B4J6Kn4-.js +60 -0
  745. package/dist/monitor-BIFxJ3Ql.js +2788 -0
  746. package/dist/monitor-BTkcXHvw.js +834 -0
  747. package/dist/monitor-BX7Encm5.js +1657 -0
  748. package/dist/monitor-CZsJ4D3J.js +4377 -0
  749. package/dist/monitor-CvKt9k7P.js +2 -0
  750. package/dist/monitor-Dy9phiVJ.js +1370 -0
  751. package/dist/monitor-auth-CjtJPc9C.js +179 -0
  752. package/dist/monitor-jQpVHEky.js +715 -0
  753. package/dist/monitor-polling.runtime-Li4-3e2G.js +883 -0
  754. package/dist/monitor-polling.runtime.js +1 -1
  755. package/dist/monitor-webhook.runtime-CQ2kN5ya.js +387 -0
  756. package/dist/monitor-webhook.runtime.js +1 -1
  757. package/dist/monitor.account-CFdazLEm.js +5233 -0
  758. package/dist/monitor.runtime-B774iFU_.js +2 -0
  759. package/dist/monitor.runtime.js +1 -1
  760. package/dist/monitor.webhook-NNrWA5P9.js +180 -0
  761. package/dist/node-cli-sessions-Ct-6bGab.js +1228 -0
  762. package/dist/onboard-DEUA1HCQ.js +733 -0
  763. package/dist/onboard-helpers-Cupkjkec.js +251 -0
  764. package/dist/onboard-helpers-D1Pvowo1.js +6 -0
  765. package/dist/onboard-remote-BN_7wNqG.js +2 -0
  766. package/dist/onboard-remote-BqYAK5dF.js +212 -0
  767. package/dist/onboard-skills-BM40qOkc.js +160 -0
  768. package/dist/onboard-skills-rSLgDOzB.js +2 -0
  769. package/dist/openai-codex-provider-Fo-TKiyf.d.ts +5 -0
  770. package/dist/openai-http-BRnxRJ_y.js +824 -0
  771. package/dist/openai-provider-BqDrspuV.d.ts +5 -0
  772. package/dist/openresponses-http-Dg3OL0qA.js +1173 -0
  773. package/dist/operations-jvr0A8cu.js +805 -0
  774. package/dist/outbound-adapter-BJej9JpO.js +543 -0
  775. package/dist/outbound-session-route-D3QVwFKr.js +45 -0
  776. package/dist/outbound.runtime-gdOoPtOh.js +2 -0
  777. package/dist/outbound.runtime.js +1 -1
  778. package/dist/pairing-store-C-WQTUHq.d.ts +87 -0
  779. package/dist/pi-embedded-CwD_xrGP.js +3796 -0
  780. package/dist/pi-embedded-DL6l8KBl.js +4 -0
  781. package/dist/pi-embedded.runtime-DyGCj24d.js +4 -0
  782. package/dist/pi-embedded.runtime.js +1 -1
  783. package/dist/pi-tools-BzbgexEG.js +2413 -0
  784. package/dist/plan-HWBV2Rhq.js +112 -0
  785. package/dist/plan-iN77JYw-.js +81 -0
  786. package/dist/plugin-BbOOGgCS.d.ts +17 -0
  787. package/dist/plugin-CbNvjum_.js +12396 -0
  788. package/dist/plugin-app-cache-key-CHpwYM0e.js +46 -0
  789. package/dist/plugin-enabled-DjbDhNRG.js +233 -0
  790. package/dist/plugin-entry-B3_M6paP.d.ts +47 -0
  791. package/dist/plugin-registration-BM_Iko3e.js +88 -0
  792. package/dist/plugin-runtime-QzTPitsy.d.ts +117 -0
  793. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  794. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  795. package/dist/plugin-sdk/acp-runtime.js +2 -2
  796. package/dist/plugin-sdk/agent-harness-runtime.js +6 -6
  797. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  798. package/dist/plugin-sdk/agent-harness.js +7 -7
  799. package/dist/plugin-sdk/agent-runtime.js +2 -2
  800. package/dist/plugin-sdk/channel-core.js +2 -2
  801. package/dist/plugin-sdk/channel-inbound.js +2 -2
  802. package/dist/plugin-sdk/channel-test-helpers.js +1 -1
  803. package/dist/plugin-sdk/command-auth.js +1 -1
  804. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  805. package/dist/plugin-sdk/compat.js +1 -1
  806. package/dist/plugin-sdk/conversation-binding-runtime.js +2 -2
  807. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  808. package/dist/plugin-sdk/core.js +2 -2
  809. package/dist/plugin-sdk/direct-dm.js +1 -1
  810. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  811. package/dist/plugin-sdk/health.js +2 -2
  812. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  813. package/dist/plugin-sdk/index.js +1 -1
  814. package/dist/plugin-sdk/mattermost.js +1 -1
  815. package/dist/plugin-sdk/plugin-test-contracts.js +2 -2
  816. package/dist/plugin-sdk/provider-test-contracts.js +4 -4
  817. package/dist/plugin-sdk/reply-runtime.js +4 -4
  818. package/dist/plugin-sdk/testing.js +2 -2
  819. package/dist/plugin-sdk/zalouser.js +1 -1
  820. package/dist/plugin-service-CVyMm03C.js +1229 -0
  821. package/dist/plugin-service-bHD8oLfO.d.ts +24 -0
  822. package/dist/plugins/build-smoke-entry.d.ts +2 -2
  823. package/dist/plugins/loader.d.ts +1 -1
  824. package/dist/plugins/provider-discovery.runtime.d.ts +1 -1
  825. package/dist/plugins/provider-runtime.runtime.d.ts +1 -1
  826. package/dist/plugins/runtime/index.js +4 -4
  827. package/dist/policy-B2lTxn8H.js +680 -0
  828. package/dist/policy-Bp9GYcSZ.js +138 -0
  829. package/dist/prepare.runtime-CxhQeo9l.js +732 -0
  830. package/dist/prepare.runtime.js +1 -1
  831. package/dist/preview-warnings-FVRS7Mcs.js +392 -0
  832. package/dist/probe-BRLc43oX.js +47 -0
  833. package/dist/probe-C1eD9yG7.js +2204 -0
  834. package/dist/probe-C1giMJtz.js +682 -0
  835. package/dist/probe-rIUNPFef.js +2 -0
  836. package/dist/program-DfIqBXRH.js +131 -0
  837. package/dist/prompt-overlay-Bq3sUpDV.d.ts +23 -0
  838. package/dist/provider-BCxvG42s.js +152 -0
  839. package/dist/provider-BHPMcHk-.js +32 -0
  840. package/dist/provider-CIAQ8D7q.js +32 -0
  841. package/dist/provider-api-key-auth-BsEQw2pm.d.ts +27 -0
  842. package/dist/provider-auth-result-B204hPXB.d.ts +21 -0
  843. package/dist/provider-catalog-runtime-Dcyw8skT.d.ts +23 -0
  844. package/dist/provider-catalog-shared-qfgsIQS-.d.ts +62 -0
  845. package/dist/provider-dispatcher-DyJDef6y.js +22 -0
  846. package/dist/provider-dispatcher.runtime.js +1 -1
  847. package/dist/provider-hook-runtime-NiAPyKFa.d.ts +61 -0
  848. package/dist/provider-j7cYms68.js +8735 -0
  849. package/dist/provider-model-shared-BwE02tDa.d.ts +143 -0
  850. package/dist/provider-models-hfm5XTTN.d.ts +12 -0
  851. package/dist/provider-policy-BB7uTrIp.d.ts +30 -0
  852. package/dist/provider-registration-DEjYSu9M.d.ts +6 -0
  853. package/dist/provider-registry-D5hn-VAM.d.ts +8 -0
  854. package/dist/provider-registry-DHIsMEbc.d.ts +8 -0
  855. package/dist/provider-registry-VyHjmzoh.d.ts +30 -0
  856. package/dist/provider-runtime-CdtuIOgf.d.ts +359 -0
  857. package/dist/provider-self-hosted-setup-xR0Nsu7L.d.ts +74 -0
  858. package/dist/provider-session.runtime-CmNY15Mr.js +9 -0
  859. package/dist/provider-session.runtime.js +1 -1
  860. package/dist/provider-stream-CxVko1CO.d.ts +140 -0
  861. package/dist/provider-stream-shared-BxFPKFGe.d.ts +128 -0
  862. package/dist/provider.runtime-DJO3dwrX.js +2 -0
  863. package/dist/provider.runtime.js +1 -1
  864. package/dist/providers.runtime-CJOUbS2S.d.ts +25 -0
  865. package/dist/public-surface-loader-CgBnme5n.js +114 -0
  866. package/dist/pw-ai-UeRWGzcL.js +3029 -0
  867. package/dist/pw-role-snapshot-BtlutwlO.js +333 -0
  868. package/dist/reaction-level-DWOV-qJM.js +19 -0
  869. package/dist/reaction-runtime-api-5ZiPcbGJ.js +116 -0
  870. package/dist/realtime-transcription-CZadifvk.d.ts +43 -0
  871. package/dist/realtime-transcription-provider-BF9HxM3d.d.ts +5 -0
  872. package/dist/realtime-transcription-provider-Bcj92hEI.d.ts +32 -0
  873. package/dist/realtime-transcription-provider-DKZ9iHkc.d.ts +28 -0
  874. package/dist/realtime-transcription-provider-DcsAmQEp.js +205 -0
  875. package/dist/realtime-transcription-provider-DhjVTTqb.d.ts +37 -0
  876. package/dist/realtime-voice-B2W34yTP.d.ts +333 -0
  877. package/dist/realtime-voice-provider-CgNNrGwQ.d.ts +5 -0
  878. package/dist/register-Dga1nJRL.js +2178 -0
  879. package/dist/register.agent-VIgyZLKG.js +156 -0
  880. package/dist/register.configure-C21zJ4Qb.js +16 -0
  881. package/dist/register.crestodian-Bam6mUXr.js +24 -0
  882. package/dist/register.maintenance-D9E-Hh90.js +83 -0
  883. package/dist/register.onboard-BnUcaZsb.js +113 -0
  884. package/dist/register.runtime-BdRAp4xz.js +54 -0
  885. package/dist/register.runtime-D3abILg7.d.ts +6 -0
  886. package/dist/register.setup-Bq-9IQdV.js +40 -0
  887. package/dist/register.subclis-DubBtg8Z.js +31 -0
  888. package/dist/register.subclis-H_qmmDFx.js +3 -0
  889. package/dist/register.subclis-core-fg3DalSH.js +273 -0
  890. package/dist/registry-CPtiHUu_.d.ts +91 -0
  891. package/dist/registry-types-XtFJDNYl.d.ts +392 -0
  892. package/dist/repair-sequencing-Dn0sDvBE.js +640 -0
  893. package/dist/reply-delivery-DZGfRh-W.js +196 -0
  894. package/dist/reply-runtime-BdCPL-OF.js +11 -0
  895. package/dist/reply-runtime-DuaOZ9MH.d.ts +34 -0
  896. package/dist/reply.runtime-BcbRKxzJ.js +2 -0
  897. package/dist/reply.runtime.js +1 -1
  898. package/dist/request-Ca681Kt1.js +54 -0
  899. package/dist/resolve-allowlist-DWjCzDq1.js +220 -0
  900. package/dist/result-fallback-classifier-BWIh0wzc.js +79 -0
  901. package/dist/root-help-8a3TWleF.js +43 -0
  902. package/dist/route-BsWREv6-.js +469 -0
  903. package/dist/route-resolution-D8FyF30I.js +274 -0
  904. package/dist/routes-BxkaJuyM.js +3602 -0
  905. package/dist/routes-DdwFgSv9.js +2 -0
  906. package/dist/run-attempt-Ca7HP1Nd.js +7704 -0
  907. package/dist/run-command-JwrnqCIB.js +2 -0
  908. package/dist/run-command-wWvfXyIf.js +23 -0
  909. package/dist/run-embedded.runtime-0QIAc8PG.js +4 -0
  910. package/dist/run-embedded.runtime.js +1 -1
  911. package/dist/run-execution-cli.runtime-LhD-S0h_.js +4 -0
  912. package/dist/run-execution-cli.runtime.js +1 -1
  913. package/dist/run-executor.runtime.js +1 -1
  914. package/dist/run-prKMVvM2.js +1162 -0
  915. package/dist/run-subagent-registry.runtime-C07jSlV2.js +2 -0
  916. package/dist/run-subagent-registry.runtime.js +1 -1
  917. package/dist/runtime-3PDZU_1b.d.ts +17 -0
  918. package/dist/runtime-7Xhj2T8S.js +6179 -0
  919. package/dist/runtime-CXUwJU3q.js +438 -0
  920. package/dist/runtime-DeQypuDs.js +1287 -0
  921. package/dist/runtime-api-0djTIsuz.js +13 -0
  922. package/dist/runtime-api-9CEihqK3.d.ts +3151 -0
  923. package/dist/runtime-api-Bz1h0p3i.js +17 -0
  924. package/dist/runtime-api-CLcJZKu2.js +13 -0
  925. package/dist/runtime-api-Ce7axAAW.js +24 -0
  926. package/dist/runtime-api-CoAsju8a.js +4 -0
  927. package/dist/runtime-api-DEuynhDr.js +3 -0
  928. package/dist/runtime-api-oZFIOS9l.js +21 -0
  929. package/dist/runtime-api.actions-Blt2bAHw.d.ts +23 -0
  930. package/dist/runtime-api.actions-DWLRlSej.js +3 -0
  931. package/dist/runtime-api.monitor-DtXB3_sf.js +6 -0
  932. package/dist/runtime-api.send-BU586hbs.js +4 -0
  933. package/dist/runtime-api.send-BygcWA7R.d.ts +38 -0
  934. package/dist/runtime-api.threads-Djhr5AJy.js +2 -0
  935. package/dist/runtime-channel-BIgBTs_X.js +2 -0
  936. package/dist/runtime-channel-CsUTBjYU.js +150 -0
  937. package/dist/runtime-embedded-pi.runtime-Rszd_KCt.js +2 -0
  938. package/dist/runtime-embedded-pi.runtime.js +1 -1
  939. package/dist/runtime-taskflow-s80xQc2H.d.ts +435 -0
  940. package/dist/sanitize-outbound-2umQeW_U.js +127 -0
  941. package/dist/sdk-setup-tools-TiaNam05.js +8 -0
  942. package/dist/secrets-BmyFSkt-.js +113 -0
  943. package/dist/secrets-cli-DPAwFvtH.js +149 -0
  944. package/dist/security-audit-BR9FBcLD.js +122 -0
  945. package/dist/security-audit-RKut1lWG.js +118 -0
  946. package/dist/security-audit.runtime-Pe7YbS9P.js +2 -0
  947. package/dist/security-audit.runtime.js +1 -1
  948. package/dist/selection-Cqhmjpyl.js +16157 -0
  949. package/dist/selection-xFFMaq92.js +3 -0
  950. package/dist/send-BDHagrwl.js +1631 -0
  951. package/dist/send-BETlETJ5.d.ts +231 -0
  952. package/dist/send-BV_O_Ljd.js +192 -0
  953. package/dist/send-CpcmWYrM.d.ts +104 -0
  954. package/dist/send-W-DVyil6.js +2 -0
  955. package/dist/send-jUp2-szO.js +143 -0
  956. package/dist/send.components-BR_yPtKv.js +500 -0
  957. package/dist/send.components-CK7UbpRP.js +2 -0
  958. package/dist/send.runtime-DHLfdHbS.js +2 -0
  959. package/dist/send.runtime.js +1 -1
  960. package/dist/send.types-D_3tsfSL.d.ts +159 -0
  961. package/dist/server-DRcdRu6J.js +73 -0
  962. package/dist/server-Ddv-oAKv.js +24 -0
  963. package/dist/server-close.runtime.d.ts +1 -1
  964. package/dist/server-close.runtime.js +1 -1
  965. package/dist/server-context-9rW0Cvdw.js +2 -0
  966. package/dist/server-context-uRD5N8_D.js +955 -0
  967. package/dist/server-cron-BClEPtbv.js +2 -0
  968. package/dist/server-cron-CNGar45o.js +2989 -0
  969. package/dist/server-methods-CAMhJf7g.js +16494 -0
  970. package/dist/server-node-events-DW5DoAxk.js +596 -0
  971. package/dist/server-plugin-bootstrap-CqX4dDcN.js +70 -0
  972. package/dist/server-plugins-BIhs3eCz.js +432 -0
  973. package/dist/server-reload-handlers-54HSfSr7.js +714 -0
  974. package/dist/server-restart-sentinel-C47-O08k.js +747 -0
  975. package/dist/server-restart-sentinel-Cx-3Rzl0.js +2 -0
  976. package/dist/server-runtime-services-D-SWzUww.js +267 -0
  977. package/dist/server-runtime-services-D0GOFPFq.js +2 -0
  978. package/dist/server-startup-plugins-C8pzVvkb.js +113 -0
  979. package/dist/server-startup-post-attach-2xoGJJts.js +716 -0
  980. package/dist/server-ws-runtime-Dywo6GC-.js +349 -0
  981. package/dist/server.impl-xK22fZyJ.js +2586 -0
  982. package/dist/service-Ci8roOZn.js +1446 -0
  983. package/dist/session-binding-BsdbGBhb.js +219 -0
  984. package/dist/session-binding-D42jROcb.js +2 -0
  985. package/dist/session-kill-http-kU4rUj1_.js +121 -0
  986. package/dist/session-reset-service-DkCGElAA.js +625 -0
  987. package/dist/session-route-hmQSEijy.js +93 -0
  988. package/dist/session-status.runtime-Dsz-54he.js +2 -0
  989. package/dist/session-status.runtime.js +1 -1
  990. package/dist/session-subagent-reactivation.runtime-CYJIkiW8.js +2 -0
  991. package/dist/session-subagent-reactivation.runtime.js +1 -1
  992. package/dist/session-tab-registry-YfQve--K.js +521 -0
  993. package/dist/sessions-history-http-DeuZSSGj.js +430 -0
  994. package/dist/sessions.runtime-wAccC8Lk.js +2 -0
  995. package/dist/sessions.runtime.js +1 -1
  996. package/dist/setup-B8caUFIZ.js +586 -0
  997. package/dist/setup-CgHGdMpV.js +2 -0
  998. package/dist/setup-api-Uew7qBry.js +29 -0
  999. package/dist/setup-core-BP_fjsmA.js +174 -0
  1000. package/dist/setup-onboard-configure-help-fast-path-ykLp2JqU.js +64 -0
  1001. package/dist/setup-surface-BgEGrdZ3.js +320 -0
  1002. package/dist/setup-surface-BvSqsFEu.js +221 -0
  1003. package/dist/setup-surface-CHzMJ7_T.js +405 -0
  1004. package/dist/setup-surface-DYm3Xvgt.js +288 -0
  1005. package/dist/setup.finalize-BgLIjblM.js +582 -0
  1006. package/dist/setup.gateway-config-BBguRpIc.js +281 -0
  1007. package/dist/setup.migration-import-BY06brv-.js +200 -0
  1008. package/dist/setup.migration-import-Igj5NMey.js +2 -0
  1009. package/dist/shared-client-GL2KQ2Eu.js +2 -0
  1010. package/dist/shared-client-Mc7bTBoQ.js +629 -0
  1011. package/dist/shared-moi7PK0C.js +121 -0
  1012. package/dist/shared-rlOyTpAw.d.ts +115 -0
  1013. package/dist/side-question-BEHswpGw.js +683 -0
  1014. package/dist/simple-completion-runtime-CsXJkjY5.d.ts +73 -0
  1015. package/dist/skill-tool-dispatch.runtime-O5uXeees.js +143 -0
  1016. package/dist/skill-tool-dispatch.runtime.js +1 -1
  1017. package/dist/slash-state-BAYUTcHl.js +2166 -0
  1018. package/dist/speech-BAP4NgqI.d.ts +47 -0
  1019. package/dist/speech-core-DZmhKq_b.d.ts +36 -0
  1020. package/dist/speech-provider-22oDk8Tz.js +184 -0
  1021. package/dist/speech-provider-79S_bTlE.d.ts +8 -0
  1022. package/dist/speech-provider-BYJna1nq.d.ts +5 -0
  1023. package/dist/speech-provider-BvKhsuyg.d.ts +5 -0
  1024. package/dist/speech-provider-CdVIHtT6.d.ts +5 -0
  1025. package/dist/speech-provider-OiRKJFwo.d.ts +8 -0
  1026. package/dist/speech-provider-xUDd1kmD.d.ts +34 -0
  1027. package/dist/src-C8wkJgE6.js +4256 -0
  1028. package/dist/startup-context-BhLJufFU.js +313 -0
  1029. package/dist/status-C20LHDLA.js +73 -0
  1030. package/dist/status-message-CmzgS8zM.js +484 -0
  1031. package/dist/status-message.runtime-iG6qi7wn.js +6 -0
  1032. package/dist/status-message.runtime.js +1 -1
  1033. package/dist/status-subagents.runtime-D49P_RIr.js +18 -0
  1034. package/dist/status-subagents.runtime.js +1 -1
  1035. package/dist/status-text-BI7Q1z4U.js +296 -0
  1036. package/dist/status.runtime-RQes0TI5.js +2 -0
  1037. package/dist/sticker-cache-Dh4joqan.js +206 -0
  1038. package/dist/sticker-vision.runtime-5SRgpo_k.js +17 -0
  1039. package/dist/sticker-vision.runtime.js +1 -1
  1040. package/dist/stream-BrMwI7HV.d.ts +10 -0
  1041. package/dist/stream-Bx_akKgo.d.ts +16 -0
  1042. package/dist/stream-D094UIVI.d.ts +5 -0
  1043. package/dist/stream-D5DoOmTT.d.ts +19 -0
  1044. package/dist/stream-Tt9cSOCl.d.ts +120 -0
  1045. package/dist/stream-wrappers-CUkNtyZK.d.ts +21 -0
  1046. package/dist/subagent-announce-BEPlkjCS.js +354 -0
  1047. package/dist/subagent-announce-delivery-jcxPIfNG.js +958 -0
  1048. package/dist/subagent-control-DdMWVJXs.js +508 -0
  1049. package/dist/subagent-hooks-BsTVb6ur.js +2 -0
  1050. package/dist/subagent-hooks-CBlMBrss.js +2 -0
  1051. package/dist/subagent-hooks-Ch5oDUxb.js +116 -0
  1052. package/dist/subagent-hooks-DmUeAwY3.js +146 -0
  1053. package/dist/subagent-hooks-PNuPbYEl.js +2 -0
  1054. package/dist/subagent-hooks-api-BQ051dF0.js +23 -0
  1055. package/dist/subagent-hooks-api-DcVS0aJZ.js +22 -0
  1056. package/dist/subagent-hooks-api-Dlbc5Mtd.js +23 -0
  1057. package/dist/subagent-hooks-dwsegI07.js +230 -0
  1058. package/dist/subagent-orphan-recovery-Cl_y6Poi.js +352 -0
  1059. package/dist/subagent-registry-BVVgDSdq.d.ts +1 -0
  1060. package/dist/subagent-registry-BosUdBW6.js +2351 -0
  1061. package/dist/subagent-registry-Bxd6vaAO.js +3 -0
  1062. package/dist/subagent-registry-read-BVVgDSdq.d.ts +1 -0
  1063. package/dist/subagent-registry.runtime.js +1 -1
  1064. package/dist/subagent-session-cleanup-Bd6d93qi.js +525 -0
  1065. package/dist/subagent-spawn-ViO3XAR1.js +1164 -0
  1066. package/dist/target-id-Bje_v2Ax.js +107 -0
  1067. package/dist/targets-9q_q5M9n.d.ts +10 -0
  1068. package/dist/targets-C4byiOgQ.js +19 -0
  1069. package/dist/targets-J0MVE-dD.js +44 -0
  1070. package/dist/targets-ZMEvyNa8.js +19 -0
  1071. package/dist/targets-qBcfKetP.d.ts +10 -0
  1072. package/dist/task-registry-control.runtime.d.ts +1 -1
  1073. package/dist/task-registry-control.runtime.js +1 -1
  1074. package/dist/telegram/token.js +1 -1
  1075. package/dist/testing-Dk757Ggg.js +267 -0
  1076. package/dist/thinking-policy-DO6T8IfK.d.ts +5 -0
  1077. package/dist/thread-bindings-CYrmTzFY.js +232 -0
  1078. package/dist/thread-bindings-Cf7fkXxk.js +571 -0
  1079. package/dist/thread-bindings-DI6LNGbW.js +8 -0
  1080. package/dist/thread-bindings-DdmuKtVD.js +228 -0
  1081. package/dist/thread-bindings.discord-api-C01V3kFk.js +187 -0
  1082. package/dist/thread-bindings.manager--WOGVrL-.js +2 -0
  1083. package/dist/thread-bindings.manager-HzjqZNiL.js +536 -0
  1084. package/dist/thread-lifecycle-CJKTxWnQ.js +1614 -0
  1085. package/dist/token-D-FQ8AQz.js +134 -0
  1086. package/dist/tool-DTCfs0DU.js +139 -0
  1087. package/dist/tool-actions.runtime-Cb3iA3Os.js +534 -0
  1088. package/dist/tool-actions.runtime.js +1 -1
  1089. package/dist/tool-plugin-CbbLM31f.d.ts +77 -0
  1090. package/dist/tool-resolution-CbqzNutV.js +149 -0
  1091. package/dist/tool-split-bLqMPHTZ.d.ts +19 -0
  1092. package/dist/tools-effective-inventory-BsAax-ML.js +204 -0
  1093. package/dist/tools-invoke-http-DAqZxikd.js +67 -0
  1094. package/dist/tools-invoke-shared-CsVRemTL.js +200 -0
  1095. package/dist/transport-stream-DOXZsjVL.d.ts +42 -0
  1096. package/dist/tts-Ckj6MJNr.js +66 -0
  1097. package/dist/tui-CwwCXMCq.js +2 -0
  1098. package/dist/tui-DpJn3v2D.js +4709 -0
  1099. package/dist/tui-backend-DQ9wF5es.js +256 -0
  1100. package/dist/tui-cli-k3AYPBn3.js +37 -0
  1101. package/dist/types--0xYmMG9.d.ts +786 -0
  1102. package/dist/types-CMDl9l_P2.d.ts +3650 -0
  1103. package/dist/types.public-DvhPzYJi.d.ts +70 -0
  1104. package/dist/update-cli-DB5Doqld.js +3664 -0
  1105. package/dist/video-generation-runtime-CTQN-4SI.d.ts +21 -0
  1106. package/dist/video-model-catalog-CTyt4dXa.d.ts +16 -0
  1107. package/dist/vision-tools-Dp0JrLRi.js +1409 -0
  1108. package/dist/web-search-B0yvxuiq.js +62 -0
  1109. package/dist/web-search-provider.runtime-B-cNT-5J.js +2 -0
  1110. package/dist/web-search-provider.runtime-HhmIlk_Z.js +328 -0
  1111. package/dist/web-search-provider.runtime.js +1 -1
  1112. package/dist/webhook-targets-3u4hOqRl.d.ts +99 -0
  1113. package/dist/xai-oauth-cZGjnEjh.js +479 -0
  1114. package/dist/xai-user-agent-DA8le6vP.js +32 -0
  1115. package/dist/zod-schema.core-i5HaY1T4.d.ts +166 -0
  1116. package/package.json +1 -1
  1117. package/dist/abort-CvuLeqr1.js +0 -277
  1118. package/dist/abort.runtime-DNoavlKn.js +0 -2
  1119. package/dist/account-inspect-ByX21U_z.js +0 -173
  1120. package/dist/accounts-B0sjdn0w.js +0 -119
  1121. package/dist/accounts-BF_AfTED.js +0 -107
  1122. package/dist/accounts-DX1c8NKM.js +0 -107
  1123. package/dist/accounts-EA2GGTep.js +0 -2
  1124. package/dist/acp-runtime-BC8oA7xM.js +0 -26
  1125. package/dist/acp-spawn-CPYDCZ95.js +0 -2
  1126. package/dist/acp-spawn-Cqi47GCL.js +0 -1275
  1127. package/dist/acp-stateful-target-driver-CcWMRAQ2.js +0 -89
  1128. package/dist/action-kill-CZrPfOIS.js +0 -33
  1129. package/dist/action-runtime-DuhVKLRJ.js +0 -469
  1130. package/dist/action-runtime-api-BKaUWi7b.js +0 -2
  1131. package/dist/action-send-_NpIHMwj.js +0 -39
  1132. package/dist/action-spawn-Dymn4rUo.js +0 -47
  1133. package/dist/actions-Bk_WaEAa.js +0 -161
  1134. package/dist/actions.runtime-Hh7HYOlJ.js +0 -5
  1135. package/dist/agent-CQzGVmy1.js +0 -2
  1136. package/dist/agent-ClmYyW81.js +0 -3
  1137. package/dist/agent-command-D5KxwCVS.d.ts +0 -141
  1138. package/dist/agent-command-DbU2fo-p.js +0 -1367
  1139. package/dist/agent-components.runtime-BpXJmJXk.js +0 -10
  1140. package/dist/agent-harness-D8c6PLE_.d.ts +0 -146
  1141. package/dist/agent-harness-runtime-AHXS4Jj3.d.ts +0 -691
  1142. package/dist/agent-harness-runtime-TzbK9YTz.js +0 -180
  1143. package/dist/agent-harness-task-runtime-CZWJEsKk.js +0 -140
  1144. package/dist/agent-runner-execution-CmHT78Vr.js +0 -1713
  1145. package/dist/agent-runner-utils-B0i1PW18.js +0 -266
  1146. package/dist/agent-runner.runtime-B6Ah_MlB.js +0 -3455
  1147. package/dist/agent-runtime-BOMioAX6.js +0 -229
  1148. package/dist/agent-via-gateway-DfxQCPit.js +0 -463
  1149. package/dist/agents.commands.add-CszEBxoJ.js +0 -304
  1150. package/dist/agents.commands.delete-ulnJ7RH9.js +0 -128
  1151. package/dist/api-6SmEQDkK.js +0 -134
  1152. package/dist/api-B7QdoMF5.js +0 -2
  1153. package/dist/api-BBgby6ck.js +0 -639
  1154. package/dist/api-DwKV-xfM.d.ts +0 -52
  1155. package/dist/api-RfjCqA7Y.js +0 -6
  1156. package/dist/api-VDkFlOiv.js +0 -2
  1157. package/dist/api-We4xoZFr.js +0 -3
  1158. package/dist/apply-Cgtzilem.js +0 -41
  1159. package/dist/apply-Csp3U8cA.js +0 -54
  1160. package/dist/approval-handler.runtime-aQaSBbpF.js +0 -130
  1161. package/dist/assistant-UMyirSUH.js +0 -291
  1162. package/dist/attachment-normalize-BupK-_Ox.js +0 -225
  1163. package/dist/attempt-execution-oLlyFjHk.js +0 -558
  1164. package/dist/attempt-execution.runtime-Cq8RE0x_.js +0 -3
  1165. package/dist/attempt-execution.shared-DyBzUJGB.js +0 -38
  1166. package/dist/attempt.prompt-helpers-CVBP6t5J.js +0 -475
  1167. package/dist/attempt.tool-run-context-UU1BUUC9.js +0 -2094
  1168. package/dist/auth-BDaK_y-g.js +0 -541
  1169. package/dist/banner-VbID973v.js +0 -2
  1170. package/dist/banner-W77piyz6.js +0 -397
  1171. package/dist/binding-routing-DahKvjr3.js +0 -113
  1172. package/dist/binding-targets-C3mqUdUT.js +0 -121
  1173. package/dist/bot-DonUKEuy.js +0 -7894
  1174. package/dist/bot-deps-CroXwZeM.js +0 -747
  1175. package/dist/bot-deps-DKoy3x0l.js +0 -2
  1176. package/dist/bot-message-context.runtime-BI_zyqDu.js +0 -7
  1177. package/dist/bot-message-context.session.runtime-Cpy2H9Ez.js +0 -12
  1178. package/dist/bot-native-commands.delivery.runtime-CsHg3h1O.js +0 -4
  1179. package/dist/bot-native-commands.runtime-rmoBpwZY.js +0 -13
  1180. package/dist/bridge-server-BmDNWgHD.js +0 -113
  1181. package/dist/browser-cli-BQLwmLw3.js +0 -2
  1182. package/dist/browser-cli-CHHIN-of.js +0 -230
  1183. package/dist/browser-cli-actions-input-DBZ7uwag.js +0 -473
  1184. package/dist/browser-cli-actions-observe-BdH2-WTk.js +0 -81
  1185. package/dist/browser-cli-debug-C82Apbgb.js +0 -137
  1186. package/dist/browser-cli-inspect-CrO1qca7.js +0 -104
  1187. package/dist/browser-cli-manage-Dgm1IUZT.js +0 -443
  1188. package/dist/browser-cli-resize-DqgMr3DY.js +0 -26
  1189. package/dist/browser-cli-shared-BTnXMCKA.js +0 -50
  1190. package/dist/browser-cli-state-DT3bVOtg.js +0 -337
  1191. package/dist/browser-control-auth-BRwKCt45.js +0 -2
  1192. package/dist/browser-profiles-DhGtxK9v.js +0 -2
  1193. package/dist/browser-runtime-BL6b-qtr.js +0 -384
  1194. package/dist/build-33AnG55F.js +0 -257
  1195. package/dist/bundled-channel-config-schema-4eXcH-RE.d.ts +0 -3163
  1196. package/dist/call-dct8amtn.d.ts +0 -43
  1197. package/dist/capability-cli-D-KoVyyP.js +0 -1782
  1198. package/dist/channel-0tgrzPag.js +0 -867
  1199. package/dist/channel-4g20sJKJ.d.ts +0 -104
  1200. package/dist/channel-6tG8jWsw.d.ts +0 -8
  1201. package/dist/channel-7OEbQ8xS.d.ts +0 -6
  1202. package/dist/channel-7rVapSdN.d.ts +0 -8
  1203. package/dist/channel-B1fZN0iI.d.ts +0 -427
  1204. package/dist/channel-B5Q7fRiN.js +0 -1134
  1205. package/dist/channel-BEg_0h_C.d.ts +0 -12
  1206. package/dist/channel-BNp1J_eZ.js +0 -376
  1207. package/dist/channel-BP6RWm-M.d.ts +0 -47
  1208. package/dist/channel-BRjqrJfj.d.ts +0 -49
  1209. package/dist/channel-BUoyH_tP.d.ts +0 -114
  1210. package/dist/channel-BVBG4Tmn.d.ts +0 -28
  1211. package/dist/channel-Bap23sAx.js +0 -481
  1212. package/dist/channel-BhZ7x0SB.d.ts +0 -26
  1213. package/dist/channel-Bxod9CjX.js +0 -508
  1214. package/dist/channel-C6LASGjS.js +0 -808
  1215. package/dist/channel-COWZEKCw.js +0 -1249
  1216. package/dist/channel-CRAIreZ3.js +0 -238
  1217. package/dist/channel-CVY2hnJh.js +0 -1556
  1218. package/dist/channel-CgKdh_Jd.d.ts +0 -106
  1219. package/dist/channel-Cxo62btA.js +0 -1496
  1220. package/dist/channel-D5SzoyWI.js +0 -562
  1221. package/dist/channel-DE4vIsYF.d.ts +0 -64
  1222. package/dist/channel-DOdRHxJg.js +0 -1777
  1223. package/dist/channel-DZygtXdy.js +0 -362
  1224. package/dist/channel-DfhOnM71.d.ts +0 -7
  1225. package/dist/channel-DhZiptRe.d.ts +0 -8
  1226. package/dist/channel-DqPZviVV.js +0 -2126
  1227. package/dist/channel-Dssy3NQA.js +0 -740
  1228. package/dist/channel-actions.runtime-CDaMC9SV.js +0 -265
  1229. package/dist/channel-buMY8xZQ.d.ts +0 -7
  1230. package/dist/channel-core-CBhC_PNR.js +0 -5
  1231. package/dist/channel-core-x9b94azO.d.ts +0 -6
  1232. package/dist/channel-cvGHll3-.js +0 -955
  1233. package/dist/channel-entry-contract-BfZdcgTS.d.ts +0 -112
  1234. package/dist/channel-inbound-CNdyzYlz.js +0 -80
  1235. package/dist/channel-l8amaSI9.js +0 -653
  1236. package/dist/channel-lifecycle-DCl2GbRW.d.ts +0 -125
  1237. package/dist/channel-pairing-BRqfYy30.d.ts +0 -58
  1238. package/dist/channel-plugin-runtime-CvcVGjj4.js +0 -998
  1239. package/dist/channel-plugin-runtime-D5n9A86n.d.ts +0 -7
  1240. package/dist/channel-runtime-BAbg8Dcv.js +0 -408
  1241. package/dist/channel-sWtDTVwd.d.ts +0 -14
  1242. package/dist/channel.runtime-9o-iF8zm.js +0 -2528
  1243. package/dist/channel.runtime-BotO7RD0.js +0 -21009
  1244. package/dist/channel.runtime-BrDb4cP8.js +0 -88
  1245. package/dist/channel.runtime-C1cLfrDt.js +0 -254
  1246. package/dist/channel.runtime-CTM3VO2E.js +0 -4
  1247. package/dist/channel.runtime-CnodqvCJ.js +0 -733
  1248. package/dist/channel.runtime-Dmr8503H.js +0 -1008
  1249. package/dist/channel.runtime-DqzR3Gd9.js +0 -109
  1250. package/dist/channel.runtime-LOf0PHu_.js +0 -652
  1251. package/dist/channel.setup-1leD5F5B.js +0 -343
  1252. package/dist/channel.setup-D9UyWhXM.js +0 -1098
  1253. package/dist/channel.setup-DkVld-9Z.d.ts +0 -7
  1254. package/dist/channel.setup-DxT4prSl.d.ts +0 -8
  1255. package/dist/channel.setup-IHNFkdUD.js +0 -10
  1256. package/dist/channel.setup-YwXqilBB.d.ts +0 -6
  1257. package/dist/chat-DrycI6KH.js +0 -2666
  1258. package/dist/chrome-CgGY9FsG.js +0 -1503
  1259. package/dist/cli-backend-B3aNoTD4.d.ts +0 -5
  1260. package/dist/cli-backend-BVUFOLXj.d.ts +0 -5
  1261. package/dist/cli-compaction-DPmSHZx7.js +0 -347
  1262. package/dist/cli-metadata-eFfCoGmY.js +0 -22
  1263. package/dist/cli-nmYmL8lb.js +0 -1341
  1264. package/dist/cli-runner-BTOYShgV.js +0 -2
  1265. package/dist/cli-runner-DgXAxJVr.js +0 -540
  1266. package/dist/cli-runner.runtime-BeMsKcaS.js +0 -4
  1267. package/dist/cli-runner.runtime-DMD8X8-h.js +0 -3
  1268. package/dist/cli-shared-BAuePn3e.d.ts +0 -20
  1269. package/dist/cli-v6XF4hHd.d.ts +0 -20
  1270. package/dist/client-CKLZqMCW.js +0 -650
  1271. package/dist/client-adapter-B_0W-6Fx.js +0 -897
  1272. package/dist/client-factory-CdMLQFeA.js +0 -9
  1273. package/dist/command-auth-BxYfnQzs.js +0 -135
  1274. package/dist/command-execution-startup-CiV5yFW1.js +0 -87
  1275. package/dist/command-handlers-BAWROGlt.js +0 -1609
  1276. package/dist/command-registry-BqTMebZr.js +0 -4
  1277. package/dist/command-registry-C2Y8GeJl.js +0 -9
  1278. package/dist/command-registry-core-Bi-d0-WH.js +0 -110
  1279. package/dist/command-status.runtime-BSXHZzOq.js +0 -90
  1280. package/dist/commands-Z6AfrJar.d.ts +0 -113
  1281. package/dist/commands-acp-BYWOkjAx.js +0 -74
  1282. package/dist/commands-compact.runtime-Cyb7Pu12.js +0 -10
  1283. package/dist/commands-handlers.runtime-DdJ20XTn.js +0 -6154
  1284. package/dist/commands-status-6uhiUw13.js +0 -3
  1285. package/dist/commands-status-BJ5AnkOG.js +0 -16
  1286. package/dist/commands-status.runtime-6uhiUw13.js +0 -3
  1287. package/dist/commands-subagents-control.runtime-DZrrLjSk.js +0 -2
  1288. package/dist/commands-subagents-control.runtime-_R3XgUpp.js +0 -3
  1289. package/dist/commands-system-prompt-CHGtJPnx.js +0 -162
  1290. package/dist/commands-system-prompt-CM23NlDu.js +0 -2
  1291. package/dist/commands.runtime-DUEbtHG1.js +0 -176
  1292. package/dist/compact-BA6lVtLj.js +0 -480
  1293. package/dist/compact-BfC-utPW.js +0 -1141
  1294. package/dist/compact.runtime-BRL2wCqh.js +0 -12
  1295. package/dist/completion-cli-CYKoLZLl.js +0 -315
  1296. package/dist/computer-use-BWgYktaW.js +0 -367
  1297. package/dist/config-B_HanwOV.js +0 -373
  1298. package/dist/config-DhGtxK9v.js +0 -2
  1299. package/dist/config-cli-CI5UtWr-.js +0 -1633
  1300. package/dist/config-mutations-D2GtlLMA.js +0 -159
  1301. package/dist/config-schema-BKOfHz23.d.ts +0 -20
  1302. package/dist/configure-CuPwIiwW.js +0 -3
  1303. package/dist/configure.commands-BWpwrafi.js +0 -1251
  1304. package/dist/configure.commands-qzipmoDP.js +0 -2
  1305. package/dist/context-engine-host-compat-D246ZMR2.js +0 -2
  1306. package/dist/context-engine-host-compat-KMl-oqCw.js +0 -288
  1307. package/dist/context-engine-lifecycle-DvEDHkQz.js +0 -1274
  1308. package/dist/contracts-testkit-Ym3exIK5.d.ts +0 -145
  1309. package/dist/control-auth-B_RiUaHt.js +0 -114
  1310. package/dist/control-service-DcQFx6_O.js +0 -145
  1311. package/dist/control-ui/assets/agents-Bc8cIfWF.js +0 -1008
  1312. package/dist/control-ui/assets/channel-config-extras-DQru4ECs.js +0 -2
  1313. package/dist/control-ui/assets/channels-BfncerPV.js +0 -367
  1314. package/dist/control-ui/assets/cron-DHLcga_r.js +0 -1013
  1315. package/dist/control-ui/assets/debug-DprDzDn1.js +0 -97
  1316. package/dist/control-ui/assets/index-XTZKpkBL.js +0 -7370
  1317. package/dist/control-ui/assets/instances-D1_lOT13.js +0 -57
  1318. package/dist/control-ui/assets/logs-DINx8syb.js +0 -74
  1319. package/dist/control-ui/assets/nodes-BH4XOUmD.js +0 -436
  1320. package/dist/control-ui/assets/sessions-D5Xt25SY.js +0 -399
  1321. package/dist/control-ui/assets/skills-BmayrBHY.js +0 -314
  1322. package/dist/control-ui/assets/skills-shared-CHaYSJ_s.js +0 -11
  1323. package/dist/conversation-binding-runtime-_jhzwiiC.js +0 -4
  1324. package/dist/conversation-runtime-F5kCN0Sj.js +0 -31
  1325. package/dist/core-BpeKfqbI.d.ts +0 -224
  1326. package/dist/core-DE71gncT.js +0 -282
  1327. package/dist/core-api-B4L5WkKc.js +0 -5
  1328. package/dist/core-api-Q9oM19yY.js +0 -2
  1329. package/dist/crestodian-DLpxYmzP.js +0 -55
  1330. package/dist/daocore-runtime-BnYtDbMC.d.ts +0 -151
  1331. package/dist/daocore-tools-wNTIZIO3.js +0 -11727
  1332. package/dist/dashboard-SHmcCcnT.js +0 -263
  1333. package/dist/delivery-BA4di5Tw.js +0 -1002
  1334. package/dist/dev-Cr2Dhgoc.js +0 -97
  1335. package/dist/dialogue-xI4qAuLY.js +0 -37
  1336. package/dist/dir-fetch-tool-6d4yElM4.js +0 -565
  1337. package/dist/dir-list-tool-D2k-hax6.js +0 -100
  1338. package/dist/direct-dm-eGyFHTug.js +0 -64
  1339. package/dist/directive-handling.fast-lane-Ci1l6GN_.js +0 -68
  1340. package/dist/directive-handling.impl-Co3i_YQ4.js +0 -818
  1341. package/dist/directive-handling.impl-DHKC0TrU.js +0 -2
  1342. package/dist/directive-handling.model-selection-bv5KrHOw.js +0 -122
  1343. package/dist/directive-handling.persist.runtime-CPLg-YHh.js +0 -263
  1344. package/dist/dispatch-CdvERWY-.js +0 -1640
  1345. package/dist/dispatch-acp-transcript.runtime-BhQo1XEg.js +0 -40
  1346. package/dist/dispatch-acp.runtime-Dtiu2EgE.js +0 -18
  1347. package/dist/doctor-BzsPHvLP.js +0 -2
  1348. package/dist/doctor-Cg4FWB15.js +0 -6
  1349. package/dist/doctor-config-flow-SYjHcyu4.js +0 -1741
  1350. package/dist/doctor-core-checks-75amkN-e.js +0 -2
  1351. package/dist/doctor-core-checks-B1fu7KDm.js +0 -573
  1352. package/dist/doctor-health-contributions-BMdJKStr.js +0 -696
  1353. package/dist/doctor-health-vLyDQqfq.js +0 -65
  1354. package/dist/doctor-lint-DfvFyBgL.js +0 -94
  1355. package/dist/doctor-prompter-C-dTuOnw.js +0 -58
  1356. package/dist/doctor-state-integrity-Cv-ECLuv.js +0 -1231
  1357. package/dist/dynamic-tools-BG8ijDFH.js +0 -486
  1358. package/dist/embedded-backend-bRfALCWz.js +0 -579
  1359. package/dist/embedded-gateway-stub.runtime-CAh3IhtZ.js +0 -12
  1360. package/dist/embedding-provider-B7kg9IhC.d.ts +0 -16
  1361. package/dist/embedding-provider-jB1zjkZy.d.ts +0 -65
  1362. package/dist/embedding-provider-sea2CddJ.d.ts +0 -21
  1363. package/dist/exec-approvals-BBa28Sct.js +0 -149
  1364. package/dist/file-fetch-tool-DRIsI7eQ.js +0 -124
  1365. package/dist/file-write-tool-vTMh7eW6.js +0 -127
  1366. package/dist/format-nrhTS41q.js +0 -1145
  1367. package/dist/gateway-cli-CCgw11Ik.js +0 -435
  1368. package/dist/gateway-method-runtime-BNAVGCC_.js +0 -21
  1369. package/dist/gateway-runtime-DGdJumdK.d.ts +0 -163
  1370. package/dist/gemini-cli-provider-Bbpd5lx5.d.ts +0 -6
  1371. package/dist/get-reply-DGFCqKen.js +0 -4689
  1372. package/dist/get-reply-from-config.runtime-l7NTyCh5.js +0 -2
  1373. package/dist/graph-users-CGpakgek.js +0 -1419
  1374. package/dist/group-access-D095jQ78.js +0 -112
  1375. package/dist/group-keys-DnxWQtll.d.ts +0 -17
  1376. package/dist/handle-action.guild-admin-B3pALmMq.js +0 -288
  1377. package/dist/harness-Bs-sPbOD.js +0 -61
  1378. package/dist/health-4gWMIKHu.js +0 -4
  1379. package/dist/heartbeat-runner-Sky_Rjw7.js +0 -5
  1380. package/dist/heartbeat-runner.runtime-CRZ-NbrW.js +0 -4
  1381. package/dist/help-B68Ov4LD.js +0 -136
  1382. package/dist/hook-runtime-Cm73yH0T.d.ts +0 -107
  1383. package/dist/hooks-DWSdYas_.js +0 -534
  1384. package/dist/http-registry-CHKiFHCC.d.ts +0 -23
  1385. package/dist/image-generation-runtime-p-dfXZTf.d.ts +0 -21
  1386. package/dist/inbound-direct-dm-runtime-5z3W9Oqn.js +0 -2
  1387. package/dist/inbound-reply-dispatch-D7NeeFC1.js +0 -148
  1388. package/dist/index-CKAHTIU4.d.ts +0 -3971
  1389. package/dist/init-BXF3o80o.js +0 -59
  1390. package/dist/inline-buttons-DsHwKEVU.js +0 -40
  1391. package/dist/interactive-dispatch-BsKWomnh.d.ts +0 -143
  1392. package/dist/interactive-dispatch-CItEYOu3.d.ts +0 -56
  1393. package/dist/internal-events-TAN9dPEj.js +0 -90
  1394. package/dist/isolated-agent-CTrVGI6q.js +0 -2
  1395. package/dist/isolated-agent-DPyibJ8B.js +0 -1118
  1396. package/dist/lifecycle-BwTg0Djv.js +0 -571
  1397. package/dist/list.probe-BpM4PKu7.js +0 -449
  1398. package/dist/list.status-command-BbcloYBd.js +0 -789
  1399. package/dist/llm-slug-generator-UG7Bhj_y.js +0 -78
  1400. package/dist/loader-D6z2PEKl.d.ts +0 -142
  1401. package/dist/local-dispatch.runtime-CU6Y-BDa.js +0 -9
  1402. package/dist/manager-C3AVKMSl.d.ts +0 -356
  1403. package/dist/manager-CSN9j9hh.d.ts +0 -205
  1404. package/dist/manager.runtime-Da5LiiaQ.js +0 -2714
  1405. package/dist/markdown-to-line-BnESmsY4.js +0 -811
  1406. package/dist/mcp-http-C38KS7On.js +0 -2
  1407. package/dist/mcp-http-CcGhAZcF.js +0 -555
  1408. package/dist/media-understanding-provider-BCz5dVl6.js +0 -339
  1409. package/dist/memory-core-host-engine-storage-sWQlfr8J.d.ts +0 -54
  1410. package/dist/memory-embedding-adapter-BrGY0ecB.d.ts +0 -5
  1411. package/dist/message-actions-CQURSOZH.js +0 -145
  1412. package/dist/message-handler-C2U3bt-X.js +0 -1715
  1413. package/dist/message-handler-CwZfuHhP.js +0 -384
  1414. package/dist/message-handler.preflight-Cosa3kg0.js +0 -1125
  1415. package/dist/message-handler.process-BlKFMYXw.js +0 -1484
  1416. package/dist/migration-hAtbc95i.d.ts +0 -45
  1417. package/dist/model-B8M2deNL.js +0 -74
  1418. package/dist/model-Ck-vNyGd.d.ts +0 -33
  1419. package/dist/model-selection-v2wQWgsT.js +0 -272
  1420. package/dist/models-B7IiQBWY.js +0 -104
  1421. package/dist/models-CnWFsPX6.d.ts +0 -24
  1422. package/dist/models-DMNzBNgt.js +0 -2
  1423. package/dist/models-cli-CQaOg02d.js +0 -256
  1424. package/dist/monitor-Bd9kOezJ.js +0 -1370
  1425. package/dist/monitor-Cy6D6MyS.js +0 -715
  1426. package/dist/monitor-DStY23C4.js +0 -834
  1427. package/dist/monitor-DnF8eltK.js +0 -1657
  1428. package/dist/monitor-DrFJ63I1.js +0 -4377
  1429. package/dist/monitor-J8jOsDaJ.js +0 -60
  1430. package/dist/monitor-auth-DKkbt_CR.js +0 -179
  1431. package/dist/monitor-jp3H9Ri_.js +0 -2
  1432. package/dist/monitor-polling.runtime-DPCAacPc.js +0 -883
  1433. package/dist/monitor-tBNmyf1s.js +0 -2788
  1434. package/dist/monitor-webhook.runtime-BnjEsLRS.js +0 -387
  1435. package/dist/monitor.account-Gh8FuMEq.js +0 -5233
  1436. package/dist/monitor.runtime-Bdh6dxyq.js +0 -2
  1437. package/dist/monitor.webhook-BosT2ylg.js +0 -180
  1438. package/dist/node-cli-sessions-B0_DtIxz.js +0 -1228
  1439. package/dist/onboard-CiTp3HuT.js +0 -733
  1440. package/dist/onboard-helpers-6NgX4RkW.js +0 -251
  1441. package/dist/onboard-helpers-BwxJT_0T.js +0 -6
  1442. package/dist/onboard-remote-CNCFouj7.js +0 -212
  1443. package/dist/onboard-remote-DXzWgH_H.js +0 -2
  1444. package/dist/onboard-skills-Dx58zrXg.js +0 -160
  1445. package/dist/onboard-skills-qaynAMqw.js +0 -2
  1446. package/dist/openai-codex-provider-Bj9cyh4I.d.ts +0 -5
  1447. package/dist/openai-http-Dp0cp01u.js +0 -824
  1448. package/dist/openai-provider-Dm3YkkWf.d.ts +0 -5
  1449. package/dist/openresponses-http-acbxr5UW.js +0 -1173
  1450. package/dist/operations-BZVuEl9E.js +0 -805
  1451. package/dist/outbound-adapter-BKGzT1Rl.js +0 -543
  1452. package/dist/outbound-session-route-mWVuRF9I.js +0 -45
  1453. package/dist/outbound.runtime-BTjY78St.js +0 -2
  1454. package/dist/pairing-challenge-DD0D0sfM.d.ts +0 -87
  1455. package/dist/pi-embedded-CFP2IrYS.js +0 -3796
  1456. package/dist/pi-embedded-D8caT0Nm.js +0 -4
  1457. package/dist/pi-embedded.runtime-eBik36nq.js +0 -4
  1458. package/dist/pi-tools-DOiFN8QJ.js +0 -2413
  1459. package/dist/plan-Cq2-YWkv.js +0 -112
  1460. package/dist/plan-DZacZ3Zv.js +0 -81
  1461. package/dist/plugin-BcNkVMQf.d.ts +0 -17
  1462. package/dist/plugin-app-cache-key-CBK84hKp.js +0 -46
  1463. package/dist/plugin-enabled-CMfz3hfi.js +0 -233
  1464. package/dist/plugin-entry-BS5QKDoz.d.ts +0 -47
  1465. package/dist/plugin-k9ChkvvX.js +0 -12396
  1466. package/dist/plugin-registration-DzPoDboh.js +0 -88
  1467. package/dist/plugin-runtime-BNGhLQ-_.d.ts +0 -117
  1468. package/dist/plugin-service-BynKHNHj.d.ts +0 -24
  1469. package/dist/plugin-service-Ckp9CgP5.js +0 -1229
  1470. package/dist/policy-CBa8yH5k.js +0 -680
  1471. package/dist/policy-Dlam-IbU.js +0 -138
  1472. package/dist/prepare.runtime-B8h04--2.js +0 -732
  1473. package/dist/preview-warnings-DPDK9HPk.js +0 -392
  1474. package/dist/probe-Bts3wK7l.js +0 -682
  1475. package/dist/probe-ByHrOECy.js +0 -47
  1476. package/dist/probe-CXqCx5yV.js +0 -2204
  1477. package/dist/probe-fhhJ0LMx.js +0 -2
  1478. package/dist/program-DfNLP_PI.js +0 -131
  1479. package/dist/prompt-overlay-qKGGXVs-.d.ts +0 -23
  1480. package/dist/provider-CeG5mirD.js +0 -8735
  1481. package/dist/provider-D_TXf9b1.js +0 -152
  1482. package/dist/provider-Fb0fhEC5.js +0 -32
  1483. package/dist/provider-api-key-auth-BIph5btg.d.ts +0 -27
  1484. package/dist/provider-auth-result-BFvMZrH6.d.ts +0 -21
  1485. package/dist/provider-catalog-runtime-Du74RUel.d.ts +0 -23
  1486. package/dist/provider-catalog-shared-B3nN3sf2.d.ts +0 -62
  1487. package/dist/provider-dispatcher-DQ0FP7Oj.js +0 -22
  1488. package/dist/provider-hook-runtime-CRpS8VJ_.d.ts +0 -61
  1489. package/dist/provider-model-shared-GrPEK3SY.d.ts +0 -143
  1490. package/dist/provider-models-iUJVn9QI.d.ts +0 -12
  1491. package/dist/provider-policy-DliVEM__.d.ts +0 -30
  1492. package/dist/provider-registration-BxzmE1yB.d.ts +0 -6
  1493. package/dist/provider-registry-B4AQXjYK.d.ts +0 -8
  1494. package/dist/provider-registry-BHyB46kI.d.ts +0 -30
  1495. package/dist/provider-registry-CnfpUSqh.d.ts +0 -8
  1496. package/dist/provider-runtime-D3j0VBbF.d.ts +0 -359
  1497. package/dist/provider-self-hosted-setup-_11XAmRH.d.ts +0 -74
  1498. package/dist/provider-session.runtime-CIMJ-7ay.js +0 -9
  1499. package/dist/provider-stream-mWxYXsAm.d.ts +0 -140
  1500. package/dist/provider-stream-shared-QayId-fm.d.ts +0 -128
  1501. package/dist/provider-xNaUQ5Lv.js +0 -32
  1502. package/dist/provider.runtime-CGsYbZGk.js +0 -2
  1503. package/dist/providers.runtime-fmZQlSRt.d.ts +0 -25
  1504. package/dist/public-surface-loader-CuVkM64A.js +0 -114
  1505. package/dist/pw-ai-BDGftH9e.js +0 -3029
  1506. package/dist/pw-role-snapshot-C_P091Iv.js +0 -333
  1507. package/dist/reaction-level-DKxiNfWB.js +0 -19
  1508. package/dist/reaction-runtime-api-TY4aPHui.js +0 -116
  1509. package/dist/realtime-transcription-CmRx7wX7.d.ts +0 -43
  1510. package/dist/realtime-transcription-provider-BNca2pAl.js +0 -205
  1511. package/dist/realtime-transcription-provider-Csl2NRiB.d.ts +0 -5
  1512. package/dist/realtime-transcription-provider-CtUTdTS4.d.ts +0 -37
  1513. package/dist/realtime-transcription-provider-DKd69ns6.d.ts +0 -28
  1514. package/dist/realtime-transcription-provider-DPj1VZIg.d.ts +0 -32
  1515. package/dist/realtime-voice-CVgV9cqF.d.ts +0 -333
  1516. package/dist/realtime-voice-provider-CmtxwZon.d.ts +0 -5
  1517. package/dist/register-DLjqO2vR.js +0 -2178
  1518. package/dist/register.agent-FV7a6yzo.js +0 -156
  1519. package/dist/register.configure-DrkSyKW3.js +0 -16
  1520. package/dist/register.crestodian-CQGAa8z2.js +0 -24
  1521. package/dist/register.maintenance-tocHfiS3.js +0 -83
  1522. package/dist/register.onboard-BomHnBGE.js +0 -113
  1523. package/dist/register.runtime-6AmV3Vgs.js +0 -54
  1524. package/dist/register.runtime-CSz0gVBB.d.ts +0 -6
  1525. package/dist/register.setup-ENYtNAA5.js +0 -40
  1526. package/dist/register.subclis-BC6TefAM.js +0 -31
  1527. package/dist/register.subclis-DZdEZgSS.js +0 -3
  1528. package/dist/register.subclis-core-C-EfowrU.js +0 -273
  1529. package/dist/registry-VitXYFE8.d.ts +0 -91
  1530. package/dist/registry-types-C4eAzEgQ.d.ts +0 -392
  1531. package/dist/repair-sequencing-l8dFaytn.js +0 -640
  1532. package/dist/reply-delivery-DdeUWVuk.js +0 -196
  1533. package/dist/reply-runtime-Bd91JEZL.js +0 -11
  1534. package/dist/reply.runtime-l7NTyCh5.js +0 -2
  1535. package/dist/request-BY_4UukN.js +0 -54
  1536. package/dist/resolve-allowlist-C4lmxl4V.js +0 -220
  1537. package/dist/result-fallback-classifier-XORMMp30.js +0 -79
  1538. package/dist/root-help-CTW0Wyrf.js +0 -43
  1539. package/dist/route-dOf1WMkJ.js +0 -469
  1540. package/dist/route-resolution-BddNYZEI.js +0 -274
  1541. package/dist/routes-D0xw72Lf.js +0 -3602
  1542. package/dist/routes-TXSPQFWS.js +0 -2
  1543. package/dist/run-DpvUuaWB.js +0 -1162
  1544. package/dist/run-attempt-Bet0PiSc.js +0 -7704
  1545. package/dist/run-command-C5vMVqMt.js +0 -23
  1546. package/dist/run-command-pNDd7NqP.js +0 -2
  1547. package/dist/run-embedded.runtime-CBZV6YWj.js +0 -4
  1548. package/dist/run-execution-cli.runtime-DTQLV8tA.js +0 -4
  1549. package/dist/run-subagent-registry.runtime-DJCvSdhY.js +0 -2
  1550. package/dist/runtime-CNXeG8vX.js +0 -1287
  1551. package/dist/runtime-DEOSWxv9.js +0 -438
  1552. package/dist/runtime-DbTiSX85.d.ts +0 -17
  1553. package/dist/runtime-api-BCM7T4WV.js +0 -17
  1554. package/dist/runtime-api-BTnMvj8L.js +0 -13
  1555. package/dist/runtime-api-By6LEySM.js +0 -3
  1556. package/dist/runtime-api-Cd0b5LPQ.js +0 -4
  1557. package/dist/runtime-api-CtuDiikz.js +0 -21
  1558. package/dist/runtime-api-DjySILXC.js +0 -13
  1559. package/dist/runtime-api-XJTq_pyQ.js +0 -24
  1560. package/dist/runtime-api-k3v6Q0lb2.d.ts +0 -3151
  1561. package/dist/runtime-api.actions-BmsSg8Ai.js +0 -3
  1562. package/dist/runtime-api.actions-C2-n4QQ5.d.ts +0 -23
  1563. package/dist/runtime-api.monitor-DSk7Pd5H.js +0 -6
  1564. package/dist/runtime-api.send-D3sPncy9.js +0 -4
  1565. package/dist/runtime-api.send-t0FX9tXf.d.ts +0 -38
  1566. package/dist/runtime-api.threads-BK9cB4L1.js +0 -2
  1567. package/dist/runtime-channel--Wjr2ePx.js +0 -150
  1568. package/dist/runtime-channel-WdTa9hHZ.js +0 -2
  1569. package/dist/runtime-embedded-pi.runtime-BNYBvaxo.js +0 -2
  1570. package/dist/runtime-r3jS5wSq.js +0 -6179
  1571. package/dist/runtime-taskflow-DMBY6o56.d.ts +0 -435
  1572. package/dist/sanitize-outbound-D6IBCCpn.js +0 -127
  1573. package/dist/sdk-setup-tools-DcDrd8tW.js +0 -8
  1574. package/dist/secrets-OV1uTwRt.js +0 -113
  1575. package/dist/secrets-cli-llC7t41S.js +0 -149
  1576. package/dist/security-audit-BM_fypcl.js +0 -118
  1577. package/dist/security-audit-CQ2yKgF8.js +0 -122
  1578. package/dist/security-audit.runtime-CRgJUegH.js +0 -2
  1579. package/dist/selection-DkJ7MaPC.js +0 -16157
  1580. package/dist/selection-LeUiOSn0.js +0 -3
  1581. package/dist/send-B5TXXeBz.d.ts +0 -231
  1582. package/dist/send-C0ZHzB6o.js +0 -1631
  1583. package/dist/send-CXL3cM-w.js +0 -192
  1584. package/dist/send-CuDA29HM.js +0 -2
  1585. package/dist/send-D7qhwK7Z.js +0 -143
  1586. package/dist/send-DEMaBWpw.d.ts +0 -105
  1587. package/dist/send.components-BNeg1zrc.js +0 -2
  1588. package/dist/send.components-DwRyC_Hc.js +0 -500
  1589. package/dist/send.runtime-DBIUdxpO.js +0 -2
  1590. package/dist/send.types-DywwIqYK.d.ts +0 -160
  1591. package/dist/server-DGcm6Swr.js +0 -24
  1592. package/dist/server-DPvleC-x.js +0 -73
  1593. package/dist/server-context-BWBM4f-_.js +0 -955
  1594. package/dist/server-context-CFgwcLlu.js +0 -2
  1595. package/dist/server-cron-C1kChsjw.js +0 -2989
  1596. package/dist/server-cron-CS1EP5Li.js +0 -2
  1597. package/dist/server-methods-BcIlC8iD.js +0 -16494
  1598. package/dist/server-node-events-BAZCvZOy.js +0 -596
  1599. package/dist/server-plugin-bootstrap-cQUi21Uu.js +0 -70
  1600. package/dist/server-plugins-BRFre223.js +0 -432
  1601. package/dist/server-reload-handlers-DfcsAX-5.js +0 -714
  1602. package/dist/server-restart-sentinel-CFX5zQkM.js +0 -747
  1603. package/dist/server-restart-sentinel-DUvs77Q0.js +0 -2
  1604. package/dist/server-runtime-services-0vm5XmvV.js +0 -2
  1605. package/dist/server-runtime-services-CLz_vkLy.js +0 -267
  1606. package/dist/server-startup-plugins-CPXqqIRV.js +0 -113
  1607. package/dist/server-startup-post-attach-BkNe1Z6g.js +0 -716
  1608. package/dist/server-ws-runtime-rcJeRHFO.js +0 -349
  1609. package/dist/server.impl-a6knQ-N8.js +0 -2586
  1610. package/dist/service-H-BcELwS.js +0 -1446
  1611. package/dist/session-binding-BQliaqL7.js +0 -2
  1612. package/dist/session-binding-DPvZil_F.js +0 -219
  1613. package/dist/session-kill-http-DJMipluP.js +0 -121
  1614. package/dist/session-reset-service-Dn9FU5wA.js +0 -625
  1615. package/dist/session-route-JLWNmJxD.js +0 -93
  1616. package/dist/session-status.runtime-D0OptHcW.js +0 -2
  1617. package/dist/session-subagent-reactivation.runtime-BUmf1vNS.js +0 -2
  1618. package/dist/session-tab-registry-CoBvJVRj.js +0 -521
  1619. package/dist/sessions-history-http-B8CkLDAn.js +0 -430
  1620. package/dist/sessions.runtime-DbNqS_Gy.js +0 -2
  1621. package/dist/setup-CTZUUn1s.js +0 -586
  1622. package/dist/setup-D6fXOEjD.js +0 -2
  1623. package/dist/setup-api-DLPEXHCv.js +0 -29
  1624. package/dist/setup-core-DLXb29jm.js +0 -174
  1625. package/dist/setup-onboard-configure-help-fast-path-CrcZmKPI.js +0 -64
  1626. package/dist/setup-surface--Cct-rCt.js +0 -288
  1627. package/dist/setup-surface-CW8YN207.js +0 -320
  1628. package/dist/setup-surface-DIxcfqD0.js +0 -221
  1629. package/dist/setup-surface-IJ6kmKgi.js +0 -405
  1630. package/dist/setup.finalize-gWpWnCCk.js +0 -582
  1631. package/dist/setup.gateway-config-D_DaSfpW.js +0 -281
  1632. package/dist/setup.migration-import-CYZjCkle.js +0 -2
  1633. package/dist/setup.migration-import-CZJU4scH.js +0 -200
  1634. package/dist/shared-Bp_Fgv6B.js +0 -121
  1635. package/dist/shared-CLqPY0yv.d.ts +0 -115
  1636. package/dist/shared-client-OQdg8NGC.js +0 -629
  1637. package/dist/shared-client-dk1ICVBm.js +0 -2
  1638. package/dist/side-question-CbhRW3UI.js +0 -683
  1639. package/dist/simple-completion-runtime-XIF65b47.d.ts +0 -73
  1640. package/dist/skill-tool-dispatch.runtime-EcycYnWE.js +0 -143
  1641. package/dist/slash-state-BoX6WwB5.js +0 -2166
  1642. package/dist/speech-CvkJG5Mt.d.ts +0 -47
  1643. package/dist/speech-core-MG83lB3i.d.ts +0 -36
  1644. package/dist/speech-provider-1EN9hT-3.d.ts +0 -8
  1645. package/dist/speech-provider-67ebyEcs.js +0 -184
  1646. package/dist/speech-provider-B6tb45De.d.ts +0 -5
  1647. package/dist/speech-provider-C74wAyBX.d.ts +0 -5
  1648. package/dist/speech-provider-CYJoZZpj.d.ts +0 -8
  1649. package/dist/speech-provider-DavEMdKC.d.ts +0 -34
  1650. package/dist/speech-provider-DvFtveg6.d.ts +0 -5
  1651. package/dist/src-CbfOifft.js +0 -4256
  1652. package/dist/startup-context-YF24NARp.js +0 -313
  1653. package/dist/status-message-CcrZdfCO.js +0 -484
  1654. package/dist/status-message.runtime-Cptt1EPV.js +0 -6
  1655. package/dist/status-subagents.runtime-v2eijc4R.js +0 -18
  1656. package/dist/status-text-BWwar3Yc.js +0 -296
  1657. package/dist/status-tn3uQDY7.js +0 -73
  1658. package/dist/status.runtime-BFjTHLiQ.js +0 -2
  1659. package/dist/sticker-cache-Cs7LV_3a.js +0 -206
  1660. package/dist/sticker-vision.runtime-CyPMpoCs.js +0 -17
  1661. package/dist/stream-1rWKMSqV.d.ts +0 -16
  1662. package/dist/stream-Bk9TnoRV.d.ts +0 -10
  1663. package/dist/stream-DZeY9rhs.d.ts +0 -120
  1664. package/dist/stream-DgCoKjcL.d.ts +0 -19
  1665. package/dist/stream-exnufPSG.d.ts +0 -5
  1666. package/dist/stream-wrappers-D2EuY1tP.d.ts +0 -21
  1667. package/dist/subagent-announce-CRjGGxSB.js +0 -354
  1668. package/dist/subagent-announce-delivery-CbfRRdwt.js +0 -958
  1669. package/dist/subagent-control-VTsWynTB.js +0 -508
  1670. package/dist/subagent-hooks-BB__aHul.js +0 -2
  1671. package/dist/subagent-hooks-Cb5fJ2H0.js +0 -146
  1672. package/dist/subagent-hooks-CwVBMhp_.js +0 -2
  1673. package/dist/subagent-hooks-Cx9_GAMF.js +0 -116
  1674. package/dist/subagent-hooks-DOJhvTDx.js +0 -230
  1675. package/dist/subagent-hooks-DUMqhB3r.js +0 -2
  1676. package/dist/subagent-hooks-api-BDGmCxB2.js +0 -22
  1677. package/dist/subagent-hooks-api-CcTdPqP1.js +0 -23
  1678. package/dist/subagent-hooks-api-D18tQta6.js +0 -23
  1679. package/dist/subagent-orphan-recovery-6bNIX25Q.js +0 -352
  1680. package/dist/subagent-registry-DokIxoQ6.js +0 -2351
  1681. package/dist/subagent-registry-tlyJE0hN.js +0 -3
  1682. package/dist/subagent-session-cleanup-BWHQ6rcm.js +0 -525
  1683. package/dist/subagent-spawn-BUdUAwoc.js +0 -1164
  1684. package/dist/target-id-CI1U3MSO.js +0 -107
  1685. package/dist/targets-CbBORUXB.d.ts +0 -10
  1686. package/dist/targets-CgmlXrhv.js +0 -44
  1687. package/dist/targets-D-jSrLUN.js +0 -19
  1688. package/dist/targets-DPDu8x6v.js +0 -19
  1689. package/dist/targets-D_fXvxrg.d.ts +0 -10
  1690. package/dist/testing-D-48HuIK.js +0 -267
  1691. package/dist/thinking-policy-CY16OlCs.d.ts +0 -5
  1692. package/dist/thread-bindings-B9J0nGG7.js +0 -232
  1693. package/dist/thread-bindings-BByWvFZq.js +0 -8
  1694. package/dist/thread-bindings-Cxjm2mLg.js +0 -571
  1695. package/dist/thread-bindings-DQWmglaO.js +0 -228
  1696. package/dist/thread-bindings.discord-api-DWWDvMgL.js +0 -187
  1697. package/dist/thread-bindings.manager-CQW6bNs5.js +0 -2
  1698. package/dist/thread-bindings.manager-DpBYBs9s.js +0 -536
  1699. package/dist/thread-lifecycle-PpB8gTx1.js +0 -1614
  1700. package/dist/token-CBy6YYM_.js +0 -134
  1701. package/dist/tool-BCHcwX9p.js +0 -139
  1702. package/dist/tool-actions.runtime-Cwxr2NmB.js +0 -534
  1703. package/dist/tool-plugin-DHZYdwyJ.d.ts +0 -77
  1704. package/dist/tool-resolution-DQpf531V.js +0 -149
  1705. package/dist/tool-split-ClZW5eN5.d.ts +0 -19
  1706. package/dist/tools-effective-inventory-BHxeIAri.js +0 -204
  1707. package/dist/tools-invoke-http-Bv2LES5Q.js +0 -67
  1708. package/dist/tools-invoke-shared-Cf_ifab9.js +0 -200
  1709. package/dist/transport-stream-D_pZ9Qwv.d.ts +0 -42
  1710. package/dist/tts-CjTcF0YS.js +0 -66
  1711. package/dist/tui-D3_WpyGV.js +0 -2
  1712. package/dist/tui-Y8IezK6P.js +0 -4709
  1713. package/dist/tui-backend-BIJbrfDK.js +0 -256
  1714. package/dist/tui-cli-YVLQJGLU.js +0 -37
  1715. package/dist/types-CnKegQ41.d.ts +0 -786
  1716. package/dist/types-Dyry5PA_2.d.ts +0 -3650
  1717. package/dist/types.public-AUFnQi6j.d.ts +0 -70
  1718. package/dist/update-cli-B7MOXy4Y.js +0 -3664
  1719. package/dist/video-generation-runtime-Cc8klYNS.d.ts +0 -21
  1720. package/dist/video-model-catalog-XG42YlJS.d.ts +0 -16
  1721. package/dist/vision-tools-kEwnV2UO.js +0 -1409
  1722. package/dist/web-search-DH1W_lfx.js +0 -62
  1723. package/dist/web-search-provider.runtime-BX9TezsY.js +0 -328
  1724. package/dist/web-search-provider.runtime-BhRjYeyp.js +0 -2
  1725. package/dist/webhook-targets--wGRjxMd.d.ts +0 -99
  1726. package/dist/xai-oauth-BZQ--94U.js +0 -479
  1727. package/dist/xai-user-agent-SpZaKTGR.js +0 -32
  1728. package/dist/zod-schema.core-BhLPa6BF.d.ts +0 -166
  1729. /package/dist/{accounts-CqgATPC-2.d.ts → accounts-CqgATPC-.d.ts} +0 -0
  1730. /package/dist/{acp-runtime-backend-DU5R8SXu.js → acp-runtime-backend-DHyoMnZY.js} +0 -0
  1731. /package/dist/{channel-actions-Ce2Sna1a.js → channel-actions-B5OPAiNK.js} +0 -0
  1732. /package/dist/{command-status-runtime-Cj5vB8lc.js → command-status-runtime-BqQvv1BR.js} +0 -0
  1733. /package/dist/{delegate-BeKeQwNR.js → delegate-B1QIF1j8.js} +0 -0
  1734. /package/dist/{dispatch-acp-DXlzEM_A.js → dispatch-acp-Ch9ZmM4b.js} +0 -0
  1735. /package/dist/{heartbeat-runner-Dncw_0KS.js → heartbeat-runner-BkgH94IS.js} +0 -0
  1736. /package/dist/{library-6cU4n1-c.js → library-DP1oARlw.js} +0 -0
  1737. /package/dist/{run-executor.runtime-DjwaphFT.js → run-executor.runtime-Czk4Lxkj.js} +0 -0
  1738. /package/dist/{video-generation-core-BVVgDSdq.d.ts → server-plugins-BVVgDSdq.d.ts} +0 -0
  1739. /package/dist/{shared-BE5PSFeb.js → shared-SiM6kZAE.js} +0 -0
  1740. /package/dist/{model-ref-mtPT-mlX.d.ts → video-generation-core-mtPT-mlX.d.ts} +0 -0
@@ -0,0 +1,2204 @@
1
+ import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString, s as normalizeOptionalLowercaseString } from "./string-coerce-DyL154ka.js";
2
+ import { E as pathExists } from "./fs-safe-BFN3ftAo.js";
3
+ import { _ as sleep, c as isRecord } from "./utils-CNnMhEDp.js";
4
+ import { s as normalizeStringEntries } from "./string-normalization-DiPHgdft.js";
5
+ import { o as withFileLock$1 } from "./file-lock-pKruwmjP.js";
6
+ import { i as getFileExtension, n as detectMime, r as extensionForMime } from "./mime-DppuT-pZ.js";
7
+ import { a as isSilentReplyText } from "./tokens-D8MVQSp9.js";
8
+ import { i as writeJsonFileAtomically, n as readJsonFileWithFallback } from "./json-store-GaAZLixM.js";
9
+ import { m as resolveSendableOutboundReplyParts } from "./reply-payload-DMPQsrQC.js";
10
+ import { o as extractOriginalFilename } from "./store-53qCOCD8.js";
11
+ import { u as isPrivateIpAddress } from "./ssrf-BNF8aODC.js";
12
+ import { t as loadWebMedia } from "./web-media-Cvh2Nkiu.js";
13
+ import { t as createMessageReceiptFromOutboundResults } from "./receipt-vrVTwZtS.js";
14
+ import "./string-coerce-runtime-DcopKqDR.js";
15
+ import { t as resolveMarkdownTableMode } from "./markdown-tables-Dk_iPU8Q.js";
16
+ import { t as convertMarkdownTables } from "./tables-Bff93hv8.js";
17
+ import "./reply-chunking-BzUCobnx.js";
18
+ import "./web-media-DkR41HE5.js";
19
+ import { t as loadOutboundMediaFromUrl } from "./outbound-media-HPUXcX51.js";
20
+ import "./ssrf-policy-DsqKLgib.js";
21
+ import { a as resolveChannelMediaMaxBytes } from "./media-runtime-BgoHtCXx.js";
22
+ import "./text-chunking-CAiWc6uE.js";
23
+ import "./security-runtime-ZkIitjef.js";
24
+ import "./markdown-table-runtime-xR9__QEn.js";
25
+ import "./channel-message-BntYSBp1.js";
26
+ import "./text-utility-runtime-Ca71VHQh.js";
27
+ import { t as getMSTeamsRuntime } from "./runtime-api-oZFIOS9l.js";
28
+ import { C as buildUserAgent, D as formatUnknownError, E as formatMSTeamsSendErrorHint, O as isRevokedProxyError, S as loadMSTeamsSdkWithAuth, T as classifyMSTeamsSendError, _ as resolveMSTeamsStorePath, b as createMSTeamsAdapter, h as resolveMSTeamsCredentials, m as loadDelegatedTokens, v as readAccessToken, x as createMSTeamsTokenProvider } from "./graph-users-CF7Dlee2.js";
29
+ import { i as resolveMSTeamsRouteConfig, r as resolveMSTeamsReplyPolicy } from "./policy-Bp9GYcSZ.js";
30
+ import path from "node:path";
31
+ import crypto from "node:crypto";
32
+ import { lookup } from "node:dns/promises";
33
+ //#region extensions/msteams/src/conversation-store-helpers.ts
34
+ function normalizeStoredConversationId(raw) {
35
+ return raw.split(";")[0] ?? raw;
36
+ }
37
+ function parseStoredConversationTimestamp(value) {
38
+ if (!value) return null;
39
+ const parsed = Date.parse(value);
40
+ if (!Number.isFinite(parsed)) return null;
41
+ return parsed;
42
+ }
43
+ function toConversationStoreEntries(entries) {
44
+ return Array.from(entries, ([conversationId, reference]) => ({
45
+ conversationId,
46
+ reference
47
+ }));
48
+ }
49
+ function mergeStoredConversationReference(existing, incoming, nowIso) {
50
+ return {
51
+ ...existing?.timezone && !incoming.timezone ? { timezone: existing.timezone } : {},
52
+ ...existing?.graphChatId && !incoming.graphChatId ? { graphChatId: existing.graphChatId } : {},
53
+ ...existing?.tenantId && !incoming.tenantId ? { tenantId: existing.tenantId } : {},
54
+ ...existing?.aadObjectId && !incoming.aadObjectId ? { aadObjectId: existing.aadObjectId } : {},
55
+ ...incoming,
56
+ lastSeenAt: nowIso
57
+ };
58
+ }
59
+ function findPreferredDmConversationByUserId(entries, id) {
60
+ const target = id.trim();
61
+ if (!target) return null;
62
+ const personalMatches = [];
63
+ const unknownTypeMatches = [];
64
+ for (const entry of entries) {
65
+ if (entry.reference.user?.aadObjectId !== target && entry.reference.user?.id !== target) continue;
66
+ const convType = normalizeLowercaseStringOrEmpty(entry.reference.conversation?.conversationType ?? "");
67
+ if (convType === "personal") personalMatches.push(entry);
68
+ else if (convType === "channel" || convType === "groupchat") {} else unknownTypeMatches.push(entry);
69
+ }
70
+ const candidates = personalMatches.length > 0 ? personalMatches : unknownTypeMatches;
71
+ if (candidates.length === 0) return null;
72
+ if (candidates.length > 1) candidates.sort((a, b) => (parseStoredConversationTimestamp(b.reference.lastSeenAt) ?? 0) - (parseStoredConversationTimestamp(a.reference.lastSeenAt) ?? 0));
73
+ return candidates[0] ?? null;
74
+ }
75
+ //#endregion
76
+ //#region extensions/msteams/src/store-fs.ts
77
+ const STORE_LOCK_OPTIONS = {
78
+ retries: {
79
+ retries: 10,
80
+ factor: 2,
81
+ minTimeout: 100,
82
+ maxTimeout: 1e4,
83
+ randomize: true
84
+ },
85
+ stale: 3e4
86
+ };
87
+ async function readJsonFile(filePath, fallback) {
88
+ return await readJsonFileWithFallback(filePath, fallback);
89
+ }
90
+ async function writeJsonFile(filePath, value) {
91
+ await writeJsonFileAtomically(filePath, value);
92
+ }
93
+ async function ensureJsonFile(filePath, fallback) {
94
+ if (!await pathExists(filePath)) await writeJsonFile(filePath, fallback);
95
+ }
96
+ async function withFileLock(filePath, fallback, fn) {
97
+ await ensureJsonFile(filePath, fallback);
98
+ return await withFileLock$1(filePath, STORE_LOCK_OPTIONS, async () => {
99
+ return await fn();
100
+ });
101
+ }
102
+ //#endregion
103
+ //#region extensions/msteams/src/conversation-store-fs.ts
104
+ const STORE_FILENAME$2 = "msteams-conversations.json";
105
+ const MAX_CONVERSATIONS = 1e3;
106
+ const CONVERSATION_TTL_MS = 365 * 24 * 60 * 60 * 1e3;
107
+ function pruneToLimit$2(conversations) {
108
+ const entries = Object.entries(conversations);
109
+ if (entries.length <= MAX_CONVERSATIONS) return conversations;
110
+ entries.sort((a, b) => {
111
+ return (parseStoredConversationTimestamp(a[1].lastSeenAt) ?? 0) - (parseStoredConversationTimestamp(b[1].lastSeenAt) ?? 0);
112
+ });
113
+ const keep = entries.slice(entries.length - MAX_CONVERSATIONS);
114
+ return Object.fromEntries(keep);
115
+ }
116
+ function pruneExpired$2(conversations, nowMs, ttlMs) {
117
+ let removed = false;
118
+ const kept = {};
119
+ for (const [conversationId, reference] of Object.entries(conversations)) {
120
+ const lastSeenAt = parseStoredConversationTimestamp(reference.lastSeenAt);
121
+ if (lastSeenAt != null && nowMs - lastSeenAt > ttlMs) {
122
+ removed = true;
123
+ continue;
124
+ }
125
+ kept[conversationId] = reference;
126
+ }
127
+ return {
128
+ conversations: kept,
129
+ removed
130
+ };
131
+ }
132
+ function createMSTeamsConversationStoreFs(params) {
133
+ const ttlMs = params?.ttlMs ?? CONVERSATION_TTL_MS;
134
+ const filePath = resolveMSTeamsStorePath({
135
+ filename: STORE_FILENAME$2,
136
+ env: params?.env,
137
+ homedir: params?.homedir,
138
+ stateDir: params?.stateDir,
139
+ storePath: params?.storePath
140
+ });
141
+ const empty = {
142
+ version: 1,
143
+ conversations: {}
144
+ };
145
+ const readStore = async () => {
146
+ const { value } = await readJsonFile(filePath, empty);
147
+ if (value.version !== 1 || !value.conversations || typeof value.conversations !== "object" || Array.isArray(value.conversations)) return empty;
148
+ const nowMs = Date.now();
149
+ const pruned = pruneExpired$2(value.conversations, nowMs, ttlMs).conversations;
150
+ return {
151
+ version: 1,
152
+ conversations: pruneToLimit$2(pruned)
153
+ };
154
+ };
155
+ const list = async () => {
156
+ const store = await readStore();
157
+ return toConversationStoreEntries(Object.entries(store.conversations));
158
+ };
159
+ const get = async (conversationId) => {
160
+ return (await readStore()).conversations[normalizeStoredConversationId(conversationId)] ?? null;
161
+ };
162
+ const findPreferredDmByUserId = async (id) => {
163
+ return findPreferredDmConversationByUserId(await list(), id);
164
+ };
165
+ const upsert = async (conversationId, reference) => {
166
+ const normalizedId = normalizeStoredConversationId(conversationId);
167
+ await withFileLock(filePath, empty, async () => {
168
+ const store = await readStore();
169
+ store.conversations[normalizedId] = mergeStoredConversationReference(store.conversations[normalizedId], reference, (/* @__PURE__ */ new Date()).toISOString());
170
+ const nowMs = Date.now();
171
+ store.conversations = pruneExpired$2(store.conversations, nowMs, ttlMs).conversations;
172
+ store.conversations = pruneToLimit$2(store.conversations);
173
+ await writeJsonFile(filePath, store);
174
+ });
175
+ };
176
+ const remove = async (conversationId) => {
177
+ const normalizedId = normalizeStoredConversationId(conversationId);
178
+ return await withFileLock(filePath, empty, async () => {
179
+ const store = await readStore();
180
+ if (!(normalizedId in store.conversations)) return false;
181
+ delete store.conversations[normalizedId];
182
+ await writeJsonFile(filePath, store);
183
+ return true;
184
+ });
185
+ };
186
+ return {
187
+ upsert,
188
+ get,
189
+ list,
190
+ remove,
191
+ findPreferredDmByUserId,
192
+ findByUserId: findPreferredDmByUserId
193
+ };
194
+ }
195
+ //#endregion
196
+ //#region extensions/msteams/src/polls.ts
197
+ const STORE_FILENAME$1 = "msteams-polls.json";
198
+ const MAX_POLLS = 1e3;
199
+ const POLL_TTL_MS = 720 * 60 * 60 * 1e3;
200
+ function normalizeChoiceValue(value) {
201
+ if (typeof value === "string") {
202
+ const trimmed = value.trim();
203
+ return trimmed ? trimmed : null;
204
+ }
205
+ if (typeof value === "number" && Number.isFinite(value)) return String(value);
206
+ return null;
207
+ }
208
+ function extractSelections(value) {
209
+ if (Array.isArray(value)) return value.map(normalizeChoiceValue).filter((entry) => Boolean(entry));
210
+ const normalized = normalizeChoiceValue(value);
211
+ if (!normalized) return [];
212
+ if (normalized.includes(",")) return normalized.split(",").map((entry) => entry.trim()).filter(Boolean);
213
+ return [normalized];
214
+ }
215
+ function readNestedValue(value, keys) {
216
+ let current = value;
217
+ for (const key of keys) {
218
+ if (!isRecord(current)) return;
219
+ current = current[key];
220
+ }
221
+ return current;
222
+ }
223
+ function readNestedString(value, keys) {
224
+ return normalizeOptionalString(readNestedValue(value, keys));
225
+ }
226
+ function extractMSTeamsPollVote(activity) {
227
+ const value = activity?.value;
228
+ if (!value || !isRecord(value)) return null;
229
+ const pollId = readNestedString(value, ["daocorePollId"]) ?? readNestedString(value, ["pollId"]) ?? readNestedString(value, ["daocore", "pollId"]) ?? readNestedString(value, [
230
+ "daocore",
231
+ "poll",
232
+ "id"
233
+ ]) ?? readNestedString(value, ["data", "daocorePollId"]) ?? readNestedString(value, ["data", "pollId"]) ?? readNestedString(value, [
234
+ "data",
235
+ "daocore",
236
+ "pollId"
237
+ ]);
238
+ if (!pollId) return null;
239
+ const directSelections = extractSelections(value.choices);
240
+ const nestedSelections = extractSelections(readNestedValue(value, ["choices"]));
241
+ const dataSelections = extractSelections(readNestedValue(value, ["data", "choices"]));
242
+ const selections = directSelections.length > 0 ? directSelections : nestedSelections.length > 0 ? nestedSelections : dataSelections;
243
+ if (selections.length === 0) return null;
244
+ return {
245
+ pollId,
246
+ selections
247
+ };
248
+ }
249
+ function buildMSTeamsPollCard(params) {
250
+ const pollId = params.pollId ?? crypto.randomUUID();
251
+ const maxSelections = typeof params.maxSelections === "number" && params.maxSelections > 1 ? Math.floor(params.maxSelections) : 1;
252
+ const cappedMaxSelections = Math.min(Math.max(1, maxSelections), params.options.length);
253
+ const choices = params.options.map((option, index) => ({
254
+ title: option,
255
+ value: String(index)
256
+ }));
257
+ const hint = cappedMaxSelections > 1 ? `Select up to ${cappedMaxSelections} option${cappedMaxSelections === 1 ? "" : "s"}.` : "Select one option.";
258
+ const card = {
259
+ type: "AdaptiveCard",
260
+ version: "1.5",
261
+ body: [
262
+ {
263
+ type: "TextBlock",
264
+ text: params.question,
265
+ wrap: true,
266
+ weight: "Bolder",
267
+ size: "Medium"
268
+ },
269
+ {
270
+ type: "Input.ChoiceSet",
271
+ id: "choices",
272
+ isMultiSelect: cappedMaxSelections > 1,
273
+ style: "expanded",
274
+ choices
275
+ },
276
+ {
277
+ type: "TextBlock",
278
+ text: hint,
279
+ wrap: true,
280
+ isSubtle: true,
281
+ spacing: "Small"
282
+ }
283
+ ],
284
+ actions: [{
285
+ type: "Action.Submit",
286
+ title: "Vote",
287
+ data: {
288
+ daocorePollId: pollId,
289
+ pollId
290
+ },
291
+ msteams: {
292
+ type: "messageBack",
293
+ text: "daocore poll vote",
294
+ displayText: "Vote recorded",
295
+ value: {
296
+ daocorePollId: pollId,
297
+ pollId
298
+ }
299
+ }
300
+ }]
301
+ };
302
+ const fallbackLines = [`Poll: ${params.question}`, ...params.options.map((option, index) => `${index + 1}. ${option}`)];
303
+ return {
304
+ pollId,
305
+ question: params.question,
306
+ options: params.options,
307
+ maxSelections: cappedMaxSelections,
308
+ card,
309
+ fallbackText: fallbackLines.join("\n")
310
+ };
311
+ }
312
+ function parseTimestamp(value) {
313
+ if (!value) return null;
314
+ const parsed = Date.parse(value);
315
+ return Number.isFinite(parsed) ? parsed : null;
316
+ }
317
+ function pruneExpired$1(polls) {
318
+ const cutoff = Date.now() - POLL_TTL_MS;
319
+ const entries = Object.entries(polls).filter(([, poll]) => {
320
+ return (parseTimestamp(poll.updatedAt ?? poll.createdAt) ?? 0) >= cutoff;
321
+ });
322
+ return Object.fromEntries(entries);
323
+ }
324
+ function pruneToLimit$1(polls) {
325
+ const entries = Object.entries(polls);
326
+ if (entries.length <= MAX_POLLS) return polls;
327
+ entries.sort((a, b) => {
328
+ return (parseTimestamp(a[1].updatedAt ?? a[1].createdAt) ?? 0) - (parseTimestamp(b[1].updatedAt ?? b[1].createdAt) ?? 0);
329
+ });
330
+ const keep = entries.slice(entries.length - MAX_POLLS);
331
+ return Object.fromEntries(keep);
332
+ }
333
+ function normalizeMSTeamsPollSelections(poll, selections) {
334
+ const maxSelections = Math.max(1, poll.maxSelections);
335
+ const mapped = selections.map((entry) => Number.parseInt(entry, 10)).filter((value) => Number.isFinite(value)).filter((value) => value >= 0 && value < poll.options.length).map((value) => String(value));
336
+ const limited = maxSelections > 1 ? mapped.slice(0, maxSelections) : mapped.slice(0, 1);
337
+ return Array.from(new Set(limited));
338
+ }
339
+ function createMSTeamsPollStoreFs(params) {
340
+ const filePath = resolveMSTeamsStorePath({
341
+ filename: STORE_FILENAME$1,
342
+ env: params?.env,
343
+ homedir: params?.homedir,
344
+ stateDir: params?.stateDir,
345
+ storePath: params?.storePath
346
+ });
347
+ const empty = {
348
+ version: 1,
349
+ polls: {}
350
+ };
351
+ const readStore = async () => {
352
+ const { value } = await readJsonFile(filePath, empty);
353
+ return {
354
+ version: 1,
355
+ polls: pruneToLimit$1(pruneExpired$1(value.polls ?? {}))
356
+ };
357
+ };
358
+ const writeStore = async (data) => {
359
+ await writeJsonFile(filePath, data);
360
+ };
361
+ const createPoll = async (poll) => {
362
+ await withFileLock(filePath, empty, async () => {
363
+ const data = await readStore();
364
+ data.polls[poll.id] = poll;
365
+ await writeStore({
366
+ version: 1,
367
+ polls: pruneToLimit$1(data.polls)
368
+ });
369
+ });
370
+ };
371
+ const getPoll = async (pollId) => await withFileLock(filePath, empty, async () => {
372
+ return (await readStore()).polls[pollId] ?? null;
373
+ });
374
+ const recordVote = async (params) => await withFileLock(filePath, empty, async () => {
375
+ const data = await readStore();
376
+ const poll = data.polls[params.pollId];
377
+ if (!poll) return null;
378
+ const normalized = normalizeMSTeamsPollSelections(poll, params.selections);
379
+ poll.votes[params.voterId] = normalized;
380
+ poll.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
381
+ data.polls[poll.id] = poll;
382
+ await writeStore({
383
+ version: 1,
384
+ polls: pruneToLimit$1(data.polls)
385
+ });
386
+ return poll;
387
+ });
388
+ return {
389
+ createPoll,
390
+ getPoll,
391
+ recordVote
392
+ };
393
+ }
394
+ //#endregion
395
+ //#region extensions/msteams/src/file-consent.ts
396
+ /**
397
+ * FileConsentCard utilities for MS Teams large file uploads (>4MB) in personal chats.
398
+ *
399
+ * Teams requires user consent before the bot can upload large files. This module provides
400
+ * utilities for:
401
+ * - Building FileConsentCard attachments (to request upload permission)
402
+ * - Building FileInfoCard attachments (to confirm upload completion)
403
+ * - Parsing fileConsent/invoke activities
404
+ */
405
+ /**
406
+ * Allowlist of domains that are valid targets for file consent uploads.
407
+ * These are the Microsoft/SharePoint domains that Teams legitimately provides
408
+ * as upload destinations in the FileConsentCard flow.
409
+ */
410
+ const CONSENT_UPLOAD_HOST_ALLOWLIST = [
411
+ "sharepoint.com",
412
+ "sharepoint.us",
413
+ "sharepoint.de",
414
+ "sharepoint.cn",
415
+ "sharepoint-df.com",
416
+ "storage.live.com",
417
+ "onedrive.com",
418
+ "1drv.ms",
419
+ "graph.microsoft.com",
420
+ "graph.microsoft.us",
421
+ "graph.microsoft.de",
422
+ "graph.microsoft.cn"
423
+ ];
424
+ /**
425
+ * Returns true if the given IPv4 or IPv6 address is private, internal, or
426
+ * special-use and must never be reached via consent uploads.
427
+ */
428
+ const isPrivateOrReservedIP = isPrivateIpAddress;
429
+ /**
430
+ * Validate that a consent upload URL is safe to PUT to.
431
+ * Checks:
432
+ * 1. Protocol is HTTPS
433
+ * 2. Hostname matches the consent upload allowlist
434
+ * 3. Resolved IP is not in a private/reserved range (anti-SSRF)
435
+ *
436
+ * @throws Error if the URL fails validation
437
+ */
438
+ async function validateConsentUploadUrl(url, opts) {
439
+ let parsed;
440
+ try {
441
+ parsed = new URL(url);
442
+ } catch {
443
+ throw new Error("Consent upload URL is not a valid URL");
444
+ }
445
+ if (parsed.protocol !== "https:") throw new Error(`Consent upload URL must use HTTPS, got ${parsed.protocol}`);
446
+ const hostname = normalizeLowercaseStringOrEmpty(parsed.hostname);
447
+ if (!(opts?.allowlist ?? CONSENT_UPLOAD_HOST_ALLOWLIST).some((entry) => hostname === entry || hostname.endsWith(`.${entry}`))) throw new Error(`Consent upload URL hostname "${hostname}" is not in the allowed domains`);
448
+ const resolveFn = opts?.resolveFn ?? ((name) => lookup(name, { all: true }));
449
+ let resolved;
450
+ try {
451
+ const result = await resolveFn(hostname);
452
+ resolved = Array.isArray(result) ? result : [result];
453
+ } catch {
454
+ throw new Error(`Failed to resolve consent upload URL hostname "${hostname}"`);
455
+ }
456
+ for (const entry of resolved) if (isPrivateOrReservedIP(entry.address)) throw new Error(`Consent upload URL resolves to a private/reserved IP (${entry.address})`);
457
+ }
458
+ /**
459
+ * Build a FileConsentCard attachment for requesting upload permission.
460
+ * Use this for files >= 4MB in personal (1:1) chats.
461
+ */
462
+ function buildFileConsentCard(params) {
463
+ return {
464
+ contentType: "application/vnd.microsoft.teams.card.file.consent",
465
+ name: params.filename,
466
+ content: {
467
+ description: params.description ?? `File: ${params.filename}`,
468
+ sizeInBytes: params.sizeInBytes,
469
+ acceptContext: {
470
+ filename: params.filename,
471
+ ...params.context
472
+ },
473
+ declineContext: {
474
+ filename: params.filename,
475
+ ...params.context
476
+ }
477
+ }
478
+ };
479
+ }
480
+ /**
481
+ * Build a FileInfoCard attachment for confirming upload completion.
482
+ * Send this after successfully uploading the file to the consent URL.
483
+ */
484
+ function buildFileInfoCard(params) {
485
+ return {
486
+ contentType: "application/vnd.microsoft.teams.card.file.info",
487
+ contentUrl: params.contentUrl,
488
+ name: params.filename,
489
+ content: {
490
+ uniqueId: params.uniqueId,
491
+ fileType: params.fileType
492
+ }
493
+ };
494
+ }
495
+ /**
496
+ * Parse a fileConsent/invoke activity.
497
+ * Returns null if the activity is not a file consent invoke.
498
+ */
499
+ function parseFileConsentInvoke(activity) {
500
+ if (activity.name !== "fileConsent/invoke") return null;
501
+ const value = activity.value;
502
+ if (value?.type !== "fileUpload") return null;
503
+ return {
504
+ action: value.action === "accept" ? "accept" : "decline",
505
+ uploadInfo: value.uploadInfo,
506
+ context: value.context
507
+ };
508
+ }
509
+ /**
510
+ * Upload a file to the consent URL provided by Teams.
511
+ * The URL is provided in the fileConsent/invoke response after user accepts.
512
+ *
513
+ * @throws Error if the URL fails SSRF validation (non-HTTPS, disallowed host, private IP)
514
+ */
515
+ async function uploadToConsentUrl(params) {
516
+ await validateConsentUploadUrl(params.url, params.validationOpts);
517
+ const res = await (params.fetchFn ?? fetch)(params.url, {
518
+ method: "PUT",
519
+ headers: {
520
+ "User-Agent": buildUserAgent(),
521
+ "Content-Type": params.contentType ?? "application/octet-stream",
522
+ "Content-Range": `bytes 0-${params.buffer.length - 1}/${params.buffer.length}`
523
+ },
524
+ body: new Uint8Array(params.buffer)
525
+ });
526
+ if (!res.ok) throw new Error(`File upload to consent URL failed: ${res.status} ${res.statusText}`);
527
+ }
528
+ //#endregion
529
+ //#region extensions/msteams/src/pending-uploads-fs.ts
530
+ /**
531
+ * Filesystem-backed pending upload store for the FileConsentCard flow.
532
+ *
533
+ * The CLI `message send --media` path runs in a different process from the
534
+ * gateway's bot monitor that receives the `fileConsent/invoke` callback.
535
+ * An in-memory `pending-uploads.ts` store cannot bridge those processes, so
536
+ * when the user clicks "Allow" the monitor handler's lookup misses and the
537
+ * user sees "card action not supported".
538
+ *
539
+ * This FS store persists pending uploads to a JSON file (with the file buffer
540
+ * base64-encoded) so any process that shares the DaoCore state dir can read
541
+ * them back. The in-memory store in `pending-uploads.ts` is still the fast
542
+ * path for same-process flows (for example the messenger reply path); this FS
543
+ * store is a cross-process fallback.
544
+ */
545
+ /** TTL for persisted pending uploads (matches in-memory store). */
546
+ const PENDING_UPLOAD_TTL_MS$1 = 300 * 1e3;
547
+ /** Cap to avoid unbounded growth if a process crashes mid-flow. */
548
+ const MAX_PENDING_UPLOADS = 100;
549
+ const STORE_FILENAME = "msteams-pending-uploads.json";
550
+ const empty = {
551
+ version: 1,
552
+ uploads: {}
553
+ };
554
+ function resolveFilePath(options) {
555
+ return resolveMSTeamsStorePath({
556
+ filename: STORE_FILENAME,
557
+ env: options?.env,
558
+ homedir: options?.homedir,
559
+ stateDir: options?.stateDir,
560
+ storePath: options?.storePath
561
+ });
562
+ }
563
+ function pruneExpired(uploads, nowMs, ttlMs) {
564
+ const kept = {};
565
+ for (const [id, record] of Object.entries(uploads)) if (nowMs - record.createdAt <= ttlMs) kept[id] = record;
566
+ return kept;
567
+ }
568
+ function pruneToLimit(uploads) {
569
+ const entries = Object.entries(uploads);
570
+ if (entries.length <= MAX_PENDING_UPLOADS) return uploads;
571
+ entries.sort((a, b) => a[1].createdAt - b[1].createdAt);
572
+ const keep = entries.slice(entries.length - MAX_PENDING_UPLOADS);
573
+ return Object.fromEntries(keep);
574
+ }
575
+ function recordToUpload(record) {
576
+ return {
577
+ id: record.id,
578
+ buffer: Buffer.from(record.bufferBase64, "base64"),
579
+ filename: record.filename,
580
+ contentType: record.contentType,
581
+ conversationId: record.conversationId,
582
+ consentCardActivityId: record.consentCardActivityId,
583
+ createdAt: record.createdAt
584
+ };
585
+ }
586
+ function isValidStore(value) {
587
+ if (!value || typeof value !== "object") return false;
588
+ const candidate = value;
589
+ return candidate.version === 1 && typeof candidate.uploads === "object" && candidate.uploads !== null && !Array.isArray(candidate.uploads);
590
+ }
591
+ async function readStore(filePath, ttlMs) {
592
+ const { value } = await readJsonFile(filePath, empty);
593
+ if (!isValidStore(value)) return {
594
+ version: 1,
595
+ uploads: {}
596
+ };
597
+ return {
598
+ version: 1,
599
+ uploads: pruneToLimit(pruneExpired(value.uploads, Date.now(), ttlMs))
600
+ };
601
+ }
602
+ /**
603
+ * Persist a pending upload record so another process can read it back.
604
+ * Pass in the pre-generated id (same as the one placed in the consent card
605
+ * context) so the in-memory and FS stores share the same key.
606
+ */
607
+ async function storePendingUploadFs(upload, options) {
608
+ const ttlMs = options?.ttlMs ?? PENDING_UPLOAD_TTL_MS$1;
609
+ const filePath = resolveFilePath(options);
610
+ await withFileLock(filePath, empty, async () => {
611
+ const store = await readStore(filePath, ttlMs);
612
+ store.uploads[upload.id] = {
613
+ id: upload.id,
614
+ bufferBase64: upload.buffer.toString("base64"),
615
+ filename: upload.filename,
616
+ contentType: upload.contentType,
617
+ conversationId: upload.conversationId,
618
+ consentCardActivityId: upload.consentCardActivityId,
619
+ createdAt: Date.now()
620
+ };
621
+ store.uploads = pruneToLimit(pruneExpired(store.uploads, Date.now(), ttlMs));
622
+ await writeJsonFile(filePath, store);
623
+ });
624
+ }
625
+ /**
626
+ * Retrieve a persisted pending upload. Expired entries are treated as absent.
627
+ */
628
+ async function getPendingUploadFs(id, options) {
629
+ if (!id) return;
630
+ const ttlMs = options?.ttlMs ?? PENDING_UPLOAD_TTL_MS$1;
631
+ const record = (await readStore(resolveFilePath(options), ttlMs)).uploads[id];
632
+ if (!record) return;
633
+ if (Date.now() - record.createdAt > ttlMs) return;
634
+ return recordToUpload(record);
635
+ }
636
+ /**
637
+ * Remove a persisted pending upload (after successful upload or decline).
638
+ * No-op if the entry is already gone.
639
+ */
640
+ async function removePendingUploadFs(id, options) {
641
+ if (!id) return;
642
+ const ttlMs = options?.ttlMs ?? PENDING_UPLOAD_TTL_MS$1;
643
+ const filePath = resolveFilePath(options);
644
+ await withFileLock(filePath, empty, async () => {
645
+ const store = await readStore(filePath, ttlMs);
646
+ if (!(id in store.uploads)) return;
647
+ delete store.uploads[id];
648
+ await writeJsonFile(filePath, store);
649
+ });
650
+ }
651
+ /**
652
+ * Set the consent card activity ID on a persisted entry. Called after the
653
+ * FileConsentCard activity is sent and we know its message id.
654
+ */
655
+ async function setPendingUploadActivityIdFs(id, activityId, options) {
656
+ const ttlMs = options?.ttlMs ?? PENDING_UPLOAD_TTL_MS$1;
657
+ const filePath = resolveFilePath(options);
658
+ await withFileLock(filePath, empty, async () => {
659
+ const store = await readStore(filePath, ttlMs);
660
+ const record = store.uploads[id];
661
+ if (!record) return;
662
+ record.consentCardActivityId = activityId;
663
+ await writeJsonFile(filePath, store);
664
+ });
665
+ }
666
+ //#endregion
667
+ //#region extensions/msteams/src/pending-uploads.ts
668
+ /**
669
+ * In-memory storage for files awaiting user consent in the FileConsentCard flow.
670
+ *
671
+ * When sending large files (>=4MB) in personal chats, Teams requires user consent
672
+ * before upload. This module stores the file data temporarily until the user
673
+ * accepts or declines, or until the TTL expires.
674
+ */
675
+ const pendingUploads = /* @__PURE__ */ new Map();
676
+ /** Timer handles keyed by upload ID, cleared on explicit removal to prevent ghost cleanup */
677
+ const pendingUploadTimers = /* @__PURE__ */ new Map();
678
+ /** TTL for pending uploads: 5 minutes */
679
+ const PENDING_UPLOAD_TTL_MS = 300 * 1e3;
680
+ /**
681
+ * Store a file pending user consent.
682
+ * Returns the upload ID to include in the FileConsentCard context.
683
+ */
684
+ function storePendingUpload(upload) {
685
+ const id = crypto.randomUUID();
686
+ const entry = {
687
+ ...upload,
688
+ id,
689
+ createdAt: Date.now()
690
+ };
691
+ pendingUploads.set(id, entry);
692
+ const timer = setTimeout(() => {
693
+ pendingUploads.delete(id);
694
+ pendingUploadTimers.delete(id);
695
+ }, PENDING_UPLOAD_TTL_MS);
696
+ pendingUploadTimers.set(id, timer);
697
+ return id;
698
+ }
699
+ /**
700
+ * Retrieve a pending upload by ID.
701
+ * Returns undefined if not found or expired.
702
+ */
703
+ function getPendingUpload(id) {
704
+ if (!id) return;
705
+ const entry = pendingUploads.get(id);
706
+ if (!entry) return;
707
+ if (Date.now() - entry.createdAt > PENDING_UPLOAD_TTL_MS) {
708
+ pendingUploads.delete(id);
709
+ const timer = pendingUploadTimers.get(id);
710
+ if (timer !== void 0) {
711
+ clearTimeout(timer);
712
+ pendingUploadTimers.delete(id);
713
+ }
714
+ return;
715
+ }
716
+ return entry;
717
+ }
718
+ /**
719
+ * Remove a pending upload (after successful upload or user decline).
720
+ * Also clears the TTL timer to prevent ghost Map deletions.
721
+ */
722
+ function removePendingUpload(id) {
723
+ if (id) {
724
+ pendingUploads.delete(id);
725
+ const timer = pendingUploadTimers.get(id);
726
+ if (timer !== void 0) {
727
+ clearTimeout(timer);
728
+ pendingUploadTimers.delete(id);
729
+ }
730
+ }
731
+ }
732
+ /**
733
+ * Set the consent card activity ID on an existing pending upload.
734
+ * Called after the FileConsentCard is sent and we know its activity ID.
735
+ */
736
+ function setPendingUploadActivityId(uploadId, activityId) {
737
+ const entry = pendingUploads.get(uploadId);
738
+ if (entry) entry.consentCardActivityId = activityId;
739
+ }
740
+ //#endregion
741
+ //#region extensions/msteams/src/file-consent-helpers.ts
742
+ function buildConsentActivity(params) {
743
+ const { media, description, uploadId } = params;
744
+ return {
745
+ type: "message",
746
+ attachments: [buildFileConsentCard({
747
+ filename: media.filename,
748
+ description: description || `File: ${media.filename}`,
749
+ sizeInBytes: media.buffer.length,
750
+ context: { uploadId }
751
+ })]
752
+ };
753
+ }
754
+ /**
755
+ * Prepare a FileConsentCard activity for large files or non-images in personal chats.
756
+ * Returns the activity object and uploadId - caller is responsible for sending.
757
+ *
758
+ * This variant only writes to the in-memory store. Use it when the caller and
759
+ * the `fileConsent/invoke` handler share the same process (for example the
760
+ * messenger reply path). For proactive CLI sends where the invoke arrives in
761
+ * a different process, use {@link prepareFileConsentActivityFs} instead.
762
+ */
763
+ function prepareFileConsentActivity(params) {
764
+ const { media, conversationId, description } = params;
765
+ const uploadId = storePendingUpload({
766
+ buffer: media.buffer,
767
+ filename: media.filename,
768
+ contentType: media.contentType,
769
+ conversationId
770
+ });
771
+ return {
772
+ activity: buildConsentActivity({
773
+ media,
774
+ description,
775
+ uploadId
776
+ }),
777
+ uploadId
778
+ };
779
+ }
780
+ /**
781
+ * Prepare a FileConsentCard activity and persist the pending upload to the
782
+ * filesystem so a different process can read it when the user accepts.
783
+ *
784
+ * This is used by the proactive CLI `message send --media` path: the CLI
785
+ * process sends the card and exits, but the `fileConsent/invoke` callback is
786
+ * delivered to the long-lived gateway monitor process. The FS-backed store
787
+ * bridges those two processes. The in-memory store is also populated so
788
+ * same-process flows keep the fast path.
789
+ */
790
+ async function prepareFileConsentActivityFs(params) {
791
+ const { media, conversationId, description } = params;
792
+ const uploadId = storePendingUpload({
793
+ buffer: media.buffer,
794
+ filename: media.filename,
795
+ contentType: media.contentType,
796
+ conversationId
797
+ });
798
+ await storePendingUploadFs({
799
+ id: uploadId,
800
+ buffer: media.buffer,
801
+ filename: media.filename,
802
+ contentType: media.contentType,
803
+ conversationId
804
+ });
805
+ return {
806
+ activity: buildConsentActivity({
807
+ media,
808
+ description,
809
+ uploadId
810
+ }),
811
+ uploadId
812
+ };
813
+ }
814
+ /**
815
+ * Check if a file requires FileConsentCard flow.
816
+ * True for: personal chat AND (large file OR non-image)
817
+ */
818
+ function requiresFileConsent(params) {
819
+ const isPersonal = normalizeOptionalLowercaseString(params.conversationType) === "personal";
820
+ const isImage = params.contentType?.startsWith("image/") ?? false;
821
+ const isLargeFile = params.bufferSize >= params.thresholdBytes;
822
+ return isPersonal && (isLargeFile || !isImage);
823
+ }
824
+ //#endregion
825
+ //#region extensions/msteams/src/graph-chat.ts
826
+ function buildTeamsFileInfoCard(file) {
827
+ const rawETag = file.eTag;
828
+ const uniqueId = rawETag.replace(/^["']|["']$/g, "").replace(/[{}]/g, "").split(",")[0] ?? rawETag;
829
+ const lastDot = file.name.lastIndexOf(".");
830
+ const fileType = lastDot >= 0 ? normalizeLowercaseStringOrEmpty(file.name.slice(lastDot + 1)) : "";
831
+ return {
832
+ contentType: "application/vnd.microsoft.teams.card.file.info",
833
+ contentUrl: file.webDavUrl,
834
+ name: file.name,
835
+ content: {
836
+ uniqueId,
837
+ fileType
838
+ }
839
+ };
840
+ }
841
+ //#endregion
842
+ //#region extensions/msteams/src/graph-upload.ts
843
+ const GRAPH_ROOT = "https://graph.microsoft.com/v1.0";
844
+ const GRAPH_BETA = "https://graph.microsoft.com/beta";
845
+ const GRAPH_SCOPE = "https://graph.microsoft.com";
846
+ /**
847
+ * Upload a file to the user's OneDrive root folder.
848
+ * For larger files, this uses the simple upload endpoint (up to 4MB).
849
+ */
850
+ async function uploadToOneDrive(params) {
851
+ const fetchFn = params.fetchFn ?? fetch;
852
+ const token = await params.tokenProvider.getAccessToken(GRAPH_SCOPE);
853
+ const res = await fetchFn(`${GRAPH_ROOT}/me/drive/root:${`/DaoCoreShared/${encodeURIComponent(params.filename)}`}:/content`, {
854
+ method: "PUT",
855
+ headers: {
856
+ "User-Agent": buildUserAgent(),
857
+ Authorization: `Bearer ${token}`,
858
+ "Content-Type": params.contentType ?? "application/octet-stream"
859
+ },
860
+ body: new Uint8Array(params.buffer)
861
+ });
862
+ if (!res.ok) {
863
+ const body = await res.text().catch(() => "");
864
+ throw new Error(`OneDrive upload failed: ${res.status} ${res.statusText} - ${body}`);
865
+ }
866
+ const data = await res.json();
867
+ if (!data.id || !data.webUrl || !data.name) throw new Error("OneDrive upload response missing required fields");
868
+ return {
869
+ id: data.id,
870
+ webUrl: data.webUrl,
871
+ name: data.name
872
+ };
873
+ }
874
+ /**
875
+ * Create a sharing link for a OneDrive file.
876
+ * The link allows organization members to view the file.
877
+ */
878
+ async function createSharingLink(params) {
879
+ const fetchFn = params.fetchFn ?? fetch;
880
+ const token = await params.tokenProvider.getAccessToken(GRAPH_SCOPE);
881
+ const res = await fetchFn(`${GRAPH_ROOT}/me/drive/items/${params.itemId}/createLink`, {
882
+ method: "POST",
883
+ headers: {
884
+ "User-Agent": buildUserAgent(),
885
+ Authorization: `Bearer ${token}`,
886
+ "Content-Type": "application/json"
887
+ },
888
+ body: JSON.stringify({
889
+ type: "view",
890
+ scope: params.scope ?? "organization"
891
+ })
892
+ });
893
+ if (!res.ok) {
894
+ const body = await res.text().catch(() => "");
895
+ throw new Error(`Create sharing link failed: ${res.status} ${res.statusText} - ${body}`);
896
+ }
897
+ const data = await res.json();
898
+ if (!data.link?.webUrl) throw new Error("Create sharing link response missing webUrl");
899
+ return { webUrl: data.link.webUrl };
900
+ }
901
+ /**
902
+ * Upload a file to OneDrive and create a sharing link.
903
+ * Convenience function for the common case.
904
+ */
905
+ async function uploadAndShareOneDrive(params) {
906
+ const uploaded = await uploadToOneDrive({
907
+ buffer: params.buffer,
908
+ filename: params.filename,
909
+ contentType: params.contentType,
910
+ tokenProvider: params.tokenProvider,
911
+ fetchFn: params.fetchFn
912
+ });
913
+ const shareLink = await createSharingLink({
914
+ itemId: uploaded.id,
915
+ tokenProvider: params.tokenProvider,
916
+ scope: params.scope,
917
+ fetchFn: params.fetchFn
918
+ });
919
+ return {
920
+ itemId: uploaded.id,
921
+ webUrl: uploaded.webUrl,
922
+ shareUrl: shareLink.webUrl,
923
+ name: uploaded.name
924
+ };
925
+ }
926
+ /**
927
+ * Upload a file to a SharePoint site.
928
+ * This is used for group chats and channels where /me/drive doesn't work for bots.
929
+ *
930
+ * @param params.siteId - SharePoint site ID (e.g., "contoso.sharepoint.com,guid1,guid2")
931
+ */
932
+ async function uploadToSharePoint(params) {
933
+ const fetchFn = params.fetchFn ?? fetch;
934
+ const token = await params.tokenProvider.getAccessToken(GRAPH_SCOPE);
935
+ const uploadPath = `/DaoCoreShared/${encodeURIComponent(params.filename)}`;
936
+ const res = await fetchFn(`${GRAPH_ROOT}/sites/${params.siteId}/drive/root:${uploadPath}:/content`, {
937
+ method: "PUT",
938
+ headers: {
939
+ "User-Agent": buildUserAgent(),
940
+ Authorization: `Bearer ${token}`,
941
+ "Content-Type": params.contentType ?? "application/octet-stream"
942
+ },
943
+ body: new Uint8Array(params.buffer)
944
+ });
945
+ if (!res.ok) {
946
+ const body = await res.text().catch(() => "");
947
+ throw new Error(`SharePoint upload failed: ${res.status} ${res.statusText} - ${body}`);
948
+ }
949
+ const data = await res.json();
950
+ if (!data.id || !data.webUrl || !data.name) throw new Error("SharePoint upload response missing required fields");
951
+ return {
952
+ id: data.id,
953
+ webUrl: data.webUrl,
954
+ name: data.name
955
+ };
956
+ }
957
+ /**
958
+ * Get driveItem properties needed for native Teams file card attachments.
959
+ * This fetches the eTag and webDavUrl which are required for "reference" type attachments.
960
+ *
961
+ * @param params.siteId - SharePoint site ID
962
+ * @param params.itemId - The driveItem ID (returned from upload)
963
+ */
964
+ async function getDriveItemProperties(params) {
965
+ const fetchFn = params.fetchFn ?? fetch;
966
+ const token = await params.tokenProvider.getAccessToken(GRAPH_SCOPE);
967
+ const res = await fetchFn(`${GRAPH_ROOT}/sites/${params.siteId}/drive/items/${params.itemId}?$select=eTag,webDavUrl,name`, { headers: {
968
+ "User-Agent": buildUserAgent(),
969
+ Authorization: `Bearer ${token}`
970
+ } });
971
+ if (!res.ok) {
972
+ const body = await res.text().catch(() => "");
973
+ throw new Error(`Get driveItem properties failed: ${res.status} ${res.statusText} - ${body}`);
974
+ }
975
+ const data = await res.json();
976
+ if (!data.eTag || !data.webDavUrl || !data.name) throw new Error("DriveItem response missing required properties (eTag, webDavUrl, or name)");
977
+ return {
978
+ eTag: data.eTag,
979
+ webDavUrl: data.webDavUrl,
980
+ name: data.name
981
+ };
982
+ }
983
+ /**
984
+ * Resolve the Graph API-native chat ID from a Bot Framework conversation ID.
985
+ *
986
+ * Bot Framework personal DM conversation IDs use formats like `a:1xxx@unq.gbl.spaces`
987
+ * or `8:orgid:xxx` that the Graph API does not accept. Graph API requires the
988
+ * `19:xxx@thread.tacv2` or `19:xxx@unq.gbl.spaces` format.
989
+ *
990
+ * This function looks up the matching Graph chat by querying the bot's chats filtered
991
+ * by the target user's AAD object ID.
992
+ */
993
+ async function resolveGraphChatId(params) {
994
+ const { botFrameworkConversationId, userAadObjectId, tokenProvider } = params;
995
+ const fetchFn = params.fetchFn ?? fetch;
996
+ if (botFrameworkConversationId.startsWith("19:")) return botFrameworkConversationId;
997
+ const token = await tokenProvider.getAccessToken(GRAPH_SCOPE);
998
+ let path;
999
+ if (userAadObjectId) path = `/me/chats?$filter=${encodeURIComponent(`chatType eq 'oneOnOne' and members/any(m:m/microsoft.graph.aadUserConversationMember/userId eq '${userAadObjectId}')`)}&$select=id`;
1000
+ else path = `/me/chats?$filter=${encodeURIComponent("chatType eq 'oneOnOne'")}&$select=id`;
1001
+ const res = await fetchFn(`${GRAPH_ROOT}${path}`, { headers: {
1002
+ "User-Agent": buildUserAgent(),
1003
+ Authorization: `Bearer ${token}`
1004
+ } });
1005
+ if (!res.ok) return null;
1006
+ const chats = (await res.json()).value ?? [];
1007
+ if (userAadObjectId && chats.length > 0 && chats[0]?.id) return chats[0].id;
1008
+ if (!userAadObjectId && chats.length === 1 && chats[0]?.id) return chats[0].id;
1009
+ return null;
1010
+ }
1011
+ /**
1012
+ * Get members of a Teams chat for per-user sharing.
1013
+ * Used to create sharing links scoped to only the chat participants.
1014
+ */
1015
+ async function getChatMembers(params) {
1016
+ const fetchFn = params.fetchFn ?? fetch;
1017
+ const token = await params.tokenProvider.getAccessToken(GRAPH_SCOPE);
1018
+ const res = await fetchFn(`${GRAPH_ROOT}/chats/${params.chatId}/members`, { headers: {
1019
+ "User-Agent": buildUserAgent(),
1020
+ Authorization: `Bearer ${token}`
1021
+ } });
1022
+ if (!res.ok) {
1023
+ const body = await res.text().catch(() => "");
1024
+ throw new Error(`Get chat members failed: ${res.status} ${res.statusText} - ${body}`);
1025
+ }
1026
+ return ((await res.json()).value ?? []).map((m) => ({
1027
+ aadObjectId: m.userId ?? "",
1028
+ displayName: m.displayName
1029
+ })).filter((m) => m.aadObjectId);
1030
+ }
1031
+ /**
1032
+ * Create a sharing link for a SharePoint drive item.
1033
+ * For organization scope (default), uses v1.0 API.
1034
+ * For per-user scope, uses beta API with recipients.
1035
+ */
1036
+ async function createSharePointSharingLink(params) {
1037
+ const fetchFn = params.fetchFn ?? fetch;
1038
+ const token = await params.tokenProvider.getAccessToken(GRAPH_SCOPE);
1039
+ const scope = params.scope ?? "organization";
1040
+ const apiRoot = scope === "users" ? GRAPH_BETA : GRAPH_ROOT;
1041
+ const body = {
1042
+ type: "view",
1043
+ scope: scope === "users" ? "users" : "organization"
1044
+ };
1045
+ if (scope === "users" && params.recipientObjectIds?.length) body.recipients = params.recipientObjectIds.map((id) => ({ objectId: id }));
1046
+ const res = await fetchFn(`${apiRoot}/sites/${params.siteId}/drive/items/${params.itemId}/createLink`, {
1047
+ method: "POST",
1048
+ headers: {
1049
+ "User-Agent": buildUserAgent(),
1050
+ Authorization: `Bearer ${token}`,
1051
+ "Content-Type": "application/json"
1052
+ },
1053
+ body: JSON.stringify(body)
1054
+ });
1055
+ if (!res.ok) {
1056
+ const respBody = await res.text().catch(() => "");
1057
+ throw new Error(`Create SharePoint sharing link failed: ${res.status} ${res.statusText} - ${respBody}`);
1058
+ }
1059
+ const data = await res.json();
1060
+ if (!data.link?.webUrl) throw new Error("Create SharePoint sharing link response missing webUrl");
1061
+ return { webUrl: data.link.webUrl };
1062
+ }
1063
+ /**
1064
+ * Upload a file to SharePoint and create a sharing link.
1065
+ *
1066
+ * For group chats, this creates a per-user sharing link scoped to chat members.
1067
+ * For channels, this creates an organization-wide sharing link.
1068
+ *
1069
+ * @param params.siteId - SharePoint site ID
1070
+ * @param params.chatId - Optional chat ID for per-user sharing (group chats)
1071
+ * @param params.usePerUserSharing - Whether to use per-user sharing (requires beta API + Chat.Read.All)
1072
+ */
1073
+ async function uploadAndShareSharePoint(params) {
1074
+ const uploaded = await uploadToSharePoint({
1075
+ buffer: params.buffer,
1076
+ filename: params.filename,
1077
+ contentType: params.contentType,
1078
+ tokenProvider: params.tokenProvider,
1079
+ siteId: params.siteId,
1080
+ fetchFn: params.fetchFn
1081
+ });
1082
+ let scope = "organization";
1083
+ let recipientObjectIds;
1084
+ if (params.usePerUserSharing && params.chatId) try {
1085
+ const members = await getChatMembers({
1086
+ chatId: params.chatId,
1087
+ tokenProvider: params.tokenProvider,
1088
+ fetchFn: params.fetchFn
1089
+ });
1090
+ if (members.length > 0) {
1091
+ scope = "users";
1092
+ recipientObjectIds = members.map((m) => m.aadObjectId);
1093
+ }
1094
+ } catch {}
1095
+ const shareLink = await createSharePointSharingLink({
1096
+ siteId: params.siteId,
1097
+ itemId: uploaded.id,
1098
+ tokenProvider: params.tokenProvider,
1099
+ scope,
1100
+ recipientObjectIds,
1101
+ fetchFn: params.fetchFn
1102
+ });
1103
+ return {
1104
+ itemId: uploaded.id,
1105
+ webUrl: uploaded.webUrl,
1106
+ shareUrl: shareLink.webUrl,
1107
+ name: uploaded.name
1108
+ };
1109
+ }
1110
+ //#endregion
1111
+ //#region extensions/msteams/src/media-helpers.ts
1112
+ /**
1113
+ * MIME type detection and filename extraction for MSTeams media attachments.
1114
+ */
1115
+ /**
1116
+ * Detect MIME type from URL extension or data URL.
1117
+ * Uses shared MIME detection for consistency with core handling.
1118
+ */
1119
+ async function getMimeType(url) {
1120
+ if (url.startsWith("data:")) {
1121
+ const match = url.match(/^data:([^;,]+)/);
1122
+ if (match?.[1]) return match[1];
1123
+ }
1124
+ return await detectMime({ filePath: url }) ?? "application/octet-stream";
1125
+ }
1126
+ /**
1127
+ * Extract filename from URL or local path.
1128
+ * For local paths, extracts original filename if stored with embedded name pattern.
1129
+ * Falls back to deriving the extension from MIME type when no extension present.
1130
+ */
1131
+ async function extractFilename(url) {
1132
+ if (url.startsWith("data:")) {
1133
+ const mime = await getMimeType(url);
1134
+ const ext = extensionForMime(mime) ?? ".bin";
1135
+ return `${mime.startsWith("image/") ? "image" : "file"}${ext}`;
1136
+ }
1137
+ try {
1138
+ const pathname = new URL(url).pathname;
1139
+ const basename = path.basename(pathname);
1140
+ const existingExt = getFileExtension(pathname);
1141
+ if (basename && existingExt) return basename;
1142
+ const mime = await getMimeType(url);
1143
+ const ext = extensionForMime(mime) ?? ".bin";
1144
+ const prefix = mime.startsWith("image/") ? "image" : "file";
1145
+ return basename ? `${basename}${ext}` : `${prefix}${ext}`;
1146
+ } catch {
1147
+ return extractOriginalFilename(url);
1148
+ }
1149
+ }
1150
+ /**
1151
+ * Check if a URL refers to a local file path.
1152
+ */
1153
+ function isLocalPath(url) {
1154
+ if (url.startsWith("file://") || url.startsWith("/") || url.startsWith("~")) return true;
1155
+ if (url.startsWith("\\") && !url.startsWith("\\\\")) return true;
1156
+ if (/^[a-zA-Z]:[\\/]/.test(url)) return true;
1157
+ if (url.startsWith("\\\\")) return true;
1158
+ return false;
1159
+ }
1160
+ /**
1161
+ * Extract the message ID from a Bot Framework response.
1162
+ */
1163
+ function extractMessageId(response) {
1164
+ if (!response || typeof response !== "object") return null;
1165
+ if (!("id" in response)) return null;
1166
+ const { id } = response;
1167
+ if (typeof id !== "string" || !id) return null;
1168
+ return id;
1169
+ }
1170
+ //#endregion
1171
+ //#region extensions/msteams/src/mentions.ts
1172
+ /**
1173
+ * Check whether an ID looks like a valid Teams user/bot identifier.
1174
+ * Accepts:
1175
+ * - Bot Framework IDs: "28:xxx..." / "29:xxx..." / "8:orgid:..."
1176
+ * - AAD object IDs (UUIDs): "d5318c29-33ac-4e6b-bd42-57b8b793908f"
1177
+ *
1178
+ * Keep this permissive enough for real Teams IDs while still rejecting
1179
+ * documentation placeholders like `@[表示名](ユーザーID)`.
1180
+ */
1181
+ const TEAMS_BOT_ID_PATTERN = /^\d+:[a-z0-9._=-]+(?::[a-z0-9._=-]+)*$/i;
1182
+ const AAD_OBJECT_ID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i;
1183
+ function isValidTeamsId(id) {
1184
+ return TEAMS_BOT_ID_PATTERN.test(id) || AAD_OBJECT_ID_PATTERN.test(id);
1185
+ }
1186
+ /**
1187
+ * Parse mentions from text in the format @[Name](id).
1188
+ * Example: "Hello @[John Doe](28:xxx-yyy-zzz)!"
1189
+ *
1190
+ * Only matches where the id looks like a real Teams user/bot ID are treated
1191
+ * as mentions. This avoids false positives from documentation or code samples
1192
+ * embedded in the message (e.g. `@[表示名](ユーザーID)` in backticks).
1193
+ *
1194
+ * Returns both the formatted text with <at> tags and the entities array.
1195
+ */
1196
+ function parseMentions(text) {
1197
+ const mentionPattern = /@\[([^\]]+)\]\(([^)]+)\)/g;
1198
+ const entities = [];
1199
+ return {
1200
+ text: text.replace(mentionPattern, (match, name, id) => {
1201
+ const trimmedId = id.trim();
1202
+ if (!isValidTeamsId(trimmedId)) return match;
1203
+ const trimmedName = name.trim();
1204
+ const mentionTag = `<at>${trimmedName}</at>`;
1205
+ entities.push({
1206
+ type: "mention",
1207
+ text: mentionTag,
1208
+ mentioned: {
1209
+ id: trimmedId,
1210
+ name: trimmedName
1211
+ }
1212
+ });
1213
+ return mentionTag;
1214
+ }),
1215
+ entities
1216
+ };
1217
+ }
1218
+ //#endregion
1219
+ //#region extensions/msteams/src/revoked-context.ts
1220
+ async function withRevokedProxyFallback(params) {
1221
+ try {
1222
+ return await params.run();
1223
+ } catch (err) {
1224
+ if (!isRevokedProxyError(err)) throw err;
1225
+ params.onRevokedLog?.();
1226
+ return await params.onRevoked();
1227
+ }
1228
+ }
1229
+ //#endregion
1230
+ //#region extensions/msteams/src/ai-entity.ts
1231
+ /** AI-generated content entity added to every outbound AI message. */
1232
+ const AI_GENERATED_ENTITY = {
1233
+ type: "https://schema.org/Message",
1234
+ "@type": "Message",
1235
+ "@id": "",
1236
+ additionalType: ["AIGeneratedContent"]
1237
+ };
1238
+ //#endregion
1239
+ //#region extensions/msteams/src/messenger.ts
1240
+ /**
1241
+ * MSTeams-specific media size limit (100MB).
1242
+ * Higher than the default because OneDrive upload handles large files well.
1243
+ */
1244
+ const MSTEAMS_MAX_MEDIA_BYTES$1 = 100 * 1024 * 1024;
1245
+ /**
1246
+ * Threshold for large files that require FileConsentCard flow in personal chats.
1247
+ * Files >= 4MB use consent flow; smaller images can use inline base64.
1248
+ */
1249
+ const FILE_CONSENT_THRESHOLD_BYTES$1 = 4 * 1024 * 1024;
1250
+ function normalizeConversationId(rawId) {
1251
+ return rawId.split(";")[0] ?? rawId;
1252
+ }
1253
+ function buildConversationReference(ref) {
1254
+ const conversationId = ref.conversation?.id?.trim();
1255
+ if (!conversationId) throw new Error("Invalid stored reference: missing conversation.id");
1256
+ const agent = ref.agent ?? ref.bot ?? void 0;
1257
+ if (agent == null || !agent.id) throw new Error("Invalid stored reference: missing agent.id");
1258
+ const user = ref.user;
1259
+ if (!user?.id) throw new Error("Invalid stored reference: missing user.id");
1260
+ const tenantId = ref.tenantId ?? ref.conversation?.tenantId;
1261
+ const aadObjectId = ref.aadObjectId ?? user.aadObjectId;
1262
+ return {
1263
+ activityId: ref.activityId,
1264
+ user: aadObjectId ? {
1265
+ ...user,
1266
+ aadObjectId
1267
+ } : user,
1268
+ agent,
1269
+ conversation: {
1270
+ id: normalizeConversationId(conversationId),
1271
+ conversationType: ref.conversation?.conversationType,
1272
+ tenantId
1273
+ },
1274
+ channelId: ref.channelId ?? "msteams",
1275
+ serviceUrl: ref.serviceUrl,
1276
+ locale: ref.locale,
1277
+ ...tenantId ? { tenantId } : {},
1278
+ ...aadObjectId ? { aadObjectId } : {}
1279
+ };
1280
+ }
1281
+ function pushTextMessages(out, text, opts) {
1282
+ if (!text) return;
1283
+ if (opts.chunkText) {
1284
+ for (const chunk of getMSTeamsRuntime().channel.text.chunkMarkdownTextWithMode(text, opts.chunkLimit, opts.chunkMode)) {
1285
+ const trimmed = chunk.trim();
1286
+ if (!trimmed || isSilentReplyText(trimmed, "NO_REPLY")) continue;
1287
+ out.push({ text: trimmed });
1288
+ }
1289
+ return;
1290
+ }
1291
+ const trimmed = text.trim();
1292
+ if (!trimmed || isSilentReplyText(trimmed, "NO_REPLY")) return;
1293
+ out.push({ text: trimmed });
1294
+ }
1295
+ function clampMs(value, maxMs) {
1296
+ if (!Number.isFinite(value) || value < 0) return 0;
1297
+ return Math.min(value, maxMs);
1298
+ }
1299
+ function resolveRetryOptions(retry) {
1300
+ if (!retry) return {
1301
+ enabled: false,
1302
+ maxAttempts: 1,
1303
+ baseDelayMs: 0,
1304
+ maxDelayMs: 0
1305
+ };
1306
+ return {
1307
+ enabled: true,
1308
+ maxAttempts: Math.max(1, retry?.maxAttempts ?? 3),
1309
+ baseDelayMs: Math.max(0, retry?.baseDelayMs ?? 250),
1310
+ maxDelayMs: Math.max(0, retry?.maxDelayMs ?? 1e4)
1311
+ };
1312
+ }
1313
+ function computeRetryDelayMs(attempt, classification, opts) {
1314
+ if (classification.retryAfterMs != null) return clampMs(classification.retryAfterMs, opts.maxDelayMs);
1315
+ return clampMs(opts.baseDelayMs * 2 ** Math.max(0, attempt - 1), opts.maxDelayMs);
1316
+ }
1317
+ function shouldRetry(classification) {
1318
+ return classification.kind === "throttled" || classification.kind === "transient";
1319
+ }
1320
+ function renderReplyPayloadsToMessages(replies, options) {
1321
+ const out = [];
1322
+ const chunkLimit = Math.min(options.textChunkLimit, 4e3);
1323
+ const chunkText = options.chunkText !== false;
1324
+ const chunkMode = options.chunkMode ?? "length";
1325
+ const mediaMode = options.mediaMode ?? "split";
1326
+ const tableMode = options.tableMode ?? getMSTeamsRuntime().channel.text.resolveMarkdownTableMode({
1327
+ cfg: getMSTeamsRuntime().config.current(),
1328
+ channel: "msteams"
1329
+ });
1330
+ for (const payload of replies) {
1331
+ const reply = resolveSendableOutboundReplyParts(payload, { text: getMSTeamsRuntime().channel.text.convertMarkdownTables(payload.text ?? "", tableMode) });
1332
+ if (!reply.hasContent) continue;
1333
+ if (!reply.hasMedia) {
1334
+ pushTextMessages(out, reply.text, {
1335
+ chunkText,
1336
+ chunkLimit,
1337
+ chunkMode
1338
+ });
1339
+ continue;
1340
+ }
1341
+ if (mediaMode === "inline") {
1342
+ const firstMedia = reply.mediaUrls[0];
1343
+ if (firstMedia) {
1344
+ out.push({
1345
+ text: reply.text || void 0,
1346
+ mediaUrl: firstMedia
1347
+ });
1348
+ for (let i = 1; i < reply.mediaUrls.length; i++) if (reply.mediaUrls[i]) out.push({ mediaUrl: reply.mediaUrls[i] });
1349
+ } else pushTextMessages(out, reply.text, {
1350
+ chunkText,
1351
+ chunkLimit,
1352
+ chunkMode
1353
+ });
1354
+ continue;
1355
+ }
1356
+ pushTextMessages(out, reply.text, {
1357
+ chunkText,
1358
+ chunkLimit,
1359
+ chunkMode
1360
+ });
1361
+ for (const mediaUrl of reply.mediaUrls) {
1362
+ if (!mediaUrl) continue;
1363
+ out.push({ mediaUrl });
1364
+ }
1365
+ }
1366
+ return out;
1367
+ }
1368
+ async function buildActivity(msg, conversationRef, tokenProvider, sharePointSiteId, mediaMaxBytes, options) {
1369
+ const activity = { type: "message" };
1370
+ activity.channelData = { feedbackLoopEnabled: options?.feedbackLoopEnabled ?? false };
1371
+ if (msg.text) {
1372
+ const { text: formattedText, entities } = parseMentions(msg.text);
1373
+ activity.text = formattedText;
1374
+ activity.entities = [...entities.length > 0 ? entities : [], AI_GENERATED_ENTITY];
1375
+ } else activity.entities = [AI_GENERATED_ENTITY];
1376
+ if (msg.mediaUrl) {
1377
+ let contentUrl = msg.mediaUrl;
1378
+ let contentType = await getMimeType(msg.mediaUrl);
1379
+ let fileName = await extractFilename(msg.mediaUrl);
1380
+ if (isLocalPath(msg.mediaUrl)) {
1381
+ const maxBytes = mediaMaxBytes ?? MSTEAMS_MAX_MEDIA_BYTES$1;
1382
+ const media = await loadWebMedia(msg.mediaUrl, maxBytes);
1383
+ contentType = media.contentType ?? contentType;
1384
+ fileName = media.fileName ?? fileName;
1385
+ const conversationType = normalizeOptionalLowercaseString(conversationRef.conversation?.conversationType);
1386
+ const isPersonal = conversationType === "personal";
1387
+ const isImage = media.kind === "image";
1388
+ if (requiresFileConsent({
1389
+ conversationType,
1390
+ contentType,
1391
+ bufferSize: media.buffer.length,
1392
+ thresholdBytes: FILE_CONSENT_THRESHOLD_BYTES$1
1393
+ })) {
1394
+ const conversationId = conversationRef.conversation?.id ?? "unknown";
1395
+ const { activity: consentActivity, uploadId } = prepareFileConsentActivity({
1396
+ media: {
1397
+ buffer: media.buffer,
1398
+ filename: fileName,
1399
+ contentType
1400
+ },
1401
+ conversationId,
1402
+ description: msg.text || void 0
1403
+ });
1404
+ consentActivity["_pendingUploadId"] = uploadId;
1405
+ return consentActivity;
1406
+ }
1407
+ if (!isPersonal && !isImage && tokenProvider && sharePointSiteId) {
1408
+ const chatId = conversationRef.graphChatId ?? conversationRef.conversation?.id;
1409
+ activity.attachments = [buildTeamsFileInfoCard(await getDriveItemProperties({
1410
+ siteId: sharePointSiteId,
1411
+ itemId: (await uploadAndShareSharePoint({
1412
+ buffer: media.buffer,
1413
+ filename: fileName,
1414
+ contentType,
1415
+ tokenProvider,
1416
+ siteId: sharePointSiteId,
1417
+ chatId: chatId ?? void 0,
1418
+ usePerUserSharing: conversationType === "groupchat"
1419
+ })).itemId,
1420
+ tokenProvider
1421
+ }))];
1422
+ return activity;
1423
+ }
1424
+ if (!isPersonal && media.kind !== "image" && tokenProvider) {
1425
+ const uploaded = await uploadAndShareOneDrive({
1426
+ buffer: media.buffer,
1427
+ filename: fileName,
1428
+ contentType,
1429
+ tokenProvider
1430
+ });
1431
+ const fileLink = `📎 [${uploaded.name}](${uploaded.shareUrl})`;
1432
+ const existingText = typeof activity.text === "string" ? activity.text : void 0;
1433
+ activity.text = existingText ? `${existingText}\n\n${fileLink}` : fileLink;
1434
+ return activity;
1435
+ }
1436
+ const base64 = media.buffer.toString("base64");
1437
+ contentUrl = `data:${media.contentType};base64,${base64}`;
1438
+ }
1439
+ activity.attachments = [{
1440
+ name: fileName,
1441
+ contentType,
1442
+ contentUrl
1443
+ }];
1444
+ }
1445
+ return activity;
1446
+ }
1447
+ async function sendMSTeamsMessages(params) {
1448
+ const messages = params.messages.filter((m) => m.text && m.text.trim().length > 0 || m.mediaUrl);
1449
+ if (messages.length === 0) return [];
1450
+ const retryOptions = resolveRetryOptions(params.retry);
1451
+ const sendWithRetry = async (sendOnce, meta) => {
1452
+ if (!retryOptions.enabled) return await sendOnce();
1453
+ let attempt = 1;
1454
+ while (true) try {
1455
+ return await sendOnce();
1456
+ } catch (err) {
1457
+ const classification = classifyMSTeamsSendError(err);
1458
+ if (!(attempt < retryOptions.maxAttempts && shouldRetry(classification))) throw err;
1459
+ const delayMs = computeRetryDelayMs(attempt, classification, retryOptions);
1460
+ const nextAttempt = attempt + 1;
1461
+ params.onRetry?.({
1462
+ messageIndex: meta.messageIndex,
1463
+ messageCount: meta.messageCount,
1464
+ nextAttempt,
1465
+ maxAttempts: retryOptions.maxAttempts,
1466
+ delayMs,
1467
+ classification
1468
+ });
1469
+ await sleep(delayMs);
1470
+ attempt = nextAttempt;
1471
+ }
1472
+ };
1473
+ const sendMessageInContext = async (ctx, message, messageIndex) => {
1474
+ let pendingUploadId;
1475
+ const messageId = extractMessageId(await sendWithRetry(async () => {
1476
+ const activity = await buildActivity(message, params.conversationRef, params.tokenProvider, params.sharePointSiteId, params.mediaMaxBytes, { feedbackLoopEnabled: params.feedbackLoopEnabled });
1477
+ pendingUploadId = typeof activity["_pendingUploadId"] === "string" ? activity["_pendingUploadId"] : void 0;
1478
+ if (pendingUploadId) delete activity["_pendingUploadId"];
1479
+ return await ctx.sendActivity(activity);
1480
+ }, {
1481
+ messageIndex,
1482
+ messageCount: messages.length
1483
+ })) ?? "unknown";
1484
+ if (pendingUploadId && messageId !== "unknown") setPendingUploadActivityId(pendingUploadId, messageId);
1485
+ return messageId;
1486
+ };
1487
+ const sendMessageBatchInContext = async (ctx, batch, startIndex) => {
1488
+ const messageIds = [];
1489
+ for (const [idx, message] of batch.entries()) messageIds.push(await sendMessageInContext(ctx, message, startIndex + idx));
1490
+ return messageIds;
1491
+ };
1492
+ const sendProactively = async (batch, startIndex, threadActivityId) => {
1493
+ const baseRef = buildConversationReference(params.conversationRef);
1494
+ const conversationId = params.conversationRef.conversation?.conversationType === "channel" && threadActivityId ? `${baseRef.conversation.id};messageid=${threadActivityId}` : baseRef.conversation.id;
1495
+ const proactiveRef = {
1496
+ ...baseRef,
1497
+ activityId: void 0,
1498
+ conversation: {
1499
+ ...baseRef.conversation,
1500
+ id: conversationId
1501
+ }
1502
+ };
1503
+ const messageIds = [];
1504
+ await params.adapter.continueConversation(params.appId, proactiveRef, async (ctx) => {
1505
+ messageIds.push(...await sendMessageBatchInContext(ctx, batch, startIndex));
1506
+ });
1507
+ return messageIds;
1508
+ };
1509
+ const resolvedThreadId = params.conversationRef.threadId ?? params.conversationRef.activityId;
1510
+ if (params.replyStyle === "thread") {
1511
+ const ctx = params.context;
1512
+ if (!ctx) return await sendProactively(messages, 0, resolvedThreadId);
1513
+ const messageIds = [];
1514
+ for (const [idx, message] of messages.entries()) {
1515
+ const result = await withRevokedProxyFallback({
1516
+ run: async () => ({
1517
+ ids: [await sendMessageInContext(ctx, message, idx)],
1518
+ fellBack: false
1519
+ }),
1520
+ onRevoked: async () => {
1521
+ const remaining = messages.slice(idx);
1522
+ return {
1523
+ ids: remaining.length > 0 ? await sendProactively(remaining, idx, resolvedThreadId) : [],
1524
+ fellBack: true
1525
+ };
1526
+ }
1527
+ });
1528
+ messageIds.push(...result.ids);
1529
+ if (result.fellBack) return messageIds;
1530
+ }
1531
+ return messageIds;
1532
+ }
1533
+ return await sendProactively(messages, 0);
1534
+ }
1535
+ //#endregion
1536
+ //#region extensions/msteams/src/send-context.ts
1537
+ function resolveMSTeamsProactiveReplyStyle(params) {
1538
+ const threadRootId = params.ref.threadId ?? params.ref.activityId;
1539
+ if (params.conversationType !== "channel" || !threadRootId) return "top-level";
1540
+ const routeConfig = resolveMSTeamsRouteConfig({
1541
+ cfg: params.cfg,
1542
+ teamId: params.ref.teamId,
1543
+ conversationId: params.conversationId,
1544
+ allowNameMatching: false
1545
+ });
1546
+ const { replyStyle } = resolveMSTeamsReplyPolicy({
1547
+ isDirectMessage: false,
1548
+ globalConfig: params.cfg,
1549
+ teamConfig: routeConfig.teamConfig,
1550
+ channelConfig: routeConfig.channelConfig
1551
+ });
1552
+ return replyStyle;
1553
+ }
1554
+ /**
1555
+ * Parse the target value into a conversation reference lookup key.
1556
+ * Supported formats:
1557
+ * - conversation:19:abc@thread.tacv2 → lookup by conversation ID
1558
+ * - user:aad-object-id → lookup by user AAD object ID
1559
+ * - 19:abc@thread.tacv2 → direct conversation ID
1560
+ */
1561
+ function parseRecipient(to) {
1562
+ const trimmed = to.trim();
1563
+ const finalize = (type, id) => {
1564
+ const normalized = id.trim();
1565
+ if (!normalized) throw new Error(`Invalid target value: missing ${type} id`);
1566
+ return {
1567
+ type,
1568
+ id: normalized
1569
+ };
1570
+ };
1571
+ if (trimmed.startsWith("conversation:")) return finalize("conversation", trimmed.slice(13));
1572
+ if (trimmed.startsWith("user:")) return finalize("user", trimmed.slice(5));
1573
+ if (trimmed.startsWith("19:") || trimmed.includes("@thread")) return finalize("conversation", trimmed);
1574
+ return finalize("user", trimmed);
1575
+ }
1576
+ /**
1577
+ * Find a stored conversation reference for the given recipient.
1578
+ */
1579
+ async function findConversationReference(recipient) {
1580
+ if (recipient.type === "conversation") {
1581
+ const ref = await recipient.store.get(recipient.id);
1582
+ if (ref) return {
1583
+ conversationId: recipient.id,
1584
+ ref
1585
+ };
1586
+ return null;
1587
+ }
1588
+ const found = await recipient.store.findPreferredDmByUserId(recipient.id);
1589
+ if (!found) return null;
1590
+ return {
1591
+ conversationId: found.conversationId,
1592
+ ref: found.reference
1593
+ };
1594
+ }
1595
+ async function resolveMSTeamsSendContext(params) {
1596
+ const msteamsCfg = params.cfg.channels?.msteams;
1597
+ if (!msteamsCfg?.enabled) throw new Error("msteams provider is not enabled");
1598
+ const creds = resolveMSTeamsCredentials(msteamsCfg);
1599
+ if (!creds) throw new Error("msteams credentials not configured");
1600
+ const store = createMSTeamsConversationStoreFs();
1601
+ const recipient = parseRecipient(params.to);
1602
+ const found = await findConversationReference({
1603
+ ...recipient,
1604
+ store
1605
+ });
1606
+ if (!found) throw new Error(`No conversation reference found for ${recipient.type}:${recipient.id}. The bot must receive a message from this conversation before it can send proactively.`);
1607
+ const { conversationId, ref } = found;
1608
+ if (recipient.type === "user") {
1609
+ const resolvedType = normalizeLowercaseStringOrEmpty(ref.conversation?.conversationType ?? "");
1610
+ if (resolvedType && resolvedType !== "personal") throw new Error(`Conversation reference for user:${recipient.id} resolved to a ${resolvedType} conversation (${conversationId}) instead of a personal DM. The bot must receive a DM from this user before it can send proactively.`);
1611
+ }
1612
+ const log = getMSTeamsRuntime().logging.getChildLogger({ name: "msteams:send" });
1613
+ const { sdk, app } = await loadMSTeamsSdkWithAuth(creds);
1614
+ const adapter = createMSTeamsAdapter(app, sdk);
1615
+ const tokenProvider = createMSTeamsTokenProvider(app);
1616
+ const storedConversationType = normalizeLowercaseStringOrEmpty(ref.conversation?.conversationType ?? "");
1617
+ let conversationType;
1618
+ if (storedConversationType === "personal") conversationType = "personal";
1619
+ else if (storedConversationType === "channel") conversationType = "channel";
1620
+ else conversationType = "groupChat";
1621
+ const replyStyle = resolveMSTeamsProactiveReplyStyle({
1622
+ cfg: msteamsCfg,
1623
+ conversationId,
1624
+ ref,
1625
+ conversationType
1626
+ });
1627
+ const sharePointSiteId = msteamsCfg.sharePointSiteId;
1628
+ const mediaMaxBytes = resolveChannelMediaMaxBytes({
1629
+ cfg: params.cfg,
1630
+ resolveChannelLimitMb: ({ cfg }) => cfg.channels?.msteams?.mediaMaxMb
1631
+ });
1632
+ let graphChatId = ref.graphChatId ?? void 0;
1633
+ if (graphChatId === void 0 && sharePointSiteId) try {
1634
+ const resolved = await resolveGraphChatId({
1635
+ botFrameworkConversationId: conversationId,
1636
+ userAadObjectId: ref.user?.aadObjectId,
1637
+ tokenProvider
1638
+ });
1639
+ graphChatId = resolved;
1640
+ if (resolved) await store.upsert(conversationId, {
1641
+ ...ref,
1642
+ graphChatId: resolved
1643
+ });
1644
+ else log.warn?.("could not resolve Graph chat ID; file uploads may fail for this conversation", { conversationId });
1645
+ } catch (err) {
1646
+ log.warn?.("failed to resolve Graph chat ID; file uploads may fall back to Bot Framework ID", {
1647
+ conversationId,
1648
+ error: formatUnknownError(err)
1649
+ });
1650
+ graphChatId = null;
1651
+ }
1652
+ return {
1653
+ appId: creds.appId,
1654
+ conversationId,
1655
+ ref,
1656
+ adapter,
1657
+ log,
1658
+ conversationType,
1659
+ replyStyle,
1660
+ tokenProvider,
1661
+ sharePointSiteId,
1662
+ mediaMaxBytes,
1663
+ graphChatId
1664
+ };
1665
+ }
1666
+ //#endregion
1667
+ //#region extensions/msteams/src/send.ts
1668
+ /** Threshold for large files that require FileConsentCard flow in personal chats */
1669
+ const FILE_CONSENT_THRESHOLD_BYTES = 4 * 1024 * 1024;
1670
+ /**
1671
+ * MSTeams-specific media size limit (100MB).
1672
+ * Higher than the default because OneDrive upload handles large files well.
1673
+ */
1674
+ const MSTEAMS_MAX_MEDIA_BYTES = 100 * 1024 * 1024;
1675
+ function createMSTeamsSendReceipt(params) {
1676
+ return createMessageReceiptFromOutboundResults({
1677
+ kind: params.kind,
1678
+ results: params.platformMessageIds.map((messageId) => ({
1679
+ channel: "msteams",
1680
+ messageId,
1681
+ conversationId: params.conversationId
1682
+ }))
1683
+ });
1684
+ }
1685
+ function createMSTeamsSendResult(params) {
1686
+ const platformMessageIds = (params.platformMessageIds?.length ? [...params.platformMessageIds] : [params.messageId]).map((messageId) => messageId.trim()).filter((messageId) => messageId && messageId !== "unknown");
1687
+ return {
1688
+ messageId: params.messageId,
1689
+ conversationId: params.conversationId,
1690
+ receipt: createMSTeamsSendReceipt({
1691
+ conversationId: params.conversationId,
1692
+ platformMessageIds,
1693
+ kind: params.kind
1694
+ }),
1695
+ ...params.pendingUploadId ? { pendingUploadId: params.pendingUploadId } : {}
1696
+ };
1697
+ }
1698
+ /**
1699
+ * Send a message to a Teams conversation or user.
1700
+ *
1701
+ * Uses the stored ConversationReference from previous interactions.
1702
+ * The bot must have received at least one message from the conversation
1703
+ * before proactive messaging works.
1704
+ *
1705
+ * File handling by conversation type:
1706
+ * - Personal (1:1) chats: small images (<4MB) use base64, large files and non-images use FileConsentCard
1707
+ * - Group chats / channels: files are uploaded to OneDrive and shared via link
1708
+ */
1709
+ async function sendMessageMSTeams(params) {
1710
+ const { cfg, to, text, mediaUrl, filename, mediaLocalRoots, mediaReadFile } = params;
1711
+ const tableMode = resolveMarkdownTableMode({
1712
+ cfg,
1713
+ channel: "msteams"
1714
+ });
1715
+ const messageText = convertMarkdownTables(text ?? "", tableMode);
1716
+ const ctx = await resolveMSTeamsSendContext({
1717
+ cfg,
1718
+ to
1719
+ });
1720
+ const { adapter, appId, conversationId, ref, log, conversationType, tokenProvider, sharePointSiteId } = ctx;
1721
+ log.debug?.("sending proactive message", {
1722
+ conversationId,
1723
+ conversationType,
1724
+ textLength: messageText.length,
1725
+ hasMedia: Boolean(mediaUrl)
1726
+ });
1727
+ if (mediaUrl) {
1728
+ const media = await loadOutboundMediaFromUrl(mediaUrl, {
1729
+ maxBytes: ctx.mediaMaxBytes ?? MSTEAMS_MAX_MEDIA_BYTES,
1730
+ mediaLocalRoots,
1731
+ mediaReadFile
1732
+ });
1733
+ const isLargeFile = media.buffer.length >= FILE_CONSENT_THRESHOLD_BYTES;
1734
+ const isImage = media.contentType?.startsWith("image/") ?? false;
1735
+ const fallbackFileName = await extractFilename(mediaUrl);
1736
+ const fileName = filename?.trim() || media.fileName || fallbackFileName;
1737
+ log.debug?.("processing media", {
1738
+ fileName,
1739
+ contentType: media.contentType,
1740
+ size: media.buffer.length,
1741
+ isLargeFile,
1742
+ isImage,
1743
+ conversationType
1744
+ });
1745
+ if (requiresFileConsent({
1746
+ conversationType,
1747
+ contentType: media.contentType,
1748
+ bufferSize: media.buffer.length,
1749
+ thresholdBytes: FILE_CONSENT_THRESHOLD_BYTES
1750
+ })) {
1751
+ const { activity, uploadId } = await prepareFileConsentActivityFs({
1752
+ media: {
1753
+ buffer: media.buffer,
1754
+ filename: fileName,
1755
+ contentType: media.contentType
1756
+ },
1757
+ conversationId,
1758
+ description: messageText || void 0
1759
+ });
1760
+ log.debug?.("sending file consent card", {
1761
+ uploadId,
1762
+ fileName,
1763
+ size: media.buffer.length
1764
+ });
1765
+ const messageId = await sendProactiveActivity({
1766
+ adapter,
1767
+ appId,
1768
+ ref,
1769
+ activity,
1770
+ errorPrefix: "msteams consent card send"
1771
+ });
1772
+ setPendingUploadActivityId(uploadId, messageId);
1773
+ await setPendingUploadActivityIdFs(uploadId, messageId);
1774
+ log.info("sent file consent card", {
1775
+ conversationId,
1776
+ messageId,
1777
+ uploadId
1778
+ });
1779
+ return createMSTeamsSendResult({
1780
+ messageId,
1781
+ conversationId,
1782
+ kind: "card",
1783
+ pendingUploadId: uploadId
1784
+ });
1785
+ }
1786
+ if (conversationType === "personal") {
1787
+ const base64 = media.buffer.toString("base64");
1788
+ return sendTextWithMedia(ctx, messageText, `data:${media.contentType};base64,${base64}`);
1789
+ }
1790
+ if (isImage && !sharePointSiteId) {
1791
+ const base64 = media.buffer.toString("base64");
1792
+ return sendTextWithMedia(ctx, messageText, `data:${media.contentType};base64,${base64}`);
1793
+ }
1794
+ try {
1795
+ if (sharePointSiteId) {
1796
+ log.debug?.("uploading to SharePoint for native file card", {
1797
+ fileName,
1798
+ conversationType,
1799
+ siteId: sharePointSiteId
1800
+ });
1801
+ const uploaded = await uploadAndShareSharePoint({
1802
+ buffer: media.buffer,
1803
+ filename: fileName,
1804
+ contentType: media.contentType,
1805
+ tokenProvider,
1806
+ siteId: sharePointSiteId,
1807
+ chatId: ctx.graphChatId ?? conversationId,
1808
+ usePerUserSharing: conversationType === "groupChat"
1809
+ });
1810
+ log.debug?.("SharePoint upload complete", {
1811
+ itemId: uploaded.itemId,
1812
+ shareUrl: uploaded.shareUrl
1813
+ });
1814
+ const driveItem = await getDriveItemProperties({
1815
+ siteId: sharePointSiteId,
1816
+ itemId: uploaded.itemId,
1817
+ tokenProvider
1818
+ });
1819
+ log.debug?.("driveItem properties retrieved", {
1820
+ eTag: driveItem.eTag,
1821
+ webDavUrl: driveItem.webDavUrl
1822
+ });
1823
+ const fileCardAttachment = buildTeamsFileInfoCard(driveItem);
1824
+ const messageId = await sendProactiveActivityRaw({
1825
+ adapter,
1826
+ appId,
1827
+ ref,
1828
+ activity: {
1829
+ type: "message",
1830
+ text: messageText || void 0,
1831
+ attachments: [fileCardAttachment]
1832
+ }
1833
+ });
1834
+ log.info("sent native file card", {
1835
+ conversationId,
1836
+ messageId,
1837
+ fileName: driveItem.name
1838
+ });
1839
+ return createMSTeamsSendResult({
1840
+ messageId,
1841
+ conversationId,
1842
+ kind: "media"
1843
+ });
1844
+ }
1845
+ log.debug?.("uploading to OneDrive (no SharePoint site configured)", {
1846
+ fileName,
1847
+ conversationType
1848
+ });
1849
+ const uploaded = await uploadAndShareOneDrive({
1850
+ buffer: media.buffer,
1851
+ filename: fileName,
1852
+ contentType: media.contentType,
1853
+ tokenProvider
1854
+ });
1855
+ log.debug?.("OneDrive upload complete", {
1856
+ itemId: uploaded.itemId,
1857
+ shareUrl: uploaded.shareUrl
1858
+ });
1859
+ const fileLink = `📎 [${uploaded.name}](${uploaded.shareUrl})`;
1860
+ const messageId = await sendProactiveActivityRaw({
1861
+ adapter,
1862
+ appId,
1863
+ ref,
1864
+ activity: {
1865
+ type: "message",
1866
+ text: messageText ? `${messageText}\n\n${fileLink}` : fileLink
1867
+ }
1868
+ });
1869
+ log.info("sent message with OneDrive file link", {
1870
+ conversationId,
1871
+ messageId,
1872
+ shareUrl: uploaded.shareUrl
1873
+ });
1874
+ return createMSTeamsSendResult({
1875
+ messageId,
1876
+ conversationId,
1877
+ kind: "media"
1878
+ });
1879
+ } catch (err) {
1880
+ const classification = classifyMSTeamsSendError(err);
1881
+ const hint = formatMSTeamsSendErrorHint(classification);
1882
+ const status = classification.statusCode ? ` (HTTP ${classification.statusCode})` : "";
1883
+ throw new Error(`msteams file send failed${status}: ${formatUnknownError(err)}${hint ? ` (${hint})` : ""}`, { cause: err });
1884
+ }
1885
+ }
1886
+ return sendTextWithMedia(ctx, messageText, void 0);
1887
+ }
1888
+ /**
1889
+ * Send a text message with optional base64 media URL.
1890
+ */
1891
+ async function sendTextWithMedia(ctx, text, mediaUrl) {
1892
+ const { adapter, appId, conversationId, ref, log, tokenProvider, sharePointSiteId, mediaMaxBytes, replyStyle } = ctx;
1893
+ let platformMessageIds;
1894
+ try {
1895
+ platformMessageIds = await sendMSTeamsMessages({
1896
+ replyStyle,
1897
+ adapter,
1898
+ appId,
1899
+ conversationRef: ref,
1900
+ messages: [{
1901
+ text: text || void 0,
1902
+ mediaUrl
1903
+ }],
1904
+ retry: {},
1905
+ onRetry: (event) => {
1906
+ log.debug?.("retrying send", {
1907
+ conversationId,
1908
+ ...event
1909
+ });
1910
+ },
1911
+ tokenProvider,
1912
+ sharePointSiteId,
1913
+ mediaMaxBytes
1914
+ });
1915
+ } catch (err) {
1916
+ const classification = classifyMSTeamsSendError(err);
1917
+ const hint = formatMSTeamsSendErrorHint(classification);
1918
+ const status = classification.statusCode ? ` (HTTP ${classification.statusCode})` : "";
1919
+ throw new Error(`msteams send failed${status}: ${formatUnknownError(err)}${hint ? ` (${hint})` : ""}`, { cause: err });
1920
+ }
1921
+ const messageId = platformMessageIds[0] ?? "unknown";
1922
+ log.info("sent proactive message", {
1923
+ conversationId,
1924
+ messageId
1925
+ });
1926
+ return {
1927
+ messageId,
1928
+ conversationId,
1929
+ receipt: createMSTeamsSendReceipt({
1930
+ conversationId,
1931
+ platformMessageIds,
1932
+ kind: mediaUrl ? "media" : "text"
1933
+ })
1934
+ };
1935
+ }
1936
+ async function sendProactiveActivityRaw({ adapter, appId, ref, activity }) {
1937
+ const proactiveRef = {
1938
+ ...buildConversationReference(ref),
1939
+ activityId: void 0
1940
+ };
1941
+ let messageId = "unknown";
1942
+ await adapter.continueConversation(appId, proactiveRef, async (ctx) => {
1943
+ messageId = extractMessageId(await ctx.sendActivity(activity)) ?? "unknown";
1944
+ });
1945
+ return messageId;
1946
+ }
1947
+ async function sendProactiveActivity({ adapter, appId, ref, activity, errorPrefix }) {
1948
+ try {
1949
+ return await sendProactiveActivityRaw({
1950
+ adapter,
1951
+ appId,
1952
+ ref,
1953
+ activity
1954
+ });
1955
+ } catch (err) {
1956
+ const classification = classifyMSTeamsSendError(err);
1957
+ const hint = formatMSTeamsSendErrorHint(classification);
1958
+ const status = classification.statusCode ? ` (HTTP ${classification.statusCode})` : "";
1959
+ throw new Error(`${errorPrefix} failed${status}: ${formatUnknownError(err)}${hint ? ` (${hint})` : ""}`, { cause: err });
1960
+ }
1961
+ }
1962
+ /**
1963
+ * Send a poll (Adaptive Card) to a Teams conversation or user.
1964
+ */
1965
+ async function sendPollMSTeams(params) {
1966
+ const { cfg, to, question, options, maxSelections } = params;
1967
+ const { adapter, appId, conversationId, ref, log } = await resolveMSTeamsSendContext({
1968
+ cfg,
1969
+ to
1970
+ });
1971
+ const pollCard = buildMSTeamsPollCard({
1972
+ question,
1973
+ options,
1974
+ maxSelections
1975
+ });
1976
+ log.debug?.("sending poll", {
1977
+ conversationId,
1978
+ pollId: pollCard.pollId,
1979
+ optionCount: pollCard.options.length
1980
+ });
1981
+ const messageId = await sendProactiveActivity({
1982
+ adapter,
1983
+ appId,
1984
+ ref,
1985
+ activity: {
1986
+ type: "message",
1987
+ attachments: [{
1988
+ contentType: "application/vnd.microsoft.card.adaptive",
1989
+ content: pollCard.card
1990
+ }]
1991
+ },
1992
+ errorPrefix: "msteams poll send"
1993
+ });
1994
+ log.info("sent poll", {
1995
+ conversationId,
1996
+ pollId: pollCard.pollId,
1997
+ messageId
1998
+ });
1999
+ return {
2000
+ pollId: pollCard.pollId,
2001
+ messageId,
2002
+ conversationId
2003
+ };
2004
+ }
2005
+ /**
2006
+ * Send an arbitrary Adaptive Card to a Teams conversation or user.
2007
+ */
2008
+ async function sendAdaptiveCardMSTeams(params) {
2009
+ const { cfg, to, card } = params;
2010
+ const { adapter, appId, conversationId, ref, log } = await resolveMSTeamsSendContext({
2011
+ cfg,
2012
+ to
2013
+ });
2014
+ log.debug?.("sending adaptive card", {
2015
+ conversationId,
2016
+ cardType: card.type,
2017
+ cardVersion: card.version
2018
+ });
2019
+ const messageId = await sendProactiveActivity({
2020
+ adapter,
2021
+ appId,
2022
+ ref,
2023
+ activity: {
2024
+ type: "message",
2025
+ attachments: [{
2026
+ contentType: "application/vnd.microsoft.card.adaptive",
2027
+ content: card
2028
+ }]
2029
+ },
2030
+ errorPrefix: "msteams card send"
2031
+ });
2032
+ log.info("sent adaptive card", {
2033
+ conversationId,
2034
+ messageId
2035
+ });
2036
+ return {
2037
+ messageId,
2038
+ conversationId
2039
+ };
2040
+ }
2041
+ /**
2042
+ * Edit (update) a previously sent message in a Teams conversation.
2043
+ *
2044
+ * Uses the Bot Framework `continueConversation` → `updateActivity` flow
2045
+ * for proactive edits outside of the original turn context.
2046
+ */
2047
+ async function editMessageMSTeams(params) {
2048
+ const { cfg, to, activityId, text } = params;
2049
+ const { adapter, appId, conversationId, ref, log } = await resolveMSTeamsSendContext({
2050
+ cfg,
2051
+ to
2052
+ });
2053
+ log.debug?.("editing proactive message", {
2054
+ conversationId,
2055
+ activityId,
2056
+ textLength: text.length
2057
+ });
2058
+ const proactiveRef = {
2059
+ ...buildConversationReference(ref),
2060
+ activityId: void 0
2061
+ };
2062
+ try {
2063
+ await adapter.continueConversation(appId, proactiveRef, async (ctx) => {
2064
+ await ctx.updateActivity({
2065
+ type: "message",
2066
+ id: activityId,
2067
+ text
2068
+ });
2069
+ });
2070
+ } catch (err) {
2071
+ const classification = classifyMSTeamsSendError(err);
2072
+ const hint = formatMSTeamsSendErrorHint(classification);
2073
+ const status = classification.statusCode ? ` (HTTP ${classification.statusCode})` : "";
2074
+ throw new Error(`msteams edit failed${status}: ${formatUnknownError(err)}${hint ? ` (${hint})` : ""}`, { cause: err });
2075
+ }
2076
+ log.info("edited proactive message", {
2077
+ conversationId,
2078
+ activityId
2079
+ });
2080
+ return { conversationId };
2081
+ }
2082
+ /**
2083
+ * Delete a previously sent message in a Teams conversation.
2084
+ *
2085
+ * Uses the Bot Framework `continueConversation` → `deleteActivity` flow
2086
+ * for proactive deletes outside of the original turn context.
2087
+ */
2088
+ async function deleteMessageMSTeams(params) {
2089
+ const { cfg, to, activityId } = params;
2090
+ const { adapter, appId, conversationId, ref, log } = await resolveMSTeamsSendContext({
2091
+ cfg,
2092
+ to
2093
+ });
2094
+ log.debug?.("deleting proactive message", {
2095
+ conversationId,
2096
+ activityId
2097
+ });
2098
+ const proactiveRef = {
2099
+ ...buildConversationReference(ref),
2100
+ activityId: void 0
2101
+ };
2102
+ try {
2103
+ await adapter.continueConversation(appId, proactiveRef, async (ctx) => {
2104
+ await ctx.deleteActivity(activityId);
2105
+ });
2106
+ } catch (err) {
2107
+ const classification = classifyMSTeamsSendError(err);
2108
+ const hint = formatMSTeamsSendErrorHint(classification);
2109
+ const status = classification.statusCode ? ` (HTTP ${classification.statusCode})` : "";
2110
+ throw new Error(`msteams delete failed${status}: ${formatUnknownError(err)}${hint ? ` (${hint})` : ""}`, { cause: err });
2111
+ }
2112
+ log.info("deleted proactive message", {
2113
+ conversationId,
2114
+ activityId
2115
+ });
2116
+ return { conversationId };
2117
+ }
2118
+ //#endregion
2119
+ //#region extensions/msteams/src/probe.ts
2120
+ function decodeJwtPayload(token) {
2121
+ const parts = token.split(".");
2122
+ if (parts.length < 2) return null;
2123
+ const payload = parts[1] ?? "";
2124
+ const normalized = payload.padEnd(payload.length + (4 - payload.length % 4) % 4, "=").replace(/-/g, "+").replace(/_/g, "/");
2125
+ try {
2126
+ const decoded = Buffer.from(normalized, "base64").toString("utf8");
2127
+ const parsed = JSON.parse(decoded);
2128
+ return parsed && typeof parsed === "object" ? parsed : null;
2129
+ } catch {
2130
+ return null;
2131
+ }
2132
+ }
2133
+ function readStringArray(value) {
2134
+ if (!Array.isArray(value)) return;
2135
+ const out = normalizeStringEntries(value);
2136
+ return out.length > 0 ? out : void 0;
2137
+ }
2138
+ function readScopes(value) {
2139
+ if (typeof value !== "string") return;
2140
+ const out = value.split(/\s+/).map((entry) => entry.trim()).filter(Boolean);
2141
+ return out.length > 0 ? out : void 0;
2142
+ }
2143
+ async function probeMSTeams(cfg) {
2144
+ const creds = resolveMSTeamsCredentials(cfg);
2145
+ if (!creds) return {
2146
+ ok: false,
2147
+ error: "missing credentials (appId, appPassword, tenantId)"
2148
+ };
2149
+ try {
2150
+ const { app } = await loadMSTeamsSdkWithAuth(creds);
2151
+ const tokenProvider = createMSTeamsTokenProvider(app);
2152
+ if (!await tokenProvider.getAccessToken("https://api.botframework.com")) throw new Error("Failed to acquire bot token");
2153
+ let graph;
2154
+ try {
2155
+ const accessToken = readAccessToken(await tokenProvider.getAccessToken("https://graph.microsoft.com"));
2156
+ const payload = accessToken ? decodeJwtPayload(accessToken) : null;
2157
+ graph = {
2158
+ ok: true,
2159
+ roles: readStringArray(payload?.roles),
2160
+ scopes: readScopes(payload?.scp)
2161
+ };
2162
+ } catch (err) {
2163
+ graph = {
2164
+ ok: false,
2165
+ error: formatUnknownError(err)
2166
+ };
2167
+ }
2168
+ let delegatedAuth;
2169
+ if (cfg?.delegatedAuth?.enabled) try {
2170
+ const tokens = loadDelegatedTokens();
2171
+ if (tokens) {
2172
+ const isExpired = tokens.expiresAt <= Date.now();
2173
+ delegatedAuth = {
2174
+ ok: !isExpired,
2175
+ scopes: tokens.scopes,
2176
+ userPrincipalName: tokens.userPrincipalName,
2177
+ ...isExpired ? { error: "token expired (will auto-refresh on next use)" } : {}
2178
+ };
2179
+ } else delegatedAuth = {
2180
+ ok: false,
2181
+ error: "no delegated tokens found (run setup wizard)"
2182
+ };
2183
+ } catch {
2184
+ delegatedAuth = {
2185
+ ok: false,
2186
+ error: "failed to load delegated tokens"
2187
+ };
2188
+ }
2189
+ return {
2190
+ ok: true,
2191
+ appId: creds.appId,
2192
+ ...graph ? { graph } : {},
2193
+ ...delegatedAuth ? { delegatedAuth } : {}
2194
+ };
2195
+ } catch (err) {
2196
+ return {
2197
+ ok: false,
2198
+ appId: creds.appId,
2199
+ error: formatUnknownError(err)
2200
+ };
2201
+ }
2202
+ }
2203
+ //#endregion
2204
+ export { readJsonFile as C, createMSTeamsConversationStoreFs as S, writeJsonFile as T, buildFileInfoCard as _, sendMessageMSTeams as a, createMSTeamsPollStoreFs as b, renderReplyPayloadsToMessages as c, withRevokedProxyFallback as d, resolveGraphChatId as f, removePendingUploadFs as g, getPendingUploadFs as h, sendAdaptiveCardMSTeams as i, sendMSTeamsMessages as l, removePendingUpload as m, deleteMessageMSTeams as n, sendPollMSTeams as o, getPendingUpload as p, editMessageMSTeams as r, buildConversationReference as s, probeMSTeams as t, AI_GENERATED_ENTITY as u, parseFileConsentInvoke as v, withFileLock as w, extractMSTeamsPollVote as x, uploadToConsentUrl as y };