@shipit-ai/cli 1.171.0 → 1.172.0-pr16.66b2a70
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/apis/json-schema/CodexCliProxyConfig.yaml +8 -0
- package/apis/json-schema/FeatureFlags.yaml +5 -0
- package/apis/json-schema/GeminiCliProxyConfig.yaml +8 -0
- package/apis/json-schema/LiteLLMProxyConfig.yaml +6 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts +38 -0
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.js +12 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts +23 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js +49 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts +23 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js +49 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +30 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/services.module.js +3 -0
- package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +6 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +3 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +28 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-litellm-proxy-multi-agent.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-litellm-proxy-multi-agent.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-litellm-proxy-multi-agent.js +20 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.d.ts +11 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.js +16 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +10 -5
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-provider.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-provider.service.js +8 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.js +20 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +23 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +8 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.js +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts +65 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.js +53 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.js +113 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.js +11 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-servers.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-servers.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-servers.js +11 -0
- package/dist/src/presentation/web/app/mcp-servers/page.d.ts +2 -0
- package/dist/src/presentation/web/app/mcp-servers/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/mcp-servers/page.js +20 -0
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.d.ts +8 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.js +22 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.d.ts +15 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.js +56 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts +10 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +52 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.js +42 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts +6 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js +59 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.js +12 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts +23 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.js +48 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.js +32 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +7 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +2 -0
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.js +79 -7
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.d.ts +10 -3
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.js +87 -13
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
- package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.js +6 -0
- package/dist/translations/ar/web.json +56 -13
- package/dist/translations/de/web.json +76 -19
- package/dist/translations/en/web.json +57 -14
- package/dist/translations/es/web.json +57 -14
- package/dist/translations/fr/web.json +57 -14
- package/dist/translations/he/web.json +57 -14
- package/dist/translations/pt/web.json +57 -14
- package/dist/translations/ru/web.json +57 -14
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -0
- package/web/.next/build-manifest.json +3 -3
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/routes-manifest.json +6 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/create/page.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js +1 -1
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/mcp-servers/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/mcp-servers/page/build-manifest.json +18 -0
- package/web/.next/server/app/mcp-servers/page/next-font-manifest.json +10 -0
- package/web/.next/server/app/mcp-servers/page/react-loadable-manifest.json +8 -0
- package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +161 -0
- package/web/.next/server/app/mcp-servers/page.js +17 -0
- package/web/.next/server/app/mcp-servers/page.js.map +5 -0
- package/web/.next/server/app/mcp-servers/page.js.nft.json +1 -0
- package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/plugins/page.js +1 -1
- package/web/.next/server/app/plugins/page.js.nft.json +1 -1
- package/web/.next/server/app/plugins/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/settings/page.js +1 -1
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/skills/page.js +1 -1
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js +1 -1
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +1 -0
- package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
- package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0-p.z5-.js +4 -0
- package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0-p.z5-.js.map +1 -0
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_0tcccbb._.js → _0.rsra~._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0.rsra~._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
- package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
- package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_096x3u~._.js +3 -0
- package/web/.next/server/chunks/ssr/{_10joy2y._.js.map → _096x3u~._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
- package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
- package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
- package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0ia4o6_._.js +3 -0
- package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0o.xc6x._.js +1 -1
- package/web/.next/server/chunks/ssr/_0o.xc6x._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0h_81zd._.js → _0pj2991._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0h_81zd._.js.map → _0pj2991._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0u3d8.n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0vqmej8._.js +3 -0
- package/web/.next/server/chunks/ssr/_0vqmej8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
- package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0ygafoy._.js +1 -1
- package/web/.next/server/chunks/ssr/_0ygafoy._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
- package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_083k45~._.js → _1031n_-._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_083k45~._.js.map → _1031n_-._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_11274a5._.js +3 -0
- package/web/.next/server/chunks/ssr/{_0q4ou83._.js.map → _11274a5._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
- package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_11hrdyl._.js → _12jmd-6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_11hrdyl._.js.map → _12jmd-6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_05fk0a4._.js → _12y_u2z._.js} +2 -2
- package/web/.next/server/chunks/ssr/_12y_u2z._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +3 -0
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +145 -55
- package/web/.next/static/chunks/{0jpdu~hr9yant.js → 0.myo4yvc6kpm.js} +1 -1
- package/web/.next/static/chunks/00h433i5-1v_-.css +1 -0
- package/web/.next/static/chunks/{0x4yi7ly9kwn5.js → 04q.erwbzoje8.js} +1 -1
- package/web/.next/static/chunks/04~wdwkqgr57x.js +1 -0
- package/web/.next/static/chunks/0cfl2dslhsrdi.js +1 -0
- package/web/.next/static/chunks/{0mmo8sojp2la5.js → 0dom8q6-sfuxa.js} +1 -1
- package/web/.next/static/chunks/{017xamyz033tm.js → 0e8.k1pdrzzsk.js} +1 -1
- package/web/.next/static/chunks/{0nry24zef5x6d.js → 0ezhjni1s3y7a.js} +1 -1
- package/web/.next/static/chunks/{01tzmtex7umeb.js → 0hscmw6y2lnnv.js} +1 -1
- package/web/.next/static/chunks/{161s7._zxasc0.js → 0imykblrh4bu9.js} +3 -3
- package/web/.next/static/chunks/{12lj54j~w8~13.js → 0lu2qpp5txog9.js} +1 -1
- package/web/.next/static/chunks/0npxjzn99b9vy.js +1 -0
- package/web/.next/static/chunks/{0s1uxv-vz4g~..js → 0o4oghbrhweng.js} +1 -1
- package/web/.next/static/chunks/{0b2pi58fg3lt3.js → 0pm3xcdn669n~.js} +1 -1
- package/web/.next/static/chunks/{012cnd7koqv6d.js → 0sgbbtfp4hspl.js} +2 -2
- package/web/.next/static/chunks/{02z512ozs7al_.js → 0yafd1rs1vrfa.js} +1 -1
- package/web/.next/static/chunks/0zo.eis49vmo8.js +1 -0
- package/web/.next/static/chunks/{10rtagfoabp3b.js → 10j-adknfho63.js} +1 -1
- package/web/.next/static/chunks/15izkiwfc5ym~.js +5 -0
- package/web/.next/static/chunks/{0o4m0k3642219.js → 15lkkh2eg.w0h.js} +1 -1
- package/web/.next/static/chunks/{11f-uj04jrom-.js → 15o~vx6078ena.js} +1 -1
- package/web/.next/static/chunks/{0-glbn-_j79ge.js → 17sf_xxxs467a.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0dec29w._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0dec29w._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_05fk0a4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0i~-084._.js +0 -3
- package/web/.next/server/chunks/ssr/_0i~-084._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0q4ou83._.js +0 -3
- package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_10joy2y._.js +0 -3
- package/web/.next/static/chunks/0cx16obgb~.zq.js +0 -1
- package/web/.next/static/chunks/0eemg.2by.~76.js +0 -1
- package/web/.next/static/chunks/0lc0x8kcu46ae.js +0 -1
- package/web/.next/static/chunks/0ug478hm-8bog.js +0 -5
- package/web/.next/static/chunks/0v7r7y~3e~oo6.css +0 -1
- /package/web/.next/static/{FNmgUvRV-pz0hqn250ePU → VGZdoa1IB7ls42dO6uanJ}/_buildManifest.js +0 -0
- /package/web/.next/static/{FNmgUvRV-pz0hqn250ePU → VGZdoa1IB7ls42dO6uanJ}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{FNmgUvRV-pz0hqn250ePU → VGZdoa1IB7ls42dO6uanJ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 056: Add LiteLLM proxy per-agent routing for Gemini CLI and Codex CLI.
|
|
3
|
+
*
|
|
4
|
+
* Columns (settings table):
|
|
5
|
+
* - litellm_proxy_gc_routing_mode TEXT (default NULL — treated as "direct")
|
|
6
|
+
* - litellm_proxy_cx_routing_mode TEXT (default NULL — treated as "direct")
|
|
7
|
+
*/
|
|
8
|
+
import type { MigrationParams } from 'umzug';
|
|
9
|
+
import type Database from 'better-sqlite3';
|
|
10
|
+
export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
11
|
+
export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=056-add-litellm-proxy-multi-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"056-add-litellm-proxy-multi-agent.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-litellm-proxy-multi-agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 056: Add LiteLLM proxy per-agent routing for Gemini CLI and Codex CLI.
|
|
3
|
+
*
|
|
4
|
+
* Columns (settings table):
|
|
5
|
+
* - litellm_proxy_gc_routing_mode TEXT (default NULL — treated as "direct")
|
|
6
|
+
* - litellm_proxy_cx_routing_mode TEXT (default NULL — treated as "direct")
|
|
7
|
+
*/
|
|
8
|
+
export async function up({ context: db }) {
|
|
9
|
+
const columns = db.pragma('table_info(settings)');
|
|
10
|
+
const names = new Set(columns.map((c) => c.name));
|
|
11
|
+
if (!names.has('litellm_proxy_gc_routing_mode')) {
|
|
12
|
+
db.exec('ALTER TABLE settings ADD COLUMN litellm_proxy_gc_routing_mode TEXT');
|
|
13
|
+
}
|
|
14
|
+
if (!names.has('litellm_proxy_cx_routing_mode')) {
|
|
15
|
+
db.exec('ALTER TABLE settings ADD COLUMN litellm_proxy_cx_routing_mode TEXT');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export async function down({ context: db }) {
|
|
19
|
+
void db;
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 057: Add MCP servers feature flag.
|
|
3
|
+
*
|
|
4
|
+
* Columns (settings table):
|
|
5
|
+
* - feature_flag_mcp_servers INTEGER (default 0)
|
|
6
|
+
*/
|
|
7
|
+
import type { MigrationParams } from 'umzug';
|
|
8
|
+
import type Database from 'better-sqlite3';
|
|
9
|
+
export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
10
|
+
export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=057-add-mcp-servers-flag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"057-add-mcp-servers-flag.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 057: Add MCP servers feature flag.
|
|
3
|
+
*
|
|
4
|
+
* Columns (settings table):
|
|
5
|
+
* - feature_flag_mcp_servers INTEGER (default 0)
|
|
6
|
+
*/
|
|
7
|
+
export async function up({ context: db }) {
|
|
8
|
+
const columns = db.pragma('table_info(settings)');
|
|
9
|
+
const names = new Set(columns.map((c) => c.name));
|
|
10
|
+
if (!names.has('feature_flag_mcp_servers')) {
|
|
11
|
+
db.exec('ALTER TABLE settings ADD COLUMN feature_flag_mcp_servers INTEGER DEFAULT 0');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export async function down({ context: db }) {
|
|
15
|
+
void db;
|
|
16
|
+
}
|
package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-settings.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-settings.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8EAA8E,CAAC;AACxH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAOjE;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAElD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-settings.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-settings.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8EAA8E,CAAC;AACxH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAOjE;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAElD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6FnD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgBtC;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA4GhD"}
|
|
@@ -74,10 +74,11 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
74
74
|
fab_position_swapped,
|
|
75
75
|
agent_perm_claude_code, agent_perm_cursor, agent_perm_gemini_cli,
|
|
76
76
|
agent_perm_codex_cli, agent_perm_copilot_cli, agent_perm_rovo_dev,
|
|
77
|
-
feature_flag_plugins,
|
|
77
|
+
feature_flag_plugins, feature_flag_mcp_servers,
|
|
78
78
|
litellm_proxy_base_url, litellm_proxy_api_key, litellm_proxy_marketplace_enabled,
|
|
79
79
|
litellm_proxy_cc_routing_mode, litellm_proxy_cc_custom_headers,
|
|
80
|
-
litellm_proxy_cc_sonnet_model, litellm_proxy_cc_haiku_model, litellm_proxy_cc_opus_model
|
|
80
|
+
litellm_proxy_cc_sonnet_model, litellm_proxy_cc_haiku_model, litellm_proxy_cc_opus_model,
|
|
81
|
+
litellm_proxy_gc_routing_mode, litellm_proxy_cx_routing_mode
|
|
81
82
|
) VALUES (
|
|
82
83
|
@id, @created_at, @updated_at,
|
|
83
84
|
@model_analyze, @model_requirements, @model_plan, @model_implement, @model_default,
|
|
@@ -110,10 +111,11 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
110
111
|
@fab_position_swapped,
|
|
111
112
|
@agent_perm_claude_code, @agent_perm_cursor, @agent_perm_gemini_cli,
|
|
112
113
|
@agent_perm_codex_cli, @agent_perm_copilot_cli, @agent_perm_rovo_dev,
|
|
113
|
-
@feature_flag_plugins,
|
|
114
|
+
@feature_flag_plugins, @feature_flag_mcp_servers,
|
|
114
115
|
@litellm_proxy_base_url, @litellm_proxy_api_key, @litellm_proxy_marketplace_enabled,
|
|
115
116
|
@litellm_proxy_cc_routing_mode, @litellm_proxy_cc_custom_headers,
|
|
116
|
-
@litellm_proxy_cc_sonnet_model, @litellm_proxy_cc_haiku_model, @litellm_proxy_cc_opus_model
|
|
117
|
+
@litellm_proxy_cc_sonnet_model, @litellm_proxy_cc_haiku_model, @litellm_proxy_cc_opus_model,
|
|
118
|
+
@litellm_proxy_gc_routing_mode, @litellm_proxy_cx_routing_mode
|
|
117
119
|
)
|
|
118
120
|
`);
|
|
119
121
|
// Execute with named parameters (safe from SQL injection)
|
|
@@ -226,6 +228,7 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
226
228
|
agent_perm_copilot_cli = @agent_perm_copilot_cli,
|
|
227
229
|
agent_perm_rovo_dev = @agent_perm_rovo_dev,
|
|
228
230
|
feature_flag_plugins = @feature_flag_plugins,
|
|
231
|
+
feature_flag_mcp_servers = @feature_flag_mcp_servers,
|
|
229
232
|
litellm_proxy_base_url = @litellm_proxy_base_url,
|
|
230
233
|
litellm_proxy_api_key = @litellm_proxy_api_key,
|
|
231
234
|
litellm_proxy_marketplace_enabled = @litellm_proxy_marketplace_enabled,
|
|
@@ -233,7 +236,9 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
233
236
|
litellm_proxy_cc_custom_headers = @litellm_proxy_cc_custom_headers,
|
|
234
237
|
litellm_proxy_cc_sonnet_model = @litellm_proxy_cc_sonnet_model,
|
|
235
238
|
litellm_proxy_cc_haiku_model = @litellm_proxy_cc_haiku_model,
|
|
236
|
-
litellm_proxy_cc_opus_model = @litellm_proxy_cc_opus_model
|
|
239
|
+
litellm_proxy_cc_opus_model = @litellm_proxy_cc_opus_model,
|
|
240
|
+
litellm_proxy_gc_routing_mode = @litellm_proxy_gc_routing_mode,
|
|
241
|
+
litellm_proxy_cx_routing_mode = @litellm_proxy_cx_routing_mode
|
|
237
242
|
WHERE id = @id
|
|
238
243
|
`);
|
|
239
244
|
// Execute with named parameters (safe from SQL injection)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-executor-provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/common/agent-executor-provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kFAAkF,CAAC;AAC/H,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iFAAiF,CAAC;AAC7H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yEAAyE,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oFAAoF,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-executor-provider.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/common/agent-executor-provider.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kFAAkF,CAAC;AAC/H,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iFAAiF,CAAC;AAC7H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yEAAyE,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oFAAoF,CAAC;AAK9H,qBAAa,qBAAsB,YAAW,sBAAsB;IAEhE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,OAAO,EAAE,qBAAqB,EAC9B,kBAAkB,EAAE,mBAAmB;IAGpD,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;CAkB7C"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ClaudeCodeExecutorService } from './executors/claude-code-executor.service.js';
|
|
2
|
+
import { GeminiCliExecutorService } from './executors/gemini-cli-executor.service.js';
|
|
3
|
+
import { CodexCliExecutorService } from './executors/codex-cli-executor.service.js';
|
|
2
4
|
export class AgentExecutorProvider {
|
|
3
5
|
factory;
|
|
4
6
|
settingsRepository;
|
|
@@ -16,6 +18,12 @@ export class AgentExecutorProvider {
|
|
|
16
18
|
if (executor instanceof ClaudeCodeExecutorService) {
|
|
17
19
|
executor.updateProxyConfig(settings.litellmProxy);
|
|
18
20
|
}
|
|
21
|
+
else if (executor instanceof GeminiCliExecutorService) {
|
|
22
|
+
executor.updateProxyConfig(settings.litellmProxy);
|
|
23
|
+
}
|
|
24
|
+
else if (executor instanceof CodexCliExecutorService) {
|
|
25
|
+
executor.updateProxyConfig(settings.litellmProxy);
|
|
26
|
+
}
|
|
19
27
|
return executor;
|
|
20
28
|
}
|
|
21
29
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Uses constructor dependency injection for the spawn function
|
|
8
8
|
* to enable testability without mocking node:child_process directly.
|
|
9
9
|
*/
|
|
10
|
-
import type { AgentType, AgentFeature, AgentConfig } from '../../../../../domain/generated/output.js';
|
|
10
|
+
import type { AgentType, AgentFeature, AgentConfig, LiteLLMProxyConfig } from '../../../../../domain/generated/output.js';
|
|
11
11
|
import type { AgentExecutionOptions, AgentExecutionResult, AgentExecutionStreamEvent } from '../../../../../application/ports/output/agents/agent-executor.interface.js';
|
|
12
12
|
import type { SpawnFunction } from '../types.js';
|
|
13
13
|
import { ExecutorBase } from './executor-base.js';
|
|
@@ -18,7 +18,9 @@ import { ExecutorBase } from './executor-base.js';
|
|
|
18
18
|
export declare class CodexCliExecutorService extends ExecutorBase {
|
|
19
19
|
readonly agentType: AgentType;
|
|
20
20
|
private readonly authConfig?;
|
|
21
|
+
private proxyConfig?;
|
|
21
22
|
constructor(spawn: SpawnFunction, authConfig?: AgentConfig);
|
|
23
|
+
updateProxyConfig(config?: LiteLLMProxyConfig): void;
|
|
22
24
|
supportsFeature(feature: AgentFeature): boolean;
|
|
23
25
|
execute(prompt: string, options?: AgentExecutionOptions): Promise<AgentExecutionResult>;
|
|
24
26
|
executeStream(prompt: string, options?: AgentExecutionOptions): AsyncIterable<AgentExecutionStreamEvent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-cli-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"codex-cli-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EAEX,kBAAkB,EACnB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EAEpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsBlD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAA4B;IAEzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAc;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAqB;gBAE7B,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,WAAW;IAK1D,iBAAiB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAIpD,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAIzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuItF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IAoM3C;;;;OAIG;IACH,wDAAwD;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAEnF,OAAO,CAAC,cAAc;IAkJtB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;cA+BE,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IA2BtE;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkBvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAU/B"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import * as fs from 'node:fs';
|
|
11
11
|
import * as os from 'node:os';
|
|
12
12
|
import * as path from 'node:path';
|
|
13
|
+
import { LiteLLMProxyRoutingMode } from '../../../../../domain/generated/output.js';
|
|
13
14
|
import { ExecutorBase } from './executor-base.js';
|
|
14
15
|
/** Features supported by Codex CLI */
|
|
15
16
|
const SUPPORTED_FEATURES = new Set([
|
|
@@ -36,10 +37,14 @@ const FATAL_STDERR_PATTERNS = [
|
|
|
36
37
|
export class CodexCliExecutorService extends ExecutorBase {
|
|
37
38
|
agentType = 'codex-cli';
|
|
38
39
|
authConfig;
|
|
40
|
+
proxyConfig;
|
|
39
41
|
constructor(spawn, authConfig) {
|
|
40
42
|
super(spawn);
|
|
41
43
|
this.authConfig = authConfig;
|
|
42
44
|
}
|
|
45
|
+
updateProxyConfig(config) {
|
|
46
|
+
this.proxyConfig = config;
|
|
47
|
+
}
|
|
43
48
|
supportsFeature(feature) {
|
|
44
49
|
return SUPPORTED_FEATURES.has(feature);
|
|
45
50
|
}
|
|
@@ -491,8 +496,22 @@ export class CodexCliExecutorService extends ExecutorBase {
|
|
|
491
496
|
}
|
|
492
497
|
buildSpawnEnv() {
|
|
493
498
|
const env = super.buildSpawnEnv();
|
|
499
|
+
// Proxy mode: use OPENAI_BASE_URL + OPENAI_API_KEY (not CODEX_API_KEY)
|
|
500
|
+
const cx = this.proxyConfig?.codexCli;
|
|
501
|
+
if (cx?.routingMode === LiteLLMProxyRoutingMode.proxy && this.proxyConfig?.baseUrl) {
|
|
502
|
+
env.OPENAI_BASE_URL = this.proxyConfig.baseUrl;
|
|
503
|
+
if (this.proxyConfig.apiKey) {
|
|
504
|
+
env.OPENAI_API_KEY = this.proxyConfig.apiKey;
|
|
505
|
+
}
|
|
506
|
+
return env;
|
|
507
|
+
}
|
|
508
|
+
// Guard against unrecognized routing modes
|
|
509
|
+
if (cx?.routingMode && cx.routingMode !== LiteLLMProxyRoutingMode.direct) {
|
|
510
|
+
this.log(`WARNING: Unsupported routing mode "${cx.routingMode}" for Codex CLI, falling back to direct`);
|
|
511
|
+
}
|
|
512
|
+
// Direct mode: existing authConfig token injection
|
|
494
513
|
if (this.authConfig?.authMethod === 'token' && this.authConfig.token) {
|
|
495
|
-
|
|
514
|
+
env.CODEX_API_KEY = this.authConfig.token;
|
|
496
515
|
}
|
|
497
516
|
return env;
|
|
498
517
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Uses constructor dependency injection for the spawn function
|
|
8
8
|
* to enable testability without mocking node:child_process directly.
|
|
9
9
|
*/
|
|
10
|
-
import type { AgentType, AgentFeature, AgentConfig } from '../../../../../domain/generated/output.js';
|
|
10
|
+
import type { AgentType, AgentFeature, AgentConfig, LiteLLMProxyConfig } from '../../../../../domain/generated/output.js';
|
|
11
11
|
import type { AgentExecutionOptions, AgentExecutionResult, AgentExecutionStreamEvent } from '../../../../../application/ports/output/agents/agent-executor.interface.js';
|
|
12
12
|
import type { SpawnFunction } from '../types.js';
|
|
13
13
|
import { ExecutorBase } from './executor-base.js';
|
|
@@ -18,7 +18,9 @@ import { ExecutorBase } from './executor-base.js';
|
|
|
18
18
|
export declare class GeminiCliExecutorService extends ExecutorBase {
|
|
19
19
|
readonly agentType: AgentType;
|
|
20
20
|
private readonly authConfig?;
|
|
21
|
+
private proxyConfig?;
|
|
21
22
|
constructor(spawn: SpawnFunction, authConfig?: AgentConfig);
|
|
23
|
+
updateProxyConfig(config?: LiteLLMProxyConfig): void;
|
|
22
24
|
supportsFeature(feature: AgentFeature): boolean;
|
|
23
25
|
execute(prompt: string, options?: AgentExecutionOptions): Promise<AgentExecutionResult>;
|
|
24
26
|
executeStream(prompt: string, options?: AgentExecutionOptions): AsyncIterable<AgentExecutionStreamEvent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-cli-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"gemini-cli-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EAEX,kBAAkB,EACnB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,YAAY;IACxD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAA6B;IAE1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAc;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAqB;gBAE7B,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,WAAW;IAK1D,iBAAiB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAIpD,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAIzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsFtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IAgF3C;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAI3C;IAEF;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,SAAS;cAyBE,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CA8BvE"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* Uses constructor dependency injection for the spawn function
|
|
8
8
|
* to enable testability without mocking node:child_process directly.
|
|
9
9
|
*/
|
|
10
|
+
import { LiteLLMProxyRoutingMode } from '../../../../../domain/generated/output.js';
|
|
10
11
|
import { ExecutorBase } from './executor-base.js';
|
|
11
12
|
/** Features supported by Gemini CLI */
|
|
12
13
|
const SUPPORTED_FEATURES = new Set(['session-resume', 'streaming', 'tool-scoping']);
|
|
@@ -17,10 +18,14 @@ const SUPPORTED_FEATURES = new Set(['session-resume', 'streaming', 'tool-scoping
|
|
|
17
18
|
export class GeminiCliExecutorService extends ExecutorBase {
|
|
18
19
|
agentType = 'gemini-cli';
|
|
19
20
|
authConfig;
|
|
21
|
+
proxyConfig;
|
|
20
22
|
constructor(spawn, authConfig) {
|
|
21
23
|
super(spawn);
|
|
22
24
|
this.authConfig = authConfig;
|
|
23
25
|
}
|
|
26
|
+
updateProxyConfig(config) {
|
|
27
|
+
this.proxyConfig = config;
|
|
28
|
+
}
|
|
24
29
|
supportsFeature(feature) {
|
|
25
30
|
return SUPPORTED_FEATURES.has(feature);
|
|
26
31
|
}
|
|
@@ -279,8 +284,25 @@ export class GeminiCliExecutorService extends ExecutorBase {
|
|
|
279
284
|
}
|
|
280
285
|
buildSpawnEnv() {
|
|
281
286
|
const env = super.buildSpawnEnv();
|
|
287
|
+
// Proxy mode takes precedence — never leak user's personal key to proxy
|
|
288
|
+
const gc = this.proxyConfig?.geminiCli;
|
|
289
|
+
if (gc?.routingMode === LiteLLMProxyRoutingMode.proxy && this.proxyConfig?.baseUrl) {
|
|
290
|
+
env.GOOGLE_GEMINI_BASE_URL = this.proxyConfig.baseUrl;
|
|
291
|
+
if (this.proxyConfig.apiKey) {
|
|
292
|
+
env.GEMINI_API_KEY = this.proxyConfig.apiKey;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
this.log('WARNING: Proxy mode active but no proxy API key configured — proxy may reject requests');
|
|
296
|
+
}
|
|
297
|
+
return env;
|
|
298
|
+
}
|
|
299
|
+
// Guard against unrecognized routing modes
|
|
300
|
+
if (gc?.routingMode && gc.routingMode !== LiteLLMProxyRoutingMode.direct) {
|
|
301
|
+
this.log(`WARNING: Unsupported routing mode "${gc.routingMode}" for Gemini CLI, falling back to direct`);
|
|
302
|
+
}
|
|
303
|
+
// Direct mode: existing authConfig token injection
|
|
282
304
|
if (this.authConfig?.authMethod === 'token' && this.authConfig.token) {
|
|
283
|
-
|
|
305
|
+
env.GEMINI_API_KEY = this.authConfig.token;
|
|
284
306
|
}
|
|
285
307
|
return env;
|
|
286
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAmB1B,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAW7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAyF1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAkT/D"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js
CHANGED
|
@@ -17,6 +17,8 @@ import { createFeatureAgentGraph } from './feature-agent-graph.js';
|
|
|
17
17
|
import { createFastFeatureAgentGraph } from './fast-feature-agent-graph.js';
|
|
18
18
|
import { createCheckpointer } from '../common/checkpointer.js';
|
|
19
19
|
import { ClaudeCodeExecutorService } from '../../../services/agents/common/executors/claude-code-executor.service.js';
|
|
20
|
+
import { GeminiCliExecutorService } from '../../../services/agents/common/executors/gemini-cli-executor.service.js';
|
|
21
|
+
import { CodexCliExecutorService } from '../../../services/agents/common/executors/codex-cli-executor.service.js';
|
|
20
22
|
import { AgentRunStatus, SdlcLifecycle } from '../../../../domain/generated/output.js';
|
|
21
23
|
import { initializeSettings } from '../../../services/settings.service.js';
|
|
22
24
|
import { InitializeSettingsUseCase } from '../../../../application/use-cases/settings/initialize-settings.use-case.js';
|
|
@@ -188,6 +190,12 @@ export async function runWorker(args) {
|
|
|
188
190
|
if (executor instanceof ClaudeCodeExecutorService) {
|
|
189
191
|
executor.updateProxyConfig(settings.litellmProxy);
|
|
190
192
|
}
|
|
193
|
+
else if (executor instanceof GeminiCliExecutorService) {
|
|
194
|
+
executor.updateProxyConfig(settings.litellmProxy);
|
|
195
|
+
}
|
|
196
|
+
else if (executor instanceof CodexCliExecutorService) {
|
|
197
|
+
executor.updateProxyConfig(settings.litellmProxy);
|
|
198
|
+
}
|
|
191
199
|
}
|
|
192
200
|
else {
|
|
193
201
|
log('Creating executor from configured agent settings...');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/mcp-server-browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { McpServerBrowserService } from './mcp-server-browser.service.js';
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod Schemas for MCP Server Browser Data Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates all external data boundaries:
|
|
5
|
+
* 1. LiteLLM proxy GET /public/mcp_hub response
|
|
6
|
+
* 2. LiteLLM proxy GET /mcp-rest/tools/list response
|
|
7
|
+
*
|
|
8
|
+
* All data from external sources is untrusted. Strings are capped
|
|
9
|
+
* to prevent excessive memory use in UI rendering.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
declare const McpServerInfoSchema: z.ZodObject<{
|
|
13
|
+
server_id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
14
|
+
name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
15
|
+
alias: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
16
|
+
server_name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
17
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
18
|
+
transport: z.ZodDefault<z.ZodString>;
|
|
19
|
+
spec_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
auth_type: z.ZodDefault<z.ZodString>;
|
|
21
|
+
mcp_info: z.ZodOptional<z.ZodObject<{
|
|
22
|
+
server_name: z.ZodOptional<z.ZodString>;
|
|
23
|
+
description: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string, string>>;
|
|
24
|
+
mcp_server_cost_info: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
25
|
+
}, z.core.$loose>>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export declare const McpServerListSchema: z.ZodArray<z.ZodObject<{
|
|
28
|
+
server_id: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
29
|
+
name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
30
|
+
alias: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
+
server_name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
32
|
+
url: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
33
|
+
transport: z.ZodDefault<z.ZodString>;
|
|
34
|
+
spec_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
35
|
+
auth_type: z.ZodDefault<z.ZodString>;
|
|
36
|
+
mcp_info: z.ZodOptional<z.ZodObject<{
|
|
37
|
+
server_name: z.ZodOptional<z.ZodString>;
|
|
38
|
+
description: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string, string>>;
|
|
39
|
+
mcp_server_cost_info: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
40
|
+
}, z.core.$loose>>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
declare const McpToolInfoSchema: z.ZodObject<{
|
|
43
|
+
name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
44
|
+
title: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
45
|
+
description: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string, string>>;
|
|
46
|
+
inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
export declare const McpToolListResponseSchema: z.ZodObject<{
|
|
49
|
+
tools: z.ZodArray<z.ZodObject<{
|
|
50
|
+
name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
51
|
+
title: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
52
|
+
description: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string, string>>;
|
|
53
|
+
inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export declare const McpToolListFallbackSchema: z.ZodArray<z.ZodObject<{
|
|
57
|
+
name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
58
|
+
title: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
59
|
+
description: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string, string>>;
|
|
60
|
+
inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
61
|
+
}, z.core.$strip>>;
|
|
62
|
+
export type ValidatedMcpServerInfo = z.infer<typeof McpServerInfoSchema>;
|
|
63
|
+
export type ValidatedMcpToolInfo = z.infer<typeof McpToolInfoSchema>;
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=mcp-server-browser.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-browser.schema.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;iBAavB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAA+B,CAAC;AAEhE,QAAA,MAAM,iBAAiB;;;;;iBAWrB,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;iBAEpC,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;;kBAA6B,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod Schemas for MCP Server Browser Data Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates all external data boundaries:
|
|
5
|
+
* 1. LiteLLM proxy GET /public/mcp_hub response
|
|
6
|
+
* 2. LiteLLM proxy GET /mcp-rest/tools/list response
|
|
7
|
+
*
|
|
8
|
+
* All data from external sources is untrusted. Strings are capped
|
|
9
|
+
* to prevent excessive memory use in UI rendering.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
const McpServerMcpInfoSchema = z
|
|
13
|
+
.object({
|
|
14
|
+
server_name: z.string().optional(),
|
|
15
|
+
description: z
|
|
16
|
+
.string()
|
|
17
|
+
.default('')
|
|
18
|
+
.transform((s) => s.slice(0, 2000)),
|
|
19
|
+
mcp_server_cost_info: z.record(z.string(), z.unknown()).optional(),
|
|
20
|
+
})
|
|
21
|
+
.passthrough();
|
|
22
|
+
const McpServerInfoSchema = z.object({
|
|
23
|
+
server_id: z.string().transform((s) => s.slice(0, 200)),
|
|
24
|
+
name: z.string().transform((s) => s.slice(0, 100)),
|
|
25
|
+
alias: z.string().nullable().optional(),
|
|
26
|
+
server_name: z.string().transform((s) => s.slice(0, 100)),
|
|
27
|
+
url: z
|
|
28
|
+
.string()
|
|
29
|
+
.transform((s) => s.slice(0, 500))
|
|
30
|
+
.optional(),
|
|
31
|
+
transport: z.string().default('http'),
|
|
32
|
+
spec_path: z.string().nullable().optional(),
|
|
33
|
+
auth_type: z.string().default('none'),
|
|
34
|
+
mcp_info: McpServerMcpInfoSchema.optional(),
|
|
35
|
+
});
|
|
36
|
+
export const McpServerListSchema = z.array(McpServerInfoSchema);
|
|
37
|
+
const McpToolInfoSchema = z.object({
|
|
38
|
+
name: z.string().transform((s) => s.slice(0, 200)),
|
|
39
|
+
title: z
|
|
40
|
+
.string()
|
|
41
|
+
.transform((s) => s.slice(0, 200))
|
|
42
|
+
.optional(),
|
|
43
|
+
description: z
|
|
44
|
+
.string()
|
|
45
|
+
.default('')
|
|
46
|
+
.transform((s) => s.slice(0, 2000)),
|
|
47
|
+
inputSchema: z.record(z.string(), z.unknown()).optional(),
|
|
48
|
+
});
|
|
49
|
+
export const McpToolListResponseSchema = z.object({
|
|
50
|
+
tools: z.array(McpToolInfoSchema),
|
|
51
|
+
});
|
|
52
|
+
// Fallback: tools/list may return a bare array in some LiteLLM versions
|
|
53
|
+
export const McpToolListFallbackSchema = z.array(McpToolInfoSchema);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Browser Service
|
|
3
|
+
*
|
|
4
|
+
* Implements IMcpServerBrowserService using Node 22+ native fetch for
|
|
5
|
+
* read-only HTTP retrieval from LiteLLM proxy endpoints:
|
|
6
|
+
* - GET /public/mcp_hub — list accessible MCP servers
|
|
7
|
+
* - GET /mcp-rest/tools/list — list available MCP tools
|
|
8
|
+
*
|
|
9
|
+
* Pattern: AbortController timeout, redirect rejection, size limit, Zod validation.
|
|
10
|
+
* Silent failure to empty arrays on any error.
|
|
11
|
+
*/
|
|
12
|
+
import type { IMcpServerBrowserService, McpServerInfo, McpToolInfo } from '../../../application/ports/output/services/mcp-server-browser.interface.js';
|
|
13
|
+
export declare class McpServerBrowserService implements IMcpServerBrowserService {
|
|
14
|
+
fetchServers(proxyBaseUrl: string, apiKey?: string): Promise<McpServerInfo[]>;
|
|
15
|
+
fetchTools(proxyBaseUrl: string, apiKey?: string): Promise<McpToolInfo[]>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=mcp-server-browser.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-browser.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,WAAW,EACZ,MAAM,4EAA4E,CAAC;AAUpF,qBACa,uBAAwB,YAAW,wBAAwB;IAChE,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB7E,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAwBhF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Browser Service
|
|
3
|
+
*
|
|
4
|
+
* Implements IMcpServerBrowserService using Node 22+ native fetch for
|
|
5
|
+
* read-only HTTP retrieval from LiteLLM proxy endpoints:
|
|
6
|
+
* - GET /public/mcp_hub — list accessible MCP servers
|
|
7
|
+
* - GET /mcp-rest/tools/list — list available MCP tools
|
|
8
|
+
*
|
|
9
|
+
* Pattern: AbortController timeout, redirect rejection, size limit, Zod validation.
|
|
10
|
+
* Silent failure to empty arrays on any error.
|
|
11
|
+
*/
|
|
12
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
13
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
15
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
|
+
};
|
|
18
|
+
import { injectable } from 'tsyringe';
|
|
19
|
+
import { McpServerListSchema, McpToolListResponseSchema, McpToolListFallbackSchema, } from './mcp-server-browser.schema.js';
|
|
20
|
+
const FETCH_TIMEOUT_MS = 10_000;
|
|
21
|
+
const MAX_RESPONSE_SIZE = 5_000_000;
|
|
22
|
+
let McpServerBrowserService = class McpServerBrowserService {
|
|
23
|
+
async fetchServers(proxyBaseUrl, apiKey) {
|
|
24
|
+
try {
|
|
25
|
+
const url = parseAndValidateUrl(proxyBaseUrl);
|
|
26
|
+
if (!url)
|
|
27
|
+
return [];
|
|
28
|
+
const endpoint = `${url}/public/mcp_hub`;
|
|
29
|
+
const headers = buildHeaders(apiKey);
|
|
30
|
+
const json = await fetchJson(endpoint, headers);
|
|
31
|
+
if (json === null)
|
|
32
|
+
return [];
|
|
33
|
+
const parsed = McpServerListSchema.safeParse(json);
|
|
34
|
+
if (!parsed.success)
|
|
35
|
+
return [];
|
|
36
|
+
return parsed.data;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async fetchTools(proxyBaseUrl, apiKey) {
|
|
43
|
+
try {
|
|
44
|
+
const url = parseAndValidateUrl(proxyBaseUrl);
|
|
45
|
+
if (!url)
|
|
46
|
+
return [];
|
|
47
|
+
const endpoint = `${url}/mcp-rest/tools/list`;
|
|
48
|
+
const headers = buildHeaders(apiKey);
|
|
49
|
+
const json = await fetchJson(endpoint, headers);
|
|
50
|
+
if (json === null)
|
|
51
|
+
return [];
|
|
52
|
+
// Try wrapped format first: { tools: [...] }
|
|
53
|
+
const wrapped = McpToolListResponseSchema.safeParse(json);
|
|
54
|
+
if (wrapped.success)
|
|
55
|
+
return wrapped.data.tools;
|
|
56
|
+
// Fallback: bare array [...]
|
|
57
|
+
const bare = McpToolListFallbackSchema.safeParse(json);
|
|
58
|
+
if (bare.success)
|
|
59
|
+
return bare.data;
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
McpServerBrowserService = __decorate([
|
|
68
|
+
injectable()
|
|
69
|
+
], McpServerBrowserService);
|
|
70
|
+
export { McpServerBrowserService };
|
|
71
|
+
function parseAndValidateUrl(proxyBaseUrl) {
|
|
72
|
+
try {
|
|
73
|
+
const url = new URL(proxyBaseUrl);
|
|
74
|
+
if (url.protocol !== 'http:' && url.protocol !== 'https:')
|
|
75
|
+
return null;
|
|
76
|
+
return url.toString().replace(/\/$/, '');
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function buildHeaders(apiKey) {
|
|
83
|
+
const headers = {};
|
|
84
|
+
if (apiKey) {
|
|
85
|
+
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
86
|
+
}
|
|
87
|
+
return headers;
|
|
88
|
+
}
|
|
89
|
+
async function fetchJson(endpoint, headers) {
|
|
90
|
+
const controller = new AbortController();
|
|
91
|
+
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
92
|
+
try {
|
|
93
|
+
const res = await fetch(endpoint, {
|
|
94
|
+
signal: controller.signal,
|
|
95
|
+
redirect: 'error',
|
|
96
|
+
headers,
|
|
97
|
+
});
|
|
98
|
+
if (!res.ok)
|
|
99
|
+
return null;
|
|
100
|
+
const text = await res.text();
|
|
101
|
+
if (text.length > MAX_RESPONSE_SIZE)
|
|
102
|
+
return null;
|
|
103
|
+
try {
|
|
104
|
+
return JSON.parse(text);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
clearTimeout(timeout);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { FetchMcpServerToolsResult } from '../../../../../packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js';
|
|
2
|
+
export declare function fetchMcpServerToolsAction(): Promise<FetchMcpServerToolsResult & {
|
|
3
|
+
error?: string;
|
|
4
|
+
}>;
|
|
5
|
+
//# sourceMappingURL=fetch-mcp-server-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-mcp-server-tools.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/fetch-mcp-server-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mFAAmF,CAAC;AAEnI,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,yBAAyB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAC/C,CAOA"}
|