@fased/fased 0.1.36 → 0.1.37

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 (244) hide show
  1. package/config/capability-catalog.json +241 -0
  2. package/config/dependency-ownership.json +130 -0
  3. package/config/official-channel-catalog.json +39 -0
  4. package/dist/agents/tools/web-fetch-utils.js +2 -1
  5. package/dist/agents/tools/web-fetch-visibility.js +3 -1
  6. package/dist/brand.js +1 -1
  7. package/dist/browser/pw-session.js +2 -1
  8. package/dist/browser/pw-tools-core.state.js +3 -2
  9. package/dist/browser/runtime-dependency.js +27 -0
  10. package/dist/build-info.json +3 -3
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/capabilities/catalog.js +228 -0
  13. package/dist/cli/components-cli.js +105 -0
  14. package/dist/cli/hooks-cli.js +1 -1
  15. package/dist/cli/plugins-cli.js +3 -3
  16. package/dist/cli/program/register.subclis.js +9 -0
  17. package/dist/cli/update-cli/update-command.js +1 -1
  18. package/dist/commands/doctor-capabilities.js +26 -0
  19. package/dist/commands/doctor.js +2 -0
  20. package/dist/control-ui/assets/{app-DXYMrRJ9.js → app-JBrTSsNu.js} +1480 -1465
  21. package/dist/control-ui/assets/{index-iGQkJE0l.js → index-H-2DWAnH.js} +3 -3
  22. package/dist/control-ui/index.html +1 -1
  23. package/dist/gateway/method-scopes.js +1 -0
  24. package/dist/gateway/server-methods/plugins-marketplace.js +1 -1
  25. package/dist/gateway/server-methods/services.js +8 -0
  26. package/dist/gateway/server-methods-list.js +1 -0
  27. package/dist/infra/optional-runtime-dependency.js +46 -0
  28. package/dist/media/image-ops.js +6 -1
  29. package/dist/media/input-files.js +11 -2
  30. package/dist/media/mime.js +6 -1
  31. package/dist/memory/sqlite-vec.js +7 -1
  32. package/dist/plugin-sdk/{accounts-VqAX3HJ0.js → accounts-BwkH5bTD.js} +1 -1
  33. package/dist/plugin-sdk/{accounts-COY-15zJ.js → accounts-C5BjfxoO.js} +1 -1
  34. package/dist/plugin-sdk/{accounts-Zgt0NP54.js → accounts-RT6y7n3H.js} +1 -1
  35. package/dist/plugin-sdk/{actions-lB3PCwsz.js → actions-BrU_JMqM.js} +2 -2
  36. package/dist/plugin-sdk/{actions-BI5QViLk.js → actions-CUdVHzeJ.js} +2 -2
  37. package/dist/plugin-sdk/{active-listener-DKZiSaRA.js → active-listener-CE8t5g6l.js} +1 -1
  38. package/dist/plugin-sdk/{active-listener-D6_pdTMC.js → active-listener-Dx1SEGDn.js} +1 -1
  39. package/dist/plugin-sdk/{audio-preflight-Dx8J7XhV.js → audio-preflight-C8SbY4fV.js} +22 -22
  40. package/dist/plugin-sdk/{audio-preflight-CeRstduc.js → audio-preflight-CuABlLDL.js} +22 -22
  41. package/dist/plugin-sdk/{audit-BImNOQvk.js → audit-DxB2Kml5.js} +11 -11
  42. package/dist/plugin-sdk/{audit-CKWkq0Un.js → audit-sSeRDwJb.js} +11 -11
  43. package/dist/plugin-sdk/channel-plugin-common.js +3 -2
  44. package/dist/plugin-sdk/{chunk-skAJZWCT.js → chunk-KCxbJLsV.js} +1 -1
  45. package/dist/plugin-sdk/{chunk-Cjw4712g.js → chunk-M2d7r-Zt.js} +1 -1
  46. package/dist/plugin-sdk/{chunk-items-Df5811D0.js → chunk-items-BGbYyNvO.js} +1 -1
  47. package/dist/plugin-sdk/command-status.js +22 -22
  48. package/dist/plugin-sdk/{commands-registry-5J619bQ2.js → commands-registry-CdT-nl7v.js} +2 -2
  49. package/dist/plugin-sdk/{commands-registry-CoLAT03J.js → commands-registry-DoWdYAJd.js} +2 -2
  50. package/dist/plugin-sdk/{common-CSTxewqY.js → common-Cpw-vuuM.js} +1 -1
  51. package/dist/plugin-sdk/{common-BiF0sTnY.js → common-DJWrErdE.js} +1 -1
  52. package/dist/plugin-sdk/{config-BxVjLTIv.js → config-C0qggNKQ.js} +7 -7
  53. package/dist/plugin-sdk/{config-TFokWwvO.js → config-CgwTaper.js} +45 -2
  54. package/dist/plugin-sdk/{config-DXlISPlx.js → config-DtqAN2L3.js} +45 -2
  55. package/dist/plugin-sdk/{config-DgD5T-Ui.js → config-g1MG9Bet.js} +7 -7
  56. package/dist/plugin-sdk/discord.js +2 -1
  57. package/dist/plugin-sdk/{fetch-guard-DPMynms8.js → fetch-guard-BLdujDnt.js} +1 -1
  58. package/dist/plugin-sdk/{fetch-guard-COLmW2TM.js → fetch-guard-DTKgMN9f.js} +1 -1
  59. package/dist/plugin-sdk/{handle-action-C-UndB8E.js → handle-action-B61D85yo.js} +12 -12
  60. package/dist/plugin-sdk/{handle-action-hhufKxmU.js → handle-action-CjcxGzQD.js} +12 -12
  61. package/dist/plugin-sdk/index.js +22 -22
  62. package/dist/plugin-sdk/{login-DL1oBBfL.js → login-CB_nCjX3.js} +3 -3
  63. package/dist/plugin-sdk/{login-YveoqEvH.js → login-CfRfRNc7.js} +2 -2
  64. package/dist/plugin-sdk/{login-Dnxas1dI.js → login-CzUuDd1v.js} +3 -3
  65. package/dist/plugin-sdk/{login-qr-CVQsGWKq.js → login-qr-D7MEpFza.js} +3 -3
  66. package/dist/plugin-sdk/{login-qr-B343JNXJ.js → login-qr-DgxfBFVN.js} +3 -3
  67. package/dist/plugin-sdk/{manager-BytwRIfK.js → manager-9see0IX5.js} +8 -3
  68. package/dist/plugin-sdk/{manager-BZjd_PCt.js → manager-D2kZ0Cps.js} +8 -3
  69. package/dist/plugin-sdk/{markdown-tables-krKiU4cT.js → markdown-tables-CCSD52rA.js} +1 -1
  70. package/dist/plugin-sdk/{markdown-tables-9rJDQ1X-.js → markdown-tables-DWUNvLrc.js} +1 -1
  71. package/dist/plugin-sdk/{media-D7ZkWU-A.js → media-C7YT4DeU.js} +13 -4
  72. package/dist/plugin-sdk/{media-C6C2c9a4.js → media-Cxw-xLGU.js} +13 -4
  73. package/dist/plugin-sdk/{monitor-CVQNDfhs.js → monitor-9X7wapUN.js} +27 -27
  74. package/dist/plugin-sdk/{monitor-BCxkQBoh.js → monitor-B3IfJzKX.js} +26 -26
  75. package/dist/plugin-sdk/{monitor-BzDW50H6.js → monitor-CTjAST_W.js} +27 -27
  76. package/dist/plugin-sdk/{monitor-BsLMfn3U.js → monitor-tYFfy2u-.js} +26 -26
  77. package/dist/plugin-sdk/{openresponses-http-BB67Z4QM.js → openresponses-http-DEB2fEya.js} +22 -22
  78. package/dist/plugin-sdk/{openresponses-http-NE76GGhj.js → openresponses-http-YgMg1jnp.js} +22 -22
  79. package/dist/plugin-sdk/{ssrf-u0Ul7okY.js → optional-runtime-dependency-szS49voX.js} +46 -2
  80. package/dist/plugin-sdk/{outbound-PGNWU6T-.js → outbound-BCxOxdi-.js} +6 -6
  81. package/dist/plugin-sdk/{outbound-BHWJD9q0.js → outbound-JIwQbpRY.js} +6 -6
  82. package/dist/plugin-sdk/{outbound-attachment-BVzfhqnk.js → outbound-attachment-C-jSFaEB.js} +1 -1
  83. package/dist/plugin-sdk/{outbound-attachment-ClMvNW17.js → outbound-attachment-D6tj5Y5H.js} +1 -1
  84. package/dist/plugin-sdk/{pi-embedded-runner-DQ6UPx6-.js → pi-embedded-runner-CUVk8CIj.js} +72 -60
  85. package/dist/plugin-sdk/{pi-model-discovery-D51L5E9I.js → pi-model-discovery-DadlvsZW.js} +1 -1
  86. package/dist/plugin-sdk/{pi-model-discovery-runtime-DxoFm4Vd.js → pi-model-discovery-runtime-C5ssE6EW.js} +1 -1
  87. package/dist/plugin-sdk/{pi-model-discovery-runtime-DRuh4PNV.js → pi-model-discovery-runtime-DAaOPt64.js} +2 -2
  88. package/dist/plugin-sdk/{pi-model-discovery-runtime-CQOauapl.js → pi-model-discovery-runtime-LB-5lX5L.js} +1 -1
  89. package/dist/plugin-sdk/{pi-model-discovery-runtime-BTWgkx4x.js → pi-model-discovery-runtime-gd77b0UF.js} +2 -2
  90. package/dist/plugin-sdk/{pi-model-discovery-CkH5l9X5.js → pi-model-discovery-yifTIDIn.js} +1 -1
  91. package/dist/plugin-sdk/{pw-ai-DZs6uYRd.js → pw-ai-SNCI9UXT.js} +6 -5
  92. package/dist/plugin-sdk/{pw-ai-Cn-EUPZK.js → pw-ai-sH1Pi-Fh.js} +6 -5
  93. package/dist/plugin-sdk/{registry-B4HvWzob.js → registry-DNkJsNsz.js} +4 -3
  94. package/dist/plugin-sdk/{replies-jDMUBsNO.js → replies-fvzN5wnU.js} +2 -2
  95. package/dist/plugin-sdk/{replies-B_LW9c9f.js → replies-zebgZCHX.js} +2 -2
  96. package/dist/plugin-sdk/{resolve-route-_YZHbS-z.js → resolve-route-CNhTJG_2.js} +1 -1
  97. package/dist/plugin-sdk/{resolve-route-DlHzggnG.js → resolve-route-DO0WR4nB.js} +1 -1
  98. package/dist/plugin-sdk/{resolve-utils-zBhVX3Vx.js → resolve-utils-EFP1DYqG.js} +1 -1
  99. package/dist/plugin-sdk/{retry-policy-DGLs5ebP.js → retry-policy-BLYEgIwP.js} +1 -1
  100. package/dist/plugin-sdk/{retry-policy-DaodShGa.js → retry-policy-sM01QZT2.js} +1 -1
  101. package/dist/plugin-sdk/{runtime-Dd0sswuW.js → runtime-BPyuAmka.js} +4 -3
  102. package/dist/plugin-sdk/{paths-DW-U2r7Y.js → runtime-dependency-B-1u41Ph.js} +27 -3
  103. package/dist/plugin-sdk/{paths-CBCpJ5bu.js → runtime-dependency-Csswyv5r.js} +27 -3
  104. package/dist/plugin-sdk/sat-runtime.js +1 -0
  105. package/dist/plugin-sdk/{send-8remZhsH.js → send-B09HRfHN.js} +6 -6
  106. package/dist/plugin-sdk/{send-DaaAscWj.js → send-BBYcgXA4.js} +5 -5
  107. package/dist/plugin-sdk/{send-DFTB0cnx.js → send-BQXQA81e.js} +6 -6
  108. package/dist/plugin-sdk/{send-CtMVvMJs.js → send-BzFdvD_i.js} +6 -6
  109. package/dist/plugin-sdk/{send-Di9irjS-.js → send-C3u-F_8s.js} +6 -6
  110. package/dist/plugin-sdk/{send-Dl88ZKq2.js → send-D3836_UN.js} +6 -6
  111. package/dist/plugin-sdk/{send-ifgZCHVB.js → send-D7tr-EsH.js} +5 -5
  112. package/dist/plugin-sdk/{send-DvUpYh0d.js → send-DRGzRdI3.js} +6 -6
  113. package/dist/plugin-sdk/{send-D2jlPeKH.js → send-DfkPKz_0.js} +4 -4
  114. package/dist/plugin-sdk/{send-QSt6nbny.js → send-DsxFXrCO.js} +4 -4
  115. package/dist/plugin-sdk/{session-CknrceVU.js → session-DG_bYisw.js} +2 -2
  116. package/dist/plugin-sdk/{session-CyRTcJ8N.js → session-EIStzK0E.js} +2 -2
  117. package/dist/plugin-sdk/{skill-commands-DHxkTA0s.js → skill-commands-CkgGmWBS.js} +2 -2
  118. package/dist/plugin-sdk/{skill-commands-CLXAG5sU.js → skill-commands-hyZA0LE3.js} +2 -2
  119. package/dist/plugin-sdk/{slack-BpJXkwxF.js → slack-C0WZVJPZ.js} +34 -34
  120. package/dist/plugin-sdk/{slack-Br9c6Yzs.js → slack-DtlPw_PN.js} +34 -34
  121. package/dist/plugin-sdk/{slack-actions-8tLGt1Ht.js → slack-actions-BQawWGTJ.js} +11 -11
  122. package/dist/plugin-sdk/{slack-actions-CDSSRo8Y.js → slack-actions-DDMszx56.js} +11 -11
  123. package/dist/plugin-sdk/slack.js +2 -1
  124. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  125. package/dist/plugin-sdk/src/browser/runtime-dependency.d.ts +3 -0
  126. package/dist/plugin-sdk/src/infra/optional-runtime-dependency.d.ts +6 -0
  127. package/dist/plugin-sdk/{ssrf-fG4UHKBw.js → ssrf-Cce6LubA.js} +41 -7
  128. package/dist/plugin-sdk/{status-DoxnzyMC.js → status-CIiBeb9B.js} +72 -60
  129. package/dist/plugin-sdk/{sticker-cache-zmJ39ByC.js → sticker-cache-9houHChV.js} +3 -3
  130. package/dist/plugin-sdk/{sticker-cache-D7WcMYsF.js → sticker-cache-Dwi-XsgB.js} +3 -3
  131. package/dist/plugin-sdk/{tables-CkxblF0u.js → tables-BD7H5ug-.js} +1 -1
  132. package/dist/plugin-sdk/{tables-RBtf8G4P.js → tables-CJE8kB35.js} +1 -1
  133. package/dist/plugin-sdk/{telegram-actions-DAeYXSLk.js → telegram-actions-Bu1edXF2.js} +25 -25
  134. package/dist/plugin-sdk/{telegram-actions-BDeS3ocd.js → telegram-actions-CRXVO8lG.js} +25 -25
  135. package/dist/plugin-sdk/telegram.js +2 -1
  136. package/dist/plugin-sdk/{thread-bindings.lifecycle-DsB94WbE.js → thread-bindings.lifecycle-Djem8FWF.js} +2 -2
  137. package/dist/plugin-sdk/{thread-bindings.lifecycle-DMhV3TsR.js → thread-bindings.lifecycle-gmHv3hc7.js} +2 -2
  138. package/dist/plugin-sdk/{thread-bindings.state-DYWpy7hJ.js → thread-bindings.state-CNT2vxm3.js} +2 -2
  139. package/dist/plugin-sdk/{thread-bindings.state-DG5cBaRn.js → thread-bindings.state-D8kN2X6H.js} +2 -2
  140. package/dist/plugin-sdk/{web-IJ4NoGPJ.js → web-DCrVQr6y.js} +26 -26
  141. package/dist/plugin-sdk/{web-DJwacWQo.js → web-Ds6OWw3C.js} +26 -26
  142. package/dist/plugin-sdk/{whatsapp-actions-DAY8hWpD.js → whatsapp-actions-68Mfs2dJ.js} +12 -12
  143. package/dist/plugin-sdk/{whatsapp-actions-6opfo-oB.js → whatsapp-actions-DRqtzvTO.js} +12 -12
  144. package/dist/plugin-sdk/whatsapp.js +6 -5
  145. package/dist/plugin-sdk/{wsl-B2euLEc2.js → wsl-DcM2PgSS.js} +3 -3
  146. package/dist/plugin-sdk/{wsl-B8eyviuv.js → wsl-PXrdWitE.js} +3 -3
  147. package/dist/plugins/update.js +1 -1
  148. package/dist/tts/tts-core.js +6 -1
  149. package/dist/wizard/onboarding.finalize.js +9 -0
  150. package/extensions/acpx/package.json +1 -1
  151. package/extensions/bluebubbles/package.json +1 -1
  152. package/extensions/copilot-proxy/package.json +1 -1
  153. package/extensions/diagnostics-otel/package.json +1 -1
  154. package/extensions/fased-federation/package.json +1 -1
  155. package/extensions/google-gemini-cli-auth/package.json +1 -1
  156. package/extensions/imessage/package.json +1 -1
  157. package/extensions/irc/package.json +1 -1
  158. package/extensions/line/package.json +1 -1
  159. package/extensions/llm-task/package.json +1 -1
  160. package/extensions/lobster/package.json +1 -1
  161. package/extensions/matrix/CHANGELOG.md +6 -0
  162. package/extensions/matrix/package.json +1 -1
  163. package/extensions/mattermost/package.json +1 -1
  164. package/extensions/memory-core/package.json +2 -2
  165. package/extensions/memory-lancedb/package.json +1 -1
  166. package/extensions/minimax-portal-auth/package.json +1 -1
  167. package/extensions/msteams/CHANGELOG.md +6 -0
  168. package/extensions/msteams/package.json +1 -1
  169. package/extensions/nextcloud-talk/package.json +1 -1
  170. package/extensions/nostr/CHANGELOG.md +6 -0
  171. package/extensions/nostr/package.json +1 -1
  172. package/extensions/open-prose/package.json +1 -1
  173. package/extensions/sat-mining/package.json +1 -1
  174. package/extensions/signal/package.json +1 -1
  175. package/extensions/synology-chat/package.json +1 -1
  176. package/extensions/tlon/package.json +1 -1
  177. package/extensions/twitch/CHANGELOG.md +6 -0
  178. package/extensions/twitch/package.json +1 -1
  179. package/extensions/voice-call/CHANGELOG.md +6 -0
  180. package/extensions/voice-call/package.json +1 -1
  181. package/extensions/zalo/CHANGELOG.md +6 -0
  182. package/extensions/zalo/package.json +1 -1
  183. package/extensions/zalouser/CHANGELOG.md +6 -0
  184. package/extensions/zalouser/package.json +1 -1
  185. package/package.json +22 -15
  186. package/extensions/feishu/fased.plugin.json +0 -10
  187. package/extensions/feishu/index.ts +0 -63
  188. package/extensions/feishu/package.json +0 -33
  189. package/extensions/feishu/skills/feishu-doc/SKILL.md +0 -211
  190. package/extensions/feishu/skills/feishu-doc/references/block-types.md +0 -103
  191. package/extensions/feishu/skills/feishu-drive/SKILL.md +0 -97
  192. package/extensions/feishu/skills/feishu-perm/SKILL.md +0 -119
  193. package/extensions/feishu/skills/feishu-wiki/SKILL.md +0 -111
  194. package/extensions/feishu/src/accounts.ts +0 -159
  195. package/extensions/feishu/src/bitable.ts +0 -713
  196. package/extensions/feishu/src/bot.ts +0 -979
  197. package/extensions/feishu/src/channel.ts +0 -359
  198. package/extensions/feishu/src/client.ts +0 -118
  199. package/extensions/feishu/src/config-schema.ts +0 -226
  200. package/extensions/feishu/src/dedup.ts +0 -54
  201. package/extensions/feishu/src/directory.ts +0 -177
  202. package/extensions/feishu/src/doc-schema.ts +0 -122
  203. package/extensions/feishu/src/docx.ts +0 -998
  204. package/extensions/feishu/src/drive-schema.ts +0 -46
  205. package/extensions/feishu/src/drive.ts +0 -232
  206. package/extensions/feishu/src/dynamic-agent.ts +0 -131
  207. package/extensions/feishu/src/external-keys.ts +0 -19
  208. package/extensions/feishu/src/media.ts +0 -447
  209. package/extensions/feishu/src/mention.ts +0 -133
  210. package/extensions/feishu/src/monitor.ts +0 -434
  211. package/extensions/feishu/src/onboarding.ts +0 -430
  212. package/extensions/feishu/src/outbound.ts +0 -56
  213. package/extensions/feishu/src/perm-schema.ts +0 -52
  214. package/extensions/feishu/src/perm.ts +0 -180
  215. package/extensions/feishu/src/policy.ts +0 -116
  216. package/extensions/feishu/src/probe.ts +0 -44
  217. package/extensions/feishu/src/reactions.ts +0 -160
  218. package/extensions/feishu/src/reply-dispatcher.ts +0 -239
  219. package/extensions/feishu/src/runtime.ts +0 -14
  220. package/extensions/feishu/src/send-result.ts +0 -29
  221. package/extensions/feishu/src/send-target.ts +0 -25
  222. package/extensions/feishu/src/send.ts +0 -313
  223. package/extensions/feishu/src/streaming-card.ts +0 -218
  224. package/extensions/feishu/src/targets.ts +0 -78
  225. package/extensions/feishu/src/tool-account.ts +0 -58
  226. package/extensions/feishu/src/tools-config.ts +0 -21
  227. package/extensions/feishu/src/types.ts +0 -81
  228. package/extensions/feishu/src/typing.ts +0 -80
  229. package/extensions/feishu/src/wiki-schema.ts +0 -55
  230. package/extensions/feishu/src/wiki.ts +0 -237
  231. package/extensions/googlechat/fased.plugin.json +0 -9
  232. package/extensions/googlechat/index.ts +0 -19
  233. package/extensions/googlechat/package.json +0 -37
  234. package/extensions/googlechat/src/accounts.ts +0 -147
  235. package/extensions/googlechat/src/actions.ts +0 -176
  236. package/extensions/googlechat/src/api.ts +0 -282
  237. package/extensions/googlechat/src/auth.ts +0 -137
  238. package/extensions/googlechat/src/channel.ts +0 -591
  239. package/extensions/googlechat/src/monitor.ts +0 -996
  240. package/extensions/googlechat/src/onboarding.ts +0 -344
  241. package/extensions/googlechat/src/runtime.ts +0 -14
  242. package/extensions/googlechat/src/targets.ts +0 -65
  243. package/extensions/googlechat/src/types.config.ts +0 -3
  244. package/extensions/googlechat/src/types.ts +0 -73
@@ -1,4 +1,4 @@
1
- import { Jn as formatErrorMessage, St as normalizeProviderId, ct as resolveDiscordPreviewStreamMode, n as loadConfig, un as withFileLock } from "./config-TFokWwvO.js";
1
+ import { St as normalizeProviderId, Yn as formatErrorMessage, ct as resolveDiscordPreviewStreamMode, n as loadConfig, un as withFileLock } from "./config-CgwTaper.js";
2
2
  import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-GdhK5mV_.js";
3
3
  import { C as resolvePreferredFasedAgentTmpDir, i as logVerbose, l as warn, p as getChildLogger, s as shouldLogVerbose, t as danger } from "./globals-BtKmaIS3.js";
4
4
  import { S as truncateUtf16Safe } from "./utils-LGKVujSU.js";
@@ -8,54 +8,54 @@ import { r as compileSafeRegex } from "./redact-Ck-wgswc.js";
8
8
  import { f as DEFAULT_ACCOUNT_ID, l as resolveAgentIdFromSessionKey, p as normalizeAccountId, u as resolveThreadSessionKeys } from "./session-key-Bp3qq3bm.js";
9
9
  import "./github-copilot-token-Djqpy66R.js";
10
10
  import "./retry-Cq65ROXv.js";
11
- import { Lt as GATEWAY_CLIENT_MODES, Nt as normalizeMessageChannel, Rt as GATEWAY_CLIENT_NAMES, b as readSessionUpdatedAt, ct as getChannelDock, y as loadSessionStore } from "./registry-B4HvWzob.js";
11
+ import { Lt as GATEWAY_CLIENT_MODES, Nt as normalizeMessageChannel, Rt as GATEWAY_CLIENT_NAMES, b as readSessionUpdatedAt, ct as getChannelDock, y as loadSessionStore } from "./registry-DNkJsNsz.js";
12
12
  import { n as resolveAccountEntry } from "./account-helpers-CMvQP0I-.js";
13
13
  import { r as resolveDiscordAccount } from "./accounts-BJFheJNv.js";
14
14
  import { t as normalizeDiscordToken } from "./token-BWZYO8QR.js";
15
15
  import "./accounts-BRbbLNW_.js";
16
- import "./accounts-VqAX3HJ0.js";
16
+ import "./accounts-BwkH5bTD.js";
17
17
  import "./tokens-BK5rrwBB.js";
18
18
  import { a as resolveDiscordAllowListMatch, c as resolveDiscordMemberAccessState, d as resolveGroupDmAllow, f as shouldEmitDiscordReactionNotification, g as resolveTimestampMs, h as resolveDiscordSystemLocation, i as normalizeDiscordSlug, l as resolveDiscordOwnerAllowFrom, m as formatDiscordUserTag, n as isDiscordGroupAllowedByPolicy, o as resolveDiscordChannelConfigWithFallback, p as formatDiscordReactionEmoji, r as normalizeDiscordAllowList, s as resolveDiscordGuildEntry, t as allowListMatches, u as resolveDiscordShouldRequireMention } from "./allow-list-CBtbuDI8.js";
19
- import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, r as canonicalizeAllowlistWithResolvedIds, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-zBhVX3Vx.js";
19
+ import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, r as canonicalizeAllowlistWithResolvedIds, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-EFP1DYqG.js";
20
20
  import { l as resolveStorePath } from "./paths-DTurNPnO.js";
21
- import { $ as buildModelsProviderData, $t as parseTtsDirectives, At as EmbeddedBlockChunker, B as dispatchReplyWithBufferedBlockDispatcher, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Gt as stripReasoningTagsFromText, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, Q as resolveStoredModelOverride, Qt as textToSpeech, R as shouldAckReaction, S as buildPairingReply, T as GROUP_POLICY_BLOCKED_LABEL, U as createInboundDebouncer, V as dispatchReplyWithDispatcher, W as resolveInboundDebounceMs, Xt as enqueueSystemEvent, Yt as formatDurationSeconds, Zt as resolveTtsConfig, b as logInboundDrop, ct as buildProviderRegistry, dn as resolveAgentAvatar, f as createTypingCallbacks, fn as buildGatewayConnectionDetails, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, lt as createMediaAttachmentCache, m as resolveMentionGatingWithBypass, pn as GatewayClient, pt as runCapability, q as dispatchInboundMessage, s as agentCommand, ut as normalizeMediaAttachments, v as resolveDmGroupAccessWithLists, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure } from "./status-DoxnzyMC.js";
22
- import "./paths-DW-U2r7Y.js";
23
- import "./ssrf-u0Ul7okY.js";
24
- import { n as listSkillCommandsForAgents } from "./skill-commands-CLXAG5sU.js";
25
- import "./pi-model-discovery-D51L5E9I.js";
21
+ import { $ as buildModelsProviderData, $t as parseTtsDirectives, At as EmbeddedBlockChunker, B as dispatchReplyWithBufferedBlockDispatcher, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Gt as stripReasoningTagsFromText, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, Q as resolveStoredModelOverride, Qt as textToSpeech, R as shouldAckReaction, S as buildPairingReply, T as GROUP_POLICY_BLOCKED_LABEL, U as createInboundDebouncer, V as dispatchReplyWithDispatcher, W as resolveInboundDebounceMs, Xt as enqueueSystemEvent, Yt as formatDurationSeconds, Zt as resolveTtsConfig, b as logInboundDrop, ct as buildProviderRegistry, dn as resolveAgentAvatar, f as createTypingCallbacks, fn as buildGatewayConnectionDetails, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, lt as createMediaAttachmentCache, m as resolveMentionGatingWithBypass, pn as GatewayClient, pt as runCapability, q as dispatchInboundMessage, s as agentCommand, ut as normalizeMediaAttachments, v as resolveDmGroupAccessWithLists, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure } from "./status-CIiBeb9B.js";
22
+ import "./runtime-dependency-B-1u41Ph.js";
23
+ import "./ssrf-Cce6LubA.js";
24
+ import { n as listSkillCommandsForAgents } from "./skill-commands-hyZA0LE3.js";
25
+ import "./pi-model-discovery-DadlvsZW.js";
26
26
  import { i as resolveAckReaction, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-Y14LY6Rn.js";
27
- import { l as fetchRemoteMedia, m as getAgentScopedMediaLocalRoots, n as loadWebMedia } from "./media-D7ZkWU-A.js";
27
+ import { l as fetchRemoteMedia, m as getAgentScopedMediaLocalRoots, n as loadWebMedia } from "./media-C7YT4DeU.js";
28
28
  import "./path-alias-guards-C76pC928.js";
29
29
  import "./fs-safe-BDnJzutp.js";
30
30
  import "./diagnostic-DpyvOvs2.js";
31
- import { c as resolveChunkMode, l as resolveTextChunkLimit } from "./chunk-skAJZWCT.js";
32
- import { n as resolveMarkdownTableMode } from "./markdown-tables-9rJDQ1X-.js";
33
- import "./send-DaaAscWj.js";
34
- import "./fetch-guard-DPMynms8.js";
35
- import { i as saveMediaBuffer } from "./outbound-attachment-ClMvNW17.js";
31
+ import { c as resolveChunkMode, l as resolveTextChunkLimit } from "./chunk-KCxbJLsV.js";
32
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DWUNvLrc.js";
33
+ import "./send-BBYcgXA4.js";
34
+ import "./fetch-guard-BLdujDnt.js";
35
+ import { i as saveMediaBuffer } from "./outbound-attachment-D6tj5Y5H.js";
36
36
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-xfeOsibm.js";
37
- import "./common-BiF0sTnY.js";
38
- import { _ as isNativeCommandsExplicitlyDisabled, a as listChatCommands, b as resolveNativeSkillsEnabled, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, m as serializeCommandArgs, p as resolveCommandArgMenu, r as findCommandByNativeName, t as buildCommandTextFromArgs, y as resolveNativeCommandsEnabled } from "./commands-registry-CoLAT03J.js";
39
- import { N as formatThreadBindingDurationLabel, u as isRecentlyUnboundThreadWebhookMessage, z as getSessionBindingService } from "./thread-bindings.state-DG5cBaRn.js";
37
+ import "./common-DJWrErdE.js";
38
+ import { _ as isNativeCommandsExplicitlyDisabled, a as listChatCommands, b as resolveNativeSkillsEnabled, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, m as serializeCommandArgs, p as resolveCommandArgMenu, r as findCommandByNativeName, t as buildCommandTextFromArgs, y as resolveNativeCommandsEnabled } from "./commands-registry-DoWdYAJd.js";
39
+ import { N as formatThreadBindingDurationLabel, u as isRecentlyUnboundThreadWebhookMessage, z as getSessionBindingService } from "./thread-bindings.state-D8kN2X6H.js";
40
40
  import "./memory-search-B-0Fwnrp.js";
41
- import "./manager-BytwRIfK.js";
41
+ import "./manager-9see0IX5.js";
42
42
  import "./query-expansion-DjJAUtDU.js";
43
43
  import "./diagnostic-session-state-CT36_PCE.js";
44
- import { F as upsertChannelPairingRequest, I as readJsonFileWithFallback, L as writeJsonFileAtomically } from "./wsl-B2euLEc2.js";
44
+ import { F as upsertChannelPairingRequest, I as readJsonFileWithFallback, L as writeJsonFileAtomically } from "./wsl-DcM2PgSS.js";
45
45
  import "./sandbox-paths-DMnFyOaA.js";
46
46
  import "./directory-live-8umGGN7a.js";
47
47
  import "./targets-t1hbjHdJ.js";
48
- import "./send-Dl88ZKq2.js";
49
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DlHzggnG.js";
48
+ import "./send-D3836_UN.js";
49
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DO0WR4nB.js";
50
50
  import { t as finalizeInboundContext } from "./inbound-context-CeJDjLk-.js";
51
51
  import "./render-C9LkRUhd.js";
52
- import { t as convertMarkdownTables } from "./tables-RBtf8G4P.js";
52
+ import { t as convertMarkdownTables } from "./tables-BD7H5ug-.js";
53
53
  import { n as recordChannelActivity } from "./channel-activity-Cf5sKkfd.js";
54
54
  import { t as withTimeout } from "./with-timeout-DqkblR98.js";
55
- import { t as createDiscordRetryRunner } from "./retry-policy-DGLs5ebP.js";
55
+ import { t as createDiscordRetryRunner } from "./retry-policy-BLYEgIwP.js";
56
56
  import { a as setPresence, n as registerGateway, r as unregisterGateway } from "./gateway-registry-w_Z-PHGf.js";
57
- import { C as editMessageDiscord, Q as stripUndefinedFields, a as removeReactionDiscord, b as sendWebhookMessageDiscord, c as formatDiscordComponentEventText, d as parseDiscordModalCustomId, f as parseDiscordModalCustomIdForCarbon, g as sendMessageDiscord, h as resolveDiscordModalEntry, l as parseDiscordComponentCustomId, m as resolveDiscordComponentEntry, r as reactMessageDiscord, rt as chunkDiscordTextWithMode, s as createDiscordFormModal, tt as createDiscordClient, u as parseDiscordComponentCustomIdForCarbon, y as sendVoiceMessageDiscord } from "./send-Di9irjS-.js";
58
- import { i as createThreadBindingManager, r as createNoopThreadBindingManager, t as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings.lifecycle-DsB94WbE.js";
57
+ import { C as editMessageDiscord, Q as stripUndefinedFields, a as removeReactionDiscord, b as sendWebhookMessageDiscord, c as formatDiscordComponentEventText, d as parseDiscordModalCustomId, f as parseDiscordModalCustomIdForCarbon, g as sendMessageDiscord, h as resolveDiscordModalEntry, l as parseDiscordComponentCustomId, m as resolveDiscordComponentEntry, r as reactMessageDiscord, rt as chunkDiscordTextWithMode, s as createDiscordFormModal, tt as createDiscordClient, u as parseDiscordComponentCustomIdForCarbon, y as sendVoiceMessageDiscord } from "./send-C3u-F_8s.js";
58
+ import { i as createThreadBindingManager, r as createNoopThreadBindingManager, t as reconcileAcpThreadBindingsOnStartup } from "./thread-bindings.lifecycle-Djem8FWF.js";
59
59
  import { t as createReplyReferencePlanner } from "./reply-reference-mUSl_ExV.js";
60
60
  import { i as createStatusReactionController, r as DEFAULT_TIMING, t as createFinalizableDraftLifecycle } from "./draft-stream-controls-Bfbhumzv.js";
61
61
  import { t as fetchDiscordApplicationId } from "./probe-0Xt6fbw2.js";
@@ -1405,7 +1405,7 @@ async function preflightDiscordMessage(params) {
1405
1405
  let preflightTranscript;
1406
1406
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
1407
1407
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
1408
- const { transcribeFirstAudio } = await import("./audio-preflight-CeRstduc.js");
1408
+ const { transcribeFirstAudio } = await import("./audio-preflight-CuABlLDL.js");
1409
1409
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
1410
1410
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
1411
1411
  ctx: {
@@ -1,57 +1,57 @@
1
- import { $ as formatModelsAvailableHeader, $n as resolveTelegramInlineButtonsScope, A as clearHistoryEntriesIfEnabled, C as buildPairingReply, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, Nt as registerUnhandledRejectionHandler, O as buildPendingHistoryContextFromMap, Q as buildModelsProviderData, Qt as formatReasoningMessage, Sn as readJsonBodyWithLimit, T as sleepWithAbort, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, Z as resolveStoredModelOverride, _r as resolveControlCommandGate, at as buildCommandsPaginationKeyboard, b as logInboundDrop, bt as buildCommandsMessagePaginated, c as loadModelCatalog, en as stripReasoningTagsFromText, et as buildModelsKeyboard, f as createTypingCallbacks, gr as resolveCommandAuthorizedFromAuthorizers, it as parseModelCallbackData, l as modelSupportsVision, m as resolveMentionGatingWithBypass, nn as isInsideCode, nt as calculateTotalPages, qt as isAbortRequestText, rr as waitForAbortSignal, rt as getModelsPageSize, s as findModelInCatalog, sr as createDedupeCache, tn as findCodeRegions, tt as buildProviderKeyboard, w as computeBackoff, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, xt as formatDurationPrecise, y as logAckFailure, z as dispatchReplyWithBufferedBlockDispatcher } from "./pi-embedded-runner-DQ6UPx6-.js";
2
- import { C as recordSessionMetaFromInbound, Dt as resolveTelegramAccount, Rt as resolveChannelGroupPolicy, S as readSessionUpdatedAt, fn as executePluginCommand, hn as matchPluginCommand, pn as getPluginCommandSpecs, x as loadSessionStore, zt as resolveChannelGroupRequireMention } from "./runtime-Dd0sswuW.js";
1
+ import { $ as formatModelsAvailableHeader, $n as resolveTelegramInlineButtonsScope, A as clearHistoryEntriesIfEnabled, C as buildPairingReply, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, Nt as registerUnhandledRejectionHandler, O as buildPendingHistoryContextFromMap, Q as buildModelsProviderData, Qt as formatReasoningMessage, Sn as readJsonBodyWithLimit, T as sleepWithAbort, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, Z as resolveStoredModelOverride, _r as resolveControlCommandGate, at as buildCommandsPaginationKeyboard, b as logInboundDrop, bt as buildCommandsMessagePaginated, c as loadModelCatalog, en as stripReasoningTagsFromText, et as buildModelsKeyboard, f as createTypingCallbacks, gr as resolveCommandAuthorizedFromAuthorizers, it as parseModelCallbackData, l as modelSupportsVision, m as resolveMentionGatingWithBypass, nn as isInsideCode, nt as calculateTotalPages, qt as isAbortRequestText, rr as waitForAbortSignal, rt as getModelsPageSize, s as findModelInCatalog, sr as createDedupeCache, tn as findCodeRegions, tt as buildProviderKeyboard, w as computeBackoff, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, xt as formatDurationPrecise, y as logAckFailure, z as dispatchReplyWithBufferedBlockDispatcher } from "./pi-embedded-runner-CUVk8CIj.js";
2
+ import { C as recordSessionMetaFromInbound, Dt as resolveTelegramAccount, Rt as resolveChannelGroupPolicy, S as readSessionUpdatedAt, fn as executePluginCommand, hn as matchPluginCommand, pn as getPluginCommandSpecs, x as loadSessionStore, zt as resolveChannelGroupRequireMention } from "./runtime-BPyuAmka.js";
3
3
  import { i as defaultRuntime, r as createNonExitingRuntime, t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
4
4
  import { i as logVerbose, l as warn, p as getChildLogger, s as shouldLogVerbose, t as danger } from "./globals-B_jjtAje.js";
5
5
  import { s as resolveStateDir } from "./paths-BEmvSyOV.js";
6
6
  import "./utils-CYk9EKoq.js";
7
- import { Gt as resolveDefaultModelForAgent, Nt as resolveAgentMaxConcurrent, cr as formatUncaughtError, h as resolveTelegramCustomCommands, m as normalizeTelegramCommandName, n as loadConfig, p as TELEGRAM_COMMAND_NAME_PATTERN, s as writeConfigFile, sr as formatErrorMessage } from "./config-DXlISPlx.js";
7
+ import { Gt as resolveDefaultModelForAgent, Nt as resolveAgentMaxConcurrent, cr as formatErrorMessage, h as resolveTelegramCustomCommands, lr as formatUncaughtError, m as normalizeTelegramCommandName, n as loadConfig, p as TELEGRAM_COMMAND_NAME_PATTERN, s as writeConfigFile } from "./config-DtqAN2L3.js";
8
8
  import { a as resolveAgentDir, u as resolveDefaultAgentId } from "./agent-scope-kIJqg5PA.js";
9
9
  import { p as normalizeAccountId$1, u as resolveThreadSessionKeys } from "./session-key-HSJ2KQTc.js";
10
10
  import "./accounts-D7_p-Ivb.js";
11
11
  import "./accounts-DTdM1xcj.js";
12
- import "./accounts-Zgt0NP54.js";
12
+ import "./accounts-RT6y7n3H.js";
13
13
  import "./tokens-CQRTq-NN.js";
14
14
  import "./allow-list-C9N6FKeC.js";
15
15
  import "./redact-CwCz68Mi.js";
16
16
  import "./github-copilot-token-Dgug856m.js";
17
17
  import { n as retryAsync } from "./retry-DycQ4ymF.js";
18
18
  import { l as resolveStorePath } from "./paths-B88DQEK8.js";
19
- import "./ssrf-fG4UHKBw.js";
20
- import "./fetch-guard-COLmW2TM.js";
21
- import "./send-DvUpYh0d.js";
22
- import { C as isSenderAllowed, D as formatLocationText, E as resolveSenderAllowMatch, K as firstDefined, O as toLocationContext, S as resolveTelegramThreadSpec, T as normalizeDmAllowFromWithStore, V as upsertChannelPairingRequest, _ as resolveTelegramForumThreadId, a as buildSenderLabel, b as resolveTelegramReplyId, c as buildTelegramGroupPeerId, d as buildTypingThreadParams, f as describeReplyTarget, g as normalizeForwardedContext, h as hasBotMention, i as buildGroupLabel, l as buildTelegramParentPeer, m as extractTelegramLocation, o as buildSenderName, p as expandTextLinks, s as buildTelegramGroupFrom, u as buildTelegramThreadParams, v as resolveTelegramGroupAllowFromContext, w as normalizeAllowFrom, x as resolveTelegramStreamMode, y as resolveTelegramMediaPlaceholder, z as readChannelAllowFromStore } from "./wsl-B8eyviuv.js";
23
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-Cjw4712g.js";
19
+ import "./optional-runtime-dependency-szS49voX.js";
20
+ import "./fetch-guard-DTKgMN9f.js";
21
+ import "./send-DRGzRdI3.js";
22
+ import { C as isSenderAllowed, D as formatLocationText, E as resolveSenderAllowMatch, K as firstDefined, O as toLocationContext, S as resolveTelegramThreadSpec, T as normalizeDmAllowFromWithStore, V as upsertChannelPairingRequest, _ as resolveTelegramForumThreadId, a as buildSenderLabel, b as resolveTelegramReplyId, c as buildTelegramGroupPeerId, d as buildTypingThreadParams, f as describeReplyTarget, g as normalizeForwardedContext, h as hasBotMention, i as buildGroupLabel, l as buildTelegramParentPeer, m as extractTelegramLocation, o as buildSenderName, p as expandTextLinks, s as buildTelegramGroupFrom, u as buildTelegramThreadParams, v as resolveTelegramGroupAllowFromContext, w as normalizeAllowFrom, x as resolveTelegramStreamMode, y as resolveTelegramMediaPlaceholder, z as readChannelAllowFromStore } from "./wsl-PXrdWitE.js";
23
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-M2d7r-Zt.js";
24
24
  import { a as resolveAckReaction, n as createReplyPrefixOptions } from "./reply-prefix-DqlCqHXT.js";
25
- import { n as listSkillCommandsForAgents } from "./skill-commands-DHxkTA0s.js";
25
+ import { n as listSkillCommandsForAgents } from "./skill-commands-CkgGmWBS.js";
26
26
  import { c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, l as logWebhookProcessed, m as isDiagnosticsEnabled, u as logWebhookReceived } from "./diagnostic-CuhHqubd.js";
27
27
  import "./diagnostic-session-state-Zw87xFym.js";
28
- import { E as mediaKindFromMime, c as MediaFetchError, l as fetchRemoteMedia, m as getAgentScopedMediaLocalRoots, n as loadWebMedia, x as isGifMedia } from "./media-C6C2c9a4.js";
29
- import "./pi-model-discovery-CkH5l9X5.js";
30
- import "./paths-CBCpJ5bu.js";
28
+ import { E as mediaKindFromMime, c as MediaFetchError, l as fetchRemoteMedia, m as getAgentScopedMediaLocalRoots, n as loadWebMedia, x as isGifMedia } from "./media-Cxw-xLGU.js";
29
+ import "./pi-model-discovery-yifTIDIn.js";
30
+ import "./runtime-dependency-Csswyv5r.js";
31
31
  import "./path-alias-guards-CcQroDXQ.js";
32
32
  import "./fs-safe-BPYS6-j1.js";
33
- import { n as resolveMarkdownTableMode } from "./markdown-tables-krKiU4cT.js";
34
- import "./send-ifgZCHVB.js";
35
- import { a as saveMediaBuffer } from "./outbound-attachment-BVzfhqnk.js";
33
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-CCSD52rA.js";
34
+ import "./send-D7tr-EsH.js";
35
+ import { a as saveMediaBuffer } from "./outbound-attachment-C-jSFaEB.js";
36
36
  import "./fetch-D70syO9t.js";
37
- import "./thread-bindings.state-DYWpy7hJ.js";
37
+ import "./thread-bindings.state-CNT2vxm3.js";
38
38
  import "./memory-search-J6AYuENR.js";
39
- import "./manager-BZjd_PCt.js";
39
+ import "./manager-D2kZ0Cps.js";
40
40
  import "./query-expansion-VePrajug.js";
41
- import "./common-CSTxewqY.js";
42
- import { C as isNativeCommandsExplicitlyDisabled, E as resolveNativeSkillsEnabled, T as resolveNativeCommandsEnabled, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-5J619bQ2.js";
41
+ import "./common-Cpw-vuuM.js";
42
+ import { C as isNativeCommandsExplicitlyDisabled, E as resolveNativeSkillsEnabled, T as resolveNativeCommandsEnabled, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-CdT-nl7v.js";
43
43
  import { t as finalizeInboundContext } from "./inbound-context-Daf9i2Me.js";
44
44
  import "./directory-live-BxSH0XXX.js";
45
45
  import "./targets-cA134MEE.js";
46
46
  import "./sandbox-paths-CkTERCrj.js";
47
- import { n as resolveAgentRoute } from "./resolve-route-_YZHbS-z.js";
47
+ import { n as resolveAgentRoute } from "./resolve-route-CNhTJG_2.js";
48
48
  import "./render-C9LkRUhd.js";
49
- import "./tables-CkxblF0u.js";
49
+ import "./tables-CJE8kB35.js";
50
50
  import { n as recordChannelActivity } from "./channel-activity-Cf5sKkfd.js";
51
- import { _ as splitTelegramCaption, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, p as markdownToTelegramHtml, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging } from "./send-CtMVvMJs.js";
52
- import "./retry-policy-DaodShGa.js";
51
+ import { _ as splitTelegramCaption, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, p as markdownToTelegramHtml, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging } from "./send-BzFdvD_i.js";
52
+ import "./retry-policy-sM01QZT2.js";
53
53
  import { t as makeProxyFetch } from "./proxy-CKQOQYAl.js";
54
- import { i as getCachedSticker, n as describeStickerImage, t as cacheSticker } from "./sticker-cache-D7WcMYsF.js";
54
+ import { i as getCachedSticker, n as describeStickerImage, t as cacheSticker } from "./sticker-cache-Dwi-XsgB.js";
55
55
  import { i as createStatusReactionController, n as DEFAULT_EMOJIS, t as createFinalizableDraftLifecycle } from "./draft-stream-controls-v_5gdUYG.js";
56
56
  import path from "node:path";
57
57
  import os from "node:os";
@@ -2035,7 +2035,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
2035
2035
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
2036
2036
  let preflightTranscript;
2037
2037
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
2038
- const { transcribeFirstAudio } = await import("./audio-preflight-Dx8J7XhV.js");
2038
+ const { transcribeFirstAudio } = await import("./audio-preflight-C8SbY4fV.js");
2039
2039
  preflightTranscript = await transcribeFirstAudio({
2040
2040
  ctx: {
2041
2041
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -1,50 +1,50 @@
1
- import { Bt as normalizeMimeList, Ft as DEFAULT_INPUT_IMAGE_MIMES, It as DEFAULT_INPUT_MAX_REDIRECTS, Lt as DEFAULT_INPUT_TIMEOUT_MS, Pt as DEFAULT_INPUT_IMAGE_MAX_BYTES, Rt as extractFileContentFromSource, Vt as resolveInputFileLimits, a as agentCommand, dn as createDefaultDeps, fn as resolveAgentIdForRequest, gn as writeDone, hn as setSseHeaders, i as resolveAssistantStreamDeltaText, in as onAgentEvent, mn as sendJson, n as handleGatewayPostJsonEndpoint, pn as resolveSessionKey, r as buildAgentMessageFromConversationEntries, rn as emitAgentEvent, zt as extractImageContentFromSource } from "./pi-embedded-runner-DQ6UPx6-.js";
2
- import "./runtime-Dd0sswuW.js";
1
+ import { Bt as normalizeMimeList, Ft as DEFAULT_INPUT_IMAGE_MIMES, It as DEFAULT_INPUT_MAX_REDIRECTS, Lt as DEFAULT_INPUT_TIMEOUT_MS, Pt as DEFAULT_INPUT_IMAGE_MAX_BYTES, Rt as extractFileContentFromSource, Vt as resolveInputFileLimits, a as agentCommand, dn as createDefaultDeps, fn as resolveAgentIdForRequest, gn as writeDone, hn as setSseHeaders, i as resolveAssistantStreamDeltaText, in as onAgentEvent, mn as sendJson, n as handleGatewayPostJsonEndpoint, pn as resolveSessionKey, r as buildAgentMessageFromConversationEntries, rn as emitAgentEvent, zt as extractImageContentFromSource } from "./pi-embedded-runner-CUVk8CIj.js";
2
+ import "./runtime-BPyuAmka.js";
3
3
  import { i as defaultRuntime } from "./subsystem-DBPNbQDQ.js";
4
4
  import "./globals-B_jjtAje.js";
5
5
  import "./paths-BEmvSyOV.js";
6
6
  import "./utils-CYk9EKoq.js";
7
- import "./config-DXlISPlx.js";
7
+ import "./config-DtqAN2L3.js";
8
8
  import { P as logWarn } from "./agent-scope-kIJqg5PA.js";
9
9
  import "./accounts-D7_p-Ivb.js";
10
10
  import "./accounts-DTdM1xcj.js";
11
- import "./accounts-Zgt0NP54.js";
11
+ import "./accounts-RT6y7n3H.js";
12
12
  import "./tokens-CQRTq-NN.js";
13
13
  import "./allow-list-C9N6FKeC.js";
14
14
  import "./redact-CwCz68Mi.js";
15
15
  import "./github-copilot-token-Dgug856m.js";
16
16
  import "./retry-DycQ4ymF.js";
17
17
  import "./paths-B88DQEK8.js";
18
- import "./ssrf-fG4UHKBw.js";
19
- import "./fetch-guard-COLmW2TM.js";
20
- import "./send-DvUpYh0d.js";
21
- import "./wsl-B8eyviuv.js";
22
- import "./chunk-Cjw4712g.js";
18
+ import "./optional-runtime-dependency-szS49voX.js";
19
+ import "./fetch-guard-DTKgMN9f.js";
20
+ import "./send-DRGzRdI3.js";
21
+ import "./wsl-PXrdWitE.js";
22
+ import "./chunk-M2d7r-Zt.js";
23
23
  import "./reply-prefix-DqlCqHXT.js";
24
- import "./skill-commands-DHxkTA0s.js";
24
+ import "./skill-commands-CkgGmWBS.js";
25
25
  import "./diagnostic-CuhHqubd.js";
26
26
  import "./diagnostic-session-state-Zw87xFym.js";
27
- import "./media-C6C2c9a4.js";
28
- import "./pi-model-discovery-CkH5l9X5.js";
29
- import "./paths-CBCpJ5bu.js";
27
+ import "./media-Cxw-xLGU.js";
28
+ import "./pi-model-discovery-yifTIDIn.js";
29
+ import "./runtime-dependency-Csswyv5r.js";
30
30
  import "./path-alias-guards-CcQroDXQ.js";
31
31
  import "./fs-safe-BPYS6-j1.js";
32
- import "./markdown-tables-krKiU4cT.js";
33
- import "./send-ifgZCHVB.js";
34
- import "./outbound-attachment-BVzfhqnk.js";
32
+ import "./markdown-tables-CCSD52rA.js";
33
+ import "./send-D7tr-EsH.js";
34
+ import "./outbound-attachment-C-jSFaEB.js";
35
35
  import "./fetch-D70syO9t.js";
36
- import "./thread-bindings.state-DYWpy7hJ.js";
36
+ import "./thread-bindings.state-CNT2vxm3.js";
37
37
  import "./memory-search-J6AYuENR.js";
38
- import "./manager-BZjd_PCt.js";
38
+ import "./manager-D2kZ0Cps.js";
39
39
  import "./query-expansion-VePrajug.js";
40
- import "./common-CSTxewqY.js";
41
- import "./commands-registry-5J619bQ2.js";
40
+ import "./common-Cpw-vuuM.js";
41
+ import "./commands-registry-CdT-nl7v.js";
42
42
  import "./directory-live-BxSH0XXX.js";
43
43
  import "./targets-cA134MEE.js";
44
44
  import "./sandbox-paths-CkTERCrj.js";
45
- import "./resolve-route-_YZHbS-z.js";
45
+ import "./resolve-route-CNhTJG_2.js";
46
46
  import "./render-C9LkRUhd.js";
47
- import "./tables-CkxblF0u.js";
47
+ import "./tables-CJE8kB35.js";
48
48
  import { randomUUID } from "node:crypto";
49
49
  import { z } from "zod";
50
50
 
@@ -1,4 +1,4 @@
1
- import "./config-TFokWwvO.js";
1
+ import "./config-CgwTaper.js";
2
2
  import "./paths-GdhK5mV_.js";
3
3
  import "./globals-BtKmaIS3.js";
4
4
  import "./utils-LGKVujSU.js";
@@ -7,44 +7,44 @@ import { Z as logWarn } from "./agent-scope-BuTbywla.js";
7
7
  import "./redact-Ck-wgswc.js";
8
8
  import "./github-copilot-token-Djqpy66R.js";
9
9
  import "./retry-Cq65ROXv.js";
10
- import "./registry-B4HvWzob.js";
10
+ import "./registry-DNkJsNsz.js";
11
11
  import "./accounts-BJFheJNv.js";
12
12
  import "./accounts-BRbbLNW_.js";
13
- import "./accounts-VqAX3HJ0.js";
13
+ import "./accounts-BwkH5bTD.js";
14
14
  import "./tokens-BK5rrwBB.js";
15
15
  import "./allow-list-CBtbuDI8.js";
16
16
  import "./paths-DTurNPnO.js";
17
- import { Nt as emitAgentEvent, Pt as onAgentEvent, St as resolveInputFileLimits, _t as DEFAULT_INPUT_MAX_REDIRECTS, a as buildAgentMessageFromConversationEntries, an as sendJson, bt as extractImageContentFromSource, gt as DEFAULT_INPUT_IMAGE_MIMES, ht as DEFAULT_INPUT_IMAGE_MAX_BYTES, i as handleGatewayPostJsonEndpoint, in as resolveSessionKey, nn as createDefaultDeps, o as resolveAssistantStreamDeltaText, on as setSseHeaders, rn as resolveAgentIdForRequest, s as agentCommand, sn as writeDone, vt as DEFAULT_INPUT_TIMEOUT_MS, xt as normalizeMimeList, yt as extractFileContentFromSource } from "./status-DoxnzyMC.js";
18
- import "./paths-DW-U2r7Y.js";
19
- import "./ssrf-u0Ul7okY.js";
20
- import "./skill-commands-CLXAG5sU.js";
21
- import "./pi-model-discovery-D51L5E9I.js";
17
+ import { Nt as emitAgentEvent, Pt as onAgentEvent, St as resolveInputFileLimits, _t as DEFAULT_INPUT_MAX_REDIRECTS, a as buildAgentMessageFromConversationEntries, an as sendJson, bt as extractImageContentFromSource, gt as DEFAULT_INPUT_IMAGE_MIMES, ht as DEFAULT_INPUT_IMAGE_MAX_BYTES, i as handleGatewayPostJsonEndpoint, in as resolveSessionKey, nn as createDefaultDeps, o as resolveAssistantStreamDeltaText, on as setSseHeaders, rn as resolveAgentIdForRequest, s as agentCommand, sn as writeDone, vt as DEFAULT_INPUT_TIMEOUT_MS, xt as normalizeMimeList, yt as extractFileContentFromSource } from "./status-CIiBeb9B.js";
18
+ import "./runtime-dependency-B-1u41Ph.js";
19
+ import "./ssrf-Cce6LubA.js";
20
+ import "./skill-commands-hyZA0LE3.js";
21
+ import "./pi-model-discovery-DadlvsZW.js";
22
22
  import "./reply-prefix-Y14LY6Rn.js";
23
- import "./media-D7ZkWU-A.js";
23
+ import "./media-C7YT4DeU.js";
24
24
  import "./path-alias-guards-C76pC928.js";
25
25
  import "./fs-safe-BDnJzutp.js";
26
26
  import "./diagnostic-DpyvOvs2.js";
27
- import "./chunk-skAJZWCT.js";
28
- import "./markdown-tables-9rJDQ1X-.js";
29
- import "./send-DaaAscWj.js";
30
- import "./fetch-guard-DPMynms8.js";
31
- import "./outbound-attachment-ClMvNW17.js";
27
+ import "./chunk-KCxbJLsV.js";
28
+ import "./markdown-tables-DWUNvLrc.js";
29
+ import "./send-BBYcgXA4.js";
30
+ import "./fetch-guard-BLdujDnt.js";
31
+ import "./outbound-attachment-D6tj5Y5H.js";
32
32
  import "./fetch-xfeOsibm.js";
33
- import "./common-BiF0sTnY.js";
34
- import "./commands-registry-CoLAT03J.js";
35
- import "./thread-bindings.state-DG5cBaRn.js";
33
+ import "./common-DJWrErdE.js";
34
+ import "./commands-registry-DoWdYAJd.js";
35
+ import "./thread-bindings.state-D8kN2X6H.js";
36
36
  import "./memory-search-B-0Fwnrp.js";
37
- import "./manager-BytwRIfK.js";
37
+ import "./manager-9see0IX5.js";
38
38
  import "./query-expansion-DjJAUtDU.js";
39
39
  import "./diagnostic-session-state-CT36_PCE.js";
40
- import "./wsl-B2euLEc2.js";
40
+ import "./wsl-DcM2PgSS.js";
41
41
  import "./sandbox-paths-DMnFyOaA.js";
42
42
  import "./directory-live-8umGGN7a.js";
43
43
  import "./targets-t1hbjHdJ.js";
44
- import "./send-Dl88ZKq2.js";
45
- import "./resolve-route-DlHzggnG.js";
44
+ import "./send-D3836_UN.js";
45
+ import "./resolve-route-DO0WR4nB.js";
46
46
  import "./render-C9LkRUhd.js";
47
- import "./tables-RBtf8G4P.js";
47
+ import "./tables-BD7H5ug-.js";
48
48
  import { randomUUID } from "node:crypto";
49
49
  import { z } from "zod";
50
50
 
@@ -1,7 +1,11 @@
1
- import ipaddr from "ipaddr.js";
1
+ import { ir as resolvePluginInstallDir } from "./config-DtqAN2L3.js";
2
+ import { createRequire } from "node:module";
3
+ import path from "node:path";
4
+ import { pathToFileURL } from "node:url";
2
5
  import { Agent } from "undici";
3
6
  import { lookup } from "node:dns";
4
7
  import { lookup as lookup$1 } from "node:dns/promises";
8
+ import ipaddr from "ipaddr.js";
5
9
 
6
10
  //#region src/shared/net/ip.ts
7
11
  const BLOCKED_IPV4_SPECIAL_USE_RANGES = new Set([
@@ -252,6 +256,11 @@ function isPrivateIpAddress(address, policy) {
252
256
  if (looksLikeUnsupportedIpv4Literal(normalized)) return true;
253
257
  return false;
254
258
  }
259
+ function isBlockedHostname(hostname) {
260
+ const normalized = normalizeHostname(hostname);
261
+ if (!normalized) return false;
262
+ return isBlockedHostnameNormalized(normalized);
263
+ }
255
264
  function isBlockedHostnameNormalized(normalized) {
256
265
  if (BLOCKED_HOSTNAMES.has(normalized)) return true;
257
266
  return normalized.endsWith(".localhost") || normalized.endsWith(".local") || normalized.endsWith(".internal");
@@ -379,4 +388,39 @@ async function closeDispatcher(dispatcher) {
379
388
  }
380
389
 
381
390
  //#endregion
382
- export { resolvePinnedHostnameWithPolicy as a, isLoopbackIpAddress as c, isBlockedHostnameOrIp as i, normalizeIpAddress as l, closeDispatcher as n, normalizeHostname as o, createPinnedDispatcher as r, isIpInCidr as s, SsrFBlockedError as t };
391
+ //#region src/infra/optional-runtime-dependency.ts
392
+ const imports = /* @__PURE__ */ new Map();
393
+ function missingRuntimeMessage(params) {
394
+ const detail = params.cause instanceof Error ? params.cause.message : String(params.cause);
395
+ return new Error(`${params.dependency} is not available. Install ${params.packageName} with \`fased components install ${params.componentId}\`, restart the Gateway, and try again. (${detail})`, { cause: params.cause });
396
+ }
397
+ async function importFromInstalledComponent(params) {
398
+ try {
399
+ return await import(params.dependency);
400
+ } catch (coreError) {
401
+ try {
402
+ const componentRoot = resolvePluginInstallDir(params.componentId);
403
+ return await import(pathToFileURL(createRequire(path.join(componentRoot, "package.json")).resolve(params.dependency)).href);
404
+ } catch (componentError) {
405
+ throw missingRuntimeMessage({
406
+ ...params,
407
+ cause: componentError ?? coreError
408
+ });
409
+ }
410
+ }
411
+ }
412
+ async function importOptionalRuntimeDependency(params) {
413
+ const key = `${params.componentId}:${params.dependency}`;
414
+ let pending = imports.get(key);
415
+ if (!pending) {
416
+ pending = importFromInstalledComponent(params).catch((error) => {
417
+ imports.delete(key);
418
+ throw error;
419
+ });
420
+ imports.set(key, pending);
421
+ }
422
+ return await pending;
423
+ }
424
+
425
+ //#endregion
426
+ export { isBlockedHostname as a, resolvePinnedHostnameWithPolicy as c, isLoopbackIpAddress as d, normalizeIpAddress as f, createPinnedDispatcher as i, normalizeHostname as l, SsrFBlockedError as n, isBlockedHostnameOrIp as o, closeDispatcher as r, isPrivateIpAddress as s, importOptionalRuntimeDependency as t, isIpInCidr as u };
@@ -2,15 +2,15 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
3
3
  import { p as getChildLogger } from "./globals-B_jjtAje.js";
4
4
  import { o as escapeRegExp, x as toWhatsappJid } from "./utils-CYk9EKoq.js";
5
- import { n as loadConfig } from "./config-DXlISPlx.js";
5
+ import { n as loadConfig } from "./config-DtqAN2L3.js";
6
6
  import { n as generateSecureUuid } from "./secure-random-DLpYiUzR.js";
7
7
  import { t as redactIdentifier } from "./redact-identifier-DdQO7P4_.js";
8
- import { n as loadWebMedia } from "./media-C6C2c9a4.js";
9
- import { n as resolveMarkdownTableMode } from "./markdown-tables-krKiU4cT.js";
8
+ import { n as loadWebMedia } from "./media-Cxw-xLGU.js";
9
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-CCSD52rA.js";
10
10
  import { n as normalizePollInput } from "./polls-D0YNJBfc.js";
11
- import { t as convertMarkdownTables } from "./tables-CkxblF0u.js";
12
- import { n as requireActiveWebListener } from "./active-listener-DKZiSaRA.js";
13
- import { n as formatError } from "./session-CknrceVU.js";
11
+ import { t as convertMarkdownTables } from "./tables-CJE8kB35.js";
12
+ import { n as requireActiveWebListener } from "./active-listener-CE8t5g6l.js";
13
+ import { n as formatError } from "./session-DG_bYisw.js";
14
14
 
15
15
  //#region src/markdown/whatsapp.ts
16
16
  /**
@@ -1,16 +1,16 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as loadConfig } from "./config-TFokWwvO.js";
2
+ import { n as loadConfig } from "./config-CgwTaper.js";
3
3
  import { p as getChildLogger } from "./globals-BtKmaIS3.js";
4
4
  import { o as escapeRegExp, x as toWhatsappJid } from "./utils-LGKVujSU.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-BmpnSVOu.js";
6
- import { n as loadWebMedia } from "./media-D7ZkWU-A.js";
7
- import { n as resolveMarkdownTableMode } from "./markdown-tables-9rJDQ1X-.js";
6
+ import { n as loadWebMedia } from "./media-C7YT4DeU.js";
7
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DWUNvLrc.js";
8
8
  import { n as generateSecureUuid } from "./secure-random-CO1VkMEt.js";
9
9
  import { t as redactIdentifier } from "./redact-identifier-BAD7jXcr.js";
10
10
  import { n as normalizePollInput } from "./polls-B4cMiwMo.js";
11
- import { t as convertMarkdownTables } from "./tables-RBtf8G4P.js";
12
- import { n as requireActiveWebListener } from "./active-listener-D6_pdTMC.js";
13
- import { n as formatError } from "./session-CyRTcJ8N.js";
11
+ import { t as convertMarkdownTables } from "./tables-BD7H5ug-.js";
12
+ import { n as requireActiveWebListener } from "./active-listener-Dx1SEGDn.js";
13
+ import { n as formatError } from "./session-EIStzK0E.js";
14
14
 
15
15
  //#region src/markdown/whatsapp.ts
16
16
  /**
@@ -1,5 +1,5 @@
1
1
  import { p as resolveConfigDir } from "./utils-CYk9EKoq.js";
2
- import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-C6C2c9a4.js";
2
+ import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-Cxw-xLGU.js";
3
3
  import path from "node:path";
4
4
  import { createWriteStream } from "node:fs";
5
5
  import fs$1 from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import { p as resolveConfigDir } from "./utils-LGKVujSU.js";
2
- import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-D7ZkWU-A.js";
2
+ import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-C7YT4DeU.js";
3
3
  import crypto from "node:crypto";
4
4
  import path from "node:path";
5
5
  import fs$1 from "node:fs/promises";