@shepai/cli 1.166.1 → 1.167.0-pr478.acc6626
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/index.d.ts +1 -0
- package/dist/packages/core/src/application/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/index.js +1 -0
- package/dist/packages/core/src/application/ports/output/agents/agent-run-repository.interface.d.ts +12 -0
- package/dist/packages/core/src/application/ports/output/agents/agent-run-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts +38 -2
- package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +16 -1
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/update-feature-pinned-config.use-case.d.ts +24 -0
- package/dist/packages/core/src/application/use-cases/features/update-feature-pinned-config.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/features/update-feature-pinned-config.use-case.js +107 -0
- package/dist/packages/core/src/application/use-cases/interactive/index.d.ts +2 -0
- package/dist/packages/core/src/application/use-cases/interactive/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/interactive/index.js +1 -0
- package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.d.ts +17 -0
- package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.js +34 -0
- package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js +6 -2
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +10 -0
- package/dist/packages/core/src/infrastructure/repositories/agent-run.repository.d.ts +2 -1
- package/dist/packages/core/src/infrastructure/repositories/agent-run.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/agent-run.repository.js +15 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts +3 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +59 -6
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +7 -0
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +101 -1
- package/dist/packages/core/src/infrastructure/services/web-server.service.d.ts +3 -0
- package/dist/packages/core/src/infrastructure/services/web-server.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/web-server.service.js +10 -0
- package/dist/src/presentation/web/app/actions/update-feature-pinned-config.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/update-feature-pinned-config.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/update-feature-pinned-config.js +29 -0
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.d.ts +19 -0
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.js +33 -0
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +7 -0
- package/dist/src/presentation/web/app/layout.d.ts +0 -1
- package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
- package/dist/src/presentation/web/app/layout.js +0 -1
- package/dist/src/presentation/web/components/assistant-ui/thread.d.ts +3 -2
- package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -1
- package/dist/src/presentation/web/components/assistant-ui/thread.js +26 -3
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +100 -9
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +4 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +3 -3
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts +3 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +21 -10
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +4 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +33 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/pinned-config-utils.d.ts +18 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/pinned-config-utils.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/pinned-config-utils.js +17 -0
- package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.js +68 -56
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts +1 -0
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.js +7 -1
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.js +3 -0
- package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.js +3 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatTab.js +3 -2
- package/dist/src/presentation/web/components/features/chat/InteractionBubble.d.ts +33 -0
- package/dist/src/presentation/web/components/features/chat/InteractionBubble.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/InteractionBubble.js +155 -0
- package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.d.ts +22 -0
- package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.js +107 -0
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +16 -0
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +62 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +18 -3
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +1 -0
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +2 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +27 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts +10 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +33 -25
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +16 -0
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +1 -1
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-turn-statuses.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -0
- package/web/.next/build-manifest.json +7 -7
- 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/routes-manifest.json +8 -0
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +1 -8
- 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 +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +89 -74
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
- 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/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +89 -74
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
- 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/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/create/page.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +89 -74
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
- 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/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +89 -74
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
- 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/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js +1 -1
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +5 -5
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
- package/web/.next/server/app/_global-error/page.js +1 -1
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error/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 +7 -7
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
- package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js +7 -0
- package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js.map +5 -0
- package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js.nft.json +1 -0
- package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/settings/page/build-manifest.json +5 -5
- package/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/settings/page.js +1 -1
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/build-manifest.json +5 -5
- package/web/.next/server/app/skills/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/skills/page.js +1 -1
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/build-manifest.json +5 -5
- package/web/.next/server/app/tools/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js +1 -1
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/build-manifest.json +5 -5
- package/web/.next/server/app/version/page/react-loadable-manifest.json +1 -8
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +1 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_respond_route_actions_990d51bd.js +3 -0
- package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_respond_route_actions_990d51bd.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +9 -3
- package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.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/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
- 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]__1abe77bb._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.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]__4fb81977._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +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/[root-of-the-server]__ba7f5873._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d5e22d1a._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js.map → [root-of-the-server]__d5e22d1a._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f2acfd0e._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f2acfd0e._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f5614810._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js.map → [root-of-the-server]__f5614810._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.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/_0727935d._.js +1 -1
- package/web/.next/server/chunks/ssr/_0727935d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0d2aa969._.js +3 -0
- package/web/.next/server/chunks/ssr/_0d2aa969._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0edaf547._.js +3 -0
- package/web/.next/server/chunks/ssr/_0edaf547._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_a65c54ca._.js → _10216838._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_a65c54ca._.js.map → _10216838._.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/_18886033._.js +1 -1
- package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1e08a336._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js +3 -0
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -0
- 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/{_506a3bc3._.js → _682fc996._.js} +2 -2
- package/web/.next/server/chunks/ssr/_682fc996._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_a1068852._.js +3 -0
- package/web/.next/server/chunks/ssr/_a1068852._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
- package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_05dae8d0._.js → _f25dbb08._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_05dae8d0._.js.map → _f25dbb08._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
- package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js.map +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/node_modules__pnpm_12a7ede0._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_12a7ede0._.js.map +1 -0
- 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_ui_select_tsx_45d6b8ae._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_45d6b8ae._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +5 -5
- 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 +231 -195
- package/web/.next/static/chunks/{43eca8783fbc9558.js → 0286f25e23d42f0c.js} +1 -1
- package/web/.next/static/chunks/{345246551a96bdb2.js → 03900be2b55b7375.js} +1 -1
- package/web/.next/static/chunks/{fe70e73feb07bcfd.js → 08ec4c9ab61717aa.js} +1 -1
- package/web/.next/static/chunks/{dedf6ca63c5468fa.js → 09edd35d194bec06.js} +3 -3
- package/web/.next/static/chunks/{d4d8f0a137bd2eb4.js → 12803afee7d0afc8.js} +2 -2
- package/web/.next/static/chunks/{1cd31898fb6e763a.js → 186ae7bb70982cc7.js} +1 -1
- package/web/.next/static/chunks/197ab40a6e4be037.js +7 -0
- package/web/.next/static/chunks/1fe75f9dd488d557.css +1 -0
- package/web/.next/static/chunks/4b6b80d73048899b.js +3 -0
- package/web/.next/static/chunks/5e044b1f966ab2f5.js +1 -0
- package/web/.next/static/chunks/{18e8b12721a9316e.js → 7ab475ef5d67af41.js} +1 -1
- package/web/.next/static/chunks/84a181ff3270fd9f.js +1 -0
- package/web/.next/static/chunks/87a50da22a604a84.js +1 -0
- package/web/.next/static/chunks/{ee270565c4bdb7e1.js → 9375a48c30b82a74.js} +2 -2
- package/web/.next/static/chunks/9531dfbcff94c28b.js +1 -0
- package/web/.next/static/chunks/{44275180f9c50dbb.js → a36af696cef18a2a.js} +1 -1
- package/web/.next/static/chunks/a7d8ed763d7bbe63.js +5 -0
- package/web/.next/static/chunks/aea0279ddefd5f75.js +1 -0
- package/web/.next/static/chunks/{c60d6c2b2f7b0593.js → bf4eca879dc0c77a.js} +1 -1
- package/web/.next/static/chunks/ed3a602003bcb31b.js +1 -0
- package/web/.next/static/chunks/fa024fa35b1b47ff.js +1 -0
- package/web/.next/static/chunks/{turbopack-432ef324fc27240c.js → turbopack-8a46f5841d1dbe2e.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__d1040bd1._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__efeeaed4._.js +0 -3
- package/web/.next/server/chunks/ssr/_0a90d28b._.js +0 -3
- package/web/.next/server/chunks/ssr/_0a90d28b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_3bcda5d7._.js +0 -3
- package/web/.next/server/chunks/ssr/_3bcda5d7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_4d49a312._.js +0 -3
- package/web/.next/server/chunks/ssr/_4d49a312._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_506a3bc3._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_9215e9ec._.js +0 -3
- package/web/.next/server/chunks/ssr/_9215e9ec._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +0 -1
- package/web/.next/static/chunks/0b732842dcca8b8d.js +0 -3
- package/web/.next/static/chunks/1e6609edc3367244.css +0 -1
- package/web/.next/static/chunks/3deefc76ea55047c.js +0 -1
- package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +0 -1
- package/web/.next/static/chunks/5fde2118133bc2bb.js +0 -1
- package/web/.next/static/chunks/65440524d7ee7d13.js +0 -1
- package/web/.next/static/chunks/6d7b999c99d6d175.js +0 -9
- package/web/.next/static/chunks/8180973e9cd6a99e.css +0 -1
- package/web/.next/static/chunks/8c96c49aad817377.js +0 -1
- package/web/.next/static/chunks/9dbfc283af013ec1.js +0 -7
- package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
- package/web/.next/static/chunks/d5dcf6575f5f9dd8.js +0 -5
- package/web/.next/static/chunks/dd52a7ae78af4f7f.js +0 -1
- /package/web/.next/static/{RH3NxvKaE9Efp8ZrIyCm5 → jJMYzVAvBKZm_zDnl0h7J}/_buildManifest.js +0 -0
- /package/web/.next/static/{RH3NxvKaE9Efp8ZrIyCm5 → jJMYzVAvBKZm_zDnl0h7J}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{RH3NxvKaE9Efp8ZrIyCm5 → jJMYzVAvBKZm_zDnl0h7J}/_ssgManifest.js +0 -0
|
@@ -13,6 +13,7 @@ export { ShowFeatureUseCase } from './use-cases/features/show-feature.use-case.j
|
|
|
13
13
|
export { CreateFeatureUseCase } from './use-cases/features/create/create-feature.use-case.js';
|
|
14
14
|
export { DeleteFeatureUseCase } from './use-cases/features/delete-feature.use-case.js';
|
|
15
15
|
export { ResumeFeatureUseCase } from './use-cases/features/resume-feature.use-case.js';
|
|
16
|
+
export { UpdateFeaturePinnedConfigUseCase } from './use-cases/features/update-feature-pinned-config.use-case.js';
|
|
16
17
|
export { RunAgentUseCase } from './use-cases/agents/run-agent.use-case.js';
|
|
17
18
|
export { StopAgentRunUseCase } from './use-cases/agents/stop-agent-run.use-case.js';
|
|
18
19
|
export { ApproveAgentRunUseCase } from './use-cases/agents/approve-agent-run.use-case.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/application/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/src/application/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAGzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,gCAAgC,EAAE,MAAM,+DAA+D,CAAC;AAGjH,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC"}
|
|
@@ -14,6 +14,7 @@ export { ShowFeatureUseCase } from './use-cases/features/show-feature.use-case.j
|
|
|
14
14
|
export { CreateFeatureUseCase } from './use-cases/features/create/create-feature.use-case.js';
|
|
15
15
|
export { DeleteFeatureUseCase } from './use-cases/features/delete-feature.use-case.js';
|
|
16
16
|
export { ResumeFeatureUseCase } from './use-cases/features/resume-feature.use-case.js';
|
|
17
|
+
export { UpdateFeaturePinnedConfigUseCase } from './use-cases/features/update-feature-pinned-config.use-case.js';
|
|
17
18
|
// Agent use cases
|
|
18
19
|
export { RunAgentUseCase } from './use-cases/agents/run-agent.use-case.js';
|
|
19
20
|
export { StopAgentRunUseCase } from './use-cases/agents/stop-agent-run.use-case.js';
|
package/dist/packages/core/src/application/ports/output/agents/agent-run-repository.interface.d.ts
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
* - Infrastructure layer provides concrete implementations
|
|
10
10
|
*/
|
|
11
11
|
import type { AgentRun, AgentRunStatus } from '../../../../domain/generated/output.js';
|
|
12
|
+
export interface AgentRunPinnedConfigUpdate {
|
|
13
|
+
agentType: AgentRun['agentType'];
|
|
14
|
+
modelId?: AgentRun['modelId'];
|
|
15
|
+
updatedAt: AgentRun['updatedAt'];
|
|
16
|
+
}
|
|
12
17
|
/**
|
|
13
18
|
* Repository interface for AgentRun entity persistence.
|
|
14
19
|
*
|
|
@@ -46,6 +51,13 @@ export interface IAgentRunRepository {
|
|
|
46
51
|
* @param updates - Optional additional fields to update
|
|
47
52
|
*/
|
|
48
53
|
updateStatus(id: string, status: AgentRunStatus, updates?: Partial<AgentRun>): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Update the pinned executor config for an existing run.
|
|
56
|
+
*
|
|
57
|
+
* @param id - The agent run ID
|
|
58
|
+
* @param updates - The pinned config fields to persist
|
|
59
|
+
*/
|
|
60
|
+
updatePinnedConfig(id: string, updates: AgentRunPinnedConfigUpdate): Promise<void>;
|
|
49
61
|
/**
|
|
50
62
|
* Find all running agent runs for a given process ID.
|
|
51
63
|
* Used for crash recovery to detect orphaned processes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-run-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/agent-run-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAEvF;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAE/C;;;;;OAKG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7F;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnD;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC"}
|
|
1
|
+
{"version":3,"file":"agent-run-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/agent-run-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAEvF,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9B,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAE/C;;;;;OAKG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7F;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnD;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC"}
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* - Infrastructure layer provides concrete implementations
|
|
11
11
|
* - No SDK types leak through this boundary
|
|
12
12
|
*/
|
|
13
|
+
/**
|
|
14
|
+
* Callback invoked when the agent calls AskUserQuestion.
|
|
15
|
+
* The SDK stream is PAUSED until this resolves — the agent waits for the user's answers.
|
|
16
|
+
*/
|
|
17
|
+
export type OnUserQuestionCallback = (interaction: UserInteractionData) => Promise<Record<string, string>>;
|
|
13
18
|
/** Options for creating/resuming an interactive agent session. */
|
|
14
19
|
export interface InteractiveAgentOptions {
|
|
15
20
|
/** Absolute worktree path (CWD for agent) */
|
|
@@ -18,10 +23,32 @@ export interface InteractiveAgentOptions {
|
|
|
18
23
|
model?: string;
|
|
19
24
|
/** Feature context string to append to system prompt */
|
|
20
25
|
systemPrompt?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Called when agent uses AskUserQuestion. Must return user's answers keyed by question text.
|
|
28
|
+
* The SDK stream pauses until this resolves — the agent cannot continue without answers.
|
|
29
|
+
*/
|
|
30
|
+
onUserQuestion?: OnUserQuestionCallback;
|
|
31
|
+
}
|
|
32
|
+
/** A single question within an AskUserQuestion tool call. */
|
|
33
|
+
export interface UserQuestionOption {
|
|
34
|
+
label: string;
|
|
35
|
+
description: string;
|
|
36
|
+
preview?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface UserQuestion {
|
|
39
|
+
question: string;
|
|
40
|
+
header: string;
|
|
41
|
+
options: UserQuestionOption[];
|
|
42
|
+
multiSelect: boolean;
|
|
43
|
+
}
|
|
44
|
+
/** Data for a pending user interaction (AskUserQuestion). */
|
|
45
|
+
export interface UserInteractionData {
|
|
46
|
+
toolCallId: string;
|
|
47
|
+
questions: UserQuestion[];
|
|
21
48
|
}
|
|
22
49
|
/** Event emitted by an interactive agent session stream. */
|
|
23
50
|
export interface InteractiveAgentEvent {
|
|
24
|
-
type: 'delta' | 'tool_use' | 'tool_result' | 'status' | 'done' | 'error' | 'init' | 'api_retry' | 'rate_limit' | 'task_started' | 'task_progress' | 'task_done';
|
|
51
|
+
type: 'delta' | 'tool_use' | 'tool_result' | 'status' | 'done' | 'error' | 'init' | 'api_retry' | 'rate_limit' | 'task_started' | 'task_progress' | 'task_done' | 'user_question';
|
|
25
52
|
content?: string;
|
|
26
53
|
label?: string;
|
|
27
54
|
detail?: string;
|
|
@@ -33,13 +60,22 @@ export interface InteractiveAgentEvent {
|
|
|
33
60
|
numTurns?: number;
|
|
34
61
|
durationMs?: number;
|
|
35
62
|
};
|
|
63
|
+
/** Interaction data (attached to 'user_question' events) */
|
|
64
|
+
interaction?: UserInteractionData;
|
|
65
|
+
}
|
|
66
|
+
/** Structured tool result message sent back to the agent. */
|
|
67
|
+
export interface ToolResultMessage {
|
|
68
|
+
toolCallId: string;
|
|
69
|
+
result: unknown;
|
|
36
70
|
}
|
|
37
71
|
/** Handle to a live interactive agent session. */
|
|
38
72
|
export interface InteractiveAgentSessionHandle {
|
|
39
73
|
/** The agent's session ID (used for resumption) */
|
|
40
74
|
readonly sessionId: string;
|
|
41
|
-
/** Send a user message to the agent */
|
|
75
|
+
/** Send a user text message to the agent */
|
|
42
76
|
send(message: string): Promise<void>;
|
|
77
|
+
/** Send a tool result back to the agent (e.g. AskUserQuestion response) */
|
|
78
|
+
sendToolResult(toolResult: ToolResultMessage): Promise<void>;
|
|
43
79
|
/** Iterate response events from the agent */
|
|
44
80
|
stream(): AsyncIterable<InteractiveAgentEvent>;
|
|
45
81
|
/** Terminate the session gracefully */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-agent-executor.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,kEAAkE;AAClE,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-agent-executor.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,WAAW,EAAE,mBAAmB,KAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAErC,kEAAkE;AAClE,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EACA,OAAO,GACP,UAAU,GACV,aAAa,GACb,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,WAAW,GACX,YAAY,GACZ,cAAc,GACd,eAAe,GACf,WAAW,GACX,eAAe,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,4DAA4D;IAC5D,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2EAA2E;IAC3E,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,6CAA6C;IAC7C,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC/C,uCAAuC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,wEAAwE;IACxE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,yDAAyD;AACzD,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACxF,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC3C"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - Infrastructure layer provides the concrete implementation (singleton)
|
|
11
11
|
*/
|
|
12
12
|
import type { InteractiveSession, InteractiveMessage } from '../../../../domain/generated/output.js';
|
|
13
|
+
import type { UserInteractionData } from '../agents/interactive-agent-executor.interface.js';
|
|
13
14
|
/**
|
|
14
15
|
* A single streaming chunk forwarded from agent stdout to an SSE consumer.
|
|
15
16
|
*/
|
|
@@ -22,6 +23,8 @@ export interface StreamChunk {
|
|
|
22
23
|
log?: string;
|
|
23
24
|
/** Structured activity event for rich rendering in the thread */
|
|
24
25
|
activity?: StreamActivity;
|
|
26
|
+
/** Pending user interaction (AskUserQuestion) — agent is waiting for user response */
|
|
27
|
+
interaction?: UserInteractionData;
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
30
|
* A structured activity event emitted during agent execution.
|
|
@@ -50,8 +53,10 @@ export interface ChatState {
|
|
|
50
53
|
streamingText: string | null;
|
|
51
54
|
/** Session info for the toolbar (null if no active session) */
|
|
52
55
|
sessionInfo: SessionInfo | null;
|
|
53
|
-
/** Turn activity status: 'idle' | 'processing' | 'unread' (for dot indicators) */
|
|
56
|
+
/** Turn activity status: 'idle' | 'processing' | 'unread' | 'awaiting_input' (for dot indicators) */
|
|
54
57
|
turnStatus: string;
|
|
58
|
+
/** Pending user interaction — agent is waiting for user response (null when no interaction pending) */
|
|
59
|
+
pendingInteraction: UserInteractionData | null;
|
|
55
60
|
}
|
|
56
61
|
/** Live session metadata for the frontend toolbar. */
|
|
57
62
|
export interface SessionInfo {
|
|
@@ -189,5 +194,15 @@ export interface IInteractiveSessionService {
|
|
|
189
194
|
* active session's status ('processing' | 'unread').
|
|
190
195
|
*/
|
|
191
196
|
getAllActiveTurnStatuses(): Promise<Map<string, string>>;
|
|
197
|
+
/**
|
|
198
|
+
* Respond to a pending user interaction (AskUserQuestion).
|
|
199
|
+
* Sends the user's answers back to the agent as a tool result,
|
|
200
|
+
* clears the pending interaction, and resumes the agent's turn.
|
|
201
|
+
*
|
|
202
|
+
* @param featureId - The feature scope key
|
|
203
|
+
* @param answers - Map of question text → selected answer(s)
|
|
204
|
+
* @param annotations - Optional per-question annotations (notes, preview)
|
|
205
|
+
*/
|
|
206
|
+
respondToInteraction(featureId: string, answers: Record<string, string>): Promise<void>;
|
|
192
207
|
}
|
|
193
208
|
//# sourceMappingURL=interactive-session-service.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-session-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/interactive-session-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-session-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/interactive-session-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,sFAAsF;IACtF,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;IACzD,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,qGAAqG;IACrG,UAAU,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,kBAAkB,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAChD;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;;OAUG;IACH,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE7E;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE9E;;;;OAIG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAElE;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;OAQG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,aAAa,CAAC;IAInF;;;;;;;;OAQG;IACH,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpD;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,aAAa,CAAC;IAE5F;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpE;;;OAGG;IACH,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
|
|
2
|
+
import type { IAgentRunRepository } from '../../ports/output/agents/agent-run-repository.interface.js';
|
|
3
|
+
import type { IAgentExecutorFactory } from '../../ports/output/agents/agent-executor-factory.interface.js';
|
|
4
|
+
import { type AgentType } from '../../../domain/generated/output.js';
|
|
5
|
+
export interface UpdateFeaturePinnedConfigInput {
|
|
6
|
+
featureId: string;
|
|
7
|
+
agentType: string;
|
|
8
|
+
modelId?: string | null;
|
|
9
|
+
}
|
|
10
|
+
export interface UpdateFeaturePinnedConfigResult {
|
|
11
|
+
featureId: string;
|
|
12
|
+
agentRunId: string;
|
|
13
|
+
agentType: AgentType;
|
|
14
|
+
modelId: string;
|
|
15
|
+
updatedAt: Date;
|
|
16
|
+
}
|
|
17
|
+
export declare class UpdateFeaturePinnedConfigUseCase {
|
|
18
|
+
private readonly featureRepository;
|
|
19
|
+
private readonly agentRunRepository;
|
|
20
|
+
private readonly agentExecutorFactory;
|
|
21
|
+
constructor(featureRepository: IFeatureRepository, agentRunRepository: IAgentRunRepository, agentExecutorFactory: IAgentExecutorFactory);
|
|
22
|
+
execute(input: UpdateFeaturePinnedConfigInput): Promise<UpdateFeaturePinnedConfigResult>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=update-feature-pinned-config.use-case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-feature-pinned-config.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/features/update-feature-pinned-config.use-case.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AAC3G,OAAO,EAIL,KAAK,SAAS,EAEf,MAAM,qCAAqC,CAAC;AAgB7C,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AA8BD,qBACa,gCAAgC;IAGzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAJpB,iBAAiB,EAAE,kBAAkB,EAErC,kBAAkB,EAAE,mBAAmB,EAEvC,oBAAoB,EAAE,qBAAqB;IAGxD,OAAO,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC;CAkD/F"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'tsyringe';
|
|
14
|
+
import { AgentRunStatus, SdlcLifecycle, } from '../../../domain/generated/output.js';
|
|
15
|
+
const ELIGIBLE_RESUME_STATUSES = new Set([
|
|
16
|
+
AgentRunStatus.waitingApproval,
|
|
17
|
+
AgentRunStatus.failed,
|
|
18
|
+
AgentRunStatus.interrupted,
|
|
19
|
+
]);
|
|
20
|
+
const INELIGIBLE_LIFECYCLES = new Set([
|
|
21
|
+
SdlcLifecycle.Archived,
|
|
22
|
+
SdlcLifecycle.AwaitingUpstream,
|
|
23
|
+
SdlcLifecycle.Blocked,
|
|
24
|
+
SdlcLifecycle.Deleting,
|
|
25
|
+
SdlcLifecycle.Maintain,
|
|
26
|
+
]);
|
|
27
|
+
function normalizeRequiredString(value, fieldName) {
|
|
28
|
+
const trimmed = value.trim();
|
|
29
|
+
if (!trimmed) {
|
|
30
|
+
throw new Error(`${fieldName} is required`);
|
|
31
|
+
}
|
|
32
|
+
return trimmed;
|
|
33
|
+
}
|
|
34
|
+
function normalizeRequiredModelId(value) {
|
|
35
|
+
const trimmed = value?.trim();
|
|
36
|
+
if (!trimmed) {
|
|
37
|
+
throw new Error('modelId is required');
|
|
38
|
+
}
|
|
39
|
+
return trimmed;
|
|
40
|
+
}
|
|
41
|
+
function canUpdatePinnedConfig(feature, run) {
|
|
42
|
+
if (feature.lifecycle === SdlcLifecycle.Pending) {
|
|
43
|
+
return run.status === AgentRunStatus.pending;
|
|
44
|
+
}
|
|
45
|
+
if (INELIGIBLE_LIFECYCLES.has(feature.lifecycle)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return ELIGIBLE_RESUME_STATUSES.has(run.status);
|
|
49
|
+
}
|
|
50
|
+
let UpdateFeaturePinnedConfigUseCase = class UpdateFeaturePinnedConfigUseCase {
|
|
51
|
+
featureRepository;
|
|
52
|
+
agentRunRepository;
|
|
53
|
+
agentExecutorFactory;
|
|
54
|
+
constructor(featureRepository, agentRunRepository, agentExecutorFactory) {
|
|
55
|
+
this.featureRepository = featureRepository;
|
|
56
|
+
this.agentRunRepository = agentRunRepository;
|
|
57
|
+
this.agentExecutorFactory = agentExecutorFactory;
|
|
58
|
+
}
|
|
59
|
+
async execute(input) {
|
|
60
|
+
const featureId = normalizeRequiredString(input.featureId, 'featureId');
|
|
61
|
+
const agentType = normalizeRequiredString(input.agentType, 'agentType');
|
|
62
|
+
const modelId = normalizeRequiredModelId(input.modelId);
|
|
63
|
+
const feature = await this.featureRepository.findById(featureId);
|
|
64
|
+
if (!feature) {
|
|
65
|
+
throw new Error(`Feature not found: ${featureId}`);
|
|
66
|
+
}
|
|
67
|
+
if (!feature.agentRunId) {
|
|
68
|
+
throw new Error(`Feature "${feature.name}" has no current agent run`);
|
|
69
|
+
}
|
|
70
|
+
const run = await this.agentRunRepository.findById(feature.agentRunId);
|
|
71
|
+
if (!run) {
|
|
72
|
+
throw new Error(`Current agent run not found for feature "${feature.name}"`);
|
|
73
|
+
}
|
|
74
|
+
if (!canUpdatePinnedConfig(feature, run)) {
|
|
75
|
+
throw new Error(`Feature "${feature.name}" cannot change pinned agent/model while lifecycle is "${feature.lifecycle}" and run status is "${run.status}"`);
|
|
76
|
+
}
|
|
77
|
+
const supportedAgents = this.agentExecutorFactory.getSupportedAgents();
|
|
78
|
+
if (!supportedAgents.includes(agentType)) {
|
|
79
|
+
throw new Error(`Unsupported agent type: ${agentType}`);
|
|
80
|
+
}
|
|
81
|
+
const supportedModels = this.agentExecutorFactory.getSupportedModels(agentType);
|
|
82
|
+
if (!supportedModels.includes(modelId)) {
|
|
83
|
+
throw new Error(`Unsupported model "${modelId}" for agent "${agentType}"`);
|
|
84
|
+
}
|
|
85
|
+
const updatedAt = new Date();
|
|
86
|
+
await this.agentRunRepository.updatePinnedConfig(run.id, {
|
|
87
|
+
agentType,
|
|
88
|
+
modelId,
|
|
89
|
+
updatedAt,
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
featureId: feature.id,
|
|
93
|
+
agentRunId: run.id,
|
|
94
|
+
agentType,
|
|
95
|
+
modelId,
|
|
96
|
+
updatedAt,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
UpdateFeaturePinnedConfigUseCase = __decorate([
|
|
101
|
+
injectable(),
|
|
102
|
+
__param(0, inject('IFeatureRepository')),
|
|
103
|
+
__param(1, inject('IAgentRunRepository')),
|
|
104
|
+
__param(2, inject('IAgentExecutorFactory')),
|
|
105
|
+
__metadata("design:paramtypes", [Object, Object, Object])
|
|
106
|
+
], UpdateFeaturePinnedConfigUseCase);
|
|
107
|
+
export { UpdateFeaturePinnedConfigUseCase };
|
|
@@ -11,4 +11,6 @@ export { StopInteractiveSessionUseCase } from './stop-interactive-session.use-ca
|
|
|
11
11
|
export type { StopInteractiveSessionInput } from './stop-interactive-session.use-case.js';
|
|
12
12
|
export { GetInteractiveChatStateUseCase } from './get-interactive-chat-state.use-case.js';
|
|
13
13
|
export type { GetInteractiveChatStateInput } from './get-interactive-chat-state.use-case.js';
|
|
14
|
+
export { RespondToInteractionUseCase } from './respond-to-interaction.use-case.js';
|
|
15
|
+
export type { RespondToInteractionInput } from './respond-to-interaction.use-case.js';
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/interactive/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,YAAY,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/interactive/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,YAAY,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,YAAY,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,YAAY,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -7,3 +7,4 @@ export { StartInteractiveSessionUseCase } from './start-interactive-session.use-
|
|
|
7
7
|
export { SendInteractiveMessageUseCase } from './send-interactive-message.use-case.js';
|
|
8
8
|
export { StopInteractiveSessionUseCase } from './stop-interactive-session.use-case.js';
|
|
9
9
|
export { GetInteractiveChatStateUseCase } from './get-interactive-chat-state.use-case.js';
|
|
10
|
+
export { RespondToInteractionUseCase } from './respond-to-interaction.use-case.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Respond To Interaction Use Case
|
|
3
|
+
*
|
|
4
|
+
* Sends the user's response to a pending AskUserQuestion interaction
|
|
5
|
+
* back to the agent. The agent's turn resumes after receiving the response.
|
|
6
|
+
*/
|
|
7
|
+
import type { IInteractiveSessionService } from '../../ports/output/services/interactive-session-service.interface.js';
|
|
8
|
+
export interface RespondToInteractionInput {
|
|
9
|
+
featureId: string;
|
|
10
|
+
answers: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export declare class RespondToInteractionUseCase {
|
|
13
|
+
private readonly service;
|
|
14
|
+
constructor(service: IInteractiveSessionService);
|
|
15
|
+
execute(input: RespondToInteractionInput): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=respond-to-interaction.use-case.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond-to-interaction.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sEAAsE,CAAC;AAEvH,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qBACa,2BAA2B;IAGpC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,0BAA0B;IAGhD,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/D"}
|
package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Respond To Interaction Use Case
|
|
3
|
+
*
|
|
4
|
+
* Sends the user's response to a pending AskUserQuestion interaction
|
|
5
|
+
* back to the agent. The agent's turn resumes after receiving the response.
|
|
6
|
+
*/
|
|
7
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
8
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
10
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
11
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
12
|
+
};
|
|
13
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
15
|
+
};
|
|
16
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
17
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
18
|
+
};
|
|
19
|
+
import { injectable, inject } from 'tsyringe';
|
|
20
|
+
let RespondToInteractionUseCase = class RespondToInteractionUseCase {
|
|
21
|
+
service;
|
|
22
|
+
constructor(service) {
|
|
23
|
+
this.service = service;
|
|
24
|
+
}
|
|
25
|
+
async execute(input) {
|
|
26
|
+
return this.service.respondToInteraction(input.featureId, input.answers);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
RespondToInteractionUseCase = __decorate([
|
|
30
|
+
injectable(),
|
|
31
|
+
__param(0, inject('IInteractiveSessionService')),
|
|
32
|
+
__metadata("design:paramtypes", [Object])
|
|
33
|
+
], RespondToInteractionUseCase);
|
|
34
|
+
export { RespondToInteractionUseCase };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-repository.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/repositories/delete-repository.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,qBACa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAJb,cAAc,EAAE,qBAAqB,EAErC,WAAW,EAAE,kBAAkB,EAE/B,aAAa,EAAE,oBAAoB;IAGhD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"delete-repository.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/repositories/delete-repository.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iEAAiE,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,qBACa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAJb,cAAc,EAAE,qBAAqB,EAErC,WAAW,EAAE,kBAAkB,EAE/B,aAAa,EAAE,oBAAoB;IAGhD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBzC"}
|
package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js
CHANGED
|
@@ -33,8 +33,12 @@ let DeleteRepositoryUseCase = class DeleteRepositoryUseCase {
|
|
|
33
33
|
if (!repository) {
|
|
34
34
|
throw new Error(`Repository not found: "${id}"`);
|
|
35
35
|
}
|
|
36
|
-
// Delete all child features (cancels agent runs, removes worktrees)
|
|
37
|
-
|
|
36
|
+
// Delete all child features (cancels agent runs, removes worktrees).
|
|
37
|
+
// Include archived features so they don't survive as orphans.
|
|
38
|
+
const features = await this.featureRepo.list({
|
|
39
|
+
repositoryPath: repository.path,
|
|
40
|
+
includeArchived: true,
|
|
41
|
+
});
|
|
38
42
|
for (const feature of features) {
|
|
39
43
|
await this.deleteFeature.execute(feature.id);
|
|
40
44
|
}
|
|
@@ -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;
|
|
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;AAqJrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CA2brE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -67,6 +67,7 @@ import { ShowFeatureUseCase } from '../../application/use-cases/features/show-fe
|
|
|
67
67
|
import { DeleteFeatureUseCase } from '../../application/use-cases/features/delete-feature.use-case.js';
|
|
68
68
|
import { ResumeFeatureUseCase } from '../../application/use-cases/features/resume-feature.use-case.js';
|
|
69
69
|
import { StartFeatureUseCase } from '../../application/use-cases/features/start-feature.use-case.js';
|
|
70
|
+
import { UpdateFeaturePinnedConfigUseCase } from '../../application/use-cases/features/update-feature-pinned-config.use-case.js';
|
|
70
71
|
import { AdoptBranchUseCase } from '../../application/use-cases/features/adopt-branch.use-case.js';
|
|
71
72
|
import { GetFeatureArtifactUseCase } from '../../application/use-cases/features/get-feature-artifact.use-case.js';
|
|
72
73
|
import { GetResearchArtifactUseCase } from '../../application/use-cases/features/get-research-artifact.use-case.js';
|
|
@@ -98,6 +99,7 @@ import { StartInteractiveSessionUseCase } from '../../application/use-cases/inte
|
|
|
98
99
|
import { SendInteractiveMessageUseCase } from '../../application/use-cases/interactive/send-interactive-message.use-case.js';
|
|
99
100
|
import { StopInteractiveSessionUseCase } from '../../application/use-cases/interactive/stop-interactive-session.use-case.js';
|
|
100
101
|
import { GetInteractiveChatStateUseCase } from '../../application/use-cases/interactive/get-interactive-chat-state.use-case.js';
|
|
102
|
+
import { RespondToInteractionUseCase } from '../../application/use-cases/interactive/respond-to-interaction.use-case.js';
|
|
101
103
|
// Session listing
|
|
102
104
|
import { ClaudeCodeSessionRepository } from '../services/agents/sessions/claude-code-session.repository.js';
|
|
103
105
|
import { CodexCliSessionRepository } from '../services/agents/sessions/codex-cli-session.repository.js';
|
|
@@ -305,6 +307,7 @@ export async function initializeContainer() {
|
|
|
305
307
|
container.registerSingleton(DeleteFeatureUseCase);
|
|
306
308
|
container.registerSingleton(ResumeFeatureUseCase);
|
|
307
309
|
container.registerSingleton(StartFeatureUseCase);
|
|
310
|
+
container.registerSingleton(UpdateFeaturePinnedConfigUseCase);
|
|
308
311
|
container.registerSingleton(AdoptBranchUseCase);
|
|
309
312
|
container.registerSingleton(GetFeatureArtifactUseCase);
|
|
310
313
|
container.registerSingleton(GetResearchArtifactUseCase);
|
|
@@ -372,6 +375,9 @@ export async function initializeContainer() {
|
|
|
372
375
|
container.register('StartFeatureUseCase', {
|
|
373
376
|
useFactory: (c) => c.resolve(StartFeatureUseCase),
|
|
374
377
|
});
|
|
378
|
+
container.register('UpdateFeaturePinnedConfigUseCase', {
|
|
379
|
+
useFactory: (c) => c.resolve(UpdateFeaturePinnedConfigUseCase),
|
|
380
|
+
});
|
|
375
381
|
container.register('AdoptBranchUseCase', {
|
|
376
382
|
useFactory: (c) => c.resolve(AdoptBranchUseCase),
|
|
377
383
|
});
|
|
@@ -484,6 +490,7 @@ export async function initializeContainer() {
|
|
|
484
490
|
container.registerSingleton(SendInteractiveMessageUseCase);
|
|
485
491
|
container.registerSingleton(StopInteractiveSessionUseCase);
|
|
486
492
|
container.registerSingleton(GetInteractiveChatStateUseCase);
|
|
493
|
+
container.registerSingleton(RespondToInteractionUseCase);
|
|
487
494
|
// String-token aliases for web routes (Turbopack can't resolve .js→.ts
|
|
488
495
|
// imports inside @shepai/core, so routes use string tokens instead of class refs)
|
|
489
496
|
container.register('StartInteractiveSessionUseCase', {
|
|
@@ -498,6 +505,9 @@ export async function initializeContainer() {
|
|
|
498
505
|
container.register('GetInteractiveChatStateUseCase', {
|
|
499
506
|
useFactory: (c) => c.resolve(GetInteractiveChatStateUseCase),
|
|
500
507
|
});
|
|
508
|
+
container.register('RespondToInteractionUseCase', {
|
|
509
|
+
useFactory: (c) => c.resolve(RespondToInteractionUseCase),
|
|
510
|
+
});
|
|
501
511
|
// Startup cleanup: mark any zombie sessions (booting/ready from a prior server run) as stopped
|
|
502
512
|
await interactiveSessionRepo.markAllActiveStopped();
|
|
503
513
|
_initialized = true;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses prepared statements to prevent SQL injection.
|
|
6
6
|
*/
|
|
7
7
|
import type Database from 'better-sqlite3';
|
|
8
|
-
import type { IAgentRunRepository } from '../../application/ports/output/agents/agent-run-repository.interface.js';
|
|
8
|
+
import type { IAgentRunRepository, AgentRunPinnedConfigUpdate } from '../../application/ports/output/agents/agent-run-repository.interface.js';
|
|
9
9
|
import type { AgentRun, AgentRunStatus } from '../../domain/generated/output.js';
|
|
10
10
|
/**
|
|
11
11
|
* SQLite implementation of IAgentRunRepository.
|
|
@@ -18,6 +18,7 @@ export declare class SQLiteAgentRunRepository implements IAgentRunRepository {
|
|
|
18
18
|
findById(id: string): Promise<AgentRun | null>;
|
|
19
19
|
findByThreadId(threadId: string): Promise<AgentRun | null>;
|
|
20
20
|
updateStatus(id: string, status: AgentRunStatus, updates?: Partial<AgentRun>): Promise<void>;
|
|
21
|
+
updatePinnedConfig(id: string, updates: AgentRunPinnedConfigUpdate): Promise<void>;
|
|
21
22
|
findRunningByPid(pid: number): Promise<AgentRun[]>;
|
|
22
23
|
list(): Promise<AgentRun[]>;
|
|
23
24
|
delete(id: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-run.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/agent-run.repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"agent-run.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/agent-run.repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,yEAAyE,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAkBjF;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAW9C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAW1D,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC;IAqDV,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBlF,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAOlD,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAO3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxC"}
|
|
@@ -115,6 +115,21 @@ let SQLiteAgentRunRepository = class SQLiteAgentRunRepository {
|
|
|
115
115
|
const stmt = this.db.prepare(`UPDATE agent_runs SET ${setClauses.join(', ')} WHERE id = @id`);
|
|
116
116
|
stmt.run(params);
|
|
117
117
|
}
|
|
118
|
+
async updatePinnedConfig(id, updates) {
|
|
119
|
+
const stmt = this.db.prepare(`
|
|
120
|
+
UPDATE agent_runs
|
|
121
|
+
SET agent_type = @agent_type,
|
|
122
|
+
model_id = @model_id,
|
|
123
|
+
updated_at = @updated_at
|
|
124
|
+
WHERE id = @id
|
|
125
|
+
`);
|
|
126
|
+
stmt.run({
|
|
127
|
+
id,
|
|
128
|
+
agent_type: updates.agentType,
|
|
129
|
+
model_id: updates.modelId ?? null,
|
|
130
|
+
updated_at: toTimestamp(updates.updatedAt) ?? Date.now(),
|
|
131
|
+
});
|
|
132
|
+
}
|
|
118
133
|
async findRunningByPid(pid) {
|
|
119
134
|
const stmt = this.db.prepare('SELECT * FROM agent_runs WHERE pid = ? AND status = ?');
|
|
120
135
|
const rows = stmt.all(pid, 'running');
|
|
@@ -32,6 +32,9 @@
|
|
|
32
32
|
* errors when shep itself is running inside a Claude Code session.
|
|
33
33
|
* - SDK message types are mapped to our own InteractiveAgentEvent to
|
|
34
34
|
* keep the application layer decoupled from SDK specifics.
|
|
35
|
+
* - AskUserQuestion is intercepted via the SDK's `canUseTool` callback,
|
|
36
|
+
* which pauses the stream until the user responds. The callback delegates
|
|
37
|
+
* to the `onUserQuestion` option provided by the session service.
|
|
35
38
|
*/
|
|
36
39
|
import type { IInteractiveAgentExecutor, InteractiveAgentOptions, InteractiveAgentSessionHandle } from '../../../../../application/ports/output/agents/interactive-agent-executor.interface.js';
|
|
37
40
|
export declare class ClaudeCodeInteractiveExecutor implements IInteractiveAgentExecutor {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-interactive-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claude-code-interactive-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAI9B,MAAM,wFAAwF,CAAC;AAgBhG,qBAAa,6BAA8B,YAAW,yBAAyB;IACvE,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAOvF,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,6BAA6B,CAAC;IAOzC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,WAAW;IAqCnB;;;;;;OAMG;YACY,SAAS;IA6BxB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,aAAa;CA4PtB"}
|