@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
|
@@ -110,17 +110,9 @@ const OPENAI_API_MODEL_IDS = [
|
|
|
110
110
|
"gpt-5.6",
|
|
111
111
|
"gpt-5.6-terra",
|
|
112
112
|
"gpt-5.6-luna",
|
|
113
|
-
"gpt-5.5"
|
|
114
|
-
"gpt-5.4",
|
|
115
|
-
"gpt-5.4-mini",
|
|
116
|
-
"gpt-5.4-nano"
|
|
117
|
-
];
|
|
118
|
-
const OPENAI_SIGN_IN_MODEL_IDS = [
|
|
119
|
-
"gpt-5.5",
|
|
120
|
-
"gpt-5.4",
|
|
121
|
-
"gpt-5.4-mini",
|
|
122
|
-
"gpt-5.3-codex-spark"
|
|
113
|
+
"gpt-5.5"
|
|
123
114
|
];
|
|
115
|
+
const OPENAI_SIGN_IN_MODEL_IDS = ["gpt-5.5"];
|
|
124
116
|
const OPENAI_API_MODEL_REFS = OPENAI_API_MODEL_IDS.map((id) => `${OPENAI_API_ROUTE_ID}/${id}`);
|
|
125
117
|
const OPENAI_SIGN_IN_MODEL_REFS = OPENAI_SIGN_IN_MODEL_IDS.map((id) => `${OPENAI_CODEX_ROUTE_ID}/${id}`);
|
|
126
118
|
const ANTHROPIC_MODEL_IDS = [
|
|
@@ -138,7 +130,9 @@ const CHUTES_MODEL_IDS = [
|
|
|
138
130
|
"moonshotai/Kimi-K2.6-TEE",
|
|
139
131
|
"Qwen/Qwen3.6-27B-TEE",
|
|
140
132
|
"Qwen/Qwen3.5-397B-A17B-TEE",
|
|
141
|
-
"zai-org/GLM-5-TEE"
|
|
133
|
+
"zai-org/GLM-5-TEE",
|
|
134
|
+
"Qwen/Qwen3-235B-A22B-Thinking-2507-TEE",
|
|
135
|
+
"zai-org/GLM-5.2-TEE"
|
|
142
136
|
];
|
|
143
137
|
const CHUTES_MODEL_REFS = CHUTES_MODEL_IDS.map((id) => `${CHUTES_ROUTE_ID}/${id}`);
|
|
144
138
|
const OLLAMA_MODEL_REFS = [];
|
|
@@ -853,6 +847,7 @@ const OLLAMA_PROVIDER_MANIFEST = {
|
|
|
853
847
|
models: {
|
|
854
848
|
recommended: OLLAMA_MODEL_REFS,
|
|
855
849
|
dynamic: true,
|
|
850
|
+
operatorCatalog: true,
|
|
856
851
|
routeRules: { [OLLAMA_ROUTE_ID]: [`${OLLAMA_ROUTE_ID}/*`] }
|
|
857
852
|
},
|
|
858
853
|
modelCapabilities: buildProviderModelCapabilities(OLLAMA_MODEL_REFS)
|
|
@@ -874,6 +869,7 @@ const LMSTUDIO_PROVIDER_MANIFEST = {
|
|
|
874
869
|
models: {
|
|
875
870
|
recommended: LMSTUDIO_MODEL_REFS,
|
|
876
871
|
dynamic: true,
|
|
872
|
+
operatorCatalog: true,
|
|
877
873
|
routeRules: { [LMSTUDIO_ROUTE_ID]: [`${LMSTUDIO_ROUTE_ID}/*`] }
|
|
878
874
|
},
|
|
879
875
|
modelCapabilities: buildProviderModelCapabilities(LMSTUDIO_MODEL_REFS)
|
|
@@ -895,6 +891,7 @@ const VLLM_PROVIDER_MANIFEST = {
|
|
|
895
891
|
models: {
|
|
896
892
|
recommended: VLLM_MODEL_REFS,
|
|
897
893
|
dynamic: true,
|
|
894
|
+
operatorCatalog: true,
|
|
898
895
|
routeRules: { [VLLM_ROUTE_ID]: [`${VLLM_ROUTE_ID}/*`] }
|
|
899
896
|
},
|
|
900
897
|
modelCapabilities: buildProviderModelCapabilities(VLLM_MODEL_REFS)
|
|
@@ -1432,6 +1429,7 @@ const LITELLM_PROVIDER_MANIFEST = {
|
|
|
1432
1429
|
models: {
|
|
1433
1430
|
recommended: [...LITELLM_MODEL_REFS],
|
|
1434
1431
|
dynamic: true,
|
|
1432
|
+
operatorCatalog: true,
|
|
1435
1433
|
routeRules: { [LITELLM_ROUTE_ID]: [`${LITELLM_ROUTE_ID}/*`] }
|
|
1436
1434
|
},
|
|
1437
1435
|
modelCapabilities: LITELLM_MODEL_CAPABILITY_OVERRIDES
|
|
@@ -1473,6 +1471,7 @@ const CUSTOM_PROVIDER_MANIFEST = {
|
|
|
1473
1471
|
models: {
|
|
1474
1472
|
recommended: CUSTOM_PROVIDER_MODEL_REFS,
|
|
1475
1473
|
dynamic: true,
|
|
1474
|
+
operatorCatalog: true,
|
|
1476
1475
|
routeRules: { [CUSTOM_PROVIDER_ROUTE_ID]: [`${CUSTOM_PROVIDER_ROUTE_ID}/*`] }
|
|
1477
1476
|
},
|
|
1478
1477
|
modelCapabilities: buildProviderModelCapabilities(CUSTOM_PROVIDER_MODEL_REFS)
|
|
@@ -1559,7 +1558,11 @@ function isStandardProviderModelRef(ref) {
|
|
|
1559
1558
|
if (!getProviderBrandManifestForRoute(provider)) {
|
|
1560
1559
|
return false;
|
|
1561
1560
|
}
|
|
1562
|
-
|
|
1561
|
+
const manifest = getProviderBrandManifestForRoute(provider);
|
|
1562
|
+
if (!manifest) {
|
|
1563
|
+
return false;
|
|
1564
|
+
}
|
|
1565
|
+
if (manifest.models.operatorCatalog) {
|
|
1563
1566
|
return true;
|
|
1564
1567
|
}
|
|
1565
1568
|
return STANDARD_PROVIDER_MODEL_REFS.has(value.toLowerCase());
|
package/dist/secrets/apply.js
CHANGED
|
@@ -12,7 +12,7 @@ import { listKnownSecretEnvVarNames } from "./provider-env-vars.js";
|
|
|
12
12
|
import { createSecretsConfigIO } from "./config-io.js";
|
|
13
13
|
import { normalizeSecretsPlanOptions, resolveValidatedTargetPathSegments } from "./plan.js";
|
|
14
14
|
import { prepareSecretsRuntimeSnapshot } from "./runtime.js";
|
|
15
|
-
import
|
|
15
|
+
import fs from "node:fs";
|
|
16
16
|
import os from "node:os";
|
|
17
17
|
import path from "node:path";
|
|
18
18
|
import { isDeepStrictEqual } from "node:util";
|
|
@@ -125,8 +125,8 @@ function collectAuthStorePaths(config, stateDir) {
|
|
|
125
125
|
const paths = new Set();
|
|
126
126
|
paths.add(path.join(resolveUserPath(stateDir), "agents", "main", "agent", "auth-profiles.json"));
|
|
127
127
|
const agentsRoot = path.join(resolveUserPath(stateDir), "agents");
|
|
128
|
-
if (
|
|
129
|
-
for (const entry of
|
|
128
|
+
if (fs.existsSync(agentsRoot)) {
|
|
129
|
+
for (const entry of fs.readdirSync(agentsRoot, { withFileTypes: true })) {
|
|
130
130
|
if (!entry.isDirectory()) {
|
|
131
131
|
continue;
|
|
132
132
|
}
|
|
@@ -146,15 +146,15 @@ function collectAuthStorePaths(config, stateDir) {
|
|
|
146
146
|
function collectAuthJsonPaths(stateDir) {
|
|
147
147
|
const out = [];
|
|
148
148
|
const agentsRoot = path.join(resolveUserPath(stateDir), "agents");
|
|
149
|
-
if (!
|
|
149
|
+
if (!fs.existsSync(agentsRoot)) {
|
|
150
150
|
return out;
|
|
151
151
|
}
|
|
152
|
-
for (const entry of
|
|
152
|
+
for (const entry of fs.readdirSync(agentsRoot, { withFileTypes: true })) {
|
|
153
153
|
if (!entry.isDirectory()) {
|
|
154
154
|
continue;
|
|
155
155
|
}
|
|
156
156
|
const candidate = path.join(agentsRoot, entry.name, "agent", "auth.json");
|
|
157
|
-
if (
|
|
157
|
+
if (fs.existsSync(candidate)) {
|
|
158
158
|
out.push(candidate);
|
|
159
159
|
}
|
|
160
160
|
}
|
|
@@ -249,10 +249,10 @@ async function projectPlanState(params) {
|
|
|
249
249
|
const authStoreByPath = new Map();
|
|
250
250
|
if (options.scrubAuthProfilesForProviderTargets && providerTargets.size > 0) {
|
|
251
251
|
for (const authStorePath of collectAuthStorePaths(nextConfig, stateDir)) {
|
|
252
|
-
if (!
|
|
252
|
+
if (!fs.existsSync(authStorePath)) {
|
|
253
253
|
continue;
|
|
254
254
|
}
|
|
255
|
-
const raw =
|
|
255
|
+
const raw = fs.readFileSync(authStorePath, "utf8");
|
|
256
256
|
const parsed = JSON.parse(raw);
|
|
257
257
|
if (!isRecord(parsed) || !isRecord(parsed.profiles)) {
|
|
258
258
|
continue;
|
|
@@ -308,7 +308,7 @@ async function projectPlanState(params) {
|
|
|
308
308
|
const authJsonByPath = new Map();
|
|
309
309
|
if (options.scrubLegacyAuthJson) {
|
|
310
310
|
for (const authJsonPath of collectAuthJsonPaths(stateDir)) {
|
|
311
|
-
const raw =
|
|
311
|
+
const raw = fs.readFileSync(authJsonPath, "utf8");
|
|
312
312
|
const parsed = JSON.parse(raw);
|
|
313
313
|
if (!isRecord(parsed)) {
|
|
314
314
|
continue;
|
|
@@ -333,8 +333,8 @@ async function projectPlanState(params) {
|
|
|
333
333
|
const envRawByPath = new Map();
|
|
334
334
|
if (options.scrubEnv && scrubbedValues.size > 0) {
|
|
335
335
|
const envPath = path.join(resolveConfigDir(params.env, os.homedir), ".env");
|
|
336
|
-
if (
|
|
337
|
-
const current =
|
|
336
|
+
if (fs.existsSync(envPath)) {
|
|
337
|
+
const current = fs.readFileSync(envPath, "utf8");
|
|
338
338
|
const scrubbed = scrubEnvRaw(current, scrubbedValues, new Set(listKnownSecretEnvVarNames()));
|
|
339
339
|
if (scrubbed.removed > 0 && scrubbed.nextRaw !== current) {
|
|
340
340
|
envRawByPath.set(envPath, scrubbed.nextRaw);
|
|
@@ -387,24 +387,24 @@ async function projectPlanState(params) {
|
|
|
387
387
|
};
|
|
388
388
|
}
|
|
389
389
|
function captureFileSnapshot(pathname) {
|
|
390
|
-
if (!
|
|
390
|
+
if (!fs.existsSync(pathname)) {
|
|
391
391
|
return {
|
|
392
392
|
existed: false,
|
|
393
393
|
content: "",
|
|
394
394
|
mode: 384
|
|
395
395
|
};
|
|
396
396
|
}
|
|
397
|
-
const stat =
|
|
397
|
+
const stat = fs.statSync(pathname);
|
|
398
398
|
return {
|
|
399
399
|
existed: true,
|
|
400
|
-
content:
|
|
400
|
+
content: fs.readFileSync(pathname, "utf8"),
|
|
401
401
|
mode: stat.mode & 511
|
|
402
402
|
};
|
|
403
403
|
}
|
|
404
404
|
function restoreFileSnapshot(pathname, snapshot) {
|
|
405
405
|
if (!snapshot.existed) {
|
|
406
|
-
if (
|
|
407
|
-
|
|
406
|
+
if (fs.existsSync(pathname)) {
|
|
407
|
+
fs.rmSync(pathname, { force: true });
|
|
408
408
|
}
|
|
409
409
|
return;
|
|
410
410
|
}
|
package/dist/secrets/audit.js
CHANGED
|
@@ -10,7 +10,7 @@ import { resolveSecretRefValue, resolveSecretRefValues } from "./resolve.js";
|
|
|
10
10
|
import { normalizeProviderId } from "../agents/model-selection.js";
|
|
11
11
|
import { listKnownSecretEnvVarNames } from "./provider-env-vars.js";
|
|
12
12
|
import { createSecretsConfigIO } from "./config-io.js";
|
|
13
|
-
import
|
|
13
|
+
import fs from "node:fs";
|
|
14
14
|
import os from "node:os";
|
|
15
15
|
import path from "node:path";
|
|
16
16
|
|
|
@@ -51,12 +51,12 @@ function parseEnvValue(raw) {
|
|
|
51
51
|
return trimmed;
|
|
52
52
|
}
|
|
53
53
|
function collectEnvPlaintext(params) {
|
|
54
|
-
if (!
|
|
54
|
+
if (!fs.existsSync(params.envPath)) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
params.collector.filesScanned.add(params.envPath);
|
|
58
58
|
const knownKeys = new Set(listKnownSecretEnvVarNames());
|
|
59
|
-
const raw =
|
|
59
|
+
const raw = fs.readFileSync(params.envPath, "utf8");
|
|
60
60
|
const lines = raw.split(/\r?\n/);
|
|
61
61
|
for (const line of lines) {
|
|
62
62
|
const match = line.match(/^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)$/);
|
|
@@ -81,11 +81,11 @@ function collectEnvPlaintext(params) {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
function readJsonObject(filePath) {
|
|
84
|
-
if (!
|
|
84
|
+
if (!fs.existsSync(filePath)) {
|
|
85
85
|
return { value: null };
|
|
86
86
|
}
|
|
87
87
|
try {
|
|
88
|
-
const raw =
|
|
88
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
89
89
|
const parsed = JSON.parse(raw);
|
|
90
90
|
if (!isRecord(parsed)) {
|
|
91
91
|
return { value: null };
|
|
@@ -196,8 +196,8 @@ function collectAuthStorePaths(config, stateDir) {
|
|
|
196
196
|
const paths = new Set();
|
|
197
197
|
paths.add(path.join(resolveUserPath(stateDir), "agents", "main", "agent", "auth-profiles.json"));
|
|
198
198
|
const agentsRoot = path.join(resolveUserPath(stateDir), "agents");
|
|
199
|
-
if (
|
|
200
|
-
for (const entry of
|
|
199
|
+
if (fs.existsSync(agentsRoot)) {
|
|
200
|
+
for (const entry of fs.readdirSync(agentsRoot, { withFileTypes: true })) {
|
|
201
201
|
if (!entry.isDirectory()) {
|
|
202
202
|
continue;
|
|
203
203
|
}
|
|
@@ -215,7 +215,7 @@ function collectAuthStorePaths(config, stateDir) {
|
|
|
215
215
|
return [...paths];
|
|
216
216
|
}
|
|
217
217
|
function collectAuthStoreSecrets(params) {
|
|
218
|
-
if (!
|
|
218
|
+
if (!fs.existsSync(params.authStorePath)) {
|
|
219
219
|
return;
|
|
220
220
|
}
|
|
221
221
|
params.collector.filesScanned.add(params.authStorePath);
|
|
@@ -315,15 +315,15 @@ function collectAuthStoreSecrets(params) {
|
|
|
315
315
|
}
|
|
316
316
|
function collectAuthJsonResidue(params) {
|
|
317
317
|
const agentsRoot = path.join(resolveUserPath(params.stateDir), "agents");
|
|
318
|
-
if (!
|
|
318
|
+
if (!fs.existsSync(agentsRoot)) {
|
|
319
319
|
return;
|
|
320
320
|
}
|
|
321
|
-
for (const entry of
|
|
321
|
+
for (const entry of fs.readdirSync(agentsRoot, { withFileTypes: true })) {
|
|
322
322
|
if (!entry.isDirectory()) {
|
|
323
323
|
continue;
|
|
324
324
|
}
|
|
325
325
|
const authJsonPath = path.join(agentsRoot, entry.name, "agent", "auth.json");
|
|
326
|
-
if (!
|
|
326
|
+
if (!fs.existsSync(authJsonPath)) {
|
|
327
327
|
continue;
|
|
328
328
|
}
|
|
329
329
|
params.collector.filesScanned.add(authJsonPath);
|
package/dist/secrets/shared.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/secrets/shared.ts
|
|
@@ -15,28 +15,28 @@ function normalizePositiveInt(value, fallback) {
|
|
|
15
15
|
return Math.max(1, Math.floor(fallback));
|
|
16
16
|
}
|
|
17
17
|
function ensureDirForFile(filePath) {
|
|
18
|
-
|
|
18
|
+
fs.mkdirSync(path.dirname(filePath), {
|
|
19
19
|
recursive: true,
|
|
20
20
|
mode: 448
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
function writeJsonFileSecure(pathname, value) {
|
|
24
24
|
ensureDirForFile(pathname);
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
fs.writeFileSync(pathname, `${JSON.stringify(value, null, 2)}\n`, "utf8");
|
|
26
|
+
fs.chmodSync(pathname, 384);
|
|
27
27
|
}
|
|
28
28
|
function readTextFileIfExists(pathname) {
|
|
29
|
-
if (!
|
|
29
|
+
if (!fs.existsSync(pathname)) {
|
|
30
30
|
return null;
|
|
31
31
|
}
|
|
32
|
-
return
|
|
32
|
+
return fs.readFileSync(pathname, "utf8");
|
|
33
33
|
}
|
|
34
34
|
function writeTextFileAtomic(pathname, value, mode = 384) {
|
|
35
35
|
ensureDirForFile(pathname);
|
|
36
36
|
const tempPath = `${pathname}.tmp-${process.pid}-${Date.now()}`;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
fs.writeFileSync(tempPath, value, "utf8");
|
|
38
|
+
fs.chmodSync(tempPath, mode);
|
|
39
|
+
fs.renameSync(tempPath, pathname);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/security/scan-paths.ts
|
|
@@ -10,7 +10,7 @@ function isPathInside(basePath, candidatePath) {
|
|
|
10
10
|
}
|
|
11
11
|
function safeRealpathSync(filePath) {
|
|
12
12
|
try {
|
|
13
|
-
return
|
|
13
|
+
return fs.realpathSync(filePath);
|
|
14
14
|
} catch {
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/shared/config-eval.ts
|
|
@@ -133,7 +133,7 @@ function hasBinary(bin) {
|
|
|
133
133
|
for (const ext of extensions) {
|
|
134
134
|
const candidate = path.join(part, bin + ext);
|
|
135
135
|
try {
|
|
136
|
-
|
|
136
|
+
fs.accessSync(candidate, fs.constants.X_OK);
|
|
137
137
|
hasBinaryCache.set(bin, true);
|
|
138
138
|
return true;
|
|
139
139
|
} catch {}
|
package/dist/shared/pid-alive.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs";
|
|
2
2
|
|
|
3
3
|
//#region src/shared/pid-alive.ts
|
|
4
4
|
/**
|
|
@@ -10,7 +10,7 @@ function isZombieProcess(pid) {
|
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
12
|
try {
|
|
13
|
-
const status =
|
|
13
|
+
const status = fs.readFileSync(`/proc/${pid}/status`, "utf8");
|
|
14
14
|
const stateMatch = status.match(/^State:\s+(\S)/m);
|
|
15
15
|
return stateMatch?.[1] === "Z";
|
|
16
16
|
} catch {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths.js";
|
|
2
2
|
import { createTaskRecord } from "./task-registry.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { randomUUID } from "node:crypto";
|
|
6
6
|
|
|
@@ -69,7 +69,7 @@ function loadStore(filePath = resolveStandingOrdersPath()) {
|
|
|
69
69
|
return cachedStore;
|
|
70
70
|
}
|
|
71
71
|
try {
|
|
72
|
-
cachedStore = sanitizeStore(JSON.parse(
|
|
72
|
+
cachedStore = sanitizeStore(JSON.parse(fs.readFileSync(filePath, "utf8")));
|
|
73
73
|
} catch {
|
|
74
74
|
cachedStore = defaultStore();
|
|
75
75
|
}
|
|
@@ -77,10 +77,10 @@ function loadStore(filePath = resolveStandingOrdersPath()) {
|
|
|
77
77
|
return cachedStore;
|
|
78
78
|
}
|
|
79
79
|
function saveStore(store, filePath = resolveStandingOrdersPath()) {
|
|
80
|
-
|
|
80
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
81
81
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
fs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
83
|
+
fs.renameSync(tmpPath, filePath);
|
|
84
84
|
cachedStore = store;
|
|
85
85
|
loadedPath = filePath;
|
|
86
86
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths.js";
|
|
2
2
|
import { resolveAgentIdFromSessionKey } from "../routing/session-key.js";
|
|
3
3
|
import { findTaskRecord, markTaskTerminal, updateTaskRecord } from "./task-registry.js";
|
|
4
|
-
import
|
|
4
|
+
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
|
|
7
7
|
//#region src/tasks/task-flow-registry.ts
|
|
@@ -85,7 +85,7 @@ function loadStore(filePath = resolveTaskFlowRegistryPath()) {
|
|
|
85
85
|
return cachedStore;
|
|
86
86
|
}
|
|
87
87
|
try {
|
|
88
|
-
cachedStore = sanitizeStore(JSON.parse(
|
|
88
|
+
cachedStore = sanitizeStore(JSON.parse(fs.readFileSync(filePath, "utf8")));
|
|
89
89
|
} catch {
|
|
90
90
|
cachedStore = defaultStore();
|
|
91
91
|
}
|
|
@@ -93,10 +93,10 @@ function loadStore(filePath = resolveTaskFlowRegistryPath()) {
|
|
|
93
93
|
return cachedStore;
|
|
94
94
|
}
|
|
95
95
|
function saveStore(store, filePath = resolveTaskFlowRegistryPath()) {
|
|
96
|
-
|
|
96
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
97
97
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
fs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
99
|
+
fs.renameSync(tmpPath, filePath);
|
|
100
100
|
cachedStore = store;
|
|
101
101
|
loadedPath = filePath;
|
|
102
102
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths.js";
|
|
2
2
|
import { resolveAgentIdFromSessionKey } from "../routing/session-key.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/tasks/task-registry.ts
|
|
@@ -41,7 +41,7 @@ function loadStore(filePath = resolveTaskRegistryPath()) {
|
|
|
41
41
|
return cachedStore;
|
|
42
42
|
}
|
|
43
43
|
try {
|
|
44
|
-
const raw =
|
|
44
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
45
45
|
cachedStore = sanitizeStore(JSON.parse(raw));
|
|
46
46
|
} catch {
|
|
47
47
|
cachedStore = defaultStore();
|
|
@@ -50,10 +50,10 @@ function loadStore(filePath = resolveTaskRegistryPath()) {
|
|
|
50
50
|
return cachedStore;
|
|
51
51
|
}
|
|
52
52
|
function saveStore(store, filePath = resolveTaskRegistryPath()) {
|
|
53
|
-
|
|
53
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
54
54
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
fs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
56
|
+
fs.renameSync(tmpPath, filePath);
|
|
57
57
|
cachedStore = store;
|
|
58
58
|
loadedPath = filePath;
|
|
59
59
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths.js";
|
|
2
2
|
import { normalizeTaskWorkflowGraphInput } from "./workflow-graph.js";
|
|
3
3
|
import { normalizeSimpleTaskWorkflowInput } from "./workflow.js";
|
|
4
|
-
import
|
|
4
|
+
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { randomUUID } from "node:crypto";
|
|
7
7
|
|
|
@@ -154,7 +154,7 @@ function auditTaskWorkflowDefinitions(params) {
|
|
|
154
154
|
const filePath = params?.filePath ?? resolveTaskWorkflowDefinitionsPath();
|
|
155
155
|
let raw;
|
|
156
156
|
try {
|
|
157
|
-
raw = JSON.parse(
|
|
157
|
+
raw = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
158
158
|
} catch (err) {
|
|
159
159
|
if (err.code === "ENOENT") {
|
|
160
160
|
return { findings: [] };
|
|
@@ -197,7 +197,7 @@ function loadStore(filePath = resolveTaskWorkflowDefinitionsPath()) {
|
|
|
197
197
|
return cachedStore;
|
|
198
198
|
}
|
|
199
199
|
try {
|
|
200
|
-
cachedStore = sanitizeStore(JSON.parse(
|
|
200
|
+
cachedStore = sanitizeStore(JSON.parse(fs.readFileSync(filePath, "utf8")));
|
|
201
201
|
} catch {
|
|
202
202
|
cachedStore = defaultStore();
|
|
203
203
|
}
|
|
@@ -205,10 +205,10 @@ function loadStore(filePath = resolveTaskWorkflowDefinitionsPath()) {
|
|
|
205
205
|
return cachedStore;
|
|
206
206
|
}
|
|
207
207
|
function saveStore(store, filePath = resolveTaskWorkflowDefinitionsPath()) {
|
|
208
|
-
|
|
208
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
209
209
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
fs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
211
|
+
fs.renameSync(tmpPath, filePath);
|
|
212
212
|
cachedStore = store;
|
|
213
213
|
loadedPath = filePath;
|
|
214
214
|
}
|
package/dist/telegram/token.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../routing/account-id.js";
|
|
2
2
|
import "../routing/session-key.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
|
|
5
5
|
//#region src/telegram/token.ts
|
|
6
6
|
function resolveTelegramToken(cfg, opts = {}) {
|
|
@@ -21,7 +21,7 @@ function resolveTelegramToken(cfg, opts = {}) {
|
|
|
21
21
|
const accountCfg = resolveAccountCfg(accountId !== DEFAULT_ACCOUNT_ID ? accountId : DEFAULT_ACCOUNT_ID);
|
|
22
22
|
const accountTokenFile = accountCfg?.tokenFile?.trim();
|
|
23
23
|
if (accountTokenFile) {
|
|
24
|
-
if (!
|
|
24
|
+
if (!fs.existsSync(accountTokenFile)) {
|
|
25
25
|
opts.logMissingFile?.(`channels.telegram.accounts.${accountId}.tokenFile not found: ${accountTokenFile}`);
|
|
26
26
|
return {
|
|
27
27
|
token: "",
|
|
@@ -29,7 +29,7 @@ function resolveTelegramToken(cfg, opts = {}) {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
try {
|
|
32
|
-
const token =
|
|
32
|
+
const token = fs.readFileSync(accountTokenFile, "utf-8").trim();
|
|
33
33
|
if (token) {
|
|
34
34
|
return {
|
|
35
35
|
token,
|
|
@@ -58,7 +58,7 @@ function resolveTelegramToken(cfg, opts = {}) {
|
|
|
58
58
|
const allowEnv = accountId === DEFAULT_ACCOUNT_ID;
|
|
59
59
|
const tokenFile = telegramCfg?.tokenFile?.trim();
|
|
60
60
|
if (tokenFile && allowEnv) {
|
|
61
|
-
if (!
|
|
61
|
+
if (!fs.existsSync(tokenFile)) {
|
|
62
62
|
opts.logMissingFile?.(`channels.telegram.tokenFile not found: ${tokenFile}`);
|
|
63
63
|
return {
|
|
64
64
|
token: "",
|
|
@@ -66,7 +66,7 @@ function resolveTelegramToken(cfg, opts = {}) {
|
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
68
|
try {
|
|
69
|
-
const token =
|
|
69
|
+
const token = fs.readFileSync(tokenFile, "utf-8").trim();
|
|
70
70
|
if (token) {
|
|
71
71
|
return {
|
|
72
72
|
token,
|
package/dist/utils.js
CHANGED
|
@@ -2,20 +2,20 @@ import { expandHomePrefix, resolveEffectiveHomeDir, resolveRequiredHomeDir } fro
|
|
|
2
2
|
import { resolveOAuthDir } from "./config/paths.js";
|
|
3
3
|
import { logVerbose, shouldLogVerbose } from "./globals.js";
|
|
4
4
|
import { isPlainObject } from "./infra/plain-object.js";
|
|
5
|
-
import
|
|
5
|
+
import fs from "node:fs";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
|
|
9
9
|
//#region src/utils.ts
|
|
10
10
|
async function ensureDir(dir) {
|
|
11
|
-
await
|
|
11
|
+
await fs.promises.mkdir(dir, { recursive: true });
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* Check if a file or directory exists at the given path.
|
|
15
15
|
*/
|
|
16
16
|
async function pathExists(targetPath) {
|
|
17
17
|
try {
|
|
18
|
-
await
|
|
18
|
+
await fs.promises.access(targetPath);
|
|
19
19
|
return true;
|
|
20
20
|
} catch {
|
|
21
21
|
return false;
|
|
@@ -129,7 +129,7 @@ function readLidReverseMapping(lid, opts) {
|
|
|
129
129
|
for (const dir of mappingDirs) {
|
|
130
130
|
const mappingPath = path.join(dir, mappingFilename);
|
|
131
131
|
try {
|
|
132
|
-
const data =
|
|
132
|
+
const data = fs.readFileSync(mappingPath, "utf8");
|
|
133
133
|
const phone = JSON.parse(data);
|
|
134
134
|
if (phone === null || phone === undefined) {
|
|
135
135
|
continue;
|
|
@@ -250,7 +250,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
|
|
|
250
250
|
}
|
|
251
251
|
const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".fased");
|
|
252
252
|
try {
|
|
253
|
-
const hasNew =
|
|
253
|
+
const hasNew = fs.existsSync(newDir);
|
|
254
254
|
if (hasNew) {
|
|
255
255
|
return newDir;
|
|
256
256
|
}
|
|
@@ -2,7 +2,7 @@ import { resolveLocalSignerBackendSocketPath, resolveLocalSignerSidecarPaths, re
|
|
|
2
2
|
import { redactWalletDiagnosticText, walletDiagnosticErrorMessage } from "./wallet-redaction.js";
|
|
3
3
|
import { parseLocalSocketSignerRequest, parseLocalSocketSignerResponseEnvelope } from "./local-socket-signer-protocol.js";
|
|
4
4
|
import { requestJsonlSocket } from "../infra/jsonl-socket.js";
|
|
5
|
-
import
|
|
5
|
+
import fs from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import net from "node:net";
|
|
8
8
|
|
|
@@ -34,15 +34,15 @@ function appendAuditLine(auditLog, entry, fileMode) {
|
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
try {
|
|
37
|
-
|
|
37
|
+
fs.mkdirSync(path.dirname(auditLog), {
|
|
38
38
|
recursive: true,
|
|
39
39
|
mode: fileMode === 432 ? 504 : 448
|
|
40
40
|
});
|
|
41
|
-
|
|
41
|
+
fs.appendFileSync(auditLog, `${JSON.stringify(entry)}\n`, {
|
|
42
42
|
encoding: "utf8",
|
|
43
43
|
mode: 384
|
|
44
44
|
});
|
|
45
|
-
|
|
45
|
+
fs.chmodSync(auditLog, fileMode);
|
|
46
46
|
} catch {}
|
|
47
47
|
}
|
|
48
48
|
function writeJsonLine(socket, payload) {
|
|
@@ -138,12 +138,12 @@ function handleConnection(socket, options) {
|
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
function ensurePidLock(pidFile, fileMode) {
|
|
141
|
-
|
|
141
|
+
fs.mkdirSync(path.dirname(pidFile), {
|
|
142
142
|
recursive: true,
|
|
143
143
|
mode: 448
|
|
144
144
|
});
|
|
145
|
-
if (
|
|
146
|
-
const raw =
|
|
145
|
+
if (fs.existsSync(pidFile)) {
|
|
146
|
+
const raw = fs.readFileSync(pidFile, "utf8").trim();
|
|
147
147
|
const pid = Number.parseInt(raw, 10);
|
|
148
148
|
if (Number.isFinite(pid) && pid > 1) {
|
|
149
149
|
try {
|
|
@@ -151,20 +151,20 @@ function ensurePidLock(pidFile, fileMode) {
|
|
|
151
151
|
throw new Error(`signer broker already running (pid=${pid})`);
|
|
152
152
|
} catch (err) {
|
|
153
153
|
if (!(err instanceof Error) || !String(err.message).includes("already running")) {
|
|
154
|
-
|
|
154
|
+
fs.rmSync(pidFile, { force: true });
|
|
155
155
|
} else {
|
|
156
156
|
throw err;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
} else {
|
|
160
|
-
|
|
160
|
+
fs.rmSync(pidFile, { force: true });
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
|
-
|
|
163
|
+
fs.writeFileSync(pidFile, `${process.pid}\n`, {
|
|
164
164
|
encoding: "utf8",
|
|
165
165
|
mode: fileMode
|
|
166
166
|
});
|
|
167
|
-
|
|
167
|
+
fs.chmodSync(pidFile, fileMode);
|
|
168
168
|
}
|
|
169
169
|
async function startLocalSocketSignerBroker(params) {
|
|
170
170
|
const env = process.env;
|
|
@@ -183,11 +183,11 @@ async function startLocalSocketSignerBroker(params) {
|
|
|
183
183
|
readOnly,
|
|
184
184
|
fileMode
|
|
185
185
|
};
|
|
186
|
-
|
|
186
|
+
fs.mkdirSync(path.dirname(socketPath), {
|
|
187
187
|
recursive: true,
|
|
188
188
|
mode: fileMode === 432 ? 504 : 448
|
|
189
189
|
});
|
|
190
|
-
|
|
190
|
+
fs.rmSync(socketPath, { force: true });
|
|
191
191
|
ensurePidLock(pidFile, fileMode);
|
|
192
192
|
const server = net.createServer((socket) => {
|
|
193
193
|
handleConnection(socket, options);
|
|
@@ -196,13 +196,13 @@ async function startLocalSocketSignerBroker(params) {
|
|
|
196
196
|
server.once("error", reject);
|
|
197
197
|
server.listen(socketPath, () => resolve());
|
|
198
198
|
});
|
|
199
|
-
|
|
199
|
+
fs.chmodSync(socketPath, fileMode);
|
|
200
200
|
const close = async () => {
|
|
201
201
|
await new Promise((resolve) => {
|
|
202
202
|
server.close(() => resolve());
|
|
203
203
|
});
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
fs.rmSync(socketPath, { force: true });
|
|
205
|
+
fs.rmSync(pidFile, { force: true });
|
|
206
206
|
};
|
|
207
207
|
const shutdown = () => {
|
|
208
208
|
void close().finally(() => process.exit(0));
|