@shepai/cli 1.77.2-pr243.f5af359 → 1.78.0-pr247.6d6f409
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/core/src/application/ports/output/agents/structured-agent-caller.interface.d.ts +6 -1
- package/dist/packages/core/src/application/ports/output/agents/structured-agent-caller.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.d.ts +2 -1
- package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.js +2 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +2 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +2 -2
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +3 -3
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +18 -4
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +3 -3
- package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.js +14 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts +8 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.js +13 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +5 -3
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +1 -1
- package/dist/src/presentation/web/lib/model-metadata.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
- 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]/page/server-reference-manifest.json +19 -19
- 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]/page/server-reference-manifest.json +14 -14
- 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)/create/page/server-reference-manifest.json +18 -18
- 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]/page/server-reference-manifest.json +19 -19
- 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 +14 -14
- 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]/page/server-reference-manifest.json +14 -14
- 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 +2 -2
- 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 +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
- 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 +6 -6
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bff2deea._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bff2deea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_5a4b2905._.js → _59013951._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_5a4b2905._.js.map → _59013951._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_9ac70f88._.js +1 -1
- package/web/.next/server/chunks/ssr/_9ac70f88._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_253f4d99._.js → _c0d6304b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_253f4d99._.js.map → _c0d6304b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_c6d673f9._.js → _cffcd9d0._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_c6d673f9._.js.map → _cffcd9d0._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_ed356507._.js +1 -1
- package/web/.next/server/chunks/ssr/_ed356507._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f38b49fe._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_5124369c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +26 -26
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__bff2deea._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_5a4b2905._.js → _59013951._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9ac70f88._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_253f4d99._.js → _c0d6304b._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_c6d673f9._.js → _cffcd9d0._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ed356507._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_f38b49fe._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_5124369c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +26 -26
- package/web/.next/standalone/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.tsx +1 -1
- package/web/.next/standalone/src/presentation/web/lib/model-metadata.ts +2 -2
- package/web/.next/standalone/src/presentation/web/server.js +1 -1
- package/web/.next/static/chunks/0bdf5fd5930ffe82.js +1 -0
- package/web/.next/static/chunks/{128d484880f21a07.js → 405af1f1720627f7.js} +1 -1
- package/web/.next/static/chunks/{218ab9753982575e.js → 4cd5e556884a28ee.js} +1 -1
- package/web/.next/static/chunks/52b56677c842e45f.js +3 -0
- package/web/.next/static/chunks/{c8863441b5e12825.js → 5c836d389f97b50c.js} +1 -1
- package/web/.next/static/chunks/{cadb5fdf3ab7d77b.js → 62b9a3a31ef611cc.js} +1 -1
- package/web/.next/static/chunks/{cee3033ff8ebf195.js → 6ab2d0ee934b2ba5.js} +1 -1
- package/web/.next/static/chunks/{677390f4102f0944.js → c71da365eaf34944.js} +1 -1
- package/web/.next/static/chunks/{6e7043607b91ed6b.js → e171a771e3055038.js} +1 -1
- package/web/.next/static/chunks/{53584b9a62aea2dc.js → f5080e57de19b082.js} +1 -1
- package/web/.next/static/chunks/{4c6f2fcfd0271c8b.js → f933edb6a2f23692.js} +1 -1
- package/web/.next/static/chunks/{360155cd2342f0b8.js → fad44433a42bcc35.js} +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/cache/.previewinfo +0 -1
- package/web/.next/cache/.rscinfo +0 -1
- package/web/.next/cache/.tsbuildinfo +0 -1
- package/web/.next/cache/config.json +0 -7
- package/web/.next/static/chunks/3c183f1c109f8447.js +0 -1
- package/web/.next/static/chunks/a1ddf1f9b1435434.js +0 -3
- /package/web/.next/static/{d6rYTNqlrgOIowi6L1MbM → PATEpvaeVdnZOt0gykklk}/_buildManifest.js +0 -0
- /package/web/.next/static/{d6rYTNqlrgOIowi6L1MbM → PATEpvaeVdnZOt0gykklk}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{d6rYTNqlrgOIowi6L1MbM → PATEpvaeVdnZOt0gykklk}/_ssgManifest.js +0 -0
|
@@ -27,12 +27,17 @@
|
|
|
27
27
|
* );
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
+
import type { AgentType } from '../../../../domain/generated/output.js';
|
|
30
31
|
import type { AgentExecutionOptions } from './agent-executor.interface.js';
|
|
31
32
|
/**
|
|
32
33
|
* Options for structured agent calls.
|
|
33
34
|
* Same as AgentExecutionOptions but without outputSchema (provided separately as the schema argument).
|
|
35
|
+
* Optionally accepts agentType to override the default executor resolved from settings.
|
|
34
36
|
*/
|
|
35
|
-
export type StructuredCallOptions = Omit<AgentExecutionOptions, 'outputSchema'
|
|
37
|
+
export type StructuredCallOptions = Omit<AgentExecutionOptions, 'outputSchema'> & {
|
|
38
|
+
/** Override executor agent type instead of using the default from settings */
|
|
39
|
+
agentType?: AgentType;
|
|
40
|
+
};
|
|
36
41
|
/**
|
|
37
42
|
* Port interface for making typed calls to AI agents with JSON schema output.
|
|
38
43
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-agent-caller.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/structured-agent-caller.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E
|
|
1
|
+
{"version":3,"file":"structured-agent-caller.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/structured-agent-caller.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE,cAAc,CAAC,GAAG;IAChF,8EAA8E;IAC9E,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;OASG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAMtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AACrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAGhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9F,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAhBZ,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,2BAA2B,EAEzC,aAAa,EAAE,mBAAmB,EAElC,eAAe,EAAE,uBAAuB,EAExC,iBAAiB,EAAE,iBAAiB,EAEpC,YAAY,EAAE,YAAY,EAE1B,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa;IAG9C;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuH1E;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"create-feature.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/create-feature.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAMtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AACrG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAGhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9F,qBACa,oBAAoB;IAG7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAhBZ,WAAW,EAAE,kBAAkB,EAE/B,eAAe,EAAE,gBAAgB,EAEjC,YAAY,EAAE,2BAA2B,EAEzC,aAAa,EAAE,mBAAmB,EAElC,eAAe,EAAE,uBAAuB,EAExC,iBAAiB,EAAE,iBAAiB,EAEpC,YAAY,EAAE,YAAY,EAE1B,cAAc,EAAE,qBAAqB,EAErC,YAAY,EAAE,aAAa;IAG9C;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuH1E;;;OAGG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC;CAwE1D"}
|
package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js
CHANGED
|
@@ -182,7 +182,7 @@ let CreateFeatureUseCase = class CreateFeatureUseCase {
|
|
|
182
182
|
const effectiveRepoPath = feature.repositoryPath;
|
|
183
183
|
// Ensure the target directory is a git repository (auto-init if needed)
|
|
184
184
|
await this.worktreeService.ensureGitRepository(effectiveRepoPath);
|
|
185
|
-
const metadata = await this.metadataGenerator.generateMetadata(input.userInput);
|
|
185
|
+
const metadata = await this.metadataGenerator.generateMetadata(input.userInput, input.agentType);
|
|
186
186
|
const originalSlug = metadata.slug;
|
|
187
187
|
const { slug, branch, warning } = await this.slugResolver.resolveUniqueSlug(originalSlug, effectiveRepoPath);
|
|
188
188
|
// Determine next feature number for this repo
|
package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* via AI call through IStructuredAgentCaller.
|
|
6
6
|
* Errors are propagated to the caller.
|
|
7
7
|
*/
|
|
8
|
+
import type { AgentType } from '../../../../domain/generated/output.js';
|
|
8
9
|
import type { IStructuredAgentCaller } from '../../../ports/output/agents/structured-agent-caller.interface.js';
|
|
9
10
|
interface FeatureMetadata {
|
|
10
11
|
slug: string;
|
|
@@ -18,7 +19,7 @@ export declare class MetadataGenerator {
|
|
|
18
19
|
* Generate feature metadata from user input via AI.
|
|
19
20
|
* Errors are propagated to the caller.
|
|
20
21
|
*/
|
|
21
|
-
generateMetadata(userInput: string): Promise<FeatureMetadata>;
|
|
22
|
+
generateMetadata(userInput: string, agentType?: AgentType): Promise<FeatureMetadata>;
|
|
22
23
|
/**
|
|
23
24
|
* Convert text to kebab-case slug with 50-char limit.
|
|
24
25
|
* Removes special characters, collapses spaces, limits length.
|
package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-generator.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/metadata-generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mEAAmE,CAAC;AAEhH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD,qBACa,iBAAiB;IAG1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,sBAAsB;IAG3D;;;OAGG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata-generator.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/use-cases/features/create/metadata-generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mEAAmE,CAAC;AAEhH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD,qBACa,iBAAiB;IAG1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,sBAAsB;IAG3D;;;OAGG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAoC1F;;;OAGG;IACH,OAAO,CAAC,MAAM;CAgBf"}
|
|
@@ -39,7 +39,7 @@ let MetadataGenerator = class MetadataGenerator {
|
|
|
39
39
|
* Generate feature metadata from user input via AI.
|
|
40
40
|
* Errors are propagated to the caller.
|
|
41
41
|
*/
|
|
42
|
-
async generateMetadata(userInput) {
|
|
42
|
+
async generateMetadata(userInput, agentType) {
|
|
43
43
|
const truncated = userInput.length > MAX_INPUT_FOR_AI
|
|
44
44
|
? `${userInput.slice(0, MAX_INPUT_FOR_AI)}...`
|
|
45
45
|
: userInput;
|
|
@@ -58,6 +58,7 @@ Return a JSON object with these fields:
|
|
|
58
58
|
maxTurns: 10,
|
|
59
59
|
allowedTools: [],
|
|
60
60
|
silent: true,
|
|
61
|
+
agentType,
|
|
61
62
|
});
|
|
62
63
|
if (!parsed.slug || !parsed.name || !parsed.description) {
|
|
63
64
|
throw new Error('Missing required fields in AI response');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAiHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAiHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CA+QrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -178,7 +178,8 @@ export async function initializeContainer() {
|
|
|
178
178
|
container.register('IStructuredAgentCaller', {
|
|
179
179
|
useFactory: (c) => {
|
|
180
180
|
const provider = c.resolve('IAgentExecutorProvider');
|
|
181
|
-
|
|
181
|
+
const factory = c.resolve('IAgentExecutorFactory');
|
|
182
|
+
return new StructuredAgentCallerService(provider, factory);
|
|
182
183
|
},
|
|
183
184
|
});
|
|
184
185
|
container.register('IAgentRegistry', {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Uses constructor dependency injection for the spawn function
|
|
9
9
|
* to enable testability without mocking node:child_process directly.
|
|
10
10
|
*/
|
|
11
|
-
import { getLogPrefix } from '../../feature-agent/log-context.js';
|
|
11
|
+
import { getCurrentPhase, getLogPrefix } from '../../feature-agent/log-context.js';
|
|
12
12
|
/** Features supported by Claude Code CLI */
|
|
13
13
|
const SUPPORTED_FEATURES = new Set([
|
|
14
14
|
'session-resume',
|
|
@@ -34,7 +34,7 @@ export class ClaudeCodeExecutorService {
|
|
|
34
34
|
if (this.silent)
|
|
35
35
|
return;
|
|
36
36
|
const ts = new Date().toISOString();
|
|
37
|
-
process.stdout.write(`[${ts}] ${getLogPrefix()}
|
|
37
|
+
process.stdout.write(`[${ts}] ${getCurrentPhase()}${getLogPrefix()}${message}\n`);
|
|
38
38
|
}
|
|
39
39
|
async execute(prompt, options) {
|
|
40
40
|
this.silent = options?.silent ?? false;
|
|
@@ -43,7 +43,7 @@ export class ClaudeCodeExecutorService {
|
|
|
43
43
|
const args = this.buildStreamArgs(prompt, options);
|
|
44
44
|
const spawnOpts = this.buildSpawnOptions(options);
|
|
45
45
|
this.log(`Spawning: claude ${args.map((a) => (a.length > 80 ? `${a.slice(0, 77)}...` : a)).join(' ')}`);
|
|
46
|
-
this.log(`Spawn
|
|
46
|
+
this.log(`Spawn cwd: ${spawnOpts.cwd ?? '(inherited)'}`);
|
|
47
47
|
const proc = this.spawn('claude', args, spawnOpts);
|
|
48
48
|
this.log(`Subprocess PID: ${proc.pid ?? 'undefined (spawn may have failed)'}`);
|
|
49
49
|
// Close stdin immediately — we pass the prompt via -p, not stdin.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsBjD;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAM9C,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAyB;IAEtD,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAS;gBAEM,KAAK,EAAE,aAAa;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,GAAG;IAMX,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAIzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkGtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IA8E3C;;OAEG;IACH,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,eAAe;CAgDxB"}
|
|
@@ -8,7 +8,21 @@
|
|
|
8
8
|
* Uses constructor dependency injection for the spawn function
|
|
9
9
|
* to enable testability without mocking node:child_process directly.
|
|
10
10
|
*/
|
|
11
|
-
import { getLogPrefix } from '../../feature-agent/log-context.js';
|
|
11
|
+
import { getCurrentPhase, getLogPrefix } from '../../feature-agent/log-context.js';
|
|
12
|
+
/**
|
|
13
|
+
* Map canonical model IDs (used across shep) to Cursor CLI model names.
|
|
14
|
+
* Cursor uses short names like "sonnet-4.6" instead of "claude-sonnet-4-6".
|
|
15
|
+
* Models that already match Cursor's naming pass through unchanged.
|
|
16
|
+
*/
|
|
17
|
+
const CURSOR_MODEL_MAP = {
|
|
18
|
+
'claude-opus-4-6': 'opus-4.6',
|
|
19
|
+
'claude-sonnet-4-6': 'sonnet-4.6',
|
|
20
|
+
'claude-haiku-4-5': 'haiku-4.5',
|
|
21
|
+
'grok-code': 'grok',
|
|
22
|
+
};
|
|
23
|
+
function toCursorModelName(model) {
|
|
24
|
+
return CURSOR_MODEL_MAP[model] ?? model;
|
|
25
|
+
}
|
|
12
26
|
/** Features supported by Cursor CLI */
|
|
13
27
|
const SUPPORTED_FEATURES = new Set(['session-resume', 'streaming']);
|
|
14
28
|
/**
|
|
@@ -28,7 +42,7 @@ export class CursorExecutorService {
|
|
|
28
42
|
if (this.silent)
|
|
29
43
|
return;
|
|
30
44
|
const ts = new Date().toISOString();
|
|
31
|
-
process.stdout.write(`[${ts}] ${getLogPrefix()}
|
|
45
|
+
process.stdout.write(`[${ts}] ${getCurrentPhase()}${getLogPrefix()}${message}\n`);
|
|
32
46
|
}
|
|
33
47
|
supportsFeature(feature) {
|
|
34
48
|
return SUPPORTED_FEATURES.has(feature);
|
|
@@ -38,7 +52,7 @@ export class CursorExecutorService {
|
|
|
38
52
|
const args = this.buildStreamArgs(prompt, options);
|
|
39
53
|
const spawnOpts = this.buildSpawnOptions(options);
|
|
40
54
|
this.log(`Spawning: agent ${args.map((a) => (a.length > 80 ? `${a.slice(0, 77)}...` : a)).join(' ')}`);
|
|
41
|
-
this.log(`Spawn
|
|
55
|
+
this.log(`Spawn cwd: ${spawnOpts.cwd ?? '(inherited)'}`);
|
|
42
56
|
const proc = this.spawn('agent', args, spawnOpts);
|
|
43
57
|
this.log(`Subprocess PID: ${proc.pid ?? 'undefined (spawn may have failed)'}`);
|
|
44
58
|
if (proc.stdin)
|
|
@@ -234,7 +248,7 @@ export class CursorExecutorService {
|
|
|
234
248
|
if (options?.resumeSession)
|
|
235
249
|
args.push('--resume', options.resumeSession);
|
|
236
250
|
if (options?.model)
|
|
237
|
-
args.push('
|
|
251
|
+
args.push('--model', toCursorModelName(options.model));
|
|
238
252
|
// Unsupported options silently omitted: systemPrompt, allowedTools, maxTurns, outputSchema
|
|
239
253
|
// No auth flags — binary handles its own auth
|
|
240
254
|
return args;
|
|
@@ -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 { getLogPrefix } from '../../feature-agent/log-context.js';
|
|
10
|
+
import { getCurrentPhase, getLogPrefix } from '../../feature-agent/log-context.js';
|
|
11
11
|
/** Features supported by Gemini CLI */
|
|
12
12
|
const SUPPORTED_FEATURES = new Set(['session-resume', 'streaming', 'tool-scoping']);
|
|
13
13
|
/**
|
|
@@ -29,7 +29,7 @@ export class GeminiCliExecutorService {
|
|
|
29
29
|
if (this.silent)
|
|
30
30
|
return;
|
|
31
31
|
const ts = new Date().toISOString();
|
|
32
|
-
process.stdout.write(`[${ts}] ${getLogPrefix()}
|
|
32
|
+
process.stdout.write(`[${ts}] ${getCurrentPhase()}${getLogPrefix()}${message}\n`);
|
|
33
33
|
}
|
|
34
34
|
supportsFeature(feature) {
|
|
35
35
|
return SUPPORTED_FEATURES.has(feature);
|
|
@@ -39,7 +39,7 @@ export class GeminiCliExecutorService {
|
|
|
39
39
|
const args = this.buildArgs(prompt, options, 'json');
|
|
40
40
|
const spawnOpts = this.buildSpawnOptions(options);
|
|
41
41
|
this.log(`Spawning: gemini ${args.map((a) => (a.length > 80 ? `${a.slice(0, 77)}...` : a)).join(' ')}`);
|
|
42
|
-
this.log(`Spawn
|
|
42
|
+
this.log(`Spawn cwd: ${spawnOpts.cwd ?? '(inherited)'}`);
|
|
43
43
|
const proc = this.spawn('gemini', args, spawnOpts);
|
|
44
44
|
this.log(`Subprocess PID: ${proc.pid ?? 'undefined (spawn may have failed)'}`);
|
|
45
45
|
if (proc.stdin)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IAgentExecutorProvider } from '../../../../application/ports/output/agents/agent-executor-provider.interface.js';
|
|
2
|
+
import type { IAgentExecutorFactory } from '../../../../application/ports/output/agents/agent-executor-factory.interface.js';
|
|
2
3
|
import type { IStructuredAgentCaller, StructuredCallOptions } from '../../../../application/ports/output/agents/structured-agent-caller.interface.js';
|
|
3
4
|
/**
|
|
4
5
|
* Structured agent caller that abstracts native structured output vs prompt-based JSON extraction.
|
|
@@ -8,7 +9,8 @@ import type { IStructuredAgentCaller, StructuredCallOptions } from '../../../../
|
|
|
8
9
|
*/
|
|
9
10
|
export declare class StructuredAgentCallerService implements IStructuredAgentCaller {
|
|
10
11
|
private readonly executorProvider;
|
|
11
|
-
|
|
12
|
+
private readonly executorFactory;
|
|
13
|
+
constructor(executorProvider: IAgentExecutorProvider, executorFactory: IAgentExecutorFactory);
|
|
12
14
|
call<T>(prompt: string, schema: object, options?: StructuredCallOptions): Promise<T>;
|
|
13
15
|
private callWithNativeSchema;
|
|
14
16
|
private callWithPromptFallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-agent-caller.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kFAAkF,CAAC;
|
|
1
|
+
{"version":3,"file":"structured-agent-caller.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kFAAkF,CAAC;AAC/H,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iFAAiF,CAAC;AAE7H,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,kFAAkF,CAAC;AAI1F;;;;;GAKG;AACH,qBACa,4BAA6B,YAAW,sBAAsB;IAGvE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAEjC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFf,gBAAgB,EAAE,sBAAsB,EAExC,eAAe,EAAE,qBAAqB;IAGnD,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;YAgB5E,oBAAoB;YAapB,sBAAsB;IAWpC,OAAO,CAAC,8BAA8B;IAYtC,OAAO,CAAC,iBAAiB;CA4C1B"}
|
|
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
import { injectable, inject } from 'tsyringe';
|
|
14
14
|
import { AgentFeature } from '../../../../domain/generated/output.js';
|
|
15
15
|
import { StructuredCallError } from '../../../../application/ports/output/agents/structured-call-error.js';
|
|
16
|
+
import { getSettings } from '../../settings.service.js';
|
|
16
17
|
/**
|
|
17
18
|
* Structured agent caller that abstracts native structured output vs prompt-based JSON extraction.
|
|
18
19
|
*
|
|
@@ -21,11 +22,20 @@ import { StructuredCallError } from '../../../../application/ports/output/agents
|
|
|
21
22
|
*/
|
|
22
23
|
let StructuredAgentCallerService = class StructuredAgentCallerService {
|
|
23
24
|
executorProvider;
|
|
24
|
-
|
|
25
|
+
executorFactory;
|
|
26
|
+
constructor(executorProvider, executorFactory) {
|
|
25
27
|
this.executorProvider = executorProvider;
|
|
28
|
+
this.executorFactory = executorFactory;
|
|
26
29
|
}
|
|
27
30
|
async call(prompt, schema, options) {
|
|
28
|
-
|
|
31
|
+
let executor;
|
|
32
|
+
if (options?.agentType) {
|
|
33
|
+
const settings = getSettings();
|
|
34
|
+
executor = this.executorFactory.createExecutor(options.agentType, settings.agent);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
executor = await this.executorProvider.getExecutor();
|
|
38
|
+
}
|
|
29
39
|
if (executor.supportsFeature(AgentFeature.structuredOutput)) {
|
|
30
40
|
return this.callWithNativeSchema(executor, prompt, schema, options);
|
|
31
41
|
}
|
|
@@ -99,6 +109,7 @@ Return ONLY the JSON object.`;
|
|
|
99
109
|
StructuredAgentCallerService = __decorate([
|
|
100
110
|
injectable(),
|
|
101
111
|
__param(0, inject('IAgentExecutorProvider')),
|
|
102
|
-
|
|
112
|
+
__param(1, inject('IAgentExecutorFactory')),
|
|
113
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
103
114
|
], StructuredAgentCallerService);
|
|
104
115
|
export { StructuredAgentCallerService };
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts
CHANGED
|
@@ -14,4 +14,12 @@ export declare function setLogPrefix(agentType: string, model?: string): void;
|
|
|
14
14
|
* Get the current log prefix. Returns empty string if not set.
|
|
15
15
|
*/
|
|
16
16
|
export declare function getLogPrefix(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Set the current phase/node name. Called by each node at startup.
|
|
19
|
+
*/
|
|
20
|
+
export declare function setCurrentPhase(phase: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get the current phase prefix. Returns empty string if not set.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getCurrentPhase(): string;
|
|
17
25
|
//# sourceMappingURL=log-context.d.ts.map
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-context.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/log-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"log-context.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/log-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* the same [agent|model] prefix for easy filtering.
|
|
7
7
|
*/
|
|
8
8
|
let _prefix = '';
|
|
9
|
+
let _phase = '';
|
|
9
10
|
/**
|
|
10
11
|
* Set the global log prefix. Call once at worker startup.
|
|
11
12
|
* Example: setLogPrefix('claude-code', 'claude-haiku-4-5') → "[claude-code|claude-haiku-4-5] "
|
|
@@ -19,3 +20,15 @@ export function setLogPrefix(agentType, model) {
|
|
|
19
20
|
export function getLogPrefix() {
|
|
20
21
|
return _prefix;
|
|
21
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Set the current phase/node name. Called by each node at startup.
|
|
25
|
+
*/
|
|
26
|
+
export function setCurrentPhase(phase) {
|
|
27
|
+
_phase = phase;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get the current phase prefix. Returns empty string if not set.
|
|
31
|
+
*/
|
|
32
|
+
export function getCurrentPhase() {
|
|
33
|
+
return _phase ? `[${_phase}] ` : '';
|
|
34
|
+
}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import type { FeatureAgentState } from '../state.js';
|
|
|
10
10
|
/**
|
|
11
11
|
* Create a scoped logger that prefixes messages with the node name.
|
|
12
12
|
* Output goes to stdout which the worker redirects to the log file.
|
|
13
|
+
* Also sets the current phase so executor logs inherit the node context.
|
|
13
14
|
*/
|
|
14
15
|
export declare function createNodeLogger(nodeName: string): {
|
|
15
16
|
info(message: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUrD
|
|
1
|
+
{"version":3,"file":"node-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUrD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM;kBAG/B,MAAM,GAAG,IAAI;mBAIZ,MAAM,GAAG,IAAI;EAK/B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,CAMpF;AAeD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAQ3F;AAMD,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,mBAAmB,GAAG,eAAe,GAAG,SAAS,CAAC;AAMhG;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAKjE;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,EAC9B,SAAS,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAW5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAqB5F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOhG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAwB1F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAa5F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAoBT;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,KAAK,MAAM,GACjE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAmHnE"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js
CHANGED
|
@@ -11,20 +11,22 @@ import { interrupt, isGraphBubbleUp } from '@langchain/langgraph';
|
|
|
11
11
|
import { reportNodeStart } from '../heartbeat.js';
|
|
12
12
|
import { recordPhaseStart, recordPhaseEnd, recordApprovalWaitStart, } from '../phase-timing-context.js';
|
|
13
13
|
import { updateNodeLifecycle } from '../lifecycle-context.js';
|
|
14
|
-
import { getLogPrefix } from '../log-context.js';
|
|
14
|
+
import { getLogPrefix, setCurrentPhase } from '../log-context.js';
|
|
15
15
|
/**
|
|
16
16
|
* Create a scoped logger that prefixes messages with the node name.
|
|
17
17
|
* Output goes to stdout which the worker redirects to the log file.
|
|
18
|
+
* Also sets the current phase so executor logs inherit the node context.
|
|
18
19
|
*/
|
|
19
20
|
export function createNodeLogger(nodeName) {
|
|
21
|
+
setCurrentPhase(nodeName);
|
|
20
22
|
return {
|
|
21
23
|
info(message) {
|
|
22
24
|
const ts = new Date().toISOString();
|
|
23
|
-
process.stdout.write(`[${ts}]
|
|
25
|
+
process.stdout.write(`[${ts}] [${nodeName}] ${getLogPrefix()}${message}\n`);
|
|
24
26
|
},
|
|
25
27
|
error(message) {
|
|
26
28
|
const ts = new Date().toISOString();
|
|
27
|
-
process.stderr.write(`[${ts}]
|
|
29
|
+
process.stderr.write(`[${ts}] [${nodeName}] ${getLogPrefix()}ERROR: ${message}\n`);
|
|
28
30
|
},
|
|
29
31
|
};
|
|
30
32
|
}
|
|
@@ -13,8 +13,8 @@ const MODEL_METADATA = {
|
|
|
13
13
|
'gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', description: 'Reliable workhorse' },
|
|
14
14
|
'gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', description: 'Speed-optimized' },
|
|
15
15
|
// OpenAI models
|
|
16
|
-
'gpt-5.4': { displayName: 'GPT-5.4', description: 'Latest reasoning model' },
|
|
17
|
-
'gpt-5': { displayName: 'GPT-5', description: 'Flagship model' },
|
|
16
|
+
'gpt-5.4-high': { displayName: 'GPT-5.4', description: 'Latest reasoning model' },
|
|
17
|
+
'gpt-5.2': { displayName: 'GPT-5.2', description: 'Flagship model' },
|
|
18
18
|
'gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', description: 'Code specialist' },
|
|
19
19
|
// Other
|
|
20
20
|
'composer-1.5': { displayName: 'Composer 1.5', description: 'Multi-file editing' },
|