genaicode 0.7.0 → 0.8.0
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/cli/cli-params.d.ts +1 -1
- package/dist/cli/cli-params.js +1 -1
- package/dist/cli/cli-params.js.map +1 -1
- package/dist/eval/codegen-summary.test.js +3 -1
- package/dist/eval/codegen-summary.test.js.map +1 -1
- package/dist/eval/data/current-prompt.d.ts +0 -39
- package/dist/eval/data/current-prompt.js +34 -79
- package/dist/eval/data/current-prompt.js.map +1 -1
- package/dist/eval/prompt-debug.test.js +6 -1
- package/dist/eval/prompt-debug.test.js.map +1 -1
- package/dist/files/read-files.d.ts +27 -4
- package/dist/files/read-files.js +20 -5
- package/dist/files/read-files.js.map +1 -1
- package/dist/files/read-files.test.js +4 -4
- package/dist/files/read-files.test.js.map +1 -1
- package/dist/files/source-code-tree.d.ts +11 -6
- package/dist/files/source-code-tree.js +45 -2
- package/dist/files/source-code-tree.js.map +1 -1
- package/dist/main/codegen-types.d.ts +1 -1
- package/dist/main/config-lib.js +20 -2
- package/dist/main/config-lib.js.map +1 -1
- package/dist/main/config.js +4 -28
- package/dist/main/config.js.map +1 -1
- package/dist/main/interactive/codegen-interactive.test.js +1 -1
- package/dist/main/interactive/codegen-interactive.test.js.map +1 -1
- package/dist/main/plugin-loader.d.ts +5 -0
- package/dist/main/plugin-loader.js +53 -0
- package/dist/main/plugin-loader.js.map +1 -1
- package/dist/main/ui/frontend/assets/index-QOcNx5ac.js +812 -0
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/project-profiles/detection.d.ts +40 -0
- package/dist/project-profiles/detection.js +131 -0
- package/dist/project-profiles/detection.js.map +1 -0
- package/dist/project-profiles/index.d.ts +35 -0
- package/dist/project-profiles/index.js +72 -0
- package/dist/project-profiles/index.js.map +1 -0
- package/dist/project-profiles/profiles/golang.d.ts +65 -0
- package/dist/project-profiles/profiles/golang.js +208 -0
- package/dist/project-profiles/profiles/golang.js.map +1 -0
- package/dist/project-profiles/profiles/java-maven.d.ts +80 -0
- package/dist/project-profiles/profiles/java-maven.js +165 -0
- package/dist/project-profiles/profiles/java-maven.js.map +1 -0
- package/dist/project-profiles/profiles/javascript-npm.d.ts +40 -0
- package/dist/project-profiles/profiles/javascript-npm.js +118 -0
- package/dist/project-profiles/profiles/javascript-npm.js.map +1 -0
- package/dist/project-profiles/profiles/javascript-react.d.ts +46 -0
- package/dist/project-profiles/profiles/javascript-react.js +147 -0
- package/dist/project-profiles/profiles/javascript-react.js.map +1 -0
- package/dist/project-profiles/profiles/python-django.d.ts +58 -0
- package/dist/project-profiles/profiles/python-django.js +200 -0
- package/dist/project-profiles/profiles/python-django.js.map +1 -0
- package/dist/project-profiles/types.d.ts +122 -0
- package/dist/project-profiles/types.js +77 -0
- package/dist/project-profiles/types.js.map +1 -0
- package/dist/prompt/function-defs/set-summaries.js +20 -1
- package/dist/prompt/function-defs/set-summaries.js.map +1 -1
- package/dist/prompt/prompt-codegen.test.js +5 -4
- package/dist/prompt/prompt-codegen.test.js.map +1 -1
- package/dist/prompt/prompt-service-ask-question.test.js +2 -0
- package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
- package/dist/prompt/prompt-service.js +13 -106
- package/dist/prompt/prompt-service.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +58 -0
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js +1 -3
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/default-action.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/default-action.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message-with-image.js +0 -6
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message-with-image.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js +0 -3
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +2 -5
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js +0 -3
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +4 -3
- package/dist/prompt/steps/step-ask-question/step-ask-question.d.ts +2 -3
- package/dist/prompt/steps/step-ask-question/step-ask-question.js +20 -6
- package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-codegen-planning.js +1 -1
- package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
- package/dist/prompt/steps/step-codegen-summary.d.ts +7 -0
- package/dist/prompt/steps/step-codegen-summary.js +106 -0
- package/dist/prompt/steps/step-codegen-summary.js.map +1 -0
- package/dist/prompt/steps/step-codegen-summary.test.d.ts +1 -0
- package/dist/prompt/steps/step-codegen-summary.test.js +136 -0
- package/dist/prompt/steps/step-codegen-summary.test.js.map +1 -0
- package/dist/prompt/steps/step-context-optimization.js +153 -66
- package/dist/prompt/steps/step-context-optimization.js.map +1 -1
- package/dist/prompt/steps/step-context-optimization.test.js +24 -5
- package/dist/prompt/steps/step-context-optimization.test.js.map +1 -1
- package/dist/prompt/steps/step-ensure-context.d.ts +15 -0
- package/dist/prompt/steps/step-ensure-context.js +102 -0
- package/dist/prompt/steps/step-ensure-context.js.map +1 -0
- package/dist/prompt/steps/step-ensure-context.test.d.ts +1 -0
- package/dist/prompt/steps/step-ensure-context.test.js +242 -0
- package/dist/prompt/steps/step-ensure-context.test.js.map +1 -0
- package/dist/prompt/steps/step-summarization.d.ts +2 -1
- package/dist/prompt/steps/step-summarization.js +44 -11
- package/dist/prompt/steps/step-summarization.js.map +1 -1
- package/dist/prompt/steps/steps-types.d.ts +2 -0
- package/dist/prompt/steps/steps-types.js.map +1 -1
- package/dist/prompt/systemprompt.test.js +2 -2
- package/dist/prompt/systemprompt.test.js.map +1 -1
- package/package.json +6 -2
- package/dist/main/ui/frontend/assets/index-5e3ykhy6.js +0 -808
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"current-prompt.js","sourceRoot":"","sources":["../../../src/eval/data/current-prompt.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,
|
|
1
|
+
{"version":3,"file":"current-prompt.js","sourceRoot":"","sources":["../../../src/eval/data/current-prompt.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EACV,s1KAAs1K;KACz1K;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,mBAAmB;KAC1B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,+QAA+Q;QACrR,aAAa,EAAE;YACb;gBACE,IAAI,EAAE,eAAe;aACtB;YACD;gBACE,IAAI,EAAE,gBAAgB;aACvB;YACD;gBACE,IAAI,EAAE,aAAa;aACpB;SACF;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,iCAAiC,EAAE;wBACjC,QAAQ,EAAE;4BACR,OAAO,EAAE,iCAAiC;yBAC3C;qBACF;iBACF,CAAC;aACH;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,EAAE;aACZ;SACF;QACD,IAAI,EAAE,2EAA2E;QACjF,KAAK,EAAE,IAAI;KACZ;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,uDAAuD;KAC9D;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,0BAA0B;KACjC;CACF,CAAC"}
|
|
@@ -17,6 +17,7 @@ describe('prompt-debug', () => {
|
|
|
17
17
|
it('Gemini Flash', async () => {
|
|
18
18
|
const geminiArgs = (await generateContentGemini(prompt, getFunctionDefs(), requiredFunctionName, temperature, true, {
|
|
19
19
|
aiService: 'vertex-ai',
|
|
20
|
+
askQuestion: false,
|
|
20
21
|
}))[0].args;
|
|
21
22
|
console.log('GEMINI', JSON.stringify(geminiArgs, null, 4));
|
|
22
23
|
});
|
|
@@ -28,12 +29,13 @@ describe('prompt-debug', () => {
|
|
|
28
29
|
{
|
|
29
30
|
aiService: 'chat-gpt',
|
|
30
31
|
disableCache: false,
|
|
32
|
+
askQuestion: false,
|
|
31
33
|
},
|
|
32
34
|
], result, generateContentGPT);
|
|
33
35
|
console.log('GPT', JSON.stringify(result, null, 4));
|
|
34
36
|
});
|
|
35
37
|
it('Claude Haikku', async () => {
|
|
36
|
-
const defs = getFunctionDefs();
|
|
38
|
+
const defs = getFunctionDefs(); //.filter((fd) => fd.name === 'askQuestion');
|
|
37
39
|
const req = [
|
|
38
40
|
prompt,
|
|
39
41
|
defs,
|
|
@@ -43,6 +45,7 @@ describe('prompt-debug', () => {
|
|
|
43
45
|
{
|
|
44
46
|
aiService: 'anthropic',
|
|
45
47
|
disableCache: false,
|
|
48
|
+
askQuestion: false,
|
|
46
49
|
},
|
|
47
50
|
];
|
|
48
51
|
let result = await generateContentClaude(...req);
|
|
@@ -52,6 +55,7 @@ describe('prompt-debug', () => {
|
|
|
52
55
|
it('Gemini Pro', async () => {
|
|
53
56
|
const geminiArgs = (await generateContentGemini(prompt, getFunctionDefs(), requiredFunctionName, temperature, false, {
|
|
54
57
|
aiService: 'vertex-ai',
|
|
58
|
+
askQuestion: false,
|
|
55
59
|
}))[0].args;
|
|
56
60
|
console.log('GEMINI', JSON.stringify(geminiArgs, null, 4));
|
|
57
61
|
});
|
|
@@ -64,6 +68,7 @@ describe('prompt-debug', () => {
|
|
|
64
68
|
const claudeArgs = (await generateContentClaude(prompt, getFunctionDefs(), requiredFunctionName, temperature, false, {
|
|
65
69
|
aiService: 'anthropic',
|
|
66
70
|
disableCache: false,
|
|
71
|
+
askQuestion: false,
|
|
67
72
|
}))[0].args;
|
|
68
73
|
console.log('CLAUDE', JSON.stringify(claudeArgs, null, 4));
|
|
69
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-debug.test.js","sourceRoot":"","sources":["../../src/eval/prompt-debug.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnF,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,qDAAqD;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,EAAE,CAAC,SAAS,CAAC;IACX,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,MAAM,GAAG,oBAAoC,CAAC;IACpD,MAAM,oBAAoB,GAAG,aAAa,CAAC;IAC3C,MAAM,WAAW,GAAG,GAAG,CAAC;IAExB,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,UAAU,GAAG,CACjB,MAAM,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,oBAAoB,EAAE,WAAW,EAAE,IAAI,EAAE;YAC9F,SAAS,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"prompt-debug.test.js","sourceRoot":"","sources":["../../src/eval/prompt-debug.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
import { CodegenOptions } from '../main/codegen-types.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Represents a dependency in the source code
|
|
4
|
+
*/
|
|
5
|
+
export interface DependencyInfo {
|
|
6
|
+
/** Path of the dependeny */
|
|
7
|
+
path: string;
|
|
8
|
+
/** Type of dependency */
|
|
9
|
+
type: 'local' | 'external';
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Represents file content with optional dependencies
|
|
13
|
+
*/
|
|
14
|
+
export interface FileContent {
|
|
15
|
+
/** The actual content of the file */
|
|
3
16
|
content: string | null;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
17
|
+
/** Optional list of dependencies */
|
|
18
|
+
dependencies?: DependencyInfo[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Represents a file summary with optional dependencies
|
|
22
|
+
*/
|
|
23
|
+
export interface FileSummary {
|
|
24
|
+
/** Summary of the file content */
|
|
25
|
+
summary?: string;
|
|
26
|
+
/** Optional list of dependencies */
|
|
27
|
+
dependencies?: DependencyInfo[];
|
|
28
|
+
}
|
|
29
|
+
export type SourceCodeMap = Record<string, FileContent | FileSummary>;
|
|
7
30
|
type ImageAssetsMap = Record<string, {
|
|
8
31
|
mimeType: string | false;
|
|
9
32
|
width: number;
|
package/dist/files/read-files.js
CHANGED
|
@@ -18,29 +18,44 @@ function readSourceFiles({ contentMask, ignorePatterns }, filterPaths, forceAll
|
|
|
18
18
|
continue;
|
|
19
19
|
}
|
|
20
20
|
if (!filterPaths || filterPaths.includes(file) || importantFiles.has(file)) {
|
|
21
|
+
const summary = getSummary(file);
|
|
21
22
|
// Always include important files
|
|
22
23
|
if (importantFiles.has(file)) {
|
|
23
|
-
|
|
24
|
+
const content = fs.readFileSync(file, 'utf-8');
|
|
25
|
+
sourceCode[file] = {
|
|
26
|
+
content,
|
|
27
|
+
dependencies: summary?.dependencies,
|
|
28
|
+
};
|
|
24
29
|
continue;
|
|
25
30
|
}
|
|
26
|
-
const summary = getSummary(file);
|
|
27
31
|
// Apply content mask filter if it's set
|
|
28
32
|
if (!filterPaths && contentMask && !forceAll) {
|
|
29
33
|
const relativePath = path.relative(rcConfig.rootDir, file);
|
|
30
34
|
if (!relativePath.startsWith(contentMask)) {
|
|
31
|
-
sourceCode[file] = summary
|
|
35
|
+
sourceCode[file] = summary
|
|
36
|
+
? {
|
|
37
|
+
summary: summary.summary,
|
|
38
|
+
...(summary.dependencies?.length ? { dependencies: summary.dependencies } : {}),
|
|
39
|
+
}
|
|
40
|
+
: { content: null };
|
|
32
41
|
continue;
|
|
33
42
|
}
|
|
34
43
|
}
|
|
35
44
|
if (!forceAll) {
|
|
36
45
|
sourceCode[file] =
|
|
37
46
|
!ignorePatterns?.some((pattern) => globRegex(pattern).test(file)) && summary
|
|
38
|
-
? {
|
|
47
|
+
? {
|
|
48
|
+
summary: summary.summary,
|
|
49
|
+
...(summary.dependencies?.length ? { dependencies: summary.dependencies } : {}),
|
|
50
|
+
}
|
|
39
51
|
: { content: null };
|
|
40
52
|
}
|
|
41
53
|
else {
|
|
42
54
|
const content = fs.readFileSync(file, 'utf-8');
|
|
43
|
-
sourceCode[file] = {
|
|
55
|
+
sourceCode[file] = {
|
|
56
|
+
content,
|
|
57
|
+
dependencies: summary?.dependencies,
|
|
58
|
+
};
|
|
44
59
|
}
|
|
45
60
|
}
|
|
46
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-files.js","sourceRoot":"","sources":["../../src/files/read-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"read-files.js","sourceRoot":"","sources":["../../src/files/read-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ describe('read-files', () => {
|
|
|
31
31
|
beforeEach(() => {
|
|
32
32
|
vi.resetAllMocks();
|
|
33
33
|
vi.mocked(cliParams).contentMask = undefined;
|
|
34
|
-
vi.mocked(getSummary).mockImplementation((file) => ({ summary: `Summary of ${file}
|
|
34
|
+
vi.mocked(getSummary).mockImplementation((file) => ({ summary: `Summary of ${file}`, dependencies: [] }));
|
|
35
35
|
});
|
|
36
36
|
afterEach(() => {
|
|
37
37
|
vi.clearAllMocks();
|
|
@@ -43,7 +43,7 @@ describe('read-files', () => {
|
|
|
43
43
|
vi.mocked(fs).existsSync.mockReturnValue(true);
|
|
44
44
|
vi.mocked(fs).readFileSync.mockImplementation((file) => `Content of ${file}`);
|
|
45
45
|
rcConfig.rootDir = '/home/project';
|
|
46
|
-
const result = getSourceCode({ taskFile: undefined }, { aiService: 'vertex-ai' });
|
|
46
|
+
const result = getSourceCode({ taskFile: undefined }, { aiService: 'vertex-ai', askQuestion: false });
|
|
47
47
|
expect(result).toEqual({
|
|
48
48
|
'/home/project/file1.js': { summary: 'Summary of /home/project/file1.js' },
|
|
49
49
|
'/home/project/file2.js': { summary: 'Summary of /home/project/file2.js' },
|
|
@@ -56,7 +56,7 @@ describe('read-files', () => {
|
|
|
56
56
|
vi.mocked(fs).existsSync.mockReturnValue(true);
|
|
57
57
|
vi.mocked(fs).readFileSync.mockImplementation((file) => `Content of ${file}`);
|
|
58
58
|
rcConfig.rootDir = '/home/project';
|
|
59
|
-
const result = getSourceCode({ taskFile: undefined }, { aiService: 'vertex-ai', contentMask: 'subfolder' });
|
|
59
|
+
const result = getSourceCode({ taskFile: undefined }, { aiService: 'vertex-ai', contentMask: 'subfolder', askQuestion: false });
|
|
60
60
|
expect(result).toEqual({
|
|
61
61
|
'/home/project/file1.js': { summary: 'Summary of /home/project/file1.js' },
|
|
62
62
|
'/home/project/subfolder/file2.js': {
|
|
@@ -70,7 +70,7 @@ describe('read-files', () => {
|
|
|
70
70
|
vi.mocked(fs).existsSync.mockReturnValue(true);
|
|
71
71
|
vi.mocked(fs).readFileSync.mockImplementation((file) => `Content of ${file}`);
|
|
72
72
|
rcConfig.rootDir = '/home/project';
|
|
73
|
-
const result = getSourceCode({ taskFile: '/home/project/task.md' }, { aiService: 'vertex-ai' });
|
|
73
|
+
const result = getSourceCode({ taskFile: '/home/project/task.md' }, { aiService: 'vertex-ai', askQuestion: false });
|
|
74
74
|
expect(result).toEqual({
|
|
75
75
|
'/home/project/file1.js': { summary: 'Summary of /home/project/file1.js' },
|
|
76
76
|
'/home/project/task.md': { content: 'Content of /home/project/task.md' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-files.test.js","sourceRoot":"","sources":["../../src/files/read-files.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAEnE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtB,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;AACjD,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC3B,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/B,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;IACjB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,EAAE;CACnB,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,QAAQ,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;IACtC,gBAAgB,EAAE,EAAE;CACrB,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7C,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"read-files.test.js","sourceRoot":"","sources":["../../src/files/read-files.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { SourceCodeMap } from '../files/read-files.js';
|
|
1
|
+
import { SourceCodeMap, FileContent, FileSummary } from '../files/read-files.js';
|
|
2
|
+
/**
|
|
3
|
+
* Directory structure representing source code files with their content or summaries and dependencies
|
|
4
|
+
*/
|
|
2
5
|
export type SourceCodeTree = {
|
|
3
6
|
[directoryPath: string]: {
|
|
4
|
-
[filePath: string]:
|
|
5
|
-
content: string | null;
|
|
6
|
-
} | {
|
|
7
|
-
summary: string;
|
|
8
|
-
};
|
|
7
|
+
[filePath: string]: FileContent | FileSummary;
|
|
9
8
|
};
|
|
10
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Converts flat SourceCodeMap into a directory tree structure
|
|
12
|
+
*/
|
|
11
13
|
export declare function getSourceCodeTree(sourceCode: SourceCodeMap): SourceCodeTree;
|
|
14
|
+
/**
|
|
15
|
+
* Converts directory tree structure back into flat SourceCodeMap
|
|
16
|
+
*/
|
|
12
17
|
export declare function parseSourceCodeTree(sourceCodeTree: SourceCodeTree): SourceCodeMap;
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import { rcConfig } from '../main/config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Type guard to check if an object is a FileContent with dependencies
|
|
5
|
+
*/
|
|
6
|
+
function hasContent(obj) {
|
|
7
|
+
return 'content' in obj;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Type guard to check if an object is a FileSummary with dependencies
|
|
11
|
+
*/
|
|
12
|
+
function hasSummary(obj) {
|
|
13
|
+
return 'summary' in obj;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Converts flat SourceCodeMap into a directory tree structure
|
|
17
|
+
*/
|
|
3
18
|
export function getSourceCodeTree(sourceCode) {
|
|
4
19
|
const result = {};
|
|
5
20
|
for (const [filePath, fileData] of Object.entries(sourceCode)) {
|
|
@@ -11,15 +26,43 @@ export function getSourceCodeTree(sourceCode) {
|
|
|
11
26
|
if (!result[dirPath]) {
|
|
12
27
|
result[dirPath] = {};
|
|
13
28
|
}
|
|
14
|
-
|
|
29
|
+
// Handle both content and summary cases while preserving dependencies
|
|
30
|
+
if (hasContent(fileData)) {
|
|
31
|
+
result[dirPath][fileName] = {
|
|
32
|
+
content: fileData.content,
|
|
33
|
+
...(fileData.dependencies && { dependencies: fileData.dependencies }),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
else if (hasSummary(fileData)) {
|
|
37
|
+
result[dirPath][fileName] = {
|
|
38
|
+
summary: fileData.summary,
|
|
39
|
+
...(fileData.dependencies && { dependencies: fileData.dependencies }),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
15
42
|
}
|
|
16
43
|
return result;
|
|
17
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Converts directory tree structure back into flat SourceCodeMap
|
|
47
|
+
*/
|
|
18
48
|
export function parseSourceCodeTree(sourceCodeTree) {
|
|
19
49
|
const result = {};
|
|
20
50
|
for (const [dirPath, files] of Object.entries(sourceCodeTree)) {
|
|
21
51
|
for (const [filePath, fileData] of Object.entries(files)) {
|
|
22
|
-
|
|
52
|
+
const fullPath = `${dirPath}/${filePath}`;
|
|
53
|
+
// Handle both content and summary cases while preserving dependencies
|
|
54
|
+
if (hasContent(fileData)) {
|
|
55
|
+
result[fullPath] = {
|
|
56
|
+
content: fileData.content,
|
|
57
|
+
...(fileData.dependencies && { dependencies: fileData.dependencies }),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
else if (hasSummary(fileData)) {
|
|
61
|
+
result[fullPath] = {
|
|
62
|
+
summary: fileData.summary,
|
|
63
|
+
...(fileData.dependencies && { dependencies: fileData.dependencies }),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
23
66
|
}
|
|
24
67
|
}
|
|
25
68
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-code-tree.js","sourceRoot":"","sources":["../../src/files/source-code-tree.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"source-code-tree.js","sourceRoot":"","sources":["../../src/files/source-code-tree.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;GAEG;AACH,SAAS,UAAU,CAAC,GAA8B;IAChD,OAAO,SAAS,IAAI,GAAG,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAA8B;IAChD,OAAO,SAAS,IAAI,GAAG,CAAC;AAC1B,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAyB;IACzD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;QAED,sEAAsE;QACtE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG;gBAC1B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;aACtE,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG;gBAC1B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;aACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,cAA8B;IAChE,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;YAE1C,sEAAsE;YACtE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,QAAQ,CAAC,GAAG;oBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;iBACtE,CAAC;YACJ,CAAC;iBAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,GAAG;oBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;iBACtE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/main/config-lib.js
CHANGED
|
@@ -3,8 +3,25 @@ import path from 'path';
|
|
|
3
3
|
import assert from 'node:assert';
|
|
4
4
|
import { confirm } from '@inquirer/prompts';
|
|
5
5
|
import { isAncestorDirectory } from '../files/file-utils.js';
|
|
6
|
+
import { detectAndConfigureProfile, npmProfile } from '../project-profiles/index.js';
|
|
6
7
|
// This file contains project codegen configuration
|
|
7
8
|
const CODEGENRC_FILENAME = '.genaicoderc';
|
|
9
|
+
/**
|
|
10
|
+
* Create initial .genaicoderc content with profile detection
|
|
11
|
+
*/
|
|
12
|
+
async function createInitialConfig(rcFilePath) {
|
|
13
|
+
const rootDir = path.dirname(rcFilePath);
|
|
14
|
+
const detectionResult = await detectAndConfigureProfile(rootDir);
|
|
15
|
+
const profile = detectionResult.profile ?? npmProfile;
|
|
16
|
+
// Create config using detected profile or npm profile as fallback
|
|
17
|
+
const config = {
|
|
18
|
+
rootDir: '.',
|
|
19
|
+
extensions: profile.extensions,
|
|
20
|
+
ignorePaths: profile.ignorePaths,
|
|
21
|
+
...(profile.lintCommand ? { lintCommand: profile.lintCommand } : {}),
|
|
22
|
+
};
|
|
23
|
+
return config;
|
|
24
|
+
}
|
|
8
25
|
// Find .genaicoderc file
|
|
9
26
|
export async function findRcFile() {
|
|
10
27
|
let rcFilePath = process.cwd();
|
|
@@ -21,8 +38,9 @@ export async function findRcFile() {
|
|
|
21
38
|
default: false,
|
|
22
39
|
});
|
|
23
40
|
if (createRcFile) {
|
|
24
|
-
|
|
25
|
-
|
|
41
|
+
const config = await createInitialConfig(path.join(rcFilePath, CODEGENRC_FILENAME));
|
|
42
|
+
fs.writeFileSync(path.join(rcFilePath, CODEGENRC_FILENAME), JSON.stringify(config, null, 2));
|
|
43
|
+
console.log(`Created ${CODEGENRC_FILENAME} in ${rcFilePath} with detected project profile`);
|
|
26
44
|
return path.join(rcFilePath, CODEGENRC_FILENAME);
|
|
27
45
|
}
|
|
28
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-lib.js","sourceRoot":"","sources":["../../src/main/config-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-lib.js","sourceRoot":"","sources":["../../src/main/config-lib.ts"],"names":[],"mappings":"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"}
|
package/dist/main/config.js
CHANGED
|
@@ -1,40 +1,16 @@
|
|
|
1
1
|
import { findRcFile, parseRcFile } from './config-lib.js';
|
|
2
2
|
import { loadPlugins } from './plugin-loader.js';
|
|
3
3
|
import path from 'path';
|
|
4
|
-
|
|
5
|
-
const DEFAULT_EXTENSIONS = [
|
|
6
|
-
'.md',
|
|
7
|
-
'.js',
|
|
8
|
-
'.ts',
|
|
9
|
-
'.tsx',
|
|
10
|
-
'.css',
|
|
11
|
-
'.scss',
|
|
12
|
-
'.py',
|
|
13
|
-
'.go',
|
|
14
|
-
'.c',
|
|
15
|
-
'.h',
|
|
16
|
-
'.cpp',
|
|
17
|
-
'.txt',
|
|
18
|
-
'.html',
|
|
19
|
-
'.txt',
|
|
20
|
-
'.json',
|
|
21
|
-
];
|
|
22
|
-
// A list of paths that are ignored by default
|
|
23
|
-
const DEFAULT_IGNORE_PATHS = ['node_modules', 'build', 'dist', 'package-lock.json', 'coverage'];
|
|
4
|
+
import { DEFAULT_EXTENSIONS, DEFAULT_IGNORE_PATHS } from '../project-profiles/index.js';
|
|
24
5
|
// Read and parse the configuration
|
|
25
6
|
const rcFilePath = await findRcFile();
|
|
26
7
|
export const rcConfig = parseRcFile(rcFilePath);
|
|
27
|
-
// Load plugins
|
|
28
8
|
await loadPlugins(rcConfig);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// Image extensions (driven by ai service limitations)
|
|
9
|
+
export const sourceExtensions = rcConfig.extensions ?? [...DEFAULT_EXTENSIONS.JS];
|
|
10
|
+
// Image extensions (driven by ai service limitations, so not configurable)
|
|
32
11
|
export const IMAGE_ASSET_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.gif', '.webp'];
|
|
33
|
-
|
|
34
|
-
export const ignorePaths = rcConfig.ignorePaths ?? DEFAULT_IGNORE_PATHS;
|
|
35
|
-
// Process and export important context
|
|
12
|
+
export const ignorePaths = rcConfig.ignorePaths ?? [...DEFAULT_IGNORE_PATHS.JS];
|
|
36
13
|
export const importantContext = processImportantContext(rcConfig.importantContext);
|
|
37
|
-
// Export model overrides
|
|
38
14
|
export const modelOverrides = rcConfig.modelOverrides ?? {};
|
|
39
15
|
function processImportantContext(context) {
|
|
40
16
|
if (!context)
|
package/dist/main/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/main/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAA8C,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/main/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAA8C,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAExF,mCAAmC;AACnC,MAAM,UAAU,GAAW,MAAM,UAAU,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAAa,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1D,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE5B,MAAM,CAAC,MAAM,gBAAgB,GAAa,QAAQ,CAAC,UAAU,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAE5F,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,WAAW,GAAa,QAAQ,CAAC,WAAW,IAAI,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,gBAAgB,GAAqB,uBAAuB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAErG,MAAM,CAAC,MAAM,cAAc,GAAmB,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;AAE5E,SAAS,uBAAuB,CAAC,OAAqC;IACpE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEpD,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACjF,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -28,7 +28,7 @@ vi.mock('./configure');
|
|
|
28
28
|
vi.mock('../../cli/cli-options');
|
|
29
29
|
vi.mock('./codegen-worker.js');
|
|
30
30
|
describe('runInteractiveMode', () => {
|
|
31
|
-
const mockOptions = { aiService: 'vertex-ai' };
|
|
31
|
+
const mockOptions = { aiService: 'vertex-ai', askQuestion: false };
|
|
32
32
|
beforeEach(() => {
|
|
33
33
|
vi.resetAllMocks();
|
|
34
34
|
// Mock console.log to prevent output during tests
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen-interactive.test.js","sourceRoot":"","sources":["../../../src/main/interactive/codegen-interactive.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,yBAAyB,CAAC;AACjC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,4BAA4B;AAC5B,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACxE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACrC,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACzB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvB,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC9B,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/B,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvB,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACjC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAE/B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,WAAW,GAAG,EAAE,SAAS,EAAE,WAAW,EAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"codegen-interactive.test.js","sourceRoot":"","sources":["../../../src/main/interactive/codegen-interactive.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,14 @@ import { Operation, PluginActionType, PluginAiServiceType, GenerateContentHook }
|
|
|
2
2
|
import { GenerateContentFunction } from '../ai-service/common.js';
|
|
3
3
|
import { ActionHandler } from '../prompt/steps/step-ask-question/step-ask-question-types.js';
|
|
4
4
|
import { RcConfig } from './config-lib.js';
|
|
5
|
+
import { ProjectProfilePlugin } from '../project-profiles/types.js';
|
|
5
6
|
export declare function loadPlugins(rcConfig: RcConfig): Promise<void>;
|
|
6
7
|
export declare function getRegisteredAiServices(): Map<PluginAiServiceType, GenerateContentFunction>;
|
|
7
8
|
export declare function getRegisteredOperations(): Operation[];
|
|
8
9
|
export declare function getRegisteredActionHandlers(): Map<PluginActionType, ActionHandler>;
|
|
9
10
|
export declare function getRegisteredActionHandlerDescriptions(): Map<PluginActionType, string>;
|
|
10
11
|
export declare function getRegisteredGenerateContentHooks(): GenerateContentHook[];
|
|
12
|
+
/**
|
|
13
|
+
* Get all registered project profile plugins
|
|
14
|
+
*/
|
|
15
|
+
export declare function getRegisteredProfilePlugins(): ProjectProfilePlugin[];
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
+
import { registerProfile } from '../project-profiles/index.js';
|
|
2
3
|
// Global storage for registered AI services and operations
|
|
3
4
|
const registeredAiServices = new Map();
|
|
4
5
|
const registeredOperations = {};
|
|
5
6
|
const registeredActionHandlerDescriptions = new Map();
|
|
6
7
|
const registeredActionHandlers = new Map();
|
|
7
8
|
const registeredGenerateContentHooks = [];
|
|
9
|
+
// Project profile plugin storage
|
|
10
|
+
const registeredProfilePlugins = [];
|
|
8
11
|
export async function loadPlugins(rcConfig) {
|
|
9
12
|
if (!rcConfig.plugins || rcConfig.plugins.length === 0) {
|
|
10
13
|
console.log('No plugins specified in the configuration.');
|
|
@@ -15,18 +18,21 @@ export async function loadPlugins(rcConfig) {
|
|
|
15
18
|
pluginPath = path.isAbsolute(pluginPath) ? pluginPath : path.join(rcConfig.rootDir, pluginPath);
|
|
16
19
|
console.log('Loading plugin:', pluginPath);
|
|
17
20
|
const plugin = (await import(pluginPath)).default;
|
|
21
|
+
// Handle AI services
|
|
18
22
|
if (plugin.aiServices) {
|
|
19
23
|
Object.entries(plugin.aiServices).forEach(([name, service]) => {
|
|
20
24
|
registeredAiServices.set(`plugin:${name}`, service);
|
|
21
25
|
console.log(`Registered AI service: ${name}`);
|
|
22
26
|
});
|
|
23
27
|
}
|
|
28
|
+
// Handle operations
|
|
24
29
|
if (plugin.operations) {
|
|
25
30
|
Object.entries(plugin.operations).forEach(([name, operation]) => {
|
|
26
31
|
registeredOperations[name] = operation;
|
|
27
32
|
console.log(`Registered operation: ${name}`);
|
|
28
33
|
});
|
|
29
34
|
}
|
|
35
|
+
// Handle action handlers
|
|
30
36
|
if (plugin.actionHandlers) {
|
|
31
37
|
Object.entries(plugin.actionHandlers).forEach(([name, { handler, description }]) => {
|
|
32
38
|
registeredActionHandlers.set(`plugin:${name}`, handler);
|
|
@@ -34,10 +40,25 @@ export async function loadPlugins(rcConfig) {
|
|
|
34
40
|
console.log(`Registered action handler: ${name}`);
|
|
35
41
|
});
|
|
36
42
|
}
|
|
43
|
+
// Handle generateContent hooks
|
|
37
44
|
if (plugin.generateContentHook) {
|
|
38
45
|
registeredGenerateContentHooks.push(plugin.generateContentHook);
|
|
39
46
|
console.log('Registered generateContent hook');
|
|
40
47
|
}
|
|
48
|
+
// Handle project profile plugins
|
|
49
|
+
if ('profiles' in plugin) {
|
|
50
|
+
const profilePlugin = plugin;
|
|
51
|
+
// Register project profiles
|
|
52
|
+
if (profilePlugin.profiles) {
|
|
53
|
+
profilePlugin.profiles.forEach((profile) => {
|
|
54
|
+
// Validate profile
|
|
55
|
+
validateProfile(profile);
|
|
56
|
+
// Register profile
|
|
57
|
+
registerProfile(profile);
|
|
58
|
+
console.log(`Registered project profile: ${profile.name} (${profile.id})`);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
41
62
|
console.log(`Successfully loaded plugin: ${pluginPath}`);
|
|
42
63
|
}
|
|
43
64
|
catch (error) {
|
|
@@ -45,6 +66,32 @@ export async function loadPlugins(rcConfig) {
|
|
|
45
66
|
}
|
|
46
67
|
}
|
|
47
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Validate project profile structure
|
|
71
|
+
*/
|
|
72
|
+
function validateProfile(profile) {
|
|
73
|
+
if (!profile.id || typeof profile.id !== 'string') {
|
|
74
|
+
throw new Error('Profile must have a string id');
|
|
75
|
+
}
|
|
76
|
+
if (!profile.name || typeof profile.name !== 'string') {
|
|
77
|
+
throw new Error('Profile must have a string name');
|
|
78
|
+
}
|
|
79
|
+
if (!Array.isArray(profile.extensions)) {
|
|
80
|
+
throw new Error('Profile must have an array of extensions');
|
|
81
|
+
}
|
|
82
|
+
if (!Array.isArray(profile.ignorePaths)) {
|
|
83
|
+
throw new Error('Profile must have an array of ignore paths');
|
|
84
|
+
}
|
|
85
|
+
if (!profile.detect || typeof profile.detect !== 'function') {
|
|
86
|
+
throw new Error('Profile must have a detect function');
|
|
87
|
+
}
|
|
88
|
+
if (typeof profile.detectionWeight !== 'number') {
|
|
89
|
+
throw new Error('Profile must have a numeric detectionWeight');
|
|
90
|
+
}
|
|
91
|
+
if (profile.initialize && typeof profile.initialize !== 'function') {
|
|
92
|
+
throw new Error('Profile initialize must be a function if provided');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
48
95
|
export function getRegisteredAiServices() {
|
|
49
96
|
return registeredAiServices;
|
|
50
97
|
}
|
|
@@ -60,4 +107,10 @@ export function getRegisteredActionHandlerDescriptions() {
|
|
|
60
107
|
export function getRegisteredGenerateContentHooks() {
|
|
61
108
|
return registeredGenerateContentHooks;
|
|
62
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Get all registered project profile plugins
|
|
112
|
+
*/
|
|
113
|
+
export function getRegisteredProfilePlugins() {
|
|
114
|
+
return registeredProfilePlugins;
|
|
115
|
+
}
|
|
63
116
|
//# sourceMappingURL=plugin-loader.js.map
|