@visorcraft/idlehands 4.0.19 → 4.0.20

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 (71) hide show
  1. package/dist/{agent-via-gateway-B2Z_k_od.js → agent-via-gateway-CqzpAXCd.js} +7 -7
  2. package/dist/{agent-via-gateway-Cn3iNSod.js → agent-via-gateway-igDg7ko6.js} +7 -7
  3. package/dist/{anton-DsmttQbC.js → anton-DLsQ7Igk.js} +1 -1
  4. package/dist/{anton-hH1PyE2C.js → anton-ONYQUE8F.js} +1 -1
  5. package/dist/{audio-preflight-vD3mDc6w.js → audio-preflight-CSSlgO89.js} +4 -4
  6. package/dist/{audio-preflight-BSlR2jEq.js → audio-preflight-CW8IH1lU.js} +4 -4
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +7 -7
  9. package/dist/bundled/session-memory/handler.js +7 -7
  10. package/dist/{chrome-_2tzVjVl.js → chrome-BcJB6PcM.js} +9 -9
  11. package/dist/{chrome-DEnkfZ9p.js → chrome-Do5potHV.js} +9 -9
  12. package/dist/{deliver-CVTXl0Cv.js → deliver-BUiQ-9fE.js} +1 -1
  13. package/dist/{deliver-5FLCa6tB.js → deliver-whAbSPLk.js} +1 -1
  14. package/dist/{deps-BAMUVAdU.js → deps-BhCzAj5E.js} +1 -1
  15. package/dist/{deps-BbipxGPW.js → deps-DR1eh_L_.js} +1 -1
  16. package/dist/{emergency-stop-BldYLJq7.js → emergency-stop-8dcFF6tw.js} +7 -7
  17. package/dist/{emergency-stop-Lj33jqJJ.js → emergency-stop-ChBe32HN.js} +7 -7
  18. package/dist/extensionAPI.js +7 -7
  19. package/dist/{image-C_aN5P6-.js → image-BAsQlUqT.js} +1 -1
  20. package/dist/{image-COw__ACq.js → image-D8b_rlQC.js} +1 -1
  21. package/dist/llm-slug-generator.js +7 -7
  22. package/dist/{pi-embedded-BeyOxL6U.js → pi-embedded-6dr9Wi77.js} +26 -26
  23. package/dist/{pi-embedded-Bc4KWuTe.js → pi-embedded-DMx6rHVL.js} +26 -26
  24. package/dist/{pi-embedded-helpers-CyTpDKo5.js → pi-embedded-helpers-CghCLoPo.js} +4 -4
  25. package/dist/{pi-embedded-helpers-C2j0LfJC.js → pi-embedded-helpers-Ct2rwp-P.js} +4 -4
  26. package/dist/{pw-ai-CowTfhOG.js → pw-ai-CfYaR1K2.js} +1 -1
  27. package/dist/{pw-ai-DjmrIQle.js → pw-ai-yrIWfcWX.js} +1 -1
  28. package/dist/{runner-CZW_eyf2.js → runner-Bv_BA3vd.js} +1 -1
  29. package/dist/{runner-BzNdfqDz.js → runner-PgRFPYUj.js} +1 -1
  30. package/dist/{web-DiqHxfw7.js → web-BxegDO-S.js} +8 -8
  31. package/dist/{web-Csmkqx1W.js → web-C1BMClkN.js} +8 -8
  32. package/extensions/acpx/package.json +1 -1
  33. package/extensions/bluebubbles/package.json +1 -1
  34. package/extensions/copilot-proxy/package.json +1 -1
  35. package/extensions/diagnostics-otel/package.json +1 -1
  36. package/extensions/discord/package.json +1 -1
  37. package/extensions/feishu/package.json +1 -1
  38. package/extensions/google-gemini-cli-auth/package.json +1 -1
  39. package/extensions/googlechat/package.json +1 -1
  40. package/extensions/hand/package.json +1 -1
  41. package/extensions/imessage/package.json +1 -1
  42. package/extensions/irc/package.json +1 -1
  43. package/extensions/line/package.json +1 -1
  44. package/extensions/llm-task/package.json +1 -1
  45. package/extensions/matrix/CHANGELOG.md +6 -0
  46. package/extensions/matrix/package.json +1 -1
  47. package/extensions/mattermost/package.json +1 -1
  48. package/extensions/memory-core/package.json +1 -1
  49. package/extensions/memory-lancedb/package.json +1 -1
  50. package/extensions/minimax-portal-auth/package.json +1 -1
  51. package/extensions/msteams/CHANGELOG.md +6 -0
  52. package/extensions/msteams/package.json +1 -1
  53. package/extensions/nextcloud-talk/package.json +1 -1
  54. package/extensions/nostr/CHANGELOG.md +6 -0
  55. package/extensions/nostr/package.json +1 -1
  56. package/extensions/open-prose/package.json +1 -1
  57. package/extensions/signal/package.json +1 -1
  58. package/extensions/slack/package.json +1 -1
  59. package/extensions/synology-chat/package.json +1 -1
  60. package/extensions/telegram/package.json +1 -1
  61. package/extensions/tlon/package.json +1 -1
  62. package/extensions/twitch/CHANGELOG.md +6 -0
  63. package/extensions/twitch/package.json +1 -1
  64. package/extensions/voice-call/CHANGELOG.md +6 -0
  65. package/extensions/voice-call/package.json +1 -1
  66. package/extensions/whatsapp/package.json +1 -1
  67. package/extensions/zalo/CHANGELOG.md +6 -0
  68. package/extensions/zalo/package.json +1 -1
  69. package/extensions/zalouser/CHANGELOG.md +6 -0
  70. package/extensions/zalouser/package.json +1 -1
  71. package/package.json +1 -1
@@ -10,7 +10,7 @@ import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { t as generateSecureToken } from "./secure-random-B1N_MXT_.js";
12
12
  import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-D1KtygWz.js";
13
- import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-_2tzVjVl.js";
13
+ import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-BcJB6PcM.js";
14
14
  import { t as SsrFBlockedError } from "./ssrf-CZeHDwVZ.js";
15
15
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CnAPWfca.js";
16
16
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Cu1nXNMM.js";
@@ -1182,7 +1182,7 @@ function isModuleNotFoundError(err) {
1182
1182
  }
1183
1183
  async function loadPwAiModule(mode) {
1184
1184
  try {
1185
- return await import("./pw-ai-CowTfhOG.js");
1185
+ return await import("./pw-ai-CfYaR1K2.js");
1186
1186
  } catch (err) {
1187
1187
  if (mode === "soft") return null;
1188
1188
  if (isModuleNotFoundError(err)) return null;
@@ -3717,11 +3717,11 @@ function createProfileContext(opts, profile) {
3717
3717
  const userDataDir = resolveIdleHandsUserDataDir(profile.name);
3718
3718
  const profileState = getProfileState();
3719
3719
  if (await isHttpReachable(300) && !profileState.running) try {
3720
- await (await import("./pw-ai-CowTfhOG.js")).closePlaywrightBrowserConnection();
3720
+ await (await import("./pw-ai-CfYaR1K2.js")).closePlaywrightBrowserConnection();
3721
3721
  } catch {}
3722
3722
  if (profileState.running) await stopRunningBrowser();
3723
3723
  try {
3724
- await (await import("./pw-ai-CowTfhOG.js")).closePlaywrightBrowserConnection();
3724
+ await (await import("./pw-ai-CfYaR1K2.js")).closePlaywrightBrowserConnection();
3725
3725
  } catch {}
3726
3726
  if (!syncFs.existsSync(userDataDir)) return {
3727
3727
  moved: false,
@@ -9,7 +9,7 @@ import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
9
9
  import { n as parseBooleanValue } from "./env-BpvqFD5n.js";
10
10
  import { t as generateSecureToken } from "./secure-random-BvP4jdcV.js";
11
11
  import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BDG-MYYV.js";
12
- import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-DEnkfZ9p.js";
12
+ import { B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as ensureChromeExtensionRelayServer, D as DEFAULT_TRACE_DIR, E as DEFAULT_DOWNLOAD_DIR, H as DEFAULT_IDLEHANDS_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, N as normalizeBrowserFormField, O as DEFAULT_UPLOAD_DIR, P as isLoopbackHost, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, U as DEFAULT_IDLEHANDS_BROWSER_PROFILE_NAME, V as DEFAULT_IDLEHANDS_BROWSER_COLOR, _ as withBrowserNavigationPolicy, a as resolveIdleHandsUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchIdleHandsChrome, j as resolveWritablePathWithinRoot, k as resolveExistingPathsWithinRoot, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopIdleHandsChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./chrome-Do5potHV.js";
13
13
  import { t as SsrFBlockedError } from "./ssrf-DappnhDp.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-nQcWk6Z6.js";
15
15
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CGbCFqW8.js";
@@ -1181,7 +1181,7 @@ function isModuleNotFoundError(err) {
1181
1181
  }
1182
1182
  async function loadPwAiModule(mode) {
1183
1183
  try {
1184
- return await import("./pw-ai-DjmrIQle.js");
1184
+ return await import("./pw-ai-yrIWfcWX.js");
1185
1185
  } catch (err) {
1186
1186
  if (mode === "soft") return null;
1187
1187
  if (isModuleNotFoundError(err)) return null;
@@ -3716,11 +3716,11 @@ function createProfileContext(opts, profile) {
3716
3716
  const userDataDir = resolveIdleHandsUserDataDir(profile.name);
3717
3717
  const profileState = getProfileState();
3718
3718
  if (await isHttpReachable(300) && !profileState.running) try {
3719
- await (await import("./pw-ai-DjmrIQle.js")).closePlaywrightBrowserConnection();
3719
+ await (await import("./pw-ai-yrIWfcWX.js")).closePlaywrightBrowserConnection();
3720
3720
  } catch {}
3721
3721
  if (profileState.running) await stopRunningBrowser();
3722
3722
  try {
3723
- await (await import("./pw-ai-DjmrIQle.js")).closePlaywrightBrowserConnection();
3723
+ await (await import("./pw-ai-yrIWfcWX.js")).closePlaywrightBrowserConnection();
3724
3724
  } catch {}
3725
3725
  if (!syncFs.existsSync(userDataDir)) return {
3726
3726
  moved: false,
@@ -9,7 +9,7 @@ import "./github-copilot-token-Dgt6cnsM.js";
9
9
  import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
10
10
  import "./boolean-CE7i9tBR.js";
11
11
  import "./env-B5G1qwGc.js";
12
- import { A as resolveStrictExistingPathsWithinRoot, M as DEFAULT_FILL_FIELD_TYPE, O as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-_2tzVjVl.js";
12
+ import { A as resolveStrictExistingPathsWithinRoot, M as DEFAULT_FILL_FIELD_TYPE, O as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-BcJB6PcM.js";
13
13
  import "./ssrf-CZeHDwVZ.js";
14
14
  import "./path-alias-guards-Cu1nXNMM.js";
15
15
  import "./redact-Bvpf-ATQ.js";
@@ -7,7 +7,7 @@ import "./model-selection-D3Jhcvg-.js";
7
7
  import "./github-copilot-token-D50c466d.js";
8
8
  import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
9
9
  import "./env-BpvqFD5n.js";
10
- import { A as resolveStrictExistingPathsWithinRoot, M as DEFAULT_FILL_FIELD_TYPE, O as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-DEnkfZ9p.js";
10
+ import { A as resolveStrictExistingPathsWithinRoot, M as DEFAULT_FILL_FIELD_TYPE, O as DEFAULT_UPLOAD_DIR, S as withCdpSocket, _ as withBrowserNavigationPolicy, d as formatAriaSnapshot, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, v as appendCdpPath, x as getHeadersWithAuth, y as fetchJson } from "./chrome-Do5potHV.js";
11
11
  import "./ssrf-DappnhDp.js";
12
12
  import "./path-alias-guards-CGbCFqW8.js";
13
13
  import "./redact-DeLmHwQa.js";
@@ -4,7 +4,7 @@ import { A as shouldLogVerbose, D as logVerbose, K as resolvePreferredIdleHandsT
4
4
  import { C as requireApiKey, J as mergeInboundPathRoots, K as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, L as loadConfig, Y as resolveIMessageAttachmentRoots, c as normalizeProviderId, fn as resolveIdleHandsAgentDir, h as normalizeGoogleModelId, q as isInboundPathAllowed, w as resolveApiKeyForProvider } from "./model-selection-D3Jhcvg-.js";
5
5
  import { t as normalizeChatType } from "./chat-type-DLInEbxd.js";
6
6
  import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-BDG-MYYV.js";
7
- import { t as describeImageWithModel, w as ensureIdleHandsModelsJson } from "./image-C_aN5P6-.js";
7
+ import { t as describeImageWithModel, w as ensureIdleHandsModelsJson } from "./image-BAsQlUqT.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-m2hi6OmF.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-B7YMixjc.js";
10
10
  import { t as fetchWithSsrFGuard } from "./fetch-guard-BdCPmLBP.js";
@@ -5,7 +5,7 @@ import { _ as runExec } from "./workspace-DBFSzT6O.js";
5
5
  import { J as isInboundPathAllowed, R as loadConfig, T as resolveApiKeyForProvider, X as resolveIMessageAttachmentRoots, Y as mergeInboundPathRoots, c as normalizeProviderId, dn as resolveIdleHandsAgentDir, g as normalizeGoogleModelId, q as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, w as requireApiKey } from "./model-selection-1MMYqY6M.js";
6
6
  import { t as normalizeChatType } from "./chat-type-BPBtOjer.js";
7
7
  import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-D1KtygWz.js";
8
- import { t as describeImageWithModel, w as ensureIdleHandsModelsJson } from "./image-COw__ACq.js";
8
+ import { t as describeImageWithModel, w as ensureIdleHandsModelsJson } from "./image-D8b_rlQC.js";
9
9
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CIyaa44H.js";
10
10
  import { n as fetchWithTimeout } from "./fetch-timeout-3YYM8QuM.js";
11
11
  import { t as fetchWithSsrFGuard } from "./fetch-guard-iuQsIjqN.js";
@@ -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-Bc4KWuTe.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";
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-5FLCa6tB.js";
21
+ import "./deliver-whAbSPLk.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-C2j0LfJC.js";
30
- import "./chrome-DEnkfZ9p.js";
29
+ import "./pi-embedded-helpers-Ct2rwp-P.js";
30
+ import "./chrome-Do5potHV.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-C_aN5P6-.js";
43
+ import "./image-BAsQlUqT.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-CZW_eyf2.js";
58
+ import { p as registerUnhandledRejectionHandler } from "./runner-Bv_BA3vd.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-BbipxGPW.js";
69
+ import "./deps-DR1eh_L_.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-Lj33jqJJ.js");
864
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-ChBe32HN.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);
@@ -12,14 +12,14 @@ import "./boolean-CE7i9tBR.js";
12
12
  import "./env-B5G1qwGc.js";
13
13
  import { a as resolveChannelGroupRequireMention, i as resolveChannelGroupPolicy } from "./dock-BgOmHcbh.js";
14
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-BeyOxL6U.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
16
  import "./plugins-CRB60mCJ.js";
17
17
  import { n as resolveWhatsAppAccount } from "./accounts-Dk8mJIrQ.js";
18
18
  import "./bindings-D3b5Fmc9.js";
19
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
20
  import "./send-BeIZJuy4.js";
21
21
  import "./send-DmLC7aEF.js";
22
- import "./deliver-CVTXl0Cv.js";
22
+ import "./deliver-BUiQ-9fE.js";
23
23
  import "./diagnostic-4owMk4vH.js";
24
24
  import "./diagnostic-session-state-BGF2r-kt.js";
25
25
  import "./accounts-BDVs8LTu.js";
@@ -27,8 +27,8 @@ import { J as toLocationContext, Q as upsertChannelPairingRequest, q as formatLo
27
27
  import "./image-ops-D1KtygWz.js";
28
28
  import "./pi-model-discovery-Bb__OY-j.js";
29
29
  import "./message-channel-C8QtrwEU.js";
30
- import "./pi-embedded-helpers-CyTpDKo5.js";
31
- import "./chrome-_2tzVjVl.js";
30
+ import "./pi-embedded-helpers-CghCLoPo.js";
31
+ import "./chrome-BcJB6PcM.js";
32
32
  import "./ssrf-CZeHDwVZ.js";
33
33
  import "./frontmatter-BOudmHMS.js";
34
34
  import "./skills-CnAPWfca.js";
@@ -42,7 +42,7 @@ import "./accounts-CIvVRRHb.js";
42
42
  import { u as resolveStorePath } from "./paths-D_qUel1T.js";
43
43
  import "./tool-images-CcGZpzmq.js";
44
44
  import "./thinking-z4_linel.js";
45
- import "./image-COw__ACq.js";
45
+ import "./image-D8b_rlQC.js";
46
46
  import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-BUgeSN2R.js";
47
47
  import "./manager-BE_76jWB.js";
48
48
  import "./gemini-auth-CIyaa44H.js";
@@ -58,7 +58,7 @@ import "./render-MTSxc7LK.js";
58
58
  import "./commands-registry-j4vAzcF2.js";
59
59
  import "./skill-commands-Ck3flWX7.js";
60
60
  import { t as finalizeInboundContext } from "./inbound-context-BYczzTII.js";
61
- import { p as registerUnhandledRejectionHandler } from "./runner-BzNdfqDz.js";
61
+ import { p as registerUnhandledRejectionHandler } from "./runner-PgRFPYUj.js";
62
62
  import "./fetch-CsfR_943.js";
63
63
  import { n as recordChannelActivity } from "./channel-activity-D_TMOGQ0.js";
64
64
  import { t as convertMarkdownTables } from "./tables-5k-zOZ-s.js";
@@ -69,7 +69,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
69
69
  import { r as setActiveWebListener } from "./active-listener-jilCMH1M.js";
70
70
  import "./proxy-CRB9oCP5.js";
71
71
  import "./replies-6_GxvQYe.js";
72
- import "./deps-BAMUVAdU.js";
72
+ import "./deps-BhCzAj5E.js";
73
73
  import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-BNh6PpQb.js";
74
74
  import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-F_YDS_1V.js";
75
75
  import { t as loginWeb } from "./login-CFr5vJmR.js";
@@ -864,7 +864,7 @@ 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-BldYLJq7.js");
867
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-8dcFF6tw.js");
868
868
  if (isAbortRequestText(stopText)) {
869
869
  const { loadConfig: loadCfg } = await import("./model-selection-1MMYqY6M.js").then((n) => n.I);
870
870
  const { resolveAgentRoute } = await import("./resolve-route-DuttYY7A.js").then((n) => n.r);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/acpx",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.20
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/matrix",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
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.20
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/msteams",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
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.19",
3
+ "version": "4.0.20",
4
4
  "description": "IdleHands Nextcloud Talk channel plugin",
5
5
  "type": "module",
6
6
  "idlehands": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.20
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/nostr",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "description": "IdleHands Nostr channel plugin for NIP-04 encrypted DMs",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/open-prose",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "private": true,
5
5
  "description": "OpenProse VM skill pack plugin (slash command + telemetry).",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/signal",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "private": true,
5
5
  "description": "IdleHands Signal channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/slack",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "private": true,
5
5
  "description": "IdleHands Slack channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/synology-chat",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "description": "Synology Chat channel plugin for IdleHands",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/telegram",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "private": true,
5
5
  "description": "IdleHands Telegram channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/tlon",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "description": "IdleHands Tlon/Urbit channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.20
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/twitch",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "description": "IdleHands Twitch channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.20
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/voice-call",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "description": "IdleHands voice-call plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/whatsapp",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "private": true,
5
5
  "description": "IdleHands WhatsApp channel plugin",
6
6
  "type": "module",
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.20
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlehands/zalo",
3
- "version": "4.0.19",
3
+ "version": "4.0.20",
4
4
  "description": "IdleHands Zalo channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.20
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core IdleHands release numbers.
8
+
3
9
  ## 4.0.19
4
10
 
5
11
  ### Changes