genaicode 0.9.6 → 0.10.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.
- package/dist/ai-service/ai-studio.d.ts +1 -1
- package/dist/ai-service/ai-studio.js +114 -31
- package/dist/ai-service/ai-studio.js.map +1 -1
- package/dist/ai-service/anthropic.js +64 -28
- package/dist/ai-service/anthropic.js.map +1 -1
- package/dist/ai-service/common-types.d.ts +28 -7
- package/dist/ai-service/local-llm.d.ts +6 -0
- package/dist/ai-service/local-llm.js +77 -0
- package/dist/ai-service/local-llm.js.map +1 -0
- package/dist/ai-service/openai.d.ts +3 -13
- package/dist/ai-service/openai.js +107 -51
- package/dist/ai-service/openai.js.map +1 -1
- package/dist/ai-service/service-configurations-types.d.ts +14 -4
- package/dist/ai-service/service-configurations-types.js +0 -4
- package/dist/ai-service/service-configurations-types.js.map +1 -1
- package/dist/ai-service/service-configurations.d.ts +9 -1
- package/dist/ai-service/service-configurations.js +108 -12
- package/dist/ai-service/service-configurations.js.map +1 -1
- package/dist/ai-service/vertex-ai-claude.d.ts +1 -1
- package/dist/ai-service/vertex-ai-claude.js +80 -39
- package/dist/ai-service/vertex-ai-claude.js.map +1 -1
- package/dist/ai-service/vertex-ai.d.ts +1 -1
- package/dist/ai-service/vertex-ai.js +261 -155
- package/dist/ai-service/vertex-ai.js.map +1 -1
- package/dist/cli/cli-options.js +1 -1
- package/dist/cli/cli-options.js.map +1 -1
- package/dist/cli/validate-cli-params.js +1 -1
- package/dist/cli/validate-cli-params.js.map +1 -1
- package/dist/help-docs/genaicode-help-document.d.ts +1 -1
- package/dist/help-docs/genaicode-help-document.js +1 -0
- package/dist/help-docs/genaicode-help-document.js.map +1 -1
- package/dist/main/codegen-utils.js +9 -1
- package/dist/main/codegen-utils.js.map +1 -1
- package/dist/main/codegen.js +2 -0
- package/dist/main/codegen.js.map +1 -1
- package/dist/main/common/user-actions.d.ts +2 -0
- package/dist/main/common/user-actions.js.map +1 -1
- package/dist/main/config-schema.js +16 -0
- package/dist/main/config-schema.js.map +1 -1
- package/dist/main/config-types.d.ts +16 -0
- package/dist/main/config.js +9 -1
- package/dist/main/config.js.map +1 -1
- package/dist/main/interactive/select-ai-service.js +1 -0
- package/dist/main/interactive/select-ai-service.js.map +1 -1
- package/dist/main/plugin-loader.d.ts +1 -2
- package/dist/main/plugin-loader.js.map +1 -1
- package/dist/main/ui/backend/endpoints/question-endpoint.js +34 -3
- package/dist/main/ui/backend/endpoints/question-endpoint.js.map +1 -1
- package/dist/main/ui/backend/service.d.ts +6 -5
- package/dist/main/ui/backend/service.js +54 -17
- package/dist/main/ui/backend/service.js.map +1 -1
- package/dist/main/ui/common/api-types.d.ts +1 -0
- package/dist/main/ui/frontend/assets/index-C7n3IQsE.js +1896 -0
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/project-profiles/types.d.ts +1 -1
- package/dist/project-profiles/types.js +1 -1
- package/dist/project-profiles/types.js.map +1 -1
- package/dist/prompt/function-calling.js +8 -1
- package/dist/prompt/function-calling.js.map +1 -1
- package/dist/prompt/function-defs/ask-question.d.ts +1 -0
- package/dist/prompt/function-defs/ask-question.js +38 -4
- package/dist/prompt/function-defs/ask-question.js.map +1 -1
- package/dist/prompt/function-defs/conversation-summary.d.ts +2 -0
- package/dist/prompt/function-defs/conversation-summary.js +15 -0
- package/dist/prompt/function-defs/conversation-summary.js.map +1 -0
- package/dist/prompt/function-defs/explore-external-directories.d.ts +16 -0
- package/dist/prompt/function-defs/explore-external-directories.js +48 -0
- package/dist/prompt/function-defs/explore-external-directories.js.map +1 -0
- package/dist/prompt/function-defs/read-external-files.d.ts +9 -0
- package/dist/prompt/function-defs/read-external-files.js +30 -0
- package/dist/prompt/function-defs/read-external-files.js.map +1 -0
- package/dist/prompt/limits.js +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-code-generation.js +23 -18
- package/dist/prompt/steps/step-ask-question/handlers/handle-code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-conversation-graph.js +60 -28
- package/dist/prompt/steps/step-ask-question/handlers/handle-conversation-graph.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-create-file.js +76 -73
- package/dist/prompt/steps/step-ask-question/handlers/handle-create-file.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.js +277 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-genaicode-help.js +13 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-genaicode-help.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-generate-image.js +13 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-generate-image.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-lint.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js +54 -61
- package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-perform-analysis.js +22 -10
- package/dist/prompt/steps/step-ask-question/handlers/handle-perform-analysis.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-pull-app-context.js +13 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-pull-app-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-push-app-context.js +13 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-push-app-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-read-external-files.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-read-external-files.js +144 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-read-external-files.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-reasoning-inference.js +27 -6
- package/dist/prompt/steps/step-ask-question/handlers/handle-reasoning-inference.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-remove-files-from-context.js +13 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-remove-files-from-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-content.js +14 -5
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-content.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-fragments.js +26 -2
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-fragments.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.d.ts +3 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.js +182 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-permissions.js +13 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-permissions.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.js +14 -2
- package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-update-file.js +59 -60
- package/dist/prompt/steps/step-ask-question/handlers/handle-update-file.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question-handlers.js +4 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question-handlers.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +11 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/step-ask-question.js +14 -7
- package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-codegen-planning.js +14 -5
- package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
- package/dist/prompt/steps/step-context-compression.js +14 -5
- package/dist/prompt/steps/step-context-compression.js.map +1 -1
- package/dist/prompt/steps/step-context-optimization.js +10 -5
- package/dist/prompt/steps/step-context-optimization.js.map +1 -1
- package/dist/prompt/steps/step-generate-codegen-summary.js +14 -5
- package/dist/prompt/steps/step-generate-codegen-summary.js.map +1 -1
- package/dist/prompt/steps/step-generate-summary.d.ts +6 -0
- package/dist/prompt/steps/step-generate-summary.js +36 -16
- package/dist/prompt/steps/step-generate-summary.js.map +1 -1
- package/dist/prompt/steps/step-history-update.js +14 -5
- package/dist/prompt/steps/step-history-update.js.map +1 -1
- package/dist/prompt/steps/step-process-file-updates.js +10 -5
- package/dist/prompt/steps/step-process-file-updates.js.map +1 -1
- package/dist/prompt/steps/step-summarization.js +14 -2
- package/dist/prompt/steps/step-summarization.js.map +1 -1
- package/dist/prompt/steps/step-validate-recover.d.ts +2 -4
- package/dist/prompt/steps/step-validate-recover.js +18 -9
- package/dist/prompt/steps/step-validate-recover.js.map +1 -1
- package/dist/prompt/steps/step-verify-patch.js +14 -5
- package/dist/prompt/steps/step-verify-patch.js.map +1 -1
- package/dist/prompt/systemprompt.d.ts +1 -1
- package/dist/prompt/systemprompt.js +10 -5
- package/dist/prompt/systemprompt.js.map +1 -1
- package/package.json +5 -4
- package/dist/main/ui/frontend/assets/index-DI1ngpa2.js +0 -1840
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.d.ts +0 -4
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +0 -167
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.d.ts +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js +0 -34
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js.map +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.d.ts +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js +0 -32
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js.map +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/genaicode-help-document.d.ts +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/genaicode-help-document.js +0 -251
- package/dist/prompt/steps/step-ask-question/handlers/genaicode-help-document.js.map +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/lint.d.ts +0 -6
- package/dist/prompt/steps/step-ask-question/handlers/lint.js +0 -103
- package/dist/prompt/steps/step-ask-question/handlers/lint.js.map +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.d.ts +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js +0 -82
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js.map +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.d.ts +0 -8
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +0 -179
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js.map +0 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.d.ts +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js +0 -69
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js.map +0 -1
|
@@ -40,7 +40,19 @@ export async function handleCreateFile({ askQuestionCall, options, prompt, gener
|
|
|
40
40
|
text: 'Ok, please provide the file creation using `createFile` function. Please remember to use absolute file path.' +
|
|
41
41
|
(generateConfirmation.answer ? ` ${generateConfirmation.answer}` : ''),
|
|
42
42
|
},
|
|
43
|
-
],
|
|
43
|
+
], {
|
|
44
|
+
functionDefs: getFunctionDefs(),
|
|
45
|
+
requiredFunctionName: 'createFile',
|
|
46
|
+
temperature: options.temperature ?? 0.7,
|
|
47
|
+
modelType: ModelType.DEFAULT,
|
|
48
|
+
expectedResponseType: {
|
|
49
|
+
text: false,
|
|
50
|
+
functionCall: true,
|
|
51
|
+
media: false,
|
|
52
|
+
},
|
|
53
|
+
}, options))
|
|
54
|
+
.filter((item) => item.type === 'functionCall')
|
|
55
|
+
.map((item) => item.functionCall);
|
|
44
56
|
if (!createFileCall || !createFileCall.args) {
|
|
45
57
|
return {
|
|
46
58
|
breakLoop: true,
|
|
@@ -50,20 +62,17 @@ export async function handleCreateFile({ askQuestionCall, options, prompt, gener
|
|
|
50
62
|
const { filePath } = createFileCall.args;
|
|
51
63
|
const file = getSourceCode({ filterPaths: [filePath], forceAll: true }, options)[filePath];
|
|
52
64
|
if (file && 'content' in file && file.content) {
|
|
65
|
+
putSystemMessage('File not created. File already exists.', createFileCall);
|
|
66
|
+
prompt.push({
|
|
67
|
+
type: 'assistant',
|
|
68
|
+
text: askQuestionCall.args?.message ?? '',
|
|
69
|
+
}, {
|
|
70
|
+
type: 'user',
|
|
71
|
+
text: 'The file already exists. Please use updateFile function to modify existing files.',
|
|
72
|
+
});
|
|
53
73
|
return {
|
|
54
74
|
breakLoop: false,
|
|
55
|
-
items: [
|
|
56
|
-
{
|
|
57
|
-
assistant: {
|
|
58
|
-
type: 'assistant',
|
|
59
|
-
text: askQuestionCall.args.message,
|
|
60
|
-
},
|
|
61
|
-
user: {
|
|
62
|
-
type: 'user',
|
|
63
|
-
text: 'The file already exists. Please use updateFile function to modify existing files.',
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
],
|
|
75
|
+
items: [],
|
|
67
76
|
};
|
|
68
77
|
}
|
|
69
78
|
putSystemMessage(`The assistant has generated content for new file ${filePath}.`, {
|
|
@@ -72,84 +81,78 @@ export async function handleCreateFile({ askQuestionCall, options, prompt, gener
|
|
|
72
81
|
});
|
|
73
82
|
// Second confirmation: Ask user if they want to proceed with file creation
|
|
74
83
|
const applyConfirmation = await askUserForConfirmationWithAnswer('The assistant has generated the file content. Do you want to create the file?', 'Create file', 'Cancel file creation', false, options);
|
|
84
|
+
if (applyConfirmation.answer) {
|
|
85
|
+
putUserMessage(applyConfirmation.answer);
|
|
86
|
+
}
|
|
75
87
|
if (!applyConfirmation.confirmed) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
88
|
+
putSystemMessage('File creation rejected.');
|
|
89
|
+
prompt.push({
|
|
90
|
+
type: 'assistant',
|
|
91
|
+
text: askQuestionCall.args.message,
|
|
92
|
+
functionCalls: [createFileCall],
|
|
93
|
+
}, {
|
|
94
|
+
type: 'user',
|
|
95
|
+
text: 'Rejecting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
|
|
96
|
+
functionResponses: [
|
|
79
97
|
{
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
functionCalls: [createFileCall],
|
|
84
|
-
},
|
|
85
|
-
user: {
|
|
86
|
-
type: 'user',
|
|
87
|
-
text: 'Rejecting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
|
|
88
|
-
functionResponses: [
|
|
89
|
-
{
|
|
90
|
-
name: 'createFile',
|
|
91
|
-
call_id: createFileCall.id,
|
|
92
|
-
content: '',
|
|
93
|
-
},
|
|
94
|
-
],
|
|
95
|
-
},
|
|
98
|
+
name: 'createFile',
|
|
99
|
+
call_id: createFileCall.id,
|
|
100
|
+
content: '',
|
|
96
101
|
},
|
|
97
102
|
],
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
breakLoop: false,
|
|
106
|
+
items: [],
|
|
98
107
|
};
|
|
99
108
|
}
|
|
100
109
|
try {
|
|
110
|
+
putSystemMessage('Applying file creation');
|
|
101
111
|
await executeCreateFile(createFileCall.args, options);
|
|
102
112
|
refreshFiles();
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
prompt.push({
|
|
114
|
+
type: 'assistant',
|
|
115
|
+
text: askQuestionCall.args.message,
|
|
116
|
+
functionCalls: [createFileCall],
|
|
117
|
+
}, {
|
|
118
|
+
type: 'user',
|
|
119
|
+
text: 'Accepting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
|
|
120
|
+
functionResponses: [
|
|
106
121
|
{
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
functionCalls: [createFileCall],
|
|
111
|
-
},
|
|
112
|
-
user: {
|
|
113
|
-
type: 'user',
|
|
114
|
-
text: 'Accepting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
|
|
115
|
-
functionResponses: [
|
|
116
|
-
{
|
|
117
|
-
name: 'createFile',
|
|
118
|
-
call_id: createFileCall.id,
|
|
119
|
-
content: '',
|
|
120
|
-
},
|
|
121
|
-
],
|
|
122
|
-
},
|
|
122
|
+
name: 'createFile',
|
|
123
|
+
call_id: createFileCall.id,
|
|
124
|
+
content: '',
|
|
123
125
|
},
|
|
124
126
|
],
|
|
127
|
+
});
|
|
128
|
+
return {
|
|
129
|
+
breakLoop: false,
|
|
130
|
+
items: [],
|
|
125
131
|
};
|
|
126
132
|
}
|
|
127
133
|
catch (error) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
134
|
+
putSystemMessage('File creation failed.');
|
|
135
|
+
prompt.push({
|
|
136
|
+
type: 'assistant',
|
|
137
|
+
text: askQuestionCall.args.message,
|
|
138
|
+
functionCalls: [createFileCall],
|
|
139
|
+
}, {
|
|
140
|
+
type: 'user',
|
|
141
|
+
text: 'Accepting file creation.' +
|
|
142
|
+
(applyConfirmation.answer ? ` ${applyConfirmation.answer}` : '') +
|
|
143
|
+
' Unfortunately, the file creation failed: ' +
|
|
144
|
+
(error instanceof Error ? error.message : 'unknown error'),
|
|
145
|
+
functionResponses: [
|
|
131
146
|
{
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
functionCalls: [createFileCall],
|
|
136
|
-
},
|
|
137
|
-
user: {
|
|
138
|
-
type: 'user',
|
|
139
|
-
text: 'Accepting file creation.' +
|
|
140
|
-
(applyConfirmation.answer ? ` ${applyConfirmation.answer}` : '') +
|
|
141
|
-
' Unfortunately, the file creation failed: ' +
|
|
142
|
-
(error instanceof Error ? error.message : 'unknown error'),
|
|
143
|
-
functionResponses: [
|
|
144
|
-
{
|
|
145
|
-
name: 'createFile',
|
|
146
|
-
call_id: createFileCall.id,
|
|
147
|
-
content: '',
|
|
148
|
-
},
|
|
149
|
-
],
|
|
150
|
-
},
|
|
147
|
+
name: 'createFile',
|
|
148
|
+
call_id: createFileCall.id,
|
|
149
|
+
content: '',
|
|
151
150
|
},
|
|
152
151
|
],
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
breakLoop: false,
|
|
155
|
+
items: [],
|
|
153
156
|
};
|
|
154
157
|
}
|
|
155
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-create-file.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-create-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAE3G,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,eAAe,EACf,OAAO,EACP,MAAM,EACN,iBAAiB,GACE;IACnB,gBAAgB,CAAC,0BAA0B,EAAE,eAAe,CAAC,CAAC;IAE9D,+EAA+E;IAC/E,MAAM,oBAAoB,GAAG,MAAM,gCAAgC,CACjE,2GAA2G,EAC3G,kBAAkB,EAClB,2BAA2B,EAC3B,KAAK,EACL,OAAO,CACR,CAAC;IAEF,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAChC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;QACpC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;QAEjD,MAAM,CAAC,IAAI,CACT;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;SAC1C,EACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,0BAA0B,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1G,CACF,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;IAEhD,MAAM,CAAC,cAAc,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"handle-create-file.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-create-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export async function handleEndConversation({ askQuestionCall, prompt, options,
|
|
|
12
12
|
text: askQuestionCall.args?.message ?? '',
|
|
13
13
|
}, {
|
|
14
14
|
type: 'user',
|
|
15
|
-
text: '
|
|
15
|
+
text: 'Lets continue the conversation.' + (userConfirmation.answer ? ` ${userConfirmation.answer}` : ''),
|
|
16
16
|
});
|
|
17
17
|
if (!userConfirmation.confirmed) {
|
|
18
18
|
putSystemMessage('User declined to end the conversation.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-end-conversation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-end-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,qBAAqB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,eAAe,EACf,MAAM,EACN,OAAO,GACY;IACnB,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAC7D,sCAAsC,EACtC,kBAAkB,EAClB,uBAAuB,EACvB,IAAI,EACJ,OAAO,CACR,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;KAC1C,EACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,
|
|
1
|
+
{"version":3,"file":"handle-end-conversation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-end-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,qBAAqB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,eAAe,EACf,MAAM,EACN,OAAO,GACY;IACnB,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAC7D,sCAAsC,EACtC,kBAAkB,EAClB,uBAAuB,EACvB,IAAI,EACJ,OAAO,CACR,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;KAC1C,EACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,iCAAiC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzG,CACF,CAAC;IAEF,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAChC,gBAAgB,CAAC,wCAAwC,CAAC,CAAC;QAE3D,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,yDAAyD,CAAC,CAAC;IAC5E,OAAO;QACL,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { isAncestorDirectory } from '../../../../files/file-utils.js';
|
|
4
|
+
import { askUserForConfirmation } from '../../../../main/common/user-actions.js';
|
|
5
|
+
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
6
|
+
import { rcConfig } from '../../../../main/config.js';
|
|
7
|
+
import { registerActionHandler } from '../step-ask-question-handlers.js';
|
|
8
|
+
import { exploreExternalDirectories as exploreExternalDirectoriesDef, } from '../../../function-defs/explore-external-directories.js';
|
|
9
|
+
import { ModelType } from '../../../../ai-service/common-types.js';
|
|
10
|
+
import { getFunctionDefs } from '../../../function-calling.js';
|
|
11
|
+
// Threshold for triggering synthesis instead of listing all files
|
|
12
|
+
const SYNTHESIS_FILE_COUNT_THRESHOLD = 10;
|
|
13
|
+
registerActionHandler('exploreExternalDirectories', handleExploreExternalDirectories);
|
|
14
|
+
export async function handleExploreExternalDirectories({ askQuestionCall, options, prompt, generateContentFn, }) {
|
|
15
|
+
// 1. Infer arguments using LLM
|
|
16
|
+
const inferencePrompt = [
|
|
17
|
+
...prompt,
|
|
18
|
+
{
|
|
19
|
+
type: 'assistant',
|
|
20
|
+
text: askQuestionCall.args?.message ?? '',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'user',
|
|
24
|
+
text: 'Given the conversation, identify the directories, reason, and any exploration parameters (recursive, depth, searchPhrases, maxResults) for exploring external directories.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
const inferenceResult = await generateContentFn(inferencePrompt, {
|
|
28
|
+
modelType: ModelType.CHEAP,
|
|
29
|
+
functionDefs: getFunctionDefs(),
|
|
30
|
+
requiredFunctionName: exploreExternalDirectoriesDef.name,
|
|
31
|
+
}, options);
|
|
32
|
+
const inferredCall = inferenceResult.find((part) => part.type === 'functionCall')?.functionCall;
|
|
33
|
+
if (!inferredCall || !inferredCall.args) {
|
|
34
|
+
putSystemMessage('Could not infer arguments for exploreExternalDirectories action from the assistant message and context.');
|
|
35
|
+
return { breakLoop: false, items: [] }; // Or respond with error
|
|
36
|
+
}
|
|
37
|
+
const inferredCallId = inferredCall.id;
|
|
38
|
+
// Ensure depth is handled correctly as it's now required
|
|
39
|
+
const { directories, reason: inferredReason, depth, ...restParams } = inferredCall.args;
|
|
40
|
+
const requestedDirectories = directories;
|
|
41
|
+
const reason = inferredReason;
|
|
42
|
+
const executorParams = { depth, ...restParams }; // Includes recursive, searchPhrases, maxResults if provided
|
|
43
|
+
if (!requestedDirectories || requestedDirectories.length === 0 || !reason || typeof depth !== 'number' || depth < 0) {
|
|
44
|
+
let errorMsg = 'Missing or invalid arguments after inferring for exploreExternalDirectories action.';
|
|
45
|
+
if (!requestedDirectories || requestedDirectories.length === 0)
|
|
46
|
+
errorMsg += ' Missing directories.';
|
|
47
|
+
if (!reason)
|
|
48
|
+
errorMsg += ' Missing reason.';
|
|
49
|
+
if (typeof depth !== 'number' || depth < 0)
|
|
50
|
+
errorMsg += ' Missing or invalid depth (must be >= 0).';
|
|
51
|
+
putSystemMessage(errorMsg);
|
|
52
|
+
// Respond with an error in the function response
|
|
53
|
+
prompt.push({
|
|
54
|
+
type: 'assistant',
|
|
55
|
+
text: askQuestionCall.args?.message ?? '',
|
|
56
|
+
functionCalls: inferredCall ? [inferredCall] : undefined, // Include the inferred call attempt
|
|
57
|
+
}, {
|
|
58
|
+
type: 'user',
|
|
59
|
+
functionResponses: [
|
|
60
|
+
{
|
|
61
|
+
name: exploreExternalDirectoriesDef.name,
|
|
62
|
+
call_id: inferredCallId,
|
|
63
|
+
content: JSON.stringify({
|
|
64
|
+
error: `Invalid arguments inferred: ${errorMsg}`,
|
|
65
|
+
}),
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
});
|
|
69
|
+
return { breakLoop: false, items: [] };
|
|
70
|
+
}
|
|
71
|
+
// 2. Validate directories are external
|
|
72
|
+
const externalDirsToExplore = [];
|
|
73
|
+
const internalDirsSkipped = [];
|
|
74
|
+
const invalidDirs = [];
|
|
75
|
+
for (const dir of requestedDirectories) {
|
|
76
|
+
try {
|
|
77
|
+
const absolutePath = path.resolve(dir);
|
|
78
|
+
// Basic check if it's inside the project root (and not ignored)
|
|
79
|
+
if (isAncestorDirectory(rcConfig.rootDir, absolutePath) &&
|
|
80
|
+
!rcConfig.ignorePaths?.some((ignorePath) => path.join(rcConfig.rootDir, ignorePath) === absolutePath ||
|
|
81
|
+
isAncestorDirectory(path.join(rcConfig.rootDir, ignorePath), absolutePath))) {
|
|
82
|
+
internalDirsSkipped.push(absolutePath);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// Further validation (existence, directory type) could happen here or in exploreDirectories
|
|
86
|
+
externalDirsToExplore.push(absolutePath);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
// path.resolve might throw if the path format is invalid on some OS
|
|
91
|
+
invalidDirs.push(`${dir} (invalid path format)`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Define userResponse structure
|
|
95
|
+
let userResponse = {};
|
|
96
|
+
// 3. Handle validation results and Ask for confirmation
|
|
97
|
+
if (invalidDirs.length > 0) {
|
|
98
|
+
userResponse = {
|
|
99
|
+
error: `Invalid or inaccessible directory paths provided: ${invalidDirs.join(', ')}`,
|
|
100
|
+
invalid: invalidDirs,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
else if (externalDirsToExplore.length === 0) {
|
|
104
|
+
userResponse.error = 'No valid external directories provided to explore.';
|
|
105
|
+
if (internalDirsSkipped.length > 0) {
|
|
106
|
+
userResponse.skipped = internalDirsSkipped;
|
|
107
|
+
userResponse.error += ` Skipped internal directories: ${internalDirsSkipped.join(', ')}`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// Ask for confirmation
|
|
112
|
+
const confirmationMessage = `The AI wants to explore the following external directorie(s):\n${externalDirsToExplore.join('\n')}\nDo you allow exploring these directories?`;
|
|
113
|
+
const confirmationResult = await askUserForConfirmation(confirmationMessage, false, options);
|
|
114
|
+
if (confirmationResult.confirmed) {
|
|
115
|
+
try {
|
|
116
|
+
const filePaths = await exploreDirectories({
|
|
117
|
+
directories: externalDirsToExplore,
|
|
118
|
+
// Pass validated executorParams
|
|
119
|
+
recursive: executorParams.recursive,
|
|
120
|
+
depth: executorParams.depth,
|
|
121
|
+
searchPhrases: executorParams.searchPhrases,
|
|
122
|
+
maxResults: executorParams.maxResults,
|
|
123
|
+
});
|
|
124
|
+
userResponse.confirmed = true;
|
|
125
|
+
if (internalDirsSkipped.length > 0) {
|
|
126
|
+
userResponse.skipped = internalDirsSkipped;
|
|
127
|
+
}
|
|
128
|
+
// ---- Synthesis Logic ----
|
|
129
|
+
if (filePaths.length > SYNTHESIS_FILE_COUNT_THRESHOLD) {
|
|
130
|
+
putSystemMessage(`Found ${filePaths.length} files. Synthesizing results...`);
|
|
131
|
+
userResponse.fileCount = filePaths.length;
|
|
132
|
+
const synthesisPrompt = [
|
|
133
|
+
{
|
|
134
|
+
type: 'user',
|
|
135
|
+
text: `You explored directories and found ${filePaths.length} files because: ${reason}.\nFiles:\n${filePaths.join('\\n')}\n\nBased on this reason, provide a concise and helpful output. Choose the most suitable format from summary, categorized list, or plain file list.`,
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
try {
|
|
139
|
+
const synthesisResult = await generateContentFn(synthesisPrompt, {
|
|
140
|
+
modelType: ModelType.CHEAP,
|
|
141
|
+
// Ensure we only expect text
|
|
142
|
+
expectedResponseType: { text: true, functionCall: false, media: false },
|
|
143
|
+
}, { ...options, askQuestion: false });
|
|
144
|
+
const synthesizedText = synthesisResult.find((part) => part.type === 'text')?.text;
|
|
145
|
+
if (synthesizedText) {
|
|
146
|
+
userResponse.synthesis = synthesizedText;
|
|
147
|
+
putSystemMessage(`Synthesis complete.`);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
putSystemMessage('Synthesis failed: No text content returned from LLM.');
|
|
151
|
+
userResponse.error = 'Exploration succeeded, but synthesis failed to generate content.';
|
|
152
|
+
// Fallback? Maybe include filePaths if synthesis fails?
|
|
153
|
+
// userResponse.filePaths = filePaths; // Or just report error
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch (synthError) {
|
|
157
|
+
const synthErrorMessage = synthError instanceof Error ? synthError.message : 'Unknown synthesis error.';
|
|
158
|
+
putSystemMessage(`Synthesis failed: ${synthErrorMessage}`);
|
|
159
|
+
userResponse.error = `Exploration succeeded, but synthesis failed: ${synthErrorMessage}`;
|
|
160
|
+
// userResponse.filePaths = filePaths; // Optional fallback
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
// No synthesis needed, include the paths directly
|
|
165
|
+
userResponse.filePaths = filePaths;
|
|
166
|
+
}
|
|
167
|
+
// ---- End Synthesis Logic ----
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error during execution.';
|
|
171
|
+
putSystemMessage(`Error exploring external directories: ${errorMessage}`);
|
|
172
|
+
userResponse = { ...userResponse, confirmed: true, error: `Exploration failed: ${errorMessage}` }; // Keep skipped/invalid if already set
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
userResponse = {
|
|
177
|
+
...userResponse,
|
|
178
|
+
confirmed: false,
|
|
179
|
+
error: 'User denied permission to explore external directories.',
|
|
180
|
+
}; // Keep skipped/invalid
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// 4. Update conversation history
|
|
184
|
+
prompt.push({
|
|
185
|
+
type: 'assistant',
|
|
186
|
+
text: askQuestionCall.args?.message ?? '',
|
|
187
|
+
functionCalls: inferredCall ? [inferredCall] : undefined, // Use the inferred call
|
|
188
|
+
}, {
|
|
189
|
+
type: 'user',
|
|
190
|
+
functionResponses: [
|
|
191
|
+
{
|
|
192
|
+
name: exploreExternalDirectoriesDef.name,
|
|
193
|
+
call_id: inferredCallId, // Use the ID from the inferred call
|
|
194
|
+
content: JSON.stringify({
|
|
195
|
+
// Include original request details for context, even if modified by synthesis
|
|
196
|
+
requestedDirectories,
|
|
197
|
+
reason,
|
|
198
|
+
...executorParams,
|
|
199
|
+
// Add the results (potentially synthesized)
|
|
200
|
+
...userResponse,
|
|
201
|
+
}),
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
});
|
|
205
|
+
return {
|
|
206
|
+
breakLoop: false,
|
|
207
|
+
items: [], // No immediate items to add, handled by history push
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
// Keep exploreDirectories function as is, ensuring it respects maxResults
|
|
211
|
+
async function exploreDirectories(args) {
|
|
212
|
+
const { directories, recursive = false, depth, searchPhrases, maxResults = 50 } = args;
|
|
213
|
+
const foundFiles = [];
|
|
214
|
+
// Depth is now required, maxDepth calculation is simpler
|
|
215
|
+
const maxDepth = depth;
|
|
216
|
+
const lowerCaseSearchPhrases = searchPhrases?.map((p) => p.toLowerCase());
|
|
217
|
+
async function traverse(dirPath, currentDepth) {
|
|
218
|
+
// Stop if max depth exceeded OR max results reached
|
|
219
|
+
if (currentDepth > maxDepth || foundFiles.length >= maxResults) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
let entries;
|
|
223
|
+
try {
|
|
224
|
+
// Check access first to provide better error for invalidDirs later?
|
|
225
|
+
await fs.access(dirPath, fs.constants.R_OK);
|
|
226
|
+
entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
// Log or handle specific errors like permission denied
|
|
230
|
+
// console.warn(`Could not read directory ${dirPath}: ${error}`);
|
|
231
|
+
// Consider throwing if it's the initial directory?
|
|
232
|
+
return; // Silently ignore inaccessible subdirectories
|
|
233
|
+
}
|
|
234
|
+
for (const entry of entries) {
|
|
235
|
+
if (foundFiles.length >= maxResults) {
|
|
236
|
+
break; // Stop processing entries in this directory if max results hit
|
|
237
|
+
}
|
|
238
|
+
const fullPath = path.join(dirPath, entry.name);
|
|
239
|
+
if (entry.isDirectory()) {
|
|
240
|
+
foundFiles.push(fullPath);
|
|
241
|
+
// Only recurse if currentDepth < maxDepth
|
|
242
|
+
if (recursive && currentDepth < maxDepth) {
|
|
243
|
+
await traverse(fullPath, currentDepth + 1);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
else if (entry.isFile()) {
|
|
247
|
+
if (lowerCaseSearchPhrases && lowerCaseSearchPhrases.length > 0) {
|
|
248
|
+
try {
|
|
249
|
+
// Consider limiting file size read?
|
|
250
|
+
const content = await fs.readFile(fullPath, 'utf-8');
|
|
251
|
+
const lowerCaseContent = content.toLowerCase();
|
|
252
|
+
if (lowerCaseSearchPhrases.every((phrase) => lowerCaseContent.includes(phrase))) {
|
|
253
|
+
foundFiles.push(fullPath);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (readError) {
|
|
257
|
+
// Ignore file read errors?
|
|
258
|
+
// console.warn(`Could not read file ${fullPath}: ${readError}`);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
// No search phrases, just add the file
|
|
263
|
+
foundFiles.push(fullPath);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// Ignore other entry types (symlinks, etc.)
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
for (const startDir of directories) {
|
|
270
|
+
if (foundFiles.length < maxResults) {
|
|
271
|
+
// Start traversal at depth 0
|
|
272
|
+
await traverse(startDir, 0);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return foundFiles;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=handle-explore-external-directories.js.map
|
package/dist/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-explore-external-directories.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,19 @@ async function getGenaicodeHelpCall(generateContentFn, prompt) {
|
|
|
87
87
|
`,
|
|
88
88
|
},
|
|
89
89
|
...prompt,
|
|
90
|
-
],
|
|
90
|
+
], {
|
|
91
|
+
functionDefs: getFunctionDefs(),
|
|
92
|
+
requiredFunctionName: 'genaicodeHelp',
|
|
93
|
+
temperature: 0.7,
|
|
94
|
+
modelType: ModelType.CHEAP,
|
|
95
|
+
expectedResponseType: {
|
|
96
|
+
text: false,
|
|
97
|
+
functionCall: true,
|
|
98
|
+
media: false,
|
|
99
|
+
},
|
|
100
|
+
}, {}))
|
|
101
|
+
.filter((item) => item.type === 'functionCall')
|
|
102
|
+
.map((item) => item.functionCall);
|
|
91
103
|
return [genaicodeHelpCall];
|
|
92
104
|
}
|
|
93
105
|
//# sourceMappingURL=handle-genaicode-help.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-genaicode-help.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-genaicode-help.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,qBAAqB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,OAAO,GACY;IACnB,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,CAAC,iBAAiB,CAAC,GAAG,MAAM,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAElF,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAC7B,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE;oBACL;wBACE,SAAS,EAAE;4BACT,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,qBAAqB;yBAC7D;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,2CAA2C;yBAClD;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAEtG,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL;oBACE,SAAS,EAAE;wBACT,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;wBAC3C,aAAa,EAAE,CAAC,iBAAiB,CAAC;qBACnC;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ,CAAC,MAAM;wBACrB,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;qBAC3F;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL;oBACE,SAAS,EAAE;wBACT,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,qBAAqB;qBAC7D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oIAAoI;qBAC3I;iBACF;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,iBAA0D,EAAE,MAAoB;IAClH,MAAM,CAAC,iBAAiB,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"handle-genaicode-help.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-genaicode-help.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,19 @@ export async function handleGenerateImage({ askQuestionCall, options, generateCo
|
|
|
24
24
|
type: 'user',
|
|
25
25
|
text: 'Yes, you can generate an image.',
|
|
26
26
|
},
|
|
27
|
-
],
|
|
27
|
+
], {
|
|
28
|
+
functionDefs: getFunctionDefs(),
|
|
29
|
+
requiredFunctionName: 'generateImage',
|
|
30
|
+
temperature: 0.7,
|
|
31
|
+
modelType: ModelType.CHEAP,
|
|
32
|
+
expectedResponseType: {
|
|
33
|
+
text: false,
|
|
34
|
+
functionCall: true,
|
|
35
|
+
media: false,
|
|
36
|
+
},
|
|
37
|
+
}, options))
|
|
38
|
+
.filter((item) => item.type === 'functionCall')
|
|
39
|
+
.map((item) => item.functionCall);
|
|
28
40
|
if (!generateImageCall?.args) {
|
|
29
41
|
return {
|
|
30
42
|
breakLoop: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-generate-image.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-generate-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,qBAAqB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,eAAe,GACI;IACnB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,gBAAgB,CAAC,6EAA6E,CAAC,CAAC;QAChG,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"handle-generate-image.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-generate-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,4 @@ import { ActionHandlerProps, ActionResult } from '../step-ask-question-types.js'
|
|
|
3
3
|
* Handles the lint action by executing the lint command and processing its results.
|
|
4
4
|
* If the lint command fails, it will ask for user confirmation to continue with code generation.
|
|
5
5
|
*/
|
|
6
|
-
export declare function handleLint({ askQuestionCall }: ActionHandlerProps): Promise<ActionResult>;
|
|
6
|
+
export declare function handleLint({ askQuestionCall, prompt }: ActionHandlerProps): Promise<ActionResult>;
|