@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
package/dist/config/io.js CHANGED
@@ -22,7 +22,7 @@ import { repairInstalledPluginAllowlist } from "./plugins-allowlist.js";
22
22
  import { applyConfigOverrides } from "./runtime-overrides.js";
23
23
  import { validateConfigObjectRawWithPlugins, validateConfigObjectWithPlugins } from "./validation.js";
24
24
  import { compareFasedAgentVersions } from "./version.js";
25
- import fs from "node:fs";
25
+ import syncFs from "node:fs";
26
26
  import os from "node:os";
27
27
  import path from "node:path";
28
28
  import JSON5 from "json5";
@@ -477,7 +477,7 @@ function resolveConfigPathForDeps(deps) {
477
477
  }
478
478
  function normalizeDeps(overrides = {}) {
479
479
  return {
480
- fs: overrides.fs ?? fs,
480
+ fs: overrides.fs ?? syncFs,
481
481
  json5: overrides.json5 ?? JSON5,
482
482
  env: overrides.env ?? process.env,
483
483
  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 fs from "node:fs";
2
+ import syncFs 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 fs.existsSync(candidate);
89
+ return syncFs.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 fs.existsSync(candidate);
111
+ return syncFs.existsSync(candidate);
112
112
  } catch {
113
113
  return false;
114
114
  }
@@ -1,4 +1,4 @@
1
- import fs from "node:fs";
1
+ import syncFs 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 && fs.existsSync(candidate)) {
66
+ if (candidate && syncFs.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(fs.readFileSync(file, "utf8"));
85
+ const parsed = parseEnvFile(syncFs.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 fs from "node:fs";
3
+ import syncFs 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 fs.realpathSync(resolved);
14
+ return syncFs.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 fs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
86
+ const dirEntries = await syncFs.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 fs.promises.stat(filePath).catch(() => null);
93
+ const stat = await syncFs.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 fs.promises.stat(filePath).catch(() => null);
108
+ const stat = await syncFs.promises.stat(filePath).catch(() => null);
109
109
  if (!stat?.isFile()) {
110
110
  return 0;
111
111
  }
112
- await fs.promises.rm(filePath, { force: true }).catch(() => undefined);
112
+ await syncFs.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 fs from "node:fs";
4
+ import syncFs 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 fs.realpathSync(filePath);
115
+ return syncFs.realpathSync(filePath);
116
116
  } catch {
117
117
  return undefined;
118
118
  }
@@ -10,7 +10,7 @@ import { archiveSessionTranscripts, cleanupArchivedSessionTranscripts } from "..
10
10
  import { deliveryContextFromSession, mergeDeliveryContext, normalizeDeliveryContext, normalizeSessionDeliveryFields } from "../../utils/delivery-context.js";
11
11
  import { getFileMtimeMs, isCacheEnabled, resolveCacheTtlMs } from "../cache-utils.js";
12
12
  import { enforceSessionDiskBudget } from "./disk-budget.js";
13
- import fs from "node:fs";
13
+ import syncFs from "node:fs";
14
14
  import path from "node:path";
15
15
  import crypto from "node:crypto";
16
16
 
@@ -155,7 +155,7 @@ function loadSessionStore(storePath, opts = {}) {
155
155
  const retryBuf = maxReadAttempts > 1 ? new Int32Array(new SharedArrayBuffer(4)) : undefined;
156
156
  for (let attempt = 0; attempt < maxReadAttempts; attempt++) {
157
157
  try {
158
- const raw = fs.readFileSync(storePath, "utf-8");
158
+ const raw = syncFs.readFileSync(storePath, "utf-8");
159
159
  if (raw.length === 0 && attempt < maxReadAttempts - 1) {
160
160
  Atomics.wait(retryBuf, 0, 0, 50);
161
161
  continue;
@@ -406,7 +406,7 @@ function capEntryCount(store, overrideMax, opts = {}) {
406
406
  }
407
407
  async function getSessionFileSize(storePath) {
408
408
  try {
409
- const stat = await fs.promises.stat(storePath);
409
+ const stat = await syncFs.promises.stat(storePath);
410
410
  return stat.size;
411
411
  } catch {
412
412
  return null;
@@ -428,7 +428,7 @@ async function rotateSessionFile(storePath, overrideBytes) {
428
428
  }
429
429
  const backupPath = `${storePath}.bak.${Date.now()}`;
430
430
  try {
431
- await fs.promises.rename(storePath, backupPath);
431
+ await syncFs.promises.rename(storePath, backupPath);
432
432
  log.info("rotated session store file", {
433
433
  backupPath: path.basename(backupPath),
434
434
  sizeBytes: fileSize
@@ -439,13 +439,13 @@ async function rotateSessionFile(storePath, overrideBytes) {
439
439
  try {
440
440
  const dir = path.dirname(storePath);
441
441
  const baseName = path.basename(storePath);
442
- const files = await fs.promises.readdir(dir);
442
+ const files = await syncFs.promises.readdir(dir);
443
443
  const backups = files.filter((f) => f.startsWith(`${baseName}.bak.`)).toSorted().toReversed();
444
444
  const maxBackups = 3;
445
445
  if (backups.length > maxBackups) {
446
446
  const toDelete = backups.slice(maxBackups);
447
447
  for (const old of toDelete) {
448
- await fs.promises.unlink(path.join(dir, old)).catch(() => undefined);
448
+ await syncFs.promises.unlink(path.join(dir, old)).catch(() => undefined);
449
449
  }
450
450
  log.info("cleaned up old session store backups", { deleted: toDelete.length });
451
451
  }
@@ -561,15 +561,15 @@ async function saveSessionStoreUnlocked(storePath, store, opts) {
561
561
  });
562
562
  }
563
563
  }
564
- await fs.promises.mkdir(path.dirname(storePath), { recursive: true });
564
+ await syncFs.promises.mkdir(path.dirname(storePath), { recursive: true });
565
565
  const json = JSON.stringify(store, null, 2);
566
566
  if (process.platform === "win32") {
567
567
  const tmp = `${storePath}.${process.pid}.${crypto.randomUUID()}.tmp`;
568
568
  try {
569
- await fs.promises.writeFile(tmp, json, "utf-8");
569
+ await syncFs.promises.writeFile(tmp, json, "utf-8");
570
570
  for (let i = 0; i < 5; i++) {
571
571
  try {
572
- await fs.promises.rename(tmp, storePath);
572
+ await syncFs.promises.rename(tmp, storePath);
573
573
  break;
574
574
  } catch {
575
575
  if (i < 4) {
@@ -587,28 +587,28 @@ async function saveSessionStoreUnlocked(storePath, store, opts) {
587
587
  }
588
588
  throw err;
589
589
  } finally {
590
- await fs.promises.rm(tmp, { force: true }).catch(() => undefined);
590
+ await syncFs.promises.rm(tmp, { force: true }).catch(() => undefined);
591
591
  }
592
592
  return;
593
593
  }
594
594
  const tmp = `${storePath}.${process.pid}.${crypto.randomUUID()}.tmp`;
595
595
  try {
596
- await fs.promises.writeFile(tmp, json, {
596
+ await syncFs.promises.writeFile(tmp, json, {
597
597
  mode: 384,
598
598
  encoding: "utf-8"
599
599
  });
600
- await fs.promises.rename(tmp, storePath);
601
- await fs.promises.chmod(storePath, 384);
600
+ await syncFs.promises.rename(tmp, storePath);
601
+ await syncFs.promises.chmod(storePath, 384);
602
602
  } catch (err) {
603
603
  const code = err && typeof err === "object" && "code" in err ? String(err.code) : null;
604
604
  if (code === "ENOENT") {
605
605
  try {
606
- await fs.promises.mkdir(path.dirname(storePath), { recursive: true });
607
- await fs.promises.writeFile(storePath, json, {
606
+ await syncFs.promises.mkdir(path.dirname(storePath), { recursive: true });
607
+ await syncFs.promises.writeFile(storePath, json, {
608
608
  mode: 384,
609
609
  encoding: "utf-8"
610
610
  });
611
- await fs.promises.chmod(storePath, 384);
611
+ await syncFs.promises.chmod(storePath, 384);
612
612
  } catch (err2) {
613
613
  const code2 = err2 && typeof err2 === "object" && "code" in err2 ? String(err2.code) : null;
614
614
  if (code2 === "ENOENT") {
@@ -620,7 +620,7 @@ async function saveSessionStoreUnlocked(storePath, store, opts) {
620
620
  }
621
621
  throw err;
622
622
  } finally {
623
- await fs.promises.rm(tmp, { force: true });
623
+ await syncFs.promises.rm(tmp, { force: true });
624
624
  }
625
625
  }
626
626
  async function saveSessionStore(storePath, store, opts) {
@@ -2,7 +2,7 @@ import { resolveDefaultSessionStorePath, resolveSessionTranscriptPathInDir } fro
2
2
  import { loadSessionStore } from "./store.js";
3
3
  import { emitSessionTranscriptUpdate } from "../../sessions/transcript-events.js";
4
4
  import { resolveAndPersistSessionFile } from "./session-file.js";
5
- import fs from "node:fs";
5
+ import syncFs from "node:fs";
6
6
  import path from "node:path";
7
7
  import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
8
8
 
@@ -65,11 +65,11 @@ async function resolveSessionTranscriptFile(params) {
65
65
  });
66
66
  }
67
67
  function ensureSessionTranscriptHeader(params) {
68
- if (fs.existsSync(params.sessionFile)) {
68
+ if (syncFs.existsSync(params.sessionFile)) {
69
69
  return { created: false };
70
70
  }
71
71
  try {
72
- fs.mkdirSync(path.dirname(params.sessionFile), { recursive: true });
72
+ syncFs.mkdirSync(path.dirname(params.sessionFile), { recursive: true });
73
73
  const header = {
74
74
  type: "session",
75
75
  version: CURRENT_SESSION_VERSION,
@@ -77,7 +77,7 @@ function ensureSessionTranscriptHeader(params) {
77
77
  timestamp: new Date().toISOString(),
78
78
  cwd: process.cwd()
79
79
  };
80
- fs.writeFileSync(params.sessionFile, `${JSON.stringify(header)}\n`, {
80
+ syncFs.writeFileSync(params.sessionFile, `${JSON.stringify(header)}\n`, {
81
81
  encoding: "utf-8",
82
82
  mode: 384
83
83
  });
@@ -1,5 +1,5 @@
1
1
  import { coerceSecretRef } from "./types.secrets.js";
2
- import fs from "node:fs";
2
+ import syncFs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
 
@@ -254,7 +254,7 @@ function buildTalkConfigResponse(value) {
254
254
  return Object.keys(payload).length > 0 ? payload : undefined;
255
255
  }
256
256
  function readTalkApiKeyFromProfile(deps = {}) {
257
- const fsImpl = deps.fs ?? fs;
257
+ const fsImpl = deps.fs ?? syncFs;
258
258
  const osImpl = deps.os ?? os;
259
259
  const pathImpl = deps.path ?? path;
260
260
  const home = osImpl.homedir();
@@ -89,7 +89,9 @@ const AgentDefaultsSchema = z.object({
89
89
  z.literal("low"),
90
90
  z.literal("medium"),
91
91
  z.literal("high"),
92
- z.literal("xhigh")
92
+ z.literal("xhigh"),
93
+ z.literal("max"),
94
+ z.literal("ultra")
93
95
  ]).optional(),
94
96
  reasoningDefault: z.union([
95
97
  z.literal("off"),
@@ -97,7 +99,9 @@ const AgentDefaultsSchema = z.object({
97
99
  z.literal("low"),
98
100
  z.literal("medium"),
99
101
  z.literal("high"),
100
- z.literal("xhigh")
102
+ z.literal("xhigh"),
103
+ z.literal("max"),
104
+ z.literal("ultra")
101
105
  ]).optional(),
102
106
  fastModeDefault: z.boolean().optional(),
103
107
  verboseDefault: z.union([
@@ -541,7 +541,9 @@ const AgentEntrySchema = z.object({
541
541
  z.literal("low"),
542
542
  z.literal("medium"),
543
543
  z.literal("high"),
544
- z.literal("xhigh")
544
+ z.literal("xhigh"),
545
+ z.literal("max"),
546
+ z.literal("ultra")
545
547
  ]).optional(),
546
548
  reasoningDefault: z.union([
547
549
  z.literal("off"),
@@ -549,7 +551,9 @@ const AgentEntrySchema = z.object({
549
551
  z.literal("low"),
550
552
  z.literal("medium"),
551
553
  z.literal("high"),
552
- z.literal("xhigh")
554
+ z.literal("xhigh"),
555
+ z.literal("max"),
556
+ z.literal("ultra")
553
557
  ]).optional(),
554
558
  fastModeDefault: z.boolean().optional(),
555
559
  skills: z.array(z.string()).optional(),
@@ -110,7 +110,9 @@ const ModelCapabilitySchema = z.object({
110
110
  z.literal("low"),
111
111
  z.literal("medium"),
112
112
  z.literal("high"),
113
- z.literal("xhigh")
113
+ z.literal("xhigh"),
114
+ z.literal("max"),
115
+ z.literal("ultra")
114
116
  ])).optional(),
115
117
  defaultThinkingLevel: z.union([
116
118
  z.literal("off"),
@@ -118,7 +120,9 @@ const ModelCapabilitySchema = z.object({
118
120
  z.literal("low"),
119
121
  z.literal("medium"),
120
122
  z.literal("high"),
121
- z.literal("xhigh")
123
+ z.literal("xhigh"),
124
+ z.literal("max"),
125
+ z.literal("ultra")
122
126
  ]).optional(),
123
127
  thinkingMode: z.union([
124
128
  z.literal("openai-reasoning-effort"),