@fased/fased 0.1.55 → 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 +3 -2
- 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 +6 -3
- 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-source.js +2 -2
- package/dist/agents/model-catalog.js +1 -1
- package/dist/agents/model-metadata.js +34 -6
- 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 +159 -95
- 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/secrets-cli.js +3 -3
- package/dist/cli/windows-argv.js +2 -2
- package/dist/commands/agent.js +22 -3
- 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 +4 -3
- package/dist/commands/models/list.probe.js +1 -1
- package/dist/commands/models/list.registry.js +3 -2
- package/dist/commands/models/list.status-command.js +2 -2
- package/dist/commands/onboard-auth.credentials.js +3 -3
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/openai-codex-model-default.js +3 -2
- 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 +4 -2
- package/dist/config/zod-schema.agent-runtime.js +4 -2
- package/dist/config/zod-schema.core.js +4 -2
- package/dist/control-ui/assets/{app-D2RaTXoV.js → app-D7TXyNRi.js} +390 -383
- package/dist/control-ui/assets/chat-model-ref-Djkv93yn.js +2 -0
- package/dist/control-ui/assets/{index-D2nC6I-9.js → index-BmSBom-w.js} +3 -3
- package/dist/control-ui/assets/{providers-CyjiG5Jw.js → providers-Cc89iMdx.js} +3 -3
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/version.json +1 -1
- 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 +9 -9
- package/dist/gateway/hooks-mapping.js +4 -4
- package/dist/gateway/protocol/schema/agents-models-skills.js +63 -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 +4 -3
- 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 +1 -1
- 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/widearea-dns.js +3 -3
- package/dist/infra/wsl.js +2 -2
- package/dist/light-update-status.js +11 -11
- 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/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-CeRNo5Ae.js → accounts-DzWlKv1U.js} +1 -1
- package/dist/plugin-sdk/{actions-OMRHtXPj.js → actions-BplQVLL6.js} +4 -4
- package/dist/plugin-sdk/{active-listener-BlIkS3iR.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-B2n3a2Tj.js → audio-preflight-G8h3Sn8_.js} +43 -47
- package/dist/plugin-sdk/{audit-Ppg6dR_b.js → audit-CWknklvI.js} +1 -1
- package/dist/plugin-sdk/{channel-access-af8dWWRv.js → channel-access-a9Dnfw7-.js} +1 -1
- package/dist/plugin-sdk/{channel-access-configure-B6IAGlE0.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-CD76Byie.js → chunk-B8EZkwiT.js} +1 -1
- package/dist/plugin-sdk/{chunk-items-Bu19zrYH.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-DgS55tNj.js → commands-registry-BfEa4tFA.js} +2 -2
- package/dist/plugin-sdk/{common-CWvfeiX0.js → common-CbfckC19.js} +1 -1
- package/dist/plugin-sdk/{config-CYDETqcF.js → config-Bt5GhnA-.js} +29 -15
- package/dist/plugin-sdk/{config-schema-CQ4EVcQG.js → config-schema-B9DKr6J5.js} +95877 -81287
- 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-BxDgHCgj.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-B75UVKxF.js → handle-action-DbzZFYnG.js} +24 -25
- package/dist/plugin-sdk/{helpers-BuEwju6y.js → helpers-CluGKuIV.js} +1 -1
- package/dist/plugin-sdk/{image-ops-C66HPeAZ.js → image-ops-CUaLtIFj.js} +1 -1
- package/dist/plugin-sdk/index.d.ts +7 -7
- package/dist/plugin-sdk/index.js +47 -51
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{login-Amr2DpKU.js → login-DJuHYDiK.js} +3 -3
- package/dist/plugin-sdk/{login-qr-DMQNEi9m.js → login-qr-CbHL5ayf.js} +3 -3
- package/dist/plugin-sdk/{manager-Bvpq49BI.js → manager-oHAvZCT3.js} +7 -7
- package/dist/plugin-sdk/{markdown-tables-DmQ7oXOm.js → markdown-tables-Mkx7k92Y.js} +1 -1
- package/dist/plugin-sdk/{media-ByLQbEwJ.js → media-CA8sTmVE.js} +4 -4
- package/dist/plugin-sdk/{monitor-K_u6daGa.js → monitor-CZrN9pev.js} +51 -55
- package/dist/plugin-sdk/{monitor-S_7LrvSj.js → monitor-CmwGqNyV.js} +61 -65
- package/dist/plugin-sdk/{openresponses-http-BrDJUZXR.js → openresponses-http-CWOd4war.js} +43 -47
- package/dist/plugin-sdk/{optional-runtime-dependency-CbYjAC2b.js → optional-runtime-dependency-DKmk9PZa.js} +1 -1
- package/dist/plugin-sdk/{outbound-BuDafBBI.js → outbound-0oN9IfNw.js} +9 -9
- package/dist/plugin-sdk/{outbound-attachment-DmZmUqFP.js → outbound-attachment-DdVkqUzE.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-D0-UWGFJ.d.ts → pairing-message-BMkkS038.d.ts} +2 -2
- package/dist/plugin-sdk/{pairing-message-e4D4eBDA.js → pairing-message-ClqhfCUk.js} +1 -1
- package/dist/plugin-sdk/{pairing-store-T3IGoGZg.js → pairing-store-B01mCSct.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-DvAG_Png.js → pi-model-discovery-Buz0JC1Y.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-NjkUgjIf.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-D7eW43DL.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-BMIPmEoP.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-CXCqUUPV.js → resolve-outbound-target-BdH6LUoW.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-DJN-SUSt.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-CY1qY6d7.js → retry-policy-9ybIh4Fq.js} +1 -1
- package/dist/plugin-sdk/{runtime-CgOkQe0w.js → runtime-Dy420wBu.js} +3 -3
- package/dist/plugin-sdk/{runtime-dependency-DvdRNMvs.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-BAz22RZr.js → send-2VcOMTN5.js} +9 -9
- package/dist/plugin-sdk/{send-2ITqny2W.js → send-BQUtCJFW.js} +10 -10
- package/dist/plugin-sdk/{send-Cr-dj6S-.js → send-DPJIIYAs.js} +6 -6
- package/dist/plugin-sdk/{send-BG3RWyil.js → send-Dqes9tdU.js} +13 -13
- package/dist/plugin-sdk/{send-eTxqFFsw.js → send-J4JWKP62.js} +8 -8
- package/dist/plugin-sdk/{session-C8nJmmVE.js → session-C_n2S5ub.js} +3 -3
- package/dist/plugin-sdk/{skill-commands-Rm5by9S8.js → skill-commands-B7wx9ax8.js} +102 -102
- package/dist/plugin-sdk/{slack-xvIVvyEM.js → slack-BouRQG-W.js} +64 -68
- package/dist/plugin-sdk/{slack-actions-BNIALJTA.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-D3oDiu2u.js → sticker-cache-BvGEUas3.js} +3 -3
- package/dist/plugin-sdk/{tables-DS5L7lCA.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-D6lUomJc.js → targets-QfP164Dh.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-MSFkDn0m.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-Ry6Vcgw3.js → thread-bindings.lifecycle-DU4iX_Jr.js} +3 -3
- package/dist/plugin-sdk/{thread-bindings.state-C0stmvNk.js → thread-bindings.state-BgYWFjNF.js} +2 -2
- package/dist/plugin-sdk/{tmp-fased-dir-D91GExk4.d.ts → tmp-fased-dir-BdFQvrvw.d.ts} +2 -2
- package/dist/plugin-sdk/{types-DVTIpopt.d.ts → types-BYDL6dQj.d.ts} +2 -2
- package/dist/plugin-sdk/{types-DKvBJHfH.d.ts → types-CLIvQaVg.d.ts} +26 -1
- package/dist/plugin-sdk/{types-BzadOItY.d.ts → types-DyhXnYUr.d.ts} +1 -1
- package/dist/plugin-sdk/{types.plugin-BiHPaDTF.d.ts → types.plugin-_fbu40Re.d.ts} +7 -5
- package/dist/plugin-sdk/{web-DRNJxHXA.js → web-D0yENDve.js} +52 -56
- package/dist/plugin-sdk/{whatsapp-actions-BDXZF2R5.js → whatsapp-actions-BT2nPLyo.js} +18 -19
- package/dist/plugin-sdk/{whatsapp-heartbeat-CKgmwCGr.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-Biw7Mj39.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/openai-codex-model-discovery.js +166 -0
- package/dist/providers/refresh.js +116 -34
- package/dist/providers/registry.js +2 -2
- package/dist/providers/runtime-model-catalog.js +97 -28
- 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 +13 -2
- 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 +7 -7
- 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 +6 -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 +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -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 +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +2 -1
- package/dist/control-ui/assets/chat-model-ref-BZFblCeY.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-f0HagNeO.js +0 -11947
- 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
|
@@ -11,28 +11,28 @@ import { loadSessionStore } from "../config/sessions/store.js";
|
|
|
11
11
|
import { ensureSessionTranscriptHeader } from "../config/sessions/transcript.js";
|
|
12
12
|
import "../config/sessions.js";
|
|
13
13
|
import { note } from "../terminal/note.js";
|
|
14
|
-
import
|
|
14
|
+
import syncFs from "node:fs";
|
|
15
15
|
import os from "node:os";
|
|
16
16
|
import path from "node:path";
|
|
17
17
|
|
|
18
18
|
//#region src/commands/doctor-state-integrity.ts
|
|
19
19
|
function existsDir(dir) {
|
|
20
20
|
try {
|
|
21
|
-
return
|
|
21
|
+
return syncFs.existsSync(dir) && syncFs.statSync(dir).isDirectory();
|
|
22
22
|
} catch {
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
function existsFile(filePath) {
|
|
27
27
|
try {
|
|
28
|
-
return
|
|
28
|
+
return syncFs.existsSync(filePath) && syncFs.statSync(filePath).isFile();
|
|
29
29
|
} catch {
|
|
30
30
|
return false;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
function canWriteDir(dir) {
|
|
34
34
|
try {
|
|
35
|
-
|
|
35
|
+
syncFs.accessSync(dir, syncFs.constants.W_OK);
|
|
36
36
|
return true;
|
|
37
37
|
} catch {
|
|
38
38
|
return false;
|
|
@@ -40,7 +40,7 @@ function canWriteDir(dir) {
|
|
|
40
40
|
}
|
|
41
41
|
function ensureDir(dir) {
|
|
42
42
|
try {
|
|
43
|
-
|
|
43
|
+
syncFs.mkdirSync(dir, { recursive: true });
|
|
44
44
|
return { ok: true };
|
|
45
45
|
} catch (err) {
|
|
46
46
|
return {
|
|
@@ -53,7 +53,7 @@ function dirPermissionHint(dir) {
|
|
|
53
53
|
const uid = typeof process.getuid === "function" ? process.getuid() : null;
|
|
54
54
|
const gid = typeof process.getgid === "function" ? process.getgid() : null;
|
|
55
55
|
try {
|
|
56
|
-
const stat =
|
|
56
|
+
const stat = syncFs.statSync(dir);
|
|
57
57
|
if (uid !== null && stat.uid !== uid) {
|
|
58
58
|
return `Owner mismatch (uid ${stat.uid}). Run: sudo chown -R $USER "${dir}"`;
|
|
59
59
|
}
|
|
@@ -71,7 +71,7 @@ function addUserRwx(mode) {
|
|
|
71
71
|
}
|
|
72
72
|
function countJsonlLines(filePath) {
|
|
73
73
|
try {
|
|
74
|
-
const raw =
|
|
74
|
+
const raw = syncFs.readFileSync(filePath, "utf-8");
|
|
75
75
|
if (!raw) {
|
|
76
76
|
return 0;
|
|
77
77
|
}
|
|
@@ -96,7 +96,7 @@ function findOtherStateDirs(stateDir) {
|
|
|
96
96
|
for (const root of roots) {
|
|
97
97
|
let entries = [];
|
|
98
98
|
try {
|
|
99
|
-
entries =
|
|
99
|
+
entries = syncFs.readdirSync(root, { withFileTypes: true });
|
|
100
100
|
} catch {
|
|
101
101
|
continue;
|
|
102
102
|
}
|
|
@@ -226,9 +226,9 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
226
226
|
});
|
|
227
227
|
if (repair) {
|
|
228
228
|
try {
|
|
229
|
-
const stat =
|
|
229
|
+
const stat = syncFs.statSync(stateDir);
|
|
230
230
|
const target = addUserRwx(stat.mode);
|
|
231
|
-
|
|
231
|
+
syncFs.chmodSync(stateDir, target);
|
|
232
232
|
changes.push(`- Repaired permissions on ${displayStateDir}`);
|
|
233
233
|
} catch (err) {
|
|
234
234
|
warnings.push(`- Failed to repair ${displayStateDir}: ${String(err)}`);
|
|
@@ -237,10 +237,10 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
237
237
|
}
|
|
238
238
|
if (stateDirExists && process.platform !== "win32") {
|
|
239
239
|
try {
|
|
240
|
-
const dirLstat =
|
|
240
|
+
const dirLstat = syncFs.lstatSync(stateDir);
|
|
241
241
|
const isDirSymlink = dirLstat.isSymbolicLink();
|
|
242
|
-
const stat = isDirSymlink ?
|
|
243
|
-
const resolvedDir = isDirSymlink ?
|
|
242
|
+
const stat = isDirSymlink ? syncFs.statSync(stateDir) : dirLstat;
|
|
243
|
+
const resolvedDir = isDirSymlink ? syncFs.realpathSync(stateDir) : stateDir;
|
|
244
244
|
const isImmutableStore = resolvedDir.startsWith("/nix/store/");
|
|
245
245
|
if (!isImmutableStore && (stat.mode & 63) !== 0) {
|
|
246
246
|
warnings.push(`- State directory permissions are too open (${displayStateDir}). Recommend chmod 700.`);
|
|
@@ -249,7 +249,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
249
249
|
initialValue: true
|
|
250
250
|
});
|
|
251
251
|
if (tighten) {
|
|
252
|
-
|
|
252
|
+
syncFs.chmodSync(stateDir, 448);
|
|
253
253
|
changes.push(`- Tightened permissions on ${displayStateDir} to 700`);
|
|
254
254
|
}
|
|
255
255
|
}
|
|
@@ -259,10 +259,10 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
259
259
|
}
|
|
260
260
|
if (configPath && existsFile(configPath) && process.platform !== "win32") {
|
|
261
261
|
try {
|
|
262
|
-
const configLstat =
|
|
262
|
+
const configLstat = syncFs.lstatSync(configPath);
|
|
263
263
|
const isSymlink = configLstat.isSymbolicLink();
|
|
264
|
-
const stat = isSymlink ?
|
|
265
|
-
const resolvedConfig = isSymlink ?
|
|
264
|
+
const stat = isSymlink ? syncFs.statSync(configPath) : configLstat;
|
|
265
|
+
const resolvedConfig = isSymlink ? syncFs.realpathSync(configPath) : configPath;
|
|
266
266
|
const isImmutableConfig = resolvedConfig.startsWith("/nix/store/");
|
|
267
267
|
if (!isImmutableConfig && (stat.mode & 63) !== 0) {
|
|
268
268
|
warnings.push(`- Config file is group/world readable (${displayConfigPath ?? configPath}). Recommend chmod 600.`);
|
|
@@ -271,7 +271,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
271
271
|
initialValue: true
|
|
272
272
|
});
|
|
273
273
|
if (tighten) {
|
|
274
|
-
|
|
274
|
+
syncFs.chmodSync(configPath, 384);
|
|
275
275
|
changes.push(`- Tightened permissions on ${displayConfigPath ?? configPath} to 600`);
|
|
276
276
|
}
|
|
277
277
|
}
|
|
@@ -330,9 +330,9 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
330
330
|
});
|
|
331
331
|
if (repair) {
|
|
332
332
|
try {
|
|
333
|
-
const stat =
|
|
333
|
+
const stat = syncFs.statSync(dir);
|
|
334
334
|
const target = addUserRwx(stat.mode);
|
|
335
|
-
|
|
335
|
+
syncFs.chmodSync(dir, target);
|
|
336
336
|
changes.push(`- Repaired permissions on ${label}: ${displayDir}`);
|
|
337
337
|
} catch (err) {
|
|
338
338
|
warnings.push(`- Failed to repair ${displayDir}: ${String(err)}`);
|
|
@@ -432,7 +432,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
432
432
|
referencedTranscriptPaths.add(path.resolve(resolveSessionFilePath(entry.sessionId, entry, sessionPathOpts)));
|
|
433
433
|
} catch {}
|
|
434
434
|
}
|
|
435
|
-
const sessionDirEntries =
|
|
435
|
+
const sessionDirEntries = syncFs.readdirSync(sessionsDir, { withFileTypes: true });
|
|
436
436
|
const orphanTranscriptPaths = sessionDirEntries.filter((entry) => entry.isFile() && isPrimarySessionTranscriptFileName(entry.name)).map((entry) => path.resolve(path.join(sessionsDir, entry.name))).filter((filePath) => !referencedTranscriptPaths.has(filePath));
|
|
437
437
|
if (orphanTranscriptPaths.length > 0) {
|
|
438
438
|
warnings.push(`- Found ${orphanTranscriptPaths.length} orphan transcript file(s) in ${displaySessionsDir}. They are not referenced by sessions.json and can consume disk over time.`);
|
|
@@ -446,7 +446,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
446
446
|
for (const orphanPath of orphanTranscriptPaths) {
|
|
447
447
|
const archivedPath = `${orphanPath}.deleted.${archivedAt}`;
|
|
448
448
|
try {
|
|
449
|
-
|
|
449
|
+
syncFs.renameSync(orphanPath, archivedPath);
|
|
450
450
|
archived += 1;
|
|
451
451
|
} catch (err) {
|
|
452
452
|
warnings.push(`- Failed to archive orphan transcript ${shortenHomePath(orphanPath)}: ${String(err)}`);
|
|
@@ -470,7 +470,7 @@ function noteWorkspaceBackupTip(workspaceDir) {
|
|
|
470
470
|
return;
|
|
471
471
|
}
|
|
472
472
|
const gitMarker = path.join(workspaceDir, ".git");
|
|
473
|
-
if (
|
|
473
|
+
if (syncFs.existsSync(gitMarker)) {
|
|
474
474
|
return;
|
|
475
475
|
}
|
|
476
476
|
note([
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { shortenHomePath } from "../utils.js";
|
|
2
2
|
import { DEFAULT_AGENTS_FILENAME } from "../agents/workspace.js";
|
|
3
|
-
import
|
|
3
|
+
import syncFs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/commands/doctor-workspace.ts
|
|
@@ -16,13 +16,13 @@ async function shouldSuggestMemorySystem(workspaceDir) {
|
|
|
16
16
|
const memoryPaths = [path.join(workspaceDir, "MEMORY.md"), path.join(workspaceDir, "memory.md")];
|
|
17
17
|
for (const memoryPath of memoryPaths) {
|
|
18
18
|
try {
|
|
19
|
-
await
|
|
19
|
+
await syncFs.promises.access(memoryPath);
|
|
20
20
|
return false;
|
|
21
21
|
} catch {}
|
|
22
22
|
}
|
|
23
23
|
const agentsPath = path.join(workspaceDir, DEFAULT_AGENTS_FILENAME);
|
|
24
24
|
try {
|
|
25
|
-
const content = await
|
|
25
|
+
const content = await syncFs.promises.readFile(agentsPath, "utf-8");
|
|
26
26
|
if (/memory\.md/i.test(content)) {
|
|
27
27
|
return false;
|
|
28
28
|
}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -37,7 +37,7 @@ import { maybeRepairUiProtocolFreshness } from "./doctor-ui.js";
|
|
|
37
37
|
import { maybeOfferUpdateBeforeDoctor } from "./doctor-update.js";
|
|
38
38
|
import { MEMORY_SYSTEM_PROMPT, shouldSuggestMemorySystem } from "./doctor-workspace.js";
|
|
39
39
|
import { noteWorkspaceStatus } from "./doctor-workspace-status.js";
|
|
40
|
-
import
|
|
40
|
+
import syncFs from "node:fs";
|
|
41
41
|
import { intro, outro } from "@clack/prompts";
|
|
42
42
|
|
|
43
43
|
//#region src/commands/doctor.ts
|
|
@@ -83,7 +83,7 @@ async function doctorCommand(runtime = defaultRuntime, options = {}) {
|
|
|
83
83
|
`Fix: run ${formatCliCommand("fased configure")} and set Gateway mode (local/remote).`,
|
|
84
84
|
`Or set directly: ${formatCliCommand("fased config set gateway.mode local")}`
|
|
85
85
|
];
|
|
86
|
-
if (!
|
|
86
|
+
if (!syncFs.existsSync(configPath)) {
|
|
87
87
|
lines.push(`Missing config: run ${formatCliCommand("fased setup")} first.`);
|
|
88
88
|
}
|
|
89
89
|
note$1(lines.join("\n"), "Gateway");
|
|
@@ -233,7 +233,7 @@ async function doctorCommand(runtime = defaultRuntime, options = {}) {
|
|
|
233
233
|
await writeConfigFile(cfg);
|
|
234
234
|
logConfigUpdated(runtime);
|
|
235
235
|
const backupPath = `${CONFIG_PATH}.bak`;
|
|
236
|
-
if (
|
|
236
|
+
if (syncFs.existsSync(backupPath)) {
|
|
237
237
|
runtime.log(`Backup: ${shortenHomePath(backupPath)}`);
|
|
238
238
|
}
|
|
239
239
|
} else if (configResult.hasPendingChanges) {
|
|
@@ -6,7 +6,7 @@ import { rawDataToString } from "../infra/ws.js";
|
|
|
6
6
|
import { buildDeviceAuthPayload } from "../gateway/device-auth.js";
|
|
7
7
|
import { PROTOCOL_VERSION } from "../gateway/protocol/schema/protocol-schemas.js";
|
|
8
8
|
import "../gateway/protocol/index.js";
|
|
9
|
-
import { WebSocket
|
|
9
|
+
import { WebSocket } from "ws";
|
|
10
10
|
|
|
11
11
|
//#region src/commands/hosted-dashboard-probe.ts
|
|
12
12
|
function sanitizeErrorMessage(value) {
|
|
@@ -392,7 +392,7 @@ function probeHostedWs(params) {
|
|
|
392
392
|
resolve(result);
|
|
393
393
|
};
|
|
394
394
|
const sendConnect = () => {
|
|
395
|
-
if (!ws || ws.readyState !== WebSocket
|
|
395
|
+
if (!ws || ws.readyState !== WebSocket.OPEN || connectSent) {
|
|
396
396
|
return;
|
|
397
397
|
}
|
|
398
398
|
connectSent = true;
|
|
@@ -438,7 +438,7 @@ function probeHostedWs(params) {
|
|
|
438
438
|
});
|
|
439
439
|
}, params.timeoutMs);
|
|
440
440
|
try {
|
|
441
|
-
ws = new WebSocket
|
|
441
|
+
ws = new WebSocket(params.wsUrl, {
|
|
442
442
|
headers: { Origin: params.origin },
|
|
443
443
|
handshakeTimeout: Math.max(1e3, Math.floor(params.timeoutMs)),
|
|
444
444
|
maxPayload: 1024 * 1024
|
|
@@ -2,7 +2,7 @@ import { defaultRuntime } from "../runtime.js";
|
|
|
2
2
|
import { readManagedFederationTokenSummary } from "../managed/federation.js";
|
|
3
3
|
import { readManagedReservationSummaries } from "../managed/tunnel.js";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import
|
|
5
|
+
import syncFs from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import { spawn } from "node:child_process";
|
|
8
8
|
|
|
@@ -44,7 +44,7 @@ function resolveManagedScriptPath() {
|
|
|
44
44
|
candidates.push(cwdCandidate);
|
|
45
45
|
}
|
|
46
46
|
for (const candidate of candidates) {
|
|
47
|
-
if (
|
|
47
|
+
if (syncFs.existsSync(candidate)) {
|
|
48
48
|
return candidate;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -13,10 +13,10 @@ import { listProfilesForProvider } from "../agents/auth-profiles/profiles.js";
|
|
|
13
13
|
import "../agents/auth-profiles.js";
|
|
14
14
|
import { getCustomProviderApiKey, resolveEnvApiKey } from "../agents/model-auth.js";
|
|
15
15
|
import { buildAllowedModelSet, buildModelAliasIndex, modelKey, normalizeProviderId, resolveConfiguredModelRef } from "../agents/model-selection.js";
|
|
16
|
-
import { buildCredentialScopedAllowedModelSet } from "../agents/model-catalog-access.js";
|
|
17
16
|
import { formatModelFeatureList } from "../agents/model-metadata.js";
|
|
18
|
-
import {
|
|
17
|
+
import { buildCredentialScopedAllowedModelSet } from "../agents/model-catalog-access.js";
|
|
19
18
|
import { resolveAuthenticatedModelCatalog } from "../agents/authenticated-model-catalog.js";
|
|
19
|
+
import { loadModelCatalog } from "../agents/model-catalog.js";
|
|
20
20
|
import { loadPreviewModelListSources } from "./models/list.preview-catalog.js";
|
|
21
21
|
import { formatTokenK } from "./models/shared.js";
|
|
22
22
|
import { OPENAI_CODEX_DEFAULT_MODEL } from "./openai-codex-model-default.js";
|
|
@@ -222,7 +222,8 @@ async function loadModelPickerCatalog(cfg, agentDir) {
|
|
|
222
222
|
cfg,
|
|
223
223
|
store,
|
|
224
224
|
catalog: standardModels,
|
|
225
|
-
defaultProvider: DEFAULT_PROVIDER
|
|
225
|
+
defaultProvider: DEFAULT_PROVIDER,
|
|
226
|
+
agentDir
|
|
226
227
|
});
|
|
227
228
|
return authenticated.allowedCatalog.length > 0 ? authenticated.allowedCatalog : authenticated.usableCatalog;
|
|
228
229
|
}
|
|
@@ -11,8 +11,8 @@ import { getCustomProviderApiKey, resolveEnvApiKey } from "../../agents/model-au
|
|
|
11
11
|
import { findNormalizedProviderValue, normalizeProviderId, parseModelRef } from "../../agents/model-selection.js";
|
|
12
12
|
import { resolveSessionTranscriptPath, resolveSessionTranscriptsDirForAgent } from "../../config/sessions/paths.js";
|
|
13
13
|
import "../../agents/pi-embedded.js";
|
|
14
|
-
import { describeFailoverError } from "../../agents/failover-error.js";
|
|
15
14
|
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
15
|
+
import { describeFailoverError } from "../../agents/failover-error.js";
|
|
16
16
|
import { runEmbeddedPiAgent } from "../../agents/pi-embedded-runner/run.js";
|
|
17
17
|
import { redactSecrets } from "../status-all/format.js";
|
|
18
18
|
import { formatMs } from "./shared.js";
|
|
@@ -6,8 +6,8 @@ import { modelKey } from "../../agents/model-selection.js";
|
|
|
6
6
|
import { ensureFasedAgentModelsJson } from "../../agents/models-config.js";
|
|
7
7
|
import { discoverAuthStorage, discoverModels } from "../../agents/pi-model-discovery.js";
|
|
8
8
|
import { deriveModelMetadata, formatModelFeatureList } from "../../agents/model-metadata.js";
|
|
9
|
-
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
10
9
|
import { resolveAuthenticatedModelCatalog } from "../../agents/authenticated-model-catalog.js";
|
|
10
|
+
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
11
11
|
import { isLocalBaseUrl } from "./shared.js";
|
|
12
12
|
import { createModelListAuthIndex } from "./list.auth-index.js";
|
|
13
13
|
import { MODEL_AVAILABILITY_UNAVAILABLE_CODE, formatErrorWithStack, shouldFallbackToAuthHeuristics } from "./list.errors.js";
|
|
@@ -78,7 +78,8 @@ async function loadModelRegistry(cfg) {
|
|
|
78
78
|
cfg,
|
|
79
79
|
store,
|
|
80
80
|
catalog,
|
|
81
|
-
defaultProvider: DEFAULT_PROVIDER
|
|
81
|
+
defaultProvider: DEFAULT_PROVIDER,
|
|
82
|
+
agentDir
|
|
82
83
|
});
|
|
83
84
|
const models = authenticated.usableCatalog.map((model) => normalizeModelListSource(model));
|
|
84
85
|
let availableKeys;
|
|
@@ -16,12 +16,12 @@ import "../../agents/auth-profiles.js";
|
|
|
16
16
|
import { resolveEnvApiKey } from "../../agents/model-auth.js";
|
|
17
17
|
import { buildModelAliasIndex, parseModelRef, resolveConfiguredModelRef, resolveDefaultModelForAgent, resolveModelRefFromString } from "../../agents/model-selection.js";
|
|
18
18
|
import { withProgressTotals } from "../../cli/progress.js";
|
|
19
|
+
import { loadProviderExtensionCatalogIndex } from "../../agents/provider-extension-catalog-index.js";
|
|
20
|
+
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
19
21
|
import { resolveUsageProviderId } from "../../infra/provider-usage.shared.js";
|
|
20
22
|
import { formatUsageWindowSummary } from "../../infra/provider-usage.format.js";
|
|
21
23
|
import { loadProviderUsageSummary } from "../../infra/provider-usage.load.js";
|
|
22
24
|
import "../../infra/provider-usage.js";
|
|
23
|
-
import { loadProviderExtensionCatalogIndex } from "../../agents/provider-extension-catalog-index.js";
|
|
24
|
-
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
25
25
|
import { renderTable } from "../../terminal/table.js";
|
|
26
26
|
import { buildModelCatalogStatus } from "../../agents/model-catalog-status.js";
|
|
27
27
|
import { DEFAULT_OAUTH_WARN_MS, buildAuthHealthSummary, formatRemainingShort } from "../../agents/auth-health.js";
|
|
@@ -11,7 +11,7 @@ import { upsertAuthProfile } from "../agents/auth-profiles/profiles.js";
|
|
|
11
11
|
import "../agents/auth-profiles.js";
|
|
12
12
|
import { PROVIDER_ENV_VARS } from "../secrets/provider-env-vars.js";
|
|
13
13
|
import { MISTRAL_DEFAULT_MODEL_REF, XAI_DEFAULT_MODEL_REF } from "./onboard-auth.models.js";
|
|
14
|
-
import
|
|
14
|
+
import syncFs from "node:fs";
|
|
15
15
|
import path from "node:path";
|
|
16
16
|
|
|
17
17
|
//#region src/commands/onboard-auth.credentials.ts
|
|
@@ -74,7 +74,7 @@ function buildApiKeyCredential(provider, input, metadata, options) {
|
|
|
74
74
|
/** Resolve real path, returning null if the target doesn't exist. */
|
|
75
75
|
function safeRealpathSync(dir) {
|
|
76
76
|
try {
|
|
77
|
-
return
|
|
77
|
+
return syncFs.realpathSync(path.resolve(dir));
|
|
78
78
|
} catch {
|
|
79
79
|
return null;
|
|
80
80
|
}
|
|
@@ -87,7 +87,7 @@ function resolveSiblingAgentDirs(primaryAgentDir) {
|
|
|
87
87
|
const agentsRoot = looksLikeStandardLayout ? candidateAgentsRoot : path.join(resolveStateDir(), "agents");
|
|
88
88
|
const entries = (() => {
|
|
89
89
|
try {
|
|
90
|
-
return
|
|
90
|
+
return syncFs.readdirSync(agentsRoot, { withFileTypes: true });
|
|
91
91
|
} catch {
|
|
92
92
|
return [];
|
|
93
93
|
}
|
|
@@ -7,7 +7,7 @@ import { createPluginLoaderLogger } from "../../plugins/logger.js";
|
|
|
7
7
|
import { resolveChannelPluginExpectedPluginIds } from "../../channels/plugins/catalog.js";
|
|
8
8
|
import { buildNpmResolutionInstallFields } from "../../plugins/installs.js";
|
|
9
9
|
import { finalizeInstalledPluginConfig } from "../../plugins/lifecycle.js";
|
|
10
|
-
import
|
|
10
|
+
import syncFs from "node:fs";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
|
|
13
13
|
//#region src/commands/onboarding/plugin-install.ts
|
|
@@ -29,7 +29,7 @@ function resolveLocalPath(entry, workspaceDir) {
|
|
|
29
29
|
candidates.add(path.resolve(packageRoot, raw));
|
|
30
30
|
}
|
|
31
31
|
for (const candidate of candidates) {
|
|
32
|
-
if (
|
|
32
|
+
if (syncFs.existsSync(candidate)) {
|
|
33
33
|
return candidate;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DEFAULT_PROVIDER } from "../agents/defaults.js";
|
|
2
2
|
import { ensureAuthProfileStore } from "../agents/auth-profiles/store.js";
|
|
3
3
|
import "../agents/auth-profiles.js";
|
|
4
|
-
import { loadModelCatalog } from "../agents/model-catalog.js";
|
|
5
4
|
import { resolveAuthenticatedModelCatalog } from "../agents/authenticated-model-catalog.js";
|
|
5
|
+
import { loadModelCatalog } from "../agents/model-catalog.js";
|
|
6
6
|
|
|
7
7
|
//#region src/commands/openai-codex-model-default.ts
|
|
8
8
|
const OPENAI_CODEX_DEFAULT_MODEL = "openai-codex/gpt-5.5";
|
|
@@ -17,7 +17,8 @@ async function discoverOpenAICodexDefaultModel(params) {
|
|
|
17
17
|
cfg: params.config,
|
|
18
18
|
store,
|
|
19
19
|
catalog,
|
|
20
|
-
defaultProvider: DEFAULT_PROVIDER
|
|
20
|
+
defaultProvider: DEFAULT_PROVIDER,
|
|
21
|
+
agentDir: params.agentDir
|
|
21
22
|
});
|
|
22
23
|
const model = authenticated.usableCatalog.filter((entry) => entry.provider === "openai-codex").toSorted((left, right) => (left.metadata?.recommendationRank ?? Number.MAX_SAFE_INTEGER) - (right.metadata?.recommendationRank ?? Number.MAX_SAFE_INTEGER) || left.name.localeCompare(right.name))[0];
|
|
23
24
|
return model ? `${model.provider}/${model.id}` : undefined;
|
|
@@ -7,7 +7,7 @@ import { capEntryCount, loadSessionStore, pruneStaleEntries, resolveMaintenanceC
|
|
|
7
7
|
import "../config/sessions.js";
|
|
8
8
|
import { resolveSessionStoreTargets } from "./session-store-targets.js";
|
|
9
9
|
import { SESSION_AGE_PAD, SESSION_KEY_PAD, SESSION_MODEL_PAD, formatSessionAgeCell, formatSessionFlagsCell, formatSessionKeyCell, formatSessionModelCell, resolveSessionDisplayDefaults, resolveSessionDisplayModel, toSessionDisplayRows } from "./sessions-table.js";
|
|
10
|
-
import
|
|
10
|
+
import syncFs from "node:fs";
|
|
11
11
|
|
|
12
12
|
//#region src/commands/sessions-cleanup.ts
|
|
13
13
|
const ACTION_PAD = 12;
|
|
@@ -65,7 +65,7 @@ function pruneMissingTranscriptEntries(params) {
|
|
|
65
65
|
continue;
|
|
66
66
|
}
|
|
67
67
|
const transcriptPath = resolveSessionFilePath(entry.sessionId, entry, sessionPathOpts);
|
|
68
|
-
if (!
|
|
68
|
+
if (!syncFs.existsSync(transcriptPath)) {
|
|
69
69
|
delete params.store[key];
|
|
70
70
|
removed += 1;
|
|
71
71
|
params.onPruned?.(key);
|
|
@@ -5,7 +5,7 @@ import { resolveBrewExecutable } from "../infra/brew.js";
|
|
|
5
5
|
import { createWriteStream } from "node:fs";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import fs
|
|
8
|
+
import fs from "node:fs/promises";
|
|
9
9
|
import { pipeline } from "node:stream/promises";
|
|
10
10
|
import { request } from "node:https";
|
|
11
11
|
|
|
@@ -79,7 +79,7 @@ async function findSignalCliBinary(root) {
|
|
|
79
79
|
if (depth > 3) {
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
82
|
-
const entries = await fs
|
|
82
|
+
const entries = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
83
83
|
for (const entry of entries) {
|
|
84
84
|
const full = path.join(dir, entry.name);
|
|
85
85
|
if (entry.isDirectory()) {
|
|
@@ -103,7 +103,7 @@ async function resolveBrewSignalCliPath(brewExe) {
|
|
|
103
103
|
const prefix = result.stdout.trim();
|
|
104
104
|
const candidate = path.join(prefix, "bin", "signal-cli");
|
|
105
105
|
try {
|
|
106
|
-
await fs
|
|
106
|
+
await fs.access(candidate);
|
|
107
107
|
return candidate;
|
|
108
108
|
} catch {
|
|
109
109
|
return findSignalCliBinary(prefix);
|
|
@@ -172,12 +172,12 @@ async function installSignalCliFromRelease(runtime) {
|
|
|
172
172
|
error: "No compatible release asset found for this platform."
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
|
-
const tmpDir = await fs
|
|
175
|
+
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "fased-signal-"));
|
|
176
176
|
const archivePath = path.join(tmpDir, asset.name);
|
|
177
177
|
runtime.log(`Downloading signal-cli ${version} (${asset.name})…`);
|
|
178
178
|
await downloadToFile(asset.browser_download_url, archivePath);
|
|
179
179
|
const installRoot = path.join(CONFIG_DIR, "tools", "signal-cli", version);
|
|
180
|
-
await fs
|
|
180
|
+
await fs.mkdir(installRoot, { recursive: true });
|
|
181
181
|
if (!looksLikeArchive(asset.name.toLowerCase())) {
|
|
182
182
|
return {
|
|
183
183
|
ok: false,
|
|
@@ -200,7 +200,7 @@ async function installSignalCliFromRelease(runtime) {
|
|
|
200
200
|
error: `signal-cli binary not found after extracting ${asset.name}`
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
|
-
await fs
|
|
203
|
+
await fs.chmod(cliPath, 493).catch(() => {});
|
|
204
204
|
return {
|
|
205
205
|
ok: true,
|
|
206
206
|
cliPath,
|
|
@@ -4,7 +4,7 @@ import { formatTimeAgo } from "../../infra/format-time/format-relative.js";
|
|
|
4
4
|
import { resolveChannelDefaultAccountId } from "../../channels/plugins/helpers.js";
|
|
5
5
|
import { buildChannelAccountSnapshot, formatChannelAllowFrom } from "../../channels/account-summary.js";
|
|
6
6
|
import "./format.js";
|
|
7
|
-
import
|
|
7
|
+
import syncFs from "node:fs";
|
|
8
8
|
|
|
9
9
|
//#region src/commands/status-all/channels.ts
|
|
10
10
|
const asRecord = (value) => value && typeof value === "object" ? value : {};
|
|
@@ -27,7 +27,7 @@ function existsSyncMaybe(p) {
|
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
29
|
try {
|
|
30
|
-
return
|
|
30
|
+
return syncFs.existsSync(path);
|
|
31
31
|
} catch {
|
|
32
32
|
return null;
|
|
33
33
|
}
|