@fased/fased 0.1.54 → 0.1.56

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 (465) hide show
  1. package/config/capability-catalog.json +12 -0
  2. package/dist/acp/client.js +2 -2
  3. package/dist/acp/secret-file.js +2 -2
  4. package/dist/agents/agent-scope.js +2 -2
  5. package/dist/agents/apply-patch.js +8 -8
  6. package/dist/agents/auth-profiles/paths.js +2 -2
  7. package/dist/agents/auth-profiles/store.js +2 -2
  8. package/dist/agents/authenticated-model-catalog.js +28 -0
  9. package/dist/agents/bash-tools.exec-host-node.js +1 -1
  10. package/dist/agents/bash-tools.exec.js +1 -1
  11. package/dist/agents/bash-tools.shared.js +2 -2
  12. package/dist/agents/cli-credentials.js +4 -4
  13. package/dist/agents/copilot-dynamic-headers.js +37 -0
  14. package/dist/agents/current-model-catalog.js +9 -13
  15. package/dist/agents/docs-path.js +3 -3
  16. package/dist/agents/embedded-pi-mcp.js +4 -4
  17. package/dist/agents/identity-avatar.js +3 -3
  18. package/dist/agents/identity-file.js +2 -2
  19. package/dist/agents/model-catalog-normalized.js +1 -0
  20. package/dist/agents/model-catalog-source.js +2 -2
  21. package/dist/agents/model-catalog.js +1 -1
  22. package/dist/agents/model-metadata.js +58 -9
  23. package/dist/agents/openai-codex-app-server.js +499 -0
  24. package/dist/agents/pi-embedded-runner/compact.js +3 -3
  25. package/dist/agents/pi-embedded-runner/extra-params.js +168 -79
  26. package/dist/agents/pi-embedded-runner/model.js +62 -1
  27. package/dist/agents/pi-embedded-runner/moonshot-stream-wrappers.js +46 -0
  28. package/dist/agents/pi-embedded-runner/openai-stream-wrappers.js +221 -0
  29. package/dist/agents/pi-embedded-runner/run/attempt.js +6 -4
  30. package/dist/agents/pi-embedded-runner/run.js +5 -2
  31. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  32. package/dist/agents/pi-embedded-runner.js +1 -1
  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/pi-tools.js +2 -2
  38. package/dist/agents/sandbox/fs-bridge.js +2 -2
  39. package/dist/agents/session-dirs.js +4 -4
  40. package/dist/agents/session-write-lock.js +13 -13
  41. package/dist/agents/shell-utils.js +5 -5
  42. package/dist/agents/skills/bundled-dir.js +4 -4
  43. package/dist/agents/skills/local-loader.js +6 -6
  44. package/dist/agents/skills/plugin-skills.js +2 -2
  45. package/dist/agents/skills/workspace.js +13 -13
  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/tools/discord-actions-messaging.js +1 -1
  53. package/dist/agents/tools/message-tool.js +1 -1
  54. package/dist/agents/tools/session-status-tool.js +3 -3
  55. package/dist/agents/tools/slack-actions.js +1 -1
  56. package/dist/agents/tools/tts-tool.js +1 -1
  57. package/dist/agents/workspace.js +22 -22
  58. package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
  59. package/dist/auto-reply/reply/agent-runner.js +2 -2
  60. package/dist/auto-reply/reply/commands-export-session.js +7 -7
  61. package/dist/auto-reply/reply/commands-models.js +1 -1
  62. package/dist/auto-reply/reply/directive-handling.impl.js +4 -1
  63. package/dist/auto-reply/reply/dispatch-acp.js +1 -1
  64. package/dist/auto-reply/reply/dispatch-from-config.js +1 -1
  65. package/dist/auto-reply/reply/get-reply-run.js +20 -2
  66. package/dist/auto-reply/reply/model-selection.js +1 -1
  67. package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
  68. package/dist/auto-reply/reply/post-compaction-context.js +3 -3
  69. package/dist/auto-reply/reply/session-reset-model.js +1 -1
  70. package/dist/auto-reply/reply/session.js +3 -3
  71. package/dist/auto-reply/skill-commands.js +3 -3
  72. package/dist/auto-reply/status.js +7 -7
  73. package/dist/auto-reply/thinking.js +1 -1
  74. package/dist/brand.js +1 -1
  75. package/dist/browser/cdp.helpers.js +2 -2
  76. package/dist/browser/chrome.executables.js +3 -3
  77. package/dist/browser/chrome.js +5 -5
  78. package/dist/browser/chrome.profile-decoration.js +6 -6
  79. package/dist/browser/extension-relay.js +7 -7
  80. package/dist/browser/profiles-service.js +2 -2
  81. package/dist/browser/server-context.js +2 -2
  82. package/dist/browser/trash.js +4 -4
  83. package/dist/build-info.json +3 -3
  84. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  85. package/dist/canvas-host/server.js +4 -4
  86. package/dist/capabilities/catalog.js +3 -3
  87. package/dist/channels/plugins/catalog.js +3 -3
  88. package/dist/cli/browser-cli-extension.js +6 -6
  89. package/dist/cli/command-format.js +2 -2
  90. package/dist/cli/cron-cli/register.cron-add.js +1 -1
  91. package/dist/cli/cron-cli/register.cron-simple.js +2 -2
  92. package/dist/cli/dns-cli.js +9 -9
  93. package/dist/cli/gateway-cli/dev.js +5 -5
  94. package/dist/cli/gateway-cli/run.js +2 -2
  95. package/dist/cli/hooks-cli.js +5 -5
  96. package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
  97. package/dist/cli/memory-cli.js +7 -7
  98. package/dist/cli/nodes-media-utils.js +2 -2
  99. package/dist/cli/plugins-cli.js +2 -2
  100. package/dist/cli/program/register.agent.js +1 -1
  101. package/dist/cli/providers-cli.js +3 -2
  102. package/dist/cli/secrets-cli.js +3 -3
  103. package/dist/cli/windows-argv.js +2 -2
  104. package/dist/commands/agent.js +22 -3
  105. package/dist/commands/auth-choice.apply.api-providers.js +3 -8
  106. package/dist/commands/auth-choice.apply.openai.js +13 -7
  107. package/dist/commands/auth-choice.model-check.js +1 -2
  108. package/dist/commands/configure.gateway-auth.js +14 -16
  109. package/dist/commands/dashboard-link.js +3 -3
  110. package/dist/commands/doctor-config-flow.js +1 -1
  111. package/dist/commands/doctor-install.js +5 -5
  112. package/dist/commands/doctor-memory-search.js +2 -2
  113. package/dist/commands/doctor-platform-notes.js +2 -2
  114. package/dist/commands/doctor-sandbox.js +2 -2
  115. package/dist/commands/doctor-state-integrity.js +23 -23
  116. package/dist/commands/doctor-workspace.js +3 -3
  117. package/dist/commands/doctor.js +3 -3
  118. package/dist/commands/hosted-dashboard-probe.js +3 -3
  119. package/dist/commands/managed-up.js +2 -2
  120. package/dist/commands/model-picker.js +27 -8
  121. package/dist/commands/models/list.probe.js +1 -1
  122. package/dist/commands/models/list.registry.js +13 -17
  123. package/dist/commands/models/list.status-command.js +2 -2
  124. package/dist/commands/onboard-auth.config-core.js +1 -1
  125. package/dist/commands/onboard-auth.config-litellm.js +21 -21
  126. package/dist/commands/onboard-auth.credentials.js +3 -4
  127. package/dist/commands/onboard-auth.js +0 -1
  128. package/dist/commands/onboarding/plugin-install.js +2 -2
  129. package/dist/commands/openai-codex-model-default.js +28 -5
  130. package/dist/commands/sessions-cleanup.js +2 -2
  131. package/dist/commands/signal-install.js +6 -6
  132. package/dist/commands/status-all/channels.js +2 -2
  133. package/dist/commands/wallet.js +47 -47
  134. package/dist/config/cache-utils.js +2 -2
  135. package/dist/config/includes.js +5 -5
  136. package/dist/config/io.js +2 -2
  137. package/dist/config/paths.js +3 -3
  138. package/dist/config/sat-runtime-ids.js +3 -3
  139. package/dist/config/sessions/disk-budget.js +6 -6
  140. package/dist/config/sessions/paths.js +2 -2
  141. package/dist/config/sessions/store.js +17 -17
  142. package/dist/config/sessions/transcript.js +4 -4
  143. package/dist/config/talk.js +2 -2
  144. package/dist/config/zod-schema.agent-defaults.js +6 -2
  145. package/dist/config/zod-schema.agent-runtime.js +6 -2
  146. package/dist/config/zod-schema.core.js +6 -2
  147. package/dist/control-ui/assets/{app-BKlu6OKz.js → app-D7TXyNRi.js} +1548 -1540
  148. package/dist/control-ui/assets/chat-model-ref-Djkv93yn.js +2 -0
  149. package/dist/control-ui/assets/{index-nrFcGMv-.js → index-BmSBom-w.js} +3 -3
  150. package/dist/control-ui/assets/{providers-BQFrRqym.js → providers-Cc89iMdx.js} +5 -5
  151. package/dist/control-ui/index.html +1 -1
  152. package/dist/control-ui/version.json +1 -0
  153. package/dist/cron/isolated-agent/run.js +6 -2
  154. package/dist/cron/service/jobs.js +11 -1
  155. package/dist/cron/service/store.js +2 -2
  156. package/dist/cron/store.js +6 -6
  157. package/dist/daemon/systemd-system.js +5 -5
  158. package/dist/discord/monitor/gateway-plugin.js +2 -2
  159. package/dist/discord/monitor/thread-bindings.state.js +2 -2
  160. package/dist/discord/voice/manager.js +1 -1
  161. package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
  162. package/dist/gateway/client.js +4 -4
  163. package/dist/gateway/control-ui-boot-check.js +6 -6
  164. package/dist/gateway/control-ui-login.js +7 -7
  165. package/dist/gateway/control-ui.js +11 -9
  166. package/dist/gateway/hooks-mapping.js +4 -4
  167. package/dist/gateway/protocol/schema/agents-models-skills.js +66 -4
  168. package/dist/gateway/server-discovery.js +2 -2
  169. package/dist/gateway/server-http.js +4 -4
  170. package/dist/gateway/server-methods/chat.js +3 -3
  171. package/dist/gateway/server-methods/models.js +8 -8
  172. package/dist/gateway/server-methods/sessions.js +8 -8
  173. package/dist/gateway/server-methods/tts.js +2 -2
  174. package/dist/gateway/server-methods/usage.js +2 -2
  175. package/dist/gateway/server-model-catalog.js +3 -0
  176. package/dist/gateway/server.impl.js +3 -3
  177. package/dist/gateway/session-compaction-checkpoints.js +4 -4
  178. package/dist/gateway/session-utils.fs.js +24 -24
  179. package/dist/gateway/session-utils.js +6 -6
  180. package/dist/gateway/sessions-patch.js +27 -24
  181. package/dist/hooks/bundled-dir.js +4 -4
  182. package/dist/hooks/gmail-setup-utils.js +6 -6
  183. package/dist/hooks/import-url.js +2 -2
  184. package/dist/hooks/loader.js +4 -4
  185. package/dist/hooks/workspace.js +7 -7
  186. package/dist/infra/archive.js +17 -17
  187. package/dist/infra/boundary-file-read.js +2 -2
  188. package/dist/infra/boundary-path.js +15 -15
  189. package/dist/infra/brew.js +2 -2
  190. package/dist/infra/control-ui-assets.js +14 -14
  191. package/dist/infra/device-auth-store.js +8 -8
  192. package/dist/infra/device-identity.js +8 -8
  193. package/dist/infra/dotenv.js +2 -2
  194. package/dist/infra/exec-approvals.js +8 -8
  195. package/dist/infra/exec-command-resolution.js +4 -4
  196. package/dist/infra/exec-safe-bin-trust.js +2 -2
  197. package/dist/infra/fased-root.js +5 -5
  198. package/dist/infra/fs-safe.js +14 -14
  199. package/dist/infra/gateway-lock.js +11 -11
  200. package/dist/infra/git-commit.js +5 -5
  201. package/dist/infra/git-root.js +4 -4
  202. package/dist/infra/hosted-runtime-artifact.js +3 -3
  203. package/dist/infra/is-main.js +2 -2
  204. package/dist/infra/json-file.js +7 -7
  205. package/dist/infra/outbound/delivery-queue.js +16 -16
  206. package/dist/infra/path-env.js +3 -3
  207. package/dist/infra/ports-lsof.js +4 -4
  208. package/dist/infra/provider-usage.auth.js +3 -3
  209. package/dist/infra/safe-open-sync.js +2 -2
  210. package/dist/infra/session-cost-usage.js +9 -9
  211. package/dist/infra/shell-env.js +2 -2
  212. package/dist/infra/state-migrations.fs.js +6 -6
  213. package/dist/infra/state-migrations.js +23 -23
  214. package/dist/infra/tmp-fased-dir.js +6 -6
  215. package/dist/infra/update-runner.js +31 -3
  216. package/dist/infra/widearea-dns.js +3 -3
  217. package/dist/infra/wsl.js +2 -2
  218. package/dist/light-update-status.js +1 -1
  219. package/dist/line/accounts.js +2 -2
  220. package/dist/line/download.js +2 -2
  221. package/dist/logging/config.js +3 -3
  222. package/dist/logging/logger.js +7 -7
  223. package/dist/managed/federation.js +3 -3
  224. package/dist/managed/tunnel.js +3 -3
  225. package/dist/media/store.js +13 -13
  226. package/dist/media-understanding/runner.js +3 -3
  227. package/dist/memory/embeddings.js +2 -2
  228. package/dist/memory/internal.js +10 -10
  229. package/dist/memory/inventory.js +19 -2
  230. package/dist/memory/manager-sync-ops.js +7 -7
  231. package/dist/memory/repair-executor.js +17 -17
  232. package/dist/node-host/invoke-system-run-plan.js +8 -8
  233. package/dist/node-host/invoke.js +2 -2
  234. package/dist/node-host/runner.js +3 -3
  235. package/dist/pairing/pairing-store.js +3 -3
  236. package/dist/plugin-sdk/{accounts-DW9OS5Ll.js → accounts-DzWlKv1U.js} +1 -1
  237. package/dist/plugin-sdk/{actions-DQUXohRr.js → actions-BplQVLL6.js} +4 -4
  238. package/dist/plugin-sdk/{active-listener-BZQWZPF7.js → active-listener-x4MLhYUw.js} +1 -1
  239. package/dist/plugin-sdk/{allow-list-BYeKk0Sy.js → allow-list-DyAxs4yw.js} +1 -1
  240. package/dist/plugin-sdk/{audio-preflight-t4mmHsI2.js → audio-preflight-G8h3Sn8_.js} +43 -47
  241. package/dist/plugin-sdk/{audit-BZk_6Buw.js → audit-CWknklvI.js} +1 -1
  242. package/dist/plugin-sdk/{channel-access-CN5HiWdb.js → channel-access-a9Dnfw7-.js} +1 -1
  243. package/dist/plugin-sdk/{channel-access-configure-B7Kkvx9K.js → channel-access-configure-CD4QDN5E.js} +1 -1
  244. package/dist/plugin-sdk/{channel-adapters.discord-IOZP8Cv5.js → channel-adapters.discord-BS4S4Svh.js} +1 -1
  245. package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
  246. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  247. package/dist/plugin-sdk/{chunk-B2ffJ-LR.js → chunk-B8EZkwiT.js} +1 -1
  248. package/dist/plugin-sdk/{chunk-items-jOdkyP53.js → chunk-items-CEPklxGe.js} +1 -1
  249. package/dist/plugin-sdk/command-status.d.ts +2 -2
  250. package/dist/plugin-sdk/command-status.js +43 -47
  251. package/dist/plugin-sdk/{commands-registry-BWb4NcfW.js → commands-registry-BfEa4tFA.js} +2 -2
  252. package/dist/plugin-sdk/{common-C4XrB73N.js → common-CbfckC19.js} +1 -1
  253. package/dist/plugin-sdk/{config-rySyVtKs.js → config-Bt5GhnA-.js} +105 -73
  254. package/dist/plugin-sdk/{config-schema-BaybPPrJ.js → config-schema-B9DKr6J5.js} +96239 -81587
  255. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  256. package/dist/plugin-sdk/device-pair.js +2 -3
  257. package/dist/plugin-sdk/{diagnostic-Dfn1iERm.js → diagnostic-DLL_zekv.js} +3 -3
  258. package/dist/plugin-sdk/{directory-live-DatqU-eS.js → directory-live-CSuYxdwk.js} +1 -1
  259. package/dist/plugin-sdk/{directory-live-ClwN5KKq.js → directory-live-Dw7ZgC9_.js} +1 -1
  260. package/dist/plugin-sdk/discord.d.ts +5 -5
  261. package/dist/plugin-sdk/discord.js +31 -32
  262. package/dist/plugin-sdk/{draft-stream-controls-D4Tb_iS_.js → draft-stream-controls-BqchW1vi.js} +1 -1
  263. package/dist/plugin-sdk/{fetch-guard-BuYrl6q2.js → fetch-guard-CeG6u6ld.js} +1 -1
  264. package/dist/plugin-sdk/{filesystem-manager-B9DDPgfU.js → filesystem-manager-BGGGrkiN.js} +2 -2
  265. package/dist/plugin-sdk/{fs-safe-BG-VzVkL.js → fs-safe-xBqok6yR.js} +1 -1
  266. package/dist/plugin-sdk/{group-mentions-DLOOve8d.d.ts → group-mentions-BHRff6j8.d.ts} +1 -1
  267. package/dist/plugin-sdk/{guilds-BeT3iHHJ.js → guilds-CDhRIX57.js} +1 -1
  268. package/dist/plugin-sdk/{handle-action-CGF-Qnp0.js → handle-action-DbzZFYnG.js} +24 -25
  269. package/dist/plugin-sdk/{helpers-DgRMfCnT.js → helpers-CluGKuIV.js} +1 -1
  270. package/dist/plugin-sdk/{image-ops-CcBfoMLW.js → image-ops-CUaLtIFj.js} +1 -1
  271. package/dist/plugin-sdk/index.d.ts +8 -8
  272. package/dist/plugin-sdk/index.js +47 -51
  273. package/dist/plugin-sdk/json-store.js +6 -6
  274. package/dist/plugin-sdk/{login-DpDQyM7r.js → login-DJuHYDiK.js} +3 -3
  275. package/dist/plugin-sdk/{login-qr-COaSAPY5.js → login-qr-CbHL5ayf.js} +3 -3
  276. package/dist/plugin-sdk/{manager-Cqz30lA3.js → manager-oHAvZCT3.js} +7 -7
  277. package/dist/plugin-sdk/{markdown-tables-BOG5sSQQ.js → markdown-tables-Mkx7k92Y.js} +1 -1
  278. package/dist/plugin-sdk/{media-Bu-nJpPs.js → media-CA8sTmVE.js} +4 -4
  279. package/dist/plugin-sdk/{monitor-II_NIq3G.js → monitor-CZrN9pev.js} +51 -55
  280. package/dist/plugin-sdk/{monitor-DL6oEVo8.js → monitor-CmwGqNyV.js} +61 -65
  281. package/dist/plugin-sdk/{openresponses-http-vkHBBpGY.js → openresponses-http-CWOd4war.js} +43 -47
  282. package/dist/plugin-sdk/{optional-runtime-dependency-DEojVNfv.js → optional-runtime-dependency-DKmk9PZa.js} +1 -1
  283. package/dist/plugin-sdk/{outbound-mf2y6KuY.js → outbound-0oN9IfNw.js} +9 -9
  284. package/dist/plugin-sdk/{outbound-attachment-ivAHpWnn.js → outbound-attachment-DdVkqUzE.js} +2 -2
  285. package/dist/plugin-sdk/{pairing-message-CvJ6Qa1Q.d.ts → pairing-message-BMkkS038.d.ts} +2 -2
  286. package/dist/plugin-sdk/{pairing-message-CqYG12t-.js → pairing-message-ClqhfCUk.js} +1 -1
  287. package/dist/plugin-sdk/{pairing-store-D-21Sphe.js → pairing-store-B01mCSct.js} +2 -2
  288. package/dist/plugin-sdk/{pi-model-discovery-B6gD1clF.js → pi-model-discovery-Buz0JC1Y.js} +1 -1
  289. package/dist/plugin-sdk/{pi-model-discovery-runtime-3yDxS3ro.js → pi-model-discovery-runtime-DuwuoteY.js} +2 -2
  290. package/dist/plugin-sdk/{probe-Cyb-DGA3.js → probe--7xtfzMm.js} +3 -3
  291. package/dist/plugin-sdk/{probe-Dlk0Jxpw.js → probe-BFroeK3g.js} +1 -1
  292. package/dist/plugin-sdk/{probe-D8JAILir.js → probe-l_whvGLY.js} +1 -1
  293. package/dist/plugin-sdk/{resolve-channels-zEnvugag.js → probe-xY3Ky0Tx.js} +3 -4
  294. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  295. package/dist/plugin-sdk/{pw-ai-CMplwiwf.js → pw-ai-B0domrii.js} +6 -8
  296. package/dist/plugin-sdk/{qmd-manager-DCUE21Kj.js → qmd-manager-CFFeM4Fl.js} +3 -3
  297. package/dist/plugin-sdk/{query-expansion-Zr9qQixm.js → query-expansion-CAI2kKLQ.js} +1 -1
  298. package/dist/plugin-sdk/{replies-wiI4veI7.js → replies-1macZ1mZ.js} +4 -4
  299. package/dist/plugin-sdk/{resolve-channels-ChWKWtA9.js → resolve-channels-87LZrFk_.js} +2 -2
  300. package/dist/plugin-sdk/resolve-channels-CwB2_019.js +4 -0
  301. package/dist/plugin-sdk/{resolve-outbound-target-bm9RUK5q.js → resolve-outbound-target-BdH6LUoW.js} +2 -2
  302. package/dist/plugin-sdk/{resolve-route-ekGNc6os.js → resolve-route-CkNIKKEW.js} +1 -1
  303. package/dist/plugin-sdk/{resolve-users-BTvjQuui.js → resolve-users-Cxb5wpAQ.js} +1 -1
  304. package/dist/plugin-sdk/{resolve-users-CTzoruIZ.js → resolve-users-V6dHh_2B.js} +2 -2
  305. package/dist/plugin-sdk/{retry-policy-BvlC2SPh.js → retry-policy-9ybIh4Fq.js} +1 -1
  306. package/dist/plugin-sdk/{runtime-ClSakPxR.js → runtime-Dy420wBu.js} +3 -3
  307. package/dist/plugin-sdk/{runtime-dependency-yAWxH4El.js → runtime-dependency-CIw9t7-k.js} +123 -15
  308. package/dist/plugin-sdk/{sandbox-paths-lj7_EVuA.js → sandbox-paths-w64tYl0v.js} +1 -1
  309. package/dist/plugin-sdk/sat-runtime.d.ts +3 -3
  310. package/dist/plugin-sdk/sat-runtime.js +44 -10
  311. package/dist/plugin-sdk/{send-D264hFVb.js → send-2VcOMTN5.js} +9 -9
  312. package/dist/plugin-sdk/{send-CgyS75Av.js → send-BQUtCJFW.js} +10 -10
  313. package/dist/plugin-sdk/{send-D58yEeH4.js → send-DPJIIYAs.js} +6 -6
  314. package/dist/plugin-sdk/{send-C7x6gzSl.js → send-Dqes9tdU.js} +13 -13
  315. package/dist/plugin-sdk/{send-DrAtUGLM.js → send-J4JWKP62.js} +8 -8
  316. package/dist/plugin-sdk/{session-DyMtb5YQ.js → session-C_n2S5ub.js} +3 -3
  317. package/dist/plugin-sdk/{skill-commands-Q80wCyry.js → skill-commands-B7wx9ax8.js} +102 -102
  318. package/dist/plugin-sdk/{slack-C-I6q3NB.js → slack-BouRQG-W.js} +64 -68
  319. package/dist/plugin-sdk/{slack-actions-dGE_t_Un.js → slack-actions-CasHVtiq.js} +20 -21
  320. package/dist/plugin-sdk/slack.d.ts +5 -5
  321. package/dist/plugin-sdk/slack.js +13 -13
  322. package/dist/plugin-sdk/{ssrf-BZG8Ztod.js → ssrf-fG4UHKBw.js} +180 -2
  323. package/dist/plugin-sdk/{sticker-cache-DCrDTYIi.js → sticker-cache-BvGEUas3.js} +3 -3
  324. package/dist/plugin-sdk/{tables-0mhUOh5v.js → tables-CjlQJV4r.js} +2 -2
  325. package/dist/plugin-sdk/{device-pairing-D2Yq-_U6.js → tailscale-status-DwpNdO3Z.js} +104 -2
  326. package/dist/plugin-sdk/{targets-znKHngSk.js → targets-QfP164Dh.js} +2 -2
  327. package/dist/plugin-sdk/{telegram-actions-GBYY8-x9.js → telegram-actions-CwYjV6Db.js} +48 -52
  328. package/dist/plugin-sdk/telegram.d.ts +5 -5
  329. package/dist/plugin-sdk/telegram.js +11 -11
  330. package/dist/plugin-sdk/{thread-bindings.lifecycle-ClzPBK70.js → thread-bindings.lifecycle-DU4iX_Jr.js} +3 -3
  331. package/dist/plugin-sdk/{thread-bindings.state-Ha01nmrq.js → thread-bindings.state-BgYWFjNF.js} +2 -2
  332. package/dist/plugin-sdk/{tmp-fased-dir-C_xfeEN9.d.ts → tmp-fased-dir-BdFQvrvw.d.ts} +2 -2
  333. package/dist/plugin-sdk/{types-DV5TNhMK.d.ts → types-BYDL6dQj.d.ts} +2 -2
  334. package/dist/plugin-sdk/{types-BI2njxWJ.d.ts → types-CLIvQaVg.d.ts} +39 -5
  335. package/dist/plugin-sdk/{types-CBCtqtMn.d.ts → types-DyhXnYUr.d.ts} +1 -1
  336. package/dist/plugin-sdk/{types.plugin-CvUiB3Kh.d.ts → types.plugin-_fbu40Re.d.ts} +8 -5
  337. package/dist/plugin-sdk/{web-CJMfhGFY.js → web-D0yENDve.js} +52 -56
  338. package/dist/plugin-sdk/{whatsapp-actions-0ZbGo5ZV.js → whatsapp-actions-BT2nPLyo.js} +18 -19
  339. package/dist/plugin-sdk/{whatsapp-heartbeat-DGTsuvQ8.js → whatsapp-heartbeat-CiABSZ6G.js} +2 -2
  340. package/dist/plugin-sdk/whatsapp.d.ts +5 -5
  341. package/dist/plugin-sdk/whatsapp.js +14 -14
  342. package/dist/plugin-sdk/{wsl-D5jDUlms.js → wsl-B_ojyEtC.js} +53 -53
  343. package/dist/plugins/bundled-dir.js +3 -3
  344. package/dist/plugins/discovery.js +11 -11
  345. package/dist/plugins/loader.js +13 -13
  346. package/dist/plugins/manifest-registry.js +2 -2
  347. package/dist/plugins/manifest.js +4 -4
  348. package/dist/plugins/path-safety.js +3 -3
  349. package/dist/plugins/runtime/index.js +1 -1
  350. package/dist/plugins/status-cache.js +9 -9
  351. package/dist/plugins/update.js +3 -3
  352. package/dist/plugins/web-search-install-catalog.js +3 -3
  353. package/dist/providers/github-copilot-model-discovery.js +51 -0
  354. package/dist/providers/litellm-models.js +1 -1
  355. package/dist/providers/openai-codex-model-discovery.js +166 -0
  356. package/dist/providers/refresh.js +311 -67
  357. package/dist/providers/registry.js +16 -6
  358. package/dist/providers/runtime-model-catalog.js +250 -0
  359. package/dist/secrets/apply.js +16 -16
  360. package/dist/secrets/audit.js +11 -11
  361. package/dist/secrets/shared.js +9 -9
  362. package/dist/security/scan-paths.js +2 -2
  363. package/dist/shared/config-eval.js +2 -2
  364. package/dist/shared/model-thinking.js +54 -4
  365. package/dist/shared/pid-alive.js +2 -2
  366. package/dist/tasks/standing-orders.js +5 -5
  367. package/dist/tasks/task-flow-registry.js +5 -5
  368. package/dist/tasks/task-registry.js +5 -5
  369. package/dist/tasks/workflow-definitions.js +6 -6
  370. package/dist/telegram/bot-message-context.js +1 -1
  371. package/dist/telegram/token.js +5 -5
  372. package/dist/utils.js +5 -5
  373. package/dist/wallet/local-socket-signer-broker.js +16 -16
  374. package/dist/wallet/providers/embedded-keystore-adapter.js +5 -5
  375. package/dist/wallet/providers/local-socket-signer-adapter.js +2 -2
  376. package/dist/wallet/wallet-approval-auth.js +5 -5
  377. package/dist/wallet/wallet-audit-log.js +5 -5
  378. package/dist/wallet/wallet-custody.js +21 -21
  379. package/dist/wallet/wallet-inbound-events.js +5 -5
  380. package/dist/wallet/wallet-observability.js +5 -5
  381. package/dist/wallet/wallet-policy.js +9 -9
  382. package/dist/wallet/wallet-provider-registry.js +7 -7
  383. package/dist/wallet/wallet-runtime-config.js +3 -3
  384. package/dist/wallet/wallet-secrets-store.js +22 -22
  385. package/dist/wallet/wallet-send-approvals.js +5 -5
  386. package/dist/wallet/wallet-settlement-links.js +5 -5
  387. package/dist/web/accounts.js +3 -3
  388. package/dist/web/auth-store.js +18 -18
  389. package/dist/web/session.js +4 -4
  390. package/dist/wizard/host-security-capability.js +2 -2
  391. package/dist/wizard/onboarding.host-security.js +7 -7
  392. package/dist/wizard/onboarding.js +31 -13
  393. package/dist/wizard/onboarding.wallet.js +44 -44
  394. package/extensions/acpx/package.json +1 -1
  395. package/extensions/bluebubbles/package.json +1 -1
  396. package/extensions/copilot-proxy/package.json +1 -1
  397. package/extensions/diagnostics-otel/package.json +1 -1
  398. package/extensions/fased-federation/package.json +1 -1
  399. package/extensions/google-gemini-cli-auth/package.json +1 -1
  400. package/extensions/imessage/package.json +1 -1
  401. package/extensions/irc/package.json +1 -1
  402. package/extensions/line/package.json +1 -1
  403. package/extensions/llm-task/package.json +1 -1
  404. package/extensions/lobster/package.json +1 -1
  405. package/extensions/matrix/CHANGELOG.md +12 -0
  406. package/extensions/matrix/package.json +1 -1
  407. package/extensions/mattermost/package.json +1 -1
  408. package/extensions/memory-core/package.json +2 -2
  409. package/extensions/memory-lancedb/package.json +1 -1
  410. package/extensions/minimax-portal-auth/package.json +1 -1
  411. package/extensions/msteams/CHANGELOG.md +12 -0
  412. package/extensions/msteams/package.json +1 -1
  413. package/extensions/nextcloud-talk/package.json +1 -1
  414. package/extensions/nostr/CHANGELOG.md +12 -0
  415. package/extensions/nostr/package.json +1 -1
  416. package/extensions/open-prose/package.json +1 -1
  417. package/extensions/sat-mining/package.json +1 -1
  418. package/extensions/signal/package.json +1 -1
  419. package/extensions/synology-chat/package.json +1 -1
  420. package/extensions/tlon/package.json +1 -1
  421. package/extensions/twitch/CHANGELOG.md +12 -0
  422. package/extensions/twitch/package.json +1 -1
  423. package/extensions/voice-call/CHANGELOG.md +12 -0
  424. package/extensions/voice-call/package.json +1 -1
  425. package/extensions/zalo/CHANGELOG.md +12 -0
  426. package/extensions/zalo/package.json +1 -1
  427. package/extensions/zalouser/CHANGELOG.md +12 -0
  428. package/extensions/zalouser/package.json +1 -1
  429. package/package.json +2 -1
  430. package/dist/control-ui/assets/chat-model-ref-B9sWop67.js +0 -2
  431. package/dist/plugin-sdk/ip-C70a-YlD.js +0 -181
  432. package/dist/plugin-sdk/tailscale-status-ClsquRGs.js +0 -104
  433. package/dist/plugin-sdk/wallet-status-CyovJojz.js +0 -11944
  434. package/dist/plugin-sdk/ws-CocpWGhl.js +0 -114
  435. /package/dist/plugin-sdk/{blocks-input-Dcitfh7h.js → blocks-input-Bg-8S2pl.js} +0 -0
  436. /package/dist/plugin-sdk/{channel-activity-Cg1xRoc2.js → channel-activity-DBDMQ3yI.js} +0 -0
  437. /package/dist/plugin-sdk/{channel-core-BOkyXXLa.js → channel-core-CFRs8LPy.js} +0 -0
  438. /package/dist/plugin-sdk/{client-D2N7hqVu.js → client-pI228AVT.js} +0 -0
  439. /package/dist/plugin-sdk/{command-poll-backoff-NAePk3eL.js → command-poll-backoff-yJU83wEq.js} +0 -0
  440. /package/dist/plugin-sdk/{date-time-CE3Uer3C.js → date-time-uUevHscU.js} +0 -0
  441. /package/dist/plugin-sdk/{diagnostic-session-state-HO94DMou.js → diagnostic-session-state-DqgfGYqZ.js} +0 -0
  442. /package/dist/plugin-sdk/{draft-stream-loop-CKyHn8IX.js → draft-stream-loop-CrOPfV3F.js} +0 -0
  443. /package/dist/plugin-sdk/{fetch-Cu-ahkie.js → fetch-BtmoPIlf.js} +0 -0
  444. /package/dist/plugin-sdk/{gateway-registry-DFsoY6C0.js → gateway-registry-DZDsqicG.js} +0 -0
  445. /package/dist/plugin-sdk/{inbound-context-BFnIdcqI.js → inbound-context-DrAcXE0y.js} +0 -0
  446. /package/dist/plugin-sdk/{internal-qo16nNU1.js → internal-CG_nHo-2.js} +0 -0
  447. /package/dist/plugin-sdk/{memory-search-C3C0bD2H.js → memory-search-VFll-AIb.js} +0 -0
  448. /package/dist/plugin-sdk/{pairing-token-N_6Jbt1L.js → pairing-token-Cs3BRKc0.js} +0 -0
  449. /package/dist/plugin-sdk/{path-alias-guards-Dg3gU-MA.js → path-alias-guards-BJZD5JMJ.js} +0 -0
  450. /package/dist/plugin-sdk/{polls-DQrR-qT3.js → polls-DKQXVfJp.js} +0 -0
  451. /package/dist/plugin-sdk/{proxy-7xs_rsnV.js → proxy-DWpYcsvR.js} +0 -0
  452. /package/dist/plugin-sdk/{qmd-scope-D1sSG_Rx.js → qmd-scope-CdX34VCV.js} +0 -0
  453. /package/dist/plugin-sdk/{redact-identifier-Q3tkvxhm.js → redact-identifier-Lt7t3l7S.js} +0 -0
  454. /package/dist/plugin-sdk/{redact-sensitive-url-dPvnFFsK.js → redact-sensitive-url-g-ukZjwA.js} +0 -0
  455. /package/dist/plugin-sdk/{render-Bwu_WxwA.js → render-e7fENCYH.js} +0 -0
  456. /package/dist/plugin-sdk/{reply-prefix-Bqzm6DC1.js → reply-prefix-ClpxvL_w.js} +0 -0
  457. /package/dist/plugin-sdk/{reply-reference-BkbK_DWT.js → reply-reference-Bqk-7HXE.js} +0 -0
  458. /package/dist/plugin-sdk/{secure-random-Bl-AVLVb.js → secure-random-BIkG-k4s.js} +0 -0
  459. /package/dist/plugin-sdk/{shared-clhhbWN3.js → shared-CBgp_GBw.js} +0 -0
  460. /package/dist/plugin-sdk/{target-errors-C_SVKoEv.js → target-errors-Ckufe179.js} +0 -0
  461. /package/dist/plugin-sdk/{targets-BDvvnlph.js → targets-CoMJ1ry1.js} +0 -0
  462. /package/dist/plugin-sdk/{tokens-BvtlOzVP.js → tokens-BbnqfVuu.js} +0 -0
  463. /package/dist/plugin-sdk/{tool-loop-detection-CWphm1k_.js → tool-loop-detection-Bp8bPJLs.js} +0 -0
  464. /package/dist/plugin-sdk/{ui-e020ouhJ.js → ui-Be8cLHIS.js} +0 -0
  465. /package/dist/plugin-sdk/{with-timeout-BYrRAYFV.js → with-timeout-ckWB8rTo.js} +0 -0
@@ -4,10 +4,10 @@ import { info, success } from "../globals.js";
4
4
  import { defaultRuntime } from "../runtime.js";
5
5
  import { formatCliCommand } from "../cli/command-format.js";
6
6
  import "../logging.js";
7
- import fs from "node:fs";
7
+ import syncFs from "node:fs";
8
8
  import os from "node:os";
9
9
  import path from "node:path";
10
- import fs$1 from "node:fs/promises";
10
+ import fs from "node:fs/promises";
11
11
 
12
12
  //#region src/web/auth-store.ts
13
13
  const DEFAULT_WEB_AUTH_ACCOUNT_ID = "default";
@@ -65,7 +65,7 @@ function readAuthStoreLidReverseMapping(lid, opts) {
65
65
  for (const dir of dirs) {
66
66
  const mappingPath = path.join(dir, mappingFilename);
67
67
  try {
68
- const data = fs.readFileSync(mappingPath, "utf8");
68
+ const data = syncFs.readFileSync(mappingPath, "utf8");
69
69
  const phone = JSON.parse(data);
70
70
  if (phone !== null && phone !== undefined) {
71
71
  return normalizeAuthStoreE164(String(phone));
@@ -97,7 +97,7 @@ function resolveWebCredsBackupPath(authDir) {
97
97
  }
98
98
  function hasWebCredsSync(authDir) {
99
99
  try {
100
- const stats = fs.statSync(resolveWebCredsPath(authDir));
100
+ const stats = syncFs.statSync(resolveWebCredsPath(authDir));
101
101
  return stats.isFile() && stats.size > 1;
102
102
  } catch {
103
103
  return false;
@@ -105,14 +105,14 @@ function hasWebCredsSync(authDir) {
105
105
  }
106
106
  function readCredsJsonRaw(filePath) {
107
107
  try {
108
- if (!fs.existsSync(filePath)) {
108
+ if (!syncFs.existsSync(filePath)) {
109
109
  return null;
110
110
  }
111
- const stats = fs.statSync(filePath);
111
+ const stats = syncFs.statSync(filePath);
112
112
  if (!stats.isFile() || stats.size <= 1) {
113
113
  return null;
114
114
  }
115
- return fs.readFileSync(filePath, "utf-8");
115
+ return syncFs.readFileSync(filePath, "utf-8");
116
116
  } catch {
117
117
  return null;
118
118
  }
@@ -132,9 +132,9 @@ function maybeRestoreCredsFromBackup(authDir) {
132
132
  return;
133
133
  }
134
134
  JSON.parse(backupRaw);
135
- fs.copyFileSync(backupPath, credsPath);
135
+ syncFs.copyFileSync(backupPath, credsPath);
136
136
  try {
137
- fs.chmodSync(credsPath, 384);
137
+ syncFs.chmodSync(credsPath, 384);
138
138
  } catch {}
139
139
  logger.warn({ credsPath }, "restored corrupted WhatsApp creds.json from backup");
140
140
  } catch {}
@@ -144,16 +144,16 @@ async function webAuthExists(authDir = resolveDefaultWebAuthDir()) {
144
144
  maybeRestoreCredsFromBackup(resolvedAuthDir);
145
145
  const credsPath = resolveWebCredsPath(resolvedAuthDir);
146
146
  try {
147
- await fs$1.access(resolvedAuthDir);
147
+ await fs.access(resolvedAuthDir);
148
148
  } catch {
149
149
  return false;
150
150
  }
151
151
  try {
152
- const stats = await fs$1.stat(credsPath);
152
+ const stats = await fs.stat(credsPath);
153
153
  if (!stats.isFile() || stats.size <= 1) {
154
154
  return false;
155
155
  }
156
- const raw = await fs$1.readFile(credsPath, "utf-8");
156
+ const raw = await fs.readFile(credsPath, "utf-8");
157
157
  JSON.parse(raw);
158
158
  return true;
159
159
  } catch {
@@ -161,7 +161,7 @@ async function webAuthExists(authDir = resolveDefaultWebAuthDir()) {
161
161
  }
162
162
  }
163
163
  async function clearLegacyBaileysAuthState(authDir) {
164
- const entries = await fs$1.readdir(authDir, { withFileTypes: true });
164
+ const entries = await fs.readdir(authDir, { withFileTypes: true });
165
165
  const shouldDelete = (name) => {
166
166
  if (name === "oauth.json") {
167
167
  return false;
@@ -181,7 +181,7 @@ async function clearLegacyBaileysAuthState(authDir) {
181
181
  if (!shouldDelete(entry.name)) {
182
182
  return;
183
183
  }
184
- await fs$1.rm(path.join(authDir, entry.name), { force: true });
184
+ await fs.rm(path.join(authDir, entry.name), { force: true });
185
185
  }));
186
186
  }
187
187
  async function logoutWeb(params) {
@@ -195,7 +195,7 @@ async function logoutWeb(params) {
195
195
  if (params.isLegacyAuthDir) {
196
196
  await clearLegacyBaileysAuthState(resolvedAuthDir);
197
197
  } else {
198
- await fs$1.rm(resolvedAuthDir, {
198
+ await fs.rm(resolvedAuthDir, {
199
199
  recursive: true,
200
200
  force: true
201
201
  });
@@ -206,13 +206,13 @@ async function logoutWeb(params) {
206
206
  function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
207
207
  try {
208
208
  const credsPath = resolveWebCredsPath(resolveAuthStoreUserPath(authDir));
209
- if (!fs.existsSync(credsPath)) {
209
+ if (!syncFs.existsSync(credsPath)) {
210
210
  return {
211
211
  e164: null,
212
212
  jid: null
213
213
  };
214
214
  }
215
- const raw = fs.readFileSync(credsPath, "utf-8");
215
+ const raw = syncFs.readFileSync(credsPath, "utf-8");
216
216
  const parsed = JSON.parse(raw);
217
217
  const jid = parsed?.me?.id ?? null;
218
218
  const e164 = jid ? jidToE164ForAuthStore(jid, { authDir }) : null;
@@ -233,7 +233,7 @@ function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
233
233
  */
234
234
  function getWebAuthAgeMs(authDir = resolveDefaultWebAuthDir()) {
235
235
  try {
236
- const stats = fs.statSync(resolveWebCredsPath(resolveAuthStoreUserPath(authDir)));
236
+ const stats = syncFs.statSync(resolveWebCredsPath(resolveAuthStoreUserPath(authDir)));
237
237
  return Date.now() - stats.mtimeMs;
238
238
  } catch {
239
239
  return null;
@@ -7,7 +7,7 @@ import { redactSensitiveText } from "../logging/redact.js";
7
7
  import "../logging.js";
8
8
  import { WA_WEB_AUTH_DIR, getWebAuthAgeMs, logWebSelfId, logoutWeb, maybeRestoreCredsFromBackup, pickWebChannel, readCredsJsonRaw, readWebSelfId, resolveDefaultWebAuthDir, resolveWebCredsBackupPath, resolveWebCredsPath, webAuthExists } from "./auth-store.js";
9
9
  import { redactSensitiveUrlLikeString } from "../shared/net/redact-sensitive-url.js";
10
- import fs from "node:fs";
10
+ import syncFs from "node:fs";
11
11
  import { randomUUID } from "node:crypto";
12
12
  import { DisconnectReason, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, makeWASocket, useMultiFileAuthState } from "@whiskeysockets/baileys";
13
13
  import qrcode from "qrcode-terminal";
@@ -27,9 +27,9 @@ async function safeSaveCreds(authDir, saveCreds, logger) {
27
27
  if (raw) {
28
28
  try {
29
29
  JSON.parse(raw);
30
- fs.copyFileSync(credsPath, backupPath);
30
+ syncFs.copyFileSync(credsPath, backupPath);
31
31
  try {
32
- fs.chmodSync(backupPath, 384);
32
+ syncFs.chmodSync(backupPath, 384);
33
33
  } catch {}
34
34
  } catch {}
35
35
  }
@@ -37,7 +37,7 @@ async function safeSaveCreds(authDir, saveCreds, logger) {
37
37
  try {
38
38
  await Promise.resolve(saveCreds());
39
39
  try {
40
- fs.chmodSync(resolveWebCredsPath(authDir), 384);
40
+ syncFs.chmodSync(resolveWebCredsPath(authDir), 384);
41
41
  } catch {}
42
42
  } catch (err) {
43
43
  logger.warn({ error: formatError(err) }, "failed saving WhatsApp creds");
@@ -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 { spawnSync } from "node:child_process";
@@ -24,7 +24,7 @@ function isHostedSecurityCapableSession(explicitFlag = false) {
24
24
  const currentUser = currentUserName();
25
25
  if (currentUser) {
26
26
  const sudoersPath = path.join("/etc/sudoers.d", `fased-host-maintenance-${currentUser}`);
27
- if (fs.existsSync(sudoersPath)) {
27
+ if (syncFs.existsSync(sudoersPath)) {
28
28
  return true;
29
29
  }
30
30
  }
@@ -2,7 +2,7 @@ import { redactSensitiveText } from "../logging/redact.js";
2
2
  import { redactSensitiveUrlLikeString } from "../shared/net/redact-sensitive-url.js";
3
3
  import { noteCommands, noteHeading, noteStep, noteWarn } from "./onboarding-note-format.js";
4
4
  import { isHostingProfile } from "./onboarding.types.js";
5
- import fs from "node:fs";
5
+ import syncFs from "node:fs";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
8
  import { spawn, spawnSync } from "node:child_process";
@@ -12,7 +12,7 @@ import { Buffer } from "node:buffer";
12
12
  function resolveHostSecurityLogPath() {
13
13
  const home = process.env.HOME?.trim() || os.homedir();
14
14
  const logDir = path.join(home, ".fased", "logs");
15
- fs.mkdirSync(logDir, {
15
+ syncFs.mkdirSync(logDir, {
16
16
  recursive: true,
17
17
  mode: 448
18
18
  });
@@ -26,7 +26,7 @@ function appendHostSecurityLog(logPath, title, detail) {
26
26
  sanitizedDetail?.trim() || "(no output)",
27
27
  ""
28
28
  ].join("\n");
29
- fs.appendFileSync(logPath, body, "utf8");
29
+ syncFs.appendFileSync(logPath, body, "utf8");
30
30
  }
31
31
  function resolveTailnetSshConfirmationPath() {
32
32
  const stateDir = process.env.FASED_STATE_DIR?.trim() || process.env.FASED_CONFIG_DIR?.trim() || path.join(process.env.HOME?.trim() || os.homedir(), ".fased");
@@ -34,7 +34,7 @@ function resolveTailnetSshConfirmationPath() {
34
34
  }
35
35
  function hasStoredTailnetSshConfirmation(target) {
36
36
  try {
37
- const raw = fs.readFileSync(resolveTailnetSshConfirmationPath(), "utf8");
37
+ const raw = syncFs.readFileSync(resolveTailnetSshConfirmationPath(), "utf8");
38
38
  const parsed = JSON.parse(raw);
39
39
  return parsed.user === target.user && parsed.repoDir === target.repoDir;
40
40
  } catch {
@@ -43,11 +43,11 @@ function hasStoredTailnetSshConfirmation(target) {
43
43
  }
44
44
  function writeTailnetSshConfirmation(target) {
45
45
  const markerPath = resolveTailnetSshConfirmationPath();
46
- fs.mkdirSync(path.dirname(markerPath), {
46
+ syncFs.mkdirSync(path.dirname(markerPath), {
47
47
  recursive: true,
48
48
  mode: 448
49
49
  });
50
- fs.writeFileSync(markerPath, `${JSON.stringify({
50
+ syncFs.writeFileSync(markerPath, `${JSON.stringify({
51
51
  confirmedAt: new Date().toISOString(),
52
52
  user: target.user,
53
53
  host: target.host,
@@ -75,7 +75,7 @@ const HOST_MAINTENANCE_HELPER = "/usr/local/sbin/fased-host-maintenance";
75
75
  function detectTotalMemoryMb() {
76
76
  if (process.platform === "linux") {
77
77
  try {
78
- const meminfo = fs.readFileSync("/proc/meminfo", "utf8");
78
+ const meminfo = syncFs.readFileSync("/proc/meminfo", "utf8");
79
79
  const match = meminfo.match(/^MemTotal:\s+(\d+)\s+kB/m);
80
80
  if (match?.[1]) {
81
81
  return Math.floor(Number.parseInt(match[1], 10) / 1024);
@@ -2,6 +2,7 @@ import { resolveGatewayPort } from "../config/paths.js";
2
2
  import { resolveUserPath } from "../utils.js";
3
3
  import { defaultRuntime } from "../runtime.js";
4
4
  import { formatCliCommand } from "../cli/command-format.js";
5
+ import { resolveFasedAgentAgentDir } from "../agents/agent-paths.js";
5
6
  import { ensureAuthProfileStore } from "../agents/auth-profiles/store.js";
6
7
  import { readConfigFileSnapshot, writeConfigFile } from "../config/io.js";
7
8
  import "../config/config.js";
@@ -12,9 +13,11 @@ import { DEFAULT_WORKSPACE, applyWizardMetadata, ensureWorkspaceAndSessions, han
12
13
  import { configureWalletForOnboarding, installSignerdBinary, migrateLocalSignerKeystoreToMaterialDir, resolveSignerdBinaryPath, restartLocalSocketSigner } from "./onboarding.wallet.js";
13
14
  import { collectWalletSignerDoctorReport, walletSetupCommand } from "../commands/wallet.js";
14
15
  import { promptAuthChoiceGrouped } from "../commands/auth-choice-prompt.js";
16
+ import { applyPrimaryModel, resolveAuthenticatedDefaultModel } from "../commands/model-picker.js";
15
17
  import { logConfigUpdated } from "../config/logging.js";
16
18
  import { applyAuthChoice } from "../commands/auth-choice.apply.js";
17
19
  import { warnIfModelConfigLooksOff } from "../commands/auth-choice.model-check.js";
20
+ import { resolvePreferredProviderForAuthChoice } from "../commands/auth-choice.preferred-provider.js";
18
21
  import "../commands/auth-choice.js";
19
22
  import { setupChannels } from "../commands/onboard-channels.js";
20
23
  import { applyOnboardingLocalWorkspaceConfig } from "../commands/onboard-config.js";
@@ -29,7 +32,7 @@ import { finalizeOnboardingWizard } from "./onboarding.finalize.js";
29
32
  import { configureGatewayForOnboarding } from "./onboarding.gateway-config.js";
30
33
  import { applyHostingSecurity } from "./onboarding.host-security.js";
31
34
  import { normalizeHostedWalletPaths } from "./wallet-path-migration.js";
32
- import fs from "node:fs";
35
+ import syncFs from "node:fs";
33
36
  import path from "node:path";
34
37
  import { spawn, spawnSync } from "node:child_process";
35
38
 
@@ -37,6 +40,25 @@ import { spawn, spawnSync } from "node:child_process";
37
40
  async function requireRiskAcknowledgement(params) {
38
41
  void params;
39
42
  }
43
+ async function applyOnboardingAuthChoice(params) {
44
+ const agentDir = resolveFasedAgentAgentDir();
45
+ const authResult = await applyAuthChoice({
46
+ authChoice: params.authChoice,
47
+ config: params.config,
48
+ prompter: params.prompter,
49
+ runtime: params.runtime,
50
+ setDefaultModel: false,
51
+ agentDir,
52
+ opts: params.opts
53
+ });
54
+ const preferredProvider = resolvePreferredProviderForAuthChoice(params.authChoice, { config: authResult.config });
55
+ const authenticatedDefault = await resolveAuthenticatedDefaultModel({
56
+ config: authResult.config,
57
+ agentDir,
58
+ preferredProvider
59
+ });
60
+ return authenticatedDefault ? applyPrimaryModel(authResult.config, authenticatedDefault) : authResult.config;
61
+ }
40
62
  async function confirmOnboardingRepair(params) {
41
63
  await params.prompter.note([
42
64
  "Repair is for bad auth/session state while keeping the instance configuration intact.",
@@ -472,7 +494,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
472
494
  const stateRoot = String(process.env.FASED_STATE_DIR ?? "").trim() || path.join(String(process.env.HOME ?? "").trim() || process.cwd(), ".fased");
473
495
  const installRoot = path.join(stateRoot, "toolchains", `go${goVersion}`);
474
496
  const goBin = path.join(installRoot, "bin", "go");
475
- if (fs.existsSync(goBin)) {
497
+ if (syncFs.existsSync(goBin)) {
476
498
  process.env.FASED_GO_BIN = goBin;
477
499
  return goModernEnough() ? "installed" : "unavailable";
478
500
  }
@@ -505,7 +527,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
505
527
  if (String(process.env.FASED_FORCE_NATIVE_SIGNER_BUILD ?? "").trim() === "1") {
506
528
  return false;
507
529
  }
508
- return fs.existsSync(resolveSignerdBinaryPath(process.env));
530
+ return syncFs.existsSync(resolveSignerdBinaryPath(process.env));
509
531
  };
510
532
  const maybeInstallGoForOnboarding = async () => {
511
533
  if (goModernEnough()) {
@@ -539,7 +561,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
539
561
  return goModernEnough();
540
562
  };
541
563
  const prepareLocalSignerForOnboarding = async (params) => {
542
- if (fs.existsSync(params.binPath) || String(process.env.FASED_SKIP_NATIVE_SIGNER_BUILD ?? "").trim() === "1" || hasExplicitSignerAssetSource()) {
564
+ if (syncFs.existsSync(params.binPath) || String(process.env.FASED_SKIP_NATIVE_SIGNER_BUILD ?? "").trim() === "1" || hasExplicitSignerAssetSource()) {
543
565
  return;
544
566
  }
545
567
  if (goModernEnough()) {
@@ -791,18 +813,16 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
791
813
  nextConfig = customResult.config;
792
814
  await warnIfModelConfigLooksOff(nextConfig, prompter);
793
815
  } else if (authChoice && authChoice !== "skip") {
794
- const authResult = await applyAuthChoice({
816
+ nextConfig = await applyOnboardingAuthChoice({
795
817
  authChoice,
796
818
  config: nextConfig,
797
819
  prompter,
798
820
  runtime,
799
- setDefaultModel: true,
800
821
  opts: {
801
822
  tokenProvider: opts.tokenProvider,
802
823
  token: opts.authChoice === "apiKey" && opts.token ? opts.token : undefined
803
824
  }
804
825
  });
805
- nextConfig = authResult.config;
806
826
  await warnIfModelConfigLooksOff(nextConfig, prompter);
807
827
  }
808
828
  const gateway = await configureGatewayForOnboarding({
@@ -1092,8 +1112,8 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
1092
1112
  const configuredPaths = keystoreKeys.map((key) => (nextConfig.env?.vars?.[key] ?? "").trim() || String(process.env[key] ?? "").trim()).filter(Boolean);
1093
1113
  for (const file of new Set([...configuredPaths, ...defaultKeystorePaths])) {
1094
1114
  try {
1095
- if (file && fs.existsSync(file)) {
1096
- fs.rmSync(file, { force: true });
1115
+ if (file && syncFs.existsSync(file)) {
1116
+ syncFs.rmSync(file, { force: true });
1097
1117
  }
1098
1118
  } catch {}
1099
1119
  }
@@ -1215,7 +1235,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
1215
1235
  process.env[rpcKey] = effectiveRpcUrl;
1216
1236
  try {
1217
1237
  let moveToSignerDir = false;
1218
- if (isolatedTargetKeystorePath && fs.existsSync(isolatedTargetKeystorePath)) {
1238
+ if (isolatedTargetKeystorePath && syncFs.existsSync(isolatedTargetKeystorePath)) {
1219
1239
  moveToSignerDir = await prompter.confirm({
1220
1240
  message: "Signer keystore already exists. Overwrite it?",
1221
1241
  initialValue: false
@@ -1554,15 +1574,13 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
1554
1574
  nextConfig = customResult.config;
1555
1575
  await warnIfModelConfigLooksOff(nextConfig, prompter);
1556
1576
  } else if (providerAuthChoice !== "skip") {
1557
- const authResult = await applyAuthChoice({
1577
+ nextConfig = await applyOnboardingAuthChoice({
1558
1578
  authChoice: providerAuthChoice,
1559
1579
  config: nextConfig,
1560
1580
  prompter,
1561
1581
  runtime,
1562
- setDefaultModel: true,
1563
1582
  opts: {}
1564
1583
  });
1565
- nextConfig = authResult.config;
1566
1584
  await warnIfModelConfigLooksOff(nextConfig, prompter);
1567
1585
  }
1568
1586
  }