@symerian/symi 2.8.4 → 2.8.6

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 (109) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/control-ui/js/app.js +36 -9
  4. package/dist/control-ui/js/render.js +63 -2
  5. package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
  6. package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
  7. package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
  8. package/dist/plugin-sdk/{active-listener-BRYwA2Ic.js → active-listener-BgwYQkdI.js} +1 -1
  9. package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
  10. package/dist/plugin-sdk/{api-key-rotation-CBsLb_4V.js → api-key-rotation-DGJZ8SVa.js} +1 -1
  11. package/dist/plugin-sdk/{audio-preflight-B-Laxbmb.js → audio-preflight-pBBHur9T.js} +24 -24
  12. package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
  13. package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
  14. package/dist/plugin-sdk/{channel-web-C6_r-2VI.js → channel-web-D-ct3FR3.js} +22 -22
  15. package/dist/plugin-sdk/{chrome-D9kN9org.js → chrome-CEqfiEs0.js} +3 -3
  16. package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
  17. package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
  18. package/dist/plugin-sdk/{commands-registry-By2smfUF.js → commands-registry-Be2qTyJK.js} +4 -4
  19. package/dist/plugin-sdk/{config-BzupW6LN.js → config-Ckum15iC.js} +9 -9
  20. package/dist/plugin-sdk/{deliver-CNuL0O4P.js → deliver-pjxCQeHb.js} +10 -10
  21. package/dist/plugin-sdk/{diagnostic-EyuCSUXO.js → diagnostic-W5975qL9.js} +1 -1
  22. package/dist/plugin-sdk/{image-BmU8yYnz.js → image-CvB1H1Oa.js} +4 -4
  23. package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
  24. package/dist/plugin-sdk/index.js +54 -54
  25. package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
  26. package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
  27. package/dist/plugin-sdk/{login-eqtXmx21.js → login-BS724Asp.js} +7 -7
  28. package/dist/plugin-sdk/{login-qr-Cbt9KlK3.js → login-qr-DcD9oY98.js} +9 -9
  29. package/dist/plugin-sdk/{manager-Dc9yVyTt.js → manager-UQQc8UDq.js} +8 -8
  30. package/dist/plugin-sdk/{manifest-registry-hy3Bn-r9.js → manifest-registry-BRx4JDK0.js} +1 -1
  31. package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
  32. package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
  33. package/dist/plugin-sdk/{model-selection-CtVwtb6y.js → model-selection-Bbs4XGPG.js} +4 -4
  34. package/dist/plugin-sdk/{outbound-ZcDVYNoy.js → outbound-Bgwpl10i.js} +7 -7
  35. package/dist/plugin-sdk/{outbound-attachment-DJ3CI92h.js → outbound-attachment-CqhMcNuS.js} +2 -2
  36. package/dist/plugin-sdk/{pi-auth-json-r2U9wDoc.js → pi-auth-json-B_aZna6j.js} +1 -1
  37. package/dist/plugin-sdk/{pi-embedded-helpers-BCNFLt_H.js → pi-embedded-helpers-C7fh8gtj.js} +17 -17
  38. package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
  39. package/dist/plugin-sdk/{pw-ai-B3jHOSti.js → pw-ai-B3QctKIy.js} +8 -8
  40. package/dist/plugin-sdk/{qmd-manager-C6GM0Qik.js → qmd-manager-BZvD_Hd3.js} +4 -4
  41. package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
  42. package/dist/plugin-sdk/{replies-DkGqfiO4.js → replies-BrD5w1DK.js} +3 -3
  43. package/dist/plugin-sdk/{reply-CIDYJYie.js → reply-Gpdxnjey.js} +79 -79
  44. package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
  45. package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
  46. package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
  47. package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
  48. package/dist/plugin-sdk/{runner-WzrwRCvL.js → runner-Blso4_CP.js} +9 -9
  49. package/dist/plugin-sdk/{send-BGE1fXlm.js → send-CI9BF7Rs.js} +6 -6
  50. package/dist/plugin-sdk/{send-7NqCWP0r.js → send-CMCTJG-m.js} +7 -7
  51. package/dist/plugin-sdk/{send-FFUmNt0K.js → send-CwRUaqoE.js} +10 -10
  52. package/dist/plugin-sdk/{send-ZhAe1nXO.js → send-Djq5IPRa.js} +10 -10
  53. package/dist/plugin-sdk/{send-BP5pSPaZ.js → send-fNRDT21N.js} +6 -6
  54. package/dist/plugin-sdk/{session-8vfTL_H6.js → session-_9Y0E4Ol.js} +4 -4
  55. package/dist/plugin-sdk/{skill-commands-DF3ouLEu.js → skill-commands-CuBIT3kO.js} +5 -5
  56. package/dist/plugin-sdk/{skills-C9DbB-Kp.js → skills-BfsaS1F9.js} +7 -7
  57. package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
  58. package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
  59. package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
  60. package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
  61. package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
  62. package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
  63. package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
  64. package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
  65. package/dist/plugin-sdk/{tool-loop-detection-BAUvBvAO.js → tool-loop-detection-Dthxc7SC.js} +2 -2
  66. package/dist/plugin-sdk/web-BFa_GJSK.js +66 -0
  67. package/dist/plugin-sdk/{whatsapp-actions-0DfquiaD.js → whatsapp-actions-B8ZG7vfh.js} +21 -21
  68. package/extensions/bluebubbles/package.json +1 -1
  69. package/extensions/copilot-proxy/package.json +1 -1
  70. package/extensions/diagnostics-otel/package.json +1 -1
  71. package/extensions/discord/package.json +1 -1
  72. package/extensions/feishu/package.json +1 -1
  73. package/extensions/google-antigravity-auth/package.json +1 -1
  74. package/extensions/google-gemini-cli-auth/package.json +1 -1
  75. package/extensions/googlechat/package.json +1 -1
  76. package/extensions/imessage/package.json +1 -1
  77. package/extensions/irc/package.json +1 -1
  78. package/extensions/learning-loop/package.json +1 -1
  79. package/extensions/line/package.json +1 -1
  80. package/extensions/llm-task/package.json +1 -1
  81. package/extensions/matrix/CHANGELOG.md +12 -0
  82. package/extensions/matrix/package.json +1 -1
  83. package/extensions/mattermost/package.json +1 -1
  84. package/extensions/memory-core/package.json +1 -1
  85. package/extensions/memory-lancedb/package.json +1 -1
  86. package/extensions/minimax-portal-auth/package.json +1 -1
  87. package/extensions/msteams/CHANGELOG.md +12 -0
  88. package/extensions/msteams/package.json +1 -1
  89. package/extensions/nextcloud-talk/package.json +1 -1
  90. package/extensions/nostr/CHANGELOG.md +12 -0
  91. package/extensions/nostr/package.json +1 -1
  92. package/extensions/open-prose/package.json +1 -1
  93. package/extensions/outlook/package.json +1 -1
  94. package/extensions/pipeline/package.json +1 -1
  95. package/extensions/signal/package.json +1 -1
  96. package/extensions/slack/package.json +1 -1
  97. package/extensions/telegram/package.json +1 -1
  98. package/extensions/tlon/package.json +1 -1
  99. package/extensions/twitch/CHANGELOG.md +12 -0
  100. package/extensions/twitch/package.json +1 -1
  101. package/extensions/voice-call/CHANGELOG.md +12 -0
  102. package/extensions/voice-call/package.json +1 -1
  103. package/extensions/whatsapp/package.json +1 -1
  104. package/extensions/zalo/CHANGELOG.md +12 -0
  105. package/extensions/zalo/package.json +1 -1
  106. package/extensions/zalouser/CHANGELOG.md +12 -0
  107. package/extensions/zalouser/package.json +1 -1
  108. package/package.json +1 -1
  109. package/dist/plugin-sdk/web-CHKraWl6.js +0 -66
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.8.4",
3
- "commit": "1c356158df9310b346cbad9a1fee26071153c066",
4
- "builtAt": "2026-04-22T06:28:31.872Z"
2
+ "version": "2.8.6",
3
+ "commit": "a073cb8942389b7e22263538e2d7661297c10f87",
4
+ "builtAt": "2026-04-22T06:55:19.272Z"
5
5
  }
@@ -1 +1 @@
1
- 9c32688a48a35d00bbdcedb609a8cd135b904b947eaa92ae105a598087c0a393
1
+ dbcc112c4fdc98ecf0a5ba9bdd05eb52b7b609d8b3445bc9a35d0aa1c53142bd
@@ -376,10 +376,17 @@ function renderHistory(messages) {
376
376
  }
377
377
  responseArea.innerHTML = "";
378
378
  responseArea.prepend(loadMoreSentinel);
379
- for (const m of messages) {
380
- if (!m || !m.role) {
379
+ for (const rawM of messages) {
380
+ if (!rawM || !rawM.role) {
381
381
  continue;
382
382
  }
383
+ // 2.8.6: strip plugin banners + timestamp envelopes from user messages
384
+ // before any filtering or content checks. Clean text reveals whether the
385
+ // message was pure plugin state (divert) or real user content (render).
386
+ const m =
387
+ typeof window.cleanUserMessageForDisplay === "function"
388
+ ? window.cleanUserMessageForDisplay(rawM)
389
+ : rawM;
383
390
 
384
391
  // Route toolResult messages to the Reasoning Panel — they're tool output, not user-facing
385
392
  if (m.role === "toolResult" || m.role === "tool") {
@@ -427,7 +434,14 @@ function renderHistory(messages) {
427
434
  continue;
428
435
  }
429
436
 
430
- // Route plugin context user messages to Reasoning Panel
437
+ // Route plugin context user messages to Reasoning Panel.
438
+ // 2.8.5: the banner pattern must match the ENTIRE trimmed body, not just
439
+ // the prefix. Plugins (e.g. Outlook) use before_prompt_build + prependContext
440
+ // to prepend a banner like "[Outlook 365] Connected as X..." to every user
441
+ // turn's persisted text. The previous prefix-only regex dropped 100% of
442
+ // user messages on those sessions. Only divert when the banner IS the
443
+ // whole message (pure state-ping with no user content); if there's any
444
+ // real text after, fall through and render normally.
431
445
  if (m.role === "user") {
432
446
  const txt = Array.isArray(m.content)
433
447
  ? m.content
@@ -436,7 +450,7 @@ function renderHistory(messages) {
436
450
  .join("")
437
451
  .trim()
438
452
  : extractText(m.content).trim();
439
- if (/^\[.+\]\s+(Not connected|Connected as)\b/i.test(txt)) {
453
+ if (/^\[.+?\]\s+(Not connected|Connected as)\b[^\n]*$/i.test(txt)) {
440
454
  if (typeof window.appendToReasoningPanel === "function") {
441
455
  window.appendToReasoningPanel({ type: "text", text: "[Plugin context]" });
442
456
  }
@@ -537,10 +551,16 @@ async function loadMoreHistory() {
537
551
 
538
552
  // Build fragment of older messages (reuse same filtering as renderHistory)
539
553
  const frag = document.createDocumentFragment();
540
- for (const m of msgs) {
541
- if (!m || !m.role) {
554
+ for (const rawM of msgs) {
555
+ if (!rawM || !rawM.role) {
542
556
  continue;
543
557
  }
558
+ // 2.8.6: same cleanup as renderHistory — strip plugin banners + envelopes
559
+ // before filtering so pure-state pings divert, real content renders.
560
+ const m =
561
+ typeof window.cleanUserMessageForDisplay === "function"
562
+ ? window.cleanUserMessageForDisplay(rawM)
563
+ : rawM;
544
564
  if (m.role === "toolResult" || m.role === "tool") {
545
565
  const content = Array.isArray(m.content) ? m.content : [];
546
566
  const text = content
@@ -559,8 +579,15 @@ async function loadMoreHistory() {
559
579
  if (m.role === "system") {
560
580
  continue;
561
581
  }
562
- // Route symipulse messages to dedicated Symipulse Panel
563
- if (typeof window.isSymipulseMessage === "function" && window.isSymipulseMessage(m)) {
582
+ // Route symipulse messages to dedicated Symipulse Panel.
583
+ // 2.8.4 (backported to lazy-load in 2.8.6): user-role messages always
584
+ // render in the main feed — the symipulse classifier targets assistant
585
+ // noise, not user input.
586
+ if (
587
+ typeof window.isSymipulseMessage === "function" &&
588
+ m.role !== "user" &&
589
+ window.isSymipulseMessage(m)
590
+ ) {
564
591
  const txt = Array.isArray(m.content)
565
592
  ? m.content
566
593
  .filter((b) => b.type === "text")
@@ -574,7 +601,7 @@ async function loadMoreHistory() {
574
601
  continue;
575
602
  }
576
603
 
577
- // Route plugin context & verification user messages to Reasoning Panel
604
+ // Route verification user messages to Reasoning Panel
578
605
  if (m.role === "user") {
579
606
  const txt = Array.isArray(m.content)
580
607
  ? m.content
@@ -764,7 +764,65 @@ window.extractThinkingText = function (content) {
764
764
  };
765
765
 
766
766
  // ── Main render function — builds a full message element ──────────────
767
+ // 2.8.6: strip plugin banner + leading timestamp envelope from user message
768
+ // text before display. Plugins (e.g. Outlook) prepend their banner to every
769
+ // user turn via before_prompt_build/prependContext, and the auto-reply
770
+ // pipeline prepends a "[Wed 2026-04-22 01:21 CDT]" channel envelope — both
771
+ // end up baked into the persisted JSONL. They're useful to the model but
772
+ // pure noise in the UI. Stripping here fixes history reload without touching
773
+ // live-send path (which already has the user's clean typed text).
774
+ //
775
+ // Non-destructive: only touches strings that start with the specific banner
776
+ // or envelope patterns. User text that happens to open with "[something]"
777
+ // falls through unchanged unless the brackets contain a date-time or the
778
+ // literal "Connected as"/"Not connected" keywords.
779
+ const USER_PLUGIN_BANNER_RE = /^\[.+?\]\s+(Not connected|Connected as)\b[^\n]*\n?/i;
780
+ const USER_TIMESTAMP_ENVELOPE_RE = /^\[[^\]]*\b\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}\b[^\]]*\]\s*/;
781
+ window.cleanUserMessageText = function (text) {
782
+ if (typeof text !== "string" || !text) {
783
+ return text;
784
+ }
785
+ let cleaned = text.replace(USER_PLUGIN_BANNER_RE, "");
786
+ cleaned = cleaned.replace(/^\s+/, "");
787
+ cleaned = cleaned.replace(USER_TIMESTAMP_ENVELOPE_RE, "");
788
+ return cleaned;
789
+ };
790
+
791
+ // Returns a message with user-role text blocks cleaned of plugin banners and
792
+ // timestamp envelopes. Returns the original reference if nothing changed.
793
+ window.cleanUserMessageForDisplay = function (message) {
794
+ if (!message || message.role !== "user") {
795
+ return message;
796
+ }
797
+ if (typeof message.content === "string") {
798
+ const cleaned = window.cleanUserMessageText(message.content);
799
+ if (cleaned === message.content) {
800
+ return message;
801
+ }
802
+ return { ...message, content: cleaned };
803
+ }
804
+ if (!Array.isArray(message.content)) {
805
+ return message;
806
+ }
807
+ let changed = false;
808
+ const nextContent = message.content.map((block) => {
809
+ if (!block || block.type !== "text" || typeof block.text !== "string") {
810
+ return block;
811
+ }
812
+ const cleaned = window.cleanUserMessageText(block.text);
813
+ if (cleaned === block.text) {
814
+ return block;
815
+ }
816
+ changed = true;
817
+ return { ...block, text: cleaned };
818
+ });
819
+ return changed ? { ...message, content: nextContent } : message;
820
+ };
821
+
767
822
  window.renderMessage = function (message) {
823
+ // 2.8.6: clean plugin banner + timestamp envelope out of user messages first,
824
+ // so downstream filters and renderers see the user's actual content.
825
+ message = window.cleanUserMessageForDisplay(message);
768
826
  const { role, content, timestamp } = message;
769
827
  const isUser = role === "user";
770
828
 
@@ -791,8 +849,11 @@ window.renderMessage = function (message) {
791
849
 
792
850
  // NOTE: Monologue suppression moved server-side to OutputNormalizer.
793
851
 
794
- // Plugin context messages (e.g. "[Outlook 365] Not connected...")
795
- if (role === "user" && /^\[.+\]\s+(Not connected|Connected as)\b/i.test(_msgText)) {
852
+ // Plugin context messages (e.g. "[Outlook 365] Not connected...").
853
+ // 2.8.5: match ENTIRE body, not just prefix — plugins like Outlook prepend
854
+ // their banner to real user text via before_prompt_build/prependContext.
855
+ // Only divert when the banner is the whole message; otherwise render normally.
856
+ if (role === "user" && /^\[.+?\]\s+(Not connected|Connected as)\b[^\n]*$/i.test(_msgText)) {
796
857
  if (typeof window.appendToReasoningPanel === "function") {
797
858
  window.appendToReasoningPanel({ type: "text", text: "[Plugin context]" });
798
859
  }
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,8 +1,8 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
2
  import { a as resolveOAuthDir } from "./paths-DR2yt_mP.js";
3
- import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry--_pGht6S.js";
4
- import { i as defaultRuntime } from "./subsystem-Coz2AgU8.js";
5
- import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
3
+ import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry-D0xTnUWt.js";
4
+ import { i as defaultRuntime } from "./subsystem-B2uDN3TV.js";
5
+ import { t as formatCliCommand } from "./command-format-GKSevep4.js";
6
6
  import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import fs$1 from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
@@ -1,5 +1,5 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID } from "./session-key-C_0eELjb.js";
2
- import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
2
+ import { t as formatCliCommand } from "./command-format-GKSevep4.js";
3
3
 
4
4
  //#region src/web/active-listener.ts
5
5
  const listeners = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  import { _ as isCronSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-C_0eELjb.js";
2
2
  import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
3
- import { P as resolveUserPath, U as danger, W as info, Y as shouldLogVerbose, Z as warn, j as pathExists, nt as getLogger, q as logVerboseConsole } from "./registry--_pGht6S.js";
4
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
3
+ import { P as resolveUserPath, U as danger, W as info, Y as shouldLogVerbose, Z as warn, j as pathExists, nt as getLogger, q as logVerboseConsole } from "./registry-D0xTnUWt.js";
4
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -1,4 +1,4 @@
1
- import { c as normalizeProviderId } from "./model-selection-CtVwtb6y.js";
1
+ import { c as normalizeProviderId } from "./model-selection-Bbs4XGPG.js";
2
2
  import { n as formatErrorMessage } from "./errors-Bv8oZiTO.js";
3
3
 
4
4
  //#region src/infra/gemini-auth.ts
@@ -1,34 +1,34 @@
1
- import "./accounts-D9zGZU5t.js";
1
+ import "./accounts-Ddm33hQm.js";
2
2
  import "./paths-DR2yt_mP.js";
3
3
  import "./github-copilot-token-D9X2phUj.js";
4
- import "./plugins-BbAvhC25.js";
5
- import { K as logVerbose, Y as shouldLogVerbose } from "./registry--_pGht6S.js";
6
- import "./config-BzupW6LN.js";
7
- import "./subsystem-Coz2AgU8.js";
8
- import "./command-format-DSdvQ_M5.js";
9
- import "./model-selection-CtVwtb6y.js";
10
- import "./agent-scope-C3gMMKCU.js";
11
- import "./manifest-registry-hy3Bn-r9.js";
4
+ import "./plugins-BNByVCIH.js";
5
+ import { K as logVerbose, Y as shouldLogVerbose } from "./registry-D0xTnUWt.js";
6
+ import "./config-Ckum15iC.js";
7
+ import "./subsystem-B2uDN3TV.js";
8
+ import "./command-format-GKSevep4.js";
9
+ import "./model-selection-Bbs4XGPG.js";
10
+ import "./agent-scope-CYYpcO9W.js";
11
+ import "./manifest-registry-BRx4JDK0.js";
12
12
  import "./redact-DPnDWsnT.js";
13
13
  import "./errors-Bv8oZiTO.js";
14
- import "./image-ops-Bnp6LXEx.js";
14
+ import "./image-ops-BlQR__MN.js";
15
15
  import "./ssrf-DKZ8eBrk.js";
16
- import "./local-roots-Ckk1QfzI.js";
17
- import "./message-channel-BdI5Ra9S.js";
18
- import "./bindings-BbwoUGPx.js";
19
- import "./tool-images-D7Lno-TE.js";
20
- import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-WzrwRCvL.js";
21
- import "./skills-C9DbB-Kp.js";
22
- import "./chrome-D9kN9org.js";
23
- import "./thinking-DCNUIAHY.js";
24
- import "./accounts-Dtszw3Zn.js";
25
- import "./accounts-BToL3HlP.js";
26
- import "./pi-embedded-helpers-BCNFLt_H.js";
16
+ import "./local-roots-BHLNSI8U.js";
17
+ import "./message-channel-COTAJzHd.js";
18
+ import "./bindings-C7hRtgYW.js";
19
+ import "./tool-images-HJ2sfZDV.js";
20
+ import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-Blso4_CP.js";
21
+ import "./skills-BfsaS1F9.js";
22
+ import "./chrome-CEqfiEs0.js";
23
+ import "./thinking-CXqf7WTe.js";
24
+ import "./accounts-s-AdhXVR.js";
25
+ import "./accounts-BtaOa4z_.js";
26
+ import "./pi-embedded-helpers-C7fh8gtj.js";
27
27
  import "./paths-A0xdf3yk.js";
28
- import "./store-Do3t33-c.js";
29
- import "./image-BmU8yYnz.js";
28
+ import "./store-BdrNabcU.js";
29
+ import "./image-CvB1H1Oa.js";
30
30
  import "./pi-model-discovery-LbcEa65a.js";
31
- import "./api-key-rotation-CBsLb_4V.js";
31
+ import "./api-key-rotation-DGJZ8SVa.js";
32
32
 
33
33
  //#region src/media-understanding/audio-preflight.ts
34
34
  /**
@@ -1,6 +1,6 @@
1
1
  import { p as normalizeAccountId, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
- import { s as normalizeChatChannelId } from "./registry--_pGht6S.js";
3
- import { c as resolveDefaultAgentId } from "./agent-scope-C3gMMKCU.js";
2
+ import { s as normalizeChatChannelId } from "./registry-D0xTnUWt.js";
3
+ import { c as resolveDefaultAgentId } from "./agent-scope-CYYpcO9W.js";
4
4
 
5
5
  //#region src/routing/bindings.ts
6
6
  function normalizeBindingChannelId(raw) {
@@ -1,4 +1,4 @@
1
- import { n as retryAsync, t as resolveRetryConfig } from "./retry-ilSJqnz9.js";
1
+ import { n as retryAsync, t as resolveRetryConfig } from "./retry-CwQ_iIj8.js";
2
2
  import { n as formatErrorMessage } from "./errors-Bv8oZiTO.js";
3
3
  import { RateLimitError } from "@buape/carbon";
4
4
 
@@ -1,28 +1,28 @@
1
1
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
- import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
3
- import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-CIDYJYie.js";
4
- import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
5
- import { n as loadConfig } from "./config-BzupW6LN.js";
6
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
7
- import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
8
- import { n as recordChannelActivity } from "./channel-activity-Ji7f0gqq.js";
9
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-Ckk1QfzI.js";
10
- import { a as loadWebMedia } from "./ir-Fb3qpcis.js";
11
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-jvk9axTQ.js";
12
- import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
13
- import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
14
- import { G as readChannelAllowFromStore, J as upsertChannelPairingRequest, K as readChannelAllowFromStoreSync, nt as toLocationContext, tt as formatLocationText } from "./send-FFUmNt0K.js";
15
- import { f as registerUnhandledRejectionHandler } from "./runner-WzrwRCvL.js";
16
- import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-BHuV5t70.js";
17
- import { F as resolveChannelGroupRequireMention, P as resolveChannelGroupPolicy } from "./thinking-DCNUIAHY.js";
18
- import { Xt as resolveGroupSessionKey, _t as updateLastRoute, gt as recordSessionMetaFromInbound, ht as readSessionUpdatedAt, mt as loadSessionStore } from "./pi-embedded-helpers-BCNFLt_H.js";
2
+ import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-Ddm33hQm.js";
3
+ import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-Gpdxnjey.js";
4
+ import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry-D0xTnUWt.js";
5
+ import { n as loadConfig } from "./config-Ckum15iC.js";
6
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
7
+ import { t as formatCliCommand } from "./command-format-GKSevep4.js";
8
+ import { n as recordChannelActivity } from "./channel-activity-DoC1xtDu.js";
9
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-BHLNSI8U.js";
10
+ import { a as loadWebMedia } from "./ir-BJ6BHE5b.js";
11
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-Dw2XBYXv.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BoYFajMu.js";
13
+ import { t as convertMarkdownTables } from "./tables-DNwXwNFa.js";
14
+ import { G as readChannelAllowFromStore, J as upsertChannelPairingRequest, K as readChannelAllowFromStoreSync, nt as toLocationContext, tt as formatLocationText } from "./send-CwRUaqoE.js";
15
+ import { f as registerUnhandledRejectionHandler } from "./runner-Blso4_CP.js";
16
+ import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-uxfMZW4p.js";
17
+ import { F as resolveChannelGroupRequireMention, P as resolveChannelGroupPolicy } from "./thinking-CXqf7WTe.js";
18
+ import { Xt as resolveGroupSessionKey, _t as updateLastRoute, gt as recordSessionMetaFromInbound, ht as readSessionUpdatedAt, mt as loadSessionStore } from "./pi-embedded-helpers-C7fh8gtj.js";
19
19
  import { s as resolveStorePath } from "./paths-A0xdf3yk.js";
20
- import { i as saveMediaBuffer } from "./store-Do3t33-c.js";
20
+ import { i as saveMediaBuffer } from "./store-BdrNabcU.js";
21
21
  import { t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
22
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3JH_D2N.js";
23
- import { r as setActiveWebListener } from "./active-listener-BRYwA2Ic.js";
24
- import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-ZcDVYNoy.js";
25
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-8vfTL_H6.js";
22
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-B3CCBumQ.js";
23
+ import { r as setActiveWebListener } from "./active-listener-BgwYQkdI.js";
24
+ import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-Bgwpl10i.js";
25
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-_9Y0E4Ol.js";
26
26
  import { randomUUID } from "node:crypto";
27
27
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
28
28
 
@@ -1,6 +1,6 @@
1
- import { b as CONFIG_DIR } from "./registry--_pGht6S.js";
2
- import { n as loadConfig } from "./config-BzupW6LN.js";
3
- import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
1
+ import { b as CONFIG_DIR } from "./registry-D0xTnUWt.js";
2
+ import { n as loadConfig } from "./config-Ckum15iC.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
4
4
  import { i as isErrno } from "./errors-Bv8oZiTO.js";
5
5
  import { s as resolvePinnedHostnameWithPolicy } from "./ssrf-DKZ8eBrk.js";
6
6
  import fs from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
3
- import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-BdI5Ra9S.js";
3
+ import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-COTAJzHd.js";
4
4
 
5
5
  //#region src/markdown/fences.ts
6
6
  function parseFenceSpans(buffer) {
@@ -1,4 +1,4 @@
1
- import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
2
2
  import path from "node:path";
3
3
 
4
4
  //#region src/utils/boolean.ts
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { r as normalizeChannelId } from "./plugins-BbAvhC25.js";
3
- import { H as isPlainObject, T as escapeRegExp, c as getActivePluginRegistry } from "./registry--_pGht6S.js";
4
- import { X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, u as resolveConfiguredModelRef } from "./model-selection-CtVwtb6y.js";
5
- import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-DCNUIAHY.js";
2
+ import { r as normalizeChannelId } from "./plugins-BNByVCIH.js";
3
+ import { H as isPlainObject, T as escapeRegExp, c as getActivePluginRegistry } from "./registry-D0xTnUWt.js";
4
+ import { X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, u as resolveConfiguredModelRef } from "./model-selection-Bbs4XGPG.js";
5
+ import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-CXqf7WTe.js";
6
6
 
7
7
  //#region src/config/commands.ts
8
8
  function resolveAutoDefault(providerId) {
@@ -1,14 +1,14 @@
1
1
  import { s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-C_0eELjb.js";
2
2
  import { n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
3
- import { D as isRecord, H as isPlainObject$1, M as resolveConfigDir, P as resolveUserPath, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry--_pGht6S.js";
4
- import { $ as resolveShellEnvFallbackTimeoutMs, J as DEFAULT_CONTEXT_TOKENS, Q as loadShellEnvFallback, et as shouldDeferShellEnvFallback, l as parseModelRef, tt as shouldEnableShellEnvFallback } from "./model-selection-CtVwtb6y.js";
5
- import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-C3gMMKCU.js";
6
- import { c as normalizePluginsConfig, d as isPathInside, l as resolveEnableState, m as normalizeEnvVarKey, p as isDangerousHostEnvVarName, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-hy3Bn-r9.js";
3
+ import { D as isRecord, H as isPlainObject$1, M as resolveConfigDir, P as resolveUserPath, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-D0xTnUWt.js";
4
+ import { $ as resolveShellEnvFallbackTimeoutMs, J as DEFAULT_CONTEXT_TOKENS, Q as loadShellEnvFallback, et as shouldDeferShellEnvFallback, l as parseModelRef, tt as shouldEnableShellEnvFallback } from "./model-selection-Bbs4XGPG.js";
5
+ import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-CYYpcO9W.js";
6
+ import { c as normalizePluginsConfig, d as isPathInside, l as resolveEnableState, m as normalizeEnvVarKey, p as isDangerousHostEnvVarName, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-BRx4JDK0.js";
7
7
  import { createRequire } from "node:module";
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
10
  import os from "node:os";
11
- import json5 from "json5";
11
+ import JSON5 from "json5";
12
12
  import crypto from "node:crypto";
13
13
  import { isDeepStrictEqual } from "node:util";
14
14
  import dotenv from "dotenv";
@@ -892,7 +892,7 @@ function safeRealpath(target) {
892
892
  }
893
893
  const defaultResolver = {
894
894
  readFile: (p) => fs.readFileSync(p, "utf-8"),
895
- parseJson: (raw) => json5.parse(raw)
895
+ parseJson: (raw) => JSON5.parse(raw)
896
896
  };
897
897
  /**
898
898
  * Resolves all $include directives in a parsed config object.
@@ -5592,7 +5592,7 @@ function resolveConfigPathForDeps(deps) {
5592
5592
  function normalizeDeps(overrides = {}) {
5593
5593
  return {
5594
5594
  fs: overrides.fs ?? fs,
5595
- json5: overrides.json5 ?? json5,
5595
+ json5: overrides.json5 ?? JSON5,
5596
5596
  env: overrides.env ?? process.env,
5597
5597
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
5598
5598
  configPath: overrides.configPath ?? "",
@@ -5603,11 +5603,11 @@ function maybeLoadDotEnvForConfig(env) {
5603
5603
  if (env !== process.env) return;
5604
5604
  loadDotEnv({ quiet: true });
5605
5605
  }
5606
- function parseConfigJson5(raw, json5$1 = json5) {
5606
+ function parseConfigJson5(raw, json5 = JSON5) {
5607
5607
  try {
5608
5608
  return {
5609
5609
  ok: true,
5610
- parsed: json5$1.parse(raw)
5610
+ parsed: json5.parse(raw)
5611
5611
  };
5612
5612
  } catch (err) {
5613
5613
  return {
@@ -1,16 +1,16 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
3
3
  import { s as resolveStateDir } from "./paths-DR2yt_mP.js";
4
- import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BbAvhC25.js";
5
- import { c as getActivePluginRegistry, v as createInternalHookEvent, y as triggerInternalHook } from "./registry--_pGht6S.js";
6
- import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
7
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-Ckk1QfzI.js";
8
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, p as parseFenceSpans } from "./chunk-jvk9axTQ.js";
9
- import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
10
- import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CWMflosr.js";
11
- import { d as getChannelDock } from "./thinking-DCNUIAHY.js";
12
- import { dt as appendAssistantMessageToSessionTranscript, ft as resolveMirroredTranscriptText, i as isMessagingToolDuplicate } from "./pi-embedded-helpers-BCNFLt_H.js";
13
- import { a as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BGE1fXlm.js";
4
+ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BNByVCIH.js";
5
+ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as triggerInternalHook } from "./registry-D0xTnUWt.js";
6
+ import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
7
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-BHLNSI8U.js";
8
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, p as parseFenceSpans } from "./chunk-Dw2XBYXv.js";
9
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BoYFajMu.js";
10
+ import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-bC3UVmVH.js";
11
+ import { d as getChannelDock } from "./thinking-CXqf7WTe.js";
12
+ import { dt as appendAssistantMessageToSessionTranscript, ft as resolveMirroredTranscriptText, i as isMessagingToolDuplicate } from "./pi-embedded-helpers-C7fh8gtj.js";
13
+ import { a as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-CI9BF7Rs.js";
14
14
  import fs from "node:fs";
15
15
  import path from "node:path";
16
16
  import crypto from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
3
3
  import { i as pruneDiagnosticSessionStates, r as getDiagnosticSessionState, t as diagnosticSessionStates } from "./diagnostic-session-state-Wd5tNeQG.js";
4
4
 
5
5
  //#region src/infra/diagnostic-events.ts
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { D as isRecord, I as shortenHomeInString } from "./registry--_pGht6S.js";
3
- import { n as loadConfig } from "./config-BzupW6LN.js";
4
- import { B as resolveSymiAgentDir, K as normalizeSecretInput, S as getApiKeyForModel, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-CtVwtb6y.js";
2
+ import { D as isRecord, I as shortenHomeInString } from "./registry-D0xTnUWt.js";
3
+ import { n as loadConfig } from "./config-Ckum15iC.js";
4
+ import { B as resolveSymiAgentDir, K as normalizeSecretInput, S as getApiKeyForModel, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-Bbs4XGPG.js";
5
5
  import { n as redactToolDetail } from "./redact-DPnDWsnT.js";
6
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-BCNFLt_H.js";
6
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-C7fh8gtj.js";
7
7
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
8
8
  import path from "node:path";
9
9
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { E as runExec } from "./agent-scope-C3gMMKCU.js";
1
+ import { E as runExec } from "./agent-scope-CYYpcO9W.js";
2
2
  import { constants } from "node:fs";
3
3
  import path from "node:path";
4
4
  import os from "node:os";