wednesdayai 0.6.1-dev.27 → 0.6.1-dev.28

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 (185) hide show
  1. package/dist/{agent-CQhgyAis.js → agent-BDuI5Zvc.js} +26 -26
  2. package/dist/{agent-Y_2aRBZH.js → agent-BW-Yan08.js} +11 -11
  3. package/dist/{agent-turn-runner-faZvyYiv.js → agent-turn-runner-BfXiXNe2.js} +6 -6
  4. package/dist/{agent-turn-runner-ClBJoKQQ.js → agent-turn-runner-CHm-I95T.js} +5 -5
  5. package/dist/build-info.json +3 -3
  6. package/dist/bundled/boot-md/handler.js +32 -32
  7. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  8. package/dist/bundled/command-logger/handler.js +2 -2
  9. package/dist/bundled/session-journal/handler.js +31 -31
  10. package/dist/bundled/session-memory/handler.js +31 -31
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{chrome-B3nEcesV.js → chrome-CKy31bWh.js} +32 -32
  13. package/dist/{chrome-DLbFTDQE.js → chrome-Ct9vb6SC.js} +12 -12
  14. package/dist/{command-queue-BSbitNdP.js → command-queue-AIWqKnVD.js} +1 -1
  15. package/dist/{command-queue-BijpV9rd.js → command-queue-CNStMA4Y.js} +1 -1
  16. package/dist/control-ui-v2/assets/{AgentsView-DVvw6PTU.js → AgentsView-3Qsr3xnf.js} +1 -1
  17. package/dist/control-ui-v2/assets/{AutomationsView-CxjmPRdI.js → AutomationsView-DkBzPKKQ.js} +1 -1
  18. package/dist/control-ui-v2/assets/Badge-CB5TWfdz.js +1 -0
  19. package/dist/control-ui-v2/assets/{Button-DL76WqX4.js → Button-CGdLofSY.js} +1 -1
  20. package/dist/control-ui-v2/assets/{ChannelsView-BDcVzQIM.js → ChannelsView-BRb8eYyh.js} +1 -1
  21. package/dist/control-ui-v2/assets/{ConfigForm-CbvOdyOA.js → ConfigForm-D8_bqW8x.js} +1 -1
  22. package/dist/control-ui-v2/assets/{ConfirmDialog-DGHQXUr5.js → ConfirmDialog-B7aotBjN.js} +1 -1
  23. package/dist/control-ui-v2/assets/{DataTable-lEkd1R85.js → DataTable-CSi930kO.js} +1 -1
  24. package/dist/control-ui-v2/assets/{DebugView-CHHmLv3x.js → DebugView-8cZqh6FQ.js} +1 -1
  25. package/dist/control-ui-v2/assets/{Dialog-rIrrCPSu.js → Dialog-CQE8Pvh6.js} +1 -1
  26. package/dist/control-ui-v2/assets/{DreamsView-uQSpm1S4.js → DreamsView-B0KzP2OM.js} +1 -1
  27. package/dist/control-ui-v2/assets/{EntityLink-AEBgCNQX.js → EntityLink-BO2oG3y8.js} +1 -1
  28. package/dist/control-ui-v2/assets/{FilterPills-HxAXXDO8.js → FilterPills-9pNaAyrL.js} +1 -1
  29. package/dist/control-ui-v2/assets/{InstancesView-Svk7C7AX.js → InstancesView-BbunCxYg.js} +1 -1
  30. package/dist/control-ui-v2/assets/{LearningView-CWqWycCM.js → LearningView-CEqD48Ll.js} +1 -1
  31. package/dist/control-ui-v2/assets/{LogsView-D7kaR6es.js → LogsView-fcI0vxkz.js} +1 -1
  32. package/dist/control-ui-v2/assets/{NodesView-CqKA1XAX.js → NodesView-BONHE7EP.js} +1 -1
  33. package/dist/control-ui-v2/assets/{OverviewView-Dz3YnxWP.js → OverviewView-BpynJnjy.js} +1 -1
  34. package/dist/control-ui-v2/assets/{Panel-CyfpswdJ.js → Panel-9wOynsWc.js} +1 -1
  35. package/dist/control-ui-v2/assets/{PluginMount-C1HeSpS9.js → PluginMount-6N20-nhI.js} +1 -1
  36. package/dist/control-ui-v2/assets/{PluginPageView-Dap5OwAt.js → PluginPageView-DZ3bh805.js} +1 -1
  37. package/dist/control-ui-v2/assets/{PluginPanels-DdDZQ_Dn.js → PluginPanels-DulRlgcm.js} +1 -1
  38. package/dist/control-ui-v2/assets/{RunsView-CQXkKsIZ.js → RunsView-dcBTwtFX.js} +1 -1
  39. package/dist/control-ui-v2/assets/{SessionsView-Bs9UqOQr.js → SessionsView-CZuTvckb.js} +1 -1
  40. package/dist/control-ui-v2/assets/{SettingsView-BhorzAw5.js → SettingsView-BTcubWvr.js} +1 -1
  41. package/dist/control-ui-v2/assets/{SkillsView-ClzUjPU-.js → SkillsView-Bj7lvW23.js} +1 -1
  42. package/dist/control-ui-v2/assets/{Stat-BruDi6qc.js → Stat-BZwg1PGE.js} +1 -1
  43. package/dist/control-ui-v2/assets/{StatusDot-Cij-6nH8.js → StatusDot-DHhJ1VpB.js} +1 -1
  44. package/dist/control-ui-v2/assets/{StorageView-BYgvfNcg.js → StorageView-B5cF1lld.js} +1 -1
  45. package/dist/control-ui-v2/assets/{UpdatedAgo-DWSnE4WG.js → UpdatedAgo-Dw3kxb2x.js} +1 -1
  46. package/dist/control-ui-v2/assets/{UsageView-C_ezU9jy.js → UsageView-DBZ1WkEI.js} +1 -1
  47. package/dist/control-ui-v2/assets/{config-store-27hOx1yp.js → config-store-XvvVJ8Fq.js} +1 -1
  48. package/dist/control-ui-v2/assets/{format-dlOOV12I.js → format-CGs6a1G6.js} +1 -1
  49. package/dist/control-ui-v2/assets/gateway-features-BZH74_Oc.js +1 -0
  50. package/dist/control-ui-v2/assets/{index-OijNknZs.js → index-BvXiY83i.js} +1 -1
  51. package/dist/control-ui-v2/assets/{links-C1sAzVEH.js → links-DlVrQOFC.js} +2 -2
  52. package/dist/control-ui-v2/assets/{run-rows-BYCIH1Sn.js → run-rows-Au2UUkD7.js} +1 -1
  53. package/dist/control-ui-v2/assets/{runs-store-DLIlHRM6.js → runs-store-DXgNPFWM.js} +1 -1
  54. package/dist/control-ui-v2/assets/{use-gateway-query-CF94JYnM.js → use-gateway-query-D25QZANO.js} +1 -1
  55. package/dist/control-ui-v2/index.html +7 -7
  56. package/dist/{deliver-CY4Fs4RX.js → deliver-DsuMPE0S.js} +28 -28
  57. package/dist/{deliver-xfGDp6XD.js → deliver-DxVojbH7.js} +6 -6
  58. package/dist/{diagnostic-S8OX1Eq2.js → diagnostic-C4pLNG6a.js} +1 -1
  59. package/dist/{diagnostic-BZYYYnMx.js → diagnostic-DJ11ZJIJ.js} +3 -3
  60. package/dist/{errors-BRYMqzPb.js → errors-0-at0aYV.js} +1 -1
  61. package/dist/extensionAPI.js +24 -24
  62. package/dist/{fences-Dtk43Q2a.js → fences-Z8d1dj8p.js} +16 -16
  63. package/dist/{fences-DbKcVN_n.js → fences-j5vzXLXf.js} +1 -1
  64. package/dist/{fetch-guard-UCuiKQ5E.js → fetch-guard-BQ-NMG7L.js} +2 -2
  65. package/dist/{fetch-guard-DuBGo4VE.js → fetch-guard-BaBd9ZVm.js} +2 -2
  66. package/dist/{frontmatter-DHBTRDiB.js → frontmatter-CzhUc9Ri.js} +5 -5
  67. package/dist/{fs-safe-Bk4Thq7a.js → fs-safe-Bd1xxVwv.js} +1 -1
  68. package/dist/{fs-safe-CyG0wflg.js → fs-safe-DMWtsz4J.js} +26 -26
  69. package/dist/{legacy-names-6uH6aLhq.js → legacy-names-chsmo2vs.js} +26 -26
  70. package/dist/llm-slug-generator.js +31 -31
  71. package/dist/{manager-BvLLls5L.js → manager-B4xc1xN6.js} +16 -16
  72. package/dist/{manager-Cf3W8LKj.js → manager-CD-sBxdS.js} +3 -3
  73. package/dist/{model-selection-Ca4WCV4n.js → model-selection-CYS--Nqz.js} +1 -1
  74. package/dist/{model-selection-CbMZx9fR.js → model-selection-Ds5bEVQ2.js} +82 -82
  75. package/dist/{nudge-DelcKR7z.js → nudge-CKFTN2YI.js} +9 -9
  76. package/dist/{nudge-Dd9wU1K5.js → nudge-DZuNGDE_.js} +32 -32
  77. package/dist/{outbound-attachment-CKATrxgO.js → outbound-attachment-BsEApkFu.js} +9 -9
  78. package/dist/{outbound-attachment-Btl5f-Lu.js → outbound-attachment-DHLTkCuI.js} +4 -4
  79. package/dist/{pi-embedded-ApthdT0k.js → pi-embedded-C8SqFziv.js} +40 -40
  80. package/dist/{pi-embedded-D-4wht-f.js → pi-embedded-yXKiYEGf.js} +229 -229
  81. package/dist/{pi-model-discovery-Dgbp4zjx.js → pi-model-discovery-CtfGh_up.js} +7 -7
  82. package/dist/{pi-model-discovery-D-D_mngz.js → pi-model-discovery-De5Z6lro.js} +1 -1
  83. package/dist/{proxy-env-v_oj7Urd.js → proxy-env-D4WYaw6X.js} +1 -1
  84. package/dist/{proxy-env-BRG1LWK1.js → proxy-env-DPCNy_X3.js} +1 -1
  85. package/dist/{pw-ai-BH-MmrGa.js → pw-ai-BmuDO1HM.js} +5 -5
  86. package/dist/{pw-ai-DK4N7_nV.js → pw-ai-ohfJZ9jX.js} +11 -11
  87. package/dist/{qmd-manager-Cdz2xlNp.js → qmd-manager-2dro3Ccn.js} +9 -9
  88. package/dist/{qmd-manager-NT_CKYQG.js → qmd-manager-CgZ9ng9u.js} +4 -4
  89. package/dist/{qmd-scope-CyWbQgiS.js → qmd-scope-DMUA3Vq9.js} +1 -1
  90. package/dist/{qmd-scope-hzI66flw.js → qmd-scope-RFd-g5Qi.js} +1 -1
  91. package/dist/{query-expansion-CPkdZdty.js → query-expansion-DQ8zm-TE.js} +1 -1
  92. package/dist/{query-expansion-feTsk3WF.js → query-expansion-GZKwviqQ.js} +13 -13
  93. package/dist/{recorder-DCGoPaKG.js → recorder-DA5NY6nl.js} +1 -1
  94. package/dist/{recorder-C3f7IlHZ.js → recorder-dKE74HOC.js} +2 -2
  95. package/dist/{redact-C4XKILzo.js → redact-LOuk7TRy.js} +1 -1
  96. package/dist/{reply-directives-BjV2MFIq.js → reply-directives-8FtYI79u.js} +9 -9
  97. package/dist/{reply-directives-ToqsETSh.js → reply-directives-CE9WoRyW.js} +49 -49
  98. package/dist/{runs-CPjMwHXQ.js → runs-BIabbRe5.js} +8 -8
  99. package/dist/{runs-D7qs08K3.js → runs-Dw8BeXyu.js} +5 -5
  100. package/dist/{send-BnVk7V-5.js → send-BQzswQlt.js} +5 -5
  101. package/dist/{send-DDBl5H1k.js → send-BTp_lz-m.js} +4 -4
  102. package/dist/{send-B9huC0Lk.js → send-CWcFiq7U.js} +3 -3
  103. package/dist/{send-Cj5zKV3M.js → send-DW_8PsC0.js} +4 -4
  104. package/dist/{sessions-zel35iDK.js → sessions-Bz8mUwgo.js} +5 -5
  105. package/dist/{sessions-CXuFR_IY.js → sessions-DKv9bCbi.js} +1 -1
  106. package/dist/{subsystem-DoQFckDJ.js → subsystem-cFv2jJm-.js} +71 -71
  107. package/dist/{tool-loop-detection-CtOkwPJY.js → tool-loop-detection-9fAxiikd.js} +2 -2
  108. package/dist/{user-run-recording-BVpLQDqe.js → user-run-recording-C1LRU5Lb.js} +2 -2
  109. package/dist/{user-run-recording-C10wwXyW.js → user-run-recording-CWRiZJsh.js} +1 -1
  110. package/dist/web-client/assets/{hast-util-from-dom-CvePVP6E.js → hast-util-from-dom-BoP9fB2c.js} +1 -1
  111. package/dist/web-client/assets/{hast-util-to-mdast-CwugKdbc.js → hast-util-to-mdast-Bo07nYTv.js} +1 -1
  112. package/dist/web-client/assets/{index-CFHLAWrp.js → index-CwqOe0fG.js} +2 -2
  113. package/dist/web-client/index.html +1 -1
  114. package/dist/{ws-2U5gNvRt.js → ws-Do6yaRWR.js} +1 -1
  115. package/dist/{ws-DrXm3NWZ.js → ws-Dt2EocLN.js} +1 -1
  116. package/extensions/a2a/package.json +1 -1
  117. package/extensions/acpx/package.json +1 -1
  118. package/extensions/anthropic/package.json +1 -1
  119. package/extensions/bifrost/package.json +1 -1
  120. package/extensions/bluebubbles/package.json +1 -1
  121. package/extensions/copilot-proxy/package.json +1 -1
  122. package/extensions/deepgram/package.json +1 -1
  123. package/extensions/deepinfra/package.json +1 -1
  124. package/extensions/diagnostics-otel/package.json +1 -1
  125. package/extensions/diffs/package.json +1 -1
  126. package/extensions/discord/package.json +1 -1
  127. package/extensions/dream-cycle/package.json +1 -1
  128. package/extensions/elevenlabs/package.json +1 -1
  129. package/extensions/feishu/package.json +1 -1
  130. package/extensions/gemini-search/package.json +1 -1
  131. package/extensions/google/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/grok-search/package.json +1 -1
  135. package/extensions/groq/package.json +1 -1
  136. package/extensions/identity-oidc/package.json +1 -1
  137. package/extensions/imessage/package.json +1 -1
  138. package/extensions/irc/package.json +1 -1
  139. package/extensions/kimi-search/package.json +1 -1
  140. package/extensions/kokoro/package.json +1 -1
  141. package/extensions/learning-core/package.json +1 -1
  142. package/extensions/line/package.json +1 -1
  143. package/extensions/llm-task/package.json +1 -1
  144. package/extensions/lobster/package.json +1 -1
  145. package/extensions/matrix/CHANGELOG.md +1 -1
  146. package/extensions/matrix/package.json +1 -1
  147. package/extensions/mattermost/package.json +1 -1
  148. package/extensions/memory-core/package.json +1 -1
  149. package/extensions/memory-lancedb/package.json +1 -1
  150. package/extensions/minimax/package.json +1 -1
  151. package/extensions/minimax-portal-auth/package.json +1 -1
  152. package/extensions/mistral/package.json +1 -1
  153. package/extensions/moonshot/package.json +1 -1
  154. package/extensions/msteams/CHANGELOG.md +1 -1
  155. package/extensions/msteams/package.json +1 -1
  156. package/extensions/nextcloud-talk/package.json +1 -1
  157. package/extensions/nostr/CHANGELOG.md +1 -1
  158. package/extensions/nostr/package.json +1 -1
  159. package/extensions/open-prose/package.json +1 -1
  160. package/extensions/openai/package.json +1 -1
  161. package/extensions/openai-realtime/package.json +1 -1
  162. package/extensions/openrouter/package.json +1 -1
  163. package/extensions/perplexity-search/package.json +1 -1
  164. package/extensions/searxng-search/package.json +1 -1
  165. package/extensions/signal/package.json +1 -1
  166. package/extensions/slack/package.json +1 -1
  167. package/extensions/synology-chat/package.json +1 -1
  168. package/extensions/telegram/package.json +1 -1
  169. package/extensions/tlon/package.json +1 -1
  170. package/extensions/twitch/CHANGELOG.md +1 -1
  171. package/extensions/twitch/package.json +1 -1
  172. package/extensions/ui-surfaces/package.json +1 -1
  173. package/extensions/voice-call/CHANGELOG.md +1 -1
  174. package/extensions/voice-call/package.json +1 -1
  175. package/extensions/whatsapp/package.json +1 -1
  176. package/extensions/zai/package.json +1 -1
  177. package/extensions/zalo/CHANGELOG.md +1 -1
  178. package/extensions/zalo/package.json +1 -1
  179. package/extensions/zalouser/CHANGELOG.md +1 -1
  180. package/extensions/zalouser/package.json +1 -1
  181. package/package.json +1 -1
  182. package/dist/control-ui-v2/assets/Badge-4n2tRQ02.js +0 -1
  183. package/dist/control-ui-v2/assets/gateway-features-BIj6-KTX.js +0 -1
  184. package/dist/github-copilot-token-Bm6yG6tw.js +0 -106
  185. package/dist/paths-BIDPYPVC.js +0 -233
@@ -1,15 +1,15 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { c as resolveOAuthPath, f as resolveRequiredHomeDir, i as resolveDefaultConfigCandidates, l as resolveStateDir, r as resolveConfigPath, s as resolveOAuthDir, t as DEFAULT_GATEWAY_PORT, u as expandHomePrefix } from "./paths-BIDPYPVC.js";
3
- import { A as resolveConfigIncludes, D as ConfigIncludeError, E as normalizeConfigPaths, F as openBoundaryFileSync, G as applyConfigEnvVars, H as isPathInside$2, J as MissingEnvVarError, M as isPathInside$1, O as INCLUDE_KEY, X as resolveConfigEnvVars, Y as containsEnvVarReference, b as getChildLogger, dt as sleep, f as logVerbose, it as normalizeE164, j as isBlockedObjectKey, k as readConfigIncludeFileWithGuards, n as stripAnsi, ot as resolveConfigDir, q as sanitizeHostExecEnv, rt as isRecord$3, st as resolveUserPath, t as createSubsystemLogger, tt as escapeRegExp, w as createFileLogWriter } from "./subsystem-DoQFckDJ.js";
2
+ import { c as resolveOAuthPath, f as resolveRequiredHomeDir, i as resolveDefaultConfigCandidates, l as resolveStateDir, r as resolveConfigPath, s as resolveOAuthDir, t as DEFAULT_GATEWAY_PORT, u as expandHomePrefix } from "./paths-B_gs59ga.js";
3
+ import { A as resolveConfigIncludes, D as ConfigIncludeError, E as normalizeConfigPaths, F as openBoundaryFileSync, G as applyConfigEnvVars, H as isPathInside$2, J as MissingEnvVarError, M as isPathInside$1, O as INCLUDE_KEY, X as resolveConfigEnvVars, Y as containsEnvVarReference, b as getChildLogger, dt as sleep, f as logVerbose, it as normalizeE164, j as isBlockedObjectKey, k as readConfigIncludeFileWithGuards, n as stripAnsi, ot as resolveConfigDir, q as sanitizeHostExecEnv, rt as isRecord$3, st as resolveUserPath, t as createSubsystemLogger, tt as escapeRegExp, w as createFileLogWriter } from "./subsystem-cFv2jJm-.js";
4
4
  import { n as resolveProcessScopedMap, t as isPlainObject$2 } from "./plain-object-Doc_YkH1.js";
5
- import { $ as normalizeAccountId$1, A as DEFAULT_AGENT_ID, G as resolveAgentIdFromSessionKey, H as normalizeAgentId, N as RAW_PEER_KEY_PREFIX, Q as DEFAULT_ACCOUNT_ID, a as registerInternalHook, b as resolveDefaultAgentWorkspaceDir, dt as stripAgentSessionKeyPrefix, et as normalizeOptionalAccountId, lt as parseAgentSessionKey, s as parseBooleanValue, t as readManifestNamespace, w as runExec, z as expandIdentityLinksToMatchKeys } from "./legacy-names-6uH6aLhq.js";
6
- import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-Bm6yG6tw.js";
5
+ import { $ as normalizeAccountId$1, A as DEFAULT_AGENT_ID, G as resolveAgentIdFromSessionKey, H as normalizeAgentId, N as RAW_PEER_KEY_PREFIX, Q as DEFAULT_ACCOUNT_ID, a as registerInternalHook, b as resolveDefaultAgentWorkspaceDir, dt as stripAgentSessionKeyPrefix, et as normalizeOptionalAccountId, lt as parseAgentSessionKey, s as parseBooleanValue, t as readManifestNamespace, w as runExec, z as expandIdentityLinksToMatchKeys } from "./legacy-names-chsmo2vs.js";
6
+ import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-C-29TbW-.js";
7
7
  import { createRequire } from "node:module";
8
8
  import path from "node:path";
9
- import fs from "node:fs";
9
+ import syncFs from "node:fs";
10
10
  import os, { userInfo } from "node:os";
11
- import JSON5 from "json5";
12
- import fs$1 from "node:fs/promises";
11
+ import json5 from "json5";
12
+ import fs from "node:fs/promises";
13
13
  import { isDeepStrictEqual } from "node:util";
14
14
  import { execFileSync, spawn } from "node:child_process";
15
15
  import { fileURLToPath } from "node:url";
@@ -464,7 +464,7 @@ function isValidPid(pid) {
464
464
  function isZombieProcess(pid) {
465
465
  if (process.platform !== "linux") return false;
466
466
  try {
467
- return fs.readFileSync(`/proc/${pid}/status`, "utf8").match(/^State:\s+(\S)/m)?.[1] === "Z";
467
+ return syncFs.readFileSync(`/proc/${pid}/status`, "utf8").match(/^State:\s+(\S)/m)?.[1] === "Z";
468
468
  } catch {
469
469
  return false;
470
470
  }
@@ -491,7 +491,7 @@ function getProcessStartTime(pid) {
491
491
  if (process.platform !== "linux") return null;
492
492
  if (!isValidPid(pid)) return null;
493
493
  try {
494
- const stat = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
494
+ const stat = syncFs.readFileSync(`/proc/${pid}/stat`, "utf8");
495
495
  const commEndIndex = stat.lastIndexOf(")");
496
496
  if (commEndIndex < 0) return null;
497
497
  const fields = stat.slice(commEndIndex + 1).trimStart().split(/\s+/);
@@ -559,7 +559,7 @@ function readLinuxProcessElapsedSeconds(pid) {
559
559
  const starttimeTicks = getProcessStartTime(pid);
560
560
  if (starttimeTicks === null) {
561
561
  try {
562
- fs.readFileSync(`/proc/${pid}/stat`, "utf8");
562
+ syncFs.readFileSync(`/proc/${pid}/stat`, "utf8");
563
563
  } catch (err) {
564
564
  return err.code === "ENOENT" ? null : "unknown";
565
565
  }
@@ -567,7 +567,7 @@ function readLinuxProcessElapsedSeconds(pid) {
567
567
  }
568
568
  let uptimeSeconds;
569
569
  try {
570
- const raw = fs.readFileSync("/proc/uptime", "utf8");
570
+ const raw = syncFs.readFileSync("/proc/uptime", "utf8");
571
571
  uptimeSeconds = Number.parseFloat(raw.split(" ")[0] ?? "");
572
572
  } catch {
573
573
  return "unknown";
@@ -624,7 +624,7 @@ function isCreatedAtStale(createdAt, staleMs) {
624
624
  }
625
625
  async function readLockPayload$1(lockPath) {
626
626
  try {
627
- const raw = await fs$1.readFile(lockPath, "utf8");
627
+ const raw = await fs.readFile(lockPath, "utf8");
628
628
  const parsed = JSON.parse(raw);
629
629
  if (typeof parsed.pid !== "number" || typeof parsed.createdAt !== "string") return null;
630
630
  const payload = {
@@ -641,7 +641,7 @@ async function readLockPayload$1(lockPath) {
641
641
  }
642
642
  async function chmodIfSupported(filePath, mode) {
643
643
  try {
644
- await fs$1.chmod(filePath, mode);
644
+ await fs.chmod(filePath, mode);
645
645
  } catch (err) {
646
646
  if (process.platform === "win32") return;
647
647
  throw err;
@@ -650,15 +650,15 @@ async function chmodIfSupported(filePath, mode) {
650
650
  async function resolveNormalizedFilePath(filePath, options) {
651
651
  const resolved = path.resolve(filePath);
652
652
  const dir = path.dirname(resolved);
653
- if (options.directoryMode === void 0) await fs$1.mkdir(dir, { recursive: true });
653
+ if (options.directoryMode === void 0) await fs.mkdir(dir, { recursive: true });
654
654
  else {
655
- await fs$1.mkdir(dir, {
655
+ await fs.mkdir(dir, {
656
656
  recursive: true,
657
657
  mode: options.directoryMode
658
658
  });
659
659
  await chmodIfSupported(dir, options.directoryMode);
660
660
  }
661
- const realDir = await fs$1.realpath(dir);
661
+ const realDir = await fs.realpath(dir);
662
662
  return path.join(realDir, path.basename(resolved));
663
663
  }
664
664
  async function isStaleLock(lockPath, staleMs) {
@@ -673,7 +673,7 @@ async function isStaleLock(lockPath, staleMs) {
673
673
  return false;
674
674
  }
675
675
  try {
676
- const stat = await fs$1.stat(lockPath);
676
+ const stat = await fs.stat(lockPath);
677
677
  return Date.now() - stat.mtimeMs > staleMs;
678
678
  } catch {
679
679
  return true;
@@ -697,7 +697,7 @@ async function releaseHeldLock$1(normalizedFile) {
697
697
  throw emitLockReleaseWarning("close", current.lockPath, err);
698
698
  }
699
699
  try {
700
- await fs$1.rm(current.lockPath, { force: true });
700
+ await fs.rm(current.lockPath, { force: true });
701
701
  } catch (err) {
702
702
  current.count = 1;
703
703
  throw emitLockReleaseWarning("remove", current.lockPath, err);
@@ -720,7 +720,7 @@ async function acquireFileLock(filePath, options) {
720
720
  let attempt = 0;
721
721
  let staleReclaims = 0;
722
722
  while (attempt < attempts) try {
723
- const handle = await fs$1.open(lockPath, "wx");
723
+ const handle = await fs.open(lockPath, "wx");
724
724
  try {
725
725
  await handle.writeFile(JSON.stringify({
726
726
  pid: process.pid,
@@ -729,7 +729,7 @@ async function acquireFileLock(filePath, options) {
729
729
  }, null, 2), "utf8");
730
730
  } catch (writeErr) {
731
731
  await handle.close().catch(() => void 0);
732
- await fs$1.rm(lockPath, { force: true }).catch(() => void 0);
732
+ await fs.rm(lockPath, { force: true }).catch(() => void 0);
733
733
  throw writeErr;
734
734
  }
735
735
  HELD_LOCKS$1.set(normalizedFile, {
@@ -745,7 +745,7 @@ async function acquireFileLock(filePath, options) {
745
745
  } catch (err) {
746
746
  if (err.code !== "EEXIST") throw err;
747
747
  if (await isStaleLock(lockPath, options.stale)) {
748
- await fs$1.rm(lockPath, { force: true }).catch(() => void 0);
748
+ await fs.rm(lockPath, { force: true }).catch(() => void 0);
749
749
  if (staleReclaims < attempts) {
750
750
  staleReclaims += 1;
751
751
  continue;
@@ -911,7 +911,7 @@ function resolveAuthStorePathForDisplay(agentDir) {
911
911
  return pathname.startsWith("~") ? pathname : resolveUserPath(pathname);
912
912
  }
913
913
  function ensureAuthStoreFile(pathname) {
914
- if (fs.existsSync(pathname)) return;
914
+ if (syncFs.existsSync(pathname)) return;
915
915
  saveJsonFile(pathname, {
916
916
  version: AUTH_STORE_VERSION,
917
917
  profiles: {}
@@ -1174,7 +1174,7 @@ function loadAuthProfileStoreForAgent(agentDir, options) {
1174
1174
  if (shouldWrite && legacy !== null) {
1175
1175
  const legacyPath = resolveLegacyAuthStorePath(agentDir);
1176
1176
  try {
1177
- fs.unlinkSync(legacyPath);
1177
+ syncFs.unlinkSync(legacyPath);
1178
1178
  } catch (err) {
1179
1179
  if (err?.code !== "ENOENT") log$14.warn("failed to delete legacy auth.json after migration", {
1180
1180
  err,
@@ -1644,7 +1644,7 @@ function resolveTimeoutMs(timeoutMs) {
1644
1644
  function readEtcShells() {
1645
1645
  if (shellEnvState.cachedEtcShells !== void 0) return shellEnvState.cachedEtcShells;
1646
1646
  try {
1647
- const entries = fs.readFileSync("/etc/shells", "utf8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#") && path.isAbsolute(line));
1647
+ const entries = syncFs.readFileSync("/etc/shells", "utf8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#") && path.isAbsolute(line));
1648
1648
  shellEnvState.cachedEtcShells = new Set(entries);
1649
1649
  } catch {
1650
1650
  shellEnvState.cachedEtcShells = null;
@@ -2192,7 +2192,7 @@ function formatWindowsAclSummary(summary) {
2192
2192
  //#region src/security/audit-fs.ts
2193
2193
  async function safeStat(targetPath) {
2194
2194
  try {
2195
- const lst = await fs$1.lstat(targetPath);
2195
+ const lst = await fs.lstat(targetPath);
2196
2196
  return {
2197
2197
  ok: true,
2198
2198
  isSymlink: lst.isSymbolicLink(),
@@ -2231,7 +2231,7 @@ async function inspectPathPermissions(targetPath, opts) {
2231
2231
  let effectiveMode = st.mode;
2232
2232
  let effectiveIsDir = st.isDir;
2233
2233
  if (st.isSymlink) try {
2234
- const target = await fs$1.stat(targetPath);
2234
+ const target = await fs.stat(targetPath);
2235
2235
  effectiveMode = typeof target.mode === "number" ? target.mode : st.mode;
2236
2236
  effectiveIsDir = target.isDirectory();
2237
2237
  } catch {}
@@ -2513,7 +2513,7 @@ async function assertSecurePath(params) {
2513
2513
  if (stat.isSymlink) {
2514
2514
  if (!params.allowSymlinkPath) throw new Error(`${params.label} must not be a symlink: ${effectivePath}`);
2515
2515
  try {
2516
- effectivePath = await fs$1.realpath(effectivePath);
2516
+ effectivePath = await fs.realpath(effectivePath);
2517
2517
  } catch {
2518
2518
  throw new Error(`${params.label} symlink target is not readable: ${params.targetPath}`);
2519
2519
  }
@@ -2561,7 +2561,7 @@ async function readFileProviderPayload(params) {
2561
2561
  }, timeoutMs);
2562
2562
  });
2563
2563
  try {
2564
- const payload = await Promise.race([fs$1.readFile(secureFilePath, { signal: abortController.signal }), timeoutPromise]);
2564
+ const payload = await Promise.race([fs.readFile(secureFilePath, { signal: abortController.signal }), timeoutPromise]);
2565
2565
  if (payload.byteLength > maxBytes) throw new Error(`File provider "${params.providerName}" exceeded maxBytes (${maxBytes}).`);
2566
2566
  const text = payload.toString("utf8");
2567
2567
  if (params.providerConfig.mode === "singleValue") return text.replace(/\r?\n$/, "");
@@ -3187,7 +3187,7 @@ function resolveActiveTalkProviderConfig(talk) {
3187
3187
  };
3188
3188
  }
3189
3189
  function readTalkApiKeyFromProfile(deps = {}) {
3190
- const fsImpl = deps.fs ?? fs;
3190
+ const fsImpl = deps.fs ?? syncFs;
3191
3191
  const osImpl = deps.os ?? os;
3192
3192
  const pathImpl = deps.path ?? path;
3193
3193
  const home = osImpl.homedir();
@@ -3851,7 +3851,7 @@ function loadDotEnv(opts) {
3851
3851
  const quiet = opts?.quiet ?? true;
3852
3852
  dotenv.config({ quiet });
3853
3853
  const globalEnvPath = path.join(resolveConfigDir(process.env), ".env");
3854
- if (!fs.existsSync(globalEnvPath)) return;
3854
+ if (!syncFs.existsSync(globalEnvPath)) return;
3855
3855
  dotenv.config({
3856
3856
  quiet,
3857
3857
  path: globalEnvPath,
@@ -3867,8 +3867,8 @@ function resolveConfigPathForDeps(deps) {
3867
3867
  }
3868
3868
  function normalizeDeps(overrides = {}) {
3869
3869
  return {
3870
- fs: overrides.fs ?? fs,
3871
- json5: overrides.json5 ?? JSON5,
3870
+ fs: overrides.fs ?? syncFs,
3871
+ json5: overrides.json5 ?? json5,
3872
3872
  env: overrides.env ?? process.env,
3873
3873
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
3874
3874
  configPath: overrides.configPath ?? "",
@@ -5817,7 +5817,7 @@ function normalizeMatchTarget(value) {
5817
5817
  }
5818
5818
  function tryRealpath(value) {
5819
5819
  try {
5820
- return fs.realpathSync(value);
5820
+ return syncFs.realpathSync(value);
5821
5821
  } catch {
5822
5822
  return null;
5823
5823
  }
@@ -6370,8 +6370,8 @@ function resolveWindowsExecutableExtensions(executable, env) {
6370
6370
  }
6371
6371
  function isExecutableFile(filePath) {
6372
6372
  try {
6373
- if (!fs.statSync(filePath).isFile()) return false;
6374
- if (process.platform !== "win32") fs.accessSync(filePath, fs.constants.X_OK);
6373
+ if (!syncFs.statSync(filePath).isFile()) return false;
6374
+ if (process.platform !== "win32") syncFs.accessSync(filePath, syncFs.constants.X_OK);
6375
6375
  return true;
6376
6376
  } catch {
6377
6377
  return false;
@@ -6410,7 +6410,7 @@ const DEFAULT_SAFE_BINS = [
6410
6410
  function tryResolveRealpath(filePath) {
6411
6411
  if (!filePath) return;
6412
6412
  try {
6413
- return fs.realpathSync(filePath);
6413
+ return syncFs.realpathSync(filePath);
6414
6414
  } catch {
6415
6415
  return;
6416
6416
  }
@@ -7285,7 +7285,7 @@ function listWritableExplicitTrustedSafeBinDirs(entries) {
7285
7285
  for (const dir of resolved) {
7286
7286
  let stat;
7287
7287
  try {
7288
- stat = fs.statSync(dir);
7288
+ stat = syncFs.statSync(dir);
7289
7289
  } catch {
7290
7290
  continue;
7291
7291
  }
@@ -8250,7 +8250,7 @@ const credsSaveQueues = resolveProcessScopedMap(Symbol.for("openclaw.webCredsSav
8250
8250
  function canonicalWebAuthDir(authDir) {
8251
8251
  const resolvedAuthDir = resolveUserPath(authDir);
8252
8252
  try {
8253
- return fs.realpathSync.native(resolvedAuthDir);
8253
+ return syncFs.realpathSync.native(resolvedAuthDir);
8254
8254
  } catch (err) {
8255
8255
  if (err.code === "ENOENT") return resolvedAuthDir;
8256
8256
  throw err;
@@ -8265,7 +8265,7 @@ function isWebAuthBeingCleared(authDir) {
8265
8265
  }
8266
8266
  function statFileSync(filePath) {
8267
8267
  try {
8268
- return fs.statSync(filePath);
8268
+ return syncFs.statSync(filePath);
8269
8269
  } catch {
8270
8270
  return null;
8271
8271
  }
@@ -8277,7 +8277,7 @@ function hasWebCredsSync(authDir) {
8277
8277
  const resolvedAuthDir = resolveUserPath(authDir);
8278
8278
  maybeRestoreCredsFromBackup(resolvedAuthDir);
8279
8279
  try {
8280
- const stats = fs.statSync(resolveWebCredsPath(resolvedAuthDir));
8280
+ const stats = syncFs.statSync(resolveWebCredsPath(resolvedAuthDir));
8281
8281
  return stats.isFile() && stats.size > 1;
8282
8282
  } catch {
8283
8283
  return false;
@@ -8285,10 +8285,10 @@ function hasWebCredsSync(authDir) {
8285
8285
  }
8286
8286
  function readCredsJsonRaw(filePath) {
8287
8287
  try {
8288
- if (!fs.existsSync(filePath)) return null;
8289
- const stats = fs.statSync(filePath);
8288
+ if (!syncFs.existsSync(filePath)) return null;
8289
+ const stats = syncFs.statSync(filePath);
8290
8290
  if (!stats.isFile() || stats.size <= 1) return null;
8291
- return fs.readFileSync(filePath, "utf-8");
8291
+ return syncFs.readFileSync(filePath, "utf-8");
8292
8292
  } catch {
8293
8293
  return null;
8294
8294
  }
@@ -8313,12 +8313,12 @@ function maybeRestoreCredsFromBackup(authDir) {
8313
8313
  const backupRaw = readCredsJsonRaw(backupPath);
8314
8314
  const backupStats = statFileSync(backupPath);
8315
8315
  if (!backupStats?.isFile() || !backupRaw || !isParseableJson(backupRaw)) return;
8316
- fs.copyFileSync(backupPath, credsPath);
8316
+ syncFs.copyFileSync(backupPath, credsPath);
8317
8317
  try {
8318
- fs.chmodSync(credsPath, 384);
8318
+ syncFs.chmodSync(credsPath, 384);
8319
8319
  } catch {}
8320
8320
  try {
8321
- fs.utimesSync(credsPath, backupStats.atime, backupStats.mtime);
8321
+ syncFs.utimesSync(credsPath, backupStats.atime, backupStats.mtime);
8322
8322
  } catch {}
8323
8323
  logger.warn({ credsPath }, "restored corrupted WhatsApp creds.json from backup");
8324
8324
  } catch {}
@@ -8338,7 +8338,7 @@ function listWhatsAppAuthDirs(cfg) {
8338
8338
  accountId
8339
8339
  }).authDir);
8340
8340
  try {
8341
- const entries = fs.readdirSync(whatsappDir, { withFileTypes: true });
8341
+ const entries = syncFs.readdirSync(whatsappDir, { withFileTypes: true });
8342
8342
  for (const entry of entries) {
8343
8343
  if (!entry.isDirectory()) continue;
8344
8344
  authDirs.add(path.join(whatsappDir, entry.name));
@@ -8360,7 +8360,7 @@ function resolveLegacyAuthDir() {
8360
8360
  }
8361
8361
  function legacyAuthExists(authDir) {
8362
8362
  try {
8363
- return fs.existsSync(path.join(authDir, "creds.json"));
8363
+ return syncFs.existsSync(path.join(authDir, "creds.json"));
8364
8364
  } catch {
8365
8365
  return false;
8366
8366
  }
@@ -9300,7 +9300,7 @@ async function releaseHeldLock(normalizedSessionFile, held, opts = {}) {
9300
9300
  await held.handle.close();
9301
9301
  } catch {}
9302
9302
  try {
9303
- await fs$1.rm(held.lockPath, { force: true });
9303
+ await fs.rm(held.lockPath, { force: true });
9304
9304
  } catch {}
9305
9305
  })();
9306
9306
  try {
@@ -9320,7 +9320,7 @@ function releaseAllLocksSync() {
9320
9320
  if (typeof held.handle.close === "function") held.handle.close().catch(() => {});
9321
9321
  } catch {}
9322
9322
  try {
9323
- fs.rmSync(held.lockPath, { force: true });
9323
+ syncFs.rmSync(held.lockPath, { force: true });
9324
9324
  } catch {}
9325
9325
  HELD_LOCKS.delete(sessionFile);
9326
9326
  }
@@ -9379,7 +9379,7 @@ function registerCleanupHandlers() {
9379
9379
  }
9380
9380
  async function readLockPayload(lockPath) {
9381
9381
  try {
9382
- const raw = await fs$1.readFile(lockPath, "utf8");
9382
+ const raw = await fs.readFile(lockPath, "utf8");
9383
9383
  const parsed = JSON.parse(raw);
9384
9384
  const payload = {};
9385
9385
  if (isValidLockNumber(parsed.pid) && parsed.pid > 0) payload.pid = parsed.pid;
@@ -9423,7 +9423,7 @@ async function shouldReclaimContendedLockFile(lockPath, details, staleMs, nowMs)
9423
9423
  if (!details.stale) return false;
9424
9424
  if (!lockInspectionNeedsMtimeStaleFallback(details)) return true;
9425
9425
  try {
9426
- const stat = await fs$1.stat(lockPath);
9426
+ const stat = await fs.stat(lockPath);
9427
9427
  return Math.max(0, nowMs - stat.mtimeMs) > staleMs;
9428
9428
  } catch (error) {
9429
9429
  return error?.code !== "ENOENT";
@@ -9441,10 +9441,10 @@ async function acquireSessionWriteLockWithProcessIdentity(params, processIdentit
9441
9441
  const maxHoldMs = resolvePositiveMs(params.maxHoldMs, DEFAULT_MAX_HOLD_MS);
9442
9442
  const sessionFile = path.resolve(params.sessionFile);
9443
9443
  const sessionDir = path.dirname(sessionFile);
9444
- await fs$1.mkdir(sessionDir, { recursive: true });
9444
+ await fs.mkdir(sessionDir, { recursive: true });
9445
9445
  let normalizedDir = sessionDir;
9446
9446
  try {
9447
- normalizedDir = await fs$1.realpath(sessionDir);
9447
+ normalizedDir = await fs.realpath(sessionDir);
9448
9448
  } catch {}
9449
9449
  const normalizedSessionFile = path.join(normalizedDir, path.basename(sessionFile));
9450
9450
  const lockPath = `${normalizedSessionFile}.lock`;
@@ -9462,7 +9462,7 @@ async function acquireSessionWriteLockWithProcessIdentity(params, processIdentit
9462
9462
  attempt += 1;
9463
9463
  let handle = null;
9464
9464
  try {
9465
- handle = await fs$1.open(lockPath, "wx");
9465
+ handle = await fs.open(lockPath, "wx");
9466
9466
  const createdAt = (/* @__PURE__ */ new Date()).toISOString();
9467
9467
  const starttime = processIdentity.getProcessStartTime(process.pid);
9468
9468
  const lockPayload = {
@@ -9488,7 +9488,7 @@ async function acquireSessionWriteLockWithProcessIdentity(params, processIdentit
9488
9488
  await handle.close();
9489
9489
  } catch {}
9490
9490
  try {
9491
- await fs$1.rm(lockPath, { force: true });
9491
+ await fs.rm(lockPath, { force: true });
9492
9492
  } catch {}
9493
9493
  }
9494
9494
  if (err.code !== "EEXIST") throw err;
@@ -9503,7 +9503,7 @@ async function acquireSessionWriteLockWithProcessIdentity(params, processIdentit
9503
9503
  stale: true,
9504
9504
  staleReasons: inspected.staleReasons.includes("orphan-self-pid") ? inspected.staleReasons : [...inspected.staleReasons, "orphan-self-pid"]
9505
9505
  } : inspected, staleMs, nowMs)) {
9506
- await fs$1.rm(lockPath, { force: true });
9506
+ await fs.rm(lockPath, { force: true });
9507
9507
  continue;
9508
9508
  }
9509
9509
  const delay = Math.min(1e3, 50 * attempt);
@@ -9634,7 +9634,7 @@ function resolveStructuralSessionFallbackPath(candidateAbsPath, expectedAgentId)
9634
9634
  }
9635
9635
  function safeRealpathSync$1(filePath) {
9636
9636
  try {
9637
- return fs.realpathSync(filePath);
9637
+ return syncFs.realpathSync(filePath);
9638
9638
  } catch {
9639
9639
  return;
9640
9640
  }
@@ -10011,7 +10011,7 @@ function isCacheEnabled(ttlMs) {
10011
10011
  }
10012
10012
  function getFileStatSnapshot(filePath) {
10013
10013
  try {
10014
- const stats = fs.statSync(filePath);
10014
+ const stats = syncFs.statSync(filePath);
10015
10015
  return {
10016
10016
  mtimeMs: stats.mtimeMs,
10017
10017
  sizeBytes: stats.size
@@ -10293,7 +10293,7 @@ function loadSessionStoreFromDisk(storePath, opts = {}) {
10293
10293
  const maxReadAttempts = process.platform === "win32" ? 3 : 1;
10294
10294
  const retryBuf = maxReadAttempts > 1 ? new Int32Array(new SharedArrayBuffer(4)) : void 0;
10295
10295
  for (let attempt = 0; attempt < maxReadAttempts; attempt++) try {
10296
- const raw = fs.readFileSync(storePath, "utf-8");
10296
+ const raw = syncFs.readFileSync(storePath, "utf-8");
10297
10297
  if (raw.length === 0 && attempt < maxReadAttempts - 1) {
10298
10298
  Atomics.wait(retryBuf, 0, 0, 50);
10299
10299
  continue;
@@ -12170,7 +12170,7 @@ function createPluginRegistry(registryParams) {
12170
12170
  configurable: true,
12171
12171
  value: {
12172
12172
  ...registryParams.runtime.signals,
12173
- nudge: async (input) => (await import("./nudge-Dd9wU1K5.js").then((n) => n.t)).requestAuthorizedNudge({
12173
+ nudge: async (input) => (await import("./nudge-DZuNGDE_.js").then((n) => n.t)).requestAuthorizedNudge({
12174
12174
  kind: "plugin",
12175
12175
  pluginId: record.id
12176
12176
  }, input)
@@ -12538,13 +12538,13 @@ function resolveBundledPluginsDir() {
12538
12538
  try {
12539
12539
  const execDir = path.dirname(process.execPath);
12540
12540
  const sibling = path.join(execDir, "extensions");
12541
- if (fs.existsSync(sibling)) return sibling;
12541
+ if (syncFs.existsSync(sibling)) return sibling;
12542
12542
  } catch {}
12543
12543
  try {
12544
12544
  let cursor = path.dirname(fileURLToPath(import.meta.url));
12545
12545
  for (let i = 0; i < 6; i += 1) {
12546
12546
  const candidate = path.join(cursor, "extensions");
12547
- if (fs.existsSync(candidate) && fs.existsSync(path.join(cursor, "package.json"))) return candidate;
12547
+ if (syncFs.existsSync(candidate) && syncFs.existsSync(path.join(cursor, "package.json"))) return candidate;
12548
12548
  const parent = path.dirname(cursor);
12549
12549
  if (parent === cursor) break;
12550
12550
  cursor = parent;
@@ -12622,7 +12622,7 @@ function parseSessionConsumers(raw) {
12622
12622
  function resolvePluginManifestPath(rootDir) {
12623
12623
  for (const filename of PLUGIN_MANIFEST_FILENAMES) {
12624
12624
  const candidate = path.join(rootDir, filename);
12625
- if (fs.existsSync(candidate)) return candidate;
12625
+ if (syncFs.existsSync(candidate)) return candidate;
12626
12626
  }
12627
12627
  return path.join(rootDir, PLUGIN_MANIFEST_FILENAME);
12628
12628
  }
@@ -12648,7 +12648,7 @@ function loadPluginManifest(rootDir, rejectHardlinks = true) {
12648
12648
  }
12649
12649
  let raw;
12650
12650
  try {
12651
- raw = JSON.parse(fs.readFileSync(opened.fd, "utf-8"));
12651
+ raw = JSON.parse(syncFs.readFileSync(opened.fd, "utf-8"));
12652
12652
  } catch (err) {
12653
12653
  return {
12654
12654
  ok: false,
@@ -12656,7 +12656,7 @@ function loadPluginManifest(rootDir, rejectHardlinks = true) {
12656
12656
  manifestPath
12657
12657
  };
12658
12658
  } finally {
12659
- fs.closeSync(opened.fd);
12659
+ syncFs.closeSync(opened.fd);
12660
12660
  }
12661
12661
  return {
12662
12662
  ...loadPluginManifestFromObject(raw, rejectHardlinks),
@@ -12861,7 +12861,7 @@ function safeRealpathSync(targetPath, cache) {
12861
12861
  const cached = cache?.get(targetPath);
12862
12862
  if (cached) return cached;
12863
12863
  try {
12864
- const resolved = fs.realpathSync(targetPath);
12864
+ const resolved = syncFs.realpathSync(targetPath);
12865
12865
  cache?.set(targetPath, resolved);
12866
12866
  return resolved;
12867
12867
  } catch {
@@ -12870,7 +12870,7 @@ function safeRealpathSync(targetPath, cache) {
12870
12870
  }
12871
12871
  function safeStatSync(targetPath) {
12872
12872
  try {
12873
- return fs.statSync(targetPath);
12873
+ return syncFs.statSync(targetPath);
12874
12874
  } catch {
12875
12875
  return null;
12876
12876
  }
@@ -13002,12 +13002,12 @@ function readPackageManifest(dir, rejectHardlinks = true) {
13002
13002
  });
13003
13003
  if (!opened.ok) return null;
13004
13004
  try {
13005
- const raw = fs.readFileSync(opened.fd, "utf-8");
13005
+ const raw = syncFs.readFileSync(opened.fd, "utf-8");
13006
13006
  return JSON.parse(raw);
13007
13007
  } catch {
13008
13008
  return null;
13009
13009
  } finally {
13010
- fs.closeSync(opened.fd);
13010
+ syncFs.closeSync(opened.fd);
13011
13011
  }
13012
13012
  }
13013
13013
  function deriveIdHint(params) {
@@ -13075,14 +13075,14 @@ function resolvePackageEntrySource(params) {
13075
13075
  return null;
13076
13076
  }
13077
13077
  const safeSource = opened.path;
13078
- fs.closeSync(opened.fd);
13078
+ syncFs.closeSync(opened.fd);
13079
13079
  return safeSource;
13080
13080
  }
13081
13081
  function discoverInDirectory(params) {
13082
- if (!fs.existsSync(params.dir)) return;
13082
+ if (!syncFs.existsSync(params.dir)) return;
13083
13083
  let entries = [];
13084
13084
  try {
13085
- entries = fs.readdirSync(params.dir, { withFileTypes: true });
13085
+ entries = syncFs.readdirSync(params.dir, { withFileTypes: true });
13086
13086
  } catch (err) {
13087
13087
  params.diagnostics.push({
13088
13088
  level: "warn",
@@ -13145,7 +13145,7 @@ function discoverInDirectory(params) {
13145
13145
  }
13146
13146
  continue;
13147
13147
  }
13148
- const indexFile = [...DEFAULT_PLUGIN_ENTRY_CANDIDATES].map((candidate) => path.join(fullPath, candidate)).find((candidate) => fs.existsSync(candidate));
13148
+ const indexFile = [...DEFAULT_PLUGIN_ENTRY_CANDIDATES].map((candidate) => path.join(fullPath, candidate)).find((candidate) => syncFs.existsSync(candidate));
13149
13149
  if (indexFile && isExtensionFile(indexFile)) addCandidate({
13150
13150
  candidates: params.candidates,
13151
13151
  diagnostics: params.diagnostics,
@@ -13163,7 +13163,7 @@ function discoverInDirectory(params) {
13163
13163
  }
13164
13164
  function discoverFromPath(params) {
13165
13165
  const resolved = resolveUserPath(params.rawPath);
13166
- if (!fs.existsSync(resolved)) {
13166
+ if (!syncFs.existsSync(resolved)) {
13167
13167
  params.diagnostics.push({
13168
13168
  level: "error",
13169
13169
  code: "PLUGIN_LOAD_ERROR",
@@ -13172,7 +13172,7 @@ function discoverFromPath(params) {
13172
13172
  });
13173
13173
  return;
13174
13174
  }
13175
- const stat = fs.statSync(resolved);
13175
+ const stat = syncFs.statSync(resolved);
13176
13176
  if (stat.isFile()) {
13177
13177
  if (!isExtensionFile(resolved)) {
13178
13178
  params.diagnostics.push({
@@ -13232,7 +13232,7 @@ function discoverFromPath(params) {
13232
13232
  }
13233
13233
  return;
13234
13234
  }
13235
- const indexFile = [...DEFAULT_PLUGIN_ENTRY_CANDIDATES].map((candidate) => path.join(resolved, candidate)).find((candidate) => fs.existsSync(candidate));
13235
+ const indexFile = [...DEFAULT_PLUGIN_ENTRY_CANDIDATES].map((candidate) => path.join(resolved, candidate)).find((candidate) => syncFs.existsSync(candidate));
13236
13236
  if (indexFile && isExtensionFile(indexFile)) {
13237
13237
  addCandidate({
13238
13238
  candidates: params.candidates,
@@ -13691,7 +13691,7 @@ function buildCacheKey$1(params) {
13691
13691
  }
13692
13692
  function safeStatMtimeMs(filePath) {
13693
13693
  try {
13694
- return fs.statSync(filePath).mtimeMs;
13694
+ return syncFs.statSync(filePath).mtimeMs;
13695
13695
  } catch {
13696
13696
  return null;
13697
13697
  }
@@ -19039,7 +19039,7 @@ function validateConfigObjectWithPluginsBase(raw, opts) {
19039
19039
  };
19040
19040
  const buildManifestSchemaCacheKey = (manifestPath) => {
19041
19041
  try {
19042
- const mtimeMs = fs.statSync(manifestPath).mtimeMs;
19042
+ const mtimeMs = syncFs.statSync(manifestPath).mtimeMs;
19043
19043
  return mtimeMs ? `${manifestPath}:${mtimeMs}` : manifestPath;
19044
19044
  } catch {
19045
19045
  return manifestPath;
@@ -19064,7 +19064,7 @@ function validateConfigObjectWithPluginsBase(raw, opts) {
19064
19064
  manifestRoot = record.sourcePath;
19065
19065
  } else if (sources.size === 0) {
19066
19066
  const bundledDir = resolveBundledPluginsDir();
19067
- if (bundledDir && fs.existsSync(bundledDir)) {
19067
+ if (bundledDir && syncFs.existsSync(bundledDir)) {
19068
19068
  const realSourcePath = safeRealpathSync(resolveUserPath(record.sourcePath), bundledInstallRealpathCache);
19069
19069
  const realBundledDir = safeRealpathSync(bundledDir, bundledInstallRealpathCache) ?? bundledDir;
19070
19070
  if (!realSourcePath || !isPathWithinRoot(realBundledDir, realSourcePath)) {
@@ -19460,11 +19460,11 @@ function warnIfConfigFromFuture(params) {
19460
19460
  logger.warn(`Config was last written by a newer WednesdayAI (${touched}); current version is ${VERSION}.`);
19461
19461
  }
19462
19462
  }
19463
- function parseConfigJson5(raw, json5 = JSON5) {
19463
+ function parseConfigJson5(raw, json5$1 = json5) {
19464
19464
  try {
19465
19465
  return {
19466
19466
  ok: true,
19467
- parsed: json5.parse(raw)
19467
+ parsed: json5$1.parse(raw)
19468
19468
  };
19469
19469
  } catch (err) {
19470
19470
  return {
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Ao as isSubagentSessionKey, Da as resolveDefaultAgentId, Do as isAcpSessionKey, Gr as GATEWAY_CLIENT_NAMES, Ja as logDebug, Ot as docsSiteUrl, Pi as resolveSecretRefValues, Sa as listAgentIds, Ur as GATEWAY_CLIENT_IDS, V as loadConfig, Wr as GATEWAY_CLIENT_MODES, Ya as logError, ct as ASSISTANT_IDENTITY_COLORS, do as normalizeMainKey, fa as resolveSecretInputRef, ni as stringEnum, po as resolveAgentIdFromSessionKey, ti as optionalStringEnum, ua as hasConfiguredSecretInput, uo as normalizeAgentId, vo as sessionKeyAgentMatches, zi as secretRefKey } from "./model-selection-Ca4WCV4n.js";
2
+ import { Ao as isSubagentSessionKey, Da as resolveDefaultAgentId, Do as isAcpSessionKey, Gr as GATEWAY_CLIENT_NAMES, Ja as logDebug, Ot as docsSiteUrl, Pi as resolveSecretRefValues, Sa as listAgentIds, Ur as GATEWAY_CLIENT_IDS, V as loadConfig, Wr as GATEWAY_CLIENT_MODES, Ya as logError, ct as ASSISTANT_IDENTITY_COLORS, do as normalizeMainKey, fa as resolveSecretInputRef, ni as stringEnum, po as resolveAgentIdFromSessionKey, ti as optionalStringEnum, ua as hasConfiguredSecretInput, uo as normalizeAgentId, vo as sessionKeyAgentMatches, zi as secretRefKey } from "./model-selection-CYS--Nqz.js";
3
3
  import { l as resolveStateDir, o as resolveGatewayPort, r as resolveConfigPath } from "./paths-B_gs59ga.js";
4
4
  import { Z as CONFIG_DIR, et as ensureDir$1, lt as shortenHomeInString, st as resolveUserPath, t as createSubsystemLogger } from "./subsystem-DynBFcQj.js";
5
5
  import { t as emitDiagnosticEvent } from "./diagnostic-events-q1w77c25.js";
6
- import { B as createAsyncLock, D as SESSION_RUN_STATUSES, F as resolveAgentMainSessionKey, H as writeJsonAtomic, It as INPUT_PROVENANCE_KIND_VALUES, U as resolveGatewayCredentialsFromConfig, V as readJsonFile, f as TASK_RUN_MODES, p as TASK_RUN_STATUSES } from "./sessions-CXuFR_IY.js";
6
+ import { B as createAsyncLock, D as SESSION_RUN_STATUSES, F as resolveAgentMainSessionKey, H as writeJsonAtomic, It as INPUT_PROVENANCE_KIND_VALUES, U as resolveGatewayCredentialsFromConfig, V as readJsonFile, f as TASK_RUN_MODES, p as TASK_RUN_STATUSES } from "./sessions-DKv9bCbi.js";
7
7
  import { t as redactIdentifier } from "./redact-identifier-DLySVyKh.js";
8
- import { i as isSecureWebSocketUrl, t as rawDataToString } from "./ws-2U5gNvRt.js";
9
- import { a as agentTurnIdempotencyKey, c as enqueueAgentTurn, i as AGENT_TURN_TOPIC, l as isClaimableAgentTurnWorkId, n as getAgentTurnRuntime, o as buildAgentTurnWork } from "./agent-turn-runner-ClBJoKQQ.js";
8
+ import { i as isSecureWebSocketUrl, t as rawDataToString } from "./ws-Dt2EocLN.js";
9
+ import { a as agentTurnIdempotencyKey, c as enqueueAgentTurn, i as AGENT_TURN_TOPIC, l as isClaimableAgentTurnWorkId, n as getAgentTurnRuntime, o as buildAgentTurnWork } from "./agent-turn-runner-CHm-I95T.js";
10
10
  import path from "node:path";
11
11
  import syncFs from "node:fs";
12
12
  import fs from "node:fs/promises";
@@ -14,7 +14,7 @@ import { promisify } from "node:util";
14
14
  import { execFile } from "node:child_process";
15
15
  import crypto, { X509Certificate, createHash, randomBytes, randomUUID } from "node:crypto";
16
16
  import { Type } from "@sinclair/typebox";
17
- import { WebSocket } from "ws";
17
+ import { WebSocket as WebSocket$1 } from "ws";
18
18
  import AjvPkg from "ajv";
19
19
 
20
20
  //#region src/shared/device-auth.ts
@@ -2990,7 +2990,7 @@ var GatewayClient = class {
2990
2990
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
2991
2991
  });
2992
2992
  }
2993
- this.ws = new WebSocket(url, wsOptions);
2993
+ this.ws = new WebSocket$1(url, wsOptions);
2994
2994
  this.ws.on("open", () => {
2995
2995
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
2996
2996
  const tlsError = this.validateTlsFingerprint();
@@ -3186,7 +3186,7 @@ var GatewayClient = class {
3186
3186
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
3187
3187
  if (this.connectTimer) clearTimeout(this.connectTimer);
3188
3188
  this.connectTimer = setTimeout(() => {
3189
- if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
3189
+ if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
3190
3190
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
3191
3191
  this.ws?.close(1008, "connect challenge timeout");
3192
3192
  }, connectChallengeTimeoutMs);
@@ -3228,7 +3228,7 @@ var GatewayClient = class {
3228
3228
  return null;
3229
3229
  }
3230
3230
  async request(method, params, opts) {
3231
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
3231
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
3232
3232
  const id = randomUUID();
3233
3233
  const frame = {
3234
3234
  type: "req",
@@ -4587,7 +4587,7 @@ function indentUntrustedBody(body) {
4587
4587
  }
4588
4588
  function trackNudgeClaimChain(runner, id, sessionKey) {
4589
4589
  const tracked = (async () => {
4590
- const { runMainAgentTurn } = await import("./pi-embedded-ApthdT0k.js").then((n) => n.a);
4590
+ const { runMainAgentTurn } = await import("./pi-embedded-C8SqFziv.js").then((n) => n.a);
4591
4591
  await runner.claimAndExecute({
4592
4592
  workId: id,
4593
4593
  execute: (claim) => runMainAgentTurn(claim.message.payload)