@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
package/dist/line/accounts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId as normalizeAccountId$1 } from "../routing/account-id.js";
|
|
2
2
|
import { resolveAccountEntry } from "../routing/account-lookup.js";
|
|
3
|
-
import
|
|
3
|
+
import syncFs from "node:fs";
|
|
4
4
|
|
|
5
5
|
//#region src/line/accounts.ts
|
|
6
6
|
function readFileIfExists(filePath) {
|
|
@@ -8,7 +8,7 @@ function readFileIfExists(filePath) {
|
|
|
8
8
|
return undefined;
|
|
9
9
|
}
|
|
10
10
|
try {
|
|
11
|
-
return
|
|
11
|
+
return syncFs.readFileSync(filePath, "utf-8").trim();
|
|
12
12
|
} catch {
|
|
13
13
|
return undefined;
|
|
14
14
|
}
|
package/dist/line/download.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logVerbose } from "../globals.js";
|
|
2
2
|
import { buildRandomTempFilePath } from "../plugin-sdk/temp-path.js";
|
|
3
3
|
import { formatLineIdForLog } from "./logging.js";
|
|
4
|
-
import
|
|
4
|
+
import syncFs from "node:fs";
|
|
5
5
|
import { messagingApi } from "@line/bot-sdk";
|
|
6
6
|
|
|
7
7
|
//#region src/line/download.ts
|
|
@@ -24,7 +24,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
|
|
|
24
24
|
prefix: "line-media",
|
|
25
25
|
extension: ext
|
|
26
26
|
});
|
|
27
|
-
await
|
|
27
|
+
await syncFs.promises.writeFile(filePath, buffer);
|
|
28
28
|
logVerbose(`line: downloaded media ${formatLineIdForLog(messageId)} to ${filePath} (${buffer.length} bytes)`);
|
|
29
29
|
return {
|
|
30
30
|
path: filePath,
|
package/dist/logging/config.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { resolveConfigPath } from "../config/paths.js";
|
|
2
|
-
import
|
|
2
|
+
import syncFs from "node:fs";
|
|
3
3
|
import JSON5 from "json5";
|
|
4
4
|
|
|
5
5
|
//#region src/logging/config.ts
|
|
6
6
|
function readLoggingConfig() {
|
|
7
7
|
const configPath = resolveConfigPath();
|
|
8
8
|
try {
|
|
9
|
-
if (!
|
|
9
|
+
if (!syncFs.existsSync(configPath)) {
|
|
10
10
|
return undefined;
|
|
11
11
|
}
|
|
12
|
-
const raw =
|
|
12
|
+
const raw = syncFs.readFileSync(configPath, "utf-8");
|
|
13
13
|
const parsed = JSON5.parse(raw);
|
|
14
14
|
const logging = parsed?.logging;
|
|
15
15
|
if (!logging || typeof logging !== "object" || Array.isArray(logging)) {
|
package/dist/logging/logger.js
CHANGED
|
@@ -4,7 +4,7 @@ import { levelToMinLevel, normalizeLogLevel } from "./levels.js";
|
|
|
4
4
|
import { loggingState } from "./state.js";
|
|
5
5
|
import { resolveEnvLogLevelOverride } from "./env-log-level.js";
|
|
6
6
|
import { resolveNodeRequireFromMeta } from "./node-require.js";
|
|
7
|
-
import
|
|
7
|
+
import syncFs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import { Logger } from "tslog";
|
|
10
10
|
|
|
@@ -66,7 +66,7 @@ function isFileLogLevelEnabled(level) {
|
|
|
66
66
|
return levelToMinLevel(level) <= levelToMinLevel(settings.level);
|
|
67
67
|
}
|
|
68
68
|
function buildLogger(settings) {
|
|
69
|
-
|
|
69
|
+
syncFs.mkdirSync(path.dirname(settings.file), { recursive: true });
|
|
70
70
|
if (isRollingPath(settings.file)) {
|
|
71
71
|
pruneOldRollingLogs(path.dirname(settings.file));
|
|
72
72
|
}
|
|
@@ -119,14 +119,14 @@ function resolveMaxLogFileBytes(raw) {
|
|
|
119
119
|
}
|
|
120
120
|
function getCurrentLogFileBytes(file) {
|
|
121
121
|
try {
|
|
122
|
-
return
|
|
122
|
+
return syncFs.statSync(file).size;
|
|
123
123
|
} catch {
|
|
124
124
|
return 0;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
function appendLogLine(file, line) {
|
|
128
128
|
try {
|
|
129
|
-
|
|
129
|
+
syncFs.appendFileSync(file, line, { encoding: "utf8" });
|
|
130
130
|
return true;
|
|
131
131
|
} catch {
|
|
132
132
|
return false;
|
|
@@ -206,7 +206,7 @@ function isRollingPath(file) {
|
|
|
206
206
|
}
|
|
207
207
|
function pruneOldRollingLogs(dir) {
|
|
208
208
|
try {
|
|
209
|
-
const entries =
|
|
209
|
+
const entries = syncFs.readdirSync(dir, { withFileTypes: true });
|
|
210
210
|
const cutoff = Date.now() - MAX_LOG_AGE_MS;
|
|
211
211
|
for (const entry of entries) {
|
|
212
212
|
if (!entry.isFile()) {
|
|
@@ -217,9 +217,9 @@ function pruneOldRollingLogs(dir) {
|
|
|
217
217
|
}
|
|
218
218
|
const fullPath = path.join(dir, entry.name);
|
|
219
219
|
try {
|
|
220
|
-
const stat =
|
|
220
|
+
const stat = syncFs.statSync(fullPath);
|
|
221
221
|
if (stat.mtimeMs < cutoff) {
|
|
222
|
-
|
|
222
|
+
syncFs.rmSync(fullPath, { force: true });
|
|
223
223
|
}
|
|
224
224
|
} catch {}
|
|
225
225
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths.js";
|
|
2
|
-
import
|
|
2
|
+
import syncFs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
5
|
//#region src/managed/federation.ts
|
|
@@ -20,7 +20,7 @@ function resolveFederationAccessTokenPath(env = process.env) {
|
|
|
20
20
|
}
|
|
21
21
|
function readManagedFederationTokenSummary(env = process.env) {
|
|
22
22
|
const tokenPath = resolveFederationAccessTokenPath(env);
|
|
23
|
-
if (!
|
|
23
|
+
if (!syncFs.existsSync(tokenPath)) {
|
|
24
24
|
return {
|
|
25
25
|
path: tokenPath,
|
|
26
26
|
exists: false,
|
|
@@ -28,7 +28,7 @@ function readManagedFederationTokenSummary(env = process.env) {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
try {
|
|
31
|
-
const payload = JSON.parse(
|
|
31
|
+
const payload = JSON.parse(syncFs.readFileSync(tokenPath, "utf8"));
|
|
32
32
|
const agentSlug = typeof payload.agentSlug === "string" ? payload.agentSlug : undefined;
|
|
33
33
|
const publicUrl = resolveManagedFederationPublicUrl({
|
|
34
34
|
publicUrl: typeof payload.publicUrl === "string" ? payload.publicUrl : undefined,
|
package/dist/managed/tunnel.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths.js";
|
|
2
|
-
import
|
|
2
|
+
import syncFs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
5
|
//#region src/managed/tunnel.ts
|
|
6
6
|
function readManagedReservationSummaries(env = process.env) {
|
|
7
7
|
const stateDir = resolveStateDir(env);
|
|
8
|
-
const entries =
|
|
8
|
+
const entries = syncFs.readdirSync(stateDir, { withFileTypes: true });
|
|
9
9
|
const summaries = [];
|
|
10
10
|
for (const entry of entries) {
|
|
11
11
|
if (!entry.isFile() || !entry.name.endsWith(".zrok-reservation")) {
|
|
@@ -13,7 +13,7 @@ function readManagedReservationSummaries(env = process.env) {
|
|
|
13
13
|
}
|
|
14
14
|
const filePath = path.join(stateDir, entry.name);
|
|
15
15
|
try {
|
|
16
|
-
const token =
|
|
16
|
+
const token = syncFs.readFileSync(filePath, "utf8").trim();
|
|
17
17
|
summaries.push({
|
|
18
18
|
path: filePath,
|
|
19
19
|
slug: entry.name.slice(0, -".zrok-reservation".length),
|
package/dist/media/store.js
CHANGED
|
@@ -4,7 +4,7 @@ import { detectMime, extensionForMime } from "./mime.js";
|
|
|
4
4
|
import { SafeOpenError, readLocalFileSafely } from "../infra/fs-safe.js";
|
|
5
5
|
import { createWriteStream } from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
7
|
-
import fs
|
|
7
|
+
import fs from "node:fs/promises";
|
|
8
8
|
import crypto from "node:crypto";
|
|
9
9
|
import { request } from "node:http";
|
|
10
10
|
import { pipeline } from "node:stream/promises";
|
|
@@ -62,7 +62,7 @@ function getMediaDir() {
|
|
|
62
62
|
}
|
|
63
63
|
async function ensureMediaDir() {
|
|
64
64
|
const mediaDir = resolveMediaDir();
|
|
65
|
-
await fs
|
|
65
|
+
await fs.mkdir(mediaDir, {
|
|
66
66
|
recursive: true,
|
|
67
67
|
mode: 448
|
|
68
68
|
});
|
|
@@ -70,24 +70,24 @@ async function ensureMediaDir() {
|
|
|
70
70
|
}
|
|
71
71
|
async function cleanOldMedia(ttlMs = DEFAULT_TTL_MS) {
|
|
72
72
|
const mediaDir = await ensureMediaDir();
|
|
73
|
-
const entries = await fs
|
|
73
|
+
const entries = await fs.readdir(mediaDir).catch(() => []);
|
|
74
74
|
const now = Date.now();
|
|
75
75
|
const removeExpiredFilesInDir = async (dir) => {
|
|
76
|
-
const dirEntries = await fs
|
|
76
|
+
const dirEntries = await fs.readdir(dir).catch(() => []);
|
|
77
77
|
await Promise.all(dirEntries.map(async (entry) => {
|
|
78
78
|
const full = path.join(dir, entry);
|
|
79
|
-
const stat = await fs
|
|
79
|
+
const stat = await fs.stat(full).catch(() => null);
|
|
80
80
|
if (!stat || !stat.isFile()) {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
83
|
if (now - stat.mtimeMs > ttlMs) {
|
|
84
|
-
await fs
|
|
84
|
+
await fs.rm(full).catch(() => {});
|
|
85
85
|
}
|
|
86
86
|
}));
|
|
87
87
|
};
|
|
88
88
|
await Promise.all(entries.map(async (file) => {
|
|
89
89
|
const full = path.join(mediaDir, file);
|
|
90
|
-
const stat = await fs
|
|
90
|
+
const stat = await fs.stat(full).catch(() => null);
|
|
91
91
|
if (!stat) {
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
@@ -96,7 +96,7 @@ async function cleanOldMedia(ttlMs = DEFAULT_TTL_MS) {
|
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
98
|
if (stat.isFile() && now - stat.mtimeMs > ttlMs) {
|
|
99
|
-
await fs
|
|
99
|
+
await fs.rm(full).catch(() => {});
|
|
100
100
|
}
|
|
101
101
|
}));
|
|
102
102
|
}
|
|
@@ -190,7 +190,7 @@ function toSaveMediaSourceError(err) {
|
|
|
190
190
|
async function saveMediaSource(source, headers, subdir = "") {
|
|
191
191
|
const baseDir = resolveMediaDir();
|
|
192
192
|
const dir = subdir ? path.join(baseDir, subdir) : baseDir;
|
|
193
|
-
await fs
|
|
193
|
+
await fs.mkdir(dir, {
|
|
194
194
|
recursive: true,
|
|
195
195
|
mode: 448
|
|
196
196
|
});
|
|
@@ -207,7 +207,7 @@ async function saveMediaSource(source, headers, subdir = "") {
|
|
|
207
207
|
const ext = extensionForMime(mime) ?? path.extname(new URL(source).pathname);
|
|
208
208
|
const id = ext ? `${baseId}${ext}` : baseId;
|
|
209
209
|
const finalDest = path.join(dir, id);
|
|
210
|
-
await fs
|
|
210
|
+
await fs.rename(tempDest, finalDest);
|
|
211
211
|
return {
|
|
212
212
|
id,
|
|
213
213
|
path: finalDest,
|
|
@@ -227,7 +227,7 @@ async function saveMediaSource(source, headers, subdir = "") {
|
|
|
227
227
|
const ext = extensionForMime(mime) ?? path.extname(source);
|
|
228
228
|
const id = ext ? `${baseId}${ext}` : baseId;
|
|
229
229
|
const dest = path.join(dir, id);
|
|
230
|
-
await fs
|
|
230
|
+
await fs.writeFile(dest, buffer, { mode: 384 });
|
|
231
231
|
return {
|
|
232
232
|
id,
|
|
233
233
|
path: dest,
|
|
@@ -246,7 +246,7 @@ async function saveMediaBuffer(buffer, contentType, subdir = "inbound", maxBytes
|
|
|
246
246
|
throw new Error(`Media exceeds ${(maxBytes / (1024 * 1024)).toFixed(0)}MB limit`);
|
|
247
247
|
}
|
|
248
248
|
const dir = path.join(resolveMediaDir(), subdir);
|
|
249
|
-
await fs
|
|
249
|
+
await fs.mkdir(dir, {
|
|
250
250
|
recursive: true,
|
|
251
251
|
mode: 448
|
|
252
252
|
});
|
|
@@ -266,7 +266,7 @@ async function saveMediaBuffer(buffer, contentType, subdir = "inbound", maxBytes
|
|
|
266
266
|
id = ext ? `${uuid}${ext}` : uuid;
|
|
267
267
|
}
|
|
268
268
|
const dest = path.join(dir, id);
|
|
269
|
-
await fs
|
|
269
|
+
await fs.writeFile(dest, buffer, { mode: 384 });
|
|
270
270
|
return {
|
|
271
271
|
id,
|
|
272
272
|
path: dest,
|
|
@@ -16,7 +16,7 @@ import { buildModelDecision, formatDecisionSummary, runCliEntry, runProviderEntr
|
|
|
16
16
|
import { constants } from "node:fs";
|
|
17
17
|
import os from "node:os";
|
|
18
18
|
import path from "node:path";
|
|
19
|
-
import fs
|
|
19
|
+
import fs from "node:fs/promises";
|
|
20
20
|
|
|
21
21
|
//#region src/media-understanding/runner.ts
|
|
22
22
|
function buildProviderRegistry(overrides) {
|
|
@@ -70,14 +70,14 @@ function candidateBinaryNames(name) {
|
|
|
70
70
|
}
|
|
71
71
|
async function isExecutable(filePath) {
|
|
72
72
|
try {
|
|
73
|
-
const stat = await fs
|
|
73
|
+
const stat = await fs.stat(filePath);
|
|
74
74
|
if (!stat.isFile()) {
|
|
75
75
|
return false;
|
|
76
76
|
}
|
|
77
77
|
if (process.platform === "win32") {
|
|
78
78
|
return true;
|
|
79
79
|
}
|
|
80
|
-
await fs
|
|
80
|
+
await fs.access(filePath, constants.X_OK);
|
|
81
81
|
return true;
|
|
82
82
|
} catch {
|
|
83
83
|
return false;
|
|
@@ -5,7 +5,7 @@ import { createMistralEmbeddingProvider } from "./embeddings-mistral.js";
|
|
|
5
5
|
import { createOpenAiEmbeddingProvider } from "./embeddings-openai.js";
|
|
6
6
|
import { createVoyageEmbeddingProvider } from "./embeddings-voyage.js";
|
|
7
7
|
import { importNodeLlamaCpp } from "./node-llama.js";
|
|
8
|
-
import
|
|
8
|
+
import syncFs from "node:fs";
|
|
9
9
|
|
|
10
10
|
//#region src/memory/embeddings.ts
|
|
11
11
|
function sanitizeAndNormalizeEmbedding(vec) {
|
|
@@ -33,7 +33,7 @@ function canAutoSelectLocal(options) {
|
|
|
33
33
|
}
|
|
34
34
|
const resolved = resolveUserPath(modelPath);
|
|
35
35
|
try {
|
|
36
|
-
return
|
|
36
|
+
return syncFs.statSync(resolved).isFile();
|
|
37
37
|
} catch {
|
|
38
38
|
return false;
|
|
39
39
|
}
|
package/dist/memory/internal.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { runTasksWithConcurrency } from "../utils/run-with-concurrency.js";
|
|
2
2
|
import { isFileMissingError } from "./fs-utils.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 crypto from "node:crypto";
|
|
7
7
|
|
|
8
8
|
//#region src/memory/internal.ts
|
|
9
9
|
function ensureDir(dir) {
|
|
10
10
|
try {
|
|
11
|
-
|
|
11
|
+
syncFs.mkdirSync(dir, { recursive: true });
|
|
12
12
|
} catch {}
|
|
13
13
|
return dir;
|
|
14
14
|
}
|
|
@@ -34,7 +34,7 @@ function isMemoryPath(relPath) {
|
|
|
34
34
|
return normalized.startsWith("memory/");
|
|
35
35
|
}
|
|
36
36
|
async function walkDir(dir, files) {
|
|
37
|
-
const entries = await fs
|
|
37
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
38
38
|
for (const entry of entries) {
|
|
39
39
|
const full = path.join(dir, entry.name);
|
|
40
40
|
if (entry.isSymbolicLink()) {
|
|
@@ -60,7 +60,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
|
|
|
60
60
|
const memoryDir = path.join(workspaceDir, "memory");
|
|
61
61
|
const addMarkdownFile = async (absPath) => {
|
|
62
62
|
try {
|
|
63
|
-
const stat = await fs
|
|
63
|
+
const stat = await fs.lstat(absPath);
|
|
64
64
|
if (stat.isSymbolicLink() || !stat.isFile()) {
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
@@ -73,7 +73,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
|
|
|
73
73
|
await addMarkdownFile(memoryFile);
|
|
74
74
|
await addMarkdownFile(altMemoryFile);
|
|
75
75
|
try {
|
|
76
|
-
const dirStat = await fs
|
|
76
|
+
const dirStat = await fs.lstat(memoryDir);
|
|
77
77
|
if (!dirStat.isSymbolicLink() && dirStat.isDirectory()) {
|
|
78
78
|
await walkDir(memoryDir, result);
|
|
79
79
|
}
|
|
@@ -82,7 +82,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
|
|
|
82
82
|
if (normalizedExtraPaths.length > 0) {
|
|
83
83
|
for (const inputPath of normalizedExtraPaths) {
|
|
84
84
|
try {
|
|
85
|
-
const stat = await fs
|
|
85
|
+
const stat = await fs.lstat(inputPath);
|
|
86
86
|
if (stat.isSymbolicLink()) {
|
|
87
87
|
continue;
|
|
88
88
|
}
|
|
@@ -104,7 +104,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
|
|
|
104
104
|
for (const entry of result) {
|
|
105
105
|
let key = entry;
|
|
106
106
|
try {
|
|
107
|
-
key = await fs
|
|
107
|
+
key = await fs.realpath(entry);
|
|
108
108
|
} catch {}
|
|
109
109
|
if (seen.has(key)) {
|
|
110
110
|
continue;
|
|
@@ -120,7 +120,7 @@ function hashText(value) {
|
|
|
120
120
|
async function buildFileEntry(absPath, workspaceDir) {
|
|
121
121
|
let stat;
|
|
122
122
|
try {
|
|
123
|
-
stat = await fs
|
|
123
|
+
stat = await fs.stat(absPath);
|
|
124
124
|
} catch (err) {
|
|
125
125
|
if (isFileMissingError(err)) {
|
|
126
126
|
return null;
|
|
@@ -129,7 +129,7 @@ async function buildFileEntry(absPath, workspaceDir) {
|
|
|
129
129
|
}
|
|
130
130
|
let content;
|
|
131
131
|
try {
|
|
132
|
-
content = await fs
|
|
132
|
+
content = await fs.readFile(absPath, "utf-8");
|
|
133
133
|
} catch (err) {
|
|
134
134
|
if (isFileMissingError(err)) {
|
|
135
135
|
return null;
|
|
@@ -14,9 +14,9 @@ import { ensureMemoryIndexSchema } from "./memory-schema.js";
|
|
|
14
14
|
import { buildSessionEntry, listSessionFilesForAgent, sessionPathForFile } from "./session-files.js";
|
|
15
15
|
import { loadSqliteVecExtension } from "./sqlite-vec.js";
|
|
16
16
|
import { requireNodeSqlite } from "./sqlite.js";
|
|
17
|
-
import
|
|
17
|
+
import syncFs from "node:fs";
|
|
18
18
|
import path from "node:path";
|
|
19
|
-
import fs
|
|
19
|
+
import fs from "node:fs/promises";
|
|
20
20
|
import { randomUUID } from "node:crypto";
|
|
21
21
|
import chokidar from "chokidar";
|
|
22
22
|
|
|
@@ -207,7 +207,7 @@ var MemoryManagerSyncOps = class {
|
|
|
207
207
|
const source = `${sourceBase}${suffix}`;
|
|
208
208
|
const target = `${targetBase}${suffix}`;
|
|
209
209
|
try {
|
|
210
|
-
await fs
|
|
210
|
+
await fs.rename(source, target);
|
|
211
211
|
} catch (err) {
|
|
212
212
|
if (err.code !== "ENOENT") {
|
|
213
213
|
throw err;
|
|
@@ -221,7 +221,7 @@ var MemoryManagerSyncOps = class {
|
|
|
221
221
|
"-wal",
|
|
222
222
|
"-shm"
|
|
223
223
|
];
|
|
224
|
-
await Promise.all(suffixes.map((suffix) => fs
|
|
224
|
+
await Promise.all(suffixes.map((suffix) => fs.rm(`${basePath}${suffix}`, { force: true })));
|
|
225
225
|
}
|
|
226
226
|
ensureSchema() {
|
|
227
227
|
const result = ensureMemoryIndexSchema({
|
|
@@ -248,7 +248,7 @@ var MemoryManagerSyncOps = class {
|
|
|
248
248
|
const additionalPaths = normalizeExtraMemoryPaths(this.workspaceDir, this.settings.extraPaths);
|
|
249
249
|
for (const entry of additionalPaths) {
|
|
250
250
|
try {
|
|
251
|
-
const stat =
|
|
251
|
+
const stat = syncFs.lstatSync(entry);
|
|
252
252
|
if (stat.isSymbolicLink()) {
|
|
253
253
|
continue;
|
|
254
254
|
}
|
|
@@ -342,7 +342,7 @@ var MemoryManagerSyncOps = class {
|
|
|
342
342
|
}
|
|
343
343
|
let stat;
|
|
344
344
|
try {
|
|
345
|
-
stat = await fs
|
|
345
|
+
stat = await fs.stat(sessionFile);
|
|
346
346
|
} catch {
|
|
347
347
|
return null;
|
|
348
348
|
}
|
|
@@ -394,7 +394,7 @@ var MemoryManagerSyncOps = class {
|
|
|
394
394
|
}
|
|
395
395
|
let handle;
|
|
396
396
|
try {
|
|
397
|
-
handle = await fs
|
|
397
|
+
handle = await fs.open(absPath, "r");
|
|
398
398
|
} catch (err) {
|
|
399
399
|
if (isFileMissingError(err)) {
|
|
400
400
|
return 0;
|
|
@@ -8,9 +8,9 @@ import { evaluateMemoryRepairExecutorGate } from "./repair-executor-gate.js";
|
|
|
8
8
|
import { evaluateMemoryRepairExecutionLockAdmission } from "./repair-executor-lock-contract.js";
|
|
9
9
|
import "./index.js";
|
|
10
10
|
import { buildMemoryInventory, previewMemoryInventoryRepair } from "./inventory.js";
|
|
11
|
-
import
|
|
11
|
+
import syncFs from "node:fs";
|
|
12
12
|
import path from "node:path";
|
|
13
|
-
import fs
|
|
13
|
+
import fs from "node:fs/promises";
|
|
14
14
|
import crypto from "node:crypto";
|
|
15
15
|
|
|
16
16
|
//#region src/memory/repair-executor.ts
|
|
@@ -389,11 +389,11 @@ async function collectFsPathStates(auditPlan) {
|
|
|
389
389
|
}
|
|
390
390
|
async function inspectPath(pathname) {
|
|
391
391
|
try {
|
|
392
|
-
const stat = await fs
|
|
392
|
+
const stat = await fs.lstat(pathname);
|
|
393
393
|
return {
|
|
394
394
|
path: pathname,
|
|
395
395
|
kind: kindFromStats(stat),
|
|
396
|
-
...stat.isSymbolicLink() ? {} : { realPath: await fs
|
|
396
|
+
...stat.isSymbolicLink() ? {} : { realPath: await fs.realpath(pathname).catch(() => pathname) },
|
|
397
397
|
...stat.isFile() ? { linkCount: stat.nlink } : {}
|
|
398
398
|
};
|
|
399
399
|
} catch (err) {
|
|
@@ -413,11 +413,11 @@ async function inspectPath(pathname) {
|
|
|
413
413
|
}
|
|
414
414
|
async function inspectNode(pathname) {
|
|
415
415
|
try {
|
|
416
|
-
const stat = await fs
|
|
416
|
+
const stat = await fs.lstat(pathname);
|
|
417
417
|
return {
|
|
418
418
|
path: pathname,
|
|
419
419
|
kind: kindFromStats(stat),
|
|
420
|
-
...stat.isSymbolicLink() ? {} : { realPath: await fs
|
|
420
|
+
...stat.isSymbolicLink() ? {} : { realPath: await fs.realpath(pathname).catch(() => pathname) },
|
|
421
421
|
...stat.isFile() ? { linkCount: stat.nlink } : {}
|
|
422
422
|
};
|
|
423
423
|
} catch {
|
|
@@ -454,7 +454,7 @@ function kindFromStats(stat) {
|
|
|
454
454
|
async function backupTarget(entry) {
|
|
455
455
|
const beforeState = await inspectPath(entry.targetPath);
|
|
456
456
|
if (beforeState.kind === "file") {
|
|
457
|
-
await fs
|
|
457
|
+
await fs.copyFile(entry.targetPath, entry.snapshotPath, syncFs.constants.COPYFILE_EXCL);
|
|
458
458
|
return {
|
|
459
459
|
proposalId: entry.proposalId,
|
|
460
460
|
action: entry.action,
|
|
@@ -504,7 +504,7 @@ async function writeTarget(action, proposalId, targetPath) {
|
|
|
504
504
|
message: `target is ${state.kind}`
|
|
505
505
|
};
|
|
506
506
|
}
|
|
507
|
-
await fs
|
|
507
|
+
await fs.writeFile(targetPath, "", {
|
|
508
508
|
flag: "wx",
|
|
509
509
|
mode: 384
|
|
510
510
|
});
|
|
@@ -537,7 +537,7 @@ async function writeTarget(action, proposalId, targetPath) {
|
|
|
537
537
|
message: `target is ${state.kind}`
|
|
538
538
|
};
|
|
539
539
|
}
|
|
540
|
-
await fs
|
|
540
|
+
await fs.mkdir(targetPath, {
|
|
541
541
|
recursive: false,
|
|
542
542
|
mode: 448
|
|
543
543
|
});
|
|
@@ -583,12 +583,12 @@ async function rollbackSnapshots(snapshots, steps) {
|
|
|
583
583
|
try {
|
|
584
584
|
if (snapshot.before === "missing") {
|
|
585
585
|
if (snapshot.action === "create_directory") {
|
|
586
|
-
await fs
|
|
586
|
+
await fs.rmdir(snapshot.targetPath);
|
|
587
587
|
} else {
|
|
588
|
-
await fs
|
|
588
|
+
await fs.unlink(snapshot.targetPath);
|
|
589
589
|
}
|
|
590
590
|
} else if (snapshot.before === "file") {
|
|
591
|
-
await fs
|
|
591
|
+
await fs.copyFile(snapshot.snapshotPath, snapshot.targetPath);
|
|
592
592
|
}
|
|
593
593
|
steps.push({
|
|
594
594
|
proposalId: snapshot.proposalId,
|
|
@@ -621,7 +621,7 @@ async function rollbackSnapshots(snapshots, steps) {
|
|
|
621
621
|
async function readExistingLocks(stateDir) {
|
|
622
622
|
let entries;
|
|
623
623
|
try {
|
|
624
|
-
entries = await fs
|
|
624
|
+
entries = await fs.readdir(stateDir);
|
|
625
625
|
} catch {
|
|
626
626
|
return [];
|
|
627
627
|
}
|
|
@@ -631,7 +631,7 @@ async function readExistingLocks(stateDir) {
|
|
|
631
631
|
continue;
|
|
632
632
|
}
|
|
633
633
|
try {
|
|
634
|
-
const parsed = JSON.parse(await fs
|
|
634
|
+
const parsed = JSON.parse(await fs.readFile(path.join(stateDir, entry), "utf8"));
|
|
635
635
|
if (parsed?.kind === "doctor.memory.repair.execution.lock") {
|
|
636
636
|
locks.push(parsed);
|
|
637
637
|
}
|
|
@@ -642,17 +642,17 @@ async function readExistingLocks(stateDir) {
|
|
|
642
642
|
return locks;
|
|
643
643
|
}
|
|
644
644
|
async function finishLock(lockPath, record, status) {
|
|
645
|
-
await fs
|
|
645
|
+
await fs.writeFile(lockPath, `${JSON.stringify({
|
|
646
646
|
...record,
|
|
647
647
|
status,
|
|
648
648
|
finishedAt: new Date().toISOString()
|
|
649
649
|
}, null, 2)}\n`, { mode: 384 });
|
|
650
650
|
}
|
|
651
651
|
async function writeAuditRecord(pathname, payload) {
|
|
652
|
-
await fs
|
|
652
|
+
await fs.appendFile(pathname, `${JSON.stringify(payload)}\n`, { mode: 384 });
|
|
653
653
|
}
|
|
654
654
|
async function writeJsonFileExclusive(pathname, payload) {
|
|
655
|
-
await fs
|
|
655
|
+
await fs.writeFile(pathname, `${JSON.stringify(payload, null, 2)}\n`, {
|
|
656
656
|
flag: "wx",
|
|
657
657
|
mode: 384
|
|
658
658
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { sameFileIdentity } from "../infra/file-identity.js";
|
|
2
2
|
import { resolveSystemRunCommand } from "../infra/system-run-command.js";
|
|
3
|
-
import
|
|
3
|
+
import syncFs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/node-host/invoke-system-run-plan.ts
|
|
@@ -41,7 +41,7 @@ function pathComponentsFromRootSync(targetPath) {
|
|
|
41
41
|
}
|
|
42
42
|
function isWritableByCurrentProcessSync(candidate) {
|
|
43
43
|
try {
|
|
44
|
-
|
|
44
|
+
syncFs.accessSync(candidate, syncFs.constants.W_OK);
|
|
45
45
|
return true;
|
|
46
46
|
} catch {
|
|
47
47
|
return false;
|
|
@@ -50,7 +50,7 @@ function isWritableByCurrentProcessSync(candidate) {
|
|
|
50
50
|
function hasMutableSymlinkPathComponentSync(targetPath) {
|
|
51
51
|
for (const component of pathComponentsFromRootSync(targetPath)) {
|
|
52
52
|
try {
|
|
53
|
-
if (!
|
|
53
|
+
if (!syncFs.lstatSync(component).isSymbolicLink()) {
|
|
54
54
|
continue;
|
|
55
55
|
}
|
|
56
56
|
const parentDir = path.dirname(component);
|
|
@@ -79,10 +79,10 @@ function hardenApprovedExecutionPaths(params) {
|
|
|
79
79
|
let cwdReal;
|
|
80
80
|
let cwdRealStat;
|
|
81
81
|
try {
|
|
82
|
-
cwdLstat =
|
|
83
|
-
cwdStat =
|
|
84
|
-
cwdReal =
|
|
85
|
-
cwdRealStat =
|
|
82
|
+
cwdLstat = syncFs.lstatSync(requestedCwd);
|
|
83
|
+
cwdStat = syncFs.statSync(requestedCwd);
|
|
84
|
+
cwdReal = syncFs.realpathSync(requestedCwd);
|
|
85
|
+
cwdRealStat = syncFs.statSync(cwdReal);
|
|
86
86
|
} catch {
|
|
87
87
|
return {
|
|
88
88
|
ok: false,
|
|
@@ -134,7 +134,7 @@ function hardenApprovedExecutionPaths(params) {
|
|
|
134
134
|
const base = hardenedCwd ?? process.cwd();
|
|
135
135
|
const candidate = path.isAbsolute(rawExecutable) ? rawExecutable : path.resolve(base, rawExecutable);
|
|
136
136
|
try {
|
|
137
|
-
argv[0] =
|
|
137
|
+
argv[0] = syncFs.realpathSync(candidate);
|
|
138
138
|
} catch {
|
|
139
139
|
return {
|
|
140
140
|
ok: false,
|
package/dist/node-host/invoke.js
CHANGED
|
@@ -4,7 +4,7 @@ import { requestExecHostViaSocket } from "../infra/exec-host.js";
|
|
|
4
4
|
import { runBrowserProxyCommand } from "./invoke-browser.js";
|
|
5
5
|
import { buildSystemRunApprovalPlanV2 } from "./invoke-system-run-plan.js";
|
|
6
6
|
import { handleSystemRunInvoke } from "./invoke-system-run.js";
|
|
7
|
-
import
|
|
7
|
+
import syncFs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import { spawn } from "node:child_process";
|
|
10
10
|
|
|
@@ -154,7 +154,7 @@ function resolveExecutable(bin, env) {
|
|
|
154
154
|
for (const dir of resolveEnvPath(env)) {
|
|
155
155
|
for (const ext of extensions) {
|
|
156
156
|
const candidate = path.join(dir, bin + ext);
|
|
157
|
-
if (
|
|
157
|
+
if (syncFs.existsSync(candidate)) {
|
|
158
158
|
return candidate;
|
|
159
159
|
}
|
|
160
160
|
}
|
package/dist/node-host/runner.js
CHANGED
|
@@ -11,19 +11,19 @@ import { NODE_BROWSER_PROXY_COMMAND, NODE_EXEC_APPROVALS_COMMANDS, NODE_SYSTEM_R
|
|
|
11
11
|
import { ensureFasedAgentCliOnPath } from "../infra/path-env.js";
|
|
12
12
|
import { ensureNodeHostConfig, saveNodeHostConfig } from "./config.js";
|
|
13
13
|
import { buildNodeInvokeResultParams, coerceNodeInvokePayload, handleInvoke } from "./invoke.js";
|
|
14
|
-
import
|
|
14
|
+
import syncFs from "node:fs";
|
|
15
15
|
import path from "node:path";
|
|
16
16
|
|
|
17
17
|
//#region src/node-host/runner.ts
|
|
18
18
|
const DEFAULT_NODE_PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
|
|
19
19
|
function isExecutableFile(filePath) {
|
|
20
20
|
try {
|
|
21
|
-
const stat =
|
|
21
|
+
const stat = syncFs.statSync(filePath);
|
|
22
22
|
if (!stat.isFile()) {
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
if (process.platform !== "win32") {
|
|
26
|
-
|
|
26
|
+
syncFs.accessSync(filePath, syncFs.constants.X_OK);
|
|
27
27
|
}
|
|
28
28
|
return true;
|
|
29
29
|
} catch {
|