@shepai/cli 1.53.0 → 1.53.2

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 (86) hide show
  1. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  2. package/dist/src/presentation/cli/commands/feat/ls.command.js +1 -0
  3. package/dist/src/presentation/web/app/page.d.ts.map +1 -1
  4. package/dist/src/presentation/web/app/page.js +0 -27
  5. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-button.d.ts +6 -0
  6. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-button.d.ts.map +1 -0
  7. package/dist/src/presentation/web/components/common/add-repository-node/add-repository-button.js +23 -0
  8. package/dist/src/presentation/web/components/common/add-repository-node/index.d.ts +1 -0
  9. package/dist/src/presentation/web/components/common/add-repository-node/index.d.ts.map +1 -1
  10. package/dist/src/presentation/web/components/common/add-repository-node/index.js +1 -0
  11. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  12. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +3 -3
  13. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts +1 -0
  14. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts.map +1 -1
  15. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +31 -1
  16. package/dist/tsconfig.build.tsbuildinfo +1 -1
  17. package/package.json +1 -1
  18. package/web/.next/BUILD_ID +1 -1
  19. package/web/.next/build-manifest.json +2 -2
  20. package/web/.next/cache/.previewinfo +1 -1
  21. package/web/.next/cache/.rscinfo +1 -1
  22. package/web/.next/cache/.tsbuildinfo +1 -1
  23. package/web/.next/cache/config.json +3 -3
  24. package/web/.next/fallback-build-manifest.json +2 -2
  25. package/web/.next/prerender-manifest.json +3 -3
  26. package/web/.next/required-server-files.js +1 -1
  27. package/web/.next/required-server-files.json +1 -1
  28. package/web/.next/server/app/_global-error.html +2 -2
  29. package/web/.next/server/app/_global-error.rsc +1 -1
  30. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  31. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  32. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  33. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  34. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  35. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/page/server-reference-manifest.json +14 -14
  37. package/web/.next/server/app/page.js.nft.json +1 -1
  38. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js +2 -2
  41. package/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js.map +1 -1
  42. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  43. package/web/.next/server/chunks/ssr/[root-of-the-server]__2d1a8e37._.js +2 -2
  44. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
  45. package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js.map +1 -1
  46. package/web/.next/server/pages/500.html +2 -2
  47. package/web/.next/server/server-reference-manifest.js +1 -1
  48. package/web/.next/server/server-reference-manifest.json +15 -15
  49. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  50. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  51. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  52. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  53. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  54. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  55. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  56. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  57. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  58. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  59. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  60. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  61. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +14 -14
  62. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +1 -1
  63. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  64. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  65. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js +2 -2
  66. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  67. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2d1a8e37._.js +2 -2
  68. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
  69. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  70. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  71. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +15 -15
  72. package/web/.next/standalone/src/presentation/web/app/page.tsx +0 -30
  73. package/web/.next/standalone/src/presentation/web/components/common/add-repository-node/add-repository-button.tsx +43 -0
  74. package/web/.next/standalone/src/presentation/web/components/common/add-repository-node/index.ts +1 -0
  75. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.stories.tsx +41 -0
  76. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +7 -2
  77. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  78. package/web/.next/static/chunks/13d5334b17480a16.js +10 -0
  79. package/web/.next/static/chunks/16dec8021e251230.css +2 -0
  80. package/web/.next/trace +1 -1
  81. package/web/.next/trace-build +1 -1
  82. package/web/.next/static/chunks/48309f9ad2a84b15.css +0 -2
  83. package/web/.next/static/chunks/5123ae1490fd2606.js +0 -10
  84. /package/web/.next/static/{OXSWdTgy-1XJBN9IJtQPz → nFvWyY2BF3AIS3FpZBKEb}/_buildManifest.js +0 -0
  85. /package/web/.next/static/{OXSWdTgy-1XJBN9IJtQPz → nFvWyY2BF3AIS3FpZBKEb}/_clientMiddlewareManifest.json +0 -0
  86. /package/web/.next/static/{OXSWdTgy-1XJBN9IJtQPz → nFvWyY2BF3AIS3FpZBKEb}/_ssgManifest.js +0 -0
@@ -150,36 +150,6 @@ export default async function HomePage() {
150
150
  nodesep: 15,
151
151
  });
152
152
 
153
- // Position "+ Add Repository" below the last repo node (no-features case) or
154
- // vertically centered with a bottom feature node (features case).
155
- const repoNodes = laid.nodes.filter((n) => n.type === 'repositoryNode');
156
- const featureNodes = laid.nodes.filter((n) => n.type === 'featureNode');
157
- const repoX = repoNodes[0]?.position.x ?? 0;
158
-
159
- let addRepoPosition: { x: number; y: number };
160
- if (featureNodes.length > 0) {
161
- // Mirror how dagre centers repo nodes with their connected features
162
- const sortedFeatures = [...featureNodes].sort((a, b) => a.position.y - b.position.y);
163
- const centerIdx = Math.floor(sortedFeatures.length / 2);
164
- const targetFeature =
165
- sortedFeatures[centerIdx + 1] ?? sortedFeatures[sortedFeatures.length - 1];
166
- // Center the add-repo node (h=50) with the target feature node (h=140)
167
- addRepoPosition = { x: repoX, y: targetFeature.position.y + 70 - 25 };
168
- } else {
169
- // No features — place below the bottom-most repo node with a gap
170
- const lastRepoY = repoNodes.length > 0 ? Math.max(...repoNodes.map((n) => n.position.y)) : 0;
171
- const repoHeight = 50;
172
- const gap = 200;
173
- addRepoPosition = { x: repoX, y: lastRepoY + repoHeight + gap };
174
- }
175
-
176
- laid.nodes.push({
177
- id: 'add-repository',
178
- type: 'addRepositoryNode',
179
- position: addRepoPosition,
180
- data: {},
181
- } as CanvasNodeType);
182
-
183
153
  return (
184
154
  <div className="h-screen w-full">
185
155
  <ControlCenter initialNodes={laid.nodes} initialEdges={laid.edges} />
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+
3
+ import { useState } from 'react';
4
+ import { Plus, Loader2 } from 'lucide-react';
5
+ import { pickFolder } from './pick-folder';
6
+
7
+ interface AddRepositoryButtonProps {
8
+ onSelect?: (path: string) => void;
9
+ }
10
+
11
+ export function AddRepositoryButton({ onSelect }: AddRepositoryButtonProps) {
12
+ const [loading, setLoading] = useState(false);
13
+
14
+ async function handleClick() {
15
+ if (loading) return;
16
+ setLoading(true);
17
+ try {
18
+ const path = await pickFolder();
19
+ if (path) {
20
+ onSelect?.(path);
21
+ }
22
+ } finally {
23
+ setLoading(false);
24
+ }
25
+ }
26
+
27
+ return (
28
+ <button
29
+ type="button"
30
+ data-testid="add-repository-button"
31
+ onClick={handleClick}
32
+ disabled={loading}
33
+ className="border-muted-foreground/30 flex cursor-pointer items-center gap-2 rounded-full border-2 border-dashed px-3 py-1.5 text-xs transition-colors hover:border-blue-500 hover:text-blue-500 disabled:cursor-wait disabled:opacity-60"
34
+ >
35
+ {loading ? (
36
+ <Loader2 className="h-3.5 w-3.5 shrink-0 animate-spin" />
37
+ ) : (
38
+ <Plus className="h-3.5 w-3.5 shrink-0" />
39
+ )}
40
+ <span className="font-medium">{loading ? 'Opening...' : 'Add Repository'}</span>
41
+ </button>
42
+ );
43
+ }
@@ -1,2 +1,3 @@
1
1
  export { AddRepositoryNode } from './add-repository-node';
2
+ export { AddRepositoryButton } from './add-repository-button';
2
3
  export type { AddRepositoryNodeData, AddRepositoryNodeType } from './add-repository-node-config';
@@ -608,3 +608,44 @@ export const InteractiveWithRepository: Story = {
608
608
  onRepositoryAdd: () => undefined,
609
609
  },
610
610
  };
611
+
612
+ // Story to visually verify the Add Repository button does not overlap the ThemeToggle.
613
+ // The simulated ThemeToggle (top-3 right-3, 40×40 px) is rendered as an overlay so
614
+ // reviewers can confirm the mr-16 (64 px) gap keeps the Panel clear of the toggle zone.
615
+ export const AddRepositoryButtonClearanceCheck: Story = {
616
+ decorators: [
617
+ (Story) => (
618
+ <div style={{ height: '100vh', position: 'relative' }}>
619
+ <Story />
620
+ {/* Simulated ThemeToggle at top-3 right-3 (same position as AppShell) */}
621
+ <div
622
+ style={{
623
+ position: 'absolute',
624
+ top: 12,
625
+ right: 12,
626
+ width: 40,
627
+ height: 40,
628
+ background: 'rgba(255, 0, 0, 0.35)',
629
+ border: '2px dashed red',
630
+ borderRadius: 6,
631
+ display: 'flex',
632
+ alignItems: 'center',
633
+ justifyContent: 'center',
634
+ fontSize: 10,
635
+ pointerEvents: 'none',
636
+ zIndex: 50,
637
+ }}
638
+ >
639
+ Theme
640
+ </div>
641
+ </div>
642
+ ),
643
+ ],
644
+ args: {
645
+ nodes: repoFeatureNodes,
646
+ edges: repoFeatureEdges,
647
+ onNodeAction: () => undefined,
648
+ onNodeSettings: () => undefined,
649
+ onRepositorySelect: () => undefined,
650
+ },
651
+ };
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { useCallback, useMemo } from 'react';
4
- import { ReactFlow, Background, Controls, ReactFlowProvider } from '@xyflow/react';
4
+ import { ReactFlow, Background, Controls, Panel, ReactFlowProvider } from '@xyflow/react';
5
5
  import type { Connection, Edge, NodeChange } from '@xyflow/react';
6
6
  import { Plus } from 'lucide-react';
7
7
  import { Button } from '@/components/ui/button';
@@ -10,7 +10,7 @@ import { FeatureNode } from '@/components/common/feature-node';
10
10
  import type { FeatureNodeType, FeatureNodeData } from '@/components/common/feature-node';
11
11
  import { RepositoryNode } from '@/components/common/repository-node';
12
12
  import type { RepositoryNodeType } from '@/components/common/repository-node';
13
- import { AddRepositoryNode } from '@/components/common/add-repository-node';
13
+ import { AddRepositoryButton, AddRepositoryNode } from '@/components/common/add-repository-node';
14
14
  import type { AddRepositoryNodeType } from '@/components/common/add-repository-node';
15
15
  import { DependencyEdge } from './dependency-edge';
16
16
 
@@ -158,6 +158,11 @@ export function FeaturesCanvas({
158
158
  >
159
159
  <Background />
160
160
  <Controls />
161
+ {onRepositorySelect ? (
162
+ <Panel position="top-right" className="mr-16">
163
+ <AddRepositoryButton onSelect={onRepositorySelect} />
164
+ </Panel>
165
+ ) : null}
161
166
  {toolbar}
162
167
  </ReactFlow>
163
168
  </ReactFlowProvider>
@@ -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.52.2","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.53.1","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