@visorcraft/idlehands 4.0.20 → 4.0.21

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 (134) hide show
  1. package/dist/{accounts-BDVs8LTu.js → accounts-B8cGzkjD.js} +1 -1
  2. package/dist/{accounts-Dk8mJIrQ.js → accounts-BQC_GRUB.js} +6 -6
  3. package/dist/{accounts-CIvVRRHb.js → accounts-D5tB_lO0.js} +1 -1
  4. package/dist/{agent-scope-DyP_tr7s.js → agent-scope-Bxq1eWbA.js} +4 -4
  5. package/dist/{agent-via-gateway-igDg7ko6.js → agent-via-gateway-Cn3iNSod.js} +7 -7
  6. package/dist/{agent-via-gateway-CqzpAXCd.js → agent-via-gateway-DHn8V6v4.js} +60 -60
  7. package/dist/{anton-DLsQ7Igk.js → anton-Dyz3neEN.js} +5 -5
  8. package/dist/{anton-ONYQUE8F.js → anton-hH1PyE2C.js} +1 -1
  9. package/dist/{audio-preflight-CW8IH1lU.js → audio-preflight-B8qbJcB1.js} +35 -35
  10. package/dist/{audio-preflight-CSSlgO89.js → audio-preflight-vD3mDc6w.js} +4 -4
  11. package/dist/{auth-store-DXT-l7fO.js → auth-store-Bb4aajHu.js} +12 -12
  12. package/dist/{bindings-D3b5Fmc9.js → bindings-CLZIJ0Eo.js} +2 -2
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +60 -60
  15. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  16. package/dist/bundled/command-logger/handler.js +3 -3
  17. package/dist/bundled/session-memory/handler.js +60 -60
  18. package/dist/{channel-activity-D_TMOGQ0.js → channel-activity-DdL3RAv_.js} +3 -3
  19. package/dist/{chrome-Do5potHV.js → chrome-DEnkfZ9p.js} +9 -9
  20. package/dist/{chrome-BcJB6PcM.js → chrome-xahUzIaT.js} +26 -26
  21. package/dist/{chunk-CMpX7Jaz.js → chunk-Djk-9JeT.js} +1 -1
  22. package/dist/{commands-registry-j4vAzcF2.js → commands-registry-_TBHHpvt.js} +5 -5
  23. package/dist/{deliver-whAbSPLk.js → deliver-5FLCa6tB.js} +1 -1
  24. package/dist/{deliver-BUiQ-9fE.js → deliver-CIFO6sel.js} +20 -20
  25. package/dist/{deps-DR1eh_L_.js → deps-BbipxGPW.js} +1 -1
  26. package/dist/{deps-BhCzAj5E.js → deps-DwTILPLD.js} +6 -6
  27. package/dist/{diagnostic-4owMk4vH.js → diagnostic-BvlZ0Sot.js} +1 -1
  28. package/dist/{dock-BgOmHcbh.js → dock-ejUetwTC.js} +6 -6
  29. package/dist/emergency-stop-C2sJ4lsk.js +113 -0
  30. package/dist/{emergency-stop-ChBe32HN.js → emergency-stop-Lj33jqJJ.js} +7 -7
  31. package/dist/{env-B5G1qwGc.js → env-q-PhWbb_.js} +1 -1
  32. package/dist/{errors-C_0nm4TJ.js → errors-C4SHjIZK.js} +1 -1
  33. package/dist/extensionAPI.js +7 -7
  34. package/dist/{fetch-guard-iuQsIjqN.js → fetch-guard-CcfDZXe9.js} +1 -1
  35. package/dist/{frontmatter-BOudmHMS.js → frontmatter-pTUG4Sx_.js} +2 -2
  36. package/dist/{fs-safe-CYUaAFO9.js → fs-safe-2l05hI1Y.js} +2 -2
  37. package/dist/{gemini-auth-CIyaa44H.js → gemini-auth-DLSGffQK.js} +2 -2
  38. package/dist/{github-copilot-token-Dgt6cnsM.js → github-copilot-token-BjmEQcmi.js} +7 -7
  39. package/dist/{image-BAsQlUqT.js → image-C_aN5P6-.js} +1 -1
  40. package/dist/{image-D8b_rlQC.js → image-D9D-lzCw.js} +6 -6
  41. package/dist/{image-ops-D1KtygWz.js → image-ops-J8P5zOFm.js} +1 -1
  42. package/dist/{ir-B7IBoKLy.js → ir-BT5aAdU9.js} +5 -5
  43. package/dist/llm-slug-generator.js +60 -60
  44. package/dist/{local-roots-KN4Hp1yZ.js → local-roots-d4y0lvs2.js} +5 -5
  45. package/dist/{login-CFr5vJmR.js → login-C2X0In6m.js} +6 -6
  46. package/dist/{login-qr-CFFFOjOl.js → login-qr-C17PY0rr.js} +11 -11
  47. package/dist/{manager-BE_76jWB.js → manager-CgzA1hKo.js} +15 -15
  48. package/dist/{markdown-tables-CzsockiZ.js → markdown-tables-R8VTpfE9.js} +1 -1
  49. package/dist/{message-channel-C8QtrwEU.js → message-channel-ZdI1-uUh.js} +1 -1
  50. package/dist/{model-selection-1MMYqY6M.js → model-selection-C5hI1dum.js} +41 -41
  51. package/dist/{outbound-BNh6PpQb.js → outbound-CdY_AskB.js} +6 -6
  52. package/dist/{outbound-attachment-3I6GzwDe.js → outbound-attachment-IfeZJAKk.js} +2 -2
  53. package/dist/{path-alias-guards-Cu1nXNMM.js → path-alias-guards-BZmt6hFb.js} +1 -1
  54. package/dist/{paths-D_qUel1T.js → paths-D3p7ZvM6.js} +3 -3
  55. package/dist/{paths-BYNVLNi_.js → paths-DQpv9a3Q.js} +5 -5
  56. package/dist/{pi-embedded-DMx6rHVL.js → pi-embedded-Bc4KWuTe.js} +26 -26
  57. package/dist/{pi-embedded-helpers-Ct2rwp-P.js → pi-embedded-helpers-C2j0LfJC.js} +4 -4
  58. package/dist/{pi-embedded-helpers-CghCLoPo.js → pi-embedded-helpers-CUoUoEEN.js} +24 -24
  59. package/dist/{pi-embedded-6dr9Wi77.js → pi-embedded-k2mZJOsr.js} +184 -184
  60. package/dist/{pi-model-discovery-Bb__OY-j.js → pi-model-discovery-Dlx4RLWo.js} +7 -7
  61. package/dist/{plugins-CRB60mCJ.js → plugins-DYr-HHj0.js} +10 -10
  62. package/dist/{pw-ai-CfYaR1K2.js → pw-ai-CnvVtt_s.js} +13 -13
  63. package/dist/{pw-ai-yrIWfcWX.js → pw-ai-DjmrIQle.js} +1 -1
  64. package/dist/{qmd-manager-B_GgyQQ0.js → qmd-manager-BRvg3Rx2.js} +8 -8
  65. package/dist/{query-expansion-DEq020GG.js → query-expansion-DHuNyU-_.js} +5 -5
  66. package/dist/{redact-Bvpf-ATQ.js → redact-1Y0KPNtr.js} +1 -1
  67. package/dist/{replies-6_GxvQYe.js → replies-2C16fnBP.js} +3 -3
  68. package/dist/{reply-prefix-BUgeSN2R.js → reply-prefix-DCljZiIB.js} +1 -1
  69. package/dist/{resolve-route-DuttYY7A.js → resolve-route-ClcifpKn.js} +4 -4
  70. package/dist/{retry-BeB9WenR.js → retry-CG6cMRDQ.js} +1 -1
  71. package/dist/{runner-Bv_BA3vd.js → runner-CZW_eyf2.js} +1 -1
  72. package/dist/{runner-PgRFPYUj.js → runner-DjDddZhb.js} +11 -11
  73. package/dist/{send-D4bMycQu.js → send-BOxJ4QXF.js} +7 -7
  74. package/dist/{send-BeIZJuy4.js → send-DZa8fWSm.js} +7 -7
  75. package/dist/{send-Dfa3sn6r.js → send-FLdrx-oF.js} +24 -24
  76. package/dist/{send-DmLC7aEF.js → send-IlPMLAH-.js} +10 -10
  77. package/dist/{send-C1hvd3bt.js → send-Y1hD4tQ1.js} +6 -6
  78. package/dist/{session-F_YDS_1V.js → session-nUPBXeEa.js} +7 -7
  79. package/dist/{sessions-3ioSeOA1.js → sessions-DRA4oaxz.js} +41 -41
  80. package/dist/{skill-commands-Ck3flWX7.js → skill-commands-BHTBXXVn.js} +9 -9
  81. package/dist/{skills-CnAPWfca.js → skills-umlGvChF.js} +22 -22
  82. package/dist/{store-CvMgrKWx.js → store-D-ZicQeo.js} +2 -2
  83. package/dist/{subsystem-tzu-rIAJ.js → subsystem-D7ZepYT1.js} +1 -1
  84. package/dist/{tables-5k-zOZ-s.js → tables-Co_R_WKs.js} +1 -1
  85. package/dist/{target-errors-BPfQrPim.js → target-errors-B1mcM4WR.js} +2 -2
  86. package/dist/{tokens-BRLyURxW.js → tokens-DGajj8M9.js} +1 -1
  87. package/dist/{tool-images-CcGZpzmq.js → tool-images-Duuqr4bN.js} +2 -2
  88. package/dist/{tool-loop-detection-BNGetx3Z.js → tool-loop-detection-CjWRg_4q.js} +3 -3
  89. package/dist/{utils-CTFLl_ji.js → utils-D9wGoiU9.js} +18 -18
  90. package/dist/{web-BxegDO-S.js → web-DiqHxfw7.js} +8 -8
  91. package/dist/{web-C1BMClkN.js → web-t3fXJTeB.js} +66 -66
  92. package/dist/{whatsapp-actions-DbPcN6JQ.js → whatsapp-actions-BJ6kVDXi.js} +25 -25
  93. package/dist/{workspace-DBFSzT6O.js → workspace-tAtkoD_r.js} +18 -18
  94. package/extensions/acpx/package.json +1 -1
  95. package/extensions/bluebubbles/package.json +1 -1
  96. package/extensions/copilot-proxy/package.json +1 -1
  97. package/extensions/diagnostics-otel/package.json +1 -1
  98. package/extensions/discord/package.json +1 -1
  99. package/extensions/feishu/package.json +1 -1
  100. package/extensions/google-gemini-cli-auth/package.json +1 -1
  101. package/extensions/googlechat/package.json +1 -1
  102. package/extensions/hand/package.json +1 -1
  103. package/extensions/imessage/package.json +1 -1
  104. package/extensions/irc/package.json +1 -1
  105. package/extensions/line/package.json +1 -1
  106. package/extensions/llm-task/package.json +1 -1
  107. package/extensions/matrix/CHANGELOG.md +6 -0
  108. package/extensions/matrix/package.json +1 -1
  109. package/extensions/mattermost/package.json +1 -1
  110. package/extensions/memory-core/package.json +1 -1
  111. package/extensions/memory-lancedb/package.json +1 -1
  112. package/extensions/minimax-portal-auth/package.json +1 -1
  113. package/extensions/msteams/CHANGELOG.md +6 -0
  114. package/extensions/msteams/package.json +1 -1
  115. package/extensions/nextcloud-talk/package.json +1 -1
  116. package/extensions/nostr/CHANGELOG.md +6 -0
  117. package/extensions/nostr/package.json +1 -1
  118. package/extensions/open-prose/package.json +1 -1
  119. package/extensions/signal/package.json +1 -1
  120. package/extensions/slack/package.json +1 -1
  121. package/extensions/synology-chat/package.json +1 -1
  122. package/extensions/telegram/package.json +1 -1
  123. package/extensions/tlon/package.json +1 -1
  124. package/extensions/twitch/CHANGELOG.md +6 -0
  125. package/extensions/twitch/package.json +1 -1
  126. package/extensions/voice-call/CHANGELOG.md +6 -0
  127. package/extensions/voice-call/package.json +1 -1
  128. package/extensions/whatsapp/package.json +1 -1
  129. package/extensions/zalo/CHANGELOG.md +6 -0
  130. package/extensions/zalo/package.json +1 -1
  131. package/extensions/zalouser/CHANGELOG.md +6 -0
  132. package/extensions/zalouser/package.json +1 -1
  133. package/package.json +1 -1
  134. package/dist/emergency-stop-8dcFF6tw.js +0 -113
@@ -11,14 +11,14 @@ import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
11
11
  import "./env-BpvqFD5n.js";
12
12
  import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-QcCdS4qA.js";
13
13
  import "./tokens-Cg4XNE3H.js";
14
- import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-DMx6rHVL.js";
14
+ import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-Bc4KWuTe.js";
15
15
  import "./plugins-D-_jp4FO.js";
16
16
  import { n as resolveWhatsAppAccount } from "./accounts-BwrguHMw.js";
17
17
  import "./bindings-hT7SPhiA.js";
18
18
  import { i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists, s as pickWebChannel, t as WA_WEB_AUTH_DIR } from "./auth-store-D1JaYlig.js";
19
19
  import "./send-J10cQN4A.js";
20
20
  import "./send-DLZt92Da.js";
21
- import "./deliver-whAbSPLk.js";
21
+ import "./deliver-5FLCa6tB.js";
22
22
  import "./diagnostic-jHCdo9Am.js";
23
23
  import "./diagnostic-session-state-Bx2Le86J.js";
24
24
  import "./accounts-BRVjft5i.js";
@@ -26,8 +26,8 @@ import { J as toLocationContext, Q as upsertChannelPairingRequest, q as formatLo
26
26
  import "./image-ops-BDG-MYYV.js";
27
27
  import "./pi-model-discovery-Dic-M5qw.js";
28
28
  import "./message-channel-DqqfOIdx.js";
29
- import "./pi-embedded-helpers-Ct2rwp-P.js";
30
- import "./chrome-Do5potHV.js";
29
+ import "./pi-embedded-helpers-C2j0LfJC.js";
30
+ import "./chrome-DEnkfZ9p.js";
31
31
  import "./ssrf-DappnhDp.js";
32
32
  import "./skills-nQcWk6Z6.js";
33
33
  import "./path-alias-guards-CGbCFqW8.js";
@@ -40,7 +40,7 @@ import "./accounts-CBoBCTgA.js";
40
40
  import { u as resolveStorePath } from "./paths-vOrMwCEQ.js";
41
41
  import "./tool-images-CpZSs-zE.js";
42
42
  import "./thinking-BFsWfunr.js";
43
- import "./image-BAsQlUqT.js";
43
+ import "./image-C_aN5P6-.js";
44
44
  import "./manager-DYOflU5p.js";
45
45
  import "./gemini-auth-m2hi6OmF.js";
46
46
  import "./fetch-guard-BdCPmLBP.js";
@@ -55,7 +55,7 @@ import "./render-Ddkk6wf8.js";
55
55
  import "./commands-registry-1-Rv2-IS.js";
56
56
  import "./skill-commands-CHpRgsOw.js";
57
57
  import { t as finalizeInboundContext } from "./inbound-context-DZmR6jxY.js";
58
- import { p as registerUnhandledRejectionHandler } from "./runner-Bv_BA3vd.js";
58
+ import { p as registerUnhandledRejectionHandler } from "./runner-CZW_eyf2.js";
59
59
  import "./fetch-ChVgjTkv.js";
60
60
  import { n as recordChannelActivity } from "./channel-activity-C3LJmSjf.js";
61
61
  import { t as convertMarkdownTables } from "./tables-CJKtUpY0.js";
@@ -66,7 +66,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
66
66
  import { r as setActiveWebListener } from "./active-listener-BnWIC6Jc.js";
67
67
  import "./proxy-CNZpb4NE.js";
68
68
  import "./replies-CqYEEgmA.js";
69
- import "./deps-DR1eh_L_.js";
69
+ import "./deps-BbipxGPW.js";
70
70
  import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-DsfWfy-l.js";
71
71
  import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-DRN3VnUX.js";
72
72
  import { t as loginWeb } from "./login-Cnp8mhAl.js";
@@ -861,7 +861,7 @@ async function monitorWebInbox(options) {
861
861
  };
862
862
  const stopText = (inboundMessage.body ?? "").trim();
863
863
  if (stopText) {
864
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-ChBe32HN.js");
864
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-Lj33jqJJ.js");
865
865
  if (isAbortRequestText(stopText)) {
866
866
  const { loadConfig: loadCfg } = await import("./model-selection-D3Jhcvg-.js").then((n) => n.F);
867
867
  const { resolveAgentRoute } = await import("./resolve-route-BI3VjtwE.js").then((n) => n.r);
@@ -1,78 +1,78 @@
1
- import "./agent-scope-DyP_tr7s.js";
2
- import "./paths-BYNVLNi_.js";
3
- import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
4
- import { A as shouldLogVerbose, D as logVerbose, I as getChildLogger, d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-CTFLl_ji.js";
1
+ import "./agent-scope-Bxq1eWbA.js";
2
+ import "./paths-DQpv9a3Q.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
4
+ import { A as shouldLogVerbose, D as logVerbose, I as getChildLogger, d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-D9wGoiU9.js";
5
5
  import { n as defaultRuntime } from "./runtime-8mi3mpYB.js";
6
6
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-CuLPSMu_.js";
7
- import "./workspace-DBFSzT6O.js";
8
- import { R as loadConfig } from "./model-selection-1MMYqY6M.js";
9
- import "./github-copilot-token-Dgt6cnsM.js";
7
+ import "./workspace-tAtkoD_r.js";
8
+ import { R as loadConfig } from "./model-selection-C5hI1dum.js";
9
+ import "./github-copilot-token-BjmEQcmi.js";
10
10
  import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
11
11
  import "./boolean-CE7i9tBR.js";
12
- import "./env-B5G1qwGc.js";
13
- import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-BgOmHcbh.js";
14
- import "./tokens-BRLyURxW.js";
15
- import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-6dr9Wi77.js";
16
- import "./plugins-CRB60mCJ.js";
17
- import { n as resolveWhatsAppAccount } from "./accounts-Dk8mJIrQ.js";
18
- import "./bindings-D3b5Fmc9.js";
19
- import { i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists, s as pickWebChannel, t as WA_WEB_AUTH_DIR } from "./auth-store-DXT-l7fO.js";
20
- import "./send-BeIZJuy4.js";
21
- import "./send-DmLC7aEF.js";
22
- import "./deliver-BUiQ-9fE.js";
23
- import "./diagnostic-4owMk4vH.js";
12
+ import "./env-q-PhWbb_.js";
13
+ import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-ejUetwTC.js";
14
+ import "./tokens-DGajj8M9.js";
15
+ import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, L as buildMentionRegexes, M as hasControlCommand, N as shouldComputeCommandAuthorized, O as normalizeGroupActivation, R as normalizeMentionText, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, _ as resolveDmGroupAccessWithLists, b as dispatchReplyWithBufferedBlockDispatcher, c as resolveMentionGating, d as recordPendingHistoryEntryIfEnabled, f as resolveDefaultGroupPolicy, g as resolveDmGroupAccessWithCommandGate, h as readStoreAllowFromForDmPolicy, i as sleepWithAbort, j as enqueueSystemEvent, k as parseActivationCommand, l as DEFAULT_GROUP_HISTORY_LIMIT, m as warnMissingProviderGroupPolicyFallbackOnce, p as resolveOpenProviderRuntimeGroupPolicy, r as computeBackoff, s as buildPairingReply, u as buildHistoryContextFromEntries, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-k2mZJOsr.js";
16
+ import "./plugins-DYr-HHj0.js";
17
+ import { n as resolveWhatsAppAccount } from "./accounts-BQC_GRUB.js";
18
+ import "./bindings-CLZIJ0Eo.js";
19
+ import { i as logWebSelfId, l as readWebSelfId, n as getWebAuthAgeMs, p as webAuthExists, s as pickWebChannel, t as WA_WEB_AUTH_DIR } from "./auth-store-Bb4aajHu.js";
20
+ import "./send-DZa8fWSm.js";
21
+ import "./send-IlPMLAH-.js";
22
+ import "./deliver-CIFO6sel.js";
23
+ import "./diagnostic-BvlZ0Sot.js";
24
24
  import "./diagnostic-session-state-BGF2r-kt.js";
25
- import "./accounts-BDVs8LTu.js";
26
- import { J as toLocationContext, Q as upsertChannelPairingRequest, q as formatLocationText } from "./send-Dfa3sn6r.js";
27
- import "./image-ops-D1KtygWz.js";
28
- import "./pi-model-discovery-Bb__OY-j.js";
29
- import "./message-channel-C8QtrwEU.js";
30
- import "./pi-embedded-helpers-CghCLoPo.js";
31
- import "./chrome-BcJB6PcM.js";
25
+ import "./accounts-B8cGzkjD.js";
26
+ import { J as toLocationContext, Q as upsertChannelPairingRequest, q as formatLocationText } from "./send-FLdrx-oF.js";
27
+ import "./image-ops-J8P5zOFm.js";
28
+ import "./pi-model-discovery-Dlx4RLWo.js";
29
+ import "./message-channel-ZdI1-uUh.js";
30
+ import "./pi-embedded-helpers-CUoUoEEN.js";
31
+ import "./chrome-xahUzIaT.js";
32
32
  import "./ssrf-CZeHDwVZ.js";
33
- import "./frontmatter-BOudmHMS.js";
34
- import "./skills-CnAPWfca.js";
35
- import "./path-alias-guards-Cu1nXNMM.js";
36
- import "./redact-Bvpf-ATQ.js";
37
- import "./errors-C_0nm4TJ.js";
38
- import "./fs-safe-CYUaAFO9.js";
39
- import { r as saveMediaBuffer } from "./store-CvMgrKWx.js";
40
- import { K as resolveGroupSessionKey, c as readSessionUpdatedAt, d as updateLastRoute, l as recordSessionMetaFromInbound, s as loadSessionStore } from "./sessions-3ioSeOA1.js";
41
- import "./accounts-CIvVRRHb.js";
42
- import { u as resolveStorePath } from "./paths-D_qUel1T.js";
43
- import "./tool-images-CcGZpzmq.js";
33
+ import "./frontmatter-pTUG4Sx_.js";
34
+ import "./skills-umlGvChF.js";
35
+ import "./path-alias-guards-BZmt6hFb.js";
36
+ import "./redact-1Y0KPNtr.js";
37
+ import "./errors-C4SHjIZK.js";
38
+ import "./fs-safe-2l05hI1Y.js";
39
+ import { r as saveMediaBuffer } from "./store-D-ZicQeo.js";
40
+ import { K as resolveGroupSessionKey, c as readSessionUpdatedAt, d as updateLastRoute, l as recordSessionMetaFromInbound, s as loadSessionStore } from "./sessions-DRA4oaxz.js";
41
+ import "./accounts-D5tB_lO0.js";
42
+ import { u as resolveStorePath } from "./paths-D3p7ZvM6.js";
43
+ import "./tool-images-Duuqr4bN.js";
44
44
  import "./thinking-z4_linel.js";
45
- import "./image-D8b_rlQC.js";
46
- import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-BUgeSN2R.js";
47
- import "./manager-BE_76jWB.js";
48
- import "./gemini-auth-CIyaa44H.js";
49
- import "./fetch-guard-iuQsIjqN.js";
50
- import "./query-expansion-DEq020GG.js";
51
- import "./retry-BeB9WenR.js";
52
- import "./target-errors-BPfQrPim.js";
53
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-CMpX7Jaz.js";
54
- import { n as resolveMarkdownTableMode } from "./markdown-tables-CzsockiZ.js";
55
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-KN4Hp1yZ.js";
56
- import { a as loadWebMedia } from "./ir-B7IBoKLy.js";
45
+ import "./image-D9D-lzCw.js";
46
+ import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-DCljZiIB.js";
47
+ import "./manager-CgzA1hKo.js";
48
+ import "./gemini-auth-DLSGffQK.js";
49
+ import "./fetch-guard-CcfDZXe9.js";
50
+ import "./query-expansion-DHuNyU-_.js";
51
+ import "./retry-CG6cMRDQ.js";
52
+ import "./target-errors-B1mcM4WR.js";
53
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-Djk-9JeT.js";
54
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-R8VTpfE9.js";
55
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-d4y0lvs2.js";
56
+ import { a as loadWebMedia } from "./ir-BT5aAdU9.js";
57
57
  import "./render-MTSxc7LK.js";
58
- import "./commands-registry-j4vAzcF2.js";
59
- import "./skill-commands-Ck3flWX7.js";
58
+ import "./commands-registry-_TBHHpvt.js";
59
+ import "./skill-commands-BHTBXXVn.js";
60
60
  import { t as finalizeInboundContext } from "./inbound-context-BYczzTII.js";
61
- import { p as registerUnhandledRejectionHandler } from "./runner-PgRFPYUj.js";
61
+ import { p as registerUnhandledRejectionHandler } from "./runner-DjDddZhb.js";
62
62
  import "./fetch-CsfR_943.js";
63
- import { n as recordChannelActivity } from "./channel-activity-D_TMOGQ0.js";
64
- import { t as convertMarkdownTables } from "./tables-5k-zOZ-s.js";
65
- import "./send-C1hvd3bt.js";
66
- import "./outbound-attachment-3I6GzwDe.js";
67
- import "./send-D4bMycQu.js";
68
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DuttYY7A.js";
63
+ import { n as recordChannelActivity } from "./channel-activity-DdL3RAv_.js";
64
+ import { t as convertMarkdownTables } from "./tables-Co_R_WKs.js";
65
+ import "./send-Y1hD4tQ1.js";
66
+ import "./outbound-attachment-IfeZJAKk.js";
67
+ import "./send-BOxJ4QXF.js";
68
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-ClcifpKn.js";
69
69
  import { r as setActiveWebListener } from "./active-listener-jilCMH1M.js";
70
70
  import "./proxy-CRB9oCP5.js";
71
- import "./replies-6_GxvQYe.js";
72
- import "./deps-BhCzAj5E.js";
73
- import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-BNh6PpQb.js";
74
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-F_YDS_1V.js";
75
- import { t as loginWeb } from "./login-CFr5vJmR.js";
71
+ import "./replies-2C16fnBP.js";
72
+ import "./deps-DwTILPLD.js";
73
+ import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-CdY_AskB.js";
74
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-nUPBXeEa.js";
75
+ import { t as loginWeb } from "./login-C2X0In6m.js";
76
76
  import { randomUUID } from "node:crypto";
77
77
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
78
78
 
@@ -864,10 +864,10 @@ async function monitorWebInbox(options) {
864
864
  };
865
865
  const stopText = (inboundMessage.body ?? "").trim();
866
866
  if (stopText) {
867
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-8dcFF6tw.js");
867
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-C2sJ4lsk.js");
868
868
  if (isAbortRequestText(stopText)) {
869
- const { loadConfig: loadCfg } = await import("./model-selection-1MMYqY6M.js").then((n) => n.I);
870
- const { resolveAgentRoute } = await import("./resolve-route-DuttYY7A.js").then((n) => n.r);
869
+ const { loadConfig: loadCfg } = await import("./model-selection-C5hI1dum.js").then((n) => n.I);
870
+ const { resolveAgentRoute } = await import("./resolve-route-ClcifpKn.js").then((n) => n.r);
871
871
  const freshCfg = loadCfg();
872
872
  const route = resolveAgentRoute({
873
873
  cfg: freshCfg,
@@ -1,32 +1,32 @@
1
- import "./agent-scope-DyP_tr7s.js";
2
- import "./paths-BYNVLNi_.js";
3
- import "./subsystem-tzu-rIAJ.js";
4
- import "./utils-CTFLl_ji.js";
1
+ import "./agent-scope-Bxq1eWbA.js";
2
+ import "./paths-DQpv9a3Q.js";
3
+ import "./subsystem-D7ZepYT1.js";
4
+ import "./utils-D9wGoiU9.js";
5
5
  import "./runtime-8mi3mpYB.js";
6
- import "./workspace-DBFSzT6O.js";
7
- import "./model-selection-1MMYqY6M.js";
8
- import "./github-copilot-token-Dgt6cnsM.js";
6
+ import "./workspace-tAtkoD_r.js";
7
+ import "./model-selection-C5hI1dum.js";
8
+ import "./github-copilot-token-BjmEQcmi.js";
9
9
  import "./boolean-CE7i9tBR.js";
10
- import "./env-B5G1qwGc.js";
11
- import { a as normalizeWhatsAppTarget, i as isWhatsAppGroupJid } from "./plugins-CRB60mCJ.js";
12
- import { n as resolveWhatsAppAccount } from "./accounts-Dk8mJIrQ.js";
13
- import "./bindings-D3b5Fmc9.js";
14
- import "./auth-store-DXT-l7fO.js";
15
- import "./image-ops-D1KtygWz.js";
16
- import "./message-channel-C8QtrwEU.js";
10
+ import "./env-q-PhWbb_.js";
11
+ import { a as normalizeWhatsAppTarget, i as isWhatsAppGroupJid } from "./plugins-DYr-HHj0.js";
12
+ import { n as resolveWhatsAppAccount } from "./accounts-BQC_GRUB.js";
13
+ import "./bindings-CLZIJ0Eo.js";
14
+ import "./auth-store-Bb4aajHu.js";
15
+ import "./image-ops-J8P5zOFm.js";
16
+ import "./message-channel-ZdI1-uUh.js";
17
17
  import "./ssrf-CZeHDwVZ.js";
18
- import "./path-alias-guards-Cu1nXNMM.js";
19
- import "./fs-safe-CYUaAFO9.js";
20
- import "./tool-images-CcGZpzmq.js";
21
- import "./fetch-guard-iuQsIjqN.js";
22
- import { a as createActionGate, c as jsonResult, d as readReactionParams, i as ToolAuthorizationError, m as readStringParam, n as missingTargetError } from "./target-errors-BPfQrPim.js";
23
- import "./chunk-CMpX7Jaz.js";
24
- import "./markdown-tables-CzsockiZ.js";
25
- import "./local-roots-KN4Hp1yZ.js";
26
- import "./ir-B7IBoKLy.js";
18
+ import "./path-alias-guards-BZmt6hFb.js";
19
+ import "./fs-safe-2l05hI1Y.js";
20
+ import "./tool-images-Duuqr4bN.js";
21
+ import "./fetch-guard-CcfDZXe9.js";
22
+ import { a as createActionGate, c as jsonResult, d as readReactionParams, i as ToolAuthorizationError, m as readStringParam, n as missingTargetError } from "./target-errors-B1mcM4WR.js";
23
+ import "./chunk-Djk-9JeT.js";
24
+ import "./markdown-tables-R8VTpfE9.js";
25
+ import "./local-roots-d4y0lvs2.js";
26
+ import "./ir-BT5aAdU9.js";
27
27
  import "./render-MTSxc7LK.js";
28
- import "./tables-5k-zOZ-s.js";
29
- import { r as sendReactionWhatsApp } from "./outbound-BNh6PpQb.js";
28
+ import "./tables-Co_R_WKs.js";
29
+ import { r as sendReactionWhatsApp } from "./outbound-CdY_AskB.js";
30
30
 
31
31
  //#region src/whatsapp/resolve-outbound-target.ts
32
32
  function resolveWhatsAppOutboundTarget(params) {
@@ -1,12 +1,12 @@
1
- import { m as resolveRequiredHomeDir } from "./paths-BYNVLNi_.js";
2
- import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
3
- import { A as shouldLogVerbose, L as getLogger, M as warn, O as logVerboseConsole, T as info, f as pathExists$1, h as resolveUserPath, w as danger } from "./utils-CTFLl_ji.js";
1
+ import { m as resolveRequiredHomeDir } from "./paths-DQpv9a3Q.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-D7ZepYT1.js";
3
+ import { A as shouldLogVerbose, L as getLogger, M as warn, O as logVerboseConsole, T as info, f as pathExists$1, h as resolveUserPath, w as danger } from "./utils-D9wGoiU9.js";
4
4
  import { n as defaultRuntime } from "./runtime-8mi3mpYB.js";
5
5
  import { b as isSubagentSessionKey, y as isCronSessionKey } from "./session-key-CuLPSMu_.js";
6
6
  import fs from "node:fs/promises";
7
7
  import os from "node:os";
8
8
  import path from "node:path";
9
- import syncFs from "node:fs";
9
+ import fs$1 from "node:fs";
10
10
  import { promisify } from "node:util";
11
11
  import { execFile, spawn } from "node:child_process";
12
12
  import { fileURLToPath } from "node:url";
@@ -226,7 +226,7 @@ function resolveBoundaryPathLexicalSync(params) {
226
226
  lexicalCursor = path.join(lexicalCursor, segment);
227
227
  let stat;
228
228
  try {
229
- stat = syncFs.lstatSync(lexicalCursor);
229
+ stat = fs$1.lstatSync(lexicalCursor);
230
230
  } catch (error) {
231
231
  if (isNotFoundPathError(error)) {
232
232
  const missingSuffix = segments.slice(idx);
@@ -332,15 +332,15 @@ function resolvePathViaExistingAncestorSync(targetPath) {
332
332
  const normalized = path.resolve(targetPath);
333
333
  let cursor = normalized;
334
334
  const missingSuffix = [];
335
- while (!isFilesystemRoot(cursor) && !syncFs.existsSync(cursor)) {
335
+ while (!isFilesystemRoot(cursor) && !fs$1.existsSync(cursor)) {
336
336
  missingSuffix.unshift(path.basename(cursor));
337
337
  const parent = path.dirname(cursor);
338
338
  if (parent === cursor) break;
339
339
  cursor = parent;
340
340
  }
341
- if (!syncFs.existsSync(cursor)) return normalized;
341
+ if (!fs$1.existsSync(cursor)) return normalized;
342
342
  try {
343
- const resolvedAncestor = path.resolve(syncFs.realpathSync(cursor));
343
+ const resolvedAncestor = path.resolve(fs$1.realpathSync(cursor));
344
344
  if (missingSuffix.length === 0) return resolvedAncestor;
345
345
  return path.resolve(resolvedAncestor, ...missingSuffix);
346
346
  } catch {
@@ -365,7 +365,7 @@ function getPathKindSync(absolutePath, preserveFinalSymlink) {
365
365
  try {
366
366
  return {
367
367
  exists: true,
368
- kind: toResolvedKind(preserveFinalSymlink ? syncFs.lstatSync(absolutePath) : syncFs.statSync(absolutePath))
368
+ kind: toResolvedKind(preserveFinalSymlink ? fs$1.lstatSync(absolutePath) : fs$1.statSync(absolutePath))
369
369
  };
370
370
  } catch (error) {
371
371
  if (isNotFoundPathError(error)) return {
@@ -425,10 +425,10 @@ async function resolveSymlinkHopPath(symlinkPath) {
425
425
  }
426
426
  function resolveSymlinkHopPathSync(symlinkPath) {
427
427
  try {
428
- return path.resolve(syncFs.realpathSync(symlinkPath));
428
+ return path.resolve(fs$1.realpathSync(symlinkPath));
429
429
  } catch (error) {
430
430
  if (!isNotFoundPathError(error)) throw error;
431
- const linkTarget = syncFs.readlinkSync(symlinkPath);
431
+ const linkTarget = fs$1.readlinkSync(symlinkPath);
432
432
  return resolvePathViaExistingAncestorSync(path.resolve(path.dirname(symlinkPath), linkTarget));
433
433
  }
434
434
  }
@@ -454,7 +454,7 @@ function sameFileIdentity(left, right) {
454
454
  return sameFileIdentity$1(left, right);
455
455
  }
456
456
  function openVerifiedFileSync(params) {
457
- const ioFs = params.ioFs ?? syncFs;
457
+ const ioFs = params.ioFs ?? fs$1;
458
458
  const openReadFlags = ioFs.constants.O_RDONLY | (typeof ioFs.constants.O_NOFOLLOW === "number" ? ioFs.constants.O_NOFOLLOW : 0);
459
459
  let fd = null;
460
460
  try {
@@ -526,7 +526,7 @@ function canUseBoundaryFileOpen(ioFs) {
526
526
  return typeof ioFs.openSync === "function" && typeof ioFs.closeSync === "function" && typeof ioFs.fstatSync === "function" && typeof ioFs.lstatSync === "function" && typeof ioFs.realpathSync === "function" && typeof ioFs.readFileSync === "function" && typeof ioFs.constants === "object" && ioFs.constants !== null;
527
527
  }
528
528
  function openBoundaryFileSync(params) {
529
- const ioFs = params.ioFs ?? syncFs;
529
+ const ioFs = params.ioFs ?? fs$1;
530
530
  const absolutePath = path.resolve(params.absolutePath);
531
531
  let resolvedPath;
532
532
  let rootRealPath;
@@ -864,7 +864,7 @@ async function readPackageName(dir) {
864
864
  }
865
865
  function readPackageNameSync(dir) {
866
866
  try {
867
- const raw = syncFs.readFileSync(path.join(dir, "package.json"), "utf-8");
867
+ const raw = fs$1.readFileSync(path.join(dir, "package.json"), "utf-8");
868
868
  const parsed = JSON.parse(raw);
869
869
  return typeof parsed.name === "string" ? parsed.name : null;
870
870
  } catch {
@@ -898,7 +898,7 @@ function candidateDirsFromArgv1(argv1) {
898
898
  const normalized = path.resolve(argv1);
899
899
  const candidates = [path.dirname(normalized)];
900
900
  try {
901
- const resolved = syncFs.realpathSync(normalized);
901
+ const resolved = fs$1.realpathSync(normalized);
902
902
  if (resolved !== normalized) candidates.push(path.dirname(resolved));
903
903
  } catch {}
904
904
  const parts = normalized.split(path.sep);
@@ -1010,14 +1010,14 @@ async function readWorkspaceFileWithGuards(params) {
1010
1010
  const identity = workspaceFileIdentity(opened.stat, opened.path);
1011
1011
  const cached = workspaceFileCache.get(params.filePath);
1012
1012
  if (cached && cached.identity === identity) {
1013
- syncFs.closeSync(opened.fd);
1013
+ fs$1.closeSync(opened.fd);
1014
1014
  return {
1015
1015
  ok: true,
1016
1016
  content: cached.content
1017
1017
  };
1018
1018
  }
1019
1019
  try {
1020
- const content = syncFs.readFileSync(opened.fd, "utf-8");
1020
+ const content = fs$1.readFileSync(opened.fd, "utf-8");
1021
1021
  workspaceFileCache.set(params.filePath, {
1022
1022
  content,
1023
1023
  identity
@@ -1034,7 +1034,7 @@ async function readWorkspaceFileWithGuards(params) {
1034
1034
  error
1035
1035
  };
1036
1036
  } finally {
1037
- syncFs.closeSync(opened.fd);
1037
+ fs$1.closeSync(opened.fd);
1038
1038
  }
1039
1039
  }
1040
1040
  function stripFrontMatter(content) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/acpx",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands ACP runtime backend via acpx",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/bluebubbles",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands BlueBubbles channel plugin",
5
5
  "type": "module",
6
6
  "idlehands": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/copilot-proxy",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands Copilot Proxy provider plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/diagnostics-otel",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands diagnostics OpenTelemetry exporter",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/discord",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands Discord channel plugin",
5
5
  "type": "module",
6
6
  "idlehands": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/feishu",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands Feishu/Lark channel plugin (community maintained by @m1heng)",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/google-gemini-cli-auth",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands Gemini CLI OAuth provider plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/googlechat",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands Google Chat channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/hand",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "Hand workflow tool plugin (typed pipelines + resumable approvals)",
5
5
  "type": "module",
6
6
  "idlehands": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/imessage",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands iMessage channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/irc",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands IRC channel plugin",
5
5
  "type": "module",
6
6
  "idlehands": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/line",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands LINE channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/llm-task",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands JSON-only LLM task plugin",
6
6
  "type": "module",
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.21
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.20
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/matrix",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands Matrix channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/mattermost",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands Mattermost channel plugin",
5
5
  "type": "module",
6
6
  "idlehands": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/memory-core",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands core memory search plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/memory-lancedb",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands LanceDB-backed long-term memory plugin with auto-recall/capture",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/minimax-portal-auth",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "private": true,
5
5
  "description": "IdleHands MiniMax Portal OAuth provider plugin",
6
6
  "type": "module",
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.21
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.20
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/msteams",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands Microsoft Teams channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/nextcloud-talk",
3
- "version": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "IdleHands Nextcloud Talk channel plugin",
5
5
  "type": "module",
6
6
  "idlehands": {