@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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { resolveConfigPath, resolveGatewayLockDir, resolveStateDir } from "../config/paths.js";
|
|
2
2
|
import { isPidAlive } from "../shared/pid-alive.js";
|
|
3
|
-
import
|
|
3
|
+
import syncFs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import fs
|
|
5
|
+
import fs from "node:fs/promises";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
import net from "node:net";
|
|
8
8
|
|
|
@@ -44,7 +44,7 @@ function isGatewayArgv(args) {
|
|
|
44
44
|
}
|
|
45
45
|
function readLinuxCmdline(pid) {
|
|
46
46
|
try {
|
|
47
|
-
const raw =
|
|
47
|
+
const raw = syncFs.readFileSync(`/proc/${pid}/cmdline`, "utf8");
|
|
48
48
|
return parseProcCmdline(raw);
|
|
49
49
|
} catch {
|
|
50
50
|
return null;
|
|
@@ -52,7 +52,7 @@ function readLinuxCmdline(pid) {
|
|
|
52
52
|
}
|
|
53
53
|
function readLinuxStartTime(pid) {
|
|
54
54
|
try {
|
|
55
|
-
const raw =
|
|
55
|
+
const raw = syncFs.readFileSync(`/proc/${pid}/stat`, "utf8").trim();
|
|
56
56
|
const closeParen = raw.lastIndexOf(")");
|
|
57
57
|
if (closeParen < 0) {
|
|
58
58
|
return null;
|
|
@@ -122,7 +122,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
|
|
|
122
122
|
}
|
|
123
123
|
async function readLockPayload(lockPath) {
|
|
124
124
|
try {
|
|
125
|
-
const raw = await fs
|
|
125
|
+
const raw = await fs.readFile(lockPath, "utf8");
|
|
126
126
|
const parsed = JSON.parse(raw);
|
|
127
127
|
if (typeof parsed.pid !== "number") {
|
|
128
128
|
return null;
|
|
@@ -167,12 +167,12 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
167
167
|
const platform = opts.platform ?? process.platform;
|
|
168
168
|
const port = opts.port;
|
|
169
169
|
const { lockPath, configPath } = resolveGatewayLockPath(env);
|
|
170
|
-
await fs
|
|
170
|
+
await fs.mkdir(path.dirname(lockPath), { recursive: true });
|
|
171
171
|
const startedAt = Date.now();
|
|
172
172
|
let lastPayload = null;
|
|
173
173
|
while (Date.now() - startedAt < timeoutMs) {
|
|
174
174
|
try {
|
|
175
|
-
const handle = await fs
|
|
175
|
+
const handle = await fs.open(lockPath, "wx");
|
|
176
176
|
const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
|
|
177
177
|
const payload = {
|
|
178
178
|
pid: process.pid,
|
|
@@ -188,7 +188,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
188
188
|
configPath,
|
|
189
189
|
release: async () => {
|
|
190
190
|
await handle.close().catch(() => undefined);
|
|
191
|
-
await fs
|
|
191
|
+
await fs.rm(lockPath, { force: true });
|
|
192
192
|
}
|
|
193
193
|
};
|
|
194
194
|
} catch (err) {
|
|
@@ -200,7 +200,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
200
200
|
const ownerPid = lastPayload?.pid;
|
|
201
201
|
const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
|
|
202
202
|
if (ownerStatus === "dead" && ownerPid) {
|
|
203
|
-
await fs
|
|
203
|
+
await fs.rm(lockPath, { force: true });
|
|
204
204
|
continue;
|
|
205
205
|
}
|
|
206
206
|
if (ownerStatus !== "alive") {
|
|
@@ -211,14 +211,14 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
211
211
|
}
|
|
212
212
|
if (!stale) {
|
|
213
213
|
try {
|
|
214
|
-
const st = await fs
|
|
214
|
+
const st = await fs.stat(lockPath);
|
|
215
215
|
stale = Date.now() - st.mtimeMs > staleMs;
|
|
216
216
|
} catch {
|
|
217
217
|
stale = false;
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
if (stale) {
|
|
221
|
-
await fs
|
|
221
|
+
await fs.rm(lockPath, { force: true });
|
|
222
222
|
continue;
|
|
223
223
|
}
|
|
224
224
|
}
|
package/dist/infra/git-commit.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveGitHeadPath } from "./git-root.js";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
|
-
import
|
|
3
|
+
import syncFs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/infra/git-commit.ts
|
|
@@ -48,7 +48,7 @@ function isMissingPathError(error) {
|
|
|
48
48
|
function resolveGitRefsBase(headPath) {
|
|
49
49
|
const gitDir = path.dirname(headPath);
|
|
50
50
|
try {
|
|
51
|
-
const commonDirRaw =
|
|
51
|
+
const commonDirRaw = syncFs.readFileSync(path.join(gitDir, "commondir"), "utf-8").trim();
|
|
52
52
|
if (!commonDirRaw) {
|
|
53
53
|
return gitDir;
|
|
54
54
|
}
|
|
@@ -79,7 +79,7 @@ function resolveRefPath(refsBase, ref) {
|
|
|
79
79
|
}
|
|
80
80
|
function readCommitFromPackedRefs(refsBase, ref) {
|
|
81
81
|
try {
|
|
82
|
-
const packedRefs =
|
|
82
|
+
const packedRefs = syncFs.readFileSync(path.join(refsBase, "packed-refs"), "utf-8");
|
|
83
83
|
for (const line of packedRefs.split("\n")) {
|
|
84
84
|
if (!line || line.startsWith("#") || line.startsWith("^")) {
|
|
85
85
|
continue;
|
|
@@ -124,7 +124,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
124
124
|
cachedCommit = null;
|
|
125
125
|
return cachedCommit;
|
|
126
126
|
}
|
|
127
|
-
const head =
|
|
127
|
+
const head = syncFs.readFileSync(headPath, "utf-8").trim();
|
|
128
128
|
if (!head) {
|
|
129
129
|
cachedCommit = null;
|
|
130
130
|
return cachedCommit;
|
|
@@ -138,7 +138,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
138
138
|
return cachedCommit;
|
|
139
139
|
}
|
|
140
140
|
try {
|
|
141
|
-
const refHash =
|
|
141
|
+
const refHash = syncFs.readFileSync(refPath, "utf-8").trim();
|
|
142
142
|
cachedCommit = formatCommit(refHash);
|
|
143
143
|
return cachedCommit;
|
|
144
144
|
} catch (error) {
|
package/dist/infra/git-root.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import syncFs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/git-root.ts
|
|
@@ -22,7 +22,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
|
|
|
22
22
|
function hasGitMarker(repoRoot) {
|
|
23
23
|
const gitPath = path.join(repoRoot, ".git");
|
|
24
24
|
try {
|
|
25
|
-
const stat =
|
|
25
|
+
const stat = syncFs.statSync(gitPath);
|
|
26
26
|
return stat.isDirectory() || stat.isFile();
|
|
27
27
|
} catch {
|
|
28
28
|
return false;
|
|
@@ -34,14 +34,14 @@ function findGitRoot(startDir, opts = {}) {
|
|
|
34
34
|
function resolveGitDirFromMarker(repoRoot) {
|
|
35
35
|
const gitPath = path.join(repoRoot, ".git");
|
|
36
36
|
try {
|
|
37
|
-
const stat =
|
|
37
|
+
const stat = syncFs.statSync(gitPath);
|
|
38
38
|
if (stat.isDirectory()) {
|
|
39
39
|
return gitPath;
|
|
40
40
|
}
|
|
41
41
|
if (!stat.isFile()) {
|
|
42
42
|
return null;
|
|
43
43
|
}
|
|
44
|
-
const raw =
|
|
44
|
+
const raw = syncFs.readFileSync(gitPath, "utf-8");
|
|
45
45
|
const match = raw.match(/gitdir:\s*(.+)/i);
|
|
46
46
|
if (!match?.[1]) {
|
|
47
47
|
return null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createReadStream, createWriteStream } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import fs
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
5
5
|
import { Readable } from "node:stream";
|
|
6
6
|
import { pipeline } from "node:stream/promises";
|
|
@@ -141,7 +141,7 @@ async function downloadHostedRuntimeDescriptor(params) {
|
|
|
141
141
|
reason: `hosted runtime artifact unavailable (${artifactResponse.status})`
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
|
-
await fs
|
|
144
|
+
await fs.mkdir(params.destinationDir, { recursive: true });
|
|
145
145
|
const archivePath = path.join(params.destinationDir, descriptor.assetName);
|
|
146
146
|
try {
|
|
147
147
|
await writeResponseBody(artifactResponse, archivePath);
|
|
@@ -153,7 +153,7 @@ async function downloadHostedRuntimeDescriptor(params) {
|
|
|
153
153
|
}
|
|
154
154
|
const actualChecksum = await sha256(archivePath);
|
|
155
155
|
if (actualChecksum !== expectedChecksum) {
|
|
156
|
-
await fs
|
|
156
|
+
await fs.rm(archivePath, { force: true });
|
|
157
157
|
return {
|
|
158
158
|
kind: "error",
|
|
159
159
|
reason: `hosted runtime checksum mismatch for ${descriptor.assetName}`
|
package/dist/infra/is-main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import syncFs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/is-main.ts
|
|
@@ -8,7 +8,7 @@ function normalizePathCandidate(candidate, cwd) {
|
|
|
8
8
|
}
|
|
9
9
|
const resolved = path.resolve(cwd, candidate);
|
|
10
10
|
try {
|
|
11
|
-
return
|
|
11
|
+
return syncFs.realpathSync.native(resolved);
|
|
12
12
|
} catch {
|
|
13
13
|
return resolved;
|
|
14
14
|
}
|
package/dist/infra/json-file.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import syncFs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/json-file.ts
|
|
5
5
|
function loadJsonFile(pathname) {
|
|
6
6
|
try {
|
|
7
|
-
if (!
|
|
7
|
+
if (!syncFs.existsSync(pathname)) {
|
|
8
8
|
return undefined;
|
|
9
9
|
}
|
|
10
|
-
const raw =
|
|
10
|
+
const raw = syncFs.readFileSync(pathname, "utf8");
|
|
11
11
|
return JSON.parse(raw);
|
|
12
12
|
} catch {
|
|
13
13
|
return undefined;
|
|
@@ -15,14 +15,14 @@ function loadJsonFile(pathname) {
|
|
|
15
15
|
}
|
|
16
16
|
function saveJsonFile(pathname, data) {
|
|
17
17
|
const dir = path.dirname(pathname);
|
|
18
|
-
if (!
|
|
19
|
-
|
|
18
|
+
if (!syncFs.existsSync(dir)) {
|
|
19
|
+
syncFs.mkdirSync(dir, {
|
|
20
20
|
recursive: true,
|
|
21
21
|
mode: 448
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
syncFs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
|
|
25
|
+
syncFs.chmodSync(pathname, 384);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
//#endregion
|
|
@@ -2,7 +2,7 @@ import { resolveStateDir } from "../../config/paths.js";
|
|
|
2
2
|
import { formatErrorMessage } from "../errors.js";
|
|
3
3
|
import { generateSecureUuid } from "../secure-random.js";
|
|
4
4
|
import { formatOutboundTargetForLog, redactOutboundTargetInText } from "./format.js";
|
|
5
|
-
import
|
|
5
|
+
import syncFs from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|
|
8
8
|
//#region src/infra/outbound/delivery-queue.ts
|
|
@@ -26,11 +26,11 @@ function resolveFailedDir(stateDir) {
|
|
|
26
26
|
/** Ensure the queue directory (and failed/ subdirectory) exist. */
|
|
27
27
|
async function ensureQueueDir(stateDir) {
|
|
28
28
|
const queueDir = resolveQueueDir(stateDir);
|
|
29
|
-
await
|
|
29
|
+
await syncFs.promises.mkdir(queueDir, {
|
|
30
30
|
recursive: true,
|
|
31
31
|
mode: 448
|
|
32
32
|
});
|
|
33
|
-
await
|
|
33
|
+
await syncFs.promises.mkdir(resolveFailedDir(stateDir), {
|
|
34
34
|
recursive: true,
|
|
35
35
|
mode: 448
|
|
36
36
|
});
|
|
@@ -57,18 +57,18 @@ async function enqueueDelivery(params, stateDir) {
|
|
|
57
57
|
const filePath = path.join(queueDir, `${id}.json`);
|
|
58
58
|
const tmp = `${filePath}.${process.pid}.tmp`;
|
|
59
59
|
const json = JSON.stringify(entry, null, 2);
|
|
60
|
-
await
|
|
60
|
+
await syncFs.promises.writeFile(tmp, json, {
|
|
61
61
|
encoding: "utf-8",
|
|
62
62
|
mode: 384
|
|
63
63
|
});
|
|
64
|
-
await
|
|
64
|
+
await syncFs.promises.rename(tmp, filePath);
|
|
65
65
|
return id;
|
|
66
66
|
}
|
|
67
67
|
/** Remove a successfully delivered entry from the queue. */
|
|
68
68
|
async function ackDelivery(id, stateDir) {
|
|
69
69
|
const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
|
|
70
70
|
try {
|
|
71
|
-
await
|
|
71
|
+
await syncFs.promises.unlink(filePath);
|
|
72
72
|
} catch (err) {
|
|
73
73
|
const code = err && typeof err === "object" && "code" in err ? String(err.code) : null;
|
|
74
74
|
if (code !== "ENOENT") {
|
|
@@ -79,24 +79,24 @@ async function ackDelivery(id, stateDir) {
|
|
|
79
79
|
/** Update a queue entry after a failed delivery attempt. */
|
|
80
80
|
async function failDelivery(id, error, stateDir) {
|
|
81
81
|
const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
|
|
82
|
-
const raw = await
|
|
82
|
+
const raw = await syncFs.promises.readFile(filePath, "utf-8");
|
|
83
83
|
const entry = JSON.parse(raw);
|
|
84
84
|
entry.retryCount += 1;
|
|
85
85
|
entry.lastAttemptAt = Date.now();
|
|
86
86
|
entry.lastError = error;
|
|
87
87
|
const tmp = `${filePath}.${process.pid}.tmp`;
|
|
88
|
-
await
|
|
88
|
+
await syncFs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
|
|
89
89
|
encoding: "utf-8",
|
|
90
90
|
mode: 384
|
|
91
91
|
});
|
|
92
|
-
await
|
|
92
|
+
await syncFs.promises.rename(tmp, filePath);
|
|
93
93
|
}
|
|
94
94
|
/** Load all pending delivery entries from the queue directory. */
|
|
95
95
|
async function loadPendingDeliveries(stateDir) {
|
|
96
96
|
const queueDir = resolveQueueDir(stateDir);
|
|
97
97
|
let files;
|
|
98
98
|
try {
|
|
99
|
-
files = await
|
|
99
|
+
files = await syncFs.promises.readdir(queueDir);
|
|
100
100
|
} catch (err) {
|
|
101
101
|
const code = err && typeof err === "object" && "code" in err ? String(err.code) : null;
|
|
102
102
|
if (code === "ENOENT") {
|
|
@@ -111,20 +111,20 @@ async function loadPendingDeliveries(stateDir) {
|
|
|
111
111
|
}
|
|
112
112
|
const filePath = path.join(queueDir, file);
|
|
113
113
|
try {
|
|
114
|
-
const stat = await
|
|
114
|
+
const stat = await syncFs.promises.stat(filePath);
|
|
115
115
|
if (!stat.isFile()) {
|
|
116
116
|
continue;
|
|
117
117
|
}
|
|
118
|
-
const raw = await
|
|
118
|
+
const raw = await syncFs.promises.readFile(filePath, "utf-8");
|
|
119
119
|
const parsed = JSON.parse(raw);
|
|
120
120
|
const { entry, migrated } = normalizeLegacyQueuedDeliveryEntry(parsed);
|
|
121
121
|
if (migrated) {
|
|
122
122
|
const tmp = `${filePath}.${process.pid}.tmp`;
|
|
123
|
-
await
|
|
123
|
+
await syncFs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
|
|
124
124
|
encoding: "utf-8",
|
|
125
125
|
mode: 384
|
|
126
126
|
});
|
|
127
|
-
await
|
|
127
|
+
await syncFs.promises.rename(tmp, filePath);
|
|
128
128
|
}
|
|
129
129
|
entries.push(entry);
|
|
130
130
|
} catch {}
|
|
@@ -135,13 +135,13 @@ async function loadPendingDeliveries(stateDir) {
|
|
|
135
135
|
async function moveToFailed(id, stateDir) {
|
|
136
136
|
const queueDir = resolveQueueDir(stateDir);
|
|
137
137
|
const failedDir = resolveFailedDir(stateDir);
|
|
138
|
-
await
|
|
138
|
+
await syncFs.promises.mkdir(failedDir, {
|
|
139
139
|
recursive: true,
|
|
140
140
|
mode: 448
|
|
141
141
|
});
|
|
142
142
|
const src = path.join(queueDir, `${id}.json`);
|
|
143
143
|
const dest = path.join(failedDir, `${id}.json`);
|
|
144
|
-
await
|
|
144
|
+
await syncFs.promises.rename(src, dest);
|
|
145
145
|
}
|
|
146
146
|
/** Compute the backoff delay in ms for a given retry count. */
|
|
147
147
|
function computeBackoffMs(retryCount) {
|
package/dist/infra/path-env.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { isTruthyEnvValue } from "./env.js";
|
|
2
2
|
import { resolveBrewPathDirs } from "./brew.js";
|
|
3
|
-
import
|
|
3
|
+
import syncFs from "node:fs";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
|
|
7
7
|
//#region src/infra/path-env.ts
|
|
8
8
|
function isExecutable(filePath) {
|
|
9
9
|
try {
|
|
10
|
-
|
|
10
|
+
syncFs.accessSync(filePath, syncFs.constants.X_OK);
|
|
11
11
|
return true;
|
|
12
12
|
} catch {
|
|
13
13
|
return false;
|
|
@@ -15,7 +15,7 @@ function isExecutable(filePath) {
|
|
|
15
15
|
}
|
|
16
16
|
function isDirectory(dirPath) {
|
|
17
17
|
try {
|
|
18
|
-
return
|
|
18
|
+
return syncFs.statSync(dirPath).isDirectory();
|
|
19
19
|
} catch {
|
|
20
20
|
return false;
|
|
21
21
|
}
|
package/dist/infra/ports-lsof.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fs
|
|
1
|
+
import syncFs from "node:fs";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/ports-lsof.ts
|
|
5
5
|
const LSOF_CANDIDATES = process.platform === "darwin" ? ["/usr/sbin/lsof", "/usr/bin/lsof"] : ["/usr/bin/lsof", "/usr/sbin/lsof"];
|
|
6
6
|
async function canExecute(path) {
|
|
7
7
|
try {
|
|
8
|
-
await fs
|
|
8
|
+
await fs.access(path, syncFs.constants.X_OK);
|
|
9
9
|
return true;
|
|
10
10
|
} catch {
|
|
11
11
|
return false;
|
|
@@ -22,7 +22,7 @@ async function resolveLsofCommand() {
|
|
|
22
22
|
function resolveLsofCommandSync() {
|
|
23
23
|
for (const candidate of LSOF_CANDIDATES) {
|
|
24
24
|
try {
|
|
25
|
-
|
|
25
|
+
syncFs.accessSync(candidate, syncFs.constants.X_OK);
|
|
26
26
|
return candidate;
|
|
27
27
|
} catch {}
|
|
28
28
|
}
|
|
@@ -9,7 +9,7 @@ import { resolveAuthProfileOrder } from "../agents/auth-profiles/order.js";
|
|
|
9
9
|
import "../agents/auth-profiles.js";
|
|
10
10
|
import { getCustomProviderApiKey } from "../agents/model-auth.js";
|
|
11
11
|
import { normalizeProviderId } from "../agents/model-selection.js";
|
|
12
|
-
import
|
|
12
|
+
import syncFs from "node:fs";
|
|
13
13
|
import os from "node:os";
|
|
14
14
|
import path from "node:path";
|
|
15
15
|
|
|
@@ -43,10 +43,10 @@ function resolveZaiApiKey() {
|
|
|
43
43
|
}
|
|
44
44
|
try {
|
|
45
45
|
const authPath = path.join(resolveRequiredHomeDir(process.env, os.homedir), ".pi", "agent", "auth.json");
|
|
46
|
-
if (!
|
|
46
|
+
if (!syncFs.existsSync(authPath)) {
|
|
47
47
|
return undefined;
|
|
48
48
|
}
|
|
49
|
-
const data = JSON.parse(
|
|
49
|
+
const data = JSON.parse(syncFs.readFileSync(authPath, "utf-8"));
|
|
50
50
|
return data["z-ai"]?.access || data.zai?.access;
|
|
51
51
|
} catch {
|
|
52
52
|
return undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sameFileIdentity as sameFileIdentity$1 } from "./file-identity.js";
|
|
2
|
-
import
|
|
2
|
+
import syncFs from "node:fs";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/safe-open-sync.ts
|
|
5
5
|
function isExpectedPathError(error) {
|
|
@@ -10,7 +10,7 @@ function sameFileIdentity(left, right) {
|
|
|
10
10
|
return sameFileIdentity$1(left, right);
|
|
11
11
|
}
|
|
12
12
|
function openVerifiedFileSync(params) {
|
|
13
|
-
const ioFs = params.ioFs ??
|
|
13
|
+
const ioFs = params.ioFs ?? syncFs;
|
|
14
14
|
const openReadFlags = ioFs.constants.O_RDONLY | (typeof ioFs.constants.O_NOFOLLOW === "number" ? ioFs.constants.O_NOFOLLOW : 0);
|
|
15
15
|
let fd = null;
|
|
16
16
|
try {
|
|
@@ -4,7 +4,7 @@ import { stripInboundMetadata } from "../auto-reply/reply/strip-inbound-meta.js"
|
|
|
4
4
|
import { stripEnvelope, stripMessageIdHints } from "../shared/chat-envelope.js";
|
|
5
5
|
import { normalizeUsage } from "../agents/usage.js";
|
|
6
6
|
import { estimateUsageCost, resolveModelCostConfig } from "../utils/usage-format.js";
|
|
7
|
-
import
|
|
7
|
+
import syncFs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import readline from "node:readline";
|
|
10
10
|
|
|
@@ -145,7 +145,7 @@ const applyCostTotal = (totals, costTotal) => {
|
|
|
145
145
|
totals.totalCost += costTotal;
|
|
146
146
|
};
|
|
147
147
|
async function* readJsonlRecords(filePath) {
|
|
148
|
-
const fileStream =
|
|
148
|
+
const fileStream = syncFs.createReadStream(filePath, { encoding: "utf-8" });
|
|
149
149
|
const rl = readline.createInterface({
|
|
150
150
|
input: fileStream,
|
|
151
151
|
crlfDelay: Infinity
|
|
@@ -225,10 +225,10 @@ async function loadCostUsageSummary(params) {
|
|
|
225
225
|
const dailyMap = new Map();
|
|
226
226
|
const totals = emptyTotals();
|
|
227
227
|
const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
|
|
228
|
-
const entries = await
|
|
228
|
+
const entries = await syncFs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
|
|
229
229
|
const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
|
|
230
230
|
const filePath = path.join(sessionsDir, entry.name);
|
|
231
|
-
const stats = await
|
|
231
|
+
const stats = await syncFs.promises.stat(filePath).catch(() => null);
|
|
232
232
|
if (!stats) {
|
|
233
233
|
return null;
|
|
234
234
|
}
|
|
@@ -279,14 +279,14 @@ async function loadCostUsageSummary(params) {
|
|
|
279
279
|
*/
|
|
280
280
|
async function discoverAllSessions(params) {
|
|
281
281
|
const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
|
|
282
|
-
const entries = await
|
|
282
|
+
const entries = await syncFs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
|
|
283
283
|
const discovered = [];
|
|
284
284
|
for (const entry of entries) {
|
|
285
285
|
if (!entry.isFile() || !entry.name.endsWith(".jsonl")) {
|
|
286
286
|
continue;
|
|
287
287
|
}
|
|
288
288
|
const filePath = path.join(sessionsDir, entry.name);
|
|
289
|
-
const stats = await
|
|
289
|
+
const stats = await syncFs.promises.stat(filePath).catch(() => null);
|
|
290
290
|
if (!stats) {
|
|
291
291
|
continue;
|
|
292
292
|
}
|
|
@@ -330,7 +330,7 @@ async function discoverAllSessions(params) {
|
|
|
330
330
|
}
|
|
331
331
|
async function loadSessionCostSummary(params) {
|
|
332
332
|
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : undefined);
|
|
333
|
-
if (!sessionFile || !
|
|
333
|
+
if (!sessionFile || !syncFs.existsSync(sessionFile)) {
|
|
334
334
|
return null;
|
|
335
335
|
}
|
|
336
336
|
const totals = emptyTotals();
|
|
@@ -547,7 +547,7 @@ async function loadSessionCostSummary(params) {
|
|
|
547
547
|
}
|
|
548
548
|
async function loadSessionUsageTimeSeries(params) {
|
|
549
549
|
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : undefined);
|
|
550
|
-
if (!sessionFile || !
|
|
550
|
+
if (!sessionFile || !syncFs.existsSync(sessionFile)) {
|
|
551
551
|
return null;
|
|
552
552
|
}
|
|
553
553
|
const points = [];
|
|
@@ -635,7 +635,7 @@ async function loadSessionUsageTimeSeries(params) {
|
|
|
635
635
|
}
|
|
636
636
|
async function loadSessionLogs(params) {
|
|
637
637
|
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : undefined);
|
|
638
|
-
if (!sessionFile || !
|
|
638
|
+
if (!sessionFile || !syncFs.existsSync(sessionFile)) {
|
|
639
639
|
return null;
|
|
640
640
|
}
|
|
641
641
|
const logs = [];
|
package/dist/infra/shell-env.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { sanitizeHostExecEnv } from "./host-env-security.js";
|
|
2
2
|
import { isTruthyEnvValue } from "./env.js";
|
|
3
|
-
import
|
|
3
|
+
import syncFs from "node:fs";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { execFileSync } from "node:child_process";
|
|
@@ -34,7 +34,7 @@ function readEtcShells() {
|
|
|
34
34
|
return cachedEtcShells;
|
|
35
35
|
}
|
|
36
36
|
try {
|
|
37
|
-
const raw =
|
|
37
|
+
const raw = syncFs.readFileSync("/etc/shells", "utf8");
|
|
38
38
|
const entries = raw.split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#") && path.isAbsolute(line));
|
|
39
39
|
cachedEtcShells = new Set(entries);
|
|
40
40
|
} catch {
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import
|
|
1
|
+
import syncFs from "node:fs";
|
|
2
2
|
import JSON5 from "json5";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/state-migrations.fs.ts
|
|
5
5
|
function safeReadDir(dir) {
|
|
6
6
|
try {
|
|
7
|
-
return
|
|
7
|
+
return syncFs.readdirSync(dir, { withFileTypes: true });
|
|
8
8
|
} catch {
|
|
9
9
|
return [];
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
function existsDir(dir) {
|
|
13
13
|
try {
|
|
14
|
-
return
|
|
14
|
+
return syncFs.existsSync(dir) && syncFs.statSync(dir).isDirectory();
|
|
15
15
|
} catch {
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
function ensureDir(dir) {
|
|
20
|
-
|
|
20
|
+
syncFs.mkdirSync(dir, { recursive: true });
|
|
21
21
|
}
|
|
22
22
|
function fileExists(p) {
|
|
23
23
|
try {
|
|
24
|
-
return
|
|
24
|
+
return syncFs.existsSync(p) && syncFs.statSync(p).isFile();
|
|
25
25
|
} catch {
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
@@ -37,7 +37,7 @@ function isLegacyWhatsAppAuthFile(name) {
|
|
|
37
37
|
}
|
|
38
38
|
function readSessionStoreJson5(storePath) {
|
|
39
39
|
try {
|
|
40
|
-
const raw =
|
|
40
|
+
const raw = syncFs.readFileSync(storePath, "utf-8");
|
|
41
41
|
const parsed = JSON5.parse(raw);
|
|
42
42
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
43
43
|
return {
|