@fased/fased 0.1.61 → 0.1.64

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 (514) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +38 -30
  3. package/config/dependency-ownership.json +1 -1
  4. package/config/signer-policies/README.md +49 -0
  5. package/config/signer-policies/agent.json.template +32 -0
  6. package/config/signer-policies/mining.json.template +69 -0
  7. package/config/signer-policies/network.json.template +5 -0
  8. package/config/signer-policies/vault.json.template +70 -0
  9. package/config/signer-protocol-v2.json +76 -0
  10. package/config/typescript-noemit-baseline.json +680 -0
  11. package/dist/acp/client.js +2 -2
  12. package/dist/acp/secret-file.js +2 -2
  13. package/dist/agents/agent-scope.js +2 -2
  14. package/dist/agents/apply-patch.js +8 -8
  15. package/dist/agents/auth-profiles/paths.js +2 -2
  16. package/dist/agents/auth-profiles/store.js +269 -33
  17. package/dist/agents/bash-tools.exec.js +10 -4
  18. package/dist/agents/bash-tools.shared.js +2 -2
  19. package/dist/agents/cli-credentials.js +4 -4
  20. package/dist/agents/current-model-catalog.js +3 -3
  21. package/dist/agents/docs-path.js +3 -3
  22. package/dist/agents/embedded-pi-mcp.js +4 -4
  23. package/dist/agents/identity-avatar.js +3 -3
  24. package/dist/agents/identity-file.js +2 -2
  25. package/dist/agents/memory-search.js +7 -1
  26. package/dist/agents/model-catalog-access.js +1 -2
  27. package/dist/agents/model-catalog-snapshot.js +1 -1
  28. package/dist/agents/model-catalog-source.js +1 -1
  29. package/dist/agents/model-metadata.js +1 -1
  30. package/dist/agents/model-selection.js +2 -28
  31. package/dist/agents/models-config.providers.js +6 -6
  32. package/dist/agents/openai-codex-app-server.js +5 -5
  33. package/dist/agents/pi-embedded-runner/compact.js +15 -7
  34. package/dist/agents/pi-embedded-runner/model.js +1 -1
  35. package/dist/agents/pi-embedded-runner/run/attempt.js +24 -13
  36. package/dist/agents/pi-embedded-runner/run.js +2 -0
  37. package/dist/agents/pi-embedded-runner/tool-split.js +40 -2
  38. package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
  39. package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
  40. package/dist/agents/pi-model-discovery.js +6 -6
  41. package/dist/agents/pi-project-settings.js +3 -3
  42. package/dist/agents/pi-tool-definition-adapter.js +16 -1
  43. package/dist/agents/pi-tools.js +2 -1
  44. package/dist/agents/sandbox/config.js +1 -1
  45. package/dist/agents/sandbox/context.js +27 -2
  46. package/dist/agents/sandbox/fs-bridge.js +2 -2
  47. package/dist/agents/session-dirs.js +4 -4
  48. package/dist/agents/session-write-lock.js +13 -13
  49. package/dist/agents/shell-utils.js +5 -5
  50. package/dist/agents/skills/bundled-dir.js +4 -4
  51. package/dist/agents/skills/env-overrides.js +38 -28
  52. package/dist/agents/skills/local-loader.js +6 -6
  53. package/dist/agents/skills/plugin-skills.js +2 -2
  54. package/dist/agents/skills/trust.js +93 -0
  55. package/dist/agents/skills/workspace.js +141 -13
  56. package/dist/agents/skills-clawhub.js +36 -11
  57. package/dist/agents/skills-install-download.js +7 -7
  58. package/dist/agents/skills-install-plan.js +2 -2
  59. package/dist/agents/skills-install.js +2 -2
  60. package/dist/agents/skills-marketplace-scan.js +49 -0
  61. package/dist/agents/skills-status.js +2 -2
  62. package/dist/agents/subagent-depth.js +2 -2
  63. package/dist/agents/system-prompt-params.js +2 -2
  64. package/dist/agents/tools/marketplace-offer-draft-tool.js +1 -1
  65. package/dist/agents/tools/mining-tool.js +1 -1
  66. package/dist/agents/tools/session-status-tool.js +1 -1
  67. package/dist/agents/tools/wallet-action-tool.js +172 -36
  68. package/dist/agents/tools/wallet-skill-policy.js +65 -23
  69. package/dist/agents/tools/wallet-tool.js +7 -11
  70. package/dist/agents/workspace.js +22 -22
  71. package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
  72. package/dist/auto-reply/reply/agent-runner.js +2 -2
  73. package/dist/auto-reply/reply/commands-export-session.js +7 -7
  74. package/dist/auto-reply/reply/directive-handling.fast-lane.js +2 -1
  75. package/dist/auto-reply/reply/directive-handling.impl.js +2 -1
  76. package/dist/auto-reply/reply/directive-handling.model.js +2 -1
  77. package/dist/auto-reply/reply/directive-handling.persist.js +2 -2
  78. package/dist/auto-reply/reply/get-reply-directives-apply.js +2 -0
  79. package/dist/auto-reply/reply/get-reply-inline-actions.js +25 -1
  80. package/dist/auto-reply/reply/model-selection.js +7 -4
  81. package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
  82. package/dist/auto-reply/reply/post-compaction-context.js +3 -3
  83. package/dist/auto-reply/reply/session-reset-model.js +4 -4
  84. package/dist/auto-reply/reply/session.js +3 -3
  85. package/dist/auto-reply/skill-commands.js +3 -3
  86. package/dist/auto-reply/status.js +6 -6
  87. package/dist/brand.js +1 -1
  88. package/dist/browser/chrome.executables.js +3 -3
  89. package/dist/browser/chrome.js +3 -3
  90. package/dist/browser/chrome.profile-decoration.js +6 -6
  91. package/dist/browser/profiles-service.js +2 -2
  92. package/dist/browser/server-context.js +2 -2
  93. package/dist/browser/trash.js +4 -4
  94. package/dist/build-info.json +3 -3
  95. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  96. package/dist/canvas-host/server.js +4 -4
  97. package/dist/capabilities/catalog.js +3 -3
  98. package/dist/channel-web.js +2 -2
  99. package/dist/channels/plugins/catalog.js +3 -3
  100. package/dist/cli/browser-cli-extension.js +6 -6
  101. package/dist/cli/command-format.js +2 -2
  102. package/dist/cli/cron-cli/register.cron-simple.js +2 -2
  103. package/dist/cli/dns-cli.js +9 -9
  104. package/dist/cli/gateway-cli/dev.js +5 -5
  105. package/dist/cli/gateway-cli/run.js +10 -2
  106. package/dist/cli/hooks-cli.js +5 -5
  107. package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
  108. package/dist/cli/memory-cli.js +7 -7
  109. package/dist/cli/nodes-media-utils.js +2 -2
  110. package/dist/cli/plugins-cli.js +2 -2
  111. package/dist/cli/program/command-registry.js +1 -1
  112. package/dist/cli/program/register.onboard.js +2 -3
  113. package/dist/cli/program/register.wallet.js +16 -123
  114. package/dist/cli/providers-cli.js +1 -1
  115. package/dist/cli/sat-cli.js +129 -2
  116. package/dist/cli/secrets-cli.js +3 -3
  117. package/dist/cli/update-cli/update-command.js +260 -11
  118. package/dist/cli/windows-argv.js +2 -2
  119. package/dist/commands/auth-choice.apply.api-providers.js +3 -3
  120. package/dist/commands/dashboard-link.js +3 -3
  121. package/dist/commands/doctor-config-flow.js +1 -1
  122. package/dist/commands/doctor-install.js +5 -5
  123. package/dist/commands/doctor-legacy-config.js +2 -13
  124. package/dist/commands/doctor-memory-search.js +2 -2
  125. package/dist/commands/doctor-platform-notes.js +2 -2
  126. package/dist/commands/doctor-sandbox.js +2 -2
  127. package/dist/commands/doctor-state-integrity.js +23 -23
  128. package/dist/commands/doctor-workspace.js +3 -3
  129. package/dist/commands/doctor.js +3 -3
  130. package/dist/commands/managed-up.js +2 -2
  131. package/dist/commands/model-picker.js +6 -6
  132. package/dist/commands/models/auth.js +1 -1
  133. package/dist/commands/onboard-auth.config-gateways.js +1 -1
  134. package/dist/commands/onboard-auth.credentials.js +35 -11
  135. package/dist/commands/onboard-non-interactive/local/wallet-config.js +28 -27
  136. package/dist/commands/onboard-non-interactive/local.js +5 -1
  137. package/dist/commands/onboarding/plugin-install.js +2 -2
  138. package/dist/commands/sessions-cleanup.js +2 -2
  139. package/dist/commands/signal-install.js +6 -6
  140. package/dist/commands/status-all/channels.js +2 -2
  141. package/dist/commands/wallet.js +570 -1913
  142. package/dist/config/cache-utils.js +2 -2
  143. package/dist/config/config.js +2 -2
  144. package/dist/config/includes.js +5 -5
  145. package/dist/config/io.js +66 -4
  146. package/dist/config/paths.js +3 -3
  147. package/dist/config/sat-runtime-ids.js +3 -3
  148. package/dist/config/schema.help.js +8 -7
  149. package/dist/config/schema.labels.js +5 -4
  150. package/dist/config/sessions/disk-budget.js +6 -6
  151. package/dist/config/sessions/paths.js +2 -2
  152. package/dist/config/sessions/store.js +17 -17
  153. package/dist/config/sessions/transcript.js +4 -4
  154. package/dist/config/talk.js +2 -2
  155. package/dist/config/zod-schema.agent-runtime.js +1 -0
  156. package/dist/config/zod-schema.js +5 -0
  157. package/dist/control-ui/assets/{app-BXA4gPvN.js → app-bR-fO5ty.js} +1511 -1555
  158. package/dist/control-ui/assets/{config-CU5Zi8Dh.js → config-LeImukCW.js} +10 -10
  159. package/dist/control-ui/assets/{federation-D10Q4eP_.js → federation-DgA9e-Pn.js} +364 -422
  160. package/dist/control-ui/assets/{index-D2QbJhVg.js → index-ckCxHwjy.js} +3 -3
  161. package/dist/control-ui/assets/{mining-BdhMn18r.js → mining-BgHFh0ei.js} +134 -114
  162. package/dist/control-ui/assets/mining-commit-DFpB_4JN.js +2 -0
  163. package/dist/control-ui/assets/{open-external-url-DwSiwMPl.js → open-external-url-ulF1B-sA.js} +3 -3
  164. package/dist/control-ui/assets/{providers-QMn4w2_f.js → providers-CIx9fxc6.js} +2 -2
  165. package/dist/control-ui/assets/{wallet-C2g294QT.js → wallet-DvStR_AT.js} +259 -377
  166. package/dist/control-ui/index.html +1 -1
  167. package/dist/control-ui/version.json +1 -1
  168. package/dist/cron/service/store.js +2 -2
  169. package/dist/cron/store.js +6 -6
  170. package/dist/daemon/systemd-system.js +60 -54
  171. package/dist/discord/monitor/thread-bindings.state.js +2 -2
  172. package/dist/extensions/sat-mining/src/protocol-contract.js +43 -3
  173. package/dist/extensions/sat-mining/src/rpc-read.js +235 -67
  174. package/dist/extensions/sat-mining/src/sat-bond-layout.js +14 -11
  175. package/dist/extensions/sat-mining/src/signer-codec-manifest.js +406 -0
  176. package/dist/extensions/sat-mining/src/solana-submit.js +1038 -397
  177. package/dist/extensions/sat-mining/src/submission-ledger.js +349 -0
  178. package/dist/federation/auto-connect.js +98 -8
  179. package/dist/federation/marketplace-capability-adapter.js +33 -7
  180. package/dist/federation/marketplace-delivery-outbox.js +196 -0
  181. package/dist/federation/marketplace-delivery.js +351 -215
  182. package/dist/federation/marketplace-direct-payment.js +272 -141
  183. package/dist/federation/marketplace-escrow.js +607 -249
  184. package/dist/federation/marketplace-settlement-ledger.js +352 -0
  185. package/dist/federation/offers.js +9 -7
  186. package/dist/federation/peer-auth-v2.js +529 -0
  187. package/dist/gateway/a2a-http.js +425 -96
  188. package/dist/gateway/a2a-settlement.js +259 -153
  189. package/dist/gateway/a2a-task-store.js +524 -0
  190. package/dist/gateway/auth.js +38 -2
  191. package/dist/gateway/config-reload.js +46 -33
  192. package/dist/gateway/control-ui-boot-check.js +6 -6
  193. package/dist/gateway/control-ui-login.js +7 -7
  194. package/dist/gateway/control-ui.js +9 -9
  195. package/dist/gateway/durable-capacity.js +31 -0
  196. package/dist/gateway/federation-http.js +540 -135
  197. package/dist/gateway/federation-marketplace-run-store.js +397 -0
  198. package/dist/gateway/federation-marketplace.js +535 -230
  199. package/dist/gateway/hooks-mapping.js +4 -4
  200. package/dist/gateway/mutating-admin-rpc-rate-limit.js +5 -0
  201. package/dist/gateway/security-path.js +1 -1
  202. package/dist/gateway/server-discovery.js +2 -2
  203. package/dist/gateway/server-http.js +1088 -1209
  204. package/dist/gateway/server-methods/chat.js +3 -3
  205. package/dist/gateway/server-methods/models.js +1 -1
  206. package/dist/gateway/server-methods/secrets.js +40 -0
  207. package/dist/gateway/server-methods/sessions.js +6 -6
  208. package/dist/gateway/server-methods/usage.js +2 -2
  209. package/dist/gateway/server-methods.js +1 -2
  210. package/dist/gateway/server-reload-handlers.js +196 -66
  211. package/dist/gateway/server-runtime-config.js +1 -1
  212. package/dist/gateway/server-secrets-runtime.js +288 -0
  213. package/dist/gateway/server.impl.js +73 -42
  214. package/dist/gateway/session-compaction-checkpoints.js +4 -4
  215. package/dist/gateway/session-utils.fs.js +24 -24
  216. package/dist/gateway/session-utils.js +6 -6
  217. package/dist/gateway/sessions-patch.js +3 -5
  218. package/dist/hooks/bundled-dir.js +4 -4
  219. package/dist/hooks/gmail-setup-utils.js +6 -6
  220. package/dist/hooks/import-url.js +2 -2
  221. package/dist/hooks/loader.js +4 -4
  222. package/dist/hooks/workspace.js +7 -7
  223. package/dist/index.js +4 -2
  224. package/dist/infra/archive.js +17 -17
  225. package/dist/infra/boundary-file-read.js +2 -2
  226. package/dist/infra/boundary-path.js +15 -15
  227. package/dist/infra/brew.js +2 -2
  228. package/dist/infra/control-ui-assets.js +14 -14
  229. package/dist/infra/device-auth-store.js +8 -8
  230. package/dist/infra/device-identity.js +8 -8
  231. package/dist/infra/dotenv.js +2 -2
  232. package/dist/infra/exec-approvals.js +8 -8
  233. package/dist/infra/exec-command-resolution.js +4 -4
  234. package/dist/infra/exec-safe-bin-trust.js +2 -2
  235. package/dist/infra/fased-root.js +5 -5
  236. package/dist/infra/fasedhub.js +64 -1
  237. package/dist/infra/fs-safe.js +14 -14
  238. package/dist/infra/gateway-lock.js +11 -11
  239. package/dist/infra/git-commit.js +5 -5
  240. package/dist/infra/git-root.js +4 -4
  241. package/dist/infra/hosted-runtime-artifact.js +3 -3
  242. package/dist/infra/is-main.js +2 -2
  243. package/dist/infra/json-file.js +7 -7
  244. package/dist/infra/local-source-paired-update.js +538 -0
  245. package/dist/infra/managed-runtime-bootstrap.js +6 -6
  246. package/dist/infra/outbound/delivery-queue.js +16 -16
  247. package/dist/infra/path-env.js +3 -3
  248. package/dist/infra/ports-lsof.js +4 -4
  249. package/dist/infra/provider-usage.auth.js +3 -3
  250. package/dist/infra/restart.js +41 -10
  251. package/dist/infra/safe-open-sync.js +2 -2
  252. package/dist/infra/session-cost-usage.js +9 -9
  253. package/dist/infra/shell-env.js +2 -2
  254. package/dist/infra/state-migrations.fs.js +6 -6
  255. package/dist/infra/state-migrations.js +23 -23
  256. package/dist/infra/tmp-fased-dir.js +6 -6
  257. package/dist/infra/update-runner.js +96 -0
  258. package/dist/infra/widearea-dns.js +3 -3
  259. package/dist/infra/wsl.js +2 -2
  260. package/dist/light-update-status.js +11 -11
  261. package/dist/line/accounts.js +2 -2
  262. package/dist/line/download.js +2 -2
  263. package/dist/logging/config.js +3 -3
  264. package/dist/logging/logger.js +7 -7
  265. package/dist/managed/federation.js +3 -3
  266. package/dist/managed/tunnel.js +3 -3
  267. package/dist/media/store.js +13 -13
  268. package/dist/media-understanding/runner.js +3 -3
  269. package/dist/memory/backend-config.js +2 -1
  270. package/dist/memory/embeddings.js +2 -2
  271. package/dist/memory/internal.js +10 -10
  272. package/dist/memory/manager-sync-ops.js +7 -7
  273. package/dist/memory/repair-executor.js +17 -17
  274. package/dist/memory/session-files.js +16 -2
  275. package/dist/node-host/invoke-system-run-plan.js +8 -8
  276. package/dist/node-host/invoke.js +2 -2
  277. package/dist/node-host/runner.js +3 -3
  278. package/dist/pairing/pairing-store.js +3 -3
  279. package/dist/plugin-sdk/{accounts-DxblobYM.js → accounts-Brn3-uWN.js} +1 -1
  280. package/dist/plugin-sdk/{actions-D4UNimWa.js → actions-DRu135h0.js} +2 -2
  281. package/dist/plugin-sdk/{active-listener-CFuy106s.js → active-listener-B_NMtgPL.js} +1 -1
  282. package/dist/plugin-sdk/{audio-preflight-Bv0hUOWL.js → audio-preflight-BYxAt775.js} +27 -27
  283. package/dist/plugin-sdk/{audit-Cs0K7LBp.js → audit-C5d2z5U1.js} +1 -1
  284. package/dist/plugin-sdk/{channel-access-D5aHoTY8.js → channel-access-CcFRdRPO.js} +1 -1
  285. package/dist/plugin-sdk/{channel-access-configure-Dvch9mMQ.js → channel-access-configure-DaI5wevh.js} +1 -1
  286. package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
  287. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  288. package/dist/plugin-sdk/{chunk-B0FUGc5A.js → chunk-CyoyqpbG.js} +1 -1
  289. package/dist/plugin-sdk/{chunk-items-Bk--NU3E.js → chunk-items-DIRHG2gJ.js} +1 -1
  290. package/dist/plugin-sdk/command-status.d.ts +2 -2
  291. package/dist/plugin-sdk/command-status.js +27 -27
  292. package/dist/plugin-sdk/{commands-registry-DmDRhRAU.js → commands-registry-BfqdEWdF.js} +2 -2
  293. package/dist/plugin-sdk/{common-CfUOowOp.js → common-HCcXU-NR.js} +1 -1
  294. package/dist/plugin-sdk/{config-mxULv0fQ.js → config-DlWVeLFB.js} +7113 -6877
  295. package/dist/plugin-sdk/{config-schema-CGW6J3Pv.js → config-schema-BOT7kHb6.js} +6779 -3696
  296. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  297. package/dist/plugin-sdk/discord.d.ts +5 -5
  298. package/dist/plugin-sdk/discord.js +19 -19
  299. package/dist/plugin-sdk/file-lock.js +35 -4
  300. package/dist/plugin-sdk/{filesystem-manager-ZoHU8oA7.js → filesystem-manager-DoI8IBNF.js} +1 -1
  301. package/dist/plugin-sdk/{group-mentions-BHRff6j8.d.ts → group-mentions-q3hUTCt7.d.ts} +1 -1
  302. package/dist/plugin-sdk/{handle-action-DbVCF9HZ.js → handle-action-hvwapMKg.js} +13 -13
  303. package/dist/plugin-sdk/{helpers-BXbdgs5H.js → helpers-DMBU4oTo.js} +1 -1
  304. package/dist/plugin-sdk/{image-ops-D7jPxaph.js → image-ops-DQi0n_Tt.js} +1 -1
  305. package/dist/plugin-sdk/index.d.ts +9 -27
  306. package/dist/plugin-sdk/index.js +29 -29
  307. package/dist/plugin-sdk/json-store.js +6 -6
  308. package/dist/plugin-sdk/{login-BRxww6nv.js → login-Ca583Okc.js} +3 -3
  309. package/dist/plugin-sdk/{login-qr-DJXsk9XH.js → login-qr-CGciBSNP.js} +3 -3
  310. package/dist/plugin-sdk/{manager-Y2S_5IlI.js → manager-BegWxNYX.js} +4 -4
  311. package/dist/plugin-sdk/{markdown-tables-DHLFQqaF.js → markdown-tables-DCOXEUfZ.js} +1 -1
  312. package/dist/plugin-sdk/{media-Czo4carg.js → media-CAdQF5TG.js} +47 -47
  313. package/dist/plugin-sdk/{memory-search-DTjIMw8J.js → memory-search-CrFPOeTH.js} +4 -1
  314. package/dist/plugin-sdk/{monitor-B9Cmt_Je.js → monitor-BCFDaqJ-.js} +31 -31
  315. package/dist/plugin-sdk/{monitor-B71iwAgC.js → monitor-BgbjRiPM.js} +32 -32
  316. package/dist/plugin-sdk/{openresponses-http-Du4GMmwo.js → openresponses-http-DFf87SMM.js} +27 -27
  317. package/dist/plugin-sdk/{optional-runtime-dependency-DdMbxS24.js → optional-runtime-dependency-0dznm3ZO.js} +1 -1
  318. package/dist/plugin-sdk/{outbound-Db8mRN6P.js → outbound-BgVDdHxx.js} +6 -6
  319. package/dist/plugin-sdk/{outbound-attachment-BqFjcypb.js → outbound-attachment-QqTnIhZL.js} +2 -2
  320. package/dist/plugin-sdk/{pairing-message-BMkkS038.d.ts → pairing-message-CS-9BHug.d.ts} +2 -2
  321. package/dist/plugin-sdk/{pairing-message-B3GC_7CD.js → pairing-message-D0CoLHRJ.js} +1 -1
  322. package/dist/plugin-sdk/{pairing-store-CQikgIbw.js → pairing-store-BChahgI2.js} +2 -2
  323. package/dist/plugin-sdk/{pi-model-discovery-CY3m5zJP.js → pi-model-discovery-BX_JLcEJ.js} +1 -1
  324. package/dist/plugin-sdk/{pi-model-discovery-runtime-DSh1T2pn.js → pi-model-discovery-runtime-DxTMz_XF.js} +2 -2
  325. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  326. package/dist/plugin-sdk/{pw-ai-AFUqn-tQ.js → pw-ai-natjh3rm.js} +3 -3
  327. package/dist/plugin-sdk/{qmd-manager-DSyx77KY.js → qmd-manager-CgRaTxUq.js} +1 -1
  328. package/dist/plugin-sdk/{query-expansion-CAI2kKLQ.js → query-expansion-BG3FgzF7.js} +14 -3
  329. package/dist/plugin-sdk/{replies-Fzh9PhXl.js → replies-ChYo5ZQM.js} +2 -2
  330. package/dist/plugin-sdk/{resolve-outbound-target-KpF3co6T.js → resolve-outbound-target-D-KGgHJZ.js} +1 -1
  331. package/dist/plugin-sdk/{resolve-route-CDl74O19.js → resolve-route-C8tvQm8Z.js} +1 -1
  332. package/dist/plugin-sdk/{retry-policy-D4uiqUOG.js → retry-policy-C6SjKjQA.js} +1 -1
  333. package/dist/plugin-sdk/{runtime-Bb6KRnCC.js → runtime-2B9_WKoI.js} +8 -3
  334. package/dist/plugin-sdk/{runtime-dependency-DLDmB94f.js → runtime-dependency-DczkvPxn.js} +2 -2
  335. package/dist/plugin-sdk/sat-runtime.d.ts +549 -309
  336. package/dist/plugin-sdk/sat-runtime.js +29 -29
  337. package/dist/plugin-sdk/{send-C4k4JuJN.js → send-B6KkGKZD.js} +6 -6
  338. package/dist/plugin-sdk/{send-D-uDKGIq.js → send-CFzGKJXo.js} +6 -6
  339. package/dist/plugin-sdk/{send-Du8ykP1k.js → send-DCO441U7.js} +8 -8
  340. package/dist/plugin-sdk/{send-5nFktR1n.js → send-gDoGA-7e.js} +5 -5
  341. package/dist/plugin-sdk/{send-Bfzf11VY.js → send-q9HXrSwK.js} +7 -7
  342. package/dist/plugin-sdk/{session-CS-Td9EM.js → session-DHD4ZKyG.js} +2 -2
  343. package/dist/plugin-sdk/{skill-commands-CFAlXWHk.js → skill-commands-FKEPLS7T.js} +201 -26
  344. package/dist/plugin-sdk/{slack-D_bbE6Yd.js → slack-BUTt8cxK.js} +39 -39
  345. package/dist/plugin-sdk/{slack-actions-BcMkNv1Z.js → slack-actions-DhbMcp8M.js} +11 -11
  346. package/dist/plugin-sdk/slack.d.ts +5 -5
  347. package/dist/plugin-sdk/slack.js +9 -9
  348. package/dist/plugin-sdk/{sticker-cache-Dqo9nRhi.js → sticker-cache-D0wHVqjt.js} +3 -3
  349. package/dist/plugin-sdk/{tables-bFXyRpkx.js → tables-B3jr0Pvq.js} +1 -1
  350. package/dist/plugin-sdk/{targets-DH7a9lKB.js → targets-CtSbTxYX.js} +1 -1
  351. package/dist/plugin-sdk/{telegram-actions-Cnag7JTH.js → telegram-actions-CC_qN4v0.js} +30 -30
  352. package/dist/plugin-sdk/telegram.d.ts +5 -5
  353. package/dist/plugin-sdk/telegram.js +8 -8
  354. package/dist/plugin-sdk/{thread-bindings.lifecycle-CgOvvdw8.js → thread-bindings.lifecycle-QbkNl-m6.js} +3 -3
  355. package/dist/plugin-sdk/{thread-bindings.state-CQpk44Hq.js → thread-bindings.state-D9hg_M1c.js} +2 -2
  356. package/dist/plugin-sdk/tmp-fased-dir-xOTGlzBE.d.ts +486 -0
  357. package/dist/plugin-sdk/{types-CLIvQaVg.d.ts → types-C3avNytw.d.ts} +3 -4
  358. package/dist/plugin-sdk/{types-DyhXnYUr.d.ts → types-D0kDG8l0.d.ts} +3 -2
  359. package/dist/plugin-sdk/{types-BYDL6dQj.d.ts → types-DWfbSAaM.d.ts} +2 -2
  360. package/dist/plugin-sdk/{types.plugin-_fbu40Re.d.ts → types.plugin-BcSBq42x.d.ts} +8 -3
  361. package/dist/plugin-sdk/{web-BInKQkc4.js → web-BXsJ1vqe.js} +32 -32
  362. package/dist/plugin-sdk/{whatsapp-actions-BtSc2CBv.js → whatsapp-actions-Bj_rOncr.js} +13 -13
  363. package/dist/plugin-sdk/{whatsapp-heartbeat-Bg9TuYzl.js → whatsapp-heartbeat-B1WHkJIg.js} +2 -2
  364. package/dist/plugin-sdk/whatsapp.d.ts +5 -5
  365. package/dist/plugin-sdk/whatsapp.js +12 -12
  366. package/dist/plugin-sdk/{wsl-C4DGFkOd.js → wsl-J-HscWxS.js} +3 -3
  367. package/dist/plugins/bundled-dir.js +3 -3
  368. package/dist/plugins/discovery.js +11 -11
  369. package/dist/plugins/loader.js +13 -13
  370. package/dist/plugins/manifest-registry.js +2 -2
  371. package/dist/plugins/manifest.js +4 -4
  372. package/dist/plugins/path-safety.js +3 -3
  373. package/dist/plugins/status-cache.js +9 -9
  374. package/dist/plugins/update.js +3 -3
  375. package/dist/plugins/web-search-install-catalog.js +3 -3
  376. package/dist/providers/refresh.js +1 -1
  377. package/dist/providers/registry.js +1 -1
  378. package/dist/secrets/apply.js +17 -17
  379. package/dist/secrets/audit.js +11 -11
  380. package/dist/secrets/runtime.js +1 -1
  381. package/dist/secrets/shared.js +9 -9
  382. package/dist/security/scan-paths.js +2 -2
  383. package/dist/shared/config-eval.js +2 -2
  384. package/dist/shared/pid-alive.js +2 -2
  385. package/dist/tasks/standing-orders.js +5 -5
  386. package/dist/tasks/task-flow-registry.js +5 -5
  387. package/dist/tasks/task-registry.js +5 -5
  388. package/dist/tasks/workflow-definitions.js +6 -6
  389. package/dist/telegram/token.js +5 -5
  390. package/dist/utils.js +5 -5
  391. package/dist/wallet/external-submission-ledger.js +376 -0
  392. package/dist/wallet/legacy-embedded-keystore.js +40 -0
  393. package/dist/wallet/local-socket-signer-archive.js +30 -0
  394. package/dist/wallet/local-socket-signer-lifecycle.js +97 -0
  395. package/dist/wallet/local-socket-signer-policy.js +166 -0
  396. package/dist/wallet/local-socket-signer-protocol.js +561 -118
  397. package/dist/wallet/native-signer-wallet-id.js +25 -0
  398. package/dist/wallet/providers/alchemy-adapter.js +3 -0
  399. package/dist/wallet/providers/local-socket-signer-adapter.js +382 -107
  400. package/dist/wallet/providers/turnkey-adapter.js +292 -34
  401. package/dist/wallet/providers/wallet-standard-adapter.js +100 -0
  402. package/dist/wallet/signer-network-admin.js +184 -0
  403. package/dist/wallet/signer-protocol-v2.generated.js +90 -0
  404. package/dist/wallet/solana-bond-signing.js +157 -69
  405. package/dist/wallet/solana-reviewed-transaction.js +375 -0
  406. package/dist/wallet/solana-swap.js +520 -64
  407. package/dist/wallet/solana-transaction-inspection.js +106 -4
  408. package/dist/wallet/solana-trigger.js +658 -320
  409. package/dist/wallet/turnkey-reviewed-state.js +370 -0
  410. package/dist/wallet/wallet-approval-auth.js +20 -31
  411. package/dist/wallet/wallet-atomic-state.js +53 -0
  412. package/dist/wallet/wallet-audit-log.js +5 -5
  413. package/dist/wallet/wallet-canary.js +0 -1
  414. package/dist/wallet/wallet-inbound-events.js +19 -14
  415. package/dist/wallet/wallet-observability.js +5 -5
  416. package/dist/wallet/wallet-policy-simulation.js +1 -1
  417. package/dist/wallet/wallet-policy.js +95 -41
  418. package/dist/wallet/wallet-provider-capabilities.js +28 -4
  419. package/dist/wallet/wallet-provider-registry.js +64 -51
  420. package/dist/wallet/wallet-provider-resolver.js +62 -63
  421. package/dist/wallet/wallet-runtime-config.js +31 -44
  422. package/dist/wallet/wallet-secrets-store.js +44 -22
  423. package/dist/wallet/wallet-send-approvals.js +1894 -592
  424. package/dist/wallet/wallet-send-execution-ledger.js +292 -0
  425. package/dist/wallet/wallet-settlement-links.js +17 -16
  426. package/dist/wallet/wallet-standard-review.js +353 -0
  427. package/dist/wallet/wallet-status.js +0 -9
  428. package/dist/wallet/wallet-task-ledger.js +16 -2
  429. package/dist/web/accounts.js +3 -3
  430. package/dist/web/auth-store.js +18 -18
  431. package/dist/web/auto-reply/heartbeat-runner.js +1 -1
  432. package/dist/web/auto-reply/monitor.js +2 -2
  433. package/dist/web/session.js +4 -4
  434. package/dist/wizard/host-security-capability.js +15 -24
  435. package/dist/wizard/onboarding.finalize.js +63 -184
  436. package/dist/wizard/onboarding.host-security.js +118 -1368
  437. package/dist/wizard/onboarding.js +180 -242
  438. package/dist/wizard/onboarding.wallet.js +323 -829
  439. package/extensions/acpx/package.json +1 -1
  440. package/extensions/bluebubbles/package.json +1 -1
  441. package/extensions/copilot-proxy/package.json +1 -1
  442. package/extensions/diagnostics-otel/package.json +1 -1
  443. package/extensions/fased-federation/package.json +1 -1
  444. package/extensions/google-gemini-cli-auth/package.json +1 -1
  445. package/extensions/imessage/package.json +1 -1
  446. package/extensions/irc/package.json +1 -1
  447. package/extensions/line/package.json +1 -1
  448. package/extensions/llm-task/package.json +1 -1
  449. package/extensions/lobster/package.json +1 -1
  450. package/extensions/matrix/CHANGELOG.md +18 -0
  451. package/extensions/matrix/package.json +1 -1
  452. package/extensions/mattermost/package.json +1 -1
  453. package/extensions/memory-core/package.json +2 -2
  454. package/extensions/memory-lancedb/package.json +1 -1
  455. package/extensions/minimax-portal-auth/package.json +1 -1
  456. package/extensions/msteams/CHANGELOG.md +18 -0
  457. package/extensions/msteams/package.json +1 -1
  458. package/extensions/nextcloud-talk/package.json +1 -1
  459. package/extensions/nostr/CHANGELOG.md +18 -0
  460. package/extensions/nostr/package.json +1 -1
  461. package/extensions/open-prose/package.json +1 -1
  462. package/extensions/sat-mining/index.ts +498 -153
  463. package/extensions/sat-mining/package.json +1 -1
  464. package/extensions/sat-mining/signer-codec-schema.v1.json +374 -0
  465. package/extensions/sat-mining/src/audit-store.ts +50 -5
  466. package/extensions/sat-mining/src/claim-service.ts +85 -14
  467. package/extensions/sat-mining/src/config.ts +9 -0
  468. package/extensions/sat-mining/src/cycle-progress.ts +16 -8
  469. package/extensions/sat-mining/src/epoch-service.ts +9 -5
  470. package/extensions/sat-mining/src/gateway-runner.ts +21 -1
  471. package/extensions/sat-mining/src/protocol-contract.ts +45 -1
  472. package/extensions/sat-mining/src/recovery-service.ts +312 -0
  473. package/extensions/sat-mining/src/round-watcher.ts +391 -81
  474. package/extensions/sat-mining/src/rpc-read.ts +330 -89
  475. package/extensions/sat-mining/src/runtime.ts +14 -0
  476. package/extensions/sat-mining/src/sat-bond-layout.ts +6 -0
  477. package/extensions/sat-mining/src/signer-codec-manifest.ts +429 -0
  478. package/extensions/sat-mining/src/solana-submit.ts +1199 -428
  479. package/extensions/sat-mining/src/submission-ledger.ts +433 -0
  480. package/extensions/signal/package.json +1 -1
  481. package/extensions/synology-chat/package.json +1 -1
  482. package/extensions/tlon/package.json +1 -1
  483. package/extensions/twitch/CHANGELOG.md +18 -0
  484. package/extensions/twitch/package.json +1 -1
  485. package/extensions/voice-call/CHANGELOG.md +18 -0
  486. package/extensions/voice-call/package.json +1 -1
  487. package/extensions/zalo/CHANGELOG.md +18 -0
  488. package/extensions/zalo/package.json +1 -1
  489. package/extensions/zalouser/CHANGELOG.md +18 -0
  490. package/extensions/zalouser/package.json +1 -1
  491. package/install.sh +4955 -0
  492. package/package.json +24 -5
  493. package/scripts/fased-host-updater.mjs +1421 -0
  494. package/scripts/fased-host-updaterctl.mjs +186 -0
  495. package/scripts/fased-managed-service.sh +36 -0
  496. package/scripts/fased-managed-updater.mjs +3065 -156
  497. package/scripts/fased-signer-enroll-hosting.sh +275 -0
  498. package/scripts/fased-signer-network-hosting.sh +143 -0
  499. package/scripts/fased-signer-owner-policy.mjs +1430 -0
  500. package/scripts/fased-signer-policy-hosting.sh +50 -0
  501. package/scripts/fased-signer-policy-local.sh +26 -0
  502. package/scripts/hosted-release-manifest.mjs +185 -0
  503. package/scripts/install-fased-signerd.sh +217 -0
  504. package/scripts/install-managed-runtime.mjs +212 -10
  505. package/scripts/managed-runtime-layout.mjs +75 -3
  506. package/scripts/migrate-hosted-signer-v2.mjs +58 -0
  507. package/scripts/start-managed.sh +169 -360
  508. package/dist/control-ui/assets/mining-commit-R-6nu87p.js +0 -2
  509. package/dist/plugin-sdk/tmp-fased-dir-BdFQvrvw.d.ts +0 -77
  510. package/dist/wallet/local-socket-signer-broker.js +0 -224
  511. package/dist/wallet/local-socket-signer-custody.js +0 -42
  512. package/dist/wallet/providers/embedded-keystore-adapter.js +0 -402
  513. package/dist/wallet/providers/privy-adapter.js +0 -80
  514. package/dist/wallet/wallet-custody.js +0 -1836
@@ -1,17 +1,17 @@
1
- import { $ as createInboundDebouncer, Dt as registerUnhandledRejectionHandler, G as sleepWithAbort, Gt as normalizeGroupActivation, Kt as parseActivationCommand, Lt as hasControlCommand, P as resolveMentionGating, Rt as shouldComputeCommandAuthorized, U as buildPairingReply, Vt as enqueueSystemEvent, W as computeBackoff, X as dispatchReplyWithBufferedBlockDispatcher, Y as shouldAckReactionForWhatsApp, _t as formatDurationPrecise, bi as resolveDmGroupAccessWithCommandGate, cn as DEFAULT_GROUP_HISTORY_LIMIT, et as resolveInboundDebounceMs, gn as buildMentionRegexes, hn as recordPendingHistoryEntryIfEnabled, ln as buildHistoryContextFromEntries, qr as createDedupeCache, rt as resolveEnvelopeFormatOptions, st as getReplyFromConfig, tt as formatInboundEnvelope, vn as normalizeMentionText, xi as resolveDmGroupAccessWithLists, yi as readStoreAllowFromForDmPolicy } from "./config-schema-CGW6J3Pv.js";
2
- import { C as recordSessionMetaFromInbound, S as readSessionUpdatedAt, _n as resolveChannelGroupRequireMention, bn as resolveGroupSessionKey, gn as resolveChannelGroupPolicy, w as updateLastRoute, x as loadSessionStore } from "./runtime-Bb6KRnCC.js";
1
+ import { $ as createInboundDebouncer, Dt as registerUnhandledRejectionHandler, G as sleepWithAbort, Gt as normalizeGroupActivation, Jr as createDedupeCache, Kt as parseActivationCommand, Lt as hasControlCommand, P as resolveMentionGating, Rt as shouldComputeCommandAuthorized, Si as resolveDmGroupAccessWithLists, U as buildPairingReply, Vt as enqueueSystemEvent, W as computeBackoff, X as dispatchReplyWithBufferedBlockDispatcher, Y as shouldAckReactionForWhatsApp, _t as formatDurationPrecise, bi as readStoreAllowFromForDmPolicy, cn as DEFAULT_GROUP_HISTORY_LIMIT, et as resolveInboundDebounceMs, gn as buildMentionRegexes, hn as recordPendingHistoryEntryIfEnabled, ln as buildHistoryContextFromEntries, rt as resolveEnvelopeFormatOptions, st as getReplyFromConfig, tt as formatInboundEnvelope, vn as normalizeMentionText, xi as resolveDmGroupAccessWithCommandGate } from "./config-schema-BOT7kHb6.js";
2
+ import { C as recordSessionMetaFromInbound, S as readSessionUpdatedAt, _n as resolveChannelGroupRequireMention, bn as resolveGroupSessionKey, gn as resolveChannelGroupPolicy, w as updateLastRoute, x as loadSessionStore } from "./runtime-2B9_WKoI.js";
3
3
  import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
4
4
  import { i as logVerbose, p as getChildLogger, s as shouldLogVerbose } from "./globals-B_jjtAje.js";
5
5
  import "./paths-BEmvSyOV.js";
6
6
  import { d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-CYk9EKoq.js";
7
- import { n as loadConfig, xa as formatCliCommand } from "./config-mxULv0fQ.js";
7
+ import { Sa as formatCliCommand, r as loadConfig } from "./config-DlWVeLFB.js";
8
8
  import "./agent-scope-CCjfjKoO.js";
9
9
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-HSJ2KQTc.js";
10
10
  import "./accounts-RHZyaB73.js";
11
11
  import "./accounts-CuqIKU8X.js";
12
12
  import "./logger-BbFvCoKk.js";
13
13
  import "./exec-DQ8j4Fm3.js";
14
- import { _ as webAuthExists, c as logWebSelfId, d as pickWebChannel, i as resolveWhatsAppAccount, o as WA_WEB_AUTH_DIR, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-DxblobYM.js";
14
+ import { _ as webAuthExists, c as logWebSelfId, d as pickWebChannel, i as resolveWhatsAppAccount, o as WA_WEB_AUTH_DIR, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-Brn3-uWN.js";
15
15
  import "./allow-list-DyAxs4yw.js";
16
16
  import "./redact-Bm8vu_ju.js";
17
17
  import "./github-copilot-token-CUK__1s1.js";
@@ -20,11 +20,11 @@ import { l as resolveStorePath } from "./paths-CTZ2RS_E.js";
20
20
  import "./ssrf-fG4UHKBw.js";
21
21
  import "./fetch-guard-CeG6u6ld.js";
22
22
  import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-g-ukZjwA.js";
23
- import "./send-D-uDKGIq.js";
24
- import { A as resolveDefaultGroupPolicy, M as warnMissingProviderGroupPolicyFallbackOnce, j as resolveOpenProviderRuntimeGroupPolicy } from "./helpers-BXbdgs5H.js";
25
- import { A as formatLocationText, j as toLocationContext } from "./wsl-C4DGFkOd.js";
26
- import { a as upsertChannelPairingRequest } from "./pairing-store-CQikgIbw.js";
27
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-B0FUGc5A.js";
23
+ import "./send-CFzGKJXo.js";
24
+ import { A as resolveDefaultGroupPolicy, M as warnMissingProviderGroupPolicyFallbackOnce, j as resolveOpenProviderRuntimeGroupPolicy } from "./helpers-DMBU4oTo.js";
25
+ import { A as formatLocationText, j as toLocationContext } from "./wsl-J-HscWxS.js";
26
+ import { a as upsertChannelPairingRequest } from "./pairing-store-BChahgI2.js";
27
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-CyoyqpbG.js";
28
28
  import "./tailscale-status-DwpNdO3Z.js";
29
29
  import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-CeVw7Mn2.js";
30
30
  import "./tokens-BbnqfVuu.js";
@@ -32,38 +32,38 @@ import "./pairing-token-Cs3BRKc0.js";
32
32
  import "./diagnostic-DLL_zekv.js";
33
33
  import "./diagnostic-session-state-DqgfGYqZ.js";
34
34
  import { t as redactIdentifier } from "./redact-identifier-Lt7t3l7S.js";
35
- import "./optional-runtime-dependency-DdMbxS24.js";
36
- import "./image-ops-D7jPxaph.js";
37
- import "./memory-search-DTjIMw8J.js";
38
- import "./manager-Y2S_5IlI.js";
39
- import "./query-expansion-CAI2kKLQ.js";
40
- import "./common-CfUOowOp.js";
41
- import "./commands-registry-DmDRhRAU.js";
42
- import "./runtime-dependency-DLDmB94f.js";
35
+ import "./optional-runtime-dependency-0dznm3ZO.js";
36
+ import "./image-ops-DQi0n_Tt.js";
37
+ import "./memory-search-CrFPOeTH.js";
38
+ import "./manager-BegWxNYX.js";
39
+ import "./query-expansion-BG3FgzF7.js";
40
+ import "./common-HCcXU-NR.js";
41
+ import "./commands-registry-BfqdEWdF.js";
42
+ import "./runtime-dependency-DczkvPxn.js";
43
43
  import "./path-alias-guards-DjgDArrp.js";
44
44
  import "./fs-safe-g4g7GT02.js";
45
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DHLFQqaF.js";
46
- import { n as loadWebMedia, u as getAgentScopedMediaLocalRoots } from "./media-Czo4carg.js";
47
- import "./send-C4k4JuJN.js";
48
- import { a as saveMediaBuffer } from "./outbound-attachment-BqFjcypb.js";
45
+ import { l as getAgentScopedMediaLocalRoots, n as loadWebMedia } from "./media-CAdQF5TG.js";
46
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DCOXEUfZ.js";
47
+ import "./send-B6KkGKZD.js";
48
+ import { a as saveMediaBuffer } from "./outbound-attachment-QqTnIhZL.js";
49
49
  import "./fetch-BtmoPIlf.js";
50
- import "./thread-bindings.state-CQpk44Hq.js";
51
- import "./skill-commands-CFAlXWHk.js";
50
+ import "./thread-bindings.state-D9hg_M1c.js";
51
+ import "./skill-commands-FKEPLS7T.js";
52
52
  import "./sandbox-paths-Dx2lUqCu.js";
53
53
  import "./directory-live-CSuYxdwk.js";
54
- import "./targets-DH7a9lKB.js";
55
- import "./pi-model-discovery-CY3m5zJP.js";
56
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CDl74O19.js";
54
+ import "./targets-CtSbTxYX.js";
55
+ import "./pi-model-discovery-BX_JLcEJ.js";
56
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-C8tvQm8Z.js";
57
57
  import { t as finalizeInboundContext } from "./inbound-context-DrAcXE0y.js";
58
58
  import "./render-e7fENCYH.js";
59
- import { t as convertMarkdownTables } from "./tables-bFXyRpkx.js";
59
+ import { t as convertMarkdownTables } from "./tables-B3jr0Pvq.js";
60
60
  import { n as recordChannelActivity } from "./channel-activity-DBDMQ3yI.js";
61
- import { r as setActiveWebListener } from "./active-listener-CFuy106s.js";
61
+ import { r as setActiveWebListener } from "./active-listener-B_NMtgPL.js";
62
62
  import "./shared-CBgp_GBw.js";
63
- import "./whatsapp-heartbeat-Bg9TuYzl.js";
64
- import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-Db8mRN6P.js";
65
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-CS-Td9EM.js";
66
- import { t as loginWeb } from "./login-BRxww6nv.js";
63
+ import "./whatsapp-heartbeat-B1WHkJIg.js";
64
+ import { i as markdownToWhatsApp, n as sendMessageWhatsApp, r as sendReactionWhatsApp } from "./outbound-BgVDdHxx.js";
65
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-DHD4ZKyG.js";
66
+ import { t as loginWeb } from "./login-Ca583Okc.js";
67
67
  import { randomUUID } from "node:crypto";
68
68
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
69
69
 
@@ -1,34 +1,34 @@
1
- import "./runtime-Bb6KRnCC.js";
1
+ import "./runtime-2B9_WKoI.js";
2
2
  import "./subsystem-DBPNbQDQ.js";
3
3
  import "./globals-B_jjtAje.js";
4
4
  import "./paths-BEmvSyOV.js";
5
5
  import "./utils-CYk9EKoq.js";
6
- import "./config-mxULv0fQ.js";
6
+ import "./config-DlWVeLFB.js";
7
7
  import "./agent-scope-CCjfjKoO.js";
8
8
  import "./accounts-RHZyaB73.js";
9
9
  import "./accounts-CuqIKU8X.js";
10
10
  import "./logger-BbFvCoKk.js";
11
11
  import "./exec-DQ8j4Fm3.js";
12
- import { i as resolveWhatsAppAccount } from "./accounts-DxblobYM.js";
12
+ import { i as resolveWhatsAppAccount } from "./accounts-Brn3-uWN.js";
13
13
  import "./redact-Bm8vu_ju.js";
14
14
  import "./github-copilot-token-CUK__1s1.js";
15
15
  import "./retry-DstNBhDW.js";
16
16
  import "./paths-CTZ2RS_E.js";
17
17
  import "./ssrf-fG4UHKBw.js";
18
18
  import "./fetch-guard-CeG6u6ld.js";
19
- import "./chunk-B0FUGc5A.js";
20
- import "./optional-runtime-dependency-DdMbxS24.js";
21
- import "./image-ops-D7jPxaph.js";
22
- import { a as jsonResult, c as readReactionParams, d as readStringParam, n as createActionGate, t as ToolAuthorizationError } from "./common-CfUOowOp.js";
19
+ import "./chunk-CyoyqpbG.js";
20
+ import "./optional-runtime-dependency-0dznm3ZO.js";
21
+ import "./image-ops-DQi0n_Tt.js";
22
+ import { a as jsonResult, c as readReactionParams, d as readStringParam, n as createActionGate, t as ToolAuthorizationError } from "./common-HCcXU-NR.js";
23
23
  import "./path-alias-guards-DjgDArrp.js";
24
24
  import "./fs-safe-g4g7GT02.js";
25
- import "./markdown-tables-DHLFQqaF.js";
26
- import "./media-Czo4carg.js";
25
+ import "./media-CAdQF5TG.js";
26
+ import "./markdown-tables-DCOXEUfZ.js";
27
27
  import "./render-e7fENCYH.js";
28
- import "./tables-bFXyRpkx.js";
29
- import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-KpF3co6T.js";
30
- import { r as sendReactionWhatsApp } from "./outbound-Db8mRN6P.js";
31
- import "./session-CS-Td9EM.js";
28
+ import "./tables-B3jr0Pvq.js";
29
+ import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-D-KGgHJZ.js";
30
+ import { r as sendReactionWhatsApp } from "./outbound-BgVDdHxx.js";
31
+ import "./session-DHD4ZKyG.js";
32
32
 
33
33
  //#region src/agents/tools/whatsapp-target-auth.ts
34
34
  function resolveAuthorizedWhatsAppOutboundTarget(params) {
@@ -1,9 +1,9 @@
1
- import { x as loadSessionStore } from "./runtime-Bb6KRnCC.js";
1
+ import { x as loadSessionStore } from "./runtime-2B9_WKoI.js";
2
2
  import { f as normalizeChatChannelId } from "./subsystem-DBPNbQDQ.js";
3
3
  import { d as normalizeE164 } from "./utils-CYk9EKoq.js";
4
4
  import { f as DEFAULT_ACCOUNT_ID } from "./session-key-HSJ2KQTc.js";
5
5
  import { l as resolveStorePath } from "./paths-CTZ2RS_E.js";
6
- import { r as readChannelAllowFromStoreSync } from "./pairing-store-CQikgIbw.js";
6
+ import { r as readChannelAllowFromStoreSync } from "./pairing-store-BChahgI2.js";
7
7
 
8
8
  //#region src/channels/plugins/whatsapp-heartbeat.ts
9
9
  function getSessionRecipients(cfg) {
@@ -1,9 +1,9 @@
1
1
  import { n as DEFAULT_ACCOUNT_ID, r as normalizeAccountId } from "./session-key--_1zVBRB.js";
2
- import { At as FasedAgentConfig, F as ChannelAccountSnapshot, Gt as WhatsAppAccountConfig, J as ChannelMessageActionAdapter, Tn as GroupPolicy, it as ChannelStatusIssue, n as ChannelPlugin, r as ChannelOnboardingAdapter, u as ChannelMessageActionName, ut as getChatChannelMeta, wn as DmPolicy } from "./types.plugin-_fbu40Re.js";
3
- import { Bt as resolveDefaultGroupPolicy, Cn as readStringParam, Gt as listSlackDirectoryGroupsFromConfig, Jt as listTelegramDirectoryPeersFromConfig, Kt as listSlackDirectoryPeersFromConfig, Ut as listDiscordDirectoryGroupsFromConfig, Vt as resolveOpenProviderRuntimeGroupPolicy, Wt as listDiscordDirectoryPeersFromConfig, Xt as listWhatsAppDirectoryPeersFromConfig, Yt as listWhatsAppDirectoryGroupsFromConfig, _ as FasedAgentPluginApi, qt as listTelegramDirectoryGroupsFromConfig, t as PluginRuntime, yn as createActionGate, zt as resolveAllowlistProviderRuntimeGroupPolicy } from "./types-BYDL6dQj.js";
4
- import { D as normalizeE164 } from "./types-CLIvQaVg.js";
5
- import { a as buildChannelConfigSchema, c as emptyPluginConfigSchema, i as setAccountEnabledInConfigSection, n as formatPairingApproveHint, o as applyAccountNameToChannelSection, r as deleteAccountFromConfigSection, s as migrateBaseNameToDefaultAccount, t as PAIRING_APPROVED_MESSAGE } from "./pairing-message-BMkkS038.js";
6
- import { _ as buildTokenChannelStatusSummary, m as resolveWhatsAppGroupToolPolicy, p as resolveWhatsAppGroupRequireMention } from "./group-mentions-BHRff6j8.js";
2
+ import { At as FasedAgentConfig, F as ChannelAccountSnapshot, Gt as WhatsAppAccountConfig, J as ChannelMessageActionAdapter, Tn as GroupPolicy, it as ChannelStatusIssue, n as ChannelPlugin, r as ChannelOnboardingAdapter, u as ChannelMessageActionName, ut as getChatChannelMeta, wn as DmPolicy } from "./types.plugin-BcSBq42x.js";
3
+ import { Bt as resolveDefaultGroupPolicy, Cn as readStringParam, Gt as listSlackDirectoryGroupsFromConfig, Jt as listTelegramDirectoryPeersFromConfig, Kt as listSlackDirectoryPeersFromConfig, Ut as listDiscordDirectoryGroupsFromConfig, Vt as resolveOpenProviderRuntimeGroupPolicy, Wt as listDiscordDirectoryPeersFromConfig, Xt as listWhatsAppDirectoryPeersFromConfig, Yt as listWhatsAppDirectoryGroupsFromConfig, _ as FasedAgentPluginApi, qt as listTelegramDirectoryGroupsFromConfig, t as PluginRuntime, yn as createActionGate, zt as resolveAllowlistProviderRuntimeGroupPolicy } from "./types-DWfbSAaM.js";
4
+ import { D as normalizeE164 } from "./types-C3avNytw.js";
5
+ import { a as buildChannelConfigSchema, c as emptyPluginConfigSchema, i as setAccountEnabledInConfigSection, n as formatPairingApproveHint, o as applyAccountNameToChannelSection, r as deleteAccountFromConfigSection, s as migrateBaseNameToDefaultAccount, t as PAIRING_APPROVED_MESSAGE } from "./pairing-message-CS-9BHug.js";
6
+ import { _ as buildTokenChannelStatusSummary, m as resolveWhatsAppGroupToolPolicy, p as resolveWhatsAppGroupRequireMention } from "./group-mentions-q3hUTCt7.js";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/config/zod-schema.providers-whatsapp.d.ts
@@ -1,30 +1,30 @@
1
- import { $t as resolveWhatsAppGroupToolPolicy, At as resolveWhatsAppMentionStripPatterns, Mt as normalizeWhatsAppAllowFromEntries, Nn as getChatChannelMeta, Nt as normalizeWhatsAppMessagingTarget, Qt as resolveWhatsAppGroupRequireMention, _t as listWhatsAppDirectoryPeersFromConfig, dt as listDiscordDirectoryPeersFromConfig, ft as listSlackDirectoryGroupsFromConfig, gt as listWhatsAppDirectoryGroupsFromConfig, ht as listTelegramDirectoryPeersFromConfig, jt as looksLikeWhatsAppTargetId, kt as resolveWhatsAppGroupIntroHint, mt as listTelegramDirectoryGroupsFromConfig, pt as listSlackDirectoryPeersFromConfig, ut as listDiscordDirectoryGroupsFromConfig } from "./runtime-Bb6KRnCC.js";
1
+ import { $t as resolveWhatsAppGroupToolPolicy, At as resolveWhatsAppMentionStripPatterns, Mt as normalizeWhatsAppAllowFromEntries, Nn as getChatChannelMeta, Nt as normalizeWhatsAppMessagingTarget, Qt as resolveWhatsAppGroupRequireMention, _t as listWhatsAppDirectoryPeersFromConfig, dt as listDiscordDirectoryPeersFromConfig, ft as listSlackDirectoryGroupsFromConfig, gt as listWhatsAppDirectoryGroupsFromConfig, ht as listTelegramDirectoryPeersFromConfig, jt as looksLikeWhatsAppTargetId, kt as resolveWhatsAppGroupIntroHint, mt as listTelegramDirectoryGroupsFromConfig, pt as listSlackDirectoryPeersFromConfig, ut as listDiscordDirectoryGroupsFromConfig } from "./runtime-2B9_WKoI.js";
2
2
  import "./subsystem-DBPNbQDQ.js";
3
3
  import "./globals-B_jjtAje.js";
4
4
  import "./paths-BEmvSyOV.js";
5
5
  import { c as isRecord, d as normalizeE164, f as pathExists } from "./utils-CYk9EKoq.js";
6
- import { l as WhatsAppConfigSchema, xa as formatCliCommand } from "./config-mxULv0fQ.js";
6
+ import { Sa as formatCliCommand, u as WhatsAppConfigSchema } from "./config-DlWVeLFB.js";
7
7
  import "./agent-scope-CCjfjKoO.js";
8
8
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-HSJ2KQTc.js";
9
9
  import "./accounts-RHZyaB73.js";
10
10
  import "./accounts-CuqIKU8X.js";
11
11
  import "./logger-BbFvCoKk.js";
12
12
  import "./exec-DQ8j4Fm3.js";
13
- import { a as resolveWhatsAppAuthDir, i as resolveWhatsAppAccount, n as listWhatsAppAccountIds, r as resolveDefaultWhatsAppAccountId } from "./accounts-DxblobYM.js";
13
+ import { a as resolveWhatsAppAuthDir, i as resolveWhatsAppAccount, n as listWhatsAppAccountIds, r as resolveDefaultWhatsAppAccountId } from "./accounts-Brn3-uWN.js";
14
14
  import "./redact-Bm8vu_ju.js";
15
15
  import "./github-copilot-token-CUK__1s1.js";
16
16
  import "./retry-DstNBhDW.js";
17
17
  import "./paths-CTZ2RS_E.js";
18
- import { a as deleteAccountFromConfigSection, c as formatPairingApproveHint, n as applyAccountNameToChannelSection, o as setAccountEnabledInConfigSection, r as migrateBaseNameToDefaultAccount, s as buildChannelConfigSchema, t as PAIRING_APPROVED_MESSAGE, u as emptyPluginConfigSchema } from "./pairing-message-B3GC_7CD.js";
19
- import { A as resolveDefaultGroupPolicy, D as formatDocsLink, g as resolveOnboardingAccountId, h as resolveAccountIdForConfigure, i as normalizeAllowFromEntries, j as resolveOpenProviderRuntimeGroupPolicy, k as resolveAllowlistProviderRuntimeGroupPolicy, w as buildTokenChannelStatusSummary, x as splitOnboardingEntries } from "./helpers-BXbdgs5H.js";
20
- import "./pairing-store-CQikgIbw.js";
21
- import "./optional-runtime-dependency-DdMbxS24.js";
22
- import "./image-ops-D7jPxaph.js";
23
- import { d as readStringParam, n as createActionGate } from "./common-CfUOowOp.js";
18
+ import { a as deleteAccountFromConfigSection, c as formatPairingApproveHint, n as applyAccountNameToChannelSection, o as setAccountEnabledInConfigSection, r as migrateBaseNameToDefaultAccount, s as buildChannelConfigSchema, t as PAIRING_APPROVED_MESSAGE, u as emptyPluginConfigSchema } from "./pairing-message-D0CoLHRJ.js";
19
+ import { A as resolveDefaultGroupPolicy, D as formatDocsLink, g as resolveOnboardingAccountId, h as resolveAccountIdForConfigure, i as normalizeAllowFromEntries, j as resolveOpenProviderRuntimeGroupPolicy, k as resolveAllowlistProviderRuntimeGroupPolicy, w as buildTokenChannelStatusSummary, x as splitOnboardingEntries } from "./helpers-DMBU4oTo.js";
20
+ import "./pairing-store-BChahgI2.js";
21
+ import "./optional-runtime-dependency-0dznm3ZO.js";
22
+ import "./image-ops-DQi0n_Tt.js";
23
+ import { d as readStringParam, n as createActionGate } from "./common-HCcXU-NR.js";
24
24
  import { n as asString, r as collectIssuesForEnabledAccounts } from "./shared-CBgp_GBw.js";
25
25
  import "./channel-core-CFRs8LPy.js";
26
- import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-KpF3co6T.js";
27
- import { t as resolveWhatsAppHeartbeatRecipients } from "./whatsapp-heartbeat-Bg9TuYzl.js";
26
+ import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-D-KGgHJZ.js";
27
+ import { t as resolveWhatsAppHeartbeatRecipients } from "./whatsapp-heartbeat-B1WHkJIg.js";
28
28
  import path from "node:path";
29
29
 
30
30
  //#region src/config/merge-config.ts
@@ -293,7 +293,7 @@ const whatsappOnboardingAdapter = {
293
293
  message: linked ? "WhatsApp already linked. Re-link now?" : "Link WhatsApp now (QR)?",
294
294
  initialValue: !linked
295
295
  })) try {
296
- const { loginWeb } = await import("./login-BRxww6nv.js").then((n) => n.n);
296
+ const { loginWeb } = await import("./login-Ca583Okc.js").then((n) => n.n);
297
297
  await loginWeb(false, void 0, runtime, accountId);
298
298
  } catch (err) {
299
299
  runtime.error(`WhatsApp login failed: ${String(err)}`);
@@ -1,10 +1,10 @@
1
1
  import { t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
2
2
  import { c as expandHomePrefix } from "./paths-BEmvSyOV.js";
3
3
  import { t as CONFIG_DIR } from "./utils-CYk9EKoq.js";
4
- import { Ft as resolveTelegramPreviewStreamMode } from "./config-mxULv0fQ.js";
4
+ import { It as resolveTelegramPreviewStreamMode } from "./config-DlWVeLFB.js";
5
5
  import { p as normalizeAccountId } from "./session-key-HSJ2KQTc.js";
6
- import { n as readChannelAllowFromStore } from "./pairing-store-CQikgIbw.js";
7
- import { h as normalizeMimeType, u as getFileExtension } from "./image-ops-D7jPxaph.js";
6
+ import { n as readChannelAllowFromStore } from "./pairing-store-BChahgI2.js";
7
+ import { h as normalizeMimeType, u as getFileExtension } from "./image-ops-DQi0n_Tt.js";
8
8
  import path from "node:path";
9
9
  import fs, { readFileSync } from "node:fs";
10
10
  import JSON5 from "json5";
@@ -1,18 +1,18 @@
1
1
  import { resolveFasedAgentPackageRootSync } from "../infra/fased-root.js";
2
2
  import { fileURLToPath } from "node:url";
3
- import fs from "node:fs";
3
+ import syncFs from "node:fs";
4
4
  import path from "node:path";
5
5
 
6
6
  //#region src/plugins/bundled-dir.ts
7
7
  function looksLikeBundledPluginsDir(dir) {
8
8
  try {
9
- const entries = fs.readdirSync(dir, { withFileTypes: true });
9
+ const entries = syncFs.readdirSync(dir, { withFileTypes: true });
10
10
  for (const entry of entries) {
11
11
  if (!entry.isDirectory()) {
12
12
  continue;
13
13
  }
14
14
  const pluginRoot = path.join(dir, entry.name);
15
- if (fs.existsSync(path.join(pluginRoot, "fased.plugin.json"))) {
15
+ if (syncFs.existsSync(path.join(pluginRoot, "fased.plugin.json"))) {
16
16
  return true;
17
17
  }
18
18
  }
@@ -3,7 +3,7 @@ import { openBoundaryFileSync } from "../infra/boundary-file-read.js";
3
3
  import { resolveBundledPluginsDir } from "./bundled-dir.js";
4
4
  import { DEFAULT_PLUGIN_ENTRY_CANDIDATES, getPackageManifestMetadata, loadPluginManifest } from "./manifest.js";
5
5
  import { formatPosixMode, isPathInside, safeRealpathSync, safeStatSync } from "./path-safety.js";
6
- import fs from "node:fs";
6
+ import syncFs from "node:fs";
7
7
  import path from "node:path";
8
8
 
9
9
  //#region src/plugins/discovery.ts
@@ -168,12 +168,12 @@ function readPackageManifest(dir) {
168
168
  return null;
169
169
  }
170
170
  try {
171
- const raw = fs.readFileSync(opened.fd, "utf-8");
171
+ const raw = syncFs.readFileSync(opened.fd, "utf-8");
172
172
  return JSON.parse(raw);
173
173
  } catch {
174
174
  return null;
175
175
  } finally {
176
- fs.closeSync(opened.fd);
176
+ syncFs.closeSync(opened.fd);
177
177
  }
178
178
  }
179
179
  function normalizePackageEntry(entry) {
@@ -212,7 +212,7 @@ function inferLegacyPluginManifestExtensions(manifest, packageDir) {
212
212
  if (!isPathInside(packageDir, resolved)) {
213
213
  continue;
214
214
  }
215
- if (fs.existsSync(resolved) && isExtensionFile(resolved)) {
215
+ if (syncFs.existsSync(resolved) && isExtensionFile(resolved)) {
216
216
  entries.push(normalized);
217
217
  }
218
218
  }
@@ -283,16 +283,16 @@ function resolvePackageEntrySource(params) {
283
283
  return null;
284
284
  }
285
285
  const safeSource = opened.path;
286
- fs.closeSync(opened.fd);
286
+ syncFs.closeSync(opened.fd);
287
287
  return safeSource;
288
288
  }
289
289
  function discoverInDirectory(params) {
290
- if (!fs.existsSync(params.dir)) {
290
+ if (!syncFs.existsSync(params.dir)) {
291
291
  return;
292
292
  }
293
293
  let entries = [];
294
294
  try {
295
- entries = fs.readdirSync(params.dir, { withFileTypes: true });
295
+ entries = syncFs.readdirSync(params.dir, { withFileTypes: true });
296
296
  } catch (err) {
297
297
  params.diagnostics.push({
298
298
  level: "warn",
@@ -364,7 +364,7 @@ function discoverInDirectory(params) {
364
364
  "index.mjs",
365
365
  "index.cjs"
366
366
  ];
367
- const indexFile = indexCandidates.map((candidate) => path.join(fullPath, candidate)).find((candidate) => fs.existsSync(candidate));
367
+ const indexFile = indexCandidates.map((candidate) => path.join(fullPath, candidate)).find((candidate) => syncFs.existsSync(candidate));
368
368
  if (indexFile && isExtensionFile(indexFile)) {
369
369
  addCandidate({
370
370
  candidates: params.candidates,
@@ -384,7 +384,7 @@ function discoverInDirectory(params) {
384
384
  }
385
385
  function discoverFromPath(params) {
386
386
  const resolved = resolveUserPath(params.rawPath);
387
- if (!fs.existsSync(resolved)) {
387
+ if (!syncFs.existsSync(resolved)) {
388
388
  params.diagnostics.push({
389
389
  level: "error",
390
390
  message: `plugin path not found: ${resolved}`,
@@ -392,7 +392,7 @@ function discoverFromPath(params) {
392
392
  });
393
393
  return;
394
394
  }
395
- const stat = fs.statSync(resolved);
395
+ const stat = syncFs.statSync(resolved);
396
396
  if (stat.isFile()) {
397
397
  if (!isExtensionFile(resolved)) {
398
398
  params.diagnostics.push({
@@ -455,7 +455,7 @@ function discoverFromPath(params) {
455
455
  "index.mjs",
456
456
  "index.cjs"
457
457
  ];
458
- const indexFile = indexCandidates.map((candidate) => path.join(resolved, candidate)).find((candidate) => fs.existsSync(candidate));
458
+ const indexFile = indexCandidates.map((candidate) => path.join(resolved, candidate)).find((candidate) => syncFs.existsSync(candidate));
459
459
  if (indexFile && isExtensionFile(indexFile)) {
460
460
  addCandidate({
461
461
  candidates: params.candidates,
@@ -13,7 +13,7 @@ import { setActivePluginRegistry } from "./runtime.js";
13
13
  import { initializeGlobalHookRunner } from "./hook-runner-global.js";
14
14
  import { createPluginRuntime } from "./runtime/index.js";
15
15
  import { fileURLToPath, pathToFileURL } from "node:url";
16
- import fs from "node:fs";
16
+ import syncFs from "node:fs";
17
17
  import path from "node:path";
18
18
  import { createJiti } from "jiti";
19
19
 
@@ -36,7 +36,7 @@ const resolvePluginSdkAliasFile = (params) => {
36
36
  const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
37
37
  const orderedCandidates = isDistRuntime ? [distCandidate, srcCandidate] : isProduction ? isTest ? [distCandidate, srcCandidate] : [distCandidate] : [srcCandidate, distCandidate];
38
38
  for (const candidate of orderedCandidates) {
39
- if (fs.existsSync(candidate)) {
39
+ if (syncFs.existsSync(candidate)) {
40
40
  return candidate;
41
41
  }
42
42
  }
@@ -122,7 +122,7 @@ function repairOfficialChannelRuntimeDependencies(params) {
122
122
  }
123
123
  let manifest;
124
124
  try {
125
- manifest = JSON.parse(fs.readFileSync(path.join(params.pluginRoot, "package.json"), "utf8"));
125
+ manifest = JSON.parse(syncFs.readFileSync(path.join(params.pluginRoot, "package.json"), "utf8"));
126
126
  } catch {
127
127
  return;
128
128
  }
@@ -133,31 +133,31 @@ function repairOfficialChannelRuntimeDependencies(params) {
133
133
  for (const dependencyName of dependencyNames) {
134
134
  const segments = dependencyName.split("/");
135
135
  const source = path.join(params.pluginRoot, "node_modules", ...segments);
136
- if (!fs.existsSync(source)) {
136
+ if (!syncFs.existsSync(source)) {
137
137
  continue;
138
138
  }
139
139
  const target = path.join(coreRoot, "node_modules", ...segments);
140
140
  try {
141
- const sourceReal = fs.realpathSync(source);
141
+ const sourceReal = syncFs.realpathSync(source);
142
142
  let shouldCreate = true;
143
143
  try {
144
- const current = fs.lstatSync(target);
144
+ const current = syncFs.lstatSync(target);
145
145
  if (!current.isSymbolicLink()) {
146
146
  shouldCreate = false;
147
147
  } else {
148
- const targetReal = fs.realpathSync(target);
148
+ const targetReal = syncFs.realpathSync(target);
149
149
  if (targetReal === sourceReal) {
150
150
  shouldCreate = false;
151
151
  } else {
152
- fs.unlinkSync(target);
152
+ syncFs.unlinkSync(target);
153
153
  }
154
154
  }
155
155
  } catch {}
156
156
  if (!shouldCreate) {
157
157
  continue;
158
158
  }
159
- fs.mkdirSync(path.dirname(target), { recursive: true });
160
- fs.symlinkSync(sourceReal, target, process.platform === "win32" ? "junction" : "dir");
159
+ syncFs.mkdirSync(path.dirname(target), { recursive: true });
160
+ syncFs.symlinkSync(sourceReal, target, process.platform === "win32" ? "junction" : "dir");
161
161
  } catch (error) {
162
162
  params.logger.warn(`[plugins] unable to expose ${dependencyName} from ${params.pluginId}: ${String(error)}`);
163
163
  }
@@ -228,7 +228,7 @@ async function preloadNativePluginModules(options = {}) {
228
228
  continue;
229
229
  }
230
230
  const safeSource = opened.path;
231
- fs.closeSync(opened.fd);
231
+ syncFs.closeSync(opened.fd);
232
232
  const startedAt = Date.now();
233
233
  try {
234
234
  const moduleUrl = pathToFileURL(safeSource).href;
@@ -644,7 +644,7 @@ function loadFasedAgentPlugins(options = {}) {
644
644
  continue;
645
645
  }
646
646
  const safeSource = opened.path;
647
- fs.closeSync(opened.fd);
647
+ syncFs.closeSync(opened.fd);
648
648
  repairOfficialChannelRuntimeDependencies({
649
649
  pluginId,
650
650
  pluginRoot,
@@ -808,7 +808,7 @@ function resolveRuntimePluginRegistry(options = {}) {
808
808
  }
809
809
  function safeRealpathOrResolve(value) {
810
810
  try {
811
- return fs.realpathSync(value);
811
+ return syncFs.realpathSync(value);
812
812
  } catch {
813
813
  return path.resolve(value);
814
814
  }
@@ -5,7 +5,7 @@ import { loadPluginManifest } from "./manifest.js";
5
5
  import { safeRealpathSync } from "./path-safety.js";
6
6
  import { discoverFasedAgentPlugins } from "./discovery.js";
7
7
  import { checkMinHostVersion } from "./min-host-version.js";
8
- import fs from "node:fs";
8
+ import syncFs from "node:fs";
9
9
  import path from "node:path";
10
10
 
11
11
  //#region src/plugins/manifest-registry.ts
@@ -55,7 +55,7 @@ function buildCacheKey(params) {
55
55
  }
56
56
  function safeStatMtimeMs(filePath) {
57
57
  try {
58
- return fs.statSync(filePath).mtimeMs;
58
+ return syncFs.statSync(filePath).mtimeMs;
59
59
  } catch {
60
60
  return null;
61
61
  }
@@ -1,7 +1,7 @@
1
1
  import { isRecord } from "../utils.js";
2
2
  import { openBoundaryFileSync } from "../infra/boundary-file-read.js";
3
3
  import { MANIFEST_KEY } from "../project.js";
4
- import fs from "node:fs";
4
+ import syncFs from "node:fs";
5
5
  import path from "node:path";
6
6
  import JSON5 from "json5";
7
7
 
@@ -169,7 +169,7 @@ function normalizeChannelConfigs(value) {
169
169
  function resolvePluginManifestPath(rootDir) {
170
170
  for (const filename of PLUGIN_MANIFEST_FILENAMES) {
171
171
  const candidate = path.join(rootDir, filename);
172
- if (fs.existsSync(candidate)) {
172
+ if (syncFs.existsSync(candidate)) {
173
173
  return candidate;
174
174
  }
175
175
  }
@@ -198,7 +198,7 @@ function loadPluginManifest(rootDir) {
198
198
  }
199
199
  let raw;
200
200
  try {
201
- raw = JSON5.parse(fs.readFileSync(opened.fd, "utf-8"));
201
+ raw = JSON5.parse(syncFs.readFileSync(opened.fd, "utf-8"));
202
202
  } catch (err) {
203
203
  return {
204
204
  ok: false,
@@ -206,7 +206,7 @@ function loadPluginManifest(rootDir) {
206
206
  manifestPath
207
207
  };
208
208
  } finally {
209
- fs.closeSync(opened.fd);
209
+ syncFs.closeSync(opened.fd);
210
210
  }
211
211
  if (!isRecord(raw)) {
212
212
  return {
@@ -1,5 +1,5 @@
1
1
  import { isPathInside as isPathInside$1 } from "../infra/path-guards.js";
2
- import fs from "node:fs";
2
+ import syncFs from "node:fs";
3
3
 
4
4
  //#region src/plugins/path-safety.ts
5
5
  function isPathInside(baseDir, targetPath) {
@@ -11,7 +11,7 @@ function safeRealpathSync(targetPath, cache) {
11
11
  return cached;
12
12
  }
13
13
  try {
14
- const resolved = fs.realpathSync(targetPath);
14
+ const resolved = syncFs.realpathSync(targetPath);
15
15
  cache?.set(targetPath, resolved);
16
16
  return resolved;
17
17
  } catch {
@@ -20,7 +20,7 @@ function safeRealpathSync(targetPath, cache) {
20
20
  }
21
21
  function safeStatSync(targetPath) {
22
22
  try {
23
- return fs.statSync(targetPath);
23
+ return syncFs.statSync(targetPath);
24
24
  } catch {
25
25
  return null;
26
26
  }
@@ -1,4 +1,4 @@
1
- import fs from "node:fs";
1
+ import syncFs from "node:fs";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
4
  import { createHash } from "node:crypto";
@@ -7,7 +7,7 @@ import { createHash } from "node:crypto";
7
7
  const CACHE_SCHEMA_VERSION = 2;
8
8
  function statMtimeMs(filePath) {
9
9
  try {
10
- return fs.statSync(filePath).mtimeMs;
10
+ return syncFs.statSync(filePath).mtimeMs;
11
11
  } catch {
12
12
  return null;
13
13
  }
@@ -23,7 +23,7 @@ function canonicalize(value) {
23
23
  }
24
24
  function configFingerprint(configPath) {
25
25
  try {
26
- const parsed = JSON.parse(fs.readFileSync(configPath, "utf8"));
26
+ const parsed = JSON.parse(syncFs.readFileSync(configPath, "utf8"));
27
27
  return createHash("sha256").update(JSON.stringify(canonicalize({ plugins: parsed.plugins }))).digest("hex");
28
28
  } catch {
29
29
  return createHash("sha256").update("missing-config").digest("hex");
@@ -41,9 +41,9 @@ function readCurrentPackageVersion(argv1) {
41
41
  return null;
42
42
  }
43
43
  try {
44
- const entry = fs.realpathSync(argv1);
44
+ const entry = syncFs.realpathSync(argv1);
45
45
  const packagePath = path.join(path.dirname(entry), "package.json");
46
- const parsed = JSON.parse(fs.readFileSync(packagePath, "utf8"));
46
+ const parsed = JSON.parse(syncFs.readFileSync(packagePath, "utf8"));
47
47
  return typeof parsed.version === "string" ? parsed.version : null;
48
48
  } catch {
49
49
  return null;
@@ -53,7 +53,7 @@ function readValidPluginStatusCache(params) {
53
53
  const cachePath = params.cachePath ?? resolvePluginStatusCachePath();
54
54
  const configPath = params.configPath ?? resolvePluginStatusConfigPath();
55
55
  try {
56
- const parsed = JSON.parse(fs.readFileSync(cachePath, "utf8"));
56
+ const parsed = JSON.parse(syncFs.readFileSync(cachePath, "utf8"));
57
57
  if (parsed.schemaVersion !== CACHE_SCHEMA_VERSION || parsed.packageVersion !== params.packageVersion || parsed.configPath !== configPath || parsed.configFingerprint !== configFingerprint(configPath) || !Array.isArray(parsed.plugins) || !Array.isArray(parsed.diagnostics)) {
58
58
  return null;
59
59
  }
@@ -96,16 +96,16 @@ function writePluginStatusCache(params) {
96
96
  source: diagnostic.source
97
97
  }))
98
98
  };
99
- fs.mkdirSync(path.dirname(cachePath), {
99
+ syncFs.mkdirSync(path.dirname(cachePath), {
100
100
  recursive: true,
101
101
  mode: 448
102
102
  });
103
103
  const temporaryPath = `${cachePath}.tmp-${process.pid}`;
104
- fs.writeFileSync(temporaryPath, `${JSON.stringify(cache)}\n`, {
104
+ syncFs.writeFileSync(temporaryPath, `${JSON.stringify(cache)}\n`, {
105
105
  encoding: "utf8",
106
106
  mode: 384
107
107
  });
108
- fs.renameSync(temporaryPath, cachePath);
108
+ syncFs.renameSync(temporaryPath, cachePath);
109
109
  }
110
110
 
111
111
  //#endregion
@@ -3,7 +3,7 @@ import { openBoundaryFileSync } from "../infra/boundary-file-read.js";
3
3
  import { installPluginFromNpmSpec, resolvePluginInstallDir } from "./install.js";
4
4
  import { buildNpmResolutionInstallFields, recordPluginInstall } from "./installs.js";
5
5
  import { resolveBundledPluginSources } from "./bundled-sources.js";
6
- import fs from "node:fs";
6
+ import syncFs from "node:fs";
7
7
  import path from "node:path";
8
8
 
9
9
  //#region src/plugins/update.ts
@@ -86,14 +86,14 @@ async function readInstalledPackageVersion(dir, opts) {
86
86
  return undefined;
87
87
  }
88
88
  try {
89
- const raw = fs.readFileSync(opened.fd, "utf-8");
89
+ const raw = syncFs.readFileSync(opened.fd, "utf-8");
90
90
  const parsed = JSON.parse(raw);
91
91
  return typeof parsed.version === "string" ? parsed.version : undefined;
92
92
  } catch (err) {
93
93
  opts?.logger?.warn?.(`Could not inspect installed package for "${opts.pluginId ?? path.basename(dir)}": package.json is unreadable (${formatUpdateError(err)}). Continuing update with unknown current version.`);
94
94
  return undefined;
95
95
  } finally {
96
- fs.closeSync(opened.fd);
96
+ syncFs.closeSync(opened.fd);
97
97
  }
98
98
  }
99
99
  function pathsEqual(left, right) {