@fased/fased 0.1.66 → 0.1.68

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 (175) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +4 -0
  3. package/config/signer-protocol-v2.json +4 -0
  4. package/dist/brand.js +1 -1
  5. package/dist/build-info.json +3 -3
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/cli/program/register.wallet.js +33 -2
  8. package/dist/commands/onboard.js +0 -8
  9. package/dist/commands/wallet.js +485 -58
  10. package/dist/control-ui/assets/{app-DYxADzeH.js → app-DyPTS0oM.js} +1526 -1526
  11. package/dist/control-ui/assets/{index-vw_10Zeo.js → index-Cu13yYHr.js} +3 -3
  12. package/dist/control-ui/assets/{wallet-DvStR_AT.js → wallet-ByKBcYhm.js} +272 -188
  13. package/dist/control-ui/index.html +1 -1
  14. package/dist/control-ui/version.json +1 -1
  15. package/dist/gateway/server-http.js +349 -47
  16. package/dist/infra/runtime-guard.js +16 -0
  17. package/dist/plugin-sdk/{actions-DRu135h0.js → actions-B-Vwj64K.js} +3 -3
  18. package/dist/plugin-sdk/{allow-list-DyAxs4yw.js → allow-list-Bf45HfoP.js} +1 -1
  19. package/dist/plugin-sdk/{audio-preflight-BFLoas5R.js → audio-preflight-_FVQjR1r.js} +26 -25
  20. package/dist/plugin-sdk/{audit-C5d2z5U1.js → audit-CUULWG22.js} +1 -1
  21. package/dist/plugin-sdk/{channel-access-configure-DaI5wevh.js → channel-access-configure-BoUsC-Ys.js} +1 -1
  22. package/dist/plugin-sdk/{channel-adapters.discord-BS4S4Svh.js → channel-adapters.discord-DSiR4X2Y.js} +1 -1
  23. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  24. package/dist/plugin-sdk/channel-plugin-common.js +1 -1
  25. package/dist/plugin-sdk/{chunk-CyoyqpbG.js → chunk-CBpl-AiQ.js} +1 -1
  26. package/dist/plugin-sdk/{chunk-items-TErs62MC.js → chunk-items-LH4uKSnh.js} +1 -1
  27. package/dist/plugin-sdk/command-status.js +26 -25
  28. package/dist/plugin-sdk/{commands-registry-BfqdEWdF.js → commands-registry-G5KXSi_y.js} +1 -1
  29. package/dist/plugin-sdk/{config-schema-BPnaDBwZ.js → config-schema-DjU_uD-6.js} +192 -94
  30. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  31. package/dist/plugin-sdk/{diagnostic-DLL_zekv.js → diagnostic-sYs6Agr-.js} +1 -1
  32. package/dist/plugin-sdk/{directory-live-CSuYxdwk.js → directory-live-BXMpuYAF.js} +1 -1
  33. package/dist/plugin-sdk/{directory-live-Dw7ZgC9_.js → directory-live-Rn1BzPof.js} +1 -1
  34. package/dist/plugin-sdk/discord.d.ts +4 -4
  35. package/dist/plugin-sdk/discord.js +20 -20
  36. package/dist/plugin-sdk/{draft-stream-controls-BqchW1vi.js → draft-stream-controls-CMNdKSx-.js} +1 -1
  37. package/dist/plugin-sdk/{guilds-CDhRIX57.js → guilds-Dkwl0yHv.js} +1 -1
  38. package/dist/plugin-sdk/{handle-action-hvwapMKg.js → handle-action-CRdM6B-8.js} +15 -15
  39. package/dist/plugin-sdk/index.d.ts +16 -16
  40. package/dist/plugin-sdk/index.js +28 -27
  41. package/dist/plugin-sdk/{login-Ca583Okc.js → login-D7WnK8-P.js} +1 -1
  42. package/dist/plugin-sdk/{login-qr-CGciBSNP.js → login-qr-CRueOKZK.js} +2 -114
  43. package/dist/plugin-sdk/{markdown-tables-DCOXEUfZ.js → markdown-tables-d7GlUs5R.js} +1 -1
  44. package/dist/plugin-sdk/{media-CAdQF5TG.js → media-BAoaxCrt.js} +1 -1
  45. package/dist/plugin-sdk/{monitor-FuBPk-AL.js → monitor-DUMMbG4h.js} +34 -33
  46. package/dist/plugin-sdk/{monitor-sW6dQdX1.js → monitor-DXIM16Hj.js} +44 -43
  47. package/dist/plugin-sdk/{openresponses-http-CVZq0H-P.js → openresponses-http-C8lKwta1.js} +26 -25
  48. package/dist/plugin-sdk/{outbound-attachment-QqTnIhZL.js → outbound-attachment-CyXM3cAv.js} +1 -1
  49. package/dist/plugin-sdk/{outbound-BgVDdHxx.js → outbound-zB6llMGW.js} +6 -6
  50. package/dist/plugin-sdk/{pairing-message-L6L6L2YF.d.ts → pairing-message-mKO92L-M.d.ts} +1 -1
  51. package/dist/plugin-sdk/{pairing-store-BChahgI2.js → pairing-store-B6J2C0vP.js} +1 -1
  52. package/dist/plugin-sdk/{pi-model-discovery-runtime-DxTMz_XF.js → pi-model-discovery-runtime-6JzLw9Gk.js} +1 -1
  53. package/dist/plugin-sdk/{probe-CJb5uR8B.js → probe-BM7Oe40M.js} +2 -2
  54. package/dist/plugin-sdk/{probe-l_whvGLY.js → probe-CMPksimh.js} +1 -1
  55. package/dist/plugin-sdk/{probe-BFroeK3g.js → probe-oVp12D6L.js} +1 -1
  56. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
  57. package/dist/plugin-sdk/{pw-ai-natjh3rm.js → pw-ai-DJ_gTc4M.js} +1 -1
  58. package/dist/plugin-sdk/qr-image-B4MlMG4N.js +115 -0
  59. package/dist/plugin-sdk/{replies-ChYo5ZQM.js → replies-CY-V0Zob.js} +3 -3
  60. package/dist/plugin-sdk/{resolve-channels-87LZrFk_.js → resolve-channels-1HtDcMqh.js} +2 -2
  61. package/dist/plugin-sdk/{resolve-channels-_-nV-EK2.js → resolve-channels-CU72Qh2j.js} +1 -1
  62. package/dist/plugin-sdk/{resolve-outbound-target-D-KGgHJZ.js → resolve-outbound-target-nQSBVYz9.js} +2 -2
  63. package/dist/plugin-sdk/{resolve-route-C8tvQm8Z.js → resolve-route-Dufnu2cT.js} +1 -1
  64. package/dist/plugin-sdk/{resolve-users-DN9VQBwv.js → resolve-users-Bk_ss2vC.js} +1 -1
  65. package/dist/plugin-sdk/{resolve-users-V6dHh_2B.js → resolve-users-IevCOk4W.js} +2 -2
  66. package/dist/plugin-sdk/{runtime-2B9_WKoI.js → runtime-CXSQwMaR.js} +1 -1
  67. package/dist/plugin-sdk/{runtime-dependency-DczkvPxn.js → runtime-dependency-nup8niQL.js} +9 -9
  68. package/dist/plugin-sdk/sat-runtime.d.ts +18 -2
  69. package/dist/plugin-sdk/sat-runtime.js +26 -25
  70. package/dist/plugin-sdk/{send-DCO441U7.js → send-BXBS_mRK.js} +8 -8
  71. package/dist/plugin-sdk/{send-CFzGKJXo.js → send-D-HfKQZm.js} +4 -4
  72. package/dist/plugin-sdk/{send-B6KkGKZD.js → send-D1j12ZgX.js} +5 -5
  73. package/dist/plugin-sdk/{send-q9HXrSwK.js → send-DWKm6yay.js} +10 -10
  74. package/dist/plugin-sdk/{send-gDoGA-7e.js → send-Di1Jit3L.js} +7 -7
  75. package/dist/plugin-sdk/{skill-commands-FKEPLS7T.js → skill-commands-iJtvpqgb.js} +2 -2
  76. package/dist/plugin-sdk/{slack-BZISDxDd.js → slack-B-nOOLM0.js} +45 -44
  77. package/dist/plugin-sdk/{slack-actions-DhbMcp8M.js → slack-actions-BzUEszJa.js} +10 -10
  78. package/dist/plugin-sdk/slack.d.ts +4 -4
  79. package/dist/plugin-sdk/slack.js +6 -6
  80. package/dist/plugin-sdk/{sticker-cache-B0aPv6Lg.js → sticker-cache-BLiId8Em.js} +2 -2
  81. package/dist/plugin-sdk/{tables-B3jr0Pvq.js → tables-_1W36GII.js} +2 -2
  82. package/dist/plugin-sdk/{targets-CtSbTxYX.js → targets-DDbNnLnB.js} +2 -2
  83. package/dist/plugin-sdk/{telegram-actions-H3gePEn6.js → telegram-actions-1X9A32Dn.js} +30 -29
  84. package/dist/plugin-sdk/telegram.d.ts +4 -4
  85. package/dist/plugin-sdk/telegram.js +3 -3
  86. package/dist/plugin-sdk/{thread-bindings.lifecycle-QbkNl-m6.js → thread-bindings.lifecycle-Y9T3CQGf.js} +3 -3
  87. package/dist/plugin-sdk/{thread-bindings.state-D9hg_M1c.js → thread-bindings.state-D2oOWDpv.js} +1 -1
  88. package/dist/plugin-sdk/{tmp-fased-dir-d1CmFAnJ.d.ts → tmp-fased-dir-BkpWlGUe.d.ts} +7 -1
  89. package/dist/plugin-sdk/{types-DUjYaWB2.d.ts → types-B-zL9gSv.d.ts} +1 -1
  90. package/dist/plugin-sdk/{types-xWjHXl1z.d.ts → types-DtCOO_hW.d.ts} +1 -1
  91. package/dist/plugin-sdk/{web-JwP9PAZR.js → web-BvjNyYBz.js} +33 -32
  92. package/dist/plugin-sdk/{whatsapp-actions-Bj_rOncr.js → whatsapp-actions-Blu9-eX-.js} +9 -9
  93. package/dist/plugin-sdk/{whatsapp-heartbeat-B1WHkJIg.js → whatsapp-heartbeat-DjmQM7hq.js} +2 -2
  94. package/dist/plugin-sdk/whatsapp.d.ts +9 -9
  95. package/dist/plugin-sdk/whatsapp.js +7 -7
  96. package/dist/plugin-sdk/{wsl-J-HscWxS.js → wsl-CTvIWvZz.js} +1 -1
  97. package/dist/plugin-sdk/{zod-schema.providers-core-CIzCjXH9.d.ts → zod-schema.providers-core-BCDlgtls.d.ts} +63 -63
  98. package/dist/wallet/local-socket-signer-lifecycle.js +29 -1
  99. package/dist/wallet/local-socket-signer-protocol.js +27 -0
  100. package/dist/wallet/providers/local-socket-signer-adapter.js +8 -0
  101. package/dist/wallet/signer-network-admin.js +11 -118
  102. package/dist/wallet/signer-protocol-v2.generated.js +4 -0
  103. package/dist/wallet/solana-assets.js +9 -3
  104. package/dist/wallet/solana-rpc-read-fetch.js +65 -0
  105. package/dist/wallet/wallet-status.js +7 -0
  106. package/dist/web/login-qr.js +1 -1
  107. package/dist/wizard/onboarding.js +61 -61
  108. package/extensions/acpx/package.json +1 -1
  109. package/extensions/bluebubbles/package.json +1 -1
  110. package/extensions/copilot-proxy/package.json +1 -1
  111. package/extensions/diagnostics-otel/package.json +1 -1
  112. package/extensions/fased-federation/package.json +1 -1
  113. package/extensions/google-gemini-cli-auth/package.json +1 -1
  114. package/extensions/imessage/package.json +1 -1
  115. package/extensions/irc/package.json +1 -1
  116. package/extensions/line/package.json +1 -1
  117. package/extensions/llm-task/package.json +1 -1
  118. package/extensions/lobster/package.json +1 -1
  119. package/extensions/matrix/CHANGELOG.md +12 -0
  120. package/extensions/matrix/package.json +1 -1
  121. package/extensions/mattermost/package.json +1 -1
  122. package/extensions/memory-core/package.json +2 -2
  123. package/extensions/memory-lancedb/package.json +1 -1
  124. package/extensions/minimax-portal-auth/package.json +1 -1
  125. package/extensions/msteams/CHANGELOG.md +12 -0
  126. package/extensions/msteams/package.json +1 -1
  127. package/extensions/nextcloud-talk/package.json +1 -1
  128. package/extensions/nostr/CHANGELOG.md +12 -0
  129. package/extensions/nostr/package.json +1 -1
  130. package/extensions/open-prose/package.json +1 -1
  131. package/extensions/sat-mining/package.json +1 -1
  132. package/extensions/signal/package.json +1 -1
  133. package/extensions/synology-chat/package.json +1 -1
  134. package/extensions/tlon/package.json +1 -1
  135. package/extensions/twitch/CHANGELOG.md +12 -0
  136. package/extensions/twitch/package.json +1 -1
  137. package/extensions/voice-call/CHANGELOG.md +12 -0
  138. package/extensions/voice-call/package.json +1 -1
  139. package/extensions/zalo/CHANGELOG.md +12 -0
  140. package/extensions/zalo/package.json +1 -1
  141. package/extensions/zalouser/CHANGELOG.md +12 -0
  142. package/extensions/zalouser/package.json +1 -1
  143. package/fased.mjs +14 -1
  144. package/install.sh +16 -10
  145. package/package.json +6 -1
  146. package/scripts/fased-managed-updater.mjs +10 -2
  147. package/scripts/fased-signer-wallet-import-hosting.sh +78 -0
  148. package/scripts/install-managed-runtime.mjs +10 -7
  149. /package/dist/plugin-sdk/{active-listener-B_NMtgPL.js → active-listener-p9Ooc1qj.js} +0 -0
  150. /package/dist/plugin-sdk/{blocks-input-Bg-8S2pl.js → blocks-input-DiZaqaN7.js} +0 -0
  151. /package/dist/plugin-sdk/{channel-access-CcFRdRPO.js → channel-access-B0aZBSd2.js} +0 -0
  152. /package/dist/plugin-sdk/{channel-activity-DBDMQ3yI.js → channel-activity-F07DjroV.js} +0 -0
  153. /package/dist/plugin-sdk/{channel-core-CFRs8LPy.js → channel-core-DoF4X04L.js} +0 -0
  154. /package/dist/plugin-sdk/{client-pI228AVT.js → client-DLY-kWF_.js} +0 -0
  155. /package/dist/plugin-sdk/{command-poll-backoff-yJU83wEq.js → command-poll-backoff-NAePk3eL.js} +0 -0
  156. /package/dist/plugin-sdk/{date-time-uUevHscU.js → date-time-ChY_tHoG.js} +0 -0
  157. /package/dist/plugin-sdk/{draft-stream-loop-CrOPfV3F.js → draft-stream-loop-DMBwjjd1.js} +0 -0
  158. /package/dist/plugin-sdk/{fetch-BtmoPIlf.js → fetch-B0v6OTUZ.js} +0 -0
  159. /package/dist/plugin-sdk/{filesystem-manager-DoI8IBNF.js → filesystem-manager-BzuIJ9K9.js} +0 -0
  160. /package/dist/plugin-sdk/{gateway-registry-DZDsqicG.js → gateway-registry-Bgl2GFgy.js} +0 -0
  161. /package/dist/plugin-sdk/{inbound-context-DrAcXE0y.js → inbound-context-CQnfFFQ9.js} +0 -0
  162. /package/dist/plugin-sdk/{pi-model-discovery-BX_JLcEJ.js → pi-model-discovery-BHNVyRny.js} +0 -0
  163. /package/dist/plugin-sdk/{polls-DKQXVfJp.js → polls-DXd67TD8.js} +0 -0
  164. /package/dist/plugin-sdk/{proxy-DWpYcsvR.js → proxy-CLRUdShp.js} +0 -0
  165. /package/dist/plugin-sdk/{qmd-manager-CgRaTxUq.js → qmd-manager-B8Vnu0ND.js} +0 -0
  166. /package/dist/plugin-sdk/{render-e7fENCYH.js → render-DrBfVs0u.js} +0 -0
  167. /package/dist/plugin-sdk/{reply-reference-Bqk-7HXE.js → reply-reference-BnAk5Wjb.js} +0 -0
  168. /package/dist/plugin-sdk/{retry-policy-C6SjKjQA.js → retry-policy-CXh1owkc.js} +0 -0
  169. /package/dist/plugin-sdk/{sandbox-paths-Dx2lUqCu.js → sandbox-paths-Bzh1CuZc.js} +0 -0
  170. /package/dist/plugin-sdk/{session-DHD4ZKyG.js → session-iuGR_rdi.js} +0 -0
  171. /package/dist/plugin-sdk/{shared-CBgp_GBw.js → shared-D1AD2Ejn.js} +0 -0
  172. /package/dist/plugin-sdk/{target-errors-Ckufe179.js → target-errors-DfS1sLR9.js} +0 -0
  173. /package/dist/plugin-sdk/{tool-loop-detection-Bp8bPJLs.js → tool-loop-detection-sDZl27w7.js} +0 -0
  174. /package/dist/plugin-sdk/{ui-Be8cLHIS.js → ui-GQDYm_jw.js} +0 -0
  175. /package/dist/plugin-sdk/{with-timeout-ckWB8rTo.js → with-timeout-CVV8tytk.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { $ as mergeSessionEntry, A as deliveryContextKey, An as GATEWAY_CLIENT_IDS, B as INPUT_PROVENANCE_KIND_VALUES, Bn as CLI_DEFAULT_OPERATOR_SCOPES, C as recordSessionMetaFromInbound, Cn as isGatewayMessageChannel, D as isCacheEnabled, Dn as normalizeMessageChannel, Dt as getChannelDock, E as updateSessionStoreEntry, En as listDeliverableMessageChannels, F as archiveSessionTranscripts, Fn as normalizeAnyChannelId, Ft as trimMessagingTarget, G as resolveSessionLockMaxHoldFromTimeout, Gn as getPluginCommandSpecs, H as hasInterSessionUserProvenance, Hn as resolveLeastPrivilegeOperatorScopesForMethod, I as capArrayByJsonBytes, In as normalizeChannelId$2, It as isWhatsAppGroupJid, J as resolveChannelResetConfig, Jn as createInternalHookEvent, K as resolveSessionKey$1, Kn as listPluginCommands, L as countToolResults, Ln as logMutatingAdminRpcAudit, Lt as normalizeWhatsAppTarget, M as normalizeDeliveryContext, Mn as GATEWAY_CLIENT_NAMES, N as normalizeSessionDeliveryFields, Nn as getChatChannelMeta, O as resolveCacheTtlMs$1, On as resolveGatewayMessageChannel, Ot as listChannelDocks, P as normalizeAccountId$1, Pn as listChatChannels, Pt as looksLikeHandleOrPhoneTarget, Q as DEFAULT_RESET_TRIGGERS, R as extractToolCallNames, Rn as consumeMutatingAdminRpcBudget, S as readSessionUpdatedAt, Sn as isDeliverableMessageChannel, T as updateSessionStore, Tn as isMarkdownCapableMessageChannel, U as normalizeInputProvenance, Un as clearPluginCommands, V as applyInputProvenanceToUserMessage, Vn as authorizeOperatorScopesForMethod, W as acquireSessionWriteLock, Wn as executePluginCommand, X as resolveSessionResetType, Xn as normalizePluginHttpPath, Y as resolveSessionResetPolicy, Yn as triggerInternalHook, Z as resolveThreadFlag, _ as appendAssistantMessageToSessionTranscript, _n as resolveChannelGroupRequireMention, a as createPluginRegistry, an as resolveTelegramToken, at as resolveMainSessionKey, b as resolveAndPersistSessionFile, bn as resolveGroupSessionKey, bt as parseSlackTarget, c as listAgentsForGateway, ct as listChannelPlugins, d as lookupContextTokens, dn as resolveDefaultSignalAccountId, en as createTelegramActionGate, et as resolveFreshSessionTotalTokens, f as resolveContextTokensForModel, fn as resolveSignalAccount, g as parseSessionThreadInfo, gn as resolveChannelGroupPolicy, h as extractDeliveryInfo, hn as resolveIMessageAccount, i as setActivePluginRegistry, in as resolveTelegramAccount, it as resolveExplicitAgentSessionKey, j as mergeDeliveryContext, jn as GATEWAY_CLIENT_MODES, k as deliveryContextFromSession, kn as resolveMessageChannel, l as loadCombinedSessionStoreForGateway, ln as listEnabledSignalAccounts, lt as normalizeChannelId$1, mn as resolveDefaultIMessageAccountId, n as getActivePluginRegistryKey, nn as listTelegramAccountIds, nt as canonicalizeMainSessionAlias, o as createRuntimeHelpers, on as buildChannelAccountBindings, ot as deriveSessionMetaPatch, p as ensureFasedAgentModelsJson, pn as listIMessageAccountIds, q as evaluateSessionFreshness, qn as matchPluginCommand, r as requireActivePluginRegistry, rt as resolveAgentMainSessionKey, s as classifySessionKey, st as getChannelPlugin, t as getActivePluginRegistry, tn as listEnabledTelegramAccounts, tt as setSessionRuntimeModel, u as resolveSessionModelRef, un as listSignalAccountIds, v as resolveMirroredTranscriptText, vn as resolveChannelGroupToolsPolicy, w as updateLastRoute, wn as isInternalMessageChannel, x as loadSessionStore, xn as INTERNAL_MESSAGE_CHANNEL, y as resolveSessionTranscriptFile, z as parseInlineDirectives$1, zn as ADMIN_SCOPE, zt as normalizeSignalMessagingTarget } from "./runtime-2B9_WKoI.js";
2
+ import { $ as mergeSessionEntry, A as deliveryContextKey, An as GATEWAY_CLIENT_IDS, B as INPUT_PROVENANCE_KIND_VALUES, Bn as CLI_DEFAULT_OPERATOR_SCOPES, C as recordSessionMetaFromInbound, Cn as isGatewayMessageChannel, D as isCacheEnabled, Dn as normalizeMessageChannel, Dt as getChannelDock, E as updateSessionStoreEntry, En as listDeliverableMessageChannels, F as archiveSessionTranscripts, Fn as normalizeAnyChannelId, Ft as trimMessagingTarget, G as resolveSessionLockMaxHoldFromTimeout, Gn as getPluginCommandSpecs, H as hasInterSessionUserProvenance, Hn as resolveLeastPrivilegeOperatorScopesForMethod, I as capArrayByJsonBytes, In as normalizeChannelId$2, It as isWhatsAppGroupJid, J as resolveChannelResetConfig, Jn as createInternalHookEvent, K as resolveSessionKey$1, Kn as listPluginCommands, L as countToolResults, Ln as logMutatingAdminRpcAudit, Lt as normalizeWhatsAppTarget, M as normalizeDeliveryContext, Mn as GATEWAY_CLIENT_NAMES, N as normalizeSessionDeliveryFields, Nn as getChatChannelMeta, O as resolveCacheTtlMs$1, On as resolveGatewayMessageChannel, Ot as listChannelDocks, P as normalizeAccountId$1, Pn as listChatChannels, Pt as looksLikeHandleOrPhoneTarget, Q as DEFAULT_RESET_TRIGGERS, R as extractToolCallNames, Rn as consumeMutatingAdminRpcBudget, S as readSessionUpdatedAt, Sn as isDeliverableMessageChannel, T as updateSessionStore, Tn as isMarkdownCapableMessageChannel, U as normalizeInputProvenance, Un as clearPluginCommands, V as applyInputProvenanceToUserMessage, Vn as authorizeOperatorScopesForMethod, W as acquireSessionWriteLock, Wn as executePluginCommand, X as resolveSessionResetType, Xn as normalizePluginHttpPath, Y as resolveSessionResetPolicy, Yn as triggerInternalHook, Z as resolveThreadFlag, _ as appendAssistantMessageToSessionTranscript, _n as resolveChannelGroupRequireMention, a as createPluginRegistry, an as resolveTelegramToken, at as resolveMainSessionKey, b as resolveAndPersistSessionFile, bn as resolveGroupSessionKey, bt as parseSlackTarget, c as listAgentsForGateway, ct as listChannelPlugins, d as lookupContextTokens, dn as resolveDefaultSignalAccountId, en as createTelegramActionGate, et as resolveFreshSessionTotalTokens, f as resolveContextTokensForModel, fn as resolveSignalAccount, g as parseSessionThreadInfo, gn as resolveChannelGroupPolicy, h as extractDeliveryInfo, hn as resolveIMessageAccount, i as setActivePluginRegistry, in as resolveTelegramAccount, it as resolveExplicitAgentSessionKey, j as mergeDeliveryContext, jn as GATEWAY_CLIENT_MODES, k as deliveryContextFromSession, kn as resolveMessageChannel, l as loadCombinedSessionStoreForGateway, ln as listEnabledSignalAccounts, lt as normalizeChannelId$1, mn as resolveDefaultIMessageAccountId, n as getActivePluginRegistryKey, nn as listTelegramAccountIds, nt as canonicalizeMainSessionAlias, o as createRuntimeHelpers, on as buildChannelAccountBindings, ot as deriveSessionMetaPatch, p as ensureFasedAgentModelsJson, pn as listIMessageAccountIds, q as evaluateSessionFreshness, qn as matchPluginCommand, r as requireActivePluginRegistry, rt as resolveAgentMainSessionKey, s as classifySessionKey, st as getChannelPlugin, t as getActivePluginRegistry, tn as listEnabledTelegramAccounts, tt as setSessionRuntimeModel, u as resolveSessionModelRef, un as listSignalAccountIds, v as resolveMirroredTranscriptText, vn as resolveChannelGroupToolsPolicy, w as updateLastRoute, wn as isInternalMessageChannel, x as loadSessionStore, xn as INTERNAL_MESSAGE_CHANNEL, y as resolveSessionTranscriptFile, z as parseInlineDirectives$1, zn as ADMIN_SCOPE, zt as normalizeSignalMessagingTarget } from "./runtime-CXSQwMaR.js";
3
3
  import { a as clearActiveProgressLine, c as CHANNEL_IDS, f as normalizeChatChannelId, i as defaultRuntime, l as CHAT_CHANNEL_ORDER, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
4
4
  import { S as normalizeLogLevel, d as isRich, f as theme, i as logVerbose, l as warn, o as setVerbose, p as getChildLogger, s as shouldLogVerbose, t as danger, u as colorize, w as resolvePreferredFasedAgentTmpDir } from "./globals-B_jjtAje.js";
5
5
  import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-BEmvSyOV.js";
@@ -14,7 +14,7 @@ import { i as resolveSlackAccount } from "./accounts-CuqIKU8X.js";
14
14
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-BbFvCoKk.js";
15
15
  import { n as runExec, r as spawnWithFallback, t as runCommandWithTimeout } from "./exec-DQ8j4Fm3.js";
16
16
  import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, t as hasAnyWhatsAppAuth } from "./accounts-Brn3-uWN.js";
17
- import { S as resolveChannelEntryMatchWithFallback, b as normalizeChannelSlug, y as buildChannelKeyCandidates } from "./allow-list-DyAxs4yw.js";
17
+ import { S as resolveChannelEntryMatchWithFallback, b as normalizeChannelSlug, y as buildChannelKeyCandidates } from "./allow-list-Bf45HfoP.js";
18
18
  import { n as redactSensitiveText, r as redactToolDetail, t as getDefaultRedactPatterns } from "./redact-Bm8vu_ju.js";
19
19
  import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken } from "./github-copilot-token-CUK__1s1.js";
20
20
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-BsDJWzgM.js";
@@ -24,20 +24,20 @@ import { t as emitSessionTranscriptUpdate } from "./transcript-events-BJQWUdmU.j
24
24
  import { l as resolveChannelDefaultAccountId } from "./pairing-message-D0CoLHRJ.js";
25
25
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-l_6RdoMw.js";
26
26
  import { t as normalizeRequestInitHeadersForFetch } from "./fetch-headers-my7hgV2G.js";
27
- import { a as isBlockedHostnameOrIp, t as SsrFBlockedError } from "./ssrf-fG4UHKBw.js";
27
+ import { a as isBlockedHostnameOrIp, n as closeDispatcher, r as createPinnedDispatcher, s as resolvePinnedHostnameWithPolicy, t as SsrFBlockedError } from "./ssrf-fG4UHKBw.js";
28
28
  import { t as fetchWithSsrFGuard } from "./fetch-guard-CeG6u6ld.js";
29
29
  import { n as redactSensitiveUrlLikeString, t as redactSensitiveUrl } from "./redact-sensitive-url-g-ukZjwA.js";
30
- import { a as formatIMessageChatTarget, c as normalizeIMessageHandle, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, l as parseIMessageTarget, o as formatIMessageTargetForLog, r as createIMessageRpcClient, s as isAllowedIMessageSender, t as sendMessageIMessage } from "./send-CFzGKJXo.js";
30
+ import { a as formatIMessageChatTarget, c as normalizeIMessageHandle, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, l as parseIMessageTarget, o as formatIMessageTargetForLog, r as createIMessageRpcClient, s as isAllowedIMessageSender, t as sendMessageIMessage } from "./send-D-HfKQZm.js";
31
31
  import { A as resolveDefaultGroupPolicy, D as formatDocsLink, M as warnMissingProviderGroupPolicyFallbackOnce, b as setOnboardingChannelEnabled, c as parseOnboardingEntriesAllowingWildcard, f as promptParsedAllowFromForScopedChannel, h as resolveAccountIdForConfigure, j as resolveOpenProviderRuntimeGroupPolicy, k as resolveAllowlistProviderRuntimeGroupPolicy, l as patchChannelConfigForAccount, v as setChannelDmPolicyWithAllowFrom } from "./helpers-DMBU4oTo.js";
32
- import { A as formatLocationText, F as isSenderIdAllowed, I as mergeDmAllowFromSources, L as resolveGroupAllowFromSources, N as isVoiceCompatibleAudio, P as firstDefined$1, a as resolveCronStorePath, d as buildTelegramGroupPeerId, i as loadCronStore, j as toLocationContext, o as saveCronStore } from "./wsl-J-HscWxS.js";
33
- import { a as upsertChannelPairingRequest, c as getPairingAdapter, i as removeChannelAllowFromStoreEntry, l as listPairingChannels, n as readChannelAllowFromStore, o as readJsonFileWithFallback, s as writeJsonFileAtomically, t as addChannelAllowFromStoreEntry } from "./pairing-store-BChahgI2.js";
34
- import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, o as chunkTextWithMode, p as chunkTextByBreakResolver, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-CyoyqpbG.js";
32
+ import { A as formatLocationText, F as isSenderIdAllowed, I as mergeDmAllowFromSources, L as resolveGroupAllowFromSources, N as isVoiceCompatibleAudio, P as firstDefined$1, a as resolveCronStorePath, d as buildTelegramGroupPeerId, i as loadCronStore, j as toLocationContext, o as saveCronStore } from "./wsl-CTvIWvZz.js";
33
+ import { a as upsertChannelPairingRequest, c as getPairingAdapter, i as removeChannelAllowFromStoreEntry, l as listPairingChannels, n as readChannelAllowFromStore, o as readJsonFileWithFallback, s as writeJsonFileAtomically, t as addChannelAllowFromStoreEntry } from "./pairing-store-B6J2C0vP.js";
34
+ import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, o as chunkTextWithMode, p as chunkTextByBreakResolver, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-CBpl-AiQ.js";
35
35
  import { c as normalizeDeviceAuthScopes, i as clearDevicePairing, s as normalizeDeviceAuthRole } from "./tailscale-status-DwpNdO3Z.js";
36
36
  import { c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-CeVw7Mn2.js";
37
37
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-BbnqfVuu.js";
38
38
  import { n as safeEqualSecret, o as createAsyncLock, s as readJsonFile$1 } from "./pairing-token-Cs3BRKc0.js";
39
39
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-BIkG-k4s.js";
40
- import { a as logMessageProcessed, i as logLaneEnqueue, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-DLL_zekv.js";
40
+ import { a as logMessageProcessed, i as logLaneEnqueue, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-sYs6Agr-.js";
41
41
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DqgfGYqZ.js";
42
42
  import { t as redactIdentifier } from "./redact-identifier-Lt7t3l7S.js";
43
43
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-CoMJ1ry1.js";
@@ -48,31 +48,31 @@ import { i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProvi
48
48
  import { c as normalizeExtraMemoryPaths, s as listMemoryFiles } from "./internal-CG_nHo-2.js";
49
49
  import { i as resolveQmdScopeDenial } from "./qmd-scope-CdX34VCV.js";
50
50
  import { _ as estimateBase64DecodedBytes, a as jsonResult, d as readStringParam, f as sanitizeContentBlocksImages, g as canonicalizeBase64, h as resolveImageSanitizationLimits, i as imageResultFromFile, l as readStringArrayParam, m as sanitizeToolResultImages, n as createActionGate, p as sanitizeImageBlocks, r as imageResult, s as readNumberParam, u as readStringOrNumberParam } from "./common-HCcXU-NR.js";
51
- import { S as isCommandFlagEnabled, _ as normalizeElevatedLevel, a as listChatCommands, b as normalizeVerboseLevel, g as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as resolveNativeCommandName, o as listChatCommandsForConfig, u as normalizeCommandBody, v as normalizeReasoningLevel, w as isRestartEnabled, x as resolveResponseUsageMode, y as normalizeUsageDisplay } from "./commands-registry-BfqdEWdF.js";
52
- import { A as fetchJson$1, B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as normalizeCdpWsUrl, D as assertBrowserNavigationResultAllowed, E as assertBrowserNavigationAllowed, F as stopChromeExtensionRelayServer, G as isLoopbackHost, H as DEFAULT_FASED_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, J as resolveClientIp, K as isSecureWebSocketUrl, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, O as withBrowserNavigationPolicy, P as ensureChromeExtensionRelayServer, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as InvalidBrowserNavigationUrlError, U as DEFAULT_FASED_BROWSER_PROFILE_NAME, V as DEFAULT_FASED_BROWSER_COLOR, W as isLoopbackAddress, X as rawDataToString, Y as resolveForwardedClientIp, _ as stopFasedAgentChrome, a as DEFAULT_TRACE_DIR, b as captureScreenshot, d as normalizeBrowserFormField, g as resolveFasedAgentUserDataDir, h as launchFasedAgentChrome, i as DEFAULT_DOWNLOAD_DIR, j as fetchOk, k as appendCdpPath, l as resolveWritablePathWithinRoot, m as isChromeReachable, o as DEFAULT_UPLOAD_DIR, p as isChromeCdpReady, q as isTrustedProxyAddress, r as loadReadability, s as resolveExistingPathsWithinRoot, t as loadLinkedom, v as resolveBrowserExecutableForPlatform, w as snapshotAria, x as createTargetViaCdp, y as resolveLsofCommandSync, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./runtime-dependency-DczkvPxn.js";
51
+ import { S as isCommandFlagEnabled, _ as normalizeElevatedLevel, a as listChatCommands, b as normalizeVerboseLevel, g as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as resolveNativeCommandName, o as listChatCommandsForConfig, u as normalizeCommandBody, v as normalizeReasoningLevel, w as isRestartEnabled, x as resolveResponseUsageMode, y as normalizeUsageDisplay } from "./commands-registry-G5KXSi_y.js";
52
+ import { A as fetchJson$1, B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as normalizeCdpWsUrl, D as assertBrowserNavigationResultAllowed, E as assertBrowserNavigationAllowed, F as stopChromeExtensionRelayServer, G as isLoopbackHost, H as DEFAULT_FASED_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, J as resolveClientIp, K as isSecureWebSocketUrl, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, O as withBrowserNavigationPolicy, P as ensureChromeExtensionRelayServer, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as InvalidBrowserNavigationUrlError, U as DEFAULT_FASED_BROWSER_PROFILE_NAME, V as DEFAULT_FASED_BROWSER_COLOR, W as isLoopbackAddress, X as rawDataToString, Y as resolveForwardedClientIp, _ as stopFasedAgentChrome, a as DEFAULT_TRACE_DIR, b as captureScreenshot, d as normalizeBrowserFormField, g as resolveFasedAgentUserDataDir, h as launchFasedAgentChrome, i as DEFAULT_DOWNLOAD_DIR, j as fetchOk, k as appendCdpPath, l as resolveWritablePathWithinRoot, m as isChromeReachable, o as DEFAULT_UPLOAD_DIR, p as isChromeCdpReady, q as isTrustedProxyAddress, r as loadReadability, s as resolveExistingPathsWithinRoot, t as loadLinkedom, v as resolveBrowserExecutableForPlatform, w as snapshotAria, x as createTargetViaCdp, y as resolveLsofCommandSync, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./runtime-dependency-nup8niQL.js";
53
53
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DjgDArrp.js";
54
54
  import { a as writeFileWithinRoot, n as openFileWithinRoot, r as readFileWithinRoot, t as SafeOpenError } from "./fs-safe-g4g7GT02.js";
55
- import { a as fetchRemoteMedia, d as readResponseWithLimit, i as MediaFetchError, l as getAgentScopedMediaLocalRoots, n as loadWebMedia, t as getDefaultLocalRoots, u as getDefaultMediaLocalRoots } from "./media-CAdQF5TG.js";
56
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DCOXEUfZ.js";
57
- import { a as resolveSignalRpcContext, c as streamSignalEvents, l as markdownToSignalTextChunks, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-B6KkGKZD.js";
58
- import { a as saveMediaBuffer, i as getMediaDir, n as ensureMediaDir } from "./outbound-attachment-QqTnIhZL.js";
59
- import { t as resolveFetch } from "./fetch-BtmoPIlf.js";
60
- import { B as isSessionBindingError, C as resolveThreadBindingMaxAgeMs$1, F as resolveThreadBindingIntroText, G as resolveSessionStorePathForAcp, I as resolveThreadBindingThreadName, K as upsertAcpSessionMeta, L as SYSTEM_MARK, N as formatThreadBindingDurationLabel, R as prefixSystemMessage, S as resolveThreadBindingMaxAgeExpiresAt, U as listAcpSessionEntries, W as readAcpSessionEntry, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingManager, x as resolveThreadBindingInactivityExpiresAt, z as getSessionBindingService } from "./thread-bindings.state-D9hg_M1c.js";
61
- import { _ as marketplaceSkillIdsFromEntries, b as sanitizeEnvVars, c as getSkillsSnapshotVersion, d as resolveSkillsPromptForRun, f as syncSkillsToWorkspace, g as isMarketplaceSkillDir, h as getActiveSkillEnvOverrides, i as resolveSkillCommandInvocation, l as buildWorkspaceSkillSnapshot, m as applySkillEnvOverridesFromSnapshot, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as applySkillEnvOverrides, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as loadWorkspaceSkillEntries, v as marketplaceSkillIdsFromSnapshot, y as marketplaceSkillProvenanceMatchesContent } from "./skill-commands-FKEPLS7T.js";
62
- import { a as resolveSandboxedMediaSource, i as resolveSandboxPath, n as assertSandboxPath, r as resolveSandboxInputPath, t as assertMediaNotDataUrl } from "./sandbox-paths-Dx2lUqCu.js";
63
- import { n as resolveUserTimeFormat, r as resolveUserTimezone, t as formatUserTime } from "./date-time-uUevHscU.js";
64
- import { t as parseDiscordTarget } from "./targets-CtSbTxYX.js";
65
- import { n as missingTargetError, r as unknownTargetError, t as ambiguousTargetError } from "./target-errors-Ckufe179.js";
66
- import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery-BX_JLcEJ.js";
67
- import { n as normalizePollInput } from "./polls-DKQXVfJp.js";
68
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-C8tvQm8Z.js";
69
- import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DrAcXE0y.js";
70
- import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-yJU83wEq.js";
71
- import { t as convertMarkdownTables } from "./tables-B3jr0Pvq.js";
72
- import { n as recordChannelActivity, t as getChannelActivity } from "./channel-activity-DBDMQ3yI.js";
73
- import { t as withTimeout$3 } from "./with-timeout-ckWB8rTo.js";
74
- import { t as getActiveWebListener } from "./active-listener-B_NMtgPL.js";
75
- import { n as asString$4, r as collectIssuesForEnabledAccounts } from "./shared-CBgp_GBw.js";
55
+ import { a as fetchRemoteMedia, d as readResponseWithLimit, i as MediaFetchError, l as getAgentScopedMediaLocalRoots, n as loadWebMedia, t as getDefaultLocalRoots, u as getDefaultMediaLocalRoots } from "./media-BAoaxCrt.js";
56
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-d7GlUs5R.js";
57
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, l as markdownToSignalTextChunks, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-D1j12ZgX.js";
58
+ import { a as saveMediaBuffer, i as getMediaDir, n as ensureMediaDir } from "./outbound-attachment-CyXM3cAv.js";
59
+ import { t as resolveFetch } from "./fetch-B0v6OTUZ.js";
60
+ import { B as isSessionBindingError, C as resolveThreadBindingMaxAgeMs$1, F as resolveThreadBindingIntroText, G as resolveSessionStorePathForAcp, I as resolveThreadBindingThreadName, K as upsertAcpSessionMeta, L as SYSTEM_MARK, N as formatThreadBindingDurationLabel, R as prefixSystemMessage, S as resolveThreadBindingMaxAgeExpiresAt, U as listAcpSessionEntries, W as readAcpSessionEntry, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingManager, x as resolveThreadBindingInactivityExpiresAt, z as getSessionBindingService } from "./thread-bindings.state-D2oOWDpv.js";
61
+ import { _ as marketplaceSkillIdsFromEntries, b as sanitizeEnvVars, c as getSkillsSnapshotVersion, d as resolveSkillsPromptForRun, f as syncSkillsToWorkspace, g as isMarketplaceSkillDir, h as getActiveSkillEnvOverrides, i as resolveSkillCommandInvocation, l as buildWorkspaceSkillSnapshot, m as applySkillEnvOverridesFromSnapshot, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as applySkillEnvOverrides, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as loadWorkspaceSkillEntries, v as marketplaceSkillIdsFromSnapshot, y as marketplaceSkillProvenanceMatchesContent } from "./skill-commands-iJtvpqgb.js";
62
+ import { a as resolveSandboxedMediaSource, i as resolveSandboxPath, n as assertSandboxPath, r as resolveSandboxInputPath, t as assertMediaNotDataUrl } from "./sandbox-paths-Bzh1CuZc.js";
63
+ import { n as resolveUserTimeFormat, r as resolveUserTimezone, t as formatUserTime } from "./date-time-ChY_tHoG.js";
64
+ import { t as parseDiscordTarget } from "./targets-DDbNnLnB.js";
65
+ import { n as missingTargetError, r as unknownTargetError, t as ambiguousTargetError } from "./target-errors-DfS1sLR9.js";
66
+ import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery-BHNVyRny.js";
67
+ import { n as normalizePollInput } from "./polls-DXd67TD8.js";
68
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Dufnu2cT.js";
69
+ import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CQnfFFQ9.js";
70
+ import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-NAePk3eL.js";
71
+ import { t as convertMarkdownTables } from "./tables-_1W36GII.js";
72
+ import { n as recordChannelActivity, t as getChannelActivity } from "./channel-activity-F07DjroV.js";
73
+ import { t as withTimeout$3 } from "./with-timeout-CVV8tytk.js";
74
+ import { t as getActiveWebListener } from "./active-listener-p9Ooc1qj.js";
75
+ import { n as asString$4, r as collectIssuesForEnabledAccounts } from "./shared-D1AD2Ejn.js";
76
76
  import { createRequire } from "node:module";
77
77
  import * as path$1 from "node:path";
78
78
  import path, { isAbsolute, posix } from "node:path";
@@ -97,7 +97,7 @@ import { AsyncLocalStorage } from "node:async_hooks";
97
97
  import readline from "node:readline";
98
98
  import { createJiti } from "jiti";
99
99
  import { Type } from "@sinclair/typebox";
100
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
100
+ import WebSocket$1, { WebSocket } from "ws";
101
101
  import { Buffer as Buffer$1 } from "node:buffer";
102
102
  import net from "node:net";
103
103
  import { request } from "node:https";
@@ -8186,7 +8186,7 @@ async function getMemorySearchManager(params) {
8186
8186
  if (cached) return { manager: cached };
8187
8187
  }
8188
8188
  try {
8189
- const { QmdMemoryManager } = await import("./qmd-manager-CgRaTxUq.js");
8189
+ const { QmdMemoryManager } = await import("./qmd-manager-B8Vnu0ND.js");
8190
8190
  const primary = await QmdMemoryManager.create({
8191
8191
  cfg: params.cfg,
8192
8192
  agentId: params.agentId,
@@ -8216,7 +8216,7 @@ async function getMemorySearchManager(params) {
8216
8216
  } catch (err) {
8217
8217
  const message = err instanceof Error ? err.message : String(err);
8218
8218
  if (isNodeSqliteUnavailable(message)) {
8219
- const { FilesystemMemorySearchManager } = await import("./filesystem-manager-DoI8IBNF.js");
8219
+ const { FilesystemMemorySearchManager } = await import("./filesystem-manager-BzuIJ9K9.js");
8220
8220
  const manager = await FilesystemMemorySearchManager.create({
8221
8221
  cfg: params.cfg,
8222
8222
  agentId: params.agentId,
@@ -12570,7 +12570,7 @@ var GatewayClient = class {
12570
12570
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
12571
12571
  });
12572
12572
  }
12573
- this.ws = new WebSocket$1(url, wsOptions);
12573
+ this.ws = new WebSocket(url, wsOptions);
12574
12574
  this.ws.on("open", () => {
12575
12575
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
12576
12576
  const tlsError = this.validateTlsFingerprint();
@@ -12766,7 +12766,7 @@ var GatewayClient = class {
12766
12766
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
12767
12767
  if (this.connectTimer) clearTimeout(this.connectTimer);
12768
12768
  this.connectTimer = setTimeout(() => {
12769
- if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
12769
+ if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
12770
12770
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
12771
12771
  this.ws?.close(1008, "connect challenge timeout");
12772
12772
  }, connectChallengeTimeoutMs);
@@ -12808,7 +12808,7 @@ var GatewayClient = class {
12808
12808
  return null;
12809
12809
  }
12810
12810
  async request(method, params, opts) {
12811
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
12811
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
12812
12812
  const id = randomUUID();
12813
12813
  const frame = {
12814
12814
  type: "req",
@@ -15593,6 +15593,60 @@ function buildAttestation(options) {
15593
15593
  };
15594
15594
  }
15595
15595
 
15596
+ //#endregion
15597
+ //#region src/wallet/solana-rpc-read-fetch.ts
15598
+ function normalizeRpcHostname(hostname) {
15599
+ const normalized = hostname.trim().toLowerCase().replace(/\.$/, "");
15600
+ return normalized.startsWith("[") && normalized.endsWith("]") ? normalized.slice(1, -1) : normalized;
15601
+ }
15602
+ function isLoopbackRpcHostname(hostname) {
15603
+ const normalized = normalizeRpcHostname(hostname);
15604
+ return normalized === "localhost" || normalized.endsWith(".localhost") || normalized === "::1" || /^127(?:\.\d{1,3}){3}$/.test(normalized);
15605
+ }
15606
+ function isLoopbackRpcAddress(address) {
15607
+ const normalized = normalizeRpcHostname(address);
15608
+ return normalized === "::1" || normalized === "0:0:0:0:0:0:0:1" || /^127(?:\.\d{1,3}){3}$/.test(normalized) || /^::ffff:127(?:\.\d{1,3}){3}$/.test(normalized);
15609
+ }
15610
+ async function resolveWithTimeout(hostname, policy, timeoutMs) {
15611
+ let timer;
15612
+ try {
15613
+ return await Promise.race([resolvePinnedHostnameWithPolicy(hostname, { policy }), new Promise((_resolve, reject) => {
15614
+ timer = setTimeout(() => reject(/* @__PURE__ */ new Error("stored Solana RPC hostname resolution timed out")), Math.max(250, timeoutMs));
15615
+ timer.unref?.();
15616
+ })]);
15617
+ } finally {
15618
+ if (timer) clearTimeout(timer);
15619
+ }
15620
+ }
15621
+ async function fetchPinnedSolanaRpcRead(params) {
15622
+ const parsed = new URL(params.rpcUrl);
15623
+ const hostname = normalizeRpcHostname(parsed.hostname);
15624
+ const loopback = isLoopbackRpcHostname(hostname);
15625
+ if (!hostname || parsed.username || parsed.password || parsed.hash || parsed.protocol !== "https:" && !(parsed.protocol === "http:" && loopback)) throw new Error("stored Solana RPC URL is not safe for Gateway reads");
15626
+ const pinned = await resolveWithTimeout(hostname, {
15627
+ hostnameAllowlist: [hostname],
15628
+ ...loopback ? { allowPrivateNetwork: true } : {}
15629
+ }, params.timeoutMs);
15630
+ if (loopback && !pinned.addresses.every(isLoopbackRpcAddress)) throw new Error("stored Local Solana RPC hostname did not resolve only to loopback addresses");
15631
+ const dispatcher = createPinnedDispatcher(pinned);
15632
+ try {
15633
+ return {
15634
+ response: await fetch(parsed.toString(), {
15635
+ method: "POST",
15636
+ headers: { "content-type": "application/json" },
15637
+ body: params.body,
15638
+ redirect: "error",
15639
+ signal: AbortSignal.timeout(Math.max(250, params.timeoutMs)),
15640
+ dispatcher
15641
+ }),
15642
+ release: async () => closeDispatcher(dispatcher)
15643
+ };
15644
+ } catch (error) {
15645
+ await closeDispatcher(dispatcher);
15646
+ throw error;
15647
+ }
15648
+ }
15649
+
15596
15650
  //#endregion
15597
15651
  //#region src/wallet/solana-assets.ts
15598
15652
  const SOLANA_NATIVE_MINT$1 = "So11111111111111111111111111111111111111112";
@@ -15941,10 +15995,11 @@ function formatTokenAmount(raw, decimals) {
15941
15995
  }
15942
15996
  }
15943
15997
  async function fetchSolanaRpc(rpcUrl, method, params) {
15998
+ let release;
15944
15999
  try {
15945
- const response = await fetch(rpcUrl, {
15946
- method: "POST",
15947
- headers: { "Content-Type": "application/json" },
16000
+ const guarded = await fetchPinnedSolanaRpcRead({
16001
+ rpcUrl,
16002
+ timeoutMs: 1e4,
15948
16003
  body: JSON.stringify({
15949
16004
  jsonrpc: "2.0",
15950
16005
  id: 1,
@@ -15952,6 +16007,8 @@ async function fetchSolanaRpc(rpcUrl, method, params) {
15952
16007
  params
15953
16008
  })
15954
16009
  });
16010
+ release = guarded.release;
16011
+ const response = guarded.response;
15955
16012
  if (!response.ok) {
15956
16013
  recordSolanaAssetRpcMethod(method, "failure");
15957
16014
  return null;
@@ -15966,6 +16023,8 @@ async function fetchSolanaRpc(rpcUrl, method, params) {
15966
16023
  } catch {
15967
16024
  recordSolanaAssetRpcMethod(method, "failure");
15968
16025
  return null;
16026
+ } finally {
16027
+ await release?.();
15969
16028
  }
15970
16029
  }
15971
16030
  async function fetchSolanaMetadataFromMintViaRpc(params) {
@@ -16509,6 +16568,16 @@ const LocalSocketSignerSatLookupBindingV2Schema = Type.Object({
16509
16568
  Type.Literal("unknown")
16510
16569
  ]))
16511
16570
  }, { additionalProperties: false });
16571
+ const LocalSocketSignerNetworkSummaryV2Schema = Type.Object({
16572
+ walletId: Type.String({
16573
+ minLength: 1,
16574
+ maxLength: 64
16575
+ }),
16576
+ configured: Type.Boolean(),
16577
+ version: Type.Integer({ minimum: 0 }),
16578
+ hash: Type.Optional(Type.String({ pattern: "^hmac-sha256:[0-9a-f]{64}$" })),
16579
+ ready: Type.Boolean()
16580
+ }, { additionalProperties: false });
16512
16581
  const LocalSocketSignerRequestSchema = Type.Union([
16513
16582
  Type.Object({ op: Type.Literal("health") }, { additionalProperties: false }),
16514
16583
  Type.Object({ op: Type.Literal("v2.capabilities") }, { additionalProperties: false }),
@@ -16520,6 +16589,21 @@ const LocalSocketSignerRequestSchema = Type.Union([
16520
16589
  op: Type.Literal("v2.policy.get"),
16521
16590
  walletId: Type.String()
16522
16591
  }, { additionalProperties: false }),
16592
+ Type.Object({
16593
+ op: Type.Literal("v2.network.get"),
16594
+ walletId: Type.String()
16595
+ }, { additionalProperties: false }),
16596
+ Type.Object({
16597
+ op: Type.Literal("v2.network.bootstrap"),
16598
+ walletId: Type.String(),
16599
+ request: Type.Object({
16600
+ expectedVersion: Type.Integer({ minimum: 0 }),
16601
+ primaryRpcUrl: Type.String({
16602
+ minLength: 1,
16603
+ maxLength: 2048
16604
+ })
16605
+ }, { additionalProperties: false })
16606
+ }, { additionalProperties: false }),
16523
16607
  Type.Object({
16524
16608
  op: Type.Literal("v2.policy.put"),
16525
16609
  walletId: Type.String(),
@@ -16868,6 +16952,8 @@ function validateLocalSocketSignerResult(op, result) {
16868
16952
  case "health":
16869
16953
  case "v2.capabilities": return Value.Check(LocalSocketSignerHealthResultSchema, result);
16870
16954
  case "v2.jupiter.trigger.history": return Value.Check(LocalSocketSignerJupiterTriggerHistoryV2Schema, result);
16955
+ case "v2.network.get":
16956
+ case "v2.network.bootstrap": return Value.Check(LocalSocketSignerNetworkSummaryV2Schema, result);
16871
16957
  case "v2.policy.get":
16872
16958
  case "v2.policy.put":
16873
16959
  case "v2.policy.tighten": return Value.Check(LocalSocketSignerPolicyV2Schema, result);
@@ -16903,6 +16989,7 @@ const SIGNER_PROTOCOL_V2_REQUIRED_CLIENT_FEATURES = [
16903
16989
  "ambiguousBroadcastReconciliation",
16904
16990
  "signerOwnedKeys",
16905
16991
  "signerOwnedRPC",
16992
+ "applicationNetworkBootstrap",
16906
16993
  "typedSolanaTransactions",
16907
16994
  "typedA2aPaymentMemos",
16908
16995
  "typedA2aRefundMemos",
@@ -17115,6 +17202,8 @@ const REQUIRED_PROTOCOL_V2_FEATURES = SIGNER_PROTOCOL_V2_REQUIRED_CLIENT_FEATURE
17115
17202
  const SIGNER_SOCKET_TIMEOUT_MS = {
17116
17203
  health: 2e3,
17117
17204
  "v2.capabilities": 2e3,
17205
+ "v2.network.get": 15e3,
17206
+ "v2.network.bootstrap": 3e4,
17118
17207
  "v2.jupiter.trigger.history": 3e4,
17119
17208
  "v2.policy.get": 5e3,
17120
17209
  "v2.policy.put": 5e3,
@@ -17306,6 +17395,12 @@ var LocalSocketSignerAdapter = class {
17306
17395
  provider: this.id,
17307
17396
  configured: true,
17308
17397
  checkedAt: (/* @__PURE__ */ new Date()).toISOString(),
17398
+ ...details.webAuthn ? { nativeSignerApproval: {
17399
+ configured: details.webAuthn.configured,
17400
+ ready: details.webAuthn.ready,
17401
+ credentialCount: details.webAuthn.credentialCount,
17402
+ credentialVersion: details.webAuthn.credentialVersion
17403
+ } } : {},
17309
17404
  details: [
17310
17405
  details?.details ?? "",
17311
17406
  ...!details?.details ? [
@@ -23980,6 +24075,9 @@ async function readWalletStatusSnapshot(params) {
23980
24075
  const checkedAt = (/* @__PURE__ */ new Date()).toISOString();
23981
24076
  let providerHealth = {
23982
24077
  ok: false,
24078
+ provider: providerId,
24079
+ configured: false,
24080
+ checkedAt,
23983
24081
  details: "provider health probe unavailable"
23984
24082
  };
23985
24083
  let addresses;
@@ -24001,6 +24099,9 @@ async function readWalletStatusSnapshot(params) {
24001
24099
  } catch (err) {
24002
24100
  providerHealth = {
24003
24101
  ok: false,
24102
+ provider: providerId,
24103
+ configured: false,
24104
+ checkedAt,
24004
24105
  details: walletDiagnosticErrorString(err)
24005
24106
  };
24006
24107
  }
@@ -24038,6 +24139,7 @@ async function readWalletStatusSnapshot(params) {
24038
24139
  }
24039
24140
  },
24040
24141
  approvalAuth,
24142
+ ...providerHealth.nativeSignerApproval ? { nativeSignerApproval: providerHealth.nativeSignerApproval } : {},
24041
24143
  addresses,
24042
24144
  paths: {
24043
24145
  rootDir: paths.rootDir,
@@ -24622,10 +24724,6 @@ const CANVAS_CAPABILITY_TTL_MS = 10 * 6e4;
24622
24724
  //#region src/canvas-host/a2ui.ts
24623
24725
  const CANVAS_HOST_PATH = "/__fased__/canvas";
24624
24726
 
24625
- //#endregion
24626
- //#region src/wallet/signer-network-admin.ts
24627
- const NETWORK_ADMIN_MAX_OUTPUT_BYTES = 256 * 1024;
24628
-
24629
24727
  //#endregion
24630
24728
  //#region src/federation/auto-connect.ts
24631
24729
  const DEFAULT_RENEW_INTERVAL_MS = 2700 * 1e3;
@@ -28603,27 +28701,27 @@ function createOutboundSendDepsFromCliSource(deps) {
28603
28701
  function createDefaultDeps() {
28604
28702
  return {
28605
28703
  sendMessageWhatsApp: async (...args) => {
28606
- const { sendMessageWhatsApp } = await import("./web-JwP9PAZR.js");
28704
+ const { sendMessageWhatsApp } = await import("./web-BvjNyYBz.js");
28607
28705
  return await sendMessageWhatsApp(...args);
28608
28706
  },
28609
28707
  sendMessageTelegram: async (...args) => {
28610
- const { sendMessageTelegram } = await import("./send-q9HXrSwK.js").then((n) => n.c);
28708
+ const { sendMessageTelegram } = await import("./send-DWKm6yay.js").then((n) => n.c);
28611
28709
  return await sendMessageTelegram(...args);
28612
28710
  },
28613
28711
  sendMessageDiscord: async (...args) => {
28614
- const { sendMessageDiscord } = await import("./send-DCO441U7.js").then((n) => n.t);
28712
+ const { sendMessageDiscord } = await import("./send-BXBS_mRK.js").then((n) => n.t);
28615
28713
  return await sendMessageDiscord(...args);
28616
28714
  },
28617
28715
  sendMessageSlack: async (...args) => {
28618
- const { sendMessageSlack } = await import("./send-gDoGA-7e.js").then((n) => n.n);
28716
+ const { sendMessageSlack } = await import("./send-Di1Jit3L.js").then((n) => n.n);
28619
28717
  return await sendMessageSlack(...args);
28620
28718
  },
28621
28719
  sendMessageSignal: async (...args) => {
28622
- const { sendMessageSignal } = await import("./send-B6KkGKZD.js").then((n) => n.i);
28720
+ const { sendMessageSignal } = await import("./send-D1j12ZgX.js").then((n) => n.i);
28623
28721
  return await sendMessageSignal(...args);
28624
28722
  },
28625
28723
  sendMessageIMessage: async (...args) => {
28626
- const { sendMessageIMessage } = await import("./send-CFzGKJXo.js").then((n) => n.n);
28724
+ const { sendMessageIMessage } = await import("./send-D-HfKQZm.js").then((n) => n.n);
28627
28725
  return await sendMessageIMessage(...args);
28628
28726
  }
28629
28727
  };
@@ -30770,7 +30868,7 @@ const log$17 = createSubsystemLogger("model-catalog");
30770
30868
  let modelCatalogPromise = null;
30771
30869
  let hasLoggedModelCatalogError = false;
30772
30870
  let hasLoggedProviderCatalogError = false;
30773
- const defaultImportPiSdk = () => import("./pi-model-discovery-BX_JLcEJ.js").then((n) => n.a);
30871
+ const defaultImportPiSdk = () => import("./pi-model-discovery-BHNVyRny.js").then((n) => n.a);
30774
30872
  let importPiSdk = defaultImportPiSdk;
30775
30873
  const CODEX_PROVIDER = "openai-codex";
30776
30874
  const OPENAI_PROVIDER = "openai";
@@ -36611,7 +36709,7 @@ function isModuleNotFoundError(err) {
36611
36709
  }
36612
36710
  async function loadPwAiModule(mode) {
36613
36711
  try {
36614
- return await import("./pw-ai-natjh3rm.js");
36712
+ return await import("./pw-ai-DJ_gTc4M.js");
36615
36713
  } catch (err) {
36616
36714
  if (mode === "soft") return null;
36617
36715
  if (isModuleNotFoundError(err)) return null;
@@ -37005,11 +37103,11 @@ function createProfileContext(opts, profile) {
37005
37103
  const userDataDir = resolveFasedAgentUserDataDir(profile.name);
37006
37104
  const profileState = getProfileState();
37007
37105
  if (await isHttpReachable(300) && !profileState.running) try {
37008
- await (await import("./pw-ai-natjh3rm.js")).closePlaywrightBrowserConnection();
37106
+ await (await import("./pw-ai-DJ_gTc4M.js")).closePlaywrightBrowserConnection();
37009
37107
  } catch {}
37010
37108
  if (profileState.running) await stopRunningBrowser();
37011
37109
  try {
37012
- await (await import("./pw-ai-natjh3rm.js")).closePlaywrightBrowserConnection();
37110
+ await (await import("./pw-ai-DJ_gTc4M.js")).closePlaywrightBrowserConnection();
37013
37111
  } catch {}
37014
37112
  if (!fs.existsSync(userDataDir)) return {
37015
37113
  moved: false,
@@ -46373,7 +46471,7 @@ function parseDeliveryParam(params) {
46373
46471
  const DEFAULT_ADAPTER = { supportsComponentsV2: false };
46374
46472
  async function loadChannelMessageAdapter(channel) {
46375
46473
  if (channel === "discord") {
46376
- const { discordChannelMessageAdapter } = await import("./channel-adapters.discord-BS4S4Svh.js");
46474
+ const { discordChannelMessageAdapter } = await import("./channel-adapters.discord-DSiR4X2Y.js");
46377
46475
  return discordChannelMessageAdapter;
46378
46476
  }
46379
46477
  return DEFAULT_ADAPTER;
@@ -47349,7 +47447,7 @@ async function resolveSlackChannelType(params) {
47349
47447
  return "unknown";
47350
47448
  }
47351
47449
  try {
47352
- const { createSlackWebClient } = await import("./client-pI228AVT.js").then((n) => n.t);
47450
+ const { createSlackWebClient } = await import("./client-DLY-kWF_.js").then((n) => n.t);
47353
47451
  const channel = (await createSlackWebClient(token).conversations.info({ channel: channelId })).channel;
47354
47452
  const type = channel?.is_im ? "dm" : channel?.is_mpim ? "group" : "channel";
47355
47453
  SLACK_CHANNEL_TYPE_CACHE.set(`${account.accountId}:${channelId}`, type);
@@ -73974,7 +74072,7 @@ async function resolveSlackNames(params) {
73974
74072
  });
73975
74073
  const token = account.config.userToken?.trim() || account.botToken?.trim();
73976
74074
  if (!token) return /* @__PURE__ */ new Map();
73977
- const { resolveSlackUserAllowlist } = await import("./resolve-users-DN9VQBwv.js").then((n) => n.n);
74075
+ const { resolveSlackUserAllowlist } = await import("./resolve-users-Bk_ss2vC.js").then((n) => n.n);
73978
74076
  return mapResolvedAllowlistNames(await resolveSlackUserAllowlist({
73979
74077
  token,
73980
74078
  entries: params.entries
@@ -73986,7 +74084,7 @@ async function resolveDiscordNames(params) {
73986
74084
  accountId: params.accountId
73987
74085
  }).token?.trim();
73988
74086
  if (!token) return /* @__PURE__ */ new Map();
73989
- const { resolveDiscordUserAllowlist } = await import("./resolve-users-V6dHh_2B.js").then((n) => n.n);
74087
+ const { resolveDiscordUserAllowlist } = await import("./resolve-users-IevCOk4W.js").then((n) => n.n);
73990
74088
  return mapResolvedAllowlistNames(await resolveDiscordUserAllowlist({
73991
74089
  token,
73992
74090
  entries: params.entries
@@ -84290,7 +84388,7 @@ async function recordLoopOutcome(args) {
84290
84388
  if (!args.ctx?.sessionKey) return;
84291
84389
  try {
84292
84390
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-DqgfGYqZ.js").then((n) => n.n);
84293
- const { recordToolCallOutcome } = await import("./tool-loop-detection-Bp8bPJLs.js");
84391
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-sDZl27w7.js");
84294
84392
  recordToolCallOutcome(getDiagnosticSessionState({
84295
84393
  sessionKey: args.ctx.sessionKey,
84296
84394
  sessionId: args.ctx?.agentId
@@ -84311,8 +84409,8 @@ async function runBeforeToolCallHook(args) {
84311
84409
  const params = args.params;
84312
84410
  if (args.ctx?.sessionKey) {
84313
84411
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-DqgfGYqZ.js").then((n) => n.n);
84314
- const { logToolLoopAction } = await import("./diagnostic-DLL_zekv.js").then((n) => n.n);
84315
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-Bp8bPJLs.js");
84412
+ const { logToolLoopAction } = await import("./diagnostic-sYs6Agr-.js").then((n) => n.n);
84413
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-sDZl27w7.js");
84316
84414
  const sessionState = getDiagnosticSessionState({
84317
84415
  sessionKey: args.ctx.sessionKey,
84318
84416
  sessionId: args.ctx?.agentId
@@ -87706,7 +87804,7 @@ const handleSessionCommand = async (params, allowTextCommands) => {
87706
87804
  reply: { text: resolveSessionCommandUsage() }
87707
87805
  };
87708
87806
  }
87709
- const { setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey } = await import("./thread-bindings.lifecycle-QbkNl-m6.js").then((n) => n.i);
87807
+ const { setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey } = await import("./thread-bindings.lifecycle-Y9T3CQGf.js").then((n) => n.i);
87710
87808
  const updatedBindings = action === SESSION_ACTION_IDLE ? setThreadBindingIdleTimeoutBySessionKey({
87711
87809
  targetSessionKey: binding.targetSessionKey,
87712
87810
  accountId,
@@ -97024,7 +97122,7 @@ const discordMessageActions = {
97024
97122
  return null;
97025
97123
  },
97026
97124
  handleAction: async ({ action, params, cfg, accountId, requesterSenderId, toolContext, mediaLocalRoots }) => {
97027
- const { handleDiscordMessageAction } = await import("./handle-action-hvwapMKg.js");
97125
+ const { handleDiscordMessageAction } = await import("./handle-action-CRdM6B-8.js");
97028
97126
  return await handleDiscordMessageAction({
97029
97127
  action,
97030
97128
  params,
@@ -97261,7 +97359,7 @@ const signalMessageActions = {
97261
97359
  //#region src/channels/plugins/actions/telegram.ts
97262
97360
  const providerId = "telegram";
97263
97361
  async function loadTelegramActionHandler() {
97264
- const { handleTelegramAction } = await import("./telegram-actions-H3gePEn6.js");
97362
+ const { handleTelegramAction } = await import("./telegram-actions-1X9A32Dn.js");
97265
97363
  return handleTelegramAction;
97266
97364
  }
97267
97365
  function readTelegramSendParams(params) {
@@ -97431,7 +97529,7 @@ function createWhatsAppLoginTool() {
97431
97529
  force: Type.Optional(Type.Boolean())
97432
97530
  }),
97433
97531
  execute: async (_toolCallId, args) => {
97434
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CGciBSNP.js");
97532
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CRueOKZK.js");
97435
97533
  if ((args?.action ?? "start") === "wait") {
97436
97534
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
97437
97535
  return {
@@ -99671,7 +99769,7 @@ function buildPairingReply(params) {
99671
99769
 
99672
99770
  //#endregion
99673
99771
  //#region src/brand.ts
99674
- const FASED_PRODUCT_VERSION = "0.1.66";
99772
+ const FASED_PRODUCT_VERSION = "0.1.68";
99675
99773
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
99676
99774
 
99677
99775
  //#endregion
@@ -103445,7 +103543,7 @@ async function auditTelegramGroupMembership(params) {
103445
103543
  groups: [],
103446
103544
  elapsedMs: Date.now() - started
103447
103545
  };
103448
- const fetcher = params.proxyUrl ? (await import("./proxy-DWpYcsvR.js").then((n) => n.n)).makeProxyFetch(params.proxyUrl) : fetch;
103546
+ const fetcher = params.proxyUrl ? (await import("./proxy-CLRUdShp.js").then((n) => n.n)).makeProxyFetch(params.proxyUrl) : fetch;
103449
103547
  const { fetchWithTimeout } = await import("./fetch-timeout-l_6RdoMw.js").then((n) => n.r);
103450
103548
  const base = `${TELEGRAM_API_BASE}/bot${token}`;
103451
103549
  const groups = [];
@@ -103550,87 +103648,87 @@ const handleWhatsAppActionLazy = async (...args) => {
103550
103648
  return handleWhatsAppAction(...args);
103551
103649
  };
103552
103650
  const auditDiscordChannelPermissionsLazy = async (...args) => {
103553
- const { auditDiscordChannelPermissions } = await import("./audit-C5d2z5U1.js").then((n) => n.t);
103651
+ const { auditDiscordChannelPermissions } = await import("./audit-CUULWG22.js").then((n) => n.t);
103554
103652
  return auditDiscordChannelPermissions(...args);
103555
103653
  };
103556
103654
  const listDiscordDirectoryGroupsLiveLazy = async (...args) => {
103557
- const { listDiscordDirectoryGroupsLive } = await import("./directory-live-CSuYxdwk.js").then((n) => n.t);
103655
+ const { listDiscordDirectoryGroupsLive } = await import("./directory-live-BXMpuYAF.js").then((n) => n.t);
103558
103656
  return listDiscordDirectoryGroupsLive(...args);
103559
103657
  };
103560
103658
  const listDiscordDirectoryPeersLiveLazy = async (...args) => {
103561
- const { listDiscordDirectoryPeersLive } = await import("./directory-live-CSuYxdwk.js").then((n) => n.t);
103659
+ const { listDiscordDirectoryPeersLive } = await import("./directory-live-BXMpuYAF.js").then((n) => n.t);
103562
103660
  return listDiscordDirectoryPeersLive(...args);
103563
103661
  };
103564
103662
  const probeDiscordLazy = async (...args) => {
103565
- const { probeDiscord } = await import("./probe-BFroeK3g.js").then((n) => n.n);
103663
+ const { probeDiscord } = await import("./probe-oVp12D6L.js").then((n) => n.n);
103566
103664
  return probeDiscord(...args);
103567
103665
  };
103568
103666
  const resolveDiscordChannelAllowlistLazy = async (...args) => {
103569
- const { resolveDiscordChannelAllowlist } = await import("./resolve-channels-87LZrFk_.js").then((n) => n.n);
103667
+ const { resolveDiscordChannelAllowlist } = await import("./resolve-channels-1HtDcMqh.js").then((n) => n.n);
103570
103668
  return resolveDiscordChannelAllowlist(...args);
103571
103669
  };
103572
103670
  const resolveDiscordUserAllowlistLazy = async (...args) => {
103573
- const { resolveDiscordUserAllowlist } = await import("./resolve-users-V6dHh_2B.js").then((n) => n.n);
103671
+ const { resolveDiscordUserAllowlist } = await import("./resolve-users-IevCOk4W.js").then((n) => n.n);
103574
103672
  return resolveDiscordUserAllowlist(...args);
103575
103673
  };
103576
103674
  const sendMessageDiscordLazy = async (...args) => {
103577
- const { sendMessageDiscord } = await import("./send-DCO441U7.js").then((n) => n.t);
103675
+ const { sendMessageDiscord } = await import("./send-BXBS_mRK.js").then((n) => n.t);
103578
103676
  return sendMessageDiscord(...args);
103579
103677
  };
103580
103678
  const sendPollDiscordLazy = async (...args) => {
103581
- const { sendPollDiscord } = await import("./send-DCO441U7.js").then((n) => n.t);
103679
+ const { sendPollDiscord } = await import("./send-BXBS_mRK.js").then((n) => n.t);
103582
103680
  return sendPollDiscord(...args);
103583
103681
  };
103584
103682
  const monitorDiscordProviderLazy = async (...args) => {
103585
- const { monitorDiscordProvider } = await import("./monitor-sW6dQdX1.js");
103683
+ const { monitorDiscordProvider } = await import("./monitor-DXIM16Hj.js");
103586
103684
  return monitorDiscordProvider(...args);
103587
103685
  };
103588
103686
  const listSlackDirectoryGroupsLiveLazy = async (...args) => {
103589
- const { listSlackDirectoryGroupsLive } = await import("./directory-live-Dw7ZgC9_.js");
103687
+ const { listSlackDirectoryGroupsLive } = await import("./directory-live-Rn1BzPof.js");
103590
103688
  return listSlackDirectoryGroupsLive(...args);
103591
103689
  };
103592
103690
  const listSlackDirectoryPeersLiveLazy = async (...args) => {
103593
- const { listSlackDirectoryPeersLive } = await import("./directory-live-Dw7ZgC9_.js");
103691
+ const { listSlackDirectoryPeersLive } = await import("./directory-live-Rn1BzPof.js");
103594
103692
  return listSlackDirectoryPeersLive(...args);
103595
103693
  };
103596
103694
  const probeSlackLazy = async (...args) => {
103597
- const { probeSlack } = await import("./probe-CJb5uR8B.js");
103695
+ const { probeSlack } = await import("./probe-BM7Oe40M.js");
103598
103696
  return probeSlack(...args);
103599
103697
  };
103600
103698
  const resolveSlackChannelAllowlistLazy = async (...args) => {
103601
- const { resolveSlackChannelAllowlist } = await import("./resolve-channels-_-nV-EK2.js").then((n) => n.n);
103699
+ const { resolveSlackChannelAllowlist } = await import("./resolve-channels-CU72Qh2j.js").then((n) => n.n);
103602
103700
  return resolveSlackChannelAllowlist(...args);
103603
103701
  };
103604
103702
  const resolveSlackUserAllowlistLazy = async (...args) => {
103605
- const { resolveSlackUserAllowlist } = await import("./resolve-users-DN9VQBwv.js").then((n) => n.n);
103703
+ const { resolveSlackUserAllowlist } = await import("./resolve-users-Bk_ss2vC.js").then((n) => n.n);
103606
103704
  return resolveSlackUserAllowlist(...args);
103607
103705
  };
103608
103706
  const sendMessageSlackLazy = async (...args) => {
103609
- const { sendMessageSlack } = await import("./send-gDoGA-7e.js").then((n) => n.n);
103707
+ const { sendMessageSlack } = await import("./send-Di1Jit3L.js").then((n) => n.n);
103610
103708
  return sendMessageSlack(...args);
103611
103709
  };
103612
103710
  const monitorSlackProviderLazy = async (...args) => {
103613
- const { monitorSlackProvider } = await import("./slack-BZISDxDd.js");
103711
+ const { monitorSlackProvider } = await import("./slack-B-nOOLM0.js");
103614
103712
  return monitorSlackProvider(...args);
103615
103713
  };
103616
103714
  const handleSlackActionLazy = async (...args) => {
103617
- const { handleSlackAction } = await import("./slack-actions-DhbMcp8M.js");
103715
+ const { handleSlackAction } = await import("./slack-actions-BzUEszJa.js");
103618
103716
  return handleSlackAction(...args);
103619
103717
  };
103620
103718
  const probeTelegramLazy = async (...args) => {
103621
- const { probeTelegram } = await import("./probe-l_whvGLY.js");
103719
+ const { probeTelegram } = await import("./probe-CMPksimh.js");
103622
103720
  return probeTelegram(...args);
103623
103721
  };
103624
103722
  const sendMessageTelegramLazy = async (...args) => {
103625
- const { sendMessageTelegram } = await import("./send-q9HXrSwK.js").then((n) => n.c);
103723
+ const { sendMessageTelegram } = await import("./send-DWKm6yay.js").then((n) => n.c);
103626
103724
  return sendMessageTelegram(...args);
103627
103725
  };
103628
103726
  const sendPollTelegramLazy = async (...args) => {
103629
- const { sendPollTelegram } = await import("./send-q9HXrSwK.js").then((n) => n.c);
103727
+ const { sendPollTelegram } = await import("./send-DWKm6yay.js").then((n) => n.c);
103630
103728
  return sendPollTelegram(...args);
103631
103729
  };
103632
103730
  const monitorTelegramProviderLazy = async (...args) => {
103633
- const { monitorTelegramProvider } = await import("./monitor-FuBPk-AL.js");
103731
+ const { monitorTelegramProvider } = await import("./monitor-DUMMbG4h.js");
103634
103732
  return monitorTelegramProvider(...args);
103635
103733
  };
103636
103734
  let webOutboundPromise = null;
@@ -103639,23 +103737,23 @@ let webLoginQrPromise = null;
103639
103737
  let webChannelPromise = null;
103640
103738
  let whatsappActionsPromise = null;
103641
103739
  function loadWebOutbound() {
103642
- webOutboundPromise ??= import("./outbound-BgVDdHxx.js").then((n) => n.t);
103740
+ webOutboundPromise ??= import("./outbound-zB6llMGW.js").then((n) => n.t);
103643
103741
  return webOutboundPromise;
103644
103742
  }
103645
103743
  function loadWebLogin() {
103646
- webLoginPromise ??= import("./login-Ca583Okc.js").then((n) => n.n);
103744
+ webLoginPromise ??= import("./login-D7WnK8-P.js").then((n) => n.n);
103647
103745
  return webLoginPromise;
103648
103746
  }
103649
103747
  function loadWebLoginQr() {
103650
- webLoginQrPromise ??= import("./login-qr-CGciBSNP.js");
103748
+ webLoginQrPromise ??= import("./login-qr-CRueOKZK.js");
103651
103749
  return webLoginQrPromise;
103652
103750
  }
103653
103751
  function loadWebChannel() {
103654
- webChannelPromise ??= import("./web-JwP9PAZR.js");
103752
+ webChannelPromise ??= import("./web-BvjNyYBz.js");
103655
103753
  return webChannelPromise;
103656
103754
  }
103657
103755
  function loadWhatsAppActions() {
103658
- whatsappActionsPromise ??= import("./whatsapp-actions-Bj_rOncr.js");
103756
+ whatsappActionsPromise ??= import("./whatsapp-actions-Blu9-eX-.js");
103659
103757
  return whatsappActionsPromise;
103660
103758
  }
103661
103759
  function createPluginRuntime(options = {}) {
@@ -114229,7 +114327,7 @@ function createOpenAIReasoningEffortWrapper(baseStreamFn, reasoningEffort) {
114229
114327
  function createCodexDefaultTransportWrapper(baseStreamFn) {
114230
114328
  const underlying = baseStreamFn ?? streamSimple;
114231
114329
  return (model, context, options) => {
114232
- if (typeof process !== "undefined" && process.versions?.node) globalThis.WebSocket = WebSocket;
114330
+ if (typeof process !== "undefined" && process.versions?.node) globalThis.WebSocket = WebSocket$1;
114233
114331
  return underlying(model, context, {
114234
114332
  ...options,
114235
114333
  transport: options?.transport ?? "auto"