@fased/fased 0.1.64 → 0.1.66

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 (905) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +0 -0
  3. package/README.md +16 -9
  4. package/assets/avatar-placeholder.svg +0 -0
  5. package/assets/chrome-extension/README.md +0 -0
  6. package/assets/chrome-extension/background-utils.js +0 -0
  7. package/assets/chrome-extension/background.js +0 -0
  8. package/assets/chrome-extension/icons/icon128.png +0 -0
  9. package/assets/chrome-extension/icons/icon16.png +0 -0
  10. package/assets/chrome-extension/icons/icon32.png +0 -0
  11. package/assets/chrome-extension/icons/icon48.png +0 -0
  12. package/assets/chrome-extension/manifest.json +0 -0
  13. package/assets/chrome-extension/options-validation.js +0 -0
  14. package/assets/chrome-extension/options.html +0 -0
  15. package/assets/chrome-extension/options.js +0 -0
  16. package/config/official-external-plugin-catalog.json +0 -0
  17. package/config/sat-runtime.env +0 -0
  18. package/config/signer-policies/README.md +10 -1
  19. package/config/signer-protocol-v2.json +2 -0
  20. package/dist/acp/client.js +2 -2
  21. package/dist/acp/secret-file.js +2 -2
  22. package/dist/agents/agent-scope.js +2 -2
  23. package/dist/agents/apply-patch.js +8 -8
  24. package/dist/agents/auth-profiles/paths.js +2 -2
  25. package/dist/agents/auth-profiles/store.js +4 -4
  26. package/dist/agents/bash-tools.shared.js +2 -2
  27. package/dist/agents/cli-credentials.js +4 -4
  28. package/dist/agents/docs-path.js +3 -3
  29. package/dist/agents/embedded-pi-mcp.js +4 -4
  30. package/dist/agents/identity-avatar.js +3 -3
  31. package/dist/agents/identity-file.js +2 -2
  32. package/dist/agents/openai-codex-app-server.js +5 -5
  33. package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
  34. package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
  35. package/dist/agents/pi-model-discovery.js +6 -6
  36. package/dist/agents/pi-project-settings.js +3 -3
  37. package/dist/agents/sandbox/fs-bridge.js +2 -2
  38. package/dist/agents/session-dirs.js +4 -4
  39. package/dist/agents/session-write-lock.js +13 -13
  40. package/dist/agents/shell-utils.js +5 -5
  41. package/dist/agents/skills/bundled-dir.js +4 -4
  42. package/dist/agents/skills/local-loader.js +6 -6
  43. package/dist/agents/skills/plugin-skills.js +2 -2
  44. package/dist/agents/skills/trust.js +6 -6
  45. package/dist/agents/skills/workspace.js +22 -22
  46. package/dist/agents/skills-install-download.js +7 -7
  47. package/dist/agents/skills-install-plan.js +2 -2
  48. package/dist/agents/skills-install.js +2 -2
  49. package/dist/agents/skills-status.js +2 -2
  50. package/dist/agents/subagent-depth.js +2 -2
  51. package/dist/agents/system-prompt-params.js +2 -2
  52. package/dist/agents/workspace.js +22 -22
  53. package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
  54. package/dist/auto-reply/reply/agent-runner.js +2 -2
  55. package/dist/auto-reply/reply/commands-export-session.js +7 -7
  56. package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
  57. package/dist/auto-reply/reply/post-compaction-context.js +3 -3
  58. package/dist/auto-reply/reply/session.js +3 -3
  59. package/dist/auto-reply/skill-commands.js +3 -3
  60. package/dist/auto-reply/status.js +6 -6
  61. package/dist/brand.js +1 -1
  62. package/dist/browser/chrome.executables.js +3 -3
  63. package/dist/browser/chrome.js +3 -3
  64. package/dist/browser/chrome.profile-decoration.js +6 -6
  65. package/dist/browser/profiles-service.js +2 -2
  66. package/dist/browser/server-context.js +2 -2
  67. package/dist/browser/trash.js +4 -4
  68. package/dist/build-info.json +3 -3
  69. package/dist/bundled/boot-md/HOOK.md +0 -0
  70. package/dist/bundled/bootstrap-extra-files/HOOK.md +0 -0
  71. package/dist/bundled/command-logger/HOOK.md +0 -0
  72. package/dist/bundled/session-memory/HOOK.md +0 -0
  73. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  74. package/dist/canvas-host/a2ui/index.html +0 -0
  75. package/dist/canvas-host/server.js +4 -4
  76. package/dist/capabilities/catalog.js +3 -3
  77. package/dist/channels/plugins/catalog.js +3 -3
  78. package/dist/cli/browser-cli-extension.js +6 -6
  79. package/dist/cli/command-format.js +2 -2
  80. package/dist/cli/cron-cli/register.cron-simple.js +2 -2
  81. package/dist/cli/dns-cli.js +9 -9
  82. package/dist/cli/gateway-cli/dev.js +5 -5
  83. package/dist/cli/gateway-cli/run.js +2 -2
  84. package/dist/cli/hooks-cli.js +5 -5
  85. package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
  86. package/dist/cli/memory-cli.js +7 -7
  87. package/dist/cli/nodes-media-utils.js +2 -2
  88. package/dist/cli/plugins-cli.js +2 -2
  89. package/dist/cli/secrets-cli.js +3 -3
  90. package/dist/cli/windows-argv.js +2 -2
  91. package/dist/commands/dashboard-link.js +3 -3
  92. package/dist/commands/doctor-install.js +5 -5
  93. package/dist/commands/doctor-memory-search.js +2 -2
  94. package/dist/commands/doctor-platform-notes.js +2 -2
  95. package/dist/commands/doctor-sandbox.js +2 -2
  96. package/dist/commands/doctor-state-integrity.js +23 -23
  97. package/dist/commands/doctor-workspace.js +3 -3
  98. package/dist/commands/doctor.js +3 -3
  99. package/dist/commands/managed-up.js +2 -2
  100. package/dist/commands/onboard-auth.credentials.js +3 -3
  101. package/dist/commands/onboarding/plugin-install.js +2 -2
  102. package/dist/commands/sessions-cleanup.js +2 -2
  103. package/dist/commands/signal-install.js +6 -6
  104. package/dist/commands/status-all/channels.js +2 -2
  105. package/dist/commands/wallet.js +10 -10
  106. package/dist/config/cache-utils.js +2 -2
  107. package/dist/config/includes.js +5 -5
  108. package/dist/config/io.js +2 -2
  109. package/dist/config/paths.js +3 -3
  110. package/dist/config/sat-runtime-ids.js +3 -3
  111. package/dist/config/sessions/disk-budget.js +6 -6
  112. package/dist/config/sessions/paths.js +2 -2
  113. package/dist/config/sessions/store.js +17 -17
  114. package/dist/config/sessions/transcript.js +4 -4
  115. package/dist/config/talk.js +2 -2
  116. package/dist/control-ui/apple-touch-icon.png +0 -0
  117. package/dist/control-ui/assets/{app-bR-fO5ty.js → app-DYxADzeH.js} +5 -5
  118. package/dist/control-ui/assets/{index-ckCxHwjy.js → index-vw_10Zeo.js} +3 -3
  119. package/dist/control-ui/assets/{mining-BgHFh0ei.js → mining-Dg-3ll0F.js} +69 -69
  120. package/dist/control-ui/boot-watchdog.js +0 -0
  121. package/dist/control-ui/fased-logo.svg +0 -0
  122. package/dist/control-ui/favicon-32.png +0 -0
  123. package/dist/control-ui/favicon.ico +0 -0
  124. package/dist/control-ui/favicon.svg +0 -0
  125. package/dist/control-ui/index.html +1 -1
  126. package/dist/control-ui/manifest.webmanifest +0 -0
  127. package/dist/control-ui/version.json +1 -1
  128. package/dist/cron/service/store.js +2 -2
  129. package/dist/cron/store.js +6 -6
  130. package/dist/daemon/systemd-system.js +5 -5
  131. package/dist/discord/monitor/thread-bindings.state.js +2 -2
  132. package/dist/export-html/template.css +0 -0
  133. package/dist/export-html/template.html +0 -0
  134. package/dist/export-html/template.js +0 -0
  135. package/dist/export-html/vendor/highlight.min.js +0 -0
  136. package/dist/export-html/vendor/marked.min.js +0 -0
  137. package/dist/extensions/sat-mining/src/rpc-read.js +59 -20
  138. package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
  139. package/dist/extensions/sat-mining/src/solana-submit.js +396 -9
  140. package/dist/extensions/sat-mining/src/submission-ledger.js +24 -4
  141. package/dist/federation/marketplace-delivery-outbox.js +5 -5
  142. package/dist/federation/marketplace-settlement-ledger.js +4 -4
  143. package/dist/gateway/a2a-task-store.js +22 -22
  144. package/dist/gateway/control-ui-boot-check.js +6 -6
  145. package/dist/gateway/control-ui-login.js +7 -7
  146. package/dist/gateway/control-ui.js +9 -9
  147. package/dist/gateway/federation-marketplace-run-store.js +14 -14
  148. package/dist/gateway/hooks-mapping.js +4 -4
  149. package/dist/gateway/server-discovery.js +2 -2
  150. package/dist/gateway/server-http.js +4 -4
  151. package/dist/gateway/server-methods/chat.js +3 -3
  152. package/dist/gateway/server-methods/sessions.js +6 -6
  153. package/dist/gateway/server-methods/usage.js +2 -2
  154. package/dist/gateway/session-compaction-checkpoints.js +4 -4
  155. package/dist/gateway/session-utils.fs.js +24 -24
  156. package/dist/gateway/session-utils.js +6 -6
  157. package/dist/hooks/bundled-dir.js +4 -4
  158. package/dist/hooks/gmail-setup-utils.js +6 -6
  159. package/dist/hooks/import-url.js +2 -2
  160. package/dist/hooks/loader.js +4 -4
  161. package/dist/hooks/workspace.js +7 -7
  162. package/dist/infra/archive.js +17 -17
  163. package/dist/infra/boundary-file-read.js +2 -2
  164. package/dist/infra/boundary-path.js +15 -15
  165. package/dist/infra/brew.js +2 -2
  166. package/dist/infra/control-ui-assets.js +14 -14
  167. package/dist/infra/device-auth-store.js +8 -8
  168. package/dist/infra/device-identity.js +8 -8
  169. package/dist/infra/dotenv.js +2 -2
  170. package/dist/infra/exec-approvals.js +8 -8
  171. package/dist/infra/exec-command-resolution.js +4 -4
  172. package/dist/infra/exec-safe-bin-trust.js +2 -2
  173. package/dist/infra/fased-root.js +5 -5
  174. package/dist/infra/fs-safe.js +14 -14
  175. package/dist/infra/gateway-lock.js +11 -11
  176. package/dist/infra/git-commit.js +5 -5
  177. package/dist/infra/git-root.js +4 -4
  178. package/dist/infra/hosted-runtime-artifact.js +3 -3
  179. package/dist/infra/is-main.js +2 -2
  180. package/dist/infra/json-file.js +7 -7
  181. package/dist/infra/managed-runtime-bootstrap.js +6 -6
  182. package/dist/infra/outbound/delivery-queue.js +16 -16
  183. package/dist/infra/path-env.js +3 -3
  184. package/dist/infra/ports-lsof.js +4 -4
  185. package/dist/infra/provider-usage.auth.js +3 -3
  186. package/dist/infra/safe-open-sync.js +2 -2
  187. package/dist/infra/session-cost-usage.js +9 -9
  188. package/dist/infra/shell-env.js +2 -2
  189. package/dist/infra/state-migrations.fs.js +6 -6
  190. package/dist/infra/state-migrations.js +23 -23
  191. package/dist/infra/tmp-fased-dir.js +6 -6
  192. package/dist/infra/widearea-dns.js +3 -3
  193. package/dist/infra/wsl.js +2 -2
  194. package/dist/line/accounts.js +2 -2
  195. package/dist/line/download.js +2 -2
  196. package/dist/logging/config.js +3 -3
  197. package/dist/logging/logger.js +7 -7
  198. package/dist/managed/federation.js +3 -3
  199. package/dist/managed/tunnel.js +3 -3
  200. package/dist/media/store.js +13 -13
  201. package/dist/media-understanding/runner.js +3 -3
  202. package/dist/memory/embeddings.js +2 -2
  203. package/dist/memory/internal.js +10 -10
  204. package/dist/memory/manager-sync-ops.js +7 -7
  205. package/dist/memory/repair-executor.js +17 -17
  206. package/dist/node-host/invoke-system-run-plan.js +8 -8
  207. package/dist/node-host/invoke.js +2 -2
  208. package/dist/node-host/runner.js +3 -3
  209. package/dist/pairing/pairing-store.js +3 -3
  210. package/dist/plugin-sdk/{audio-preflight-BYxAt775.js → audio-preflight-BFLoas5R.js} +1 -1
  211. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  212. package/dist/plugin-sdk/{chunk-items-DIRHG2gJ.js → chunk-items-TErs62MC.js} +1 -1
  213. package/dist/plugin-sdk/command-status.js +1 -1
  214. package/dist/plugin-sdk/{config-schema-BOT7kHb6.js → config-schema-BPnaDBwZ.js} +63 -8
  215. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  216. package/dist/plugin-sdk/discord.d.ts +3 -3
  217. package/dist/plugin-sdk/file-lock.js +10 -10
  218. package/dist/plugin-sdk/index.d.ts +4 -4
  219. package/dist/plugin-sdk/index.js +1 -1
  220. package/dist/plugin-sdk/json-store.js +6 -6
  221. package/dist/plugin-sdk/{monitor-BCFDaqJ-.js → monitor-FuBPk-AL.js} +3 -3
  222. package/dist/plugin-sdk/{monitor-BgbjRiPM.js → monitor-sW6dQdX1.js} +3 -3
  223. package/dist/plugin-sdk/{openresponses-http-DFf87SMM.js → openresponses-http-CVZq0H-P.js} +1 -1
  224. package/dist/plugin-sdk/{pairing-message-CS-9BHug.d.ts → pairing-message-L6L6L2YF.d.ts} +1 -1
  225. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
  226. package/dist/plugin-sdk/sat-runtime.d.ts +69 -2
  227. package/dist/plugin-sdk/sat-runtime.js +1 -1
  228. package/dist/plugin-sdk/{slack-BUTt8cxK.js → slack-BZISDxDd.js} +3 -3
  229. package/dist/plugin-sdk/slack.d.ts +3 -3
  230. package/dist/plugin-sdk/{sticker-cache-D0wHVqjt.js → sticker-cache-B0aPv6Lg.js} +2 -2
  231. package/dist/plugin-sdk/{telegram-actions-CC_qN4v0.js → telegram-actions-H3gePEn6.js} +2 -2
  232. package/dist/plugin-sdk/telegram.d.ts +3 -3
  233. package/dist/plugin-sdk/{tmp-fased-dir-xOTGlzBE.d.ts → tmp-fased-dir-d1CmFAnJ.d.ts} +1 -1
  234. package/dist/plugin-sdk/{types-C3avNytw.d.ts → types-DUjYaWB2.d.ts} +3 -3
  235. package/dist/plugin-sdk/{types-DWfbSAaM.d.ts → types-xWjHXl1z.d.ts} +1 -1
  236. package/dist/plugin-sdk/{web-BXsJ1vqe.js → web-JwP9PAZR.js} +1 -1
  237. package/dist/plugin-sdk/whatsapp.d.ts +3 -3
  238. package/dist/plugins/bundled-dir.js +3 -3
  239. package/dist/plugins/discovery.js +11 -11
  240. package/dist/plugins/loader.js +13 -13
  241. package/dist/plugins/manifest-registry.js +2 -2
  242. package/dist/plugins/manifest.js +4 -4
  243. package/dist/plugins/path-safety.js +3 -3
  244. package/dist/plugins/status-cache.js +9 -9
  245. package/dist/plugins/update.js +3 -3
  246. package/dist/plugins/web-search-install-catalog.js +3 -3
  247. package/dist/secrets/apply.js +16 -16
  248. package/dist/secrets/audit.js +11 -11
  249. package/dist/secrets/shared.js +9 -9
  250. package/dist/security/scan-paths.js +2 -2
  251. package/dist/shared/config-eval.js +2 -2
  252. package/dist/shared/pid-alive.js +2 -2
  253. package/dist/tasks/standing-orders.js +5 -5
  254. package/dist/tasks/task-flow-registry.js +5 -5
  255. package/dist/tasks/task-registry.js +5 -5
  256. package/dist/tasks/workflow-definitions.js +6 -6
  257. package/dist/telegram/token.js +5 -5
  258. package/dist/utils.js +5 -5
  259. package/dist/wallet/external-submission-ledger.js +14 -14
  260. package/dist/wallet/local-socket-signer-protocol.js +52 -0
  261. package/dist/wallet/providers/local-socket-signer-adapter.js +3 -2
  262. package/dist/wallet/signer-network-admin.js +9 -3
  263. package/dist/wallet/signer-protocol-v2.generated.js +2 -0
  264. package/dist/wallet/solana-network-discovery.js +113 -0
  265. package/dist/wallet/turnkey-reviewed-state.js +14 -14
  266. package/dist/wallet/wallet-approval-auth.js +3 -3
  267. package/dist/wallet/wallet-atomic-state.js +12 -12
  268. package/dist/wallet/wallet-audit-log.js +5 -5
  269. package/dist/wallet/wallet-inbound-events.js +3 -3
  270. package/dist/wallet/wallet-observability.js +5 -5
  271. package/dist/wallet/wallet-policy.js +8 -6
  272. package/dist/wallet/wallet-provider-registry.js +7 -7
  273. package/dist/wallet/wallet-runtime-config.js +3 -3
  274. package/dist/wallet/wallet-secrets-store.js +22 -22
  275. package/dist/wallet/wallet-send-approvals.js +21 -21
  276. package/dist/wallet/wallet-send-execution-ledger.js +3 -3
  277. package/dist/wallet/wallet-settlement-links.js +3 -3
  278. package/dist/wallet/wallet-standard-review.js +14 -14
  279. package/dist/web/accounts.js +3 -3
  280. package/dist/web/auth-store.js +18 -18
  281. package/dist/web/session.js +4 -4
  282. package/dist/wizard/host-security-capability.js +3 -3
  283. package/dist/wizard/onboarding.host-security.js +3 -3
  284. package/dist/wizard/onboarding.js +17 -15
  285. package/dist/wizard/onboarding.wallet.js +27 -27
  286. package/docs/reference/templates/AGENTS.dev.md +0 -0
  287. package/docs/reference/templates/AGENTS.md +0 -0
  288. package/docs/reference/templates/BOOT.md +0 -0
  289. package/docs/reference/templates/BOOTSTRAP.md +0 -0
  290. package/docs/reference/templates/HEARTBEAT.md +0 -0
  291. package/docs/reference/templates/IDENTITY.dev.md +0 -0
  292. package/docs/reference/templates/IDENTITY.md +0 -0
  293. package/docs/reference/templates/SOUL.dev.md +0 -0
  294. package/docs/reference/templates/SOUL.md +0 -0
  295. package/docs/reference/templates/TOOLS.dev.md +0 -0
  296. package/docs/reference/templates/TOOLS.md +0 -0
  297. package/docs/reference/templates/USER.dev.md +0 -0
  298. package/docs/reference/templates/USER.md +0 -0
  299. package/extensions/acpx/fased.plugin.json +0 -0
  300. package/extensions/acpx/package.json +1 -1
  301. package/extensions/acpx/skills/acp-router/SKILL.md +0 -0
  302. package/extensions/acpx/src/config.ts +0 -0
  303. package/extensions/acpx/src/ensure.ts +0 -0
  304. package/extensions/acpx/src/mcp-readonly-tool-registry.ts +0 -0
  305. package/extensions/acpx/src/mcp-status-adapter.ts +0 -0
  306. package/extensions/acpx/src/runtime-internals/events.ts +0 -0
  307. package/extensions/acpx/src/runtime-internals/process.ts +0 -0
  308. package/extensions/acpx/src/runtime-internals/shared.ts +0 -0
  309. package/extensions/acpx/src/runtime.ts +0 -0
  310. package/extensions/acpx/src/service.ts +0 -0
  311. package/extensions/bluebubbles/README.md +0 -0
  312. package/extensions/bluebubbles/fased.plugin.json +0 -0
  313. package/extensions/bluebubbles/package.json +1 -1
  314. package/extensions/bluebubbles/src/account-resolve.ts +0 -0
  315. package/extensions/bluebubbles/src/accounts.ts +0 -0
  316. package/extensions/bluebubbles/src/actions.ts +0 -0
  317. package/extensions/bluebubbles/src/attachments.ts +0 -0
  318. package/extensions/bluebubbles/src/channel.ts +0 -0
  319. package/extensions/bluebubbles/src/chat.ts +0 -0
  320. package/extensions/bluebubbles/src/config-schema.ts +0 -0
  321. package/extensions/bluebubbles/src/history.ts +0 -0
  322. package/extensions/bluebubbles/src/media-send.ts +0 -0
  323. package/extensions/bluebubbles/src/monitor-normalize.ts +0 -0
  324. package/extensions/bluebubbles/src/monitor-processing.ts +0 -0
  325. package/extensions/bluebubbles/src/monitor-reply-cache.ts +0 -0
  326. package/extensions/bluebubbles/src/monitor-shared.ts +0 -0
  327. package/extensions/bluebubbles/src/monitor.ts +0 -0
  328. package/extensions/bluebubbles/src/multipart.ts +0 -0
  329. package/extensions/bluebubbles/src/onboarding.ts +0 -0
  330. package/extensions/bluebubbles/src/probe.ts +0 -0
  331. package/extensions/bluebubbles/src/reactions.ts +0 -0
  332. package/extensions/bluebubbles/src/request-url.ts +0 -0
  333. package/extensions/bluebubbles/src/runtime.ts +0 -0
  334. package/extensions/bluebubbles/src/send-helpers.ts +0 -0
  335. package/extensions/bluebubbles/src/send.ts +0 -0
  336. package/extensions/bluebubbles/src/targets.ts +0 -0
  337. package/extensions/bluebubbles/src/test-mocks.ts +0 -0
  338. package/extensions/bluebubbles/src/types.ts +0 -0
  339. package/extensions/copilot-proxy/README.md +0 -0
  340. package/extensions/copilot-proxy/fased.plugin.json +0 -0
  341. package/extensions/copilot-proxy/package.json +1 -1
  342. package/extensions/device-pair/fased.plugin.json +0 -0
  343. package/extensions/diagnostics-otel/fased.plugin.json +0 -0
  344. package/extensions/diagnostics-otel/package.json +1 -1
  345. package/extensions/diagnostics-otel/src/service.ts +0 -0
  346. package/extensions/fased-federation/README.md +0 -0
  347. package/extensions/fased-federation/fased.plugin.json +0 -0
  348. package/extensions/fased-federation/package.json +1 -1
  349. package/extensions/google-gemini-cli-auth/README.md +0 -0
  350. package/extensions/google-gemini-cli-auth/fased.plugin.json +0 -0
  351. package/extensions/google-gemini-cli-auth/oauth.ts +0 -0
  352. package/extensions/google-gemini-cli-auth/package.json +1 -1
  353. package/extensions/imessage/fased.plugin.json +0 -0
  354. package/extensions/imessage/package.json +1 -1
  355. package/extensions/imessage/src/channel.ts +0 -0
  356. package/extensions/imessage/src/runtime.ts +0 -0
  357. package/extensions/irc/fased.plugin.json +0 -0
  358. package/extensions/irc/package.json +1 -1
  359. package/extensions/irc/src/accounts.ts +0 -0
  360. package/extensions/irc/src/channel.ts +0 -0
  361. package/extensions/irc/src/client.ts +0 -0
  362. package/extensions/irc/src/config-schema.ts +0 -0
  363. package/extensions/irc/src/connect-options.ts +0 -0
  364. package/extensions/irc/src/control-chars.ts +0 -0
  365. package/extensions/irc/src/inbound.ts +0 -0
  366. package/extensions/irc/src/monitor.ts +0 -0
  367. package/extensions/irc/src/normalize.ts +0 -0
  368. package/extensions/irc/src/onboarding.ts +0 -0
  369. package/extensions/irc/src/policy.ts +0 -0
  370. package/extensions/irc/src/probe.ts +0 -0
  371. package/extensions/irc/src/protocol.ts +0 -0
  372. package/extensions/irc/src/runtime.ts +0 -0
  373. package/extensions/irc/src/send.ts +0 -0
  374. package/extensions/irc/src/types.ts +0 -0
  375. package/extensions/line/fased.plugin.json +0 -0
  376. package/extensions/line/package.json +1 -1
  377. package/extensions/line/src/card-command.ts +0 -0
  378. package/extensions/line/src/channel.ts +0 -0
  379. package/extensions/line/src/runtime.ts +0 -0
  380. package/extensions/llm-task/README.md +0 -0
  381. package/extensions/llm-task/fased.plugin.json +0 -0
  382. package/extensions/llm-task/package.json +1 -1
  383. package/extensions/lobster/README.md +0 -0
  384. package/extensions/lobster/SKILL.md +0 -0
  385. package/extensions/lobster/fased.plugin.json +0 -0
  386. package/extensions/lobster/package.json +1 -1
  387. package/extensions/lobster/src/test-helpers.ts +0 -0
  388. package/extensions/lobster/src/windows-spawn.ts +0 -0
  389. package/extensions/matrix/CHANGELOG.md +12 -0
  390. package/extensions/matrix/fased.plugin.json +0 -0
  391. package/extensions/matrix/package.json +1 -1
  392. package/extensions/matrix/src/actions.ts +0 -0
  393. package/extensions/matrix/src/channel.ts +0 -0
  394. package/extensions/matrix/src/config-schema.ts +0 -0
  395. package/extensions/matrix/src/directory-live.ts +0 -0
  396. package/extensions/matrix/src/group-mentions.ts +0 -0
  397. package/extensions/matrix/src/matrix/accounts.ts +0 -0
  398. package/extensions/matrix/src/matrix/actions/client.ts +0 -0
  399. package/extensions/matrix/src/matrix/actions/limits.ts +0 -0
  400. package/extensions/matrix/src/matrix/actions/messages.ts +0 -0
  401. package/extensions/matrix/src/matrix/actions/pins.ts +0 -0
  402. package/extensions/matrix/src/matrix/actions/reactions.ts +0 -0
  403. package/extensions/matrix/src/matrix/actions/room.ts +0 -0
  404. package/extensions/matrix/src/matrix/actions/summary.ts +0 -0
  405. package/extensions/matrix/src/matrix/actions/types.ts +0 -0
  406. package/extensions/matrix/src/matrix/actions.ts +0 -0
  407. package/extensions/matrix/src/matrix/active-client.ts +0 -0
  408. package/extensions/matrix/src/matrix/client/config.ts +0 -0
  409. package/extensions/matrix/src/matrix/client/create-client.ts +0 -0
  410. package/extensions/matrix/src/matrix/client/logging.ts +0 -0
  411. package/extensions/matrix/src/matrix/client/runtime.ts +0 -0
  412. package/extensions/matrix/src/matrix/client/shared.ts +0 -0
  413. package/extensions/matrix/src/matrix/client/storage.ts +0 -0
  414. package/extensions/matrix/src/matrix/client/types.ts +0 -0
  415. package/extensions/matrix/src/matrix/client-bootstrap.ts +0 -0
  416. package/extensions/matrix/src/matrix/client.ts +0 -0
  417. package/extensions/matrix/src/matrix/credentials.ts +0 -0
  418. package/extensions/matrix/src/matrix/deps.ts +0 -0
  419. package/extensions/matrix/src/matrix/format.ts +0 -0
  420. package/extensions/matrix/src/matrix/monitor/access-policy.ts +0 -0
  421. package/extensions/matrix/src/matrix/monitor/allowlist.ts +0 -0
  422. package/extensions/matrix/src/matrix/monitor/auto-join.ts +0 -0
  423. package/extensions/matrix/src/matrix/monitor/direct.ts +0 -0
  424. package/extensions/matrix/src/matrix/monitor/events.ts +0 -0
  425. package/extensions/matrix/src/matrix/monitor/handler.ts +0 -0
  426. package/extensions/matrix/src/matrix/monitor/inbound-body.ts +0 -0
  427. package/extensions/matrix/src/matrix/monitor/location.ts +0 -0
  428. package/extensions/matrix/src/matrix/monitor/media.ts +0 -0
  429. package/extensions/matrix/src/matrix/monitor/mentions.ts +0 -0
  430. package/extensions/matrix/src/matrix/monitor/replies.ts +0 -0
  431. package/extensions/matrix/src/matrix/monitor/room-info.ts +0 -0
  432. package/extensions/matrix/src/matrix/monitor/rooms.ts +0 -0
  433. package/extensions/matrix/src/matrix/monitor/threads.ts +0 -0
  434. package/extensions/matrix/src/matrix/monitor/types.ts +0 -0
  435. package/extensions/matrix/src/matrix/poll-types.ts +0 -0
  436. package/extensions/matrix/src/matrix/probe.ts +0 -0
  437. package/extensions/matrix/src/matrix/send/client.ts +0 -0
  438. package/extensions/matrix/src/matrix/send/formatting.ts +0 -0
  439. package/extensions/matrix/src/matrix/send/media.ts +0 -0
  440. package/extensions/matrix/src/matrix/send/targets.ts +0 -0
  441. package/extensions/matrix/src/matrix/send/types.ts +0 -0
  442. package/extensions/matrix/src/matrix/send-queue.ts +0 -0
  443. package/extensions/matrix/src/matrix/send.ts +0 -0
  444. package/extensions/matrix/src/onboarding.ts +0 -0
  445. package/extensions/matrix/src/outbound.ts +0 -0
  446. package/extensions/matrix/src/resolve-targets.ts +0 -0
  447. package/extensions/matrix/src/runtime.ts +0 -0
  448. package/extensions/matrix/src/tool-actions.ts +0 -0
  449. package/extensions/matrix/src/types.ts +0 -0
  450. package/extensions/mattermost/fased.plugin.json +0 -0
  451. package/extensions/mattermost/package.json +1 -1
  452. package/extensions/mattermost/src/channel.ts +0 -0
  453. package/extensions/mattermost/src/config-schema.ts +0 -0
  454. package/extensions/mattermost/src/group-mentions.ts +0 -0
  455. package/extensions/mattermost/src/mattermost/accounts.ts +0 -0
  456. package/extensions/mattermost/src/mattermost/client.ts +0 -0
  457. package/extensions/mattermost/src/mattermost/monitor-auth.ts +0 -0
  458. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -0
  459. package/extensions/mattermost/src/mattermost/monitor-onchar.ts +0 -0
  460. package/extensions/mattermost/src/mattermost/monitor-websocket.ts +0 -0
  461. package/extensions/mattermost/src/mattermost/monitor.ts +0 -0
  462. package/extensions/mattermost/src/mattermost/probe.ts +0 -0
  463. package/extensions/mattermost/src/mattermost/reactions.test-helpers.ts +0 -0
  464. package/extensions/mattermost/src/mattermost/reactions.ts +0 -0
  465. package/extensions/mattermost/src/mattermost/reconnect.ts +0 -0
  466. package/extensions/mattermost/src/mattermost/send.ts +0 -0
  467. package/extensions/mattermost/src/normalize.ts +0 -0
  468. package/extensions/mattermost/src/onboarding-helpers.ts +0 -0
  469. package/extensions/mattermost/src/onboarding.ts +0 -0
  470. package/extensions/mattermost/src/runtime.ts +0 -0
  471. package/extensions/mattermost/src/types.ts +0 -0
  472. package/extensions/memory-core/fased.plugin.json +0 -0
  473. package/extensions/memory-core/package.json +2 -2
  474. package/extensions/memory-lancedb/config.ts +0 -0
  475. package/extensions/memory-lancedb/fased.plugin.json +0 -0
  476. package/extensions/memory-lancedb/package.json +1 -1
  477. package/extensions/minimax-portal-auth/README.md +0 -0
  478. package/extensions/minimax-portal-auth/fased.plugin.json +0 -0
  479. package/extensions/minimax-portal-auth/oauth.ts +0 -0
  480. package/extensions/minimax-portal-auth/package.json +1 -1
  481. package/extensions/msteams/CHANGELOG.md +12 -0
  482. package/extensions/msteams/fased.plugin.json +0 -0
  483. package/extensions/msteams/package.json +1 -1
  484. package/extensions/msteams/src/attachments/download.ts +0 -0
  485. package/extensions/msteams/src/attachments/graph.ts +0 -0
  486. package/extensions/msteams/src/attachments/html.ts +0 -0
  487. package/extensions/msteams/src/attachments/payload.ts +0 -0
  488. package/extensions/msteams/src/attachments/remote-media.ts +0 -0
  489. package/extensions/msteams/src/attachments/shared.ts +0 -0
  490. package/extensions/msteams/src/attachments/types.ts +0 -0
  491. package/extensions/msteams/src/attachments.ts +0 -0
  492. package/extensions/msteams/src/channel.ts +0 -0
  493. package/extensions/msteams/src/conversation-store-fs.ts +0 -0
  494. package/extensions/msteams/src/conversation-store-memory.ts +0 -0
  495. package/extensions/msteams/src/conversation-store.ts +0 -0
  496. package/extensions/msteams/src/directory-live.ts +0 -0
  497. package/extensions/msteams/src/errors.ts +0 -0
  498. package/extensions/msteams/src/file-consent-helpers.ts +0 -0
  499. package/extensions/msteams/src/file-consent.ts +0 -0
  500. package/extensions/msteams/src/file-lock.ts +0 -0
  501. package/extensions/msteams/src/graph-chat.ts +0 -0
  502. package/extensions/msteams/src/graph-upload.ts +0 -0
  503. package/extensions/msteams/src/graph-users.ts +0 -0
  504. package/extensions/msteams/src/graph.ts +0 -0
  505. package/extensions/msteams/src/inbound.ts +0 -0
  506. package/extensions/msteams/src/media-helpers.ts +0 -0
  507. package/extensions/msteams/src/mentions.ts +0 -0
  508. package/extensions/msteams/src/messenger.ts +0 -0
  509. package/extensions/msteams/src/monitor-handler/inbound-media.ts +0 -0
  510. package/extensions/msteams/src/monitor-handler/message-handler.ts +0 -0
  511. package/extensions/msteams/src/monitor-handler.ts +0 -0
  512. package/extensions/msteams/src/monitor-types.ts +0 -0
  513. package/extensions/msteams/src/monitor.ts +0 -0
  514. package/extensions/msteams/src/onboarding.ts +0 -0
  515. package/extensions/msteams/src/outbound.ts +0 -0
  516. package/extensions/msteams/src/pending-uploads.ts +0 -0
  517. package/extensions/msteams/src/policy.ts +0 -0
  518. package/extensions/msteams/src/polls-store-memory.ts +0 -0
  519. package/extensions/msteams/src/polls.ts +0 -0
  520. package/extensions/msteams/src/probe.ts +0 -0
  521. package/extensions/msteams/src/reply-dispatcher.ts +0 -0
  522. package/extensions/msteams/src/resolve-allowlist.ts +0 -0
  523. package/extensions/msteams/src/runtime.ts +0 -0
  524. package/extensions/msteams/src/sdk-types.ts +0 -0
  525. package/extensions/msteams/src/sdk.ts +0 -0
  526. package/extensions/msteams/src/send-context.ts +0 -0
  527. package/extensions/msteams/src/send.ts +0 -0
  528. package/extensions/msteams/src/sent-message-cache.ts +0 -0
  529. package/extensions/msteams/src/storage.ts +0 -0
  530. package/extensions/msteams/src/store-fs.ts +0 -0
  531. package/extensions/msteams/src/test-runtime.ts +0 -0
  532. package/extensions/msteams/src/token-response.ts +0 -0
  533. package/extensions/msteams/src/token.ts +0 -0
  534. package/extensions/nextcloud-talk/fased.plugin.json +0 -0
  535. package/extensions/nextcloud-talk/package.json +1 -1
  536. package/extensions/nextcloud-talk/src/accounts.ts +0 -0
  537. package/extensions/nextcloud-talk/src/config-schema.ts +0 -0
  538. package/extensions/nextcloud-talk/src/format.ts +0 -0
  539. package/extensions/nextcloud-talk/src/inbound.ts +0 -0
  540. package/extensions/nextcloud-talk/src/monitor.ts +0 -0
  541. package/extensions/nextcloud-talk/src/normalize.ts +0 -0
  542. package/extensions/nextcloud-talk/src/onboarding.ts +0 -0
  543. package/extensions/nextcloud-talk/src/policy.ts +0 -0
  544. package/extensions/nextcloud-talk/src/replay-guard.ts +0 -0
  545. package/extensions/nextcloud-talk/src/room-info.ts +0 -0
  546. package/extensions/nextcloud-talk/src/runtime.ts +0 -0
  547. package/extensions/nextcloud-talk/src/send.ts +0 -0
  548. package/extensions/nextcloud-talk/src/signature.ts +0 -0
  549. package/extensions/nextcloud-talk/src/types.ts +0 -0
  550. package/extensions/nostr/CHANGELOG.md +12 -0
  551. package/extensions/nostr/README.md +0 -0
  552. package/extensions/nostr/fased.plugin.json +0 -0
  553. package/extensions/nostr/package.json +1 -1
  554. package/extensions/nostr/src/channel.ts +0 -0
  555. package/extensions/nostr/src/config-schema.ts +0 -0
  556. package/extensions/nostr/src/metrics.ts +0 -0
  557. package/extensions/nostr/src/nostr-bus.ts +0 -0
  558. package/extensions/nostr/src/nostr-profile-http.ts +0 -0
  559. package/extensions/nostr/src/nostr-profile-import.ts +0 -0
  560. package/extensions/nostr/src/nostr-profile.ts +0 -0
  561. package/extensions/nostr/src/nostr-state-store.ts +0 -0
  562. package/extensions/nostr/src/onboarding.ts +0 -0
  563. package/extensions/nostr/src/runtime.ts +0 -0
  564. package/extensions/nostr/src/seen-tracker.ts +0 -0
  565. package/extensions/nostr/src/types.ts +0 -0
  566. package/extensions/nostr/test/setup.ts +0 -0
  567. package/extensions/open-prose/README.md +0 -0
  568. package/extensions/open-prose/fased.plugin.json +0 -0
  569. package/extensions/open-prose/package.json +1 -1
  570. package/extensions/open-prose/skills/prose/LICENSE +0 -0
  571. package/extensions/open-prose/skills/prose/SKILL.md +0 -0
  572. package/extensions/open-prose/skills/prose/alt-borges.md +0 -0
  573. package/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -0
  574. package/extensions/open-prose/skills/prose/alts/borges.md +0 -0
  575. package/extensions/open-prose/skills/prose/alts/folk.md +0 -0
  576. package/extensions/open-prose/skills/prose/alts/homer.md +0 -0
  577. package/extensions/open-prose/skills/prose/alts/kafka.md +0 -0
  578. package/extensions/open-prose/skills/prose/compiler.md +0 -0
  579. package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -0
  580. package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -0
  581. package/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -0
  582. package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -0
  583. package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -0
  584. package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -0
  585. package/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -0
  586. package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -0
  587. package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -0
  588. package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -0
  589. package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -0
  590. package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -0
  591. package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -0
  592. package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -0
  593. package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -0
  594. package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -0
  595. package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -0
  596. package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -0
  597. package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -0
  598. package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -0
  599. package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -0
  600. package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -0
  601. package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -0
  602. package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -0
  603. package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -0
  604. package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -0
  605. package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -0
  606. package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -0
  607. package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -0
  608. package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -0
  609. package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -0
  610. package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -0
  611. package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -0
  612. package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -0
  613. package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -0
  614. package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -0
  615. package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -0
  616. package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -0
  617. package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -0
  618. package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -0
  619. package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -0
  620. package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -0
  621. package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -0
  622. package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -0
  623. package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -0
  624. package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -0
  625. package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -0
  626. package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -0
  627. package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -0
  628. package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -0
  629. package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -0
  630. package/extensions/open-prose/skills/prose/examples/README.md +0 -0
  631. package/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -0
  632. package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -0
  633. package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -0
  634. package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -0
  635. package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -0
  636. package/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -0
  637. package/extensions/open-prose/skills/prose/guidance/patterns.md +0 -0
  638. package/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -0
  639. package/extensions/open-prose/skills/prose/help.md +0 -0
  640. package/extensions/open-prose/skills/prose/lib/README.md +0 -0
  641. package/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -0
  642. package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -0
  643. package/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -0
  644. package/extensions/open-prose/skills/prose/lib/inspector.prose +0 -0
  645. package/extensions/open-prose/skills/prose/lib/profiler.prose +0 -0
  646. package/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -0
  647. package/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -0
  648. package/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -0
  649. package/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -0
  650. package/extensions/open-prose/skills/prose/primitives/session.md +0 -0
  651. package/extensions/open-prose/skills/prose/prose.md +0 -0
  652. package/extensions/open-prose/skills/prose/state/filesystem.md +0 -0
  653. package/extensions/open-prose/skills/prose/state/in-context.md +0 -0
  654. package/extensions/open-prose/skills/prose/state/postgres.md +0 -0
  655. package/extensions/open-prose/skills/prose/state/sqlite.md +0 -0
  656. package/extensions/phone-control/fased.plugin.json +0 -0
  657. package/extensions/qwen-portal-auth/README.md +0 -0
  658. package/extensions/qwen-portal-auth/fased.plugin.json +0 -0
  659. package/extensions/qwen-portal-auth/oauth.ts +0 -0
  660. package/extensions/sat-mining/fased.plugin.json +0 -0
  661. package/extensions/sat-mining/index.ts +100 -1
  662. package/extensions/sat-mining/package.json +1 -1
  663. package/extensions/sat-mining/skills/sat-mining/SKILL.md +0 -0
  664. package/extensions/sat-mining/src/audit-store.ts +45 -4
  665. package/extensions/sat-mining/src/auto-planner.ts +0 -0
  666. package/extensions/sat-mining/src/chain-time.ts +0 -0
  667. package/extensions/sat-mining/src/client.ts +13 -0
  668. package/extensions/sat-mining/src/dispute-review.ts +0 -0
  669. package/extensions/sat-mining/src/hash-spec.ts +0 -0
  670. package/extensions/sat-mining/src/planner-analytics.ts +0 -0
  671. package/extensions/sat-mining/src/planner-outcomes.ts +0 -0
  672. package/extensions/sat-mining/src/planner-policy-eval.ts +0 -0
  673. package/extensions/sat-mining/src/planner-policy.ts +0 -0
  674. package/extensions/sat-mining/src/replay.ts +0 -0
  675. package/extensions/sat-mining/src/rpc-read.ts +105 -21
  676. package/extensions/sat-mining/src/runtime.ts +2 -0
  677. package/extensions/sat-mining/src/service-read-timeout.ts +0 -0
  678. package/extensions/sat-mining/src/solana-submit.ts +593 -22
  679. package/extensions/sat-mining/src/strategy-base.ts +0 -0
  680. package/extensions/sat-mining/src/strategy-engine.ts +0 -0
  681. package/extensions/sat-mining/src/strategy-validate.ts +0 -0
  682. package/extensions/sat-mining/src/submission-ledger.ts +20 -4
  683. package/extensions/shared/resolve-target-test-helpers.ts +0 -0
  684. package/extensions/signal/fased.plugin.json +0 -0
  685. package/extensions/signal/package.json +1 -1
  686. package/extensions/signal/src/channel.ts +0 -0
  687. package/extensions/signal/src/runtime.ts +0 -0
  688. package/extensions/synology-chat/fased.plugin.json +0 -0
  689. package/extensions/synology-chat/package.json +1 -1
  690. package/extensions/synology-chat/src/accounts.ts +0 -0
  691. package/extensions/synology-chat/src/channel.ts +0 -0
  692. package/extensions/synology-chat/src/client.ts +0 -0
  693. package/extensions/synology-chat/src/runtime.ts +0 -0
  694. package/extensions/synology-chat/src/security.ts +0 -0
  695. package/extensions/synology-chat/src/types.ts +0 -0
  696. package/extensions/synology-chat/src/webhook-handler.ts +0 -0
  697. package/extensions/talk-voice/fased.plugin.json +0 -0
  698. package/extensions/thread-ownership/fased.plugin.json +0 -0
  699. package/extensions/tlon/README.md +0 -0
  700. package/extensions/tlon/fased.plugin.json +0 -0
  701. package/extensions/tlon/package.json +1 -1
  702. package/extensions/tlon/src/account-fields.ts +0 -0
  703. package/extensions/tlon/src/channel.ts +0 -0
  704. package/extensions/tlon/src/config-schema.ts +0 -0
  705. package/extensions/tlon/src/monitor/discovery.ts +0 -0
  706. package/extensions/tlon/src/monitor/history.ts +0 -0
  707. package/extensions/tlon/src/monitor/processed-messages.ts +0 -0
  708. package/extensions/tlon/src/monitor/utils.ts +0 -0
  709. package/extensions/tlon/src/onboarding.ts +0 -0
  710. package/extensions/tlon/src/runtime.ts +0 -0
  711. package/extensions/tlon/src/targets.ts +0 -0
  712. package/extensions/tlon/src/types.ts +0 -0
  713. package/extensions/tlon/src/urbit/auth.ts +0 -0
  714. package/extensions/tlon/src/urbit/base-url.ts +0 -0
  715. package/extensions/tlon/src/urbit/channel-client.ts +0 -0
  716. package/extensions/tlon/src/urbit/channel-ops.ts +0 -0
  717. package/extensions/tlon/src/urbit/context.ts +0 -0
  718. package/extensions/tlon/src/urbit/errors.ts +0 -0
  719. package/extensions/tlon/src/urbit/fetch.ts +0 -0
  720. package/extensions/tlon/src/urbit/send.ts +0 -0
  721. package/extensions/tlon/src/urbit/sse-client.ts +0 -0
  722. package/extensions/twitch/CHANGELOG.md +12 -0
  723. package/extensions/twitch/README.md +0 -0
  724. package/extensions/twitch/fased.plugin.json +0 -0
  725. package/extensions/twitch/package.json +1 -1
  726. package/extensions/twitch/src/access-control.ts +0 -0
  727. package/extensions/twitch/src/actions.ts +0 -0
  728. package/extensions/twitch/src/client-manager-registry.ts +0 -0
  729. package/extensions/twitch/src/config-schema.ts +0 -0
  730. package/extensions/twitch/src/config.ts +0 -0
  731. package/extensions/twitch/src/monitor.ts +0 -0
  732. package/extensions/twitch/src/onboarding.ts +0 -0
  733. package/extensions/twitch/src/outbound.ts +0 -0
  734. package/extensions/twitch/src/probe.ts +0 -0
  735. package/extensions/twitch/src/resolver.ts +0 -0
  736. package/extensions/twitch/src/runtime.ts +0 -0
  737. package/extensions/twitch/src/send.ts +0 -0
  738. package/extensions/twitch/src/status.ts +0 -0
  739. package/extensions/twitch/src/test-fixtures.ts +0 -0
  740. package/extensions/twitch/src/twitch-client.ts +0 -0
  741. package/extensions/twitch/src/utils/markdown.ts +0 -0
  742. package/extensions/twitch/src/utils/twitch.ts +0 -0
  743. package/extensions/twitch/test/setup.ts +0 -0
  744. package/extensions/voice-call/CHANGELOG.md +12 -0
  745. package/extensions/voice-call/README.md +0 -0
  746. package/extensions/voice-call/fased.plugin.json +0 -0
  747. package/extensions/voice-call/package.json +1 -1
  748. package/extensions/voice-call/src/allowlist.ts +0 -0
  749. package/extensions/voice-call/src/cli.ts +0 -0
  750. package/extensions/voice-call/src/core-bridge.ts +0 -0
  751. package/extensions/voice-call/src/http-headers.ts +0 -0
  752. package/extensions/voice-call/src/manager/context.ts +0 -0
  753. package/extensions/voice-call/src/manager/events.ts +0 -0
  754. package/extensions/voice-call/src/manager/lookup.ts +0 -0
  755. package/extensions/voice-call/src/manager/outbound.ts +0 -0
  756. package/extensions/voice-call/src/manager/state.ts +0 -0
  757. package/extensions/voice-call/src/manager/store.ts +0 -0
  758. package/extensions/voice-call/src/manager/timers.ts +0 -0
  759. package/extensions/voice-call/src/manager/twiml.ts +0 -0
  760. package/extensions/voice-call/src/manager.ts +0 -0
  761. package/extensions/voice-call/src/media-stream.ts +0 -0
  762. package/extensions/voice-call/src/providers/base.ts +0 -0
  763. package/extensions/voice-call/src/providers/mock.ts +0 -0
  764. package/extensions/voice-call/src/providers/plivo.ts +0 -0
  765. package/extensions/voice-call/src/providers/shared/guarded-json-api.ts +0 -0
  766. package/extensions/voice-call/src/providers/stt-openai-realtime.ts +0 -0
  767. package/extensions/voice-call/src/providers/telnyx.ts +0 -0
  768. package/extensions/voice-call/src/providers/tts-openai.ts +0 -0
  769. package/extensions/voice-call/src/providers/twilio/api.ts +0 -0
  770. package/extensions/voice-call/src/providers/twilio/webhook.ts +0 -0
  771. package/extensions/voice-call/src/providers/twilio.ts +0 -0
  772. package/extensions/voice-call/src/response-generator.ts +0 -0
  773. package/extensions/voice-call/src/runtime.ts +0 -0
  774. package/extensions/voice-call/src/telephony-audio.ts +0 -0
  775. package/extensions/voice-call/src/telephony-tts.ts +0 -0
  776. package/extensions/voice-call/src/tunnel.ts +0 -0
  777. package/extensions/voice-call/src/types.ts +0 -0
  778. package/extensions/voice-call/src/utils.ts +0 -0
  779. package/extensions/voice-call/src/voice-mapping.ts +0 -0
  780. package/extensions/voice-call/src/webhook/stale-call-reaper.ts +0 -0
  781. package/extensions/voice-call/src/webhook-security.ts +0 -0
  782. package/extensions/zalo/CHANGELOG.md +12 -0
  783. package/extensions/zalo/README.md +0 -0
  784. package/extensions/zalo/fased.plugin.json +0 -0
  785. package/extensions/zalo/package.json +1 -1
  786. package/extensions/zalo/src/accounts.ts +0 -0
  787. package/extensions/zalo/src/actions.ts +0 -0
  788. package/extensions/zalo/src/api.ts +0 -0
  789. package/extensions/zalo/src/channel.ts +0 -0
  790. package/extensions/zalo/src/config-schema.ts +0 -0
  791. package/extensions/zalo/src/group-access.ts +0 -0
  792. package/extensions/zalo/src/monitor.ts +0 -0
  793. package/extensions/zalo/src/monitor.webhook.ts +0 -0
  794. package/extensions/zalo/src/onboarding.ts +0 -0
  795. package/extensions/zalo/src/probe.ts +0 -0
  796. package/extensions/zalo/src/proxy.ts +0 -0
  797. package/extensions/zalo/src/runtime.ts +0 -0
  798. package/extensions/zalo/src/send.ts +0 -0
  799. package/extensions/zalo/src/status-issues.ts +0 -0
  800. package/extensions/zalo/src/token.ts +0 -0
  801. package/extensions/zalo/src/types.ts +0 -0
  802. package/extensions/zalouser/CHANGELOG.md +12 -0
  803. package/extensions/zalouser/README.md +0 -0
  804. package/extensions/zalouser/fased.plugin.json +0 -0
  805. package/extensions/zalouser/package.json +1 -1
  806. package/extensions/zalouser/src/accounts.ts +0 -0
  807. package/extensions/zalouser/src/channel.ts +0 -0
  808. package/extensions/zalouser/src/config-schema.ts +0 -0
  809. package/extensions/zalouser/src/monitor.ts +0 -0
  810. package/extensions/zalouser/src/onboarding.ts +0 -0
  811. package/extensions/zalouser/src/probe.ts +0 -0
  812. package/extensions/zalouser/src/runtime.ts +0 -0
  813. package/extensions/zalouser/src/send.ts +0 -0
  814. package/extensions/zalouser/src/status-issues.ts +0 -0
  815. package/extensions/zalouser/src/tool.ts +0 -0
  816. package/extensions/zalouser/src/types.ts +0 -0
  817. package/extensions/zalouser/src/zca.ts +0 -0
  818. package/install.sh +15 -16
  819. package/package.json +1 -1
  820. package/scripts/fased-launcher-runtime.mjs +0 -0
  821. package/scripts/fased-managed-updater.mjs +1 -1
  822. package/scripts/fased-signer-network-hosting.sh +18 -7
  823. package/scripts/fased-signer-owner-policy.mjs +13 -1
  824. package/scripts/run-node.mjs +0 -0
  825. package/scripts/start-managed.sh +4 -0
  826. package/shared/sat-hash-v1.json +0 -0
  827. package/skills/1password/SKILL.md +0 -0
  828. package/skills/1password/references/cli-examples.md +0 -0
  829. package/skills/1password/references/get-started.md +0 -0
  830. package/skills/apple-notes/SKILL.md +0 -0
  831. package/skills/apple-reminders/SKILL.md +0 -0
  832. package/skills/bear-notes/SKILL.md +0 -0
  833. package/skills/blogwatcher/SKILL.md +0 -0
  834. package/skills/blucli/SKILL.md +0 -0
  835. package/skills/bluebubbles/SKILL.md +0 -0
  836. package/skills/camsnap/SKILL.md +0 -0
  837. package/skills/canvas/SKILL.md +0 -0
  838. package/skills/clawhub/SKILL.md +0 -0
  839. package/skills/coding-agent/SKILL.md +0 -0
  840. package/skills/diagram-maker/SKILL.md +0 -0
  841. package/skills/diagram-maker/references/excalidraw-patterns.md +0 -0
  842. package/skills/diagram-maker/references/svg-template.md +0 -0
  843. package/skills/discord/SKILL.md +0 -0
  844. package/skills/eightctl/SKILL.md +0 -0
  845. package/skills/food-order/SKILL.md +0 -0
  846. package/skills/gemini/SKILL.md +0 -0
  847. package/skills/gh-issues/SKILL.md +0 -0
  848. package/skills/gifgrep/SKILL.md +0 -0
  849. package/skills/github/SKILL.md +0 -0
  850. package/skills/gog/SKILL.md +0 -0
  851. package/skills/goplaces/SKILL.md +0 -0
  852. package/skills/healthcheck/SKILL.md +0 -0
  853. package/skills/himalaya/SKILL.md +0 -0
  854. package/skills/himalaya/references/configuration.md +0 -0
  855. package/skills/himalaya/references/message-composition.md +0 -0
  856. package/skills/imsg/SKILL.md +0 -0
  857. package/skills/mcporter/SKILL.md +0 -0
  858. package/skills/model-usage/SKILL.md +0 -0
  859. package/skills/model-usage/references/codexbar-cli.md +0 -0
  860. package/skills/model-usage/scripts/model_usage.py +0 -0
  861. package/skills/model-usage/scripts/test_model_usage.py +0 -0
  862. package/skills/nano-banana-pro/SKILL.md +0 -0
  863. package/skills/nano-pdf/SKILL.md +0 -0
  864. package/skills/node-connect/SKILL.md +0 -0
  865. package/skills/node-inspect-debugger/SKILL.md +0 -0
  866. package/skills/notion/SKILL.md +0 -0
  867. package/skills/obsidian/SKILL.md +0 -0
  868. package/skills/openai-image-gen/SKILL.md +0 -0
  869. package/skills/openai-image-gen/scripts/gen.py +0 -0
  870. package/skills/openai-image-gen/scripts/test_gen.py +0 -0
  871. package/skills/openai-whisper/SKILL.md +0 -0
  872. package/skills/openai-whisper-api/SKILL.md +0 -0
  873. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -0
  874. package/skills/opencode/SKILL.md +0 -0
  875. package/skills/openhue/SKILL.md +0 -0
  876. package/skills/oracle/SKILL.md +0 -0
  877. package/skills/ordercli/SKILL.md +0 -0
  878. package/skills/peekaboo/SKILL.md +0 -0
  879. package/skills/python-debugpy/SKILL.md +0 -0
  880. package/skills/sag/SKILL.md +0 -0
  881. package/skills/session-logs/SKILL.md +0 -0
  882. package/skills/sherpa-onnx-tts/SKILL.md +0 -0
  883. package/skills/skill-creator/SKILL.md +0 -0
  884. package/skills/skill-creator/license.txt +0 -0
  885. package/skills/skill-creator/scripts/init_skill.py +0 -0
  886. package/skills/skill-creator/scripts/package_skill.py +0 -0
  887. package/skills/skill-creator/scripts/quick_validate.py +0 -0
  888. package/skills/skill-creator/scripts/test_package_skill.py +0 -0
  889. package/skills/skill-creator/scripts/test_quick_validate.py +0 -0
  890. package/skills/skill-workshop/SKILL.md +0 -0
  891. package/skills/slack/SKILL.md +0 -0
  892. package/skills/songsee/SKILL.md +0 -0
  893. package/skills/sonoscli/SKILL.md +0 -0
  894. package/skills/spotify-player/SKILL.md +0 -0
  895. package/skills/summarize/SKILL.md +0 -0
  896. package/skills/things-mac/SKILL.md +0 -0
  897. package/skills/tmux/SKILL.md +0 -0
  898. package/skills/trello/SKILL.md +0 -0
  899. package/skills/video-frames/SKILL.md +0 -0
  900. package/skills/video-frames/scripts/frame.sh +0 -0
  901. package/skills/voice-call/SKILL.md +0 -0
  902. package/skills/wacli/SKILL.md +0 -0
  903. package/skills/wallet-actions/SKILL.md +0 -0
  904. package/skills/weather/SKILL.md +0 -0
  905. package/skills/xurl/SKILL.md +0 -0
@@ -11,28 +11,28 @@ import { loadSessionStore } from "../config/sessions/store.js";
11
11
  import { ensureSessionTranscriptHeader } from "../config/sessions/transcript.js";
12
12
  import "../config/sessions.js";
13
13
  import { note } from "../terminal/note.js";
14
- import syncFs from "node:fs";
14
+ import fs from "node:fs";
15
15
  import os from "node:os";
16
16
  import path from "node:path";
17
17
 
18
18
  //#region src/commands/doctor-state-integrity.ts
19
19
  function existsDir(dir) {
20
20
  try {
21
- return syncFs.existsSync(dir) && syncFs.statSync(dir).isDirectory();
21
+ return fs.existsSync(dir) && fs.statSync(dir).isDirectory();
22
22
  } catch {
23
23
  return false;
24
24
  }
25
25
  }
26
26
  function existsFile(filePath) {
27
27
  try {
28
- return syncFs.existsSync(filePath) && syncFs.statSync(filePath).isFile();
28
+ return fs.existsSync(filePath) && fs.statSync(filePath).isFile();
29
29
  } catch {
30
30
  return false;
31
31
  }
32
32
  }
33
33
  function canWriteDir(dir) {
34
34
  try {
35
- syncFs.accessSync(dir, syncFs.constants.W_OK);
35
+ fs.accessSync(dir, fs.constants.W_OK);
36
36
  return true;
37
37
  } catch {
38
38
  return false;
@@ -40,7 +40,7 @@ function canWriteDir(dir) {
40
40
  }
41
41
  function ensureDir(dir) {
42
42
  try {
43
- syncFs.mkdirSync(dir, { recursive: true });
43
+ fs.mkdirSync(dir, { recursive: true });
44
44
  return { ok: true };
45
45
  } catch (err) {
46
46
  return {
@@ -53,7 +53,7 @@ function dirPermissionHint(dir) {
53
53
  const uid = typeof process.getuid === "function" ? process.getuid() : null;
54
54
  const gid = typeof process.getgid === "function" ? process.getgid() : null;
55
55
  try {
56
- const stat = syncFs.statSync(dir);
56
+ const stat = fs.statSync(dir);
57
57
  if (uid !== null && stat.uid !== uid) {
58
58
  return `Owner mismatch (uid ${stat.uid}). Run: sudo chown -R $USER "${dir}"`;
59
59
  }
@@ -71,7 +71,7 @@ function addUserRwx(mode) {
71
71
  }
72
72
  function countJsonlLines(filePath) {
73
73
  try {
74
- const raw = syncFs.readFileSync(filePath, "utf-8");
74
+ const raw = fs.readFileSync(filePath, "utf-8");
75
75
  if (!raw) {
76
76
  return 0;
77
77
  }
@@ -96,7 +96,7 @@ function findOtherStateDirs(stateDir) {
96
96
  for (const root of roots) {
97
97
  let entries = [];
98
98
  try {
99
- entries = syncFs.readdirSync(root, { withFileTypes: true });
99
+ entries = fs.readdirSync(root, { withFileTypes: true });
100
100
  } catch {
101
101
  continue;
102
102
  }
@@ -226,9 +226,9 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
226
226
  });
227
227
  if (repair) {
228
228
  try {
229
- const stat = syncFs.statSync(stateDir);
229
+ const stat = fs.statSync(stateDir);
230
230
  const target = addUserRwx(stat.mode);
231
- syncFs.chmodSync(stateDir, target);
231
+ fs.chmodSync(stateDir, target);
232
232
  changes.push(`- Repaired permissions on ${displayStateDir}`);
233
233
  } catch (err) {
234
234
  warnings.push(`- Failed to repair ${displayStateDir}: ${String(err)}`);
@@ -237,10 +237,10 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
237
237
  }
238
238
  if (stateDirExists && process.platform !== "win32") {
239
239
  try {
240
- const dirLstat = syncFs.lstatSync(stateDir);
240
+ const dirLstat = fs.lstatSync(stateDir);
241
241
  const isDirSymlink = dirLstat.isSymbolicLink();
242
- const stat = isDirSymlink ? syncFs.statSync(stateDir) : dirLstat;
243
- const resolvedDir = isDirSymlink ? syncFs.realpathSync(stateDir) : stateDir;
242
+ const stat = isDirSymlink ? fs.statSync(stateDir) : dirLstat;
243
+ const resolvedDir = isDirSymlink ? fs.realpathSync(stateDir) : stateDir;
244
244
  const isImmutableStore = resolvedDir.startsWith("/nix/store/");
245
245
  if (!isImmutableStore && (stat.mode & 63) !== 0) {
246
246
  warnings.push(`- State directory permissions are too open (${displayStateDir}). Recommend chmod 700.`);
@@ -249,7 +249,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
249
249
  initialValue: true
250
250
  });
251
251
  if (tighten) {
252
- syncFs.chmodSync(stateDir, 448);
252
+ fs.chmodSync(stateDir, 448);
253
253
  changes.push(`- Tightened permissions on ${displayStateDir} to 700`);
254
254
  }
255
255
  }
@@ -259,10 +259,10 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
259
259
  }
260
260
  if (configPath && existsFile(configPath) && process.platform !== "win32") {
261
261
  try {
262
- const configLstat = syncFs.lstatSync(configPath);
262
+ const configLstat = fs.lstatSync(configPath);
263
263
  const isSymlink = configLstat.isSymbolicLink();
264
- const stat = isSymlink ? syncFs.statSync(configPath) : configLstat;
265
- const resolvedConfig = isSymlink ? syncFs.realpathSync(configPath) : configPath;
264
+ const stat = isSymlink ? fs.statSync(configPath) : configLstat;
265
+ const resolvedConfig = isSymlink ? fs.realpathSync(configPath) : configPath;
266
266
  const isImmutableConfig = resolvedConfig.startsWith("/nix/store/");
267
267
  if (!isImmutableConfig && (stat.mode & 63) !== 0) {
268
268
  warnings.push(`- Config file is group/world readable (${displayConfigPath ?? configPath}). Recommend chmod 600.`);
@@ -271,7 +271,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
271
271
  initialValue: true
272
272
  });
273
273
  if (tighten) {
274
- syncFs.chmodSync(configPath, 384);
274
+ fs.chmodSync(configPath, 384);
275
275
  changes.push(`- Tightened permissions on ${displayConfigPath ?? configPath} to 600`);
276
276
  }
277
277
  }
@@ -330,9 +330,9 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
330
330
  });
331
331
  if (repair) {
332
332
  try {
333
- const stat = syncFs.statSync(dir);
333
+ const stat = fs.statSync(dir);
334
334
  const target = addUserRwx(stat.mode);
335
- syncFs.chmodSync(dir, target);
335
+ fs.chmodSync(dir, target);
336
336
  changes.push(`- Repaired permissions on ${label}: ${displayDir}`);
337
337
  } catch (err) {
338
338
  warnings.push(`- Failed to repair ${displayDir}: ${String(err)}`);
@@ -432,7 +432,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
432
432
  referencedTranscriptPaths.add(path.resolve(resolveSessionFilePath(entry.sessionId, entry, sessionPathOpts)));
433
433
  } catch {}
434
434
  }
435
- const sessionDirEntries = syncFs.readdirSync(sessionsDir, { withFileTypes: true });
435
+ const sessionDirEntries = fs.readdirSync(sessionsDir, { withFileTypes: true });
436
436
  const orphanTranscriptPaths = sessionDirEntries.filter((entry) => entry.isFile() && isPrimarySessionTranscriptFileName(entry.name)).map((entry) => path.resolve(path.join(sessionsDir, entry.name))).filter((filePath) => !referencedTranscriptPaths.has(filePath));
437
437
  if (orphanTranscriptPaths.length > 0) {
438
438
  warnings.push(`- Found ${orphanTranscriptPaths.length} orphan transcript file(s) in ${displaySessionsDir}. They are not referenced by sessions.json and can consume disk over time.`);
@@ -446,7 +446,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
446
446
  for (const orphanPath of orphanTranscriptPaths) {
447
447
  const archivedPath = `${orphanPath}.deleted.${archivedAt}`;
448
448
  try {
449
- syncFs.renameSync(orphanPath, archivedPath);
449
+ fs.renameSync(orphanPath, archivedPath);
450
450
  archived += 1;
451
451
  } catch (err) {
452
452
  warnings.push(`- Failed to archive orphan transcript ${shortenHomePath(orphanPath)}: ${String(err)}`);
@@ -470,7 +470,7 @@ function noteWorkspaceBackupTip(workspaceDir) {
470
470
  return;
471
471
  }
472
472
  const gitMarker = path.join(workspaceDir, ".git");
473
- if (syncFs.existsSync(gitMarker)) {
473
+ if (fs.existsSync(gitMarker)) {
474
474
  return;
475
475
  }
476
476
  note([
@@ -1,6 +1,6 @@
1
1
  import { shortenHomePath } from "../utils.js";
2
2
  import { DEFAULT_AGENTS_FILENAME } from "../agents/workspace.js";
3
- import syncFs from "node:fs";
3
+ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
 
6
6
  //#region src/commands/doctor-workspace.ts
@@ -16,13 +16,13 @@ async function shouldSuggestMemorySystem(workspaceDir) {
16
16
  const memoryPaths = [path.join(workspaceDir, "MEMORY.md"), path.join(workspaceDir, "memory.md")];
17
17
  for (const memoryPath of memoryPaths) {
18
18
  try {
19
- await syncFs.promises.access(memoryPath);
19
+ await fs.promises.access(memoryPath);
20
20
  return false;
21
21
  } catch {}
22
22
  }
23
23
  const agentsPath = path.join(workspaceDir, DEFAULT_AGENTS_FILENAME);
24
24
  try {
25
- const content = await syncFs.promises.readFile(agentsPath, "utf-8");
25
+ const content = await fs.promises.readFile(agentsPath, "utf-8");
26
26
  if (/memory\.md/i.test(content)) {
27
27
  return false;
28
28
  }
@@ -37,7 +37,7 @@ import { maybeRepairUiProtocolFreshness } from "./doctor-ui.js";
37
37
  import { maybeOfferUpdateBeforeDoctor } from "./doctor-update.js";
38
38
  import { MEMORY_SYSTEM_PROMPT, shouldSuggestMemorySystem } from "./doctor-workspace.js";
39
39
  import { noteWorkspaceStatus } from "./doctor-workspace-status.js";
40
- import syncFs from "node:fs";
40
+ import fs from "node:fs";
41
41
  import { intro, outro } from "@clack/prompts";
42
42
 
43
43
  //#region src/commands/doctor.ts
@@ -83,7 +83,7 @@ async function doctorCommand(runtime = defaultRuntime, options = {}) {
83
83
  `Fix: run ${formatCliCommand("fased configure")} and set Gateway mode (local/remote).`,
84
84
  `Or set directly: ${formatCliCommand("fased config set gateway.mode local")}`
85
85
  ];
86
- if (!syncFs.existsSync(configPath)) {
86
+ if (!fs.existsSync(configPath)) {
87
87
  lines.push(`Missing config: run ${formatCliCommand("fased setup")} first.`);
88
88
  }
89
89
  note$1(lines.join("\n"), "Gateway");
@@ -233,7 +233,7 @@ async function doctorCommand(runtime = defaultRuntime, options = {}) {
233
233
  await writeConfigFile(cfg);
234
234
  logConfigUpdated(runtime);
235
235
  const backupPath = `${CONFIG_PATH}.bak`;
236
- if (syncFs.existsSync(backupPath)) {
236
+ if (fs.existsSync(backupPath)) {
237
237
  runtime.log(`Backup: ${shortenHomePath(backupPath)}`);
238
238
  }
239
239
  } else if (configResult.hasPendingChanges) {
@@ -2,7 +2,7 @@ import { defaultRuntime } from "../runtime.js";
2
2
  import { readManagedFederationTokenSummary } from "../managed/federation.js";
3
3
  import { readManagedReservationSummaries } from "../managed/tunnel.js";
4
4
  import { fileURLToPath } from "node:url";
5
- import syncFs from "node:fs";
5
+ import fs from "node:fs";
6
6
  import path from "node:path";
7
7
  import { spawn } from "node:child_process";
8
8
 
@@ -44,7 +44,7 @@ function resolveManagedScriptPath() {
44
44
  candidates.push(cwdCandidate);
45
45
  }
46
46
  for (const candidate of candidates) {
47
- if (syncFs.existsSync(candidate)) {
47
+ if (fs.existsSync(candidate)) {
48
48
  return candidate;
49
49
  }
50
50
  }
@@ -11,7 +11,7 @@ import { VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF } from "../providers/vercel-ai-gate
11
11
  import "../providers/registry.js";
12
12
  import { PROVIDER_ENV_VARS } from "../secrets/provider-env-vars.js";
13
13
  import { MISTRAL_DEFAULT_MODEL_REF, XAI_DEFAULT_MODEL_REF } from "./onboard-auth.models.js";
14
- import syncFs from "node:fs";
14
+ import fs from "node:fs";
15
15
  import path from "node:path";
16
16
 
17
17
  //#region src/commands/onboard-auth.credentials.ts
@@ -96,7 +96,7 @@ function assertValidOAuthCredentialInput(provider, creds) {
96
96
  /** Resolve real path, returning null if the target doesn't exist. */
97
97
  function safeRealpathSync(dir) {
98
98
  try {
99
- return syncFs.realpathSync(path.resolve(dir));
99
+ return fs.realpathSync(path.resolve(dir));
100
100
  } catch {
101
101
  return null;
102
102
  }
@@ -109,7 +109,7 @@ function resolveSiblingAgentDirs(primaryAgentDir) {
109
109
  const agentsRoot = looksLikeStandardLayout ? candidateAgentsRoot : path.join(resolveStateDir(), "agents");
110
110
  const entries = (() => {
111
111
  try {
112
- return syncFs.readdirSync(agentsRoot, { withFileTypes: true });
112
+ return fs.readdirSync(agentsRoot, { withFileTypes: true });
113
113
  } catch {
114
114
  return [];
115
115
  }
@@ -7,7 +7,7 @@ import { loadFasedAgentPlugins } from "../../plugins/loader.js";
7
7
  import { createPluginLoaderLogger } from "../../plugins/logger.js";
8
8
  import { finalizeInstalledPluginConfig } from "../../plugins/lifecycle.js";
9
9
  import { resolveChannelPluginExpectedPluginIds } from "../../channels/plugins/catalog.js";
10
- import syncFs from "node:fs";
10
+ import fs from "node:fs";
11
11
  import path from "node:path";
12
12
 
13
13
  //#region src/commands/onboarding/plugin-install.ts
@@ -29,7 +29,7 @@ function resolveLocalPath(entry, workspaceDir) {
29
29
  candidates.add(path.resolve(packageRoot, raw));
30
30
  }
31
31
  for (const candidate of candidates) {
32
- if (syncFs.existsSync(candidate)) {
32
+ if (fs.existsSync(candidate)) {
33
33
  return candidate;
34
34
  }
35
35
  }
@@ -7,7 +7,7 @@ import { capEntryCount, loadSessionStore, pruneStaleEntries, resolveMaintenanceC
7
7
  import "../config/sessions.js";
8
8
  import { resolveSessionStoreTargets } from "./session-store-targets.js";
9
9
  import { SESSION_AGE_PAD, SESSION_KEY_PAD, SESSION_MODEL_PAD, formatSessionAgeCell, formatSessionFlagsCell, formatSessionKeyCell, formatSessionModelCell, resolveSessionDisplayDefaults, resolveSessionDisplayModel, toSessionDisplayRows } from "./sessions-table.js";
10
- import syncFs from "node:fs";
10
+ import fs from "node:fs";
11
11
 
12
12
  //#region src/commands/sessions-cleanup.ts
13
13
  const ACTION_PAD = 12;
@@ -65,7 +65,7 @@ function pruneMissingTranscriptEntries(params) {
65
65
  continue;
66
66
  }
67
67
  const transcriptPath = resolveSessionFilePath(entry.sessionId, entry, sessionPathOpts);
68
- if (!syncFs.existsSync(transcriptPath)) {
68
+ if (!fs.existsSync(transcriptPath)) {
69
69
  delete params.store[key];
70
70
  removed += 1;
71
71
  params.onPruned?.(key);
@@ -5,7 +5,7 @@ import { resolveBrewExecutable } from "../infra/brew.js";
5
5
  import { createWriteStream } from "node:fs";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
- import fs from "node:fs/promises";
8
+ import fs$1 from "node:fs/promises";
9
9
  import { pipeline } from "node:stream/promises";
10
10
  import { request } from "node:https";
11
11
 
@@ -79,7 +79,7 @@ async function findSignalCliBinary(root) {
79
79
  if (depth > 3) {
80
80
  return;
81
81
  }
82
- const entries = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
82
+ const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => []);
83
83
  for (const entry of entries) {
84
84
  const full = path.join(dir, entry.name);
85
85
  if (entry.isDirectory()) {
@@ -103,7 +103,7 @@ async function resolveBrewSignalCliPath(brewExe) {
103
103
  const prefix = result.stdout.trim();
104
104
  const candidate = path.join(prefix, "bin", "signal-cli");
105
105
  try {
106
- await fs.access(candidate);
106
+ await fs$1.access(candidate);
107
107
  return candidate;
108
108
  } catch {
109
109
  return findSignalCliBinary(prefix);
@@ -172,12 +172,12 @@ async function installSignalCliFromRelease(runtime) {
172
172
  error: "No compatible release asset found for this platform."
173
173
  };
174
174
  }
175
- const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "fased-signal-"));
175
+ const tmpDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "fased-signal-"));
176
176
  const archivePath = path.join(tmpDir, asset.name);
177
177
  runtime.log(`Downloading signal-cli ${version} (${asset.name})…`);
178
178
  await downloadToFile(asset.browser_download_url, archivePath);
179
179
  const installRoot = path.join(CONFIG_DIR, "tools", "signal-cli", version);
180
- await fs.mkdir(installRoot, { recursive: true });
180
+ await fs$1.mkdir(installRoot, { recursive: true });
181
181
  if (!looksLikeArchive(asset.name.toLowerCase())) {
182
182
  return {
183
183
  ok: false,
@@ -200,7 +200,7 @@ async function installSignalCliFromRelease(runtime) {
200
200
  error: `signal-cli binary not found after extracting ${asset.name}`
201
201
  };
202
202
  }
203
- await fs.chmod(cliPath, 493).catch(() => {});
203
+ await fs$1.chmod(cliPath, 493).catch(() => {});
204
204
  return {
205
205
  ok: true,
206
206
  cliPath,
@@ -4,7 +4,7 @@ import { formatTimeAgo } from "../../infra/format-time/format-relative.js";
4
4
  import { resolveChannelDefaultAccountId } from "../../channels/plugins/helpers.js";
5
5
  import { buildChannelAccountSnapshot, formatChannelAllowFrom } from "../../channels/account-summary.js";
6
6
  import "./format.js";
7
- import syncFs from "node:fs";
7
+ import fs from "node:fs";
8
8
 
9
9
  //#region src/commands/status-all/channels.ts
10
10
  const asRecord = (value) => value && typeof value === "object" ? value : {};
@@ -27,7 +27,7 @@ function existsSyncMaybe(p) {
27
27
  return null;
28
28
  }
29
29
  try {
30
- return syncFs.existsSync(path);
30
+ return fs.existsSync(path);
31
31
  } catch {
32
32
  return null;
33
33
  }
@@ -16,7 +16,7 @@ import { configureSignerOwnedWalletNetwork } from "../wallet/signer-network-admi
16
16
  import { listWalletInboundEvents, pollWalletInboundEvents, reconcileWalletInboundEvents } from "../wallet/wallet-inbound-events.js";
17
17
  import { buildWalletCanaryReport, runWalletProviderCanaryReport } from "../wallet/wallet-canary.js";
18
18
  import { installSignerdBinary, resolveSignerdBinaryPath, restartLocalSocketSigner, writeLocalSignerEnvFile } from "../wizard/onboarding.wallet.js";
19
- import syncFs from "node:fs";
19
+ import fs from "node:fs";
20
20
  import path from "node:path";
21
21
  import { createInterface } from "node:readline/promises";
22
22
 
@@ -261,9 +261,9 @@ function rpcEnvKeyFor(chain, walletId) {
261
261
  }
262
262
  return "FASED_WALLET_SOLANA_RPC_URL";
263
263
  }
264
- function fallbackRpcEnvKeyFor(walletId) {
264
+ function executionFallbackRpcEnvKeyFor(walletId) {
265
265
  const suffix = walletIdEnvSuffix(walletId);
266
- return suffix ? `FASED_WALLET_SOLANA_WRITE_RPC_FALLBACK_URL__${suffix}` : "FASED_WALLET_SOLANA_WRITE_RPC_FALLBACK_URL";
266
+ return suffix ? `FASED_WALLET_SOLANA_EXECUTION_FALLBACK_RPC_URL__${suffix}` : "FASED_WALLET_SOLANA_EXECUTION_FALLBACK_RPC_URL";
267
267
  }
268
268
  function resolveRpcUrlForChain(env, chain, walletId, explicit) {
269
269
  const explicitValue = explicit?.trim();
@@ -401,7 +401,7 @@ async function createSignerOwnedWalletForSetup(params) {
401
401
  env: mergedEnv
402
402
  });
403
403
  const signerBinPath = resolveSignerdBinaryPath(mergedEnv);
404
- if (!syncFs.existsSync(signerBinPath)) {
404
+ if (!fs.existsSync(signerBinPath)) {
405
405
  installSignerdBinary(signerBinPath);
406
406
  }
407
407
  await restartLocalSocketSigner(undefined, mergedEnv);
@@ -428,11 +428,11 @@ async function createSignerOwnedWalletForSetup(params) {
428
428
  if (signerIdCollision) {
429
429
  throw new Error(`native signer wallet ID ${signerWalletId} is already registered as ${signerIdCollision.id}; choose a distinct wallet ID`);
430
430
  }
431
- const fallbackRpcUrl = hosted ? "" : String(mergedEnv[fallbackRpcEnvKeyFor(walletId)] ?? mergedEnv.FASED_WALLET_SOLANA_RPC_FALLBACK_URL ?? "").trim();
431
+ const executionFallbackRpcUrl = hosted ? "" : [mergedEnv[executionFallbackRpcEnvKeyFor(walletId)], mergedEnv[walletIdEnvSuffix(walletId) ? `FASED_WALLET_SOLANA_WRITE_RPC_FALLBACK_URL__${walletIdEnvSuffix(walletId)}` : "FASED_WALLET_SOLANA_WRITE_RPC_FALLBACK_URL"]].map((value) => String(value ?? "").trim()).find(Boolean) ?? "";
432
432
  const network = configureSignerOwnedWalletNetwork({
433
433
  walletId: signerWalletId,
434
434
  primaryRpcUrl: params.rpcUrl,
435
- fallbackRpcUrl: fallbackRpcUrl || undefined,
435
+ executionFallbackRpcUrl: executionFallbackRpcUrl || undefined,
436
436
  env: mergedEnv,
437
437
  signerBinPath: hosted ? undefined : resolveSignerdBinaryPath(mergedEnv),
438
438
  controlSocketPath: hosted ? undefined : resolveLocalSignerControlSocketPath(mergedEnv)
@@ -642,7 +642,7 @@ async function walletSetupCommand(runtime = defaultRuntime, options = {}) {
642
642
  env: effectiveEnv
643
643
  });
644
644
  const signerBinPath = resolveSignerdBinaryPath(effectiveEnv);
645
- if (!syncFs.existsSync(signerBinPath)) {
645
+ if (!fs.existsSync(signerBinPath)) {
646
646
  installSignerdBinary(signerBinPath);
647
647
  }
648
648
  await restartLocalSocketSigner(undefined, effectiveEnv);
@@ -1047,7 +1047,7 @@ async function collectWalletSignerDoctorReport(env = process.env, options = {})
1047
1047
  if (isLocalSigner) {
1048
1048
  const externallyManaged = isLocalSignerExternallyManaged(effectiveEnv);
1049
1049
  try {
1050
- const st = syncFs.statSync(socketPath);
1050
+ const st = fs.statSync(socketPath);
1051
1051
  push("socket.exists", st.isSocket?.() ?? true, socketPath);
1052
1052
  try {
1053
1053
  const mode = st.mode & 511;
@@ -1060,7 +1060,7 @@ async function collectWalletSignerDoctorReport(env = process.env, options = {})
1060
1060
  push("pid.alive", true, "lifecycle=external; process health is verified over the socket");
1061
1061
  } else {
1062
1062
  try {
1063
- const pidRaw = syncFs.readFileSync(pidPath, "utf8").trim();
1063
+ const pidRaw = fs.readFileSync(pidPath, "utf8").trim();
1064
1064
  const pid = Number.parseInt(pidRaw, 10);
1065
1065
  if (Number.isFinite(pid) && pid > 1) {
1066
1066
  try {
@@ -1080,7 +1080,7 @@ async function collectWalletSignerDoctorReport(env = process.env, options = {})
1080
1080
  push("audit.exists", true, "lifecycle=external; audit state is signer-owned");
1081
1081
  } else {
1082
1082
  try {
1083
- const st = syncFs.statSync(auditPath);
1083
+ const st = fs.statSync(auditPath);
1084
1084
  push("audit.exists", true, `bytes=${st.size}`);
1085
1085
  } catch (err) {
1086
1086
  push("audit.exists", localSignerSetupPending && isNotFoundError(err), localSignerSetupPending && isNotFoundError(err) ? "Configure" : String(err));
@@ -1,4 +1,4 @@
1
- import syncFs from "node:fs";
1
+ import fs from "node:fs";
2
2
 
3
3
  //#region src/config/cache-utils.ts
4
4
  function resolveCacheTtlMs(params) {
@@ -16,7 +16,7 @@ function isCacheEnabled(ttlMs) {
16
16
  }
17
17
  function getFileMtimeMs(filePath) {
18
18
  try {
19
- return syncFs.statSync(filePath).mtimeMs;
19
+ return fs.statSync(filePath).mtimeMs;
20
20
  } catch {
21
21
  return undefined;
22
22
  }
@@ -4,7 +4,7 @@ import { isBlockedObjectKey } from "../infra/prototype-keys.js";
4
4
  import { canUseBoundaryFileOpen, openBoundaryFileSync } from "../infra/boundary-file-read.js";
5
5
  import { isPathInside } from "../security/scan-paths.js";
6
6
  import "./prototype-keys.js";
7
- import syncFs from "node:fs";
7
+ import fs from "node:fs";
8
8
  import path from "node:path";
9
9
  import JSON5 from "json5";
10
10
 
@@ -130,7 +130,7 @@ var IncludeProcessor = class IncludeProcessor {
130
130
  throw new ConfigIncludeError(`Include path escapes config directory: ${includePath} (root: ${this.rootDir})`, includePath);
131
131
  }
132
132
  try {
133
- const real = syncFs.realpathSync(normalized);
133
+ const real = fs.realpathSync(normalized);
134
134
  if (!isPathInside(this.rootRealDir, real)) {
135
135
  throw new ConfigIncludeError(`Include path resolves outside config directory (symlink): ${includePath} (root: ${this.rootDir})`, includePath);
136
136
  }
@@ -184,13 +184,13 @@ var IncludeProcessor = class IncludeProcessor {
184
184
  };
185
185
  function safeRealpath(target) {
186
186
  try {
187
- return syncFs.realpathSync(target);
187
+ return fs.realpathSync(target);
188
188
  } catch {
189
189
  return target;
190
190
  }
191
191
  }
192
192
  function readConfigIncludeFileWithGuards(params) {
193
- const ioFs = params.ioFs ?? syncFs;
193
+ const ioFs = params.ioFs ?? fs;
194
194
  const maxBytes = params.maxBytes ?? MAX_INCLUDE_FILE_BYTES;
195
195
  if (!canUseBoundaryFileOpen(ioFs)) {
196
196
  return ioFs.readFileSync(params.resolvedPath, "utf-8");
@@ -217,7 +217,7 @@ function readConfigIncludeFileWithGuards(params) {
217
217
  }
218
218
  }
219
219
  const defaultResolver = {
220
- readFile: (p) => syncFs.readFileSync(p, "utf-8"),
220
+ readFile: (p) => fs.readFileSync(p, "utf-8"),
221
221
  readFileWithGuards: ({ includePath, resolvedPath, rootRealDir }) => readConfigIncludeFileWithGuards({
222
222
  includePath,
223
223
  resolvedPath,
package/dist/config/io.js CHANGED
@@ -24,7 +24,7 @@ import { repairInstalledPluginAllowlist } from "./plugins-allowlist.js";
24
24
  import { applyConfigOverrides } from "./runtime-overrides.js";
25
25
  import { validateConfigObjectRawWithPlugins, validateConfigObjectWithPlugins } from "./validation.js";
26
26
  import { compareFasedAgentVersions } from "./version.js";
27
- import syncFs from "node:fs";
27
+ import fs from "node:fs";
28
28
  import os from "node:os";
29
29
  import path from "node:path";
30
30
  import JSON5 from "json5";
@@ -509,7 +509,7 @@ function resolveConfigPathForDeps(deps) {
509
509
  }
510
510
  function normalizeDeps(overrides = {}) {
511
511
  return {
512
- fs: overrides.fs ?? syncFs,
512
+ fs: overrides.fs ?? fs,
513
513
  json5: overrides.json5 ?? JSON5,
514
514
  env: overrides.env ?? process.env,
515
515
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
@@ -1,5 +1,5 @@
1
1
  import { expandHomePrefix, resolveRequiredHomeDir } from "../infra/home-dir.js";
2
- import syncFs from "node:fs";
2
+ import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
 
@@ -86,7 +86,7 @@ function resolveConfigPathCandidate(env = process.env, homedir = envHomedir(env)
86
86
  const candidates = resolveDefaultConfigCandidates(env, homedir);
87
87
  const existing = candidates.find((candidate) => {
88
88
  try {
89
- return syncFs.existsSync(candidate);
89
+ return fs.existsSync(candidate);
90
90
  } catch {
91
91
  return false;
92
92
  }
@@ -108,7 +108,7 @@ function resolveConfigPath(env = process.env, stateDir = resolveStateDir(env, en
108
108
  const candidates = [path.join(stateDir, CONFIG_FILENAME)];
109
109
  const existing = candidates.find((candidate) => {
110
110
  try {
111
- return syncFs.existsSync(candidate);
111
+ return fs.existsSync(candidate);
112
112
  } catch {
113
113
  return false;
114
114
  }
@@ -1,4 +1,4 @@
1
- import syncFs from "node:fs";
1
+ import fs from "node:fs";
2
2
  import path from "node:path";
3
3
 
4
4
  //#region src/config/sat-runtime-ids.ts
@@ -63,7 +63,7 @@ function resolveSatRuntimeDefaultsFile(env = process.env) {
63
63
  path.resolve(import.meta.dirname, "..", "..", "..", "config", "sat-runtime.env")
64
64
  ];
65
65
  for (const candidate of candidates) {
66
- if (candidate && syncFs.existsSync(candidate)) {
66
+ if (candidate && fs.existsSync(candidate)) {
67
67
  return candidate;
68
68
  }
69
69
  }
@@ -82,7 +82,7 @@ function loadSatRuntimeDefaults(env = process.env) {
82
82
  if (!file) {
83
83
  return null;
84
84
  }
85
- const parsed = parseEnvFile(syncFs.readFileSync(file, "utf8"));
85
+ const parsed = parseEnvFile(fs.readFileSync(file, "utf8"));
86
86
  if (!parsed.programId || !parsed.bondProgramId || !parsed.mintAddress || !parsed.mintProgramId) {
87
87
  return null;
88
88
  }
@@ -1,6 +1,6 @@
1
1
  import { isPrimarySessionTranscriptFileName, isSessionArchiveArtifactName } from "./artifacts.js";
2
2
  import { resolveSessionFilePath } from "./paths.js";
3
- import syncFs from "node:fs";
3
+ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
 
6
6
  //#region src/config/sessions/disk-budget.ts
@@ -11,7 +11,7 @@ const NOOP_LOGGER = {
11
11
  function canonicalizePathForComparison(filePath) {
12
12
  const resolved = path.resolve(filePath);
13
13
  try {
14
- return syncFs.realpathSync(resolved);
14
+ return fs.realpathSync(resolved);
15
15
  } catch {
16
16
  return resolved;
17
17
  }
@@ -83,14 +83,14 @@ function resolveReferencedSessionTranscriptPaths(params) {
83
83
  return referenced;
84
84
  }
85
85
  async function readSessionsDirFiles(sessionsDir) {
86
- const dirEntries = await syncFs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
86
+ const dirEntries = await fs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
87
87
  const files = [];
88
88
  for (const dirent of dirEntries) {
89
89
  if (!dirent.isFile()) {
90
90
  continue;
91
91
  }
92
92
  const filePath = path.join(sessionsDir, dirent.name);
93
- const stat = await syncFs.promises.stat(filePath).catch(() => null);
93
+ const stat = await fs.promises.stat(filePath).catch(() => null);
94
94
  if (!stat?.isFile()) {
95
95
  continue;
96
96
  }
@@ -105,11 +105,11 @@ async function readSessionsDirFiles(sessionsDir) {
105
105
  return files;
106
106
  }
107
107
  async function removeFileIfExists(filePath) {
108
- const stat = await syncFs.promises.stat(filePath).catch(() => null);
108
+ const stat = await fs.promises.stat(filePath).catch(() => null);
109
109
  if (!stat?.isFile()) {
110
110
  return 0;
111
111
  }
112
- await syncFs.promises.rm(filePath, { force: true }).catch(() => undefined);
112
+ await fs.promises.rm(filePath, { force: true }).catch(() => undefined);
113
113
  return stat.size;
114
114
  }
115
115
  async function removeFileForBudget(params) {
@@ -1,7 +1,7 @@
1
1
  import { expandHomePrefix, resolveRequiredHomeDir } from "../../infra/home-dir.js";
2
2
  import { resolveStateDir } from "../paths.js";
3
3
  import { DEFAULT_AGENT_ID, normalizeAgentId } from "../../routing/session-key.js";
4
- import syncFs from "node:fs";
4
+ import fs from "node:fs";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
7
7
 
@@ -112,7 +112,7 @@ function resolveStructuralSessionFallbackPath(candidateAbsPath, expectedAgentId)
112
112
  }
113
113
  function safeRealpathSync(filePath) {
114
114
  try {
115
- return syncFs.realpathSync(filePath);
115
+ return fs.realpathSync(filePath);
116
116
  } catch {
117
117
  return undefined;
118
118
  }