@fased/fased 0.1.54 → 0.1.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/capability-catalog.json +12 -0
- package/dist/acp/client.js +2 -2
- package/dist/acp/secret-file.js +2 -2
- package/dist/agents/agent-scope.js +2 -2
- package/dist/agents/apply-patch.js +8 -8
- package/dist/agents/auth-profiles/paths.js +2 -2
- package/dist/agents/auth-profiles/store.js +2 -2
- package/dist/agents/authenticated-model-catalog.js +28 -0
- package/dist/agents/bash-tools.exec-host-node.js +1 -1
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cli-credentials.js +4 -4
- package/dist/agents/copilot-dynamic-headers.js +37 -0
- package/dist/agents/current-model-catalog.js +9 -13
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/embedded-pi-mcp.js +4 -4
- package/dist/agents/identity-avatar.js +3 -3
- package/dist/agents/identity-file.js +2 -2
- package/dist/agents/model-catalog-normalized.js +1 -0
- package/dist/agents/model-catalog-source.js +2 -2
- package/dist/agents/model-catalog.js +1 -1
- package/dist/agents/model-metadata.js +58 -9
- package/dist/agents/openai-codex-app-server.js +499 -0
- package/dist/agents/pi-embedded-runner/compact.js +3 -3
- package/dist/agents/pi-embedded-runner/extra-params.js +168 -79
- package/dist/agents/pi-embedded-runner/model.js +62 -1
- package/dist/agents/pi-embedded-runner/moonshot-stream-wrappers.js +46 -0
- package/dist/agents/pi-embedded-runner/openai-stream-wrappers.js +221 -0
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -4
- package/dist/agents/pi-embedded-runner/run.js +5 -2
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-runner.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
- package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
- package/dist/agents/pi-model-discovery.js +6 -6
- package/dist/agents/pi-project-settings.js +3 -3
- package/dist/agents/pi-tools.js +2 -2
- package/dist/agents/sandbox/fs-bridge.js +2 -2
- package/dist/agents/session-dirs.js +4 -4
- package/dist/agents/session-write-lock.js +13 -13
- package/dist/agents/shell-utils.js +5 -5
- package/dist/agents/skills/bundled-dir.js +4 -4
- package/dist/agents/skills/local-loader.js +6 -6
- package/dist/agents/skills/plugin-skills.js +2 -2
- package/dist/agents/skills/workspace.js +13 -13
- package/dist/agents/skills-install-download.js +7 -7
- package/dist/agents/skills-install-plan.js +2 -2
- package/dist/agents/skills-install.js +2 -2
- package/dist/agents/skills-status.js +2 -2
- package/dist/agents/subagent-depth.js +2 -2
- package/dist/agents/system-prompt-params.js +2 -2
- package/dist/agents/tools/discord-actions-messaging.js +1 -1
- package/dist/agents/tools/message-tool.js +1 -1
- package/dist/agents/tools/session-status-tool.js +3 -3
- package/dist/agents/tools/slack-actions.js +1 -1
- package/dist/agents/tools/tts-tool.js +1 -1
- package/dist/agents/workspace.js +22 -22
- package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
- package/dist/auto-reply/reply/agent-runner.js +2 -2
- package/dist/auto-reply/reply/commands-export-session.js +7 -7
- package/dist/auto-reply/reply/commands-models.js +1 -1
- package/dist/auto-reply/reply/directive-handling.impl.js +4 -1
- package/dist/auto-reply/reply/dispatch-acp.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +1 -1
- package/dist/auto-reply/reply/get-reply-run.js +20 -2
- package/dist/auto-reply/reply/model-selection.js +1 -1
- package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
- package/dist/auto-reply/reply/post-compaction-context.js +3 -3
- package/dist/auto-reply/reply/session-reset-model.js +1 -1
- package/dist/auto-reply/reply/session.js +3 -3
- package/dist/auto-reply/skill-commands.js +3 -3
- package/dist/auto-reply/status.js +7 -7
- package/dist/auto-reply/thinking.js +1 -1
- package/dist/brand.js +1 -1
- package/dist/browser/cdp.helpers.js +2 -2
- package/dist/browser/chrome.executables.js +3 -3
- package/dist/browser/chrome.js +5 -5
- package/dist/browser/chrome.profile-decoration.js +6 -6
- package/dist/browser/extension-relay.js +7 -7
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/server-context.js +2 -2
- package/dist/browser/trash.js +4 -4
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/server.js +4 -4
- package/dist/capabilities/catalog.js +3 -3
- package/dist/channels/plugins/catalog.js +3 -3
- package/dist/cli/browser-cli-extension.js +6 -6
- package/dist/cli/command-format.js +2 -2
- package/dist/cli/cron-cli/register.cron-add.js +1 -1
- package/dist/cli/cron-cli/register.cron-simple.js +2 -2
- package/dist/cli/dns-cli.js +9 -9
- package/dist/cli/gateway-cli/dev.js +5 -5
- package/dist/cli/gateway-cli/run.js +2 -2
- package/dist/cli/hooks-cli.js +5 -5
- package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
- package/dist/cli/memory-cli.js +7 -7
- package/dist/cli/nodes-media-utils.js +2 -2
- package/dist/cli/plugins-cli.js +2 -2
- package/dist/cli/program/register.agent.js +1 -1
- package/dist/cli/providers-cli.js +3 -2
- package/dist/cli/secrets-cli.js +3 -3
- package/dist/cli/windows-argv.js +2 -2
- package/dist/commands/agent.js +22 -3
- package/dist/commands/auth-choice.apply.api-providers.js +3 -8
- package/dist/commands/auth-choice.apply.openai.js +13 -7
- package/dist/commands/auth-choice.model-check.js +1 -2
- package/dist/commands/configure.gateway-auth.js +14 -16
- package/dist/commands/dashboard-link.js +3 -3
- package/dist/commands/doctor-config-flow.js +1 -1
- package/dist/commands/doctor-install.js +5 -5
- package/dist/commands/doctor-memory-search.js +2 -2
- package/dist/commands/doctor-platform-notes.js +2 -2
- package/dist/commands/doctor-sandbox.js +2 -2
- package/dist/commands/doctor-state-integrity.js +23 -23
- package/dist/commands/doctor-workspace.js +3 -3
- package/dist/commands/doctor.js +3 -3
- package/dist/commands/hosted-dashboard-probe.js +3 -3
- package/dist/commands/managed-up.js +2 -2
- package/dist/commands/model-picker.js +27 -8
- package/dist/commands/models/list.probe.js +1 -1
- package/dist/commands/models/list.registry.js +13 -17
- package/dist/commands/models/list.status-command.js +2 -2
- package/dist/commands/onboard-auth.config-core.js +1 -1
- package/dist/commands/onboard-auth.config-litellm.js +21 -21
- package/dist/commands/onboard-auth.credentials.js +3 -4
- package/dist/commands/onboard-auth.js +0 -1
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/openai-codex-model-default.js +28 -5
- package/dist/commands/sessions-cleanup.js +2 -2
- package/dist/commands/signal-install.js +6 -6
- package/dist/commands/status-all/channels.js +2 -2
- package/dist/commands/wallet.js +47 -47
- package/dist/config/cache-utils.js +2 -2
- package/dist/config/includes.js +5 -5
- package/dist/config/io.js +2 -2
- package/dist/config/paths.js +3 -3
- package/dist/config/sat-runtime-ids.js +3 -3
- package/dist/config/sessions/disk-budget.js +6 -6
- package/dist/config/sessions/paths.js +2 -2
- package/dist/config/sessions/store.js +17 -17
- package/dist/config/sessions/transcript.js +4 -4
- package/dist/config/talk.js +2 -2
- package/dist/config/zod-schema.agent-defaults.js +6 -2
- package/dist/config/zod-schema.agent-runtime.js +6 -2
- package/dist/config/zod-schema.core.js +6 -2
- package/dist/control-ui/assets/{app-BKlu6OKz.js → app-D7TXyNRi.js} +1548 -1540
- package/dist/control-ui/assets/chat-model-ref-Djkv93yn.js +2 -0
- package/dist/control-ui/assets/{index-nrFcGMv-.js → index-BmSBom-w.js} +3 -3
- package/dist/control-ui/assets/{providers-BQFrRqym.js → providers-Cc89iMdx.js} +5 -5
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/version.json +1 -0
- package/dist/cron/isolated-agent/run.js +6 -2
- package/dist/cron/service/jobs.js +11 -1
- package/dist/cron/service/store.js +2 -2
- package/dist/cron/store.js +6 -6
- package/dist/daemon/systemd-system.js +5 -5
- package/dist/discord/monitor/gateway-plugin.js +2 -2
- package/dist/discord/monitor/thread-bindings.state.js +2 -2
- package/dist/discord/voice/manager.js +1 -1
- package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
- package/dist/gateway/client.js +4 -4
- package/dist/gateway/control-ui-boot-check.js +6 -6
- package/dist/gateway/control-ui-login.js +7 -7
- package/dist/gateway/control-ui.js +11 -9
- package/dist/gateway/hooks-mapping.js +4 -4
- package/dist/gateway/protocol/schema/agents-models-skills.js +66 -4
- package/dist/gateway/server-discovery.js +2 -2
- package/dist/gateway/server-http.js +4 -4
- package/dist/gateway/server-methods/chat.js +3 -3
- package/dist/gateway/server-methods/models.js +8 -8
- package/dist/gateway/server-methods/sessions.js +8 -8
- package/dist/gateway/server-methods/tts.js +2 -2
- package/dist/gateway/server-methods/usage.js +2 -2
- package/dist/gateway/server-model-catalog.js +3 -0
- package/dist/gateway/server.impl.js +3 -3
- package/dist/gateway/session-compaction-checkpoints.js +4 -4
- package/dist/gateway/session-utils.fs.js +24 -24
- package/dist/gateway/session-utils.js +6 -6
- package/dist/gateway/sessions-patch.js +27 -24
- package/dist/hooks/bundled-dir.js +4 -4
- package/dist/hooks/gmail-setup-utils.js +6 -6
- package/dist/hooks/import-url.js +2 -2
- package/dist/hooks/loader.js +4 -4
- package/dist/hooks/workspace.js +7 -7
- package/dist/infra/archive.js +17 -17
- package/dist/infra/boundary-file-read.js +2 -2
- package/dist/infra/boundary-path.js +15 -15
- package/dist/infra/brew.js +2 -2
- package/dist/infra/control-ui-assets.js +14 -14
- package/dist/infra/device-auth-store.js +8 -8
- package/dist/infra/device-identity.js +8 -8
- package/dist/infra/dotenv.js +2 -2
- package/dist/infra/exec-approvals.js +8 -8
- package/dist/infra/exec-command-resolution.js +4 -4
- package/dist/infra/exec-safe-bin-trust.js +2 -2
- package/dist/infra/fased-root.js +5 -5
- package/dist/infra/fs-safe.js +14 -14
- package/dist/infra/gateway-lock.js +11 -11
- package/dist/infra/git-commit.js +5 -5
- package/dist/infra/git-root.js +4 -4
- package/dist/infra/hosted-runtime-artifact.js +3 -3
- package/dist/infra/is-main.js +2 -2
- package/dist/infra/json-file.js +7 -7
- package/dist/infra/outbound/delivery-queue.js +16 -16
- package/dist/infra/path-env.js +3 -3
- package/dist/infra/ports-lsof.js +4 -4
- package/dist/infra/provider-usage.auth.js +3 -3
- package/dist/infra/safe-open-sync.js +2 -2
- package/dist/infra/session-cost-usage.js +9 -9
- package/dist/infra/shell-env.js +2 -2
- package/dist/infra/state-migrations.fs.js +6 -6
- package/dist/infra/state-migrations.js +23 -23
- package/dist/infra/tmp-fased-dir.js +6 -6
- package/dist/infra/update-runner.js +31 -3
- package/dist/infra/widearea-dns.js +3 -3
- package/dist/infra/wsl.js +2 -2
- package/dist/light-update-status.js +1 -1
- package/dist/line/accounts.js +2 -2
- package/dist/line/download.js +2 -2
- package/dist/logging/config.js +3 -3
- package/dist/logging/logger.js +7 -7
- package/dist/managed/federation.js +3 -3
- package/dist/managed/tunnel.js +3 -3
- package/dist/media/store.js +13 -13
- package/dist/media-understanding/runner.js +3 -3
- package/dist/memory/embeddings.js +2 -2
- package/dist/memory/internal.js +10 -10
- package/dist/memory/inventory.js +19 -2
- package/dist/memory/manager-sync-ops.js +7 -7
- package/dist/memory/repair-executor.js +17 -17
- package/dist/node-host/invoke-system-run-plan.js +8 -8
- package/dist/node-host/invoke.js +2 -2
- package/dist/node-host/runner.js +3 -3
- package/dist/pairing/pairing-store.js +3 -3
- package/dist/plugin-sdk/{accounts-DW9OS5Ll.js → accounts-DzWlKv1U.js} +1 -1
- package/dist/plugin-sdk/{actions-DQUXohRr.js → actions-BplQVLL6.js} +4 -4
- package/dist/plugin-sdk/{active-listener-BZQWZPF7.js → active-listener-x4MLhYUw.js} +1 -1
- package/dist/plugin-sdk/{allow-list-BYeKk0Sy.js → allow-list-DyAxs4yw.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-t4mmHsI2.js → audio-preflight-G8h3Sn8_.js} +43 -47
- package/dist/plugin-sdk/{audit-BZk_6Buw.js → audit-CWknklvI.js} +1 -1
- package/dist/plugin-sdk/{channel-access-CN5HiWdb.js → channel-access-a9Dnfw7-.js} +1 -1
- package/dist/plugin-sdk/{channel-access-configure-B7Kkvx9K.js → channel-access-configure-CD4QDN5E.js} +1 -1
- package/dist/plugin-sdk/{channel-adapters.discord-IOZP8Cv5.js → channel-adapters.discord-BS4S4Svh.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
- package/dist/plugin-sdk/channel-plugin-common.js +4 -4
- package/dist/plugin-sdk/{chunk-B2ffJ-LR.js → chunk-B8EZkwiT.js} +1 -1
- package/dist/plugin-sdk/{chunk-items-jOdkyP53.js → chunk-items-CEPklxGe.js} +1 -1
- package/dist/plugin-sdk/command-status.d.ts +2 -2
- package/dist/plugin-sdk/command-status.js +43 -47
- package/dist/plugin-sdk/{commands-registry-BWb4NcfW.js → commands-registry-BfEa4tFA.js} +2 -2
- package/dist/plugin-sdk/{common-C4XrB73N.js → common-CbfckC19.js} +1 -1
- package/dist/plugin-sdk/{config-rySyVtKs.js → config-Bt5GhnA-.js} +105 -73
- package/dist/plugin-sdk/{config-schema-BaybPPrJ.js → config-schema-B9DKr6J5.js} +96239 -81587
- package/dist/plugin-sdk/device-pair.d.ts +1 -1
- package/dist/plugin-sdk/device-pair.js +2 -3
- package/dist/plugin-sdk/{diagnostic-Dfn1iERm.js → diagnostic-DLL_zekv.js} +3 -3
- package/dist/plugin-sdk/{directory-live-DatqU-eS.js → directory-live-CSuYxdwk.js} +1 -1
- package/dist/plugin-sdk/{directory-live-ClwN5KKq.js → directory-live-Dw7ZgC9_.js} +1 -1
- package/dist/plugin-sdk/discord.d.ts +5 -5
- package/dist/plugin-sdk/discord.js +31 -32
- package/dist/plugin-sdk/{draft-stream-controls-D4Tb_iS_.js → draft-stream-controls-BqchW1vi.js} +1 -1
- package/dist/plugin-sdk/{fetch-guard-BuYrl6q2.js → fetch-guard-CeG6u6ld.js} +1 -1
- package/dist/plugin-sdk/{filesystem-manager-B9DDPgfU.js → filesystem-manager-BGGGrkiN.js} +2 -2
- package/dist/plugin-sdk/{fs-safe-BG-VzVkL.js → fs-safe-xBqok6yR.js} +1 -1
- package/dist/plugin-sdk/{group-mentions-DLOOve8d.d.ts → group-mentions-BHRff6j8.d.ts} +1 -1
- package/dist/plugin-sdk/{guilds-BeT3iHHJ.js → guilds-CDhRIX57.js} +1 -1
- package/dist/plugin-sdk/{handle-action-CGF-Qnp0.js → handle-action-DbzZFYnG.js} +24 -25
- package/dist/plugin-sdk/{helpers-DgRMfCnT.js → helpers-CluGKuIV.js} +1 -1
- package/dist/plugin-sdk/{image-ops-CcBfoMLW.js → image-ops-CUaLtIFj.js} +1 -1
- package/dist/plugin-sdk/index.d.ts +8 -8
- package/dist/plugin-sdk/index.js +47 -51
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{login-DpDQyM7r.js → login-DJuHYDiK.js} +3 -3
- package/dist/plugin-sdk/{login-qr-COaSAPY5.js → login-qr-CbHL5ayf.js} +3 -3
- package/dist/plugin-sdk/{manager-Cqz30lA3.js → manager-oHAvZCT3.js} +7 -7
- package/dist/plugin-sdk/{markdown-tables-BOG5sSQQ.js → markdown-tables-Mkx7k92Y.js} +1 -1
- package/dist/plugin-sdk/{media-Bu-nJpPs.js → media-CA8sTmVE.js} +4 -4
- package/dist/plugin-sdk/{monitor-II_NIq3G.js → monitor-CZrN9pev.js} +51 -55
- package/dist/plugin-sdk/{monitor-DL6oEVo8.js → monitor-CmwGqNyV.js} +61 -65
- package/dist/plugin-sdk/{openresponses-http-vkHBBpGY.js → openresponses-http-CWOd4war.js} +43 -47
- package/dist/plugin-sdk/{optional-runtime-dependency-DEojVNfv.js → optional-runtime-dependency-DKmk9PZa.js} +1 -1
- package/dist/plugin-sdk/{outbound-mf2y6KuY.js → outbound-0oN9IfNw.js} +9 -9
- package/dist/plugin-sdk/{outbound-attachment-ivAHpWnn.js → outbound-attachment-DdVkqUzE.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-CvJ6Qa1Q.d.ts → pairing-message-BMkkS038.d.ts} +2 -2
- package/dist/plugin-sdk/{pairing-message-CqYG12t-.js → pairing-message-ClqhfCUk.js} +1 -1
- package/dist/plugin-sdk/{pairing-store-D-21Sphe.js → pairing-store-B01mCSct.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-B6gD1clF.js → pi-model-discovery-Buz0JC1Y.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-3yDxS3ro.js → pi-model-discovery-runtime-DuwuoteY.js} +2 -2
- package/dist/plugin-sdk/{probe-Cyb-DGA3.js → probe--7xtfzMm.js} +3 -3
- package/dist/plugin-sdk/{probe-Dlk0Jxpw.js → probe-BFroeK3g.js} +1 -1
- package/dist/plugin-sdk/{probe-D8JAILir.js → probe-l_whvGLY.js} +1 -1
- package/dist/plugin-sdk/{resolve-channels-zEnvugag.js → probe-xY3Ky0Tx.js} +3 -4
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
- package/dist/plugin-sdk/{pw-ai-CMplwiwf.js → pw-ai-B0domrii.js} +6 -8
- package/dist/plugin-sdk/{qmd-manager-DCUE21Kj.js → qmd-manager-CFFeM4Fl.js} +3 -3
- package/dist/plugin-sdk/{query-expansion-Zr9qQixm.js → query-expansion-CAI2kKLQ.js} +1 -1
- package/dist/plugin-sdk/{replies-wiI4veI7.js → replies-1macZ1mZ.js} +4 -4
- package/dist/plugin-sdk/{resolve-channels-ChWKWtA9.js → resolve-channels-87LZrFk_.js} +2 -2
- package/dist/plugin-sdk/resolve-channels-CwB2_019.js +4 -0
- package/dist/plugin-sdk/{resolve-outbound-target-bm9RUK5q.js → resolve-outbound-target-BdH6LUoW.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-ekGNc6os.js → resolve-route-CkNIKKEW.js} +1 -1
- package/dist/plugin-sdk/{resolve-users-BTvjQuui.js → resolve-users-Cxb5wpAQ.js} +1 -1
- package/dist/plugin-sdk/{resolve-users-CTzoruIZ.js → resolve-users-V6dHh_2B.js} +2 -2
- package/dist/plugin-sdk/{retry-policy-BvlC2SPh.js → retry-policy-9ybIh4Fq.js} +1 -1
- package/dist/plugin-sdk/{runtime-ClSakPxR.js → runtime-Dy420wBu.js} +3 -3
- package/dist/plugin-sdk/{runtime-dependency-yAWxH4El.js → runtime-dependency-CIw9t7-k.js} +123 -15
- package/dist/plugin-sdk/{sandbox-paths-lj7_EVuA.js → sandbox-paths-w64tYl0v.js} +1 -1
- package/dist/plugin-sdk/sat-runtime.d.ts +3 -3
- package/dist/plugin-sdk/sat-runtime.js +44 -10
- package/dist/plugin-sdk/{send-D264hFVb.js → send-2VcOMTN5.js} +9 -9
- package/dist/plugin-sdk/{send-CgyS75Av.js → send-BQUtCJFW.js} +10 -10
- package/dist/plugin-sdk/{send-D58yEeH4.js → send-DPJIIYAs.js} +6 -6
- package/dist/plugin-sdk/{send-C7x6gzSl.js → send-Dqes9tdU.js} +13 -13
- package/dist/plugin-sdk/{send-DrAtUGLM.js → send-J4JWKP62.js} +8 -8
- package/dist/plugin-sdk/{session-DyMtb5YQ.js → session-C_n2S5ub.js} +3 -3
- package/dist/plugin-sdk/{skill-commands-Q80wCyry.js → skill-commands-B7wx9ax8.js} +102 -102
- package/dist/plugin-sdk/{slack-C-I6q3NB.js → slack-BouRQG-W.js} +64 -68
- package/dist/plugin-sdk/{slack-actions-dGE_t_Un.js → slack-actions-CasHVtiq.js} +20 -21
- package/dist/plugin-sdk/slack.d.ts +5 -5
- package/dist/plugin-sdk/slack.js +13 -13
- package/dist/plugin-sdk/{ssrf-BZG8Ztod.js → ssrf-fG4UHKBw.js} +180 -2
- package/dist/plugin-sdk/{sticker-cache-DCrDTYIi.js → sticker-cache-BvGEUas3.js} +3 -3
- package/dist/plugin-sdk/{tables-0mhUOh5v.js → tables-CjlQJV4r.js} +2 -2
- package/dist/plugin-sdk/{device-pairing-D2Yq-_U6.js → tailscale-status-DwpNdO3Z.js} +104 -2
- package/dist/plugin-sdk/{targets-znKHngSk.js → targets-QfP164Dh.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-GBYY8-x9.js → telegram-actions-CwYjV6Db.js} +48 -52
- package/dist/plugin-sdk/telegram.d.ts +5 -5
- package/dist/plugin-sdk/telegram.js +11 -11
- package/dist/plugin-sdk/{thread-bindings.lifecycle-ClzPBK70.js → thread-bindings.lifecycle-DU4iX_Jr.js} +3 -3
- package/dist/plugin-sdk/{thread-bindings.state-Ha01nmrq.js → thread-bindings.state-BgYWFjNF.js} +2 -2
- package/dist/plugin-sdk/{tmp-fased-dir-C_xfeEN9.d.ts → tmp-fased-dir-BdFQvrvw.d.ts} +2 -2
- package/dist/plugin-sdk/{types-DV5TNhMK.d.ts → types-BYDL6dQj.d.ts} +2 -2
- package/dist/plugin-sdk/{types-BI2njxWJ.d.ts → types-CLIvQaVg.d.ts} +39 -5
- package/dist/plugin-sdk/{types-CBCtqtMn.d.ts → types-DyhXnYUr.d.ts} +1 -1
- package/dist/plugin-sdk/{types.plugin-CvUiB3Kh.d.ts → types.plugin-_fbu40Re.d.ts} +8 -5
- package/dist/plugin-sdk/{web-CJMfhGFY.js → web-D0yENDve.js} +52 -56
- package/dist/plugin-sdk/{whatsapp-actions-0ZbGo5ZV.js → whatsapp-actions-BT2nPLyo.js} +18 -19
- package/dist/plugin-sdk/{whatsapp-heartbeat-DGTsuvQ8.js → whatsapp-heartbeat-CiABSZ6G.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +5 -5
- package/dist/plugin-sdk/whatsapp.js +14 -14
- package/dist/plugin-sdk/{wsl-D5jDUlms.js → wsl-B_ojyEtC.js} +53 -53
- package/dist/plugins/bundled-dir.js +3 -3
- package/dist/plugins/discovery.js +11 -11
- package/dist/plugins/loader.js +13 -13
- package/dist/plugins/manifest-registry.js +2 -2
- package/dist/plugins/manifest.js +4 -4
- package/dist/plugins/path-safety.js +3 -3
- package/dist/plugins/runtime/index.js +1 -1
- package/dist/plugins/status-cache.js +9 -9
- package/dist/plugins/update.js +3 -3
- package/dist/plugins/web-search-install-catalog.js +3 -3
- package/dist/providers/github-copilot-model-discovery.js +51 -0
- package/dist/providers/litellm-models.js +1 -1
- package/dist/providers/openai-codex-model-discovery.js +166 -0
- package/dist/providers/refresh.js +311 -67
- package/dist/providers/registry.js +16 -6
- package/dist/providers/runtime-model-catalog.js +250 -0
- package/dist/secrets/apply.js +16 -16
- package/dist/secrets/audit.js +11 -11
- package/dist/secrets/shared.js +9 -9
- package/dist/security/scan-paths.js +2 -2
- package/dist/shared/config-eval.js +2 -2
- package/dist/shared/model-thinking.js +54 -4
- package/dist/shared/pid-alive.js +2 -2
- package/dist/tasks/standing-orders.js +5 -5
- package/dist/tasks/task-flow-registry.js +5 -5
- package/dist/tasks/task-registry.js +5 -5
- package/dist/tasks/workflow-definitions.js +6 -6
- package/dist/telegram/bot-message-context.js +1 -1
- package/dist/telegram/token.js +5 -5
- package/dist/utils.js +5 -5
- package/dist/wallet/local-socket-signer-broker.js +16 -16
- package/dist/wallet/providers/embedded-keystore-adapter.js +5 -5
- package/dist/wallet/providers/local-socket-signer-adapter.js +2 -2
- package/dist/wallet/wallet-approval-auth.js +5 -5
- package/dist/wallet/wallet-audit-log.js +5 -5
- package/dist/wallet/wallet-custody.js +21 -21
- package/dist/wallet/wallet-inbound-events.js +5 -5
- package/dist/wallet/wallet-observability.js +5 -5
- package/dist/wallet/wallet-policy.js +9 -9
- package/dist/wallet/wallet-provider-registry.js +7 -7
- package/dist/wallet/wallet-runtime-config.js +3 -3
- package/dist/wallet/wallet-secrets-store.js +22 -22
- package/dist/wallet/wallet-send-approvals.js +5 -5
- package/dist/wallet/wallet-settlement-links.js +5 -5
- package/dist/web/accounts.js +3 -3
- package/dist/web/auth-store.js +18 -18
- package/dist/web/session.js +4 -4
- package/dist/wizard/host-security-capability.js +2 -2
- package/dist/wizard/onboarding.host-security.js +7 -7
- package/dist/wizard/onboarding.js +31 -13
- package/dist/wizard/onboarding.wallet.js +44 -44
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/fased-federation/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +2 -2
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +2 -1
- package/dist/control-ui/assets/chat-model-ref-B9sWop67.js +0 -2
- package/dist/plugin-sdk/ip-C70a-YlD.js +0 -181
- package/dist/plugin-sdk/tailscale-status-ClsquRGs.js +0 -104
- package/dist/plugin-sdk/wallet-status-CyovJojz.js +0 -11944
- package/dist/plugin-sdk/ws-CocpWGhl.js +0 -114
- /package/dist/plugin-sdk/{blocks-input-Dcitfh7h.js → blocks-input-Bg-8S2pl.js} +0 -0
- /package/dist/plugin-sdk/{channel-activity-Cg1xRoc2.js → channel-activity-DBDMQ3yI.js} +0 -0
- /package/dist/plugin-sdk/{channel-core-BOkyXXLa.js → channel-core-CFRs8LPy.js} +0 -0
- /package/dist/plugin-sdk/{client-D2N7hqVu.js → client-pI228AVT.js} +0 -0
- /package/dist/plugin-sdk/{command-poll-backoff-NAePk3eL.js → command-poll-backoff-yJU83wEq.js} +0 -0
- /package/dist/plugin-sdk/{date-time-CE3Uer3C.js → date-time-uUevHscU.js} +0 -0
- /package/dist/plugin-sdk/{diagnostic-session-state-HO94DMou.js → diagnostic-session-state-DqgfGYqZ.js} +0 -0
- /package/dist/plugin-sdk/{draft-stream-loop-CKyHn8IX.js → draft-stream-loop-CrOPfV3F.js} +0 -0
- /package/dist/plugin-sdk/{fetch-Cu-ahkie.js → fetch-BtmoPIlf.js} +0 -0
- /package/dist/plugin-sdk/{gateway-registry-DFsoY6C0.js → gateway-registry-DZDsqicG.js} +0 -0
- /package/dist/plugin-sdk/{inbound-context-BFnIdcqI.js → inbound-context-DrAcXE0y.js} +0 -0
- /package/dist/plugin-sdk/{internal-qo16nNU1.js → internal-CG_nHo-2.js} +0 -0
- /package/dist/plugin-sdk/{memory-search-C3C0bD2H.js → memory-search-VFll-AIb.js} +0 -0
- /package/dist/plugin-sdk/{pairing-token-N_6Jbt1L.js → pairing-token-Cs3BRKc0.js} +0 -0
- /package/dist/plugin-sdk/{path-alias-guards-Dg3gU-MA.js → path-alias-guards-BJZD5JMJ.js} +0 -0
- /package/dist/plugin-sdk/{polls-DQrR-qT3.js → polls-DKQXVfJp.js} +0 -0
- /package/dist/plugin-sdk/{proxy-7xs_rsnV.js → proxy-DWpYcsvR.js} +0 -0
- /package/dist/plugin-sdk/{qmd-scope-D1sSG_Rx.js → qmd-scope-CdX34VCV.js} +0 -0
- /package/dist/plugin-sdk/{redact-identifier-Q3tkvxhm.js → redact-identifier-Lt7t3l7S.js} +0 -0
- /package/dist/plugin-sdk/{redact-sensitive-url-dPvnFFsK.js → redact-sensitive-url-g-ukZjwA.js} +0 -0
- /package/dist/plugin-sdk/{render-Bwu_WxwA.js → render-e7fENCYH.js} +0 -0
- /package/dist/plugin-sdk/{reply-prefix-Bqzm6DC1.js → reply-prefix-ClpxvL_w.js} +0 -0
- /package/dist/plugin-sdk/{reply-reference-BkbK_DWT.js → reply-reference-Bqk-7HXE.js} +0 -0
- /package/dist/plugin-sdk/{secure-random-Bl-AVLVb.js → secure-random-BIkG-k4s.js} +0 -0
- /package/dist/plugin-sdk/{shared-clhhbWN3.js → shared-CBgp_GBw.js} +0 -0
- /package/dist/plugin-sdk/{target-errors-C_SVKoEv.js → target-errors-Ckufe179.js} +0 -0
- /package/dist/plugin-sdk/{targets-BDvvnlph.js → targets-CoMJ1ry1.js} +0 -0
- /package/dist/plugin-sdk/{tokens-BvtlOzVP.js → tokens-BbnqfVuu.js} +0 -0
- /package/dist/plugin-sdk/{tool-loop-detection-CWphm1k_.js → tool-loop-detection-Bp8bPJLs.js} +0 -0
- /package/dist/plugin-sdk/{ui-e020ouhJ.js → ui-Be8cLHIS.js} +0 -0
- /package/dist/plugin-sdk/{with-timeout-BYrRAYFV.js → with-timeout-ckWB8rTo.js} +0 -0
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
import { resolveFasedAgentAgentDir } from "../agent-paths.js";
|
|
2
|
+
import { ensureAuthProfileStore } from "../auth-profiles/store.js";
|
|
3
|
+
import { listProfilesForProvider } from "../auth-profiles/profiles.js";
|
|
4
|
+
import { resolveApiKeyForProfile } from "../auth-profiles/oauth.js";
|
|
5
|
+
import "../auth-profiles.js";
|
|
6
|
+
import { createOpenAICodexAppServerStreamFn } from "../openai-codex-app-server.js";
|
|
1
7
|
import { log } from "./logger.js";
|
|
8
|
+
import { createMoonshotThinkingWrapper, resolveMoonshotThinkingType } from "./moonshot-stream-wrappers.js";
|
|
9
|
+
import { createOpenAIResponsesContextManagementWrapper } from "./openai-stream-wrappers.js";
|
|
2
10
|
import { streamSimple } from "@mariozechner/pi-ai/compat";
|
|
11
|
+
import WebSocket$1 from "ws";
|
|
3
12
|
|
|
4
13
|
//#region src/agents/pi-embedded-runner/extra-params.ts
|
|
5
14
|
const OPENROUTER_APP_HEADERS = {
|
|
@@ -8,8 +17,6 @@ const OPENROUTER_APP_HEADERS = {
|
|
|
8
17
|
};
|
|
9
18
|
const ANTHROPIC_CONTEXT_1M_BETA = "context-1m-2025-08-07";
|
|
10
19
|
const ANTHROPIC_1M_MODEL_PREFIXES = ["claude-opus-4", "claude-sonnet-4"];
|
|
11
|
-
const OPENAI_RESPONSES_APIS = new Set(["openai-responses"]);
|
|
12
|
-
const OPENAI_RESPONSES_PROVIDERS = new Set(["openai"]);
|
|
13
20
|
const defaultProviderRuntimeDeps = {
|
|
14
21
|
prepareProviderExtraParams: ({ context }) => context.extraParams,
|
|
15
22
|
wrapProviderStreamFn: ({ context }) => context.streamFn
|
|
@@ -21,6 +28,30 @@ function sanitizeExtraParams(input) {
|
|
|
21
28
|
}
|
|
22
29
|
return Object.fromEntries(Object.entries(input).filter(([key, value]) => value !== undefined && key !== "__proto__" && key !== "constructor" && key !== "prototype"));
|
|
23
30
|
}
|
|
31
|
+
function normalizeExtraParamAliases(input) {
|
|
32
|
+
const normalized = sanitizeExtraParams(input);
|
|
33
|
+
if (Object.hasOwn(normalized, "parallelToolCalls")) {
|
|
34
|
+
normalized.parallel_tool_calls = normalized.parallelToolCalls;
|
|
35
|
+
delete normalized.parallelToolCalls;
|
|
36
|
+
}
|
|
37
|
+
if (Object.hasOwn(normalized, "textVerbosity")) {
|
|
38
|
+
normalized.text_verbosity = normalized.textVerbosity;
|
|
39
|
+
delete normalized.textVerbosity;
|
|
40
|
+
}
|
|
41
|
+
return normalized;
|
|
42
|
+
}
|
|
43
|
+
function defaultExtraParams(provider, modelId) {
|
|
44
|
+
const normalizedProvider = provider.trim().toLowerCase();
|
|
45
|
+
const normalizedModel = modelId.trim().toLowerCase();
|
|
46
|
+
if (normalizedProvider === "openai" && /^gpt-5(?:\.|$|-)/.test(normalizedModel)) {
|
|
47
|
+
return {
|
|
48
|
+
parallel_tool_calls: true,
|
|
49
|
+
text_verbosity: "low",
|
|
50
|
+
openaiWsWarmup: true
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
24
55
|
const testing = {
|
|
25
56
|
setProviderRuntimeDepsForTest(deps) {
|
|
26
57
|
providerRuntimeDeps.prepareProviderExtraParams = deps?.prepareProviderExtraParams ?? defaultProviderRuntimeDeps.prepareProviderExtraParams;
|
|
@@ -37,18 +68,35 @@ const testing = {
|
|
|
37
68
|
*
|
|
38
69
|
* @internal Exported for testing only
|
|
39
70
|
*/
|
|
40
|
-
function
|
|
71
|
+
function resolveConfiguredExtraParams(params) {
|
|
41
72
|
const modelKey = `${params.provider}/${params.modelId}`;
|
|
42
73
|
const modelConfig = params.cfg?.agents?.defaults?.models?.[modelKey];
|
|
43
|
-
const globalParams = modelConfig?.params ?
|
|
44
|
-
const
|
|
45
|
-
|
|
74
|
+
const globalParams = modelConfig?.params ? normalizeExtraParamAliases(modelConfig.params) : undefined;
|
|
75
|
+
const rawAgentParams = params.agentId && params.cfg?.agents?.list ? params.cfg.agents.list.find((agent) => agent.id === params.agentId)?.params : undefined;
|
|
76
|
+
const agentParams = rawAgentParams ? normalizeExtraParamAliases(rawAgentParams) : undefined;
|
|
77
|
+
const defaults = defaultExtraParams(params.provider, params.modelId);
|
|
78
|
+
if (Object.keys(defaults).length === 0 && !globalParams && !agentParams) {
|
|
46
79
|
return undefined;
|
|
47
80
|
}
|
|
48
|
-
return Object.assign({}, globalParams, agentParams);
|
|
81
|
+
return Object.assign({}, defaults, globalParams, agentParams);
|
|
82
|
+
}
|
|
83
|
+
function resolveExtraParams(params) {
|
|
84
|
+
const configured = resolveConfiguredExtraParams(params);
|
|
85
|
+
const prepared = providerRuntimeDeps.prepareProviderExtraParams({
|
|
86
|
+
provider: params.provider,
|
|
87
|
+
modelId: params.modelId,
|
|
88
|
+
config: params.cfg,
|
|
89
|
+
context: {
|
|
90
|
+
config: params.cfg,
|
|
91
|
+
provider: params.provider,
|
|
92
|
+
modelId: params.modelId,
|
|
93
|
+
extraParams: configured
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return prepared ?? configured;
|
|
49
97
|
}
|
|
50
98
|
function resolvePreparedExtraParams(params) {
|
|
51
|
-
const extraParams =
|
|
99
|
+
const extraParams = resolveConfiguredExtraParams({
|
|
52
100
|
cfg: params.cfg,
|
|
53
101
|
provider: params.provider,
|
|
54
102
|
modelId: params.modelId,
|
|
@@ -56,7 +104,7 @@ function resolvePreparedExtraParams(params) {
|
|
|
56
104
|
});
|
|
57
105
|
const merged = {
|
|
58
106
|
...sanitizeExtraParams(extraParams),
|
|
59
|
-
...
|
|
107
|
+
...normalizeExtraParamAliases(params.extraParamsOverride)
|
|
60
108
|
};
|
|
61
109
|
const prepared = providerRuntimeDeps.prepareProviderExtraParams({
|
|
62
110
|
provider: params.provider,
|
|
@@ -101,10 +149,6 @@ function resolveAgentTransportOverride(params) {
|
|
|
101
149
|
* Defaults to "short" for direct Anthropic when not explicitly configured.
|
|
102
150
|
*/
|
|
103
151
|
function resolveCacheRetention(extraParams, provider) {
|
|
104
|
-
const isAnthropicDirect = provider === "anthropic";
|
|
105
|
-
if (!isAnthropicDirect) {
|
|
106
|
-
return undefined;
|
|
107
|
-
}
|
|
108
152
|
const newVal = extraParams?.cacheRetention;
|
|
109
153
|
if (newVal === "none" || newVal === "short" || newVal === "long") {
|
|
110
154
|
return newVal;
|
|
@@ -116,10 +160,7 @@ function resolveCacheRetention(extraParams, provider) {
|
|
|
116
160
|
if (legacy === "1h") {
|
|
117
161
|
return "long";
|
|
118
162
|
}
|
|
119
|
-
|
|
120
|
-
return undefined;
|
|
121
|
-
}
|
|
122
|
-
return "short";
|
|
163
|
+
return provider === "anthropic" ? "short" : undefined;
|
|
123
164
|
}
|
|
124
165
|
function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
125
166
|
if (!extraParams || Object.keys(extraParams).length === 0) {
|
|
@@ -132,6 +173,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
|
132
173
|
if (typeof extraParams.maxTokens === "number") {
|
|
133
174
|
streamParams.maxTokens = extraParams.maxTokens;
|
|
134
175
|
}
|
|
176
|
+
if (typeof extraParams.openaiWsWarmup === "boolean") {
|
|
177
|
+
streamParams.openaiWsWarmup = extraParams.openaiWsWarmup;
|
|
178
|
+
}
|
|
135
179
|
const transport = extraParams.transport;
|
|
136
180
|
if (transport === "sse" || transport === "websocket" || transport === "auto") {
|
|
137
181
|
streamParams.transport = transport;
|
|
@@ -167,6 +211,36 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
|
167
211
|
};
|
|
168
212
|
return wrappedStreamFn;
|
|
169
213
|
}
|
|
214
|
+
function createParallelToolCallsWrapper(baseStreamFn, value) {
|
|
215
|
+
if (value === undefined || value === null) {
|
|
216
|
+
return undefined;
|
|
217
|
+
}
|
|
218
|
+
if (typeof value !== "boolean") {
|
|
219
|
+
const rendered = typeof value === "string" || typeof value === "number" || typeof value === "bigint" ? String(value) : JSON.stringify(value) ?? typeof value;
|
|
220
|
+
log.warn(`ignoring invalid parallel_tool_calls param: ${rendered}`);
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
const underlying = baseStreamFn ?? streamSimple;
|
|
224
|
+
return (model, context, options) => {
|
|
225
|
+
const supported = model.api === "openai-completions" || model.api === "openai-responses" || model.api === "azure-openai-responses";
|
|
226
|
+
if (!supported) {
|
|
227
|
+
return underlying(model, context, options);
|
|
228
|
+
}
|
|
229
|
+
const originalOnPayload = options?.onPayload;
|
|
230
|
+
return underlying(model, context, {
|
|
231
|
+
...options,
|
|
232
|
+
onPayload: (payload) => {
|
|
233
|
+
if (payload && typeof payload === "object") {
|
|
234
|
+
payload.parallel_tool_calls = value;
|
|
235
|
+
}
|
|
236
|
+
return originalOnPayload?.(payload);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
function isOllamaKimiCloudModel(provider, modelId) {
|
|
242
|
+
return provider === "ollama" && /^kimi(?:[-:]|$)/i.test(modelId) && /:cloud$/i.test(modelId);
|
|
243
|
+
}
|
|
170
244
|
function isDirectOpenAIBaseUrl(baseUrl) {
|
|
171
245
|
if (typeof baseUrl !== "string" || !baseUrl.trim()) {
|
|
172
246
|
return false;
|
|
@@ -179,21 +253,6 @@ function isDirectOpenAIBaseUrl(baseUrl) {
|
|
|
179
253
|
return normalized.includes("api.openai.com") || normalized.includes("chatgpt.com") || normalized.includes(".openai.azure.com");
|
|
180
254
|
}
|
|
181
255
|
}
|
|
182
|
-
function shouldForceResponsesStore(model) {
|
|
183
|
-
if (model.compat?.supportsStore === false) {
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
if (typeof model.api !== "string" || typeof model.provider !== "string") {
|
|
187
|
-
return false;
|
|
188
|
-
}
|
|
189
|
-
if (!OPENAI_RESPONSES_APIS.has(model.api)) {
|
|
190
|
-
return false;
|
|
191
|
-
}
|
|
192
|
-
if (!OPENAI_RESPONSES_PROVIDERS.has(model.provider)) {
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
return isDirectOpenAIBaseUrl(model.baseUrl);
|
|
196
|
-
}
|
|
197
256
|
function parsePositiveInteger(value) {
|
|
198
257
|
if (typeof value === "number" && Number.isFinite(value) && value > 0) {
|
|
199
258
|
return Math.floor(value);
|
|
@@ -298,50 +357,24 @@ function resolveOpenRouterResponseCacheHeaders(params) {
|
|
|
298
357
|
}
|
|
299
358
|
return Object.keys(headers).length > 0 ? headers : undefined;
|
|
300
359
|
}
|
|
301
|
-
function
|
|
302
|
-
const contextWindow = parsePositiveInteger(model.contextWindow);
|
|
303
|
-
if (contextWindow) {
|
|
304
|
-
return Math.max(1e3, Math.floor(contextWindow * .7));
|
|
305
|
-
}
|
|
306
|
-
return 8e4;
|
|
307
|
-
}
|
|
308
|
-
function shouldEnableOpenAIResponsesServerCompaction(model, extraParams) {
|
|
309
|
-
const configured = extraParams?.responsesServerCompaction;
|
|
310
|
-
if (configured === false) {
|
|
311
|
-
return false;
|
|
312
|
-
}
|
|
313
|
-
if (!shouldForceResponsesStore(model)) {
|
|
314
|
-
return false;
|
|
315
|
-
}
|
|
316
|
-
if (configured === true) {
|
|
317
|
-
return true;
|
|
318
|
-
}
|
|
319
|
-
return model.provider === "openai";
|
|
320
|
-
}
|
|
321
|
-
function createOpenAIResponsesContextManagementWrapper(baseStreamFn, extraParams) {
|
|
360
|
+
function createOpenAIReasoningEffortWrapper(baseStreamFn, reasoningEffort) {
|
|
322
361
|
const underlying = baseStreamFn ?? streamSimple;
|
|
323
362
|
return (model, context, options) => {
|
|
324
|
-
const
|
|
325
|
-
|
|
326
|
-
if (!forceStore && !useServerCompaction) {
|
|
363
|
+
const supportsReasoningEffort = model.api === "openai-codex-responses" || model.api === "openai-responses" && model.provider === "openai" && (model.baseUrl === undefined || isDirectOpenAIBaseUrl(model.baseUrl));
|
|
364
|
+
if (!reasoningEffort || !supportsReasoningEffort) {
|
|
327
365
|
return underlying(model, context, options);
|
|
328
366
|
}
|
|
329
|
-
const compactThreshold = parsePositiveInteger(extraParams?.responsesCompactThreshold) ?? resolveOpenAIResponsesCompactThreshold(model);
|
|
330
367
|
const originalOnPayload = options?.onPayload;
|
|
331
368
|
return underlying(model, context, {
|
|
332
369
|
...options,
|
|
333
370
|
onPayload: (payload) => {
|
|
334
371
|
if (payload && typeof payload === "object") {
|
|
335
372
|
const payloadObj = payload;
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
type: "compaction",
|
|
342
|
-
compact_threshold: compactThreshold
|
|
343
|
-
}];
|
|
344
|
-
}
|
|
373
|
+
const reasoning = payloadObj.reasoning;
|
|
374
|
+
payloadObj.reasoning = {
|
|
375
|
+
...reasoning && typeof reasoning === "object" ? reasoning : {},
|
|
376
|
+
effort: reasoningEffort === "off" ? "none" : reasoningEffort
|
|
377
|
+
};
|
|
345
378
|
}
|
|
346
379
|
originalOnPayload?.(payload);
|
|
347
380
|
}
|
|
@@ -350,10 +383,45 @@ function createOpenAIResponsesContextManagementWrapper(baseStreamFn, extraParams
|
|
|
350
383
|
}
|
|
351
384
|
function createCodexDefaultTransportWrapper(baseStreamFn) {
|
|
352
385
|
const underlying = baseStreamFn ?? streamSimple;
|
|
353
|
-
return (model, context, options) =>
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
386
|
+
return (model, context, options) => {
|
|
387
|
+
if (typeof process !== "undefined" && process.versions?.node) {
|
|
388
|
+
globalThis.WebSocket = WebSocket$1;
|
|
389
|
+
}
|
|
390
|
+
return underlying(model, context, {
|
|
391
|
+
...options,
|
|
392
|
+
transport: options?.transport ?? "auto"
|
|
393
|
+
});
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
function usesCodexResponsesLite(model) {
|
|
397
|
+
const candidate = model;
|
|
398
|
+
return candidate.api === "openai-codex-responses" && candidate.compat?.responsesLite === true;
|
|
399
|
+
}
|
|
400
|
+
function createCodexResponsesLiteWrapper(baseStreamFn, params) {
|
|
401
|
+
const underlying = baseStreamFn ?? streamSimple;
|
|
402
|
+
const appServer = createOpenAICodexAppServerStreamFn({ resolveToken: async () => {
|
|
403
|
+
if (params?.resolvedApiKey?.trim()) {
|
|
404
|
+
return params.resolvedApiKey.trim();
|
|
405
|
+
}
|
|
406
|
+
const agentDir = params?.agentDir ?? resolveFasedAgentAgentDir();
|
|
407
|
+
const store = ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false });
|
|
408
|
+
const profileId = listProfilesForProvider(store, "openai-codex")[0];
|
|
409
|
+
if (!profileId) {
|
|
410
|
+
return undefined;
|
|
411
|
+
}
|
|
412
|
+
return (await resolveApiKeyForProfile({
|
|
413
|
+
cfg: params?.cfg ?? {},
|
|
414
|
+
store,
|
|
415
|
+
profileId,
|
|
416
|
+
agentDir
|
|
417
|
+
}))?.apiKey;
|
|
418
|
+
} });
|
|
419
|
+
return (model, context, options) => {
|
|
420
|
+
if (!usesCodexResponsesLite(model)) {
|
|
421
|
+
return underlying(model, context, options);
|
|
422
|
+
}
|
|
423
|
+
return appServer(model, context, options);
|
|
424
|
+
};
|
|
357
425
|
}
|
|
358
426
|
function isAnthropic1MModel(modelId) {
|
|
359
427
|
const normalized = modelId.trim().toLowerCase();
|
|
@@ -733,8 +801,8 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
|
|
|
733
801
|
*
|
|
734
802
|
* @internal Exported for testing
|
|
735
803
|
*/
|
|
736
|
-
function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverride, thinkingLevel, agentId, agentDir, model) {
|
|
737
|
-
const extraParams =
|
|
804
|
+
function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverride, thinkingLevel, agentId, agentDir, model, resolvedApiKey) {
|
|
805
|
+
const extraParams = resolveConfiguredExtraParams({
|
|
738
806
|
cfg,
|
|
739
807
|
provider,
|
|
740
808
|
modelId,
|
|
@@ -742,8 +810,13 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
|
|
|
742
810
|
});
|
|
743
811
|
if (provider === "openai-codex") {
|
|
744
812
|
agent.streamFn = createCodexDefaultTransportWrapper(agent.streamFn);
|
|
813
|
+
agent.streamFn = createCodexResponsesLiteWrapper(agent.streamFn, {
|
|
814
|
+
cfg,
|
|
815
|
+
agentDir,
|
|
816
|
+
resolvedApiKey
|
|
817
|
+
});
|
|
745
818
|
}
|
|
746
|
-
const merged = Object.assign({}, sanitizeExtraParams(extraParams),
|
|
819
|
+
const merged = Object.assign({}, sanitizeExtraParams(extraParams), normalizeExtraParamAliases(extraParamsOverride));
|
|
747
820
|
const preparedProviderExtraParams = providerRuntimeDeps.prepareProviderExtraParams({
|
|
748
821
|
provider,
|
|
749
822
|
modelId,
|
|
@@ -759,6 +832,7 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
|
|
|
759
832
|
}
|
|
760
833
|
});
|
|
761
834
|
const effectiveProviderExtraParams = preparedProviderExtraParams ?? merged;
|
|
835
|
+
const streamFnBeforeProviderHook = agent.streamFn;
|
|
762
836
|
const providerWrappedStreamFn = providerRuntimeDeps.wrapProviderStreamFn({
|
|
763
837
|
provider,
|
|
764
838
|
config: cfg,
|
|
@@ -781,12 +855,17 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
|
|
|
781
855
|
if (providerWrappedStreamFn) {
|
|
782
856
|
agent.streamFn = providerWrappedStreamFn;
|
|
783
857
|
}
|
|
784
|
-
const
|
|
858
|
+
const providerRuntimeHandled = providerWrappedStreamFn !== undefined && providerWrappedStreamFn !== streamFnBeforeProviderHook;
|
|
859
|
+
const wrappedStreamFn = createStreamFnWithExtraParams(agent.streamFn, effectiveProviderExtraParams, provider);
|
|
785
860
|
if (wrappedStreamFn) {
|
|
786
861
|
log.debug(`applying extraParams to agent streamFn for ${provider}/${modelId}`);
|
|
787
862
|
agent.streamFn = wrappedStreamFn;
|
|
788
863
|
}
|
|
789
|
-
const
|
|
864
|
+
const parallelToolCalls = createParallelToolCallsWrapper(agent.streamFn, effectiveProviderExtraParams.parallel_tool_calls);
|
|
865
|
+
if (parallelToolCalls) {
|
|
866
|
+
agent.streamFn = parallelToolCalls;
|
|
867
|
+
}
|
|
868
|
+
const anthropicBetas = resolveAnthropicBetas(effectiveProviderExtraParams, provider, modelId);
|
|
790
869
|
if (anthropicBetas?.length) {
|
|
791
870
|
log.debug(`applying Anthropic beta header for ${provider}/${modelId}: ${anthropicBetas.join(",")}`);
|
|
792
871
|
agent.streamFn = createAnthropicBetaHeadersWrapper(agent.streamFn, anthropicBetas);
|
|
@@ -799,12 +878,21 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
|
|
|
799
878
|
log.debug(`normalizing thinking=off to thinking=null for SiliconFlow compatibility (${provider}/${modelId})`);
|
|
800
879
|
agent.streamFn = createSiliconFlowThinkingWrapper(agent.streamFn);
|
|
801
880
|
}
|
|
802
|
-
if (provider === "openrouter") {
|
|
881
|
+
if (provider === "openrouter" && !providerRuntimeHandled) {
|
|
803
882
|
log.debug(`applying OpenRouter app attribution headers for ${provider}/${modelId}`);
|
|
804
883
|
const openRouterThinkingLevel = modelId === "auto" ? undefined : thinkingLevel;
|
|
805
|
-
agent.streamFn = createOpenRouterWrapper(agent.streamFn, openRouterThinkingLevel, resolveOpenRouterResponseCacheConfig(
|
|
884
|
+
agent.streamFn = createOpenRouterWrapper(agent.streamFn, openRouterThinkingLevel, resolveOpenRouterResponseCacheConfig(effectiveProviderExtraParams));
|
|
806
885
|
agent.streamFn = createOpenRouterSystemCacheWrapper(agent.streamFn);
|
|
807
886
|
}
|
|
887
|
+
if (provider === "moonshot" || isOllamaKimiCloudModel(provider, modelId)) {
|
|
888
|
+
const configuredThinking = effectiveProviderExtraParams.thinking;
|
|
889
|
+
const hasPinnedToolChoice = model && typeof model === "object" && "tool_choice" in model && typeof model.tool_choice === "object";
|
|
890
|
+
const thinkingType = hasPinnedToolChoice ? "disabled" : resolveMoonshotThinkingType({
|
|
891
|
+
configuredThinking,
|
|
892
|
+
thinkingLevel
|
|
893
|
+
});
|
|
894
|
+
agent.streamFn = createMoonshotThinkingWrapper(agent.streamFn, thinkingType);
|
|
895
|
+
}
|
|
808
896
|
if (provider === "zai" || provider === "z-ai") {
|
|
809
897
|
const toolStreamEnabled = merged?.tool_stream !== false;
|
|
810
898
|
if (toolStreamEnabled) {
|
|
@@ -813,8 +901,9 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
|
|
|
813
901
|
}
|
|
814
902
|
}
|
|
815
903
|
agent.streamFn = createGoogleThinkingPayloadWrapper(agent.streamFn, thinkingLevel);
|
|
816
|
-
agent.streamFn = createOpenAIResponsesContextManagementWrapper(agent.streamFn,
|
|
904
|
+
agent.streamFn = createOpenAIResponsesContextManagementWrapper(agent.streamFn, effectiveProviderExtraParams);
|
|
905
|
+
agent.streamFn = createOpenAIReasoningEffortWrapper(agent.streamFn, thinkingLevel);
|
|
817
906
|
}
|
|
818
907
|
|
|
819
908
|
//#endregion
|
|
820
|
-
export { applyExtraParamsToAgent
|
|
909
|
+
export { applyExtraParamsToAgent };
|
|
@@ -2,9 +2,13 @@ import { isOpenAISignInRuntimeModelSupported } from "../../providers/registry.js
|
|
|
2
2
|
import { DEFAULT_CONTEXT_TOKENS } from "../defaults.js";
|
|
3
3
|
import { isPrivateNetworkBaseUrl } from "../../utils/private-network-url.js";
|
|
4
4
|
import { resolveFasedAgentAgentDir } from "../agent-paths.js";
|
|
5
|
+
import { ensureAuthProfileStore } from "../auth-profiles/store.js";
|
|
6
|
+
import "../auth-profiles.js";
|
|
5
7
|
import { normalizeProviderId } from "../model-selection.js";
|
|
6
8
|
import { discoverAuthStorage, discoverModels } from "../pi-model-discovery.js";
|
|
9
|
+
import { resolveAuthenticatedModelCatalog } from "../authenticated-model-catalog.js";
|
|
7
10
|
import { buildModelAliasLines } from "../model-alias-lines.js";
|
|
11
|
+
import { loadModelCatalog } from "../model-catalog.js";
|
|
8
12
|
import { normalizeModelCompat } from "../model-compat.js";
|
|
9
13
|
import { resolveForwardCompatModel } from "../model-forward-compat.js";
|
|
10
14
|
import { attachModelProviderRequestTransport, sanitizeConfiguredModelProviderRequest } from "../provider-request-config.js";
|
|
@@ -143,6 +147,63 @@ function resolveModel(provider, modelId, agentDir, cfg) {
|
|
|
143
147
|
modelRegistry
|
|
144
148
|
};
|
|
145
149
|
}
|
|
150
|
+
async function resolveModelForExecution(provider, modelId, agentDir, cfg) {
|
|
151
|
+
const resolvedAgentDir = agentDir ?? resolveFasedAgentAgentDir();
|
|
152
|
+
const fallback = resolveModel(provider, modelId, resolvedAgentDir, cfg);
|
|
153
|
+
if (!cfg) {
|
|
154
|
+
return fallback;
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
const store = ensureAuthProfileStore(resolvedAgentDir, { allowKeychainPrompt: false });
|
|
158
|
+
const catalog = await loadModelCatalog({
|
|
159
|
+
config: cfg,
|
|
160
|
+
includeMetadata: true
|
|
161
|
+
});
|
|
162
|
+
const authenticated = await resolveAuthenticatedModelCatalog({
|
|
163
|
+
cfg,
|
|
164
|
+
store,
|
|
165
|
+
catalog,
|
|
166
|
+
defaultProvider: provider,
|
|
167
|
+
agentDir: resolvedAgentDir
|
|
168
|
+
});
|
|
169
|
+
const normalizedProvider = normalizeProviderId(provider);
|
|
170
|
+
const normalizedModelId = modelId.trim().toLowerCase();
|
|
171
|
+
const entry = authenticated.usableCatalog.find((candidate) => normalizeProviderId(candidate.provider) === normalizedProvider && candidate.id.trim().toLowerCase() === normalizedModelId);
|
|
172
|
+
if (!entry) {
|
|
173
|
+
return fallback;
|
|
174
|
+
}
|
|
175
|
+
const template = fallback.model;
|
|
176
|
+
const model = normalizeModelCompat({
|
|
177
|
+
...template,
|
|
178
|
+
id: entry.id,
|
|
179
|
+
name: entry.name,
|
|
180
|
+
provider: entry.provider,
|
|
181
|
+
api: entry.api ?? template?.api,
|
|
182
|
+
baseUrl: entry.baseUrl ?? template?.baseUrl,
|
|
183
|
+
reasoning: entry.reasoning ?? template?.reasoning ?? false,
|
|
184
|
+
input: entry.input ?? template?.input ?? ["text"],
|
|
185
|
+
contextWindow: entry.contextWindow ?? template?.contextWindow ?? DEFAULT_CONTEXT_TOKENS,
|
|
186
|
+
maxTokens: entry.maxTokens ?? template?.maxTokens ?? DEFAULT_CONTEXT_TOKENS,
|
|
187
|
+
cost: entry.cost ?? template?.cost ?? {
|
|
188
|
+
input: 0,
|
|
189
|
+
output: 0,
|
|
190
|
+
cacheRead: 0,
|
|
191
|
+
cacheWrite: 0
|
|
192
|
+
},
|
|
193
|
+
compat: {
|
|
194
|
+
...template?.compat,
|
|
195
|
+
...entry.compat
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
return {
|
|
199
|
+
...fallback,
|
|
200
|
+
model: attachConfiguredProviderRequest(model, cfg),
|
|
201
|
+
error: undefined
|
|
202
|
+
};
|
|
203
|
+
} catch {
|
|
204
|
+
return fallback;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
146
207
|
function resolveModelWithRegistry(params) {
|
|
147
208
|
const normalizedProvider = normalizeProviderId(params.provider);
|
|
148
209
|
const runtimeModelId = params.modelId.trim();
|
|
@@ -174,4 +235,4 @@ function buildUnknownModelError(provider, modelId) {
|
|
|
174
235
|
}
|
|
175
236
|
|
|
176
237
|
//#endregion
|
|
177
|
-
export { buildInlineProviderModels, buildModelAliasLines, resolveModel, resolveModelWithRegistry };
|
|
238
|
+
export { buildInlineProviderModels, buildModelAliasLines, resolveModel, resolveModelForExecution, resolveModelWithRegistry };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { streamSimple } from "@mariozechner/pi-ai/compat";
|
|
2
|
+
|
|
3
|
+
//#region src/agents/pi-embedded-runner/moonshot-stream-wrappers.ts
|
|
4
|
+
function resolveMoonshotThinkingType(params) {
|
|
5
|
+
if (params.configuredThinking && typeof params.configuredThinking === "object" && !Array.isArray(params.configuredThinking)) {
|
|
6
|
+
const type = params.configuredThinking.type;
|
|
7
|
+
if (type === "enabled" || type === "disabled") {
|
|
8
|
+
return type;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
if (params.configuredThinking === "enabled" || params.configuredThinking === true) {
|
|
12
|
+
return "enabled";
|
|
13
|
+
}
|
|
14
|
+
if (params.configuredThinking === "disabled" || params.configuredThinking === false) {
|
|
15
|
+
return "disabled";
|
|
16
|
+
}
|
|
17
|
+
return params.thinkingLevel && params.thinkingLevel !== "off" ? "enabled" : "disabled";
|
|
18
|
+
}
|
|
19
|
+
function createMoonshotThinkingWrapper(baseStreamFn, thinkingType) {
|
|
20
|
+
const underlying = baseStreamFn ?? streamSimple;
|
|
21
|
+
return (model, context, options) => underlying(model, context, {
|
|
22
|
+
...options,
|
|
23
|
+
onPayload: (payload) => {
|
|
24
|
+
if (payload && typeof payload === "object") {
|
|
25
|
+
const payloadObj = payload;
|
|
26
|
+
const pinnedToolChoice = payloadObj.tool_choice && typeof payloadObj.tool_choice === "object" && !Array.isArray(payloadObj.tool_choice);
|
|
27
|
+
const effectiveThinkingType = pinnedToolChoice ? "disabled" : thinkingType;
|
|
28
|
+
payloadObj.thinking = { type: effectiveThinkingType };
|
|
29
|
+
if (effectiveThinkingType === "enabled" && (payloadObj.tool_choice === "required" || payloadObj.tool_choice && typeof payloadObj.tool_choice === "object" && !Array.isArray(payloadObj.tool_choice))) {
|
|
30
|
+
if (payloadObj.tool_choice === "required") {
|
|
31
|
+
payloadObj.tool_choice = "auto";
|
|
32
|
+
} else {
|
|
33
|
+
const toolChoice = payloadObj.tool_choice;
|
|
34
|
+
if (toolChoice.type === "any" || toolChoice.type === "auto") {
|
|
35
|
+
payloadObj.tool_choice = "auto";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return options?.onPayload?.(payload);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
export { createMoonshotThinkingWrapper, resolveMoonshotThinkingType };
|