@shepai/cli 1.152.0-pr476.5b101f5 → 1.152.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts +0 -5
- package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +0 -5
- package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts +0 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js +0 -15
- 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 +0 -8
- package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +0 -1
- 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 +5 -51
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.d.ts +5 -4
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.js +13 -5
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.d.ts +2 -8
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.js +7 -10
- package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +3 -2
- package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.js +30 -43
- 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 +3 -66
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts +6 -1
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +6 -5
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +1 -1
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +5 -9
- package/dist/src/presentation/web/hooks/turn-statuses-provider.d.ts +8 -4
- package/dist/src/presentation/web/hooks/turn-statuses-provider.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/turn-statuses-provider.js +4 -4
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +5 -4
- package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-turn-statuses.js +12 -7
- 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 +28 -28
- 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 +26 -26
- 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 +29 -29
- 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 +36 -36
- 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 +36 -36
- 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 +26 -26
- 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 +26 -26
- 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 +26 -26
- 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 +29 -29
- 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 +36 -36
- 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 +36 -36
- 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 +26 -26
- 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 +26 -26
- 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 +26 -26
- 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 +5 -5
- 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/settings/page/server-reference-manifest.json +8 -8
- 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 +10 -10
- 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 +10 -10
- 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 +5 -5
- 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]__ab4951b1._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__ab4951b1._.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]__17ed7ed1._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__563f2f7a._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__563f2f7a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.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]__c30f1f82._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.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/_3a0b989f._.js +2 -2
- package/web/.next/server/chunks/ssr/_3a0b989f._.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/_5f69c13f._.js +1 -1
- package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_fa0acc22._.js → _5fce01a7._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_fa0acc22._.js.map → _5fce01a7._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_7c5b97c6._.js +1 -1
- package/web/.next/server/chunks/ssr/_7c5b97c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_82c57f10._.js +1 -1
- package/web/.next/server/chunks/ssr/_82c57f10._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_9495d50b._.js +1 -1
- package/web/.next/server/chunks/ssr/_9495d50b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a0e3f7e4._.js +1 -1
- package/web/.next/server/chunks/ssr/_a0e3f7e4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ac4a3873._.js +1 -1
- package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ca0aa7f0._.js +1 -1
- package/web/.next/server/chunks/ssr/_ca0aa7f0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_cb5a021e._.js +1 -1
- package/web/.next/server/chunks/ssr/_cb5a021e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_245b6623._.js → _cf1c5b73._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_245b6623._.js.map → _cf1c5b73._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_d86175ae._.js +1 -1
- package/web/.next/server/chunks/ssr/_d86175ae._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d8bedf13._.js +1 -1
- package/web/.next/server/chunks/ssr/_d8bedf13._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_e9a73a63._.js +1 -1
- package/web/.next/server/chunks/ssr/_e9a73a63._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f78b4b9d._.js +3 -0
- package/web/.next/server/chunks/ssr/{_51af0bf4._.js.map → _f78b4b9d._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_fa7efce3._.js +2 -2
- package/web/.next/server/chunks/ssr/_fa7efce3._.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/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.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_357e3eb0._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.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/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +45 -45
- package/web/.next/static/chunks/{0df0e1499e672836.js → 1b4429259bbf3064.js} +2 -2
- package/web/.next/static/chunks/{2ea8e9030cd5ab2b.js → 277a7f64d4ec189d.js} +1 -1
- package/web/.next/static/chunks/4908997348bd55f8.js +1 -0
- package/web/.next/static/chunks/6bf775818e4ad42e.js +1 -0
- package/web/.next/static/chunks/76858a51f2fbe99a.js +7 -0
- package/web/.next/static/chunks/{fab1eb6312340c1b.js → 80c4c8b3a5c8e0b6.js} +2 -2
- package/web/.next/static/chunks/{0bb071bc5f7487be.js → a2257ffb1349f838.js} +1 -1
- package/web/.next/static/chunks/a919a9df4ab12a5c.css +1 -0
- package/web/.next/static/chunks/{29f375627d0eccca.js → bdd340ad42a34b41.js} +1 -1
- package/web/.next/static/chunks/ee20803fb301d59e.js +1 -0
- package/web/.next/static/chunks/{0aa0c51000c61a82.js → ef1c9f43aafff65f.js} +2 -2
- package/web/.next/static/chunks/{9033e51dfc21b48d.js → f33efe6a12242a8a.js} +1 -1
- package/web/.next/static/chunks/{8a83eca1de6a4ed0.js → f9a80d3854a8d453.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_51af0bf4._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js.map +0 -1
- package/web/.next/static/chunks/19e9b142ad142695.js +0 -7
- package/web/.next/static/chunks/811d8a0007da9137.js +0 -1
- package/web/.next/static/chunks/a36ca50cbdfb3ffe.js +0 -1
- package/web/.next/static/chunks/be7d8a4fee3b9860.js +0 -1
- package/web/.next/static/chunks/c86594475dcb03d5.css +0 -1
- /package/web/.next/static/{vc6t9IqXHzQXsbrkf5_dt → lPbWG8a1RwBDDcvRngp58}/_buildManifest.js +0 -0
- /package/web/.next/static/{vc6t9IqXHzQXsbrkf5_dt → lPbWG8a1RwBDDcvRngp58}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{vc6t9IqXHzQXsbrkf5_dt → lPbWG8a1RwBDDcvRngp58}/_ssgManifest.js +0 -0
|
@@ -69,10 +69,5 @@ export interface IInteractiveSessionRepository {
|
|
|
69
69
|
* Returns a map of featureId → turnStatus for features that have an active session.
|
|
70
70
|
*/
|
|
71
71
|
getTurnStatuses(featureIds: string[]): Promise<Map<string, string>>;
|
|
72
|
-
/**
|
|
73
|
-
* Get ALL non-idle turn statuses across all active sessions.
|
|
74
|
-
* Returns a map of featureId → turnStatus (only 'processing' | 'unread' entries).
|
|
75
|
-
*/
|
|
76
|
-
getAllActiveTurnStatuses(): Promise<Map<string, string>>;
|
|
77
72
|
}
|
|
78
73
|
//# sourceMappingURL=interactive-session-repository.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-session-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAEvE;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE/C;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5F;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;OAEG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-session-repository.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,wCAAwC,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAEvE;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE/C;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5F;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;OAEG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrE"}
|
|
@@ -178,10 +178,5 @@ export interface IInteractiveSessionService {
|
|
|
178
178
|
* Used by UI to show dot indicators on all chat buttons.
|
|
179
179
|
*/
|
|
180
180
|
getTurnStatuses(featureIds: string[]): Promise<Map<string, string>>;
|
|
181
|
-
/**
|
|
182
|
-
* Get ALL non-idle turn statuses. No IDs needed — returns every
|
|
183
|
-
* active session's status ('processing' | 'unread').
|
|
184
|
-
*/
|
|
185
|
-
getAllActiveTurnStatuses(): Promise<Map<string, string>>;
|
|
186
181
|
}
|
|
187
182
|
//# 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":"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
|
|
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":"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"}
|
|
@@ -23,6 +23,5 @@ export declare class SQLiteInteractiveSessionRepository implements IInteractiveS
|
|
|
23
23
|
getAgentSessionId(id: string): Promise<string | null>;
|
|
24
24
|
updateTurnStatus(id: string, turnStatus: string): Promise<void>;
|
|
25
25
|
getTurnStatuses(featureIds: string[]): Promise<Map<string, string>>;
|
|
26
|
-
getAllActiveTurnStatuses(): Promise<Map<string, string>>;
|
|
27
26
|
}
|
|
28
27
|
//# sourceMappingURL=sqlite-interactive-session.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-interactive-session.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yFAAyF,CAAC;AAC7I,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAO5E,qBACa,kCAAmC,YAAW,6BAA6B;IAC1E,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAOxD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAStE,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAO9C,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,wBAAwB,EAChC,SAAS,CAAC,EAAE,IAAI,GACf,OAAO,CAAC,IAAI,CAAC;IAeV,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAStC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvE,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOrD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-interactive-session.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yFAAyF,CAAC;AAC7I,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAO5E,qBACa,kCAAmC,YAAW,6BAA6B;IAC1E,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAOxD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAStE,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAO9C,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,wBAAwB,EAChC,SAAS,CAAC,EAAE,IAAI,GACf,OAAO,CAAC,IAAI,CAAC;IAeV,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAStC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvE,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOrD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAwB1E"}
|
package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js
CHANGED
|
@@ -114,21 +114,6 @@ let SQLiteInteractiveSessionRepository = class SQLiteInteractiveSessionRepositor
|
|
|
114
114
|
}
|
|
115
115
|
return result;
|
|
116
116
|
}
|
|
117
|
-
async getAllActiveTurnStatuses() {
|
|
118
|
-
const result = new Map();
|
|
119
|
-
const rows = this.db
|
|
120
|
-
.prepare(`SELECT feature_id, turn_status FROM interactive_sessions
|
|
121
|
-
WHERE status IN ('booting','ready')
|
|
122
|
-
AND turn_status != 'idle'
|
|
123
|
-
ORDER BY created_at DESC`)
|
|
124
|
-
.all();
|
|
125
|
-
for (const row of rows) {
|
|
126
|
-
if (!result.has(row.feature_id)) {
|
|
127
|
-
result.set(row.feature_id, row.turn_status);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return result;
|
|
131
|
-
}
|
|
132
117
|
};
|
|
133
118
|
SQLiteInteractiveSessionRepository = __decorate([
|
|
134
119
|
injectable(),
|
|
@@ -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;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAE9B,MAAM,wFAAwF,CAAC;AAKhG,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;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,eAAe;
|
|
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;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAE9B,MAAM,wFAAwF,CAAC;AAKhG,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;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,WAAW;YAiBJ,SAAS;IASxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;CA0MtB"}
|
|
@@ -46,14 +46,6 @@ export class ClaudeCodeInteractiveExecutor {
|
|
|
46
46
|
model: options.model ?? DEFAULT_MODEL,
|
|
47
47
|
permissionMode: 'bypassPermissions',
|
|
48
48
|
env: cleanEnv,
|
|
49
|
-
// Forward system prompt using preset+append pattern
|
|
50
|
-
...(options.systemPrompt && {
|
|
51
|
-
systemPrompt: {
|
|
52
|
-
type: 'preset',
|
|
53
|
-
preset: 'claude_code',
|
|
54
|
-
append: options.systemPrompt,
|
|
55
|
-
},
|
|
56
|
-
}),
|
|
57
49
|
};
|
|
58
50
|
}
|
|
59
51
|
wrapSession(sdkSession) {
|
package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts
CHANGED
|
@@ -66,7 +66,6 @@ export declare class InteractiveSessionService implements IInteractiveSessionSer
|
|
|
66
66
|
stopByFeature(featureId: string): Promise<void>;
|
|
67
67
|
markRead(featureId: string): Promise<void>;
|
|
68
68
|
getTurnStatuses(featureIds: string[]): Promise<Map<string, string>>;
|
|
69
|
-
getAllActiveTurnStatuses(): Promise<Map<string, string>>;
|
|
70
69
|
/** Find the in-memory state for an active session for a feature. */
|
|
71
70
|
private findActiveStateForFeature;
|
|
72
71
|
/** Resolve the agent type from an explicit override or settings. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-session.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/interactive/interactive-session.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,SAAS,EACV,MAAM,qFAAqF,CAAC;AAC7F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4FAA4F,CAAC;AAChJ,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4FAA4F,CAAC;AAChJ,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8EAA8E,CAAC;AAE1H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gFAAgF,CAAC;AACzH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AASlG,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-session.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/interactive/interactive-session.service.ts"],"names":[],"mappings":"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"}
|
package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js
CHANGED
|
@@ -103,8 +103,6 @@ export class InteractiveSessionService {
|
|
|
103
103
|
currentAssistantBuffer: '',
|
|
104
104
|
toolEventsLog: [],
|
|
105
105
|
subscribers: new Set(),
|
|
106
|
-
turnInProgress: false,
|
|
107
|
-
turnQueue: [],
|
|
108
106
|
};
|
|
109
107
|
this.sessions.set(session.id, state);
|
|
110
108
|
// Fire-and-forget the async boot sequence. The API returns the session
|
|
@@ -345,13 +343,11 @@ export class InteractiveSessionService {
|
|
|
345
343
|
}
|
|
346
344
|
// eslint-disable-next-line no-console
|
|
347
345
|
console.log(`[InteractiveSession] stopSession called for ${sessionId} (feature: ${state.featureId})`, new Error().stack?.split('\n').slice(1, 4).join(' <- '));
|
|
348
|
-
// Abort any active stream iteration
|
|
346
|
+
// Abort any active stream iteration
|
|
349
347
|
if (state.streamAbort) {
|
|
350
348
|
state.streamAbort.abort();
|
|
351
349
|
state.streamAbort = undefined;
|
|
352
350
|
}
|
|
353
|
-
state.turnQueue.length = 0;
|
|
354
|
-
state.turnInProgress = false;
|
|
355
351
|
this.clearTimer(state);
|
|
356
352
|
// Cache agentSessionId so resumption works when session restarts
|
|
357
353
|
if (state.agentSessionId) {
|
|
@@ -395,14 +391,8 @@ export class InteractiveSessionService {
|
|
|
395
391
|
// Reset idle timer on user activity
|
|
396
392
|
this.resetTimer(state);
|
|
397
393
|
await this.sessionRepo.updateLastActivity(sessionId, now);
|
|
398
|
-
//
|
|
399
|
-
|
|
400
|
-
state.turnQueue.push(content);
|
|
401
|
-
}
|
|
402
|
-
else {
|
|
403
|
-
state.turnInProgress = true;
|
|
404
|
-
void this.executeAndPersistTurn(state, content);
|
|
405
|
-
}
|
|
394
|
+
// Execute turn via SDK handle — fire-and-forget, response streams to subscribers
|
|
395
|
+
void this.executeAndPersistTurn(state, content);
|
|
406
396
|
return message;
|
|
407
397
|
}
|
|
408
398
|
/**
|
|
@@ -565,24 +555,6 @@ export class InteractiveSessionService {
|
|
|
565
555
|
state.toolEventsLog = [];
|
|
566
556
|
state.subscribers.forEach((sub) => sub({ delta: '', done: true }));
|
|
567
557
|
}
|
|
568
|
-
else if (!responseText) {
|
|
569
|
-
// Stream ended without any response — SDK session likely died.
|
|
570
|
-
// Mark as error so the next message triggers a fresh session.
|
|
571
|
-
// eslint-disable-next-line no-console
|
|
572
|
-
console.error(`[InteractiveSession] stream ended without response for session ${state.sessionId} — session may have died`);
|
|
573
|
-
state.subscribers.forEach((sub) => sub({ delta: '', done: true, log: 'Session disconnected — will restart on next message' }));
|
|
574
|
-
if (state.agentSessionId) {
|
|
575
|
-
this.stoppedAgentSessionIds.set(state.featureId, state.agentSessionId);
|
|
576
|
-
}
|
|
577
|
-
this.sessions.delete(state.sessionId);
|
|
578
|
-
try {
|
|
579
|
-
await this.sessionRepo.updateStatus(state.sessionId, InteractiveSessionStatus.error);
|
|
580
|
-
}
|
|
581
|
-
catch {
|
|
582
|
-
// Best-effort DB update
|
|
583
|
-
}
|
|
584
|
-
return; // Skip queue drain — session is dead
|
|
585
|
-
}
|
|
586
558
|
}
|
|
587
559
|
catch (err) {
|
|
588
560
|
// If session was already stopped, ignore
|
|
@@ -591,15 +563,6 @@ export class InteractiveSessionService {
|
|
|
591
563
|
// eslint-disable-next-line no-console
|
|
592
564
|
console.error(`[InteractiveSession] turn failed for session ${state.sessionId}:`, err);
|
|
593
565
|
}
|
|
594
|
-
finally {
|
|
595
|
-
// Release the turn lock and drain the queue
|
|
596
|
-
state.turnInProgress = false;
|
|
597
|
-
if (this.sessions.has(state.sessionId) && state.turnQueue.length > 0) {
|
|
598
|
-
const nextContent = state.turnQueue.shift();
|
|
599
|
-
state.turnInProgress = true;
|
|
600
|
-
void this.executeAndPersistTurn(state, nextContent);
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
566
|
}
|
|
604
567
|
async getMessages(featureId, limit) {
|
|
605
568
|
return this.messageRepo.findByFeatureId(featureId, limit);
|
|
@@ -646,16 +609,10 @@ export class InteractiveSessionService {
|
|
|
646
609
|
if (state) {
|
|
647
610
|
const dbSession = await this.sessionRepo.findById(state.sessionId);
|
|
648
611
|
if (dbSession?.status === InteractiveSessionStatus.ready) {
|
|
649
|
-
// Session ready — send to agent
|
|
612
|
+
// Session ready — send to agent
|
|
650
613
|
this.resetTimer(state);
|
|
651
614
|
await this.sessionRepo.updateLastActivity(state.sessionId, now);
|
|
652
|
-
|
|
653
|
-
state.turnQueue.push(content);
|
|
654
|
-
}
|
|
655
|
-
else {
|
|
656
|
-
state.turnInProgress = true;
|
|
657
|
-
void this.executeAndPersistTurn(state, content);
|
|
658
|
-
}
|
|
615
|
+
void this.executeAndPersistTurn(state, content);
|
|
659
616
|
}
|
|
660
617
|
else if (dbSession?.status === InteractiveSessionStatus.booting) {
|
|
661
618
|
// Session booting — queue the message
|
|
@@ -793,9 +750,6 @@ export class InteractiveSessionService {
|
|
|
793
750
|
async getTurnStatuses(featureIds) {
|
|
794
751
|
return this.sessionRepo.getTurnStatuses(featureIds);
|
|
795
752
|
}
|
|
796
|
-
async getAllActiveTurnStatuses() {
|
|
797
|
-
return this.sessionRepo.getAllActiveTurnStatuses();
|
|
798
|
-
}
|
|
799
753
|
/** Find the in-memory state for an active session for a feature. */
|
|
800
754
|
findActiveStateForFeature(featureId) {
|
|
801
755
|
for (const state of this.sessions.values()) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bulk turn-status API.
|
|
3
3
|
*
|
|
4
|
-
* GET /api/interactive/chat/turn-statuses
|
|
4
|
+
* GET /api/interactive/chat/turn-statuses?featureIds=id1,id2,...
|
|
5
5
|
*
|
|
6
|
-
* Returns
|
|
7
|
-
*
|
|
6
|
+
* Returns a map of featureId → turnStatus ('idle' | 'processing' | 'unread')
|
|
7
|
+
* for all requested features. Used by UI dot indicators on chat buttons.
|
|
8
8
|
*/
|
|
9
|
+
import type { NextRequest } from 'next/server';
|
|
9
10
|
import { NextResponse } from 'next/server';
|
|
10
11
|
export declare const dynamic = "force-dynamic";
|
|
11
|
-
export declare function GET(): Promise<NextResponse>;
|
|
12
|
+
export declare function GET(request: NextRequest): Promise<NextResponse>;
|
|
12
13
|
//# sourceMappingURL=route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC,wBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC,wBAAsB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA8BrE"}
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bulk turn-status API.
|
|
3
3
|
*
|
|
4
|
-
* GET /api/interactive/chat/turn-statuses
|
|
4
|
+
* GET /api/interactive/chat/turn-statuses?featureIds=id1,id2,...
|
|
5
5
|
*
|
|
6
|
-
* Returns
|
|
7
|
-
*
|
|
6
|
+
* Returns a map of featureId → turnStatus ('idle' | 'processing' | 'unread')
|
|
7
|
+
* for all requested features. Used by UI dot indicators on chat buttons.
|
|
8
8
|
*/
|
|
9
9
|
import { NextResponse } from 'next/server';
|
|
10
10
|
import { resolve } from '../../../../../lib/server-container.js';
|
|
11
11
|
export const dynamic = 'force-dynamic';
|
|
12
|
-
export async function GET() {
|
|
12
|
+
export async function GET(request) {
|
|
13
13
|
try {
|
|
14
|
+
const featureIdsParam = request.nextUrl.searchParams.get('featureIds');
|
|
15
|
+
if (!featureIdsParam) {
|
|
16
|
+
return NextResponse.json({});
|
|
17
|
+
}
|
|
18
|
+
const featureIds = featureIdsParam.split(',').filter(Boolean);
|
|
19
|
+
if (featureIds.length === 0) {
|
|
20
|
+
return NextResponse.json({});
|
|
21
|
+
}
|
|
14
22
|
const service = resolve('IInteractiveSessionService');
|
|
15
|
-
const statuses = await service.
|
|
23
|
+
const statuses = await service.getTurnStatuses(featureIds);
|
|
16
24
|
// Convert Map to plain object for JSON serialization
|
|
17
25
|
const result = {};
|
|
18
26
|
for (const [id, status] of statuses) {
|
|
@@ -16,14 +16,8 @@ export interface FloatingActionButtonAction {
|
|
|
16
16
|
export interface FloatingActionButtonProps {
|
|
17
17
|
/** Action items shown when the FAB is expanded. */
|
|
18
18
|
actions: FloatingActionButtonAction[];
|
|
19
|
-
/** Additional CSS classes for the
|
|
19
|
+
/** Additional CSS classes for the container. */
|
|
20
20
|
className?: string;
|
|
21
|
-
/** Inline styles for the wrapper (e.g. dynamic positioning). */
|
|
22
|
-
style?: React.CSSProperties;
|
|
23
21
|
}
|
|
24
|
-
|
|
25
|
-
* (+) FAB with expandable action menu.
|
|
26
|
-
* Renders inline — parent controls positioning.
|
|
27
|
-
*/
|
|
28
|
-
export declare function FloatingActionButton({ actions, className, style }: FloatingActionButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function FloatingActionButton({ actions, className }: FloatingActionButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
29
23
|
//# sourceMappingURL=floating-action-button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floating-action-button.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/floating-action-button/floating-action-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,MAAM,WAAW,0BAA0B;IACzC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,yCAAyC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,mDAAmD;IACnD,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,
|
|
1
|
+
{"version":3,"file":"floating-action-button.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/floating-action-button/floating-action-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,MAAM,WAAW,0BAA0B;IACzC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,yCAAyC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,mDAAmD;IACnD,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,yBAAyB,2CA2GrF"}
|
package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.js
CHANGED
|
@@ -8,11 +8,7 @@ import { Button } from '../../ui/button.js';
|
|
|
8
8
|
const STAGGER_MS = 50;
|
|
9
9
|
/** Total animation duration in ms. */
|
|
10
10
|
const DURATION_MS = 250;
|
|
11
|
-
|
|
12
|
-
* (+) FAB with expandable action menu.
|
|
13
|
-
* Renders inline — parent controls positioning.
|
|
14
|
-
*/
|
|
15
|
-
export function FloatingActionButton({ actions, className, style }) {
|
|
11
|
+
export function FloatingActionButton({ actions, className }) {
|
|
16
12
|
const [open, setOpen] = useState(false);
|
|
17
13
|
// Close on Escape key
|
|
18
14
|
useEffect(() => {
|
|
@@ -26,13 +22,14 @@ export function FloatingActionButton({ actions, className, style }) {
|
|
|
26
22
|
document.addEventListener('keydown', handleKeyDown);
|
|
27
23
|
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
28
24
|
}, [open]);
|
|
29
|
-
return (_jsxs(_Fragment, { children: [open ? (_jsx("div", { "data-testid": "fab-overlay", className: "fixed inset-0 z-40", onClick: () => setOpen(false), "aria-hidden": "true" })) : null, _jsxs("div", { "data-testid": "floating-action-button", className: cn('
|
|
25
|
+
return (_jsxs(_Fragment, { children: [open ? (_jsx("div", { "data-testid": "fab-overlay", className: "fixed inset-0 z-40", onClick: () => setOpen(false), "aria-hidden": "true" })) : null, _jsxs("div", { "data-testid": "floating-action-button", className: cn('fixed right-6 bottom-6 z-50', className), children: [_jsx("div", { className: cn('absolute right-[calc(100%+12px)] bottom-0 flex flex-col items-end gap-2', !open && 'pointer-events-none'), "data-testid": "fab-actions", children: actions.map((action, i) => {
|
|
30
26
|
const openDelay = (actions.length - 1 - i) * STAGGER_MS;
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
const closeDelay = i * STAGGER_MS;
|
|
28
|
+
return (_jsxs("button", { "data-testid": `fab-action-${action.id}`, "aria-label": action.label, disabled: action.disabled ?? action.loading, className: cn('flex h-12 w-52 items-center justify-center gap-3 rounded-full px-4', 'bg-background text-foreground shadow-sm', 'border-border border', 'hover:bg-accent hover:text-accent-foreground', 'disabled:pointer-events-none disabled:opacity-50', open ? 'translate-x-0 opacity-100' : 'pointer-events-none translate-x-0 opacity-0'), style: {
|
|
29
|
+
transition: `opacity ${open ? DURATION_MS : 150}ms ease-out ${open ? openDelay : closeDelay}ms`,
|
|
33
30
|
}, onClick: () => {
|
|
34
31
|
action.onClick();
|
|
35
32
|
setOpen(false);
|
|
36
|
-
}, children: [_jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: action.loading ? _jsx(Loader2, { className: "h-
|
|
37
|
-
}) }), _jsxs(Button, { size: "icon", "data-testid": "fab-trigger", "aria-label": open ? 'Close actions' : '
|
|
33
|
+
}, children: [_jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: action.loading ? _jsx(Loader2, { className: "h-5 w-5 animate-spin" }) : action.icon }), _jsx("span", { className: "text-sm font-medium whitespace-nowrap", children: action.label })] }, action.id));
|
|
34
|
+
}) }), _jsx("div", { className: "flex items-center", children: _jsxs(Button, { size: "icon", "data-testid": "fab-trigger", "aria-label": open ? 'Close actions' : 'Open actions', className: cn('relative h-14 w-14 rounded-full shadow-lg', 'bg-indigo-500 text-white hover:bg-indigo-400 dark:bg-indigo-500 dark:hover:bg-indigo-400', 'transition-all duration-200 hover:scale-105 hover:shadow-xl active:scale-95'), onClick: () => setOpen((prev) => !prev), children: [_jsx(Plus, { className: cn('absolute h-8 w-8 stroke-[2.5] transition-all', open ? 'scale-0 rotate-90 opacity-0' : 'scale-100 rotate-0 opacity-100'), style: { transitionDuration: `${DURATION_MS}ms` } }), _jsx(X, { className: cn('absolute h-8 w-8 stroke-[2.5] transition-all', open ? 'scale-100 rotate-0 opacity-100' : 'scale-0 -rotate-90 opacity-0'), style: { transitionDuration: `${DURATION_MS}ms` } })] }) })] })] }));
|
|
38
35
|
}
|
package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASnE,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,
|
|
1
|
+
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASnE,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,2CAicA"}
|
|
@@ -13,14 +13,15 @@ import { useDeployAction } from '../../../hooks/use-deploy-action.js';
|
|
|
13
13
|
import { useFeatureFlags } from '../../../hooks/feature-flags-context.js';
|
|
14
14
|
import { useRepositoryActions } from './use-repository-actions.js';
|
|
15
15
|
import { ChatDotIndicator } from '../../features/chat/ChatDotIndicator.js';
|
|
16
|
-
import {
|
|
16
|
+
import { useTurnStatuses } from '../../../hooks/use-turn-statuses.js';
|
|
17
17
|
import { FeatureSessionsDropdown, } from '../../common/feature-node/feature-sessions-dropdown.js';
|
|
18
18
|
export function RepositoryNode({ data, selected, }) {
|
|
19
19
|
const router = useRouter();
|
|
20
20
|
const featureFlags = useFeatureFlags();
|
|
21
21
|
const [confirmOpen, setConfirmOpen] = useState(false);
|
|
22
22
|
const repoScopeId = data.id ? `repo-${data.id}` : `repo-${data.name}`;
|
|
23
|
-
const
|
|
23
|
+
const turnStatuses = useTurnStatuses([repoScopeId]);
|
|
24
|
+
const chatTurnStatus = turnStatuses[repoScopeId] ?? 'idle';
|
|
24
25
|
const actions = useRepositoryActions(data.repositoryPath ? { repositoryId: data.id, repositoryPath: data.repositoryPath } : null);
|
|
25
26
|
const deployAction = useDeployAction(data.repositoryPath
|
|
26
27
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSheet.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatSheet.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatSheet.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatSheet.tsx"],"names":[],"mappings":"AAmDA,wBAAgB,eAAe,4CAyX9B"}
|
|
@@ -19,14 +19,9 @@ function loadPersistedState() {
|
|
|
19
19
|
if (!raw)
|
|
20
20
|
return { pos: null, size: null };
|
|
21
21
|
const parsed = JSON.parse(raw);
|
|
22
|
-
let size = parsed.size ?? null;
|
|
23
|
-
// Clamp persisted size to minimums — prevents invisible panel from bad state
|
|
24
|
-
if (size && (size.w < MIN_W || size.h < MIN_H)) {
|
|
25
|
-
size = { w: Math.max(MIN_W, size.w), h: Math.max(MIN_H, size.h) };
|
|
26
|
-
}
|
|
27
22
|
return {
|
|
28
23
|
pos: parsed.pos ?? null,
|
|
29
|
-
size,
|
|
24
|
+
size: parsed.size ?? null,
|
|
30
25
|
};
|
|
31
26
|
}
|
|
32
27
|
catch {
|
|
@@ -124,24 +119,13 @@ export function GlobalChatPopup() {
|
|
|
124
119
|
const timer = setTimeout(() => persistState(pos, size), 300);
|
|
125
120
|
return () => clearTimeout(timer);
|
|
126
121
|
}, [pos, size]);
|
|
127
|
-
/** Clamp position so the header (top 48px) stays within viewport. */
|
|
128
|
-
const clampPos = useCallback((x, y, w) => {
|
|
129
|
-
const vw = window.innerWidth;
|
|
130
|
-
const vh = window.innerHeight;
|
|
131
|
-
const HEADER_H = 48;
|
|
132
|
-
return {
|
|
133
|
-
// Keep at least 100px of width visible horizontally
|
|
134
|
-
x: Math.max(-w + 100, Math.min(x, vw - 100)),
|
|
135
|
-
// Keep header on screen: top >= 0, top <= viewport - header height
|
|
136
|
-
y: Math.max(0, Math.min(y, vh - HEADER_H)),
|
|
137
|
-
};
|
|
138
|
-
}, []);
|
|
139
122
|
// ── Drag handling ──────────────────────────────────────────────────────
|
|
140
123
|
const onDragStart = useCallback((e) => {
|
|
141
124
|
e.preventDefault();
|
|
142
125
|
const panel = panelRef.current;
|
|
143
126
|
if (!panel)
|
|
144
127
|
return;
|
|
128
|
+
// If no custom position yet, compute from current DOM position
|
|
145
129
|
const rect = panel.getBoundingClientRect();
|
|
146
130
|
const currentX = pos?.x ?? rect.left;
|
|
147
131
|
const currentY = pos?.y ?? rect.top;
|
|
@@ -151,13 +135,15 @@ export function GlobalChatPopup() {
|
|
|
151
135
|
startPosX: currentX,
|
|
152
136
|
startPosY: currentY,
|
|
153
137
|
};
|
|
154
|
-
const panelW = size?.w ?? rect.width;
|
|
155
138
|
const onMove = (ev) => {
|
|
156
139
|
if (!dragRef.current)
|
|
157
140
|
return;
|
|
158
141
|
const dx = ev.clientX - dragRef.current.startX;
|
|
159
142
|
const dy = ev.clientY - dragRef.current.startY;
|
|
160
|
-
setPos(
|
|
143
|
+
setPos({
|
|
144
|
+
x: dragRef.current.startPosX + dx,
|
|
145
|
+
y: dragRef.current.startPosY + dy,
|
|
146
|
+
});
|
|
161
147
|
};
|
|
162
148
|
const onUp = () => {
|
|
163
149
|
dragRef.current = null;
|
|
@@ -166,7 +152,7 @@ export function GlobalChatPopup() {
|
|
|
166
152
|
};
|
|
167
153
|
document.addEventListener('mousemove', onMove);
|
|
168
154
|
document.addEventListener('mouseup', onUp);
|
|
169
|
-
}, [pos,
|
|
155
|
+
}, [pos, setPos]);
|
|
170
156
|
// ── Resize handling (from top-right corner) ────────────────────────────
|
|
171
157
|
const onResizeStart = useCallback((e) => {
|
|
172
158
|
e.preventDefault();
|
|
@@ -175,27 +161,29 @@ export function GlobalChatPopup() {
|
|
|
175
161
|
if (!panel)
|
|
176
162
|
return;
|
|
177
163
|
const rect = panel.getBoundingClientRect();
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
//
|
|
164
|
+
resizeRef.current = {
|
|
165
|
+
startX: e.clientX,
|
|
166
|
+
startY: e.clientY,
|
|
167
|
+
startW: size?.w ?? rect.width,
|
|
168
|
+
startH: size?.h ?? rect.height,
|
|
169
|
+
};
|
|
170
|
+
// Also capture position if not set yet
|
|
185
171
|
if (!pos) {
|
|
186
172
|
setPos({ x: rect.left, y: rect.top });
|
|
187
173
|
}
|
|
188
174
|
const onMove = (ev) => {
|
|
189
175
|
if (!resizeRef.current)
|
|
190
176
|
return;
|
|
191
|
-
const dx = ev.clientX - startX;
|
|
192
|
-
const dy = ev.clientY - startY;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
177
|
+
const dx = ev.clientX - resizeRef.current.startX;
|
|
178
|
+
const dy = ev.clientY - resizeRef.current.startY;
|
|
179
|
+
setSize({
|
|
180
|
+
w: Math.max(MIN_W, resizeRef.current.startW + dx),
|
|
181
|
+
h: Math.max(MIN_H, resizeRef.current.startH - dy),
|
|
182
|
+
});
|
|
183
|
+
// Move top edge up as height increases
|
|
184
|
+
if (pos) {
|
|
185
|
+
setPos((prev) => (prev ? { ...prev, y: (prev.y ?? 0) + dy } : prev));
|
|
186
|
+
}
|
|
199
187
|
};
|
|
200
188
|
const onUp = () => {
|
|
201
189
|
resizeRef.current = null;
|
|
@@ -204,7 +192,7 @@ export function GlobalChatPopup() {
|
|
|
204
192
|
};
|
|
205
193
|
document.addEventListener('mousemove', onMove);
|
|
206
194
|
document.addEventListener('mouseup', onUp);
|
|
207
|
-
}, [size, pos, setPos, setSize
|
|
195
|
+
}, [size, pos, setPos, setSize]);
|
|
208
196
|
// Reset position/size on close for clean reopen
|
|
209
197
|
const handleClose = useCallback(() => {
|
|
210
198
|
setIsOpen(false);
|
|
@@ -226,8 +214,8 @@ export function GlobalChatPopup() {
|
|
|
226
214
|
height: size?.h ?? `${DEFAULT_H_VH}vh`,
|
|
227
215
|
};
|
|
228
216
|
return (_jsxs(_Fragment, { children: [hasOpened ? (_jsxs("div", { ref: panelRef, className: cn(isMaximized
|
|
229
|
-
? 'bg-background
|
|
230
|
-
: cn(!pos && '
|
|
217
|
+
? 'bg-background absolute inset-0 z-30 flex flex-col overflow-hidden dark:bg-neutral-900'
|
|
218
|
+
: cn(!pos && 'absolute bottom-24 left-4', 'z-30 flex flex-col overflow-hidden rounded-lg', 'border-border/60 border dark:border-white/10', 'bg-background dark:bg-neutral-900', 'shadow-[0_8px_40px_-8px_rgba(0,0,0,0.2)] dark:shadow-[0_8px_40px_-8px_rgba(0,0,0,0.6)]'), 'transition-opacity duration-300 ease-out', isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0'), style: panelStyle, children: [!isMaximized ? (_jsx("div", { className: "h-[2px] shrink-0 bg-gradient-to-r from-transparent via-violet-500/50 to-transparent" })) : null, !isMaximized ? (_jsx("div", { onMouseDown: onResizeStart, className: "absolute top-0 right-0 z-10 h-4 w-4 cursor-ne-resize" })) : null, _jsxs("div", { onMouseDown: isMaximized ? undefined : onDragStart, className: cn('relative flex h-11 shrink-0 items-center gap-2.5 border-b border-black/[0.06] px-3.5 dark:border-white/[0.06]', !isMaximized && 'cursor-grab active:cursor-grabbing'), children: [_jsx("div", { className: "from-foreground/[0.02] to-foreground/[0.02] pointer-events-none absolute inset-0 bg-gradient-to-r via-transparent" }), !isMaximized ? (_jsx(GripVertical, { className: "text-foreground/15 relative h-3.5 w-3.5 shrink-0" })) : null, _jsx("div", { className: "relative flex h-5 w-5 items-center justify-center", children: _jsx(Bot, { className: "text-foreground/50 h-4 w-4" }) }), _jsxs("div", { className: "relative flex items-baseline gap-2", children: [_jsx("span", { className: "text-foreground/90 text-base font-bold tracking-tight", children: "Shep" }), _jsx("span", { className: "text-foreground/30 text-xs font-medium tracking-widest uppercase", children: "global" })] }), _jsxs("div", { className: "relative ml-auto flex items-center gap-0.5", children: [_jsx("button", { type: "button", onClick: toggleMaximize, className: "text-foreground/30 hover:text-foreground/60 rounded-md p-1 transition-colors", title: isMaximized ? 'Restore (⌘⇧M)' : 'Maximize (⌘⇧M)', children: isMaximized ? (_jsx(Minimize2, { className: "h-3.5 w-3.5" })) : (_jsx(Maximize2, { className: "h-3.5 w-3.5" })) }), _jsx("button", { type: "button", onClick: handleClose, className: "text-foreground/30 hover:text-foreground/60 rounded-md p-1 transition-colors", title: "Close (\u2318\u21E7K)", children: _jsx(X, { className: "h-3.5 w-3.5" }) })] })] }), _jsx("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: _jsx(ChatTab, { featureId: "global" }) }), !isMaximized ? (_jsx("div", { onMouseDown: (e) => {
|
|
231
219
|
e.preventDefault();
|
|
232
220
|
e.stopPropagation();
|
|
233
221
|
const panel = panelRef.current;
|
|
@@ -241,10 +229,9 @@ export function GlobalChatPopup() {
|
|
|
241
229
|
if (!pos)
|
|
242
230
|
setPos({ x: rect.left, y: rect.top });
|
|
243
231
|
const onMove = (ev) => {
|
|
244
|
-
const maxH = window.innerHeight - (pos?.y ?? rect.top);
|
|
245
232
|
setSize({
|
|
246
233
|
w: Math.max(MIN_W, startW + (ev.clientX - startX)),
|
|
247
|
-
h: Math.max(MIN_H,
|
|
234
|
+
h: Math.max(MIN_H, startH + (ev.clientY - startY)),
|
|
248
235
|
});
|
|
249
236
|
};
|
|
250
237
|
const onUp = () => {
|
|
@@ -253,7 +240,7 @@ export function GlobalChatPopup() {
|
|
|
253
240
|
};
|
|
254
241
|
document.addEventListener('mousemove', onMove);
|
|
255
242
|
document.addEventListener('mouseup', onUp);
|
|
256
|
-
}, className: "absolute right-0 bottom-0 z-10 h-4 w-4 cursor-se-resize" })) : null] })) : null, _jsxs("div", { className: cn('group/fab
|
|
243
|
+
}, className: "absolute right-0 bottom-0 z-10 h-4 w-4 cursor-se-resize" })) : null] })) : null, _jsxs("div", { className: cn('group/fab absolute bottom-4 left-4 z-30 flex items-center', isMaximized && 'hidden'), children: [_jsxs(Button, { size: "icon", onClick: toggle, className: cn('relative h-14 w-14 rounded-full shadow-lg', 'transition-all duration-200 hover:scale-105 hover:shadow-xl active:scale-95', isOpen
|
|
257
244
|
? 'bg-violet-600 text-white hover:bg-violet-500'
|
|
258
|
-
: 'bg-violet-500 text-white hover:bg-violet-400 dark:bg-violet-500 dark:hover:bg-violet-400'), children: [_jsx(MessageSquare, { className: cn('absolute h-7 w-7 stroke-[2.5] transition-all duration-200', isOpen ? 'scale-0 rotate-90 opacity-0' : 'scale-100 rotate-0 opacity-100') }), _jsx(X, { className: cn('absolute h-6 w-6 stroke-[2.5] transition-all duration-200', isOpen ? 'scale-100 rotate-0 opacity-100' : 'scale-0 -rotate-90 opacity-0') }), !isOpen && _jsx(ChatDotIndicator, { status: globalChatTurnStatus, className: "top-0 right-0" })] }), _jsx("div", { className: "pointer-events-none
|
|
245
|
+
: 'bg-violet-500 text-white hover:bg-violet-400 dark:bg-violet-500 dark:hover:bg-violet-400'), children: [_jsx(MessageSquare, { className: cn('absolute h-7 w-7 stroke-[2.5] transition-all duration-200', isOpen ? 'scale-0 rotate-90 opacity-0' : 'scale-100 rotate-0 opacity-100') }), _jsx(X, { className: cn('absolute h-6 w-6 stroke-[2.5] transition-all duration-200', isOpen ? 'scale-100 rotate-0 opacity-100' : 'scale-0 -rotate-90 opacity-0') }), !isOpen && _jsx(ChatDotIndicator, { status: globalChatTurnStatus, className: "top-0 right-0" })] }), _jsx("div", { className: "pointer-events-none ml-3 flex translate-x-[-4px] items-center gap-2 opacity-0 transition-all duration-200 group-hover/fab:translate-x-0 group-hover/fab:opacity-100", children: _jsxs("div", { className: "bg-foreground rounded-lg px-3 py-1.5 shadow-lg", children: [_jsx("p", { className: "text-background text-xs font-medium", children: "Shep Chat" }), _jsxs("p", { className: "text-background/50 mt-0.5 flex items-center gap-1 text-[10px]", children: [_jsx("kbd", { className: "bg-background/15 rounded px-1 py-px font-mono", children: "\u2318" }), _jsx("kbd", { className: "bg-background/15 rounded px-1 py-px font-mono", children: "\u21E7" }), _jsx("kbd", { className: "bg-background/15 rounded px-1 py-px font-mono", children: "K" })] })] }) })] })] }));
|
|
259
246
|
}
|
package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-center-inner.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-inner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"control-center-inner.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-inner.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,eAAe,CAAC;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAwB5E,UAAU,uBAAuB;IAC/B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,YAAY,EAAE,IAAI,EAAE,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,uBAAuB,2CAmZzF"}
|