@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,16 +1,16 @@
1
- import { A as clearHistoryEntriesIfEnabled, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, J as createReplyDispatcherWithTyping, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, O as buildPendingHistoryContextFromMap, Sr as warnMissingProviderGroupPolicyFallbackOnce, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, _r as resolveControlCommandGate, b as logInboundDrop, bn as installRequestBodyLimitGuard, br as resolveDefaultGroupPolicy, cr as pruneMapToMaxSize, d as issuePairingChallenge, dt as normalizeAllowList, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, ft as normalizeAllowListLower, gr as resolveCommandAuthorizedFromAuthorizers, ht as resolveSlackUserAllowed, m as resolveMentionGatingWithBypass, mt as resolveSlackAllowListMatch, pt as normalizeSlackSlug, q as dispatchInboundMessage, sr as createDedupeCache, ut as allowListMatches, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure } from "./pi-embedded-runner-DQ6UPx6-.js";
2
- import { K as resolveSessionKey, S as readSessionUpdatedAt, w as updateLastRoute } from "./runtime-Dd0sswuW.js";
1
+ import { A as clearHistoryEntriesIfEnabled, Ct as enqueueSystemEvent, E as DEFAULT_GROUP_HISTORY_LIMIT, F as recordInboundSession, Gt as hasControlCommand, H as createInboundDebouncer, I as removeAckReactionAfterReply, J as createReplyDispatcherWithTyping, Jt as buildMentionRegexes, K as resolveEnvelopeFormatOptions, L as shouldAckReaction, N as recordPendingHistoryEntryIfEnabled, O as buildPendingHistoryContextFromMap, Sr as warnMissingProviderGroupPolicyFallbackOnce, Tt as resolveChannelConfigWrites, U as resolveInboundDebounceMs, W as formatInboundEnvelope, Yt as matchesMentionWithExplicit, _r as resolveControlCommandGate, b as logInboundDrop, bn as installRequestBodyLimitGuard, br as resolveDefaultGroupPolicy, cr as pruneMapToMaxSize, d as issuePairingChallenge, dt as normalizeAllowList, f as createTypingCallbacks, fr as readStoreAllowFromForDmPolicy, ft as normalizeAllowListLower, gr as resolveCommandAuthorizedFromAuthorizers, ht as resolveSlackUserAllowed, m as resolveMentionGatingWithBypass, mt as resolveSlackAllowListMatch, pt as normalizeSlackSlug, q as dispatchInboundMessage, sr as createDedupeCache, ut as allowListMatches, x as logTypingFailure, xr as resolveOpenProviderRuntimeGroupPolicy, y as logAckFailure } from "./pi-embedded-runner-CUVk8CIj.js";
2
+ import { K as resolveSessionKey, S as readSessionUpdatedAt, w as updateLastRoute } from "./runtime-BPyuAmka.js";
3
3
  import { r as createNonExitingRuntime } 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 "./paths-BEmvSyOV.js";
6
6
  import "./utils-CYk9EKoq.js";
7
- import { At as resolveSlackStreamingMode, Dt as mapStreamingModeToSlackLegacyDraftStreamMode, kt as resolveSlackNativeStreaming, n as loadConfig, s as writeConfigFile } from "./config-DXlISPlx.js";
7
+ import { At as resolveSlackStreamingMode, Dt as mapStreamingModeToSlackLegacyDraftStreamMode, kt as resolveSlackNativeStreaming, n as loadConfig, s as writeConfigFile } from "./config-DtqAN2L3.js";
8
8
  import "./agent-scope-kIJqg5PA.js";
9
9
  import { n as resolveConversationLabel } from "./conversation-label-BoVqak2R.js";
10
10
  import { c as normalizeMainKey, p as normalizeAccountId, u as resolveThreadSessionKeys } from "./session-key-HSJ2KQTc.js";
11
11
  import "./accounts-D7_p-Ivb.js";
12
12
  import { i as resolveSlackBotToken, r as resolveSlackAppToken, t as resolveSlackAccount } from "./accounts-DTdM1xcj.js";
13
- import "./accounts-Zgt0NP54.js";
13
+ import "./accounts-RT6y7n3H.js";
14
14
  import "./tokens-CQRTq-NN.js";
15
15
  import { S as resolveChannelEntryMatchWithFallback, v as applyChannelMatchMeta, y as buildChannelKeyCandidates } from "./allow-list-C9N6FKeC.js";
16
16
  import { a as patchAllowlistUsersInConfigEntries, c as formatAllowlistMatchMeta, i as mergeAllowlist, n as buildAllowlistResolutionSummary, o as summarizeMapping, s as isDangerousNameMatchingEnabled, t as addAllowlistUserEntriesFromConfigEntry } from "./resolve-utils-DrvLA82C.js";
@@ -18,45 +18,45 @@ import "./redact-CwCz68Mi.js";
18
18
  import "./github-copilot-token-Dgug856m.js";
19
19
  import "./retry-DycQ4ymF.js";
20
20
  import { l as resolveStorePath } from "./paths-B88DQEK8.js";
21
- import { c as normalizeHostname } from "./ssrf-fG4UHKBw.js";
22
- import "./fetch-guard-COLmW2TM.js";
23
- import "./send-DvUpYh0d.js";
24
- import { V as upsertChannelPairingRequest } from "./wsl-B8eyviuv.js";
25
- import { l as resolveTextChunkLimit } from "./chunk-Cjw4712g.js";
21
+ import { l as normalizeHostname } from "./optional-runtime-dependency-szS49voX.js";
22
+ import "./fetch-guard-DTKgMN9f.js";
23
+ import "./send-DRGzRdI3.js";
24
+ import { V as upsertChannelPairingRequest } from "./wsl-PXrdWitE.js";
25
+ import { l as resolveTextChunkLimit } from "./chunk-M2d7r-Zt.js";
26
26
  import { a as resolveAckReaction, c as resolveHumanDelayConfig, n as createReplyPrefixOptions } from "./reply-prefix-DqlCqHXT.js";
27
- import "./skill-commands-DHxkTA0s.js";
27
+ import "./skill-commands-CkgGmWBS.js";
28
28
  import { t as generateSecureToken } from "./secure-random-DLpYiUzR.js";
29
29
  import "./diagnostic-CuhHqubd.js";
30
30
  import "./diagnostic-session-state-Zw87xFym.js";
31
- import { l as fetchRemoteMedia } from "./media-C6C2c9a4.js";
32
- import "./pi-model-discovery-CkH5l9X5.js";
33
- import "./paths-CBCpJ5bu.js";
31
+ import { l as fetchRemoteMedia } from "./media-Cxw-xLGU.js";
32
+ import "./pi-model-discovery-yifTIDIn.js";
33
+ import "./runtime-dependency-Csswyv5r.js";
34
34
  import "./path-alias-guards-CcQroDXQ.js";
35
35
  import "./fs-safe-BPYS6-j1.js";
36
- import "./markdown-tables-krKiU4cT.js";
37
- import "./send-ifgZCHVB.js";
38
- import { a as saveMediaBuffer } from "./outbound-attachment-BVzfhqnk.js";
36
+ import "./markdown-tables-CCSD52rA.js";
37
+ import "./send-D7tr-EsH.js";
38
+ import { a as saveMediaBuffer } from "./outbound-attachment-C-jSFaEB.js";
39
39
  import "./fetch-D70syO9t.js";
40
- import "./thread-bindings.state-DYWpy7hJ.js";
40
+ import "./thread-bindings.state-CNT2vxm3.js";
41
41
  import "./memory-search-J6AYuENR.js";
42
- import "./manager-BZjd_PCt.js";
42
+ import "./manager-D2kZ0Cps.js";
43
43
  import "./query-expansion-VePrajug.js";
44
- import "./common-CSTxewqY.js";
45
- import { E as resolveNativeSkillsEnabled, T as resolveNativeCommandsEnabled, g as shouldHandleTextCommands } from "./commands-registry-5J619bQ2.js";
44
+ import "./common-Cpw-vuuM.js";
45
+ import { E as resolveNativeSkillsEnabled, T as resolveNativeCommandsEnabled, g as shouldHandleTextCommands } from "./commands-registry-CdT-nl7v.js";
46
46
  import { t as finalizeInboundContext } from "./inbound-context-Daf9i2Me.js";
47
47
  import "./directory-live-BxSH0XXX.js";
48
48
  import "./targets-cA134MEE.js";
49
49
  import "./sandbox-paths-CkTERCrj.js";
50
- import { n as resolveAgentRoute } from "./resolve-route-_YZHbS-z.js";
50
+ import { n as resolveAgentRoute } from "./resolve-route-CNhTJG_2.js";
51
51
  import "./render-C9LkRUhd.js";
52
- import "./tables-CkxblF0u.js";
53
- import { t as sendMessageSlack } from "./send-D2jlPeKH.js";
52
+ import "./tables-CJE8kB35.js";
53
+ import { t as sendMessageSlack } from "./send-DfkPKz_0.js";
54
54
  import { r as resolveSlackWebClientOptions } from "./client-DWTXscox.js";
55
- import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-lB3PCwsz.js";
56
- import { n as buildUntrustedChannelMetadata, t as chunkItems } from "./chunk-items-Df5811D0.js";
55
+ import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-BrU_JMqM.js";
56
+ import { n as buildUntrustedChannelMetadata, t as chunkItems } from "./chunk-items-BGbYyNvO.js";
57
57
  import { t as createDraftStreamLoop } from "./draft-stream-loop-2KC6-8CG.js";
58
58
  import { t as resolveSlackUserAllowlist } from "./resolve-users-sv9og6yh.js";
59
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-jDMUBsNO.js";
59
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-fvzN5wnU.js";
60
60
  import { t as resolveSlackChannelAllowlist } from "./probe-CsFmvxbr.js";
61
61
  import { t as probeSlack } from "./probe-Ba4KG8Vi.js";
62
62
  import SlackBolt from "@slack/bolt";
@@ -2906,7 +2906,7 @@ function readSlackExternalArgMenuToken(raw) {
2906
2906
  }
2907
2907
  let commandsRegistry;
2908
2908
  async function getCommandsRegistry() {
2909
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-5J619bQ2.js").then((n) => n.n);
2909
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CdT-nl7v.js").then((n) => n.n);
2910
2910
  return commandsRegistry;
2911
2911
  }
2912
2912
  function encodeSlackCommandArgValue(parts) {
@@ -3230,14 +3230,14 @@ async function registerSlackMonitorSlashCommands(params) {
3230
3230
  const channelName = channelInfo?.name;
3231
3231
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
3232
3232
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
3233
- import("./resolve-route-_YZHbS-z.js").then((n) => n.r),
3233
+ import("./resolve-route-CNhTJG_2.js").then((n) => n.r),
3234
3234
  import("./inbound-context-Daf9i2Me.js").then((n) => n.n),
3235
- import("./pi-embedded-runner-DQ6UPx6-.js").then((n) => n.V)
3235
+ import("./pi-embedded-runner-CUVk8CIj.js").then((n) => n.V)
3236
3236
  ]);
3237
3237
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordSessionMetaFromInbound, resolveStorePath }] = await Promise.all([
3238
3238
  import("./conversation-label-BoVqak2R.js").then((n) => n.t),
3239
3239
  import("./reply-prefix-DqlCqHXT.js").then((n) => n.r),
3240
- import("./runtime-Dd0sswuW.js").then((n) => n.m)
3240
+ import("./runtime-BPyuAmka.js").then((n) => n.m)
3241
3241
  ]);
3242
3242
  const route = resolveAgentRoute({
3243
3243
  cfg,
@@ -3305,9 +3305,9 @@ async function registerSlackMonitorSlashCommands(params) {
3305
3305
  });
3306
3306
  const deliverSlashPayloads = async (replies) => {
3307
3307
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
3308
- import("./replies-jDMUBsNO.js").then((n) => n.r),
3309
- import("./chunk-Cjw4712g.js").then((n) => n.s),
3310
- import("./markdown-tables-krKiU4cT.js").then((n) => n.t)
3308
+ import("./replies-fvzN5wnU.js").then((n) => n.r),
3309
+ import("./chunk-M2d7r-Zt.js").then((n) => n.s),
3310
+ import("./markdown-tables-CCSD52rA.js").then((n) => n.t)
3311
3311
  ]);
3312
3312
  await deliverSlackSlashReplies({
3313
3313
  replies,
@@ -3360,7 +3360,7 @@ async function registerSlackMonitorSlashCommands(params) {
3360
3360
  let nativeCommands = [];
3361
3361
  if (nativeEnabled) {
3362
3362
  reg = await getCommandsRegistry();
3363
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DHxkTA0s.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
3363
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CkgGmWBS.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
3364
3364
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
3365
3365
  skillCommands,
3366
3366
  provider: "slack"
@@ -1,4 +1,4 @@
1
- import { lt as resolveSlackNativeStreaming, n as loadConfig, s as writeConfigFile, st as mapStreamingModeToSlackLegacyDraftStreamMode, ut as resolveSlackStreamingMode } from "./config-TFokWwvO.js";
1
+ import { lt as resolveSlackNativeStreaming, n as loadConfig, s as writeConfigFile, st as mapStreamingModeToSlackLegacyDraftStreamMode, ut as resolveSlackStreamingMode } from "./config-CgwTaper.js";
2
2
  import "./paths-GdhK5mV_.js";
3
3
  import { i as logVerbose, l as warn, p as getChildLogger, s as shouldLogVerbose, t as danger } from "./globals-BtKmaIS3.js";
4
4
  import "./utils-LGKVujSU.js";
@@ -8,54 +8,54 @@ import "./redact-Ck-wgswc.js";
8
8
  import { c as normalizeMainKey, 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 { S as updateLastRoute, W as resolveSessionKey, b as readSessionUpdatedAt } from "./registry-B4HvWzob.js";
11
+ import { S as updateLastRoute, W as resolveSessionKey, b as readSessionUpdatedAt } from "./registry-DNkJsNsz.js";
12
12
  import { n as resolveConversationLabel } from "./conversation-label-CDH4rKMG.js";
13
13
  import "./accounts-BJFheJNv.js";
14
14
  import { i as resolveSlackBotToken, r as resolveSlackAppToken, t as resolveSlackAccount } from "./accounts-BRbbLNW_.js";
15
- import "./accounts-VqAX3HJ0.js";
15
+ import "./accounts-BwkH5bTD.js";
16
16
  import "./tokens-BK5rrwBB.js";
17
17
  import { v as applyChannelMatchMeta, x as resolveChannelEntryMatchWithFallback, y as buildChannelKeyCandidates } from "./allow-list-CBtbuDI8.js";
18
- import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, i as mergeAllowlist, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-zBhVX3Vx.js";
18
+ import { a as patchAllowlistUsersInConfigEntries, c as buildUntrustedChannelMetadata, i as mergeAllowlist, l as isDangerousNameMatchingEnabled, n as buildAllowlistResolutionSummary, o as summarizeMapping, s as chunkItems, t as addAllowlistUserEntriesFromConfigEntry, u as formatAllowlistMatchMeta } from "./resolve-utils-EFP1DYqG.js";
19
19
  import { l as resolveStorePath } from "./paths-DTurNPnO.js";
20
- import { Bt as normalizeSlackSlug, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Ht as resolveSlackUserAllowed, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, L as removeAckReactionAfterReply, Lt as allowListMatches, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, R as shouldAckReaction, Rt as normalizeAllowList, U as createInboundDebouncer, Vt as resolveSlackAllowListMatch, W as resolveInboundDebounceMs, X as pruneMapToMaxSize, Xt as enqueueSystemEvent, Y as createDedupeCache, b as logInboundDrop, cn as installRequestBodyLimitGuard, d as issuePairingChallenge, f as createTypingCallbacks, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, k as DEFAULT_GROUP_HISTORY_LIMIT, m as resolveMentionGatingWithBypass, q as dispatchInboundMessage, st as resolveChannelConfigWrites, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure, zt as normalizeAllowListLower } from "./status-DoxnzyMC.js";
21
- import "./paths-DW-U2r7Y.js";
22
- import { o as normalizeHostname } from "./ssrf-u0Ul7okY.js";
23
- import "./skill-commands-CLXAG5sU.js";
24
- import "./pi-model-discovery-D51L5E9I.js";
20
+ import { Bt as normalizeSlackSlug, D as resolveOpenProviderRuntimeGroupPolicy, Dt as buildMentionRegexes, E as resolveDefaultGroupPolicy, F as resolveCommandAuthorizedFromAuthorizers, G as formatInboundEnvelope, Ht as resolveSlackUserAllowed, I as resolveControlCommandGate, J as createReplyDispatcherWithTyping, K as resolveEnvelopeFormatOptions, L as removeAckReactionAfterReply, Lt as allowListMatches, M as clearHistoryEntriesIfEnabled, N as recordPendingHistoryEntryIfEnabled, O as warnMissingProviderGroupPolicyFallbackOnce, Ot as matchesMentionWithExplicit, P as recordInboundSession, R as shouldAckReaction, Rt as normalizeAllowList, U as createInboundDebouncer, Vt as resolveSlackAllowListMatch, W as resolveInboundDebounceMs, X as pruneMapToMaxSize, Xt as enqueueSystemEvent, Y as createDedupeCache, b as logInboundDrop, cn as installRequestBodyLimitGuard, d as issuePairingChallenge, f as createTypingCallbacks, g as readStoreAllowFromForDmPolicy, j as buildPendingHistoryContextFromMap, k as DEFAULT_GROUP_HISTORY_LIMIT, m as resolveMentionGatingWithBypass, q as dispatchInboundMessage, st as resolveChannelConfigWrites, wt as hasControlCommand, x as logTypingFailure, y as logAckFailure, zt as normalizeAllowListLower } from "./status-CIiBeb9B.js";
21
+ import "./runtime-dependency-B-1u41Ph.js";
22
+ import { o as normalizeHostname } from "./ssrf-Cce6LubA.js";
23
+ import "./skill-commands-hyZA0LE3.js";
24
+ import "./pi-model-discovery-DadlvsZW.js";
25
25
  import { i as resolveAckReaction, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-Y14LY6Rn.js";
26
- import { l as fetchRemoteMedia } from "./media-D7ZkWU-A.js";
26
+ import { l as fetchRemoteMedia } from "./media-C7YT4DeU.js";
27
27
  import "./path-alias-guards-C76pC928.js";
28
28
  import "./fs-safe-BDnJzutp.js";
29
29
  import "./diagnostic-DpyvOvs2.js";
30
- import { l as resolveTextChunkLimit } from "./chunk-skAJZWCT.js";
31
- import "./markdown-tables-9rJDQ1X-.js";
32
- import "./send-DaaAscWj.js";
33
- import "./fetch-guard-DPMynms8.js";
34
- import { i as saveMediaBuffer } from "./outbound-attachment-ClMvNW17.js";
30
+ import { l as resolveTextChunkLimit } from "./chunk-KCxbJLsV.js";
31
+ import "./markdown-tables-DWUNvLrc.js";
32
+ import "./send-BBYcgXA4.js";
33
+ import "./fetch-guard-BLdujDnt.js";
34
+ import { i as saveMediaBuffer } from "./outbound-attachment-D6tj5Y5H.js";
35
35
  import "./fetch-xfeOsibm.js";
36
36
  import { t as generateSecureToken } from "./secure-random-CO1VkMEt.js";
37
- import "./common-BiF0sTnY.js";
38
- import { b as resolveNativeSkillsEnabled, h as shouldHandleTextCommands, y as resolveNativeCommandsEnabled } from "./commands-registry-CoLAT03J.js";
39
- import "./thread-bindings.state-DG5cBaRn.js";
37
+ import "./common-DJWrErdE.js";
38
+ import { b as resolveNativeSkillsEnabled, h as shouldHandleTextCommands, y as resolveNativeCommandsEnabled } from "./commands-registry-DoWdYAJd.js";
39
+ import "./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 } from "./wsl-B2euLEc2.js";
44
+ import { F as upsertChannelPairingRequest } 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 } from "./resolve-route-DlHzggnG.js";
48
+ import "./send-D3836_UN.js";
49
+ import { n as resolveAgentRoute } from "./resolve-route-DO0WR4nB.js";
50
50
  import { t as finalizeInboundContext } from "./inbound-context-CeJDjLk-.js";
51
51
  import "./render-C9LkRUhd.js";
52
- import "./tables-RBtf8G4P.js";
53
- import { t as sendMessageSlack } from "./send-QSt6nbny.js";
52
+ import "./tables-BD7H5ug-.js";
53
+ import { t as sendMessageSlack } from "./send-DsxFXrCO.js";
54
54
  import { r as resolveSlackWebClientOptions } from "./client-Dn_01zRN.js";
55
- import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-BI5QViLk.js";
55
+ import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-CUdVHzeJ.js";
56
56
  import { t as createDraftStreamLoop } from "./draft-stream-loop-B3uUPmuU.js";
57
57
  import { t as resolveSlackUserAllowlist } from "./resolve-users-Ct0fO5kP.js";
58
- import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-B_LW9c9f.js";
58
+ import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-zebgZCHX.js";
59
59
  import { t as resolveSlackChannelAllowlist } from "./probe-1paqsAk5.js";
60
60
  import { t as probeSlack } from "./probe-DrTulmwQ.js";
61
61
  import SlackBolt from "@slack/bolt";
@@ -2905,7 +2905,7 @@ function readSlackExternalArgMenuToken(raw) {
2905
2905
  }
2906
2906
  let commandsRegistry;
2907
2907
  async function getCommandsRegistry() {
2908
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CoLAT03J.js").then((n) => n.n);
2908
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-DoWdYAJd.js").then((n) => n.n);
2909
2909
  return commandsRegistry;
2910
2910
  }
2911
2911
  function encodeSlackCommandArgValue(parts) {
@@ -3229,14 +3229,14 @@ async function registerSlackMonitorSlashCommands(params) {
3229
3229
  const channelName = channelInfo?.name;
3230
3230
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
3231
3231
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
3232
- import("./resolve-route-DlHzggnG.js").then((n) => n.r),
3232
+ import("./resolve-route-DO0WR4nB.js").then((n) => n.r),
3233
3233
  import("./inbound-context-CeJDjLk-.js").then((n) => n.n),
3234
- import("./status-DoxnzyMC.js").then((n) => n.H)
3234
+ import("./status-CIiBeb9B.js").then((n) => n.H)
3235
3235
  ]);
3236
3236
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordSessionMetaFromInbound, resolveStorePath }] = await Promise.all([
3237
3237
  import("./conversation-label-CDH4rKMG.js").then((n) => n.t),
3238
3238
  import("./reply-prefix-Y14LY6Rn.js").then((n) => n.n),
3239
- import("./registry-B4HvWzob.js").then((n) => n.f)
3239
+ import("./registry-DNkJsNsz.js").then((n) => n.f)
3240
3240
  ]);
3241
3241
  const route = resolveAgentRoute({
3242
3242
  cfg,
@@ -3304,9 +3304,9 @@ async function registerSlackMonitorSlashCommands(params) {
3304
3304
  });
3305
3305
  const deliverSlashPayloads = async (replies) => {
3306
3306
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
3307
- import("./replies-B_LW9c9f.js").then((n) => n.r),
3308
- import("./chunk-skAJZWCT.js").then((n) => n.s),
3309
- import("./markdown-tables-9rJDQ1X-.js").then((n) => n.t)
3307
+ import("./replies-zebgZCHX.js").then((n) => n.r),
3308
+ import("./chunk-KCxbJLsV.js").then((n) => n.s),
3309
+ import("./markdown-tables-DWUNvLrc.js").then((n) => n.t)
3310
3310
  ]);
3311
3311
  await deliverSlackSlashReplies({
3312
3312
  replies,
@@ -3359,7 +3359,7 @@ async function registerSlackMonitorSlashCommands(params) {
3359
3359
  let nativeCommands = [];
3360
3360
  if (nativeEnabled) {
3361
3361
  reg = await getCommandsRegistry();
3362
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CLXAG5sU.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
3362
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-hyZA0LE3.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
3363
3363
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
3364
3364
  skillCommands,
3365
3365
  provider: "slack"
@@ -1,31 +1,31 @@
1
- import "./runtime-Dd0sswuW.js";
1
+ import "./runtime-BPyuAmka.js";
2
2
  import "./subsystem-DBPNbQDQ.js";
3
3
  import "./globals-B_jjtAje.js";
4
4
  import "./paths-BEmvSyOV.js";
5
5
  import "./utils-CYk9EKoq.js";
6
- import "./config-DXlISPlx.js";
6
+ import "./config-DtqAN2L3.js";
7
7
  import "./agent-scope-kIJqg5PA.js";
8
8
  import "./accounts-D7_p-Ivb.js";
9
9
  import { t as resolveSlackAccount } from "./accounts-DTdM1xcj.js";
10
- import "./accounts-Zgt0NP54.js";
10
+ import "./accounts-RT6y7n3H.js";
11
11
  import { a as parseSlackTarget, o as resolveSlackChannelId } from "./tokens-CQRTq-NN.js";
12
12
  import "./redact-CwCz68Mi.js";
13
13
  import "./github-copilot-token-Dgug856m.js";
14
14
  import "./retry-DycQ4ymF.js";
15
15
  import "./paths-B88DQEK8.js";
16
- import "./ssrf-fG4UHKBw.js";
17
- import "./fetch-guard-COLmW2TM.js";
18
- import "./chunk-Cjw4712g.js";
19
- import "./media-C6C2c9a4.js";
16
+ import "./optional-runtime-dependency-szS49voX.js";
17
+ import "./fetch-guard-DTKgMN9f.js";
18
+ import "./chunk-M2d7r-Zt.js";
19
+ import "./media-Cxw-xLGU.js";
20
20
  import "./path-alias-guards-CcQroDXQ.js";
21
21
  import "./fs-safe-BPYS6-j1.js";
22
- import "./markdown-tables-krKiU4cT.js";
23
- import { a as jsonResult, c as readReactionParams, d as readStringParam, n as createActionGate, s as readNumberParam } from "./common-CSTxewqY.js";
22
+ import "./markdown-tables-CCSD52rA.js";
23
+ import { a as jsonResult, c as readReactionParams, d as readStringParam, n as createActionGate, s as readNumberParam } from "./common-Cpw-vuuM.js";
24
24
  import { i as withNormalizedTimestamp } from "./date-time-Bo5FVB7G.js";
25
25
  import "./render-C9LkRUhd.js";
26
- import { i as parseSlackBlocksInput } from "./send-D2jlPeKH.js";
26
+ import { i as parseSlackBlocksInput } from "./send-DfkPKz_0.js";
27
27
  import "./client-DWTXscox.js";
28
- import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-lB3PCwsz.js";
28
+ import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-BrU_JMqM.js";
29
29
 
30
30
  //#region src/agents/tools/slack-actions.ts
31
31
  const messagingActions = new Set([
@@ -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,25 +7,25 @@ import "./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 { t as resolveSlackAccount } from "./accounts-BRbbLNW_.js";
13
- import "./accounts-VqAX3HJ0.js";
13
+ import "./accounts-BwkH5bTD.js";
14
14
  import { a as parseSlackTarget, o as resolveSlackChannelId } from "./tokens-BK5rrwBB.js";
15
15
  import "./paths-DTurNPnO.js";
16
- import "./ssrf-u0Ul7okY.js";
17
- import "./media-D7ZkWU-A.js";
16
+ import "./ssrf-Cce6LubA.js";
17
+ import "./media-C7YT4DeU.js";
18
18
  import "./path-alias-guards-C76pC928.js";
19
19
  import "./fs-safe-BDnJzutp.js";
20
- import "./chunk-skAJZWCT.js";
21
- import "./markdown-tables-9rJDQ1X-.js";
22
- import "./fetch-guard-DPMynms8.js";
23
- import { a as jsonResult, c as readReactionParams, d as readStringParam, n as createActionGate, s as readNumberParam } from "./common-BiF0sTnY.js";
20
+ import "./chunk-KCxbJLsV.js";
21
+ import "./markdown-tables-DWUNvLrc.js";
22
+ import "./fetch-guard-BLdujDnt.js";
23
+ import { a as jsonResult, c as readReactionParams, d as readStringParam, n as createActionGate, s as readNumberParam } from "./common-DJWrErdE.js";
24
24
  import { i as withNormalizedTimestamp } from "./date-time-BtRPVcm7.js";
25
25
  import "./render-C9LkRUhd.js";
26
- import { i as parseSlackBlocksInput } from "./send-QSt6nbny.js";
26
+ import { i as parseSlackBlocksInput } from "./send-DsxFXrCO.js";
27
27
  import "./client-Dn_01zRN.js";
28
- import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-BI5QViLk.js";
28
+ import { a as listSlackPins, c as reactSlackMessage, d as removeSlackReaction, f as sendSlackMessage, i as listSlackEmojis, l as readSlackMessages, n as editSlackMessage, o as listSlackReactions, p as unpinSlackMessage, r as getSlackMemberInfo, s as pinSlackMessage, t as deleteSlackMessage, u as removeOwnSlackReactions } from "./actions-CUdVHzeJ.js";
29
29
 
30
30
  //#region src/agents/tools/slack-actions.ts
31
31
  const messagingActions = new Set([
@@ -1,4 +1,5 @@
1
1
  import { C as resolveRequiredHomeDir, S as expandHomePrefix, _ as isRecord, a as resolveImplicitCopilotProvider, b as createSubsystemLogger, c as resolveFasedAgentDir, d as resolveDefaultAgentId, f as isTruthyEnvValue, g as formatTerminalLink, h as normalizeAccountId, i as normalizeProviders, l as resolveProcessScopedMap, m as DEFAULT_ACCOUNT_ID, n as SlackConfigSchema, o as resolveImplicitProviders, p as normalizeAgentId, t as loadConfig, u as formatCliCommand, v as normalizeE164, w as normalizeChatChannelId, x as resolveOAuthDir, y as resolveUserPath } from "./config-z0k05dwe.js";
2
+ import { createRequire } from "node:module";
2
3
  import path from "node:path";
3
4
  import fs from "node:fs";
4
5
  import os from "node:os";
@@ -6,7 +7,6 @@ import util from "node:util";
6
7
  import fs$1 from "node:fs/promises";
7
8
  import crypto from "node:crypto";
8
9
  import "@mariozechner/pi-coding-agent";
9
- import "file-type";
10
10
 
11
11
  //#region src/plugins/config-schema.ts
12
12
  function error(message) {
@@ -102,6 +102,7 @@ const METHOD_SCOPE_GROUPS = {
102
102
  "commands.list",
103
103
  "tools.catalog",
104
104
  "tools.effective",
105
+ "services.capabilities",
105
106
  "services.webSearch.providers",
106
107
  "services.webSearch.test",
107
108
  "tasks.list",
@@ -1,6 +1,6 @@
1
1
  export declare const FASED_BRAND_NAME = "Fased";
2
2
  export declare const FASED_AGENT_NAME = "Fased Agent";
3
3
  export declare const FASED_CONTROL_NAME = "Fased Control";
4
- export declare const FASED_PRODUCT_VERSION = "0.1.36";
5
- export declare const FASED_DISPLAY_VERSION = "v0.1.36";
4
+ export declare const FASED_PRODUCT_VERSION = "0.1.37";
5
+ export declare const FASED_DISPLAY_VERSION = "v0.1.37";
6
6
  export declare function formatFasedDisplayLine(): string;
@@ -0,0 +1,3 @@
1
+ export declare function loadPlaywrightCore(): Promise<typeof import("playwright-core")>;
2
+ export declare function loadReadability(): Promise<typeof import("@mozilla/readability")>;
3
+ export declare function loadLinkedom(): Promise<typeof import("linkedom")>;
@@ -0,0 +1,6 @@
1
+ export declare function importOptionalRuntimeDependency<T>(params: {
2
+ componentId: string;
3
+ packageName: string;
4
+ dependency: string;
5
+ }): Promise<T>;
6
+ export declare function resetOptionalRuntimeDependencyCacheForTest(): void;
@@ -1,7 +1,11 @@
1
+ import { Gn as resolvePluginInstallDir } from "./config-CgwTaper.js";
2
+ import { createRequire } from "node:module";
3
+ import path from "node:path";
4
+ import { pathToFileURL } from "node:url";
5
+ import ipaddr from "ipaddr.js";
1
6
  import { Agent } from "undici";
2
7
  import { lookup } from "node:dns";
3
8
  import { lookup as lookup$1 } from "node:dns/promises";
4
- 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([
@@ -180,6 +184,41 @@ function isIpInCidr(ip, cidr) {
180
184
  }
181
185
  }
182
186
 
187
+ //#endregion
188
+ //#region src/infra/optional-runtime-dependency.ts
189
+ const imports = /* @__PURE__ */ new Map();
190
+ function missingRuntimeMessage(params) {
191
+ const detail = params.cause instanceof Error ? params.cause.message : String(params.cause);
192
+ 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 });
193
+ }
194
+ async function importFromInstalledComponent(params) {
195
+ try {
196
+ return await import(params.dependency);
197
+ } catch (coreError) {
198
+ try {
199
+ const componentRoot = resolvePluginInstallDir(params.componentId);
200
+ return await import(pathToFileURL(createRequire(path.join(componentRoot, "package.json")).resolve(params.dependency)).href);
201
+ } catch (componentError) {
202
+ throw missingRuntimeMessage({
203
+ ...params,
204
+ cause: componentError ?? coreError
205
+ });
206
+ }
207
+ }
208
+ }
209
+ async function importOptionalRuntimeDependency(params) {
210
+ const key = `${params.componentId}:${params.dependency}`;
211
+ let pending = imports.get(key);
212
+ if (!pending) {
213
+ pending = importFromInstalledComponent(params).catch((error) => {
214
+ imports.delete(key);
215
+ throw error;
216
+ });
217
+ imports.set(key, pending);
218
+ }
219
+ return await pending;
220
+ }
221
+
183
222
  //#endregion
184
223
  //#region src/infra/net/hostname.ts
185
224
  function normalizeHostname(hostname) {
@@ -252,11 +291,6 @@ function isPrivateIpAddress(address, policy) {
252
291
  if (looksLikeUnsupportedIpv4Literal(normalized)) return true;
253
292
  return false;
254
293
  }
255
- function isBlockedHostname(hostname) {
256
- const normalized = normalizeHostname(hostname);
257
- if (!normalized) return false;
258
- return isBlockedHostnameNormalized(normalized);
259
- }
260
294
  function isBlockedHostnameNormalized(normalized) {
261
295
  if (BLOCKED_HOSTNAMES.has(normalized)) return true;
262
296
  return normalized.endsWith(".localhost") || normalized.endsWith(".local") || normalized.endsWith(".internal");
@@ -384,4 +418,4 @@ async function closeDispatcher(dispatcher) {
384
418
  }
385
419
 
386
420
  //#endregion
387
- export { isBlockedHostnameOrIp as a, normalizeHostname as c, normalizeIpAddress as d, isBlockedHostname as i, isIpInCidr as l, closeDispatcher as n, isPrivateIpAddress as o, createPinnedDispatcher as r, resolvePinnedHostnameWithPolicy as s, SsrFBlockedError as t, isLoopbackIpAddress as u };
421
+ export { resolvePinnedHostnameWithPolicy as a, isIpInCidr as c, isBlockedHostnameOrIp as i, isLoopbackIpAddress as l, closeDispatcher as n, normalizeHostname as o, createPinnedDispatcher as r, importOptionalRuntimeDependency as s, SsrFBlockedError as t, normalizeIpAddress as u };