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.
- package/dist/ai/execute-session.d.ts +51 -0
- package/dist/ai/execute-session.d.ts.map +1 -1
- package/dist/ai/execute-session.js +303 -1
- package/dist/ai/execute-session.js.map +1 -1
- package/dist/ai/index.d.ts +3 -2
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +3 -3
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/system-prompt.d.ts +9 -0
- package/dist/ai/system-prompt.d.ts.map +1 -1
- package/dist/ai/system-prompt.js +119 -0
- package/dist/ai/system-prompt.js.map +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +536 -75
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/dashboard/store/types.d.ts +1 -1
- package/dist/commands/dashboard/store/types.d.ts.map +1 -1
- package/dist/commands/destroy.d.ts.map +1 -1
- package/dist/commands/destroy.js +212 -14
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/infra.d.ts +21 -0
- package/dist/commands/infra.d.ts.map +1 -0
- package/dist/commands/infra.js +478 -0
- package/dist/commands/infra.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +416 -290
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +206 -26
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mcp.d.ts +13 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +648 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +1 -7
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/provider-command.d.ts +3 -1
- package/dist/commands/provider-command.d.ts.map +1 -1
- package/dist/commands/provider-command.js +171 -293
- package/dist/commands/provider-command.js.map +1 -1
- package/dist/commands/session/apps.d.ts +101 -0
- package/dist/commands/session/apps.d.ts.map +1 -0
- package/dist/commands/session/apps.js +583 -0
- package/dist/commands/session/apps.js.map +1 -0
- package/dist/commands/session/attach.d.ts +8 -3
- package/dist/commands/session/attach.d.ts.map +1 -1
- package/dist/commands/session/attach.js +461 -71
- package/dist/commands/session/attach.js.map +1 -1
- package/dist/commands/session/index.d.ts.map +1 -1
- package/dist/commands/session/index.js +56 -176
- package/dist/commands/session/index.js.map +1 -1
- package/dist/commands/session/kill.d.ts.map +1 -1
- package/dist/commands/session/kill.js +15 -25
- package/dist/commands/session/kill.js.map +1 -1
- package/dist/commands/session/list.d.ts.map +1 -1
- package/dist/commands/session/list.js +22 -9
- package/dist/commands/session/list.js.map +1 -1
- package/dist/commands/session/migrate.js +11 -11
- package/dist/commands/session/migrate.js.map +1 -1
- package/dist/commands/session/new.d.ts.map +1 -1
- package/dist/commands/session/new.js +618 -184
- package/dist/commands/session/new.js.map +1 -1
- package/dist/commands/session/send.js +2 -2
- package/dist/commands/session/send.js.map +1 -1
- package/dist/commands/session/show.js +1 -1
- package/dist/commands/session/show.js.map +1 -1
- package/dist/commands/session/start.d.ts.map +1 -1
- package/dist/commands/session/start.js +17 -121
- package/dist/commands/session/start.js.map +1 -1
- package/dist/commands/session/stop.d.ts.map +1 -1
- package/dist/commands/session/stop.js +4 -9
- package/dist/commands/session/stop.js.map +1 -1
- package/dist/commands/session/types.d.ts +9 -4
- package/dist/commands/session/types.d.ts.map +1 -1
- package/dist/commands/session/watch.js +2 -2
- package/dist/commands/session/watch.js.map +1 -1
- package/dist/commands/setup-snapshot.d.ts +15 -0
- package/dist/commands/setup-snapshot.d.ts.map +1 -0
- package/dist/commands/setup-snapshot.js +169 -0
- package/dist/commands/setup-snapshot.js.map +1 -0
- package/dist/commands/start.js +2 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.js +3 -3
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/worktree.d.ts +11 -0
- package/dist/commands/worktree.d.ts.map +1 -0
- package/dist/commands/worktree.js +525 -0
- package/dist/commands/worktree.js.map +1 -0
- package/dist/config-warnings.js +2 -2
- package/dist/config-warnings.js.map +1 -1
- package/dist/genbox-selector.js +1 -1
- package/dist/genbox-selector.js.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/config-loader-v5.d.ts +113 -0
- package/dist/lib/config-loader-v5.d.ts.map +1 -0
- package/dist/lib/config-loader-v5.js +407 -0
- package/dist/lib/config-loader-v5.js.map +1 -0
- package/dist/lib/context-exporter.d.ts +4 -4
- package/dist/lib/context-exporter.d.ts.map +1 -1
- package/dist/lib/context-exporter.js +6 -6
- package/dist/lib/context-exporter.js.map +1 -1
- package/dist/lib/context-importer.d.ts +3 -3
- package/dist/lib/context-importer.d.ts.map +1 -1
- package/dist/lib/context-importer.js +7 -7
- package/dist/lib/context-importer.js.map +1 -1
- package/dist/lib/db-migrator.d.ts +2 -2
- package/dist/lib/db-migrator.d.ts.map +1 -1
- package/dist/lib/db-migrator.js +2 -2
- package/dist/lib/db-migrator.js.map +1 -1
- package/dist/lib/env-migrator.d.ts +2 -2
- package/dist/lib/env-migrator.d.ts.map +1 -1
- package/dist/lib/env-migrator.js +2 -2
- package/dist/lib/env-migrator.js.map +1 -1
- package/dist/lib/fast-session/background-task-manager.d.ts +236 -0
- package/dist/lib/fast-session/background-task-manager.d.ts.map +1 -0
- package/dist/lib/fast-session/background-task-manager.js +548 -0
- package/dist/lib/fast-session/background-task-manager.js.map +1 -0
- package/dist/lib/fast-session/genbox-readiness.d.ts +317 -0
- package/dist/lib/fast-session/genbox-readiness.d.ts.map +1 -0
- package/dist/lib/fast-session/genbox-readiness.js +452 -0
- package/dist/lib/fast-session/genbox-readiness.js.map +1 -0
- package/dist/lib/fast-session/index.d.ts +18 -0
- package/dist/lib/fast-session/index.d.ts.map +1 -0
- package/dist/lib/fast-session/index.js +23 -0
- package/dist/lib/fast-session/index.js.map +1 -0
- package/dist/lib/fast-session/snapshot-manager.d.ts +152 -0
- package/dist/lib/fast-session/snapshot-manager.d.ts.map +1 -0
- package/dist/lib/fast-session/snapshot-manager.js +639 -0
- package/dist/lib/fast-session/snapshot-manager.js.map +1 -0
- package/dist/lib/fast-session/types.d.ts +210 -0
- package/dist/lib/fast-session/types.d.ts.map +1 -0
- package/dist/lib/fast-session/types.js +167 -0
- package/dist/lib/fast-session/types.js.map +1 -0
- package/dist/lib/genbox-progress.d.ts +116 -1
- package/dist/lib/genbox-progress.d.ts.map +1 -1
- package/dist/lib/genbox-progress.js +265 -13
- package/dist/lib/genbox-progress.js.map +1 -1
- package/dist/lib/genbox-wizard.d.ts +4 -16
- package/dist/lib/genbox-wizard.d.ts.map +1 -1
- package/dist/lib/genbox-wizard.js +97 -395
- package/dist/lib/genbox-wizard.js.map +1 -1
- package/dist/lib/lazy-app-manager.d.ts +242 -0
- package/dist/lib/lazy-app-manager.d.ts.map +1 -0
- package/dist/lib/lazy-app-manager.js +643 -0
- package/dist/lib/lazy-app-manager.js.map +1 -0
- package/dist/lib/local-docker-provisioner.d.ts +291 -0
- package/dist/lib/local-docker-provisioner.d.ts.map +1 -0
- package/dist/lib/local-docker-provisioner.js +1509 -0
- package/dist/lib/local-docker-provisioner.js.map +1 -0
- package/dist/lib/local-genbox-provisioner.d.ts +22 -2
- package/dist/lib/local-genbox-provisioner.d.ts.map +1 -1
- package/dist/lib/local-genbox-provisioner.js +111 -13
- package/dist/lib/local-genbox-provisioner.js.map +1 -1
- package/dist/lib/local-orchestrator.d.ts +1 -1
- package/dist/lib/local-orchestrator.d.ts.map +1 -1
- package/dist/lib/local-orchestrator.js +2 -2
- package/dist/lib/local-orchestrator.js.map +1 -1
- package/dist/lib/local-vm-provisioner.d.ts +30 -0
- package/dist/lib/local-vm-provisioner.d.ts.map +1 -1
- package/dist/lib/local-vm-provisioner.js +133 -0
- package/dist/lib/local-vm-provisioner.js.map +1 -1
- package/dist/lib/quick-detect.d.ts +34 -0
- package/dist/lib/quick-detect.d.ts.map +1 -0
- package/dist/lib/quick-detect.js +148 -0
- package/dist/lib/quick-detect.js.map +1 -0
- package/dist/lib/schema-v5.d.ts +163 -0
- package/dist/lib/schema-v5.d.ts.map +1 -0
- package/dist/lib/schema-v5.js +26 -0
- package/dist/lib/schema-v5.js.map +1 -0
- package/dist/lib/session-backend/tmux-backend.d.ts +1 -1
- package/dist/lib/session-backend/tmux-backend.js +2 -2
- package/dist/lib/session-backend/tmux-backend.js.map +1 -1
- package/dist/lib/session-backend/types.d.ts +2 -2
- package/dist/lib/session-backend/types.d.ts.map +1 -1
- package/dist/lib/session-migrator.d.ts +3 -3
- package/dist/lib/session-migrator.d.ts.map +1 -1
- package/dist/lib/session-migrator.js +17 -17
- package/dist/lib/session-migrator.js.map +1 -1
- package/dist/lib/shared-infra-manager.d.ts +213 -0
- package/dist/lib/shared-infra-manager.d.ts.map +1 -0
- package/dist/lib/shared-infra-manager.js +661 -0
- package/dist/lib/shared-infra-manager.js.map +1 -0
- package/dist/lib/unified-session/api-sync.js +2 -2
- package/dist/lib/unified-session/api-sync.js.map +1 -1
- package/dist/lib/unified-session/index.d.ts +2 -2
- package/dist/lib/unified-session/index.d.ts.map +1 -1
- package/dist/lib/unified-session/index.js +2 -2
- package/dist/lib/unified-session/index.js.map +1 -1
- package/dist/lib/unified-session/list-sessions.d.ts +14 -0
- package/dist/lib/unified-session/list-sessions.d.ts.map +1 -1
- package/dist/lib/unified-session/list-sessions.js +236 -65
- package/dist/lib/unified-session/list-sessions.js.map +1 -1
- package/dist/lib/unified-session/migration.d.ts.map +1 -1
- package/dist/lib/unified-session/migration.js +9 -7
- package/dist/lib/unified-session/migration.js.map +1 -1
- package/dist/lib/unified-session/session-killer.d.ts +2 -2
- package/dist/lib/unified-session/session-killer.d.ts.map +1 -1
- package/dist/lib/unified-session/session-killer.js +4 -7
- package/dist/lib/unified-session/session-killer.js.map +1 -1
- package/dist/lib/unified-session/types.d.ts +26 -8
- package/dist/lib/unified-session/types.d.ts.map +1 -1
- package/dist/lib/unified-session/types.js +5 -6
- package/dist/lib/unified-session/types.js.map +1 -1
- package/dist/lib/unified-session/unified-session-manager.d.ts +8 -7
- package/dist/lib/unified-session/unified-session-manager.d.ts.map +1 -1
- package/dist/lib/unified-session/unified-session-manager.js +46 -39
- package/dist/lib/unified-session/unified-session-manager.js.map +1 -1
- package/dist/lib/worktree-container-provisioner.d.ts +225 -0
- package/dist/lib/worktree-container-provisioner.d.ts.map +1 -0
- package/dist/lib/worktree-container-provisioner.js +1527 -0
- package/dist/lib/worktree-container-provisioner.js.map +1 -0
- package/dist/lib/worktree-manager.d.ts.map +1 -1
- package/dist/lib/worktree-manager.js +2 -1
- package/dist/lib/worktree-manager.js.map +1 -1
- package/dist/lib/worktree-port-allocator.d.ts +77 -0
- package/dist/lib/worktree-port-allocator.d.ts.map +1 -0
- package/dist/lib/worktree-port-allocator.js +270 -0
- package/dist/lib/worktree-port-allocator.js.map +1 -0
- package/dist/mcp/tools/approval.d.ts +120 -0
- package/dist/mcp/tools/approval.d.ts.map +1 -0
- package/dist/mcp/tools/approval.js +423 -0
- package/dist/mcp/tools/approval.js.map +1 -0
- package/dist/mcp/tools/git.d.ts +288 -0
- package/dist/mcp/tools/git.d.ts.map +1 -0
- package/dist/mcp/tools/git.js +655 -0
- package/dist/mcp/tools/git.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +8 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +12 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/pr.d.ts +99 -0
- package/dist/mcp/tools/pr.d.ts.map +1 -0
- package/dist/mcp/tools/pr.js +204 -0
- package/dist/mcp/tools/pr.js.map +1 -0
- package/dist/mcp/tools/project.d.ts +175 -0
- package/dist/mcp/tools/project.d.ts.map +1 -0
- package/dist/mcp/tools/project.js +624 -0
- package/dist/mcp/tools/project.js.map +1 -0
- package/dist/mcp/utils/git-helpers.d.ts +172 -0
- package/dist/mcp/utils/git-helpers.d.ts.map +1 -0
- package/dist/mcp/utils/git-helpers.js +312 -0
- package/dist/mcp/utils/git-helpers.js.map +1 -0
- package/dist/mcp/utils/index.d.ts +7 -0
- package/dist/mcp/utils/index.d.ts.map +1 -0
- package/dist/mcp/utils/index.js +7 -0
- package/dist/mcp/utils/index.js.map +1 -0
- package/dist/mcp/utils/project-detector.d.ts +148 -0
- package/dist/mcp/utils/project-detector.d.ts.map +1 -0
- package/dist/mcp/utils/project-detector.js +362 -0
- package/dist/mcp/utils/project-detector.js.map +1 -0
- package/dist/mcp/utils/shell.d.ts +93 -0
- package/dist/mcp/utils/shell.d.ts.map +1 -0
- package/dist/mcp/utils/shell.js +156 -0
- package/dist/mcp/utils/shell.js.map +1 -0
- package/dist/profile-resolver.d.ts +4 -0
- package/dist/profile-resolver.d.ts.map +1 -1
- package/dist/profile-resolver.js +22 -1
- package/dist/profile-resolver.js.map +1 -1
- package/dist/scanner/index.d.ts +14 -0
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +73 -1
- package/dist/scanner/index.js.map +1 -1
- package/dist/schema-v4.d.ts +37 -0
- package/dist/schema-v4.d.ts.map +1 -1
- package/dist/schema-v4.js.map +1 -1
- package/dist/schema-v5.d.ts +371 -0
- package/dist/schema-v5.d.ts.map +1 -0
- package/dist/schema-v5.js +643 -0
- package/dist/schema-v5.js.map +1 -0
- package/dist/services/config.service.d.ts.map +1 -1
- package/dist/services/config.service.js +10 -4
- package/dist/services/config.service.js.map +1 -1
- package/dist/shortcut.d.ts +9 -12
- package/dist/shortcut.d.ts.map +1 -1
- package/dist/shortcut.js +33 -39
- package/dist/shortcut.js.map +1 -1
- package/dist/utils/claude-auth.d.ts +3 -9
- package/dist/utils/claude-auth.d.ts.map +1 -1
- package/dist/utils/claude-auth.js +27 -118
- package/dist/utils/claude-auth.js.map +1 -1
- package/dist/utils/credential-utils.d.ts +114 -0
- package/dist/utils/credential-utils.d.ts.map +1 -0
- package/dist/utils/credential-utils.js +188 -0
- package/dist/utils/credential-utils.js.map +1 -0
- package/dist/utils/gemini-auth.d.ts +3 -9
- package/dist/utils/gemini-auth.d.ts.map +1 -1
- package/dist/utils/gemini-auth.js +66 -104
- package/dist/utils/gemini-auth.js.map +1 -1
- package/dist/utils/interactive-prompt.d.ts +1 -1
- package/dist/utils/interactive-prompt.d.ts.map +1 -1
- package/dist/utils/interactive-prompt.js +2 -2
- package/dist/utils/interactive-prompt.js.map +1 -1
- package/dist/utils/ssh-proxy.d.ts +1 -0
- package/dist/utils/ssh-proxy.d.ts.map +1 -1
- package/dist/utils/ssh-proxy.js +28 -9
- package/dist/utils/ssh-proxy.js.map +1 -1
- package/package.json +12 -11
- package/dist/lib/hooks-configurator.d.ts +0 -119
- package/dist/lib/hooks-configurator.d.ts.map +0 -1
- package/dist/lib/hooks-configurator.js +0 -404
- 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;
|
|
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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"}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -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
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
package/dist/ai/index.js.map
CHANGED
|
@@ -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,
|
|
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"}
|