@visorcraft/idlehands 4.0.14 → 4.0.16

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 (165) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{agent-via-gateway-D-FbIr6E.js → agent-via-gateway-7SDhvcBa.js} +2 -2
  3. package/dist/{agent-via-gateway-BCActbIf.js → agent-via-gateway-Ceb_VeXS.js} +2 -2
  4. package/dist/{agent-via-gateway-B0077UOc.js → agent-via-gateway-DIfwOe7Y.js} +1 -1
  5. package/dist/{agent-via-gateway-DFnFArbP.js → agent-via-gateway-F1Zu0slF.js} +1 -1
  6. package/dist/{agents-DBtNXoSW.js → agents-idaLog48.js} +4 -4
  7. package/dist/{agents.config-C48CGAxv.js → agents.config-DP_bqTwg.js} +1 -1
  8. package/dist/{agents.config-a7WEBiP9.js → agents.config-w0ZcfpyW.js} +1 -1
  9. package/dist/{anton-GmxStpbM.js → anton-B7VZSQo-.js} +19 -2
  10. package/dist/{anton-BzjiLD-a.js → anton-BomwkDBv.js} +19 -2
  11. package/dist/{anton-BiE961do.js → anton-Cs1JPzv4.js} +19 -2
  12. package/dist/{anton-fsipCiB9.js → anton-CzWIEEiT.js} +19 -2
  13. package/dist/{auth-choice-DCHD89CG.js → auth-choice-C49o8owq.js} +1 -1
  14. package/dist/{auth-choice-B9F26cWG.js → auth-choice-D-TtZtMR.js} +1 -1
  15. package/dist/{banner-DGxHi5f3.js → banner-DmFqQvFd.js} +1 -1
  16. package/dist/build-info.json +3 -3
  17. package/dist/bundled/boot-md/handler.js +2 -2
  18. package/dist/bundled/session-memory/handler.js +2 -2
  19. package/dist/{channel-options-BURifbbT.js → channel-options-1Dqo0zkg.js} +1 -1
  20. package/dist/{channel-options-DZ237bIi.js → channel-options-CsEgIwgu.js} +1 -1
  21. package/dist/{channel-web-Dx3LCcqS.js → channel-web-BicbbO9_.js} +2 -2
  22. package/dist/{channel-web-Ylr-WudQ.js → channel-web-C7s5QLXL.js} +2 -2
  23. package/dist/{channels-cli-CntOyA1l.js → channels-cli-CWb-B8BT.js} +7 -7
  24. package/dist/{channels-cli-BHyVWKE_.js → channels-cli-REwO9h_a.js} +7 -7
  25. package/dist/{cli-DxFD9X-g.js → cli-B4rP4MXJ.js} +2 -2
  26. package/dist/{cli-DnAZgvLv.js → cli-B9ARC6CF.js} +2 -2
  27. package/dist/{command-registry-BB2Vnuy4.js → command-registry-0e5VHciB.js} +10 -10
  28. package/dist/{completion-cli-eFXXaRI-.js → completion-cli-BTtvgatl.js} +2 -2
  29. package/dist/{completion-cli-Cd_zlB-2.js → completion-cli-C1StqVUs.js} +1 -1
  30. package/dist/{config-cli-C0kgcpE4.js → config-cli-B-yirt2T.js} +1 -1
  31. package/dist/{config-cli-CNuPoVE4.js → config-cli-C3As38Z_.js} +1 -1
  32. package/dist/{configure-DEyZZjPG.js → configure-BEd8nUOe.js} +3 -3
  33. package/dist/{configure-BDO6l1oe.js → configure-Cw6aeqBy.js} +3 -3
  34. package/dist/{deps-CIF1pkFi.js → deps-C28cWNmF.js} +1 -1
  35. package/dist/{deps-7AsluBQV.js → deps-CVb-kfIX.js} +1 -1
  36. package/dist/{deps-CXtbmEWH.js → deps-CYAKIzhf.js} +1 -1
  37. package/dist/{deps-8ieGS4Mv.js → deps-Cn32rOjf.js} +1 -1
  38. package/dist/{doctor-completion-BM1W0ErJ.js → doctor-completion-T5sq7t8L.js} +1 -1
  39. package/dist/{doctor-completion-DZ7EW_dp.js → doctor-completion-o6QBkVYG.js} +1 -1
  40. package/dist/{emergency-stop-BQVndluY.js → emergency-stop-CMeSxuEg.js} +2 -2
  41. package/dist/{emergency-stop-C5022igA.js → emergency-stop-D-dp9zCO.js} +2 -2
  42. package/dist/{emergency-stop-DpTSZhRz.js → emergency-stop-h5_WOPZT.js} +2 -2
  43. package/dist/{emergency-stop-DdNkOB3t.js → emergency-stop-w0AyIMs7.js} +2 -2
  44. package/dist/entry.js +1 -1
  45. package/dist/extensionAPI.js +2 -2
  46. package/dist/{gateway-cli-DvDS1_s1.js → gateway-cli-Dxoh3sSC.js} +9 -9
  47. package/dist/{gateway-cli-CgCMdrYY.js → gateway-cli-bZXsaQkU.js} +9 -9
  48. package/dist/{health-Bs81nsdt.js → health-OvNY74XL.js} +1 -1
  49. package/dist/{health-CPiopwcS.js → health-dLZas7f8.js} +1 -1
  50. package/dist/{hooks-cli-CNq30Huh.js → hooks-cli-DOH-i33b.js} +3 -3
  51. package/dist/{hooks-cli-DXM6dTkU.js → hooks-cli-DZr1MB1B.js} +3 -3
  52. package/dist/index.js +7 -7
  53. package/dist/llm-slug-generator.js +2 -2
  54. package/dist/{models-CVGwjQpG.js → models-Dvyot3-o.js} +2 -2
  55. package/dist/{models-cli-bkbKnWld.js → models-cli-CKRL4j3x.js} +3 -3
  56. package/dist/{models-cli-2QkLeKdt.js → models-cli-Dtzht0md.js} +4 -4
  57. package/dist/{npm-resolution-CmAIOir0.js → npm-resolution-BpruvRIr.js} +1 -1
  58. package/dist/{npm-resolution-DHetuEi8.js → npm-resolution-iEXmU1Ol.js} +1 -1
  59. package/dist/{onboard-Du522rv9.js → onboard-CS6IQorr.js} +2 -2
  60. package/dist/{onboard-IDM50Cwp.js → onboard-Ck4SwhZB.js} +2 -2
  61. package/dist/{onboard-channels-CHLOUR52.js → onboard-channels-CM4puuWQ.js} +1 -1
  62. package/dist/{onboard-channels-5uQfEVIz.js → onboard-channels-DzNjXM6f.js} +1 -1
  63. package/dist/{onboarding-B73ADr9Y.js → onboarding-0Pop0Cex.js} +3 -3
  64. package/dist/{onboarding-Ct8sM6do.js → onboarding-DMEJRAg4.js} +3 -3
  65. package/dist/{onboarding.finalize-mNlZG1KO.js → onboarding.finalize-BZW1kZw7.js} +7 -7
  66. package/dist/{onboarding.finalize-DEVkNjj0.js → onboarding.finalize-f2qChM_N.js} +6 -6
  67. package/dist/{pi-embedded-bwvtdswf.js → pi-embedded-BKTKQn_9.js} +12 -12
  68. package/dist/{pi-embedded-ChimfAJ-.js → pi-embedded-Oto02Ard.js} +12 -12
  69. package/dist/{plugin-registry-CYh53OcU.js → plugin-registry-BfNJBiAr.js} +1 -1
  70. package/dist/{plugin-registry-BBx7owin.js → plugin-registry-PcN7mK-d.js} +1 -1
  71. package/dist/plugin-sdk/{agent-via-gateway-C2tn6sON.js → agent-via-gateway-l3LvRB7r.js} +2 -2
  72. package/dist/plugin-sdk/{anton-_MnTuJJ-.js → anton-DJn2RPpW.js} +19 -2
  73. package/dist/plugin-sdk/{channel-web-DwtLzVOR.js → channel-web-DvztgyXI.js} +2 -2
  74. package/dist/plugin-sdk/{deps-mdAvVF88.js → deps-B1DxdYuU.js} +1 -1
  75. package/dist/plugin-sdk/{emergency-stop-DYCGWJzN.js → emergency-stop-CVZuzTM7.js} +2 -2
  76. package/dist/plugin-sdk/index.js +3 -3
  77. package/dist/plugin-sdk/{reply-B-q4HnAx.js → reply-BhGucE6k.js} +12 -12
  78. package/dist/plugin-sdk/{upgrade-command-DKUGbn8D.js → upgrade-command-y1YvsJbf.js} +12 -2
  79. package/dist/plugin-sdk/{web-P5eS5E4t.js → web-BzmXmmAo.js} +3 -3
  80. package/dist/{plugins-cli-SxHWgGz6.js → plugins-cli-DOTZBHc7.js} +3 -3
  81. package/dist/{plugins-cli-TmKS47EG.js → plugins-cli-s1bEnfMn.js} +3 -3
  82. package/dist/{program-ZVWCD0Zm.js → program-Blak4A0H.js} +8 -8
  83. package/dist/{program-context-3VJmK0G6.js → program-context-DtHO30yM.js} +19 -19
  84. package/dist/{prompt-select-styled-D7s-dTdd.js → prompt-select-styled-D8vDTRY8.js} +4 -4
  85. package/dist/{prompt-select-styled-DefgYXen.js → prompt-select-styled-DuHE5c_O.js} +4 -4
  86. package/dist/{provider-auth-helpers-ZH_-N5zd.js → provider-auth-helpers-CnqcE5__.js} +1 -1
  87. package/dist/{provider-auth-helpers-DZhIVPGv.js → provider-auth-helpers-PdlgGx1Z.js} +1 -1
  88. package/dist/{push-apns-Do1ENlJt.js → push-apns-CNVtKEbW.js} +1 -1
  89. package/dist/{push-apns-xWUFiO5-.js → push-apns-DkGS3lmo.js} +1 -1
  90. package/dist/{register.agent-BQjgsbPA.js → register.agent-BGs6wEo-.js} +9 -9
  91. package/dist/{register.agent-oVyiMffI.js → register.agent-DliuXWG0.js} +8 -8
  92. package/dist/{register.configure-24YtUj4s.js → register.configure-D9bNPRml.js} +8 -8
  93. package/dist/{register.configure-D_zfBA_E.js → register.configure-DJsShg2l.js} +8 -8
  94. package/dist/{register.maintenance-CkYNqabD.js → register.maintenance-B-36Avrl.js} +8 -8
  95. package/dist/{register.maintenance-BccFDIZU.js → register.maintenance-B7ZM7NqF.js} +9 -9
  96. package/dist/{register.message-CPejF6cS.js → register.message-Cm5P_dls.js} +3 -3
  97. package/dist/{register.message-CySQp5gA.js → register.message-CmEzaYEw.js} +3 -3
  98. package/dist/{register.onboard-BddM-Tey.js → register.onboard-ByUSn1hy.js} +2 -2
  99. package/dist/{register.onboard-Cg5R87xG.js → register.onboard-cB-UkXhL.js} +2 -2
  100. package/dist/{register.orchestrator-anton-uFQntDpJ.js → register.orchestrator-anton-CADua5Nr.js} +2 -2
  101. package/dist/{register.orchestrator-anton-Dfd2g3y-.js → register.orchestrator-anton-D_mAceTk.js} +2 -2
  102. package/dist/{register.setup-Bla4J47z.js → register.setup-CA3WwC1V.js} +2 -2
  103. package/dist/{register.setup-Cnil6_M-.js → register.setup-DOnWysTP.js} +2 -2
  104. package/dist/{register.status-health-sessions-CI6-RlLt.js → register.status-health-sessions-DgR30NBl.js} +4 -4
  105. package/dist/{register.status-health-sessions-CiakJrlx.js → register.status-health-sessions-Dsvbkrhh.js} +4 -4
  106. package/dist/{register.subclis-9fhzxHCF.js → register.subclis-CvN5J3oh.js} +10 -10
  107. package/dist/{reply-Cmj0wbnT.js → reply-D6y5faqD.js} +12 -12
  108. package/dist/{run-main-DUtPECK6.js → run-main-BBYeikWD.js} +15 -15
  109. package/dist/{server-node-events--qmTbghp.js → server-node-events-CcAiA2an.js} +3 -3
  110. package/dist/{server-node-events-DwUtqxW5.js → server-node-events-DeBYOK05.js} +3 -3
  111. package/dist/{status-CPCpSX9k.js → status-BW8aF7xu.js} +2 -2
  112. package/dist/{status-CMG5erwf.js → status-Dd0rJBTD.js} +2 -2
  113. package/dist/{subagent-registry-DHwrN9Oj.js → subagent-registry-DeXWDNty.js} +12 -12
  114. package/dist/{update-cli-DMjQ-pCl.js → update-cli-C97163Ne.js} +9 -9
  115. package/dist/{update-cli-CQhZlXlT.js → update-cli-DLWAR9u6.js} +8 -8
  116. package/dist/{update-runner-BnTu_uJ4.js → update-runner-BV9LWTCG.js} +1 -1
  117. package/dist/{update-runner-CghbY9Ay.js → update-runner-Cft2lh5r.js} +1 -1
  118. package/dist/{upgrade-command-L9y3xbza.js → upgrade-command-909a7QUc.js} +14 -4
  119. package/dist/{upgrade-command-Bvrv4iDU.js → upgrade-command-BOG7TpIq.js} +14 -4
  120. package/dist/{upgrade-command-CvbcPPIF.js → upgrade-command-CWP8S_lt.js} +14 -4
  121. package/dist/{upgrade-command-Bh61DpzA.js → upgrade-command-eqla-KnV.js} +14 -4
  122. package/dist/{web-weF5X5MU.js → web-BwZ1OGaX.js} +3 -3
  123. package/dist/{web-U5rtNi4Q.js → web-D8zB-Qkg.js} +3 -3
  124. package/dist/{web-BJk05p_4.js → web-DGPTqAhk.js} +3 -3
  125. package/dist/{web-J7TF5rpD.js → web-Da_aB4Vm.js} +3 -3
  126. package/extensions/acpx/package.json +1 -1
  127. package/extensions/bluebubbles/package.json +1 -1
  128. package/extensions/copilot-proxy/package.json +1 -1
  129. package/extensions/diagnostics-otel/package.json +1 -1
  130. package/extensions/discord/package.json +1 -1
  131. package/extensions/feishu/package.json +1 -1
  132. package/extensions/google-gemini-cli-auth/package.json +1 -1
  133. package/extensions/googlechat/package.json +1 -1
  134. package/extensions/hand/package.json +1 -1
  135. package/extensions/imessage/package.json +1 -1
  136. package/extensions/irc/package.json +1 -1
  137. package/extensions/line/package.json +1 -1
  138. package/extensions/llm-task/package.json +1 -1
  139. package/extensions/matrix/CHANGELOG.md +12 -0
  140. package/extensions/matrix/package.json +1 -1
  141. package/extensions/mattermost/package.json +1 -1
  142. package/extensions/memory-core/package.json +1 -1
  143. package/extensions/memory-lancedb/package.json +1 -1
  144. package/extensions/minimax-portal-auth/package.json +1 -1
  145. package/extensions/msteams/CHANGELOG.md +12 -0
  146. package/extensions/msteams/package.json +1 -1
  147. package/extensions/nextcloud-talk/package.json +1 -1
  148. package/extensions/nostr/CHANGELOG.md +12 -0
  149. package/extensions/nostr/package.json +1 -1
  150. package/extensions/open-prose/package.json +1 -1
  151. package/extensions/signal/package.json +1 -1
  152. package/extensions/slack/package.json +1 -1
  153. package/extensions/synology-chat/package.json +1 -1
  154. package/extensions/telegram/package.json +1 -1
  155. package/extensions/tlon/package.json +1 -1
  156. package/extensions/twitch/CHANGELOG.md +12 -0
  157. package/extensions/twitch/package.json +1 -1
  158. package/extensions/voice-call/CHANGELOG.md +12 -0
  159. package/extensions/voice-call/package.json +1 -1
  160. package/extensions/whatsapp/package.json +1 -1
  161. package/extensions/zalo/CHANGELOG.md +12 -0
  162. package/extensions/zalo/package.json +1 -1
  163. package/extensions/zalouser/CHANGELOG.md +12 -0
  164. package/extensions/zalouser/package.json +1 -1
  165. package/package.json +1 -1
@@ -75,7 +75,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
75
75
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-jilCMH1M.js";
76
76
  import { t as makeProxyFetch } from "./proxy-CRB9oCP5.js";
77
77
  import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-6_GxvQYe.js";
78
- import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-7AsluBQV.js";
78
+ import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-CVb-kfIX.js";
79
79
  import { createRequire } from "node:module";
80
80
  import * as fs$1 from "node:fs/promises";
81
81
  import fs from "node:fs/promises";
@@ -23061,7 +23061,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23061
23061
  };
23062
23062
  const arg = body.slice(6).trim();
23063
23063
  if (arg === "status" || arg === "") {
23064
- const { antonStatus } = await import("./anton-fsipCiB9.js");
23064
+ const { antonStatus } = await import("./anton-CzWIEEiT.js");
23065
23065
  const lines = [];
23066
23066
  await antonStatus({
23067
23067
  log: (msg) => lines.push(msg),
@@ -23077,7 +23077,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23077
23077
  return { shouldContinue: false };
23078
23078
  }
23079
23079
  if (arg === "stop") {
23080
- const { antonStop } = await import("./anton-fsipCiB9.js");
23080
+ const { antonStop } = await import("./anton-CzWIEEiT.js");
23081
23081
  const lines = [];
23082
23082
  await antonStop({
23083
23083
  log: (msg) => lines.push(msg),
@@ -23115,8 +23115,8 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
23115
23115
  await sendProgress(replyCtx, text);
23116
23116
  return { shouldContinue: false };
23117
23117
  }
23118
- const { runAnton, formatProgressMessage } = await import("./anton-fsipCiB9.js");
23119
- const { createDefaultDeps } = await import("./deps-7AsluBQV.js").then((n) => n.n);
23118
+ const { runAnton, formatProgressMessage } = await import("./anton-CzWIEEiT.js");
23119
+ const { createDefaultDeps } = await import("./deps-CVb-kfIX.js").then((n) => n.n);
23120
23120
  const { createNonExitingRuntime } = await import("./runtime-8mi3mpYB.js").then((n) => n.r);
23121
23121
  const runtime = createNonExitingRuntime();
23122
23122
  const deps = createDefaultDeps();
@@ -29223,7 +29223,7 @@ const handleTtsCommands = async (params, allowTextCommands) => {
29223
29223
  const handleUpgradeCommand = async (params, _allowTextCommands) => {
29224
29224
  if (!params.command.commandBodyNormalized.startsWith("/upgrade")) return null;
29225
29225
  if (!params.command.isAuthorizedSender) return { shouldContinue: false };
29226
- const { performBotUpgrade } = await import("./upgrade-command-Bvrv4iDU.js");
29226
+ const { performBotUpgrade } = await import("./upgrade-command-CWP8S_lt.js");
29227
29227
  const channel = params.ctx.OriginatingChannel ?? params.command.channel;
29228
29228
  const to = params.ctx.OriginatingTo ?? params.command.from ?? params.command.to ?? "";
29229
29229
  await routeReply({
@@ -57269,7 +57269,7 @@ function createDiscordMessageHandler(params) {
57269
57269
  try {
57270
57270
  const messageText = resolveDiscordMessageText(data.message)?.trim();
57271
57271
  if (messageText) {
57272
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DdNkOB3t.js");
57272
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w0AyIMs7.js");
57273
57273
  if (isAbortRequestText(messageText)) {
57274
57274
  const { resolveAgentRoute } = await import("./resolve-route-DuttYY7A.js").then((n) => n.r);
57275
57275
  const channelId = resolveDiscordMessageChannelId({
@@ -64767,7 +64767,7 @@ async function monitorIMessageProvider(opts = {}) {
64767
64767
  }
64768
64768
  const msgText = (message.text ?? "").trim();
64769
64769
  if (msgText) {
64770
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DdNkOB3t.js");
64770
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w0AyIMs7.js");
64771
64771
  if (isAbortRequestText(msgText)) {
64772
64772
  const { resolveAgentRoute } = await import("./resolve-route-DuttYY7A.js").then((n) => n.r);
64773
64773
  const route = resolveAgentRoute({
@@ -67378,7 +67378,7 @@ function createSignalEventHandler(deps) {
67378
67378
  const senderName = envelope.sourceName ?? senderDisplay;
67379
67379
  const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
67380
67380
  if (bodyText) {
67381
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DdNkOB3t.js");
67381
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w0AyIMs7.js");
67382
67382
  if (isAbortRequestText(bodyText)) {
67383
67383
  const { resolveAgentRoute } = await import("./resolve-route-DuttYY7A.js").then((n) => n.r);
67384
67384
  const route = resolveAgentRoute({
@@ -70760,7 +70760,7 @@ function createSlackMessageHandler(params) {
70760
70760
  if (ctx.markMessageSeen(message.channel, message.ts)) return;
70761
70761
  const rawText = (message.text ?? "").trim();
70762
70762
  if (rawText) {
70763
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DdNkOB3t.js");
70763
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w0AyIMs7.js");
70764
70764
  if (isAbortRequestText(rawText)) {
70765
70765
  const { resolveAgentRoute } = await import("./resolve-route-DuttYY7A.js").then((n) => n.r);
70766
70766
  const route = resolveAgentRoute({
@@ -72954,7 +72954,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
72954
72954
  const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
72955
72955
  const text = typeof msg.text === "string" ? msg.text : void 0;
72956
72956
  if (text) {
72957
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DdNkOB3t.js");
72957
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-w0AyIMs7.js");
72958
72958
  if (isAbortRequestText(text)) {
72959
72959
  const senderId = msg.from?.id ? String(msg.from.id) : "";
72960
72960
  if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
@@ -76439,7 +76439,7 @@ function loadWebLoginQr() {
76439
76439
  return webLoginQrPromise;
76440
76440
  }
76441
76441
  function loadWebChannel() {
76442
- webChannelPromise ??= import("./web-weF5X5MU.js");
76442
+ webChannelPromise ??= import("./web-BwZ1OGaX.js");
76443
76443
  return webChannelPromise;
76444
76444
  }
76445
76445
  function loadWhatsAppActions() {
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { E as getActivePluginRegistry, s as createSubsystemLogger } from "./entry.js";
3
3
  import { j as loadConfig } from "./auth-profiles-Baj5ImDJ.js";
4
4
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-mLXQGQde.js";
5
- import { _ as loadIdleHandsPlugins } from "./subagent-registry-DHwrN9Oj.js";
5
+ import { _ as loadIdleHandsPlugins } from "./subagent-registry-DeXWDNty.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ht as loadIdleHandsPlugins } from "./reply-Cmj0wbnT.js";
2
+ import { ht as loadIdleHandsPlugins } from "./reply-D6y5faqD.js";
3
3
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-RA0zXRpu.js";
4
4
  import { b as getActivePluginRegistry, t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
5
5
  import { It as loadConfig } from "./model-selection-0dGxYGp8.js";
@@ -1,6 +1,6 @@
1
1
  import { s as normalizeAgentId } from "./session-key-47BV2tLd.js";
2
2
  import "./accounts-BLYMokxV.js";
3
- import { F as callGateway, I as randomIdempotencyKey, d as agentCommand, f as resolveSessionKeyForRequest, p as withProgress } from "./reply-B-q4HnAx.js";
3
+ import { F as callGateway, I as randomIdempotencyKey, d as agentCommand, f as resolveSessionKeyForRequest, p as withProgress } from "./reply-BhGucE6k.js";
4
4
  import "./paths-CtGV5i8O.js";
5
5
  import "./github-copilot-token-CY2euW0d.js";
6
6
  import { r as loadConfig } from "./config-CEgzwk0J.js";
@@ -63,7 +63,7 @@ import "./send-B26cNPqY.js";
63
63
  import "./proxy-C4ewPdlN.js";
64
64
  import "./resolve-route-BZABUE4J.js";
65
65
  import "./replies-ZovJp-3F.js";
66
- import "./deps-mdAvVF88.js";
66
+ import "./deps-B1DxdYuU.js";
67
67
  import "./outbound-attachment-BisU5Vji.js";
68
68
 
69
69
  //#region src/commands/agent-via-gateway.ts
@@ -2,10 +2,13 @@ import "./paths-CtGV5i8O.js";
2
2
  import { t as CONFIG_DIR } from "./utils-Dyj2wV4e.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
+ import { promisify } from "node:util";
6
+ import { execFile } from "node:child_process";
5
7
 
6
8
  //#region src/commands/anton.ts
7
9
  const ANTON_STATE_PATH = path.join(CONFIG_DIR, "anton.state.json");
8
10
  const ANTON_LOCK_PATH = path.join(CONFIG_DIR, "anton.lock");
11
+ const execFile$1 = promisify(execFile);
9
12
  async function ensureStateDir() {
10
13
  await fs.mkdir(CONFIG_DIR, { recursive: true });
11
14
  }
@@ -216,7 +219,7 @@ async function loadAntonConfig() {
216
219
  }
217
220
  }
218
221
  async function runAgentTask(args) {
219
- const { agentCliCommand } = await import("./agent-via-gateway-C2tn6sON.js");
222
+ const { agentCliCommand } = await import("./agent-via-gateway-l3LvRB7r.js");
220
223
  const extraSystemPrompt = args.workspaceDir ? `Your working directory is: ${args.workspaceDir}\nAll file paths are relative to this directory. Use this as your cwd for all operations.` : void 0;
221
224
  const result = await agentCliCommand({
222
225
  message: args.message,
@@ -244,6 +247,14 @@ async function isPlanFileValid(filePath) {
244
247
  return false;
245
248
  }
246
249
  }
250
+ async function getGitChangedFileCount(cwd) {
251
+ try {
252
+ const { stdout } = await execFile$1("git", ["status", "--porcelain"], { cwd });
253
+ return stdout.split(/\r?\n/).map((line) => line.trim()).filter(Boolean).length;
254
+ } catch {
255
+ return null;
256
+ }
257
+ }
247
258
  function extractJsonObject(text) {
248
259
  const trimmed = text.trim();
249
260
  if (!trimmed) return null;
@@ -621,6 +632,7 @@ async function runAnton(args) {
621
632
  workspaceDir: args.workspaceDir
622
633
  });
623
634
  }
635
+ if (!planFile) throw new Error("Preflight discovery did not produce a verified plan file; refusing direct implementation fallback");
624
636
  }
625
637
  await notify({
626
638
  phase: "implementation_start",
@@ -637,8 +649,11 @@ async function runAnton(args) {
637
649
  task: task.text,
638
650
  sessionId: implSessionId
639
651
  });
652
+ const implPrompt = planFile ? buildImplementationPrompt(task.text, planFile) : buildDirectTaskPrompt(task.text);
653
+ const gitCwd = args.workspaceDir ? path.resolve(args.workspaceDir) : path.dirname(filePath);
654
+ const changedBefore = await getGitChangedFileCount(gitCwd);
640
655
  await runAgentTask({
641
- message: planFile ? buildImplementationPrompt(task.text, planFile) : buildDirectTaskPrompt(task.text),
656
+ message: implPrompt,
642
657
  sessionId: implSessionId,
643
658
  timeout: defaultTimeout,
644
659
  agent: args.agent,
@@ -647,6 +662,8 @@ async function runAnton(args) {
647
662
  deps: args.deps,
648
663
  workspaceDir: args.workspaceDir
649
664
  });
665
+ const changedAfter = await getGitChangedFileCount(gitCwd);
666
+ if (mode === "preflight" && changedBefore !== null && changedAfter !== null && changedAfter <= changedBefore) throw new Error("Implementation made no repository changes; refusing to mark task complete");
650
667
  const updated = markTaskDone(await fs.readFile(filePath, "utf8"), task.line);
651
668
  await fs.writeFile(filePath, updated, "utf8");
652
669
  completed += 1;
@@ -1,6 +1,6 @@
1
1
  import { a as buildGroupHistoryKey, f as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-47BV2tLd.js";
2
2
  import { i as resolveWhatsAppAccount } from "./accounts-BLYMokxV.js";
3
- import { A as formatDurationPrecise, Ct as formatInboundEnvelope, Gt as resolveOpenProviderRuntimeGroupPolicy, Lt as resolveDmGroupAccessWithCommandGate, Mt as buildPairingReply, Pt as readStoreAllowFromForDmPolicy, Rt as resolveDmGroupAccessWithLists, Tt as resolveEnvelopeFormatOptions, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Z as resolveMentionGating, _ as resolveInboundDebounceMs, ct as recordPendingHistoryEntryIfEnabled, g as createInboundDebouncer, i as parseActivationCommand, j as enqueueSystemEvent, l as computeBackoff, lt as buildMentionRegexes, m as dispatchReplyWithBufferedBlockDispatcher, nt as buildHistoryContextFromEntries, qt as warnMissingProviderGroupPolicyFallbackOnce, r as normalizeGroupActivation, t as getReplyFromConfig, tt as DEFAULT_GROUP_HISTORY_LIMIT, u as sleepWithAbort, ut as normalizeMentionText, v as hasControlCommand, y as shouldComputeCommandAuthorized, yt as createDedupeCache } from "./reply-B-q4HnAx.js";
3
+ import { A as formatDurationPrecise, Ct as formatInboundEnvelope, Gt as resolveOpenProviderRuntimeGroupPolicy, Lt as resolveDmGroupAccessWithCommandGate, Mt as buildPairingReply, Pt as readStoreAllowFromForDmPolicy, Rt as resolveDmGroupAccessWithLists, Tt as resolveEnvelopeFormatOptions, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Z as resolveMentionGating, _ as resolveInboundDebounceMs, ct as recordPendingHistoryEntryIfEnabled, g as createInboundDebouncer, i as parseActivationCommand, j as enqueueSystemEvent, l as computeBackoff, lt as buildMentionRegexes, m as dispatchReplyWithBufferedBlockDispatcher, nt as buildHistoryContextFromEntries, qt as warnMissingProviderGroupPolicyFallbackOnce, r as normalizeGroupActivation, t as getReplyFromConfig, tt as DEFAULT_GROUP_HISTORY_LIMIT, u as sleepWithAbort, ut as normalizeMentionText, v as hasControlCommand, y as shouldComputeCommandAuthorized, yt as createDedupeCache } from "./reply-BhGucE6k.js";
4
4
  import { r as loadConfig } from "./config-CEgzwk0J.js";
5
5
  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-Dyj2wV4e.js";
6
6
  import { l as normalizeChatChannelId, t as createSubsystemLogger } from "./subsystem-DWPzKeZ0.js";
@@ -878,7 +878,7 @@ async function monitorWebInbox(options) {
878
878
  };
879
879
  const stopText = (inboundMessage.body ?? "").trim();
880
880
  if (stopText) {
881
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DYCGWJzN.js");
881
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CVZuzTM7.js");
882
882
  if (isAbortRequestText(stopText)) {
883
883
  const { loadConfig: loadCfg } = await import("./config-CEgzwk0J.js").then((n) => n.t);
884
884
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
@@ -18,7 +18,7 @@ var deps_exports = /* @__PURE__ */ __exportAll({ createDefaultDeps: () => create
18
18
  function createDefaultDeps() {
19
19
  return {
20
20
  sendMessageWhatsApp: async (...args) => {
21
- const { sendMessageWhatsApp } = await import("./web-P5eS5E4t.js");
21
+ const { sendMessageWhatsApp } = await import("./web-BzmXmmAo.js");
22
22
  return await sendMessageWhatsApp(...args);
23
23
  },
24
24
  sendMessageTelegram: async (...args) => {
@@ -1,5 +1,5 @@
1
1
  import "./accounts-BLYMokxV.js";
2
- import { S as stopSubagentsForRequester, b as formatAbortReplyText, n as abortEmbeddedPiRun, w as clearSessionQueues, x as isAbortRequestText } from "./reply-B-q4HnAx.js";
2
+ import { S as stopSubagentsForRequester, b as formatAbortReplyText, n as abortEmbeddedPiRun, w as clearSessionQueues, x as isAbortRequestText } from "./reply-BhGucE6k.js";
3
3
  import "./paths-CtGV5i8O.js";
4
4
  import "./github-copilot-token-CY2euW0d.js";
5
5
  import "./config-CEgzwk0J.js";
@@ -61,7 +61,7 @@ import "./send-B26cNPqY.js";
61
61
  import "./proxy-C4ewPdlN.js";
62
62
  import "./resolve-route-BZABUE4J.js";
63
63
  import "./replies-ZovJp-3F.js";
64
- import "./deps-mdAvVF88.js";
64
+ import "./deps-B1DxdYuU.js";
65
65
  import "./outbound-attachment-BisU5Vji.js";
66
66
 
67
67
  //#region src/auto-reply/reply/emergency-stop.ts
@@ -1,6 +1,6 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId, u as resolveThreadSessionKeys } from "./session-key-47BV2tLd.js";
2
2
  import { a as resolveWhatsAppAuthDir, i as resolveWhatsAppAccount, n as listWhatsAppAccountIds, o as createAccountListHelpers, r as resolveDefaultWhatsAppAccountId } from "./accounts-BLYMokxV.js";
3
- import { $ as mergeAllowlist, $t as unregisterAcpRuntimeBackend, At as extractToolSend, B as formatDocsLink, Bt as resolveControlCommandGate, D as stripMarkdown, Dt as formatZonedTimestamp, E as processLineMessage, Et as formatUtcTimestamp, Ft as resolveDmAllowState, G as logInboundDrop, Gt as resolveOpenProviderRuntimeGroupPolicy, H as stringEnum, Ht as resetMissingProviderGroupPolicyFallbackWarningsForTesting, It as resolveDmGroupAccessDecision, J as removeAckReactionAfterReply, Jt as isDangerousNameMatchingEnabled, K as logTypingFailure, Kt as resolveRuntimeGroupPolicy, L as resolveDiscordUserAllowlist, Lt as resolveDmGroupAccessWithCommandGate, M as resolveSlackUserAllowlist, N as resolveSlackChannelAllowlist, Nt as DM_GROUP_ACCESS_REASON, O as createReceiptCard, Ot as resolveTimezone, P as detectBinary, Pt as readStoreAllowFromForDmPolicy, Q as resolveMentionGatingWithBypass, Qt as requireAcpRuntimeBackend, R as resolveDiscordChannelAllowlist, Rt as resolveDmGroupAccessWithLists, St as rejectDevicePairing, T as hasMarkdownToConvert, U as recordInboundSession, Ut as resolveAllowlistProviderRuntimeGroupPolicy, V as optionalStringEnum, Vt as GROUP_POLICY_BLOCKED_LABEL, W as logAckFailure, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Xt as getAcpRuntimeBackend, Y as shouldAckReaction, Yt as registerPluginHttpRoute, Z as resolveMentionGating, Zt as registerAcpRuntimeBackend, _t as readRequestBodyWithLimit, a as listLineAccountIds, an as formatAllowlistMatchMeta, at as clearHistoryEntriesIfEnabled, bt as approveDevicePairing, c as resolveLineAccount, cn as BLUEBUBBLES_ACTION_NAMES, ct as recordPendingHistoryEntryIfEnabled, dt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, en as ACP_ERROR_CODES, et as summarizeMapping, ft as DEFAULT_WEBHOOK_MAX_BODY_BYTES, gt as readJsonBodyWithLimit, ht as isRequestBodyLimitError, in as unbindThreadBindingsBySessionKey, it as clearHistoryEntries, jt as issuePairingChallenge, k as attachFooterText, kt as buildMediaPayload, ln as BLUEBUBBLES_GROUP_ACTIONS, mt as installRequestBodyLimitGuard, nn as autoBindSpawnedDiscordSubagent, o as normalizeAccountId$1, on as resolveAllowlistMatchSimple, ot as evictOldHistoryKeys, pt as RequestBodyLimitError, q as createTypingCallbacks, qt as warnMissingProviderGroupPolicyFallbackOnce, rn as listThreadBindingsBySessionKey, rt as buildPendingHistoryContextFromMap, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_ACTIONS, st as recordPendingHistoryEntry, tn as AcpRuntimeError, tt as DEFAULT_GROUP_HISTORY_LIMIT, un as CHANNEL_MESSAGE_ACTION_NAMES, vt as requestBodyErrorToText, wt as formatInboundFromLabel, xt as listDevicePairing, yt as createDedupeCache, z as collectDiscordAuditChannelIds, zt as resolveEffectiveAllowFromLists } from "./reply-B-q4HnAx.js";
3
+ import { $ as mergeAllowlist, $t as unregisterAcpRuntimeBackend, At as extractToolSend, B as formatDocsLink, Bt as resolveControlCommandGate, D as stripMarkdown, Dt as formatZonedTimestamp, E as processLineMessage, Et as formatUtcTimestamp, Ft as resolveDmAllowState, G as logInboundDrop, Gt as resolveOpenProviderRuntimeGroupPolicy, H as stringEnum, Ht as resetMissingProviderGroupPolicyFallbackWarningsForTesting, It as resolveDmGroupAccessDecision, J as removeAckReactionAfterReply, Jt as isDangerousNameMatchingEnabled, K as logTypingFailure, Kt as resolveRuntimeGroupPolicy, L as resolveDiscordUserAllowlist, Lt as resolveDmGroupAccessWithCommandGate, M as resolveSlackUserAllowlist, N as resolveSlackChannelAllowlist, Nt as DM_GROUP_ACCESS_REASON, O as createReceiptCard, Ot as resolveTimezone, P as detectBinary, Pt as readStoreAllowFromForDmPolicy, Q as resolveMentionGatingWithBypass, Qt as requireAcpRuntimeBackend, R as resolveDiscordChannelAllowlist, Rt as resolveDmGroupAccessWithLists, St as rejectDevicePairing, T as hasMarkdownToConvert, U as recordInboundSession, Ut as resolveAllowlistProviderRuntimeGroupPolicy, V as optionalStringEnum, Vt as GROUP_POLICY_BLOCKED_LABEL, W as logAckFailure, Wt as resolveDefaultGroupPolicy, X as shouldAckReactionForWhatsApp, Xt as getAcpRuntimeBackend, Y as shouldAckReaction, Yt as registerPluginHttpRoute, Z as resolveMentionGating, Zt as registerAcpRuntimeBackend, _t as readRequestBodyWithLimit, a as listLineAccountIds, an as formatAllowlistMatchMeta, at as clearHistoryEntriesIfEnabled, bt as approveDevicePairing, c as resolveLineAccount, cn as BLUEBUBBLES_ACTION_NAMES, ct as recordPendingHistoryEntryIfEnabled, dt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, en as ACP_ERROR_CODES, et as summarizeMapping, ft as DEFAULT_WEBHOOK_MAX_BODY_BYTES, gt as readJsonBodyWithLimit, ht as isRequestBodyLimitError, in as unbindThreadBindingsBySessionKey, it as clearHistoryEntries, jt as issuePairingChallenge, k as attachFooterText, kt as buildMediaPayload, ln as BLUEBUBBLES_GROUP_ACTIONS, mt as installRequestBodyLimitGuard, nn as autoBindSpawnedDiscordSubagent, o as normalizeAccountId$1, on as resolveAllowlistMatchSimple, ot as evictOldHistoryKeys, pt as RequestBodyLimitError, q as createTypingCallbacks, qt as warnMissingProviderGroupPolicyFallbackOnce, rn as listThreadBindingsBySessionKey, rt as buildPendingHistoryContextFromMap, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_ACTIONS, st as recordPendingHistoryEntry, tn as AcpRuntimeError, tt as DEFAULT_GROUP_HISTORY_LIMIT, un as CHANNEL_MESSAGE_ACTION_NAMES, vt as requestBodyErrorToText, wt as formatInboundFromLabel, xt as listDevicePairing, yt as createDedupeCache, z as collectDiscordAuditChannelIds, zt as resolveEffectiveAllowFromLists } from "./reply-BhGucE6k.js";
4
4
  import "./paths-CtGV5i8O.js";
5
5
  import "./github-copilot-token-CY2euW0d.js";
6
6
  import { A as GroupPolicySchema, An as acquireFileLock, D as BlockStreamingCoalesceSchema, E as ToolPolicySchema, F as TtsConfigSchema, I as TtsModeSchema, L as TtsProviderSchema, M as MarkdownTableModeSchema, N as ReplyRuntimeConfigSchemaShape, O as DmConfigSchema, P as TtsAutoSchema, R as normalizeAllowFrom, d as GoogleChatConfigSchema, f as IMessageConfigSchema, g as TelegramConfigSchema, h as SlackConfigSchema, j as MarkdownConfigSchema, jn as withFileLock, k as DmPolicySchema, l as WhatsAppConfigSchema, m as SignalConfigSchema, p as MSTeamsConfigSchema, u as DiscordConfigSchema, z as requireOpenAllowFrom } from "./config-CEgzwk0J.js";
@@ -52,7 +52,7 @@ import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticE
52
52
  import { n as extractOriginalFilename } from "./store-CCCXwngh.js";
53
53
  import "./pi-embedded-helpers-B68z4sHq.js";
54
54
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-CnUtsDch.js";
55
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-DwtLzVOR.js";
55
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-DvztgyXI.js";
56
56
  import "./thinking-g4Rrlwu4.js";
57
57
  import "./image-C_1tftC8.js";
58
58
  import "./pi-model-discovery-Dt6899be.js";
@@ -65,7 +65,7 @@ import "./send-B26cNPqY.js";
65
65
  import "./proxy-C4ewPdlN.js";
66
66
  import "./resolve-route-BZABUE4J.js";
67
67
  import "./replies-ZovJp-3F.js";
68
- import "./deps-mdAvVF88.js";
68
+ import "./deps-B1DxdYuU.js";
69
69
  import "./outbound-attachment-BisU5Vji.js";
70
70
  import "./outbound-Dx_q6JAI.js";
71
71
  import "./session-DdJj6_DW.js";
@@ -72,7 +72,7 @@ import { t as makeProxyFetch } from "./proxy-C4ewPdlN.js";
72
72
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BZABUE4J.js";
73
73
  import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-ZovJp-3F.js";
74
74
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-WMrtFGPv.js";
75
- import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-mdAvVF88.js";
75
+ import { r as createOutboundSendDepsFromCliSource, t as createDefaultDeps } from "./deps-B1DxdYuU.js";
76
76
  import { createRequire } from "node:module";
77
77
  import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
78
78
  import * as path$1 from "node:path";
@@ -33090,7 +33090,7 @@ function createDiscordMessageHandler(params) {
33090
33090
  try {
33091
33091
  const messageText = resolveDiscordMessageText(data.message)?.trim();
33092
33092
  if (messageText) {
33093
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DYCGWJzN.js");
33093
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CVZuzTM7.js");
33094
33094
  if (isAbortRequestText(messageText)) {
33095
33095
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
33096
33096
  const channelId = resolveDiscordMessageChannelId({
@@ -43834,7 +43834,7 @@ async function monitorIMessageProvider(opts = {}) {
43834
43834
  }
43835
43835
  const msgText = (message.text ?? "").trim();
43836
43836
  if (msgText) {
43837
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DYCGWJzN.js");
43837
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CVZuzTM7.js");
43838
43838
  if (isAbortRequestText(msgText)) {
43839
43839
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
43840
43840
  const route = resolveAgentRoute({
@@ -46230,7 +46230,7 @@ function createSignalEventHandler(deps) {
46230
46230
  const senderName = envelope.sourceName ?? senderDisplay;
46231
46231
  const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
46232
46232
  if (bodyText) {
46233
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DYCGWJzN.js");
46233
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CVZuzTM7.js");
46234
46234
  if (isAbortRequestText(bodyText)) {
46235
46235
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
46236
46236
  const route = resolveAgentRoute({
@@ -49601,7 +49601,7 @@ function createSlackMessageHandler(params) {
49601
49601
  if (ctx.markMessageSeen(message.channel, message.ts)) return;
49602
49602
  const rawText = (message.text ?? "").trim();
49603
49603
  if (rawText) {
49604
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DYCGWJzN.js");
49604
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CVZuzTM7.js");
49605
49605
  if (isAbortRequestText(rawText)) {
49606
49606
  const { resolveAgentRoute } = await import("./resolve-route-BZABUE4J.js").then((n) => n.r);
49607
49607
  const route = resolveAgentRoute({
@@ -54224,7 +54224,7 @@ const registerTelegramHandlers = ({ cfg, accountId, bot, opts, runtime, mediaMax
54224
54224
  const { ctx, msg, chatId, resolvedThreadId, storeAllowFrom, sendOversizeWarning, oversizeLogMessage } = params;
54225
54225
  const text = typeof msg.text === "string" ? msg.text : void 0;
54226
54226
  if (text) {
54227
- const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-DYCGWJzN.js");
54227
+ const { isAbortRequestText, emergencyStop, resolveSessionForEmergencyStop } = await import("./emergency-stop-CVZuzTM7.js");
54228
54228
  if (isAbortRequestText(text)) {
54229
54229
  const senderId = msg.from?.id ? String(msg.from.id) : "";
54230
54230
  if (!senderId || !allowFrom?.length || allowFrom.includes(senderId)) {
@@ -57709,7 +57709,7 @@ function loadWebLoginQr() {
57709
57709
  return webLoginQrPromise;
57710
57710
  }
57711
57711
  function loadWebChannel() {
57712
- webChannelPromise ??= import("./web-P5eS5E4t.js");
57712
+ webChannelPromise ??= import("./web-BzmXmmAo.js");
57713
57713
  return webChannelPromise;
57714
57714
  }
57715
57715
  function loadWhatsAppActions() {
@@ -80281,7 +80281,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
80281
80281
  };
80282
80282
  const arg = body.slice(6).trim();
80283
80283
  if (arg === "status" || arg === "") {
80284
- const { antonStatus } = await import("./anton-_MnTuJJ-.js");
80284
+ const { antonStatus } = await import("./anton-DJn2RPpW.js");
80285
80285
  const lines = [];
80286
80286
  await antonStatus({
80287
80287
  log: (msg) => lines.push(msg),
@@ -80297,7 +80297,7 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
80297
80297
  return { shouldContinue: false };
80298
80298
  }
80299
80299
  if (arg === "stop") {
80300
- const { antonStop } = await import("./anton-_MnTuJJ-.js");
80300
+ const { antonStop } = await import("./anton-DJn2RPpW.js");
80301
80301
  const lines = [];
80302
80302
  await antonStop({
80303
80303
  log: (msg) => lines.push(msg),
@@ -80335,8 +80335,8 @@ const handleAntonCommand = async (params, _allowTextCommands) => {
80335
80335
  await sendProgress(replyCtx, text);
80336
80336
  return { shouldContinue: false };
80337
80337
  }
80338
- const { runAnton, formatProgressMessage } = await import("./anton-_MnTuJJ-.js");
80339
- const { createDefaultDeps } = await import("./deps-mdAvVF88.js").then((n) => n.n);
80338
+ const { runAnton, formatProgressMessage } = await import("./anton-DJn2RPpW.js");
80339
+ const { createDefaultDeps } = await import("./deps-B1DxdYuU.js").then((n) => n.n);
80340
80340
  const { createNonExitingRuntime } = await import("./runtime-CjfcfOBD.js").then((n) => n.r);
80341
80341
  const runtime = createNonExitingRuntime();
80342
80342
  const deps = createDefaultDeps();
@@ -82009,7 +82009,7 @@ const handleTtsCommands = async (params, allowTextCommands) => {
82009
82009
  const handleUpgradeCommand = async (params, _allowTextCommands) => {
82010
82010
  if (!params.command.commandBodyNormalized.startsWith("/upgrade")) return null;
82011
82011
  if (!params.command.isAuthorizedSender) return { shouldContinue: false };
82012
- const { performBotUpgrade } = await import("./upgrade-command-DKUGbn8D.js");
82012
+ const { performBotUpgrade } = await import("./upgrade-command-y1YvsJbf.js");
82013
82013
  const channel = params.ctx.OriginatingChannel ?? params.command.channel;
82014
82014
  const to = params.ctx.OriginatingTo ?? params.command.from ?? params.command.to ?? "";
82015
82015
  await routeReply({
@@ -40,6 +40,7 @@ const GITHUB_OWNER = "visorcraft";
40
40
  const GITHUB_REPO = "idlehands";
41
41
  const NPM_SCOPED_PACKAGE = "@visorcraft/idlehands";
42
42
  const RELEASE_ASSET_PREFIX = "idlehands";
43
+ const NPM_REGISTRY_URL = "https://registry.npmjs.org";
43
44
  function isUsableCommand(cmd) {
44
45
  try {
45
46
  execFileSync(cmd, ["--version"], {
@@ -97,11 +98,14 @@ function npmInstallGlobal(spec) {
97
98
  "-g",
98
99
  "--prefix",
99
100
  target.prefix,
101
+ "--registry",
102
+ NPM_REGISTRY_URL,
100
103
  spec
101
104
  ];
102
105
  const env = {
103
106
  ...process.env,
104
- npm_config_prefix: target.prefix
107
+ npm_config_prefix: target.prefix,
108
+ npm_config_registry: NPM_REGISTRY_URL
105
109
  };
106
110
  if (needsElevation(target.prefix)) {
107
111
  if (!hasSudo()) throw new Error(`Permission denied: ${target.prefix} requires elevated permissions.\nRe-run as root or install to a user-writable prefix.`);
@@ -122,10 +126,16 @@ function npmInstallGlobal(spec) {
122
126
  execFileSync("npm", [
123
127
  "install",
124
128
  "-g",
129
+ "--registry",
130
+ NPM_REGISTRY_URL,
125
131
  spec
126
132
  ], {
127
133
  stdio: "pipe",
128
- timeout: 12e4
134
+ timeout: 12e4,
135
+ env: {
136
+ ...process.env,
137
+ npm_config_registry: NPM_REGISTRY_URL
138
+ }
129
139
  });
130
140
  }
131
141
  function compareSemver(a, b) {
@@ -1,5 +1,5 @@
1
1
  import "./accounts-BLYMokxV.js";
2
- import "./reply-B-q4HnAx.js";
2
+ import "./reply-BhGucE6k.js";
3
3
  import "./paths-CtGV5i8O.js";
4
4
  import "./github-copilot-token-CY2euW0d.js";
5
5
  import "./config-CEgzwk0J.js";
@@ -49,7 +49,7 @@ import "./deliver-BNfMF0Nb.js";
49
49
  import "./diagnostic-ByA6zvzu.js";
50
50
  import "./store-CCCXwngh.js";
51
51
  import "./pi-embedded-helpers-B68z4sHq.js";
52
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DwtLzVOR.js";
52
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DvztgyXI.js";
53
53
  import "./thinking-g4Rrlwu4.js";
54
54
  import "./image-C_1tftC8.js";
55
55
  import "./pi-model-discovery-Dt6899be.js";
@@ -62,7 +62,7 @@ import "./send-B26cNPqY.js";
62
62
  import "./proxy-C4ewPdlN.js";
63
63
  import "./resolve-route-BZABUE4J.js";
64
64
  import "./replies-ZovJp-3F.js";
65
- import "./deps-mdAvVF88.js";
65
+ import "./deps-B1DxdYuU.js";
66
66
  import "./outbound-attachment-BisU5Vji.js";
67
67
  import { n as sendMessageWhatsApp } from "./outbound-Dx_q6JAI.js";
68
68
  import { i as waitForWaConnection, t as createWaSocket } from "./session-DdJj6_DW.js";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir } from "./paths-Cn44w-EB.js";
2
2
  import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-CXzXXV2o.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-Cmj0wbnT.js";
4
+ import "./reply-D6y5faqD.js";
5
5
  import "./agent-scope-RA0zXRpu.js";
6
6
  import "./subsystem-CGZX2PBV.js";
7
7
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
@@ -102,7 +102,7 @@ import "./resolve-route-D_AbcmD6.js";
102
102
  import "./replies-hSFVxL4h.js";
103
103
  import "./skill-commands-BFzmZAfo.js";
104
104
  import "./workspace-dirs-SsExQ3Bz.js";
105
- import "./deps-CXtbmEWH.js";
105
+ import "./deps-CYAKIzhf.js";
106
106
  import "./plugin-auto-enable-7DUxMy6A.js";
107
107
  import "./channel-selection-ZxRkxpuF.js";
108
108
  import "./outbound-attachment-Bot3bRnK.js";
@@ -121,7 +121,7 @@ import "./npm-registry-spec-BCbbfIhX.js";
121
121
  import "./skill-scanner-D7mzXRXd.js";
122
122
  import { a as resolvePluginInstallDir, i as installPluginFromPath, n as recordPluginInstall, r as installPluginFromNpmSpec } from "./installs-CNubze2L.js";
123
123
  import { t as renderTable } from "./table-B9AmL3M1.js";
124
- import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport } from "./npm-resolution-CmAIOir0.js";
124
+ import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport } from "./npm-resolution-BpruvRIr.js";
125
125
  import { n as updateNpmInstalledPlugins, r as findBundledPluginByNpmSpec } from "./update-D79ppbMQ.js";
126
126
  import fs from "node:fs";
127
127
  import os from "node:os";
@@ -25,7 +25,7 @@ import "./logging-Bgrm4o7g.js";
25
25
  import "./auth-store-D9BmR4S6.js";
26
26
  import "./send-m4lQkQcY.js";
27
27
  import "./send-CCiDIuX4.js";
28
- import "./subagent-registry-DHwrN9Oj.js";
28
+ import "./subagent-registry-DeXWDNty.js";
29
29
  import "./paths-CC17i2eK.js";
30
30
  import "./chat-envelope-Dedaetiq.js";
31
31
  import "./client-Brv1GCwX.js";
@@ -108,7 +108,7 @@ import "./cli-utils-BfsDuRZS.js";
108
108
  import "./help-format-CldHB7lS.js";
109
109
  import "./progress-B76RkFx7.js";
110
110
  import "./replies-DSfpze17.js";
111
- import "./deps-8ieGS4Mv.js";
111
+ import "./deps-Cn32rOjf.js";
112
112
  import "./onboard-helpers-Dp6wXNs7.js";
113
113
  import "./prompt-style-XmK49QYK.js";
114
114
  import "./pairing-labels-D7xcHkxi.js";
@@ -118,7 +118,7 @@ import "./npm-registry-spec-BlFqJFsA.js";
118
118
  import "./skill-scanner-CdLElD51.js";
119
119
  import { a as resolvePluginInstallDir, i as installPluginFromPath, n as recordPluginInstall, r as installPluginFromNpmSpec } from "./installs-8aQVDSI0.js";
120
120
  import { t as renderTable } from "./table-aJzHv5Oe.js";
121
- import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport } from "./npm-resolution-DHetuEi8.js";
121
+ import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport } from "./npm-resolution-iEXmU1Ol.js";
122
122
  import { n as updateNpmInstalledPlugins, r as findBundledPluginByNpmSpec } from "./update-If9iCjgB.js";
123
123
  import os from "node:os";
124
124
  import path from "node:path";
@@ -26,7 +26,7 @@ import "./logging-Bgrm4o7g.js";
26
26
  import "./auth-store-D9BmR4S6.js";
27
27
  import "./send-m4lQkQcY.js";
28
28
  import "./send-CCiDIuX4.js";
29
- import "./subagent-registry-DHwrN9Oj.js";
29
+ import "./subagent-registry-DeXWDNty.js";
30
30
  import "./paths-CC17i2eK.js";
31
31
  import "./chat-envelope-Dedaetiq.js";
32
32
  import "./client-Brv1GCwX.js";
@@ -109,17 +109,17 @@ import "./cli-utils-BfsDuRZS.js";
109
109
  import "./help-format-CldHB7lS.js";
110
110
  import "./progress-B76RkFx7.js";
111
111
  import "./replies-DSfpze17.js";
112
- import "./deps-8ieGS4Mv.js";
112
+ import "./deps-Cn32rOjf.js";
113
113
  import "./onboard-helpers-Dp6wXNs7.js";
114
114
  import "./prompt-style-XmK49QYK.js";
115
115
  import "./pairing-labels-D7xcHkxi.js";
116
- import "./plugin-registry-CYh53OcU.js";
117
- import { n as resolveCliChannelOptions } from "./channel-options-DZ237bIi.js";
118
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-9fhzxHCF.js";
119
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-BB2Vnuy4.js";
116
+ import "./plugin-registry-BfNJBiAr.js";
117
+ import { n as resolveCliChannelOptions } from "./channel-options-CsEgIwgu.js";
118
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-CvN5J3oh.js";
119
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-0e5VHciB.js";
120
120
  import { r as setProgramContext } from "./program-context-BrqeiWcA.js";
121
121
  import { t as forceFreePort } from "./ports-CIJavqzS.js";
122
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-DGxHi5f3.js";
122
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-DmFqQvFd.js";
123
123
  import { Command, InvalidArgumentError } from "commander";
124
124
 
125
125
  //#region src/cli/program/context.ts
@@ -258,7 +258,7 @@ function registerPreActionHooks(program, programVersion) {
258
258
  commandPath
259
259
  });
260
260
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
261
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-CYh53OcU.js").then((n) => n.n);
261
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-BfNJBiAr.js").then((n) => n.n);
262
262
  ensurePluginRegistryLoaded();
263
263
  }
264
264
  });