@shepai/cli 1.175.1 → 1.176.0-pr539.02342cf
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/PhaseTiming.yaml +30 -0
- package/apis/json-schema/TokenOptimizationConfig.yaml +36 -0
- package/apis/json-schema/WorkflowConfig.yaml +3 -0
- package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts +8 -1
- package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/index.d.ts +1 -1
- package/dist/packages/core/src/application/ports/output/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/alias-compression.interface.d.ts +45 -0
- package/dist/packages/core/src/application/ports/output/services/alias-compression.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/alias-compression.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/command-output-filter.interface.d.ts +50 -0
- package/dist/packages/core/src/application/ports/output/services/command-output-filter.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/command-output-filter.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/delta-context.interface.d.ts +57 -0
- package/dist/packages/core/src/application/ports/output/services/delta-context.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/delta-context.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +7 -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/optimization-metrics.interface.d.ts +45 -0
- package/dist/packages/core/src/application/ports/output/services/optimization-metrics.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/optimization-metrics.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/prompt-optimizer.interface.d.ts +86 -0
- package/dist/packages/core/src/application/ports/output/services/prompt-optimizer.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/prompt-optimizer.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/semantic-compressor.interface.d.ts +43 -0
- package/dist/packages/core/src/application/ports/output/services/semantic-compressor.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/semantic-compressor.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/skill-routing.interface.d.ts +41 -0
- package/dist/packages/core/src/application/ports/output/services/skill-routing.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/skill-routing.interface.js +12 -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 +9 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +66 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +1 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +27 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +6 -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 +41 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-token-optimization-config.d.ts +29 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-token-optimization-config.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-token-optimization-config.js +77 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts +2 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.js +72 -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 +19 -3
- package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +6 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +18 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -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 +6 -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 +17 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/prompt-optimization-context.d.ts +42 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/prompt-optimization-context.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/prompt-optimization-context.js +92 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +5 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/alias-compression.service.d.ts +41 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/alias-compression.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/alias-compression.service.js +111 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/command-output-filter.service.d.ts +22 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/command-output-filter.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/command-output-filter.service.js +245 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/delta-context.service.d.ts +22 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/delta-context.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/delta-context.service.js +50 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/optimization-metrics.service.d.ts +36 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/optimization-metrics.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/optimization-metrics.service.js +123 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/prompt-optimizer.service.d.ts +57 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/prompt-optimizer.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/prompt-optimizer.service.js +211 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/semantic-compressor.service.d.ts +34 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/semantic-compressor.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/semantic-compressor.service.js +190 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/skill-routing.service.d.ts +26 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/skill-routing.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/token-optimization/skill-routing.service.js +51 -0
- package/dist/translations/ar/common.json +1 -0
- package/dist/translations/de/common.json +1 -0
- package/dist/translations/en/common.json +1 -0
- package/dist/translations/es/common.json +1 -0
- package/dist/translations/fr/common.json +1 -0
- package/dist/translations/he/common.json +1 -0
- package/dist/translations/pt/common.json +1 -0
- package/dist/translations/ru/common.json +1 -0
- package/dist/translations/uk/cli.json +631 -0
- package/dist/translations/uk/common.json +56 -0
- package/dist/translations/uk/tui.json +134 -0
- package/dist/translations/uk/web.json +615 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- 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 +3 -3
- package/web/.next/required-server-files.json +3 -3
- 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.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.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 +30 -30
- 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 +38 -38
- 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 +38 -38
- 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.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.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.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 +30 -30
- 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 +38 -38
- 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 +38 -38
- 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.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.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.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 +6 -6
- 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/features/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
- 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 +13 -13
- 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.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.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +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/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.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]__51ec77a8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1879404a._.js +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_34b0a7ad._.js +3 -0
- package/web/.next/server/chunks/ssr/{_f1776188._.js.map → _34b0a7ad._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_ce75a825._.js → _39053f87._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_ce75a825._.js.map → _39053f87._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_81ef821b._.js → _66291662._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_81ef821b._.js.map → _66291662._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js +1 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d9c0a97a._.js +1 -1
- package/web/.next/server/chunks/ssr/_f8c55130._.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/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +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_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.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_db9fa0c2._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.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 +50 -50
- package/web/.next/static/chunks/{03219e57ab4dab05.js → 1bbf1ec4b25d4de8.js} +1 -1
- package/web/.next/static/chunks/{ed450778c582887c.js → 1fd5980d468143b3.js} +3 -3
- package/web/.next/static/chunks/{523caed4f5a9a78f.js → 2403588dafacbd4e.js} +1 -1
- package/web/.next/static/chunks/{b5218d35112c5b4b.js → 287fea380d8cc373.js} +1 -1
- package/web/.next/static/chunks/420c3bd9d5a22881.js +1 -0
- package/web/.next/static/chunks/{20e831d121ae5518.js → 4df18296f976f225.js} +1 -1
- package/web/.next/static/chunks/{feeecb1dc1648817.js → 5cddc4bace2ce528.js} +1 -1
- package/web/.next/static/chunks/{bf0d2eba02ad69a4.js → 6a3d4b6774ebcbff.js} +1 -1
- package/web/.next/static/chunks/{7b5bdecb2b254cd5.js → 6d33333b9382783a.js} +3 -3
- package/web/.next/static/chunks/{09b21da62ffd89d6.js → 73e0fa361f218bb0.js} +1 -1
- package/web/.next/static/chunks/{3240913baa13b564.js → 85ea0b80c5996155.js} +1 -1
- package/web/.next/static/chunks/{34073c7071fbc0bc.js → 97b1402b60fab8a2.js} +1 -1
- package/web/.next/static/chunks/{eb951d647c1f92e6.js → e5d2d6d17ea0472e.js} +1 -1
- package/web/.next/static/chunks/{b49ab0b290e9342d.js → e8444bf5f6c35f8b.js} +1 -1
- package/web/.next/static/chunks/f9d948464ed409cb.js +1 -0
- package/web/.next/static/chunks/{df22a970881f1da8.js → fb6b8fc0dac0dea9.js} +1 -1
- package/web/.next/server/chunks/ssr/_f1776188._.js +0 -3
- package/web/.next/static/chunks/b65e555419a0c664.js +0 -1
- package/web/.next/static/chunks/fe1670b9aae7de08.js +0 -1
- /package/web/.next/static/{JskTxIiYLT1ye2ta1GTlv → EYQFTbDa6VxVniUQK-bHc}/_buildManifest.js +0 -0
- /package/web/.next/static/{JskTxIiYLT1ye2ta1GTlv → EYQFTbDa6VxVniUQK-bHc}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{JskTxIiYLT1ye2ta1GTlv → EYQFTbDa6VxVniUQK-bHc}/_ssgManifest.js +0 -0
package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.js
CHANGED
|
@@ -36,6 +36,14 @@ function toDatabase(timing) {
|
|
|
36
36
|
duration_api_ms: timing.durationApiMs != null ? Number(timing.durationApiMs) : null,
|
|
37
37
|
exit_code: timing.exitCode ?? null,
|
|
38
38
|
error_message: timing.errorMessage ?? null,
|
|
39
|
+
original_token_estimate: timing.originalTokenEstimate != null ? Number(timing.originalTokenEstimate) : null,
|
|
40
|
+
optimized_token_estimate: timing.optimizedTokenEstimate != null ? Number(timing.optimizedTokenEstimate) : null,
|
|
41
|
+
savings_percent: timing.savingsPercent != null ? Number(timing.savingsPercent) : null,
|
|
42
|
+
capabilities_applied: timing.capabilitiesApplied ?? null,
|
|
43
|
+
output_filter_lines_removed: timing.outputFilterLinesRemoved ?? null,
|
|
44
|
+
delta_context_files_skipped: timing.deltaContextFilesSkipped ?? null,
|
|
45
|
+
compression_ratio: timing.compressionRatio != null ? Number(timing.compressionRatio) : null,
|
|
46
|
+
aliases_created: timing.aliasesCreated ?? null,
|
|
39
47
|
created_at: timing.createdAt instanceof Date ? timing.createdAt.getTime() : timing.createdAt,
|
|
40
48
|
updated_at: timing.updatedAt instanceof Date ? timing.updatedAt.getTime() : timing.updatedAt,
|
|
41
49
|
};
|
|
@@ -70,6 +78,22 @@ function fromDatabase(row) {
|
|
|
70
78
|
...(row.duration_api_ms !== null && { durationApiMs: BigInt(row.duration_api_ms) }),
|
|
71
79
|
...(row.exit_code !== null && { exitCode: row.exit_code }),
|
|
72
80
|
...(row.error_message !== null && { errorMessage: row.error_message }),
|
|
81
|
+
...(row.original_token_estimate !== null && {
|
|
82
|
+
originalTokenEstimate: BigInt(row.original_token_estimate),
|
|
83
|
+
}),
|
|
84
|
+
...(row.optimized_token_estimate !== null && {
|
|
85
|
+
optimizedTokenEstimate: BigInt(row.optimized_token_estimate),
|
|
86
|
+
}),
|
|
87
|
+
...(row.savings_percent !== null && { savingsPercent: row.savings_percent }),
|
|
88
|
+
...(row.capabilities_applied !== null && { capabilitiesApplied: row.capabilities_applied }),
|
|
89
|
+
...(row.output_filter_lines_removed !== null && {
|
|
90
|
+
outputFilterLinesRemoved: row.output_filter_lines_removed,
|
|
91
|
+
}),
|
|
92
|
+
...(row.delta_context_files_skipped !== null && {
|
|
93
|
+
deltaContextFilesSkipped: row.delta_context_files_skipped,
|
|
94
|
+
}),
|
|
95
|
+
...(row.compression_ratio !== null && { compressionRatio: row.compression_ratio }),
|
|
96
|
+
...(row.aliases_created !== null && { aliasesCreated: row.aliases_created }),
|
|
73
97
|
};
|
|
74
98
|
}
|
|
75
99
|
/**
|
|
@@ -90,6 +114,10 @@ let SQLitePhaseTimingRepository = class SQLitePhaseTimingRepository {
|
|
|
90
114
|
cache_creation_input_tokens, cache_read_input_tokens,
|
|
91
115
|
cost_usd, num_turns, duration_api_ms,
|
|
92
116
|
exit_code, error_message,
|
|
117
|
+
original_token_estimate, optimized_token_estimate,
|
|
118
|
+
savings_percent, capabilities_applied,
|
|
119
|
+
output_filter_lines_removed, delta_context_files_skipped,
|
|
120
|
+
compression_ratio, aliases_created,
|
|
93
121
|
created_at, updated_at
|
|
94
122
|
) VALUES (
|
|
95
123
|
@id, @agent_run_id, @phase, @started_at, @completed_at, @duration_ms,
|
|
@@ -98,6 +126,10 @@ let SQLitePhaseTimingRepository = class SQLitePhaseTimingRepository {
|
|
|
98
126
|
@cache_creation_input_tokens, @cache_read_input_tokens,
|
|
99
127
|
@cost_usd, @num_turns, @duration_api_ms,
|
|
100
128
|
@exit_code, @error_message,
|
|
129
|
+
@original_token_estimate, @optimized_token_estimate,
|
|
130
|
+
@savings_percent, @capabilities_applied,
|
|
131
|
+
@output_filter_lines_removed, @delta_context_files_skipped,
|
|
132
|
+
@compression_ratio, @aliases_created,
|
|
101
133
|
@created_at, @updated_at
|
|
102
134
|
)
|
|
103
135
|
`);
|
|
@@ -154,6 +186,38 @@ let SQLitePhaseTimingRepository = class SQLitePhaseTimingRepository {
|
|
|
154
186
|
setClauses.push('error_message = @error_message');
|
|
155
187
|
params.error_message = updates.errorMessage;
|
|
156
188
|
}
|
|
189
|
+
if (updates.originalTokenEstimate !== undefined) {
|
|
190
|
+
setClauses.push('original_token_estimate = @original_token_estimate');
|
|
191
|
+
params.original_token_estimate = Number(updates.originalTokenEstimate);
|
|
192
|
+
}
|
|
193
|
+
if (updates.optimizedTokenEstimate !== undefined) {
|
|
194
|
+
setClauses.push('optimized_token_estimate = @optimized_token_estimate');
|
|
195
|
+
params.optimized_token_estimate = Number(updates.optimizedTokenEstimate);
|
|
196
|
+
}
|
|
197
|
+
if (updates.savingsPercent !== undefined) {
|
|
198
|
+
setClauses.push('savings_percent = @savings_percent');
|
|
199
|
+
params.savings_percent = Number(updates.savingsPercent);
|
|
200
|
+
}
|
|
201
|
+
if (updates.capabilitiesApplied !== undefined) {
|
|
202
|
+
setClauses.push('capabilities_applied = @capabilities_applied');
|
|
203
|
+
params.capabilities_applied = updates.capabilitiesApplied;
|
|
204
|
+
}
|
|
205
|
+
if (updates.outputFilterLinesRemoved !== undefined) {
|
|
206
|
+
setClauses.push('output_filter_lines_removed = @output_filter_lines_removed');
|
|
207
|
+
params.output_filter_lines_removed = updates.outputFilterLinesRemoved;
|
|
208
|
+
}
|
|
209
|
+
if (updates.deltaContextFilesSkipped !== undefined) {
|
|
210
|
+
setClauses.push('delta_context_files_skipped = @delta_context_files_skipped');
|
|
211
|
+
params.delta_context_files_skipped = updates.deltaContextFilesSkipped;
|
|
212
|
+
}
|
|
213
|
+
if (updates.compressionRatio !== undefined) {
|
|
214
|
+
setClauses.push('compression_ratio = @compression_ratio');
|
|
215
|
+
params.compression_ratio = Number(updates.compressionRatio);
|
|
216
|
+
}
|
|
217
|
+
if (updates.aliasesCreated !== undefined) {
|
|
218
|
+
setClauses.push('aliases_created = @aliases_created');
|
|
219
|
+
params.aliases_created = updates.aliasesCreated;
|
|
220
|
+
}
|
|
157
221
|
const stmt = this.db.prepare(`UPDATE phase_timings SET ${setClauses.join(', ')} WHERE id = @id`);
|
|
158
222
|
stmt.run(params);
|
|
159
223
|
}
|
|
@@ -177,6 +241,14 @@ let SQLitePhaseTimingRepository = class SQLitePhaseTimingRepository {
|
|
|
177
241
|
const stmt = this.db.prepare(`UPDATE phase_timings SET ${setClauses.join(', ')} WHERE id = @id`);
|
|
178
242
|
stmt.run(params);
|
|
179
243
|
}
|
|
244
|
+
async findById(id) {
|
|
245
|
+
const stmt = this.db.prepare('SELECT * FROM phase_timings WHERE id = ?');
|
|
246
|
+
const row = stmt.get(id);
|
|
247
|
+
if (!row) {
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
return fromDatabase(row);
|
|
251
|
+
}
|
|
180
252
|
async findByRunId(agentRunId) {
|
|
181
253
|
const stmt = this.db.prepare('SELECT * FROM phase_timings WHERE agent_run_id = ? ORDER BY created_at');
|
|
182
254
|
const rows = stmt.all(agentRunId);
|
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;IA2FnD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgBtC;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAmGhD"}
|
|
@@ -73,7 +73,11 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
73
73
|
interactive_agent_max_concurrent_sessions,
|
|
74
74
|
auto_archive_delay_minutes,
|
|
75
75
|
stage_timeout_fast_implement_ms,
|
|
76
|
-
fab_position_swapped
|
|
76
|
+
fab_position_swapped,
|
|
77
|
+
skill_injection_enabled, skill_injection_skills,
|
|
78
|
+
token_opt_enabled, token_opt_output_filtering,
|
|
79
|
+
token_opt_skill_routing, token_opt_delta_context,
|
|
80
|
+
token_opt_semantic_compression, token_opt_alias_compression
|
|
77
81
|
) VALUES (
|
|
78
82
|
@id, @created_at, @updated_at,
|
|
79
83
|
@model_analyze, @model_requirements, @model_plan, @model_implement, @model_default,
|
|
@@ -105,7 +109,11 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
105
109
|
@interactive_agent_max_concurrent_sessions,
|
|
106
110
|
@auto_archive_delay_minutes,
|
|
107
111
|
@stage_timeout_fast_implement_ms,
|
|
108
|
-
@fab_position_swapped
|
|
112
|
+
@fab_position_swapped,
|
|
113
|
+
@skill_injection_enabled, @skill_injection_skills,
|
|
114
|
+
@token_opt_enabled, @token_opt_output_filtering,
|
|
115
|
+
@token_opt_skill_routing, @token_opt_delta_context,
|
|
116
|
+
@token_opt_semantic_compression, @token_opt_alias_compression
|
|
109
117
|
)
|
|
110
118
|
`);
|
|
111
119
|
// Execute with named parameters (safe from SQL injection)
|
|
@@ -211,7 +219,15 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
211
219
|
interactive_agent_max_concurrent_sessions = @interactive_agent_max_concurrent_sessions,
|
|
212
220
|
auto_archive_delay_minutes = @auto_archive_delay_minutes,
|
|
213
221
|
stage_timeout_fast_implement_ms = @stage_timeout_fast_implement_ms,
|
|
214
|
-
fab_position_swapped = @fab_position_swapped
|
|
222
|
+
fab_position_swapped = @fab_position_swapped,
|
|
223
|
+
skill_injection_enabled = @skill_injection_enabled,
|
|
224
|
+
skill_injection_skills = @skill_injection_skills,
|
|
225
|
+
token_opt_enabled = @token_opt_enabled,
|
|
226
|
+
token_opt_output_filtering = @token_opt_output_filtering,
|
|
227
|
+
token_opt_skill_routing = @token_opt_skill_routing,
|
|
228
|
+
token_opt_delta_context = @token_opt_delta_context,
|
|
229
|
+
token_opt_semantic_compression = @token_opt_semantic_compression,
|
|
230
|
+
token_opt_alias_compression = @token_opt_alias_compression
|
|
215
231
|
WHERE id = @id
|
|
216
232
|
`);
|
|
217
233
|
// Execute with named parameters (safe from SQL injection)
|
|
@@ -43,7 +43,7 @@ export declare function createAnalyzeRepositoryGraph(executor: IAgentExecutor, c
|
|
|
43
43
|
repositoryPath?: string | undefined;
|
|
44
44
|
analysisMarkdown?: string | undefined;
|
|
45
45
|
error?: string | undefined;
|
|
46
|
-
}, "
|
|
46
|
+
}, "analyze" | "__start__", {
|
|
47
47
|
repositoryPath: {
|
|
48
48
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
49
49
|
(annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
@@ -69,6 +69,7 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
69
69
|
ciFixAttempts: number;
|
|
70
70
|
ciFixHistory: import("../../../../domain/index.js").CiFixRecord[];
|
|
71
71
|
ciFixStatus: "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted";
|
|
72
|
+
specFileHashes: Record<string, string>;
|
|
72
73
|
}, {
|
|
73
74
|
featureId?: string | undefined;
|
|
74
75
|
repositoryPath?: string | undefined;
|
|
@@ -102,7 +103,8 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
102
103
|
ciFixAttempts?: number | undefined;
|
|
103
104
|
ciFixHistory?: import("../../../../domain/index.js").CiFixRecord[] | undefined;
|
|
104
105
|
ciFixStatus?: "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted" | undefined;
|
|
105
|
-
|
|
106
|
+
specFileHashes?: Record<string, string> | undefined;
|
|
107
|
+
}, "fast-implement" | "__start__", {
|
|
106
108
|
featureId: {
|
|
107
109
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
108
110
|
(annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
@@ -155,6 +157,7 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
155
157
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
156
158
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
157
159
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
160
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
158
161
|
}, {
|
|
159
162
|
featureId: {
|
|
160
163
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
@@ -208,6 +211,7 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
208
211
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
209
212
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
210
213
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
214
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
211
215
|
}, import("@langchain/langgraph").StateDefinition, {
|
|
212
216
|
"fast-implement": Partial<import("@langchain/langgraph").StateType<{
|
|
213
217
|
featureId: {
|
|
@@ -262,6 +266,7 @@ export declare function createFastFeatureAgentGraph(depsOrExecutor: FastFeatureA
|
|
|
262
266
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
263
267
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
264
268
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
269
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
265
270
|
}>>;
|
|
266
271
|
}, unknown, unknown>;
|
|
267
272
|
//# sourceMappingURL=fast-feature-agent-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fast-feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAGpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,yBAAyB,GAAG,cAAc,EAC1D,YAAY,CAAC,EAAE,mBAAmB
|
|
1
|
+
{"version":3,"file":"fast-feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAGpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAkBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,yBAAyB,GAAG,cAAc,EAC1D,YAAY,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6BnC"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
56
56
|
ciFixAttempts: number;
|
|
57
57
|
ciFixHistory: import("../../../../domain/index.js").CiFixRecord[];
|
|
58
58
|
ciFixStatus: "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted";
|
|
59
|
+
specFileHashes: Record<string, string>;
|
|
59
60
|
}, {
|
|
60
61
|
featureId?: string | undefined;
|
|
61
62
|
repositoryPath?: string | undefined;
|
|
@@ -89,7 +90,8 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
89
90
|
ciFixAttempts?: number | undefined;
|
|
90
91
|
ciFixHistory?: import("../../../../domain/index.js").CiFixRecord[] | undefined;
|
|
91
92
|
ciFixStatus?: "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted" | undefined;
|
|
92
|
-
|
|
93
|
+
specFileHashes?: Record<string, string> | undefined;
|
|
94
|
+
}, "analyze" | "requirements" | "research" | "plan" | "implement" | "__start__" | "validate_spec_analyze" | "validate_spec_requirements" | "validate_research" | "validate_plan_tasks" | "repair_spec_analyze" | "repair_spec_requirements" | "repair_research" | "repair_plan_tasks", {
|
|
93
95
|
featureId: {
|
|
94
96
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
95
97
|
(annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
@@ -142,6 +144,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
142
144
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
143
145
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
144
146
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
147
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
145
148
|
}, {
|
|
146
149
|
featureId: {
|
|
147
150
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
@@ -195,6 +198,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
195
198
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
196
199
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
197
200
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
201
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
198
202
|
}, import("@langchain/langgraph").StateDefinition, {
|
|
199
203
|
analyze: Partial<import("@langchain/langgraph").StateType<{
|
|
200
204
|
featureId: {
|
|
@@ -249,6 +253,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
249
253
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
250
254
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
251
255
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
256
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
252
257
|
}>>;
|
|
253
258
|
requirements: Partial<import("@langchain/langgraph").StateType<{
|
|
254
259
|
featureId: {
|
|
@@ -303,6 +308,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
303
308
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
304
309
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
305
310
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
311
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
306
312
|
}>>;
|
|
307
313
|
research: Partial<import("@langchain/langgraph").StateType<{
|
|
308
314
|
featureId: {
|
|
@@ -357,6 +363,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
357
363
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
358
364
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
359
365
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
366
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
360
367
|
}>>;
|
|
361
368
|
plan: Partial<import("@langchain/langgraph").StateType<{
|
|
362
369
|
featureId: {
|
|
@@ -411,6 +418,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
411
418
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
412
419
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
413
420
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
421
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
414
422
|
}>>;
|
|
415
423
|
implement: Partial<import("@langchain/langgraph").StateType<{
|
|
416
424
|
featureId: {
|
|
@@ -465,6 +473,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
465
473
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
466
474
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
467
475
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
476
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
468
477
|
}>>;
|
|
469
478
|
validate_spec_analyze: Partial<import("@langchain/langgraph").StateType<{
|
|
470
479
|
featureId: {
|
|
@@ -519,6 +528,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
519
528
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
520
529
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
521
530
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
531
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
522
532
|
}>>;
|
|
523
533
|
validate_spec_requirements: Partial<import("@langchain/langgraph").StateType<{
|
|
524
534
|
featureId: {
|
|
@@ -573,6 +583,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
573
583
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
574
584
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
575
585
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
586
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
576
587
|
}>>;
|
|
577
588
|
validate_research: Partial<import("@langchain/langgraph").StateType<{
|
|
578
589
|
featureId: {
|
|
@@ -627,6 +638,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
627
638
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
628
639
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
629
640
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
641
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
630
642
|
}>>;
|
|
631
643
|
validate_plan_tasks: Partial<import("@langchain/langgraph").StateType<{
|
|
632
644
|
featureId: {
|
|
@@ -681,6 +693,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
681
693
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
682
694
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
683
695
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
696
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
684
697
|
}>>;
|
|
685
698
|
repair_spec_analyze: Partial<import("@langchain/langgraph").StateType<{
|
|
686
699
|
featureId: {
|
|
@@ -735,6 +748,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
735
748
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
736
749
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
737
750
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
751
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
738
752
|
}>>;
|
|
739
753
|
repair_spec_requirements: Partial<import("@langchain/langgraph").StateType<{
|
|
740
754
|
featureId: {
|
|
@@ -789,6 +803,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
789
803
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
790
804
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
791
805
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
806
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
792
807
|
}>>;
|
|
793
808
|
repair_research: Partial<import("@langchain/langgraph").StateType<{
|
|
794
809
|
featureId: {
|
|
@@ -843,6 +858,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
843
858
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
844
859
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
845
860
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
861
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
846
862
|
}>>;
|
|
847
863
|
repair_plan_tasks: Partial<import("@langchain/langgraph").StateType<{
|
|
848
864
|
featureId: {
|
|
@@ -897,6 +913,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
|
|
|
897
913
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
898
914
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<import("../../../../domain/index.js").CiFixRecord[], import("../../../../domain/index.js").CiFixRecord[]>;
|
|
899
915
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
916
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
900
917
|
}>>;
|
|
901
918
|
}, unknown, unknown>;
|
|
902
919
|
//# sourceMappingURL=feature-agent-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAOpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAclF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAwID;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,qBAAqB,GAAG,cAAc,EACtD,YAAY,CAAC,EAAE,mBAAmB
|
|
1
|
+
{"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAOpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAclF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAwID;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,qBAAqB,GAAG,cAAc,EACtD,YAAY,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAgFnC"}
|
|
@@ -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;AAgB1B,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,8BAA8B,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;AAgB1B,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAc7F,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;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAkF1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoT/D"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js
CHANGED
|
@@ -21,6 +21,7 @@ import { initializeSettings } from '../../../services/settings.service.js';
|
|
|
21
21
|
import { InitializeSettingsUseCase } from '../../../../application/use-cases/settings/initialize-settings.use-case.js';
|
|
22
22
|
import { setHeartbeatContext } from './heartbeat.js';
|
|
23
23
|
import { setPhaseTimingContext, recordLifecycleEvent } from './phase-timing-context.js';
|
|
24
|
+
import { setPromptOptimizationContext } from './prompt-optimization-context.js';
|
|
24
25
|
import { setLifecycleContext } from './lifecycle-context.js';
|
|
25
26
|
import { setLogPrefix, getLogPrefix } from './log-context.js';
|
|
26
27
|
import { UpdateFeatureLifecycleUseCase } from '../../../../application/use-cases/features/update/update-feature-lifecycle.use-case.js';
|
|
@@ -229,6 +230,11 @@ export async function runWorker(args) {
|
|
|
229
230
|
// Set phase timing context so executeNode() records per-phase durations
|
|
230
231
|
const timingRepository = container.resolve('IPhaseTimingRepository');
|
|
231
232
|
setPhaseTimingContext(args.runId, timingRepository);
|
|
233
|
+
// Set prompt optimization context so executeNode() can run the
|
|
234
|
+
// token-optimization layer between buildPrompt() and executor.execute().
|
|
235
|
+
const promptOptimizer = container.resolve('IPromptOptimizerService');
|
|
236
|
+
const optimizationMetricsService = container.resolve('IOptimizationMetricsService');
|
|
237
|
+
setPromptOptimizationContext(promptOptimizer, optimizationMetricsService, args.runId, args.featureId);
|
|
232
238
|
// Capture repos for SIGTERM handler
|
|
233
239
|
runRepoForSignal = runRepository;
|
|
234
240
|
timingRepoForSignal = timingRepository;
|
|
@@ -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;AAOH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
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;AAOH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAcrD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAE7C,4DAA4D;gBAChD,IAAI;kBAGF,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;AAoBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,iBAAiB,EACxB,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,EAC3D,QAAQ,CAAC,EAAE,MAAM,GAChB,qBAAqB,CAUvB;AAeD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrD;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAElD;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,CAiB5F;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,CAoB1F;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;IACnB,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,MAAM,CAiCT;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAa3E;AAKD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,UAAU,GACd,IAAI,CA6BN;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,CAiKnE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,QAAQ,EAAE,EACpB,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GACvC,IAAI,CAaN"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js
CHANGED
|
@@ -12,6 +12,7 @@ import { interrupt, isGraphBubbleUp } from '@langchain/langgraph';
|
|
|
12
12
|
import { hasSettings, getSettings } from '../../../../services/settings.service.js';
|
|
13
13
|
import { reportNodeStart } from '../heartbeat.js';
|
|
14
14
|
import { recordPhaseStart, recordPhaseEnd, recordApprovalWaitStart, } from '../phase-timing-context.js';
|
|
15
|
+
import { optimizePromptIfEnabled, recordOptimizationMetricsIfEnabled, } from '../prompt-optimization-context.js';
|
|
15
16
|
import { updateNodeLifecycle } from '../lifecycle-context.js';
|
|
16
17
|
import { getLogPrefix, setCurrentPhase } from '../log-context.js';
|
|
17
18
|
/**
|
|
@@ -491,7 +492,18 @@ export function executeNode(nodeName, executor, buildPrompt) {
|
|
|
491
492
|
}
|
|
492
493
|
const startTime = Date.now();
|
|
493
494
|
const resumePrefix = buildResumeContext(state.resumeReason);
|
|
494
|
-
const
|
|
495
|
+
const rawPrompt = resumePrefix + buildPrompt(state, log);
|
|
496
|
+
// Token optimization layer — single interceptor between prompt build
|
|
497
|
+
// and executor invocation. Falls back to the raw prompt on any error
|
|
498
|
+
// so optimization failures can never break a phase.
|
|
499
|
+
const optimization = await optimizePromptIfEnabled(rawPrompt, nodeName, state.model, state.specFileHashes);
|
|
500
|
+
const prompt = optimization.prompt;
|
|
501
|
+
if (optimization.metrics) {
|
|
502
|
+
log.info(`Prompt optimized: ${optimization.metrics.originalTokenEstimate} → ` +
|
|
503
|
+
`${optimization.metrics.optimizedTokenEstimate} tokens ` +
|
|
504
|
+
`(${optimization.metrics.savingsPercent.toFixed(1)}% saved, ` +
|
|
505
|
+
`capabilities=${optimization.metrics.capabilitiesApplied.join(',') || 'none'})`);
|
|
506
|
+
}
|
|
495
507
|
const options = buildExecutorOptions(state, undefined, nodeName);
|
|
496
508
|
// Record phase start with pre-execution metadata
|
|
497
509
|
const timingId = await recordPhaseStart(nodeName, {
|
|
@@ -517,6 +529,9 @@ export function executeNode(nodeName, executor, buildPrompt) {
|
|
|
517
529
|
durationApiMs: result.usage?.durationApiMs,
|
|
518
530
|
exitCode: 'success',
|
|
519
531
|
});
|
|
532
|
+
// Persist optimization metrics on the same phase timing row.
|
|
533
|
+
// No-op when optimization is disabled or context is not set.
|
|
534
|
+
await recordOptimizationMetricsIfEnabled(timingId, optimization.metrics);
|
|
520
535
|
// Safety net: undo spec commits if commitSpecs=false
|
|
521
536
|
removeSpecCommitsIfNeeded(state, nodeName, log);
|
|
522
537
|
// Mark phase complete BEFORE interrupting so that on resume the
|
|
@@ -528,6 +543,7 @@ export function executeNode(nodeName, executor, buildPrompt) {
|
|
|
528
543
|
_approvalAction: null,
|
|
529
544
|
_rejectionFeedback: null,
|
|
530
545
|
_needsReexecution: false,
|
|
546
|
+
specFileHashes: optimization.specFileHashes,
|
|
531
547
|
};
|
|
532
548
|
// Human-in-the-loop: interrupt after node execution for review.
|
|
533
549
|
// This is the ONLY interrupt() call in the entire execution path.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Optimization Context
|
|
3
|
+
*
|
|
4
|
+
* Module-level singleton that exposes the token-optimization layer to
|
|
5
|
+
* executeNode() in node-helpers.ts without changing its public API.
|
|
6
|
+
*
|
|
7
|
+
* The worker calls setPromptOptimizationContext() once after DI init.
|
|
8
|
+
* Node helpers call optimizePromptIfEnabled() before invoking the agent
|
|
9
|
+
* executor and recordOptimizationMetricsIfEnabled() after the phase
|
|
10
|
+
* timing record is updated.
|
|
11
|
+
*
|
|
12
|
+
* Errors are swallowed so optimization failures never block graph execution.
|
|
13
|
+
*/
|
|
14
|
+
import type { IPromptOptimizerService } from '../../../../application/ports/output/services/prompt-optimizer.interface.js';
|
|
15
|
+
import type { IOptimizationMetricsService } from '../../../../application/ports/output/services/optimization-metrics.interface.js';
|
|
16
|
+
import type { OptimizationMetrics } from '../../../../application/ports/output/services/prompt-optimizer.interface.js';
|
|
17
|
+
/**
|
|
18
|
+
* Set the prompt-optimization context. Called once by the worker after DI init.
|
|
19
|
+
*/
|
|
20
|
+
export declare function setPromptOptimizationContext(optimizer: IPromptOptimizerService, metricsService: IOptimizationMetricsService, runId: string, featureId: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Clear the prompt-optimization context. Useful for testing.
|
|
23
|
+
*/
|
|
24
|
+
export declare function clearPromptOptimizationContext(): void;
|
|
25
|
+
/** Result of an optimization attempt — exposes the prompt to send and metrics to record. */
|
|
26
|
+
export interface OptimizePromptResult {
|
|
27
|
+
prompt: string;
|
|
28
|
+
metrics: OptimizationMetrics | null;
|
|
29
|
+
specFileHashes: Record<string, string>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Optimize the given prompt if the optimizer context is set and the
|
|
33
|
+
* master toggle is enabled. Falls back to a passthrough result on any
|
|
34
|
+
* error so node execution is never blocked by optimization failures.
|
|
35
|
+
*/
|
|
36
|
+
export declare function optimizePromptIfEnabled(prompt: string, phaseName: string, modelId: string | undefined, previousSpecFileHashes: Record<string, string> | undefined): Promise<OptimizePromptResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Persist optimization metrics on the given phase timing row.
|
|
39
|
+
* No-op if context is not set, timingId is null, or metrics are null.
|
|
40
|
+
*/
|
|
41
|
+
export declare function recordOptimizationMetricsIfEnabled(timingId: string | null, metrics: OptimizationMetrics | null): Promise<void>;
|
|
42
|
+
//# sourceMappingURL=prompt-optimization-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-optimization-context.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/prompt-optimization-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mEAAmE,CAAC;AACjH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uEAAuE,CAAC;AACzH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mEAAmE,CAAC;AAS7G;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,uBAAuB,EAClC,cAAc,EAAE,2BAA2B,EAC3C,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAKrD;AAED,4FAA4F;AAC5F,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAWD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GACzD,OAAO,CAAC,oBAAoB,CAAC,CA4B/B;AAED;;;GAGG;AACH,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Optimization Context
|
|
3
|
+
*
|
|
4
|
+
* Module-level singleton that exposes the token-optimization layer to
|
|
5
|
+
* executeNode() in node-helpers.ts without changing its public API.
|
|
6
|
+
*
|
|
7
|
+
* The worker calls setPromptOptimizationContext() once after DI init.
|
|
8
|
+
* Node helpers call optimizePromptIfEnabled() before invoking the agent
|
|
9
|
+
* executor and recordOptimizationMetricsIfEnabled() after the phase
|
|
10
|
+
* timing record is updated.
|
|
11
|
+
*
|
|
12
|
+
* Errors are swallowed so optimization failures never block graph execution.
|
|
13
|
+
*/
|
|
14
|
+
import { hasSettings, getSettings } from '../../../services/settings.service.js';
|
|
15
|
+
let contextOptimizer;
|
|
16
|
+
let contextMetricsService;
|
|
17
|
+
let contextRunId;
|
|
18
|
+
let contextFeatureId;
|
|
19
|
+
/**
|
|
20
|
+
* Set the prompt-optimization context. Called once by the worker after DI init.
|
|
21
|
+
*/
|
|
22
|
+
export function setPromptOptimizationContext(optimizer, metricsService, runId, featureId) {
|
|
23
|
+
contextOptimizer = optimizer;
|
|
24
|
+
contextMetricsService = metricsService;
|
|
25
|
+
contextRunId = runId;
|
|
26
|
+
contextFeatureId = featureId;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Clear the prompt-optimization context. Useful for testing.
|
|
30
|
+
*/
|
|
31
|
+
export function clearPromptOptimizationContext() {
|
|
32
|
+
contextOptimizer = undefined;
|
|
33
|
+
contextMetricsService = undefined;
|
|
34
|
+
contextRunId = undefined;
|
|
35
|
+
contextFeatureId = undefined;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the effective TokenOptimizationConfig from settings. Returns
|
|
39
|
+
* undefined if settings are not initialized.
|
|
40
|
+
*/
|
|
41
|
+
function resolveConfig() {
|
|
42
|
+
if (!hasSettings())
|
|
43
|
+
return undefined;
|
|
44
|
+
return getSettings().workflow?.tokenOptimization;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Optimize the given prompt if the optimizer context is set and the
|
|
48
|
+
* master toggle is enabled. Falls back to a passthrough result on any
|
|
49
|
+
* error so node execution is never blocked by optimization failures.
|
|
50
|
+
*/
|
|
51
|
+
export async function optimizePromptIfEnabled(prompt, phaseName, modelId, previousSpecFileHashes) {
|
|
52
|
+
if (!contextOptimizer || !contextRunId || !contextFeatureId) {
|
|
53
|
+
return { prompt, metrics: null, specFileHashes: previousSpecFileHashes ?? {} };
|
|
54
|
+
}
|
|
55
|
+
const config = resolveConfig();
|
|
56
|
+
if (!config?.enabled) {
|
|
57
|
+
return { prompt, metrics: null, specFileHashes: previousSpecFileHashes ?? {} };
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
const result = await contextOptimizer.optimize(prompt, {
|
|
61
|
+
phaseName,
|
|
62
|
+
modelId,
|
|
63
|
+
featureId: contextFeatureId,
|
|
64
|
+
agentRunId: contextRunId,
|
|
65
|
+
previousSpecFileHashes,
|
|
66
|
+
config,
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
prompt: result.prompt,
|
|
70
|
+
metrics: result.metrics,
|
|
71
|
+
specFileHashes: result.specFileHashes,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Swallow — optimization failure must never block phase execution
|
|
76
|
+
return { prompt, metrics: null, specFileHashes: previousSpecFileHashes ?? {} };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Persist optimization metrics on the given phase timing row.
|
|
81
|
+
* No-op if context is not set, timingId is null, or metrics are null.
|
|
82
|
+
*/
|
|
83
|
+
export async function recordOptimizationMetricsIfEnabled(timingId, metrics) {
|
|
84
|
+
if (!contextMetricsService || !timingId || !metrics)
|
|
85
|
+
return;
|
|
86
|
+
try {
|
|
87
|
+
await contextMetricsService.record(timingId, metrics);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Swallow — metrics persistence failure is non-fatal
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -59,6 +59,7 @@ export declare const FeatureAgentAnnotation: import("@langchain/langgraph").Anno
|
|
|
59
59
|
ciFixAttempts: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
60
60
|
ciFixHistory: import("@langchain/langgraph").BinaryOperatorAggregate<CiFixRecord[], CiFixRecord[]>;
|
|
61
61
|
ciFixStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted", "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted">;
|
|
62
|
+
specFileHashes: import("@langchain/langgraph").BinaryOperatorAggregate<Record<string, string>, Record<string, string>>;
|
|
62
63
|
}>;
|
|
63
64
|
export type FeatureAgentState = typeof FeatureAgentAnnotation.State;
|
|
64
65
|
//# sourceMappingURL=state.d.ts.map
|