@fased/fased 0.1.49 → 0.1.52
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/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/bash-tools.shared.js +2 -2
- package/dist/agents/cli-credentials.js +4 -4
- package/dist/agents/current-model-catalog.js +45 -0
- 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 +28 -3
- 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/provider-id.js +1 -1
- 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/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/post-compaction-audit.js +3 -3
- package/dist/auto-reply/reply/post-compaction-context.js +3 -3
- package/dist/auto-reply/reply/session.js +3 -3
- package/dist/auto-reply/skill-commands.js +3 -3
- package/dist/auto-reply/status.js +6 -6
- package/dist/brand.js +1 -1
- package/dist/browser/chrome.executables.js +3 -3
- package/dist/browser/chrome.js +3 -3
- package/dist/browser/chrome.profile-decoration.js +6 -6
- 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-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 +50 -0
- 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/secrets-cli.js +3 -3
- package/dist/cli/update-cli/update-command.js +120 -0
- package/dist/cli/windows-argv.js +2 -2
- package/dist/commands/dashboard-link.js +3 -3
- 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/managed-up.js +2 -2
- package/dist/commands/onboard-auth.credentials.js +3 -3
- package/dist/commands/onboarding/plugin-install.js +2 -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/control-ui/assets/{app-6iCry787.js → app-Bf5WlHKE.js} +1743 -1738
- package/dist/control-ui/assets/{chat-model-ref-C6CFR-GR.js → chat-model-ref-NT82zapt.js} +2 -2
- package/dist/control-ui/assets/{index-CNFgocD9.js → index-DWM6gKjy.js} +3 -3
- package/dist/control-ui/assets/{providers-WTJ1kMKy.js → providers-rQMhp1fb.js} +2 -11
- package/dist/control-ui/index.html +1 -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/thread-bindings.state.js +2 -2
- package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
- 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/probe-payload.js +14 -0
- package/dist/gateway/probe.js +8 -4
- package/dist/gateway/server-discovery.js +2 -2
- package/dist/gateway/server-http-lazy.js +2 -4
- package/dist/gateway/server-http.js +6 -8
- package/dist/gateway/server-methods/chat.js +3 -3
- package/dist/gateway/server-methods/models.js +3 -2
- package/dist/gateway/server-methods/sessions.js +6 -6
- package/dist/gateway/server-methods/usage.js +2 -2
- 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/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-precheck.js +1 -1
- 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/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-B5fY9hZy.js → accounts-BZrfqJmO.js} +1 -1
- package/dist/plugin-sdk/{actions-D-9SsSEy.js → actions-7_zTh8zC.js} +2 -2
- package/dist/plugin-sdk/{active-listener-BH7rDR47.js → active-listener-D8NVRD8J.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-4faayz5S.js → audio-preflight-D6IPconF.js} +26 -26
- package/dist/plugin-sdk/{audit-BQfsboqd.js → audit-2iRlVyQF.js} +1 -1
- package/dist/plugin-sdk/{channel-access-CDZ-cJPq.js → channel-access-BCf1rJsn.js} +1 -1
- package/dist/plugin-sdk/{channel-access-configure-DlpuhlH6.js → channel-access-configure-B-Z51Qsd.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
- package/dist/plugin-sdk/channel-plugin-common.js +4 -4
- package/dist/plugin-sdk/{chunk-CZuCyS7k.js → chunk-BREC9ijl.js} +1 -1
- package/dist/plugin-sdk/{chunk-items-Cyc4Kl6A.js → chunk-items-CTp30xzl.js} +1 -1
- package/dist/plugin-sdk/command-status.js +26 -26
- package/dist/plugin-sdk/{commands-registry-COIbIjGO.js → commands-registry-D3-bFLsz.js} +2 -2
- package/dist/plugin-sdk/{common-LMHJe8KW.js → common-BlqMqEqn.js} +1 -1
- package/dist/plugin-sdk/{config-ZMbTT0kM.js → config-442EDe7Z.js} +81 -13
- package/dist/plugin-sdk/{config-schema-Cku0a8Tm.js → config-schema-DAyzv2C6.js} +2001 -449
- package/dist/plugin-sdk/device-pair.d.ts +1 -1
- package/dist/plugin-sdk/discord.d.ts +4 -4
- package/dist/plugin-sdk/discord.js +19 -19
- package/dist/plugin-sdk/{handle-action-C8ZZfORB.js → handle-action-pNaP87Dr.js} +13 -13
- package/dist/plugin-sdk/{helpers-vfzH9tBn.js → helpers-B994qqVW.js} +1 -1
- package/dist/plugin-sdk/{image-ops-BnOmQA5d.js → image-ops-Doq8nZQw.js} +1 -1
- package/dist/plugin-sdk/index.d.ts +18 -18
- package/dist/plugin-sdk/index.js +28 -28
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{login-C73Wpiw8.js → login-CK2zTIJA.js} +3 -3
- package/dist/plugin-sdk/{login-qr-CRKHA7i8.js → login-qr-u8Mn1mCp.js} +3 -3
- package/dist/plugin-sdk/{manager-CHYhpKHn.js → manager-CeJNf2bH.js} +2 -2
- package/dist/plugin-sdk/{markdown-tables-B84dPWNG.js → markdown-tables-DeZztrY6.js} +1 -1
- package/dist/plugin-sdk/{media-4daDcNER.js → media-CgUAEfhs.js} +2 -2
- package/dist/plugin-sdk/{monitor-DJhU-J5u.js → monitor-CY1W4VTW.js} +31 -31
- package/dist/plugin-sdk/{monitor-CChc6bQV.js → monitor-CkDlxeW5.js} +30 -30
- package/dist/plugin-sdk/{openresponses-http-Dvyczr35.js → openresponses-http-Cu7NLyPf.js} +26 -26
- package/dist/plugin-sdk/{optional-runtime-dependency-BFpqaCzp.js → optional-runtime-dependency-D0BdXz1C.js} +1 -1
- package/dist/plugin-sdk/{outbound-C1xBxfNb.js → outbound-DXGuFrdx.js} +6 -6
- package/dist/plugin-sdk/{outbound-attachment-DvcxPP7b.js → outbound-attachment-oxhGO33g.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-DpYT614h.js → pairing-message-C29ixrvn.js} +1 -1
- package/dist/plugin-sdk/{pairing-message-DWXHX-jt.d.ts → pairing-message-DfIyssV_.d.ts} +1 -1
- package/dist/plugin-sdk/{pairing-store-CprpGco9.js → pairing-store-1kcsOWRs.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-BQ6fFRBA.js → pi-model-discovery-l-xqaEd0.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-BF_89lVj.js → pi-model-discovery-runtime-CibV8F8G.js} +2 -2
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
- package/dist/plugin-sdk/{pw-ai-xgpIbHOr.js → pw-ai-9qEBW5-k.js} +3 -3
- package/dist/plugin-sdk/{replies-AzJ6U6Ut.js → replies-BX3L8fX7.js} +2 -2
- package/dist/plugin-sdk/{resolve-outbound-target-COo_TR7B.js → resolve-outbound-target-D0AK10E7.js} +1 -1
- package/dist/plugin-sdk/{resolve-route-CZFzHOIe.js → resolve-route-UO6XLYH3.js} +1 -1
- package/dist/plugin-sdk/{retry-policy-BSdqqXsI.js → retry-policy-C5N8JiHL.js} +1 -1
- package/dist/plugin-sdk/{runtime-CeoGffDi.js → runtime-Dnzwux3G.js} +3 -3
- package/dist/plugin-sdk/{runtime-dependency-Cvbs0GXf.js → runtime-dependency-BDDpVKBO.js} +2 -2
- package/dist/plugin-sdk/sat-runtime.d.ts +2 -2
- package/dist/plugin-sdk/sat-runtime.js +5 -5
- package/dist/plugin-sdk/{send-B_-UtG9F.js → send-B4XLsTL0.js} +6 -6
- package/dist/plugin-sdk/{send-DCxAv7bV.js → send-D5rgCP1r.js} +6 -6
- package/dist/plugin-sdk/{send-CGE7OgsA.js → send-DGEgo_6f.js} +5 -5
- package/dist/plugin-sdk/{send-DVpCBUuL.js → send-DcsYRH2f.js} +7 -7
- package/dist/plugin-sdk/{send-C0Q1u7N1.js → send-bcKv8F5E.js} +8 -8
- package/dist/plugin-sdk/{session-ETYBbhLn.js → session-BoGNOlwv.js} +2 -2
- package/dist/plugin-sdk/{skill-commands-BQL6TBIv.js → skill-commands-Be8s4TGQ.js} +2 -2
- package/dist/plugin-sdk/{slack-actions-CBPZkfTS.js → slack-actions-TNnAXiUx.js} +11 -11
- package/dist/plugin-sdk/{slack-Bs_4uivd.js → slack-papUjf_h.js} +38 -38
- package/dist/plugin-sdk/slack.d.ts +4 -4
- package/dist/plugin-sdk/slack.js +9 -9
- package/dist/plugin-sdk/{sticker-cache-BBZMp-oQ.js → sticker-cache-CPNu_LEe.js} +3 -3
- package/dist/plugin-sdk/{tables-B-G7Bb0l.js → tables-Ch4js2qy.js} +1 -1
- package/dist/plugin-sdk/{targets-D8UaoWHd.js → targets-BGfRUJPE.js} +1 -1
- package/dist/plugin-sdk/{telegram-actions-BARLx9zc.js → telegram-actions-BO-giM1s.js} +29 -29
- package/dist/plugin-sdk/telegram.d.ts +4 -4
- package/dist/plugin-sdk/telegram.js +8 -8
- package/dist/plugin-sdk/{thread-bindings.lifecycle-DwYKCLLq.js → thread-bindings.lifecycle-_uQ2EF17.js} +3 -3
- package/dist/plugin-sdk/{thread-bindings.state-BNWfHA0f.js → thread-bindings.state-DUg0s_1X.js} +2 -2
- package/dist/plugin-sdk/{tmp-fased-dir-Be1wBhVz.d.ts → tmp-fased-dir-Bcp1DTSV.d.ts} +1 -1
- package/dist/plugin-sdk/{types-CJGVZX6j.d.ts → types-BTkcYtOt.d.ts} +2 -2
- package/dist/plugin-sdk/{types-CXLEOrJX.d.ts → types-CMoLtViq.d.ts} +1 -1
- package/dist/plugin-sdk/{wallet-status-Coekn_SJ.js → wallet-status-M6aK3abH.js} +3 -3
- package/dist/plugin-sdk/{web-BwolzGVF.js → web-QpstZjDX.js} +31 -31
- package/dist/plugin-sdk/{whatsapp-actions-CSvf6eev.js → whatsapp-actions-CID_tqAX.js} +13 -13
- package/dist/plugin-sdk/{whatsapp-heartbeat-Bw7OtTe6.js → whatsapp-heartbeat-Bk-aZVMa.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +9 -9
- package/dist/plugin-sdk/whatsapp.js +12 -12
- package/dist/plugin-sdk/{wsl-By1Mc-oS.js → wsl-C_STtED7.js} +3 -3
- package/dist/plugin-sdk/{zod-schema.providers-core-TI6sL-6B.d.ts → zod-schema.providers-core-CIzCjXH9.d.ts} +75 -75
- 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/status-cache.js +10 -10
- package/dist/plugins/update.js +3 -3
- package/dist/plugins/web-search-install-catalog.js +3 -3
- package/dist/providers/refresh.js +1 -1
- package/dist/providers/refreshed-model-capabilities.js +1935 -406
- package/dist/providers/registry.js +15 -12
- 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/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/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 +18 -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 +18 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +18 -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 +18 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +18 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +18 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +18 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/scripts/start-managed.sh +14 -0
package/dist/acp/client.js
CHANGED
|
@@ -2,7 +2,7 @@ import { isKnownCoreToolId } from "../agents/tool-catalog.js";
|
|
|
2
2
|
import { DANGEROUS_ACP_TOOLS } from "../security/dangerous-tools.js";
|
|
3
3
|
import { ensureFasedAgentCliOnPath } from "../infra/path-env.js";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import
|
|
5
|
+
import fs from "node:fs";
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { spawn } from "node:child_process";
|
|
@@ -269,7 +269,7 @@ function resolveSelfEntryPath() {
|
|
|
269
269
|
try {
|
|
270
270
|
const here = fileURLToPath(import.meta.url);
|
|
271
271
|
const candidate = path.resolve(path.dirname(here), "..", "entry.js");
|
|
272
|
-
if (
|
|
272
|
+
if (fs.existsSync(candidate)) {
|
|
273
273
|
return candidate;
|
|
274
274
|
}
|
|
275
275
|
} catch {}
|
package/dist/acp/secret-file.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveUserPath } from "../utils.js";
|
|
2
|
-
import
|
|
2
|
+
import fs from "node:fs";
|
|
3
3
|
|
|
4
4
|
//#region src/acp/secret-file.ts
|
|
5
5
|
function readSecretFromFile(filePath, label) {
|
|
@@ -9,7 +9,7 @@ function readSecretFromFile(filePath, label) {
|
|
|
9
9
|
}
|
|
10
10
|
let raw = "";
|
|
11
11
|
try {
|
|
12
|
-
raw =
|
|
12
|
+
raw = fs.readFileSync(resolvedPath, "utf8");
|
|
13
13
|
} catch (err) {
|
|
14
14
|
throw new Error(`Failed to read ${label} file at ${resolvedPath}: ${String(err)}`, { cause: err });
|
|
15
15
|
}
|
|
@@ -6,7 +6,7 @@ import { parseAgentSessionKey } from "../sessions/session-key-utils.js";
|
|
|
6
6
|
import { DEFAULT_AGENT_ID, normalizeAgentId, resolveAgentIdFromSessionKey } from "../routing/session-key.js";
|
|
7
7
|
import { resolveEffectiveAgentSkillFilter } from "./skills/agent-filter.js";
|
|
8
8
|
import { resolveDefaultAgentWorkspaceDir } from "./workspace.js";
|
|
9
|
-
import
|
|
9
|
+
import fs from "node:fs";
|
|
10
10
|
import path from "node:path";
|
|
11
11
|
|
|
12
12
|
//#region src/agents/agent-scope.ts
|
|
@@ -245,7 +245,7 @@ function normalizePathForComparison(input) {
|
|
|
245
245
|
const resolved = path.resolve(stripNullBytes(resolveUserPath(input)));
|
|
246
246
|
let normalized = resolved;
|
|
247
247
|
try {
|
|
248
|
-
normalized =
|
|
248
|
+
normalized = fs.realpathSync.native(resolved);
|
|
249
249
|
} catch {}
|
|
250
250
|
if (process.platform === "win32") {
|
|
251
251
|
return normalized.toLowerCase();
|
|
@@ -3,9 +3,9 @@ import { PATH_ALIAS_POLICIES } from "../infra/path-alias-guards.js";
|
|
|
3
3
|
import { writeFileWithinRoot } from "../infra/fs-safe.js";
|
|
4
4
|
import { applyUpdateHunk } from "./apply-patch-update.js";
|
|
5
5
|
import { assertSandboxPath, resolveSandboxInputPath } from "./sandbox-paths.js";
|
|
6
|
-
import
|
|
6
|
+
import fs from "node:fs";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import fs from "node:fs/promises";
|
|
8
|
+
import fs$1 from "node:fs/promises";
|
|
9
9
|
import { Type } from "@sinclair/typebox";
|
|
10
10
|
|
|
11
11
|
//#region src/agents/apply-patch.ts
|
|
@@ -159,7 +159,7 @@ function resolvePatchFileOps(options) {
|
|
|
159
159
|
return {
|
|
160
160
|
readFile: async (filePath) => {
|
|
161
161
|
if (!workspaceOnly) {
|
|
162
|
-
return await fs.readFile(filePath, "utf8");
|
|
162
|
+
return await fs$1.readFile(filePath, "utf8");
|
|
163
163
|
}
|
|
164
164
|
const opened = await openBoundaryFile({
|
|
165
165
|
absolutePath: filePath,
|
|
@@ -168,14 +168,14 @@ function resolvePatchFileOps(options) {
|
|
|
168
168
|
});
|
|
169
169
|
assertBoundaryRead(opened, filePath);
|
|
170
170
|
try {
|
|
171
|
-
return
|
|
171
|
+
return fs.readFileSync(opened.fd, "utf8");
|
|
172
172
|
} finally {
|
|
173
|
-
|
|
173
|
+
fs.closeSync(opened.fd);
|
|
174
174
|
}
|
|
175
175
|
},
|
|
176
176
|
writeFile: async (filePath, content) => {
|
|
177
177
|
if (!workspaceOnly) {
|
|
178
|
-
await fs.writeFile(filePath, content, "utf8");
|
|
178
|
+
await fs$1.writeFile(filePath, content, "utf8");
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
181
|
const relative = toRelativeWorkspacePath(options.cwd, filePath);
|
|
@@ -186,8 +186,8 @@ function resolvePatchFileOps(options) {
|
|
|
186
186
|
encoding: "utf8"
|
|
187
187
|
});
|
|
188
188
|
},
|
|
189
|
-
remove: (filePath) => fs.rm(filePath),
|
|
190
|
-
mkdirp: (dir) => fs.mkdir(dir, { recursive: true }).then(() => {})
|
|
189
|
+
remove: (filePath) => fs$1.rm(filePath),
|
|
190
|
+
mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
193
|
async function ensureDir(filePath, ops) {
|
|
@@ -2,7 +2,7 @@ import { resolveUserPath } from "../../utils.js";
|
|
|
2
2
|
import { saveJsonFile } from "../../infra/json-file.js";
|
|
3
3
|
import { AUTH_PROFILE_FILENAME, AUTH_STORE_VERSION, LEGACY_AUTH_FILENAME } from "./constants.js";
|
|
4
4
|
import { resolveFasedAgentAgentDir } from "../agent-paths.js";
|
|
5
|
-
import
|
|
5
|
+
import fs from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|
|
8
8
|
//#region src/agents/auth-profiles/paths.ts
|
|
@@ -19,7 +19,7 @@ function resolveAuthStorePathForDisplay(agentDir) {
|
|
|
19
19
|
return pathname.startsWith("~") ? pathname : resolveUserPath(pathname);
|
|
20
20
|
}
|
|
21
21
|
function ensureAuthStoreFile(pathname) {
|
|
22
|
-
if (
|
|
22
|
+
if (fs.existsSync(pathname)) {
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
25
|
const payload = {
|
|
@@ -5,7 +5,7 @@ import { withFileLock } from "../../plugin-sdk/file-lock.js";
|
|
|
5
5
|
import "../../infra/file-lock.js";
|
|
6
6
|
import { syncExternalCliCredentials } from "./external-cli-sync.js";
|
|
7
7
|
import { ensureAuthStoreFile, resolveAuthStorePath, resolveLegacyAuthStorePath } from "./paths.js";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs";
|
|
9
9
|
|
|
10
10
|
//#region src/agents/auth-profiles/store.ts
|
|
11
11
|
const AUTH_PROFILE_TYPES = new Set([
|
|
@@ -361,7 +361,7 @@ function loadAuthProfileStoreForAgent(agentDir, options) {
|
|
|
361
361
|
if (shouldWrite && legacy !== null) {
|
|
362
362
|
const legacyPath = resolveLegacyAuthStorePath(agentDir);
|
|
363
363
|
try {
|
|
364
|
-
|
|
364
|
+
fs.unlinkSync(legacyPath);
|
|
365
365
|
} catch (err) {
|
|
366
366
|
if (err?.code !== "ENOENT") {
|
|
367
367
|
log.warn("failed to delete legacy auth.json after migration", {
|
|
@@ -3,7 +3,7 @@ import { assertSandboxPath } from "./sandbox-paths.js";
|
|
|
3
3
|
import { existsSync, statSync } from "node:fs";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import fs from "node:fs/promises";
|
|
6
|
+
import fs$1 from "node:fs/promises";
|
|
7
7
|
|
|
8
8
|
//#region src/agents/bash-tools.shared.ts
|
|
9
9
|
const CHUNK_LIMIT = 8 * 1024;
|
|
@@ -67,7 +67,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
67
67
|
cwd: process.cwd(),
|
|
68
68
|
root: params.sandbox.workspaceDir
|
|
69
69
|
});
|
|
70
|
-
const stats = await fs.stat(resolved.resolved);
|
|
70
|
+
const stats = await fs$1.stat(resolved.resolved);
|
|
71
71
|
if (!stats.isDirectory()) {
|
|
72
72
|
throw new Error("workdir is not a directory");
|
|
73
73
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveUserPath } from "../utils.js";
|
|
2
2
|
import { createSubsystemLogger } from "../logging/subsystem.js";
|
|
3
3
|
import { loadJsonFile, saveJsonFile } from "../infra/json-file.js";
|
|
4
|
-
import
|
|
4
|
+
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { execFileSync, execSync } from "node:child_process";
|
|
7
7
|
import { createHash } from "node:crypto";
|
|
@@ -61,7 +61,7 @@ function resolveCodexHomePath() {
|
|
|
61
61
|
const configured = process.env.CODEX_HOME;
|
|
62
62
|
const home = configured ? resolveUserPath(configured) : resolveUserPath("~/.codex");
|
|
63
63
|
try {
|
|
64
|
-
return
|
|
64
|
+
return fs.realpathSync.native(home);
|
|
65
65
|
} catch {
|
|
66
66
|
return home;
|
|
67
67
|
}
|
|
@@ -264,7 +264,7 @@ function writeClaudeCliKeychainCredentials(newCredentials, options) {
|
|
|
264
264
|
}
|
|
265
265
|
function writeClaudeCliFileCredentials(newCredentials, options) {
|
|
266
266
|
const credPath = resolveClaudeCliCredentialsPath(options?.homeDir);
|
|
267
|
-
if (!
|
|
267
|
+
if (!fs.existsSync(credPath)) {
|
|
268
268
|
return false;
|
|
269
269
|
}
|
|
270
270
|
try {
|
|
@@ -331,7 +331,7 @@ function readCodexCliCredentials(options) {
|
|
|
331
331
|
}
|
|
332
332
|
let expires;
|
|
333
333
|
try {
|
|
334
|
-
const stat =
|
|
334
|
+
const stat = fs.statSync(authPath);
|
|
335
335
|
expires = stat.mtimeMs + 60 * 60 * 1e3;
|
|
336
336
|
} catch {
|
|
337
337
|
expires = Date.now() + 60 * 60 * 1e3;
|
|
@@ -40,6 +40,51 @@ function model(params) {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
const OPENAI_MODELS = [
|
|
43
|
+
model({
|
|
44
|
+
id: "gpt-5.6",
|
|
45
|
+
name: "GPT-5.6 Sol",
|
|
46
|
+
reasoning: true,
|
|
47
|
+
input: ["text", "image"],
|
|
48
|
+
contextWindow: 105e4,
|
|
49
|
+
maxTokens: 128e3,
|
|
50
|
+
api: "openai-responses",
|
|
51
|
+
cost: {
|
|
52
|
+
input: 5,
|
|
53
|
+
output: 30,
|
|
54
|
+
cacheRead: .5,
|
|
55
|
+
cacheWrite: 6.25
|
|
56
|
+
}
|
|
57
|
+
}),
|
|
58
|
+
model({
|
|
59
|
+
id: "gpt-5.6-terra",
|
|
60
|
+
name: "GPT-5.6 Terra",
|
|
61
|
+
reasoning: true,
|
|
62
|
+
input: ["text", "image"],
|
|
63
|
+
contextWindow: 105e4,
|
|
64
|
+
maxTokens: 128e3,
|
|
65
|
+
api: "openai-responses",
|
|
66
|
+
cost: {
|
|
67
|
+
input: 2.5,
|
|
68
|
+
output: 15,
|
|
69
|
+
cacheRead: .25,
|
|
70
|
+
cacheWrite: 3.125
|
|
71
|
+
}
|
|
72
|
+
}),
|
|
73
|
+
model({
|
|
74
|
+
id: "gpt-5.6-luna",
|
|
75
|
+
name: "GPT-5.6 Luna",
|
|
76
|
+
reasoning: true,
|
|
77
|
+
input: ["text", "image"],
|
|
78
|
+
contextWindow: 105e4,
|
|
79
|
+
maxTokens: 128e3,
|
|
80
|
+
api: "openai-responses",
|
|
81
|
+
cost: {
|
|
82
|
+
input: 1,
|
|
83
|
+
output: 6,
|
|
84
|
+
cacheRead: .1,
|
|
85
|
+
cacheWrite: 1.25
|
|
86
|
+
}
|
|
87
|
+
}),
|
|
43
88
|
model({
|
|
44
89
|
id: "gpt-5.5",
|
|
45
90
|
name: "GPT-5.5",
|
package/dist/agents/docs-path.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveFasedAgentPackageRoot } from "../infra/fased-root.js";
|
|
2
|
-
import
|
|
2
|
+
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
5
|
//#region src/agents/docs-path.ts
|
|
@@ -7,7 +7,7 @@ async function resolveFasedAgentDocsPath(params) {
|
|
|
7
7
|
const workspaceDir = params.workspaceDir?.trim();
|
|
8
8
|
if (workspaceDir) {
|
|
9
9
|
const workspaceDocs = path.join(workspaceDir, "docs");
|
|
10
|
-
if (
|
|
10
|
+
if (fs.existsSync(workspaceDocs)) {
|
|
11
11
|
return workspaceDocs;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -20,7 +20,7 @@ async function resolveFasedAgentDocsPath(params) {
|
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
22
|
const packageDocs = path.join(packageRoot, "docs");
|
|
23
|
-
return
|
|
23
|
+
return fs.existsSync(packageDocs) ? packageDocs : null;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { STATE_DIR } from "../config/paths.js";
|
|
2
2
|
import { isRecord, resolveUserPath } from "../utils.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/agents/embedded-pi-mcp.ts
|
|
@@ -66,10 +66,10 @@ function readBundleMcpFile(params) {
|
|
|
66
66
|
if (relative.startsWith("..") || path.isAbsolute(relative)) {
|
|
67
67
|
return {};
|
|
68
68
|
}
|
|
69
|
-
if (!
|
|
69
|
+
if (!fs.existsSync(filePath)) {
|
|
70
70
|
return {};
|
|
71
71
|
}
|
|
72
|
-
const raw = JSON.parse(
|
|
72
|
+
const raw = JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
73
73
|
const servers = extractMcpServerMap(raw);
|
|
74
74
|
const baseDir = path.dirname(filePath);
|
|
75
75
|
return Object.fromEntries(Object.entries(servers).map(([serverName, server]) => [serverName, absolutizeBundleMcpServer({
|
|
@@ -99,7 +99,7 @@ function loadEnabledBundleMcpConfig(params) {
|
|
|
99
99
|
cfg: params.cfg,
|
|
100
100
|
pluginId
|
|
101
101
|
})) {
|
|
102
|
-
if (!
|
|
102
|
+
if (!fs.existsSync(rootDir)) {
|
|
103
103
|
continue;
|
|
104
104
|
}
|
|
105
105
|
for (const fileName of BUNDLE_MCP_FILENAMES) {
|
|
@@ -3,7 +3,7 @@ import { resolveAgentWorkspaceDir } from "./agent-scope.js";
|
|
|
3
3
|
import { AVATAR_MAX_BYTES, isAvatarDataUrl, isAvatarHttpUrl, isPathWithinRoot, isSupportedLocalAvatarExtension } from "../shared/avatar-policy.js";
|
|
4
4
|
import { resolveAgentIdentity } from "./identity.js";
|
|
5
5
|
import { loadAgentIdentityFromWorkspace } from "./identity-file.js";
|
|
6
|
-
import
|
|
6
|
+
import fs from "node:fs";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
|
|
9
9
|
//#region src/agents/identity-avatar.ts
|
|
@@ -28,7 +28,7 @@ function resolveAvatarSource(cfg, agentId, opts) {
|
|
|
28
28
|
}
|
|
29
29
|
function resolveExistingPath(value) {
|
|
30
30
|
try {
|
|
31
|
-
return
|
|
31
|
+
return fs.realpathSync(value);
|
|
32
32
|
} catch {
|
|
33
33
|
return path.resolve(value);
|
|
34
34
|
}
|
|
@@ -51,7 +51,7 @@ function resolveLocalAvatarPath(params) {
|
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
try {
|
|
54
|
-
const stat =
|
|
54
|
+
const stat = fs.statSync(realPath);
|
|
55
55
|
if (!stat.isFile()) {
|
|
56
56
|
return {
|
|
57
57
|
ok: false,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_IDENTITY_FILENAME } from "./workspace.js";
|
|
2
|
-
import
|
|
2
|
+
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
5
|
//#region src/agents/identity-file.ts
|
|
@@ -67,7 +67,7 @@ function identityHasValues(identity) {
|
|
|
67
67
|
}
|
|
68
68
|
function loadIdentityFromFile(identityPath) {
|
|
69
69
|
try {
|
|
70
|
-
const content =
|
|
70
|
+
const content = fs.readFileSync(identityPath, "utf-8");
|
|
71
71
|
const parsed = parseIdentityMarkdown(content);
|
|
72
72
|
if (!identityHasValues(parsed)) {
|
|
73
73
|
return null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isOpenAISignInRuntimeModelSupported } from "../providers/registry.js";
|
|
1
|
+
import { isOpenAISignInRuntimeModelSupported, isStandardProviderCatalogEntry, listProviderBrandManifests } from "../providers/registry.js";
|
|
2
2
|
import { MODEL_APIS } from "../config/types.models.js";
|
|
3
3
|
import { buildModelCatalogMergeKey, mergeModelCatalogRowsByAuthority, normalizeModelCatalogModelId, normalizeModelCatalogProviderId, normalizeProviderCatalogRows } from "./model-catalog-normalized.js";
|
|
4
4
|
import { CURRENT_MODEL_PROVIDER_CATALOG, listCurrentModelCatalogRows } from "./current-model-catalog.js";
|
|
@@ -86,11 +86,33 @@ function runtimeCatalogRows(params) {
|
|
|
86
86
|
}
|
|
87
87
|
return rows;
|
|
88
88
|
}
|
|
89
|
+
function manifestCatalogRows() {
|
|
90
|
+
return listProviderBrandManifests().flatMap((manifest) => manifest.models.recommended.flatMap((ref) => {
|
|
91
|
+
const slash = ref.indexOf("/");
|
|
92
|
+
if (slash <= 0 || slash === ref.length - 1) {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
const provider = normalizeModelCatalogProviderId(ref.slice(0, slash));
|
|
96
|
+
const id = normalizeModelCatalogModelId(ref.slice(slash + 1));
|
|
97
|
+
if (!provider || !id) {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
return [{
|
|
101
|
+
id,
|
|
102
|
+
name: id,
|
|
103
|
+
provider,
|
|
104
|
+
mergeKey: buildModelCatalogMergeKey(provider, id),
|
|
105
|
+
source: "manifest",
|
|
106
|
+
status: "stable",
|
|
107
|
+
input: ["text"]
|
|
108
|
+
}];
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
89
111
|
function providerConfigForRow(cfg, row) {
|
|
90
112
|
return cfg.models?.providers?.[row.provider] ?? CURRENT_MODEL_PROVIDER_CATALOG[row.provider];
|
|
91
113
|
}
|
|
92
114
|
function buildFasedModelCatalogRows(params) {
|
|
93
|
-
|
|
115
|
+
const discoveredRows = mergeModelCatalogRowsByAuthority([
|
|
94
116
|
...listCurrentModelCatalogRows(),
|
|
95
117
|
...providerPluginCatalogRows(params.providerPluginProviders),
|
|
96
118
|
...runtimeCatalogRows({
|
|
@@ -99,6 +121,9 @@ function buildFasedModelCatalogRows(params) {
|
|
|
99
121
|
}),
|
|
100
122
|
...configuredProviderCatalogRows(params.config)
|
|
101
123
|
]);
|
|
124
|
+
const discoveredKeys = new Set(discoveredRows.map((row) => row.mergeKey));
|
|
125
|
+
const missingManifestRows = manifestCatalogRows().filter((row) => !discoveredKeys.has(row.mergeKey));
|
|
126
|
+
return mergeModelCatalogRowsByAuthority([...discoveredRows, ...missingManifestRows]);
|
|
102
127
|
}
|
|
103
128
|
function buildFasedModelCatalogEntries(params) {
|
|
104
129
|
return buildFasedModelCatalogRows({
|
|
@@ -126,7 +151,7 @@ function buildFasedModelCatalogEntries(params) {
|
|
|
126
151
|
model,
|
|
127
152
|
cfg: params.config,
|
|
128
153
|
providerConfig,
|
|
129
|
-
recommended: row
|
|
154
|
+
recommended: isStandardProviderCatalogEntry(row)
|
|
130
155
|
}) } : {}
|
|
131
156
|
};
|
|
132
157
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths.js";
|
|
2
2
|
import { isTruthyEnvValue } from "../infra/env.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/agents/pi-embedded-subscribe.raw-stream.ts
|
|
@@ -14,11 +14,11 @@ function appendRawStream(payload) {
|
|
|
14
14
|
if (!rawStreamReady) {
|
|
15
15
|
rawStreamReady = true;
|
|
16
16
|
try {
|
|
17
|
-
|
|
17
|
+
fs.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
|
|
18
18
|
} catch {}
|
|
19
19
|
}
|
|
20
20
|
try {
|
|
21
|
-
void
|
|
21
|
+
void fs.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
|
|
22
22
|
} catch {}
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -3,7 +3,7 @@ import { getCompactionSafeguardRuntime } from "./compaction-safeguard-runtime.js
|
|
|
3
3
|
import { extractSections } from "../../auto-reply/reply/post-compaction-context.js";
|
|
4
4
|
import { BASE_CHUNK_RATIO, MIN_CHUNK_RATIO, SAFETY_MARGIN, SUMMARIZATION_OVERHEAD_TOKENS, computeAdaptiveChunkRatio, estimateMessagesTokens, isOversizedForSummary, pruneHistoryForContextShare, resolveContextWindowTokens, summarizeInStages } from "../compaction.js";
|
|
5
5
|
import { collectTextContentBlocks } from "../content-blocks.js";
|
|
6
|
-
import
|
|
6
|
+
import fs from "node:fs";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
|
|
9
9
|
//#region src/agents/pi-extensions/compaction-safeguard.ts
|
|
@@ -122,10 +122,10 @@ async function readWorkspaceContextForSummary() {
|
|
|
122
122
|
const workspaceDir = process.cwd();
|
|
123
123
|
const agentsPath = path.join(workspaceDir, "AGENTS.md");
|
|
124
124
|
try {
|
|
125
|
-
if (!
|
|
125
|
+
if (!fs.existsSync(agentsPath)) {
|
|
126
126
|
return "";
|
|
127
127
|
}
|
|
128
|
-
const content = await
|
|
128
|
+
const content = await fs.promises.readFile(agentsPath, "utf-8");
|
|
129
129
|
const sections = extractSections(content, ["Session Startup", "Red Lines"]);
|
|
130
130
|
if (sections.length === 0) {
|
|
131
131
|
return "";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ensureAuthProfileStore } from "./auth-profiles/store.js";
|
|
2
2
|
import "./auth-profiles.js";
|
|
3
3
|
import { resolvePiCredentialMapFromStore } from "./pi-auth-credentials.js";
|
|
4
|
-
import
|
|
4
|
+
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import * as PiCodingAgent from "@mariozechner/pi-coding-agent";
|
|
7
7
|
|
|
@@ -25,12 +25,12 @@ function scrubLegacyStaticAuthJsonEntries(pathname) {
|
|
|
25
25
|
if (process.env.FASED_AUTH_STORE_READONLY === "1") {
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
|
-
if (!
|
|
28
|
+
if (!fs.existsSync(pathname)) {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
let parsed;
|
|
32
32
|
try {
|
|
33
|
-
parsed = JSON.parse(
|
|
33
|
+
parsed = JSON.parse(fs.readFileSync(pathname, "utf8"));
|
|
34
34
|
} catch {
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
@@ -52,11 +52,11 @@ function scrubLegacyStaticAuthJsonEntries(pathname) {
|
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
54
|
if (Object.keys(parsed).length === 0) {
|
|
55
|
-
|
|
55
|
+
fs.rmSync(pathname, { force: true });
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
fs.writeFileSync(pathname, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
|
|
59
|
+
fs.chmodSync(pathname, 384);
|
|
60
60
|
}
|
|
61
61
|
function createAuthStorage(AuthStorageLike, path, creds) {
|
|
62
62
|
const withInMemory = AuthStorageLike;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { applyMergePatch } from "../config/merge-patch.js";
|
|
2
2
|
import { applyPiCompactionSettingsFromConfig } from "./pi-settings.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { SettingsManager } from "@mariozechner/pi-coding-agent";
|
|
6
6
|
|
|
@@ -28,7 +28,7 @@ function buildEmbeddedPiSettingsSnapshot(params) {
|
|
|
28
28
|
}
|
|
29
29
|
function readJsonFile(filePath) {
|
|
30
30
|
try {
|
|
31
|
-
const raw =
|
|
31
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
32
32
|
const parsed = JSON.parse(raw);
|
|
33
33
|
return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
|
|
34
34
|
} catch {
|
|
@@ -49,7 +49,7 @@ function loadEnabledBundlePiSettingsSnapshot(params) {
|
|
|
49
49
|
const servers = mcp.mcpServers && typeof mcp.mcpServers === "object" && !Array.isArray(mcp.mcpServers) ? mcp.mcpServers : undefined;
|
|
50
50
|
if (servers) {
|
|
51
51
|
const resolvedServers = {};
|
|
52
|
-
const resolvedRoot =
|
|
52
|
+
const resolvedRoot = fs.realpathSync.native?.(pluginRoot) ?? fs.realpathSync(pluginRoot);
|
|
53
53
|
for (const [name, server] of Object.entries(servers)) {
|
|
54
54
|
if (!server || typeof server !== "object" || Array.isArray(server)) {
|
|
55
55
|
resolvedServers[name] = server;
|
|
@@ -11,7 +11,7 @@ function normalizeProviderId(provider) {
|
|
|
11
11
|
return "opencode";
|
|
12
12
|
}
|
|
13
13
|
if (normalized === "kimi" || normalized === "kimi-code" || normalized === "kimi-coding") {
|
|
14
|
-
return "kimi";
|
|
14
|
+
return "kimi-coding";
|
|
15
15
|
}
|
|
16
16
|
if (normalized === "moonshotai" || normalized === "moonshot-ai") {
|
|
17
17
|
return "moonshot";
|
|
@@ -3,7 +3,7 @@ import { PATH_ALIAS_POLICIES } from "../../infra/path-alias-guards.js";
|
|
|
3
3
|
import { execDockerRaw } from "./docker.js";
|
|
4
4
|
import { isPathInsideContainerRoot, normalizeContainerPath } from "./path-utils.js";
|
|
5
5
|
import { buildSandboxFsMounts, resolveSandboxFsPathWithMounts } from "./fs-paths.js";
|
|
6
|
-
import
|
|
6
|
+
import fs from "node:fs";
|
|
7
7
|
|
|
8
8
|
//#region src/agents/sandbox/fs-bridge.ts
|
|
9
9
|
function createSandboxFsBridge(params) {
|
|
@@ -160,7 +160,7 @@ var SandboxFsBridgeImpl = class {
|
|
|
160
160
|
throw guarded.error instanceof Error ? guarded.error : new Error(`Sandbox boundary checks failed; cannot ${options.action}: ${target.containerPath}`);
|
|
161
161
|
}
|
|
162
162
|
} else {
|
|
163
|
-
|
|
163
|
+
fs.closeSync(guarded.fd);
|
|
164
164
|
}
|
|
165
165
|
const canonicalContainerPath = await this.resolveCanonicalContainerPath({
|
|
166
166
|
containerPath: target.containerPath,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import fs from "node:fs/promises";
|
|
3
|
+
import fs$1 from "node:fs/promises";
|
|
4
4
|
|
|
5
5
|
//#region src/agents/session-dirs.ts
|
|
6
6
|
function mapAgentSessionDirs(agentsDir, entries) {
|
|
@@ -9,7 +9,7 @@ function mapAgentSessionDirs(agentsDir, entries) {
|
|
|
9
9
|
async function resolveAgentSessionDirsFromAgentsDir(agentsDir) {
|
|
10
10
|
let entries = [];
|
|
11
11
|
try {
|
|
12
|
-
entries = await fs.readdir(agentsDir, { withFileTypes: true });
|
|
12
|
+
entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
|
|
13
13
|
} catch (err) {
|
|
14
14
|
const code = err.code;
|
|
15
15
|
if (code === "ENOENT") {
|
|
@@ -22,7 +22,7 @@ async function resolveAgentSessionDirsFromAgentsDir(agentsDir) {
|
|
|
22
22
|
function resolveAgentSessionDirsFromAgentsDirSync(agentsDir) {
|
|
23
23
|
let entries = [];
|
|
24
24
|
try {
|
|
25
|
-
entries =
|
|
25
|
+
entries = fs.readdirSync(agentsDir, { withFileTypes: true });
|
|
26
26
|
} catch (err) {
|
|
27
27
|
const code = err.code;
|
|
28
28
|
if (code === "ENOENT") {
|