squidclaw 3.0.26 → 3.0.27

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 (132) hide show
  1. package/dist/{agents-DXKtU4Il.js → agents-SHmmlinC.js} +4 -4
  2. package/dist/{agents.config-eMSUW-iw.js → agents.config-C4bgEbdA.js} +1 -1
  3. package/dist/{agents.config-BM-2SLCh.js → agents.config-CKbSiVW4.js} +1 -1
  4. package/dist/{audio-preflight-Bzo_zN4j.js → audio-preflight-lT9iRnYi.js} +4 -4
  5. package/dist/{audio-transcription-runner-Cp_lkLCv.js → audio-transcription-runner-YiR1ym3a.js} +1 -1
  6. package/dist/{auth-choice-CXepQc7c.js → auth-choice-DOEtSP7U.js} +1 -1
  7. package/dist/{auth-choice-D2JrMJn-.js → auth-choice-nbbKEYIm.js} +1 -1
  8. package/dist/{banner-DMfuBV69.js → banner-CgxbDb-A.js} +1 -1
  9. package/dist/build-info.json +2 -2
  10. package/dist/bundled/boot-md/handler.js +1 -1
  11. package/dist/bundled/session-memory/handler.js +1 -1
  12. package/dist/{channel-options-CQ-gER0J.js → channel-options-DD8pn51g.js} +1 -1
  13. package/dist/{channel-options-SijIkAlT.js → channel-options-DORsSb06.js} +1 -1
  14. package/dist/{channel-web-7t1a2N13.js → channel-web-BvloWcnP.js} +1 -1
  15. package/dist/{channel-web-LLzBxZrT.js → channel-web-C9gRSNfc.js} +1 -1
  16. package/dist/{channels-cli-D4xUEYYC.js → channels-cli-DiA6DH6p.js} +6 -6
  17. package/dist/{channels-cli-DYaFNMme.js → channels-cli-DqyjCJAf.js} +6 -6
  18. package/dist/{chrome-CZQnp4VH.js → chrome-CuBHInKC.js} +8 -8
  19. package/dist/{cli-CAID9zkL.js → cli-BNZDUFuk.js} +1 -1
  20. package/dist/{cli-Dlc9IFWZ.js → cli-DCsEN1fp.js} +1 -1
  21. package/dist/{command-registry-AHS8_9da.js → command-registry-DntrnfSZ.js} +9 -9
  22. package/dist/{completion-cli-B8xjpHDs.js → completion-cli-0kzbsPCE.js} +1 -1
  23. package/dist/{completion-cli-BR1r9_h4.js → completion-cli-ZG2HRTZw.js} +2 -2
  24. package/dist/{config-cli-D4Rxoozg.js → config-cli-B70aSBjJ.js} +1 -1
  25. package/dist/{config-cli-D0A8Awoo.js → config-cli-DyB3LaLr.js} +1 -1
  26. package/dist/{configure-DOiI8_8c.js → configure-DFjC_USC.js} +3 -3
  27. package/dist/{configure-XmOqwwy9.js → configure-HAlDPfOO.js} +3 -3
  28. package/dist/{deliver-B4WWPQvt.js → deliver-6zfT7daI.js} +1 -1
  29. package/dist/{deliver-runtime-CeE1X9si.js → deliver-runtime-MBexxUuG.js} +3 -3
  30. package/dist/{deps-send-whatsapp.runtime-__ogpmJj.js → deps-send-whatsapp.runtime-B6WZfxsU.js} +3 -3
  31. package/dist/{deps-send-whatsapp.runtime-CETLGt-t.js → deps-send-whatsapp.runtime-BTVEWhWJ.js} +3 -3
  32. package/dist/{deps-send-whatsapp.runtime-4aOUBP2J.js → deps-send-whatsapp.runtime-BdydhhI-.js} +2 -2
  33. package/dist/{deps-send-whatsapp.runtime-COv_qoD2.js → deps-send-whatsapp.runtime-gVafyT5b.js} +7 -7
  34. package/dist/{doctor-completion-CZoEdMS-.js → doctor-completion-B6t4VCC2.js} +1 -1
  35. package/dist/{doctor-completion-DhLEFUhN.js → doctor-completion-Bdaa-Pnx.js} +1 -1
  36. package/dist/entry.js +2 -2
  37. package/dist/extensionAPI.js +6 -6
  38. package/dist/{gateway-cli-BJHBChfI.js → gateway-cli-BvESvgyp.js} +8 -8
  39. package/dist/{gateway-cli-BpHskeDd.js → gateway-cli-DTUsG7Sq.js} +8 -8
  40. package/dist/{health-TmpUGSqu.js → health-ChHiOfOC.js} +1 -1
  41. package/dist/{health-XFKFZ7ZJ.js → health-LxEzhXog.js} +1 -1
  42. package/dist/{hooks-cli-DsDV-Pxz.js → hooks-cli-B2_cA6tp.js} +2 -2
  43. package/dist/{hooks-cli-CXsZK8H9.js → hooks-cli-CLigFQsx.js} +2 -2
  44. package/dist/{image-DKkuLtZ4.js → image-VgwN31FZ.js} +1 -1
  45. package/dist/{image-runtime-BMavqm9n.js → image-runtime-CwMuTYvd.js} +3 -3
  46. package/dist/index.js +6 -6
  47. package/dist/llm-slug-generator.js +1 -1
  48. package/dist/{models-5VXwJBU2.js → models-BV4zhGnq.js} +2 -2
  49. package/dist/{models-cli-CrR1RN3j.js → models-cli-BNn-0rl0.js} +2 -2
  50. package/dist/{models-cli-Br56IHfy.js → models-cli-Dpj_xSPh.js} +3 -3
  51. package/dist/{npm-resolution-CPk7dS7F.js → npm-resolution-CKHXw_Cx.js} +1 -1
  52. package/dist/{npm-resolution-CKtyq4FH.js → npm-resolution-CnaTt2aT.js} +1 -1
  53. package/dist/{onboard-DUnBamC0.js → onboard-C4ayp9K2.js} +2 -2
  54. package/dist/{onboard-lFwpCpC3.js → onboard-J6n7v4Bo.js} +2 -2
  55. package/dist/{onboard-channels-D45grihx.js → onboard-channels-BHxe-ulR.js} +1 -1
  56. package/dist/{onboard-channels-_kVo3Apf.js → onboard-channels-Csy6Ng39.js} +1 -1
  57. package/dist/{onboarding-EEd_g8Zg.js → onboarding-BKxsnOPg.js} +3 -3
  58. package/dist/{onboarding-CyCSQ__q.js → onboarding-Cx8FcYRx.js} +3 -3
  59. package/dist/{onboarding.finalize-CbMq7C4K.js → onboarding.finalize-BxXIISee.js} +5 -5
  60. package/dist/{onboarding.finalize-Cs1ukjFN.js → onboarding.finalize-DhPoPhfX.js} +6 -6
  61. package/dist/{pi-embedded-BiC4tIJ8.js → pi-embedded-CpNkNjFv.js} +13 -8
  62. package/dist/{pi-embedded-BR5y0dLa.js → pi-embedded-D6gxI0xB.js} +33 -28
  63. package/dist/{pi-embedded-helpers-CEHpGDRs.js → pi-embedded-helpers-A9VYPVCH.js} +3 -3
  64. package/dist/{plugin-registry-CXm125Uz.js → plugin-registry-CJ9E3pVF.js} +1 -1
  65. package/dist/{plugin-registry-D3PnPE1D.js → plugin-registry-DbWGikL_.js} +1 -1
  66. package/dist/plugin-sdk/{channel-web-CbeCrQ4C.js → channel-web-C14ArXJA.js} +1 -1
  67. package/dist/plugin-sdk/{channel-web-CqiSEc52.js → channel-web-K0nTiIAp.js} +1 -1
  68. package/dist/plugin-sdk/compat.js +2 -2
  69. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DvxhnHR_.js → deps-send-whatsapp.runtime-DzQP5jh0.js} +3 -3
  70. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-JKmTtCFM.js → deps-send-whatsapp.runtime-H-PnN716.js} +3 -3
  71. package/dist/plugin-sdk/index.js +2 -2
  72. package/dist/plugin-sdk/mattermost.js +3 -3
  73. package/dist/plugin-sdk/{reply-BczXGzC_.js → reply-BF5OTD_L.js} +13 -8
  74. package/dist/plugin-sdk/{reply-Dfjh1YtV.js → reply-COSG33YP.js} +13 -8
  75. package/dist/plugin-sdk/signal.js +2 -2
  76. package/dist/plugin-sdk/{slash-dispatch.runtime-DOo1IzuY.js → slash-dispatch.runtime-CyZxEAJd.js} +1 -1
  77. package/dist/plugin-sdk/{slash-dispatch.runtime-JfFr7bNy.js → slash-dispatch.runtime-Rs2PDg_H.js} +1 -1
  78. package/dist/plugin-sdk/{subagent-registry-runtime-DVl5xKOW.js → subagent-registry-runtime-5SKqbH1r.js} +1 -1
  79. package/dist/plugin-sdk/{subagent-registry-runtime-DLvup9ph.js → subagent-registry-runtime-B9vyMA3A.js} +1 -1
  80. package/dist/plugin-sdk/{web-CNY_ky8h.js → web-BiiXAqmT.js} +2 -2
  81. package/dist/plugin-sdk/{web-C2Sj2WW0.js → web-zcehLsEt.js} +2 -2
  82. package/dist/plugin-sdk/whatsapp.js +2 -2
  83. package/dist/{plugins-cli-C0WKWrZo.js → plugins-cli-BSLJbHhh.js} +2 -2
  84. package/dist/{plugins-cli-BA_2daJe.js → plugins-cli-CIyP8IsD.js} +2 -2
  85. package/dist/{program-D_xdLzmM.js → program-DQjjnBkB.js} +7 -7
  86. package/dist/{program-context-DfmCIQ91.js → program-context-jw4pIT7h.js} +17 -17
  87. package/dist/{prompt-select-styled-BsheNEnh.js → prompt-select-styled-BeXqhuug.js} +4 -4
  88. package/dist/{prompt-select-styled-ApPSadr5.js → prompt-select-styled-Uc8ws2hS.js} +4 -4
  89. package/dist/{provider-auth-helpers-DpOFkV28.js → provider-auth-helpers-B4o2t23Z.js} +1 -1
  90. package/dist/{provider-auth-helpers-B5kD4Lt6.js → provider-auth-helpers-m2vq3OJC.js} +1 -1
  91. package/dist/{push-apns-BbenjEX4.js → push-apns-C3QRVcrx.js} +1 -1
  92. package/dist/{push-apns-Ci2sdIKf.js → push-apns-DZW7HOYq.js} +1 -1
  93. package/dist/{pw-ai-Du22SYoO.js → pw-ai-CM87tQwG.js} +1 -1
  94. package/dist/{register.agent-Dk_5V5oA.js → register.agent-Bpp6PZCy.js} +7 -7
  95. package/dist/{register.agent-CY6R-7fn.js → register.agent-iwQM76PJ.js} +6 -6
  96. package/dist/{register.configure-DT1RLeTR.js → register.configure-BF2wUdYo.js} +7 -7
  97. package/dist/{register.configure-C8OFfGln.js → register.configure-CRZBn5QG.js} +7 -7
  98. package/dist/{register.maintenance-CluQOq8b.js → register.maintenance-CY58DnhU.js} +8 -8
  99. package/dist/{register.maintenance-YHXmOQzf.js → register.maintenance-DsI8Ks22.js} +7 -7
  100. package/dist/{register.message-BCTXT5yK.js → register.message-BNyQROsP.js} +2 -2
  101. package/dist/{register.message-BuoFjRqA.js → register.message-hQSgElgK.js} +2 -2
  102. package/dist/{register.onboard-C64oXnvq.js → register.onboard-DsHEjOlQ.js} +2 -2
  103. package/dist/{register.onboard-BJaRMtxU.js → register.onboard-TE1k9WgU.js} +2 -2
  104. package/dist/{register.setup-Dl3nk2Ui.js → register.setup-BkSWcd_T.js} +2 -2
  105. package/dist/{register.setup-Drc55K_w.js → register.setup-CA8_egXk.js} +2 -2
  106. package/dist/{register.status-health-sessions-BHtbPeCO.js → register.status-health-sessions-Ck1506Mz.js} +3 -3
  107. package/dist/{register.status-health-sessions-xgC_gtEM.js → register.status-health-sessions-D74vOhub.js} +3 -3
  108. package/dist/{register.subclis-CDMFyaKR.js → register.subclis-D10eRT52.js} +9 -9
  109. package/dist/{reply-DwjHsBuj.js → reply-m8ZD17d0.js} +13 -8
  110. package/dist/{run-main-BcA22Ipv.js → run-main-BmvUIN8f.js} +14 -14
  111. package/dist/{server-node-events-Q0cT2ifj.js → server-node-events-B-ChStFC.js} +2 -2
  112. package/dist/{server-node-events-YN5eJeHa.js → server-node-events-Bf13eFLP.js} +2 -2
  113. package/dist/{slash-dispatch.runtime-DB1QsBRc.js → slash-dispatch.runtime-Cf52SJTn.js} +1 -1
  114. package/dist/{slash-dispatch.runtime-BOMEVFk0.js → slash-dispatch.runtime-DLikrqBw.js} +1 -1
  115. package/dist/{slash-dispatch.runtime-BcecLKcJ.js → slash-dispatch.runtime-DxgmWXzN.js} +6 -6
  116. package/dist/{slash-dispatch.runtime-SO7HOe8q.js → slash-dispatch.runtime-frzN4e57.js} +1 -1
  117. package/dist/{status-Bh5x6DsW.js → status-B65tE-ru.js} +2 -2
  118. package/dist/{status-cU9cJReo.js → status-p6oFQt1P.js} +2 -2
  119. package/dist/{subagent-registry-CIgFD2oi.js → subagent-registry-BbkRn-Tn.js} +13 -8
  120. package/dist/{subagent-registry-runtime-D7ubAnDZ.js → subagent-registry-runtime-BQ5-n2Pj.js} +1 -1
  121. package/dist/{subagent-registry-runtime-D2rUxU5J.js → subagent-registry-runtime-BTVxLFQ2.js} +1 -1
  122. package/dist/{subagent-registry-runtime-DGTjU9Lb.js → subagent-registry-runtime-DP1IpqM_.js} +1 -1
  123. package/dist/{subagent-registry-runtime-Cq9I6PwW.js → subagent-registry-runtime-DY9wpSRG.js} +6 -6
  124. package/dist/{update-cli-CktBOXZF.js → update-cli-BD9-Sh3i.js} +7 -7
  125. package/dist/{update-cli-DM_dUip_.js → update-cli-Cs3nfqwA.js} +8 -8
  126. package/dist/{update-runner-BYGPkHXG.js → update-runner-V-Y-KbTK.js} +1 -1
  127. package/dist/{update-runner-BBJZmfZ4.js → update-runner-pNSMe2xh.js} +1 -1
  128. package/dist/{web-QsxgXbNK.js → web-B3GIA0Oq.js} +1 -1
  129. package/dist/{web-CZhZC1EA.js → web-B3i9lUAX.js} +2 -2
  130. package/dist/{web-DWRZAXj9.js → web-DZHRoMwF.js} +2 -2
  131. package/dist/{web-CWxO_flK.js → web-HXuEa1UL.js} +6 -6
  132. package/package.json +1 -1
@@ -6,18 +6,18 @@ import { a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, d as resolveDefau
6
6
  import { c as normalizeAgentId, g as DEFAULT_ACCOUNT_ID, t as DEFAULT_AGENT_ID } from "./session-key-k6urs9r-.js";
7
7
  import { v as resolveUserPath, x as shortenHomePath } from "./utils-D6vohX1h.js";
8
8
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BDTkSIi7.js";
9
- import { U as parseIdentityMarkdown, V as identityHasValues } from "./subagent-registry-CIgFD2oi.js";
9
+ import { U as parseIdentityMarkdown, V as identityHasValues } from "./subagent-registry-BbkRn-Tn.js";
10
10
  import { s as resolveSessionTranscriptsDirForAgent } from "./paths-Dn_rzeZN.js";
11
11
  import { a as ensureWorkspaceAndSessions, l as moveToTrash } from "./onboard-helpers-BP429__H.js";
12
12
  import { t as WizardCancelledError } from "./prompts-l_pUOv42.js";
13
13
  import { t as createClackPrompter } from "./clack-prompter-DU01bRlk.js";
14
14
  import { t as resolveChannelDefaultAccountId } from "./helpers-D7MilaX-.js";
15
15
  import { a as parseBindingSpecs, i as describeBinding, n as applyAgentBindings, o as removeAgentBindings, r as buildChannelBindings, t as requireValidConfigSnapshot } from "./config-validation-BkvDORAk.js";
16
- import { a as pruneAgentConfig, i as loadAgentIdentity, n as buildAgentSummaries, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BM-2SLCh.js";
17
- import { r as setupChannels } from "./onboard-channels-_kVo3Apf.js";
16
+ import { a as pruneAgentConfig, i as loadAgentIdentity, n as buildAgentSummaries, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CKbSiVW4.js";
17
+ import { r as setupChannels } from "./onboard-channels-Csy6Ng39.js";
18
18
  import { n as logConfigUpdated } from "./logging-ZAeFsd9K.js";
19
19
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-4mupmvzh.js";
20
- import { i as applyAuthChoice, r as warnIfModelConfigLooksOff } from "./auth-choice-CXepQc7c.js";
20
+ import { i as applyAuthChoice, r as warnIfModelConfigLooksOff } from "./auth-choice-DOEtSP7U.js";
21
21
  import path from "node:path";
22
22
  import fs from "node:fs/promises";
23
23
 
@@ -1,4 +1,4 @@
1
- import { nn as identityHasValues, rn as loadAgentIdentityFromWorkspace } from "./reply-DwjHsBuj.js";
1
+ import { nn as identityHasValues, rn as loadAgentIdentityFromWorkspace } from "./reply-m8ZD17d0.js";
2
2
  import { a as resolveAgentDir, d as resolveDefaultAgentId, n as listAgentEntries, u as resolveAgentWorkspaceDir } from "./agent-scope-C1XMay0T.js";
3
3
  import { c as normalizeAgentId } from "./session-key-CIXZm7v4.js";
4
4
 
@@ -1,6 +1,6 @@
1
1
  import { a as resolveAgentDir, d as resolveDefaultAgentId, n as listAgentEntries, u as resolveAgentWorkspaceDir } from "./agent-scope-Cq4vDGrK.js";
2
2
  import { c as normalizeAgentId } from "./session-key-k6urs9r-.js";
3
- import { H as loadAgentIdentityFromWorkspace, V as identityHasValues } from "./subagent-registry-CIgFD2oi.js";
3
+ import { H as loadAgentIdentityFromWorkspace, V as identityHasValues } from "./subagent-registry-BbkRn-Tn.js";
4
4
 
5
5
  //#region src/commands/agents.config.ts
6
6
  function findAgentEntryIndex(list, agentId) {
@@ -8,8 +8,8 @@ import "./plugins-BxlUqxlx.js";
8
8
  import "./accounts-DpFVWw4d.js";
9
9
  import "./accounts-BVDcCQsz.js";
10
10
  import "./image-ops-Co3B94Bx.js";
11
- import "./pi-embedded-helpers-CEHpGDRs.js";
12
- import "./chrome-CZQnp4VH.js";
11
+ import "./pi-embedded-helpers-A9VYPVCH.js";
12
+ import "./chrome-CuBHInKC.js";
13
13
  import "./skills-CjGoSoba.js";
14
14
  import "./path-alias-guards-DLHloUkx.js";
15
15
  import "./redact-kK-uDSQK.js";
@@ -20,8 +20,8 @@ import "./store-CSh2TRFG.js";
20
20
  import "./accounts-B5aNbLs5.js";
21
21
  import "./paths-BeCJt7wC.js";
22
22
  import "./tool-images-ZB2Mu1HF.js";
23
- import "./image-DKkuLtZ4.js";
24
- import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-Cp_lkLCv.js";
23
+ import "./image-VgwN31FZ.js";
24
+ import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-YiR1ym3a.js";
25
25
  import "./fetch-VXOrovPC.js";
26
26
  import "./fetch-guard-DU7jYYlW.js";
27
27
  import "./api-key-rotation-DAwwDa1O.js";
@@ -3,7 +3,7 @@ import { L as logVerbose, O as createSubsystemLogger, Y as resolvePreferredSquid
3
3
  import { A as requireApiKey, Y as loadConfig, at as isInboundPathAllowed, c as normalizeProviderId, cr as resolveSquidClawAgentDir, h as normalizeGoogleModelId, it as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, j as resolveApiKeyForProvider, ot as mergeInboundPathRoots, st as resolveIMessageAttachmentRoots } from "./model-selection-BREqRzjS.js";
4
4
  import { _ as normalizeChatType } from "./plugins-BxlUqxlx.js";
5
5
  import { E as kindFromMime, S as getFileExtension, b as detectMime, w as isAudioFileName } from "./image-ops-Co3B94Bx.js";
6
- import { t as describeImageWithModel, w as ensureSquidClawModelsJson } from "./image-DKkuLtZ4.js";
6
+ import { t as describeImageWithModel, w as ensureSquidClawModelsJson } from "./image-VgwN31FZ.js";
7
7
  import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia, t as MediaFetchError } from "./fetch-VXOrovPC.js";
8
8
  import { n as fetchWithTimeout } from "./fetch-timeout-B_Wivh-n.js";
9
9
  import { t as fetchWithSsrFGuard } from "./fetch-guard-DU7jYYlW.js";
@@ -7,7 +7,7 @@ import { f as openUrl } from "./onboard-helpers-BP429__H.js";
7
7
  import { t as enablePluginInConfig } from "./enable-C8FNY18p.js";
8
8
  import { a as normalizeSecretInputModeInput, c as resolveSecretInputModeForEnvSelection, d as normalizeApiKeyInput, f as validateApiKeyInput, i as ensureApiKeyFromOptionEnvOrPrompt, l as applyDefaultModelChoice, n as createAuthChoiceDefaultModelApplierForMutableState, o as normalizeTokenProviderInput, s as promptSecretRefForOnboarding, t as createAuthChoiceAgentModelNoter, u as ensureModelAllowlistEntry } from "./auth-choice.apply-helpers-p1y_DmDT.js";
9
9
  import { $ as ZAI_DEFAULT_MODEL_REF, A as applyTogetherConfig, B as applyLitellmConfig, C as applyMoonshotProviderConfigCn, Ct as writeOAuthCredentials, D as applyQianfanProviderConfig, Dt as QIANFAN_DEFAULT_MODEL_REF, E as applyQianfanConfig, Et as MOONSHOT_DEFAULT_MODEL_REF, F as applyXaiProviderConfig, G as applyVercelAiGatewayProviderConfig, H as applyCloudflareAiGatewayConfig, I as applyXiaomiConfig, J as LITELLM_DEFAULT_MODEL_REF, K as applyAgentDefaultModelPrimary, L as applyXiaomiProviderConfig, M as applyVeniceConfig, N as applyVeniceProviderConfig, O as applySyntheticConfig, Ot as XAI_DEFAULT_MODEL_REF, P as applyXaiConfig, Q as XIAOMI_DEFAULT_MODEL_REF, R as applyZaiConfig, S as applyMoonshotProviderConfig, St as setZaiApiKey, T as applyOpenrouterProviderConfig, Tt as MISTRAL_DEFAULT_MODEL_REF, U as applyCloudflareAiGatewayProviderConfig, V as applyLitellmProviderConfig, W as applyVercelAiGatewayConfig, X as TOGETHER_DEFAULT_MODEL_REF, Y as OPENROUTER_DEFAULT_MODEL_REF, Z as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, _ as applyKimiCodeProviderConfig, _t as setVeniceApiKey, a as applyMinimaxApiConfig, at as setKilocodeApiKey, b as applyMoonshotConfig, bt as setXaiApiKey, c as applyMinimaxApiProviderConfigCn, ct as setMinimaxApiKey, d as applyAuthProfileConfig, dt as setOpenaiApiKey, et as setAnthropicApiKey, ft as setOpencodeZenApiKey, g as applyKimiCodeConfig, gt as setTogetherApiKey, h as applyKilocodeProviderConfig, ht as setSyntheticApiKey, i as applyOpencodeZenProviderConfig, it as setHuggingfaceApiKey, j as applyTogetherProviderConfig, k as applySyntheticProviderConfig, l as applyMinimaxConfig, lt as setMistralApiKey, m as applyKilocodeConfig, mt as setQianfanApiKey, n as validateAnthropicSetupToken, nt as setCloudflareAiGatewayConfig, o as applyMinimaxApiConfigCn, ot as setKimiCodingApiKey, p as applyHuggingfaceProviderConfig, pt as setOpenrouterApiKey, q as HUGGINGFACE_DEFAULT_MODEL_REF, r as applyOpencodeZenConfig, rt as setGeminiApiKey, s as applyMinimaxApiProviderConfig, st as setLitellmApiKey, t as buildTokenProfileId, tt as setByteplusApiKey, u as applyMinimaxProviderConfig, ut as setMoonshotApiKey, v as applyMistralConfig, vt as setVercelAiGatewayApiKey, w as applyOpenrouterConfig, wt as KIMI_CODING_MODEL_REF, x as applyMoonshotConfigCn, xt as setXiaomiApiKey, y as applyMistralProviderConfig, yt as setVolcengineApiKey, z as applyZaiProviderConfig } from "./auth-token-Dlk7MMsC.js";
10
- import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-B5kD4Lt6.js";
10
+ import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-m2vq3OJC.js";
11
11
  import { a as GOOGLE_GEMINI_DEFAULT_MODEL, i as detectZaiEndpoint, n as applyOpenAIConfig, o as applyGoogleGeminiModelDefault, r as applyOpenAIProviderConfig, t as OPENAI_DEFAULT_MODEL } from "./openai-model-default-COzeuAI4.js";
12
12
  import { c as OPENAI_CODEX_DEFAULT_MODEL, l as applyOpenAICodexModelDefault, r as applyPrimaryModel, s as promptAndConfigureVllm } from "./model-picker-CLhaaagi.js";
13
13
  import { r as runOpenAIOAuthTlsPreflight, t as formatOpenAIOAuthTlsPreflightFix } from "./oauth-tls-preflight-6-9iUInB.js";
@@ -7,7 +7,7 @@ import { f as openUrl } from "./onboard-helpers-BhKVkEoo.js";
7
7
  import { t as enablePluginInConfig } from "./enable-BtmJTbu7.js";
8
8
  import { a as normalizeSecretInputModeInput, c as resolveSecretInputModeForEnvSelection, d as normalizeApiKeyInput, f as validateApiKeyInput, i as ensureApiKeyFromOptionEnvOrPrompt, l as applyDefaultModelChoice, n as createAuthChoiceDefaultModelApplierForMutableState, o as normalizeTokenProviderInput, s as promptSecretRefForOnboarding, t as createAuthChoiceAgentModelNoter, u as ensureModelAllowlistEntry } from "./auth-choice.apply-helpers-u_T6j86c.js";
9
9
  import { $ as ZAI_DEFAULT_MODEL_REF, A as applyTogetherConfig, B as applyLitellmConfig, C as applyMoonshotProviderConfigCn, Ct as writeOAuthCredentials, D as applyQianfanProviderConfig, Dt as QIANFAN_DEFAULT_MODEL_REF, E as applyQianfanConfig, Et as MOONSHOT_DEFAULT_MODEL_REF, F as applyXaiProviderConfig, G as applyVercelAiGatewayProviderConfig, H as applyCloudflareAiGatewayConfig, I as applyXiaomiConfig, J as LITELLM_DEFAULT_MODEL_REF, K as applyAgentDefaultModelPrimary, L as applyXiaomiProviderConfig, M as applyVeniceConfig, N as applyVeniceProviderConfig, O as applySyntheticConfig, Ot as XAI_DEFAULT_MODEL_REF, P as applyXaiConfig, Q as XIAOMI_DEFAULT_MODEL_REF, R as applyZaiConfig, S as applyMoonshotProviderConfig, St as setZaiApiKey, T as applyOpenrouterProviderConfig, Tt as MISTRAL_DEFAULT_MODEL_REF, U as applyCloudflareAiGatewayProviderConfig, V as applyLitellmProviderConfig, W as applyVercelAiGatewayConfig, X as TOGETHER_DEFAULT_MODEL_REF, Y as OPENROUTER_DEFAULT_MODEL_REF, Z as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, _ as applyKimiCodeProviderConfig, _t as setVeniceApiKey, a as applyMinimaxApiConfig, at as setKilocodeApiKey, b as applyMoonshotConfig, bt as setXaiApiKey, c as applyMinimaxApiProviderConfigCn, ct as setMinimaxApiKey, d as applyAuthProfileConfig, dt as setOpenaiApiKey, et as setAnthropicApiKey, ft as setOpencodeZenApiKey, g as applyKimiCodeConfig, gt as setTogetherApiKey, h as applyKilocodeProviderConfig, ht as setSyntheticApiKey, i as applyOpencodeZenProviderConfig, it as setHuggingfaceApiKey, j as applyTogetherProviderConfig, k as applySyntheticProviderConfig, l as applyMinimaxConfig, lt as setMistralApiKey, m as applyKilocodeConfig, mt as setQianfanApiKey, n as validateAnthropicSetupToken, nt as setCloudflareAiGatewayConfig, o as applyMinimaxApiConfigCn, ot as setKimiCodingApiKey, p as applyHuggingfaceProviderConfig, pt as setOpenrouterApiKey, q as HUGGINGFACE_DEFAULT_MODEL_REF, r as applyOpencodeZenConfig, rt as setGeminiApiKey, s as applyMinimaxApiProviderConfig, st as setLitellmApiKey, t as buildTokenProfileId, tt as setByteplusApiKey, u as applyMinimaxProviderConfig, ut as setMoonshotApiKey, v as applyMistralConfig, vt as setVercelAiGatewayApiKey, w as applyOpenrouterConfig, wt as KIMI_CODING_MODEL_REF, x as applyMoonshotConfigCn, xt as setXiaomiApiKey, y as applyMistralProviderConfig, yt as setVolcengineApiKey, z as applyZaiProviderConfig } from "./auth-token-DP7ezQbX.js";
10
- import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-DpOFkV28.js";
10
+ import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-B4o2t23Z.js";
11
11
  import { a as GOOGLE_GEMINI_DEFAULT_MODEL, i as detectZaiEndpoint, n as applyOpenAIConfig, o as applyGoogleGeminiModelDefault, r as applyOpenAIProviderConfig, t as OPENAI_DEFAULT_MODEL } from "./openai-model-default-U91uZ0PS.js";
12
12
  import { c as OPENAI_CODEX_DEFAULT_MODEL, l as applyOpenAICodexModelDefault, r as applyPrimaryModel, s as promptAndConfigureVllm } from "./model-picker-C3iHY6CJ.js";
13
13
  import { r as runOpenAIOAuthTlsPreflight, t as formatOpenAIOAuthTlsPreflightFix } from "./oauth-tls-preflight-CqqomOFQ.js";
@@ -1,7 +1,7 @@
1
1
  import { f as isRich, p as theme, z as hasRootVersionAlias } from "./globals-BrhVUl-N.js";
2
2
  import { l as visibleWidth } from "./subsystem-Bw5n50gj.js";
3
3
  import { z as loadConfig } from "./auth-profiles-CX4YYu7Z.js";
4
- import { Hn as resolveCommitHash } from "./subagent-registry-CIgFD2oi.js";
4
+ import { Hn as resolveCommitHash } from "./subagent-registry-BbkRn-Tn.js";
5
5
 
6
6
  //#region src/cli/tagline.ts
7
7
  const DEFAULT_TAGLINE = "All your chats, one SquidClaw.";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.26",
2
+ "version": "3.0.27",
3
3
  "commit": "d1a1a88d935c4868c440c8d73bd3799dd6009abf",
4
- "builtAt": "2026-03-20T22:29:15.903Z"
4
+ "builtAt": "2026-03-23T13:51:29.384Z"
5
5
  }
@@ -8,7 +8,7 @@ import "../../github-copilot-token-B5cPlwaz.js";
8
8
  import { a as isGatewayStartupEvent } from "../../legacy-names-aGJJuzM_.js";
9
9
  import "../../thinking-B75CXkTT.js";
10
10
  import { n as SILENT_REPLY_TOKEN } from "../../tokens-DfbMVF9y.js";
11
- import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded-BiC4tIJ8.js";
11
+ import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded-CpNkNjFv.js";
12
12
  import "../../plugins-DvejjZnJ.js";
13
13
  import "../../accounts-DwGoZKGm.js";
14
14
  import "../../send-DdBbRpTP.js";
@@ -8,7 +8,7 @@ import "../../github-copilot-token-B5cPlwaz.js";
8
8
  import "../../legacy-names-aGJJuzM_.js";
9
9
  import "../../thinking-B75CXkTT.js";
10
10
  import "../../tokens-DfbMVF9y.js";
11
- import { t as runEmbeddedPiAgent } from "../../pi-embedded-BiC4tIJ8.js";
11
+ import { t as runEmbeddedPiAgent } from "../../pi-embedded-CpNkNjFv.js";
12
12
  import "../../plugins-DvejjZnJ.js";
13
13
  import "../../accounts-DwGoZKGm.js";
14
14
  import "../../send-DdBbRpTP.js";
@@ -2,7 +2,7 @@ import { r as isTruthyEnvValue } from "./entry.js";
2
2
  import { n as CHAT_CHANNEL_ORDER } from "./registry-BXcl3IkC.js";
3
3
  import { n as listChannelPlugins } from "./plugins-BDTkSIi7.js";
4
4
  import { a as listChannelPluginCatalogEntries } from "./plugin-auto-enable-DJkHW_LG.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D3PnPE1D.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DbWGikL_.js";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs";
@@ -2,7 +2,7 @@ import { n as CHAT_CHANNEL_ORDER } from "./registry-CpzNS8-a.js";
2
2
  import { t as isTruthyEnvValue } from "./env-DeB9SeAQ.js";
3
3
  import { n as listChannelPlugins } from "./plugins-H53_4Gxb.js";
4
4
  import { a as listChannelPluginCatalogEntries } from "./plugin-auto-enable-ChuH3fZb.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CXm125Uz.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-CJ9E3pVF.js";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import fs from "node:fs";
8
8
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { a as logVerbose, c as shouldLogVerbose, m as getChildLogger } from "./globals-xfUIfxbE.js";
2
2
  import { C as sleep, T as toWhatsappJid, f as isSelfChatMode, m as normalizeE164, p as jidToE164, r as clamp, v as resolveJidToE164 } from "./utils-DMGXr25O.js";
3
- import { $t as sleepWithAbort, Cn as resolveInboundDebounceMs, Gn as shouldComputeCommandAuthorized, Gr as normalizeMentionText, Kr as enqueueSystemEvent, Nn as buildAgentSessionKey, Pn as resolveAgentRoute, Qt as computeBackoff, Sn as createInboundDebouncer, Wn as hasControlCommand, Wr as buildMentionRegexes, _n as resolveOpenProviderRuntimeGroupPolicy, _t as parseActivationCommand, bn as dispatchReplyWithBufferedBlockDispatcher, dn as buildPairingReply, fn as resolveMentionGating, gn as resolveDefaultGroupPolicy, gt as normalizeGroupActivation, hn as recordPendingHistoryEntryIfEnabled, kn as createDedupeCache, kt as resolveInboundSessionEnvelopeContext, ln as createReplyPrefixOptions, mi as finalizeInboundContext, mn as buildHistoryContextFromEntries, mr as resolveMessagePrefix, pn as DEFAULT_GROUP_HISTORY_LIMIT, pr as resolveIdentityNamePrefix, t as getReplyFromConfig, vn as warnMissingProviderGroupPolicyFallbackOnce, wn as formatInboundEnvelope, yn as shouldAckReactionForWhatsApp } from "./reply-DwjHsBuj.js";
3
+ import { $t as sleepWithAbort, Cn as resolveInboundDebounceMs, Gn as shouldComputeCommandAuthorized, Gr as normalizeMentionText, Kr as enqueueSystemEvent, Nn as buildAgentSessionKey, Pn as resolveAgentRoute, Qt as computeBackoff, Sn as createInboundDebouncer, Wn as hasControlCommand, Wr as buildMentionRegexes, _n as resolveOpenProviderRuntimeGroupPolicy, _t as parseActivationCommand, bn as dispatchReplyWithBufferedBlockDispatcher, dn as buildPairingReply, fn as resolveMentionGating, gn as resolveDefaultGroupPolicy, gt as normalizeGroupActivation, hn as recordPendingHistoryEntryIfEnabled, kn as createDedupeCache, kt as resolveInboundSessionEnvelopeContext, ln as createReplyPrefixOptions, mi as finalizeInboundContext, mn as buildHistoryContextFromEntries, mr as resolveMessagePrefix, pn as DEFAULT_GROUP_HISTORY_LIMIT, pr as resolveIdentityNamePrefix, t as getReplyFromConfig, vn as warnMissingProviderGroupPolicyFallbackOnce, wn as formatInboundEnvelope, yn as shouldAckReactionForWhatsApp } from "./reply-m8ZD17d0.js";
4
4
  import { d as defaultRuntime, t as createSubsystemLogger } from "./subsystem-DC87CPVS.js";
5
5
  import { a as buildGroupHistoryKey, c as normalizeAgentId, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey } from "./session-key-CIXZm7v4.js";
6
6
  import { $t as loadConfig } from "./model-selection-CR7aXCux.js";
@@ -7,7 +7,7 @@ import { S as sleep, _ as resolveJidToE164, d as isSelfChatMode, f as jidToE164,
7
7
  import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-DJJAj46v.js";
8
8
  import { c as recordSessionMetaFromInbound, lt as resolveGroupSessionKey, o as loadSessionStore, u as updateLastRoute } from "./sessions-BWptzMw0.js";
9
9
  import { i as resolveWhatsAppAccount, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-BK8I0Svb.js";
10
- import { $ as shouldAckReactionForWhatsApp, A as resolveInboundSessionEnvelopeContext, Ct as resolveAgentRoute, Dn as normalizeGroupActivation, G as buildPairingReply, J as buildHistoryContextFromEntries, K as resolveMentionGating, On as parseActivationCommand, Q as warnMissingProviderGroupPolicyFallbackOnce, Sr as resolveMessagePrefix, St as buildAgentSessionKey, Un as enqueueSystemEvent, W as createReplyPrefixOptions, X as resolveDefaultGroupPolicy, Y as recordPendingHistoryEntryIfEnabled, Z as resolveOpenProviderRuntimeGroupPolicy, ct as createDedupeCache, dr as hasControlCommand, et as dispatchReplyWithBufferedBlockDispatcher, fr as shouldComputeCommandAuthorized, gr as normalizeMentionText, hr as buildMentionRegexes, it as formatInboundEnvelope, lt as getReplyFromConfig, nt as createInboundDebouncer, q as DEFAULT_GROUP_HISTORY_LIMIT, rt as resolveInboundDebounceMs, sr as finalizeInboundContext, xr as resolveIdentityNamePrefix } from "./subagent-registry-CIgFD2oi.js";
10
+ import { $ as shouldAckReactionForWhatsApp, A as resolveInboundSessionEnvelopeContext, Ct as resolveAgentRoute, Dn as normalizeGroupActivation, G as buildPairingReply, J as buildHistoryContextFromEntries, K as resolveMentionGating, On as parseActivationCommand, Q as warnMissingProviderGroupPolicyFallbackOnce, Sr as resolveMessagePrefix, St as buildAgentSessionKey, Un as enqueueSystemEvent, W as createReplyPrefixOptions, X as resolveDefaultGroupPolicy, Y as recordPendingHistoryEntryIfEnabled, Z as resolveOpenProviderRuntimeGroupPolicy, ct as createDedupeCache, dr as hasControlCommand, et as dispatchReplyWithBufferedBlockDispatcher, fr as shouldComputeCommandAuthorized, gr as normalizeMentionText, hr as buildMentionRegexes, it as formatInboundEnvelope, lt as getReplyFromConfig, nt as createInboundDebouncer, q as DEFAULT_GROUP_HISTORY_LIMIT, rt as resolveInboundDebounceMs, sr as finalizeInboundContext, xr as resolveIdentityNamePrefix } from "./subagent-registry-BbkRn-Tn.js";
11
11
  import { c as resolveStorePath } from "./paths-Dn_rzeZN.js";
12
12
  import { K as formatLocationText, q as toLocationContext } from "./send-RDqyJwZx.js";
13
13
  import { i as saveMediaBuffer } from "./store-BEIcnlgx.js";
@@ -32,7 +32,7 @@ import "./logging-CcxUDNcI.js";
32
32
  import "./accounts-KzgPbLHP.js";
33
33
  import { i as createSlackWebClient } from "./send-z-sMjqvX.js";
34
34
  import { at as parseDiscordTarget, et as fetchChannelPermissionsDiscord } from "./send-DEs83M9V.js";
35
- import { An as formatUsageReportLines, S as deleteTelegramUpdateOffset, kn as loadProviderUsageSummary } from "./subagent-registry-CIgFD2oi.js";
35
+ import { An as formatUsageReportLines, S as deleteTelegramUpdateOffset, kn as loadProviderUsageSummary } from "./subagent-registry-BbkRn-Tn.js";
36
36
  import "./paths-Dn_rzeZN.js";
37
37
  import "./chat-envelope-thy05gXR.js";
38
38
  import "./client-G9E5HGM2.js";
@@ -114,7 +114,7 @@ import { n as runCommandWithRuntime } from "./cli-utils-BKqG4ZT-.js";
114
114
  import { t as formatHelpExamples } from "./help-format-CpR5cEGe.js";
115
115
  import { n as withProgress } from "./progress-DuhDspl6.js";
116
116
  import "./outbound-B7m9Vcd2.js";
117
- import "./channel-web-LLzBxZrT.js";
117
+ import "./channel-web-C9gRSNfc.js";
118
118
  import "./session-D0jodcgT.js";
119
119
  import "./login-zoeewfBu.js";
120
120
  import { t as hasExplicitOptions } from "./command-options-DVCpMofi.js";
@@ -123,20 +123,20 @@ import "./note-IoQo8Ol0.js";
123
123
  import { t as createClackPrompter } from "./clack-prompter-DU01bRlk.js";
124
124
  import { t as resolveChannelDefaultAccountId } from "./helpers-D7MilaX-.js";
125
125
  import { i as describeBinding, n as applyAgentBindings, t as requireValidConfigSnapshot } from "./config-validation-BkvDORAk.js";
126
- import { n as buildAgentSummaries } from "./agents.config-BM-2SLCh.js";
126
+ import { n as buildAgentSummaries } from "./agents.config-CKbSiVW4.js";
127
127
  import "./enable-C8FNY18p.js";
128
128
  import "./install-safe-path-3muwy3fu.js";
129
129
  import "./npm-pack-install-B887us7R.js";
130
130
  import "./skill-scanner-CvS725eQ.js";
131
131
  import "./installs-BiQDtPF0.js";
132
- import { a as reloadOnboardingPluginRegistry, i as ensureOnboardingPluginInstalled, r as setupChannels } from "./onboard-channels-_kVo3Apf.js";
132
+ import { a as reloadOnboardingPluginRegistry, i as ensureOnboardingPluginInstalled, r as setupChannels } from "./onboard-channels-Csy6Ng39.js";
133
133
  import "./auth-choice.apply-helpers-p1y_DmDT.js";
134
134
  import "./issue-format-DCcINW-9.js";
135
135
  import { t as buildChannelAccountSnapshot } from "./status-dOhj12u0.js";
136
136
  import { t as parseLogLine } from "./parse-log-line-Cg7e_EO6.js";
137
137
  import { t as collectChannelStatusIssues } from "./channels-status-issues-Dz1_R7Ah.js";
138
- import "./plugin-registry-D3PnPE1D.js";
139
- import { t as formatCliChannelOptions } from "./channel-options-CQ-gER0J.js";
138
+ import "./plugin-registry-DbWGikL_.js";
139
+ import { t as formatCliChannelOptions } from "./channel-options-DD8pn51g.js";
140
140
  import fs from "node:fs/promises";
141
141
 
142
142
  //#region src/commands/channels/add-mutators.ts
@@ -2,7 +2,7 @@ import "./paths-mdt1HFK2.js";
2
2
  import { g as getResolvedLoggerSettings, p as theme, s as setVerbose, t as danger } from "./globals-xfUIfxbE.js";
3
3
  import { d as isRecord } from "./utils-DMGXr25O.js";
4
4
  import "./thinking-44rmAw5o.js";
5
- import { mt as deleteTelegramUpdateOffset, vt as loadProviderUsageSummary, yt as formatUsageReportLines } from "./reply-DwjHsBuj.js";
5
+ import { mt as deleteTelegramUpdateOffset, vt as loadProviderUsageSummary, yt as formatUsageReportLines } from "./reply-m8ZD17d0.js";
6
6
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-C1XMay0T.js";
7
7
  import { d as defaultRuntime } from "./subsystem-DC87CPVS.js";
8
8
  import { _ as normalizeAccountId, g as DEFAULT_ACCOUNT_ID } from "./session-key-CIXZm7v4.js";
@@ -112,25 +112,25 @@ import { t as formatHelpExamples } from "./help-format-BMkyP_P-.js";
112
112
  import { n as withProgress } from "./progress-BHN121Ps.js";
113
113
  import "./server-lifecycle-CnZYKJ9s.js";
114
114
  import "./stagger-DL-XRpny.js";
115
- import "./channel-web-7t1a2N13.js";
115
+ import "./channel-web-BvloWcnP.js";
116
116
  import "./outbound-DrQL-ly5.js";
117
117
  import "./session-CZJ5Ux6-.js";
118
118
  import "./login-yT1R2N54.js";
119
- import "./plugin-registry-CXm125Uz.js";
120
- import { t as formatCliChannelOptions } from "./channel-options-SijIkAlT.js";
119
+ import "./plugin-registry-CJ9E3pVF.js";
120
+ import { t as formatCliChannelOptions } from "./channel-options-DORsSb06.js";
121
121
  import { t as hasExplicitOptions } from "./command-options-D0bXi5Pl.js";
122
122
  import { n as moveSingleAccountChannelSectionToDefaultAccount } from "./api-Cs-0sTCc.js";
123
123
  import "./note-CBt9wSWa.js";
124
124
  import { t as createClackPrompter } from "./clack-prompter-Bx0vssUh.js";
125
125
  import { t as resolveChannelDefaultAccountId } from "./helpers-CvsgDup6.js";
126
126
  import { i as describeBinding, n as applyAgentBindings, t as requireValidConfigSnapshot } from "./config-validation-CLaNR8MG.js";
127
- import { n as buildAgentSummaries } from "./agents.config-eMSUW-iw.js";
127
+ import { n as buildAgentSummaries } from "./agents.config-C4bgEbdA.js";
128
128
  import "./enable-BtmJTbu7.js";
129
129
  import "./install-safe-path-iCmVuopp.js";
130
130
  import "./npm-pack-install-s-mP9K0z.js";
131
131
  import "./skill-scanner-rdr9cQew.js";
132
132
  import "./installs-CyjlehlR.js";
133
- import { a as reloadOnboardingPluginRegistry, i as ensureOnboardingPluginInstalled, r as setupChannels } from "./onboard-channels-D45grihx.js";
133
+ import { a as reloadOnboardingPluginRegistry, i as ensureOnboardingPluginInstalled, r as setupChannels } from "./onboard-channels-BHxe-ulR.js";
134
134
  import "./auth-choice.apply-helpers-u_T6j86c.js";
135
135
  import "./issue-format-YJgN8cb0.js";
136
136
  import { t as buildChannelAccountSnapshot } from "./status-D98glect.js";
@@ -13,7 +13,7 @@ import { createHmac } from "node:crypto";
13
13
  import net from "node:net";
14
14
  import http, { createServer } from "node:http";
15
15
  import https from "node:https";
16
- import WebSocket, { WebSocketServer } from "ws";
16
+ import WebSocket$1, { WebSocketServer } from "ws";
17
17
  import { Buffer as Buffer$1 } from "node:buffer";
18
18
 
19
19
  //#region src/browser/constants.ts
@@ -592,7 +592,7 @@ async function ensureChromeExtensionRelayServer(opts) {
592
592
  let extensionWs = null;
593
593
  const cdpClients = /* @__PURE__ */ new Set();
594
594
  const connectedTargets = /* @__PURE__ */ new Map();
595
- const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
595
+ const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
596
596
  const hasConnectedTargets = () => connectedTargets.size > 0;
597
597
  let extensionDisconnectCleanupTimer = null;
598
598
  const extensionReconnectWaiters = /* @__PURE__ */ new Set();
@@ -644,7 +644,7 @@ async function ensureChromeExtensionRelayServer(opts) {
644
644
  let nextExtensionId = 1;
645
645
  const sendToExtension = async (payload) => {
646
646
  const ws = extensionWs;
647
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
647
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
648
648
  ws.send(JSON.stringify(payload));
649
649
  return await new Promise((resolve, reject) => {
650
650
  const timer = setTimeout(() => {
@@ -661,12 +661,12 @@ async function ensureChromeExtensionRelayServer(opts) {
661
661
  const broadcastToCdpClients = (evt) => {
662
662
  const msg = JSON.stringify(evt);
663
663
  for (const ws of cdpClients) {
664
- if (ws.readyState !== WebSocket.OPEN) continue;
664
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
665
665
  ws.send(msg);
666
666
  }
667
667
  };
668
668
  const sendResponseToCdp = (ws, res) => {
669
- if (ws.readyState !== WebSocket.OPEN) return;
669
+ if (ws.readyState !== WebSocket$1.OPEN) return;
670
670
  ws.send(JSON.stringify(res));
671
671
  };
672
672
  const dropConnectedTargetSession = (sessionId) => {
@@ -920,7 +920,7 @@ async function ensureChromeExtensionRelayServer(opts) {
920
920
  rejectUpgrade(socket, 401, "Unauthorized");
921
921
  return;
922
922
  }
923
- if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
923
+ if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
924
924
  try {
925
925
  extensionWs.terminate();
926
926
  } catch {}
@@ -953,7 +953,7 @@ async function ensureChromeExtensionRelayServer(opts) {
953
953
  clearExtensionDisconnectCleanupTimer();
954
954
  flushExtensionReconnectWaiters(true);
955
955
  const ping = setInterval(() => {
956
- if (ws.readyState !== WebSocket.OPEN) return;
956
+ if (ws.readyState !== WebSocket$1.OPEN) return;
957
957
  ws.send(JSON.stringify({ method: "ping" }));
958
958
  }, 5e3);
959
959
  ws.on("message", (data) => {
@@ -1309,7 +1309,7 @@ function openCdpWebSocket(wsUrl, opts) {
1309
1309
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
1310
1310
  const handshakeTimeoutMs = typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : CDP_WS_HANDSHAKE_TIMEOUT_MS;
1311
1311
  const agent = getDirectAgentForCdp(wsUrl);
1312
- return new WebSocket(wsUrl, {
1312
+ return new WebSocket$1(wsUrl, {
1313
1313
  handshakeTimeout: handshakeTimeoutMs,
1314
1314
  ...Object.keys(headers).length ? { headers } : {},
1315
1315
  ...agent ? { agent } : {}
@@ -30,7 +30,7 @@ import "./logging-CcxUDNcI.js";
30
30
  import "./accounts-KzgPbLHP.js";
31
31
  import "./send-z-sMjqvX.js";
32
32
  import "./send-DEs83M9V.js";
33
- import { b as loadSquidClawPlugins } from "./subagent-registry-CIgFD2oi.js";
33
+ import { b as loadSquidClawPlugins } from "./subagent-registry-BbkRn-Tn.js";
34
34
  import "./paths-Dn_rzeZN.js";
35
35
  import "./chat-envelope-thy05gXR.js";
36
36
  import "./client-G9E5HGM2.js";
@@ -2,7 +2,7 @@ import "./paths-mdt1HFK2.js";
2
2
  import "./globals-xfUIfxbE.js";
3
3
  import "./utils-DMGXr25O.js";
4
4
  import "./thinking-44rmAw5o.js";
5
- import { ft as loadSquidClawPlugins } from "./reply-DwjHsBuj.js";
5
+ import { ft as loadSquidClawPlugins } from "./reply-m8ZD17d0.js";
6
6
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-C1XMay0T.js";
7
7
  import { t as createSubsystemLogger } from "./subsystem-DC87CPVS.js";
8
8
  import "./squidclaw-root-CnE19yKj.js";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { F as getPrimaryCommand, R as hasHelpOrVersion } from "./globals-BrhVUl-N.js";
3
- import { i as registerSubCliCommands, o as removeCommandByName, s as reparseProgramFromActionArgs } from "./register.subclis-CDMFyaKR.js";
3
+ import { i as registerSubCliCommands, o as removeCommandByName, s as reparseProgramFromActionArgs } from "./register.subclis-D10eRT52.js";
4
4
 
5
5
  //#region src/cli/program/command-registry.ts
6
6
  var command_registry_exports = /* @__PURE__ */ __exportAll({
@@ -22,7 +22,7 @@ const coreEntries = [
22
22
  hasSubcommands: false
23
23
  }],
24
24
  register: async ({ program }) => {
25
- (await import("./register.setup-Dl3nk2Ui.js")).registerSetupCommand(program);
25
+ (await import("./register.setup-BkSWcd_T.js")).registerSetupCommand(program);
26
26
  }
27
27
  },
28
28
  {
@@ -32,7 +32,7 @@ const coreEntries = [
32
32
  hasSubcommands: false
33
33
  }],
34
34
  register: async ({ program }) => {
35
- (await import("./register.onboard-C64oXnvq.js")).registerOnboardCommand(program);
35
+ (await import("./register.onboard-DsHEjOlQ.js")).registerOnboardCommand(program);
36
36
  }
37
37
  },
38
38
  {
@@ -42,7 +42,7 @@ const coreEntries = [
42
42
  hasSubcommands: false
43
43
  }],
44
44
  register: async ({ program }) => {
45
- (await import("./register.configure-C8OFfGln.js")).registerConfigureCommand(program);
45
+ (await import("./register.configure-CRZBn5QG.js")).registerConfigureCommand(program);
46
46
  }
47
47
  },
48
48
  {
@@ -52,7 +52,7 @@ const coreEntries = [
52
52
  hasSubcommands: true
53
53
  }],
54
54
  register: async ({ program }) => {
55
- (await import("./config-cli-D0A8Awoo.js")).registerConfigCli(program);
55
+ (await import("./config-cli-DyB3LaLr.js")).registerConfigCli(program);
56
56
  }
57
57
  },
58
58
  {
@@ -79,7 +79,7 @@ const coreEntries = [
79
79
  }
80
80
  ],
81
81
  register: async ({ program }) => {
82
- (await import("./register.maintenance-CluQOq8b.js")).registerMaintenanceCommands(program);
82
+ (await import("./register.maintenance-CY58DnhU.js")).registerMaintenanceCommands(program);
83
83
  }
84
84
  },
85
85
  {
@@ -89,7 +89,7 @@ const coreEntries = [
89
89
  hasSubcommands: true
90
90
  }],
91
91
  register: async ({ program, ctx }) => {
92
- (await import("./register.message-BCTXT5yK.js")).registerMessageCommands(program, ctx);
92
+ (await import("./register.message-BNyQROsP.js")).registerMessageCommands(program, ctx);
93
93
  }
94
94
  },
95
95
  {
@@ -113,7 +113,7 @@ const coreEntries = [
113
113
  hasSubcommands: true
114
114
  }],
115
115
  register: async ({ program, ctx }) => {
116
- (await import("./register.agent-Dk_5V5oA.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
116
+ (await import("./register.agent-Bpp6PZCy.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
117
117
  }
118
118
  },
119
119
  {
@@ -135,7 +135,7 @@ const coreEntries = [
135
135
  }
136
136
  ],
137
137
  register: async ({ program }) => {
138
- (await import("./register.status-health-sessions-BHtbPeCO.js")).registerStatusHealthSessionsCommands(program);
138
+ (await import("./register.status-health-sessions-Ck1506Mz.js")).registerStatusHealthSessionsCommands(program);
139
139
  }
140
140
  },
141
141
  {
@@ -4,7 +4,7 @@ import { p as theme } from "./globals-xfUIfxbE.js";
4
4
  import { h as pathExists } from "./utils-DMGXr25O.js";
5
5
  import { i as routeLogsToStderr } from "./subsystem-DC87CPVS.js";
6
6
  import { t as formatDocsLink } from "./links-De9M3AmU.js";
7
- import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-DfmCIQ91.js";
7
+ import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-jw4pIT7h.js";
8
8
  import os from "node:os";
9
9
  import path from "node:path";
10
10
  import fs from "node:fs/promises";
@@ -4,8 +4,8 @@ import { g as resolveStateDir } from "./paths-CHIu6D1E.js";
4
4
  import { i as routeLogsToStderr } from "./subsystem-Bw5n50gj.js";
5
5
  import { m as pathExists } from "./utils-D6vohX1h.js";
6
6
  import { t as formatDocsLink } from "./links-Dye6HsRG.js";
7
- import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-CDMFyaKR.js";
8
- import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-AHS8_9da.js";
7
+ import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-D10eRT52.js";
8
+ import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-DntrnfSZ.js";
9
9
  import { t as getProgramContext } from "./program-context-DKVuITe2.js";
10
10
  import os from "node:os";
11
11
  import path from "node:path";
@@ -305,7 +305,7 @@ async function runConfigValidate(opts = {}) {
305
305
  }
306
306
  function registerConfigCli(program) {
307
307
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset/file/validate). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.squidclaw.dev/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
308
- const { configureCommandFromSectionsArg } = await import("./configure-DOiI8_8c.js").then((n) => n.t);
308
+ const { configureCommandFromSectionsArg } = await import("./configure-DFjC_USC.js").then((n) => n.t);
309
309
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
310
310
  });
311
311
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -305,7 +305,7 @@ async function runConfigValidate(opts = {}) {
305
305
  }
306
306
  function registerConfigCli(program) {
307
307
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset/file/validate). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.squidclaw.dev/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
308
- const { configureCommandFromSectionsArg } = await import("./configure-XmOqwwy9.js").then((n) => n.t);
308
+ const { configureCommandFromSectionsArg } = await import("./configure-HAlDPfOO.js").then((n) => n.t);
309
309
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
310
310
  });
311
311
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -13,15 +13,15 @@ import { n as withProgress } from "./progress-BHN121Ps.js";
13
13
  import { t as note$1 } from "./note-CBt9wSWa.js";
14
14
  import { t as WizardCancelledError } from "./prompts-knTF_LVq.js";
15
15
  import { t as createClackPrompter } from "./clack-prompter-Bx0vssUh.js";
16
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-D45grihx.js";
16
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-BHxe-ulR.js";
17
17
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-a4pGEsbA.js";
18
18
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Di8BSZyD.js";
19
19
  import { t as resolveGatewayService } from "./service-D4y0_Q5Z.js";
20
- import { r as healthCommand } from "./health-TmpUGSqu.js";
20
+ import { r as healthCommand } from "./health-ChHiOfOC.js";
21
21
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Bz7TCLpb.js";
22
22
  import { n as logConfigUpdated } from "./logging-AGpu_2Pc.js";
23
23
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-D8RKb8oM.js";
24
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-D2JrMJn-.js";
24
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-nbbKEYIm.js";
25
25
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-C3iHY6CJ.js";
26
26
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DgK8uuKY.js";
27
27
  import { a as promptCustomApiConfig } from "./onboard-custom-bh8YoCuf.js";
@@ -13,15 +13,15 @@ import { n as withProgress } from "./progress-DuhDspl6.js";
13
13
  import { t as note$1 } from "./note-IoQo8Ol0.js";
14
14
  import { t as WizardCancelledError } from "./prompts-l_pUOv42.js";
15
15
  import { t as createClackPrompter } from "./clack-prompter-DU01bRlk.js";
16
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-_kVo3Apf.js";
16
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-Csy6Ng39.js";
17
17
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-CJtiW2RE.js";
18
18
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Dgg-ogyc.js";
19
19
  import { t as resolveGatewayService } from "./service-DSqxS6_D.js";
20
- import { r as healthCommand } from "./health-XFKFZ7ZJ.js";
20
+ import { r as healthCommand } from "./health-LxEzhXog.js";
21
21
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BYEy341x.js";
22
22
  import { n as logConfigUpdated } from "./logging-ZAeFsd9K.js";
23
23
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-4mupmvzh.js";
24
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-CXepQc7c.js";
24
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-DOEtSP7U.js";
25
25
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-CLhaaagi.js";
26
26
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-6Jd9K5p2.js";
27
27
  import { a as promptCustomApiConfig } from "./onboard-custom-CZtjqrY7.js";
@@ -7,7 +7,7 @@ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DXTW31
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BxlUqxlx.js";
8
8
  import { n as generateSecureUuid } from "./secure-random-D68-1Hhs.js";
9
9
  import { r as parseTelegramTarget } from "./targets-D1wBrTyc.js";
10
- import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, lt as parseInlineDirectives } from "./pi-embedded-helpers-CEHpGDRs.js";
10
+ import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, i as isMessagingToolDuplicate, lt as parseInlineDirectives } from "./pi-embedded-helpers-A9VYPVCH.js";
11
11
  import { i as getAgentScopedMediaLocalRoots } from "./fetch-VXOrovPC.js";
12
12
  import { d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, l as chunkByParagraph, m as resolveChunkMode, s as resolveMarkdownTableMode, v as parseFenceSpans } from "./ir-2zV2S_jY.js";
13
13
  import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BTqbKmCr.js";
@@ -7,11 +7,11 @@ import "./thinking-Um9vuzkV.js";
7
7
  import "./tokens-DXTW31In.js";
8
8
  import "./plugins-BxlUqxlx.js";
9
9
  import "./accounts-DpFVWw4d.js";
10
- import { t as deliverOutboundPayloads } from "./deliver-B4WWPQvt.js";
10
+ import { t as deliverOutboundPayloads } from "./deliver-6zfT7daI.js";
11
11
  import "./accounts-BVDcCQsz.js";
12
12
  import "./image-ops-Co3B94Bx.js";
13
- import "./pi-embedded-helpers-CEHpGDRs.js";
14
- import "./chrome-CZQnp4VH.js";
13
+ import "./pi-embedded-helpers-A9VYPVCH.js";
14
+ import "./chrome-CuBHInKC.js";
15
15
  import "./skills-CjGoSoba.js";
16
16
  import "./path-alias-guards-DLHloUkx.js";
17
17
  import "./redact-kK-uDSQK.js";
@@ -30,7 +30,7 @@ import "./logging-CcxUDNcI.js";
30
30
  import "./accounts-KzgPbLHP.js";
31
31
  import "./send-z-sMjqvX.js";
32
32
  import "./send-DEs83M9V.js";
33
- import "./subagent-registry-CIgFD2oi.js";
33
+ import "./subagent-registry-BbkRn-Tn.js";
34
34
  import "./paths-Dn_rzeZN.js";
35
35
  import "./chat-envelope-thy05gXR.js";
36
36
  import "./client-G9E5HGM2.js";
@@ -111,9 +111,9 @@ import "./cli-utils-BKqG4ZT-.js";
111
111
  import "./help-format-CpR5cEGe.js";
112
112
  import "./progress-DuhDspl6.js";
113
113
  import { t as sendMessageWhatsApp } from "./outbound-B7m9Vcd2.js";
114
- import "./channel-web-LLzBxZrT.js";
114
+ import "./channel-web-C9gRSNfc.js";
115
115
  import "./session-D0jodcgT.js";
116
116
  import "./login-zoeewfBu.js";
117
- import "./web-CZhZC1EA.js";
117
+ import "./web-B3i9lUAX.js";
118
118
 
119
119
  export { sendMessageWhatsApp };
@@ -2,7 +2,7 @@ import "./paths-mdt1HFK2.js";
2
2
  import "./globals-xfUIfxbE.js";
3
3
  import "./utils-DMGXr25O.js";
4
4
  import "./thinking-44rmAw5o.js";
5
- import "./reply-DwjHsBuj.js";
5
+ import "./reply-m8ZD17d0.js";
6
6
  import "./agent-scope-C1XMay0T.js";
7
7
  import "./subsystem-DC87CPVS.js";
8
8
  import "./squidclaw-root-CnE19yKj.js";
@@ -109,10 +109,10 @@ import "./help-format-BMkyP_P-.js";
109
109
  import "./progress-BHN121Ps.js";
110
110
  import "./server-lifecycle-CnZYKJ9s.js";
111
111
  import "./stagger-DL-XRpny.js";
112
- import "./channel-web-7t1a2N13.js";
112
+ import "./channel-web-BvloWcnP.js";
113
113
  import { t as sendMessageWhatsApp } from "./outbound-DrQL-ly5.js";
114
114
  import "./session-CZJ5Ux6-.js";
115
115
  import "./login-yT1R2N54.js";
116
- import "./web-DWRZAXj9.js";
116
+ import "./web-DZHRoMwF.js";
117
117
 
118
118
  export { sendMessageWhatsApp };