squidclaw 3.0.31 → 3.0.33

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 (107) hide show
  1. package/dist/{acp-cli-Cgh0knV4.js → acp-cli-BeT7oXUu.js} +2 -2
  2. package/dist/{agents.config-DOZdl-eO.js → agents.config-Cav8LwTL.js} +1 -1
  3. package/dist/{audio-preflight-CXP7KNn_.js → audio-preflight-Ckq8A2xS.js} +4 -4
  4. package/dist/{audio-preflight-CB33NBGY.js → audio-preflight-WUW8KeL4.js} +6 -6
  5. package/dist/{audio-transcription-runner-BOxTuqbS.js → audio-transcription-runner-Bd34S1mx.js} +1 -1
  6. package/dist/{audio-transcription-runner-CCZC5tJf.js → audio-transcription-runner-BkEXZq6_.js} +1 -1
  7. package/dist/{audit-BhpEYysK.js → audit-CL1tJbCc.js} +6 -6
  8. package/dist/{auth-choice-CW-WPa0J.js → auth-choice-CbIT_f15.js} +2 -2
  9. package/dist/{browser-cli-BsOTPzD6.js → browser-cli-Bjw4bzsY.js} +3 -3
  10. package/dist/build-info.json +2 -2
  11. package/dist/bundled/session-memory/HOOK.md +2 -2
  12. package/dist/bundled/session-memory/handler.js +48 -0
  13. package/dist/{call-CsRvPUMG.js → call-BZMmsZnA.js} +1 -1
  14. package/dist/{channel-options-DiLSWw11.js → channel-options-ByYVebwk.js} +1 -1
  15. package/dist/{channel-web-B9qThdZn.js → channel-web-DRCZstY9.js} +3 -3
  16. package/dist/{channels-cli-DPzzCs8D.js → channels-cli-fZ8vLR-3.js} +21 -21
  17. package/dist/{chrome-AmH-OPlL.js → chrome-B3h5980A.js} +8 -8
  18. package/dist/{chrome-DLZaNSqV.js → chrome-uzcvgAW9.js} +8 -8
  19. package/dist/{clawbot-cli-Y6f5RzmX.js → clawbot-cli-Aal6iAhy.js} +4 -4
  20. package/dist/{cli-Cegwo5rc.js → cli-DDzqaV2x.js} +16 -16
  21. package/dist/{client-DYXM5N_N.js → client-gy8bx9Xy.js} +4 -4
  22. package/dist/{command-secret-targets-4lxt7RD_.js → command-secret-targets-QzzK0cvw.js} +2 -2
  23. package/dist/{completion-cli-BLY0f3DS.js → completion-cli-cvF7VIAg.js} +1 -1
  24. package/dist/{config-cli-B7X83S8T.js → config-cli-BeARZFf8.js} +1 -1
  25. package/dist/{configure-Hiahxtwa.js → configure-D3v5-GDg.js} +6 -6
  26. package/dist/{cron-cli-DIoOoMCm.js → cron-cli-DjN_8kik.js} +3 -3
  27. package/dist/{daemon-cli-DyGOGB4b.js → daemon-cli-D-GtS9tA.js} +2 -2
  28. package/dist/{deliver-Baa4v4N-.js → deliver-KuyvhwaK.js} +1 -1
  29. package/dist/{deliver-DGXG0w_w.js → deliver-e7dtX7aI.js} +1 -1
  30. package/dist/{deliver-runtime-Cld2SPeU.js → deliver-runtime-CJeRn4Mi.js} +5 -5
  31. package/dist/{deliver-runtime-Do2EXjHh.js → deliver-runtime-DPjMYovi.js} +3 -3
  32. package/dist/{deps-send-whatsapp.runtime-rPF4BAeN.js → deps-send-whatsapp.runtime-B155kzJI.js} +7 -7
  33. package/dist/{deps-send-whatsapp.runtime-Di849gV3.js → deps-send-whatsapp.runtime-cpKOCWZ7.js} +18 -18
  34. package/dist/{devices-cli-DJ5t9Awn.js → devices-cli-CxBvKU-k.js} +2 -2
  35. package/dist/{doctor-completion-kjDYgxZk.js → doctor-completion-BIsKBzEq.js} +1 -1
  36. package/dist/{exec-approvals-cli-qbq31pxo.js → exec-approvals-cli-BWJVqTGx.js} +4 -4
  37. package/dist/extensionAPI.js +6 -6
  38. package/dist/{gateway-cli-lvhI_G2p.js → gateway-cli-D6hF-7r8.js} +28 -28
  39. package/dist/{gateway-rpc-DXJlCFNJ.js → gateway-rpc-CMY4PORW.js} +1 -1
  40. package/dist/{health-TD-34Yp-.js → health-B6rkscPh.js} +3 -3
  41. package/dist/{hooks-cli-C6DWUB-U.js → hooks-cli-CsLbZW55.js} +17 -17
  42. package/dist/{image-DI75geX3.js → image-CBBib8Ld.js} +1 -1
  43. package/dist/{image-Ccz6ndn7.js → image-Dkl58_nM.js} +1 -1
  44. package/dist/{image-runtime-Obmeae9a.js → image-runtime-2ePySomG.js} +5 -5
  45. package/dist/{image-runtime-BWARi-r4.js → image-runtime-BinILRte.js} +3 -3
  46. package/dist/index.js +21 -21
  47. package/dist/{logs-cli-C4B9RucB.js → logs-cli-Dv4wWIJZ.js} +3 -3
  48. package/dist/{memory-cli-C7wo32BJ.js → memory-cli-CgsaxpRr.js} +1 -1
  49. package/dist/{models-cli-CGWYDv56.js → models-cli-Cs6QUPHJ.js} +17 -17
  50. package/dist/{node-cli-DhcjrGhX.js → node-cli-QeGnYeqt.js} +5 -5
  51. package/dist/{node-command-policy-CPjB6YQt.js → node-command-policy-CzqB-8ah.js} +1 -1
  52. package/dist/{nodes-cli-CmE8JKKq.js → nodes-cli-u94LkIig.js} +3 -3
  53. package/dist/{npm-resolution-Bwt62vuA.js → npm-resolution-DptUU3y3.js} +1 -1
  54. package/dist/{onboard-BP7rTtCO.js → onboard-CJX_C5lq.js} +3 -3
  55. package/dist/{onboard-channels-D2p7QNyT.js → onboard-channels-CA3x3tGg.js} +2 -2
  56. package/dist/{onboard-helpers-JS-Lbczt.js → onboard-helpers-DZtoPn8i.js} +1 -1
  57. package/dist/{onboard-remote-Bf-wwh2S.js → onboard-remote-BvW9CIHn.js} +1 -1
  58. package/dist/{onboard-skills-CUip0jpN.js → onboard-skills-D19L2KkN.js} +1 -1
  59. package/dist/{onboarding-LbGi6oDz.js → onboarding-CvKwUVhN.js} +7 -7
  60. package/dist/{onboarding.finalize-CWcaxeIO.js → onboarding.finalize-CxclFJxn.js} +21 -21
  61. package/dist/{onboarding.gateway-config-BfJ7jZ3-.js → onboarding.gateway-config-DvYcbETj.js} +4 -4
  62. package/dist/{pi-embedded-BoY_A7hg.js → pi-embedded-BULXCFPg.js} +24 -24
  63. package/dist/{pi-embedded-helpers-u_th5KKV.js → pi-embedded-helpers-CQJfmPVp.js} +3 -3
  64. package/dist/{pi-embedded-helpers-DBZo6ghW.js → pi-embedded-helpers-CuiXHzQ1.js} +1 -1
  65. package/dist/{pi-tools.policy-BYTs7z53.js → pi-tools.policy-FpqAOqvu.js} +1 -1
  66. package/dist/{plugin-registry-FXXByNP3.js → plugin-registry-Cpf1qgAz.js} +1 -1
  67. package/dist/plugin-sdk/mattermost.js +3 -3
  68. package/dist/plugin-sdk/signal.js +2 -2
  69. package/dist/{plugins-cli-BmfpsKs2.js → plugins-cli-DWmGTrQi.js} +17 -17
  70. package/dist/{program-context-Cc5-MG37.js → program-context-CIEsO7ba.js} +34 -34
  71. package/dist/{prompt-select-styled-BmJHQFIe.js → prompt-select-styled-4uvdkCmK.js} +10 -10
  72. package/dist/{provider-auth-helpers-BrYxePGn.js → provider-auth-helpers-Ds4co7pd.js} +1 -1
  73. package/dist/{push-apns-BH6u2jeD.js → push-apns-wyGqUoCL.js} +1 -1
  74. package/dist/{pw-ai-Bxj7Voze.js → pw-ai-DS32O9Ei.js} +1 -1
  75. package/dist/{pw-ai-Do8UJz-Y.js → pw-ai-DXis1Gal.js} +1 -1
  76. package/dist/{qr-cli-t7wb_tRQ.js → qr-cli-DhqLEdBe.js} +1 -1
  77. package/dist/{register.agent-eYMqq7DM.js → register.agent-IRNp0fr-.js} +21 -21
  78. package/dist/{register.configure-5ZU_WG0B.js → register.configure-D4ecAwAg.js} +24 -24
  79. package/dist/{register.maintenance-Di-_iCcy.js → register.maintenance-YOZ3sMNS.js} +22 -22
  80. package/dist/{register.message-BJEQ0tWj.js → register.message-ozARKUco.js} +17 -17
  81. package/dist/{register.onboard-D8V8BiRf.js → register.onboard-BtzGW6wy.js} +5 -5
  82. package/dist/{register.setup-CuD_ucSh.js → register.setup-CaZETnfd.js} +5 -5
  83. package/dist/{register.status-health-sessions-CfcRluvS.js → register.status-health-sessions-qS3pe6Kw.js} +20 -20
  84. package/dist/{reply-DM6COks_.js → reply-d12k6JyN.js} +30 -30
  85. package/dist/{rpc-BAWL8_DO.js → rpc-BnWL4MCX.js} +1 -1
  86. package/dist/{sandbox-dnsTApLp.js → sandbox-4_YzlsBa.js} +2 -2
  87. package/dist/{sandbox-cli-B_c94l3B.js → sandbox-cli-CO9AcpuP.js} +3 -3
  88. package/dist/{secrets-cli-ES-9H2pj.js → secrets-cli-CE_fukZS.js} +3 -3
  89. package/dist/{security-cli-B5H4tjcT.js → security-cli-D-jh37Iy.js} +8 -8
  90. package/dist/{server-DWce8-ko.js → server-COF4C6UQ.js} +4 -4
  91. package/dist/{server-context-CYPsJeRg.js → server-context-DWRUW3Oc.js} +3 -3
  92. package/dist/{server-lifecycle-CL57-qY-.js → server-lifecycle-DSRW9YyS.js} +2 -2
  93. package/dist/{server-node-events-CM2wrNgk.js → server-node-events-DcI3BKLU.js} +17 -17
  94. package/dist/{slash-dispatch.runtime-9OkfqjfK.js → slash-dispatch.runtime-CnIrfAgj.js} +16 -16
  95. package/dist/{slash-dispatch.runtime-B79IzyjK.js → slash-dispatch.runtime-DidWtkRY.js} +6 -6
  96. package/dist/{status-DLXPWgfm.js → status-Cxc7ROTK.js} +7 -7
  97. package/dist/{subagent-registry-runtime-CQR_M6WF.js → subagent-registry-runtime-DqbU91-h.js} +16 -16
  98. package/dist/{subagent-registry-runtime-CFbDYdKR.js → subagent-registry-runtime-Dup_yrOH.js} +6 -6
  99. package/dist/{system-cli-CUOkjFj4.js → system-cli-B0wBc7tJ.js} +3 -3
  100. package/dist/{tui-ChZP3wJ7.js → tui-BNyyikcb.js} +3 -3
  101. package/dist/{tui-cli-nXP__ZM8.js → tui-cli-DsuDwgRG.js} +7 -7
  102. package/dist/{update-cli-XGRmAcuW.js → update-cli-CqGNnerP.js} +23 -23
  103. package/dist/{update-runner-7klqnWFq.js → update-runner-BGYtEI5Z.js} +1 -1
  104. package/dist/{web-6kCngkSg.js → web-BQbhCFGN.js} +17 -17
  105. package/dist/{web-BUpcF84p.js → web-Cp2nm6U4.js} +6 -6
  106. package/dist/{with-timeout-CtjR5hW9.js → with-timeout-DINiEgLx.js} +2 -2
  107. package/package.json +1 -1
@@ -19,8 +19,8 @@ import { r as isKnownCoreToolId } from "./tool-catalog-DEbNxV11.js";
19
19
  import "./tailnet-CW8QpG1h.js";
20
20
  import "./ws-CyDV_9z2.js";
21
21
  import { n as resolveWindowsSpawnProgram, t as materializeWindowsSpawnProgram } from "./windows-spawn-Bo-pPi83.js";
22
- import { t as GatewayClient } from "./client-DYXM5N_N.js";
23
- import { s as resolveGatewayCredentialsWithSecretInputs, t as buildGatewayConnectionDetails } from "./call-CsRvPUMG.js";
22
+ import { t as GatewayClient } from "./client-gy8bx9Xy.js";
23
+ import { s as resolveGatewayCredentialsWithSecretInputs, t as buildGatewayConnectionDetails } from "./call-BZMmsZnA.js";
24
24
  import "./pairing-token-C0LPdqAt.js";
25
25
  import { t as formatDocsLink } from "./links-De9M3AmU.js";
26
26
  import { t as isMainModule } from "./is-main-D5LnS2LP.js";
@@ -1,4 +1,4 @@
1
- import { nn as identityHasValues, rn as loadAgentIdentityFromWorkspace } from "./reply-DM6COks_.js";
1
+ import { nn as identityHasValues, rn as loadAgentIdentityFromWorkspace } from "./reply-d12k6JyN.js";
2
2
  import { a as resolveAgentDir, d as resolveDefaultAgentId, n as listAgentEntries, u as resolveAgentWorkspaceDir } from "./agent-scope-BujGQgAe.js";
3
3
  import { c as normalizeAgentId } from "./session-key-CIXZm7v4.js";
4
4
 
@@ -8,8 +8,8 @@ import "./plugins-DyL70_Cc.js";
8
8
  import "./accounts-DbFEaiJV.js";
9
9
  import "./accounts-M-PDXeZS.js";
10
10
  import "./image-ops-kjt4AS_Q.js";
11
- import "./pi-embedded-helpers-u_th5KKV.js";
12
- import "./chrome-AmH-OPlL.js";
11
+ import "./pi-embedded-helpers-CQJfmPVp.js";
12
+ import "./chrome-B3h5980A.js";
13
13
  import "./skills-D-yc7joe.js";
14
14
  import "./path-alias-guards-CkoY5PBF.js";
15
15
  import "./redact-kK-uDSQK.js";
@@ -20,8 +20,8 @@ import "./store-BR2dv_uL.js";
20
20
  import "./accounts-CBw88Ct9.js";
21
21
  import "./paths-DX1_VIk-.js";
22
22
  import "./tool-images-CYIFgCQb.js";
23
- import "./image-DI75geX3.js";
24
- import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-BOxTuqbS.js";
23
+ import "./image-CBBib8Ld.js";
24
+ import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-Bd34S1mx.js";
25
25
  import "./fetch-C6LwQYOf.js";
26
26
  import "./fetch-guard-B1gqp9Cu.js";
27
27
  import "./api-key-rotation-9CbKvlYi.js";
@@ -19,18 +19,18 @@ import "./dock-2ifhd2CL.js";
19
19
  import "./message-channel-CSxZnhaV.js";
20
20
  import "./plugins-IsWYhQUd.js";
21
21
  import "./sessions-DYMgGJDb.js";
22
- import { d as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-CCZC5tJf.js";
23
- import "./image-Ccz6ndn7.js";
22
+ import { d as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-BkEXZq6_.js";
23
+ import "./image-Dkl58_nM.js";
24
24
  import "./models-config-E6UjccpQ.js";
25
- import "./pi-embedded-helpers-DBZo6ghW.js";
26
- import "./sandbox-dnsTApLp.js";
25
+ import "./pi-embedded-helpers-CuiXHzQ1.js";
26
+ import "./sandbox-4_YzlsBa.js";
27
27
  import "./tool-catalog-DEbNxV11.js";
28
- import "./chrome-DLZaNSqV.js";
28
+ import "./chrome-uzcvgAW9.js";
29
29
  import "./tailscale-D0l0E6wR.js";
30
30
  import "./tailnet-CW8QpG1h.js";
31
31
  import "./ws-CyDV_9z2.js";
32
32
  import "./auth-C-PQHdpn.js";
33
- import "./server-context-CYPsJeRg.js";
33
+ import "./server-context-DWRUW3Oc.js";
34
34
  import "./frontmatter-2aKLThq2.js";
35
35
  import "./skills-BnBOxX1c.js";
36
36
  import "./path-alias-guards-CCRXJArp.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-BAHgzvVh.js";
4
4
  import { _ as normalizeChatType } from "./plugins-DyL70_Cc.js";
5
5
  import { E as kindFromMime, S as getFileExtension, b as detectMime, w as isAudioFileName } from "./image-ops-kjt4AS_Q.js";
6
- import { t as describeImageWithModel, w as ensureSquidClawModelsJson } from "./image-DI75geX3.js";
6
+ import { t as describeImageWithModel, w as ensureSquidClawModelsJson } from "./image-CBBib8Ld.js";
7
7
  import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia, t as MediaFetchError } from "./fetch-C6LwQYOf.js";
8
8
  import { n as fetchWithTimeout } from "./fetch-timeout-B_Wivh-n.js";
9
9
  import { t as fetchWithSsrFGuard } from "./fetch-guard-B1gqp9Cu.js";
@@ -3,7 +3,7 @@ import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValu
3
3
  import { n as runExec } from "./exec-Dfgi8amS.js";
4
4
  import { A as normalizeGoogleModelId, d as normalizeProviderId, dn as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, fn as isInboundPathAllowed, mn as resolveIMessageAttachmentRoots, nt as requireApiKey, pn as mergeInboundPathRoots, rt as resolveApiKeyForProvider } from "./model-selection-CYbcDqxk.js";
5
5
  import { j as normalizeChatType } from "./plugins-IsWYhQUd.js";
6
- import { t as describeImageWithModel } from "./image-Ccz6ndn7.js";
6
+ import { t as describeImageWithModel } from "./image-Dkl58_nM.js";
7
7
  import { i as formatUncaughtError, n as extractErrorCode, s as readErrorName, t as collectErrorGraphCandidates } from "./errors-oMAXKmXG.js";
8
8
  import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-BIWika4g.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-BTot-we4.js";
@@ -9,24 +9,24 @@ import { d as normalizePluginsConfig } from "./manifest-registry-BaUPjNKb.js";
9
9
  import { l as normalizeStringEntries } from "./dock-2ifhd2CL.js";
10
10
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CSxZnhaV.js";
11
11
  import { n as listChannelPlugins } from "./plugins-IsWYhQUd.js";
12
- import { C as resolveToolProfilePolicy, f as resolveSandboxConfigForAgent, k as SANDBOX_BROWSER_SECURITY_HASH_EPOCH, l as execDockerRaw, m as resolveSandboxToolPolicyForAgent, u as getBlockedBindReason } from "./sandbox-dnsTApLp.js";
12
+ import { C as resolveToolProfilePolicy, f as resolveSandboxConfigForAgent, k as SANDBOX_BROWSER_SECURITY_HASH_EPOCH, l as execDockerRaw, m as resolveSandboxToolPolicyForAgent, u as getBlockedBindReason } from "./sandbox-4_YzlsBa.js";
13
13
  import { a as resolveGatewayAuth } from "./auth-C-PQHdpn.js";
14
14
  import { t as resolveGatewayCredentialsFromConfig } from "./credentials-CR1rTMla.js";
15
- import { a as resolveProfile, c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-CYPsJeRg.js";
15
+ import { a as resolveProfile, c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-DWRUW3Oc.js";
16
16
  import { i as loadWorkspaceSkillEntries } from "./skills-BnBOxX1c.js";
17
17
  import { r as formatErrorMessage } from "./errors-oMAXKmXG.js";
18
18
  import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled } from "./commands-ZMRZQlsa.js";
19
- import { t as GatewayClient } from "./client-DYXM5N_N.js";
20
- import { l as READ_SCOPE, t as buildGatewayConnectionDetails } from "./call-CsRvPUMG.js";
19
+ import { t as GatewayClient } from "./client-gy8bx9Xy.js";
20
+ import { l as READ_SCOPE, t as buildGatewayConnectionDetails } from "./call-BZMmsZnA.js";
21
21
  import { i as readChannelAllowFromStore } from "./pairing-store-BWlsysu-.js";
22
22
  import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-BVu6icJL.js";
23
- import { l as resolveDmAllowState, n as isToolAllowedByPolicies, o as pickSandboxToolPolicy } from "./pi-tools.policy-BYTs7z53.js";
23
+ import { l as resolveDmAllowState, n as isToolAllowedByPolicies, o as pickSandboxToolPolicy } from "./pi-tools.policy-FpqAOqvu.js";
24
24
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CN1u5zht.js";
25
25
  import { t as listAgentWorkspaceDirs } from "./workspace-dirs-BD6agTFk.js";
26
26
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-D0u9YNYf.js";
27
27
  import { t as resolveChannelDefaultAccountId } from "./helpers-CvsgDup6.js";
28
28
  import { t as scanDirectoryWithSummary } from "./skill-scanner-rdr9cQew.js";
29
- import { r as resolveNodeCommandAllowlist, t as DEFAULT_DANGEROUS_NODE_COMMANDS } from "./node-command-policy-CPjB6YQt.js";
29
+ import { r as resolveNodeCommandAllowlist, t as DEFAULT_DANGEROUS_NODE_COMMANDS } from "./node-command-policy-CzqB-8ah.js";
30
30
  import { c as normalizeTelegramAllowFromEntry, s as isNumericTelegramUserId, t as isDiscordMutableAllowEntry } from "./mutable-allowlist-detectors-CsTC5ncA.js";
31
31
  import { t as inferParamBFromIdOrName } from "./model-param-b-By9uTH-E.js";
32
32
  import path from "node:path";
@@ -3,11 +3,11 @@ import { A as resolveDefaultAgentWorkspaceDir, P as toAgentModelListLike, a as r
3
3
  import { At as generateChutesPkce, G as SYNTHETIC_DEFAULT_MODEL_REF, I as VENICE_DEFAULT_MODEL_REF, Li as KILOCODE_DEFAULT_MODEL_REF, Ot as CHUTES_AUTHORIZE_ENDPOINT, Ti as resolveSquidClawAgentDir, _t as resolveAuthProfileOrder, at as resolveEnvApiKey, dt as isHuggingfacePolicyLocked, fi as listProfilesForProvider, ft as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, g as resolveDefaultModelForAgent, hi as upsertAuthProfile, jt as parseOAuthCallbackInput, kt as exchangeChutesCodeForTokens, tt as getCustomProviderApiKey, ut as discoverHuggingfaceModels, vi as ensureAuthProfileStore } from "./model-selection-CYbcDqxk.js";
4
4
  import { i as isLoopbackHost } from "./ws-CyDV_9z2.js";
5
5
  import { n as loadModelCatalog } from "./model-catalog-BA65TdJI.js";
6
- import { f as openUrl } from "./onboard-helpers-JS-Lbczt.js";
6
+ import { f as openUrl } from "./onboard-helpers-DZtoPn8i.js";
7
7
  import { t as enablePluginInConfig } from "./enable-CDT4yxhz.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-62QGo1SR.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-D-HcPPvY.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-BrYxePGn.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-Ds4co7pd.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-CxNMRPoN.js";
12
12
  import { c as OPENAI_CODEX_DEFAULT_MODEL, l as applyOpenAICodexModelDefault, r as applyPrimaryModel, s as promptAndConfigureVllm } from "./model-picker-4_epGej_.js";
13
13
  import { r as runOpenAIOAuthTlsPreflight, t as formatOpenAIOAuthTlsPreflightFix } from "./oauth-tls-preflight-CqqomOFQ.js";
@@ -24,15 +24,15 @@ import "./redact-BHOzodtN.js";
24
24
  import "./errors-oMAXKmXG.js";
25
25
  import "./fs-safe-CKHYu4Vz.js";
26
26
  import { t as movePathToTrash } from "./trash-C4dj1x0P.js";
27
- import "./client-DYXM5N_N.js";
28
- import "./call-CsRvPUMG.js";
27
+ import "./client-gy8bx9Xy.js";
28
+ import "./call-BZMmsZnA.js";
29
29
  import "./pairing-token-C0LPdqAt.js";
30
30
  import { t as formatDocsLink } from "./links-De9M3AmU.js";
31
31
  import { n as runCommandWithRuntime } from "./cli-utils-Ca0KE-dW.js";
32
32
  import { t as formatHelpExamples } from "./help-format-BMkyP_P-.js";
33
33
  import "./progress-BHN121Ps.js";
34
34
  import { n as inheritOptionFromParent } from "./command-options-D0bXi5Pl.js";
35
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DXJlCFNJ.js";
35
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CMY4PORW.js";
36
36
  import { t as copyToClipboard } from "./clipboard-Cv0aNouS.js";
37
37
  import { fileURLToPath } from "node:url";
38
38
  import fs from "node:fs";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.31",
2
+ "version": "3.0.33",
3
3
  "commit": "d1a1a88d935c4868c440c8d73bd3799dd6009abf",
4
- "builtAt": "2026-03-30T11:22:41.929Z"
4
+ "builtAt": "2026-03-30T11:38:19.522Z"
5
5
  }
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: session-memory
3
- description: "Save session context to memory when /new or /reset command is issued"
3
+ description: "Per-user memory: injects memories at session start, saves context on /new or /reset"
4
4
  homepage: https://docs.squidclaw.ai/automation/hooks#session-memory
5
5
  metadata:
6
6
  {
7
7
  "squidclaw":
8
8
  {
9
9
  "emoji": "💾",
10
- "events": ["command:new", "command:reset"],
10
+ "events": ["command:new", "command:reset", "agent:bootstrap", "message:received", "message:sent"],
11
11
  "requires": { "config": ["workspace.dir"] },
12
12
  "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with SquidClaw" }],
13
13
  },
@@ -801,6 +801,8 @@ async function syncLongTermContextFile(params) {
801
801
  * Creates a new dated memory file with LLM-generated slug
802
802
  */
803
803
  const log = createSubsystemLogger("hooks/session-memory");
804
+ const AUTO_EXTRACT_EVERY_TURNS = 5;
805
+ const sessionTurnBuffers = /* @__PURE__ */ new Map();
804
806
  /**
805
807
  * Read recent messages from session file for slug generation
806
808
  */
@@ -937,6 +939,52 @@ function buildPeerMemoryContext(dbPath, agentId, peerId) {
937
939
  * Save session context to memory when /new or /reset command is triggered
938
940
  */
939
941
  const saveSessionToMemory = async (event) => {
942
+ if (event.type === "message" && (event.action === "received" || event.action === "sent")) {
943
+ const sessionKey = event.sessionKey;
944
+ const ctx = event.context;
945
+ const cfg = ctx.cfg;
946
+ if (!cfg) return;
947
+ const buf = sessionTurnBuffers.get(sessionKey) ?? {
948
+ turns: [],
949
+ extractedAtTurn: 0
950
+ };
951
+ if (event.action === "received") {
952
+ const body = ctx.body || ctx.bodyForAgent || "";
953
+ if (body.trim()) buf.pendingUser = body.trim();
954
+ sessionTurnBuffers.set(sessionKey, buf);
955
+ return;
956
+ }
957
+ if (buf.pendingUser) {
958
+ const assistantContent = ctx.content || "";
959
+ buf.turns.push(`User: ${buf.pendingUser}`);
960
+ buf.turns.push(`Assistant: ${assistantContent.slice(0, 800)}`);
961
+ buf.pendingUser = void 0;
962
+ if (buf.turns.length > 40) buf.turns = buf.turns.slice(-40);
963
+ const completedTurns = Math.floor(buf.turns.length / 2);
964
+ if (completedTurns - buf.extractedAtTurn >= AUTO_EXTRACT_EVERY_TURNS) {
965
+ buf.extractedAtTurn = completedTurns;
966
+ const agentId = resolveAgentIdFromSessionKey(sessionKey);
967
+ const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);
968
+ const userId = extractPeerIdFromSessionKey(sessionKey) ?? agentId ?? "default";
969
+ const dbPath = path.join(workspaceDir, "memory", "long-term.db");
970
+ const sessionContent = buf.turns.join("\n");
971
+ log.debug(`Auto-extracting memories for ${userId} after ${completedTurns} turns`);
972
+ setImmediate(() => {
973
+ runLongTermExtraction({
974
+ sessionContent,
975
+ sessionId: `auto-${sessionKey}-${Date.now()}`,
976
+ cfg,
977
+ workspaceDir,
978
+ agentId: agentId ?? "default",
979
+ userId,
980
+ dbPath
981
+ }).catch((err) => log.debug("Auto-extraction failed (non-fatal)", { error: String(err) }));
982
+ });
983
+ }
984
+ }
985
+ sessionTurnBuffers.set(sessionKey, buf);
986
+ return;
987
+ }
940
988
  if (isAgentBootstrapEvent(event)) {
941
989
  const peerId = extractPeerIdFromSessionKey(event.sessionKey);
942
990
  if (!peerId) return;
@@ -5,7 +5,7 @@ import { A as hasConfiguredSecretInput, F as resolveSecretInputRef } from "./reg
5
5
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CSxZnhaV.js";
6
6
  import { a as isSecureWebSocketUrl } from "./ws-CyDV_9z2.js";
7
7
  import { t as resolveGatewayCredentialsFromConfig } from "./credentials-CR1rTMla.js";
8
- import { Mt as PROTOCOL_VERSION, en as normalizeFingerprint, nn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-DYXM5N_N.js";
8
+ import { Mt as PROTOCOL_VERSION, en as normalizeFingerprint, nn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-gy8bx9Xy.js";
9
9
  import path from "node:path";
10
10
  import { promisify } from "node:util";
11
11
  import fs from "node:fs/promises";
@@ -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-IsWYhQUd.js";
4
4
  import { a as listChannelPluginCatalogEntries } from "./plugin-auto-enable-DtyL8l35.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-FXXByNP3.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Cpf1qgAz.js";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import fs from "node:fs";
8
8
  import path from "node:path";
@@ -1,13 +1,13 @@
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-DM6COks_.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-d12k6JyN.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-CYbcDqxk.js";
7
7
  import { t as formatCliCommand } from "./command-format-z1t1m-Kx.js";
8
8
  import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-2ifhd2CL.js";
9
9
  import { c as recordSessionMetaFromInbound, o as loadSessionStore, ot as resolveGroupSessionKey, u as updateLastRoute } from "./sessions-DYMgGJDb.js";
10
- import { u as registerUnhandledRejectionHandler } from "./audio-transcription-runner-CCZC5tJf.js";
10
+ import { u as registerUnhandledRejectionHandler } from "./audio-transcription-runner-BkEXZq6_.js";
11
11
  import { i as saveMediaBuffer } from "./store-PDMRmC5Z.js";
12
12
  import { i as resolveWhatsAppAccount, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-D095MOmG.js";
13
13
  import { c as resolveStorePath } from "./paths-B9v1dJHA.js";
@@ -16,7 +16,7 @@ import { s as upsertChannelPairingRequest } from "./pairing-store-BWlsysu-.js";
16
16
  import { r as formatDurationPrecise } from "./format-duration-XLSvPvzN.js";
17
17
  import { K as formatLocationText, q as toLocationContext } from "./send-ayueAmmr.js";
18
18
  import { a as loadWebMedia, d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, m as resolveChunkMode, s as resolveMarkdownTableMode } from "./ir-DXSoqqxw.js";
19
- import { c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, u as resolveDmGroupAccessWithCommandGate } from "./pi-tools.policy-BYTs7z53.js";
19
+ import { c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, u as resolveDmGroupAccessWithCommandGate } from "./pi-tools.policy-FpqAOqvu.js";
20
20
  import { n as recordChannelActivity } from "./channel-activity-au6JrYj-.js";
21
21
  import { t as convertMarkdownTables } from "./tables-D5xiUVGI.js";
22
22
  import { r as setActiveWebListener } from "./active-listener-cUtJy06F.js";
@@ -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-DM6COks_.js";
5
+ import { mt as deleteTelegramUpdateOffset, vt as loadProviderUsageSummary, yt as formatUsageReportLines } from "./reply-d12k6JyN.js";
6
6
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-BujGQgAe.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";
@@ -23,18 +23,18 @@ import "./message-channel-CSxZnhaV.js";
23
23
  import { at as parseDiscordTarget, et as fetchChannelPermissionsDiscord } from "./send-Dkm7tdhl.js";
24
24
  import { l as resolveTelegramAccount, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-IsWYhQUd.js";
25
25
  import "./sessions-DYMgGJDb.js";
26
- import "./audio-transcription-runner-CCZC5tJf.js";
27
- import "./image-Ccz6ndn7.js";
26
+ import "./audio-transcription-runner-BkEXZq6_.js";
27
+ import "./image-Dkl58_nM.js";
28
28
  import "./models-config-E6UjccpQ.js";
29
- import "./pi-embedded-helpers-DBZo6ghW.js";
30
- import "./sandbox-dnsTApLp.js";
29
+ import "./pi-embedded-helpers-CuiXHzQ1.js";
30
+ import "./sandbox-4_YzlsBa.js";
31
31
  import "./tool-catalog-DEbNxV11.js";
32
- import "./chrome-DLZaNSqV.js";
32
+ import "./chrome-uzcvgAW9.js";
33
33
  import "./tailscale-D0l0E6wR.js";
34
34
  import "./tailnet-CW8QpG1h.js";
35
35
  import "./ws-CyDV_9z2.js";
36
36
  import "./auth-C-PQHdpn.js";
37
- import "./server-context-CYPsJeRg.js";
37
+ import "./server-context-DWRUW3Oc.js";
38
38
  import "./frontmatter-2aKLThq2.js";
39
39
  import "./skills-BnBOxX1c.js";
40
40
  import "./path-alias-guards-CCRXJArp.js";
@@ -63,11 +63,11 @@ import "./local-roots-EawDAy7B.js";
63
63
  import "./model-catalog-BA65TdJI.js";
64
64
  import "./proxy-fetch-C4C5I8Js.js";
65
65
  import "./tokens-B4_ntOSs.js";
66
- import "./deliver-DGXG0w_w.js";
66
+ import "./deliver-e7dtX7aI.js";
67
67
  import "./commands-ZMRZQlsa.js";
68
68
  import "./commands-registry-fCFRzpW3.js";
69
- import "./client-DYXM5N_N.js";
70
- import { n as callGateway } from "./call-CsRvPUMG.js";
69
+ import "./client-gy8bx9Xy.js";
70
+ import { n as callGateway } from "./call-BZMmsZnA.js";
71
71
  import "./pairing-token-C0LPdqAt.js";
72
72
  import "./fetch-C7NOAcr0.js";
73
73
  import { n as formatTimeAgo } from "./format-relative-DQEv82Cs.js";
@@ -79,7 +79,7 @@ import "./nodes-screen-DkPXrUi2.js";
79
79
  import "./target-errors-BxwxgIDk.js";
80
80
  import "./system-run-command-Tn73Ni57.js";
81
81
  import "./diagnostic-uUmjyJiU.js";
82
- import "./with-timeout-CtjR5hW9.js";
82
+ import "./with-timeout-DINiEgLx.js";
83
83
  import "./send-ayueAmmr.js";
84
84
  import "./model-DYX7DCud.js";
85
85
  import "./pi-model-discovery-jKXtBUqh.js";
@@ -91,46 +91,46 @@ import "./send-dbtWROAV.js";
91
91
  import "./outbound-attachment-Dfhlf6jc.js";
92
92
  import "./delivery-queue-BHAfJDuf.js";
93
93
  import "./send-DkA_1IkZ.js";
94
- import "./pi-tools.policy-BYTs7z53.js";
94
+ import "./pi-tools.policy-FpqAOqvu.js";
95
95
  import "./channel-activity-au6JrYj-.js";
96
96
  import "./tables-D5xiUVGI.js";
97
97
  import "./proxy-CzncRRd4.js";
98
98
  import "./skill-commands-BnbbI1PH.js";
99
99
  import "./workspace-dirs-BD6agTFk.js";
100
100
  import "./runtime-config-collectors-C78CbDLl.js";
101
- import { n as getChannelsCommandSecretTargetIds, s as resolveCommandSecretRefsViaGateway } from "./command-secret-targets-4lxt7RD_.js";
101
+ import { n as getChannelsCommandSecretTargetIds, s as resolveCommandSecretRefsViaGateway } from "./command-secret-targets-QzzK0cvw.js";
102
102
  import "./session-cost-usage-B4DbYmaL.js";
103
- import "./onboard-helpers-JS-Lbczt.js";
103
+ import "./onboard-helpers-DZtoPn8i.js";
104
104
  import "./prompt-style-BoYH_ODs.js";
105
105
  import "./pairing-labels-1HVyRj_b.js";
106
- import "./memory-cli-C7wo32BJ.js";
106
+ import "./memory-cli-CgsaxpRr.js";
107
107
  import "./manager-D2bJ_hf3.js";
108
108
  import "./query-expansion-Bf60ekMj.js";
109
109
  import { t as formatDocsLink } from "./links-De9M3AmU.js";
110
110
  import { n as runCommandWithRuntime } from "./cli-utils-Ca0KE-dW.js";
111
111
  import { t as formatHelpExamples } from "./help-format-BMkyP_P-.js";
112
112
  import { n as withProgress } from "./progress-BHN121Ps.js";
113
- import "./server-lifecycle-CL57-qY-.js";
113
+ import "./server-lifecycle-DSRW9YyS.js";
114
114
  import "./stagger-DL-XRpny.js";
115
- import "./channel-web-B9qThdZn.js";
115
+ import "./channel-web-DRCZstY9.js";
116
116
  import "./outbound-DEP_-2Ej.js";
117
117
  import "./session-CZJ5Ux6-.js";
118
118
  import "./login-CHNHfdet.js";
119
- import "./plugin-registry-FXXByNP3.js";
120
- import { t as formatCliChannelOptions } from "./channel-options-DiLSWw11.js";
119
+ import "./plugin-registry-Cpf1qgAz.js";
120
+ import { t as formatCliChannelOptions } from "./channel-options-ByYVebwk.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-uxYKdj5Y.js";
127
- import { n as buildAgentSummaries } from "./agents.config-DOZdl-eO.js";
127
+ import { n as buildAgentSummaries } from "./agents.config-Cav8LwTL.js";
128
128
  import "./enable-CDT4yxhz.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-D2p7QNyT.js";
133
+ import { a as reloadOnboardingPluginRegistry, i as ensureOnboardingPluginInstalled, r as setupChannels } from "./onboard-channels-CA3x3tGg.js";
134
134
  import "./auth-choice.apply-helpers-62QGo1SR.js";
135
135
  import "./issue-format-BwjsnqTE.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$1, { WebSocketServer } from "ws";
16
+ import WebSocket, { 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$1.OPEN;
595
+ const extensionConnected = () => extensionWs?.readyState === WebSocket.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$1.OPEN) throw new Error("Chrome extension not connected");
647
+ if (!ws || ws.readyState !== WebSocket.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$1.OPEN) continue;
664
+ if (ws.readyState !== WebSocket.OPEN) continue;
665
665
  ws.send(msg);
666
666
  }
667
667
  };
668
668
  const sendResponseToCdp = (ws, res) => {
669
- if (ws.readyState !== WebSocket$1.OPEN) return;
669
+ if (ws.readyState !== WebSocket.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$1.OPEN) {
923
+ if (extensionWs && extensionWs.readyState !== WebSocket.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$1.OPEN) return;
956
+ if (ws.readyState !== WebSocket.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$1(wsUrl, {
1312
+ return new WebSocket(wsUrl, {
1313
1313
  handshakeTimeout: handshakeTimeoutMs,
1314
1314
  ...Object.keys(headers).length ? { headers } : {},
1315
1315
  ...agent ? { agent } : {}
@@ -11,7 +11,7 @@ import { execFileSync, spawn } from "node:child_process";
11
11
  import { createHmac } from "node:crypto";
12
12
  import http, { createServer } from "node:http";
13
13
  import https from "node:https";
14
- import WebSocket, { WebSocketServer } from "ws";
14
+ import WebSocket$1, { WebSocketServer } from "ws";
15
15
 
16
16
  //#region src/browser/constants.ts
17
17
  const DEFAULT_SQUIDCLAW_BROWSER_ENABLED = true;
@@ -310,7 +310,7 @@ async function ensureChromeExtensionRelayServer(opts) {
310
310
  let extensionWs = null;
311
311
  const cdpClients = /* @__PURE__ */ new Set();
312
312
  const connectedTargets = /* @__PURE__ */ new Map();
313
- const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
313
+ const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
314
314
  const hasConnectedTargets = () => connectedTargets.size > 0;
315
315
  let extensionDisconnectCleanupTimer = null;
316
316
  const extensionReconnectWaiters = /* @__PURE__ */ new Set();
@@ -362,7 +362,7 @@ async function ensureChromeExtensionRelayServer(opts) {
362
362
  let nextExtensionId = 1;
363
363
  const sendToExtension = async (payload) => {
364
364
  const ws = extensionWs;
365
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
365
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
366
366
  ws.send(JSON.stringify(payload));
367
367
  return await new Promise((resolve, reject) => {
368
368
  const timer = setTimeout(() => {
@@ -379,12 +379,12 @@ async function ensureChromeExtensionRelayServer(opts) {
379
379
  const broadcastToCdpClients = (evt) => {
380
380
  const msg = JSON.stringify(evt);
381
381
  for (const ws of cdpClients) {
382
- if (ws.readyState !== WebSocket.OPEN) continue;
382
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
383
383
  ws.send(msg);
384
384
  }
385
385
  };
386
386
  const sendResponseToCdp = (ws, res) => {
387
- if (ws.readyState !== WebSocket.OPEN) return;
387
+ if (ws.readyState !== WebSocket$1.OPEN) return;
388
388
  ws.send(JSON.stringify(res));
389
389
  };
390
390
  const dropConnectedTargetSession = (sessionId) => {
@@ -638,7 +638,7 @@ async function ensureChromeExtensionRelayServer(opts) {
638
638
  rejectUpgrade(socket, 401, "Unauthorized");
639
639
  return;
640
640
  }
641
- if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
641
+ if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
642
642
  try {
643
643
  extensionWs.terminate();
644
644
  } catch {}
@@ -671,7 +671,7 @@ async function ensureChromeExtensionRelayServer(opts) {
671
671
  clearExtensionDisconnectCleanupTimer();
672
672
  flushExtensionReconnectWaiters(true);
673
673
  const ping = setInterval(() => {
674
- if (ws.readyState !== WebSocket.OPEN) return;
674
+ if (ws.readyState !== WebSocket$1.OPEN) return;
675
675
  ws.send(JSON.stringify({ method: "ping" }));
676
676
  }, 5e3);
677
677
  ws.on("message", (data) => {
@@ -1027,7 +1027,7 @@ function openCdpWebSocket(wsUrl, opts) {
1027
1027
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
1028
1028
  const handshakeTimeoutMs = typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : CDP_WS_HANDSHAKE_TIMEOUT_MS;
1029
1029
  const agent = getDirectAgentForCdp(wsUrl);
1030
- return new WebSocket(wsUrl, {
1030
+ return new WebSocket$1(wsUrl, {
1031
1031
  handshakeTimeout: handshakeTimeoutMs,
1032
1032
  ...Object.keys(headers).length ? { headers } : {},
1033
1033
  ...agent ? { agent } : {}
@@ -17,13 +17,13 @@ import "./manifest-registry-BaUPjNKb.js";
17
17
  import "./message-channel-CSxZnhaV.js";
18
18
  import "./tailnet-CW8QpG1h.js";
19
19
  import "./ws-CyDV_9z2.js";
20
- import "./client-DYXM5N_N.js";
21
- import "./call-CsRvPUMG.js";
20
+ import "./client-gy8bx9Xy.js";
21
+ import "./call-BZMmsZnA.js";
22
22
  import "./pairing-token-C0LPdqAt.js";
23
23
  import "./runtime-config-collectors-C78CbDLl.js";
24
- import "./command-secret-targets-4lxt7RD_.js";
24
+ import "./command-secret-targets-QzzK0cvw.js";
25
25
  import { t as formatDocsLink } from "./links-De9M3AmU.js";
26
- import { n as registerQrCli } from "./qr-cli-t7wb_tRQ.js";
26
+ import { n as registerQrCli } from "./qr-cli-DhqLEdBe.js";
27
27
 
28
28
  //#region src/cli/clawbot-cli.ts
29
29
  function registerClawbotCli(program) {