squidclaw 3.0.32 → 3.0.34

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 (186) hide show
  1. package/dist/{accounts-BFS_qklA.js → accounts-CB2Or0mr.js} +2 -2
  2. package/dist/{accounts-DfrJiFJJ.js → accounts-Cop2dSRo.js} +2 -2
  3. package/dist/{accounts-pMDX8iho.js → accounts-CqITV0Ga.js} +4 -4
  4. package/dist/{active-listener-CH2vJ3EZ.js → active-listener-B6G6kmsb.js} +2 -2
  5. package/dist/{api-key-rotation-DCBXT0v7.js → api-key-rotation-Da2qYrP7.js} +2 -2
  6. package/dist/{audio-preflight-B5XvcdFX.js → audio-preflight-yiMsGLW7.js} +30 -30
  7. package/dist/{audio-transcription-runner-DUC0ItDY.js → audio-transcription-runner-Mha07yP4.js} +12 -12
  8. package/dist/{audit-membership-runtime-czdecfjJ.js → audit-membership-runtime-By9-qSwl.js} +3 -3
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +49 -49
  11. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  12. package/dist/bundled/command-logger/handler.js +1 -1
  13. package/dist/bundled/session-memory/HOOK.md +2 -1
  14. package/dist/bundled/session-memory/handler.js +190 -55
  15. package/dist/{channel-activity-7QMEKenc.js → channel-activity-Du1kh0t3.js} +3 -3
  16. package/dist/{chrome-BTwG9Gvh.js → chrome-C2CliEWR.js} +15 -15
  17. package/dist/{commands-registry-BIi1tG__.js → commands-registry-6jWzz0mk.js} +4 -4
  18. package/dist/{deliver-DZCNXFM8.js → deliver-Ddw3EsOV.js} +11 -11
  19. package/dist/deliver-runtime-CF9aNwHW.js +36 -0
  20. package/dist/deps-send-discord.runtime-BdlL7AnG.js +26 -0
  21. package/dist/deps-send-imessage.runtime-BQx5JSa_.js +25 -0
  22. package/dist/deps-send-signal.runtime-dgrmoRN9.js +24 -0
  23. package/dist/deps-send-slack.runtime-CCOjVEQr.js +22 -0
  24. package/dist/deps-send-telegram.runtime-BgwTF5zt.js +27 -0
  25. package/dist/deps-send-whatsapp.runtime-C_zE7G9V.js +60 -0
  26. package/dist/{deps-send-whatsapp.runtime-rPF4BAeN.js → deps-send-whatsapp.runtime-DhuS0SeA.js} +2 -2
  27. package/dist/{diagnostic-4Dbmo6KU.js → diagnostic-B74jJPqv.js} +2 -2
  28. package/dist/{errors-Dih7OXdL.js → errors-CCLnP2Fs.js} +1 -1
  29. package/dist/extensionAPI.js +1 -1
  30. package/dist/{fetch-COEkF6YP.js → fetch-OMudX6HR.js} +4 -4
  31. package/dist/{fetch-guard-CcP28UT1.js → fetch-guard-DBZ7o2IA.js} +2 -2
  32. package/dist/{frontmatter-LLGh43CC.js → frontmatter-vSrur-r-.js} +3 -3
  33. package/dist/{fs-safe-NHJJ1b9f.js → fs-safe-Dy2_iDiY.js} +3 -3
  34. package/dist/{image-COAbpp2B.js → image-CdfqhHaX.js} +6 -6
  35. package/dist/{image-ops-QLLBkxzG.js → image-ops-BQmWYj-1.js} +2 -2
  36. package/dist/image-runtime-BFxy3jl0.js +29 -0
  37. package/dist/{ir-RKRKj5a9.js → ir-DEPhOdwg.js} +8 -8
  38. package/dist/{legacy-names-CR_H5NWa.js → legacy-names-CDxprteD.js} +1 -1
  39. package/dist/llm-slug-generator.js +49 -49
  40. package/dist/{logger-D20iS3B-.js → logger-onBePS9K.js} +1 -1
  41. package/dist/{login-C1_lumKW.js → login-BPzRFY6S.js} +5 -5
  42. package/dist/{login-qr-D0Gij2UC.js → login-qr-BZbSxC-5.js} +8 -8
  43. package/dist/{manager-B_QaG_-L.js → manager-D3ROcs7_.js} +9 -9
  44. package/dist/manager-runtime-Dup90ARI.js +18 -0
  45. package/dist/{model-selection-Bjj4oU16.js → model-selection-Bh4BR1_K.js} +10 -10
  46. package/dist/{outbound-ChkqJkiM.js → outbound-BApjXYwN.js} +6 -6
  47. package/dist/{outbound-attachment-CRXa01xP.js → outbound-attachment-1Yd0-JW2.js} +2 -2
  48. package/dist/{path-alias-guards-DgNuZPBA.js → path-alias-guards-B63g_1Gb.js} +1 -1
  49. package/dist/{paths-7EEBmI5a.js → paths-BJWEyNJy.js} +1 -1
  50. package/dist/{pi-embedded-BoY_A7hg.js → pi-embedded-BPU69pec.js} +50 -50
  51. package/dist/{pi-embedded-CLTN3qXD.js → pi-embedded-Cajbf_ri.js} +131 -131
  52. package/dist/{pi-embedded-helpers-1Z1aUoto.js → pi-embedded-helpers-xpgo_nwz.js} +19 -19
  53. package/dist/{pi-model-discovery-DSuyTtRM.js → pi-model-discovery-BbCPyLm5.js} +1 -1
  54. package/dist/pi-model-discovery-runtime-BeF5ldX8.js +11 -0
  55. package/dist/{pi-tools.before-tool-call.runtime-BCq4EKHD.js → pi-tools.before-tool-call.runtime-s89v8h6G.js} +7 -7
  56. package/dist/plugin-sdk/accounts-BXFDqY90.js +288 -0
  57. package/dist/plugin-sdk/accounts-DU7Js54-.js +46 -0
  58. package/dist/plugin-sdk/accounts-DxiB_4z4.js +35 -0
  59. package/dist/plugin-sdk/active-listener-DRKcesNb.js +50 -0
  60. package/dist/plugin-sdk/api-key-rotation-k1ZNheUH.js +181 -0
  61. package/dist/plugin-sdk/audio-preflight-Be1sKsob.js +69 -0
  62. package/dist/plugin-sdk/audio-transcription-runner-jhHyCc_7.js +2176 -0
  63. package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +58 -0
  64. package/dist/plugin-sdk/channel-activity-Bq1Y9RiB.js +94 -0
  65. package/dist/plugin-sdk/channel-web-AsdjtnvN.js +2256 -0
  66. package/dist/plugin-sdk/chrome-DOnBMnlx.js +2415 -0
  67. package/dist/plugin-sdk/commands-registry-D0py59pz.js +1125 -0
  68. package/dist/plugin-sdk/config-B16xKqSo.js +17912 -0
  69. package/dist/plugin-sdk/deliver-BqXXtIuw.js +1694 -0
  70. package/dist/plugin-sdk/deliver-runtime-D0xZkt8n.js +32 -0
  71. package/dist/plugin-sdk/deps-send-discord.runtime-BM6ppx2Q.js +23 -0
  72. package/dist/plugin-sdk/deps-send-imessage.runtime-3w5PhXGu.js +22 -0
  73. package/dist/plugin-sdk/deps-send-signal.runtime-yH9cQl3_.js +21 -0
  74. package/dist/plugin-sdk/deps-send-slack.runtime-Bh4gw-L5.js +19 -0
  75. package/dist/plugin-sdk/deps-send-telegram.runtime-C_CtsWgt.js +24 -0
  76. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BF4vx9Ho.js +57 -0
  77. package/dist/plugin-sdk/diagnostic-DUbajFSl.js +319 -0
  78. package/dist/plugin-sdk/errors-B8oJXuCF.js +54 -0
  79. package/dist/plugin-sdk/fetch-guard-Cgyq6Jv9.js +156 -0
  80. package/dist/plugin-sdk/fs-safe-BW1ypSDS.js +352 -0
  81. package/dist/plugin-sdk/image-BPXnvxYL.js +2310 -0
  82. package/dist/plugin-sdk/image-ops-BBY2fn9x.js +584 -0
  83. package/dist/plugin-sdk/image-runtime-S-TzaJpg.js +25 -0
  84. package/dist/plugin-sdk/imessage.js +2 -2
  85. package/dist/plugin-sdk/index.js +50 -50
  86. package/dist/plugin-sdk/ir-BJsqyZfm.js +1296 -0
  87. package/dist/plugin-sdk/local-roots-C1ETRlaC.js +186 -0
  88. package/dist/plugin-sdk/logger-DDdrdbDu.js +1163 -0
  89. package/dist/plugin-sdk/login-DtS9DDnV.js +57 -0
  90. package/dist/plugin-sdk/login-qr-B9YeeJ37.js +320 -0
  91. package/dist/plugin-sdk/manager-Dn7j3n0d.js +3917 -0
  92. package/dist/plugin-sdk/manager-runtime-UK1-iA2B.js +15 -0
  93. package/dist/plugin-sdk/mattermost.js +3 -3
  94. package/dist/plugin-sdk/outbound-B8ca8vE3.js +212 -0
  95. package/dist/plugin-sdk/outbound-attachment-BppFIMQa.js +19 -0
  96. package/dist/plugin-sdk/path-alias-guards-BX-3FprC.js +43 -0
  97. package/dist/plugin-sdk/paths-CjFcHB_C.js +166 -0
  98. package/dist/plugin-sdk/pi-embedded-helpers-BeYjP1MW.js +9627 -0
  99. package/dist/plugin-sdk/pi-model-discovery-B_qCKuSW.js +134 -0
  100. package/dist/plugin-sdk/pi-model-discovery-runtime-CZNiNFlm.js +8 -0
  101. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-cZdrrV27.js +354 -0
  102. package/dist/plugin-sdk/plugins-rivB8KaQ.js +864 -0
  103. package/dist/{proxy-fetch-ChIxNDe3.js → plugin-sdk/proxy-fetch-ZPEvp58f.js} +1 -1
  104. package/dist/plugin-sdk/pw-ai-qaWZD0yx.js +1938 -0
  105. package/dist/plugin-sdk/qmd-manager-izn0N9V3.js +1448 -0
  106. package/dist/plugin-sdk/query-expansion-C1Nx0XAb.js +1011 -0
  107. package/dist/{redact-BSwbgwaV.js → plugin-sdk/redact-BoNEjbpF.js} +1 -1
  108. package/dist/plugin-sdk/reply-DNSpho0-.js +98763 -0
  109. package/dist/plugin-sdk/resolve-outbound-target-YiPIGXVN.js +40 -0
  110. package/dist/plugin-sdk/run-with-concurrency-vfuRiXdY.js +2023 -0
  111. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BgwMJs4X.js +10 -0
  112. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-Y7maoii7.js +19 -0
  113. package/dist/plugin-sdk/send-BSD6Pkrk.js +414 -0
  114. package/dist/plugin-sdk/send-C4KxEJe1.js +503 -0
  115. package/dist/plugin-sdk/send-D3XVKGvq.js +540 -0
  116. package/dist/plugin-sdk/send-DFrnRiWm.js +3135 -0
  117. package/dist/plugin-sdk/send-Dh1f5xjE.js +2587 -0
  118. package/dist/plugin-sdk/session-D5c0BIEo.js +169 -0
  119. package/dist/plugin-sdk/skill-commands-CnqkEfhS.js +342 -0
  120. package/dist/plugin-sdk/skills-DSbDUvmU.js +1428 -0
  121. package/dist/plugin-sdk/slack.js +2 -2
  122. package/dist/plugin-sdk/slash-commands.runtime-Dbtq7ppF.js +13 -0
  123. package/dist/plugin-sdk/slash-dispatch.runtime-BhAks953.js +52 -0
  124. package/dist/plugin-sdk/slash-skill-commands.runtime-QGNWVO9S.js +16 -0
  125. package/dist/plugin-sdk/ssrf-DvsjfpC2.js +202 -0
  126. package/dist/plugin-sdk/store-DG90hxe6.js +81 -0
  127. package/dist/plugin-sdk/subagent-registry-runtime-Db83OZ3_.js +52 -0
  128. package/dist/plugin-sdk/tables-DNlQ8oQ3.js +55 -0
  129. package/dist/{target-errors-BMTA5KVE.js → plugin-sdk/target-errors-BlVYPwVC.js} +2 -2
  130. package/dist/plugin-sdk/thinking-DT2ZR60x.js +1206 -0
  131. package/dist/{tokens-Cdk21tF_.js → plugin-sdk/tokens-CTIYTLWu.js} +1 -1
  132. package/dist/plugin-sdk/tool-images-DroS1EaM.js +274 -0
  133. package/dist/plugin-sdk/web-42d5VBZj.js +56 -0
  134. package/dist/plugin-sdk/whatsapp-actions-DR2aYq5f.js +80 -0
  135. package/dist/{plugins-D-K4oUXz.js → plugins-D8QbEQB8.js} +6 -6
  136. package/dist/{proxy-env-D9oPe73i.js → proxy-env-DS2YEWWX.js} +1 -1
  137. package/dist/proxy-fetch-08-dhqxn.js +38 -0
  138. package/dist/{pw-ai-4QFtj-s9.js → pw-ai-rD2G8OP-.js} +12 -12
  139. package/dist/{qmd-manager-CIcyVJmI.js → qmd-manager-B9vC7u4w.js} +9 -9
  140. package/dist/{query-expansion-BMExPdLO.js → query-expansion-o9Ib6_Rk.js} +4 -4
  141. package/dist/redact-rnJm_Z5E.js +319 -0
  142. package/dist/{run-with-concurrency-hJFK7PcO.js → run-with-concurrency-C3dKaL_j.js} +3 -3
  143. package/dist/runtime-whatsapp-login.runtime-BVm0A03Y.js +13 -0
  144. package/dist/runtime-whatsapp-outbound.runtime-d8oRCgsW.js +22 -0
  145. package/dist/{send-DySBiOxg.js → send-6s7HVGcN.js} +7 -7
  146. package/dist/{send-BMtxl7vL.js → send-BdQyKIzE.js} +5 -5
  147. package/dist/{send-DJcNRhf_.js → send-CAzswJK6.js} +8 -8
  148. package/dist/{send-CNzGOCHa.js → send-DKB7vlw3.js} +6 -6
  149. package/dist/{send-pUHxPU20.js → send-Q5SBsGfY.js} +14 -14
  150. package/dist/{session-DOFapRIv.js → session-D2CiV8TN.js} +4 -4
  151. package/dist/{skill-commands-yvTkQtnt.js → skill-commands-CgJiKg3Q.js} +5 -5
  152. package/dist/{skills-BjHeDO5V.js → skills-DNyMj13y.js} +7 -7
  153. package/dist/slash-commands.runtime-Cvnjq5gh.js +16 -0
  154. package/dist/{slash-dispatch.runtime-B79IzyjK.js → slash-dispatch.runtime-UHClfKIh.js} +1 -1
  155. package/dist/slash-dispatch.runtime-YGQtou1U.js +56 -0
  156. package/dist/slash-skill-commands.runtime-BbZPUdhN.js +20 -0
  157. package/dist/{store-C3iBzr-_.js → store-Bdm7wypS.js} +2 -2
  158. package/dist/{subagent-registry-runtime-CFbDYdKR.js → subagent-registry-runtime-BYDycq2m.js} +1 -1
  159. package/dist/subagent-registry-runtime-DoZWJdY9.js +56 -0
  160. package/dist/{subsystem-CWsKV5VU.js → subsystem-BJ89YjCN.js} +2 -2
  161. package/dist/{tables-Bv8tJ0qC.js → tables-MEAoO_QC.js} +1 -1
  162. package/dist/target-errors-qetEoXTB.js +195 -0
  163. package/dist/{thinking-BB_GM390.js → thinking-CaLooOu4.js} +7 -7
  164. package/dist/tokens-9NF8L9Uh.js +52 -0
  165. package/dist/{tool-images-HRwkh81U.js → tool-images-CkmNQqHm.js} +2 -2
  166. package/dist/{web-BUpcF84p.js → web-CGbFuIR9.js} +1 -1
  167. package/dist/{web-BbpOMti_.js → web-ajuJjPrA.js} +53 -53
  168. package/dist/{whatsapp-actions-CuLcPfQ9.js → whatsapp-actions-DuJpyhRe.js} +19 -19
  169. package/dist/{workspace-MO4aE903.js → workspace-CkozFUzc.js} +2 -2
  170. package/package.json +2 -2
  171. package/dist/deliver-runtime-BJoBkkm_.js +0 -36
  172. package/dist/deps-send-discord.runtime-Dlb1pOSn.js +0 -26
  173. package/dist/deps-send-imessage.runtime-DmVvqFTt.js +0 -25
  174. package/dist/deps-send-signal.runtime-DPX_GcJK.js +0 -24
  175. package/dist/deps-send-slack.runtime-s7wb1ssP.js +0 -22
  176. package/dist/deps-send-telegram.runtime-DcIT4v5p.js +0 -27
  177. package/dist/deps-send-whatsapp.runtime-DfAhniLS.js +0 -60
  178. package/dist/image-runtime-Dkwf1-U3.js +0 -29
  179. package/dist/manager-runtime-DPiPNTWB.js +0 -18
  180. package/dist/pi-model-discovery-runtime-CRif8A8F.js +0 -11
  181. package/dist/runtime-whatsapp-login.runtime-DTnmQLV1.js +0 -13
  182. package/dist/runtime-whatsapp-outbound.runtime-Da-07rzo.js +0 -22
  183. package/dist/slash-commands.runtime-FS9JZ9BW.js +0 -16
  184. package/dist/slash-dispatch.runtime-BZw5XlvY.js +0 -56
  185. package/dist/slash-skill-commands.runtime-BZIbPU6x.js +0 -20
  186. package/dist/subagent-registry-runtime-Blx4zbr0.js +0 -56
@@ -1,5 +1,5 @@
1
- import { G as normalizeAccountId } from "./workspace-MO4aE903.js";
2
- import { g as createAccountListHelpers, h as resolveAccountEntry } from "./accounts-pMDX8iho.js";
1
+ import { G as normalizeAccountId } from "./workspace-CkozFUzc.js";
2
+ import { g as createAccountListHelpers, h as resolveAccountEntry } from "./accounts-CqITV0Ga.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
@@ -1,5 +1,5 @@
1
- import { G as normalizeAccountId } from "./workspace-MO4aE903.js";
2
- import { g as createAccountListHelpers, h as resolveAccountEntry } from "./accounts-pMDX8iho.js";
1
+ import { G as normalizeAccountId } from "./workspace-CkozFUzc.js";
2
+ import { g as createAccountListHelpers, h as resolveAccountEntry } from "./accounts-CqITV0Ga.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,8 +1,8 @@
1
1
  import { o as resolveOAuthDir } from "./paths-ZhiQAuKk.js";
2
- import { i as defaultRuntime, l as info, m as success, y as getChildLogger } from "./subsystem-CWsKV5VU.js";
3
- import { G as normalizeAccountId, K as normalizeOptionalAccountId, W as DEFAULT_ACCOUNT_ID } from "./workspace-MO4aE903.js";
4
- import { m as jidToE164, y as resolveUserPath } from "./logger-D20iS3B-.js";
5
- import { lr as formatCliCommand } from "./model-selection-Bjj4oU16.js";
2
+ import { i as defaultRuntime, l as info, m as success, y as getChildLogger } from "./subsystem-BJ89YjCN.js";
3
+ import { G as normalizeAccountId, K as normalizeOptionalAccountId, W as DEFAULT_ACCOUNT_ID } from "./workspace-CkozFUzc.js";
4
+ import { m as jidToE164, y as resolveUserPath } from "./logger-onBePS9K.js";
5
+ import { lr as formatCliCommand } from "./model-selection-Bh4BR1_K.js";
6
6
  import fs from "node:fs/promises";
7
7
  import path from "node:path";
8
8
  import fssync from "node:fs";
@@ -1,5 +1,5 @@
1
- import { W as DEFAULT_ACCOUNT_ID } from "./workspace-MO4aE903.js";
2
- import { lr as formatCliCommand } from "./model-selection-Bjj4oU16.js";
1
+ import { W as DEFAULT_ACCOUNT_ID } from "./workspace-CkozFUzc.js";
2
+ import { lr as formatCliCommand } from "./model-selection-Bh4BR1_K.js";
3
3
  import crypto from "node:crypto";
4
4
 
5
5
  //#region src/logging/redact-identifier.ts
@@ -1,5 +1,5 @@
1
- import { c as normalizeProviderId } from "./model-selection-Bjj4oU16.js";
2
- import { r as formatErrorMessage } from "./errors-Dih7OXdL.js";
1
+ import { c as normalizeProviderId } from "./model-selection-Bh4BR1_K.js";
2
+ import { r as formatErrorMessage } from "./errors-CCLnP2Fs.js";
3
3
 
4
4
  //#region src/infra/gemini-auth.ts
5
5
  /**
@@ -1,35 +1,35 @@
1
- import "./run-with-concurrency-hJFK7PcO.js";
1
+ import "./run-with-concurrency-C3dKaL_j.js";
2
2
  import "./paths-ZhiQAuKk.js";
3
- import { p as shouldLogVerbose, u as logVerbose } from "./subsystem-CWsKV5VU.js";
4
- import "./workspace-MO4aE903.js";
5
- import "./logger-D20iS3B-.js";
6
- import "./model-selection-Bjj4oU16.js";
3
+ import { p as shouldLogVerbose, u as logVerbose } from "./subsystem-BJ89YjCN.js";
4
+ import "./workspace-CkozFUzc.js";
5
+ import "./logger-onBePS9K.js";
6
+ import "./model-selection-Bh4BR1_K.js";
7
7
  import "./github-copilot-token-B8Wx9FgQ.js";
8
- import "./legacy-names-CR_H5NWa.js";
9
- import "./thinking-BB_GM390.js";
10
- import "./plugins-D-K4oUXz.js";
11
- import "./accounts-pMDX8iho.js";
12
- import "./accounts-DfrJiFJJ.js";
13
- import "./image-ops-QLLBkxzG.js";
14
- import "./pi-embedded-helpers-1Z1aUoto.js";
15
- import "./chrome-BTwG9Gvh.js";
16
- import "./frontmatter-LLGh43CC.js";
17
- import "./skills-BjHeDO5V.js";
18
- import "./path-alias-guards-DgNuZPBA.js";
19
- import "./redact-BSwbgwaV.js";
20
- import "./errors-Dih7OXdL.js";
21
- import "./fs-safe-NHJJ1b9f.js";
22
- import "./proxy-env-D9oPe73i.js";
23
- import "./store-C3iBzr-_.js";
24
- import "./accounts-BFS_qklA.js";
25
- import "./paths-7EEBmI5a.js";
26
- import "./tool-images-HRwkh81U.js";
27
- import "./image-COAbpp2B.js";
28
- import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-DUC0ItDY.js";
29
- import "./fetch-COEkF6YP.js";
30
- import "./fetch-guard-CcP28UT1.js";
31
- import "./api-key-rotation-DCBXT0v7.js";
32
- import "./proxy-fetch-ChIxNDe3.js";
8
+ import "./legacy-names-CDxprteD.js";
9
+ import "./thinking-CaLooOu4.js";
10
+ import "./plugins-D8QbEQB8.js";
11
+ import "./accounts-CqITV0Ga.js";
12
+ import "./accounts-Cop2dSRo.js";
13
+ import "./image-ops-BQmWYj-1.js";
14
+ import "./pi-embedded-helpers-xpgo_nwz.js";
15
+ import "./chrome-C2CliEWR.js";
16
+ import "./frontmatter-vSrur-r-.js";
17
+ import "./skills-DNyMj13y.js";
18
+ import "./path-alias-guards-B63g_1Gb.js";
19
+ import "./redact-rnJm_Z5E.js";
20
+ import "./errors-CCLnP2Fs.js";
21
+ import "./fs-safe-Dy2_iDiY.js";
22
+ import "./proxy-env-DS2YEWWX.js";
23
+ import "./store-Bdm7wypS.js";
24
+ import "./accounts-CB2Or0mr.js";
25
+ import "./paths-BJWEyNJy.js";
26
+ import "./tool-images-CkmNQqHm.js";
27
+ import "./image-CdfqhHaX.js";
28
+ import { g as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-Mha07yP4.js";
29
+ import "./fetch-OMudX6HR.js";
30
+ import "./fetch-guard-DBZ7o2IA.js";
31
+ import "./api-key-rotation-Da2qYrP7.js";
32
+ import "./proxy-fetch-08-dhqxn.js";
33
33
 
34
34
  //#region src/media-understanding/audio-preflight.ts
35
35
  /**
@@ -1,15 +1,15 @@
1
- import { g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues } from "./run-with-concurrency-hJFK7PcO.js";
2
- import { p as shouldLogVerbose, t as createSubsystemLogger, u as logVerbose, w as resolvePreferredSquidClawTmpDir } from "./subsystem-CWsKV5VU.js";
3
- import { _ as runExec } from "./workspace-MO4aE903.js";
4
- import { M as resolveApiKeyForProvider, X as loadConfig, at as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, c as normalizeProviderId, ct as resolveIMessageAttachmentRoots, g as normalizeGoogleModelId, ir as resolveSquidClawAgentDir, j as requireApiKey, ot as isInboundPathAllowed, st as mergeInboundPathRoots } from "./model-selection-Bjj4oU16.js";
5
- import { _ as normalizeChatType } from "./plugins-D-K4oUXz.js";
6
- import { E as kindFromMime, S as getFileExtension, b as detectMime, w as isAudioFileName } from "./image-ops-QLLBkxzG.js";
7
- import { t as describeImageWithModel, w as ensureSquidClawModelsJson } from "./image-COAbpp2B.js";
8
- import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia, t as MediaFetchError } from "./fetch-COEkF6YP.js";
1
+ import { g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues } from "./run-with-concurrency-C3dKaL_j.js";
2
+ import { p as shouldLogVerbose, t as createSubsystemLogger, u as logVerbose, w as resolvePreferredSquidClawTmpDir } from "./subsystem-BJ89YjCN.js";
3
+ import { _ as runExec } from "./workspace-CkozFUzc.js";
4
+ import { M as resolveApiKeyForProvider, X as loadConfig, at as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, c as normalizeProviderId, ct as resolveIMessageAttachmentRoots, g as normalizeGoogleModelId, ir as resolveSquidClawAgentDir, j as requireApiKey, ot as isInboundPathAllowed, st as mergeInboundPathRoots } from "./model-selection-Bh4BR1_K.js";
5
+ import { _ as normalizeChatType } from "./plugins-D8QbEQB8.js";
6
+ import { E as kindFromMime, S as getFileExtension, b as detectMime, w as isAudioFileName } from "./image-ops-BQmWYj-1.js";
7
+ import { t as describeImageWithModel, w as ensureSquidClawModelsJson } from "./image-CdfqhHaX.js";
8
+ import { a as getDefaultMediaLocalRoots, n as fetchRemoteMedia, t as MediaFetchError } from "./fetch-OMudX6HR.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-Wgx3OXYj.js";
10
- import { t as fetchWithSsrFGuard } from "./fetch-guard-CcP28UT1.js";
11
- import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-DCBXT0v7.js";
12
- import { n as resolveProxyFetchFromEnv } from "./proxy-fetch-ChIxNDe3.js";
10
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-DBZ7o2IA.js";
11
+ import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-Da2qYrP7.js";
12
+ import { n as resolveProxyFetchFromEnv } from "./proxy-fetch-08-dhqxn.js";
13
13
  import fs from "node:fs/promises";
14
14
  import os from "node:os";
15
15
  import path from "node:path";
@@ -22,7 +22,7 @@ import crypto from "node:crypto";
22
22
  const log = createSubsystemLogger("model-catalog");
23
23
  let modelCatalogPromise = null;
24
24
  let hasLoggedModelCatalogError = false;
25
- const defaultImportPiSdk = () => import("./pi-model-discovery-DSuyTtRM.js").then((n) => n.r);
25
+ const defaultImportPiSdk = () => import("./pi-model-discovery-BbCPyLm5.js").then((n) => n.r);
26
26
  let importPiSdk = defaultImportPiSdk;
27
27
  const CODEX_PROVIDER = "openai-codex";
28
28
  const OPENAI_CODEX_GPT53_MODEL_ID = "gpt-5.3-codex";
@@ -1,8 +1,8 @@
1
1
  import "./paths-ZhiQAuKk.js";
2
- import "./subsystem-CWsKV5VU.js";
3
- import { f as isRecord } from "./logger-D20iS3B-.js";
2
+ import "./subsystem-BJ89YjCN.js";
3
+ import { f as isRecord } from "./logger-onBePS9K.js";
4
4
  import { n as fetchWithTimeout } from "./fetch-timeout-Wgx3OXYj.js";
5
- import { t as makeProxyFetch } from "./proxy-fetch-ChIxNDe3.js";
5
+ import { t as makeProxyFetch } from "./proxy-fetch-08-dhqxn.js";
6
6
  import "./proxy-CecQTx_Z.js";
7
7
 
8
8
  //#region src/telegram/audit-membership-runtime.ts
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.32",
3
- "commit": "d1a1a88d935c4868c440c8d73bd3799dd6009abf",
4
- "builtAt": "2026-03-30T11:28:54.930Z"
2
+ "version": "3.0.34",
3
+ "commit": "e36ae09557480366cec6f88c56645e98fd79e7ca",
4
+ "builtAt": "2026-03-31T22:16:07.080Z"
5
5
  }
@@ -1,57 +1,57 @@
1
- import { c as resolveAgentWorkspaceDir, r as listAgentIds } from "../../run-with-concurrency-hJFK7PcO.js";
1
+ import { c as resolveAgentWorkspaceDir, r as listAgentIds } from "../../run-with-concurrency-C3dKaL_j.js";
2
2
  import "../../paths-ZhiQAuKk.js";
3
- import { i as defaultRuntime, t as createSubsystemLogger } from "../../subsystem-CWsKV5VU.js";
4
- import { B as resolveAgentIdFromSessionKey } from "../../workspace-MO4aE903.js";
5
- import "../../logger-D20iS3B-.js";
6
- import "../../model-selection-Bjj4oU16.js";
3
+ import { i as defaultRuntime, t as createSubsystemLogger } from "../../subsystem-BJ89YjCN.js";
4
+ import { B as resolveAgentIdFromSessionKey } from "../../workspace-CkozFUzc.js";
5
+ import "../../logger-onBePS9K.js";
6
+ import "../../model-selection-Bh4BR1_K.js";
7
7
  import "../../github-copilot-token-B8Wx9FgQ.js";
8
- import { a as isGatewayStartupEvent } from "../../legacy-names-CR_H5NWa.js";
9
- import "../../thinking-BB_GM390.js";
10
- import { n as SILENT_REPLY_TOKEN } from "../../tokens-Cdk21tF_.js";
11
- import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded-CLTN3qXD.js";
12
- import "../../plugins-D-K4oUXz.js";
13
- import "../../accounts-pMDX8iho.js";
14
- import "../../send-CNzGOCHa.js";
15
- import "../../send-DJcNRhf_.js";
16
- import "../../deliver-DZCNXFM8.js";
17
- import "../../diagnostic-4Dbmo6KU.js";
18
- import "../../accounts-DfrJiFJJ.js";
19
- import "../../image-ops-QLLBkxzG.js";
20
- import "../../send-pUHxPU20.js";
21
- import "../../pi-model-discovery-DSuyTtRM.js";
22
- import { Dt as resolveMainSessionKey, J as updateSessionStore, Tt as resolveAgentMainSessionKey, W as loadSessionStore } from "../../pi-embedded-helpers-1Z1aUoto.js";
23
- import "../../chrome-BTwG9Gvh.js";
24
- import "../../frontmatter-LLGh43CC.js";
25
- import "../../skills-BjHeDO5V.js";
26
- import "../../path-alias-guards-DgNuZPBA.js";
27
- import "../../redact-BSwbgwaV.js";
28
- import "../../errors-Dih7OXdL.js";
29
- import "../../fs-safe-NHJJ1b9f.js";
30
- import "../../proxy-env-D9oPe73i.js";
31
- import "../../store-C3iBzr-_.js";
32
- import "../../accounts-BFS_qklA.js";
33
- import { s as resolveStorePath } from "../../paths-7EEBmI5a.js";
34
- import "../../tool-images-HRwkh81U.js";
35
- import "../../image-COAbpp2B.js";
36
- import "../../audio-transcription-runner-DUC0ItDY.js";
37
- import "../../fetch-COEkF6YP.js";
38
- import "../../fetch-guard-CcP28UT1.js";
39
- import "../../api-key-rotation-DCBXT0v7.js";
40
- import "../../proxy-fetch-ChIxNDe3.js";
41
- import "../../ir-RKRKj5a9.js";
8
+ import { a as isGatewayStartupEvent } from "../../legacy-names-CDxprteD.js";
9
+ import "../../thinking-CaLooOu4.js";
10
+ import { n as SILENT_REPLY_TOKEN } from "../../tokens-9NF8L9Uh.js";
11
+ import { a as agentCommand, o as createDefaultDeps } from "../../pi-embedded-Cajbf_ri.js";
12
+ import "../../plugins-D8QbEQB8.js";
13
+ import "../../accounts-CqITV0Ga.js";
14
+ import "../../send-DKB7vlw3.js";
15
+ import "../../send-CAzswJK6.js";
16
+ import "../../deliver-Ddw3EsOV.js";
17
+ import "../../diagnostic-B74jJPqv.js";
18
+ import "../../accounts-Cop2dSRo.js";
19
+ import "../../image-ops-BQmWYj-1.js";
20
+ import "../../send-Q5SBsGfY.js";
21
+ import "../../pi-model-discovery-BbCPyLm5.js";
22
+ import { Dt as resolveMainSessionKey, J as updateSessionStore, Tt as resolveAgentMainSessionKey, W as loadSessionStore } from "../../pi-embedded-helpers-xpgo_nwz.js";
23
+ import "../../chrome-C2CliEWR.js";
24
+ import "../../frontmatter-vSrur-r-.js";
25
+ import "../../skills-DNyMj13y.js";
26
+ import "../../path-alias-guards-B63g_1Gb.js";
27
+ import "../../redact-rnJm_Z5E.js";
28
+ import "../../errors-CCLnP2Fs.js";
29
+ import "../../fs-safe-Dy2_iDiY.js";
30
+ import "../../proxy-env-DS2YEWWX.js";
31
+ import "../../store-Bdm7wypS.js";
32
+ import "../../accounts-CB2Or0mr.js";
33
+ import { s as resolveStorePath } from "../../paths-BJWEyNJy.js";
34
+ import "../../tool-images-CkmNQqHm.js";
35
+ import "../../image-CdfqhHaX.js";
36
+ import "../../audio-transcription-runner-Mha07yP4.js";
37
+ import "../../fetch-OMudX6HR.js";
38
+ import "../../fetch-guard-DBZ7o2IA.js";
39
+ import "../../api-key-rotation-Da2qYrP7.js";
40
+ import "../../proxy-fetch-08-dhqxn.js";
41
+ import "../../ir-DEPhOdwg.js";
42
42
  import "../../render-DW7AcFdD.js";
43
- import "../../target-errors-BMTA5KVE.js";
44
- import "../../commands-registry-BIi1tG__.js";
45
- import "../../skill-commands-yvTkQtnt.js";
43
+ import "../../target-errors-qetEoXTB.js";
44
+ import "../../commands-registry-6jWzz0mk.js";
45
+ import "../../skill-commands-CgJiKg3Q.js";
46
46
  import "../../fetch-tZXOZ9FV.js";
47
- import "../../channel-activity-7QMEKenc.js";
48
- import "../../tables-Bv8tJ0qC.js";
49
- import "../../send-BMtxl7vL.js";
50
- import "../../outbound-attachment-CRXa01xP.js";
51
- import "../../send-DySBiOxg.js";
47
+ import "../../channel-activity-Du1kh0t3.js";
48
+ import "../../tables-MEAoO_QC.js";
49
+ import "../../send-BdQyKIzE.js";
50
+ import "../../outbound-attachment-1Yd0-JW2.js";
51
+ import "../../send-6s7HVGcN.js";
52
52
  import "../../proxy-CecQTx_Z.js";
53
- import "../../manager-B_QaG_-L.js";
54
- import "../../query-expansion-BMExPdLO.js";
53
+ import "../../manager-D3ROcs7_.js";
54
+ import "../../query-expansion-o9Ib6_Rk.js";
55
55
  import fs from "node:fs/promises";
56
56
  import path from "node:path";
57
57
  import crypto from "node:crypto";
@@ -1,9 +1,9 @@
1
1
  import "../../paths-ZhiQAuKk.js";
2
- import { t as createSubsystemLogger } from "../../subsystem-CWsKV5VU.js";
3
- import { d as loadExtraBootstrapFilesWithDiagnostics, u as filterBootstrapFilesForSession } from "../../workspace-MO4aE903.js";
4
- import "../../logger-D20iS3B-.js";
5
- import { i as isAgentBootstrapEvent } from "../../legacy-names-CR_H5NWa.js";
6
- import "../../frontmatter-LLGh43CC.js";
2
+ import { t as createSubsystemLogger } from "../../subsystem-BJ89YjCN.js";
3
+ import { d as loadExtraBootstrapFilesWithDiagnostics, u as filterBootstrapFilesForSession } from "../../workspace-CkozFUzc.js";
4
+ import "../../logger-onBePS9K.js";
5
+ import { i as isAgentBootstrapEvent } from "../../legacy-names-CDxprteD.js";
6
+ import "../../frontmatter-vSrur-r-.js";
7
7
  import { t as resolveHookConfig } from "../../hooks-DubLZ3ar.js";
8
8
 
9
9
  //#region src/hooks/bundled/bootstrap-extra-files/handler.ts
@@ -1,5 +1,5 @@
1
1
  import { c as resolveStateDir } from "../../paths-ZhiQAuKk.js";
2
- import { t as createSubsystemLogger } from "../../subsystem-CWsKV5VU.js";
2
+ import { t as createSubsystemLogger } from "../../subsystem-BJ89YjCN.js";
3
3
  import fs from "node:fs/promises";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
@@ -7,7 +7,8 @@ metadata:
7
7
  "squidclaw":
8
8
  {
9
9
  "emoji": "💾",
10
- "events": ["command:new", "command:reset", "agent:bootstrap"],
10
+ "events":
11
+ ["command:new", "command:reset", "agent:bootstrap", "message:received", "message:sent"],
11
12
  "requires": { "config": ["workspace.dir"] },
12
13
  "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with SquidClaw" }],
13
14
  },
@@ -1,57 +1,57 @@
1
- import { a as resolveAgentDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, o as resolveAgentEffectiveModelPrimary } from "../../run-with-concurrency-hJFK7PcO.js";
1
+ import { a as resolveAgentDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, o as resolveAgentEffectiveModelPrimary } from "../../run-with-concurrency-C3dKaL_j.js";
2
2
  import { c as resolveStateDir } from "../../paths-ZhiQAuKk.js";
3
- import { t as createSubsystemLogger } from "../../subsystem-CWsKV5VU.js";
4
- import { B as resolveAgentIdFromSessionKey } from "../../workspace-MO4aE903.js";
5
- import "../../logger-D20iS3B-.js";
6
- import { br as DEFAULT_MODEL, l as parseModelRef, xr as DEFAULT_PROVIDER } from "../../model-selection-Bjj4oU16.js";
3
+ import { t as createSubsystemLogger } from "../../subsystem-BJ89YjCN.js";
4
+ import { B as resolveAgentIdFromSessionKey } from "../../workspace-CkozFUzc.js";
5
+ import "../../logger-onBePS9K.js";
6
+ import { br as DEFAULT_MODEL, l as parseModelRef, xr as DEFAULT_PROVIDER } from "../../model-selection-Bh4BR1_K.js";
7
7
  import "../../github-copilot-token-B8Wx9FgQ.js";
8
- import { i as isAgentBootstrapEvent } from "../../legacy-names-CR_H5NWa.js";
9
- import "../../thinking-BB_GM390.js";
10
- import "../../tokens-Cdk21tF_.js";
11
- import { t as runEmbeddedPiAgent } from "../../pi-embedded-CLTN3qXD.js";
12
- import "../../plugins-D-K4oUXz.js";
13
- import "../../accounts-pMDX8iho.js";
14
- import "../../send-CNzGOCHa.js";
15
- import "../../send-DJcNRhf_.js";
16
- import "../../deliver-DZCNXFM8.js";
17
- import "../../diagnostic-4Dbmo6KU.js";
18
- import "../../accounts-DfrJiFJJ.js";
19
- import "../../image-ops-QLLBkxzG.js";
20
- import "../../send-pUHxPU20.js";
21
- import "../../pi-model-discovery-DSuyTtRM.js";
22
- import { dt as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-1Z1aUoto.js";
23
- import "../../chrome-BTwG9Gvh.js";
24
- import "../../frontmatter-LLGh43CC.js";
25
- import "../../skills-BjHeDO5V.js";
26
- import "../../path-alias-guards-DgNuZPBA.js";
27
- import "../../redact-BSwbgwaV.js";
28
- import "../../errors-Dih7OXdL.js";
29
- import { c as writeFileWithinRoot } from "../../fs-safe-NHJJ1b9f.js";
30
- import "../../proxy-env-D9oPe73i.js";
31
- import "../../store-C3iBzr-_.js";
32
- import "../../accounts-BFS_qklA.js";
33
- import "../../paths-7EEBmI5a.js";
34
- import "../../tool-images-HRwkh81U.js";
35
- import "../../image-COAbpp2B.js";
36
- import "../../audio-transcription-runner-DUC0ItDY.js";
37
- import "../../fetch-COEkF6YP.js";
38
- import "../../fetch-guard-CcP28UT1.js";
39
- import "../../api-key-rotation-DCBXT0v7.js";
40
- import "../../proxy-fetch-ChIxNDe3.js";
41
- import "../../ir-RKRKj5a9.js";
8
+ import { i as isAgentBootstrapEvent } from "../../legacy-names-CDxprteD.js";
9
+ import "../../thinking-CaLooOu4.js";
10
+ import "../../tokens-9NF8L9Uh.js";
11
+ import { t as runEmbeddedPiAgent } from "../../pi-embedded-Cajbf_ri.js";
12
+ import "../../plugins-D8QbEQB8.js";
13
+ import "../../accounts-CqITV0Ga.js";
14
+ import "../../send-DKB7vlw3.js";
15
+ import "../../send-CAzswJK6.js";
16
+ import "../../deliver-Ddw3EsOV.js";
17
+ import "../../diagnostic-B74jJPqv.js";
18
+ import "../../accounts-Cop2dSRo.js";
19
+ import "../../image-ops-BQmWYj-1.js";
20
+ import "../../send-Q5SBsGfY.js";
21
+ import "../../pi-model-discovery-BbCPyLm5.js";
22
+ import { dt as hasInterSessionUserProvenance } from "../../pi-embedded-helpers-xpgo_nwz.js";
23
+ import "../../chrome-C2CliEWR.js";
24
+ import "../../frontmatter-vSrur-r-.js";
25
+ import "../../skills-DNyMj13y.js";
26
+ import "../../path-alias-guards-B63g_1Gb.js";
27
+ import "../../redact-rnJm_Z5E.js";
28
+ import "../../errors-CCLnP2Fs.js";
29
+ import { c as writeFileWithinRoot } from "../../fs-safe-Dy2_iDiY.js";
30
+ import "../../proxy-env-DS2YEWWX.js";
31
+ import "../../store-Bdm7wypS.js";
32
+ import "../../accounts-CB2Or0mr.js";
33
+ import "../../paths-BJWEyNJy.js";
34
+ import "../../tool-images-CkmNQqHm.js";
35
+ import "../../image-CdfqhHaX.js";
36
+ import "../../audio-transcription-runner-Mha07yP4.js";
37
+ import "../../fetch-OMudX6HR.js";
38
+ import "../../fetch-guard-DBZ7o2IA.js";
39
+ import "../../api-key-rotation-Da2qYrP7.js";
40
+ import "../../proxy-fetch-08-dhqxn.js";
41
+ import "../../ir-DEPhOdwg.js";
42
42
  import "../../render-DW7AcFdD.js";
43
- import "../../target-errors-BMTA5KVE.js";
44
- import "../../commands-registry-BIi1tG__.js";
45
- import "../../skill-commands-yvTkQtnt.js";
43
+ import "../../target-errors-qetEoXTB.js";
44
+ import "../../commands-registry-6jWzz0mk.js";
45
+ import "../../skill-commands-CgJiKg3Q.js";
46
46
  import "../../fetch-tZXOZ9FV.js";
47
- import "../../channel-activity-7QMEKenc.js";
48
- import "../../tables-Bv8tJ0qC.js";
49
- import "../../send-BMtxl7vL.js";
50
- import "../../outbound-attachment-CRXa01xP.js";
51
- import "../../send-DySBiOxg.js";
47
+ import "../../channel-activity-Du1kh0t3.js";
48
+ import "../../tables-MEAoO_QC.js";
49
+ import "../../send-BdQyKIzE.js";
50
+ import "../../outbound-attachment-1Yd0-JW2.js";
51
+ import "../../send-6s7HVGcN.js";
52
52
  import "../../proxy-CecQTx_Z.js";
53
- import "../../manager-B_QaG_-L.js";
54
- import "../../query-expansion-BMExPdLO.js";
53
+ import "../../manager-D3ROcs7_.js";
54
+ import "../../query-expansion-o9Ib6_Rk.js";
55
55
  import { generateSlugViaLLM } from "../../llm-slug-generator.js";
56
56
  import { t as resolveHookConfig } from "../../hooks-DubLZ3ar.js";
57
57
  import fs from "node:fs/promises";
@@ -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
  */
@@ -934,9 +936,134 @@ function buildPeerMemoryContext(dbPath, agentId, peerId) {
934
936
  }
935
937
  }
936
938
  /**
939
+ * Write peer memory context to disk so memory_search can index it.
940
+ * Path: memory/users/{peerId}-context.md
941
+ * The memory manager already watches memory/**\/*.md, so this file is
942
+ * automatically picked up by memory_search without any extra config.
943
+ */
944
+ async function writePeerContextFileToDisk(workspaceDir, peerId, content) {
945
+ try {
946
+ const usersDir = path.join(workspaceDir, "memory", "users");
947
+ await fs.mkdir(usersDir, { recursive: true });
948
+ const filename = `${peerId}-context.md`;
949
+ await writeFileWithinRoot({
950
+ rootDir: usersDir,
951
+ relativePath: filename,
952
+ data: content,
953
+ encoding: "utf-8"
954
+ });
955
+ log.debug(`Peer context file written: memory/users/${filename}`);
956
+ } catch (err) {
957
+ log.warn("Failed to write peer context file (non-fatal)", {
958
+ error: String(err),
959
+ peerId
960
+ });
961
+ }
962
+ }
963
+ /**
964
+ * Sync all active working_memory items from SQLite to memory/tasks.md.
965
+ * This makes active tasks discoverable via memory_search.
966
+ * Called after long-term extraction on /new, /reset, and auto-extraction cycles.
967
+ */
968
+ async function syncTasksFile(workspaceDir, agentId, dbPath) {
969
+ if (!fssync.existsSync(dbPath)) return;
970
+ try {
971
+ const db = new DatabaseSync(dbPath, { readonly: true });
972
+ let rows;
973
+ try {
974
+ rows = db.prepare(`SELECT session_id, user_id, content, created_at
975
+ FROM working_memory
976
+ WHERE agent_id = ?
977
+ ORDER BY created_at DESC`).all(agentId);
978
+ } finally {
979
+ db.close();
980
+ }
981
+ if (rows.length === 0) return;
982
+ const lines = [
983
+ "# Active Tasks",
984
+ "*Auto-generated from session memory — do not edit manually.*",
985
+ "",
986
+ `*Last synced: ${(/* @__PURE__ */ new Date()).toISOString().slice(0, 16)} UTC*`,
987
+ ""
988
+ ];
989
+ for (const row of rows) try {
990
+ const parsed = JSON.parse(row.content);
991
+ const project = parsed.project ? `**[${parsed.project}]** ` : "";
992
+ const next = parsed.next_step ? `\n → Next: ${parsed.next_step}` : "";
993
+ const date = new Date(row.created_at).toISOString().slice(0, 10);
994
+ const user = row.user_id !== agentId ? ` *(user: ${row.user_id})*` : "";
995
+ lines.push(`- ${project}${parsed.task}${next} — *${date}*${user}`);
996
+ } catch {
997
+ lines.push(`- ${row.content}`);
998
+ }
999
+ lines.push("");
1000
+ const memoryDir = path.join(workspaceDir, "memory");
1001
+ await fs.mkdir(memoryDir, { recursive: true });
1002
+ await writeFileWithinRoot({
1003
+ rootDir: memoryDir,
1004
+ relativePath: "tasks.md",
1005
+ data: lines.join("\n"),
1006
+ encoding: "utf-8"
1007
+ });
1008
+ log.debug(`tasks.md synced (${rows.length} active task(s))`);
1009
+ } catch (err) {
1010
+ log.warn("Failed to sync tasks.md (non-fatal)", { error: String(err) });
1011
+ }
1012
+ }
1013
+ /**
937
1014
  * Save session context to memory when /new or /reset command is triggered
938
1015
  */
939
1016
  const saveSessionToMemory = async (event) => {
1017
+ if (event.type === "message" && (event.action === "received" || event.action === "sent")) {
1018
+ const sessionKey = event.sessionKey;
1019
+ const ctx = event.context;
1020
+ const cfg = ctx.cfg;
1021
+ if (!cfg) return;
1022
+ const buf = sessionTurnBuffers.get(sessionKey) ?? {
1023
+ turns: [],
1024
+ extractedAtTurn: 0
1025
+ };
1026
+ if (event.action === "received") {
1027
+ const body = ctx.body || ctx.bodyForAgent || "";
1028
+ if (body.trim()) buf.pendingUser = body.trim();
1029
+ sessionTurnBuffers.set(sessionKey, buf);
1030
+ return;
1031
+ }
1032
+ if (buf.pendingUser) {
1033
+ const assistantContent = ctx.content || "";
1034
+ buf.turns.push(`User: ${buf.pendingUser}`);
1035
+ buf.turns.push(`Assistant: ${assistantContent.slice(0, 800)}`);
1036
+ buf.pendingUser = void 0;
1037
+ if (buf.turns.length > 40) buf.turns = buf.turns.slice(-40);
1038
+ const completedTurns = Math.floor(buf.turns.length / 2);
1039
+ if (completedTurns - buf.extractedAtTurn >= AUTO_EXTRACT_EVERY_TURNS) {
1040
+ buf.extractedAtTurn = completedTurns;
1041
+ const agentId = resolveAgentIdFromSessionKey(sessionKey);
1042
+ const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);
1043
+ const userId = extractPeerIdFromSessionKey(sessionKey) ?? agentId ?? "default";
1044
+ const dbPath = path.join(workspaceDir, "memory", "long-term.db");
1045
+ const sessionContent = buf.turns.join("\n");
1046
+ log.debug(`Auto-extracting memories for ${userId} after ${completedTurns} turns`);
1047
+ setImmediate(() => {
1048
+ runLongTermExtraction({
1049
+ sessionContent,
1050
+ sessionId: `auto-${sessionKey}-${Date.now()}`,
1051
+ cfg,
1052
+ workspaceDir,
1053
+ agentId: agentId ?? "default",
1054
+ userId,
1055
+ dbPath
1056
+ }).then(async () => {
1057
+ const refreshedContent = buildPeerMemoryContext(dbPath, agentId ?? "default", userId);
1058
+ if (refreshedContent) await writePeerContextFileToDisk(workspaceDir, userId, refreshedContent);
1059
+ await syncTasksFile(workspaceDir, agentId ?? "default", dbPath);
1060
+ }).catch((err) => log.debug("Auto-extraction failed (non-fatal)", { error: String(err) }));
1061
+ });
1062
+ }
1063
+ }
1064
+ sessionTurnBuffers.set(sessionKey, buf);
1065
+ return;
1066
+ }
940
1067
  if (isAgentBootstrapEvent(event)) {
941
1068
  const peerId = extractPeerIdFromSessionKey(event.sessionKey);
942
1069
  if (!peerId) return;
@@ -956,6 +1083,9 @@ const saveSessionToMemory = async (event) => {
956
1083
  };
957
1084
  context.bootstrapFiles = [...context.bootstrapFiles ?? [], bootstrapFile];
958
1085
  log.info(`Per-user memory injected for peer ${peerId} (semantic+episodic)`);
1086
+ setImmediate(() => {
1087
+ writePeerContextFileToDisk(workspaceDir, peerId, memoryContent).catch(() => {});
1088
+ });
959
1089
  return;
960
1090
  }
961
1091
  const isResetCommand = event.action === "new" || event.action === "reset";
@@ -1059,12 +1189,17 @@ const saveSessionToMemory = async (event) => {
1059
1189
  agentId: ltmAgentId,
1060
1190
  userId: ltmUserId,
1061
1191
  dbPath: ltmDbPath
1062
- }).then(() => runDailyCleanupIfDue({
1063
- dbPath: ltmDbPath,
1064
- workspaceDir,
1065
- agentId: ltmAgentId,
1066
- userId: ltmUserId
1067
- })).catch((err) => {
1192
+ }).then(async () => {
1193
+ const refreshedContent = buildPeerMemoryContext(ltmDbPath, ltmAgentId, ltmUserId);
1194
+ if (refreshedContent) await writePeerContextFileToDisk(workspaceDir, ltmUserId, refreshedContent);
1195
+ await syncTasksFile(workspaceDir, ltmAgentId, ltmDbPath);
1196
+ return runDailyCleanupIfDue({
1197
+ dbPath: ltmDbPath,
1198
+ workspaceDir,
1199
+ agentId: ltmAgentId,
1200
+ userId: ltmUserId
1201
+ });
1202
+ }).catch((err) => {
1068
1203
  log.warn("Long-term memory extraction/cleanup failed (non-fatal)", { error: String(err) });
1069
1204
  });
1070
1205
  });
@@ -1,6 +1,6 @@
1
- import { t as createSubsystemLogger } from "./subsystem-CWsKV5VU.js";
2
- import { S as retryAsync, x as resolveRetryConfig } from "./model-selection-Bjj4oU16.js";
3
- import { r as formatErrorMessage } from "./errors-Dih7OXdL.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-BJ89YjCN.js";
2
+ import { S as retryAsync, x as resolveRetryConfig } from "./model-selection-Bh4BR1_K.js";
3
+ import { r as formatErrorMessage } from "./errors-CCLnP2Fs.js";
4
4
  import { RateLimitError } from "@buape/carbon";
5
5
 
6
6
  //#region src/infra/retry-policy.ts