genaicode 0.1.1 → 0.2.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/README.md +3 -1
- package/bin/genaicode.cjs +7 -0
- package/dist/ai-service/ai-studio.d.ts +2 -1
- package/dist/ai-service/ai-studio.js +5 -5
- package/dist/ai-service/ai-studio.js.map +1 -1
- package/dist/ai-service/anthropic.d.ts +2 -1
- package/dist/ai-service/anthropic.js +6 -4
- package/dist/ai-service/anthropic.js.map +1 -1
- package/dist/ai-service/chat-gpt.js +2 -1
- package/dist/ai-service/chat-gpt.js.map +1 -1
- package/dist/ai-service/common.d.ts +4 -3
- package/dist/ai-service/common.js.map +1 -1
- package/dist/ai-service/dall-e.js +3 -2
- package/dist/ai-service/dall-e.js.map +1 -1
- package/dist/ai-service/vertex-ai-claude.js +2 -1
- package/dist/ai-service/vertex-ai-claude.js.map +1 -1
- package/dist/ai-service/vertex-ai-imagen.js +3 -0
- package/dist/ai-service/vertex-ai-imagen.js.map +1 -1
- package/dist/ai-service/vertex-ai.d.ts +3 -3
- package/dist/ai-service/vertex-ai.js +18 -23
- package/dist/ai-service/vertex-ai.js.map +1 -1
- package/dist/cli/cli-options.js +2 -2
- package/dist/cli/cli-options.js.map +1 -1
- package/dist/cli/cli-params.d.ts +4 -3
- package/dist/cli/cli-params.js +11 -5
- package/dist/cli/cli-params.js.map +1 -1
- package/dist/cli/validate-cli-params.js +2 -1
- package/dist/cli/validate-cli-params.js.map +1 -1
- package/dist/files/read-files.d.ts +6 -1
- package/dist/files/read-files.js +13 -8
- package/dist/files/read-files.js.map +1 -1
- package/dist/files/read-files.test.js +5 -6
- package/dist/files/read-files.test.js.map +1 -1
- package/dist/files/update-files.d.ts +2 -1
- package/dist/files/update-files.js +6 -6
- package/dist/files/update-files.js.map +1 -1
- package/dist/main/codegen-interactive-utils.d.ts +8 -0
- package/dist/main/codegen-interactive-utils.js +148 -0
- package/dist/main/codegen-interactive-utils.js.map +1 -0
- package/dist/main/codegen-interactive.d.ts +2 -0
- package/dist/main/codegen-interactive.js +68 -0
- package/dist/main/codegen-interactive.js.map +1 -0
- package/dist/main/codegen-types.d.ts +28 -0
- package/dist/main/codegen-types.js +2 -0
- package/dist/main/codegen-types.js.map +1 -0
- package/dist/main/codegen.d.ts +2 -0
- package/dist/main/codegen.js +88 -25
- package/dist/main/codegen.js.map +1 -1
- package/dist/main/codegen.test.js +36 -22
- package/dist/main/codegen.test.js.map +1 -1
- package/dist/main/config-lib.d.ts +8 -0
- package/dist/main/config-lib.js.map +1 -1
- package/dist/main/config.d.ts +2 -1
- package/dist/main/config.js +12 -0
- package/dist/main/config.js.map +1 -1
- package/dist/main/interactive/codegen-interactive.d.ts +2 -0
- package/dist/main/interactive/codegen-interactive.js +55 -0
- package/dist/main/interactive/codegen-interactive.js.map +1 -0
- package/dist/main/interactive/codegen-interactive.test.d.ts +4 -0
- package/dist/main/interactive/codegen-interactive.test.js +77 -0
- package/dist/main/interactive/codegen-interactive.test.js.map +1 -0
- package/dist/main/interactive/codegen-worker.d.ts +3 -0
- package/dist/main/interactive/codegen-worker.js +47 -0
- package/dist/main/interactive/codegen-worker.js.map +1 -0
- package/dist/main/interactive/common.d.ts +5 -0
- package/dist/main/interactive/common.js +51 -0
- package/dist/main/interactive/common.js.map +1 -0
- package/dist/main/interactive/configure.d.ts +2 -0
- package/dist/main/interactive/configure.js +99 -0
- package/dist/main/interactive/configure.js.map +1 -0
- package/dist/main/interactive/error-handling.d.ts +4 -0
- package/dist/main/interactive/error-handling.js +49 -0
- package/dist/main/interactive/error-handling.js.map +1 -0
- package/dist/main/interactive/help.d.ts +1 -0
- package/dist/main/interactive/help.js +22 -0
- package/dist/main/interactive/help.js.map +1 -0
- package/dist/main/interactive/process-comments.d.ts +2 -0
- package/dist/main/interactive/process-comments.js +39 -0
- package/dist/main/interactive/process-comments.js.map +1 -0
- package/dist/main/interactive/select-ai-service.d.ts +2 -0
- package/dist/main/interactive/select-ai-service.js +27 -0
- package/dist/main/interactive/select-ai-service.js.map +1 -0
- package/dist/main/interactive/task-file.d.ts +2 -0
- package/dist/main/interactive/task-file.js +28 -0
- package/dist/main/interactive/task-file.js.map +1 -0
- package/dist/main/interactive/text-prompt.d.ts +2 -0
- package/dist/main/interactive/text-prompt.js +18 -0
- package/dist/main/interactive/text-prompt.js.map +1 -0
- package/dist/main/interactive/user-interrupt.d.ts +1 -0
- package/dist/main/interactive/user-interrupt.js +36 -0
- package/dist/main/interactive/user-interrupt.js.map +1 -0
- package/dist/main/interactive/worker-script.d.ts +1 -0
- package/dist/main/interactive/worker-script.js +24 -0
- package/dist/main/interactive/worker-script.js.map +1 -0
- package/dist/main/interactive/worker.d.ts +2 -0
- package/dist/main/interactive/worker.js +55 -0
- package/dist/main/interactive/worker.js.map +1 -0
- package/dist/prompt/function-calling-validate.d.ts +1 -1
- package/dist/prompt/function-calling-validate.js +21 -15
- package/dist/prompt/function-calling-validate.js.map +1 -1
- package/dist/prompt/function-defs/ask-question.d.ts +35 -1
- package/dist/prompt/function-defs/ask-question.js +36 -1
- package/dist/prompt/function-defs/ask-question.js.map +1 -1
- package/dist/prompt/function-defs/codegen-summary.d.ts +5 -5
- package/dist/prompt/function-defs/codegen-summary.js +8 -8
- package/dist/prompt/function-defs/codegen-summary.js.map +1 -1
- package/dist/prompt/function-defs/generate-image.d.ts +8 -15
- package/dist/prompt/function-defs/generate-image.js +8 -15
- package/dist/prompt/function-defs/generate-image.js.map +1 -1
- package/dist/prompt/limits.js +2 -2
- package/dist/prompt/limits.test.js +5 -5
- package/dist/prompt/prompt-codegen.d.ts +7 -2
- package/dist/prompt/prompt-codegen.js +26 -17
- package/dist/prompt/prompt-codegen.js.map +1 -1
- package/dist/prompt/prompt-codegen.test.js +11 -7
- package/dist/prompt/prompt-codegen.test.js.map +1 -1
- package/dist/prompt/prompt-service-ask-question.test.js +14 -18
- package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
- package/dist/prompt/prompt-service.d.ts +20 -5
- package/dist/prompt/prompt-service.js +35 -150
- package/dist/prompt/prompt-service.js.map +1 -1
- package/dist/prompt/prompt-service.test.js +42 -22
- package/dist/prompt/prompt-service.test.js.map +1 -1
- package/dist/prompt/steps/step-ask-question.d.ts +6 -0
- package/dist/prompt/steps/step-ask-question.js +82 -0
- package/dist/prompt/steps/step-ask-question.js.map +1 -0
- package/dist/prompt/steps/step-generate-image.d.ts +2 -0
- package/dist/prompt/steps/step-generate-image.js +29 -0
- package/dist/prompt/steps/step-generate-image.js.map +1 -0
- package/dist/prompt/steps/step-validate-recover.d.ts +13 -0
- package/dist/prompt/steps/step-validate-recover.js +51 -0
- package/dist/prompt/steps/step-validate-recover.js.map +1 -0
- package/dist/prompt/steps/step-verify-patch.d.ts +7 -0
- package/dist/prompt/steps/step-verify-patch.js +41 -0
- package/dist/prompt/steps/step-verify-patch.js.map +1 -0
- package/dist/prompt/steps/steps-types.d.ts +4 -0
- package/dist/prompt/steps/steps-types.js +6 -0
- package/dist/prompt/steps/steps-types.js.map +1 -0
- package/dist/prompt/systemprompt.d.ts +2 -1
- package/dist/prompt/systemprompt.js +11 -7
- package/dist/prompt/systemprompt.js.map +1 -1
- package/dist/prompt/systemprompt.test.d.ts +1 -0
- package/dist/prompt/systemprompt.test.js +4 -5
- package/dist/prompt/systemprompt.test.js.map +1 -1
- package/package.json +4 -3
- package/bin/vertex-monkey-patch.cjs +0 -33
package/README.md
CHANGED
|
@@ -58,6 +58,7 @@ npx genaicode --dry-run --explicit-prompt="Analyze my project sourcecode and wri
|
|
|
58
58
|
|
|
59
59
|
GenAIcode supports various command-line options to customize its behavior:
|
|
60
60
|
|
|
61
|
+
- `--interactive`: Run the tool in interactive mode
|
|
61
62
|
- `--dry-run`: Runs the tool without making any changes to the files.
|
|
62
63
|
- `--consider-all-files`: Considers all files for code generation, even if they don't contain `@CODEGEN` comments.
|
|
63
64
|
- `--allow-file-create`: Allows the tool to create new files.
|
|
@@ -66,6 +67,7 @@ GenAIcode supports various command-line options to customize its behavior:
|
|
|
66
67
|
- `--allow-file-move`: Allows the tool to move files within the project structure.
|
|
67
68
|
- `--vertex-ai`: Uses Vertex AI with Google's Gemini Pro model for code generation.
|
|
68
69
|
- `--vertex-ai-claude`: Uses Claude via Vertex AI for code generation.
|
|
70
|
+
- `--ai-studio`: Uses Google AI Studio for code generation, an alternative to Vertex AI with potentially different capabilities or limitations.
|
|
69
71
|
- `--explicit-prompt=<prompt>`: Provides an explicit prompt for code generation.
|
|
70
72
|
- `--task-file=<file>`: Specifies a file with a task description for code generation.
|
|
71
73
|
- `--dependency-tree`: Limits the scope of code generation to files marked with `@CODEGEN` and their dependencies.
|
|
@@ -80,7 +82,7 @@ GenAIcode supports various command-line options to customize its behavior:
|
|
|
80
82
|
- `--cheap`: Uses a cheaper, faster model for code generation, which may provide lower quality results but is more cost-effective for simpler tasks.
|
|
81
83
|
- `--content-mask=<path>`: Applies a content mask to limit the initial source code files included in the request. The value should be a prefix of the path relative to rootDir.
|
|
82
84
|
- `--ignore-pattern="glob/regex"`: Specify a pattern of files to ignore during the initial source code fetching. This saves initial token usage.
|
|
83
|
-
- `--ask-question`:
|
|
85
|
+
- `--disable-ask-question`: Disable the default behavior of AI assistant to ask questions for clarification during the code generation process.
|
|
84
86
|
- `--disable-cache`: Disables caching for the application, which can be useful if caching is causing issues or if you want to ensure fresh data is used for each operation.
|
|
85
87
|
- `--help`: Displays the help message with all available options.
|
|
86
88
|
|
package/bin/genaicode.cjs
CHANGED
|
@@ -9,6 +9,13 @@ const devMode = require('fs').existsSync(`${__dirname}/../src`);
|
|
|
9
9
|
const forceDist = process.argv.indexOf('--force-dist') >= 0;
|
|
10
10
|
|
|
11
11
|
if (devMode && !forceDist) {
|
|
12
|
+
pleaseUpgradeNode({
|
|
13
|
+
name: "genaicode-dev.js",
|
|
14
|
+
engines: {
|
|
15
|
+
node: ">=20",
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
|
|
12
19
|
import('./genaicode-dev.js');
|
|
13
20
|
} else {
|
|
14
21
|
import('../dist/main/codegen.js').then(({ runCodegen }) => runCodegen());
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FunctionCall, FunctionDef, PromptItem } from './common.js';
|
|
2
|
+
import { CodegenOptions } from '../main/codegen-types.js';
|
|
2
3
|
/**
|
|
3
4
|
* This function generates content using the Anthropic Claude model via Vertex AI.
|
|
4
5
|
*/
|
|
5
|
-
export declare function generateContent(prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string | null, temperature: number, cheap
|
|
6
|
+
export declare function generateContent(prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string | null, temperature: number, cheap: boolean | undefined, options: CodegenOptions): Promise<FunctionCall[]>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { FunctionCallingMode, GoogleGenerativeAI, HarmBlockThreshold, HarmCategory, } from '@google/generative-ai';
|
|
2
2
|
import assert from 'node:assert';
|
|
3
|
-
import { geminiBlockNone } from '../cli/cli-params.js';
|
|
4
3
|
import { printTokenUsageAndCost, processFunctionCalls } from './common.js';
|
|
4
|
+
import { abortController } from '../main/interactive/codegen-worker.js';
|
|
5
5
|
/**
|
|
6
6
|
* This function generates content using the Anthropic Claude model via Vertex AI.
|
|
7
7
|
*/
|
|
8
|
-
export async function generateContent(prompt, functionDefs, requiredFunctionName, temperature, cheap = false) {
|
|
8
|
+
export async function generateContent(prompt, functionDefs, requiredFunctionName, temperature, cheap = false, options) {
|
|
9
9
|
const messages = prompt
|
|
10
10
|
.filter((item) => item.type === 'user' || item.type === 'assistant')
|
|
11
11
|
.map((item) => {
|
|
@@ -61,8 +61,8 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
61
61
|
},
|
|
62
62
|
},
|
|
63
63
|
};
|
|
64
|
-
const model = getModel(cheap ? 'gemini-1.5-flash-001' : 'gemini-1.5-pro-001', temperature, prompt.find((item) => item.type === 'systemPrompt').systemPrompt);
|
|
65
|
-
const result = await model.generateContent(req);
|
|
64
|
+
const model = getModel(cheap ? 'gemini-1.5-flash-001' : 'gemini-1.5-pro-001', temperature, prompt.find((item) => item.type === 'systemPrompt').systemPrompt, options.geminiBlockNone);
|
|
65
|
+
const result = await model.generateContent(req, { signal: abortController?.signal });
|
|
66
66
|
// Print token usage
|
|
67
67
|
const usageMetadata = result.response.usageMetadata;
|
|
68
68
|
const usage = {
|
|
@@ -94,7 +94,7 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
94
94
|
}
|
|
95
95
|
return processFunctionCalls(functionCalls);
|
|
96
96
|
}
|
|
97
|
-
function getModel(model, temperature, systemPrompt) {
|
|
97
|
+
function getModel(model, temperature, systemPrompt, geminiBlockNone) {
|
|
98
98
|
assert(process.env.API_KEY, 'API_KEY environment variable is not set');
|
|
99
99
|
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
|
|
100
100
|
return genAI.getGenerativeModel({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-studio.js","sourceRoot":"","sources":["../../src/ai-service/ai-studio.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EAGnB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"ai-studio.js","sourceRoot":"","sources":["../../src/ai-service/ai-studio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FunctionCall, PromptItem, FunctionDef } from './common.js';
|
|
2
|
+
import { CodegenOptions } from '../main/codegen-types.js';
|
|
2
3
|
/**
|
|
3
4
|
* This function generates content using the Anthropic Claude model.
|
|
4
5
|
*/
|
|
5
|
-
export declare function generateContent(prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string | null, temperature: number, cheap
|
|
6
|
+
export declare function generateContent(prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string | null, temperature: number, cheap: boolean | undefined, options: CodegenOptions): Promise<FunctionCall[]>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
2
|
import Anthropic from '@anthropic-ai/sdk';
|
|
3
3
|
import { printTokenUsageAndCost, processFunctionCalls } from './common.js';
|
|
4
|
-
import {
|
|
4
|
+
import { abortController } from '../main/interactive/codegen-worker.js';
|
|
5
5
|
/**
|
|
6
6
|
* This function generates content using the Anthropic Claude model.
|
|
7
7
|
*/
|
|
8
|
-
export async function generateContent(prompt, functionDefs, requiredFunctionName, temperature, cheap = false) {
|
|
8
|
+
export async function generateContent(prompt, functionDefs, requiredFunctionName, temperature, cheap = false, options) {
|
|
9
9
|
const anthropic = new Anthropic({
|
|
10
10
|
defaultHeaders: {
|
|
11
|
-
'anthropic-beta': 'max-tokens-3-5-sonnet-2024-07-15' + (!disableCache ? ',prompt-caching-2024-07-31' : ''),
|
|
11
|
+
'anthropic-beta': 'max-tokens-3-5-sonnet-2024-07-15' + (!options.disableCache ? ',prompt-caching-2024-07-31' : ''),
|
|
12
12
|
},
|
|
13
13
|
});
|
|
14
14
|
const messages = prompt
|
|
@@ -37,7 +37,7 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
37
37
|
content.push({
|
|
38
38
|
type: 'text',
|
|
39
39
|
text: item.text,
|
|
40
|
-
...(item.cache && !disableCache ? { cache_control: { type: 'ephemeral' } } : {}),
|
|
40
|
+
...(item.cache && !options.disableCache ? { cache_control: { type: 'ephemeral' } } : {}),
|
|
41
41
|
});
|
|
42
42
|
const message = {
|
|
43
43
|
role: 'user',
|
|
@@ -82,6 +82,8 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
82
82
|
: { type: 'any' },
|
|
83
83
|
max_tokens: cheap ? 4096 : 8192,
|
|
84
84
|
temperature: temperature,
|
|
85
|
+
}, {
|
|
86
|
+
signal: abortController?.signal,
|
|
85
87
|
});
|
|
86
88
|
break; // Exit loop if successful
|
|
87
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/ai-service/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAyC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/ai-service/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import OpenAI, { APIError } from 'openai';
|
|
2
2
|
import assert from 'node:assert';
|
|
3
3
|
import { printTokenUsageAndCost, processFunctionCalls } from './common.js';
|
|
4
|
+
import { abortController } from '../main/interactive/codegen-worker.js';
|
|
4
5
|
/**
|
|
5
6
|
* This function generates content using the OpenAI chat model.
|
|
6
7
|
*/
|
|
@@ -78,7 +79,7 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
78
79
|
? { type: 'function', function: { name: requiredFunctionName } }
|
|
79
80
|
: 'required',
|
|
80
81
|
temperature: temperature,
|
|
81
|
-
});
|
|
82
|
+
}, { signal: abortController?.signal });
|
|
82
83
|
break; // Exit loop if successful
|
|
83
84
|
}
|
|
84
85
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-gpt.js","sourceRoot":"","sources":["../../src/ai-service/chat-gpt.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAyC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-gpt.js","sourceRoot":"","sources":["../../src/ai-service/chat-gpt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CodegenOptions } from '../main/codegen-types.js';
|
|
1
2
|
interface TokenUsage {
|
|
2
3
|
inputTokens: number | undefined | null;
|
|
3
4
|
outputTokens: number | undefined | null;
|
|
@@ -14,10 +15,10 @@ export interface FunctionDef {
|
|
|
14
15
|
required: string[];
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
|
-
export interface FunctionCall {
|
|
18
|
+
export interface FunctionCall<T = Record<string, unknown>> {
|
|
18
19
|
id?: string;
|
|
19
20
|
name: string;
|
|
20
|
-
args?:
|
|
21
|
+
args?: T;
|
|
21
22
|
}
|
|
22
23
|
export interface PromptItem {
|
|
23
24
|
type: string;
|
|
@@ -36,7 +37,7 @@ export interface PromptItem {
|
|
|
36
37
|
functionCalls?: FunctionCall[];
|
|
37
38
|
cache?: boolean;
|
|
38
39
|
}
|
|
39
|
-
export type GenerateContentFunction = (prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string, temperature: number, cheap: boolean) => Promise<FunctionCall[]>;
|
|
40
|
+
export type GenerateContentFunction = (prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string, temperature: number, cheap: boolean, options: CodegenOptions) => Promise<FunctionCall[]>;
|
|
40
41
|
export type GenerateImageFunction = (prompt: string, contextImagePath: string | undefined, size: {
|
|
41
42
|
width: number;
|
|
42
43
|
height: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/ai-service/common.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/ai-service/common.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA6D7D;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAiB,EAAE,iBAAyB,EAAE,kBAA0B;IAC7G,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GACb,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,iBAAiB;QAC5C,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,iBAAiB,GAAG,IAAI;QACzD,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,iBAAiB,GAAG,GAAG,CAAC;IACzD,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,kBAAkB,CAAC;IAClE,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,aAA6B;IAChE,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,MAAM,CACJ,oBAAoB,CAAC,MAAM,KAAK,CAAC,EACjC,yBAAyB,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrF,CAAC;IAEF,OAAO,CAAC,GAAG,CACT,eAAe,EACf,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CACvF,CAAC;IAEF,OAAO,aAAa,CAAC,CAAC,8CAA8C;AACtE,CAAC"}
|
|
@@ -2,6 +2,7 @@ import OpenAI, { toFile } from 'openai';
|
|
|
2
2
|
import { setTempBuffer } from '../files/temp-buffer.js';
|
|
3
3
|
import { resizeImageBuffer } from '../images/resize-image.js';
|
|
4
4
|
import { ensureAlpha } from '../images/ensure-alpha.js';
|
|
5
|
+
import { abortController } from '../main/interactive/codegen-worker.js';
|
|
5
6
|
/**
|
|
6
7
|
* Generate an image using OpenAI's DALL-E model and save it to a file
|
|
7
8
|
* @param {string} prompt - The description of the image to generate
|
|
@@ -26,8 +27,8 @@ export async function generateImage(prompt, contextImagePath, size, cheap = fals
|
|
|
26
27
|
? await openai.images.edit({
|
|
27
28
|
...options,
|
|
28
29
|
image: await toFile(await ensureAlpha(contextImagePath)),
|
|
29
|
-
})
|
|
30
|
-
: await openai.images.generate(options);
|
|
30
|
+
}, { signal: abortController?.signal })
|
|
31
|
+
: await openai.images.generate(options, { signal: abortController?.signal });
|
|
31
32
|
let imageUrl = response.data[0].url;
|
|
32
33
|
if (size.width !== 1024 || size.height !== 1024) {
|
|
33
34
|
console.log('Resizing image to desired size', size);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dall-e.js","sourceRoot":"","sources":["../../src/ai-service/dall-e.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"dall-e.js","sourceRoot":"","sources":["../../src/ai-service/dall-e.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAOxE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,gBAAoC,EACpC,IAAe,EACf,KAAK,GAAG,KAAK;IAEb,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAsC;YACjD,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,KAAK;SACvB,CAAC;QAEF,MAAM,QAAQ,GAAG,gBAAgB;YAC/B,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CACtB;gBACE,GAAG,OAAO;gBACV,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;aACxB,EAClC,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,CACpC;YACH,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/E,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAExC,QAAQ,GAAG,aAAa,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AnthropicVertex } from '@anthropic-ai/vertex-sdk';
|
|
2
2
|
import { printTokenUsageAndCost, processFunctionCalls } from './common.js';
|
|
3
|
+
import { abortController } from '../main/interactive/codegen-worker.js';
|
|
3
4
|
/**
|
|
4
5
|
* This function generates content using the Anthropic Claude model via Vertex AI.
|
|
5
6
|
*/
|
|
@@ -69,7 +70,7 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
69
70
|
tool_choice: requiredFunctionName
|
|
70
71
|
? { type: 'tool', name: requiredFunctionName }
|
|
71
72
|
: { type: 'any' },
|
|
72
|
-
});
|
|
73
|
+
}, { signal: abortController?.signal });
|
|
73
74
|
// Print token usage for Anthropic Vertex AI
|
|
74
75
|
const usage = {
|
|
75
76
|
inputTokens: response.usage.input_tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertex-ai-claude.js","sourceRoot":"","sources":["../../src/ai-service/vertex-ai-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAyC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"vertex-ai-claude.js","sourceRoot":"","sources":["../../src/ai-service/vertex-ai-claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import mime from 'mime-types';
|
|
|
3
3
|
import { PredictionServiceClient, helpers } from '@google-cloud/aiplatform';
|
|
4
4
|
import { setTempBuffer } from '../files/temp-buffer.js';
|
|
5
5
|
import { resizeImageBuffer } from '../images/resize-image.js';
|
|
6
|
+
import { abortController } from '../main/interactive/codegen-worker.js';
|
|
6
7
|
/**
|
|
7
8
|
* Generate an image using Vertex AI's Imagen model and return the image URL
|
|
8
9
|
* @param {string} prompt - The description of the image to generate
|
|
@@ -12,6 +13,8 @@ import { resizeImageBuffer } from '../images/resize-image.js';
|
|
|
12
13
|
* @returns {Promise<string>} - The url of the generated image
|
|
13
14
|
*/
|
|
14
15
|
export async function generateImage(prompt, contextImagePath, size, cheap = false) {
|
|
16
|
+
// Limitation in @google-cloud/aiplatform
|
|
17
|
+
abortController?.signal.throwIfAborted();
|
|
15
18
|
// Initialize the PredictionServiceClient
|
|
16
19
|
const client = new PredictionServiceClient({
|
|
17
20
|
apiEndpoint: `${process.env.GOOGLE_CLOUD_REGION}-aiplatform.googleapis.com`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertex-ai-imagen.js","sourceRoot":"","sources":["../../src/ai-service/vertex-ai-imagen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAU,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"vertex-ai-imagen.js","sourceRoot":"","sources":["../../src/ai-service/vertex-ai-imagen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FunctionCall, PromptItem, FunctionDef } from './common.js';
|
|
2
|
+
import { CodegenOptions } from '../main/codegen-types.js';
|
|
2
3
|
/**
|
|
3
4
|
* This function generates content using the Gemini Pro model.
|
|
4
5
|
*/
|
|
5
|
-
export declare function generateContent(prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string | null, temperature: number, cheap
|
|
6
|
-
export declare function getGenModel(systemPrompt: string, temperature: number, cheap?: boolean): import("@google-cloud/vertexai").GenerativeModelPreview;
|
|
7
|
-
export declare function verifyVertexMonkeyPatch(): Promise<boolean>;
|
|
6
|
+
export declare function generateContent(prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string | null, temperature: number, cheap: boolean | undefined, options: CodegenOptions): Promise<FunctionCall[]>;
|
|
7
|
+
export declare function getGenModel(systemPrompt: string, temperature: number, functionDefs: FunctionDef[], geminiBlockNone: boolean | undefined, requiredFunctionName: string | null, cheap?: boolean): import("@google-cloud/vertexai").GenerativeModelPreview;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
|
-
import { VertexAI, HarmCategory, HarmBlockThreshold, } from '@google-cloud/vertexai';
|
|
2
|
+
import { VertexAI, HarmCategory, HarmBlockThreshold, FunctionCallingMode, } from '@google-cloud/vertexai';
|
|
3
3
|
import { printTokenUsageAndCost, processFunctionCalls } from './common.js';
|
|
4
|
-
import {
|
|
4
|
+
import { abortController } from '../main/interactive/codegen-worker.js';
|
|
5
5
|
/**
|
|
6
6
|
* This function generates content using the Gemini Pro model.
|
|
7
7
|
*/
|
|
8
|
-
export async function generateContent(prompt, functionDefs, requiredFunctionName, temperature, cheap = false) {
|
|
8
|
+
export async function generateContent(prompt, functionDefs, requiredFunctionName, temperature, cheap = false, options) {
|
|
9
|
+
// Limitation: https://github.com/googleapis/nodejs-vertexai/issues/143
|
|
10
|
+
abortController?.signal.throwIfAborted();
|
|
9
11
|
const messages = prompt
|
|
10
12
|
.filter((item) => item.type === 'user' || item.type === 'assistant')
|
|
11
13
|
.map((item) => {
|
|
@@ -49,21 +51,8 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
49
51
|
});
|
|
50
52
|
const req = {
|
|
51
53
|
contents: messages,
|
|
52
|
-
tools: [
|
|
53
|
-
{
|
|
54
|
-
functionDeclarations: functionDefs,
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
// @ts-expect-error (known issue)
|
|
58
|
-
toolConfig: {
|
|
59
|
-
functionCallingConfig: {
|
|
60
|
-
mode: cheap ? undefined : 'ANY',
|
|
61
|
-
...(!cheap && requiredFunctionName ? { allowedFunctionNames: [requiredFunctionName] } : {}),
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
54
|
};
|
|
65
|
-
const model = await getGenModel(prompt.find((item) => item.type === 'systemPrompt').systemPrompt, temperature, cheap);
|
|
66
|
-
assert(await verifyVertexMonkeyPatch(), 'Vertex AI Tool Config was not monkey patched');
|
|
55
|
+
const model = await getGenModel(prompt.find((item) => item.type === 'systemPrompt').systemPrompt, temperature, functionDefs, options.geminiBlockNone, requiredFunctionName, cheap);
|
|
67
56
|
const result = await model.generateContent(req);
|
|
68
57
|
// Print token usage
|
|
69
58
|
const usageMetadata = result.response.usageMetadata;
|
|
@@ -98,7 +87,7 @@ export async function generateContent(prompt, functionDefs, requiredFunctionName
|
|
|
98
87
|
}
|
|
99
88
|
// A function to get the generative model
|
|
100
89
|
// Modified to accept temperature parameter and cheap flag
|
|
101
|
-
export function getGenModel(systemPrompt, temperature, cheap = false) {
|
|
90
|
+
export function getGenModel(systemPrompt, temperature, functionDefs, geminiBlockNone, requiredFunctionName, cheap = false) {
|
|
102
91
|
// Initialize Vertex with your Cloud project and location
|
|
103
92
|
const vertex_ai = new VertexAI({});
|
|
104
93
|
const model = cheap ? 'gemini-1.5-flash-001' : 'gemini-1.5-pro-001';
|
|
@@ -137,11 +126,17 @@ export function getGenModel(systemPrompt, temperature, cheap = false) {
|
|
|
137
126
|
},
|
|
138
127
|
],
|
|
139
128
|
},
|
|
129
|
+
tools: [
|
|
130
|
+
{
|
|
131
|
+
functionDeclarations: functionDefs,
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
toolConfig: {
|
|
135
|
+
functionCallingConfig: {
|
|
136
|
+
mode: cheap ? undefined : FunctionCallingMode.ANY,
|
|
137
|
+
...(!cheap && requiredFunctionName ? { allowedFunctionNames: [requiredFunctionName] } : {}),
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
|
-
export async function verifyVertexMonkeyPatch() {
|
|
143
|
-
return (await import('@google-cloud/vertexai/build/src/functions/generate_content.js')).generateContent
|
|
144
|
-
.toString()
|
|
145
|
-
.includes('// MONKEY PATCH TOOL_CONFIG');
|
|
146
|
-
}
|
|
147
142
|
//# sourceMappingURL=vertex-ai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertex-ai.js","sourceRoot":"","sources":["../../src/ai-service/vertex-ai.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,QAAQ,EAGR,YAAY,EACZ,kBAAkB,
|
|
1
|
+
{"version":3,"file":"vertex-ai.js","sourceRoot":"","sources":["../../src/ai-service/vertex-ai.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,QAAQ,EAGR,YAAY,EACZ,kBAAkB,EAElB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAyC,MAAM,aAAa,CAAC;AAElH,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAoB,EACpB,YAA2B,EAC3B,oBAAmC,EACnC,WAAmB,EACnB,KAAK,GAAG,KAAK,EACb,OAAuB;IAEvB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAc,MAAM;SAC/B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;SACnE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAY;gBACvB,IAAI,EAAE,MAAe;gBACrB,KAAK,EAAE;oBACL,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACnD,gBAAgB,EAAE;4BAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;yBAC7D;qBACF,CAAC,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,UAAU,EAAE;4BACV,QAAQ,EAAE,KAAK,CAAC,SAAS;4BACzB,IAAI,EAAE,KAAK,CAAC,SAAS;yBACtB;qBACF,CAAC,CAAC;oBACH,EAAE,IAAI,EAAE,IAAI,CAAC,IAAK,EAAE;iBACrB;aACF,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YAClC,MAAM,OAAO,GAAY;gBACvB,IAAI,EAAE,OAAgB;gBACtB,KAAK,EAAE;oBACL,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,GAAG,IAAI,CAAC,aAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACpC,YAAY,EAAE;4BACZ,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;yBACtB;qBACF,CAAC,CAAC;iBACJ;aACF,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,GAAG,GAA2B;QAClC,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAE,CAAC,YAAa,EAClE,WAAW,EACX,YAAY,EACZ,OAAO,CAAC,eAAe,EACvB,oBAAoB,EACpB,KAAK,CACN,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAEhD,oBAAoB;IACpB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAc,CAAC;IACrD,MAAM,KAAK,GAAG;QACZ,WAAW,EAAE,aAAa,CAAC,gBAAgB;QAC3C,YAAY,EAAE,aAAa,CAAC,oBAAoB;QAChD,WAAW,EAAE,aAAa,CAAC,eAAe;KAC3C,CAAC;IACF,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC;IAEhE,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU;SAC7C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC7E,IAAI,EAAE;SACN,MAAM,CAAC,CAAC,YAAY,EAAoD,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;SAC1F,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAA+B,EAAE,CAAC,CAAC,CAAC;IAEpF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU;aAC5C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrE,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,uDAAuD,EAAE,YAAY,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,oBAAoB,CAAC,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,yCAAyC;AACzC,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CACzB,YAAoB,EACpB,WAAmB,EACnB,YAA2B,EAC3B,eAAoC,EACpC,oBAAmC,EACnC,KAAK,GAAG,KAAK;IAEb,yDAAyD;IACzD,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAEpE,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IAE/C,yBAAyB;IACzB,OAAO,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC1C,KAAK,EAAE,KAAK;QACZ,gBAAgB,EAAE;YAChB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,IAAI;SACX;QACD,cAAc,EAAE;YACd;gBACE,QAAQ,EAAE,YAAY,CAAC,yBAAyB;gBAChD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,mBAAmB;aACpG;YACD;gBACE,QAAQ,EAAE,YAAY,CAAC,+BAA+B;gBACtD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,mBAAmB;aACpG;YACD;gBACE,QAAQ,EAAE,YAAY,CAAC,+BAA+B;gBACtD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,mBAAmB;aACpG;YACD;gBACE,QAAQ,EAAE,YAAY,CAAC,wBAAwB;gBAC/C,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,mBAAmB;aACpG;SACF;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,YAAY;iBACnB;aACF;SACF;QACD,KAAK,EAAE;YACL;gBACE,oBAAoB,EAAE,YAAgD;aACvE;SACF;QACD,UAAU,EAAE;YACV,qBAAqB,EAAE;gBACrB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG;gBACjD,GAAG,CAAC,CAAC,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5F;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cli/cli-options.js
CHANGED
|
@@ -104,8 +104,8 @@ const cliOptions = [
|
|
|
104
104
|
description: 'Disable caching for the application.',
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
|
-
name: '--ask-question',
|
|
108
|
-
description: '
|
|
107
|
+
name: '--disable-ask-question',
|
|
108
|
+
description: 'Disable the question-asking feature. By default, the assistant can ask questions for clarification during the code generation process.',
|
|
109
109
|
},
|
|
110
110
|
];
|
|
111
111
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../../src/cli/cli-options.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,GAAgB;IAC9B;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4BAA4B;KAC1C;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,0EAA0E,GAAG,mBAAmB;KAC9G;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,+CAA+C;KAC7D;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,yCAAyC;KACvD;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+FAA+F;KAC7G;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,yGAAyG;KAC5G;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,+CAA+C;KAC7D;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,+DAA+D;KAC7E;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,wDAAwD,GAAG,iCAAiC;KAC1G;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4CAA4C;KAC1D;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,sFAAsF;KACpG;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oFAAoF;KAClG;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,yEAAyE;KACvF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,gEAAgE;KAC9E;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,8KAA8K;KACjL;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,wGAAwG;KAC3G;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2EAA2E;KACzF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,oJAAoJ;KACvJ;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,+EAA+E;KAC7F;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,sCAAsC;KACpD;IACD;QACE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../../src/cli/cli-options.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,GAAgB;IAC9B;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4BAA4B;KAC1C;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,0EAA0E,GAAG,mBAAmB;KAC9G;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,+CAA+C;KAC7D;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,yCAAyC;KACvD;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+FAA+F;KAC7G;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,yGAAyG;KAC5G;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,+CAA+C;KAC7D;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,+DAA+D;KAC7E;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,wDAAwD,GAAG,iCAAiC;KAC1G;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4CAA4C;KAC1D;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,sFAAsF;KACpG;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,oFAAoF;KAClG;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,yEAAyE;KACvF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,gEAAgE;KAC9E;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,8KAA8K;KACjL;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,wGAAwG;KAC3G;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2EAA2E;KACzF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,oJAAoJ;KACvJ;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,+EAA+E;KAC7F;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,sCAAsC;KACpD;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,wIAAwI;KAC3I;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,uGAAuG,CAAC,CAAC;AACvH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/cli/cli-params.d.ts
CHANGED
|
@@ -12,18 +12,19 @@ export declare const vertexAiClaude: boolean;
|
|
|
12
12
|
export declare const dependencyTree: boolean;
|
|
13
13
|
export declare const verbosePrompt: boolean;
|
|
14
14
|
export declare const disableCache: boolean;
|
|
15
|
-
export declare
|
|
15
|
+
export declare const explicitPrompt: string | undefined;
|
|
16
16
|
export declare const disableContextOptimization: boolean;
|
|
17
17
|
export declare let taskFile: string | undefined;
|
|
18
18
|
export declare const requireExplanations: boolean;
|
|
19
19
|
export declare const geminiBlockNone: boolean;
|
|
20
20
|
export declare const disableInitialLint: boolean;
|
|
21
21
|
export declare const vision: boolean;
|
|
22
|
-
export declare const imagen:
|
|
22
|
+
export declare const imagen: "dall-e" | "vertex-ai" | undefined;
|
|
23
23
|
export declare const cheap: boolean;
|
|
24
24
|
export declare const askQuestion: boolean;
|
|
25
|
+
export declare const interactive: boolean;
|
|
25
26
|
export declare const helpRequested: boolean;
|
|
26
27
|
export declare const lintCommand: string | null;
|
|
27
28
|
export declare const temperature: number;
|
|
28
|
-
export declare const contentMask: string |
|
|
29
|
+
export declare const contentMask: string | undefined;
|
|
29
30
|
export declare const ignorePatterns: string[];
|
package/dist/cli/cli-params.js
CHANGED
|
@@ -17,7 +17,7 @@ export const vertexAiClaude = params.includes('--vertex-ai-claude');
|
|
|
17
17
|
export const dependencyTree = params.includes('--dependency-tree');
|
|
18
18
|
export const verbosePrompt = params.includes('--verbose-prompt');
|
|
19
19
|
export const disableCache = params.includes('--disable-cache');
|
|
20
|
-
export
|
|
20
|
+
export const explicitPrompt = params.find((param) => param.startsWith('--explicit-prompt'))?.split('=')[1];
|
|
21
21
|
export const disableContextOptimization = params.includes('--disable-context-optimization');
|
|
22
22
|
export let taskFile = params.find((param) => param.startsWith('--task-file'))?.split('=')[1];
|
|
23
23
|
export const requireExplanations = params.includes('--require-explanations');
|
|
@@ -26,7 +26,8 @@ export const disableInitialLint = params.includes('--disable-initial-lint');
|
|
|
26
26
|
export const vision = params.includes('--vision');
|
|
27
27
|
export const imagen = params.find((param) => param.startsWith('--imagen'))?.split('=')[1];
|
|
28
28
|
export const cheap = params.includes('--cheap');
|
|
29
|
-
export const askQuestion = params.includes('--ask-question');
|
|
29
|
+
export const askQuestion = !params.includes('--disable-ask-question'); // Default enabled
|
|
30
|
+
export const interactive = params.includes('--interactive'); // New parameter for interactive mode
|
|
30
31
|
// Add support for --help option
|
|
31
32
|
export const helpRequested = params.includes('--help');
|
|
32
33
|
// Export the lintCommand from rcConfig
|
|
@@ -34,7 +35,7 @@ export const lintCommand = rcConfig.lintCommand || null;
|
|
|
34
35
|
// Temperature parameter
|
|
35
36
|
export const temperature = parseFloat(params.find((param) => param.startsWith('--temperature='))?.split('=')[1] || '0.7'); // Default temperature value: 0.7
|
|
36
37
|
// New content mask parameter
|
|
37
|
-
export const contentMask = params.find((param) => param.startsWith('--content-mask='))?.split('=')[1] ||
|
|
38
|
+
export const contentMask = params.find((param) => param.startsWith('--content-mask='))?.split('=')[1] || undefined;
|
|
38
39
|
// New ignore pattern parameter
|
|
39
40
|
export const ignorePatterns = params
|
|
40
41
|
.filter((param) => param.startsWith('--ignore-pattern='))
|
|
@@ -49,7 +50,6 @@ if (taskFile) {
|
|
|
49
50
|
if (!path.isAbsolute(taskFile)) {
|
|
50
51
|
taskFile = path.join(process.cwd(), taskFile);
|
|
51
52
|
}
|
|
52
|
-
explicitPrompt = `I want you to perform a coding task. The task is described in the ${taskFile} file. Use those instructions.`;
|
|
53
53
|
}
|
|
54
54
|
if (considerAllFiles && dependencyTree) {
|
|
55
55
|
throw new Error('--consider-all-files and --dependency-tree are exclusive.');
|
|
@@ -76,7 +76,7 @@ if (!chatGpt && !anthropic && !vertexAi && !vertexAiClaude && !aiStudio && !help
|
|
|
76
76
|
aiStudio = true;
|
|
77
77
|
}
|
|
78
78
|
else {
|
|
79
|
-
throw new Error('Missing --chat-gpt, --anthropic, --ai-
|
|
79
|
+
throw new Error('Missing --chat-gpt, --anthropic, --ai-studio, --vertex-ai, or --vertex-ai-claude');
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
if (lintCommand) {
|
|
@@ -100,4 +100,10 @@ if (ignorePatterns.length > 0) {
|
|
|
100
100
|
if (askQuestion) {
|
|
101
101
|
console.log('Assistant can ask questions to the user');
|
|
102
102
|
}
|
|
103
|
+
else {
|
|
104
|
+
console.log('Assistant will not ask questions to the user');
|
|
105
|
+
}
|
|
106
|
+
if (interactive) {
|
|
107
|
+
console.log('Interactive mode enabled');
|
|
108
|
+
}
|
|
103
109
|
//# sourceMappingURL=cli-params.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-params.js","sourceRoot":"","sources":["../../src/cli/cli-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-params.js","sourceRoot":"","sources":["../../src/cli/cli-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAElE,MAAM,CAAC,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnD,MAAM,CAAC,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,MAAM,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACrD,MAAM,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAC5F,MAAM,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAG3E,CAAC;AACd,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,kBAAkB;AACzF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,qCAAqC;AAElG,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAEvD,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;AAExD,wBAAwB;AACxB,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CACnF,CAAC,CAAC,iCAAiC;AAEpC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAEnH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM;KACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC,IAAI,QAAQ,EAAE,CAAC;IACb,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;IACvC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC/E,CAAC;AAED,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACxF,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;AACvH,CAAC;AAED,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;IAC1F,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;SAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;SAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;SAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,MAAM,EAAE,CAAC;IACX,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,KAAK,EAAE,CAAC;IACV,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AACjF,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,mBAAmB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC"}
|