genbox 1.0.274 → 1.0.276

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 (307) hide show
  1. package/dist/ai/execute-session.d.ts +51 -0
  2. package/dist/ai/execute-session.d.ts.map +1 -1
  3. package/dist/ai/execute-session.js +303 -1
  4. package/dist/ai/execute-session.js.map +1 -1
  5. package/dist/ai/index.d.ts +3 -2
  6. package/dist/ai/index.d.ts.map +1 -1
  7. package/dist/ai/index.js +3 -3
  8. package/dist/ai/index.js.map +1 -1
  9. package/dist/ai/system-prompt.d.ts +9 -0
  10. package/dist/ai/system-prompt.d.ts.map +1 -1
  11. package/dist/ai/system-prompt.js +119 -0
  12. package/dist/ai/system-prompt.js.map +1 -1
  13. package/dist/api.d.ts +1 -1
  14. package/dist/api.d.ts.map +1 -1
  15. package/dist/commands/create.d.ts.map +1 -1
  16. package/dist/commands/create.js +536 -75
  17. package/dist/commands/create.js.map +1 -1
  18. package/dist/commands/dashboard/store/types.d.ts +1 -1
  19. package/dist/commands/dashboard/store/types.d.ts.map +1 -1
  20. package/dist/commands/destroy.d.ts.map +1 -1
  21. package/dist/commands/destroy.js +212 -14
  22. package/dist/commands/destroy.js.map +1 -1
  23. package/dist/commands/infra.d.ts +21 -0
  24. package/dist/commands/infra.d.ts.map +1 -0
  25. package/dist/commands/infra.js +478 -0
  26. package/dist/commands/infra.js.map +1 -0
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +416 -290
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/list.d.ts.map +1 -1
  31. package/dist/commands/list.js +206 -26
  32. package/dist/commands/list.js.map +1 -1
  33. package/dist/commands/logs.js.map +1 -1
  34. package/dist/commands/mcp.d.ts +13 -0
  35. package/dist/commands/mcp.d.ts.map +1 -0
  36. package/dist/commands/mcp.js +648 -0
  37. package/dist/commands/mcp.js.map +1 -0
  38. package/dist/commands/new.d.ts.map +1 -1
  39. package/dist/commands/new.js +1 -7
  40. package/dist/commands/new.js.map +1 -1
  41. package/dist/commands/provider-command.d.ts +3 -1
  42. package/dist/commands/provider-command.d.ts.map +1 -1
  43. package/dist/commands/provider-command.js +171 -293
  44. package/dist/commands/provider-command.js.map +1 -1
  45. package/dist/commands/session/apps.d.ts +101 -0
  46. package/dist/commands/session/apps.d.ts.map +1 -0
  47. package/dist/commands/session/apps.js +583 -0
  48. package/dist/commands/session/apps.js.map +1 -0
  49. package/dist/commands/session/attach.d.ts +8 -3
  50. package/dist/commands/session/attach.d.ts.map +1 -1
  51. package/dist/commands/session/attach.js +461 -71
  52. package/dist/commands/session/attach.js.map +1 -1
  53. package/dist/commands/session/index.d.ts.map +1 -1
  54. package/dist/commands/session/index.js +56 -176
  55. package/dist/commands/session/index.js.map +1 -1
  56. package/dist/commands/session/kill.d.ts.map +1 -1
  57. package/dist/commands/session/kill.js +15 -25
  58. package/dist/commands/session/kill.js.map +1 -1
  59. package/dist/commands/session/list.d.ts.map +1 -1
  60. package/dist/commands/session/list.js +22 -9
  61. package/dist/commands/session/list.js.map +1 -1
  62. package/dist/commands/session/migrate.js +11 -11
  63. package/dist/commands/session/migrate.js.map +1 -1
  64. package/dist/commands/session/new.d.ts.map +1 -1
  65. package/dist/commands/session/new.js +618 -184
  66. package/dist/commands/session/new.js.map +1 -1
  67. package/dist/commands/session/send.js +2 -2
  68. package/dist/commands/session/send.js.map +1 -1
  69. package/dist/commands/session/show.js +1 -1
  70. package/dist/commands/session/show.js.map +1 -1
  71. package/dist/commands/session/start.d.ts.map +1 -1
  72. package/dist/commands/session/start.js +17 -121
  73. package/dist/commands/session/start.js.map +1 -1
  74. package/dist/commands/session/stop.d.ts.map +1 -1
  75. package/dist/commands/session/stop.js +4 -9
  76. package/dist/commands/session/stop.js.map +1 -1
  77. package/dist/commands/session/types.d.ts +9 -4
  78. package/dist/commands/session/types.d.ts.map +1 -1
  79. package/dist/commands/session/watch.js +2 -2
  80. package/dist/commands/session/watch.js.map +1 -1
  81. package/dist/commands/setup-snapshot.d.ts +15 -0
  82. package/dist/commands/setup-snapshot.d.ts.map +1 -0
  83. package/dist/commands/setup-snapshot.js +169 -0
  84. package/dist/commands/setup-snapshot.js.map +1 -0
  85. package/dist/commands/start.js +2 -2
  86. package/dist/commands/start.js.map +1 -1
  87. package/dist/commands/status.js.map +1 -1
  88. package/dist/commands/stop.js +3 -3
  89. package/dist/commands/stop.js.map +1 -1
  90. package/dist/commands/worktree.d.ts +11 -0
  91. package/dist/commands/worktree.d.ts.map +1 -0
  92. package/dist/commands/worktree.js +525 -0
  93. package/dist/commands/worktree.js.map +1 -0
  94. package/dist/config-warnings.js +2 -2
  95. package/dist/config-warnings.js.map +1 -1
  96. package/dist/genbox-selector.js +1 -1
  97. package/dist/genbox-selector.js.map +1 -1
  98. package/dist/index.js +13 -0
  99. package/dist/index.js.map +1 -1
  100. package/dist/lib/config-loader-v5.d.ts +113 -0
  101. package/dist/lib/config-loader-v5.d.ts.map +1 -0
  102. package/dist/lib/config-loader-v5.js +407 -0
  103. package/dist/lib/config-loader-v5.js.map +1 -0
  104. package/dist/lib/context-exporter.d.ts +4 -4
  105. package/dist/lib/context-exporter.d.ts.map +1 -1
  106. package/dist/lib/context-exporter.js +6 -6
  107. package/dist/lib/context-exporter.js.map +1 -1
  108. package/dist/lib/context-importer.d.ts +3 -3
  109. package/dist/lib/context-importer.d.ts.map +1 -1
  110. package/dist/lib/context-importer.js +7 -7
  111. package/dist/lib/context-importer.js.map +1 -1
  112. package/dist/lib/db-migrator.d.ts +2 -2
  113. package/dist/lib/db-migrator.d.ts.map +1 -1
  114. package/dist/lib/db-migrator.js +2 -2
  115. package/dist/lib/db-migrator.js.map +1 -1
  116. package/dist/lib/env-migrator.d.ts +2 -2
  117. package/dist/lib/env-migrator.d.ts.map +1 -1
  118. package/dist/lib/env-migrator.js +2 -2
  119. package/dist/lib/env-migrator.js.map +1 -1
  120. package/dist/lib/fast-session/background-task-manager.d.ts +236 -0
  121. package/dist/lib/fast-session/background-task-manager.d.ts.map +1 -0
  122. package/dist/lib/fast-session/background-task-manager.js +548 -0
  123. package/dist/lib/fast-session/background-task-manager.js.map +1 -0
  124. package/dist/lib/fast-session/genbox-readiness.d.ts +317 -0
  125. package/dist/lib/fast-session/genbox-readiness.d.ts.map +1 -0
  126. package/dist/lib/fast-session/genbox-readiness.js +452 -0
  127. package/dist/lib/fast-session/genbox-readiness.js.map +1 -0
  128. package/dist/lib/fast-session/index.d.ts +18 -0
  129. package/dist/lib/fast-session/index.d.ts.map +1 -0
  130. package/dist/lib/fast-session/index.js +23 -0
  131. package/dist/lib/fast-session/index.js.map +1 -0
  132. package/dist/lib/fast-session/snapshot-manager.d.ts +152 -0
  133. package/dist/lib/fast-session/snapshot-manager.d.ts.map +1 -0
  134. package/dist/lib/fast-session/snapshot-manager.js +639 -0
  135. package/dist/lib/fast-session/snapshot-manager.js.map +1 -0
  136. package/dist/lib/fast-session/types.d.ts +210 -0
  137. package/dist/lib/fast-session/types.d.ts.map +1 -0
  138. package/dist/lib/fast-session/types.js +167 -0
  139. package/dist/lib/fast-session/types.js.map +1 -0
  140. package/dist/lib/genbox-progress.d.ts +116 -1
  141. package/dist/lib/genbox-progress.d.ts.map +1 -1
  142. package/dist/lib/genbox-progress.js +265 -13
  143. package/dist/lib/genbox-progress.js.map +1 -1
  144. package/dist/lib/genbox-wizard.d.ts +4 -16
  145. package/dist/lib/genbox-wizard.d.ts.map +1 -1
  146. package/dist/lib/genbox-wizard.js +97 -395
  147. package/dist/lib/genbox-wizard.js.map +1 -1
  148. package/dist/lib/lazy-app-manager.d.ts +242 -0
  149. package/dist/lib/lazy-app-manager.d.ts.map +1 -0
  150. package/dist/lib/lazy-app-manager.js +643 -0
  151. package/dist/lib/lazy-app-manager.js.map +1 -0
  152. package/dist/lib/local-docker-provisioner.d.ts +291 -0
  153. package/dist/lib/local-docker-provisioner.d.ts.map +1 -0
  154. package/dist/lib/local-docker-provisioner.js +1509 -0
  155. package/dist/lib/local-docker-provisioner.js.map +1 -0
  156. package/dist/lib/local-genbox-provisioner.d.ts +22 -2
  157. package/dist/lib/local-genbox-provisioner.d.ts.map +1 -1
  158. package/dist/lib/local-genbox-provisioner.js +111 -13
  159. package/dist/lib/local-genbox-provisioner.js.map +1 -1
  160. package/dist/lib/local-orchestrator.d.ts +1 -1
  161. package/dist/lib/local-orchestrator.d.ts.map +1 -1
  162. package/dist/lib/local-orchestrator.js +2 -2
  163. package/dist/lib/local-orchestrator.js.map +1 -1
  164. package/dist/lib/local-vm-provisioner.d.ts +30 -0
  165. package/dist/lib/local-vm-provisioner.d.ts.map +1 -1
  166. package/dist/lib/local-vm-provisioner.js +133 -0
  167. package/dist/lib/local-vm-provisioner.js.map +1 -1
  168. package/dist/lib/quick-detect.d.ts +34 -0
  169. package/dist/lib/quick-detect.d.ts.map +1 -0
  170. package/dist/lib/quick-detect.js +148 -0
  171. package/dist/lib/quick-detect.js.map +1 -0
  172. package/dist/lib/schema-v5.d.ts +163 -0
  173. package/dist/lib/schema-v5.d.ts.map +1 -0
  174. package/dist/lib/schema-v5.js +26 -0
  175. package/dist/lib/schema-v5.js.map +1 -0
  176. package/dist/lib/session-backend/tmux-backend.d.ts +1 -1
  177. package/dist/lib/session-backend/tmux-backend.js +2 -2
  178. package/dist/lib/session-backend/tmux-backend.js.map +1 -1
  179. package/dist/lib/session-backend/types.d.ts +2 -2
  180. package/dist/lib/session-backend/types.d.ts.map +1 -1
  181. package/dist/lib/session-migrator.d.ts +3 -3
  182. package/dist/lib/session-migrator.d.ts.map +1 -1
  183. package/dist/lib/session-migrator.js +17 -17
  184. package/dist/lib/session-migrator.js.map +1 -1
  185. package/dist/lib/shared-infra-manager.d.ts +213 -0
  186. package/dist/lib/shared-infra-manager.d.ts.map +1 -0
  187. package/dist/lib/shared-infra-manager.js +661 -0
  188. package/dist/lib/shared-infra-manager.js.map +1 -0
  189. package/dist/lib/unified-session/api-sync.js +2 -2
  190. package/dist/lib/unified-session/api-sync.js.map +1 -1
  191. package/dist/lib/unified-session/index.d.ts +2 -2
  192. package/dist/lib/unified-session/index.d.ts.map +1 -1
  193. package/dist/lib/unified-session/index.js +2 -2
  194. package/dist/lib/unified-session/index.js.map +1 -1
  195. package/dist/lib/unified-session/list-sessions.d.ts +14 -0
  196. package/dist/lib/unified-session/list-sessions.d.ts.map +1 -1
  197. package/dist/lib/unified-session/list-sessions.js +236 -65
  198. package/dist/lib/unified-session/list-sessions.js.map +1 -1
  199. package/dist/lib/unified-session/migration.d.ts.map +1 -1
  200. package/dist/lib/unified-session/migration.js +9 -7
  201. package/dist/lib/unified-session/migration.js.map +1 -1
  202. package/dist/lib/unified-session/session-killer.d.ts +2 -2
  203. package/dist/lib/unified-session/session-killer.d.ts.map +1 -1
  204. package/dist/lib/unified-session/session-killer.js +4 -7
  205. package/dist/lib/unified-session/session-killer.js.map +1 -1
  206. package/dist/lib/unified-session/types.d.ts +26 -8
  207. package/dist/lib/unified-session/types.d.ts.map +1 -1
  208. package/dist/lib/unified-session/types.js +5 -6
  209. package/dist/lib/unified-session/types.js.map +1 -1
  210. package/dist/lib/unified-session/unified-session-manager.d.ts +8 -7
  211. package/dist/lib/unified-session/unified-session-manager.d.ts.map +1 -1
  212. package/dist/lib/unified-session/unified-session-manager.js +46 -39
  213. package/dist/lib/unified-session/unified-session-manager.js.map +1 -1
  214. package/dist/lib/worktree-container-provisioner.d.ts +225 -0
  215. package/dist/lib/worktree-container-provisioner.d.ts.map +1 -0
  216. package/dist/lib/worktree-container-provisioner.js +1527 -0
  217. package/dist/lib/worktree-container-provisioner.js.map +1 -0
  218. package/dist/lib/worktree-manager.d.ts.map +1 -1
  219. package/dist/lib/worktree-manager.js +2 -1
  220. package/dist/lib/worktree-manager.js.map +1 -1
  221. package/dist/lib/worktree-port-allocator.d.ts +77 -0
  222. package/dist/lib/worktree-port-allocator.d.ts.map +1 -0
  223. package/dist/lib/worktree-port-allocator.js +270 -0
  224. package/dist/lib/worktree-port-allocator.js.map +1 -0
  225. package/dist/mcp/tools/approval.d.ts +120 -0
  226. package/dist/mcp/tools/approval.d.ts.map +1 -0
  227. package/dist/mcp/tools/approval.js +423 -0
  228. package/dist/mcp/tools/approval.js.map +1 -0
  229. package/dist/mcp/tools/git.d.ts +288 -0
  230. package/dist/mcp/tools/git.d.ts.map +1 -0
  231. package/dist/mcp/tools/git.js +655 -0
  232. package/dist/mcp/tools/git.js.map +1 -0
  233. package/dist/mcp/tools/index.d.ts +8 -0
  234. package/dist/mcp/tools/index.d.ts.map +1 -0
  235. package/dist/mcp/tools/index.js +12 -0
  236. package/dist/mcp/tools/index.js.map +1 -0
  237. package/dist/mcp/tools/pr.d.ts +99 -0
  238. package/dist/mcp/tools/pr.d.ts.map +1 -0
  239. package/dist/mcp/tools/pr.js +204 -0
  240. package/dist/mcp/tools/pr.js.map +1 -0
  241. package/dist/mcp/tools/project.d.ts +175 -0
  242. package/dist/mcp/tools/project.d.ts.map +1 -0
  243. package/dist/mcp/tools/project.js +624 -0
  244. package/dist/mcp/tools/project.js.map +1 -0
  245. package/dist/mcp/utils/git-helpers.d.ts +172 -0
  246. package/dist/mcp/utils/git-helpers.d.ts.map +1 -0
  247. package/dist/mcp/utils/git-helpers.js +312 -0
  248. package/dist/mcp/utils/git-helpers.js.map +1 -0
  249. package/dist/mcp/utils/index.d.ts +7 -0
  250. package/dist/mcp/utils/index.d.ts.map +1 -0
  251. package/dist/mcp/utils/index.js +7 -0
  252. package/dist/mcp/utils/index.js.map +1 -0
  253. package/dist/mcp/utils/project-detector.d.ts +148 -0
  254. package/dist/mcp/utils/project-detector.d.ts.map +1 -0
  255. package/dist/mcp/utils/project-detector.js +362 -0
  256. package/dist/mcp/utils/project-detector.js.map +1 -0
  257. package/dist/mcp/utils/shell.d.ts +93 -0
  258. package/dist/mcp/utils/shell.d.ts.map +1 -0
  259. package/dist/mcp/utils/shell.js +156 -0
  260. package/dist/mcp/utils/shell.js.map +1 -0
  261. package/dist/profile-resolver.d.ts +4 -0
  262. package/dist/profile-resolver.d.ts.map +1 -1
  263. package/dist/profile-resolver.js +22 -1
  264. package/dist/profile-resolver.js.map +1 -1
  265. package/dist/scanner/index.d.ts +14 -0
  266. package/dist/scanner/index.d.ts.map +1 -1
  267. package/dist/scanner/index.js +73 -1
  268. package/dist/scanner/index.js.map +1 -1
  269. package/dist/schema-v4.d.ts +37 -0
  270. package/dist/schema-v4.d.ts.map +1 -1
  271. package/dist/schema-v4.js.map +1 -1
  272. package/dist/schema-v5.d.ts +371 -0
  273. package/dist/schema-v5.d.ts.map +1 -0
  274. package/dist/schema-v5.js +643 -0
  275. package/dist/schema-v5.js.map +1 -0
  276. package/dist/services/config.service.d.ts.map +1 -1
  277. package/dist/services/config.service.js +10 -4
  278. package/dist/services/config.service.js.map +1 -1
  279. package/dist/shortcut.d.ts +9 -12
  280. package/dist/shortcut.d.ts.map +1 -1
  281. package/dist/shortcut.js +33 -39
  282. package/dist/shortcut.js.map +1 -1
  283. package/dist/utils/claude-auth.d.ts +3 -9
  284. package/dist/utils/claude-auth.d.ts.map +1 -1
  285. package/dist/utils/claude-auth.js +27 -118
  286. package/dist/utils/claude-auth.js.map +1 -1
  287. package/dist/utils/credential-utils.d.ts +114 -0
  288. package/dist/utils/credential-utils.d.ts.map +1 -0
  289. package/dist/utils/credential-utils.js +188 -0
  290. package/dist/utils/credential-utils.js.map +1 -0
  291. package/dist/utils/gemini-auth.d.ts +3 -9
  292. package/dist/utils/gemini-auth.d.ts.map +1 -1
  293. package/dist/utils/gemini-auth.js +66 -104
  294. package/dist/utils/gemini-auth.js.map +1 -1
  295. package/dist/utils/interactive-prompt.d.ts +1 -1
  296. package/dist/utils/interactive-prompt.d.ts.map +1 -1
  297. package/dist/utils/interactive-prompt.js +2 -2
  298. package/dist/utils/interactive-prompt.js.map +1 -1
  299. package/dist/utils/ssh-proxy.d.ts +1 -0
  300. package/dist/utils/ssh-proxy.d.ts.map +1 -1
  301. package/dist/utils/ssh-proxy.js +28 -9
  302. package/dist/utils/ssh-proxy.js.map +1 -1
  303. package/package.json +12 -11
  304. package/dist/lib/hooks-configurator.d.ts +0 -119
  305. package/dist/lib/hooks-configurator.d.ts.map +0 -1
  306. package/dist/lib/hooks-configurator.js +0 -404
  307. package/dist/lib/hooks-configurator.js.map +0 -1
@@ -5,6 +5,7 @@
5
5
  * User sees AI working in real-time and can interact for follow-up fixes.
6
6
  */
7
7
  import type { AIInitContext, AIInitOptions } from './types.js';
8
+ import type { DetectedConfig } from '../detected-config.js';
8
9
  /**
9
10
  * Launch an interactive Claude Code session for AI-assisted init
10
11
  * User sees Claude working in real-time
@@ -20,5 +21,55 @@ export declare function runBackgroundAISession(context: AIInitContext, options?:
20
21
  success: boolean;
21
22
  output: string;
22
23
  }>;
24
+ /**
25
+ * AI Scan Enhancement Result
26
+ */
27
+ export interface AIScanEnhancementResult {
28
+ enhanced_apps: Record<string, {
29
+ type: string;
30
+ type_confidence: 'high' | 'medium' | 'low';
31
+ type_reason: string;
32
+ framework?: string;
33
+ framework_confidence?: 'high' | 'medium' | 'low';
34
+ runner?: string;
35
+ runner_reason?: string;
36
+ port?: number;
37
+ port_source?: string;
38
+ suggested_connects_to?: string[];
39
+ notes?: string;
40
+ }>;
41
+ missed_apps?: Array<{
42
+ name: string;
43
+ path: string;
44
+ type: string;
45
+ reason: string;
46
+ }>;
47
+ infrastructure_notes?: Record<string, string>;
48
+ app_relationships?: Array<{
49
+ from: string;
50
+ to: string;
51
+ relationship: string;
52
+ notes?: string;
53
+ }>;
54
+ structure_assessment?: {
55
+ detected_type: string;
56
+ confidence: 'high' | 'medium' | 'low';
57
+ reason: string;
58
+ };
59
+ suggestions?: string[];
60
+ warnings?: string[];
61
+ }
62
+ /**
63
+ * Run AI scan enhancement in background mode
64
+ * Uses Claude Code with --print flag to analyze and enhance the project scan
65
+ * Streams output to .genbox/ai-scan.log for debugging
66
+ */
67
+ export declare function runAIScanEnhancement(context: AIInitContext, options?: {
68
+ onProgress?: (elapsed: number) => void;
69
+ }): Promise<{
70
+ success: boolean;
71
+ enhanced: DetectedConfig | null;
72
+ output: string;
73
+ }>;
23
74
  export default launchInteractiveAISession;
24
75
  //# sourceMappingURL=execute-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-session.d.ts","sourceRoot":"","sources":["../../src/ai/execute-session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgK/D;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqDf;AAgFD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACvE,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkE/C;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"execute-session.d.ts","sourceRoot":"","sources":["../../src/ai/execute-session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,uBAAuB,CAAC;AAgKzE;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqDf;AAgFD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACvE,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkE/C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oBAAoB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,oBAAoB,CAAC,EAAE;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACtC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAkND;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACvD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAmIhF;AAED,eAAe,0BAA0B,CAAC"}
@@ -9,7 +9,7 @@ import fs from 'fs';
9
9
  import path from 'path';
10
10
  import os from 'os';
11
11
  import * as yaml from 'js-yaml';
12
- import { AI_INIT_SYSTEM_PROMPT } from './system-prompt.js';
12
+ import { AI_INIT_SYSTEM_PROMPT, AI_SCAN_ENHANCEMENT_PROMPT } from './system-prompt.js';
13
13
  /**
14
14
  * Build the interactive prompt for Claude
15
15
  */
@@ -349,5 +349,307 @@ export async function runBackgroundAISession(context, options = {}) {
349
349
  });
350
350
  });
351
351
  }
352
+ /**
353
+ * Build prompt for AI scan enhancement
354
+ */
355
+ function buildScanEnhancementPrompt(context) {
356
+ const sections = [];
357
+ sections.push(`# Project Scan Enhancement Request
358
+
359
+ Analyze and enhance the following project scan results.
360
+
361
+ ## Project Information
362
+ - **Name**: ${context.projectName}
363
+ - **Root**: ${context.rootDir}
364
+
365
+ ## Current Scan Results
366
+ \`\`\`json
367
+ ${JSON.stringify(context.scan, null, 2)}
368
+ \`\`\`
369
+ `);
370
+ // Package.json files
371
+ if (Object.keys(context.files.packageJsons).length > 0) {
372
+ sections.push(`## Package.json Files
373
+ ${Object.entries(context.files.packageJsons)
374
+ .map(([filePath, content]) => {
375
+ return `### ${filePath}
376
+ \`\`\`json
377
+ ${JSON.stringify(content, null, 2)}
378
+ \`\`\``;
379
+ })
380
+ .join('\n\n')}
381
+ `);
382
+ }
383
+ // Docker Compose files
384
+ if (Object.keys(context.files.dockerComposes).length > 0) {
385
+ sections.push(`## Docker Compose Files
386
+ ${Object.entries(context.files.dockerComposes)
387
+ .map(([filePath, content]) => `### ${filePath}
388
+ \`\`\`yaml
389
+ ${yaml.dump(content)}
390
+ \`\`\``)
391
+ .join('\n\n')}
392
+ `);
393
+ }
394
+ // Environment files
395
+ if (Object.keys(context.files.envFiles).length > 0) {
396
+ sections.push(`## Environment Files (variable names only)
397
+ ${Object.entries(context.files.envFiles)
398
+ .map(([filePath, content]) => `### ${filePath}\n${content}`)
399
+ .join('\n\n')}
400
+ `);
401
+ }
402
+ // Workspace config
403
+ if (context.files.workspaceConfig) {
404
+ sections.push(`## Workspace Configuration
405
+ - **Type**: ${context.files.workspaceConfig.type}
406
+ ${context.files.workspaceConfig.packages ? `- **Packages**: ${context.files.workspaceConfig.packages.join(', ')}` : ''}
407
+ `);
408
+ }
409
+ // Git info
410
+ sections.push(`## Git Information
411
+ - **Remote**: ${context.git.remote || 'Not detected'}
412
+ - **Branch**: ${context.git.branch || 'main'}
413
+ `);
414
+ sections.push(`---
415
+
416
+ Please analyze this project and return your enhanced analysis as a JSON object following the format specified in your instructions.`);
417
+ return sections.join('\n');
418
+ }
419
+ /**
420
+ * Parse AI output to extract JSON from response
421
+ */
422
+ function parseAIEnhancementOutput(output) {
423
+ // Try to find JSON in the output
424
+ // First, try to find a code block with JSON
425
+ const codeBlockMatch = output.match(/```(?:json)?\s*([\s\S]*?)```/);
426
+ if (codeBlockMatch) {
427
+ try {
428
+ return JSON.parse(codeBlockMatch[1].trim());
429
+ }
430
+ catch {
431
+ // Continue to next method
432
+ }
433
+ }
434
+ // Try to find raw JSON object
435
+ const jsonMatch = output.match(/\{[\s\S]*\}/);
436
+ if (jsonMatch) {
437
+ try {
438
+ return JSON.parse(jsonMatch[0]);
439
+ }
440
+ catch {
441
+ // Could not parse
442
+ }
443
+ }
444
+ return null;
445
+ }
446
+ /**
447
+ * Merge AI enhancements into the original DetectedConfig
448
+ */
449
+ function mergeEnhancements(original, enhancements) {
450
+ const result = { ...original };
451
+ // Update apps with enhanced information
452
+ if (enhancements.enhanced_apps) {
453
+ for (const [appName, enhancement] of Object.entries(enhancements.enhanced_apps)) {
454
+ if (result.apps[appName]) {
455
+ const app = result.apps[appName];
456
+ // Update type if AI is confident
457
+ if (enhancement.type && enhancement.type_confidence !== 'low') {
458
+ app.type = enhancement.type;
459
+ app.type_reason = enhancement.type_reason || app.type_reason;
460
+ }
461
+ // Update framework if AI detected one
462
+ if (enhancement.framework) {
463
+ app.framework = enhancement.framework;
464
+ app.framework_source = `AI detected (${enhancement.framework_confidence || 'medium'} confidence)`;
465
+ }
466
+ // Update runner if AI suggests differently
467
+ if (enhancement.runner && enhancement.runner_reason) {
468
+ app.runner = enhancement.runner;
469
+ app.runner_reason = enhancement.runner_reason;
470
+ }
471
+ // Update port if AI found one
472
+ if (enhancement.port && !app.port) {
473
+ app.port = enhancement.port;
474
+ app.port_source = enhancement.port_source || 'AI detected';
475
+ }
476
+ // Add AI notes for user reference
477
+ if (enhancement.notes) {
478
+ app.ai_notes = enhancement.notes;
479
+ }
480
+ // Add suggested connections
481
+ if (enhancement.suggested_connects_to && enhancement.suggested_connects_to.length > 0) {
482
+ app.suggested_connects_to = enhancement.suggested_connects_to;
483
+ }
484
+ }
485
+ }
486
+ }
487
+ // Add missed apps
488
+ if (enhancements.missed_apps && enhancements.missed_apps.length > 0) {
489
+ for (const missedApp of enhancements.missed_apps) {
490
+ if (!result.apps[missedApp.name]) {
491
+ result.apps[missedApp.name] = {
492
+ path: missedApp.path,
493
+ type: missedApp.type,
494
+ type_reason: `AI detected: ${missedApp.reason}`,
495
+ source: 'AI enhancement',
496
+ };
497
+ }
498
+ }
499
+ }
500
+ // Update structure assessment if AI is more confident
501
+ if (enhancements.structure_assessment) {
502
+ const currentConfidence = result.structure.confidence;
503
+ const aiConfidence = enhancements.structure_assessment.confidence;
504
+ const confidenceOrder = { low: 0, medium: 1, high: 2 };
505
+ if (confidenceOrder[aiConfidence] > confidenceOrder[currentConfidence]) {
506
+ result.structure = {
507
+ type: enhancements.structure_assessment.detected_type,
508
+ confidence: aiConfidence,
509
+ indicators: [enhancements.structure_assessment.reason],
510
+ };
511
+ }
512
+ }
513
+ // Add AI metadata
514
+ result._meta.ai_enhanced = true;
515
+ result._meta.ai_enhanced_at = new Date().toISOString();
516
+ if (enhancements.suggestions && enhancements.suggestions.length > 0) {
517
+ result._meta.ai_suggestions = enhancements.suggestions;
518
+ }
519
+ if (enhancements.warnings && enhancements.warnings.length > 0) {
520
+ result._meta.ai_warnings = enhancements.warnings;
521
+ }
522
+ if (enhancements.infrastructure_notes) {
523
+ result._meta.infrastructure_notes = enhancements.infrastructure_notes;
524
+ }
525
+ if (enhancements.app_relationships) {
526
+ result._meta.app_relationships = enhancements.app_relationships;
527
+ }
528
+ return result;
529
+ }
530
+ /**
531
+ * Run AI scan enhancement in background mode
532
+ * Uses Claude Code with --print flag to analyze and enhance the project scan
533
+ * Streams output to .genbox/ai-scan.log for debugging
534
+ */
535
+ export async function runAIScanEnhancement(context, options = {}) {
536
+ const prompt = buildScanEnhancementPrompt(context);
537
+ const systemPrompt = AI_SCAN_ENHANCEMENT_PROMPT;
538
+ // Create log file for debugging
539
+ const logDir = path.join(context.rootDir, '.genbox');
540
+ if (!fs.existsSync(logDir)) {
541
+ fs.mkdirSync(logDir, { recursive: true });
542
+ }
543
+ const logPath = path.join(logDir, 'ai-scan.log');
544
+ // Write initial info to log
545
+ fs.writeFileSync(logPath, `AI Scan Enhancement Log\n`);
546
+ fs.appendFileSync(logPath, `Started: ${new Date().toISOString()}\n`);
547
+ fs.appendFileSync(logPath, `Project: ${context.projectName}\n`);
548
+ fs.appendFileSync(logPath, `Prompt size: ${prompt.length} chars\n`);
549
+ fs.appendFileSync(logPath, `${'─'.repeat(50)}\n\n`);
550
+ // Write prompt to file for reference/debugging
551
+ const promptPath = path.join(logDir, 'ai-prompt.md');
552
+ fs.writeFileSync(promptPath, prompt);
553
+ return new Promise((resolve, reject) => {
554
+ // Use stdin to pass the prompt (avoids command line length limits)
555
+ const claude = spawn('claude', [
556
+ '--print',
557
+ '--dangerously-skip-permissions',
558
+ '--append-system-prompt', systemPrompt,
559
+ ], {
560
+ stdio: ['pipe', 'pipe', 'pipe'],
561
+ cwd: context.rootDir,
562
+ env: { ...process.env },
563
+ });
564
+ // Write prompt to stdin
565
+ claude.stdin?.write(prompt);
566
+ claude.stdin?.end();
567
+ fs.appendFileSync(logPath, `Claude process started (PID: ${claude.pid})\n`);
568
+ fs.appendFileSync(logPath, `Waiting for response...\n\n`);
569
+ let stdout = '';
570
+ let stderr = '';
571
+ const startTime = Date.now();
572
+ // Progress callback
573
+ const progressInterval = options.onProgress ? setInterval(() => {
574
+ const elapsed = Math.round((Date.now() - startTime) / 1000);
575
+ options.onProgress(elapsed);
576
+ }, 5000) : null; // Update every 5 seconds
577
+ claude.stdout?.on('data', (data) => {
578
+ const chunk = data.toString();
579
+ stdout += chunk;
580
+ // Stream to log file
581
+ fs.appendFileSync(logPath, chunk);
582
+ });
583
+ claude.stderr?.on('data', (data) => {
584
+ const chunk = data.toString();
585
+ stderr += chunk;
586
+ // Stream stderr to log file too
587
+ fs.appendFileSync(logPath, `[stderr] ${chunk}`);
588
+ });
589
+ // Timeout after 3 minutes
590
+ const timeout = setTimeout(() => {
591
+ fs.appendFileSync(logPath, `\n\n${'─'.repeat(50)}\nTIMEOUT after 3 minutes\n`);
592
+ fs.appendFileSync(logPath, `stdout length: ${stdout.length} chars\n`);
593
+ fs.appendFileSync(logPath, `stderr length: ${stderr.length} chars\n`);
594
+ claude.kill();
595
+ if (progressInterval)
596
+ clearInterval(progressInterval);
597
+ reject(new Error('AI scan enhancement timed out after 3 minutes. Check .genbox/ai-scan.log for details.'));
598
+ }, 180000);
599
+ claude.on('close', (code) => {
600
+ clearTimeout(timeout);
601
+ if (progressInterval)
602
+ clearInterval(progressInterval);
603
+ const elapsed = Math.round((Date.now() - startTime) / 1000);
604
+ fs.appendFileSync(logPath, `\n\n${'─'.repeat(50)}\n`);
605
+ fs.appendFileSync(logPath, `Completed: ${new Date().toISOString()}\n`);
606
+ fs.appendFileSync(logPath, `Duration: ${elapsed}s\n`);
607
+ fs.appendFileSync(logPath, `Exit code: ${code}\n`);
608
+ fs.appendFileSync(logPath, `Output length: ${stdout.length} chars\n`);
609
+ if (code === 0 && stdout) {
610
+ // Parse the AI output
611
+ const enhancements = parseAIEnhancementOutput(stdout);
612
+ if (enhancements) {
613
+ fs.appendFileSync(logPath, `Status: SUCCESS - parsed enhancements\n`);
614
+ // Merge enhancements into original scan
615
+ const enhanced = mergeEnhancements(context.scan, enhancements);
616
+ resolve({ success: true, enhanced, output: stdout });
617
+ }
618
+ else {
619
+ fs.appendFileSync(logPath, `Status: FAILED - could not parse JSON from output\n`);
620
+ // Could not parse AI output, return original scan
621
+ resolve({
622
+ success: false,
623
+ enhanced: null,
624
+ output: 'Could not parse AI enhancement output. Using original scan.',
625
+ });
626
+ }
627
+ }
628
+ else {
629
+ fs.appendFileSync(logPath, `Status: FAILED - exit code ${code}\n`);
630
+ if (stderr) {
631
+ fs.appendFileSync(logPath, `Stderr: ${stderr}\n`);
632
+ }
633
+ resolve({
634
+ success: false,
635
+ enhanced: null,
636
+ output: stderr || stdout || 'AI enhancement failed',
637
+ });
638
+ }
639
+ });
640
+ claude.on('error', (err) => {
641
+ clearTimeout(timeout);
642
+ if (progressInterval)
643
+ clearInterval(progressInterval);
644
+ if (err.code === 'ENOENT') {
645
+ reject(new Error('Claude Code CLI not found. Install it with: npm install -g @anthropic-ai/claude-code\n' +
646
+ 'Then authenticate with: claude'));
647
+ }
648
+ else {
649
+ reject(err);
650
+ }
651
+ });
652
+ });
653
+ }
352
654
  export default launchInteractiveAISession;
353
655
  //# sourceMappingURL=execute-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-session.js","sourceRoot":"","sources":["../../src/ai/execute-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-session.js","sourceRoot":"","sources":["../../src/ai/execute-session.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@
5
5
  */
6
6
  export type { AIInitContext, AIInitResult, AIInitOptions, PackageJsonContent, DockerComposeContent, WorkspaceConfig, } from './types.js';
7
7
  export { gatherAIContext } from './context-gatherer.js';
8
- export { launchInteractiveAISession, runBackgroundAISession } from './execute-session.js';
8
+ export { launchInteractiveAISession, runBackgroundAISession, runAIScanEnhancement, } from './execute-session.js';
9
+ export type { AIScanEnhancementResult } from './execute-session.js';
9
10
  export { writeGenboxYaml, writeEnvGenbox, writeAIInitOutput, checkExistingFiles, } from './output-generator.js';
10
- export { AI_INIT_SYSTEM_PROMPT } from './system-prompt.js';
11
+ export { AI_INIT_SYSTEM_PROMPT, AI_SCAN_ENHANCEMENT_PROMPT } from './system-prompt.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG1F,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/ai/index.js CHANGED
@@ -6,9 +6,9 @@
6
6
  // Context gathering
7
7
  export { gatherAIContext } from './context-gatherer.js';
8
8
  // AI execution
9
- export { launchInteractiveAISession, runBackgroundAISession } from './execute-session.js';
9
+ export { launchInteractiveAISession, runBackgroundAISession, runAIScanEnhancement, } from './execute-session.js';
10
10
  // Output generation
11
11
  export { writeGenboxYaml, writeEnvGenbox, writeAIInitOutput, checkExistingFiles, } from './output-generator.js';
12
- // System prompt (for reference/testing)
13
- export { AI_INIT_SYSTEM_PROMPT } from './system-prompt.js';
12
+ // System prompts (for reference/testing)
13
+ export { AI_INIT_SYSTEM_PROMPT, AI_SCAN_ENHANCEMENT_PROMPT } from './system-prompt.js';
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,eAAe;AACf,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE1F,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,wCAAwC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,eAAe;AACf,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,yCAAyC;AACzC,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -6,4 +6,13 @@
6
6
  */
7
7
  export declare const AI_INIT_SYSTEM_PROMPT = "\nYou are an expert at configuring genbox environments. Your task is to analyze a project and generate optimal genbox.yaml and .env.genbox configurations.\n\n## GENBOX CLOUD-INIT PROVISIONING FLOW\n\nWhen a genbox is created, here's exactly what happens:\n\n1. **Server Creation**: Hetzner Cloud server spins up with Ubuntu 24.04\n2. **Cloud-Init Bootstrap**:\n - Creates 'dev' user with sudo access\n - Installs packages: vim, htop, dtach, tmux, docker-compose-plugin\n - Sets up SSH keys and git configuration\n - Creates 4GB swap space\n\n3. **Repository Cloning**:\n - Clones repos via HTTPS (with GIT_TOKEN) or SSH\n - Supports branch creation from source branch\n - Files staged in /home/dev/.file-staging/ are moved after clone\n\n4. **Setup Script Execution** (as dev user):\n - Installs NVM and Node.js 20 LTS\n - Installs pnpm and pm2 globally\n - Moves .env files from staging to app directories\n - Optionally installs Claude Code CLI and credentials\n\n5. **App Startup**:\n - **PM2 Apps**: Started via `pm2 start \"pnpm <script>\" --name <app>`\n - **Docker Apps**: Started via `docker compose up -d --build`\n - PM2 apps get HOST_* environment variables\n - Docker apps get DOCKER_* environment variables\n\n6. **Database Handling**:\n - **local**: Empty MongoDB with optional replica set\n - **copy**: Downloads from staging/production URL\n - **snapshot**: Restores from pre-uploaded S3 snapshot\n - **remote**: Connects to external database\n\n7. **Security Hardening**:\n - Blocks metadata API (169.254.169.254)\n - Cleans logs and sensitive files\n - Removes provider-specific packages\n\n## GENBOX.YAML V4 SCHEMA\n\n```yaml\nversion: 4\n\nproject:\n name: string # Project name (default: directory name)\n description?: string # Optional description\n structure: single-app | monorepo | workspace | microservices | hybrid\n\n# Infrastructure services (databases, caches, queues)\nprovides:\n mongodb:\n type: database\n image: mongo:7\n port: 27017\n replicaSet?: rs0 # Enable replica set for transactions\n redis:\n type: cache\n image: redis:7\n port: 6379\n rabbitmq:\n type: queue\n image: rabbitmq:3-management\n port: 5672\n additional_ports:\n management: 15672\n\n# Application definitions\napps:\n api:\n path: packages/api # Relative path from project root\n type: backend | frontend | worker | gateway | library | fullstack\n runner: pm2 | docker | node | bun | none\n framework?: nestjs | nextjs | express | fastify | etc.\n port?: 3000\n commands:\n install?: pnpm install\n dev?: dev # Script name, not raw command\n build?: build\n start?: start\n connects_to: # Dependencies\n mongodb:\n mode: local # local | staging | production | mock\n required: true\n redis:\n mode: local\n required: false\n docker?: # For runner: docker\n service: api\n build_context: .\n dockerfile: Dockerfile\n compose_dir: . # Where docker-compose.yml lives\n healthcheck?: /health\n depends_on?: [mongodb] # Startup order\n\n frontend:\n path: packages/web\n type: frontend\n runner: pm2\n framework: nextjs\n port: 3000\n connects_to:\n api:\n mode: local\n required: true\n\n# Remote environment URLs (for 'staging' or 'production' mode connections)\nenvironments:\n staging:\n description: Staging environment\n urls:\n api: https://staging-api.example.com\n env:\n NODE_ENV: staging\n production:\n description: Production (use with caution)\n urls:\n api: https://api.example.com\n safety:\n read_only: true\n require_confirmation: true\n\n# Profiles for different use cases\nprofiles:\n default:\n description: Full local development\n size: medium\n apps: [api, frontend] # Which apps to run\n database:\n mode: local # Fresh empty database\n\n frontend-only:\n description: Frontend against staging API\n size: small\n apps: [frontend]\n default_connection: staging # Connect dependencies to staging\n database:\n mode: none\n\n full-stack:\n extends: default # Inheritance\n description: Full stack with production data\n size: large\n database:\n mode: snapshot # Use pre-uploaded snapshot\n source: production\n\n backend-dev:\n description: API development only\n size: small\n apps: [api]\n database:\n mode: copy # Copy from staging on spin-up\n source: staging\n\n# Git configuration\nrepos:\n main:\n url: https://github.com/org/repo.git\n path: /home/dev/project\n branch: main\n auth: token | ssh\n\ngit_auth:\n method: token | ssh\n ssh_key_path?: ~/.ssh/id_rsa\n\n# Lifecycle hooks\nhooks:\n post_checkout:\n - command: pnpm install\n workdir: /home/dev/project\n post_start:\n - command: pnpm db:seed\n condition: \"[ ! -f .seeded ]\"\n\n# Setup scripts\nscripts:\n - name: setup-db\n path: scripts/setup-db.sh\n stage: setup\n run_as: dev\n\n# Defaults\ndefaults:\n size: medium\n branch: main\n install_claude_code: true\n inject_claude_auth: true\n```\n\n## .ENV.GENBOX STRUCTURE\n\nThe .env.genbox file uses segregated sections:\n\n```bash\n# === GLOBAL ===\n# Always included regardless of apps selected\nGIT_TOKEN=ghp_xxxx\nNODE_ENV=development\n\n# Infrastructure URLs (HOST_ for PM2 apps, DOCKER_ for containers)\nHOST_MONGODB_URI=mongodb://localhost:27017/mydb\nDOCKER_MONGODB_URI=mongodb://mongodb:27017/mydb\nHOST_REDIS_URL=redis://localhost:6379\nDOCKER_REDIS_URL=redis://redis:6379\n\n# Remote environment URLs (for snapshot/copy sources)\nSTAGING_API_URL=https://staging-api.example.com\nSTAGING_MONGODB_URL=mongodb+srv://staging.mongodb.net/mydb\nPROD_API_URL=https://api.example.com\nPROD_MONGODB_URL=mongodb+srv://prod.mongodb.net/mydb\n\n# Service URL mappings (local \u2192 remote)\nLOCAL_API_URL=http://localhost:3050\n\n# === API ===\n# App-specific section, only included if api app is selected\nJWT_SECRET=your-jwt-secret\nDATABASE_NAME=mydb\nCORS_ORIGINS=http://localhost:3000\n\n# === FRONTEND ===\n# App-specific section, only included if frontend app is selected\nNEXT_PUBLIC_API_URL=${API_URL}\nNEXT_PUBLIC_APP_NAME=MyApp\n\n# === END ===\n```\n\n**Key Patterns**:\n- `HOST_*`: Used by PM2-managed apps (localhost connections)\n- `DOCKER_*`: Used by Docker containers (service name connections)\n- `STAGING_*` / `PROD_*`: Source URLs for database snapshots/copies\n- `LOCAL_*`: Local service URLs for connection mapping\n- `${VAR}`: Expanded at runtime based on connection mode\n\n## PROFILE STRATEGIES\n\nDesign profiles for these common use cases:\n\n1. **default**: Full local development with all apps and fresh database\n2. **frontend-only**: Frontend against staging backend (smallest/cheapest)\n3. **backend-only**: Backend development with local or copied database\n4. **full-stack**: All apps with production-like data (snapshot mode)\n5. **minimal**: Lightest setup for quick testing\n\n**Size Recommendations**:\n- `small` (2 CPU, 4GB): 1-2 apps, no heavy databases\n- `medium` (4 CPU, 8GB): 2-4 apps, standard databases\n- `large` (8 CPU, 16GB): Full monorepo, multiple databases, heavy builds\n- `xl` (16 CPU, 32GB): Very large projects, AI workloads\n\n## RUNNER SELECTION RULES\n\n1. **Use runner: docker** when:\n - App is defined in docker-compose.yml with build context\n - App has complex dependencies (native modules, specific OS packages)\n - App needs to communicate with other Docker services via service names\n\n2. **Use runner: pm2** when:\n - App is a standard Node.js application\n - Hot reload is important (faster than Docker rebuild)\n - App doesn't have complex native dependencies\n\n3. **Use runner: none** when:\n - App is a library (type: library)\n - App is built but not run (shared packages)\n\n## FRAMEWORK DETECTION\n\nDetect frameworks from package.json dependencies:\n- `next` \u2192 nextjs (frontend or fullstack)\n- `@nestjs/core` \u2192 nestjs (backend)\n- `express` \u2192 express (backend)\n- `fastify` \u2192 fastify (backend)\n- `hono` \u2192 hono (backend)\n- `nuxt` \u2192 nuxt (frontend)\n- `@sveltejs/kit` \u2192 sveltekit (frontend)\n- `astro` \u2192 astro (frontend)\n- `vite` \u2192 vite (frontend)\n- `react` without next \u2192 react (frontend)\n- `vue` without nuxt \u2192 vue (frontend)\n\n## APP TYPE DETECTION\n\n- **frontend**: Has react/vue/angular/svelte, or next/nuxt/astro\n- **backend**: Has express/fastify/nestjs/hono, or scripts mention \"api\"/\"server\"\n- **fullstack**: Has both frontend framework AND api routes (e.g., Next.js with API routes)\n- **worker**: Has bull/bullmq, or scripts mention \"worker\"/\"queue\"/\"job\"\n- **gateway**: Named \"gateway\" or has proxy configuration\n- **library**: No start script, or explicitly marked as library in package.json\n\n## YOUR TASK\n\nGiven the project scan results and file contents, generate:\n\n1. **genbox.yaml** - Complete v4 configuration with:\n - Accurate app detection (type, framework, runner, commands)\n - Correct infrastructure based on docker-compose.yml\n - Smart profiles for different development scenarios\n - Proper dependency relationships (connects_to)\n - Repository configuration\n\n2. **.env.genbox** - Environment variables with:\n - Proper segregation by app sections\n - Infrastructure URLs (HOST_* and DOCKER_*)\n - Placeholders for secrets (never hardcode real values)\n - Service URL mappings\n\n3. **Explanations** - Brief explanations for:\n - Why each app was configured as it was\n - Why each profile was created\n - Infrastructure choices\n\nReturn your response as a JSON object with this exact structure:\n\n```json\n{\n \"config\": { /* GenboxConfig object - the complete genbox.yaml content */ },\n \"envVars\": { /* GLOBAL section env vars */ },\n \"envSections\": {\n \"api\": { \"JWT_SECRET\": \"your-secret\" },\n \"frontend\": { \"NEXT_PUBLIC_API_URL\": \"${API_URL}\" }\n },\n \"explanations\": {\n \"apps\": { \"api\": \"NestJS backend detected...\", \"frontend\": \"Next.js app...\" },\n \"profiles\": { \"default\": \"Full local dev...\", \"frontend-only\": \"For UI work...\" },\n \"infrastructure\": { \"mongodb\": \"Required by api app...\" }\n },\n \"warnings\": [\"Warning message 1\", \"Warning message 2\"],\n \"suggestions\": [\"Suggestion 1\", \"Suggestion 2\"]\n}\n```\n\n## IMPORTANT RULES\n\n1. **Never hardcode secrets** - Use placeholders like `your-jwt-secret`, `ghp_xxxx`\n2. **Detect framework accurately** - Check package.json dependencies\n3. **Respect existing docker-compose.yml** - Don't override with pm2 if docker is configured\n4. **Check for monorepo patterns** - pnpm-workspace.yaml, lerna.json, packages/, apps/\n5. **Detect replica sets** - Look for `--replSet` in docker-compose commands\n6. **Include healthchecks** - If apps have /health or /api/health endpoints\n7. **Create practical profiles** - Each profile should serve a real use case\n8. **Handle multi-repo projects** - Detect .git in subdirectories\n9. **Use correct port detection** - Check PORT env vars, framework defaults, docker-compose ports\n10. **Commands should be script names** - Use \"dev\" not \"pnpm run dev\"\n11. **Project structure detection**:\n - single-app: One package.json at root, no packages/apps folders\n - monorepo: Has packages/ or apps/ folder with multiple package.json files\n - workspace: Has pnpm-workspace.yaml or lerna.json\n - microservices: Multiple independent services with their own repos\n - hybrid: Mix of above patterns\n";
8
8
  export default AI_INIT_SYSTEM_PROMPT;
9
+ /**
10
+ * AI Scan Enhancement Prompt
11
+ *
12
+ * This prompt is used for background AI analysis to enhance/validate
13
+ * the ProjectScanner results. It does NOT generate genbox.yaml or .env.genbox.
14
+ * Instead, it outputs an enhanced DetectedConfig that is then used by the
15
+ * regular interactive flow.
16
+ */
17
+ export declare const AI_SCAN_ENHANCEMENT_PROMPT = "\nYou are an expert at analyzing software project structures. Your task is to enhance and validate the results of an automated project scanner.\n\n## YOUR TASK\n\nGiven the project scan results and file contents, analyze and enhance the detected configuration. You should:\n\n1. **Validate detected app types** - Confirm or correct the type assignments (frontend/backend/worker/gateway/library)\n2. **Add confidence scores** - Rate how confident you are in each detection (high/medium/low)\n3. **Add reasoning** - Explain why each app was classified the way it was\n4. **Detect missed apps** - Identify any applications that the scanner may have missed\n5. **Identify relationships** - Note dependencies between apps (e.g., frontend calls backend API)\n6. **Suggest improvements** - Recommend any configuration improvements\n\n## FRAMEWORK DETECTION\n\nDetect frameworks from package.json dependencies:\n- `next` \u2192 nextjs (frontend or fullstack)\n- `@nestjs/core` \u2192 nestjs (backend)\n- `express` \u2192 express (backend)\n- `fastify` \u2192 fastify (backend)\n- `hono` \u2192 hono (backend)\n- `nuxt` \u2192 nuxt (frontend)\n- `@sveltejs/kit` \u2192 sveltekit (frontend)\n- `astro` \u2192 astro (frontend)\n- `vite` \u2192 vite (frontend)\n- `react` without next \u2192 react (frontend)\n- `vue` without nuxt \u2192 vue (frontend)\n\n## APP TYPE DETECTION\n\n- **frontend**: Has react/vue/angular/svelte, or next/nuxt/astro\n- **backend**: Has express/fastify/nestjs/hono, or scripts mention \"api\"/\"server\"\n- **fullstack**: Has both frontend framework AND api routes (e.g., Next.js with API routes)\n- **worker**: Has bull/bullmq, or scripts mention \"worker\"/\"queue\"/\"job\"\n- **gateway**: Named \"gateway\" or has proxy configuration\n- **library**: No start script, or explicitly marked as library in package.json\n\n## RUNNER SELECTION\n\n1. **docker**: App is defined in docker-compose.yml with build context\n2. **pm2**: Standard Node.js application (default for most apps)\n3. **bun**: Uses Bun runtime (bun.lockb present)\n4. **node**: Simple Node.js execution\n5. **none**: Library or shared package (not runnable)\n\n## OUTPUT FORMAT\n\nReturn your analysis as a JSON object with this exact structure:\n\n```json\n{\n \"enhanced_apps\": {\n \"app-name\": {\n \"type\": \"backend\",\n \"type_confidence\": \"high\",\n \"type_reason\": \"NestJS detected from @nestjs/core dependency\",\n \"framework\": \"nestjs\",\n \"framework_confidence\": \"high\",\n \"runner\": \"pm2\",\n \"runner_reason\": \"Standard Node.js app without docker-compose definition\",\n \"port\": 3000,\n \"port_source\": \"PORT env var in .env.example\",\n \"suggested_connects_to\": [\"mongodb\", \"redis\"],\n \"notes\": \"Main API server, handles authentication and business logic\"\n }\n },\n \"missed_apps\": [\n {\n \"name\": \"suggested-app-name\",\n \"path\": \"path/to/app\",\n \"type\": \"worker\",\n \"reason\": \"Found bull queue processor in packages/worker\"\n }\n ],\n \"infrastructure_notes\": {\n \"mongodb\": \"Required by api app for data persistence\",\n \"redis\": \"Used for session storage and caching\"\n },\n \"app_relationships\": [\n {\n \"from\": \"frontend\",\n \"to\": \"api\",\n \"relationship\": \"API calls\",\n \"notes\": \"Frontend makes REST calls to /api/* endpoints\"\n }\n ],\n \"structure_assessment\": {\n \"detected_type\": \"monorepo\",\n \"confidence\": \"high\",\n \"reason\": \"pnpm-workspace.yaml present with packages/ directory\"\n },\n \"suggestions\": [\n \"Consider adding a health check endpoint to the api app\",\n \"The frontend app would benefit from environment-based API URL configuration\"\n ],\n \"warnings\": [\n \"No .env.example found for api app - environment variables may be missing\"\n ]\n}\n```\n\n## IMPORTANT RULES\n\n1. **Do NOT generate genbox.yaml** - Only analyze and enhance the scan\n2. **Do NOT generate .env.genbox** - Only analyze environment patterns\n3. **Be specific with reasoning** - Explain why you made each classification\n4. **Preserve scanner results** - Enhance, don't replace valid detections\n5. **Focus on accuracy** - Quality over quantity in suggestions\n6. **Output valid JSON** - Your response must be parseable JSON\n";
9
18
  //# sourceMappingURL=system-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/ai/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,qBAAqB,ijXAoWjC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/ai/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,qBAAqB,ijXAoWjC,CAAC;AAEF,eAAe,qBAAqB,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,mxIA8GtC,CAAC"}