@shepai/cli 1.58.0 → 1.59.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.
Files changed (119) hide show
  1. package/dist/src/presentation/web/app/page.d.ts.map +1 -1
  2. package/dist/src/presentation/web/app/page.js +9 -0
  3. package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.d.ts +5 -0
  4. package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.d.ts.map +1 -0
  5. package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.js +14 -0
  6. package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.stories.d.ts +12 -0
  7. package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.stories.d.ts.map +1 -0
  8. package/dist/src/presentation/web/components/common/ci-status-badge/ci-status-badge.stories.js +20 -0
  9. package/dist/src/presentation/web/components/common/ci-status-badge/index.d.ts +2 -0
  10. package/dist/src/presentation/web/components/common/ci-status-badge/index.d.ts.map +1 -0
  11. package/dist/src/presentation/web/components/common/ci-status-badge/index.js +1 -0
  12. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +1 -1
  13. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +13 -2
  14. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts +8 -0
  15. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +1 -1
  16. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +41 -0
  17. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +9 -0
  18. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  19. package/dist/src/presentation/web/components/common/merge-review/merge-review.d.ts.map +1 -1
  20. package/dist/src/presentation/web/components/common/merge-review/merge-review.js +2 -12
  21. package/dist/tsconfig.build.tsbuildinfo +1 -1
  22. package/package.json +1 -1
  23. package/web/.next/BUILD_ID +1 -1
  24. package/web/.next/build-manifest.json +2 -2
  25. package/web/.next/cache/.previewinfo +1 -1
  26. package/web/.next/cache/.rscinfo +1 -1
  27. package/web/.next/cache/.tsbuildinfo +1 -1
  28. package/web/.next/cache/config.json +3 -3
  29. package/web/.next/fallback-build-manifest.json +2 -2
  30. package/web/.next/prerender-manifest.json +3 -3
  31. package/web/.next/required-server-files.js +1 -1
  32. package/web/.next/required-server-files.json +1 -1
  33. package/web/.next/server/app/_global-error.html +2 -2
  34. package/web/.next/server/app/_global-error.rsc +1 -1
  35. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  36. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  38. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  39. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  40. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  41. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/page/server-reference-manifest.json +14 -14
  43. package/web/.next/server/app/page.js.nft.json +1 -1
  44. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  46. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  48. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  50. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  51. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  52. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  53. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  54. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  55. package/web/.next/server/chunks/ssr/[root-of-the-server]__86c7bba5._.js +2 -2
  56. package/web/.next/server/chunks/ssr/[root-of-the-server]__86c7bba5._.js.map +1 -1
  57. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
  58. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +1 -1
  59. package/web/.next/server/chunks/ssr/{[root-of-the-server]__847521e6._.js → [root-of-the-server]__bced1185._.js} +2 -2
  60. package/web/.next/server/chunks/ssr/{[root-of-the-server]__847521e6._.js.map → [root-of-the-server]__bced1185._.js.map} +1 -1
  61. package/web/.next/server/chunks/ssr/[root-of-the-server]__fbc89707._.js +1 -1
  62. package/web/.next/server/chunks/ssr/_027596cf._.js +1 -1
  63. package/web/.next/server/chunks/ssr/_027596cf._.js.map +1 -1
  64. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
  65. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js.map +1 -1
  66. package/web/.next/server/pages/500.html +2 -2
  67. package/web/.next/server/server-reference-manifest.js +1 -1
  68. package/web/.next/server/server-reference-manifest.json +15 -15
  69. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  70. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  71. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  72. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  73. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  74. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  75. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  76. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  77. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  78. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  79. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  80. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  81. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  82. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +14 -14
  83. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +1 -1
  84. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  85. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  86. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  87. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  88. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  89. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  90. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  91. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  92. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__86c7bba5._.js +2 -2
  93. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
  94. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__847521e6._.js → [root-of-the-server]__bced1185._.js} +2 -2
  95. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fbc89707._.js +1 -1
  96. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_027596cf._.js +1 -1
  97. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
  98. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  99. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  100. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +15 -15
  101. package/web/.next/standalone/src/presentation/web/app/page.tsx +9 -0
  102. package/web/.next/standalone/src/presentation/web/components/common/ci-status-badge/ci-status-badge.stories.tsx +27 -0
  103. package/web/.next/standalone/src/presentation/web/components/common/ci-status-badge/ci-status-badge.tsx +29 -0
  104. package/web/.next/standalone/src/presentation/web/components/common/ci-status-badge/index.ts +1 -0
  105. package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.tsx +53 -0
  106. package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/feature-drawer.tsx +61 -1
  107. package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node-state-config.ts +9 -0
  108. package/web/.next/standalone/src/presentation/web/components/common/merge-review/merge-review.tsx +1 -29
  109. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  110. package/web/.next/static/chunks/{eb0e60434c992fc1.js → 4f7d89c9e09aed99.js} +2 -2
  111. package/web/.next/static/chunks/{7138c478667158d0.js → 6d33cb9af6245c98.js} +1 -1
  112. package/web/.next/static/chunks/b511c65023ec1889.css +2 -0
  113. package/web/.next/static/chunks/{3f5de337d3fc604f.js → d85b95e893db08bc.js} +1 -1
  114. package/web/.next/trace +1 -1
  115. package/web/.next/trace-build +1 -1
  116. package/web/.next/static/chunks/60bbbe7ff679eb4c.css +0 -2
  117. /package/web/.next/static/{e7Q45G0MI6cgci9Gn2J-i → xjc1tfvwTdK1Xv5Id2oaO}/_buildManifest.js +0 -0
  118. /package/web/.next/static/{e7Q45G0MI6cgci9Gn2J-i → xjc1tfvwTdK1Xv5Id2oaO}/_clientMiddlewareManifest.json +0 -0
  119. /package/web/.next/static/{e7Q45G0MI6cgci9Gn2J-i → xjc1tfvwTdK1Xv5Id2oaO}/_ssgManifest.js +0 -0
@@ -1,5 +1,6 @@
1
1
  import { useState } from 'react';
2
2
  import type { Meta, StoryObj } from '@storybook/react';
3
+ import { PrStatus, CiStatus } from '@shepai/core/domain/generated/output';
3
4
  import { FeatureDrawer } from './feature-drawer';
4
5
  import type { FeatureNodeData } from '@/components/common/feature-node';
5
6
  import type { FeatureLifecyclePhase, FeatureNodeState } from '@/components/common/feature-node';
@@ -353,3 +354,55 @@ export const DeletingState: Story = {
353
354
  export const DeleteRunningAgent: Story = {
354
355
  render: () => <DrawerTriggerWithDelete data={runningData} label="Open Running Agent Delete" />,
355
356
  };
357
+
358
+ /* ---------------------------------------------------------------------------
359
+ * PR info stories
360
+ * ------------------------------------------------------------------------- */
361
+
362
+ const doneWithPrData: FeatureNodeData = {
363
+ ...doneData,
364
+ pr: {
365
+ url: 'https://github.com/org/repo/pull/42',
366
+ number: 42,
367
+ status: PrStatus.Merged,
368
+ ciStatus: CiStatus.Success,
369
+ commitHash: 'abc1234567890def',
370
+ },
371
+ };
372
+
373
+ const doneWithPartialPrData: FeatureNodeData = {
374
+ ...doneData,
375
+ pr: {
376
+ url: 'https://github.com/org/repo/pull/99',
377
+ number: 99,
378
+ status: PrStatus.Merged,
379
+ },
380
+ };
381
+
382
+ /** Done feature with full PR card — number, status, CI, commit hash. */
383
+ export const DoneWithPr: Story = {
384
+ render: () => <DrawerTrigger data={doneWithPrData} label="Open Done + PR" />,
385
+ };
386
+
387
+ /** Done feature with partial PR data — no CI status, no commit hash. */
388
+ export const DoneWithPartialPr: Story = {
389
+ render: () => <DrawerTrigger data={doneWithPartialPrData} label="Open Done + Partial PR" />,
390
+ };
391
+
392
+ /** PR with Open status — blue badge. */
393
+ export const PrStatusOpen: Story = {
394
+ render: () => (
395
+ <DrawerTrigger
396
+ data={{
397
+ ...doneWithPrData,
398
+ pr: { ...doneWithPrData.pr!, status: PrStatus.Open, ciStatus: CiStatus.Pending },
399
+ }}
400
+ label="Open PR Status: Open"
401
+ />
402
+ ),
403
+ };
404
+
405
+ /** PR with Merged status — purple badge. */
406
+ export const PrStatusMerged: Story = {
407
+ render: () => <DrawerTrigger data={doneWithPrData} label="Open PR Status: Merged" />,
408
+ };
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { XIcon, Loader2, Trash2 } from 'lucide-react';
3
+ import { XIcon, Loader2, Trash2, ExternalLink, GitCommitHorizontal } from 'lucide-react';
4
+ import { PrStatus } from '@shepai/core/domain/generated/output';
4
5
  import { cn } from '@/lib/utils';
5
6
  import { OpenActionMenu } from '@/components/common/open-action-menu';
6
7
  import {
@@ -11,6 +12,7 @@ import {
11
12
  DrawerDescription,
12
13
  } from '@/components/ui/drawer';
13
14
  import { Button } from '@/components/ui/button';
15
+ import { Badge } from '@/components/ui/badge';
14
16
  import { Separator } from '@/components/ui/separator';
15
17
  import { CometSpinner } from '@/components/ui/comet-spinner';
16
18
  import {
@@ -24,6 +26,7 @@ import {
24
26
  AlertDialogTitle,
25
27
  AlertDialogTrigger,
26
28
  } from '@/components/ui/alert-dialog';
29
+ import { CiStatusBadge } from '@/components/common/ci-status-badge';
27
30
  import { featureNodeStateConfig, lifecycleDisplayLabels } from '@/components/common/feature-node';
28
31
  import type { FeatureNodeData } from '@/components/common/feature-node';
29
32
  import { useFeatureActions } from './use-feature-actions';
@@ -108,6 +111,14 @@ export function FeatureDrawer({
108
111
  ) : null}
109
112
  </div>
110
113
 
114
+ {/* PR info */}
115
+ {selectedNode.pr ? (
116
+ <>
117
+ <Separator />
118
+ <PrInfoSection pr={selectedNode.pr} />
119
+ </>
120
+ ) : null}
121
+
111
122
  <Separator />
112
123
 
113
124
  {/* Details */}
@@ -213,6 +224,55 @@ function DetailRow({ label, value }: { label: string; value: string }) {
213
224
  );
214
225
  }
215
226
 
227
+ const prStatusStyles: Record<PrStatus, string> = {
228
+ [PrStatus.Open]: 'border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50',
229
+ [PrStatus.Merged]: 'border-transparent bg-purple-50 text-purple-700 hover:bg-purple-50',
230
+ [PrStatus.Closed]: 'border-transparent bg-red-50 text-red-700 hover:bg-red-50',
231
+ };
232
+
233
+ function PrInfoSection({ pr }: { pr: NonNullable<FeatureNodeData['pr']> }) {
234
+ return (
235
+ <div data-testid="feature-drawer-pr" className="border-border mx-4 rounded-lg border">
236
+ <div className="space-y-3 px-4 py-3">
237
+ {/* PR number + link */}
238
+ <div className="flex items-center justify-between">
239
+ <a
240
+ href={pr.url}
241
+ target="_blank"
242
+ rel="noopener noreferrer"
243
+ className="text-primary flex items-center gap-1.5 text-sm font-semibold underline underline-offset-2"
244
+ >
245
+ PR #{pr.number}
246
+ <ExternalLink className="h-3.5 w-3.5" />
247
+ </a>
248
+ <Badge className={prStatusStyles[pr.status]}>{pr.status}</Badge>
249
+ </div>
250
+
251
+ {/* CI status */}
252
+ {pr.ciStatus ? (
253
+ <div className="flex items-center justify-between">
254
+ <span className="text-muted-foreground text-xs font-medium">CI Status</span>
255
+ <CiStatusBadge status={pr.ciStatus} />
256
+ </div>
257
+ ) : null}
258
+
259
+ {/* Commit hash */}
260
+ {pr.commitHash ? (
261
+ <div className="flex items-center justify-between">
262
+ <span className="text-muted-foreground text-xs font-medium">Commit</span>
263
+ <div className="flex items-center gap-1.5">
264
+ <GitCommitHorizontal className="text-muted-foreground h-3.5 w-3.5" />
265
+ <code className="bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]">
266
+ {pr.commitHash.slice(0, 7)}
267
+ </code>
268
+ </div>
269
+ </div>
270
+ ) : null}
271
+ </div>
272
+ </div>
273
+ );
274
+ }
275
+
216
276
  function DrawerActions({
217
277
  repositoryPath,
218
278
  branch,
@@ -1,5 +1,6 @@
1
1
  import { Loader2, CircleAlert, CircleCheck, Ban, CircleX, type LucideIcon } from 'lucide-react';
2
2
  import type { Node } from '@xyflow/react';
3
+ import type { PrStatus, CiStatus } from '@shepai/core/domain/generated/output';
3
4
  import type { AgentTypeValue } from './agent-type-icons';
4
5
 
5
6
  export type FeatureNodeState =
@@ -60,6 +61,14 @@ export interface FeatureNodeData {
60
61
  errorMessage?: string;
61
62
  /** Agent executor type (e.g. "claude-code", "cursor"). */
62
63
  agentType?: AgentTypeValue;
64
+ /** PR metadata for features with an associated pull request */
65
+ pr?: {
66
+ url: string;
67
+ number: number;
68
+ status: PrStatus;
69
+ ciStatus?: CiStatus;
70
+ commitHash?: string;
71
+ };
63
72
  onAction?: () => void;
64
73
  onSettings?: () => void;
65
74
  showHandles?: boolean;
@@ -1,11 +1,9 @@
1
1
  'use client';
2
2
 
3
3
  import {
4
- CheckCircle2,
5
4
  ExternalLink,
6
5
  GitMerge,
7
6
  Loader2,
8
- XCircle,
9
7
  AlertTriangle,
10
8
  FileDiff,
11
9
  GitCommitHorizontal,
@@ -13,37 +11,11 @@ import {
13
11
  ArrowRight,
14
12
  Layers,
15
13
  } from 'lucide-react';
16
- import { CiStatus } from '@shepai/core/domain/generated/output';
17
14
  import { Badge } from '@/components/ui/badge';
15
+ import { CiStatusBadge } from '@/components/common/ci-status-badge';
18
16
  import { DrawerActionBar } from '@/components/common/drawer-action-bar';
19
17
  import type { MergeReviewProps, MergeReviewPhase } from './merge-review-config';
20
18
 
21
- function CiStatusBadge({ status }: { status: CiStatus }) {
22
- switch (status) {
23
- case CiStatus.Success:
24
- return (
25
- <Badge className="border-transparent bg-green-50 text-green-700 hover:bg-green-50">
26
- <CheckCircle2 className="mr-1 h-3.5 w-3.5" />
27
- Passing
28
- </Badge>
29
- );
30
- case CiStatus.Pending:
31
- return (
32
- <Badge className="border-transparent bg-yellow-50 text-yellow-700 hover:bg-yellow-50">
33
- <Loader2 className="mr-1 h-3.5 w-3.5 animate-spin" />
34
- Pending
35
- </Badge>
36
- );
37
- case CiStatus.Failure:
38
- return (
39
- <Badge className="border-transparent bg-red-50 text-red-700 hover:bg-red-50">
40
- <XCircle className="mr-1 h-3.5 w-3.5" />
41
- Failing
42
- </Badge>
43
- );
44
- }
45
- }
46
-
47
19
  function PhaseList({ phases }: { phases: MergeReviewPhase[] }) {
48
20
  return (
49
21
  <div className="border-border rounded-lg border">
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
15
15
  const hostname = process.env.HOSTNAME || '0.0.0.0'
16
16
 
17
17
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
18
- const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.57.0","NEXT_PUBLIC_SHEP_PACKAGE_NAME":"@shepai/cli","NEXT_PUBLIC_SHEP_DESCRIPTION":"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":true,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/cli/cli","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/cli/cli"},"serverExternalPackages":["tsyringe","reflect-metadata","better-sqlite3","node:os","node:child_process","node:fs"],"distDirRoot":".next"}
18
+ const nextConfig = {"env":{"NEXT_PUBLIC_SHEP_VERSION":"1.58.0","NEXT_PUBLIC_SHEP_PACKAGE_NAME":"@shepai/cli","NEXT_PUBLIC_SHEP_DESCRIPTION":"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":true,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/cli/cli","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/cli/cli"},"serverExternalPackages":["tsyringe","reflect-metadata","better-sqlite3","node:os","node:child_process","node:fs"],"distDirRoot":".next"}
19
19
 
20
20
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
21
21