@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.
- package/config/capability-catalog.json +12 -0
- package/dist/acp/client.js +2 -2
- package/dist/acp/secret-file.js +2 -2
- package/dist/agents/agent-scope.js +2 -2
- package/dist/agents/apply-patch.js +8 -8
- package/dist/agents/auth-profiles/paths.js +2 -2
- package/dist/agents/auth-profiles/store.js +2 -2
- package/dist/agents/authenticated-model-catalog.js +28 -0
- package/dist/agents/bash-tools.exec-host-node.js +1 -1
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cli-credentials.js +4 -4
- package/dist/agents/copilot-dynamic-headers.js +37 -0
- package/dist/agents/current-model-catalog.js +9 -13
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/embedded-pi-mcp.js +4 -4
- package/dist/agents/identity-avatar.js +3 -3
- package/dist/agents/identity-file.js +2 -2
- package/dist/agents/model-catalog-normalized.js +1 -0
- package/dist/agents/model-catalog-source.js +2 -2
- package/dist/agents/model-catalog.js +1 -1
- package/dist/agents/model-metadata.js +58 -9
- package/dist/agents/openai-codex-app-server.js +499 -0
- package/dist/agents/pi-embedded-runner/compact.js +3 -3
- package/dist/agents/pi-embedded-runner/extra-params.js +168 -79
- package/dist/agents/pi-embedded-runner/model.js +62 -1
- package/dist/agents/pi-embedded-runner/moonshot-stream-wrappers.js +46 -0
- package/dist/agents/pi-embedded-runner/openai-stream-wrappers.js +221 -0
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -4
- package/dist/agents/pi-embedded-runner/run.js +5 -2
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-runner.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
- package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
- package/dist/agents/pi-model-discovery.js +6 -6
- package/dist/agents/pi-project-settings.js +3 -3
- package/dist/agents/pi-tools.js +2 -2
- package/dist/agents/sandbox/fs-bridge.js +2 -2
- package/dist/agents/session-dirs.js +4 -4
- package/dist/agents/session-write-lock.js +13 -13
- package/dist/agents/shell-utils.js +5 -5
- package/dist/agents/skills/bundled-dir.js +4 -4
- package/dist/agents/skills/local-loader.js +6 -6
- package/dist/agents/skills/plugin-skills.js +2 -2
- package/dist/agents/skills/workspace.js +13 -13
- package/dist/agents/skills-install-download.js +7 -7
- package/dist/agents/skills-install-plan.js +2 -2
- package/dist/agents/skills-install.js +2 -2
- package/dist/agents/skills-status.js +2 -2
- package/dist/agents/subagent-depth.js +2 -2
- package/dist/agents/system-prompt-params.js +2 -2
- package/dist/agents/tools/discord-actions-messaging.js +1 -1
- package/dist/agents/tools/message-tool.js +1 -1
- package/dist/agents/tools/session-status-tool.js +3 -3
- package/dist/agents/tools/slack-actions.js +1 -1
- package/dist/agents/tools/tts-tool.js +1 -1
- package/dist/agents/workspace.js +22 -22
- package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
- package/dist/auto-reply/reply/agent-runner.js +2 -2
- package/dist/auto-reply/reply/commands-export-session.js +7 -7
- package/dist/auto-reply/reply/commands-models.js +1 -1
- package/dist/auto-reply/reply/directive-handling.impl.js +4 -1
- package/dist/auto-reply/reply/dispatch-acp.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +1 -1
- package/dist/auto-reply/reply/get-reply-run.js +20 -2
- package/dist/auto-reply/reply/model-selection.js +1 -1
- package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
- package/dist/auto-reply/reply/post-compaction-context.js +3 -3
- package/dist/auto-reply/reply/session-reset-model.js +1 -1
- package/dist/auto-reply/reply/session.js +3 -3
- package/dist/auto-reply/skill-commands.js +3 -3
- package/dist/auto-reply/status.js +7 -7
- package/dist/auto-reply/thinking.js +1 -1
- package/dist/brand.js +1 -1
- package/dist/browser/cdp.helpers.js +2 -2
- package/dist/browser/chrome.executables.js +3 -3
- package/dist/browser/chrome.js +5 -5
- package/dist/browser/chrome.profile-decoration.js +6 -6
- package/dist/browser/extension-relay.js +7 -7
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/server-context.js +2 -2
- package/dist/browser/trash.js +4 -4
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/server.js +4 -4
- package/dist/capabilities/catalog.js +3 -3
- package/dist/channels/plugins/catalog.js +3 -3
- package/dist/cli/browser-cli-extension.js +6 -6
- package/dist/cli/command-format.js +2 -2
- package/dist/cli/cron-cli/register.cron-add.js +1 -1
- package/dist/cli/cron-cli/register.cron-simple.js +2 -2
- package/dist/cli/dns-cli.js +9 -9
- package/dist/cli/gateway-cli/dev.js +5 -5
- package/dist/cli/gateway-cli/run.js +2 -2
- package/dist/cli/hooks-cli.js +5 -5
- package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
- package/dist/cli/memory-cli.js +7 -7
- package/dist/cli/nodes-media-utils.js +2 -2
- package/dist/cli/plugins-cli.js +2 -2
- package/dist/cli/program/register.agent.js +1 -1
- package/dist/cli/providers-cli.js +3 -2
- package/dist/cli/secrets-cli.js +3 -3
- package/dist/cli/windows-argv.js +2 -2
- package/dist/commands/agent.js +22 -3
- package/dist/commands/auth-choice.apply.api-providers.js +3 -8
- package/dist/commands/auth-choice.apply.openai.js +13 -7
- package/dist/commands/auth-choice.model-check.js +1 -2
- package/dist/commands/configure.gateway-auth.js +14 -16
- package/dist/commands/dashboard-link.js +3 -3
- package/dist/commands/doctor-config-flow.js +1 -1
- package/dist/commands/doctor-install.js +5 -5
- package/dist/commands/doctor-memory-search.js +2 -2
- package/dist/commands/doctor-platform-notes.js +2 -2
- package/dist/commands/doctor-sandbox.js +2 -2
- package/dist/commands/doctor-state-integrity.js +23 -23
- package/dist/commands/doctor-workspace.js +3 -3
- package/dist/commands/doctor.js +3 -3
- package/dist/commands/hosted-dashboard-probe.js +3 -3
- package/dist/commands/managed-up.js +2 -2
- package/dist/commands/model-picker.js +27 -8
- package/dist/commands/models/list.probe.js +1 -1
- package/dist/commands/models/list.registry.js +13 -17
- package/dist/commands/models/list.status-command.js +2 -2
- package/dist/commands/onboard-auth.config-core.js +1 -1
- package/dist/commands/onboard-auth.config-litellm.js +21 -21
- package/dist/commands/onboard-auth.credentials.js +3 -4
- package/dist/commands/onboard-auth.js +0 -1
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/openai-codex-model-default.js +28 -5
- package/dist/commands/sessions-cleanup.js +2 -2
- package/dist/commands/signal-install.js +6 -6
- package/dist/commands/status-all/channels.js +2 -2
- package/dist/commands/wallet.js +47 -47
- package/dist/config/cache-utils.js +2 -2
- package/dist/config/includes.js +5 -5
- package/dist/config/io.js +2 -2
- package/dist/config/paths.js +3 -3
- package/dist/config/sat-runtime-ids.js +3 -3
- package/dist/config/sessions/disk-budget.js +6 -6
- package/dist/config/sessions/paths.js +2 -2
- package/dist/config/sessions/store.js +17 -17
- package/dist/config/sessions/transcript.js +4 -4
- package/dist/config/talk.js +2 -2
- package/dist/config/zod-schema.agent-defaults.js +6 -2
- package/dist/config/zod-schema.agent-runtime.js +6 -2
- package/dist/config/zod-schema.core.js +6 -2
- package/dist/control-ui/assets/{app-BKlu6OKz.js → app-D7TXyNRi.js} +1548 -1540
- package/dist/control-ui/assets/chat-model-ref-Djkv93yn.js +2 -0
- package/dist/control-ui/assets/{index-nrFcGMv-.js → index-BmSBom-w.js} +3 -3
- package/dist/control-ui/assets/{providers-BQFrRqym.js → providers-Cc89iMdx.js} +5 -5
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/version.json +1 -0
- package/dist/cron/isolated-agent/run.js +6 -2
- package/dist/cron/service/jobs.js +11 -1
- package/dist/cron/service/store.js +2 -2
- package/dist/cron/store.js +6 -6
- package/dist/daemon/systemd-system.js +5 -5
- package/dist/discord/monitor/gateway-plugin.js +2 -2
- package/dist/discord/monitor/thread-bindings.state.js +2 -2
- package/dist/discord/voice/manager.js +1 -1
- package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
- package/dist/gateway/client.js +4 -4
- package/dist/gateway/control-ui-boot-check.js +6 -6
- package/dist/gateway/control-ui-login.js +7 -7
- package/dist/gateway/control-ui.js +11 -9
- package/dist/gateway/hooks-mapping.js +4 -4
- package/dist/gateway/protocol/schema/agents-models-skills.js +66 -4
- package/dist/gateway/server-discovery.js +2 -2
- package/dist/gateway/server-http.js +4 -4
- package/dist/gateway/server-methods/chat.js +3 -3
- package/dist/gateway/server-methods/models.js +8 -8
- package/dist/gateway/server-methods/sessions.js +8 -8
- package/dist/gateway/server-methods/tts.js +2 -2
- package/dist/gateway/server-methods/usage.js +2 -2
- package/dist/gateway/server-model-catalog.js +3 -0
- package/dist/gateway/server.impl.js +3 -3
- package/dist/gateway/session-compaction-checkpoints.js +4 -4
- package/dist/gateway/session-utils.fs.js +24 -24
- package/dist/gateway/session-utils.js +6 -6
- package/dist/gateway/sessions-patch.js +27 -24
- package/dist/hooks/bundled-dir.js +4 -4
- package/dist/hooks/gmail-setup-utils.js +6 -6
- package/dist/hooks/import-url.js +2 -2
- package/dist/hooks/loader.js +4 -4
- package/dist/hooks/workspace.js +7 -7
- package/dist/infra/archive.js +17 -17
- package/dist/infra/boundary-file-read.js +2 -2
- package/dist/infra/boundary-path.js +15 -15
- package/dist/infra/brew.js +2 -2
- package/dist/infra/control-ui-assets.js +14 -14
- package/dist/infra/device-auth-store.js +8 -8
- package/dist/infra/device-identity.js +8 -8
- package/dist/infra/dotenv.js +2 -2
- package/dist/infra/exec-approvals.js +8 -8
- package/dist/infra/exec-command-resolution.js +4 -4
- package/dist/infra/exec-safe-bin-trust.js +2 -2
- package/dist/infra/fased-root.js +5 -5
- package/dist/infra/fs-safe.js +14 -14
- package/dist/infra/gateway-lock.js +11 -11
- package/dist/infra/git-commit.js +5 -5
- package/dist/infra/git-root.js +4 -4
- package/dist/infra/hosted-runtime-artifact.js +3 -3
- package/dist/infra/is-main.js +2 -2
- package/dist/infra/json-file.js +7 -7
- package/dist/infra/outbound/delivery-queue.js +16 -16
- package/dist/infra/path-env.js +3 -3
- package/dist/infra/ports-lsof.js +4 -4
- package/dist/infra/provider-usage.auth.js +3 -3
- package/dist/infra/safe-open-sync.js +2 -2
- package/dist/infra/session-cost-usage.js +9 -9
- package/dist/infra/shell-env.js +2 -2
- package/dist/infra/state-migrations.fs.js +6 -6
- package/dist/infra/state-migrations.js +23 -23
- package/dist/infra/tmp-fased-dir.js +6 -6
- package/dist/infra/update-runner.js +31 -3
- package/dist/infra/widearea-dns.js +3 -3
- package/dist/infra/wsl.js +2 -2
- package/dist/light-update-status.js +1 -1
- package/dist/line/accounts.js +2 -2
- package/dist/line/download.js +2 -2
- package/dist/logging/config.js +3 -3
- package/dist/logging/logger.js +7 -7
- package/dist/managed/federation.js +3 -3
- package/dist/managed/tunnel.js +3 -3
- package/dist/media/store.js +13 -13
- package/dist/media-understanding/runner.js +3 -3
- package/dist/memory/embeddings.js +2 -2
- package/dist/memory/internal.js +10 -10
- package/dist/memory/inventory.js +19 -2
- package/dist/memory/manager-sync-ops.js +7 -7
- package/dist/memory/repair-executor.js +17 -17
- package/dist/node-host/invoke-system-run-plan.js +8 -8
- package/dist/node-host/invoke.js +2 -2
- package/dist/node-host/runner.js +3 -3
- package/dist/pairing/pairing-store.js +3 -3
- package/dist/plugin-sdk/{accounts-DW9OS5Ll.js → accounts-DzWlKv1U.js} +1 -1
- package/dist/plugin-sdk/{actions-DQUXohRr.js → actions-BplQVLL6.js} +4 -4
- package/dist/plugin-sdk/{active-listener-BZQWZPF7.js → active-listener-x4MLhYUw.js} +1 -1
- package/dist/plugin-sdk/{allow-list-BYeKk0Sy.js → allow-list-DyAxs4yw.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-t4mmHsI2.js → audio-preflight-G8h3Sn8_.js} +43 -47
- package/dist/plugin-sdk/{audit-BZk_6Buw.js → audit-CWknklvI.js} +1 -1
- package/dist/plugin-sdk/{channel-access-CN5HiWdb.js → channel-access-a9Dnfw7-.js} +1 -1
- package/dist/plugin-sdk/{channel-access-configure-B7Kkvx9K.js → channel-access-configure-CD4QDN5E.js} +1 -1
- package/dist/plugin-sdk/{channel-adapters.discord-IOZP8Cv5.js → channel-adapters.discord-BS4S4Svh.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
- package/dist/plugin-sdk/channel-plugin-common.js +4 -4
- package/dist/plugin-sdk/{chunk-B2ffJ-LR.js → chunk-B8EZkwiT.js} +1 -1
- package/dist/plugin-sdk/{chunk-items-jOdkyP53.js → chunk-items-CEPklxGe.js} +1 -1
- package/dist/plugin-sdk/command-status.d.ts +2 -2
- package/dist/plugin-sdk/command-status.js +43 -47
- package/dist/plugin-sdk/{commands-registry-BWb4NcfW.js → commands-registry-BfEa4tFA.js} +2 -2
- package/dist/plugin-sdk/{common-C4XrB73N.js → common-CbfckC19.js} +1 -1
- package/dist/plugin-sdk/{config-rySyVtKs.js → config-Bt5GhnA-.js} +105 -73
- package/dist/plugin-sdk/{config-schema-BaybPPrJ.js → config-schema-B9DKr6J5.js} +96239 -81587
- package/dist/plugin-sdk/device-pair.d.ts +1 -1
- package/dist/plugin-sdk/device-pair.js +2 -3
- package/dist/plugin-sdk/{diagnostic-Dfn1iERm.js → diagnostic-DLL_zekv.js} +3 -3
- package/dist/plugin-sdk/{directory-live-DatqU-eS.js → directory-live-CSuYxdwk.js} +1 -1
- package/dist/plugin-sdk/{directory-live-ClwN5KKq.js → directory-live-Dw7ZgC9_.js} +1 -1
- package/dist/plugin-sdk/discord.d.ts +5 -5
- package/dist/plugin-sdk/discord.js +31 -32
- package/dist/plugin-sdk/{draft-stream-controls-D4Tb_iS_.js → draft-stream-controls-BqchW1vi.js} +1 -1
- package/dist/plugin-sdk/{fetch-guard-BuYrl6q2.js → fetch-guard-CeG6u6ld.js} +1 -1
- package/dist/plugin-sdk/{filesystem-manager-B9DDPgfU.js → filesystem-manager-BGGGrkiN.js} +2 -2
- package/dist/plugin-sdk/{fs-safe-BG-VzVkL.js → fs-safe-xBqok6yR.js} +1 -1
- package/dist/plugin-sdk/{group-mentions-DLOOve8d.d.ts → group-mentions-BHRff6j8.d.ts} +1 -1
- package/dist/plugin-sdk/{guilds-BeT3iHHJ.js → guilds-CDhRIX57.js} +1 -1
- package/dist/plugin-sdk/{handle-action-CGF-Qnp0.js → handle-action-DbzZFYnG.js} +24 -25
- package/dist/plugin-sdk/{helpers-DgRMfCnT.js → helpers-CluGKuIV.js} +1 -1
- package/dist/plugin-sdk/{image-ops-CcBfoMLW.js → image-ops-CUaLtIFj.js} +1 -1
- package/dist/plugin-sdk/index.d.ts +8 -8
- package/dist/plugin-sdk/index.js +47 -51
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{login-DpDQyM7r.js → login-DJuHYDiK.js} +3 -3
- package/dist/plugin-sdk/{login-qr-COaSAPY5.js → login-qr-CbHL5ayf.js} +3 -3
- package/dist/plugin-sdk/{manager-Cqz30lA3.js → manager-oHAvZCT3.js} +7 -7
- package/dist/plugin-sdk/{markdown-tables-BOG5sSQQ.js → markdown-tables-Mkx7k92Y.js} +1 -1
- package/dist/plugin-sdk/{media-Bu-nJpPs.js → media-CA8sTmVE.js} +4 -4
- package/dist/plugin-sdk/{monitor-II_NIq3G.js → monitor-CZrN9pev.js} +51 -55
- package/dist/plugin-sdk/{monitor-DL6oEVo8.js → monitor-CmwGqNyV.js} +61 -65
- package/dist/plugin-sdk/{openresponses-http-vkHBBpGY.js → openresponses-http-CWOd4war.js} +43 -47
- package/dist/plugin-sdk/{optional-runtime-dependency-DEojVNfv.js → optional-runtime-dependency-DKmk9PZa.js} +1 -1
- package/dist/plugin-sdk/{outbound-mf2y6KuY.js → outbound-0oN9IfNw.js} +9 -9
- package/dist/plugin-sdk/{outbound-attachment-ivAHpWnn.js → outbound-attachment-DdVkqUzE.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-CvJ6Qa1Q.d.ts → pairing-message-BMkkS038.d.ts} +2 -2
- package/dist/plugin-sdk/{pairing-message-CqYG12t-.js → pairing-message-ClqhfCUk.js} +1 -1
- package/dist/plugin-sdk/{pairing-store-D-21Sphe.js → pairing-store-B01mCSct.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-B6gD1clF.js → pi-model-discovery-Buz0JC1Y.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-3yDxS3ro.js → pi-model-discovery-runtime-DuwuoteY.js} +2 -2
- package/dist/plugin-sdk/{probe-Cyb-DGA3.js → probe--7xtfzMm.js} +3 -3
- package/dist/plugin-sdk/{probe-Dlk0Jxpw.js → probe-BFroeK3g.js} +1 -1
- package/dist/plugin-sdk/{probe-D8JAILir.js → probe-l_whvGLY.js} +1 -1
- package/dist/plugin-sdk/{resolve-channels-zEnvugag.js → probe-xY3Ky0Tx.js} +3 -4
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
- package/dist/plugin-sdk/{pw-ai-CMplwiwf.js → pw-ai-B0domrii.js} +6 -8
- package/dist/plugin-sdk/{qmd-manager-DCUE21Kj.js → qmd-manager-CFFeM4Fl.js} +3 -3
- package/dist/plugin-sdk/{query-expansion-Zr9qQixm.js → query-expansion-CAI2kKLQ.js} +1 -1
- package/dist/plugin-sdk/{replies-wiI4veI7.js → replies-1macZ1mZ.js} +4 -4
- package/dist/plugin-sdk/{resolve-channels-ChWKWtA9.js → resolve-channels-87LZrFk_.js} +2 -2
- package/dist/plugin-sdk/resolve-channels-CwB2_019.js +4 -0
- package/dist/plugin-sdk/{resolve-outbound-target-bm9RUK5q.js → resolve-outbound-target-BdH6LUoW.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-ekGNc6os.js → resolve-route-CkNIKKEW.js} +1 -1
- package/dist/plugin-sdk/{resolve-users-BTvjQuui.js → resolve-users-Cxb5wpAQ.js} +1 -1
- package/dist/plugin-sdk/{resolve-users-CTzoruIZ.js → resolve-users-V6dHh_2B.js} +2 -2
- package/dist/plugin-sdk/{retry-policy-BvlC2SPh.js → retry-policy-9ybIh4Fq.js} +1 -1
- package/dist/plugin-sdk/{runtime-ClSakPxR.js → runtime-Dy420wBu.js} +3 -3
- package/dist/plugin-sdk/{runtime-dependency-yAWxH4El.js → runtime-dependency-CIw9t7-k.js} +123 -15
- package/dist/plugin-sdk/{sandbox-paths-lj7_EVuA.js → sandbox-paths-w64tYl0v.js} +1 -1
- package/dist/plugin-sdk/sat-runtime.d.ts +3 -3
- package/dist/plugin-sdk/sat-runtime.js +44 -10
- package/dist/plugin-sdk/{send-D264hFVb.js → send-2VcOMTN5.js} +9 -9
- package/dist/plugin-sdk/{send-CgyS75Av.js → send-BQUtCJFW.js} +10 -10
- package/dist/plugin-sdk/{send-D58yEeH4.js → send-DPJIIYAs.js} +6 -6
- package/dist/plugin-sdk/{send-C7x6gzSl.js → send-Dqes9tdU.js} +13 -13
- package/dist/plugin-sdk/{send-DrAtUGLM.js → send-J4JWKP62.js} +8 -8
- package/dist/plugin-sdk/{session-DyMtb5YQ.js → session-C_n2S5ub.js} +3 -3
- package/dist/plugin-sdk/{skill-commands-Q80wCyry.js → skill-commands-B7wx9ax8.js} +102 -102
- package/dist/plugin-sdk/{slack-C-I6q3NB.js → slack-BouRQG-W.js} +64 -68
- package/dist/plugin-sdk/{slack-actions-dGE_t_Un.js → slack-actions-CasHVtiq.js} +20 -21
- package/dist/plugin-sdk/slack.d.ts +5 -5
- package/dist/plugin-sdk/slack.js +13 -13
- package/dist/plugin-sdk/{ssrf-BZG8Ztod.js → ssrf-fG4UHKBw.js} +180 -2
- package/dist/plugin-sdk/{sticker-cache-DCrDTYIi.js → sticker-cache-BvGEUas3.js} +3 -3
- package/dist/plugin-sdk/{tables-0mhUOh5v.js → tables-CjlQJV4r.js} +2 -2
- package/dist/plugin-sdk/{device-pairing-D2Yq-_U6.js → tailscale-status-DwpNdO3Z.js} +104 -2
- package/dist/plugin-sdk/{targets-znKHngSk.js → targets-QfP164Dh.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-GBYY8-x9.js → telegram-actions-CwYjV6Db.js} +48 -52
- package/dist/plugin-sdk/telegram.d.ts +5 -5
- package/dist/plugin-sdk/telegram.js +11 -11
- package/dist/plugin-sdk/{thread-bindings.lifecycle-ClzPBK70.js → thread-bindings.lifecycle-DU4iX_Jr.js} +3 -3
- package/dist/plugin-sdk/{thread-bindings.state-Ha01nmrq.js → thread-bindings.state-BgYWFjNF.js} +2 -2
- package/dist/plugin-sdk/{tmp-fased-dir-C_xfeEN9.d.ts → tmp-fased-dir-BdFQvrvw.d.ts} +2 -2
- package/dist/plugin-sdk/{types-DV5TNhMK.d.ts → types-BYDL6dQj.d.ts} +2 -2
- package/dist/plugin-sdk/{types-BI2njxWJ.d.ts → types-CLIvQaVg.d.ts} +39 -5
- package/dist/plugin-sdk/{types-CBCtqtMn.d.ts → types-DyhXnYUr.d.ts} +1 -1
- package/dist/plugin-sdk/{types.plugin-CvUiB3Kh.d.ts → types.plugin-_fbu40Re.d.ts} +8 -5
- package/dist/plugin-sdk/{web-CJMfhGFY.js → web-D0yENDve.js} +52 -56
- package/dist/plugin-sdk/{whatsapp-actions-0ZbGo5ZV.js → whatsapp-actions-BT2nPLyo.js} +18 -19
- package/dist/plugin-sdk/{whatsapp-heartbeat-DGTsuvQ8.js → whatsapp-heartbeat-CiABSZ6G.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +5 -5
- package/dist/plugin-sdk/whatsapp.js +14 -14
- package/dist/plugin-sdk/{wsl-D5jDUlms.js → wsl-B_ojyEtC.js} +53 -53
- package/dist/plugins/bundled-dir.js +3 -3
- package/dist/plugins/discovery.js +11 -11
- package/dist/plugins/loader.js +13 -13
- package/dist/plugins/manifest-registry.js +2 -2
- package/dist/plugins/manifest.js +4 -4
- package/dist/plugins/path-safety.js +3 -3
- package/dist/plugins/runtime/index.js +1 -1
- package/dist/plugins/status-cache.js +9 -9
- package/dist/plugins/update.js +3 -3
- package/dist/plugins/web-search-install-catalog.js +3 -3
- package/dist/providers/github-copilot-model-discovery.js +51 -0
- package/dist/providers/litellm-models.js +1 -1
- package/dist/providers/openai-codex-model-discovery.js +166 -0
- package/dist/providers/refresh.js +311 -67
- package/dist/providers/registry.js +16 -6
- package/dist/providers/runtime-model-catalog.js +250 -0
- package/dist/secrets/apply.js +16 -16
- package/dist/secrets/audit.js +11 -11
- package/dist/secrets/shared.js +9 -9
- package/dist/security/scan-paths.js +2 -2
- package/dist/shared/config-eval.js +2 -2
- package/dist/shared/model-thinking.js +54 -4
- package/dist/shared/pid-alive.js +2 -2
- package/dist/tasks/standing-orders.js +5 -5
- package/dist/tasks/task-flow-registry.js +5 -5
- package/dist/tasks/task-registry.js +5 -5
- package/dist/tasks/workflow-definitions.js +6 -6
- package/dist/telegram/bot-message-context.js +1 -1
- package/dist/telegram/token.js +5 -5
- package/dist/utils.js +5 -5
- package/dist/wallet/local-socket-signer-broker.js +16 -16
- package/dist/wallet/providers/embedded-keystore-adapter.js +5 -5
- package/dist/wallet/providers/local-socket-signer-adapter.js +2 -2
- package/dist/wallet/wallet-approval-auth.js +5 -5
- package/dist/wallet/wallet-audit-log.js +5 -5
- package/dist/wallet/wallet-custody.js +21 -21
- package/dist/wallet/wallet-inbound-events.js +5 -5
- package/dist/wallet/wallet-observability.js +5 -5
- package/dist/wallet/wallet-policy.js +9 -9
- package/dist/wallet/wallet-provider-registry.js +7 -7
- package/dist/wallet/wallet-runtime-config.js +3 -3
- package/dist/wallet/wallet-secrets-store.js +22 -22
- package/dist/wallet/wallet-send-approvals.js +5 -5
- package/dist/wallet/wallet-settlement-links.js +5 -5
- package/dist/web/accounts.js +3 -3
- package/dist/web/auth-store.js +18 -18
- package/dist/web/session.js +4 -4
- package/dist/wizard/host-security-capability.js +2 -2
- package/dist/wizard/onboarding.host-security.js +7 -7
- package/dist/wizard/onboarding.js +31 -13
- package/dist/wizard/onboarding.wallet.js +44 -44
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/fased-federation/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +2 -2
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +2 -1
- package/dist/control-ui/assets/chat-model-ref-B9sWop67.js +0 -2
- package/dist/plugin-sdk/ip-C70a-YlD.js +0 -181
- package/dist/plugin-sdk/tailscale-status-ClsquRGs.js +0 -104
- package/dist/plugin-sdk/wallet-status-CyovJojz.js +0 -11944
- package/dist/plugin-sdk/ws-CocpWGhl.js +0 -114
- /package/dist/plugin-sdk/{blocks-input-Dcitfh7h.js → blocks-input-Bg-8S2pl.js} +0 -0
- /package/dist/plugin-sdk/{channel-activity-Cg1xRoc2.js → channel-activity-DBDMQ3yI.js} +0 -0
- /package/dist/plugin-sdk/{channel-core-BOkyXXLa.js → channel-core-CFRs8LPy.js} +0 -0
- /package/dist/plugin-sdk/{client-D2N7hqVu.js → client-pI228AVT.js} +0 -0
- /package/dist/plugin-sdk/{command-poll-backoff-NAePk3eL.js → command-poll-backoff-yJU83wEq.js} +0 -0
- /package/dist/plugin-sdk/{date-time-CE3Uer3C.js → date-time-uUevHscU.js} +0 -0
- /package/dist/plugin-sdk/{diagnostic-session-state-HO94DMou.js → diagnostic-session-state-DqgfGYqZ.js} +0 -0
- /package/dist/plugin-sdk/{draft-stream-loop-CKyHn8IX.js → draft-stream-loop-CrOPfV3F.js} +0 -0
- /package/dist/plugin-sdk/{fetch-Cu-ahkie.js → fetch-BtmoPIlf.js} +0 -0
- /package/dist/plugin-sdk/{gateway-registry-DFsoY6C0.js → gateway-registry-DZDsqicG.js} +0 -0
- /package/dist/plugin-sdk/{inbound-context-BFnIdcqI.js → inbound-context-DrAcXE0y.js} +0 -0
- /package/dist/plugin-sdk/{internal-qo16nNU1.js → internal-CG_nHo-2.js} +0 -0
- /package/dist/plugin-sdk/{memory-search-C3C0bD2H.js → memory-search-VFll-AIb.js} +0 -0
- /package/dist/plugin-sdk/{pairing-token-N_6Jbt1L.js → pairing-token-Cs3BRKc0.js} +0 -0
- /package/dist/plugin-sdk/{path-alias-guards-Dg3gU-MA.js → path-alias-guards-BJZD5JMJ.js} +0 -0
- /package/dist/plugin-sdk/{polls-DQrR-qT3.js → polls-DKQXVfJp.js} +0 -0
- /package/dist/plugin-sdk/{proxy-7xs_rsnV.js → proxy-DWpYcsvR.js} +0 -0
- /package/dist/plugin-sdk/{qmd-scope-D1sSG_Rx.js → qmd-scope-CdX34VCV.js} +0 -0
- /package/dist/plugin-sdk/{redact-identifier-Q3tkvxhm.js → redact-identifier-Lt7t3l7S.js} +0 -0
- /package/dist/plugin-sdk/{redact-sensitive-url-dPvnFFsK.js → redact-sensitive-url-g-ukZjwA.js} +0 -0
- /package/dist/plugin-sdk/{render-Bwu_WxwA.js → render-e7fENCYH.js} +0 -0
- /package/dist/plugin-sdk/{reply-prefix-Bqzm6DC1.js → reply-prefix-ClpxvL_w.js} +0 -0
- /package/dist/plugin-sdk/{reply-reference-BkbK_DWT.js → reply-reference-Bqk-7HXE.js} +0 -0
- /package/dist/plugin-sdk/{secure-random-Bl-AVLVb.js → secure-random-BIkG-k4s.js} +0 -0
- /package/dist/plugin-sdk/{shared-clhhbWN3.js → shared-CBgp_GBw.js} +0 -0
- /package/dist/plugin-sdk/{target-errors-C_SVKoEv.js → target-errors-Ckufe179.js} +0 -0
- /package/dist/plugin-sdk/{targets-BDvvnlph.js → targets-CoMJ1ry1.js} +0 -0
- /package/dist/plugin-sdk/{tokens-BvtlOzVP.js → tokens-BbnqfVuu.js} +0 -0
- /package/dist/plugin-sdk/{tool-loop-detection-CWphm1k_.js → tool-loop-detection-Bp8bPJLs.js} +0 -0
- /package/dist/plugin-sdk/{ui-e020ouhJ.js → ui-Be8cLHIS.js} +0 -0
- /package/dist/plugin-sdk/{with-timeout-BYrRAYFV.js → with-timeout-ckWB8rTo.js} +0 -0
package/dist/web/auth-store.js
CHANGED
|
@@ -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
|
|
7
|
+
import syncFs from "node:fs";
|
|
8
8
|
import os from "node:os";
|
|
9
9
|
import path from "node:path";
|
|
10
|
-
import fs
|
|
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 =
|
|
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 =
|
|
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 (!
|
|
108
|
+
if (!syncFs.existsSync(filePath)) {
|
|
109
109
|
return null;
|
|
110
110
|
}
|
|
111
|
-
const stats =
|
|
111
|
+
const stats = syncFs.statSync(filePath);
|
|
112
112
|
if (!stats.isFile() || stats.size <= 1) {
|
|
113
113
|
return null;
|
|
114
114
|
}
|
|
115
|
-
return
|
|
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
|
-
|
|
135
|
+
syncFs.copyFileSync(backupPath, credsPath);
|
|
136
136
|
try {
|
|
137
|
-
|
|
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
|
|
147
|
+
await fs.access(resolvedAuthDir);
|
|
148
148
|
} catch {
|
|
149
149
|
return false;
|
|
150
150
|
}
|
|
151
151
|
try {
|
|
152
|
-
const stats = await fs
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 (!
|
|
209
|
+
if (!syncFs.existsSync(credsPath)) {
|
|
210
210
|
return {
|
|
211
211
|
e164: null,
|
|
212
212
|
jid: null
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
|
-
const raw =
|
|
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 =
|
|
236
|
+
const stats = syncFs.statSync(resolveWebCredsPath(resolveAuthStoreUserPath(authDir)));
|
|
237
237
|
return Date.now() - stats.mtimeMs;
|
|
238
238
|
} catch {
|
|
239
239
|
return null;
|
package/dist/web/session.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
30
|
+
syncFs.copyFileSync(credsPath, backupPath);
|
|
31
31
|
try {
|
|
32
|
-
|
|
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
|
-
|
|
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
|
|
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 (
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
46
|
+
syncFs.mkdirSync(path.dirname(markerPath), {
|
|
47
47
|
recursive: true,
|
|
48
48
|
mode: 448
|
|
49
49
|
});
|
|
50
|
-
|
|
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 =
|
|
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
|
|
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 (
|
|
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
|
|
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 (
|
|
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
|
-
|
|
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 &&
|
|
1096
|
-
|
|
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 &&
|
|
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
|
-
|
|
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
|
}
|