genaicode 0.7.0 → 0.8.1

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 (114) hide show
  1. package/dist/cli/cli-params.d.ts +1 -1
  2. package/dist/cli/cli-params.js +1 -1
  3. package/dist/cli/cli-params.js.map +1 -1
  4. package/dist/eval/codegen-summary.test.js +3 -1
  5. package/dist/eval/codegen-summary.test.js.map +1 -1
  6. package/dist/eval/data/current-prompt.d.ts +0 -17
  7. package/dist/eval/data/current-prompt.js +23 -23
  8. package/dist/eval/data/current-prompt.js.map +1 -1
  9. package/dist/eval/prompt-debug.test.js +6 -1
  10. package/dist/eval/prompt-debug.test.js.map +1 -1
  11. package/dist/files/read-files.d.ts +27 -4
  12. package/dist/files/read-files.js +20 -5
  13. package/dist/files/read-files.js.map +1 -1
  14. package/dist/files/read-files.test.js +4 -4
  15. package/dist/files/read-files.test.js.map +1 -1
  16. package/dist/files/source-code-tree.d.ts +11 -6
  17. package/dist/files/source-code-tree.js +45 -2
  18. package/dist/files/source-code-tree.js.map +1 -1
  19. package/dist/main/codegen-types.d.ts +1 -1
  20. package/dist/main/config-lib.js +20 -2
  21. package/dist/main/config-lib.js.map +1 -1
  22. package/dist/main/config.js +4 -28
  23. package/dist/main/config.js.map +1 -1
  24. package/dist/main/interactive/codegen-interactive.test.js +1 -1
  25. package/dist/main/interactive/codegen-interactive.test.js.map +1 -1
  26. package/dist/main/plugin-loader.d.ts +5 -0
  27. package/dist/main/plugin-loader.js +53 -0
  28. package/dist/main/plugin-loader.js.map +1 -1
  29. package/dist/main/ui/frontend/assets/index-QOcNx5ac.js +812 -0
  30. package/dist/main/ui/frontend/index.html +1 -1
  31. package/dist/project-profiles/detection.d.ts +40 -0
  32. package/dist/project-profiles/detection.js +131 -0
  33. package/dist/project-profiles/detection.js.map +1 -0
  34. package/dist/project-profiles/index.d.ts +35 -0
  35. package/dist/project-profiles/index.js +72 -0
  36. package/dist/project-profiles/index.js.map +1 -0
  37. package/dist/project-profiles/profiles/golang.d.ts +65 -0
  38. package/dist/project-profiles/profiles/golang.js +208 -0
  39. package/dist/project-profiles/profiles/golang.js.map +1 -0
  40. package/dist/project-profiles/profiles/java-maven.d.ts +80 -0
  41. package/dist/project-profiles/profiles/java-maven.js +165 -0
  42. package/dist/project-profiles/profiles/java-maven.js.map +1 -0
  43. package/dist/project-profiles/profiles/javascript-npm.d.ts +40 -0
  44. package/dist/project-profiles/profiles/javascript-npm.js +118 -0
  45. package/dist/project-profiles/profiles/javascript-npm.js.map +1 -0
  46. package/dist/project-profiles/profiles/javascript-react.d.ts +46 -0
  47. package/dist/project-profiles/profiles/javascript-react.js +147 -0
  48. package/dist/project-profiles/profiles/javascript-react.js.map +1 -0
  49. package/dist/project-profiles/profiles/python-django.d.ts +58 -0
  50. package/dist/project-profiles/profiles/python-django.js +200 -0
  51. package/dist/project-profiles/profiles/python-django.js.map +1 -0
  52. package/dist/project-profiles/types.d.ts +122 -0
  53. package/dist/project-profiles/types.js +77 -0
  54. package/dist/project-profiles/types.js.map +1 -0
  55. package/dist/prompt/function-defs/set-summaries.js +20 -1
  56. package/dist/prompt/function-defs/set-summaries.js.map +1 -1
  57. package/dist/prompt/prompt-codegen.test.js +5 -4
  58. package/dist/prompt/prompt-codegen.test.js.map +1 -1
  59. package/dist/prompt/prompt-service-ask-question.test.js +2 -0
  60. package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
  61. package/dist/prompt/prompt-service.js +13 -106
  62. package/dist/prompt/prompt-service.js.map +1 -1
  63. package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.js +0 -2
  64. package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.js.map +1 -1
  65. package/dist/prompt/steps/step-ask-question/handlers/code-generation.d.ts +2 -0
  66. package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +58 -0
  67. package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +1 -0
  68. package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js +1 -3
  69. package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js.map +1 -1
  70. package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js +0 -2
  71. package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js.map +1 -1
  72. package/dist/prompt/steps/step-ask-question/handlers/default-action.js +0 -2
  73. package/dist/prompt/steps/step-ask-question/handlers/default-action.js.map +1 -1
  74. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message-with-image.js +0 -6
  75. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message-with-image.js.map +1 -1
  76. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +0 -2
  77. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
  78. package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js +0 -3
  79. package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js.map +1 -1
  80. package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +2 -5
  81. package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js.map +1 -1
  82. package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js +0 -3
  83. package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js.map +1 -1
  84. package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +4 -3
  85. package/dist/prompt/steps/step-ask-question/step-ask-question.d.ts +2 -3
  86. package/dist/prompt/steps/step-ask-question/step-ask-question.js +20 -6
  87. package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
  88. package/dist/prompt/steps/step-codegen-planning.js +1 -1
  89. package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
  90. package/dist/prompt/steps/step-codegen-summary.d.ts +7 -0
  91. package/dist/prompt/steps/step-codegen-summary.js +106 -0
  92. package/dist/prompt/steps/step-codegen-summary.js.map +1 -0
  93. package/dist/prompt/steps/step-codegen-summary.test.d.ts +1 -0
  94. package/dist/prompt/steps/step-codegen-summary.test.js +136 -0
  95. package/dist/prompt/steps/step-codegen-summary.test.js.map +1 -0
  96. package/dist/prompt/steps/step-context-optimization.js +159 -71
  97. package/dist/prompt/steps/step-context-optimization.js.map +1 -1
  98. package/dist/prompt/steps/step-context-optimization.test.js +24 -5
  99. package/dist/prompt/steps/step-context-optimization.test.js.map +1 -1
  100. package/dist/prompt/steps/step-ensure-context.d.ts +15 -0
  101. package/dist/prompt/steps/step-ensure-context.js +102 -0
  102. package/dist/prompt/steps/step-ensure-context.js.map +1 -0
  103. package/dist/prompt/steps/step-ensure-context.test.d.ts +1 -0
  104. package/dist/prompt/steps/step-ensure-context.test.js +242 -0
  105. package/dist/prompt/steps/step-ensure-context.test.js.map +1 -0
  106. package/dist/prompt/steps/step-summarization.d.ts +2 -1
  107. package/dist/prompt/steps/step-summarization.js +44 -11
  108. package/dist/prompt/steps/step-summarization.js.map +1 -1
  109. package/dist/prompt/steps/steps-types.d.ts +2 -0
  110. package/dist/prompt/steps/steps-types.js.map +1 -1
  111. package/dist/prompt/systemprompt.test.js +2 -2
  112. package/dist/prompt/systemprompt.test.js.map +1 -1
  113. package/package.json +6 -2
  114. package/dist/main/ui/frontend/assets/index-5e3ykhy6.js +0 -808
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Django Project Profile
3
+ *
4
+ * This profile handles Django web applications, supporting both
5
+ * traditional Django projects and Django REST framework applications.
6
+ * It includes detection for common Django patterns and tools.
7
+ */
8
+ import path from 'path';
9
+ import fs from 'fs';
10
+ import { PROJECT_FILE_PATTERNS, DETECTION_WEIGHTS, DEFAULT_EXTENSIONS, DEFAULT_IGNORE_PATHS, } from '../types.js';
11
+ import { profileUtils } from '../detection.js';
12
+ /**
13
+ * Different types of Django projects we can detect
14
+ */
15
+ const DJANGO_PROJECT_TYPES = {
16
+ STANDARD: 'standard',
17
+ DRF: 'rest-framework',
18
+ CHANNELS: 'channels',
19
+ WAGTAIL: 'wagtail',
20
+ };
21
+ /**
22
+ * Parse requirements.txt or pyproject.toml to extract dependencies
23
+ */
24
+ async function parsePythonDependencies(rootDir) {
25
+ const dependencies = [];
26
+ // Try reading requirements.txt
27
+ try {
28
+ const requirementsPath = path.join(rootDir, PROJECT_FILE_PATTERNS.PYTHON.REQUIREMENTS);
29
+ const content = await fs.promises.readFile(requirementsPath, 'utf-8');
30
+ dependencies.push(...content
31
+ .split('\n')
32
+ .map((line) => line.trim())
33
+ .filter((line) => line && !line.startsWith('#'))
34
+ .map((line) => line.split('==')[0].split('>=')[0].trim()));
35
+ }
36
+ catch {
37
+ // Requirements.txt not found, try pyproject.toml
38
+ try {
39
+ const pyprojectPath = path.join(rootDir, PROJECT_FILE_PATTERNS.PYTHON.POETRY);
40
+ const content = await fs.promises.readFile(pyprojectPath, 'utf-8');
41
+ // Basic TOML parsing for dependencies
42
+ const dependencySection = content.split('[tool.poetry.dependencies]')[1]?.split('[')[0];
43
+ if (dependencySection) {
44
+ dependencies.push(...dependencySection
45
+ .split('\n')
46
+ .map((line) => line.trim())
47
+ .filter((line) => line && !line.startsWith('#'))
48
+ .map((line) => line.split('=')[0].trim()));
49
+ }
50
+ }
51
+ catch {
52
+ // Neither file found
53
+ }
54
+ }
55
+ return dependencies;
56
+ }
57
+ /**
58
+ * Check if manage.py is a Django management script
59
+ */
60
+ async function isDjangoManagePy(filePath) {
61
+ try {
62
+ const content = await fs.promises.readFile(filePath, 'utf-8');
63
+ return content.includes('django.core.management');
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ /**
70
+ * Detect specific Django project type
71
+ */
72
+ async function detectDjangoProjectType(rootDir) {
73
+ const dependencies = await parsePythonDependencies(rootDir);
74
+ // Check for DRF (Django REST framework)
75
+ if (dependencies.some((dep) => dep === 'djangorestframework')) {
76
+ return { type: DJANGO_PROJECT_TYPES.DRF, weight: DETECTION_WEIGHTS.FRAMEWORK.DJANGO + 1 };
77
+ }
78
+ // Check for Django Channels
79
+ if (dependencies.some((dep) => dep === 'channels')) {
80
+ return { type: DJANGO_PROJECT_TYPES.CHANNELS, weight: DETECTION_WEIGHTS.FRAMEWORK.DJANGO + 1 };
81
+ }
82
+ // Check for Wagtail CMS
83
+ if (dependencies.some((dep) => dep === 'wagtail')) {
84
+ return { type: DJANGO_PROJECT_TYPES.WAGTAIL, weight: DETECTION_WEIGHTS.FRAMEWORK.DJANGO + 1 };
85
+ }
86
+ return { type: DJANGO_PROJECT_TYPES.STANDARD, weight: DETECTION_WEIGHTS.FRAMEWORK.DJANGO };
87
+ }
88
+ /**
89
+ * Detect virtual environment location
90
+ */
91
+ async function detectVirtualEnv(rootDir) {
92
+ const commonVenvPaths = ['venv', '.venv', 'env', '.env'];
93
+ for (const venvPath of commonVenvPaths) {
94
+ const fullPath = path.join(rootDir, venvPath);
95
+ const activatePath = path.join(fullPath, 'bin', 'activate');
96
+ if ((await profileUtils.fileExists(rootDir, fullPath)) && (await profileUtils.fileExists(rootDir, activatePath))) {
97
+ return venvPath;
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+ /**
103
+ * Get appropriate lint command based on project configuration
104
+ */
105
+ async function detectLintCommand(rootDir) {
106
+ const dependencies = await parsePythonDependencies(rootDir);
107
+ const venvPath = await detectVirtualEnv(rootDir);
108
+ const venvPrefix = venvPath ? `source ${venvPath}/bin/activate && ` : '';
109
+ // Check for various linting tools in order of preference
110
+ if (dependencies.includes('ruff')) {
111
+ return `${venvPrefix}ruff check .`;
112
+ }
113
+ if (dependencies.includes('pylint-django')) {
114
+ return `${venvPrefix}pylint --load-plugins pylint_django **/*.py`;
115
+ }
116
+ if (dependencies.includes('pylint')) {
117
+ return `${venvPrefix}pylint **/*.py`;
118
+ }
119
+ if (dependencies.includes('flake8')) {
120
+ return `${venvPrefix}flake8 .`;
121
+ }
122
+ // Default to Django's built-in checks
123
+ return `${venvPrefix}python manage.py check --deploy`;
124
+ }
125
+ /**
126
+ * Get Django-specific ignore paths
127
+ */
128
+ async function getDjangoIgnorePaths(rootDir, projectType) {
129
+ const baseIgnorePaths = [...DEFAULT_IGNORE_PATHS.PYTHON];
130
+ // Add Django-specific paths
131
+ baseIgnorePaths.push('static', 'media', 'staticfiles', '*.sqlite3', 'local_settings.py');
132
+ // Add virtual environment if detected
133
+ const venvPath = await detectVirtualEnv(rootDir);
134
+ if (venvPath) {
135
+ baseIgnorePaths.push(venvPath);
136
+ }
137
+ // Add project type specific paths
138
+ switch (projectType) {
139
+ case DJANGO_PROJECT_TYPES.WAGTAIL:
140
+ baseIgnorePaths.push('media/images', 'media/documents');
141
+ break;
142
+ case DJANGO_PROJECT_TYPES.CHANNELS:
143
+ baseIgnorePaths.push('dumps');
144
+ break;
145
+ }
146
+ return baseIgnorePaths;
147
+ }
148
+ /**
149
+ * Django project profile
150
+ */
151
+ export const djangoProfile = {
152
+ id: 'python-django',
153
+ name: 'Django',
154
+ extensions: [...DEFAULT_EXTENSIONS.PYTHON],
155
+ ignorePaths: [...DEFAULT_IGNORE_PATHS.PYTHON],
156
+ detectionWeight: DETECTION_WEIGHTS.FRAMEWORK.DJANGO,
157
+ /**
158
+ * Detect if this is a Django project
159
+ */
160
+ async detect(rootDir) {
161
+ // Check for manage.py
162
+ const managePyPath = path.join(rootDir, PROJECT_FILE_PATTERNS.PYTHON.DJANGO);
163
+ const hasManagePy = await profileUtils.fileExists(rootDir, managePyPath);
164
+ if (!hasManagePy)
165
+ return false;
166
+ // Verify it's a Django manage.py
167
+ const isDjango = await isDjangoManagePy(managePyPath);
168
+ if (!isDjango)
169
+ return false;
170
+ // Check for Django in dependencies
171
+ const dependencies = await parsePythonDependencies(rootDir);
172
+ return dependencies.includes('django');
173
+ },
174
+ /**
175
+ * Initialize Django-specific configuration
176
+ */
177
+ async initialize(rootDir) {
178
+ // Detect Django project type
179
+ const { type: projectType } = await detectDjangoProjectType(rootDir);
180
+ // Set Django-specific ignore paths
181
+ this.ignorePaths = await getDjangoIgnorePaths(rootDir, projectType);
182
+ // Set appropriate lint command
183
+ this.lintCommand = await detectLintCommand(rootDir);
184
+ // Add Python extensions
185
+ this.extensions = [...DEFAULT_EXTENSIONS.PYTHON];
186
+ // Add template extensions
187
+ this.extensions.push('.html', '.jinja', '.jinja2');
188
+ console.log(`Initialized Django profile (${projectType})`);
189
+ },
190
+ };
191
+ // Export utilities for other profiles that might extend Django
192
+ export const djangoUtils = {
193
+ parsePythonDependencies,
194
+ isDjangoManagePy,
195
+ detectDjangoProjectType,
196
+ detectVirtualEnv,
197
+ detectLintCommand,
198
+ getDjangoIgnorePaths,
199
+ };
200
+ //# sourceMappingURL=python-django.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-django.js","sourceRoot":"","sources":["../../../src/project-profiles/profiles/python-django.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Core types for the project profiles system.
3
+ * This module contains all the type definitions needed for project type detection,
4
+ * configuration, and plugin integration.
5
+ */
6
+ /**
7
+ * Represents a project profile with its configuration and detection logic.
8
+ */
9
+ export interface ProjectProfile {
10
+ /** Unique identifier for the profile */
11
+ id: string;
12
+ /** Display name for the profile */
13
+ name: string;
14
+ /** File extensions this profile should consider */
15
+ extensions: string[];
16
+ /** Paths that should be ignored */
17
+ ignorePaths: string[];
18
+ /** Default lint command for this project type */
19
+ lintCommand?: string;
20
+ /**
21
+ * Weight for detection priority. Higher weights indicate more specific profiles.
22
+ * Default profiles use weights 1-10.
23
+ * Plugin profiles should use weights > 10 to override defaults.
24
+ */
25
+ detectionWeight: number;
26
+ /**
27
+ * Async function to detect if this profile matches the project.
28
+ * Should return true if the profile matches, false otherwise.
29
+ */
30
+ detect: (rootDir: string) => Promise<boolean>;
31
+ /** Optional initialization function called when profile is selected */
32
+ initialize?: (rootDir: string) => Promise<void>;
33
+ }
34
+ /**
35
+ * Result of project profile detection
36
+ */
37
+ export interface ProfileDetectionResult {
38
+ /** The detected profile, if any */
39
+ profile: ProjectProfile | null;
40
+ /** Weight of the detection match */
41
+ weight: number;
42
+ /** Any additional metadata from detection */
43
+ metadata?: Record<string, unknown>;
44
+ }
45
+ /**
46
+ * Plugin interface for project profiles
47
+ */
48
+ export interface ProjectProfilePlugin {
49
+ /** Array of profiles provided by this plugin */
50
+ profiles: ProjectProfile[];
51
+ }
52
+ /**
53
+ * Common project file patterns used for detection
54
+ */
55
+ export declare const PROJECT_FILE_PATTERNS: {
56
+ /** JavaScript/TypeScript patterns */
57
+ readonly JS: {
58
+ readonly NPM: "package.json";
59
+ readonly YARN: "yarn.lock";
60
+ readonly PNPM: "pnpm-lock.yaml";
61
+ readonly REACT: readonly ["src/App.tsx", "src/App.jsx", "src/app.tsx", "src/app.jsx"];
62
+ readonly NEXT: "next.config.js";
63
+ readonly VITE: "vite.config.ts";
64
+ };
65
+ /** Java patterns */
66
+ readonly JAVA: {
67
+ readonly MAVEN: "pom.xml";
68
+ readonly GRADLE: "build.gradle";
69
+ readonly SPRING: "application.properties";
70
+ };
71
+ /** Python patterns */
72
+ readonly PYTHON: {
73
+ readonly DJANGO: "manage.py";
74
+ readonly FLASK: readonly ["app.py", "wsgi.py"];
75
+ readonly REQUIREMENTS: "requirements.txt";
76
+ readonly POETRY: "pyproject.toml";
77
+ };
78
+ /** Go patterns */
79
+ readonly GO: {
80
+ readonly MOD: "go.mod";
81
+ readonly WORK: "go.work";
82
+ };
83
+ };
84
+ /**
85
+ * Detection weights for different profile types
86
+ */
87
+ export declare const DETECTION_WEIGHTS: {
88
+ /** Base framework weights */
89
+ readonly BASE: {
90
+ readonly JS_NPM: 1;
91
+ readonly JAVA_BASE: 1;
92
+ readonly PYTHON_BASE: 1;
93
+ readonly GO_BASE: 1;
94
+ };
95
+ /** Framework-specific weights */
96
+ readonly FRAMEWORK: {
97
+ readonly REACT: 2;
98
+ readonly NEXT: 3;
99
+ readonly SPRING: 2;
100
+ readonly DJANGO: 2;
101
+ };
102
+ /** Plugin weights should be > 10 */
103
+ readonly PLUGIN_MIN_WEIGHT: 10;
104
+ };
105
+ /**
106
+ * Default extensions for common project types
107
+ */
108
+ export declare const DEFAULT_EXTENSIONS: {
109
+ readonly JS: readonly [".js", ".ts", ".jsx", ".tsx", ".mjs", ".cjs", ".json", ".md"];
110
+ readonly JAVA: readonly [".java", ".xml", ".properties", ".md"];
111
+ readonly PYTHON: readonly [".py", ".pyi", ".pyw", ".md"];
112
+ readonly GO: readonly [".go", ".mod", ".sum", ".md"];
113
+ };
114
+ /**
115
+ * Default ignore paths for common project types
116
+ */
117
+ export declare const DEFAULT_IGNORE_PATHS: {
118
+ readonly JS: readonly ["node_modules", "build", "dist", "coverage", ".next", ".cache"];
119
+ readonly JAVA: readonly ["target", "build", "out", ".gradle", ".mvn", ".settings"];
120
+ readonly PYTHON: readonly ["__pycache__", "*.pyc", ".pytest_cache", "venv", ".venv", "dist"];
121
+ readonly GO: readonly ["vendor", "bin", "dist"];
122
+ };
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Core types for the project profiles system.
3
+ * This module contains all the type definitions needed for project type detection,
4
+ * configuration, and plugin integration.
5
+ */
6
+ /**
7
+ * Common project file patterns used for detection
8
+ */
9
+ export const PROJECT_FILE_PATTERNS = {
10
+ /** JavaScript/TypeScript patterns */
11
+ JS: {
12
+ NPM: 'package.json',
13
+ YARN: 'yarn.lock',
14
+ PNPM: 'pnpm-lock.yaml',
15
+ REACT: ['src/App.tsx', 'src/App.jsx', 'src/app.tsx', 'src/app.jsx'],
16
+ NEXT: 'next.config.js',
17
+ VITE: 'vite.config.ts',
18
+ },
19
+ /** Java patterns */
20
+ JAVA: {
21
+ MAVEN: 'pom.xml',
22
+ GRADLE: 'build.gradle',
23
+ SPRING: 'application.properties',
24
+ },
25
+ /** Python patterns */
26
+ PYTHON: {
27
+ DJANGO: 'manage.py',
28
+ FLASK: ['app.py', 'wsgi.py'],
29
+ REQUIREMENTS: 'requirements.txt',
30
+ POETRY: 'pyproject.toml',
31
+ },
32
+ /** Go patterns */
33
+ GO: {
34
+ MOD: 'go.mod',
35
+ WORK: 'go.work',
36
+ },
37
+ };
38
+ /**
39
+ * Detection weights for different profile types
40
+ */
41
+ export const DETECTION_WEIGHTS = {
42
+ /** Base framework weights */
43
+ BASE: {
44
+ JS_NPM: 1,
45
+ JAVA_BASE: 1,
46
+ PYTHON_BASE: 1,
47
+ GO_BASE: 1,
48
+ },
49
+ /** Framework-specific weights */
50
+ FRAMEWORK: {
51
+ REACT: 2,
52
+ NEXT: 3,
53
+ SPRING: 2,
54
+ DJANGO: 2,
55
+ },
56
+ /** Plugin weights should be > 10 */
57
+ PLUGIN_MIN_WEIGHT: 10,
58
+ };
59
+ /**
60
+ * Default extensions for common project types
61
+ */
62
+ export const DEFAULT_EXTENSIONS = {
63
+ JS: ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs', '.json', '.md'],
64
+ JAVA: ['.java', '.xml', '.properties', '.md'],
65
+ PYTHON: ['.py', '.pyi', '.pyw', '.md'],
66
+ GO: ['.go', '.mod', '.sum', '.md'],
67
+ };
68
+ /**
69
+ * Default ignore paths for common project types
70
+ */
71
+ export const DEFAULT_IGNORE_PATHS = {
72
+ JS: ['node_modules', 'build', 'dist', 'coverage', '.next', '.cache'],
73
+ JAVA: ['target', 'build', 'out', '.gradle', '.mvn', '.settings'],
74
+ PYTHON: ['__pycache__', '*.pyc', '.pytest_cache', 'venv', '.venv', 'dist'],
75
+ GO: ['vendor', 'bin', 'dist'],
76
+ };
77
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/project-profiles/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4DH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qCAAqC;IACrC,EAAE,EAAE;QACF,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC;QACnE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,gBAAgB;KACvB;IACD,oBAAoB;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,wBAAwB;KACjC;IACD,sBAAsB;IACtB,MAAM,EAAE;QACN,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC5B,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,gBAAgB;KACzB;IACD,kBAAkB;IAClB,EAAE,EAAE;QACF,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,SAAS;KAChB;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,6BAA6B;IAC7B,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;KACX;IACD,iCAAiC;IACjC,SAAS,EAAE;QACT,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;KACV;IACD,oCAAoC;IACpC,iBAAiB,EAAE,EAAE;CACb,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IAClE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC;IAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IACtC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;CAC1B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;IACpE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC;IAChE,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAC1E,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;CACrB,CAAC"}
@@ -21,8 +21,27 @@ export const setSummaries = {
21
21
  type: 'string',
22
22
  description: "A summary of the file's content, highlighting its main purpose, functionality, or details which may be useful for context optimization.",
23
23
  },
24
+ dependencies: {
25
+ type: 'array',
26
+ description: 'Optional list of file dependencies detected in the source code.',
27
+ items: {
28
+ type: 'object',
29
+ properties: {
30
+ path: {
31
+ type: 'string',
32
+ description: 'Path to the dependent file or package/library name for external dependencies.',
33
+ },
34
+ type: {
35
+ type: 'string',
36
+ enum: ['local', 'external'],
37
+ description: 'Type of dependency - local (file in project) or external (package/library/module).',
38
+ },
39
+ },
40
+ required: ['path', 'type'],
41
+ },
42
+ },
24
43
  },
25
- required: ['filePath', 'summary'],
44
+ required: ['filePath', 'summary', 'dependencies'],
26
45
  },
27
46
  },
28
47
  },
@@ -1 +1 @@
1
- {"version":3,"file":"set-summaries.js","sourceRoot":"","sources":["../../../src/prompt/function-defs/set-summaries.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,8CAA8C;IAC3D,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,WAAW,EACT,sHAAsH;gBACxH,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8CAA8C;yBAC5D;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,yIAAyI;yBAC5I;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;iBAClC;aACF;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;CACF,CAAC"}
1
+ {"version":3,"file":"set-summaries.js","sourceRoot":"","sources":["../../../src/prompt/function-defs/set-summaries.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,8CAA8C;IAC3D,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,WAAW,EACT,sHAAsH;gBACxH,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8CAA8C;yBAC5D;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,yIAAyI;yBAC5I;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,OAAO;4BACb,WAAW,EAAE,iEAAiE;4BAC9E,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,IAAI,EAAE;wCACJ,IAAI,EAAE,QAAQ;wCACd,WAAW,EAAE,+EAA+E;qCAC7F;oCACD,IAAI,EAAE;wCACJ,IAAI,EAAE,QAAQ;wCACd,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;wCAC3B,WAAW,EAAE,oFAAoF;qCAClG;iCACF;gCACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;6BAC3B;yBACF;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC;iBAClD;aACF;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;CACF,CAAC"}
@@ -40,6 +40,7 @@ describe('getCodeGenPrompt', () => {
40
40
  temperature: 0.7,
41
41
  cheap: false,
42
42
  explicitPrompt: 'testx',
43
+ askQuestion: false,
43
44
  }).prompt;
44
45
  expect(prompt).toContain('testx');
45
46
  });
@@ -54,7 +55,7 @@ describe('getLintFixPrompt', () => {
54
55
  const command = 'eslint --fix';
55
56
  const stdout = 'Fixed 2 errors';
56
57
  const stderr = '';
57
- const prompt = getLintFixPrompt(command, { aiService: 'vertex-ai' }, stdout, stderr);
58
+ const prompt = getLintFixPrompt(command, { aiService: 'vertex-ai', askQuestion: false }, stdout, stderr);
58
59
  expect(prompt).toContain('The following lint errors were encountered after the initial code generation:');
59
60
  expect(prompt).toContain(`Lint command: ${command}`);
60
61
  expect(prompt).toContain('Lint command stdout:');
@@ -66,7 +67,7 @@ describe('getLintFixPrompt', () => {
66
67
  const command = 'eslint --fix';
67
68
  const stdout = '';
68
69
  const stderr = 'Error: Unable to resolve path';
69
- const prompt = getLintFixPrompt(command, { aiService: 'vertex-ai' }, stdout, stderr);
70
+ const prompt = getLintFixPrompt(command, { aiService: 'vertex-ai', askQuestion: false }, stdout, stderr);
70
71
  expect(prompt).toContain('Lint command stderr:');
71
72
  expect(prompt).toContain(stderr);
72
73
  });
@@ -74,7 +75,7 @@ describe('getLintFixPrompt', () => {
74
75
  const command = 'eslint --fix';
75
76
  const stdout = 'Fixed 1 error';
76
77
  const stderr = '';
77
- getLintFixPrompt(command, { aiService: 'vertex-ai' }, stdout, stderr);
78
+ getLintFixPrompt(command, { aiService: 'vertex-ai', askQuestion: false }, stdout, stderr);
78
79
  expect(limits.verifyCodegenPromptLimit).toHaveBeenCalledWith(expect.any(String));
79
80
  });
80
81
  it('should log the prompt when verbosePrompt is true', () => {
@@ -82,7 +83,7 @@ describe('getLintFixPrompt', () => {
82
83
  const command = 'eslint --fix';
83
84
  const stdout = 'Fixed 1 error';
84
85
  const stderr = '';
85
- getLintFixPrompt(command, { aiService: 'vertex-ai', verbose: true }, stdout, stderr);
86
+ getLintFixPrompt(command, { aiService: 'vertex-ai', verbose: true, askQuestion: false }, stdout, stderr);
86
87
  expect(consoleSpy).toHaveBeenCalledWith('Lint fix prompt:');
87
88
  expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('The following lint errors were encountered'));
88
89
  consoleSpy.mockRestore();
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-codegen.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-codegen.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-codegen.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-codegen.test.ts"],"names":[],"mappings":"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"}
@@ -127,6 +127,7 @@ describe('promptService with askQuestion', () => {
127
127
  explicitPrompt: 'testx',
128
128
  disableContextOptimization: true,
129
129
  interactive: true,
130
+ askQuestion: true,
130
131
  }));
131
132
  expect(vertexAi.generateContent).toHaveBeenCalledTimes(1);
132
133
  expect(result).toEqual([]);
@@ -152,6 +153,7 @@ describe('promptService with askQuestion', () => {
152
153
  explicitPrompt: 'testx',
153
154
  disableContextOptimization: true,
154
155
  interactive: true,
156
+ askQuestion: true,
155
157
  }));
156
158
  expect(vertexAi.generateContent).toHaveBeenCalledTimes(3);
157
159
  expect(prompts.input).not.toHaveBeenCalled();
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service-ask-question.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-service-ask-question.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service-ask-question.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-service-ask-question.test.ts"],"names":[],"mappings":"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"}