@shepai/cli 1.70.0 → 1.70.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 (124) hide show
  1. package/dist/packages/core/src/infrastructure/services/deployment/deployment-logger.d.ts +7 -0
  2. package/dist/packages/core/src/infrastructure/services/deployment/deployment-logger.d.ts.map +1 -0
  3. package/dist/packages/core/src/infrastructure/services/deployment/deployment-logger.js +17 -0
  4. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.d.ts.map +1 -1
  5. package/dist/packages/core/src/infrastructure/services/deployment/deployment.service.js +60 -7
  6. package/dist/packages/core/src/infrastructure/services/deployment/detect-dev-script.d.ts.map +1 -1
  7. package/dist/packages/core/src/infrastructure/services/deployment/detect-dev-script.js +13 -6
  8. package/dist/src/presentation/web/app/actions/deploy-feature.d.ts.map +1 -1
  9. package/dist/src/presentation/web/app/actions/deploy-feature.js +11 -0
  10. package/dist/src/presentation/web/app/actions/deploy-repository.d.ts.map +1 -1
  11. package/dist/src/presentation/web/app/actions/deploy-repository.js +8 -0
  12. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -1
  13. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.stories.js +1 -1
  14. package/dist/src/presentation/web/components/common/control-center-drawer/control-center-drawer.js +1 -1
  15. package/dist/src/presentation/web/components/common/merge-review/merge-review.js +1 -1
  16. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.js +1 -1
  17. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.js +1 -1
  18. package/dist/src/presentation/web/hooks/use-deploy-action.d.ts.map +1 -1
  19. package/dist/src/presentation/web/hooks/use-deploy-action.js +36 -5
  20. package/dist/tsconfig.build.tsbuildinfo +1 -1
  21. package/package.json +1 -1
  22. package/web/.next/BUILD_ID +1 -1
  23. package/web/.next/build-manifest.json +2 -2
  24. package/web/.next/cache/.previewinfo +1 -1
  25. package/web/.next/cache/.rscinfo +1 -1
  26. package/web/.next/cache/.tsbuildinfo +1 -1
  27. package/web/.next/cache/config.json +3 -3
  28. package/web/.next/fallback-build-manifest.json +2 -2
  29. package/web/.next/prerender-manifest.json +3 -3
  30. package/web/.next/required-server-files.js +1 -1
  31. package/web/.next/required-server-files.json +1 -1
  32. package/web/.next/server/app/_global-error.html +2 -2
  33. package/web/.next/server/app/_global-error.rsc +1 -1
  34. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  35. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  36. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  37. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  38. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  39. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  40. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/page/server-reference-manifest.json +18 -18
  42. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
  44. package/web/.next/server/app/skills/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]__249c74f6._.js +1 -1
  52. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
  53. package/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js.map +1 -1
  54. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  55. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  56. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  57. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  58. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
  59. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +1 -1
  60. package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +2 -2
  61. package/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js.map +1 -1
  62. package/web/.next/server/chunks/ssr/_49bf495c._.js +1 -1
  63. package/web/.next/server/chunks/ssr/_49bf495c._.js.map +1 -1
  64. package/web/.next/server/chunks/ssr/_68b5e0de._.js +1 -1
  65. package/web/.next/server/chunks/ssr/_68b5e0de._.js.map +1 -1
  66. package/web/.next/server/chunks/ssr/_725584e5._.js +1 -1
  67. package/web/.next/server/chunks/ssr/_725584e5._.js.map +1 -1
  68. package/web/.next/server/pages/500.html +2 -2
  69. package/web/.next/server/server-reference-manifest.js +1 -1
  70. package/web/.next/server/server-reference-manifest.json +19 -19
  71. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  72. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  73. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  74. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  75. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  76. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  77. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  78. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  79. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  80. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  81. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  82. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  83. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  84. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +18 -18
  85. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  86. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +5 -5
  87. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  88. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  89. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  90. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  91. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  92. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  93. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  94. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__551fb7e1._.js +1 -1
  95. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  96. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  97. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +2 -2
  98. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e41b5eec._.js +2 -2
  99. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_49bf495c._.js +1 -1
  100. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_68b5e0de._.js +1 -1
  101. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_725584e5._.js +1 -1
  102. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  103. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  104. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +19 -19
  105. package/web/.next/standalone/src/presentation/web/app/actions/deploy-feature.ts +16 -0
  106. package/web/.next/standalone/src/presentation/web/app/actions/deploy-repository.ts +10 -0
  107. package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.stories.tsx +1 -1
  108. package/web/.next/standalone/src/presentation/web/components/common/base-drawer/base-drawer.tsx +1 -1
  109. package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/control-center-drawer.tsx +2 -2
  110. package/web/.next/standalone/src/presentation/web/components/common/merge-review/merge-review.tsx +1 -1
  111. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.tsx +1 -1
  112. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.tsx +1 -1
  113. package/web/.next/standalone/src/presentation/web/hooks/use-deploy-action.ts +45 -5
  114. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  115. package/web/.next/static/chunks/{fdfd68aacc4727cf.js → 09e70c24eceecf48.js} +2 -2
  116. package/web/.next/static/chunks/{6d7d233d07d9a026.js → 2eae41f87676d999.js} +1 -1
  117. package/web/.next/static/chunks/4b357783626e0916.js +1 -0
  118. package/web/.next/static/chunks/{86b38e36afcd19f3.js → b581320ecaa97e4a.js} +1 -1
  119. package/web/.next/trace +1 -1
  120. package/web/.next/trace-build +1 -1
  121. package/web/.next/static/chunks/94562d62bf8e4bf7.js +0 -1
  122. /package/web/.next/static/{6pJLWKt-ohZJ_2kGrHG_m → MoPU_ZZ5QcyEys7Gfl_6r}/_buildManifest.js +0 -0
  123. /package/web/.next/static/{6pJLWKt-ohZJ_2kGrHG_m → MoPU_ZZ5QcyEys7Gfl_6r}/_clientMiddlewareManifest.json +0 -0
  124. /package/web/.next/static/{6pJLWKt-ohZJ_2kGrHG_m → MoPU_ZZ5QcyEys7Gfl_6r}/_ssgManifest.js +0 -0
@@ -56,7 +56,7 @@ export function MergeReview({
56
56
  const { pr, diffSummary, phases, branch, warning } = data;
57
57
 
58
58
  return (
59
- <div className="flex flex-1 flex-col">
59
+ <div className="flex min-h-0 flex-1 flex-col">
60
60
  <div className="flex-1 space-y-4 overflow-y-auto p-4">
61
61
  {/* Header */}
62
62
  <div className="flex items-start gap-3">
@@ -46,7 +46,7 @@ export function PrdQuestionnaire({
46
46
  if (total === 0) return null;
47
47
 
48
48
  return (
49
- <div className="flex flex-1 flex-col">
49
+ <div className="flex min-h-0 flex-1 flex-col">
50
50
  <div className="flex-1 space-y-4 overflow-y-auto p-4">
51
51
  {/* Header */}
52
52
  {showHeader ? (
@@ -131,7 +131,7 @@ export function TechDecisionsReview({
131
131
  if (decisions.length === 0) return null;
132
132
 
133
133
  return (
134
- <div className="flex flex-1 flex-col">
134
+ <div className="flex min-h-0 flex-1 flex-col">
135
135
  <div className="flex-1 space-y-4 overflow-y-auto p-4">
136
136
  {/* Header */}
137
137
  <div className="flex items-start gap-3">
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ /* eslint-disable no-console */
2
3
 
3
4
  import { useState, useCallback, useRef, useEffect } from 'react';
4
5
  import type { DeploymentState } from '@shepai/core/domain/generated/output';
@@ -24,6 +25,16 @@ export interface DeployActionState {
24
25
  url: string | null;
25
26
  }
26
27
 
28
+ const PREFIX = '[useDeployAction]';
29
+ const isDebug = !!process.env.NEXT_PUBLIC_DEBUG;
30
+ const noop = () => undefined;
31
+ const log = {
32
+ info: isDebug ? (...args: unknown[]) => console.info(PREFIX, ...args) : noop,
33
+ debug: isDebug ? (...args: unknown[]) => console.debug(PREFIX, ...args) : noop,
34
+ warn: (...args: unknown[]) => console.warn(PREFIX, ...args),
35
+ error: (...args: unknown[]) => console.error(PREFIX, ...args),
36
+ };
37
+
27
38
  const ERROR_CLEAR_DELAY = 5000;
28
39
  const POLL_INTERVAL = 3000;
29
40
 
@@ -56,6 +67,7 @@ export function useDeployAction(input: DeployActionInput | null): DeployActionSt
56
67
 
57
68
  const stopPolling = useCallback(() => {
58
69
  if (pollIntervalRef.current) {
70
+ log.debug('stopping polling');
59
71
  clearInterval(pollIntervalRef.current);
60
72
  pollIntervalRef.current = null;
61
73
  }
@@ -64,6 +76,7 @@ export function useDeployAction(input: DeployActionInput | null): DeployActionSt
64
76
  const startPolling = useCallback(
65
77
  (targetId: string) => {
66
78
  stopPolling();
79
+ log.debug(`starting polling for "${targetId}" every ${POLL_INTERVAL}ms`);
67
80
 
68
81
  pollIntervalRef.current = setInterval(async () => {
69
82
  if (!mountedRef.current) {
@@ -76,20 +89,37 @@ export function useDeployAction(input: DeployActionInput | null): DeployActionSt
76
89
  if (!mountedRef.current) return;
77
90
 
78
91
  if (!result || result.state === 'Stopped') {
92
+ log.info(
93
+ `poll result: ${result ? `state=${result.state}` : 'null (deployment gone)'} — stopping poll`
94
+ );
79
95
  setStatus(null);
80
96
  setUrl(null);
81
97
  stopPolling();
82
98
  } else {
99
+ if (result.state !== status) {
100
+ log.info(`poll state changed: ${status} → ${result.state}, url=${result.url}`);
101
+ }
83
102
  setStatus(result.state as DeploymentState);
84
103
  setUrl(result.url);
85
104
  }
86
105
  }, POLL_INTERVAL);
87
106
  },
88
- [stopPolling]
107
+ [stopPolling, status]
89
108
  );
90
109
 
91
110
  const handleDeploy = useCallback(async () => {
92
- if (!input || deployLoading) return;
111
+ if (!input) {
112
+ log.warn('deploy() called but input is null — no-op');
113
+ return;
114
+ }
115
+ if (deployLoading) {
116
+ log.warn('deploy() called but already loading — no-op');
117
+ return;
118
+ }
119
+
120
+ log.info(
121
+ `deploy() — targetType="${input.targetType}", targetId="${input.targetId}", repositoryPath="${input.repositoryPath}"`
122
+ );
93
123
 
94
124
  if (errorTimerRef.current) clearTimeout(errorTimerRef.current);
95
125
 
@@ -102,13 +132,20 @@ export function useDeployAction(input: DeployActionInput | null): DeployActionSt
102
132
  ? await deployFeature(input.targetId)
103
133
  : await deployRepository(input.repositoryPath);
104
134
 
105
- if (!mountedRef.current) return;
135
+ log.info('server action result:', result);
136
+
137
+ if (!mountedRef.current) {
138
+ log.warn('component unmounted after deploy — discarding result');
139
+ return;
140
+ }
106
141
 
107
142
  if (!result.success) {
108
143
  const errorMessage = result.error ?? 'An unexpected error occurred';
144
+ log.error(`deploy failed: ${errorMessage}`);
109
145
  setDeployError(errorMessage);
110
146
  errorTimerRef.current = setTimeout(() => setDeployError(null), ERROR_CLEAR_DELAY);
111
147
  } else {
148
+ log.info(`deploy succeeded — initial state=${result.state}, starting polling`);
112
149
  setStatus(result.state ?? null);
113
150
  setUrl(null);
114
151
  startPolling(input.targetId);
@@ -116,6 +153,7 @@ export function useDeployAction(input: DeployActionInput | null): DeployActionSt
116
153
  } catch (err: unknown) {
117
154
  if (!mountedRef.current) return;
118
155
  const errorMessage = err instanceof Error ? err.message : 'An unexpected error occurred';
156
+ log.error(`deploy threw exception: ${errorMessage}`, err);
119
157
  setDeployError(errorMessage);
120
158
  errorTimerRef.current = setTimeout(() => setDeployError(null), ERROR_CLEAR_DELAY);
121
159
  } finally {
@@ -128,10 +166,12 @@ export function useDeployAction(input: DeployActionInput | null): DeployActionSt
128
166
  const handleStop = useCallback(async () => {
129
167
  if (!input || stopLoading) return;
130
168
 
169
+ log.info(`stop() — targetId="${input.targetId}"`);
131
170
  setStopLoading(true);
132
171
 
133
172
  try {
134
173
  const result = await stopDeployment(input.targetId);
174
+ log.info('stop result:', result);
135
175
 
136
176
  if (!mountedRef.current) return;
137
177
 
@@ -140,8 +180,8 @@ export function useDeployAction(input: DeployActionInput | null): DeployActionSt
140
180
  setStatus(null);
141
181
  setUrl(null);
142
182
  }
143
- } catch {
144
- // Stop errors are non-critical; process may have already exited
183
+ } catch (err) {
184
+ log.warn('stop error (non-critical):', err);
145
185
  } finally {
146
186
  if (mountedRef.current) {
147
187
  setStopLoading(false);
@@ -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.69.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.70.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