@superblocksteam/vite-plugin-file-sync 2.0.89 → 2.0.90
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/agent/prompts/api-prompts.js +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +2 -2
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +132 -28
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +1 -1
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +44 -0
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +226 -92
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +13 -11
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +33 -3
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +8 -3
- package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +12 -2
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.js +1 -1
- package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +6 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/get-logs.d.ts +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +5 -1
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +3 -0
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -2
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +3 -3
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/index.d.ts +1 -0
- package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/index.js +1 -0
- package/dist/ai-service/agent/tools2/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/remember-facts.d.ts +29 -0
- package/dist/ai-service/agent/tools2/tools/remember-facts.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/remember-facts.js +104 -0
- package/dist/ai-service/agent/tools2/tools/remember-facts.js.map +1 -0
- package/dist/ai-service/agent/tools2/types.d.ts +1 -0
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js +1 -0
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +77 -0
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +22 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +121 -11
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/sdk-path-validator.d.ts +1 -1
- package/dist/ai-service/app-interface/filesystem/sdk-path-validator.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/sdk-path-validator.js +4 -2
- package/dist/ai-service/app-interface/filesystem/sdk-path-validator.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts +2 -0
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +28 -3
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +9 -3
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts +32 -0
- package/dist/ai-service/app-skills/helpers.d.ts.map +1 -0
- package/dist/ai-service/app-skills/helpers.js +262 -0
- package/dist/ai-service/app-skills/helpers.js.map +1 -0
- package/dist/ai-service/app-skills/manager.d.ts +60 -0
- package/dist/ai-service/app-skills/manager.d.ts.map +1 -0
- package/dist/ai-service/app-skills/manager.js +203 -0
- package/dist/ai-service/app-skills/manager.js.map +1 -0
- package/dist/ai-service/app-skills/parser.d.ts +53 -0
- package/dist/ai-service/app-skills/parser.d.ts.map +1 -0
- package/dist/ai-service/app-skills/parser.js +82 -0
- package/dist/ai-service/app-skills/parser.js.map +1 -0
- package/dist/ai-service/attachment-upload.d.ts +24 -0
- package/dist/ai-service/attachment-upload.d.ts.map +1 -0
- package/dist/ai-service/attachment-upload.js +75 -0
- package/dist/ai-service/attachment-upload.js.map +1 -0
- package/dist/ai-service/chat/chat-session-store.d.ts +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +82 -0
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/facts/helpers.d.ts +8 -1
- package/dist/ai-service/facts/helpers.d.ts.map +1 -1
- package/dist/ai-service/facts/helpers.js +89 -7
- package/dist/ai-service/facts/helpers.js.map +1 -1
- package/dist/ai-service/facts/knowledge-manager.d.ts +39 -3
- package/dist/ai-service/facts/knowledge-manager.d.ts.map +1 -1
- package/dist/ai-service/facts/knowledge-manager.js +108 -27
- package/dist/ai-service/facts/knowledge-manager.js.map +1 -1
- package/dist/ai-service/features.d.ts +5 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +5 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +20 -0
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +38 -1
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +3 -1
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +2 -0
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +65 -0
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/recording/block-traversal.d.ts +30 -0
- package/dist/ai-service/recording/block-traversal.d.ts.map +1 -0
- package/dist/ai-service/recording/block-traversal.js +118 -0
- package/dist/ai-service/recording/block-traversal.js.map +1 -0
- package/dist/ai-service/recording/index.d.ts +1 -0
- package/dist/ai-service/recording/index.d.ts.map +1 -1
- package/dist/ai-service/recording/index.js +2 -0
- package/dist/ai-service/recording/index.js.map +1 -1
- package/dist/ai-service/recording/snapshot-manager.d.ts +200 -0
- package/dist/ai-service/recording/snapshot-manager.d.ts.map +1 -0
- package/dist/ai-service/recording/snapshot-manager.js +708 -0
- package/dist/ai-service/recording/snapshot-manager.js.map +1 -0
- package/dist/ai-service/recording/storage/session-recording-storage.d.ts +5 -1
- package/dist/ai-service/recording/storage/session-recording-storage.d.ts.map +1 -1
- package/dist/ai-service/recording/storage/session-recording-storage.js +46 -21
- package/dist/ai-service/recording/storage/session-recording-storage.js.map +1 -1
- package/dist/ai-service/sdk-api-templates.d.ts +2 -0
- package/dist/ai-service/sdk-api-templates.d.ts.map +1 -0
- package/dist/ai-service/sdk-api-templates.js +2 -0
- package/dist/ai-service/sdk-api-templates.js.map +1 -0
- package/dist/ai-service/skills/index.d.ts +3 -1
- package/dist/ai-service/skills/index.d.ts.map +1 -1
- package/dist/ai-service/skills/index.js +5 -2
- package/dist/ai-service/skills/index.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +4 -4
- package/dist/ai-service/state-machine/clark-fsm.d.ts +18 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +1 -0
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +93 -11
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +67 -7
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +2 -0
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/types.d.ts +3 -0
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/ai-service/util/mode-message.d.ts.map +1 -1
- package/dist/ai-service/util/mode-message.js +3 -0
- package/dist/ai-service/util/mode-message.js.map +1 -1
- package/dist/ai-service/util/rpc-timeout.d.ts +37 -0
- package/dist/ai-service/util/rpc-timeout.d.ts.map +1 -0
- package/dist/ai-service/util/rpc-timeout.js +58 -0
- package/dist/ai-service/util/rpc-timeout.js.map +1 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +72 -21
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-helpers.d.ts +9 -0
- package/dist/file-system-helpers.d.ts.map +1 -1
- package/dist/file-system-helpers.js +21 -0
- package/dist/file-system-helpers.js.map +1 -1
- package/dist/injected-index.d.ts.map +1 -1
- package/dist/injected-index.js +4 -3
- package/dist/injected-index.js.map +1 -1
- package/dist/plugin-options.d.ts +2 -0
- package/dist/plugin-options.d.ts.map +1 -1
- package/dist/plugin-options.js.map +1 -1
- package/dist/snapshot-routes.d.ts +17 -0
- package/dist/snapshot-routes.d.ts.map +1 -0
- package/dist/snapshot-routes.js +247 -0
- package/dist/snapshot-routes.js.map +1 -0
- package/dist/socket-manager.d.ts +1 -0
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +34 -0
- package/dist/socket-manager.js.map +1 -1
- package/package.json +9 -5
|
@@ -8,6 +8,214 @@ import { codeBlock } from "../../tools2/utils.js";
|
|
|
8
8
|
import { containsMutations, extractIntegrationIdsFromSource, extractMutations, } from "./analysis.js";
|
|
9
9
|
import { runApiValidationPipeline } from "./api-validation-orchestrator.js";
|
|
10
10
|
import { safeSampleJson } from "./sample-json.js";
|
|
11
|
+
/**
|
|
12
|
+
* Execute an SDK API via the editor socket (aiExecuteSdkApi).
|
|
13
|
+
* Runs a TypeScript typecheck first to catch errors before execution.
|
|
14
|
+
*/
|
|
15
|
+
async function executeSdkApi({ apiName, inputs, clark, services, logger, }) {
|
|
16
|
+
// Run TypeScript check before execution to catch type errors
|
|
17
|
+
const apiTsPath = `server/apis/${apiName}/api.ts`;
|
|
18
|
+
logger.info(`Starting TypeScript check for API file: ${apiTsPath}`);
|
|
19
|
+
try {
|
|
20
|
+
const typecheckErrors = await services.appShell.runTypecheck(clark.context.abortController?.signal);
|
|
21
|
+
logger.info(`TypeScript check completed. Has errors: ${!!typecheckErrors}, error file count: ${typecheckErrors ? Object.keys(typecheckErrors).length : 0}`);
|
|
22
|
+
if (typecheckErrors) {
|
|
23
|
+
const apiErrors = [];
|
|
24
|
+
for (const [filePath, errors] of Object.entries(typecheckErrors)) {
|
|
25
|
+
if (filePath.includes(apiTsPath) || filePath.endsWith(apiTsPath)) {
|
|
26
|
+
apiErrors.push(...errors);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (apiErrors.length > 0) {
|
|
30
|
+
const errorPreview = apiErrors.slice(0, 5).join("\n");
|
|
31
|
+
const moreErrors = apiErrors.length > 5
|
|
32
|
+
? `\n... and ${apiErrors.length - 5} more error(s)`
|
|
33
|
+
: "";
|
|
34
|
+
logger.error(`Blocking execution due to TypeScript errors`);
|
|
35
|
+
throw new Error(`TypeScript errors in API "${apiName}" must be fixed before testing:\n\n${errorPreview}${moreErrors}\n\nFix these type errors and try again.`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
logger.info(`TypeScript check passed for ${apiName}`);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error instanceof Error &&
|
|
42
|
+
error.message.includes("TypeScript errors in API")) {
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
logger.warn(`TypeScript check failed, proceeding with execution: ${error instanceof Error ? error.message : String(error)}`);
|
|
46
|
+
}
|
|
47
|
+
logger.info(`Executing SDK API ${apiName} with inputs:`, safeJsonStringify(inputs));
|
|
48
|
+
const editorClient = clark.context.peer;
|
|
49
|
+
if (!editorClient) {
|
|
50
|
+
throw new Error("No editor client available");
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const result = await editorClient.call.aiExecuteSdkApi({
|
|
54
|
+
apiName,
|
|
55
|
+
input: inputs ?? {},
|
|
56
|
+
});
|
|
57
|
+
logger.info(`aiExecuteSdkApi returned for ${apiName}: success=${result.success}, hasOutput=${!!result.output}, hasError=${!!result.error}`);
|
|
58
|
+
if (result.success === undefined) {
|
|
59
|
+
logger.error(`aiExecuteSdkApi returned malformed result (no success field) for ${apiName}`);
|
|
60
|
+
return {
|
|
61
|
+
message: `API ${apiName} execution returned unexpected result format. This may indicate the API file failed to load or has syntax errors. Check the browser console for details.`,
|
|
62
|
+
result: {
|
|
63
|
+
success: false,
|
|
64
|
+
systemError: "Malformed response from API execution",
|
|
65
|
+
rawResult: result,
|
|
66
|
+
},
|
|
67
|
+
apiName,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (result.success === false) {
|
|
71
|
+
logger.warn(`SDK API execution returned error for ${apiName}: ${result.error?.message ?? "Unknown error"}`);
|
|
72
|
+
clark.context.apiTestingState ??= {
|
|
73
|
+
untested: new Set(),
|
|
74
|
+
failed: new Set(),
|
|
75
|
+
passed: new Set(),
|
|
76
|
+
};
|
|
77
|
+
clark.context.apiTestingState.failed.add(apiName);
|
|
78
|
+
clark.context.apiTestingState.passed.delete(apiName);
|
|
79
|
+
const errorSummary = result.error?.message ?? "";
|
|
80
|
+
return {
|
|
81
|
+
message: `API ${apiName} FAILED with unhandled errors. Do NOT show a success message to the user - investigate and fix the error.
|
|
82
|
+
|
|
83
|
+
Error summary:
|
|
84
|
+
${errorSummary || "No specific error details available."}`,
|
|
85
|
+
result: {
|
|
86
|
+
success: false,
|
|
87
|
+
error: result.error,
|
|
88
|
+
},
|
|
89
|
+
apiName,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const outputSample = safeSampleJson(result.output);
|
|
93
|
+
logger.info(`API ${apiName} executed successfully, output sample: ${safeJsonStringify(outputSample)}`);
|
|
94
|
+
clark.context.apiTestingState ??= {
|
|
95
|
+
untested: new Set(),
|
|
96
|
+
failed: new Set(),
|
|
97
|
+
passed: new Set(),
|
|
98
|
+
};
|
|
99
|
+
clark.context.apiTestingState.passed.add(apiName);
|
|
100
|
+
clark.context.apiTestingState.failed.delete(apiName);
|
|
101
|
+
return {
|
|
102
|
+
message: `API ${apiName} executed without throwing exceptions. This does NOT guarantee the outputs are correct - verify the data before showing success to the user.
|
|
103
|
+
If the API is meant to be run off a useEffect, call build_reloadFile to reload the appropriate file to propagate the changes to the UI.`,
|
|
104
|
+
result: {
|
|
105
|
+
success: true,
|
|
106
|
+
outputs: outputSample,
|
|
107
|
+
},
|
|
108
|
+
apiName,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
const errorMeta = getErrorMeta(error);
|
|
113
|
+
logger.warn(`API execution failed for ${apiName}:`, errorMeta);
|
|
114
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
115
|
+
return {
|
|
116
|
+
message: `API execution failed for ${apiName}. The error details are included in the result below - analyze them to understand and fix the issue.
|
|
117
|
+
|
|
118
|
+
Error: ${errorMessage}`,
|
|
119
|
+
result: {
|
|
120
|
+
success: false,
|
|
121
|
+
systemError: errorMessage,
|
|
122
|
+
},
|
|
123
|
+
apiName,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Execute a YAML API via the validation pipeline.
|
|
129
|
+
*/
|
|
130
|
+
async function executeYamlApi({ apiName, inputs, omitStepOutputs, timeout, clark, services, logger, }) {
|
|
131
|
+
try {
|
|
132
|
+
const result = (await runApiValidationPipeline({
|
|
133
|
+
clark,
|
|
134
|
+
services,
|
|
135
|
+
identifier: apiName,
|
|
136
|
+
inputs,
|
|
137
|
+
options: {
|
|
138
|
+
omitStepOutputs,
|
|
139
|
+
timeout,
|
|
140
|
+
},
|
|
141
|
+
})).executionResult;
|
|
142
|
+
if (!result) {
|
|
143
|
+
logger.error("BUG! No execution result returned by api validation pipeline");
|
|
144
|
+
throw new Error("No API execution result received, please try again");
|
|
145
|
+
}
|
|
146
|
+
if (!result.success) {
|
|
147
|
+
logger.warn(`api execution returned errors for ${apiName}:`, result);
|
|
148
|
+
clark.context.apiTestingState ??= {
|
|
149
|
+
untested: new Set(),
|
|
150
|
+
failed: new Set(),
|
|
151
|
+
passed: new Set(),
|
|
152
|
+
};
|
|
153
|
+
clark.context.apiTestingState.failed.add(apiName);
|
|
154
|
+
clark.context.apiTestingState.passed.delete(apiName);
|
|
155
|
+
const errors = result.errors ?? [];
|
|
156
|
+
const errorSummary = errors
|
|
157
|
+
.map((e) => {
|
|
158
|
+
const parts = [e.message];
|
|
159
|
+
if (e.suggestion) {
|
|
160
|
+
parts.push(`Suggestion: ${e.suggestion}`);
|
|
161
|
+
}
|
|
162
|
+
return parts.join("\n");
|
|
163
|
+
})
|
|
164
|
+
.join("\n\n");
|
|
165
|
+
return {
|
|
166
|
+
message: `API ${apiName} FAILED with unhandled errors. Do NOT show a success message to the user - investigate and fix the error.
|
|
167
|
+
|
|
168
|
+
Error summary:
|
|
169
|
+
${errorSummary || "No specific error details available."}`,
|
|
170
|
+
result,
|
|
171
|
+
apiName,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const outputSample = safeSampleJson(result.outputs);
|
|
175
|
+
let stepOutputs = result.stepOutputs;
|
|
176
|
+
if (stepOutputs) {
|
|
177
|
+
stepOutputs = { ...result.stepOutputs };
|
|
178
|
+
for (const [key, value] of Object.entries(stepOutputs)) {
|
|
179
|
+
const stepOutputSample = safeSampleJson(value.output);
|
|
180
|
+
stepOutputs[key] = {
|
|
181
|
+
...value,
|
|
182
|
+
output: stepOutputSample,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
clark.context.apiTestingState ??= {
|
|
187
|
+
untested: new Set(),
|
|
188
|
+
failed: new Set(),
|
|
189
|
+
passed: new Set(),
|
|
190
|
+
};
|
|
191
|
+
clark.context.apiTestingState.passed.add(apiName);
|
|
192
|
+
clark.context.apiTestingState.failed.delete(apiName);
|
|
193
|
+
return {
|
|
194
|
+
message: `API ${apiName} executed without throwing exceptions. This does NOT guarantee the outputs are correct - verify the data before showing success to the user.
|
|
195
|
+
If the API is meant to be run off a useEffect, call build_reloadFile to reload the appropriate file to propagate the changes to the UI.`,
|
|
196
|
+
result: {
|
|
197
|
+
...result,
|
|
198
|
+
stepOutputs,
|
|
199
|
+
outputs: outputSample,
|
|
200
|
+
},
|
|
201
|
+
apiName,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
logger.warn(`API execution failed for ${apiName}:`, getErrorMeta(error));
|
|
206
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
207
|
+
return {
|
|
208
|
+
message: `API execution failed for ${apiName}. The error details are included in the result below - analyze them to understand and fix the issue.
|
|
209
|
+
|
|
210
|
+
Error: ${errorMessage}`,
|
|
211
|
+
result: {
|
|
212
|
+
success: false,
|
|
213
|
+
systemError: errorMessage,
|
|
214
|
+
},
|
|
215
|
+
apiName,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
11
219
|
/**
|
|
12
220
|
* Validates testApi inputs before permission check.
|
|
13
221
|
* Throws if validation fails (e.g., mutations detected but no description provided).
|
|
@@ -55,7 +263,9 @@ export const checkTestApiPermissions = async (services, input) => {
|
|
|
55
263
|
}
|
|
56
264
|
let mutations = [];
|
|
57
265
|
try {
|
|
58
|
-
const apiTsPath =
|
|
266
|
+
const apiTsPath = services.features.sdkApiEnabled
|
|
267
|
+
? `server/apis/${input.apiName}/api.ts`
|
|
268
|
+
: `apis/${input.apiName}.ts`;
|
|
59
269
|
const apiSourceContent = await services.appShell.readFile(apiTsPath);
|
|
60
270
|
mutations = extractMutations(apiSourceContent);
|
|
61
271
|
}
|
|
@@ -140,7 +350,9 @@ The description will be shown to the user in an approval prompt, so it must be c
|
|
|
140
350
|
return [];
|
|
141
351
|
}
|
|
142
352
|
try {
|
|
143
|
-
const apiTsPath =
|
|
353
|
+
const apiTsPath = services.features.sdkApiEnabled
|
|
354
|
+
? `server/apis/${apiName}/api.ts`
|
|
355
|
+
: `apis/${apiName}.ts`;
|
|
144
356
|
const apiSourceContent = await services.appShell.readFile(apiTsPath);
|
|
145
357
|
const hasWrites = containsMutations(apiSourceContent);
|
|
146
358
|
if (!hasWrites) {
|
|
@@ -163,97 +375,19 @@ The description will be shown to the user in an approval prompt, so it must be c
|
|
|
163
375
|
execute: async ({ apiName, inputs, omitStepOutputs, timeout }) => {
|
|
164
376
|
const logger = getPrefixedLogger(`[testApi-${apiName}]`);
|
|
165
377
|
logger.info(`Executing API ${apiName} with inputs:`, safeJsonStringify(inputs));
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
services,
|
|
170
|
-
identifier: apiName,
|
|
171
|
-
inputs,
|
|
172
|
-
options: {
|
|
173
|
-
omitStepOutputs,
|
|
174
|
-
timeout,
|
|
175
|
-
},
|
|
176
|
-
})).executionResult;
|
|
177
|
-
if (!result) {
|
|
178
|
-
logger.error("BUG! No execution result returned by api validation pipeline");
|
|
179
|
-
throw new Error("No API execution result received, please try again");
|
|
180
|
-
}
|
|
181
|
-
if (!result.success) {
|
|
182
|
-
// log technical error details
|
|
183
|
-
logger.warn(`api execution returned errors for ${apiName}:`, result);
|
|
184
|
-
// Track the failed test (lazily initialize state so pre-existing APIs are tracked too)
|
|
185
|
-
clark.context.apiTestingState ??= {
|
|
186
|
-
untested: new Set(),
|
|
187
|
-
failed: new Set(),
|
|
188
|
-
passed: new Set(),
|
|
189
|
-
};
|
|
190
|
-
clark.context.apiTestingState.failed.add(apiName);
|
|
191
|
-
clark.context.apiTestingState.passed.delete(apiName);
|
|
192
|
-
// Build a helpful message that includes error details so the model doesn't need to read the API file
|
|
193
|
-
const errors = result.errors ?? [];
|
|
194
|
-
const errorSummary = errors
|
|
195
|
-
.map((e) => {
|
|
196
|
-
const parts = [e.message];
|
|
197
|
-
if (e.suggestion) {
|
|
198
|
-
parts.push(`Suggestion: ${e.suggestion}`);
|
|
199
|
-
}
|
|
200
|
-
return parts.join("\n");
|
|
201
|
-
})
|
|
202
|
-
.join("\n\n");
|
|
203
|
-
return {
|
|
204
|
-
message: `API ${apiName} FAILED with unhandled errors. Do NOT show a success message to the user - investigate and fix the error.
|
|
205
|
-
|
|
206
|
-
Error summary:
|
|
207
|
-
${errorSummary || "No specific error details available."}`,
|
|
208
|
-
result,
|
|
209
|
-
apiName,
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
const outputSample = safeSampleJson(result.outputs);
|
|
213
|
-
let stepOutputs = result.stepOutputs;
|
|
214
|
-
if (stepOutputs) {
|
|
215
|
-
stepOutputs = { ...result.stepOutputs };
|
|
216
|
-
for (const [key, value] of Object.entries(stepOutputs)) {
|
|
217
|
-
const stepOutputSample = safeSampleJson(value.output);
|
|
218
|
-
stepOutputs[key] = {
|
|
219
|
-
...value,
|
|
220
|
-
output: stepOutputSample,
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
// Track the successful test (lazily initialize state so pre-existing APIs are tracked too)
|
|
225
|
-
clark.context.apiTestingState ??= {
|
|
226
|
-
untested: new Set(),
|
|
227
|
-
failed: new Set(),
|
|
228
|
-
passed: new Set(),
|
|
229
|
-
};
|
|
230
|
-
clark.context.apiTestingState.passed.add(apiName);
|
|
231
|
-
clark.context.apiTestingState.failed.delete(apiName);
|
|
232
|
-
return {
|
|
233
|
-
message: `API ${apiName} executed without throwing exceptions. This does NOT guarantee the outputs are correct - verify the data before showing success to the user.
|
|
234
|
-
If the API is meant to be run off a useEffect, call build_reloadFile to reload the appropriate file to propagate the changes to the UI.`,
|
|
235
|
-
result: {
|
|
236
|
-
...result,
|
|
237
|
-
stepOutputs,
|
|
238
|
-
outputs: outputSample,
|
|
239
|
-
},
|
|
240
|
-
apiName,
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
catch (error) {
|
|
244
|
-
logger.warn(`API execution failed for ${apiName}:`, getErrorMeta(error));
|
|
245
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
246
|
-
return {
|
|
247
|
-
message: `API execution failed for ${apiName}. The error details are included in the result below - analyze them to understand and fix the issue.
|
|
248
|
-
|
|
249
|
-
Error: ${errorMessage}`,
|
|
250
|
-
result: {
|
|
251
|
-
success: false,
|
|
252
|
-
systemError: errorMessage,
|
|
253
|
-
},
|
|
254
|
-
apiName,
|
|
255
|
-
};
|
|
378
|
+
clark.context.apiTestingState?.untested.delete(apiName);
|
|
379
|
+
if (services.features.sdkApiEnabled) {
|
|
380
|
+
return executeSdkApi({ apiName, inputs, clark, services, logger });
|
|
256
381
|
}
|
|
382
|
+
return executeYamlApi({
|
|
383
|
+
apiName,
|
|
384
|
+
inputs,
|
|
385
|
+
omitStepOutputs,
|
|
386
|
+
timeout,
|
|
387
|
+
clark,
|
|
388
|
+
services,
|
|
389
|
+
logger,
|
|
390
|
+
});
|
|
257
391
|
},
|
|
258
392
|
getSummary: (_input, output) => {
|
|
259
393
|
// Explicitly check for true - undefined/null means failure
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/test-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/test-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import type { Clark } from "../../state-machine/clark-fsm.js";
|
|
1
|
+
import type { Clark, ClarkStateHandlerParams } from "../../state-machine/clark-fsm.js";
|
|
2
|
+
export interface ScreenshotToolOutput {
|
|
3
|
+
dataUrl?: string;
|
|
4
|
+
shortLivedUrl?: string;
|
|
5
|
+
fileName?: string;
|
|
6
|
+
mimeType?: string;
|
|
7
|
+
expirationAt?: number;
|
|
8
|
+
message?: string;
|
|
9
|
+
}
|
|
2
10
|
export declare const buildCaptureScreenshotToolFactory: import("../tools2/types.js").ToolFactory<{
|
|
3
11
|
clark: Clark;
|
|
12
|
+
services: ClarkStateHandlerParams;
|
|
4
13
|
}, import("../tools2/types.js").Tool<{
|
|
5
14
|
selector?: string | undefined;
|
|
6
|
-
},
|
|
7
|
-
dataUrl: string;
|
|
8
|
-
message: string;
|
|
9
|
-
}>>;
|
|
15
|
+
}, ScreenshotToolOutput>>;
|
|
10
16
|
/**
|
|
11
17
|
* Validates a screenshot capture response and throws if invalid.
|
|
12
18
|
* @param response The response from the screenshot RPC call
|
|
@@ -23,9 +29,7 @@ export declare function validateScreenshotResponse(response: {
|
|
|
23
29
|
/**
|
|
24
30
|
* Converts screenshot tool output to model output format.
|
|
25
31
|
* Extracts base64 data from data URL and formats as content type with media.
|
|
26
|
-
*
|
|
27
|
-
* @param toolName Tool name prefix for logging (e.g., "build_captureScreenshot")
|
|
28
|
-
* @returns Formatted output for the model
|
|
32
|
+
* Idempotent: already-transformed outputs pass through unchanged.
|
|
29
33
|
*/
|
|
30
34
|
type ScreenshotModelOutput = {
|
|
31
35
|
type: "content";
|
|
@@ -41,8 +45,6 @@ type ScreenshotModelOutput = {
|
|
|
41
45
|
type: "error-text";
|
|
42
46
|
value: string;
|
|
43
47
|
};
|
|
44
|
-
export declare function screenshotToModelOutput(output:
|
|
45
|
-
dataUrl?: string;
|
|
46
|
-
} | ScreenshotModelOutput, toolName: string): ScreenshotModelOutput;
|
|
48
|
+
export declare function screenshotToModelOutput(output: ScreenshotToolOutput | ScreenshotModelOutput, toolName: string): ScreenshotModelOutput;
|
|
47
49
|
export {};
|
|
48
50
|
//# sourceMappingURL=build-capture-screenshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-capture-screenshot.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-capture-screenshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build-capture-screenshot.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-capture-screenshot.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,iCAAiC;WAMnC,KAAK;cACF,uBAAuB;;;yBAgKpC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EACjE,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CA0BrB;AAED;;;;GAIG;AACH,KAAK,qBAAqB,GACtB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,oBAAoB,GAAG,qBAAqB,EACpD,QAAQ,EAAE,MAAM,GACf,qBAAqB,CAiFvB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
import { safeJsonStringify } from "../../../util/log-sanitizer.js";
|
|
3
3
|
import { getErrorMeta, getPrefixedLogger } from "../../../util/logger.js";
|
|
4
|
+
import { uploadAttachmentToBucketeer } from "../../attachment-upload.js";
|
|
4
5
|
import { createToolFactory, ToolCategory, PermissionLevel, } from "../tools2/types.js";
|
|
5
|
-
export const buildCaptureScreenshotToolFactory = createToolFactory("build_captureScreenshot", ({ clark }) => {
|
|
6
|
+
export const buildCaptureScreenshotToolFactory = createToolFactory("build_captureScreenshot", ({ clark, services, }) => {
|
|
6
7
|
return {
|
|
7
8
|
category: ToolCategory.DEBUG,
|
|
8
9
|
defaultPermission: PermissionLevel.ALLOW,
|
|
@@ -69,6 +70,37 @@ export const buildCaptureScreenshotToolFactory = createToolFactory("build_captur
|
|
|
69
70
|
logger.info(`[build_captureScreenshot] Received RPC response after ${requestDuration}ms`);
|
|
70
71
|
const { dataUrl } = validateScreenshotResponse(response, "build_captureScreenshot");
|
|
71
72
|
logger.info(`[build_captureScreenshot] Successfully captured screenshot (${dataUrl.length} chars)`);
|
|
73
|
+
const jwt = clark.context.jwt;
|
|
74
|
+
if (jwt) {
|
|
75
|
+
try {
|
|
76
|
+
const uploadResult = await uploadAttachmentToBucketeer({
|
|
77
|
+
applicationId: services.applicationId,
|
|
78
|
+
file: { data: dataUrl, mimeType: "image/webp" },
|
|
79
|
+
prefix: "captured-screenshot",
|
|
80
|
+
superblocksBaseUrl: services.superblocksBaseUrl,
|
|
81
|
+
jwt,
|
|
82
|
+
logger,
|
|
83
|
+
});
|
|
84
|
+
logger.info(`[build_captureScreenshot] Uploaded to S3: ${uploadResult.fileName}`);
|
|
85
|
+
return {
|
|
86
|
+
dataUrl,
|
|
87
|
+
fileName: uploadResult.fileName,
|
|
88
|
+
shortLivedUrl: uploadResult.url,
|
|
89
|
+
mimeType: "image/webp",
|
|
90
|
+
expirationAt: uploadResult.expirationDate,
|
|
91
|
+
message: `Successfully captured screenshot.
|
|
92
|
+
REMINDER: Before making any conclusions, check this screenshot for loading indicators (skeletons, spinners, empty tables/charts, grey placeholder boxes). If ANY are visible, you MUST wait a few seconds and take another screenshot — do NOT treat a loading-state screenshot as the final result.
|
|
93
|
+
If the screenshot is blank, check error logs. If there is nothing reported, consider using the reloadFile tool to reload the entire app.`,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
catch (uploadError) {
|
|
97
|
+
logger.warn(`[build_captureScreenshot] S3 upload failed, falling back to base64`, getErrorMeta(uploadError));
|
|
98
|
+
// Fall through to base64 fallback
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
logger.warn(`[build_captureScreenshot] No JWT available, falling back to base64`);
|
|
103
|
+
}
|
|
72
104
|
return {
|
|
73
105
|
dataUrl,
|
|
74
106
|
message: `Successfully captured screenshot.
|
|
@@ -134,7 +166,6 @@ export function screenshotToModelOutput(output, toolName) {
|
|
|
134
166
|
return output;
|
|
135
167
|
}
|
|
136
168
|
if ("dataUrl" in output && output.dataUrl !== undefined) {
|
|
137
|
-
// Extract base64 data from data URL
|
|
138
169
|
const dataUrl = output.dataUrl;
|
|
139
170
|
if (typeof dataUrl !== "string") {
|
|
140
171
|
logger.debug(`dataUrl is missing or invalid. Output: ${safeJsonStringify(output)}`);
|
|
@@ -146,7 +177,6 @@ export function screenshotToModelOutput(output, toolName) {
|
|
|
146
177
|
const parts = dataUrl.split(",");
|
|
147
178
|
if (parts.length < 2) {
|
|
148
179
|
logger.debug(`data URL format is unexpected. dataUrl length: ${dataUrl.length}`);
|
|
149
|
-
// Fallback if data URL format is unexpected
|
|
150
180
|
return {
|
|
151
181
|
type: "text",
|
|
152
182
|
value: "Screenshot captured (data URL format error)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-capture-screenshot.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-capture-screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-capture-screenshot.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-capture-screenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-debug.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build-debug.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-debug.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,eAAO,MAAM,qBAAqB;WAMvB,KAAK;cACF,uBAAuB;yFA0QpC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import z from "zod";
|
|
|
4
4
|
import { needsAppProviderFixInAppTsx } from "../../../ensure-app-provider.js";
|
|
5
5
|
import { getLogger } from "../../../util/logger.js";
|
|
6
6
|
import { Paths } from "../../const.js";
|
|
7
|
-
import { createToolFactory, ToolCategory } from "../tools2/types.js";
|
|
7
|
+
import { createToolFactory, ToolCategory, ToolExecutionError, } from "../tools2/types.js";
|
|
8
8
|
import { debugCache, createTypeScriptCheckFunction, createRuntimeAndBuildErrorsFunction, } from "./debug-cache.js";
|
|
9
9
|
export const buildDebugToolFactory = createToolFactory("build_debug", ({ clark, services, }) => {
|
|
10
10
|
return {
|
|
@@ -132,8 +132,13 @@ export const buildDebugToolFactory = createToolFactory("build_debug", ({ clark,
|
|
|
132
132
|
const untestedList = Array.from(untestedApis)
|
|
133
133
|
.map((api) => ` - ${api}`)
|
|
134
134
|
.join("\n");
|
|
135
|
-
throw new
|
|
136
|
-
"You must call testApi for each untested API before finalizing."
|
|
135
|
+
throw new ToolExecutionError(`${untestedApis.size} API(s) have not been tested yet:\n${untestedList}\n\n` +
|
|
136
|
+
"You must call testApi for each untested API before finalizing.", {
|
|
137
|
+
toolName: "build_debug",
|
|
138
|
+
input: {},
|
|
139
|
+
context: {},
|
|
140
|
+
severity: "warn",
|
|
141
|
+
});
|
|
137
142
|
}
|
|
138
143
|
// Add warning about failed API tests
|
|
139
144
|
const failedApiTests = clark.context.apiTestingState?.failed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-debug.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"build-debug.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-edit-file.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-edit-file.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAqChF,MAAM,MAAM,QAAQ,GAAG,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,KACT,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAEtC,eAAO,MAAM,cAAc,EAAE,QAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAkCjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAyGjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,QAkD1C,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,QA6BzC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QA8CtC,CAAC;AAwCF,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,UAAQ,GACjB,MAAM,CA2CR;AAED,eAAO,MAAM,wBAAwB;WAM1B,KAAK;cACF,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"build-edit-file.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-edit-file.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAqChF,MAAM,MAAM,QAAQ,GAAG,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,KACT,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAEtC,eAAO,MAAM,cAAc,EAAE,QAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAkCjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAyGjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,QAkD1C,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,QA6BzC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QA8CtC,CAAC;AAwCF,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,UAAQ,GACjB,MAAM,CA2CR;AAED,eAAO,MAAM,wBAAwB;WAM1B,KAAK;cACF,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;GA6KtD,CAAC"}
|
|
@@ -365,12 +365,22 @@ export const buildEditFileToolFactory = createToolFactory("build_editFile", ({ c
|
|
|
365
365
|
}),
|
|
366
366
|
execute: async ({ filePath, oldString, newString, replaceAll = false, }) => {
|
|
367
367
|
if (!filePath) {
|
|
368
|
-
throw new
|
|
368
|
+
throw new ToolExecutionError("filePath is required", {
|
|
369
|
+
toolName: "build_editFile",
|
|
370
|
+
input: {},
|
|
371
|
+
context: {},
|
|
372
|
+
severity: "warn",
|
|
373
|
+
});
|
|
369
374
|
}
|
|
370
375
|
// Prevent editing API source code - use writeApi + buildApi instead
|
|
371
376
|
// Match apis/*.ts but not apis/*.d.ts (type definitions are allowed)
|
|
372
377
|
if (/^apis\/[^/]+\.ts$/.test(filePath) && !filePath.endsWith(".d.ts")) {
|
|
373
|
-
throw new
|
|
378
|
+
throw new ToolExecutionError(`Cannot edit API source code directly. Use the writeApi tool to modify "${filePath}", then buildApi to compile and validate it.`, {
|
|
379
|
+
toolName: "build_editFile",
|
|
380
|
+
input: { filePath },
|
|
381
|
+
context: {},
|
|
382
|
+
severity: "warn",
|
|
383
|
+
});
|
|
374
384
|
}
|
|
375
385
|
if (oldString === newString) {
|
|
376
386
|
throw new ToolExecutionError("oldString and newString must be different", { toolName: "", input: {}, context: {}, severity: "warn" });
|