@fased/fased 0.1.54 → 0.1.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/capability-catalog.json +12 -0
- package/dist/acp/client.js +2 -2
- package/dist/acp/secret-file.js +2 -2
- package/dist/agents/agent-scope.js +2 -2
- package/dist/agents/apply-patch.js +8 -8
- package/dist/agents/auth-profiles/paths.js +2 -2
- package/dist/agents/auth-profiles/store.js +2 -2
- package/dist/agents/authenticated-model-catalog.js +28 -0
- package/dist/agents/bash-tools.exec-host-node.js +1 -1
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cli-credentials.js +4 -4
- package/dist/agents/copilot-dynamic-headers.js +37 -0
- package/dist/agents/current-model-catalog.js +9 -13
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/embedded-pi-mcp.js +4 -4
- package/dist/agents/identity-avatar.js +3 -3
- package/dist/agents/identity-file.js +2 -2
- package/dist/agents/model-catalog-normalized.js +1 -0
- package/dist/agents/model-catalog-source.js +2 -2
- package/dist/agents/model-catalog.js +1 -1
- package/dist/agents/model-metadata.js +58 -9
- package/dist/agents/openai-codex-app-server.js +499 -0
- package/dist/agents/pi-embedded-runner/compact.js +3 -3
- package/dist/agents/pi-embedded-runner/extra-params.js +168 -79
- package/dist/agents/pi-embedded-runner/model.js +62 -1
- package/dist/agents/pi-embedded-runner/moonshot-stream-wrappers.js +46 -0
- package/dist/agents/pi-embedded-runner/openai-stream-wrappers.js +221 -0
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -4
- package/dist/agents/pi-embedded-runner/run.js +5 -2
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-runner.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
- package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
- package/dist/agents/pi-model-discovery.js +6 -6
- package/dist/agents/pi-project-settings.js +3 -3
- package/dist/agents/pi-tools.js +2 -2
- package/dist/agents/sandbox/fs-bridge.js +2 -2
- package/dist/agents/session-dirs.js +4 -4
- package/dist/agents/session-write-lock.js +13 -13
- package/dist/agents/shell-utils.js +5 -5
- package/dist/agents/skills/bundled-dir.js +4 -4
- package/dist/agents/skills/local-loader.js +6 -6
- package/dist/agents/skills/plugin-skills.js +2 -2
- package/dist/agents/skills/workspace.js +13 -13
- package/dist/agents/skills-install-download.js +7 -7
- package/dist/agents/skills-install-plan.js +2 -2
- package/dist/agents/skills-install.js +2 -2
- package/dist/agents/skills-status.js +2 -2
- package/dist/agents/subagent-depth.js +2 -2
- package/dist/agents/system-prompt-params.js +2 -2
- package/dist/agents/tools/discord-actions-messaging.js +1 -1
- package/dist/agents/tools/message-tool.js +1 -1
- package/dist/agents/tools/session-status-tool.js +3 -3
- package/dist/agents/tools/slack-actions.js +1 -1
- package/dist/agents/tools/tts-tool.js +1 -1
- package/dist/agents/workspace.js +22 -22
- package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
- package/dist/auto-reply/reply/agent-runner.js +2 -2
- package/dist/auto-reply/reply/commands-export-session.js +7 -7
- package/dist/auto-reply/reply/commands-models.js +1 -1
- package/dist/auto-reply/reply/directive-handling.impl.js +4 -1
- package/dist/auto-reply/reply/dispatch-acp.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +1 -1
- package/dist/auto-reply/reply/get-reply-run.js +20 -2
- package/dist/auto-reply/reply/model-selection.js +1 -1
- package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
- package/dist/auto-reply/reply/post-compaction-context.js +3 -3
- package/dist/auto-reply/reply/session-reset-model.js +1 -1
- package/dist/auto-reply/reply/session.js +3 -3
- package/dist/auto-reply/skill-commands.js +3 -3
- package/dist/auto-reply/status.js +7 -7
- package/dist/auto-reply/thinking.js +1 -1
- package/dist/brand.js +1 -1
- package/dist/browser/cdp.helpers.js +2 -2
- package/dist/browser/chrome.executables.js +3 -3
- package/dist/browser/chrome.js +5 -5
- package/dist/browser/chrome.profile-decoration.js +6 -6
- package/dist/browser/extension-relay.js +7 -7
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/server-context.js +2 -2
- package/dist/browser/trash.js +4 -4
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/server.js +4 -4
- package/dist/capabilities/catalog.js +3 -3
- package/dist/channels/plugins/catalog.js +3 -3
- package/dist/cli/browser-cli-extension.js +6 -6
- package/dist/cli/command-format.js +2 -2
- package/dist/cli/cron-cli/register.cron-add.js +1 -1
- package/dist/cli/cron-cli/register.cron-simple.js +2 -2
- package/dist/cli/dns-cli.js +9 -9
- package/dist/cli/gateway-cli/dev.js +5 -5
- package/dist/cli/gateway-cli/run.js +2 -2
- package/dist/cli/hooks-cli.js +5 -5
- package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
- package/dist/cli/memory-cli.js +7 -7
- package/dist/cli/nodes-media-utils.js +2 -2
- package/dist/cli/plugins-cli.js +2 -2
- package/dist/cli/program/register.agent.js +1 -1
- package/dist/cli/providers-cli.js +3 -2
- package/dist/cli/secrets-cli.js +3 -3
- package/dist/cli/windows-argv.js +2 -2
- package/dist/commands/agent.js +22 -3
- package/dist/commands/auth-choice.apply.api-providers.js +3 -8
- package/dist/commands/auth-choice.apply.openai.js +13 -7
- package/dist/commands/auth-choice.model-check.js +1 -2
- package/dist/commands/configure.gateway-auth.js +14 -16
- package/dist/commands/dashboard-link.js +3 -3
- package/dist/commands/doctor-config-flow.js +1 -1
- package/dist/commands/doctor-install.js +5 -5
- package/dist/commands/doctor-memory-search.js +2 -2
- package/dist/commands/doctor-platform-notes.js +2 -2
- package/dist/commands/doctor-sandbox.js +2 -2
- package/dist/commands/doctor-state-integrity.js +23 -23
- package/dist/commands/doctor-workspace.js +3 -3
- package/dist/commands/doctor.js +3 -3
- package/dist/commands/hosted-dashboard-probe.js +3 -3
- package/dist/commands/managed-up.js +2 -2
- package/dist/commands/model-picker.js +27 -8
- package/dist/commands/models/list.probe.js +1 -1
- package/dist/commands/models/list.registry.js +13 -17
- package/dist/commands/models/list.status-command.js +2 -2
- package/dist/commands/onboard-auth.config-core.js +1 -1
- package/dist/commands/onboard-auth.config-litellm.js +21 -21
- package/dist/commands/onboard-auth.credentials.js +3 -4
- package/dist/commands/onboard-auth.js +0 -1
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/openai-codex-model-default.js +28 -5
- package/dist/commands/sessions-cleanup.js +2 -2
- package/dist/commands/signal-install.js +6 -6
- package/dist/commands/status-all/channels.js +2 -2
- package/dist/commands/wallet.js +47 -47
- package/dist/config/cache-utils.js +2 -2
- package/dist/config/includes.js +5 -5
- package/dist/config/io.js +2 -2
- package/dist/config/paths.js +3 -3
- package/dist/config/sat-runtime-ids.js +3 -3
- package/dist/config/sessions/disk-budget.js +6 -6
- package/dist/config/sessions/paths.js +2 -2
- package/dist/config/sessions/store.js +17 -17
- package/dist/config/sessions/transcript.js +4 -4
- package/dist/config/talk.js +2 -2
- package/dist/config/zod-schema.agent-defaults.js +6 -2
- package/dist/config/zod-schema.agent-runtime.js +6 -2
- package/dist/config/zod-schema.core.js +6 -2
- package/dist/control-ui/assets/{app-BKlu6OKz.js → app-D7TXyNRi.js} +1548 -1540
- package/dist/control-ui/assets/chat-model-ref-Djkv93yn.js +2 -0
- package/dist/control-ui/assets/{index-nrFcGMv-.js → index-BmSBom-w.js} +3 -3
- package/dist/control-ui/assets/{providers-BQFrRqym.js → providers-Cc89iMdx.js} +5 -5
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/version.json +1 -0
- package/dist/cron/isolated-agent/run.js +6 -2
- package/dist/cron/service/jobs.js +11 -1
- package/dist/cron/service/store.js +2 -2
- package/dist/cron/store.js +6 -6
- package/dist/daemon/systemd-system.js +5 -5
- package/dist/discord/monitor/gateway-plugin.js +2 -2
- package/dist/discord/monitor/thread-bindings.state.js +2 -2
- package/dist/discord/voice/manager.js +1 -1
- package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
- package/dist/gateway/client.js +4 -4
- package/dist/gateway/control-ui-boot-check.js +6 -6
- package/dist/gateway/control-ui-login.js +7 -7
- package/dist/gateway/control-ui.js +11 -9
- package/dist/gateway/hooks-mapping.js +4 -4
- package/dist/gateway/protocol/schema/agents-models-skills.js +66 -4
- package/dist/gateway/server-discovery.js +2 -2
- package/dist/gateway/server-http.js +4 -4
- package/dist/gateway/server-methods/chat.js +3 -3
- package/dist/gateway/server-methods/models.js +8 -8
- package/dist/gateway/server-methods/sessions.js +8 -8
- package/dist/gateway/server-methods/tts.js +2 -2
- package/dist/gateway/server-methods/usage.js +2 -2
- package/dist/gateway/server-model-catalog.js +3 -0
- package/dist/gateway/server.impl.js +3 -3
- package/dist/gateway/session-compaction-checkpoints.js +4 -4
- package/dist/gateway/session-utils.fs.js +24 -24
- package/dist/gateway/session-utils.js +6 -6
- package/dist/gateway/sessions-patch.js +27 -24
- package/dist/hooks/bundled-dir.js +4 -4
- package/dist/hooks/gmail-setup-utils.js +6 -6
- package/dist/hooks/import-url.js +2 -2
- package/dist/hooks/loader.js +4 -4
- package/dist/hooks/workspace.js +7 -7
- package/dist/infra/archive.js +17 -17
- package/dist/infra/boundary-file-read.js +2 -2
- package/dist/infra/boundary-path.js +15 -15
- package/dist/infra/brew.js +2 -2
- package/dist/infra/control-ui-assets.js +14 -14
- package/dist/infra/device-auth-store.js +8 -8
- package/dist/infra/device-identity.js +8 -8
- package/dist/infra/dotenv.js +2 -2
- package/dist/infra/exec-approvals.js +8 -8
- package/dist/infra/exec-command-resolution.js +4 -4
- package/dist/infra/exec-safe-bin-trust.js +2 -2
- package/dist/infra/fased-root.js +5 -5
- package/dist/infra/fs-safe.js +14 -14
- package/dist/infra/gateway-lock.js +11 -11
- package/dist/infra/git-commit.js +5 -5
- package/dist/infra/git-root.js +4 -4
- package/dist/infra/hosted-runtime-artifact.js +3 -3
- package/dist/infra/is-main.js +2 -2
- package/dist/infra/json-file.js +7 -7
- package/dist/infra/outbound/delivery-queue.js +16 -16
- package/dist/infra/path-env.js +3 -3
- package/dist/infra/ports-lsof.js +4 -4
- package/dist/infra/provider-usage.auth.js +3 -3
- package/dist/infra/safe-open-sync.js +2 -2
- package/dist/infra/session-cost-usage.js +9 -9
- package/dist/infra/shell-env.js +2 -2
- package/dist/infra/state-migrations.fs.js +6 -6
- package/dist/infra/state-migrations.js +23 -23
- package/dist/infra/tmp-fased-dir.js +6 -6
- package/dist/infra/update-runner.js +31 -3
- package/dist/infra/widearea-dns.js +3 -3
- package/dist/infra/wsl.js +2 -2
- package/dist/light-update-status.js +1 -1
- package/dist/line/accounts.js +2 -2
- package/dist/line/download.js +2 -2
- package/dist/logging/config.js +3 -3
- package/dist/logging/logger.js +7 -7
- package/dist/managed/federation.js +3 -3
- package/dist/managed/tunnel.js +3 -3
- package/dist/media/store.js +13 -13
- package/dist/media-understanding/runner.js +3 -3
- package/dist/memory/embeddings.js +2 -2
- package/dist/memory/internal.js +10 -10
- package/dist/memory/inventory.js +19 -2
- package/dist/memory/manager-sync-ops.js +7 -7
- package/dist/memory/repair-executor.js +17 -17
- package/dist/node-host/invoke-system-run-plan.js +8 -8
- package/dist/node-host/invoke.js +2 -2
- package/dist/node-host/runner.js +3 -3
- package/dist/pairing/pairing-store.js +3 -3
- package/dist/plugin-sdk/{accounts-DW9OS5Ll.js → accounts-DzWlKv1U.js} +1 -1
- package/dist/plugin-sdk/{actions-DQUXohRr.js → actions-BplQVLL6.js} +4 -4
- package/dist/plugin-sdk/{active-listener-BZQWZPF7.js → active-listener-x4MLhYUw.js} +1 -1
- package/dist/plugin-sdk/{allow-list-BYeKk0Sy.js → allow-list-DyAxs4yw.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-t4mmHsI2.js → audio-preflight-G8h3Sn8_.js} +43 -47
- package/dist/plugin-sdk/{audit-BZk_6Buw.js → audit-CWknklvI.js} +1 -1
- package/dist/plugin-sdk/{channel-access-CN5HiWdb.js → channel-access-a9Dnfw7-.js} +1 -1
- package/dist/plugin-sdk/{channel-access-configure-B7Kkvx9K.js → channel-access-configure-CD4QDN5E.js} +1 -1
- package/dist/plugin-sdk/{channel-adapters.discord-IOZP8Cv5.js → channel-adapters.discord-BS4S4Svh.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
- package/dist/plugin-sdk/channel-plugin-common.js +4 -4
- package/dist/plugin-sdk/{chunk-B2ffJ-LR.js → chunk-B8EZkwiT.js} +1 -1
- package/dist/plugin-sdk/{chunk-items-jOdkyP53.js → chunk-items-CEPklxGe.js} +1 -1
- package/dist/plugin-sdk/command-status.d.ts +2 -2
- package/dist/plugin-sdk/command-status.js +43 -47
- package/dist/plugin-sdk/{commands-registry-BWb4NcfW.js → commands-registry-BfEa4tFA.js} +2 -2
- package/dist/plugin-sdk/{common-C4XrB73N.js → common-CbfckC19.js} +1 -1
- package/dist/plugin-sdk/{config-rySyVtKs.js → config-Bt5GhnA-.js} +105 -73
- package/dist/plugin-sdk/{config-schema-BaybPPrJ.js → config-schema-B9DKr6J5.js} +96239 -81587
- package/dist/plugin-sdk/device-pair.d.ts +1 -1
- package/dist/plugin-sdk/device-pair.js +2 -3
- package/dist/plugin-sdk/{diagnostic-Dfn1iERm.js → diagnostic-DLL_zekv.js} +3 -3
- package/dist/plugin-sdk/{directory-live-DatqU-eS.js → directory-live-CSuYxdwk.js} +1 -1
- package/dist/plugin-sdk/{directory-live-ClwN5KKq.js → directory-live-Dw7ZgC9_.js} +1 -1
- package/dist/plugin-sdk/discord.d.ts +5 -5
- package/dist/plugin-sdk/discord.js +31 -32
- package/dist/plugin-sdk/{draft-stream-controls-D4Tb_iS_.js → draft-stream-controls-BqchW1vi.js} +1 -1
- package/dist/plugin-sdk/{fetch-guard-BuYrl6q2.js → fetch-guard-CeG6u6ld.js} +1 -1
- package/dist/plugin-sdk/{filesystem-manager-B9DDPgfU.js → filesystem-manager-BGGGrkiN.js} +2 -2
- package/dist/plugin-sdk/{fs-safe-BG-VzVkL.js → fs-safe-xBqok6yR.js} +1 -1
- package/dist/plugin-sdk/{group-mentions-DLOOve8d.d.ts → group-mentions-BHRff6j8.d.ts} +1 -1
- package/dist/plugin-sdk/{guilds-BeT3iHHJ.js → guilds-CDhRIX57.js} +1 -1
- package/dist/plugin-sdk/{handle-action-CGF-Qnp0.js → handle-action-DbzZFYnG.js} +24 -25
- package/dist/plugin-sdk/{helpers-DgRMfCnT.js → helpers-CluGKuIV.js} +1 -1
- package/dist/plugin-sdk/{image-ops-CcBfoMLW.js → image-ops-CUaLtIFj.js} +1 -1
- package/dist/plugin-sdk/index.d.ts +8 -8
- package/dist/plugin-sdk/index.js +47 -51
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{login-DpDQyM7r.js → login-DJuHYDiK.js} +3 -3
- package/dist/plugin-sdk/{login-qr-COaSAPY5.js → login-qr-CbHL5ayf.js} +3 -3
- package/dist/plugin-sdk/{manager-Cqz30lA3.js → manager-oHAvZCT3.js} +7 -7
- package/dist/plugin-sdk/{markdown-tables-BOG5sSQQ.js → markdown-tables-Mkx7k92Y.js} +1 -1
- package/dist/plugin-sdk/{media-Bu-nJpPs.js → media-CA8sTmVE.js} +4 -4
- package/dist/plugin-sdk/{monitor-II_NIq3G.js → monitor-CZrN9pev.js} +51 -55
- package/dist/plugin-sdk/{monitor-DL6oEVo8.js → monitor-CmwGqNyV.js} +61 -65
- package/dist/plugin-sdk/{openresponses-http-vkHBBpGY.js → openresponses-http-CWOd4war.js} +43 -47
- package/dist/plugin-sdk/{optional-runtime-dependency-DEojVNfv.js → optional-runtime-dependency-DKmk9PZa.js} +1 -1
- package/dist/plugin-sdk/{outbound-mf2y6KuY.js → outbound-0oN9IfNw.js} +9 -9
- package/dist/plugin-sdk/{outbound-attachment-ivAHpWnn.js → outbound-attachment-DdVkqUzE.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-CvJ6Qa1Q.d.ts → pairing-message-BMkkS038.d.ts} +2 -2
- package/dist/plugin-sdk/{pairing-message-CqYG12t-.js → pairing-message-ClqhfCUk.js} +1 -1
- package/dist/plugin-sdk/{pairing-store-D-21Sphe.js → pairing-store-B01mCSct.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-B6gD1clF.js → pi-model-discovery-Buz0JC1Y.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-3yDxS3ro.js → pi-model-discovery-runtime-DuwuoteY.js} +2 -2
- package/dist/plugin-sdk/{probe-Cyb-DGA3.js → probe--7xtfzMm.js} +3 -3
- package/dist/plugin-sdk/{probe-Dlk0Jxpw.js → probe-BFroeK3g.js} +1 -1
- package/dist/plugin-sdk/{probe-D8JAILir.js → probe-l_whvGLY.js} +1 -1
- package/dist/plugin-sdk/{resolve-channels-zEnvugag.js → probe-xY3Ky0Tx.js} +3 -4
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
- package/dist/plugin-sdk/{pw-ai-CMplwiwf.js → pw-ai-B0domrii.js} +6 -8
- package/dist/plugin-sdk/{qmd-manager-DCUE21Kj.js → qmd-manager-CFFeM4Fl.js} +3 -3
- package/dist/plugin-sdk/{query-expansion-Zr9qQixm.js → query-expansion-CAI2kKLQ.js} +1 -1
- package/dist/plugin-sdk/{replies-wiI4veI7.js → replies-1macZ1mZ.js} +4 -4
- package/dist/plugin-sdk/{resolve-channels-ChWKWtA9.js → resolve-channels-87LZrFk_.js} +2 -2
- package/dist/plugin-sdk/resolve-channels-CwB2_019.js +4 -0
- package/dist/plugin-sdk/{resolve-outbound-target-bm9RUK5q.js → resolve-outbound-target-BdH6LUoW.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-ekGNc6os.js → resolve-route-CkNIKKEW.js} +1 -1
- package/dist/plugin-sdk/{resolve-users-BTvjQuui.js → resolve-users-Cxb5wpAQ.js} +1 -1
- package/dist/plugin-sdk/{resolve-users-CTzoruIZ.js → resolve-users-V6dHh_2B.js} +2 -2
- package/dist/plugin-sdk/{retry-policy-BvlC2SPh.js → retry-policy-9ybIh4Fq.js} +1 -1
- package/dist/plugin-sdk/{runtime-ClSakPxR.js → runtime-Dy420wBu.js} +3 -3
- package/dist/plugin-sdk/{runtime-dependency-yAWxH4El.js → runtime-dependency-CIw9t7-k.js} +123 -15
- package/dist/plugin-sdk/{sandbox-paths-lj7_EVuA.js → sandbox-paths-w64tYl0v.js} +1 -1
- package/dist/plugin-sdk/sat-runtime.d.ts +3 -3
- package/dist/plugin-sdk/sat-runtime.js +44 -10
- package/dist/plugin-sdk/{send-D264hFVb.js → send-2VcOMTN5.js} +9 -9
- package/dist/plugin-sdk/{send-CgyS75Av.js → send-BQUtCJFW.js} +10 -10
- package/dist/plugin-sdk/{send-D58yEeH4.js → send-DPJIIYAs.js} +6 -6
- package/dist/plugin-sdk/{send-C7x6gzSl.js → send-Dqes9tdU.js} +13 -13
- package/dist/plugin-sdk/{send-DrAtUGLM.js → send-J4JWKP62.js} +8 -8
- package/dist/plugin-sdk/{session-DyMtb5YQ.js → session-C_n2S5ub.js} +3 -3
- package/dist/plugin-sdk/{skill-commands-Q80wCyry.js → skill-commands-B7wx9ax8.js} +102 -102
- package/dist/plugin-sdk/{slack-C-I6q3NB.js → slack-BouRQG-W.js} +64 -68
- package/dist/plugin-sdk/{slack-actions-dGE_t_Un.js → slack-actions-CasHVtiq.js} +20 -21
- package/dist/plugin-sdk/slack.d.ts +5 -5
- package/dist/plugin-sdk/slack.js +13 -13
- package/dist/plugin-sdk/{ssrf-BZG8Ztod.js → ssrf-fG4UHKBw.js} +180 -2
- package/dist/plugin-sdk/{sticker-cache-DCrDTYIi.js → sticker-cache-BvGEUas3.js} +3 -3
- package/dist/plugin-sdk/{tables-0mhUOh5v.js → tables-CjlQJV4r.js} +2 -2
- package/dist/plugin-sdk/{device-pairing-D2Yq-_U6.js → tailscale-status-DwpNdO3Z.js} +104 -2
- package/dist/plugin-sdk/{targets-znKHngSk.js → targets-QfP164Dh.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-GBYY8-x9.js → telegram-actions-CwYjV6Db.js} +48 -52
- package/dist/plugin-sdk/telegram.d.ts +5 -5
- package/dist/plugin-sdk/telegram.js +11 -11
- package/dist/plugin-sdk/{thread-bindings.lifecycle-ClzPBK70.js → thread-bindings.lifecycle-DU4iX_Jr.js} +3 -3
- package/dist/plugin-sdk/{thread-bindings.state-Ha01nmrq.js → thread-bindings.state-BgYWFjNF.js} +2 -2
- package/dist/plugin-sdk/{tmp-fased-dir-C_xfeEN9.d.ts → tmp-fased-dir-BdFQvrvw.d.ts} +2 -2
- package/dist/plugin-sdk/{types-DV5TNhMK.d.ts → types-BYDL6dQj.d.ts} +2 -2
- package/dist/plugin-sdk/{types-BI2njxWJ.d.ts → types-CLIvQaVg.d.ts} +39 -5
- package/dist/plugin-sdk/{types-CBCtqtMn.d.ts → types-DyhXnYUr.d.ts} +1 -1
- package/dist/plugin-sdk/{types.plugin-CvUiB3Kh.d.ts → types.plugin-_fbu40Re.d.ts} +8 -5
- package/dist/plugin-sdk/{web-CJMfhGFY.js → web-D0yENDve.js} +52 -56
- package/dist/plugin-sdk/{whatsapp-actions-0ZbGo5ZV.js → whatsapp-actions-BT2nPLyo.js} +18 -19
- package/dist/plugin-sdk/{whatsapp-heartbeat-DGTsuvQ8.js → whatsapp-heartbeat-CiABSZ6G.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +5 -5
- package/dist/plugin-sdk/whatsapp.js +14 -14
- package/dist/plugin-sdk/{wsl-D5jDUlms.js → wsl-B_ojyEtC.js} +53 -53
- package/dist/plugins/bundled-dir.js +3 -3
- package/dist/plugins/discovery.js +11 -11
- package/dist/plugins/loader.js +13 -13
- package/dist/plugins/manifest-registry.js +2 -2
- package/dist/plugins/manifest.js +4 -4
- package/dist/plugins/path-safety.js +3 -3
- package/dist/plugins/runtime/index.js +1 -1
- package/dist/plugins/status-cache.js +9 -9
- package/dist/plugins/update.js +3 -3
- package/dist/plugins/web-search-install-catalog.js +3 -3
- package/dist/providers/github-copilot-model-discovery.js +51 -0
- package/dist/providers/litellm-models.js +1 -1
- package/dist/providers/openai-codex-model-discovery.js +166 -0
- package/dist/providers/refresh.js +311 -67
- package/dist/providers/registry.js +16 -6
- package/dist/providers/runtime-model-catalog.js +250 -0
- package/dist/secrets/apply.js +16 -16
- package/dist/secrets/audit.js +11 -11
- package/dist/secrets/shared.js +9 -9
- package/dist/security/scan-paths.js +2 -2
- package/dist/shared/config-eval.js +2 -2
- package/dist/shared/model-thinking.js +54 -4
- package/dist/shared/pid-alive.js +2 -2
- package/dist/tasks/standing-orders.js +5 -5
- package/dist/tasks/task-flow-registry.js +5 -5
- package/dist/tasks/task-registry.js +5 -5
- package/dist/tasks/workflow-definitions.js +6 -6
- package/dist/telegram/bot-message-context.js +1 -1
- package/dist/telegram/token.js +5 -5
- package/dist/utils.js +5 -5
- package/dist/wallet/local-socket-signer-broker.js +16 -16
- package/dist/wallet/providers/embedded-keystore-adapter.js +5 -5
- package/dist/wallet/providers/local-socket-signer-adapter.js +2 -2
- package/dist/wallet/wallet-approval-auth.js +5 -5
- package/dist/wallet/wallet-audit-log.js +5 -5
- package/dist/wallet/wallet-custody.js +21 -21
- package/dist/wallet/wallet-inbound-events.js +5 -5
- package/dist/wallet/wallet-observability.js +5 -5
- package/dist/wallet/wallet-policy.js +9 -9
- package/dist/wallet/wallet-provider-registry.js +7 -7
- package/dist/wallet/wallet-runtime-config.js +3 -3
- package/dist/wallet/wallet-secrets-store.js +22 -22
- package/dist/wallet/wallet-send-approvals.js +5 -5
- package/dist/wallet/wallet-settlement-links.js +5 -5
- package/dist/web/accounts.js +3 -3
- package/dist/web/auth-store.js +18 -18
- package/dist/web/session.js +4 -4
- package/dist/wizard/host-security-capability.js +2 -2
- package/dist/wizard/onboarding.host-security.js +7 -7
- package/dist/wizard/onboarding.js +31 -13
- package/dist/wizard/onboarding.wallet.js +44 -44
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/fased-federation/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +2 -2
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +2 -1
- package/dist/control-ui/assets/chat-model-ref-B9sWop67.js +0 -2
- package/dist/plugin-sdk/ip-C70a-YlD.js +0 -181
- package/dist/plugin-sdk/tailscale-status-ClsquRGs.js +0 -104
- package/dist/plugin-sdk/wallet-status-CyovJojz.js +0 -11944
- package/dist/plugin-sdk/ws-CocpWGhl.js +0 -114
- /package/dist/plugin-sdk/{blocks-input-Dcitfh7h.js → blocks-input-Bg-8S2pl.js} +0 -0
- /package/dist/plugin-sdk/{channel-activity-Cg1xRoc2.js → channel-activity-DBDMQ3yI.js} +0 -0
- /package/dist/plugin-sdk/{channel-core-BOkyXXLa.js → channel-core-CFRs8LPy.js} +0 -0
- /package/dist/plugin-sdk/{client-D2N7hqVu.js → client-pI228AVT.js} +0 -0
- /package/dist/plugin-sdk/{command-poll-backoff-NAePk3eL.js → command-poll-backoff-yJU83wEq.js} +0 -0
- /package/dist/plugin-sdk/{date-time-CE3Uer3C.js → date-time-uUevHscU.js} +0 -0
- /package/dist/plugin-sdk/{diagnostic-session-state-HO94DMou.js → diagnostic-session-state-DqgfGYqZ.js} +0 -0
- /package/dist/plugin-sdk/{draft-stream-loop-CKyHn8IX.js → draft-stream-loop-CrOPfV3F.js} +0 -0
- /package/dist/plugin-sdk/{fetch-Cu-ahkie.js → fetch-BtmoPIlf.js} +0 -0
- /package/dist/plugin-sdk/{gateway-registry-DFsoY6C0.js → gateway-registry-DZDsqicG.js} +0 -0
- /package/dist/plugin-sdk/{inbound-context-BFnIdcqI.js → inbound-context-DrAcXE0y.js} +0 -0
- /package/dist/plugin-sdk/{internal-qo16nNU1.js → internal-CG_nHo-2.js} +0 -0
- /package/dist/plugin-sdk/{memory-search-C3C0bD2H.js → memory-search-VFll-AIb.js} +0 -0
- /package/dist/plugin-sdk/{pairing-token-N_6Jbt1L.js → pairing-token-Cs3BRKc0.js} +0 -0
- /package/dist/plugin-sdk/{path-alias-guards-Dg3gU-MA.js → path-alias-guards-BJZD5JMJ.js} +0 -0
- /package/dist/plugin-sdk/{polls-DQrR-qT3.js → polls-DKQXVfJp.js} +0 -0
- /package/dist/plugin-sdk/{proxy-7xs_rsnV.js → proxy-DWpYcsvR.js} +0 -0
- /package/dist/plugin-sdk/{qmd-scope-D1sSG_Rx.js → qmd-scope-CdX34VCV.js} +0 -0
- /package/dist/plugin-sdk/{redact-identifier-Q3tkvxhm.js → redact-identifier-Lt7t3l7S.js} +0 -0
- /package/dist/plugin-sdk/{redact-sensitive-url-dPvnFFsK.js → redact-sensitive-url-g-ukZjwA.js} +0 -0
- /package/dist/plugin-sdk/{render-Bwu_WxwA.js → render-e7fENCYH.js} +0 -0
- /package/dist/plugin-sdk/{reply-prefix-Bqzm6DC1.js → reply-prefix-ClpxvL_w.js} +0 -0
- /package/dist/plugin-sdk/{reply-reference-BkbK_DWT.js → reply-reference-Bqk-7HXE.js} +0 -0
- /package/dist/plugin-sdk/{secure-random-Bl-AVLVb.js → secure-random-BIkG-k4s.js} +0 -0
- /package/dist/plugin-sdk/{shared-clhhbWN3.js → shared-CBgp_GBw.js} +0 -0
- /package/dist/plugin-sdk/{target-errors-C_SVKoEv.js → target-errors-Ckufe179.js} +0 -0
- /package/dist/plugin-sdk/{targets-BDvvnlph.js → targets-CoMJ1ry1.js} +0 -0
- /package/dist/plugin-sdk/{tokens-BvtlOzVP.js → tokens-BbnqfVuu.js} +0 -0
- /package/dist/plugin-sdk/{tool-loop-detection-CWphm1k_.js → tool-loop-detection-Bp8bPJLs.js} +0 -0
- /package/dist/plugin-sdk/{ui-e020ouhJ.js → ui-Be8cLHIS.js} +0 -0
- /package/dist/plugin-sdk/{with-timeout-BYrRAYFV.js → with-timeout-ckWB8rTo.js} +0 -0
|
@@ -7,6 +7,15 @@ const BASE_THINKING_LEVELS = [
|
|
|
7
7
|
"high"
|
|
8
8
|
];
|
|
9
9
|
const XHIGH_THINKING_LEVELS = [...BASE_THINKING_LEVELS, "xhigh"];
|
|
10
|
+
const MAX_THINKING_LEVELS = [
|
|
11
|
+
"off",
|
|
12
|
+
"low",
|
|
13
|
+
"medium",
|
|
14
|
+
"high",
|
|
15
|
+
"xhigh",
|
|
16
|
+
"max"
|
|
17
|
+
];
|
|
18
|
+
const ULTRA_THINKING_LEVELS = [...MAX_THINKING_LEVELS, "ultra"];
|
|
10
19
|
const XHIGH_MODEL_REFS = [
|
|
11
20
|
"openai/gpt-5.6",
|
|
12
21
|
"openai/gpt-5.6-terra",
|
|
@@ -29,6 +38,21 @@ const XHIGH_MODEL_REFS = [
|
|
|
29
38
|
];
|
|
30
39
|
const XHIGH_MODEL_SET = new Set(XHIGH_MODEL_REFS.map((entry) => entry.toLowerCase()));
|
|
31
40
|
const XHIGH_MODEL_IDS = new Set(XHIGH_MODEL_REFS.map((entry) => entry.split("/")[1]?.toLowerCase()).filter((entry) => Boolean(entry)));
|
|
41
|
+
const MAX_MODEL_REFS = new Set([
|
|
42
|
+
"openai/gpt-5.6",
|
|
43
|
+
"openai/gpt-5.6-sol",
|
|
44
|
+
"openai/gpt-5.6-terra",
|
|
45
|
+
"openai/gpt-5.6-luna",
|
|
46
|
+
"openai-codex/gpt-5.6-sol",
|
|
47
|
+
"openai-codex/gpt-5.6-terra",
|
|
48
|
+
"openai-codex/gpt-5.6-luna"
|
|
49
|
+
].map((entry) => entry.toLowerCase()));
|
|
50
|
+
const MAX_MODEL_IDS = new Set([
|
|
51
|
+
"gpt-5.6",
|
|
52
|
+
"gpt-5.6-sol",
|
|
53
|
+
"gpt-5.6-terra",
|
|
54
|
+
"gpt-5.6-luna"
|
|
55
|
+
]);
|
|
32
56
|
function normalizeProviderId(provider) {
|
|
33
57
|
if (!provider) {
|
|
34
58
|
return "";
|
|
@@ -51,6 +75,12 @@ function normalizeThinkLevel(raw) {
|
|
|
51
75
|
if (collapsed === "xhigh" || collapsed === "extrahigh") {
|
|
52
76
|
return "xhigh";
|
|
53
77
|
}
|
|
78
|
+
if (key === "max") {
|
|
79
|
+
return "max";
|
|
80
|
+
}
|
|
81
|
+
if (key === "ultra") {
|
|
82
|
+
return "ultra";
|
|
83
|
+
}
|
|
54
84
|
if (key === "off") {
|
|
55
85
|
return "off";
|
|
56
86
|
}
|
|
@@ -84,12 +114,10 @@ function normalizeThinkLevel(raw) {
|
|
|
84
114
|
}
|
|
85
115
|
if ([
|
|
86
116
|
"high",
|
|
87
|
-
"ultra",
|
|
88
117
|
"ultrathink",
|
|
89
118
|
"think-hard",
|
|
90
119
|
"thinkhardest",
|
|
91
|
-
"highest"
|
|
92
|
-
"max"
|
|
120
|
+
"highest"
|
|
93
121
|
].includes(key)) {
|
|
94
122
|
return "high";
|
|
95
123
|
}
|
|
@@ -98,6 +126,17 @@ function normalizeThinkLevel(raw) {
|
|
|
98
126
|
}
|
|
99
127
|
return undefined;
|
|
100
128
|
}
|
|
129
|
+
function supportsMaxThinking(provider, model) {
|
|
130
|
+
const modelKey = model?.trim().toLowerCase();
|
|
131
|
+
if (!modelKey) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
const providerKey = provider?.trim().toLowerCase();
|
|
135
|
+
if (providerKey) {
|
|
136
|
+
return MAX_MODEL_REFS.has(`${providerKey}/${modelKey}`);
|
|
137
|
+
}
|
|
138
|
+
return MAX_MODEL_IDS.has(modelKey);
|
|
139
|
+
}
|
|
101
140
|
function supportsXHighThinking(provider, model) {
|
|
102
141
|
const modelKey = model?.trim().toLowerCase();
|
|
103
142
|
if (!modelKey) {
|
|
@@ -123,6 +162,14 @@ function normalizeThinkingLevels(values) {
|
|
|
123
162
|
return levels;
|
|
124
163
|
}
|
|
125
164
|
function listGenericThinkingLevels(provider, model) {
|
|
165
|
+
const normalizedProvider = normalizeProviderId(provider);
|
|
166
|
+
const normalizedModel = model?.trim().toLowerCase();
|
|
167
|
+
if (normalizedProvider === "openai-codex" && (normalizedModel === "gpt-5.6-sol" || normalizedModel === "gpt-5.6-terra")) {
|
|
168
|
+
return [...ULTRA_THINKING_LEVELS];
|
|
169
|
+
}
|
|
170
|
+
if (supportsMaxThinking(provider, model)) {
|
|
171
|
+
return [...MAX_THINKING_LEVELS];
|
|
172
|
+
}
|
|
126
173
|
return supportsXHighThinking(provider, model) ? [...XHIGH_THINKING_LEVELS] : [...BASE_THINKING_LEVELS];
|
|
127
174
|
}
|
|
128
175
|
function isAnthropicAdaptiveModel(model) {
|
|
@@ -244,6 +291,9 @@ function listThinkingLevels(provider, model) {
|
|
|
244
291
|
function listThinkingLevelLabels(provider, model) {
|
|
245
292
|
return listThinkingLevels(provider, model);
|
|
246
293
|
}
|
|
294
|
+
function supportsThinkingLevel(provider, model, level) {
|
|
295
|
+
return listThinkingLevels(provider, model).includes(level);
|
|
296
|
+
}
|
|
247
297
|
function formatThinkingLevels(provider, model, separator = ", ") {
|
|
248
298
|
return listThinkingLevelLabels(provider, model).join(separator);
|
|
249
299
|
}
|
|
@@ -262,4 +312,4 @@ function formatXHighModelHint() {
|
|
|
262
312
|
}
|
|
263
313
|
|
|
264
314
|
//#endregion
|
|
265
|
-
export { BASE_THINKING_LEVELS, XHIGH_THINKING_LEVELS, formatThinkingLevels, formatXHighModelHint, isBinaryThinkingProvider, listThinkingLevelLabels, listThinkingLevels, normalizeThinkLevel, resolveModelThinkingCapability, supportsXHighThinking };
|
|
315
|
+
export { BASE_THINKING_LEVELS, XHIGH_THINKING_LEVELS, formatThinkingLevels, formatXHighModelHint, isBinaryThinkingProvider, listThinkingLevelLabels, listThinkingLevels, normalizeThinkLevel, resolveModelThinkingCapability, supportsThinkingLevel, supportsXHighThinking };
|
package/dist/shared/pid-alive.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import syncFs 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 = syncFs.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 syncFs 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(syncFs.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
|
+
syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
81
81
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
syncFs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
83
|
+
syncFs.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 syncFs 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(syncFs.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
|
+
syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
97
97
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
syncFs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
99
|
+
syncFs.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 syncFs 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 = syncFs.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
|
+
syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
54
54
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
syncFs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
56
|
+
syncFs.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 syncFs 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(syncFs.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(syncFs.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
|
+
syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
209
209
|
const tmpPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
syncFs.writeFileSync(tmpPath, `${JSON.stringify(store, null, 2)}\n`, "utf8");
|
|
211
|
+
syncFs.renameSync(tmpPath, filePath);
|
|
212
212
|
cachedStore = store;
|
|
213
213
|
loadedPath = filePath;
|
|
214
214
|
}
|
|
@@ -22,9 +22,9 @@ import { resolveAgentRoute } from "../routing/resolve-route.js";
|
|
|
22
22
|
import { recordChannelActivity } from "../infra/channel-activity.js";
|
|
23
23
|
import { formatLocationText, toLocationContext } from "../channels/location.js";
|
|
24
24
|
import { resolveMentionGatingWithBypass } from "../channels/mention-gating.js";
|
|
25
|
+
import { findModelInCatalog, loadModelCatalog, modelSupportsVision } from "../agents/model-catalog.js";
|
|
25
26
|
import { isSenderAllowed, normalizeAllowFrom, normalizeDmAllowFromWithStore } from "./bot-access.js";
|
|
26
27
|
import { buildGroupLabel, buildSenderLabel, buildSenderName, buildTelegramGroupFrom, buildTelegramGroupPeerId, buildTelegramParentPeer, buildTypingThreadParams, describeReplyTarget, expandTextLinks, extractTelegramLocation, hasBotMention, normalizeForwardedContext, resolveTelegramMediaPlaceholder, resolveTelegramThreadSpec } from "./bot/helpers.js";
|
|
27
|
-
import { findModelInCatalog, loadModelCatalog, modelSupportsVision } from "../agents/model-catalog.js";
|
|
28
28
|
import { withTelegramApiErrorLogging } from "./api-logging.js";
|
|
29
29
|
import { createStatusReactionController } from "../channels/status-reactions.js";
|
|
30
30
|
import { enforceTelegramDmAccess } from "./dm-access.js";
|
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 syncFs 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 (!syncFs.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 = syncFs.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 (!syncFs.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 = syncFs.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 syncFs 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 syncFs.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 syncFs.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 = syncFs.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 = syncFs.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 syncFs 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
|
+
syncFs.mkdirSync(path.dirname(auditLog), {
|
|
38
38
|
recursive: true,
|
|
39
39
|
mode: fileMode === 432 ? 504 : 448
|
|
40
40
|
});
|
|
41
|
-
|
|
41
|
+
syncFs.appendFileSync(auditLog, `${JSON.stringify(entry)}\n`, {
|
|
42
42
|
encoding: "utf8",
|
|
43
43
|
mode: 384
|
|
44
44
|
});
|
|
45
|
-
|
|
45
|
+
syncFs.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
|
+
syncFs.mkdirSync(path.dirname(pidFile), {
|
|
142
142
|
recursive: true,
|
|
143
143
|
mode: 448
|
|
144
144
|
});
|
|
145
|
-
if (
|
|
146
|
-
const raw =
|
|
145
|
+
if (syncFs.existsSync(pidFile)) {
|
|
146
|
+
const raw = syncFs.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
|
+
syncFs.rmSync(pidFile, { force: true });
|
|
155
155
|
} else {
|
|
156
156
|
throw err;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
} else {
|
|
160
|
-
|
|
160
|
+
syncFs.rmSync(pidFile, { force: true });
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
|
-
|
|
163
|
+
syncFs.writeFileSync(pidFile, `${process.pid}\n`, {
|
|
164
164
|
encoding: "utf8",
|
|
165
165
|
mode: fileMode
|
|
166
166
|
});
|
|
167
|
-
|
|
167
|
+
syncFs.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
|
+
syncFs.mkdirSync(path.dirname(socketPath), {
|
|
187
187
|
recursive: true,
|
|
188
188
|
mode: fileMode === 432 ? 504 : 448
|
|
189
189
|
});
|
|
190
|
-
|
|
190
|
+
syncFs.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
|
+
syncFs.chmodSync(socketPath, fileMode);
|
|
200
200
|
const close = async () => {
|
|
201
201
|
await new Promise((resolve) => {
|
|
202
202
|
server.close(() => resolve());
|
|
203
203
|
});
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
syncFs.rmSync(socketPath, { force: true });
|
|
205
|
+
syncFs.rmSync(pidFile, { force: true });
|
|
206
206
|
};
|
|
207
207
|
const shutdown = () => {
|
|
208
208
|
void close().finally(() => process.exit(0));
|
|
@@ -3,7 +3,7 @@ import { WalletProviderError } from "../wallet-provider-adapter.js";
|
|
|
3
3
|
import { buildCreateAssociatedTokenAccountIdempotentInstruction, buildTransferCheckedInstruction, deriveAssociatedTokenAddress, toTransactionInstruction } from "../solana-spl-transfer.js";
|
|
4
4
|
import { walletDiagnosticErrorString } from "../wallet-redaction.js";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
|
-
import
|
|
6
|
+
import syncFs from "node:fs";
|
|
7
7
|
import { createDecipheriv, randomUUID, scryptSync } from "node:crypto";
|
|
8
8
|
|
|
9
9
|
//#region src/wallet/providers/embedded-keystore-adapter.ts
|
|
@@ -118,7 +118,7 @@ var EmbeddedKeystoreAdapter = class {
|
|
|
118
118
|
details: "missing embedded keystore config (FASED_WALLET_KEYSTORE_PATH, FASED_WALLET_PASSPHRASE, FASED_WALLET_[EMBEDDED_KEYSTORE_]RPC_URL)"
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
|
-
if (!
|
|
121
|
+
if (!syncFs.existsSync(this.keystorePath)) {
|
|
122
122
|
return {
|
|
123
123
|
ok: false,
|
|
124
124
|
provider: this.id,
|
|
@@ -128,7 +128,7 @@ var EmbeddedKeystoreAdapter = class {
|
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
try {
|
|
131
|
-
const raw = await
|
|
131
|
+
const raw = await syncFs.promises.readFile(this.keystorePath, "utf8");
|
|
132
132
|
if (detectKeystoreType(raw) !== "solana-envelope") {
|
|
133
133
|
throw new Error("keystore file is not a Solana keystore envelope");
|
|
134
134
|
}
|
|
@@ -165,7 +165,7 @@ var EmbeddedKeystoreAdapter = class {
|
|
|
165
165
|
return result;
|
|
166
166
|
}
|
|
167
167
|
try {
|
|
168
|
-
const raw = await
|
|
168
|
+
const raw = await syncFs.promises.readFile(this.keystorePath, "utf8");
|
|
169
169
|
const type = detectKeystoreType(raw);
|
|
170
170
|
if (type === "solana-envelope") {
|
|
171
171
|
if (this.supportsChain("solana")) {
|
|
@@ -375,7 +375,7 @@ var EmbeddedKeystoreAdapter = class {
|
|
|
375
375
|
});
|
|
376
376
|
}
|
|
377
377
|
this.solanaKeypairPromise ??= (async () => {
|
|
378
|
-
const raw = await
|
|
378
|
+
const raw = await syncFs.promises.readFile(this.keystorePath, "utf8");
|
|
379
379
|
const envelope = parseSolanaKeystoreEnvelope(raw);
|
|
380
380
|
if (!envelope) {
|
|
381
381
|
throw new WalletProviderError({
|
|
@@ -4,7 +4,7 @@ import { WalletProviderError } from "../wallet-provider-adapter.js";
|
|
|
4
4
|
import { buildCreateAssociatedTokenAccountIdempotentInstruction, buildTransferCheckedInstruction, deriveAssociatedTokenAddress } from "../solana-spl-transfer.js";
|
|
5
5
|
import { redactWalletDiagnosticText, walletDiagnosticErrorMessage, walletDiagnosticErrorString } from "../wallet-redaction.js";
|
|
6
6
|
import { parseLocalSocketSignerResponseEnvelope, validateLocalSocketSignerResult } from "../local-socket-signer-protocol.js";
|
|
7
|
-
import
|
|
7
|
+
import syncFs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import net from "node:net";
|
|
10
10
|
|
|
@@ -29,7 +29,7 @@ function signerTimeoutFor(payload) {
|
|
|
29
29
|
function assertSecureLocalSignerSocket(socketPath) {
|
|
30
30
|
let stat;
|
|
31
31
|
try {
|
|
32
|
-
stat =
|
|
32
|
+
stat = syncFs.lstatSync(socketPath);
|
|
33
33
|
} catch (err) {
|
|
34
34
|
throw new WalletProviderError({
|
|
35
35
|
code: "wallet_provider_unavailable",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ensureWalletStateDir } from "./wallet-runtime-config.js";
|
|
2
|
-
import
|
|
2
|
+
import syncFs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { createHash, createPublicKey, randomBytes, timingSafeEqual, verify } from "node:crypto";
|
|
5
5
|
|
|
@@ -163,7 +163,7 @@ function normalizeState(input) {
|
|
|
163
163
|
}
|
|
164
164
|
function loadState(env = process.env) {
|
|
165
165
|
const statePath = resolveStatePath(env);
|
|
166
|
-
if (!
|
|
166
|
+
if (!syncFs.existsSync(statePath)) {
|
|
167
167
|
return {
|
|
168
168
|
version: 2,
|
|
169
169
|
passkeys: [],
|
|
@@ -172,7 +172,7 @@ function loadState(env = process.env) {
|
|
|
172
172
|
};
|
|
173
173
|
}
|
|
174
174
|
try {
|
|
175
|
-
const raw =
|
|
175
|
+
const raw = syncFs.readFileSync(statePath, "utf8");
|
|
176
176
|
return normalizeState(JSON.parse(raw));
|
|
177
177
|
} catch {
|
|
178
178
|
return {
|
|
@@ -185,12 +185,12 @@ function loadState(env = process.env) {
|
|
|
185
185
|
}
|
|
186
186
|
function saveState(state, env = process.env) {
|
|
187
187
|
const statePath = resolveStatePath(env);
|
|
188
|
-
|
|
188
|
+
syncFs.writeFileSync(statePath, `${JSON.stringify(state, null, 2)}\n`, {
|
|
189
189
|
encoding: "utf8",
|
|
190
190
|
mode: 384
|
|
191
191
|
});
|
|
192
192
|
try {
|
|
193
|
-
|
|
193
|
+
syncFs.chmodSync(statePath, 384);
|
|
194
194
|
} catch {}
|
|
195
195
|
}
|
|
196
196
|
function pruneState(state) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ensureWalletStateDir } from "./wallet-runtime-config.js";
|
|
2
|
-
import
|
|
2
|
+
import syncFs from "node:fs";
|
|
3
3
|
import { randomBytes } from "node:crypto";
|
|
4
4
|
|
|
5
5
|
//#region src/wallet/wallet-audit-log.ts
|
|
@@ -15,22 +15,22 @@ function appendWalletAuditEntry(params) {
|
|
|
15
15
|
actor: params.actor?.trim() || "system",
|
|
16
16
|
details: params.details ?? {}
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
syncFs.appendFileSync(paths.auditLogPath, `${JSON.stringify(entry)}\n`, {
|
|
19
19
|
encoding: "utf8",
|
|
20
20
|
mode: 384
|
|
21
21
|
});
|
|
22
22
|
try {
|
|
23
|
-
|
|
23
|
+
syncFs.chmodSync(paths.auditLogPath, 384);
|
|
24
24
|
} catch {}
|
|
25
25
|
return entry;
|
|
26
26
|
}
|
|
27
27
|
function readWalletAuditEntries(params) {
|
|
28
28
|
const paths = ensureWalletStateDir(params?.env ?? process.env);
|
|
29
|
-
if (!
|
|
29
|
+
if (!syncFs.existsSync(paths.auditLogPath)) {
|
|
30
30
|
return [];
|
|
31
31
|
}
|
|
32
32
|
const limit = Math.max(1, Math.min(500, params?.limit ?? 100));
|
|
33
|
-
const raw =
|
|
33
|
+
const raw = syncFs.readFileSync(paths.auditLogPath, "utf8");
|
|
34
34
|
const lines = raw.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
35
35
|
const out = [];
|
|
36
36
|
for (let i = lines.length - 1; i >= 0; i -= 1) {
|