@shepai/cli 1.24.0 → 1.26.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/use-cases/features/create/metadata-generator.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.js +3 -0
- package/dist/packages/core/src/infrastructure/di/populate-use-cases-bridge.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/populate-use-cases-bridge.js +2 -0
- package/dist/packages/core/src/infrastructure/di/use-cases-bridge.d.ts +9 -1
- package/dist/packages/core/src/infrastructure/di/use-cases-bridge.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/use-cases-bridge.js +17 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/antigravity.launcher.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js +24 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/cursor.launcher.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.interface.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/ide-launcher.registry.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/launch-ide.d.ts +30 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/launch-ide.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/launch-ide.js +41 -0
- package/dist/packages/core/src/infrastructure/services/ide-launchers/vscode.launcher.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/windsurf.launcher.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/ide-launchers/zed.launcher.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/settings.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/settings.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/settings.service.js +27 -12
- package/dist/src/presentation/cli/commands/agent/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/agent/show.command.js +1 -8
- package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/show.command.js +1 -8
- package/dist/src/presentation/cli/commands/ide-open.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/ide-open.command.js +11 -21
- package/dist/src/presentation/web/app/api/features/create/route.d.ts +5 -0
- package/dist/src/presentation/web/app/api/features/create/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/features/create/route.js +32 -0
- package/dist/src/presentation/web/app/api/ide/open/route.d.ts +9 -0
- package/dist/src/presentation/web/app/api/ide/open/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/ide/open/route.js +29 -0
- package/dist/src/presentation/web/app/api/shell/open/route.d.ts +9 -0
- package/dist/src/presentation/web/app/api/shell/open/route.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/shell/open/route.js +51 -0
- package/dist/src/presentation/web/app/api/validate-toolbar-input.d.ts +17 -0
- package/dist/src/presentation/web/app/api/validate-toolbar-input.d.ts.map +1 -0
- package/dist/src/presentation/web/app/api/validate-toolbar-input.js +25 -0
- package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
- package/dist/src/presentation/web/app/layout.js +2 -1
- package/dist/src/presentation/web/app/page.d.ts.map +1 -1
- package/dist/src/presentation/web/app/page.js +2 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +11 -2
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts +8 -0
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +31 -0
- package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts +14 -0
- package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/feature-drawer/use-feature-actions.js +58 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +4 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +18 -0
- package/dist/src/presentation/web/components/common/index.d.ts +1 -0
- package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/index.js +1 -0
- 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 +2 -2
- package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center.stories.js +16 -0
- 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 +47 -9
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +44 -0
- package/dist/src/presentation/web/dev-server.js +17 -4
- 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 +3 -0
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/routes-manifest.json +18 -0
- 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.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.js +2 -2
- 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/_not-found.html +2 -2
- package/web/.next/server/app/_not-found.rsc +14 -13
- package/web/.next/server/app/_not-found.segments/_full.segment.rsc +14 -13
- package/web/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -5
- package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/server/app/api/dialog/pick-files/route.js +2 -2
- package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
- package/web/.next/server/app/api/dialog/pick-folder/route.js +2 -2
- package/web/.next/server/app/api/dialog/pick-folder/route.js.nft.json +1 -1
- package/web/.next/server/app/api/features/create/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/features/create/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/features/create/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/features/create/route.js +6 -0
- package/web/.next/server/app/api/features/create/route.js.map +5 -0
- package/web/.next/server/app/api/features/create/route.js.nft.json +1 -0
- package/web/.next/server/app/api/features/create/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/ide/open/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/ide/open/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/ide/open/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/ide/open/route.js +6 -0
- package/web/.next/server/app/api/ide/open/route.js.map +5 -0
- package/web/.next/server/app/api/ide/open/route.js.nft.json +1 -0
- package/web/.next/server/app/api/ide/open/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/api/shell/open/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/api/shell/open/route/build-manifest.json +11 -0
- package/web/.next/server/app/api/shell/open/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/api/shell/open/route.js +6 -0
- package/web/.next/server/app/api/shell/open/route.js.map +5 -0
- package/web/.next/server/app/api/shell/open/route.js.nft.json +1 -0
- package/web/.next/server/app/api/shell/open/route_client-reference-manifest.js +2 -0
- package/web/.next/server/app/page.js +2 -2
- package/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page.js +2 -2
- 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/version.html +2 -2
- package/web/.next/server/app/version.rsc +13 -12
- package/web/.next/server/app/version.segments/_full.segment.rsc +13 -12
- package/web/.next/server/app/version.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/version.segments/_index.segment.rsc +4 -3
- package/web/.next/server/app/version.segments/_tree.segment.rsc +2 -2
- package/web/.next/server/app/version.segments/version/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/version.segments/version.segment.rsc +1 -1
- package/web/.next/server/app-paths-manifest.json +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_features_create_route_actions_de49a114.js +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_features_create_route_actions_de49a114.js.map +1 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_shell_open_route_actions_814dc5b6.js +3 -0
- package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_shell_open_route_actions_814dc5b6.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__1913013c._.js +3 -0
- package/web/.next/server/chunks/{[root-of-the-server]__95785ac7._.js.map → [root-of-the-server]__1913013c._.js.map} +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__56ac1509._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__56ac1509._.js.map +1 -0
- package/web/.next/server/chunks/[root-of-the-server]__602cce1b._.js +3 -0
- package/web/.next/server/chunks/[root-of-the-server]__602cce1b._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__00833626._.js → [root-of-the-server]__ba6c5641._.js} +2 -2
- package/web/.next/server/chunks/{[root-of-the-server]__00833626._.js.map → [root-of-the-server]__ba6c5641._.js.map} +1 -1
- package/web/.next/server/chunks/{[root-of-the-server]__22cabd43._.js → [root-of-the-server]__bb4fc5b5._.js} +3 -3
- package/web/.next/server/chunks/{[root-of-the-server]__22cabd43._.js.map → [root-of-the-server]__bb4fc5b5._.js.map} +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__eaa478b7._.js +8 -0
- package/web/.next/server/chunks/[root-of-the-server]__eaa478b7._.js.map +1 -0
- package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_ide_open_route_actions_9fe6e1cd.js +3 -0
- package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_ide_open_route_actions_9fe6e1cd.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__97377864._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a21ef212._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a21ef212._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f12b60be._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f285e474._.js +3 -0
- package/web/.next/server/chunks/ssr/_09afa42a._.js +1 -1
- package/web/.next/server/chunks/ssr/_09afa42a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1c3962d7._.js +10 -0
- package/web/.next/server/chunks/ssr/_1c3962d7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_67178b88._.js +13 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_67178b88._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js.map +1 -1
- package/web/.next/server/pages/404.html +2 -2
- 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 +1 -1
- package/web/.next/static/chunks/78ef4acb26e4d6ea.js +1 -0
- package/web/.next/static/chunks/79009d1ca0d944d2.js +5 -0
- package/web/.next/static/chunks/86ff2b6444e06e88.css +2 -0
- package/web/.next/static/chunks/{f6b5484377f4e78e.js → c2854b6c6d0ca1f3.js} +2 -2
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/types/link.d.ts +3 -0
- package/web/.next/types/routes.d.ts +4 -1
- package/web/.next/types/validator.ts +27 -0
- package/web/.next/server/chunks/[root-of-the-server]__95785ac7._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__757c7912._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7c64f85c._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7c64f85c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dbd220d2._.js +0 -3
- package/web/.next/server/chunks/ssr/_1f9347c8._.js +0 -7
- package/web/.next/server/chunks/ssr/_1f9347c8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_a0c04017._.js +0 -6
- package/web/.next/server/chunks/ssr/_a0c04017._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_372075f9._.js +0 -13
- package/web/.next/server/chunks/ssr/src_presentation_web_372075f9._.js.map +0 -1
- package/web/.next/static/chunks/74748b4d725c5c74.css +0 -2
- package/web/.next/static/chunks/8bc34062bc0f4ddc.js +0 -1
- package/web/.next/static/chunks/f5099c5888ef9a74.js +0 -5
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__757c7912._.js.map → [root-of-the-server]__97377864._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__dbd220d2._.js.map → [root-of-the-server]__f285e474._.js.map} +0 -0
- /package/web/.next/static/{LOfelu4nKYgB7PB1XlRqc → _6j6GS-S6zPiASj5tsxJ8}/_buildManifest.js +0 -0
- /package/web/.next/static/{LOfelu4nKYgB7PB1XlRqc → _6j6GS-S6zPiASj5tsxJ8}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{LOfelu4nKYgB7PB1XlRqc → _6j6GS-S6zPiASj5tsxJ8}/_ssgManifest.js +0 -0
package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useState, useCallback, useEffect } from 'react';
|
|
3
|
+
import { useRouter } from 'next/navigation';
|
|
4
|
+
import { toast } from 'sonner';
|
|
3
5
|
import { applyNodeChanges } from '@xyflow/react';
|
|
4
6
|
import { layoutWithDagre } from '../../../lib/layout-with-dagre.js';
|
|
5
7
|
let nextFeatureId = 0;
|
|
6
8
|
export function useControlCenterState(initialNodes, initialEdges) {
|
|
9
|
+
const router = useRouter();
|
|
7
10
|
const [nodes, setNodes] = useState(initialNodes);
|
|
8
11
|
const [edges, setEdges] = useState(initialEdges);
|
|
9
12
|
const [selectedNode, setSelectedNode] = useState(null);
|
|
10
13
|
const [isCreateDrawerOpen, setIsCreateDrawerOpen] = useState(false);
|
|
14
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
15
|
+
const [pendingRepoNodeId, setPendingRepoNodeId] = useState(null);
|
|
11
16
|
const onNodesChange = useCallback((changes) => {
|
|
12
17
|
setNodes((ns) => applyNodeChanges(changes, ns));
|
|
13
18
|
}, []);
|
|
@@ -67,6 +72,8 @@ export function useControlCenterState(initialNodes, initialEdges) {
|
|
|
67
72
|
lifecycle: 'requirements',
|
|
68
73
|
state: 'running',
|
|
69
74
|
progress: 0,
|
|
75
|
+
repositoryPath: dataOverride?.repositoryPath ?? '',
|
|
76
|
+
branch: dataOverride?.branch ?? '',
|
|
70
77
|
};
|
|
71
78
|
setNodes((currentNodes) => {
|
|
72
79
|
// Find siblings connected to the same parent
|
|
@@ -161,19 +168,49 @@ export function useControlCenterState(initialNodes, initialEdges) {
|
|
|
161
168
|
setSelectedNode(null);
|
|
162
169
|
setIsCreateDrawerOpen(true);
|
|
163
170
|
}, []);
|
|
164
|
-
const handleCreateFeatureSubmit = useCallback((data) => {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
+
const handleCreateFeatureSubmit = useCallback(async (data) => {
|
|
172
|
+
if (!pendingRepoNodeId) {
|
|
173
|
+
toast.error('Please create the feature from a repository node.');
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const repositoryPath = pendingRepoNodeId.replace(/^repo-/, '');
|
|
177
|
+
setIsSubmitting(true);
|
|
178
|
+
try {
|
|
179
|
+
const response = await fetch('/api/features/create', {
|
|
180
|
+
method: 'POST',
|
|
181
|
+
headers: { 'Content-Type': 'application/json' },
|
|
182
|
+
body: JSON.stringify({
|
|
183
|
+
name: data.name,
|
|
184
|
+
description: data.description || '',
|
|
185
|
+
repositoryPath,
|
|
186
|
+
attachments: data.attachments,
|
|
187
|
+
}),
|
|
188
|
+
});
|
|
189
|
+
if (!response.ok) {
|
|
190
|
+
const body = await response.json();
|
|
191
|
+
toast.error(body.error ?? 'Failed to create feature');
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
setIsCreateDrawerOpen(false);
|
|
195
|
+
setPendingRepoNodeId(null);
|
|
196
|
+
toast.success('Feature created successfully');
|
|
197
|
+
router.refresh();
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
toast.error('Failed to create feature');
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
setIsSubmitting(false);
|
|
204
|
+
}
|
|
205
|
+
}, [pendingRepoNodeId, router]);
|
|
171
206
|
const closeCreateDrawer = useCallback(() => {
|
|
172
207
|
setIsCreateDrawerOpen(false);
|
|
173
208
|
}, []);
|
|
174
209
|
const handleAddFeatureToRepo = useCallback((repoNodeId) => {
|
|
175
|
-
|
|
176
|
-
|
|
210
|
+
setSelectedNode(null);
|
|
211
|
+
setPendingRepoNodeId(repoNodeId);
|
|
212
|
+
setIsCreateDrawerOpen(true);
|
|
213
|
+
}, []);
|
|
177
214
|
const handleAddFeatureToFeature = useCallback((featureNodeId) => {
|
|
178
215
|
createFeatureNode(featureNodeId);
|
|
179
216
|
}, [createFeatureNode]);
|
|
@@ -220,6 +257,7 @@ export function useControlCenterState(initialNodes, initialEdges) {
|
|
|
220
257
|
edges,
|
|
221
258
|
selectedNode,
|
|
222
259
|
isCreateDrawerOpen,
|
|
260
|
+
isSubmitting,
|
|
223
261
|
onNodesChange,
|
|
224
262
|
handleConnect,
|
|
225
263
|
clearSelection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features-canvas.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/features-canvas/features-canvas.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAcrC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"features-canvas.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/features-canvas/features-canvas.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAcrC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAwKnC,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAKxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAK5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAWzB,CAAC;AA4DF,eAAO,MAAM,mCAAmC,EAAE,KAOjD,CAAC;AAkCF,eAAO,MAAM,gCAAgC,EAAE,KAS9C,CAAC;AAgEF,eAAO,MAAM,gCAAgC,EAAE,KAW9C,CAAC;AAuDF,eAAO,MAAM,oBAAoB,EAAE,KAUlC,CAAC;AA2GF,eAAO,MAAM,oCAAoC,EAAE,KAOlD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KASvC,CAAC"}
|
package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js
CHANGED
|
@@ -24,6 +24,8 @@ const singleNode = {
|
|
|
24
24
|
lifecycle: 'requirements',
|
|
25
25
|
state: 'running',
|
|
26
26
|
progress: 45,
|
|
27
|
+
repositoryPath: '/home/user/my-repo',
|
|
28
|
+
branch: 'feat/auth-module',
|
|
27
29
|
},
|
|
28
30
|
};
|
|
29
31
|
const multipleNodes = [
|
|
@@ -38,6 +40,8 @@ const multipleNodes = [
|
|
|
38
40
|
lifecycle: 'implementation',
|
|
39
41
|
state: 'running',
|
|
40
42
|
progress: 65,
|
|
43
|
+
repositoryPath: '/home/user/my-repo',
|
|
44
|
+
branch: 'feat/auth-module',
|
|
41
45
|
},
|
|
42
46
|
},
|
|
43
47
|
{
|
|
@@ -51,6 +55,8 @@ const multipleNodes = [
|
|
|
51
55
|
lifecycle: 'research',
|
|
52
56
|
state: 'action-required',
|
|
53
57
|
progress: 20,
|
|
58
|
+
repositoryPath: '/home/user/my-repo',
|
|
59
|
+
branch: 'feat/user-dashboard',
|
|
54
60
|
},
|
|
55
61
|
},
|
|
56
62
|
{
|
|
@@ -64,6 +70,8 @@ const multipleNodes = [
|
|
|
64
70
|
lifecycle: 'deploy',
|
|
65
71
|
state: 'done',
|
|
66
72
|
progress: 100,
|
|
73
|
+
repositoryPath: '/home/user/my-repo',
|
|
74
|
+
branch: 'feat/api-gateway',
|
|
67
75
|
},
|
|
68
76
|
},
|
|
69
77
|
{
|
|
@@ -77,6 +85,8 @@ const multipleNodes = [
|
|
|
77
85
|
lifecycle: 'review',
|
|
78
86
|
state: 'blocked',
|
|
79
87
|
progress: 40,
|
|
88
|
+
repositoryPath: '/home/user/my-repo',
|
|
89
|
+
branch: 'feat/payment-integration',
|
|
80
90
|
},
|
|
81
91
|
},
|
|
82
92
|
{
|
|
@@ -90,6 +100,8 @@ const multipleNodes = [
|
|
|
90
100
|
lifecycle: 'implementation',
|
|
91
101
|
state: 'error',
|
|
92
102
|
progress: 30,
|
|
103
|
+
repositoryPath: '/home/user/my-repo',
|
|
104
|
+
branch: 'feat/email-service',
|
|
93
105
|
},
|
|
94
106
|
},
|
|
95
107
|
];
|
|
@@ -105,6 +117,8 @@ const connectedNodes = [
|
|
|
105
117
|
lifecycle: 'implementation',
|
|
106
118
|
state: 'running',
|
|
107
119
|
progress: 65,
|
|
120
|
+
repositoryPath: '/home/user/my-repo',
|
|
121
|
+
branch: 'feat/auth-module',
|
|
108
122
|
},
|
|
109
123
|
},
|
|
110
124
|
{
|
|
@@ -119,6 +133,8 @@ const connectedNodes = [
|
|
|
119
133
|
state: 'blocked',
|
|
120
134
|
progress: 10,
|
|
121
135
|
blockedBy: 'Auth Module',
|
|
136
|
+
repositoryPath: '/home/user/my-repo',
|
|
137
|
+
branch: 'feat/user-dashboard',
|
|
122
138
|
},
|
|
123
139
|
},
|
|
124
140
|
{
|
|
@@ -132,6 +148,8 @@ const connectedNodes = [
|
|
|
132
148
|
lifecycle: 'requirements',
|
|
133
149
|
state: 'action-required',
|
|
134
150
|
progress: 5,
|
|
151
|
+
repositoryPath: '/home/user/my-repo',
|
|
152
|
+
branch: 'feat/api-gateway',
|
|
135
153
|
},
|
|
136
154
|
},
|
|
137
155
|
{
|
|
@@ -146,6 +164,8 @@ const connectedNodes = [
|
|
|
146
164
|
state: 'blocked',
|
|
147
165
|
progress: 0,
|
|
148
166
|
blockedBy: 'User Dashboard',
|
|
167
|
+
repositoryPath: '/home/user/my-repo',
|
|
168
|
+
branch: 'feat/admin-panel',
|
|
149
169
|
},
|
|
150
170
|
},
|
|
151
171
|
];
|
|
@@ -220,6 +240,8 @@ const repoFeatureNodes = [
|
|
|
220
240
|
lifecycle: 'implementation',
|
|
221
241
|
state: 'running',
|
|
222
242
|
progress: 65,
|
|
243
|
+
repositoryPath: '/home/user/my-repo',
|
|
244
|
+
branch: 'feat/auth-module',
|
|
223
245
|
},
|
|
224
246
|
},
|
|
225
247
|
{
|
|
@@ -233,6 +255,8 @@ const repoFeatureNodes = [
|
|
|
233
255
|
lifecycle: 'requirements',
|
|
234
256
|
state: 'action-required',
|
|
235
257
|
progress: 20,
|
|
258
|
+
repositoryPath: '/home/user/my-repo',
|
|
259
|
+
branch: 'feat/feature-flow-canvas',
|
|
236
260
|
},
|
|
237
261
|
},
|
|
238
262
|
];
|
|
@@ -274,6 +298,8 @@ const singleRepoSingleFeatureNodes = [
|
|
|
274
298
|
lifecycle: 'implementation',
|
|
275
299
|
state: 'running',
|
|
276
300
|
progress: 65,
|
|
301
|
+
repositoryPath: '/home/user/my-repo',
|
|
302
|
+
branch: 'feat/auth-module',
|
|
277
303
|
},
|
|
278
304
|
},
|
|
279
305
|
];
|
|
@@ -312,6 +338,8 @@ const singleRepoMultiFeatNodes = [
|
|
|
312
338
|
lifecycle: 'implementation',
|
|
313
339
|
state: 'running',
|
|
314
340
|
progress: 40,
|
|
341
|
+
repositoryPath: '/home/user/my-repo',
|
|
342
|
+
branch: 'feat/sso-integration',
|
|
315
343
|
},
|
|
316
344
|
},
|
|
317
345
|
{
|
|
@@ -325,6 +353,8 @@ const singleRepoMultiFeatNodes = [
|
|
|
325
353
|
lifecycle: 'requirements',
|
|
326
354
|
state: 'action-required',
|
|
327
355
|
progress: 10,
|
|
356
|
+
repositoryPath: '/home/user/my-repo',
|
|
357
|
+
branch: 'feat/auth-module',
|
|
328
358
|
},
|
|
329
359
|
},
|
|
330
360
|
{
|
|
@@ -338,6 +368,8 @@ const singleRepoMultiFeatNodes = [
|
|
|
338
368
|
lifecycle: 'research',
|
|
339
369
|
state: 'running',
|
|
340
370
|
progress: 25,
|
|
371
|
+
repositoryPath: '/home/user/my-repo',
|
|
372
|
+
branch: 'feat/api-gateway',
|
|
341
373
|
},
|
|
342
374
|
},
|
|
343
375
|
];
|
|
@@ -384,6 +416,8 @@ const multiRepoNodes = [
|
|
|
384
416
|
lifecycle: 'implementation',
|
|
385
417
|
state: 'running',
|
|
386
418
|
progress: 65,
|
|
419
|
+
repositoryPath: '/home/user/my-repo',
|
|
420
|
+
branch: 'feat/auth-module',
|
|
387
421
|
},
|
|
388
422
|
},
|
|
389
423
|
{
|
|
@@ -397,6 +431,8 @@ const multiRepoNodes = [
|
|
|
397
431
|
lifecycle: 'requirements',
|
|
398
432
|
state: 'action-required',
|
|
399
433
|
progress: 15,
|
|
434
|
+
repositoryPath: '/home/user/my-repo',
|
|
435
|
+
branch: 'feat/dashboard-ui',
|
|
400
436
|
},
|
|
401
437
|
},
|
|
402
438
|
];
|
|
@@ -448,6 +484,8 @@ const mixedRepoFeatureNodesRaw = [
|
|
|
448
484
|
lifecycle: 'implementation',
|
|
449
485
|
state: 'running',
|
|
450
486
|
progress: 65,
|
|
487
|
+
repositoryPath: '/home/user/my-repo',
|
|
488
|
+
branch: 'feat/auth-module',
|
|
451
489
|
},
|
|
452
490
|
},
|
|
453
491
|
{
|
|
@@ -461,6 +499,8 @@ const mixedRepoFeatureNodesRaw = [
|
|
|
461
499
|
lifecycle: 'research',
|
|
462
500
|
state: 'action-required',
|
|
463
501
|
progress: 20,
|
|
502
|
+
repositoryPath: '/home/user/my-repo',
|
|
503
|
+
branch: 'feat/sso-integration',
|
|
464
504
|
},
|
|
465
505
|
},
|
|
466
506
|
{
|
|
@@ -474,6 +514,8 @@ const mixedRepoFeatureNodesRaw = [
|
|
|
474
514
|
lifecycle: 'requirements',
|
|
475
515
|
state: 'running',
|
|
476
516
|
progress: 10,
|
|
517
|
+
repositoryPath: '/home/user/my-repo',
|
|
518
|
+
branch: 'feat/api-gateway',
|
|
477
519
|
},
|
|
478
520
|
},
|
|
479
521
|
{
|
|
@@ -487,6 +529,8 @@ const mixedRepoFeatureNodesRaw = [
|
|
|
487
529
|
lifecycle: 'deploy',
|
|
488
530
|
state: 'done',
|
|
489
531
|
progress: 100,
|
|
532
|
+
repositoryPath: '/home/user/my-repo',
|
|
533
|
+
branch: 'feat/admin-panel',
|
|
490
534
|
},
|
|
491
535
|
},
|
|
492
536
|
];
|
|
@@ -39,21 +39,34 @@ async function main() {
|
|
|
39
39
|
const server = http.createServer((req, res) => {
|
|
40
40
|
handle(req, res);
|
|
41
41
|
});
|
|
42
|
+
// Forward WebSocket upgrades to Next.js for HMR/Fast Refresh
|
|
43
|
+
server.on('upgrade', (req, socket, head) => {
|
|
44
|
+
app.getUpgradeHandler()(req, socket, head);
|
|
45
|
+
});
|
|
42
46
|
await new Promise((resolve, reject) => {
|
|
43
47
|
server.on('error', reject);
|
|
44
48
|
server.listen(port, 'localhost', resolve);
|
|
45
49
|
});
|
|
46
50
|
console.log(`[dev-server] Ready at http://localhost:${port}`);
|
|
47
|
-
// Graceful shutdown
|
|
51
|
+
// Graceful shutdown with timeout to avoid hanging on open connections
|
|
48
52
|
let isShuttingDown = false;
|
|
49
53
|
const shutdown = async () => {
|
|
50
54
|
if (isShuttingDown)
|
|
51
55
|
return;
|
|
52
56
|
isShuttingDown = true;
|
|
53
57
|
console.log('\n[dev-server] Shutting down...');
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
const forceExit = setTimeout(() => process.exit(0), 2000);
|
|
59
|
+
try {
|
|
60
|
+
server.closeAllConnections();
|
|
61
|
+
await Promise.all([
|
|
62
|
+
new Promise((resolve) => server.close(() => resolve())),
|
|
63
|
+
app.close(),
|
|
64
|
+
]);
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
clearTimeout(forceExit);
|
|
68
|
+
process.exit(0);
|
|
69
|
+
}
|
|
57
70
|
};
|
|
58
71
|
process.on('SIGINT', shutdown);
|
|
59
72
|
process.on('SIGTERM', shutdown);
|