vibeman 0.0.3 → 0.0.5

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 (184) hide show
  1. package/dist/index.js +3 -3
  2. package/dist/runtime/api/.tsbuildinfo +1 -1
  3. package/dist/runtime/api/agent/agent-service.d.ts +4 -0
  4. package/dist/runtime/api/agent/agent-service.js +62 -3
  5. package/dist/runtime/api/agent/ai-providers/amp-cli-provider.d.ts +38 -0
  6. package/dist/runtime/api/agent/ai-providers/amp-cli-provider.js +268 -0
  7. package/dist/runtime/api/agent/ai-providers/codex-cli-provider.js +40 -12
  8. package/dist/runtime/api/agent/ai-providers/gemini-cli-provider.d.ts +24 -0
  9. package/dist/runtime/api/agent/ai-providers/gemini-cli-provider.js +291 -0
  10. package/dist/runtime/api/agent/ai-providers/index.d.ts +3 -3
  11. package/dist/runtime/api/agent/ai-providers/index.js +3 -1
  12. package/dist/runtime/api/agent/ai-providers/types.d.ts +5 -2
  13. package/dist/runtime/api/agent/amp-cli-provider.test.d.ts +1 -0
  14. package/dist/runtime/api/agent/amp-cli-provider.test.js +99 -0
  15. package/dist/runtime/api/agent/codex-cli-provider.test.js +10 -8
  16. package/dist/runtime/api/agent/prompt-service.js +108 -105
  17. package/dist/runtime/api/agent/prompt-service.test.js +35 -0
  18. package/dist/runtime/api/agent/routing-policy.d.ts +2 -2
  19. package/dist/runtime/api/agent/routing-policy.test.js +4 -4
  20. package/dist/runtime/api/api/routers/ai.d.ts +3 -3
  21. package/dist/runtime/api/api/routers/executions.d.ts +2 -7
  22. package/dist/runtime/api/api/routers/executions.js +2 -2
  23. package/dist/runtime/api/api/routers/provider-config.d.ts +34 -0
  24. package/dist/runtime/api/api/routers/settings.d.ts +19 -0
  25. package/dist/runtime/api/api/routers/settings.js +16 -0
  26. package/dist/runtime/api/api/routers/tasks.d.ts +9 -9
  27. package/dist/runtime/api/api/routers/workflows.d.ts +12 -12
  28. package/dist/runtime/api/api/routers/worktrees.d.ts +2 -2
  29. package/dist/runtime/api/api/trpc.d.ts +16 -16
  30. package/dist/runtime/api/lib/local-config.d.ts +94 -4
  31. package/dist/runtime/api/lib/local-config.js +16 -0
  32. package/dist/runtime/api/lib/provider-detection.d.ts +2 -0
  33. package/dist/runtime/api/lib/provider-detection.js +83 -1
  34. package/dist/runtime/api/lib/server/vibeman-info.d.ts +5 -0
  35. package/dist/runtime/api/lib/server/vibeman-info.js +85 -0
  36. package/dist/runtime/api/lib/trpc/server.d.ts +63 -33
  37. package/dist/runtime/api/persistence/execution-log-persistence.d.ts +1 -1
  38. package/dist/runtime/api/persistence/execution-log-persistence.js +19 -3
  39. package/dist/runtime/api/router.d.ts +63 -33
  40. package/dist/runtime/api/settings-service.js +31 -14
  41. package/dist/runtime/api/tasks/task-file-parser.d.ts +1 -0
  42. package/dist/runtime/api/tasks/task-file-parser.js +20 -1
  43. package/dist/runtime/api/tasks/task-updater.d.ts +62 -0
  44. package/dist/runtime/api/tasks/task-updater.js +260 -0
  45. package/dist/runtime/api/tasks/task-updater.test.d.ts +1 -0
  46. package/dist/runtime/api/tasks/task-updater.test.js +303 -0
  47. package/dist/runtime/api/types/index.d.ts +1 -1
  48. package/dist/runtime/api/types/settings.d.ts +17 -6
  49. package/dist/runtime/api/vcs/git-service.d.ts +9 -0
  50. package/dist/runtime/api/vcs/git-service.js +23 -0
  51. package/dist/runtime/api/vcs/worktree-service.d.ts +1 -1
  52. package/dist/runtime/api/vcs/worktree-service.js +22 -10
  53. package/dist/runtime/api/workflows/quality-pipeline.js +2 -1
  54. package/dist/runtime/api/workflows/vibing-orchestrator.d.ts +93 -5
  55. package/dist/runtime/api/workflows/vibing-orchestrator.js +774 -203
  56. package/dist/runtime/api/workflows/workflow-effects.d.ts +45 -0
  57. package/dist/runtime/api/workflows/workflow-effects.js +49 -0
  58. package/dist/runtime/api/workflows/workflow-reconciler.d.ts +65 -0
  59. package/dist/runtime/api/workflows/workflow-reconciler.js +226 -0
  60. package/dist/runtime/api/workflows/workflow-reducer.d.ts +26 -0
  61. package/dist/runtime/api/workflows/workflow-reducer.js +288 -0
  62. package/dist/runtime/api/workflows/workflow-reducer.test.d.ts +1 -0
  63. package/dist/runtime/api/workflows/workflow-reducer.test.js +247 -0
  64. package/dist/runtime/api/workflows/workflow-schema.d.ts +546 -0
  65. package/dist/runtime/api/workflows/workflow-schema.js +256 -0
  66. package/dist/runtime/web/.next/BUILD_ID +1 -1
  67. package/dist/runtime/web/.next/app-build-manifest.json +50 -50
  68. package/dist/runtime/web/.next/app-path-routes-manifest.json +1 -1
  69. package/dist/runtime/web/.next/build-manifest.json +14 -14
  70. package/dist/runtime/web/.next/prerender-manifest.json +3 -3
  71. package/dist/runtime/web/.next/react-loadable-manifest.json +2 -33
  72. package/dist/runtime/web/.next/required-server-files.json +5 -5
  73. package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route.js +1 -1
  74. package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route.js.nft.json +1 -1
  75. package/dist/runtime/web/.next/server/app/.vibeman/assets/images/[...path]/route_client-reference-manifest.js +1 -1
  76. package/dist/runtime/web/.next/server/app/_not-found/page.js +2 -2
  77. package/dist/runtime/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  78. package/dist/runtime/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  79. package/dist/runtime/web/.next/server/app/_not-found.html +2 -2
  80. package/dist/runtime/web/.next/server/app/_not-found.rsc +12 -12
  81. package/dist/runtime/web/.next/server/app/api/health/route.js +1 -1
  82. package/dist/runtime/web/.next/server/app/api/health/route.js.nft.json +1 -1
  83. package/dist/runtime/web/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  84. package/dist/runtime/web/.next/server/app/api/images/[...path]/route.js +1 -1
  85. package/dist/runtime/web/.next/server/app/api/images/[...path]/route.js.nft.json +1 -1
  86. package/dist/runtime/web/.next/server/app/api/images/[...path]/route_client-reference-manifest.js +1 -1
  87. package/dist/runtime/web/.next/server/app/api/upload/route.js +1 -1
  88. package/dist/runtime/web/.next/server/app/api/upload/route.js.nft.json +1 -1
  89. package/dist/runtime/web/.next/server/app/api/upload/route_client-reference-manifest.js +1 -1
  90. package/dist/runtime/web/.next/server/app/index.html +2 -2
  91. package/dist/runtime/web/.next/server/app/index.rsc +15 -15
  92. package/dist/runtime/web/.next/server/app/page.js +27 -62
  93. package/dist/runtime/web/.next/server/app/page.js.nft.json +1 -1
  94. package/dist/runtime/web/.next/server/app/page_client-reference-manifest.js +1 -1
  95. package/dist/runtime/web/.next/server/app-paths-manifest.json +1 -1
  96. package/dist/runtime/web/.next/server/chunks/210.js +1 -0
  97. package/dist/runtime/web/.next/server/chunks/291.js +18 -0
  98. package/dist/runtime/web/.next/server/chunks/552.js +22 -0
  99. package/dist/runtime/web/.next/server/chunks/780.js +1 -0
  100. package/dist/runtime/web/.next/server/chunks/905.js +6 -0
  101. package/dist/runtime/web/.next/server/chunks/98.js +1 -0
  102. package/dist/runtime/web/.next/server/middleware-build-manifest.js +1 -1
  103. package/dist/runtime/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  104. package/dist/runtime/web/.next/server/pages/404.html +2 -2
  105. package/dist/runtime/web/.next/server/pages/500.html +1 -1
  106. package/dist/runtime/web/.next/server/pages/_app.js +1 -1
  107. package/dist/runtime/web/.next/server/pages/_app.js.nft.json +1 -1
  108. package/dist/runtime/web/.next/server/pages/_document.js +1 -1
  109. package/dist/runtime/web/.next/server/pages/_document.js.nft.json +1 -1
  110. package/dist/runtime/web/.next/server/pages/_error.js +9 -9
  111. package/dist/runtime/web/.next/server/pages/_error.js.nft.json +1 -1
  112. package/dist/runtime/web/.next/server/pages-manifest.json +1 -1
  113. package/dist/runtime/web/.next/server/server-reference-manifest.json +1 -1
  114. package/dist/runtime/web/.next/server/webpack-runtime.js +1 -1
  115. package/dist/runtime/web/.next/static/{5_15u1WQCxN1_eHZpldCv → LJFZk_8tvKFN_Ee4HqUuM}/_buildManifest.js +1 -1
  116. package/dist/runtime/web/.next/static/chunks/05c91ade-7d09b2b280adffd1.js +1 -0
  117. package/dist/runtime/web/.next/static/chunks/201-51bef3fa8c832e2e.js +1 -0
  118. package/dist/runtime/web/.next/static/chunks/524-89747ed9b0294f8a.js +1 -0
  119. package/dist/runtime/web/.next/static/chunks/554-8bec6e9cca6acc67.js +1 -0
  120. package/dist/runtime/web/.next/static/chunks/764.86e9503a69d45a85.js +1 -0
  121. package/dist/runtime/web/.next/static/chunks/{87c73c54-09e1ba5c70e60a51.js → 7ab4dc20-239138e0ae7af24a.js} +1 -1
  122. package/dist/runtime/web/.next/static/chunks/905-342391e3d3a3678f.js +20 -0
  123. package/dist/runtime/web/.next/static/chunks/a8a5ce16-4edea7df2d9b544a.js +79 -0
  124. package/dist/runtime/web/.next/static/chunks/{8bb4d8db-3e2aa02b0a2384b9.js → ad74d572-4c1b162e2c15acaa.js} +1 -1
  125. package/dist/runtime/web/.next/static/chunks/app/.vibeman/assets/images/[...path]/route-7b752a8641f96c1f.js +1 -0
  126. package/dist/runtime/web/.next/static/chunks/app/_not-found/page-34e66b251c2b5044.js +1 -0
  127. package/dist/runtime/web/.next/static/chunks/app/api/health/route-7b752a8641f96c1f.js +1 -0
  128. package/dist/runtime/web/.next/static/chunks/app/api/images/[...path]/route-7b752a8641f96c1f.js +1 -0
  129. package/dist/runtime/web/.next/static/chunks/app/api/upload/route-7b752a8641f96c1f.js +1 -0
  130. package/dist/runtime/web/.next/static/chunks/app/layout-df9ac93cb02b2385.js +1 -0
  131. package/dist/runtime/web/.next/static/chunks/app/page-6610743f7de5f92a.js +1 -0
  132. package/dist/runtime/web/.next/static/chunks/c25e0690-e9b798b8de667da1.js +1 -0
  133. package/dist/runtime/web/.next/static/chunks/framework-57157ec4d37f64aa.js +1 -0
  134. package/dist/runtime/web/.next/static/chunks/main-app-156cc0c60371bd78.js +1 -0
  135. package/dist/runtime/web/.next/static/chunks/main-df25d367c47b1fec.js +1 -0
  136. package/dist/runtime/web/.next/static/chunks/pages/_app-9f629a5e1131d19f.js +1 -0
  137. package/dist/runtime/web/.next/static/chunks/pages/_error-9238238274c7efcd.js +1 -0
  138. package/dist/runtime/web/.next/static/chunks/webpack-cd50e39b423d1808.js +1 -0
  139. package/dist/runtime/web/.next/static/css/4fbf378a264bd4ea.css +1 -0
  140. package/dist/runtime/web/package.json +8 -8
  141. package/dist/runtime/web/server.js +1 -1
  142. package/dist/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +3 -37
  144. package/dist/runtime/api/lib/trpc/client.d.ts +0 -1
  145. package/dist/runtime/api/lib/trpc/client.js +0 -5
  146. package/dist/runtime/web/.next/server/chunks/217.js +0 -1
  147. package/dist/runtime/web/.next/server/chunks/383.js +0 -6
  148. package/dist/runtime/web/.next/server/chunks/458.js +0 -1
  149. package/dist/runtime/web/.next/server/chunks/576.js +0 -18
  150. package/dist/runtime/web/.next/server/chunks/635.js +0 -22
  151. package/dist/runtime/web/.next/server/chunks/761.js +0 -1
  152. package/dist/runtime/web/.next/server/chunks/777.js +0 -3
  153. package/dist/runtime/web/.next/server/chunks/825.js +0 -1
  154. package/dist/runtime/web/.next/server/chunks/838.js +0 -1
  155. package/dist/runtime/web/.next/server/chunks/973.js +0 -15
  156. package/dist/runtime/web/.next/static/chunks/18-15c10d3288afef2e.js +0 -1
  157. package/dist/runtime/web/.next/static/chunks/1c0ca389.537bbe362e3ffbd9.js +0 -3
  158. package/dist/runtime/web/.next/static/chunks/22747d63-ad5da0c19f4cfe41.js +0 -71
  159. package/dist/runtime/web/.next/static/chunks/355.056c2645878a799a.js +0 -1
  160. package/dist/runtime/web/.next/static/chunks/420.a5ccf151c9e2b2f1.js +0 -1
  161. package/dist/runtime/web/.next/static/chunks/439.1be0c6242fd248d5.js +0 -15
  162. package/dist/runtime/web/.next/static/chunks/440.c52e7c0f797e22b2.js +0 -1
  163. package/dist/runtime/web/.next/static/chunks/575-e2478287c27da87b.js +0 -1
  164. package/dist/runtime/web/.next/static/chunks/691.920d88c115087314.js +0 -1
  165. package/dist/runtime/web/.next/static/chunks/765-e838910065b50c3d.js +0 -1
  166. package/dist/runtime/web/.next/static/chunks/823-6f371a6e829adbba.js +0 -63
  167. package/dist/runtime/web/.next/static/chunks/891cff7f.0f71fc028f87e683.js +0 -1
  168. package/dist/runtime/web/.next/static/chunks/9af238c7-271a911d4e99ab18.js +0 -1
  169. package/dist/runtime/web/.next/static/chunks/app/.vibeman/assets/images/[...path]/route-751c9265a65409e5.js +0 -1
  170. package/dist/runtime/web/.next/static/chunks/app/_not-found/page-1cb74d1cba27d0ab.js +0 -1
  171. package/dist/runtime/web/.next/static/chunks/app/api/health/route-751c9265a65409e5.js +0 -1
  172. package/dist/runtime/web/.next/static/chunks/app/api/images/[...path]/route-751c9265a65409e5.js +0 -1
  173. package/dist/runtime/web/.next/static/chunks/app/api/upload/route-751c9265a65409e5.js +0 -1
  174. package/dist/runtime/web/.next/static/chunks/app/layout-8435322f09fd0975.js +0 -1
  175. package/dist/runtime/web/.next/static/chunks/app/page-9fe7d75095b4ccec.js +0 -1
  176. package/dist/runtime/web/.next/static/chunks/cac567b0-5b77dd12911823cd.js +0 -1
  177. package/dist/runtime/web/.next/static/chunks/framework-2518f1345b5b2806.js +0 -1
  178. package/dist/runtime/web/.next/static/chunks/main-17665e5e39de9a8a.js +0 -1
  179. package/dist/runtime/web/.next/static/chunks/main-app-c0b0f5ba4f7f9d75.js +0 -1
  180. package/dist/runtime/web/.next/static/chunks/pages/_app-d6f6b3bbc3d81ee1.js +0 -1
  181. package/dist/runtime/web/.next/static/chunks/pages/_error-75a96cf1997cc3b9.js +0 -1
  182. package/dist/runtime/web/.next/static/chunks/webpack-c8de37305b4635cf.js +0 -1
  183. package/dist/runtime/web/.next/static/css/08c950681f1a9a92.css +0 -1
  184. /package/dist/runtime/web/.next/static/{5_15u1WQCxN1_eHZpldCv → LJFZk_8tvKFN_Ee4HqUuM}/_ssgManifest.js +0 -0
@@ -0,0 +1,256 @@
1
+ import { z } from 'zod';
2
+ // ============================================================================
3
+ // WORKFLOW STATE MACHINE SCHEMA
4
+ // Single source of truth for phases, events, and valid transitions
5
+ // ============================================================================
6
+ // 6 core phases (simplified from 12+)
7
+ export const WorkflowPhaseSchema = z.enum([
8
+ 'draft',
9
+ 'implementing',
10
+ 'validating',
11
+ 'approved',
12
+ 'merging',
13
+ 'done',
14
+ ]);
15
+ // Terminal/interrupt states (orthogonal to phase)
16
+ export const TerminalStatusSchema = z.enum(['failed', 'paused']);
17
+ // Combined status for external APIs (backward compatibility)
18
+ export const WorkflowStatusSchema = z.union([WorkflowPhaseSchema, TerminalStatusSchema]);
19
+ // Quality results from validation phase
20
+ export const QualityResultsSchema = z.object({
21
+ overall: z.boolean(),
22
+ timestamp: z.string(),
23
+ details: z.record(z.string(), z.boolean()),
24
+ outputs: z.record(z.string(), z.string()),
25
+ });
26
+ // AI review result
27
+ export const AIReviewResultSchema = z.object({
28
+ executionId: z.string(),
29
+ reviewSummary: z.string(),
30
+ recommendations: z.array(z.string()),
31
+ qualityScore: z.number(),
32
+ timestamp: z.string().optional(),
33
+ });
34
+ // ============================================================================
35
+ // WORKFLOW EVENTS
36
+ // All state changes are triggered by explicit events
37
+ // ============================================================================
38
+ export const WorkflowEventSchema = z.discriminatedUnion('type', [
39
+ // Lifecycle events
40
+ z.object({ type: z.literal('START') }),
41
+ z.object({ type: z.literal('PAUSE') }),
42
+ z.object({ type: z.literal('RESUME') }),
43
+ z.object({ type: z.literal('RETRY') }),
44
+ // Implementation phase events
45
+ z.object({ type: z.literal('IMPL_SUCCESS'), executionId: z.string().optional() }),
46
+ z.object({ type: z.literal('IMPL_FAIL'), error: z.string(), canRetry: z.boolean() }),
47
+ // Validation phase events
48
+ z.object({ type: z.literal('VALID_SUCCESS'), results: QualityResultsSchema }),
49
+ z.object({
50
+ type: z.literal('VALID_FAIL'),
51
+ error: z.string(),
52
+ results: QualityResultsSchema.optional(),
53
+ }),
54
+ // AI review phase events
55
+ z.object({ type: z.literal('REVIEW_DONE'), result: AIReviewResultSchema }),
56
+ z.object({ type: z.literal('REVIEW_SKIP') }),
57
+ // Human approval events
58
+ z.object({ type: z.literal('APPROVE') }),
59
+ z.object({ type: z.literal('REJECT'), feedback: z.string() }),
60
+ // Merge phase events
61
+ z.object({
62
+ type: z.literal('MERGE_SUCCESS'),
63
+ prUrl: z.string().optional(),
64
+ prNumber: z.number().optional(),
65
+ }),
66
+ z.object({ type: z.literal('MERGE_FAIL'), error: z.string() }),
67
+ // Cleanup phase events
68
+ z.object({ type: z.literal('CLEAN_SUCCESS') }),
69
+ z.object({ type: z.literal('CLEAN_FAIL'), error: z.string() }),
70
+ // Manual completion
71
+ z.object({ type: z.literal('COMPLETE_MANUAL') }),
72
+ ]);
73
+ // ============================================================================
74
+ // WORKFLOW CONFIGURATION
75
+ // Controls flow behavior (which steps to run, retry policy, etc.)
76
+ // ============================================================================
77
+ export const WorkflowConfigSchema = z.object({
78
+ autoQualityChecks: z.boolean().default(true),
79
+ requireHumanApproval: z.boolean().default(true),
80
+ aiCodeReview: z.boolean().default(true),
81
+ stepByStepMode: z.boolean().default(false),
82
+ autoCommit: z.boolean().default(false),
83
+ createPR: z.boolean().optional(),
84
+ autoMerge: z.boolean().optional(),
85
+ retryPolicy: z
86
+ .object({
87
+ maxImplementationAttempts: z.number().default(3),
88
+ })
89
+ .default({ maxImplementationAttempts: 3 }),
90
+ });
91
+ // ============================================================================
92
+ // WORKFLOW STATE
93
+ // The complete state of a workflow at any point in time
94
+ // ============================================================================
95
+ export const WorkflowStateSchema = z.object({
96
+ id: z.string(),
97
+ taskId: z.string(),
98
+ phase: WorkflowPhaseSchema,
99
+ terminalStatus: TerminalStatusSchema.nullable().default(null),
100
+ // Timestamps
101
+ startTime: z.string(),
102
+ endTime: z.string().optional(),
103
+ lastUpdatedAt: z.string(),
104
+ // Attempt tracking
105
+ attempts: z.record(WorkflowPhaseSchema, z.number()).default({}),
106
+ executionIds: z.record(WorkflowPhaseSchema, z.array(z.string())).default({}),
107
+ // Phase-specific results
108
+ qualityResults: QualityResultsSchema.optional(),
109
+ aiReviewResult: AIReviewResultSchema.optional(),
110
+ // Links (PR, branch, etc.)
111
+ links: z
112
+ .object({
113
+ prUrl: z.string().optional(),
114
+ prNumber: z.number().optional(),
115
+ branchName: z.string().optional(),
116
+ baseBranch: z.string().optional(),
117
+ })
118
+ .default({}),
119
+ // Error context for failed state
120
+ error: z.string().optional(),
121
+ failureContext: z
122
+ .object({
123
+ atPhase: WorkflowPhaseSchema,
124
+ error: z.string().optional(),
125
+ timestamp: z.string(),
126
+ })
127
+ .optional(),
128
+ // Configuration snapshot (frozen at workflow start)
129
+ config: WorkflowConfigSchema,
130
+ // Rerun context for retry scenarios
131
+ rerunContext: z
132
+ .object({
133
+ reason: z.string(),
134
+ previousExecutionId: z.string().optional(),
135
+ feedback: z.string().optional(),
136
+ })
137
+ .optional(),
138
+ });
139
+ export const TRANSITIONS = {
140
+ draft: {
141
+ START: 'implementing',
142
+ },
143
+ implementing: {
144
+ IMPL_SUCCESS: 'validating',
145
+ IMPL_FAIL: (state, event) => {
146
+ if (event.type !== 'IMPL_FAIL')
147
+ return null;
148
+ const attempts = (state.attempts.implementing ?? 0) + 1;
149
+ const maxAttempts = state.config.retryPolicy?.maxImplementationAttempts ?? 3;
150
+ return event.canRetry && attempts < maxAttempts ? 'implementing' : null; // null -> failed
151
+ },
152
+ PAUSE: null, // -> paused (handled in reducer)
153
+ },
154
+ validating: {
155
+ VALID_SUCCESS: (state) => {
156
+ if (state.config.aiCodeReview)
157
+ return 'approved'; // AI review is part of 'approved' waiting state
158
+ if (state.config.requireHumanApproval)
159
+ return 'approved';
160
+ return 'merging';
161
+ },
162
+ VALID_FAIL: 'implementing',
163
+ PAUSE: null,
164
+ },
165
+ approved: {
166
+ APPROVE: 'merging',
167
+ REJECT: 'implementing',
168
+ REVIEW_DONE: 'approved', // stays in approved, updates aiReviewResult
169
+ REVIEW_SKIP: 'approved',
170
+ PAUSE: null,
171
+ },
172
+ merging: {
173
+ MERGE_SUCCESS: 'done', // skip cleaning for now, can be added back
174
+ MERGE_FAIL: 'approved',
175
+ PAUSE: null,
176
+ },
177
+ done: {
178
+ // Terminal phase, no transitions out
179
+ },
180
+ };
181
+ // Helper to check if a transition is valid
182
+ export function isValidTransition(fromPhase, eventType) {
183
+ const phaseTransitions = TRANSITIONS[fromPhase];
184
+ return eventType in phaseTransitions;
185
+ }
186
+ // Helper to get next phase from transition
187
+ export function getNextPhase(state, event) {
188
+ // Handle terminal status events globally
189
+ if (event.type === 'PAUSE')
190
+ return 'paused';
191
+ if (event.type === 'RESUME')
192
+ return state.phase; // restore phase
193
+ if (event.type === 'RETRY')
194
+ return 'implementing';
195
+ const phaseTransitions = TRANSITIONS[state.phase];
196
+ const transition = phaseTransitions[event.type];
197
+ if (transition === undefined)
198
+ return null; // invalid transition
199
+ if (transition === null) {
200
+ // Explicit null means terminal (failed/paused)
201
+ if (event.type === 'IMPL_FAIL' ||
202
+ event.type === 'VALID_FAIL' ||
203
+ event.type === 'MERGE_FAIL' ||
204
+ event.type === 'CLEAN_FAIL') {
205
+ return 'failed';
206
+ }
207
+ return 'paused';
208
+ }
209
+ if (typeof transition === 'function') {
210
+ const result = transition(state, event);
211
+ return result === null ? 'failed' : result;
212
+ }
213
+ return transition;
214
+ }
215
+ // Phase labels for UI (core phases only)
216
+ export const PHASE_LABELS = {
217
+ draft: 'Draft',
218
+ implementing: 'Implementing',
219
+ validating: 'Validating',
220
+ approved: 'Awaiting Approval',
221
+ merging: 'Merging',
222
+ done: 'Completed',
223
+ failed: 'Failed',
224
+ paused: 'Paused',
225
+ };
226
+ // Extended phase labels for timeline display (includes legacy phases for UI compatibility)
227
+ export const EXTENDED_PHASE_LABELS = {
228
+ ...PHASE_LABELS,
229
+ implemented: 'Implemented',
230
+ validated: 'Validated',
231
+ 'ai-reviewing': 'AI Review',
232
+ 'ai-reviewed': 'AI Reviewed',
233
+ 'awaiting-review': 'Awaiting Review',
234
+ merged: 'Merged',
235
+ cleaning: 'Cleaning',
236
+ cleaned: 'Cleaned',
237
+ completed: 'Completed',
238
+ };
239
+ // Ordered phases for timeline display (core phases)
240
+ export const PHASE_ORDER = [
241
+ 'draft',
242
+ 'implementing',
243
+ 'validating',
244
+ 'approved',
245
+ 'merging',
246
+ 'done',
247
+ ];
248
+ // Extended phase flow for timeline (includes action phases for UI compatibility)
249
+ export const EXTENDED_PHASE_FLOW = [
250
+ 'implementing',
251
+ 'validating',
252
+ 'ai-reviewing',
253
+ 'awaiting-review',
254
+ 'merging',
255
+ 'cleaning',
256
+ ];
@@ -1 +1 @@
1
- 5_15u1WQCxN1_eHZpldCv
1
+ LJFZk_8tvKFN_Ee4HqUuM
@@ -1,66 +1,66 @@
1
1
  {
2
2
  "pages": {
3
3
  "/_not-found/page": [
4
- "static/chunks/webpack-c8de37305b4635cf.js",
5
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
6
- "static/chunks/18-15c10d3288afef2e.js",
7
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js",
8
- "static/chunks/app/_not-found/page-1cb74d1cba27d0ab.js"
4
+ "static/chunks/webpack-cd50e39b423d1808.js",
5
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
6
+ "static/chunks/201-51bef3fa8c832e2e.js",
7
+ "static/chunks/main-app-156cc0c60371bd78.js",
8
+ "static/chunks/app/_not-found/page-34e66b251c2b5044.js"
9
+ ],
10
+ "/layout": [
11
+ "static/chunks/webpack-cd50e39b423d1808.js",
12
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
13
+ "static/chunks/201-51bef3fa8c832e2e.js",
14
+ "static/chunks/main-app-156cc0c60371bd78.js",
15
+ "static/css/521bd69cc298cd1a.css",
16
+ "static/css/2728291c68f99cb1.css",
17
+ "static/css/537e22821e101b87.css",
18
+ "static/chunks/c25e0690-e9b798b8de667da1.js",
19
+ "static/chunks/554-8bec6e9cca6acc67.js",
20
+ "static/chunks/524-89747ed9b0294f8a.js",
21
+ "static/chunks/app/layout-df9ac93cb02b2385.js"
9
22
  ],
10
23
  "/.vibeman/assets/images/[...path]/route": [
11
- "static/chunks/webpack-c8de37305b4635cf.js",
12
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
13
- "static/chunks/18-15c10d3288afef2e.js",
14
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js",
15
- "static/chunks/app/.vibeman/assets/images/[...path]/route-751c9265a65409e5.js"
24
+ "static/chunks/webpack-cd50e39b423d1808.js",
25
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
26
+ "static/chunks/201-51bef3fa8c832e2e.js",
27
+ "static/chunks/main-app-156cc0c60371bd78.js",
28
+ "static/chunks/app/.vibeman/assets/images/[...path]/route-7b752a8641f96c1f.js"
16
29
  ],
17
30
  "/api/health/route": [
18
- "static/chunks/webpack-c8de37305b4635cf.js",
19
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
20
- "static/chunks/18-15c10d3288afef2e.js",
21
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js",
22
- "static/chunks/app/api/health/route-751c9265a65409e5.js"
31
+ "static/chunks/webpack-cd50e39b423d1808.js",
32
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
33
+ "static/chunks/201-51bef3fa8c832e2e.js",
34
+ "static/chunks/main-app-156cc0c60371bd78.js",
35
+ "static/chunks/app/api/health/route-7b752a8641f96c1f.js"
23
36
  ],
24
37
  "/api/images/[...path]/route": [
25
- "static/chunks/webpack-c8de37305b4635cf.js",
26
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
27
- "static/chunks/18-15c10d3288afef2e.js",
28
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js",
29
- "static/chunks/app/api/images/[...path]/route-751c9265a65409e5.js"
38
+ "static/chunks/webpack-cd50e39b423d1808.js",
39
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
40
+ "static/chunks/201-51bef3fa8c832e2e.js",
41
+ "static/chunks/main-app-156cc0c60371bd78.js",
42
+ "static/chunks/app/api/images/[...path]/route-7b752a8641f96c1f.js"
30
43
  ],
31
44
  "/api/upload/route": [
32
- "static/chunks/webpack-c8de37305b4635cf.js",
33
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
34
- "static/chunks/18-15c10d3288afef2e.js",
35
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js",
36
- "static/chunks/app/api/upload/route-751c9265a65409e5.js"
37
- ],
38
- "/layout": [
39
- "static/chunks/webpack-c8de37305b4635cf.js",
40
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
41
- "static/chunks/18-15c10d3288afef2e.js",
42
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js",
43
- "static/css/521bd69cc298cd1a.css",
44
- "static/css/2728291c68f99cb1.css",
45
- "static/css/537e22821e101b87.css",
46
- "static/chunks/cac567b0-5b77dd12911823cd.js",
47
- "static/chunks/575-e2478287c27da87b.js",
48
- "static/chunks/765-e838910065b50c3d.js",
49
- "static/chunks/app/layout-8435322f09fd0975.js"
45
+ "static/chunks/webpack-cd50e39b423d1808.js",
46
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
47
+ "static/chunks/201-51bef3fa8c832e2e.js",
48
+ "static/chunks/main-app-156cc0c60371bd78.js",
49
+ "static/chunks/app/api/upload/route-7b752a8641f96c1f.js"
50
50
  ],
51
51
  "/page": [
52
- "static/chunks/webpack-c8de37305b4635cf.js",
53
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
54
- "static/chunks/18-15c10d3288afef2e.js",
55
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js",
56
- "static/css/08c950681f1a9a92.css",
57
- "static/chunks/cac567b0-5b77dd12911823cd.js",
58
- "static/chunks/9af238c7-271a911d4e99ab18.js",
59
- "static/chunks/22747d63-ad5da0c19f4cfe41.js",
60
- "static/chunks/8bb4d8db-3e2aa02b0a2384b9.js",
61
- "static/chunks/575-e2478287c27da87b.js",
62
- "static/chunks/823-6f371a6e829adbba.js",
63
- "static/chunks/app/page-9fe7d75095b4ccec.js"
52
+ "static/chunks/webpack-cd50e39b423d1808.js",
53
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
54
+ "static/chunks/201-51bef3fa8c832e2e.js",
55
+ "static/chunks/main-app-156cc0c60371bd78.js",
56
+ "static/css/4fbf378a264bd4ea.css",
57
+ "static/chunks/c25e0690-e9b798b8de667da1.js",
58
+ "static/chunks/05c91ade-7d09b2b280adffd1.js",
59
+ "static/chunks/a8a5ce16-4edea7df2d9b544a.js",
60
+ "static/chunks/ad74d572-4c1b162e2c15acaa.js",
61
+ "static/chunks/554-8bec6e9cca6acc67.js",
62
+ "static/chunks/905-342391e3d3a3678f.js",
63
+ "static/chunks/app/page-6610743f7de5f92a.js"
64
64
  ]
65
65
  }
66
66
  }
@@ -1,8 +1,8 @@
1
1
  {
2
+ "/_not-found/page": "/_not-found",
2
3
  "/.vibeman/assets/images/[...path]/route": "/.vibeman/assets/images/[...path]",
3
4
  "/api/health/route": "/api/health",
4
5
  "/api/images/[...path]/route": "/api/images/[...path]",
5
6
  "/api/upload/route": "/api/upload",
6
- "/_not-found/page": "/_not-found",
7
7
  "/page": "/"
8
8
  }
@@ -5,28 +5,28 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/5_15u1WQCxN1_eHZpldCv/_buildManifest.js",
9
- "static/5_15u1WQCxN1_eHZpldCv/_ssgManifest.js"
8
+ "static/LJFZk_8tvKFN_Ee4HqUuM/_buildManifest.js",
9
+ "static/LJFZk_8tvKFN_Ee4HqUuM/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
- "static/chunks/webpack-c8de37305b4635cf.js",
13
- "static/chunks/87c73c54-09e1ba5c70e60a51.js",
14
- "static/chunks/18-15c10d3288afef2e.js",
15
- "static/chunks/main-app-c0b0f5ba4f7f9d75.js"
12
+ "static/chunks/webpack-cd50e39b423d1808.js",
13
+ "static/chunks/7ab4dc20-239138e0ae7af24a.js",
14
+ "static/chunks/201-51bef3fa8c832e2e.js",
15
+ "static/chunks/main-app-156cc0c60371bd78.js"
16
16
  ],
17
17
  "rootMainFilesTree": {},
18
18
  "pages": {
19
19
  "/_app": [
20
- "static/chunks/webpack-c8de37305b4635cf.js",
21
- "static/chunks/framework-2518f1345b5b2806.js",
22
- "static/chunks/main-17665e5e39de9a8a.js",
23
- "static/chunks/pages/_app-d6f6b3bbc3d81ee1.js"
20
+ "static/chunks/webpack-cd50e39b423d1808.js",
21
+ "static/chunks/framework-57157ec4d37f64aa.js",
22
+ "static/chunks/main-df25d367c47b1fec.js",
23
+ "static/chunks/pages/_app-9f629a5e1131d19f.js"
24
24
  ],
25
25
  "/_error": [
26
- "static/chunks/webpack-c8de37305b4635cf.js",
27
- "static/chunks/framework-2518f1345b5b2806.js",
28
- "static/chunks/main-17665e5e39de9a8a.js",
29
- "static/chunks/pages/_error-75a96cf1997cc3b9.js"
26
+ "static/chunks/webpack-cd50e39b423d1808.js",
27
+ "static/chunks/framework-57157ec4d37f64aa.js",
28
+ "static/chunks/main-df25d367c47b1fec.js",
29
+ "static/chunks/pages/_error-9238238274c7efcd.js"
30
30
  ]
31
31
  },
32
32
  "ampFirstPages": []
@@ -54,8 +54,8 @@
54
54
  "dynamicRoutes": {},
55
55
  "notFoundRoutes": [],
56
56
  "preview": {
57
- "previewModeId": "6acd1c87e3fa37988f1d8d27a0715b12",
58
- "previewModeSigningKey": "37a84e68e50eed8a1f5d5a84a7e75d77f54e557e249e5e9f642c9b2a9f493a23",
59
- "previewModeEncryptionKey": "3cd5a924f19c2a5ae113f75d937257ab4fcabe25e19d35dbfba3aa31e304f371"
57
+ "previewModeId": "b97036d702454105e0e0a0374f45f1f1",
58
+ "previewModeSigningKey": "c911a5963e97ad5a5566318cc48c4450206db55a9ebeeba238b4af42f73796d1",
59
+ "previewModeEncryptionKey": "7afd68b6fba6a2af6d05109f927edd362f7381aa2d6a69a0bcfdfc41b64ca06f"
60
60
  }
61
61
  }
@@ -1,39 +1,8 @@
1
1
  {
2
- "components/ui/TerminalLogsViewer.tsx -> @xterm/addon-fit": {
3
- "id": 79355,
4
- "files": [
5
- "static/chunks/355.056c2645878a799a.js"
6
- ]
7
- },
8
- "components/ui/TerminalLogsViewer.tsx -> @xterm/addon-web-links": {
9
- "id": 9691,
10
- "files": [
11
- "static/chunks/691.920d88c115087314.js"
12
- ]
13
- },
14
- "components/ui/TerminalLogsViewer.tsx -> @xterm/addon-webgl": {
15
- "id": 6439,
16
- "files": [
17
- "static/chunks/439.1be0c6242fd248d5.js"
18
- ]
19
- },
20
- "components/ui/TerminalLogsViewer.tsx -> @xterm/xterm": {
21
- "id": 67179,
22
- "files": [
23
- "static/chunks/1c0ca389.537bbe362e3ffbd9.js"
24
- ]
25
- },
26
2
  "components/ui/WorkflowReview.tsx -> @mantine/modals": {
27
- "id": 75440,
28
- "files": [
29
- "static/chunks/440.c52e7c0f797e22b2.js"
30
- ]
31
- },
32
- "lib/id-generator.ts -> crypto": {
33
- "id": 56203,
3
+ "id": 2764,
34
4
  "files": [
35
- "static/chunks/891cff7f.0f71fc028f87e683.js",
36
- "static/chunks/420.a5ccf151c9e2b2f1.js"
5
+ "static/chunks/764.86e9503a69d45a85.js"
37
6
  ]
38
7
  }
39
8
  }
@@ -2,7 +2,6 @@
2
2
  "version": 1,
3
3
  "config": {
4
4
  "env": {},
5
- "webpack": null,
6
5
  "eslint": {
7
6
  "ignoreDuringBuilds": true
8
7
  },
@@ -99,7 +98,7 @@
99
98
  "transform": "lodash/{{member}}"
100
99
  }
101
100
  },
102
- "outputFileTracingRoot": "/Users/harryyu/BDev/vibeman/apps/web",
101
+ "outputFileTracingRoot": "/Users/harryyu/BDev/vibeman",
103
102
  "allowedDevOrigins": [
104
103
  "localhost",
105
104
  "127.0.0.1"
@@ -208,6 +207,7 @@
208
207
  "devtoolSegmentExplorer": true,
209
208
  "browserDebugInfoInTerminal": false,
210
209
  "optimizeRouterScrolling": false,
210
+ "middlewareClientMaxBodySize": 10485760,
211
211
  "optimizePackageImports": [
212
212
  "lucide-react",
213
213
  "date-fns",
@@ -303,11 +303,11 @@
303
303
  "@mantine/notifications"
304
304
  ],
305
305
  "turbopack": {
306
- "root": "/Users/harryyu/BDev/vibeman/apps/web"
306
+ "root": "/Users/harryyu/BDev/vibeman"
307
307
  }
308
308
  },
309
309
  "appDir": "/Users/harryyu/BDev/vibeman/apps/web",
310
- "relativeAppDir": "",
310
+ "relativeAppDir": "apps/web",
311
311
  "files": [
312
312
  ".next/routes-manifest.json",
313
313
  ".next/server/pages-manifest.json",
@@ -329,6 +329,6 @@
329
329
  ".next/required-server-files.json"
330
330
  ],
331
331
  "ignore": [
332
- "../../node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"
332
+ "../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"
333
333
  ]
334
334
  }
@@ -1 +1 @@
1
- (()=>{var a={};a.id=744,a.ids=[744],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32511:(a,b,c)=>{"use strict";c.d(b,{C0:()=>i,Ui:()=>j,bx:()=>k,k3:()=>h});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);function h(){return g().join(g().join(g().join(function(){let a=process.env.VIBEMAN_PROJECT_ROOT?.trim();if(a){if(g().isAbsolute(a))return g().normalize(a);let b=[process.env.VIBEMAN_PROJECT_ROOT_BASE,process.env.INIT_CWD,process.env.PWD,process.cwd()].filter(a=>!!a?.trim()),c=null;for(let d of b){let b=g().resolve(d,a);if(c||(c=b),e().existsSync(b))return b}return c??g().resolve(a)}let b=process.cwd(),{root:c}=g().parse(b);for(;;){if(e().existsSync(g().join(b,".git")))return b;if(b===c)break;b=g().dirname(b)}for(b=process.cwd();;){if(e().existsSync(g().join(b,".vibeman")))return b;if(b===c)break;b=g().dirname(b)}return process.cwd()}(),".vibeman"),"assets"),"images")}async function i(){let a=h();return await d.promises.mkdir(a,{recursive:!0}),a}function j(a){return[".vibeman/assets/images",l(a)].join("/")}function k(a){return["/.vibeman/assets/images",l(a)].join("/")}function l(a){let b=a.replace(/\\\\/g,"/"),c=g().posix.normalize(b);if(c.startsWith(".."))throw Error("Invalid image filename");return c.replace(/^\//,"")}},33873:a=>{"use strict";a.exports=require("path")},40306:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d={};c.r(d),c.d(d,{GET:()=>u.GET});var e=c(26421),f=c(97714),g=c(85681),h=c(22369),i=c(37587),j=c(261),k=c(46537),l=c(3463),m=c(1889),n=c(85250),o=c(23620),p=c(29790),q=c(67876),r=c(57749),s=c(86439),t=c(40139),u=c(91827);let v=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/.vibeman/assets/images/[...path]/route",pathname:"/.vibeman/assets/images/[...path]",filename:"route",bundlePath:"app/.vibeman/assets/images/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/harryyu/BDev/vibeman/apps/web/src/app/.vibeman/assets/images/[...path]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,g.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){var d;let e="/.vibeman/assets/images/[...path]/route";"/index"===e&&(e="/");let g=await v.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||v.isDev||y||(G="/index"===(G=D)?"/":G);let H=!0===v.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:w,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!x.experimental.cacheComponents,authInterrupts:!!x.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=x.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>v.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>v.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await v.handleResponse({req:a,nextConfig:x,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(L||b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},80408:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87032:()=>{},91827:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>j});var d=c(53444),e=c(29021),f=c(33873),g=c.n(f),h=c(32511);let i={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml"};async function j(a,{params:b}){try{let a=b?.path??[];if(!Array.isArray(a)||0===a.length)return new d.NextResponse("Not Found",{status:404});let c=function(a){let b=a.join("/"),c=g().posix.normalize(b);return c.startsWith("..")?null:c}(a);if(!c)return new d.NextResponse("Forbidden",{status:403});let f=(0,h.k3)(),j=g().join(f,c),k=g().normalize(j),l=g().normalize(f+g().sep);if(!k.startsWith(l))return new d.NextResponse("Forbidden",{status:403});try{await e.promises.access(j)}catch{return new d.NextResponse("Not Found",{status:404})}let m=await e.promises.readFile(j),n=i[g().extname(j).toLowerCase()]??"application/octet-stream";return new d.NextResponse(m,{headers:{"Content-Type":n,"Cache-Control":"public, max-age=31536000, immutable"}})}catch(a){return console.error("Error serving image:",a),new d.NextResponse("Internal Server Error",{status:500})}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[635,825],()=>b(b.s=40306));module.exports=c})();
1
+ (()=>{var a={};a.id=744,a.ids=[744],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4477:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>j});var d=c(63519),e=c(29021),f=c(33873),g=c.n(f),h=c(80221);let i={".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml"};async function j(a,{params:b}){try{let a=b?.path??[];if(!Array.isArray(a)||0===a.length)return new d.NextResponse("Not Found",{status:404});let c=function(a){let b=a.join("/"),c=g().posix.normalize(b);return c.startsWith("..")?null:c}(a);if(!c)return new d.NextResponse("Forbidden",{status:403});let f=(0,h.k3)(),j=g().join(f,c),k=g().normalize(j),l=g().normalize(f+g().sep);if(!k.startsWith(l))return new d.NextResponse("Forbidden",{status:403});try{await e.promises.access(j)}catch{return new d.NextResponse("Not Found",{status:404})}let m=await e.promises.readFile(j),n=i[g().extname(j).toLowerCase()]??"application/octet-stream";return new d.NextResponse(m,{headers:{"Content-Type":n,"Cache-Control":"public, max-age=31536000, immutable"}})}catch(a){return console.error("Error serving image:",a),new d.NextResponse("Internal Server Error",{status:500})}}},6241:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d={};c.r(d),c.d(d,{GET:()=>u.GET});var e=c(81118),f=c(66935),g=c(53966),h=c(37536),i=c(99710),j=c(261),k=c(13760),l=c(53266),m=c(98610),n=c(70289),o=c(20511),p=c(91637),q=c(46515),r=c(73092),s=c(86439),t=c(49114),u=c(4477);let v=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/.vibeman/assets/images/[...path]/route",pathname:"/.vibeman/assets/images/[...path]",filename:"route",bundlePath:"app/.vibeman/assets/images/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/harryyu/BDev/vibeman/apps/web/src/app/.vibeman/assets/images/[...path]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,g.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){var d;let e="/.vibeman/assets/images/[...path]/route";"/index"===e&&(e="/");let g=await v.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||v.isDev||y||(G="/index"===(G=D)?"/":G);let H=!0===v.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:w,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!x.experimental.cacheComponents,authInterrupts:!!x.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=x.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>v.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>v.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await v.handleResponse({req:a,nextConfig:x,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},38631:()=>{},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61599:()=>{},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},80221:(a,b,c)=>{"use strict";c.d(b,{C0:()=>i,Ui:()=>j,bx:()=>k,k3:()=>h});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);function h(){return g().join(g().join(g().join(function(){let a=process.env.VIBEMAN_PROJECT_ROOT?.trim();if(a){if(g().isAbsolute(a))return g().normalize(a);let b=[process.env.VIBEMAN_PROJECT_ROOT_BASE,process.env.INIT_CWD,process.env.PWD,process.cwd()].filter(a=>!!a?.trim()),c=null;for(let d of b){let b=g().resolve(d,a);if(c||(c=b),e().existsSync(b))return b}return c??g().resolve(a)}let b=process.cwd(),{root:c}=g().parse(b);for(;;){if(e().existsSync(g().join(b,".git")))return b;if(b===c)break;b=g().dirname(b)}for(b=process.cwd();;){if(e().existsSync(g().join(b,".vibeman")))return b;if(b===c)break;b=g().dirname(b)}return process.cwd()}(),".vibeman"),"assets"),"images")}async function i(){let a=h();return await d.promises.mkdir(a,{recursive:!0}),a}function j(a){return[".vibeman/assets/images",l(a)].join("/")}function k(a){return["/.vibeman/assets/images",l(a)].join("/")}function l(a){let b=a.replace(/\\\\/g,"/"),c=g().posix.normalize(b);if(c.startsWith(".."))throw Error("Invalid image filename");return c.replace(/^\//,"")}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[552,780],()=>b(b.s=6241));module.exports=c})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/635.js","../../../../../chunks/825.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/.pnpm/next@15.5.9_react-dom@19.1.1_react@19.1.1__react@19.1.1_sass@1.97.0/node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../node_modules/next","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/552.js","../../../../../chunks/780.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}