@fased/fased 0.1.55 → 0.1.57
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/agents/authenticated-model-catalog.js +3 -2
- package/dist/agents/bash-tools.exec-host-node.js +1 -1
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/copilot-dynamic-headers.js +37 -0
- package/dist/agents/current-model-catalog.js +6 -3
- package/dist/agents/model-catalog-snapshot.js +124 -0
- package/dist/agents/model-catalog-source.js +2 -2
- package/dist/agents/model-catalog.js +1 -1
- package/dist/agents/model-metadata.js +34 -6
- package/dist/agents/openai-codex-app-server.js +524 -0
- package/dist/agents/openai-codex-runtime-component.js +39 -0
- package/dist/agents/pi-embedded-runner/compact.js +3 -3
- package/dist/agents/pi-embedded-runner/extra-params.js +170 -94
- 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-tools.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/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/session-reset-model.js +1 -1
- package/dist/auto-reply/status.js +1 -1
- 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.js +2 -2
- package/dist/browser/extension-relay.js +7 -7
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/capabilities/install.js +43 -0
- package/dist/cli/components-cli.js +9 -31
- package/dist/cli/cron-cli/register.cron-add.js +1 -1
- package/dist/cli/hooks-cli.js +1 -1
- package/dist/cli/plugins-cli.js +3 -3
- package/dist/cli/program/register.agent.js +1 -1
- package/dist/cli/update-cli/update-command.js +50 -12
- package/dist/commands/agent.js +22 -3
- package/dist/commands/auth-choice.apply.openai.js +9 -0
- package/dist/commands/auth-choice.apply.plugin-provider.js +1 -1
- package/dist/commands/doctor-config-flow.js +1 -1
- package/dist/commands/hosted-dashboard-probe.js +3 -3
- package/dist/commands/model-picker.js +4 -3
- package/dist/commands/models/list.probe.js +1 -1
- package/dist/commands/models/list.registry.js +3 -2
- package/dist/commands/models/list.status-command.js +2 -2
- package/dist/commands/onboard-channels.js +1 -1
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/openai-codex-model-default.js +3 -2
- package/dist/config/zod-schema.agent-defaults.js +4 -2
- package/dist/config/zod-schema.agent-runtime.js +4 -2
- package/dist/config/zod-schema.core.js +4 -2
- package/dist/control-ui/assets/{app-D2RaTXoV.js → app-DltSyY4Y.js} +1723 -1716
- package/dist/control-ui/assets/chat-model-ref-Djkv93yn.js +2 -0
- package/dist/control-ui/assets/{index-D2nC6I-9.js → index-D5JlBp7f.js} +3 -3
- package/dist/control-ui/assets/{providers-CyjiG5Jw.js → providers-Cc89iMdx.js} +3 -3
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/version.json +1 -1
- package/dist/cron/isolated-agent/run.js +6 -2
- package/dist/cron/service/jobs.js +11 -1
- package/dist/discord/monitor/gateway-plugin.js +2 -2
- package/dist/discord/voice/manager.js +1 -1
- package/dist/gateway/client.js +4 -4
- package/dist/gateway/protocol/schema/agents-models-skills.js +106 -5
- package/dist/gateway/server-methods/hooks.js +1 -1
- package/dist/gateway/server-methods/models.js +15 -7
- package/dist/gateway/server-methods/plugins-marketplace.js +3 -3
- package/dist/gateway/server-methods/services.js +1 -1
- package/dist/gateway/server-methods/sessions.js +1 -1
- package/dist/gateway/server-methods/tts.js +2 -2
- package/dist/gateway/server-model-catalog.js +1 -1
- package/dist/gateway/sessions-patch.js +27 -24
- package/dist/light-update-status.js +11 -11
- package/dist/plugin-sdk/{accounts-CeRNo5Ae.js → accounts-CmMwe9Dt.js} +1 -1
- package/dist/plugin-sdk/{actions-OMRHtXPj.js → actions-DYViFQiX.js} +4 -4
- package/dist/plugin-sdk/{active-listener-BlIkS3iR.js → active-listener-DVbpcisf.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-BbgPlhtw.js → agent-scope-CCjfjKoO.js} +1 -1
- package/dist/plugin-sdk/{allow-list-BYeKk0Sy.js → allow-list-DyAxs4yw.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-B2n3a2Tj.js → audio-preflight-D-Mfay8i.js} +44 -48
- package/dist/plugin-sdk/{audit-Ppg6dR_b.js → audit-JImYFOzJ.js} +1 -1
- package/dist/plugin-sdk/{channel-access-configure-B6IAGlE0.js → channel-access-configure-B_qYjml8.js} +1 -1
- package/dist/plugin-sdk/{channel-access-af8dWWRv.js → channel-access-cxCK2mci.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 +5 -5
- package/dist/plugin-sdk/{chunk-CD76Byie.js → chunk-CF8nvZNj.js} +1 -1
- package/dist/plugin-sdk/{chunk-items-Bu19zrYH.js → chunk-items-yLFoO571.js} +1 -1
- package/dist/plugin-sdk/command-status.d.ts +2 -2
- package/dist/plugin-sdk/command-status.js +44 -48
- package/dist/plugin-sdk/{commands-registry-DgS55tNj.js → commands-registry-CK4KmMG0.js} +2 -2
- package/dist/plugin-sdk/{common-CWvfeiX0.js → common-Cky4hpqr.js} +1 -1
- package/dist/plugin-sdk/{config-CYDETqcF.js → config-Dbxj_jUP.js} +1153 -17
- package/dist/plugin-sdk/{config-schema-CQ4EVcQG.js → config-schema-aKPMn6ML.js} +96084 -81132
- 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 +6 -6
- package/dist/plugin-sdk/discord.js +32 -33
- 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-ZoHU8oA7.js} +3 -3
- package/dist/plugin-sdk/{fs-safe-BG-VzVkL.js → fs-safe-g4g7GT02.js} +2 -2
- package/dist/plugin-sdk/{group-mentions-BxDgHCgj.d.ts → group-mentions-BHRff6j8.d.ts} +1 -1
- package/dist/plugin-sdk/{guilds-BeT3iHHJ.js → guilds-CDhRIX57.js} +1 -1
- package/dist/plugin-sdk/{handle-action-B75UVKxF.js → handle-action-BSNDD2Vc.js} +25 -26
- package/dist/plugin-sdk/{helpers-BuEwju6y.js → helpers-CDo2XBSr.js} +1 -1
- package/dist/plugin-sdk/{image-ops-C66HPeAZ.js → image-ops-DbeBxbn4.js} +1 -1
- package/dist/plugin-sdk/index.d.ts +18 -18
- package/dist/plugin-sdk/index.js +48 -52
- package/dist/plugin-sdk/{login-Amr2DpKU.js → login-CWXvFTd8.js} +3 -3
- package/dist/plugin-sdk/{login-qr-DMQNEi9m.js → login-qr-CJB2zjmM.js} +4 -4
- package/dist/plugin-sdk/{manager-Bvpq49BI.js → manager-CbiFFLKS.js} +8 -8
- package/dist/plugin-sdk/{markdown-tables-DmQ7oXOm.js → markdown-tables-Bskt9r8i.js} +1 -1
- package/dist/plugin-sdk/{media-ByLQbEwJ.js → media-B3aAg5rh.js} +5 -5
- package/dist/plugin-sdk/{memory-search-C3C0bD2H.js → memory-search-DTjIMw8J.js} +1 -1
- package/dist/plugin-sdk/{monitor-K_u6daGa.js → monitor-BJs6z7AT.js} +52 -56
- package/dist/plugin-sdk/{monitor-S_7LrvSj.js → monitor-BYGbTI5V.js} +62 -66
- package/dist/plugin-sdk/{openresponses-http-BrDJUZXR.js → openresponses-http-BGCl2dS2.js} +44 -48
- package/dist/plugin-sdk/{optional-runtime-dependency-CbYjAC2b.js → optional-runtime-dependency-BlTVkcAg.js} +1 -1
- package/dist/plugin-sdk/{outbound-BuDafBBI.js → outbound-CIemga5_.js} +9 -9
- package/dist/plugin-sdk/{outbound-attachment-DmZmUqFP.js → outbound-attachment-2RckWqrk.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-D0-UWGFJ.d.ts → pairing-message-C403mq4K.d.ts} +2 -2
- package/dist/plugin-sdk/{pairing-message-e4D4eBDA.js → pairing-message-r-VQfhFB.js} +1 -1
- package/dist/plugin-sdk/{pairing-store-T3IGoGZg.js → pairing-store-uPnLfGgB.js} +2 -2
- package/dist/plugin-sdk/{path-alias-guards-Dg3gU-MA.js → path-alias-guards-DjgDArrp.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-DvAG_Png.js → pi-model-discovery-BpEilAym.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-NjkUgjIf.js → pi-model-discovery-runtime-DwNdFaz-.js} +3 -3
- package/dist/plugin-sdk/{probe-Dlk0Jxpw.js → probe-BFroeK3g.js} +1 -1
- package/dist/plugin-sdk/{probe-Cyb-DGA3.js → probe-CJb5uR8B.js} +2 -2
- package/dist/plugin-sdk/{probe-D8JAILir.js → probe-l_whvGLY.js} +1 -1
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
- package/dist/plugin-sdk/{pw-ai-D7eW43DL.js → pw-ai-H7UgunQQ.js} +7 -9
- package/dist/plugin-sdk/{qmd-manager-DCUE21Kj.js → qmd-manager-DSyx77KY.js} +4 -4
- package/dist/plugin-sdk/{query-expansion-Zr9qQixm.js → query-expansion-CAI2kKLQ.js} +1 -1
- package/dist/plugin-sdk/{replies-BMIPmEoP.js → replies-CKMwkH4G.js} +4 -4
- package/dist/plugin-sdk/{reply-prefix-Bqzm6DC1.js → reply-prefix-CeVw7Mn2.js} +1 -1
- package/dist/plugin-sdk/{resolve-channels-ChWKWtA9.js → resolve-channels-87LZrFk_.js} +2 -2
- package/dist/plugin-sdk/{resolve-channels-zEnvugag.js → resolve-channels-_-nV-EK2.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-CXCqUUPV.js → resolve-outbound-target-B68fSoGi.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-DJN-SUSt.js → resolve-route-B8fOfihG.js} +2 -2
- package/dist/plugin-sdk/{resolve-users-BTvjQuui.js → resolve-users-DN9VQBwv.js} +1 -1
- package/dist/plugin-sdk/{resolve-users-CTzoruIZ.js → resolve-users-V6dHh_2B.js} +2 -2
- package/dist/plugin-sdk/{retry-policy-CY1qY6d7.js → retry-policy-B6GQldxB.js} +1 -1
- package/dist/plugin-sdk/{runtime-dependency-DvdRNMvs.js → runtime-dependency-DlqVSsSs.js} +124 -16
- package/dist/plugin-sdk/{runtime-CgOkQe0w.js → runtime-nVJl3PlS.js} +4 -4
- package/dist/plugin-sdk/{sandbox-paths-lj7_EVuA.js → sandbox-paths-Dx2lUqCu.js} +2 -2
- package/dist/plugin-sdk/sat-runtime.d.ts +3 -3
- package/dist/plugin-sdk/sat-runtime.js +45 -11
- package/dist/plugin-sdk/{send-2ITqny2W.js → send-BCJ4hi3t.js} +10 -10
- package/dist/plugin-sdk/{send-Cr-dj6S-.js → send-BHokB4TR.js} +6 -6
- package/dist/plugin-sdk/{send-BAz22RZr.js → send-CPK_HlYW.js} +9 -9
- package/dist/plugin-sdk/{send-eTxqFFsw.js → send-D3DQOg2a.js} +8 -8
- package/dist/plugin-sdk/{send-BG3RWyil.js → send-hSu1HWms.js} +13 -13
- package/dist/plugin-sdk/{session-C8nJmmVE.js → session-DQ4Dr-mf.js} +3 -3
- package/dist/plugin-sdk/{skill-commands-Rm5by9S8.js → skill-commands-CmdoKLh_.js} +103 -103
- package/dist/plugin-sdk/{slack-xvIVvyEM.js → slack-B70NHpMF.js} +65 -69
- package/dist/plugin-sdk/{slack-actions-BNIALJTA.js → slack-actions-fSmP981b.js} +21 -22
- package/dist/plugin-sdk/slack.d.ts +6 -6
- package/dist/plugin-sdk/slack.js +14 -14
- package/dist/plugin-sdk/{ssrf-BZG8Ztod.js → ssrf-fG4UHKBw.js} +180 -2
- package/dist/plugin-sdk/{sticker-cache-D3oDiu2u.js → sticker-cache-B4dG2sKU.js} +3 -3
- package/dist/plugin-sdk/{tables-DS5L7lCA.js → tables-EX4Hy-a-.js} +2 -2
- package/dist/plugin-sdk/{device-pairing-D2Yq-_U6.js → tailscale-status-DwpNdO3Z.js} +104 -2
- package/dist/plugin-sdk/{targets-D6lUomJc.js → targets-BeGUCGWK.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-MSFkDn0m.js → telegram-actions-CM8SJgc9.js} +49 -53
- package/dist/plugin-sdk/telegram.d.ts +6 -6
- package/dist/plugin-sdk/telegram.js +12 -12
- package/dist/plugin-sdk/{thread-bindings.lifecycle-Ry6Vcgw3.js → thread-bindings.lifecycle-tHK_1mvp.js} +3 -3
- package/dist/plugin-sdk/{thread-bindings.state-C0stmvNk.js → thread-bindings.state-D7xG1GHu.js} +2 -2
- package/dist/plugin-sdk/{tmp-fased-dir-D91GExk4.d.ts → tmp-fased-dir-Ouj58axY.d.ts} +2 -2
- package/dist/plugin-sdk/{types-DVTIpopt.d.ts → types-B4hj6HgR.d.ts} +2 -2
- package/dist/plugin-sdk/{types-BzadOItY.d.ts → types-DyhXnYUr.d.ts} +1 -1
- package/dist/plugin-sdk/{types-DKvBJHfH.d.ts → types-dWZFX1fk.d.ts} +28 -3
- package/dist/plugin-sdk/{types.plugin-BiHPaDTF.d.ts → types.plugin-_fbu40Re.d.ts} +7 -5
- package/dist/plugin-sdk/{web-DRNJxHXA.js → web-BFolfZ3i.js} +53 -57
- package/dist/plugin-sdk/{whatsapp-actions-BDXZF2R5.js → whatsapp-actions-CYmleHCz.js} +19 -20
- package/dist/plugin-sdk/{whatsapp-heartbeat-CKgmwCGr.js → whatsapp-heartbeat-BEwm4GK3.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +11 -11
- package/dist/plugin-sdk/whatsapp.js +15 -15
- package/dist/plugin-sdk/{wsl-Biw7Mj39.js → wsl-BtMDzMv5.js} +53 -53
- package/dist/plugin-sdk/{zod-schema.providers-core-CIzCjXH9.d.ts → zod-schema.providers-core-FaYR6KdD.d.ts} +61 -61
- package/dist/plugins/lifecycle.js +1 -1
- package/dist/plugins/manifest-registry.js +26 -0
- package/dist/plugins/manifest.js +2 -0
- package/dist/plugins/marketplace.js +1 -1
- package/dist/plugins/runtime/index.js +1 -1
- package/dist/plugins/update.js +1 -1
- package/dist/providers/github-copilot-model-discovery.js +51 -0
- package/dist/providers/openai-codex-model-discovery.js +176 -0
- package/dist/providers/refresh.js +116 -34
- package/dist/providers/registry.js +2 -2
- package/dist/providers/runtime-model-catalog.js +97 -28
- package/dist/shared/model-thinking.js +13 -2
- package/dist/telegram/bot-message-context.js +1 -1
- package/dist/wizard/onboarding.finalize.js +1 -1
- 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-BZFblCeY.js +0 -2
- package/dist/plugin-sdk/ip-C70a-YlD.js +0 -181
- package/dist/plugin-sdk/tailscale-status-ClsquRGs.js +0 -104
- package/dist/plugin-sdk/wallet-status-f0HagNeO.js +0 -11947
- package/dist/plugin-sdk/ws-CocpWGhl.js +0 -114
- /package/dist/plugin-sdk/{blocks-input-Dcitfh7h.js → blocks-input-Bg-8S2pl.js} +0 -0
- /package/dist/plugin-sdk/{channel-activity-Cg1xRoc2.js → channel-activity-DBDMQ3yI.js} +0 -0
- /package/dist/plugin-sdk/{channel-core-BOkyXXLa.js → channel-core-CFRs8LPy.js} +0 -0
- /package/dist/plugin-sdk/{client-D2N7hqVu.js → client-pI228AVT.js} +0 -0
- /package/dist/plugin-sdk/{command-poll-backoff-NAePk3eL.js → command-poll-backoff-yJU83wEq.js} +0 -0
- /package/dist/plugin-sdk/{date-time-CE3Uer3C.js → date-time-uUevHscU.js} +0 -0
- /package/dist/plugin-sdk/{diagnostic-session-state-HO94DMou.js → diagnostic-session-state-DqgfGYqZ.js} +0 -0
- /package/dist/plugin-sdk/{draft-stream-loop-CKyHn8IX.js → draft-stream-loop-CrOPfV3F.js} +0 -0
- /package/dist/plugin-sdk/{fetch-Cu-ahkie.js → fetch-BtmoPIlf.js} +0 -0
- /package/dist/plugin-sdk/{gateway-registry-DFsoY6C0.js → gateway-registry-DZDsqicG.js} +0 -0
- /package/dist/plugin-sdk/{inbound-context-BFnIdcqI.js → inbound-context-DrAcXE0y.js} +0 -0
- /package/dist/plugin-sdk/{internal-qo16nNU1.js → internal-CG_nHo-2.js} +0 -0
- /package/dist/plugin-sdk/{pairing-token-N_6Jbt1L.js → pairing-token-Cs3BRKc0.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-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
|
@@ -2,7 +2,7 @@ import { isLoopbackAddress, isLoopbackHost } from "../gateway/net.js";
|
|
|
2
2
|
import { rawDataToString } from "../infra/ws.js";
|
|
3
3
|
import { probeAuthenticatedFasedAgentRelay, resolveRelayAcceptedTokensForPort, resolveRelayAuthTokenForPort } from "./extension-relay-auth.js";
|
|
4
4
|
import { createServer } from "node:http";
|
|
5
|
-
import WebSocket, { WebSocketServer } from "ws";
|
|
5
|
+
import WebSocket$1, { WebSocketServer } from "ws";
|
|
6
6
|
|
|
7
7
|
//#region src/browser/extension-relay.ts
|
|
8
8
|
const RELAY_AUTH_HEADER = "x-fased-relay-token";
|
|
@@ -125,7 +125,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
125
125
|
let extensionWs = null;
|
|
126
126
|
const cdpClients = new Set();
|
|
127
127
|
const connectedTargets = new Map();
|
|
128
|
-
const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
|
|
128
|
+
const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
|
|
129
129
|
let extensionDisconnectCleanupTimer = null;
|
|
130
130
|
const extensionReconnectWaiters = new Set();
|
|
131
131
|
const flushExtensionReconnectWaiters = (connected) => {
|
|
@@ -190,7 +190,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
190
190
|
let nextExtensionId = 1;
|
|
191
191
|
const sendToExtension = async (payload) => {
|
|
192
192
|
const ws = extensionWs;
|
|
193
|
-
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
|
193
|
+
if (!ws || ws.readyState !== WebSocket$1.OPEN) {
|
|
194
194
|
throw new Error("Chrome extension not connected");
|
|
195
195
|
}
|
|
196
196
|
ws.send(JSON.stringify(payload));
|
|
@@ -209,14 +209,14 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
209
209
|
const broadcastToCdpClients = (evt) => {
|
|
210
210
|
const msg = JSON.stringify(evt);
|
|
211
211
|
for (const ws of cdpClients) {
|
|
212
|
-
if (ws.readyState !== WebSocket.OPEN) {
|
|
212
|
+
if (ws.readyState !== WebSocket$1.OPEN) {
|
|
213
213
|
continue;
|
|
214
214
|
}
|
|
215
215
|
ws.send(msg);
|
|
216
216
|
}
|
|
217
217
|
};
|
|
218
218
|
const sendResponseToCdp = (ws, res) => {
|
|
219
|
-
if (ws.readyState !== WebSocket.OPEN) {
|
|
219
|
+
if (ws.readyState !== WebSocket$1.OPEN) {
|
|
220
220
|
return;
|
|
221
221
|
}
|
|
222
222
|
ws.send(JSON.stringify(res));
|
|
@@ -460,7 +460,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
460
460
|
rejectUpgrade(socket, 401, "Unauthorized");
|
|
461
461
|
return;
|
|
462
462
|
}
|
|
463
|
-
if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
|
|
463
|
+
if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
|
|
464
464
|
try {
|
|
465
465
|
extensionWs.terminate();
|
|
466
466
|
} catch {}
|
|
@@ -497,7 +497,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
497
497
|
clearExtensionDisconnectCleanupTimer();
|
|
498
498
|
flushExtensionReconnectWaiters(true);
|
|
499
499
|
const ping = setInterval(() => {
|
|
500
|
-
if (ws.readyState !== WebSocket.OPEN) {
|
|
500
|
+
if (ws.readyState !== WebSocket$1.OPEN) {
|
|
501
501
|
return;
|
|
502
502
|
}
|
|
503
503
|
ws.send(JSON.stringify({ method: "ping" }));
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
bfd05e986c05a91921422f61d2871d036c3e2622a756b89cd75c7ba92ccf4947
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { installPluginFromNpmSpec } from "../plugins/install.js";
|
|
2
|
+
import { buildNpmResolutionInstallFields } from "../plugins/installs.js";
|
|
3
|
+
import { finalizeInstalledPluginConfig } from "../plugins/lifecycle.js";
|
|
4
|
+
import { loadCapabilityCatalog } from "./catalog.js";
|
|
5
|
+
|
|
6
|
+
//#region src/capabilities/install.ts
|
|
7
|
+
async function installCapabilityComponent(params) {
|
|
8
|
+
const entry = loadCapabilityCatalog().find((candidate) => candidate.id === params.id);
|
|
9
|
+
if (!entry) {
|
|
10
|
+
throw new Error(`Unknown component: ${params.id}. Run \`fased components\` to list choices.`);
|
|
11
|
+
}
|
|
12
|
+
if (entry.delivery !== "npm-addon" || !entry.packageName || !entry.pluginId) {
|
|
13
|
+
throw new Error(`${entry.label} is delivered as ${entry.delivery} and cannot be installed as an add-on. See ${entry.docsPath}.`);
|
|
14
|
+
}
|
|
15
|
+
const packageSpec = params.packageSpec?.trim() || entry.packageName;
|
|
16
|
+
const result = await installPluginFromNpmSpec({ spec: packageSpec });
|
|
17
|
+
if (!result.ok) {
|
|
18
|
+
throw new Error(result.error);
|
|
19
|
+
}
|
|
20
|
+
const finalized = finalizeInstalledPluginConfig({
|
|
21
|
+
config: params.config,
|
|
22
|
+
pluginId: result.pluginId,
|
|
23
|
+
refreshManifestRegistry: true,
|
|
24
|
+
installRecord: {
|
|
25
|
+
source: "npm",
|
|
26
|
+
spec: packageSpec,
|
|
27
|
+
installPath: result.targetDir,
|
|
28
|
+
version: result.version,
|
|
29
|
+
...buildNpmResolutionInstallFields(result.npmResolution)
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
config: finalized.config,
|
|
34
|
+
entry,
|
|
35
|
+
pluginId: result.pluginId,
|
|
36
|
+
targetDir: result.targetDir,
|
|
37
|
+
...result.version ? { version: result.version } : {},
|
|
38
|
+
slotWarnings: finalized.slotWarnings
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//#endregion
|
|
43
|
+
export { installCapabilityComponent };
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { theme } from "../terminal/theme.js";
|
|
2
2
|
import { defaultRuntime } from "../runtime.js";
|
|
3
|
-
import { installPluginFromNpmSpec } from "../plugins/install.js";
|
|
4
3
|
import { loadConfig, writeConfigFile } from "../config/io.js";
|
|
5
4
|
import "../config/config.js";
|
|
6
5
|
import { formatDocsLink } from "../terminal/links.js";
|
|
6
|
+
import { buildCapabilityReadinessReport, formatCapabilityReadinessSummary } from "../capabilities/catalog.js";
|
|
7
|
+
import { installCapabilityComponent } from "../capabilities/install.js";
|
|
7
8
|
import { renderTable } from "../terminal/table.js";
|
|
8
|
-
import { buildNpmResolutionInstallFields } from "../plugins/installs.js";
|
|
9
|
-
import { finalizeInstalledPluginConfig } from "../plugins/lifecycle.js";
|
|
10
|
-
import { buildCapabilityReadinessReport, formatCapabilityReadinessSummary, loadCapabilityCatalog } from "../capabilities/catalog.js";
|
|
11
9
|
|
|
12
10
|
//#region src/cli/components-cli.ts
|
|
13
11
|
function registerComponentsCli(program) {
|
|
@@ -18,36 +16,16 @@ function registerComponentsCli(program) {
|
|
|
18
16
|
renderComponentReport(options);
|
|
19
17
|
});
|
|
20
18
|
components.command("install").description("Install a cataloged optional component").argument("<id>", "Component id from `fased components`").action(async (id) => {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
if (entry.delivery !== "npm-addon" || !entry.packageName || !entry.pluginId) {
|
|
26
|
-
throw new Error(`${entry.label} is delivered as ${entry.delivery} and cannot be installed as an add-on. See ${entry.docsPath}.`);
|
|
27
|
-
}
|
|
28
|
-
const result = await installPluginFromNpmSpec({ spec: entry.packageName });
|
|
29
|
-
if (!result.ok) {
|
|
30
|
-
throw new Error(result.error);
|
|
31
|
-
}
|
|
32
|
-
const config = loadConfig();
|
|
33
|
-
const finalized = finalizeInstalledPluginConfig({
|
|
34
|
-
config,
|
|
35
|
-
pluginId: result.pluginId,
|
|
36
|
-
refreshManifestRegistry: true,
|
|
37
|
-
installRecord: {
|
|
38
|
-
source: "npm",
|
|
39
|
-
spec: entry.packageName,
|
|
40
|
-
installPath: result.targetDir,
|
|
41
|
-
version: result.version,
|
|
42
|
-
...buildNpmResolutionInstallFields(result.npmResolution)
|
|
43
|
-
}
|
|
19
|
+
const result = await installCapabilityComponent({
|
|
20
|
+
id,
|
|
21
|
+
config: loadConfig()
|
|
44
22
|
});
|
|
45
|
-
await writeConfigFile(
|
|
46
|
-
for (const warning of
|
|
23
|
+
await writeConfigFile(result.config);
|
|
24
|
+
for (const warning of result.slotWarnings) {
|
|
47
25
|
defaultRuntime.log(theme.warn(warning));
|
|
48
26
|
}
|
|
49
|
-
defaultRuntime.log(`Installed component: ${entry.label} (${entry.packageName})`);
|
|
50
|
-
if (entry.restartRequired !== false) {
|
|
27
|
+
defaultRuntime.log(`Installed component: ${result.entry.label} (${result.entry.packageName})`);
|
|
28
|
+
if (result.entry.restartRequired !== false) {
|
|
51
29
|
defaultRuntime.log("Restart the gateway to apply the component.");
|
|
52
30
|
}
|
|
53
31
|
});
|
|
@@ -38,7 +38,7 @@ function registerCronListCommand(cron) {
|
|
|
38
38
|
}));
|
|
39
39
|
}
|
|
40
40
|
function registerCronAddCommand(cron) {
|
|
41
|
-
addGatewayClientOptions(cron.command("add").alias("create").description("Add a scheduled task").requiredOption("--name <name>", "Task name").option("--description <text>", "Optional description").option("--disabled", "Create task disabled", false).option("--delete-after-run", "Delete one-shot task after it succeeds", false).option("--keep-after-run", "Keep one-shot task after it succeeds", false).option("--agent <id>", "Agent id for this task").option("--session <target>", "Session target (main|isolated)").option("--session-key <key>", "Session key for task routing (e.g. agent:my-agent:my-session)").option("--wake <mode>", "Wake mode (now|next-heartbeat)", "now").option("--at <when>", "Run once at time (ISO) or +duration (e.g. 20m)").option("--every <duration>", "Run every duration (e.g. 10m, 1h)").option("--cron <expr>", "Cron expression (5-field or 6-field with seconds)").option("--tz <iana>", "Timezone for cron expressions (IANA)", "").option("--stagger <duration>", "Cron stagger window (e.g. 30s, 5m)").option("--exact", "Disable cron staggering (set stagger to 0)", false).option("--system-event <text>", "System event payload (main session)").option("--message <text>", "Agent message payload").option("--thinking <level>", "Thinking level for agent tasks (off|minimal|low|medium|high)").option("--model <model>", "Model override for agent tasks (provider/model or alias)").option("--timeout-seconds <n>", "Timeout seconds for agent tasks").option("--announce", "Announce summary to a chat (subagent-style)", false).option("--deliver", "Deprecated (use --announce). Announces a summary to a chat.").option("--no-deliver", "Disable announce delivery and skip main-session summary").option("--channel <channel>", `Delivery channel (${getCronChannelOptions()})`, "last").option("--to <dest>", "Delivery destination (E.164, Telegram chatId, or Discord channel/user)").option("--best-effort-deliver", "Do not fail the task if delivery fails", false).option("--json", "Output JSON", false).action(async (opts, cmd) => {
|
|
41
|
+
addGatewayClientOptions(cron.command("add").alias("create").description("Add a scheduled task").requiredOption("--name <name>", "Task name").option("--description <text>", "Optional description").option("--disabled", "Create task disabled", false).option("--delete-after-run", "Delete one-shot task after it succeeds", false).option("--keep-after-run", "Keep one-shot task after it succeeds", false).option("--agent <id>", "Agent id for this task").option("--session <target>", "Session target (main|isolated)").option("--session-key <key>", "Session key for task routing (e.g. agent:my-agent:my-session)").option("--wake <mode>", "Wake mode (now|next-heartbeat)", "now").option("--at <when>", "Run once at time (ISO) or +duration (e.g. 20m)").option("--every <duration>", "Run every duration (e.g. 10m, 1h)").option("--cron <expr>", "Cron expression (5-field or 6-field with seconds)").option("--tz <iana>", "Timezone for cron expressions (IANA)", "").option("--stagger <duration>", "Cron stagger window (e.g. 30s, 5m)").option("--exact", "Disable cron staggering (set stagger to 0)", false).option("--system-event <text>", "System event payload (main session)").option("--message <text>", "Agent message payload").option("--thinking <level>", "Thinking level for agent tasks (off|minimal|low|medium|high|xhigh|max|ultra)").option("--model <model>", "Model override for agent tasks (provider/model or alias)").option("--timeout-seconds <n>", "Timeout seconds for agent tasks").option("--announce", "Announce summary to a chat (subagent-style)", false).option("--deliver", "Deprecated (use --announce). Announces a summary to a chat.").option("--no-deliver", "Disable announce delivery and skip main-session summary").option("--channel <channel>", `Delivery channel (${getCronChannelOptions()})`, "last").option("--to <dest>", "Delivery destination (E.164, Telegram chatId, or Discord channel/user)").option("--best-effort-deliver", "Do not fail the task if delivery fails", false).option("--json", "Output JSON", false).action(async (opts, cmd) => {
|
|
42
42
|
try {
|
|
43
43
|
const staggerRaw = typeof opts.stagger === "string" ? opts.stagger.trim() : "";
|
|
44
44
|
const useExact = Boolean(opts.exact);
|
package/dist/cli/hooks-cli.js
CHANGED
|
@@ -7,8 +7,8 @@ import { resolveArchiveKind } from "../infra/archive.js";
|
|
|
7
7
|
import { loadConfig, writeConfigFile } from "../config/io.js";
|
|
8
8
|
import { promptYesNo } from "./prompt.js";
|
|
9
9
|
import { formatDocsLink } from "../terminal/links.js";
|
|
10
|
-
import { renderTable } from "../terminal/table.js";
|
|
11
10
|
import { buildPluginStatusReport } from "../plugins/status.js";
|
|
11
|
+
import { renderTable } from "../terminal/table.js";
|
|
12
12
|
import { loadWorkspaceHookEntries } from "../hooks/workspace.js";
|
|
13
13
|
import { buildWorkspaceHookStatus } from "../hooks/hooks-status.js";
|
|
14
14
|
import { installHooksFromNpmSpec, installHooksFromPath, resolveHookInstallDir } from "../hooks/install.js";
|
package/dist/cli/plugins-cli.js
CHANGED
|
@@ -7,13 +7,13 @@ import { installPluginFromNpmSpec, installPluginFromPath } from "../plugins/inst
|
|
|
7
7
|
import { loadConfig, writeConfigFile } from "../config/io.js";
|
|
8
8
|
import "../config/config.js";
|
|
9
9
|
import { promptYesNo } from "./prompt.js";
|
|
10
|
-
import { formatDocsLink } from "../terminal/links.js";
|
|
11
|
-
import { renderTable } from "../terminal/table.js";
|
|
12
|
-
import { findBundledPluginByNpmSpec } from "../plugins/bundled-sources.js";
|
|
13
10
|
import { setPluginEnabledInConfig } from "../plugins/toggle-config.js";
|
|
14
11
|
import { enablePluginInConfig } from "../plugins/enable.js";
|
|
12
|
+
import { formatDocsLink } from "../terminal/links.js";
|
|
13
|
+
import { findBundledPluginByNpmSpec } from "../plugins/bundled-sources.js";
|
|
15
14
|
import { applySlotSelectionForPlugin, buildPluginLifecycleReport, buildPluginUninstallPreview, executePluginUninstallLifecycle, executePluginUpdateLifecycle, finalizeInstalledPluginConfig } from "../plugins/lifecycle.js";
|
|
16
15
|
import { buildPluginMarketplaceReport } from "../plugins/marketplace.js";
|
|
16
|
+
import { renderTable } from "../terminal/table.js";
|
|
17
17
|
import { buildPluginMarketplaceUpdateReview, formatPluginMarketplaceUpdateReviewWarnings } from "../plugins/marketplace-update-review.js";
|
|
18
18
|
import { getPluginRuntimeSessionReadGrant, setPluginRuntimeSessionReadGrant } from "../plugins/runtime-helper-grants.js";
|
|
19
19
|
import { resolvePinnedNpmInstallRecordForCli } from "./npm-resolution.js";
|
|
@@ -18,7 +18,7 @@ import "../../commands/agents.js";
|
|
|
18
18
|
|
|
19
19
|
//#region src/cli/program/register.agent.ts
|
|
20
20
|
function registerAgentCommands(program, args) {
|
|
21
|
-
program.command("agent").description("Run an agent turn via the Gateway (use --local for embedded)").requiredOption("-m, --message <text>", "Message body for the agent").option("-t, --to <number>", "Recipient number in E.164 used to derive the session key").option("--session-id <id>", "Use an explicit session id").option("--agent <id>", "Agent id (overrides routing bindings)").option("--thinking <level>", "Thinking level: off | minimal | low | medium | high").option("--verbose <on|off>", "Persist agent verbose level for the session").option("--channel <channel>", `Delivery channel: ${args.agentChannelOptions} (omit to use the main session channel)`).option("--reply-to <target>", "Delivery target override (separate from session routing)").option("--reply-channel <channel>", "Delivery channel override (separate from routing)").option("--reply-account <id>", "Delivery account id override").option("--local", "Run the embedded agent locally (requires model provider API keys in your shell)", false).option("--deliver", "Send the agent's reply back to the selected channel", false).option("--json", "Output result as JSON", false).option("--timeout <seconds>", "Override agent command timeout (seconds, default 600 or config value)").addHelpText("after", () => `
|
|
21
|
+
program.command("agent").description("Run an agent turn via the Gateway (use --local for embedded)").requiredOption("-m, --message <text>", "Message body for the agent").option("-t, --to <number>", "Recipient number in E.164 used to derive the session key").option("--session-id <id>", "Use an explicit session id").option("--agent <id>", "Agent id (overrides routing bindings)").option("--thinking <level>", "Thinking level: off | minimal | low | medium | high | xhigh | max | ultra").option("--verbose <on|off>", "Persist agent verbose level for the session").option("--channel <channel>", `Delivery channel: ${args.agentChannelOptions} (omit to use the main session channel)`).option("--reply-to <target>", "Delivery target override (separate from session routing)").option("--reply-channel <channel>", "Delivery channel override (separate from routing)").option("--reply-account <id>", "Delivery account id override").option("--local", "Run the embedded agent locally (requires model provider API keys in your shell)", false).option("--deliver", "Send the agent's reply back to the selected channel", false).option("--json", "Output result as JSON", false).option("--timeout <seconds>", "Override agent command timeout (seconds, default 600 or config value)").addHelpText("after", () => `
|
|
22
22
|
${theme.heading("Examples:")}
|
|
23
23
|
${formatHelpExamples([
|
|
24
24
|
["fased agent --to +15555550123 --message \"status update\"", "Start a new session."],
|
|
@@ -9,6 +9,8 @@ import { readConfigFileSnapshot, writeConfigFile } from "../../config/io.js";
|
|
|
9
9
|
import "../../config/config.js";
|
|
10
10
|
import { loadGatewayTlsRuntime } from "../../infra/tls/gateway.js";
|
|
11
11
|
import { stylePromptMessage } from "../../terminal/prompt-style.js";
|
|
12
|
+
import { syncPluginsForUpdateChannel, updateNpmInstalledPlugins } from "../../plugins/update.js";
|
|
13
|
+
import { OPENAI_RUNTIME_COMPONENT_ID, ensureOpenAICodexRuntimeComponent, hasConfiguredOpenAICodexProfile } from "../../agents/openai-codex-runtime-component.js";
|
|
12
14
|
import { DEFAULT_GIT_CHANNEL, DEFAULT_PACKAGE_CHANNEL, channelToNpmTag, normalizeUpdateChannel } from "../../infra/update-channels.js";
|
|
13
15
|
import { cleanupGlobalRenameDirs, globalInstallArgs, resolveGlobalPackageRoot, resolveNodeModulesRootForPackageRoot } from "../../infra/update-global.js";
|
|
14
16
|
import { checkUpdateStatus, compareSemverStrings, resolveNpmChannelTag } from "../../infra/update-check.js";
|
|
@@ -18,7 +20,6 @@ import { renderRestartDiagnostics, terminateStaleGatewayPids, waitForGatewayHeal
|
|
|
18
20
|
import { runDaemonRestart } from "../daemon-cli/lifecycle.js";
|
|
19
21
|
import "../../daemon-cli.js";
|
|
20
22
|
import { installCompletion } from "../completion-cli.js";
|
|
21
|
-
import { syncPluginsForUpdateChannel, updateNpmInstalledPlugins } from "../../plugins/update.js";
|
|
22
23
|
import { readPackageName, readPackageVersion } from "../../infra/package-json.js";
|
|
23
24
|
import { finalizeUpdateTransaction, rollbackUpdateTransaction, runGatewayUpdate } from "../../infra/update-runner.js";
|
|
24
25
|
import { checkShellCompletionStatus, ensureCompletionCacheExists } from "../../commands/doctor-completion.js";
|
|
@@ -422,14 +423,32 @@ async function updatePluginsAfterCoreUpdate(params) {
|
|
|
422
423
|
config: params.configSnapshot.config,
|
|
423
424
|
updateCompleted: true
|
|
424
425
|
});
|
|
425
|
-
|
|
426
|
+
let pluginConfig = repairResult.config;
|
|
427
|
+
let installedOpenAIRuntime = false;
|
|
428
|
+
if (hasConfiguredOpenAICodexProfile(pluginConfig)) {
|
|
429
|
+
const runtimeComponent = await ensureOpenAICodexRuntimeComponent({
|
|
430
|
+
config: pluginConfig,
|
|
431
|
+
version: params.targetVersion
|
|
432
|
+
});
|
|
433
|
+
pluginConfig = runtimeComponent.config;
|
|
434
|
+
installedOpenAIRuntime = runtimeComponent.installed;
|
|
435
|
+
if (runtimeComponent.installed && !params.opts.json) {
|
|
436
|
+
defaultRuntime.log(theme.muted("Installed the managed OpenAI sign-in runtime required by the existing ChatGPT credential."));
|
|
437
|
+
}
|
|
438
|
+
for (const warning of runtimeComponent.slotWarnings) {
|
|
439
|
+
if (!params.opts.json) {
|
|
440
|
+
defaultRuntime.log(theme.warn(warning));
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
const installs = pluginConfig.plugins?.installs ?? {};
|
|
426
445
|
if (Object.keys(installs).length === 0) {
|
|
427
|
-
if (repairResult.changed) {
|
|
428
|
-
await writeConfigFile(
|
|
446
|
+
if (repairResult.changed || installedOpenAIRuntime) {
|
|
447
|
+
await writeConfigFile(pluginConfig);
|
|
429
448
|
}
|
|
430
449
|
return {
|
|
431
|
-
changed: repairResult.changed,
|
|
432
|
-
checked:
|
|
450
|
+
changed: repairResult.changed || installedOpenAIRuntime,
|
|
451
|
+
checked: installedOpenAIRuntime
|
|
433
452
|
};
|
|
434
453
|
}
|
|
435
454
|
const pluginLogger = params.opts.json ? {} : {
|
|
@@ -442,25 +461,25 @@ async function updatePluginsAfterCoreUpdate(params) {
|
|
|
442
461
|
defaultRuntime.log(theme.heading("Updating plugins..."));
|
|
443
462
|
}
|
|
444
463
|
const syncResult = await syncPluginsForUpdateChannel({
|
|
445
|
-
config:
|
|
464
|
+
config: pluginConfig,
|
|
446
465
|
channel: params.channel,
|
|
447
466
|
workspaceDir: params.root,
|
|
448
467
|
logger: pluginLogger
|
|
449
468
|
});
|
|
450
|
-
|
|
469
|
+
pluginConfig = syncResult.config;
|
|
451
470
|
const npmResult = await updateNpmInstalledPlugins({
|
|
452
471
|
config: pluginConfig,
|
|
453
|
-
skipIds: new Set(syncResult.summary.switchedToNpm),
|
|
472
|
+
skipIds: new Set([...syncResult.summary.switchedToNpm, ...installedOpenAIRuntime ? [OPENAI_RUNTIME_COMPONENT_ID] : []]),
|
|
454
473
|
updateChannel: params.channel,
|
|
455
474
|
logger: pluginLogger
|
|
456
475
|
});
|
|
457
476
|
pluginConfig = npmResult.config;
|
|
458
|
-
if (repairResult.changed || syncResult.changed || npmResult.changed) {
|
|
477
|
+
if (repairResult.changed || installedOpenAIRuntime || syncResult.changed || npmResult.changed) {
|
|
459
478
|
await writeConfigFile(pluginConfig);
|
|
460
479
|
}
|
|
461
480
|
if (params.opts.json) {
|
|
462
481
|
return {
|
|
463
|
-
changed: repairResult.changed || syncResult.changed || npmResult.changed,
|
|
482
|
+
changed: repairResult.changed || installedOpenAIRuntime || syncResult.changed || npmResult.changed,
|
|
464
483
|
checked: true
|
|
465
484
|
};
|
|
466
485
|
}
|
|
@@ -511,7 +530,7 @@ async function updatePluginsAfterCoreUpdate(params) {
|
|
|
511
530
|
defaultRuntime.log(theme.error(outcome.message));
|
|
512
531
|
}
|
|
513
532
|
return {
|
|
514
|
-
changed: repairResult.changed || syncResult.changed || npmResult.changed,
|
|
533
|
+
changed: repairResult.changed || installedOpenAIRuntime || syncResult.changed || npmResult.changed,
|
|
515
534
|
checked: true
|
|
516
535
|
};
|
|
517
536
|
}
|
|
@@ -802,6 +821,24 @@ async function updateCommand(opts) {
|
|
|
802
821
|
}
|
|
803
822
|
}
|
|
804
823
|
if (alreadyCurrent && currentVersion && targetVersion) {
|
|
824
|
+
if (configSnapshot.valid && hasConfiguredOpenAICodexProfile(configSnapshot.config)) {
|
|
825
|
+
try {
|
|
826
|
+
const runtimeComponent = await ensureOpenAICodexRuntimeComponent({
|
|
827
|
+
config: configSnapshot.config,
|
|
828
|
+
version: targetVersion
|
|
829
|
+
});
|
|
830
|
+
if (runtimeComponent.installed) {
|
|
831
|
+
await writeConfigFile(runtimeComponent.config);
|
|
832
|
+
if (!opts.json) {
|
|
833
|
+
defaultRuntime.log(theme.muted("Installed the version-matched OpenAI sign-in runtime required by the current release."));
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
} catch (error) {
|
|
837
|
+
defaultRuntime.error(`OpenAI sign-in runtime update failed: ${String(error)}`);
|
|
838
|
+
defaultRuntime.exit(1);
|
|
839
|
+
return;
|
|
840
|
+
}
|
|
841
|
+
}
|
|
805
842
|
const runningRuntime = await probeRunningGatewayRuntimeIdentity({ timeoutMs: 750 });
|
|
806
843
|
if (runningRuntime.reachable && runningRuntime.version !== currentVersion) {
|
|
807
844
|
if (!shouldRestart) {
|
|
@@ -1000,6 +1037,7 @@ async function updateCommand(opts) {
|
|
|
1000
1037
|
const pluginResult = await measureUpdateStage(lifecycleTimings, "plugin updates", () => updatePluginsAfterCoreUpdate({
|
|
1001
1038
|
root,
|
|
1002
1039
|
channel,
|
|
1040
|
+
targetVersion: result.after?.version ?? targetVersion ?? undefined,
|
|
1003
1041
|
configSnapshot,
|
|
1004
1042
|
opts
|
|
1005
1043
|
}));
|
package/dist/commands/agent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { formatThinkingLevels, formatXHighModelHint, normalizeThinkLevel, supportsXHighThinking } from "../shared/model-thinking.js";
|
|
1
|
+
import { formatThinkingLevels, formatXHighModelHint, normalizeThinkLevel, supportsThinkingLevel, supportsXHighThinking } from "../shared/model-thinking.js";
|
|
2
2
|
import { normalizeVerboseLevel } from "../auto-reply/thinking.js";
|
|
3
3
|
import { defaultRuntime } from "../runtime.js";
|
|
4
4
|
import { normalizeAgentId, resolveAgentIdFromSessionKey } from "../routing/session-key.js";
|
|
@@ -26,10 +26,10 @@ import { resolveSendPolicy } from "../sessions/send-policy.js";
|
|
|
26
26
|
import { toAcpRuntimeError } from "../acp/runtime/errors.js";
|
|
27
27
|
import { getAcpSessionManager } from "../acp/control-plane/manager.js";
|
|
28
28
|
import { resolveAcpAgentPolicyError, resolveAcpDispatchPolicyError } from "../acp/policy.js";
|
|
29
|
-
import { runWithModelFallback } from "../agents/model-fallback.js";
|
|
30
|
-
import { applyModelOverrideToSessionEntry } from "../sessions/model-overrides.js";
|
|
31
29
|
import { buildCredentialScopedAllowedModelSet } from "../agents/model-catalog-access.js";
|
|
32
30
|
import { loadModelCatalog } from "../agents/model-catalog.js";
|
|
31
|
+
import { runWithModelFallback } from "../agents/model-fallback.js";
|
|
32
|
+
import { applyModelOverrideToSessionEntry } from "../sessions/model-overrides.js";
|
|
33
33
|
import { buildWorkspaceSkillSnapshot } from "../agents/skills/workspace.js";
|
|
34
34
|
import "../agents/skills.js";
|
|
35
35
|
import { getSkillsSnapshotVersion } from "../agents/skills/refresh-state.js";
|
|
@@ -492,6 +492,25 @@ async function agentCommand(opts, runtime = defaultRuntime, deps = createDefault
|
|
|
492
492
|
});
|
|
493
493
|
}
|
|
494
494
|
}
|
|
495
|
+
if ((resolvedThinkLevel === "max" || resolvedThinkLevel === "ultra") && !supportsThinkingLevel(provider, model, resolvedThinkLevel)) {
|
|
496
|
+
const explicitThink = Boolean(thinkOnce || thinkOverride);
|
|
497
|
+
if (explicitThink) {
|
|
498
|
+
throw new Error(`Thinking level "${resolvedThinkLevel}" is not supported for ${provider}/${model}. Supported levels: ${formatThinkingLevels(provider, model)}.`);
|
|
499
|
+
}
|
|
500
|
+
const unsupportedLevel = resolvedThinkLevel;
|
|
501
|
+
resolvedThinkLevel = "high";
|
|
502
|
+
if (sessionEntry && sessionStore && sessionKey && sessionEntry.thinkingLevel === unsupportedLevel) {
|
|
503
|
+
const entry = sessionEntry;
|
|
504
|
+
entry.thinkingLevel = "high";
|
|
505
|
+
entry.updatedAt = Date.now();
|
|
506
|
+
await persistSessionEntry({
|
|
507
|
+
sessionStore,
|
|
508
|
+
sessionKey,
|
|
509
|
+
storePath,
|
|
510
|
+
entry
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
}
|
|
495
514
|
const sessionPathOpts = resolveSessionFilePathOptions({
|
|
496
515
|
agentId: sessionAgentId,
|
|
497
516
|
storePath
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { openUrl } from "./onboard-helpers.js";
|
|
2
|
+
import { ensureOpenAICodexRuntimeComponent } from "../agents/openai-codex-runtime-component.js";
|
|
2
3
|
import { normalizeApiKeyInput, validateApiKeyInput } from "./auth-choice.api-key.js";
|
|
3
4
|
import { applyDefaultModelChoice } from "./auth-choice.default-model.js";
|
|
4
5
|
import { createAuthChoiceAgentModelNoter, ensureApiKeyFromOptionEnvOrPrompt, normalizeSecretInputModeInput } from "./auth-choice.apply-helpers.js";
|
|
@@ -82,6 +83,14 @@ async function applyAuthChoiceOpenAI(params) {
|
|
|
82
83
|
};
|
|
83
84
|
}
|
|
84
85
|
if (creds) {
|
|
86
|
+
const runtimeComponent = await ensureOpenAICodexRuntimeComponent({ config: nextConfig });
|
|
87
|
+
nextConfig = runtimeComponent.config;
|
|
88
|
+
for (const warning of runtimeComponent.slotWarnings) {
|
|
89
|
+
await params.prompter.note(warning, "OpenAI runtime warning");
|
|
90
|
+
}
|
|
91
|
+
if (runtimeComponent.installed) {
|
|
92
|
+
await params.prompter.note("Installed the managed OpenAI sign-in runtime for authenticated model discovery and execution.", "OpenAI runtime ready");
|
|
93
|
+
}
|
|
85
94
|
const profileId = await writeOAuthCredentials("openai-codex", creds, params.agentDir, { syncSiblingAgents: true });
|
|
86
95
|
nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
87
96
|
profileId,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { resolveDefaultAgentWorkspaceDir } from "../agents/workspace.js";
|
|
2
2
|
import { resolveAgentDir, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
|
|
3
3
|
import { resolveFasedAgentAgentDir } from "../agents/agent-paths.js";
|
|
4
|
-
import { resolvePluginProviders } from "../plugins/providers.js";
|
|
5
4
|
import { enablePluginInConfig } from "../plugins/enable.js";
|
|
5
|
+
import { resolvePluginProviders } from "../plugins/providers.js";
|
|
6
6
|
import { pickAuthMethod, resolveProviderMatch } from "../plugins/provider-auth-choice-helpers.js";
|
|
7
7
|
import { applyPluginProviderAuthRunResult, createPluginProviderAuthContext, runInteractivePluginProviderOAuthDeviceAuth } from "../plugins/provider-auth-runtime.js";
|
|
8
8
|
|
|
@@ -14,8 +14,8 @@ import "../config/config.js";
|
|
|
14
14
|
import { listTelegramAccountIds, resolveTelegramAccount } from "../telegram/accounts.js";
|
|
15
15
|
import "../channels/registry.js";
|
|
16
16
|
import { readChannelAllowFromStore } from "../pairing/pairing-store.js";
|
|
17
|
-
import { listInterpreterLikeSafeBins, resolveMergedSafeBinProfileFixtures } from "../infra/exec-safe-bin-runtime-policy.js";
|
|
18
17
|
import { readWalletApprovalAuthSnapshot } from "../wallet/wallet-approval-auth.js";
|
|
18
|
+
import { listInterpreterLikeSafeBins, resolveMergedSafeBinProfileFixtures } from "../infra/exec-safe-bin-runtime-policy.js";
|
|
19
19
|
import { applyPluginAutoEnable } from "../config/plugin-auto-enable.js";
|
|
20
20
|
import { isNumericTelegramUserId, normalizeTelegramAllowFromEntry } from "../channels/telegram/allow-from.js";
|
|
21
21
|
import { collectProviderDangerousNameMatchingScopes } from "../config/dangerous-name-matching.js";
|
|
@@ -6,7 +6,7 @@ import { rawDataToString } from "../infra/ws.js";
|
|
|
6
6
|
import { buildDeviceAuthPayload } from "../gateway/device-auth.js";
|
|
7
7
|
import { PROTOCOL_VERSION } from "../gateway/protocol/schema/protocol-schemas.js";
|
|
8
8
|
import "../gateway/protocol/index.js";
|
|
9
|
-
import { WebSocket
|
|
9
|
+
import { WebSocket } from "ws";
|
|
10
10
|
|
|
11
11
|
//#region src/commands/hosted-dashboard-probe.ts
|
|
12
12
|
function sanitizeErrorMessage(value) {
|
|
@@ -392,7 +392,7 @@ function probeHostedWs(params) {
|
|
|
392
392
|
resolve(result);
|
|
393
393
|
};
|
|
394
394
|
const sendConnect = () => {
|
|
395
|
-
if (!ws || ws.readyState !== WebSocket
|
|
395
|
+
if (!ws || ws.readyState !== WebSocket.OPEN || connectSent) {
|
|
396
396
|
return;
|
|
397
397
|
}
|
|
398
398
|
connectSent = true;
|
|
@@ -438,7 +438,7 @@ function probeHostedWs(params) {
|
|
|
438
438
|
});
|
|
439
439
|
}, params.timeoutMs);
|
|
440
440
|
try {
|
|
441
|
-
ws = new WebSocket
|
|
441
|
+
ws = new WebSocket(params.wsUrl, {
|
|
442
442
|
headers: { Origin: params.origin },
|
|
443
443
|
handshakeTimeout: Math.max(1e3, Math.floor(params.timeoutMs)),
|
|
444
444
|
maxPayload: 1024 * 1024
|
|
@@ -13,10 +13,10 @@ import { listProfilesForProvider } from "../agents/auth-profiles/profiles.js";
|
|
|
13
13
|
import "../agents/auth-profiles.js";
|
|
14
14
|
import { getCustomProviderApiKey, resolveEnvApiKey } from "../agents/model-auth.js";
|
|
15
15
|
import { buildAllowedModelSet, buildModelAliasIndex, modelKey, normalizeProviderId, resolveConfiguredModelRef } from "../agents/model-selection.js";
|
|
16
|
-
import { buildCredentialScopedAllowedModelSet } from "../agents/model-catalog-access.js";
|
|
17
16
|
import { formatModelFeatureList } from "../agents/model-metadata.js";
|
|
18
|
-
import {
|
|
17
|
+
import { buildCredentialScopedAllowedModelSet } from "../agents/model-catalog-access.js";
|
|
19
18
|
import { resolveAuthenticatedModelCatalog } from "../agents/authenticated-model-catalog.js";
|
|
19
|
+
import { loadModelCatalog } from "../agents/model-catalog.js";
|
|
20
20
|
import { loadPreviewModelListSources } from "./models/list.preview-catalog.js";
|
|
21
21
|
import { formatTokenK } from "./models/shared.js";
|
|
22
22
|
import { OPENAI_CODEX_DEFAULT_MODEL } from "./openai-codex-model-default.js";
|
|
@@ -222,7 +222,8 @@ async function loadModelPickerCatalog(cfg, agentDir) {
|
|
|
222
222
|
cfg,
|
|
223
223
|
store,
|
|
224
224
|
catalog: standardModels,
|
|
225
|
-
defaultProvider: DEFAULT_PROVIDER
|
|
225
|
+
defaultProvider: DEFAULT_PROVIDER,
|
|
226
|
+
agentDir
|
|
226
227
|
});
|
|
227
228
|
return authenticated.allowedCatalog.length > 0 ? authenticated.allowedCatalog : authenticated.usableCatalog;
|
|
228
229
|
}
|
|
@@ -11,8 +11,8 @@ import { getCustomProviderApiKey, resolveEnvApiKey } from "../../agents/model-au
|
|
|
11
11
|
import { findNormalizedProviderValue, normalizeProviderId, parseModelRef } from "../../agents/model-selection.js";
|
|
12
12
|
import { resolveSessionTranscriptPath, resolveSessionTranscriptsDirForAgent } from "../../config/sessions/paths.js";
|
|
13
13
|
import "../../agents/pi-embedded.js";
|
|
14
|
-
import { describeFailoverError } from "../../agents/failover-error.js";
|
|
15
14
|
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
15
|
+
import { describeFailoverError } from "../../agents/failover-error.js";
|
|
16
16
|
import { runEmbeddedPiAgent } from "../../agents/pi-embedded-runner/run.js";
|
|
17
17
|
import { redactSecrets } from "../status-all/format.js";
|
|
18
18
|
import { formatMs } from "./shared.js";
|
|
@@ -6,8 +6,8 @@ import { modelKey } from "../../agents/model-selection.js";
|
|
|
6
6
|
import { ensureFasedAgentModelsJson } from "../../agents/models-config.js";
|
|
7
7
|
import { discoverAuthStorage, discoverModels } from "../../agents/pi-model-discovery.js";
|
|
8
8
|
import { deriveModelMetadata, formatModelFeatureList } from "../../agents/model-metadata.js";
|
|
9
|
-
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
10
9
|
import { resolveAuthenticatedModelCatalog } from "../../agents/authenticated-model-catalog.js";
|
|
10
|
+
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
11
11
|
import { isLocalBaseUrl } from "./shared.js";
|
|
12
12
|
import { createModelListAuthIndex } from "./list.auth-index.js";
|
|
13
13
|
import { MODEL_AVAILABILITY_UNAVAILABLE_CODE, formatErrorWithStack, shouldFallbackToAuthHeuristics } from "./list.errors.js";
|
|
@@ -78,7 +78,8 @@ async function loadModelRegistry(cfg) {
|
|
|
78
78
|
cfg,
|
|
79
79
|
store,
|
|
80
80
|
catalog,
|
|
81
|
-
defaultProvider: DEFAULT_PROVIDER
|
|
81
|
+
defaultProvider: DEFAULT_PROVIDER,
|
|
82
|
+
agentDir
|
|
82
83
|
});
|
|
83
84
|
const models = authenticated.usableCatalog.map((model) => normalizeModelListSource(model));
|
|
84
85
|
let availableKeys;
|
|
@@ -16,12 +16,12 @@ import "../../agents/auth-profiles.js";
|
|
|
16
16
|
import { resolveEnvApiKey } from "../../agents/model-auth.js";
|
|
17
17
|
import { buildModelAliasIndex, parseModelRef, resolveConfiguredModelRef, resolveDefaultModelForAgent, resolveModelRefFromString } from "../../agents/model-selection.js";
|
|
18
18
|
import { withProgressTotals } from "../../cli/progress.js";
|
|
19
|
+
import { loadProviderExtensionCatalogIndex } from "../../agents/provider-extension-catalog-index.js";
|
|
20
|
+
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
19
21
|
import { resolveUsageProviderId } from "../../infra/provider-usage.shared.js";
|
|
20
22
|
import { formatUsageWindowSummary } from "../../infra/provider-usage.format.js";
|
|
21
23
|
import { loadProviderUsageSummary } from "../../infra/provider-usage.load.js";
|
|
22
24
|
import "../../infra/provider-usage.js";
|
|
23
|
-
import { loadProviderExtensionCatalogIndex } from "../../agents/provider-extension-catalog-index.js";
|
|
24
|
-
import { loadModelCatalog } from "../../agents/model-catalog.js";
|
|
25
25
|
import { renderTable } from "../../terminal/table.js";
|
|
26
26
|
import { buildModelCatalogStatus } from "../../agents/model-catalog-status.js";
|
|
27
27
|
import { DEFAULT_OAUTH_WARN_MS, buildAuthHealthSummary, formatRemainingShort } from "../../agents/auth-health.js";
|
|
@@ -4,11 +4,11 @@ import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent
|
|
|
4
4
|
import { formatCliCommand } from "../cli/command-format.js";
|
|
5
5
|
import { getChannelPlugin, listChannelPlugins } from "../channels/plugins/index.js";
|
|
6
6
|
import { formatChannelPrimerLine, formatChannelSelectionLine, listChatChannels } from "../channels/registry.js";
|
|
7
|
+
import { enablePluginInConfig } from "../plugins/enable.js";
|
|
7
8
|
import { formatDocsLink } from "../terminal/links.js";
|
|
8
9
|
import { formatChannelPluginCatalogSelectionHint, formatChannelPluginCatalogStatusLine, listChannelPluginCatalogEntries } from "../channels/plugins/catalog.js";
|
|
9
10
|
import { isChannelConfigured } from "../config/plugin-auto-enable.js";
|
|
10
11
|
import { resolveChannelDefaultAccountId } from "../channels/plugins/helpers.js";
|
|
11
|
-
import { enablePluginInConfig } from "../plugins/enable.js";
|
|
12
12
|
import { ensureOnboardingPluginInstalled, reloadOnboardingPluginRegistry } from "./onboarding/plugin-install.js";
|
|
13
13
|
import { getChannelOnboardingAdapter, listChannelOnboardingAdapters } from "./onboarding/registry.js";
|
|
14
14
|
|
|
@@ -2,11 +2,11 @@ import { createSubsystemLogger } from "../../logging/subsystem.js";
|
|
|
2
2
|
import { resolveFasedAgentPackageRootSync } from "../../infra/fased-root.js";
|
|
3
3
|
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../../agents/agent-scope.js";
|
|
4
4
|
import { installPluginFromNpmSpec } from "../../plugins/install.js";
|
|
5
|
+
import { buildNpmResolutionInstallFields } from "../../plugins/installs.js";
|
|
5
6
|
import { loadFasedAgentPlugins } from "../../plugins/loader.js";
|
|
6
7
|
import { createPluginLoaderLogger } from "../../plugins/logger.js";
|
|
7
|
-
import { resolveChannelPluginExpectedPluginIds } from "../../channels/plugins/catalog.js";
|
|
8
|
-
import { buildNpmResolutionInstallFields } from "../../plugins/installs.js";
|
|
9
8
|
import { finalizeInstalledPluginConfig } from "../../plugins/lifecycle.js";
|
|
9
|
+
import { resolveChannelPluginExpectedPluginIds } from "../../channels/plugins/catalog.js";
|
|
10
10
|
import fs from "node:fs";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DEFAULT_PROVIDER } from "../agents/defaults.js";
|
|
2
2
|
import { ensureAuthProfileStore } from "../agents/auth-profiles/store.js";
|
|
3
3
|
import "../agents/auth-profiles.js";
|
|
4
|
-
import { loadModelCatalog } from "../agents/model-catalog.js";
|
|
5
4
|
import { resolveAuthenticatedModelCatalog } from "../agents/authenticated-model-catalog.js";
|
|
5
|
+
import { loadModelCatalog } from "../agents/model-catalog.js";
|
|
6
6
|
|
|
7
7
|
//#region src/commands/openai-codex-model-default.ts
|
|
8
8
|
const OPENAI_CODEX_DEFAULT_MODEL = "openai-codex/gpt-5.5";
|
|
@@ -17,7 +17,8 @@ async function discoverOpenAICodexDefaultModel(params) {
|
|
|
17
17
|
cfg: params.config,
|
|
18
18
|
store,
|
|
19
19
|
catalog,
|
|
20
|
-
defaultProvider: DEFAULT_PROVIDER
|
|
20
|
+
defaultProvider: DEFAULT_PROVIDER,
|
|
21
|
+
agentDir: params.agentDir
|
|
21
22
|
});
|
|
22
23
|
const model = authenticated.usableCatalog.filter((entry) => entry.provider === "openai-codex").toSorted((left, right) => (left.metadata?.recommendationRank ?? Number.MAX_SAFE_INTEGER) - (right.metadata?.recommendationRank ?? Number.MAX_SAFE_INTEGER) || left.name.localeCompare(right.name))[0];
|
|
23
24
|
return model ? `${model.provider}/${model.id}` : undefined;
|
|
@@ -90,7 +90,8 @@ const AgentDefaultsSchema = z.object({
|
|
|
90
90
|
z.literal("medium"),
|
|
91
91
|
z.literal("high"),
|
|
92
92
|
z.literal("xhigh"),
|
|
93
|
-
z.literal("max")
|
|
93
|
+
z.literal("max"),
|
|
94
|
+
z.literal("ultra")
|
|
94
95
|
]).optional(),
|
|
95
96
|
reasoningDefault: z.union([
|
|
96
97
|
z.literal("off"),
|
|
@@ -99,7 +100,8 @@ const AgentDefaultsSchema = z.object({
|
|
|
99
100
|
z.literal("medium"),
|
|
100
101
|
z.literal("high"),
|
|
101
102
|
z.literal("xhigh"),
|
|
102
|
-
z.literal("max")
|
|
103
|
+
z.literal("max"),
|
|
104
|
+
z.literal("ultra")
|
|
103
105
|
]).optional(),
|
|
104
106
|
fastModeDefault: z.boolean().optional(),
|
|
105
107
|
verboseDefault: z.union([
|