@blackbox_ai/blackbox-cli-core 0.0.9 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -183
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/src/blackbox/blackboxOAuth2.js +17 -1
- package/dist/src/blackbox/blackboxOAuth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +15 -3
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/config/blackboxModels.d.ts +3 -2
- package/dist/src/config/blackboxModels.js +262 -33
- package/dist/src/config/blackboxModels.js.map +1 -1
- package/dist/src/config/config.d.ts +65 -0
- package/dist/src/config/config.js +282 -17
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/models.d.ts +1 -1
- package/dist/src/config/models.js +1 -1
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/multiAgentModels.d.ts +63 -0
- package/dist/src/config/multiAgentModels.js +194 -0
- package/dist/src/config/multiAgentModels.js.map +1 -0
- package/dist/src/core/client.js +8 -2
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +1 -0
- package/dist/src/core/contentGenerator.js +57 -7
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/encryptedClientFactory.d.ts +17 -0
- package/dist/src/core/encryptedClientFactory.js +92 -0
- package/dist/src/core/encryptedClientFactory.js.map +1 -0
- package/dist/src/core/encryptedContentGenerator.d.ts +47 -0
- package/dist/src/core/encryptedContentGenerator.js +445 -0
- package/dist/src/core/encryptedContentGenerator.js.map +1 -0
- package/dist/src/core/encryptedGeminiClient.d.ts +59 -0
- package/dist/src/core/encryptedGeminiClient.js +177 -0
- package/dist/src/core/encryptedGeminiClient.js.map +1 -0
- package/dist/src/core/encryptedGeminiClientBridge.d.ts +107 -0
- package/dist/src/core/encryptedGeminiClientBridge.js +808 -0
- package/dist/src/core/encryptedGeminiClientBridge.js.map +1 -0
- package/dist/src/core/encryptedGeminiClientWrapper.d.ts +129 -0
- package/dist/src/core/encryptedGeminiClientWrapper.js +305 -0
- package/dist/src/core/encryptedGeminiClientWrapper.js.map +1 -0
- package/dist/src/core/encryptedTurn.d.ts +40 -0
- package/dist/src/core/encryptedTurn.js +114 -0
- package/dist/src/core/encryptedTurn.js.map +1 -0
- package/dist/src/core/logger.d.ts +21 -0
- package/dist/src/core/logger.js +110 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/constants.d.ts +2 -0
- package/dist/src/core/openaiContentGenerator/constants.js +2 -0
- package/dist/src/core/openaiContentGenerator/constants.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/converter.d.ts +16 -1
- package/dist/src/core/openaiContentGenerator/converter.js +135 -4
- package/dist/src/core/openaiContentGenerator/converter.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/pipeline.js +6 -2
- package/dist/src/core/openaiContentGenerator/pipeline.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/provider/default.js +10 -1
- package/dist/src/core/openaiContentGenerator/provider/default.js.map +1 -1
- package/dist/src/core/prompts.d.ts +17 -0
- package/dist/src/core/prompts.js +347 -19
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/tokenLimits.d.ts +1 -0
- package/dist/src/core/tokenLimits.js +37 -2
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/tokenLimits.test.js +36 -1
- package/dist/src/core/tokenLimits.test.js.map +1 -1
- package/dist/src/encrypt/attestation.d.ts +5 -0
- package/dist/src/encrypt/attestation.js +100 -0
- package/dist/src/encrypt/attestation.js.map +1 -0
- package/dist/src/encrypt/client.d.ts +14 -0
- package/dist/src/encrypt/client.js +132 -0
- package/dist/src/encrypt/client.js.map +1 -0
- package/dist/src/encrypt/config.d.ts +22 -0
- package/dist/src/encrypt/config.js +43 -0
- package/dist/src/encrypt/config.js.map +1 -0
- package/dist/src/encrypt/crypto-utils.d.ts +57 -0
- package/dist/src/encrypt/crypto-utils.js +257 -0
- package/dist/src/encrypt/crypto-utils.js.map +1 -0
- package/dist/src/encrypt/history-manager.d.ts +43 -0
- package/dist/src/encrypt/history-manager.js +164 -0
- package/dist/src/encrypt/history-manager.js.map +1 -0
- package/dist/src/encrypt/minimax-template.d.ts +73 -0
- package/dist/src/encrypt/minimax-template.js +276 -0
- package/dist/src/encrypt/minimax-template.js.map +1 -0
- package/dist/src/encrypt/sessions.d.ts +17 -0
- package/dist/src/encrypt/sessions.js +221 -0
- package/dist/src/encrypt/sessions.js.map +1 -0
- package/dist/src/encrypt/streaming-client.d.ts +29 -0
- package/dist/src/encrypt/streaming-client.js +232 -0
- package/dist/src/encrypt/streaming-client.js.map +1 -0
- package/dist/src/encrypt/tool-formatter.d.ts +36 -0
- package/dist/src/encrypt/tool-formatter.js +353 -0
- package/dist/src/encrypt/tool-formatter.js.map +1 -0
- package/dist/src/encrypt/tool-parser.d.ts +93 -0
- package/dist/src/encrypt/tool-parser.js +567 -0
- package/dist/src/encrypt/tool-parser.js.map +1 -0
- package/dist/src/encrypt/types.d.ts +81 -0
- package/dist/src/encrypt/types.js +2 -0
- package/dist/src/encrypt/types.js.map +1 -0
- package/dist/src/generated/git-commit.d.ts +3 -3
- package/dist/src/generated/git-commit.js +3 -3
- package/dist/src/ide/ide-client.js +9 -19
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.js +15 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +2 -6
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.d.ts +7 -0
- package/dist/src/mcp/oauth-token-storage.js +24 -0
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/services/EncryptedChatService.d.ts +80 -0
- package/dist/src/services/EncryptedChatService.js +202 -0
- package/dist/src/services/EncryptedChatService.js.map +1 -0
- package/dist/src/services/StatsHistoryService.d.ts +131 -0
- package/dist/src/services/StatsHistoryService.js +427 -0
- package/dist/src/services/StatsHistoryService.js.map +1 -0
- package/dist/src/services/checkpointApiService.d.ts +101 -0
- package/dist/src/services/checkpointApiService.js +215 -0
- package/dist/src/services/checkpointApiService.js.map +1 -0
- package/dist/src/services/environmentSanitization.d.ts +24 -0
- package/dist/src/services/environmentSanitization.js +152 -0
- package/dist/src/services/environmentSanitization.js.map +1 -0
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.d.ts +2 -6
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.js +29 -135
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.js.map +1 -1
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js +1 -1
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +8 -0
- package/dist/src/telemetry/uiTelemetry.js +17 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/tools/browser-interactive.d.ts +63 -0
- package/dist/src/tools/browser-interactive.js +394 -0
- package/dist/src/tools/browser-interactive.js.map +1 -0
- package/dist/src/tools/browser_use.d.ts +22 -1
- package/dist/src/tools/browser_use.js +403 -23
- package/dist/src/tools/browser_use.js.map +1 -1
- package/dist/src/tools/data-file-constants.d.ts +17 -0
- package/dist/src/tools/data-file-constants.js +30 -0
- package/dist/src/tools/data-file-constants.js.map +1 -0
- package/dist/src/tools/edit.js +44 -7
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/ls.js +40 -6
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +4 -4
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +28 -2
- package/dist/src/tools/mcp-client-manager.js +62 -4
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +5 -3
- package/dist/src/tools/mcp-client.js +39 -11
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +3 -1
- package/dist/src/tools/mcp-tool.js +37 -9
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +14 -4
- package/dist/src/tools/memoryTool.js +98 -39
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-data-file.d.ts +31 -0
- package/dist/src/tools/read-data-file.js +469 -0
- package/dist/src/tools/read-data-file.js.map +1 -0
- package/dist/src/tools/read-file.js +64 -5
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +40 -6
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +3 -1
- package/dist/src/tools/shell.js +25 -4
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/skill.d.ts +34 -0
- package/dist/src/tools/skill.js +143 -0
- package/dist/src/tools/skill.js.map +1 -0
- package/dist/src/tools/sql_db.d.ts +101 -0
- package/dist/src/tools/sql_db.js +1033 -0
- package/dist/src/tools/sql_db.js.map +1 -0
- package/dist/src/tools/sql_db_configure.d.ts +18 -0
- package/dist/src/tools/sql_db_configure.js +96 -0
- package/dist/src/tools/sql_db_configure.js.map +1 -0
- package/dist/src/tools/taskCompletion.d.ts +29 -0
- package/dist/src/tools/taskCompletion.js +231 -0
- package/dist/src/tools/taskCompletion.js.map +1 -0
- package/dist/src/tools/tool-error.d.ts +3 -1
- package/dist/src/tools/tool-error.js +3 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +8 -0
- package/dist/src/tools/tool-names.js +8 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +22 -0
- package/dist/src/tools/tool-registry.js +41 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +18 -2
- package/dist/src/tools/tools.js +3 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +24 -4
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.js +160 -2
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/workspace-error-helper.d.ts +9 -0
- package/dist/src/tools/workspace-error-helper.js +43 -0
- package/dist/src/tools/workspace-error-helper.js.map +1 -0
- package/dist/src/tools/workspace-error-helper.test.js +85 -0
- package/dist/src/tools/workspace-error-helper.test.js.map +1 -0
- package/dist/src/tools/write-file.js +42 -7
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/utils/environmentContext.js +3 -1
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +3 -2
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +3 -1
- package/dist/src/utils/fetch.js +35 -2
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fileUtils.js +30 -3
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
- package/dist/src/utils/filesearch/fileSearch.js +38 -7
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/git-worktree-utils.d.ts +56 -0
- package/dist/src/utils/git-worktree-utils.js +176 -0
- package/dist/src/utils/git-worktree-utils.js.map +1 -0
- package/dist/src/utils/imageCompression.d.ts +34 -0
- package/dist/src/utils/imageCompression.js +170 -0
- package/dist/src/utils/imageCompression.js.map +1 -0
- package/dist/src/utils/messageTruncator.d.ts +51 -0
- package/dist/src/utils/messageTruncator.js +346 -0
- package/dist/src/utils/messageTruncator.js.map +1 -0
- package/dist/src/utils/pathReader.js +26 -6
- package/dist/src/utils/pathReader.js.map +1 -1
- package/dist/src/utils/skill.d.ts +65 -0
- package/dist/src/utils/skill.js +241 -0
- package/dist/src/utils/skill.js.map +1 -0
- package/dist/src/utils/textCleaning.d.ts +51 -0
- package/dist/src/utils/textCleaning.js +327 -0
- package/dist/src/utils/textCleaning.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -2
- package/dist/src/tools/mcp-client-manager.test.js +0 -39
- package/dist/src/tools/mcp-client-manager.test.js.map +0 -1
- package/dist/src/tools/mcp-client.test.d.ts +0 -6
- package/dist/src/tools/mcp-client.test.js +0 -454
- package/dist/src/tools/mcp-client.test.js.map +0 -1
- package/dist/src/tools/mcp-tool.test.d.ts +0 -6
- package/dist/src/tools/mcp-tool.test.js +0 -576
- package/dist/src/tools/mcp-tool.test.js.map +0 -1
- package/dist/src/tools/memoryTool.test.d.ts +0 -6
- package/dist/src/tools/memoryTool.test.js +0 -420
- package/dist/src/tools/memoryTool.test.js.map +0 -1
- package/dist/src/tools/tool-registry.test.d.ts +0 -6
- package/dist/src/tools/tool-registry.test.js +0 -332
- package/dist/src/tools/tool-registry.test.js.map +0 -1
- /package/dist/src/tools/{mcp-client-manager.test.d.ts → workspace-error-helper.test.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/core/openaiContentGenerator/pipeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/core/openaiContentGenerator/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,18 @@ export class DefaultOpenAICompatibleProvider {
|
|
|
13
13
|
buildHeaders() {
|
|
14
14
|
const version = this.cliConfig.getCliVersion() || 'unknown';
|
|
15
15
|
const userAgent = `BlackboxCode/${version} (${process.platform}; ${process.arch})`;
|
|
16
|
-
|
|
16
|
+
const baseHeaders = {
|
|
17
17
|
'User-Agent': userAgent,
|
|
18
18
|
};
|
|
19
|
+
// Merge custom headers from config if available
|
|
20
|
+
const customHeaders = this.contentGeneratorConfig.customHeaders;
|
|
21
|
+
if (customHeaders && typeof customHeaders === 'object') {
|
|
22
|
+
return {
|
|
23
|
+
...baseHeaders,
|
|
24
|
+
...customHeaders,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return baseHeaders;
|
|
19
28
|
}
|
|
20
29
|
buildClient() {
|
|
21
30
|
const { apiKey, baseUrl, timeout = DEFAULT_TIMEOUT, maxRetries = DEFAULT_MAX_RETRIES, } = this.contentGeneratorConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../../../src/core/openaiContentGenerator/provider/default.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGvE;;GAEG;AACH,MAAM,OAAO,+BAA+B;IAGhC,sBAAsB,CAAyB;IAC/C,SAAS,CAAS;IAE5B,YACE,sBAA8C,EAC9C,SAAiB;QAEjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,SAAS,CAAC;QAC5D,MAAM,SAAS,GAAG,gBAAgB,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../../../src/core/openaiContentGenerator/provider/default.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGvE;;GAEG;AACH,MAAM,OAAO,+BAA+B;IAGhC,sBAAsB,CAAyB;IAC/C,SAAS,CAAS;IAE5B,YACE,sBAA8C,EAC9C,SAAiB;QAEjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,SAAS,CAAC;QAC5D,MAAM,SAAS,GAAG,gBAAgB,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,GAAG,CAAC;QAEnF,MAAM,WAAW,GAAuC;YACtD,YAAY,EAAE,SAAS;SACxB,CAAC;QAEF,gDAAgD;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC;QAChE,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO;gBACL,GAAG,WAAW;gBACd,GAAG,aAAa;aACjB,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,WAAW;QACT,MAAM,EACJ,MAAM,EACN,OAAO,EACP,OAAO,GAAG,eAAe,EACzB,UAAU,GAAG,mBAAmB,GACjC,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,IAAI,MAAM,CAAC;YAChB,MAAM;YACN,OAAO,EAAE,OAAO;YAChB,OAAO;YACP,UAAU;YACV,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CACV,OAA+C,EAC/C,aAAqB;QAErB,uFAAuF;QACvF,OAAO;YACL,GAAG,OAAO,EAAE,6DAA6D;SAC1E,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -51,6 +51,23 @@ export declare function getProjectSummaryPrompt(): string;
|
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
53
|
export declare function getSubagentSystemReminder(agentTypes: string[]): string;
|
|
54
|
+
/**
|
|
55
|
+
* Generates a system reminder message about available skills for the AI assistant.
|
|
56
|
+
*
|
|
57
|
+
* This function creates an internal system message that informs the AI about specialized
|
|
58
|
+
* skills available in the workspace. The reminder encourages proactive use of the skill tool
|
|
59
|
+
* when user requests match skill capabilities.
|
|
60
|
+
*
|
|
61
|
+
* @param availableSkills - Formatted string of available skills with names and descriptions
|
|
62
|
+
* @returns A formatted system reminder string wrapped in XML tags for internal AI processing
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const reminder = getSkillSystemReminder(skillsList);
|
|
67
|
+
* // Returns: "<system-reminder>You have specialized skills available..."
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function getSkillSystemReminder(availableSkills: string): string;
|
|
54
71
|
/**
|
|
55
72
|
* Generates a system reminder message for plan mode operation.
|
|
56
73
|
*
|
package/dist/src/core/prompts.js
CHANGED
|
@@ -122,11 +122,11 @@ export function getCoreSystemPrompt(userMemory, config, model, isNonInteractive
|
|
|
122
122
|
You are Blackbox, an interactive CLI agent developed by Blackbox, specializing in software engineering tasks. Your primary goal is to help users safely and efficiently, adhering strictly to the following instructions and utilizing your available tools.
|
|
123
123
|
|
|
124
124
|
# Primary Workflows
|
|
125
|
-
|
|
126
|
-
##
|
|
127
|
-
When requested to
|
|
125
|
+
## [MANDATORY] Always provide the plan to the user before making any changes to the codebase.
|
|
126
|
+
## Existing Applications
|
|
127
|
+
When requested to tasks—such as fixing bugs, adding features, refactoring, or making any other changes—the agent should follow the iterative approach outlined below:
|
|
128
128
|
- **Explore Project:** Read files that are directly relevant to the user’s task or necessary for accurate planning and understanding of the task. Always read package.json or other appropriate package definition files to identify dependencies and scripts. Use '${ToolNames.GREP}', '${ToolNames.GLOB}', '${ToolNames.READ_FILE}', and '${ToolNames.READ_MANY_FILES}' tools strategically
|
|
129
|
-
- **Propose Plan:** After understanding the user's request, create a detailed plan based on the exploration and present the plan with ${ToolNames.EXIT_PLAN_MODE} tool.
|
|
129
|
+
- **Propose Plan [MANDATORY]:** After understanding the user's request, create a detailed plan based on the exploration and present the plan with ${ToolNames.EXIT_PLAN_MODE} tool.
|
|
130
130
|
- Provide a detailed and accurate plan with all the dependent files/changes. YOU MUST STRICTLY use proper markdown to format the plan and present your plan by calling the ${ToolNames.EXIT_PLAN_MODE} tool. Make sure you follow the below guidelines:
|
|
131
131
|
- Important: Your plan should have these sections - information gathered , changes to be done , implementation details and testing details.
|
|
132
132
|
- Start the plan with your current understanding of the task at hand and the project.
|
|
@@ -139,9 +139,9 @@ When requested to perform tasks like fixing bugs, adding features, refactoring,
|
|
|
139
139
|
- **Verify (Tests):** Verify the changes using the project's testing procedures. Identify the correct test commands and frameworks by examining 'README' files, build/package configuration (e.g., 'package.json'), or existing test execution patterns. NEVER assume standard test commands.
|
|
140
140
|
- Do functional testing of the changes to ensure the implementation is successful and working accurately.
|
|
141
141
|
- If the task involves frontend changes , test the application in the browser to ensure the frontend changes are working.
|
|
142
|
-
- **Verify (Standards):** VERY IMPORTANT: After making code changes, execute the project-specific build, linting and type-checking commands (e.g., 'tsc', 'npm run lint', 'ruff check .') that you have identified for this project (or obtained from the user). This ensures code quality and adherence to standards
|
|
142
|
+
- **Verify (Standards):** VERY IMPORTANT: After making code changes, execute the project-specific build, linting and type-checking commands (e.g., 'tsc', 'npm run lint', 'ruff check .') that you have identified for this project (or obtained from the user). This ensures code quality and adherence to standards.${isNonInteractive ? '' : ' If unsure about these commands, you can ask the user if they\'d like you to run them and if so how to.'}
|
|
143
143
|
|
|
144
|
-
**Key Principle:** Users prefer seeing progress quickly rather than waiting long,
|
|
144
|
+
**Key Principle:** Users prefer seeing progress quickly rather than waiting long, Start with exploration of only necessary files relevant to the task necessary for the planning.
|
|
145
145
|
|
|
146
146
|
## Question / Understanding tasks:
|
|
147
147
|
- For tasks related to explaining code files , repository follow all the steps in software engineering tasks except the planning step.
|
|
@@ -152,7 +152,7 @@ When requested to perform tasks like fixing bugs, adding features, refactoring,
|
|
|
152
152
|
|
|
153
153
|
**Goal:** Autonomously implement and deliver a visually appealing, substantially complete, and functional prototype. Utilize all tools at your disposal to implement the application. Some tools you may especially find useful are '${ToolNames.WRITE_FILE}', '${ToolNames.EDIT}' and '${ToolNames.SHELL}'.
|
|
154
154
|
|
|
155
|
-
1. **Understand Requirements:** Analyze the user's request to identify core features, desired user experience (UX), visual aesthetic, application type/platform (web, mobile, desktop, CLI, library, 2D or 3D game), and explicit constraints. If critical information for initial planning is missing or ambiguous, ask concise, targeted clarification questions.
|
|
155
|
+
1. **Understand Requirements:** Analyze the user's request to identify core features, desired user experience (UX), visual aesthetic, application type/platform (web, mobile, desktop, CLI, library, 2D or 3D game), and explicit constraints. ${isNonInteractive ? 'If critical information is missing, make reasonable assumptions based on best practices and common patterns, and document these assumptions in your plan.' : 'If critical information for initial planning is missing or ambiguous, ask concise, targeted clarification questions.'}
|
|
156
156
|
2. **Propose Plan:** Formulate an internal development plan. Present a clear, concise, high-level summary to the user. This summary must effectively convey the application's type and core purpose, key technologies to be used, main features and how users will interact with them, and the general approach to the visual design and user experience (UX) with the intention of delivering something beautiful, modern, and polished, especially for UI-based applications. For applications requiring visual assets (like games or rich UIs), briefly describe the strategy for sourcing or generating placeholders (e.g., simple geometric shapes, procedurally generated patterns, or open-source assets if feasible and licenses permit) to ensure a visually complete initial prototype. Ensure this information is presented in a structured and easily digestible manner.
|
|
157
157
|
- When key technologies aren't specified, prefer the following:
|
|
158
158
|
- **Websites (Frontend):** React (JavaScript/TypeScript), leverage Tailwind CSS for an efficient, scalable, and modern frontend workflow with shadcn components. Create beautiful, responsive designs using Tailwind's utility classes.
|
|
@@ -176,6 +176,68 @@ When requested to perform tasks like fixing bugs, adding features, refactoring,
|
|
|
176
176
|
- Follow current web design trends while maintaining usability
|
|
177
177
|
- Verify all UI elements (such as buttons, images, and containers) are properly aligned and rendered within their intended boundaries across different devices and browsers.
|
|
178
178
|
|
|
179
|
+
- Guidelines for React App Creation (Tailwind + Recharts)
|
|
180
|
+
**Setup:** \`npx create-react-app name && npm i -D tailwindcss@3.4.1 postcss autoprefixer postcss-flexbugs-fixes postcss-preset-env && npm i recharts xlsx mammoth papaparse\`
|
|
181
|
+
|
|
182
|
+
**tailwind.config.js:** \`module.exports = { content: ["./src/**/*.{js,jsx,ts,tsx}"], darkMode: 'class', theme: { extend: {} }, plugins: [] }\`
|
|
183
|
+
|
|
184
|
+
**postcss.config.js:** \`module.exports = { plugins: { tailwindcss: {}, autoprefixer: {} } }\`
|
|
185
|
+
|
|
186
|
+
**src/index.css:** Add \`@tailwind base; @tailwind components; @tailwind utilities;\` at top
|
|
187
|
+
|
|
188
|
+
**Avoid:** Tailwind v4, @tailwindcss/postcss, 'group' in @apply, hardcoded data, .slice(0,N), CSS vars on Recharts
|
|
189
|
+
|
|
190
|
+
**Requirements:** Process ALL rows (no .slice() limits), fetch from file (never hardcode), useMemo for calculations, filters, tooltips, responsive design, dark mode.
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
- **Data Analysis and Visualization:** For data analysis requests, use '${ToolNames.READ_DATA_FILE}' then write analysis scripts (Python/JS) that process ALL data iteratively, detect patterns/structure changes, generate statistics, save to JSON, then create PDF visualizations with charts. Do NOT create React dashboards unless explicitly requested by the user.
|
|
194
|
+
|
|
195
|
+
When user asks for analysis of data files (CSV, XLSX, JSON, DOCX) OR database connection strings (PostgreSQL, MySQL, MongoDB, SQLite, etc.), follow these guidelines strictly and create PDF visualization reports (NOT React apps) using the following best practices:
|
|
196
|
+
|
|
197
|
+
**Data Source Support:**
|
|
198
|
+
- **Files**: Use '${ToolNames.READ_DATA_FILE}' for CSV, XLSX, JSON, DOCX, TXT files
|
|
199
|
+
- **Databases**:
|
|
200
|
+
- For all database analysis requests from the user, you should use db tools to connect and run your queries.
|
|
201
|
+
- If the user didn't provide the db connection uri in the chat, You should always start by invoking '${ToolNames.SQL_DB_CONFIGURE}'.This will let the user configure securely the DB_CONNECTION_URI env variable used in further step.
|
|
202
|
+
- Upon successful DB configuration / user directly sharing the connection URI. Use '${ToolNames.SQL_DB_CONNECT}' and '${ToolNames.SQL_DB_QUERY}' tools to connect to PostgreSQL, MySQL, MongoDB, or Redis databases and query data. Specify the database type ('postgres', 'mysql', 'mongodb', or 'redis') when connecting.
|
|
203
|
+
- For MongoDB queries, use JSON format: {"collection":"name","operation":"find","query":{...},"options":{...}}
|
|
204
|
+
- For Redis queries, use JSON format: {"command":"GET","args":["key"]}
|
|
205
|
+
- Write Python scripts for other databases not supported by these tools. Always fetch ALL data and handle connection errors with try-except blocks.
|
|
206
|
+
- Unless explicitly asked, no need for creating visualization / pdf report for db analysis requests.
|
|
207
|
+
|
|
208
|
+
- IMPORTANT FOR DATABASES, since sometimes data can be very large, which can exceed context limit first you need to check how much data is there in the db in the first analysis and then decide with the next steps. On how to extract the data.
|
|
209
|
+
|
|
210
|
+
**PDF Image generation (Python):** When analyzing data, ALWAYS generate beautiful dashboard images and compile them into a visual PDF report:
|
|
211
|
+
- Install: \`pip install matplotlib seaborn plotly pandas kaleido pillow reportlab\` or \`pip install matplotlib seaborn plotly pandas fpdf2\`
|
|
212
|
+
- Create exhaustive visualizations: bar charts, line plots, scatter plots, heatmaps, pie charts, distribution plots, correlation matrices, box plots, violin plots, pair plots, time series, etc.
|
|
213
|
+
- Apply professional styling: seaborn themes (\`sns.set_style('whitegrid')\`), color palettes, proper labels, titles, legends
|
|
214
|
+
- Create multi-panel dashboards using \`plt.subplots()\` or \`plotly.make_subplots()\` for comprehensive views
|
|
215
|
+
- Save individual chart images temporarily (PNG format, 300 DPI) using \`plt.savefig()\` or \`fig.write_image()\`
|
|
216
|
+
- Generate a visual PDF report (e.g., 'visualizations_report.pdf') that is MOSTLY CHARTS with minimal text - just brief chart titles/labels
|
|
217
|
+
- The PDF should focus on visual dashboards (one or multiple charts per page) with minimal descriptive text since detailed text analysis is saved separately
|
|
218
|
+
- ALWAYS create the final PDF report as the primary visual deliverable - pack it with as many relevant visualizations as possible
|
|
219
|
+
|
|
220
|
+
**IMPORTANT:** For data analysis, use Python scripts with PDF output. Do NOT create React apps with Recharts unless the user explicitly asks for an interactive dashboard or web application.
|
|
221
|
+
|
|
222
|
+
- If Asked for analysis you must create PDF, analysis file using the following guidelines:
|
|
223
|
+
**Data Analysis - MANDATORY:**
|
|
224
|
+
1. Use read_data_file for initial structure (for files) OR write Python script to connect to database (for connection strings)
|
|
225
|
+
2. Write analyze_data.py (for ANY file: CSV/XLSX/JSON/DOCX OR database connection string)
|
|
226
|
+
3. Analysis must be iterative - discover patterns progressively:
|
|
227
|
+
- Phase 1: Load complete file/database, discover structure (Understand columns, data types)
|
|
228
|
+
- Edit analyze_data.py again to implement from previous findings:
|
|
229
|
+
- Phase 2: Deep analysis (unique values, stats, patterns)
|
|
230
|
+
- Edit analyze_data.py again from previous findings to implement:
|
|
231
|
+
- Phase 3: Detect structure changes, find groupings
|
|
232
|
+
- Edit analyze_data.py again from previous findings to implement:
|
|
233
|
+
- Phase 4: Save insights to your json file.
|
|
234
|
+
- Do this until you have comprehensive understanding of the data. And then proceed to create PDF visualizations and a anaylsis.md with all of the analysis that you have.
|
|
235
|
+
|
|
236
|
+
4. Create BOTH deliverables: (a) PDF visualization report with exhaustive charts, and analysis.md with detailed textual analysis.
|
|
237
|
+
5. Never use sample - always process complete file/database
|
|
238
|
+
6. Never give text summaries - always create code
|
|
239
|
+
7. Do NOT create React dashboards unless explicitly requested
|
|
240
|
+
|
|
179
241
|
3. ${isNonInteractive ? '' : '**User Approval:** Obtain user approval for the proposed plan.'}
|
|
180
242
|
4. **Implementation:** Use the '${ToolNames.TODO_WRITE}' tool to convert the approved plan into a structured todo list with all the important steps from the plan, then autonomously implement each task utilizing all available tools. When starting ensure you scaffold the application using '${ToolNames.SHELL}' for commands like 'npm init', 'npx create-react-app'. Aim for full scope completion. Proactively create or source necessary placeholder assets (e.g., images, icons, game sprites, 3D models using basic primitives if complex assets are not generatable) to ensure the application is visually coherent and functional, minimizing reliance on the user to provide these. If the model can generate simple assets (e.g., a uniformly colored square sprite, a simple 3D cube), it should do so. Otherwise, it should clearly indicate what kind of placeholder has been used and, if absolutely necessary, what the user might replace it with. Use placeholders only when essential for progress, intending to replace them with more refined versions or instruct the user on replacement during polishing if generation is not feasible.
|
|
181
243
|
5. **Verify:** Review work against the original request, the approved plan. Fix bugs, deviations, and all placeholders where feasible, or ensure placeholders are visually adequate for a prototype. Ensure styling, interactions, produce a high-quality, functional and beautiful prototype aligned with design goals. Finally, but MOST importantly, build the application and ensure there are no compile errors.
|
|
@@ -189,12 +251,125 @@ ${isNonInteractive ? '' : '7. **Solicit Feedback:** If still applicable, provide
|
|
|
189
251
|
- Test the changes using the project's testing procedures. Identify the correct test commands and frameworks by examining 'README' files, build/package configuration (e.g., 'package.json'), or existing test execution patterns. NEVER assume standard test commands.
|
|
190
252
|
- Do functional testing of the changes to ensure the implementation is successful and working accurately.
|
|
191
253
|
|
|
254
|
+
## API Endpoint Testing
|
|
255
|
+
When the task involves backend API changes, new endpoints, or API modifications, perform comprehensive endpoint testing to ensure correctness and reliability:
|
|
256
|
+
|
|
257
|
+
### Endpoint Discovery
|
|
258
|
+
- Identify API endpoints by examining route files (e.g., Express routes, FastAPI routers, Django urls.py), API documentation (OpenAPI/Swagger specs), or README files
|
|
259
|
+
- Look for endpoint definitions in framework-specific locations based on the project structure
|
|
260
|
+
- Check for existing API test files or collections (Postman, Insomnia, etc.) that document available endpoints
|
|
261
|
+
|
|
262
|
+
### Testing Approach
|
|
263
|
+
- **HTTP Methods**: Test all supported HTTP methods for each endpoint (GET, POST, PUT, PATCH, DELETE, OPTIONS)
|
|
264
|
+
- **Status Codes**: Verify correct HTTP status codes are returned:
|
|
265
|
+
- Success: 200 (OK), 201 (Created), 204 (No Content)
|
|
266
|
+
- Client Errors: 400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 422 (Unprocessable Entity)
|
|
267
|
+
- Server Errors: 500 (Internal Server Error), 503 (Service Unavailable)
|
|
268
|
+
- **Response Format**: Validate response body structure, data types, and content (JSON, XML, plain text, etc.)
|
|
269
|
+
- **Request Validation**: Test with valid and invalid request bodies, query parameters, and headers
|
|
270
|
+
- **Authentication/Authorization**: Test endpoints with and without required authentication tokens, API keys, or credentials
|
|
271
|
+
- **Error Handling**: Verify appropriate error messages and status codes for edge cases and invalid inputs
|
|
272
|
+
- **Content Types**: Test different Content-Type headers (application/json, application/x-www-form-urlencoded, multipart/form-data)
|
|
273
|
+
|
|
274
|
+
### Testing Tools and Commands
|
|
275
|
+
- **curl**: Use for quick endpoint testing with various HTTP methods and headers
|
|
276
|
+
- Example: \`curl -X POST http://localhost:3000/api/users -H "Content-Type: application/json" -d '{"name":"test"}'\`
|
|
277
|
+
- **httpie**: More user-friendly alternative to curl (if available in project)
|
|
278
|
+
- Example: \`http POST localhost:3000/api/users name=test\`
|
|
279
|
+
- **Project Test Suites**: Leverage existing test frameworks and scripts:
|
|
280
|
+
- Node.js: Jest, Mocha, Supertest for API testing
|
|
281
|
+
- Python: pytest with requests library, FastAPI TestClient
|
|
282
|
+
- Check package.json, requirements.txt, or test directories for existing test patterns
|
|
283
|
+
- **API Documentation Tools**: If the project uses Swagger/OpenAPI, test via the interactive documentation UI
|
|
284
|
+
|
|
285
|
+
### Verification Steps
|
|
286
|
+
1. Start the API server if not already running (check for commands like \`npm run dev\`, \`python app.py\`, etc.)
|
|
287
|
+
2. Test each modified or new endpoint with appropriate HTTP methods
|
|
288
|
+
3. Verify response status codes match expected values
|
|
289
|
+
4. Validate response body structure and data correctness
|
|
290
|
+
5. Test authentication/authorization requirements
|
|
291
|
+
6. Test error scenarios (missing required fields, invalid data types, unauthorized access)
|
|
292
|
+
7. Check that changes don't break existing endpoints (regression testing)
|
|
293
|
+
8. Review API logs for errors or warnings during testing
|
|
294
|
+
9. If the project has integration tests, run them to ensure end-to-end functionality
|
|
295
|
+
|
|
296
|
+
### Integration with Existing Tests
|
|
297
|
+
- Always check for and run existing API test suites before and after making changes
|
|
298
|
+
- Add new test cases for new endpoints or modified behavior
|
|
299
|
+
- Follow the project's testing conventions and patterns
|
|
300
|
+
- Ensure all API tests pass before considering the task complete
|
|
301
|
+
|
|
192
302
|
## Browser Automation and Testing
|
|
193
|
-
You have
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
-
|
|
197
|
-
-
|
|
303
|
+
You have a persistent, stateful browser available for testing and interacting with web pages. The browser maintains state (cookies, localStorage, session data) across tool calls, making it ideal for testing multi-step workflows and authenticated sessions.
|
|
304
|
+
|
|
305
|
+
**Key Features:**
|
|
306
|
+
- **Persistent Context**: Browser state persists across all tool calls until explicitly closed
|
|
307
|
+
- **Named Pages**: Create and reuse multiple browser pages by name (default: "main")
|
|
308
|
+
- **Smart Load Detection**: Automatically filters ads, tracking, and non-critical resources for faster page loads
|
|
309
|
+
- **Session Recording**: Optional video recording of browser sessions
|
|
310
|
+
|
|
311
|
+
**Workflow:**
|
|
312
|
+
1. **Launch**: Start with '${ToolNames.BROWSER_LAUNCH}' (auto-starts server with persistent context)
|
|
313
|
+
- Optional: Enable video recording with \`record: true\`
|
|
314
|
+
- Server runs on ports 9222 (HTTP API) and 9223 (CDP WebSocket)
|
|
315
|
+
|
|
316
|
+
2. **Navigate**: Use '${ToolNames.BROWSER_NAVIGATE}' to load pages
|
|
317
|
+
- Specify \`pageName\` to use different pages (default: "main")
|
|
318
|
+
- Pages persist and can be revisited without reloading
|
|
319
|
+
- Smart load detection waits for critical resources only
|
|
320
|
+
|
|
321
|
+
3. **Interact**: Use browser tools as needed:
|
|
322
|
+
- '${ToolNames.BROWSER_CLICK}' - Click at x,y coordinates (viewport: 900x600)
|
|
323
|
+
- '${ToolNames.BROWSER_TYPE}' - Type text (use after clicking input fields)
|
|
324
|
+
- '${ToolNames.BROWSER_SCROLL_DOWN}' / '${ToolNames.BROWSER_SCROLL_UP}' - Scroll pages
|
|
325
|
+
|
|
326
|
+
4. **Close**: Call '${ToolNames.BROWSER_CLOSE}' when finished
|
|
327
|
+
- Stops server and closes all pages
|
|
328
|
+
- Finalizes video recording if enabled
|
|
329
|
+
- Must be the final browser action
|
|
330
|
+
|
|
331
|
+
**Best Practices:**
|
|
332
|
+
- Reuse pages for multi-step workflows (login → navigate → interact)
|
|
333
|
+
- Use named pages to test multiple scenarios simultaneously
|
|
334
|
+
- Leverage persistent state for authenticated testing
|
|
335
|
+
- Always close browser when done to free resources
|
|
336
|
+
- Capture visual context from screenshots in tool responses
|
|
337
|
+
- Share video recordings with users for review if enabled
|
|
338
|
+
|
|
339
|
+
## Handling Time-Sensitive and Latest Information
|
|
340
|
+
**Current Date: ${new Date().toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}**
|
|
341
|
+
|
|
342
|
+
When users request "latest" information or the information that is later than your cutoff date, recent data, or current information from web sources:
|
|
343
|
+
- **Prioritize Fetched Content**: The web_fetch tool uses cache-busting mechanisms to ensure fresh data. Always prioritize information from fetched content over your training data, especially for time-sensitive topics.
|
|
344
|
+
- **Look for Recent Dates**: Actively search through fetched content for the most recent dates, versions, release numbers, or timestamps. These indicate the freshness of information. Compare dates against today's date (${new Date().toLocaleDateString('en-US', { day: 'numeric', month: 'long', year: 'numeric' })}) to determine recency.
|
|
345
|
+
- **Mention Dates in Responses**: When presenting information from web sources, always mention the dates, versions, or timestamps you found to demonstrate the recency and relevance of the data.
|
|
346
|
+
- **Trust Fresh Data**: If your training data conflicts with recently fetched content, trust the fetched content as it represents the current state. Your training data may be outdated for rapidly evolving topics.
|
|
347
|
+
- ALways list the data from the most recent data to least recent data depending on the todays date.
|
|
348
|
+
- **Alternative Sources on Access Issues**: If a web_fetch request is forbidden or blocked (403, 401, etc.), try fetching alternative sources such as news articles, blog posts, or documentation sites that cover the same topic. Use multiple web_fetch calls to gather comprehensive information from various accessible sources. Once you have enough data you donot need to search for more web pages.
|
|
349
|
+
Example: If you cant find openAI model data get it from openrouter v1 models or replicate or hugging face APIs, Make use of public API as well as docs.
|
|
350
|
+
|
|
351
|
+
## Web Search Tool (${ToolNames.WEB_SEARCH})
|
|
352
|
+
When users need to search for information on the web, you have access to the '${ToolNames.WEB_SEARCH}' tool that provides comprehensive search results with citations:
|
|
353
|
+
|
|
354
|
+
- **When to Use**: Use '${ToolNames.WEB_SEARCH}' when you need to find current information, recent news, latest releases, or any web-based information that requires a search query.
|
|
355
|
+
- **Automatic Provider Detection**: The tool automatically detects if you're using BLACKBOX AI provider and uses native web search. For other providers, it uses Tavily API.
|
|
356
|
+
- **Search Results**: Returns concise answers with source citations (titles and URLs) that you can reference in your response.
|
|
357
|
+
- **Examples**:
|
|
358
|
+
- Finding latest news: \`${ToolNames.WEB_SEARCH}(query="latest releases from OpenAI")\`
|
|
359
|
+
- Technical information: \`${ToolNames.WEB_SEARCH}(query="React 19 new features")\`
|
|
360
|
+
- Current events: \`${ToolNames.WEB_SEARCH}(query="AI developments in 2025")\`
|
|
361
|
+
- Product information: \`${ToolNames.WEB_SEARCH}(query="best practices for TypeScript error handling")\`
|
|
362
|
+
- **Response Format**: The tool returns formatted results with the answer and a list of sources. Always cite the sources in your response to the user.
|
|
363
|
+
- **No Configuration Needed**: When using BLACKBOX AI, no additional API keys are required. The tool automatically uses the appropriate search method.
|
|
364
|
+
|
|
365
|
+
### CRITICAL: Knowledge Cutoff Awareness
|
|
366
|
+
**YOU MUST use '${ToolNames.WEB_SEARCH}' when the query involves information that may be outside your training data cutoff date.** If a user asks about:
|
|
367
|
+
- Recent releases, versions, or updates of any technology, framework, or product (e.g., "What's the context length of Gemini 3 Pro?", "Latest features in React 19")
|
|
368
|
+
- Current specifications, capabilities, or pricing of any service or product
|
|
369
|
+
- Any information that requires up-to-date knowledge from the web
|
|
370
|
+
- Events, news, or developments that occurred after your training data
|
|
371
|
+
|
|
372
|
+
**DO NOT guess or provide potentially outdated information.** Instead, immediately use '${ToolNames.WEB_SEARCH}' to get accurate, current information with proper source citations. This ensures users receive reliable, up-to-date information rather than potentially incorrect data from your training cutoff. Make sure to give proper citations for the user.
|
|
198
373
|
|
|
199
374
|
# Task Management
|
|
200
375
|
- You have access to the ${ToolNames.TODO_WRITE} tool to help you track tasks in the plan. Use these tools VERY frequently to ensure that you are tracking your tasks and giving the user visibility into your progress.
|
|
@@ -204,6 +379,24 @@ These tools are also EXTREMELY helpful for planning tasks, and for breaking down
|
|
|
204
379
|
- It is critical that you mark todos as completed as soon as you are done with a task. Do not batch up multiple tasks before marking them as completed.
|
|
205
380
|
- Capture atmost 6 todo list item per task.
|
|
206
381
|
|
|
382
|
+
## Task Completion
|
|
383
|
+
- MANDATORY: When you have completed a task, you MUST follow this two-step process before finishing:
|
|
384
|
+
1. Run 'git status --porcelain' using the shell tool to see what files were added/modified during the task
|
|
385
|
+
2. Use the '${ToolNames.TASK_COMPLETION}' tool with intelligent cleanup decisions
|
|
386
|
+
- The Task Completion Tool:
|
|
387
|
+
- Shows a summary of what was accomplished
|
|
388
|
+
- Cleans up specified temporary task files
|
|
389
|
+
- Notifies that the task is complete
|
|
390
|
+
- Two-Step Usage Process:
|
|
391
|
+
1. Check Git Status: Run 'git status --porcelain' to see all changed files
|
|
392
|
+
2. Analyze & Decide: Review the git output and identify which files are:
|
|
393
|
+
- **Keep**: Important implementation files, documentation, code changes
|
|
394
|
+
- **Clean**: Temporary task artifacts (TODO.md, PLAN.md, notes.txt, draft files)
|
|
395
|
+
3. Execute Cleanup: Call '${ToolNames.TASK_COMPLETION}' with 'cleanup_files: ["TODO.md", "PLAN.md"]' containing only the temporary files
|
|
396
|
+
- Intelligence Required: You must analyze the git status output and decide which files are temporary task artifacts vs. important project files that should be preserved
|
|
397
|
+
- Purpose: This ensures proper task closure and workspace cleanup, removing only redundant task files while preserving important work
|
|
398
|
+
- Required: You cannot consider a task truly complete without following this two-step process
|
|
399
|
+
|
|
207
400
|
# Operational Guidelines
|
|
208
401
|
|
|
209
402
|
## Core Mandates
|
|
@@ -215,9 +408,9 @@ These tools are also EXTREMELY helpful for planning tasks, and for breaking down
|
|
|
215
408
|
- **Idiomatic Changes:** When editing, understand the local context (imports, functions/classes) to ensure your changes integrate naturally and idiomatically.
|
|
216
409
|
- **Comments:** Add code comments sparingly. Focus on *why* something is done, especially for complex logic, rather than *what* is done. Only add high-value comments if necessary for clarity or if requested by the user. Do not edit comments that are separate from the code you are changing. *NEVER* talk to the user or describe your changes through comments.
|
|
217
410
|
- **Proactiveness:** Fulfill the user's request thoroughly, including reasonable, directly implied follow-up actions.
|
|
218
|
-
- **Confirm Ambiguity/Expansion:** Do not take significant actions beyond the clear scope of the request without confirming with the user. If asked *how* to do something, explain first, don't just do it.
|
|
411
|
+
${isNonInteractive ? '' : '- **Confirm Ambiguity/Expansion:** Do not take significant actions beyond the clear scope of the request without confirming with the user. If asked *how* to do something, explain first, don\'t just do it.'}
|
|
219
412
|
- **Explaining Changes:** After completing a code modification or file operation *do not* provide summaries unless asked.
|
|
220
|
-
- **Path Construction:** Before using any file system tool (e.g., ${ToolNames.READ_FILE}' or '${ToolNames.WRITE_FILE}'), you must construct the full absolute path for the file_path argument. Always combine the absolute path of the project's root directory with the file's path relative to the root. For example, if the project root is /path/to/project/ and the file is foo/bar/baz.txt, the final path you must use is /path/to/project/foo/bar/baz.txt. If the user provides a relative path, you must resolve it against the root directory to create an absolute path.
|
|
413
|
+
- **Path Construction:** Before using any file system tool (e.g., '${ToolNames.READ_FILE}' or '${ToolNames.WRITE_FILE}'), you must construct the full absolute path for the file_path argument. Always combine the absolute path of the project's root directory with the file's path relative to the root. For example, if the project root is /path/to/project/ and the file is foo/bar/baz.txt, the final path you must use is /path/to/project/foo/bar/baz.txt. **CRITICAL: NEVER hallucinate paths from other environments or users (e.g., paths containing 'suyashpradhan', etc.). Use ONLY the project root directory provided in your context.** If the user provides a relative path, you must resolve it against the root directory to create an absolute path.
|
|
221
414
|
- **Do Not revert changes:** Do not revert changes to the codebase unless asked to do so by the user. Only revert changes made by you if they have resulted in an error or if the user has explicitly asked you to revert the changes.
|
|
222
415
|
- **Verification & Testing:** You should verify that the changes done by you does not introduct any errors by building / compiling the changes. Then doing functional testing of the changes to ensure the implementation is successful and working accurately.
|
|
223
416
|
|
|
@@ -234,17 +427,127 @@ These tools are also EXTREMELY helpful for planning tasks, and for breaking down
|
|
|
234
427
|
- **Explain Critical Commands:** Before executing commands with '${ToolNames.SHELL}' that modify the file system, codebase, or system state, you *must* provide a brief explanation of the command's purpose and potential impact. Prioritize user understanding and safety. You should not ask permission to use the tool; the user will be presented with a confirmation dialogue upon use (you do not need to tell them this).
|
|
235
428
|
- **Security First:** Always apply security best practices. Never introduce code that exposes, logs, or commits secrets, API keys, or other sensitive information.
|
|
236
429
|
|
|
430
|
+
## MCP Remote-Code Tasks
|
|
431
|
+
When you use the 'task' MCP tool from the 'remote-code' server to create background tasks, ALWAYS include this helpful information in your response to the user after the task is created:
|
|
432
|
+
|
|
433
|
+
**Required Message Format:**
|
|
434
|
+
After showing the task ID and status, add:
|
|
435
|
+
"
|
|
436
|
+
📍 Track your task progress at: https://cloud.blackbox.ai/tasks/<task-id>
|
|
437
|
+
💡 Resume this task later from any session using: /chat resume <task-id> or /tasks resume <task-id>
|
|
438
|
+
For listing all your tasks, use: /tasks list
|
|
439
|
+
"
|
|
440
|
+
|
|
441
|
+
This helps users understand they can:
|
|
442
|
+
1. Monitor the task progress on the cloud dashboard
|
|
443
|
+
2. Resume the task from a different CLI session once it completes
|
|
444
|
+
3. Access the task results even if they close the current session
|
|
445
|
+
|
|
237
446
|
## Tool Usage
|
|
238
|
-
- **File Paths:** Always use absolute paths when referring to files with tools like '${ToolNames.READ_FILE}' or '${ToolNames.WRITE_FILE}'. Relative paths are not supported. You must provide an absolute path.
|
|
447
|
+
- **File Paths:** Always use absolute paths when referring to files with tools like '${ToolNames.READ_FILE}', '${ToolNames.READ_DATA_FILE}', or '${ToolNames.WRITE_FILE}'. Relative paths are not supported. You must provide an absolute path.
|
|
448
|
+
- **CRITICAL - Data Files:** For structured data files (.csv, .xlsx, .xls, .json, .jsonl, .txt, .docx, .doc), you MUST use '${ToolNames.READ_DATA_FILE}' instead of '${ToolNames.READ_FILE}'. The read_data_file tool provides specialized parsing and analysis capabilities for data files. Using read_file for these file types will result in an error. This is enforced at the tool level.
|
|
449
|
+
- **Screenshot/Temp Files - MANDATORY AUTO-READ:** When you see file paths in <file_content> sections that match screenshot or temporary file patterns (paths starting with /var/folders/, /tmp/, /private/var/, or filenames like Screenshot*.png, Screen Shot*.jpg, Screen Recording*.mov), you MUST immediately use the '${ToolNames.READ_FILE}' tool to read these files. These are typically macOS screenshot files that the user wants you to analyze. DO NOT just acknowledge the path - actively read it using the tool. Examples of paths you must auto-read:
|
|
450
|
+
- /var/folders/cz/.../Screenshot 2025-12-19 at 02.05.52.png
|
|
451
|
+
- var/folders/.../Screen Shot 2025-12-19.png
|
|
452
|
+
- /tmp/image.jpg
|
|
453
|
+
- /private/var/folders/.../recording.mov
|
|
454
|
+
|
|
455
|
+
**Handling Errors:**
|
|
456
|
+
1. First, try reading the parent directory to verify it exists and is accessible
|
|
457
|
+
2. Explain to the user that macOS may require granting Terminal/CLI app "Full Disk Access" permissions
|
|
458
|
+
3. Guide them to: System Settings → Privacy & Security → Full Disk Access → Enable for Terminal (or their terminal app)
|
|
459
|
+
4. If the file is in a temporary directory that may have been cleaned up, inform the user the screenshot may have been deleted and ask them to paste it again or save it to a permanent location first.
|
|
460
|
+
5. If none of this work tell the user to set the clock to 24 hours format from 12 hr format and try again.
|
|
461
|
+
6. Or tell user to save the screenshot to a different location and provide the new path. Rather than directly drag and drop the screenshot into the terminal.
|
|
462
|
+
- **Data File Analysis:** When working with structured data files (CSV, JSON, TXT, XLSX, DOCX), use the '${ToolNames.READ_DATA_FILE}' tool to parse and analyze the file contents. This tool extracts structured data that you can use for analysis, visualization, or dashboard creation. Use '${ToolNames.READ_FILE}' for general file reading and '${ToolNames.READ_DATA_FILE}' specifically for data files that need parsing.
|
|
239
463
|
- **Parallelism:** Execute multiple independent tool calls in parallel when feasible (i.e. searching the codebase).
|
|
240
464
|
- **Command Execution:** Use the '${ToolNames.SHELL}' tool for running shell commands, remembering the safety rule to explain modifying commands first.
|
|
241
465
|
- **Background Processes:** Use background processes (via \`&\`) for commands that are unlikely to stop on their own, e.g. \`node server.js &\`. If unsure, ask the user.
|
|
242
466
|
- **Interactive Commands:** Try to avoid shell commands that are likely to require user interaction (e.g. \`git rebase -i\`). Use non-interactive versions of commands (e.g. \`npm init -y\` instead of \`npm init\`) when available, and otherwise remind the user that interactive shell commands are not supported and may cause hangs until canceled by the user.
|
|
243
467
|
- **Task Management:** Use the '${ToolNames.TODO_WRITE}' tool to capture the important steps in the plan , track progress and provide visibility to users. This tool helps organize work systematically and ensures no requirements are missed.
|
|
244
468
|
- **Subagent Delegation:** When doing file search, prefer to use the '${ToolNames.TASK}' tool in order to reduce context usage. You should proactively use the '${ToolNames.TASK}' tool with specialized agents when the task at hand matches the agent's description.
|
|
245
|
-
- **Remembering Facts:** Use the '${ToolNames.MEMORY}' tool to remember specific, *user-related* facts or preferences when the user explicitly asks, or when they state a clear, concise piece of information that would help personalize or streamline *your future interactions with them* (e.g., preferred coding style, common project paths they use, personal tool aliases). This tool is for user-specific information that should persist across sessions. Do *not* use it for general project context or information
|
|
246
|
-
- **Respect User Confirmations:** Most tool calls (also denoted as 'function calls') will first require confirmation from the user, where they will either approve or cancel the function call. If a user cancels a function call, respect their choice and do _not_ try to make the function call again. It is okay to request the tool call again _only_ if the user requests that same tool call on a subsequent prompt. When a user cancels a function call, assume best intentions from the user and consider inquiring if they prefer any alternative paths forward.
|
|
247
|
-
|
|
469
|
+
- **Remembering Facts:** Use the '${ToolNames.MEMORY}' tool to remember specific, *user-related* facts or preferences when the user explicitly asks, or when they state a clear, concise piece of information that would help personalize or streamline *your future interactions with them* (e.g., preferred coding style, common project paths they use, personal tool aliases). This tool is for user-specific information that should persist across sessions. Do *not* use it for general project context or information.${isNonInteractive ? '' : ' If unsure whether to save something, you can ask the user, "Should I remember that for you?"'}
|
|
470
|
+
${isNonInteractive ? '' : '- **Respect User Confirmations:** Most tool calls (also denoted as \'function calls\') will first require confirmation from the user, where they will either approve or cancel the function call. If a user cancels a function call, respect their choice and do _not_ try to make the function call again. It is okay to request the tool call again _only_ if the user requests that same tool call on a subsequent prompt. When a user cancels a function call, assume best intentions from the user and consider inquiring if they prefer any alternative paths forward.'}
|
|
471
|
+
|
|
472
|
+
## Proactive Memory Detection
|
|
473
|
+
|
|
474
|
+
You should PROACTIVELY detect when users share information that would be valuable to remember for future sessions. When you identify memory-worthy content, use the '${ToolNames.MEMORY}' tool to suggest saving it.${isNonInteractive ? '' : ' The tool\'s confirmation system will allow the user to choose where to save it (global or project scope) or decline.'}
|
|
475
|
+
|
|
476
|
+
**What to Detect and Remember:**
|
|
477
|
+
|
|
478
|
+
Actively look for these patterns in user messages and proactively suggest saving them:
|
|
479
|
+
|
|
480
|
+
1. **Project-Specific Guidelines & Conventions:**
|
|
481
|
+
- Coding standards (e.g., "always use tabs for indentation", "we follow the Airbnb style guide")
|
|
482
|
+
- Architecture decisions (e.g., "this project uses microservices architecture", "we use Redux for state management")
|
|
483
|
+
- File organization rules (e.g., "all components go in src/components", "tests must be colocated with source files")
|
|
484
|
+
- Naming conventions (e.g., "use kebab-case for file names", "prefix interfaces with 'I'")
|
|
485
|
+
- Technology stack details (e.g., "we use PostgreSQL 14", "this project targets Node.js 18+")
|
|
486
|
+
|
|
487
|
+
2. **User Preferences & Workflows:**
|
|
488
|
+
- Tool preferences (e.g., "I prefer using npm over yarn", "always use async/await instead of promises")
|
|
489
|
+
- Development workflow (e.g., "run tests before committing", "always create a feature branch")
|
|
490
|
+
- Communication style (e.g., "keep explanations brief", "I prefer detailed technical explanations")
|
|
491
|
+
- Editor/IDE preferences (e.g., "I use VS Code", "I prefer vim keybindings")
|
|
492
|
+
|
|
493
|
+
3. **Important Project Context:**
|
|
494
|
+
- API endpoints and authentication methods (e.g., "the API uses JWT tokens", "base URL is https://api.example.com")
|
|
495
|
+
- Database schemas and connection details (e.g., "users table has email, name, and created_at columns")
|
|
496
|
+
- Environment-specific information (e.g., "staging uses AWS, production uses GCP")
|
|
497
|
+
- Build and deployment procedures (e.g., "deploy to staging with 'npm run deploy:staging'")
|
|
498
|
+
|
|
499
|
+
4. **Domain Knowledge & Business Rules:**
|
|
500
|
+
- Business logic constraints (e.g., "users must be 18+ to register", "orders expire after 30 minutes")
|
|
501
|
+
- Domain-specific terminology (e.g., "we call customers 'members'", "SKU refers to product identifier")
|
|
502
|
+
- Regulatory requirements (e.g., "must comply with GDPR", "PII data must be encrypted")
|
|
503
|
+
|
|
504
|
+
**When NOT to Suggest Memory:**
|
|
505
|
+
- Temporary information relevant only to the current task
|
|
506
|
+
- Information already covered in project documentation
|
|
507
|
+
- Conversational context or casual remarks
|
|
508
|
+
- Information that changes frequently
|
|
509
|
+
- Overly specific implementation details that may become outdated
|
|
510
|
+
|
|
511
|
+
**How to Suggest Memory:**
|
|
512
|
+
|
|
513
|
+
When you detect memory-worthy information, use the '${ToolNames.MEMORY}' tool with ONLY the fact parameter.${isNonInteractive ? '' : ' **CRITICAL: Do NOT specify the scope parameter.** This ensures the user will be presented with an interactive selection UI where they can choose between global memory, project memory, or cancel.'}
|
|
514
|
+
|
|
515
|
+
${isNonInteractive ? '' : `The tool will automatically:
|
|
516
|
+
1. Show the user what will be saved
|
|
517
|
+
2. Present an interactive selection UI with three options:
|
|
518
|
+
- Save to GLOBAL memory (shared across all projects)
|
|
519
|
+
- Save to PROJECT memory (current project only)
|
|
520
|
+
- Cancel (don't save)
|
|
521
|
+
3. Display a diff preview of the changes
|
|
522
|
+
4. Allow the user to modify the content before saving
|
|
523
|
+
`}
|
|
524
|
+
|
|
525
|
+
**Example Detection Patterns:**
|
|
526
|
+
|
|
527
|
+
User: "For this project, always use 2 spaces for indentation and semicolons are required."
|
|
528
|
+
→ Detect: Project coding standard
|
|
529
|
+
→ Action: Use save_memory(fact="Project coding standard: use 2 spaces for indentation and semicolons are required")
|
|
530
|
+
→ Note: Do NOT add scope parameter - let user choose via UI
|
|
531
|
+
|
|
532
|
+
User: "I prefer Python for backend work and React for frontend."
|
|
533
|
+
→ Detect: User preference
|
|
534
|
+
→ Action: Use save_memory(fact="User prefers Python for backend development and React for frontend")
|
|
535
|
+
→ Note: Do NOT add scope parameter - let user choose via UI
|
|
536
|
+
|
|
537
|
+
User: "This API requires Bearer token authentication with the format 'Bearer <token>'."
|
|
538
|
+
→ Detect: Project-specific API detail
|
|
539
|
+
→ Action: Use save_memory(fact="API authentication: requires Bearer token with format 'Bearer <token>'")
|
|
540
|
+
→ Note: Do NOT add scope parameter - let user choose via UI
|
|
541
|
+
|
|
542
|
+
User: "Remember to run 'npm run lint' before committing any changes."
|
|
543
|
+
→ Detect: Project workflow guideline
|
|
544
|
+
→ Action: Use save_memory(fact="Pre-commit workflow: always run 'npm run lint' before committing changes")
|
|
545
|
+
→ Note: Do NOT add scope parameter - let user choose via UI
|
|
546
|
+
|
|
547
|
+
**Important Notes:**
|
|
548
|
+
- Be proactive but not intrusive - suggest memory for genuinely useful information
|
|
549
|
+
- Keep facts concise and self-contained (one clear statement per fact)
|
|
550
|
+
${isNonInteractive ? '' : '- The user always has final control through the confirmation dialog\n- Don\'t repeatedly suggest the same information if the user declines\n'}- Focus on information that will improve future interactions and task completion
|
|
248
551
|
|
|
249
552
|
## Interaction Details
|
|
250
553
|
- **Help Command:** The user can use '/help' to display help information.
|
|
@@ -287,7 +590,7 @@ ${(function () {
|
|
|
287
590
|
- Combine shell commands whenever possible to save time/steps, e.g. \`git status && git diff HEAD && git log -n 3\`.
|
|
288
591
|
- Always propose a draft commit message. Never just ask the user to give you the full commit message.
|
|
289
592
|
- Prefer commit messages that are clear, concise, and focused more on "why" and less on "what".
|
|
290
|
-
- Keep the user informed and ask for clarification or confirmation where needed.
|
|
593
|
+
${isNonInteractive ? '' : '- Keep the user informed and ask for clarification or confirmation where needed.'}
|
|
291
594
|
- After each commit, confirm that it was successful by running \`git status\`.
|
|
292
595
|
- If a commit fails, never attempt to work around the issues without being asked to do so.
|
|
293
596
|
- Never push changes to a remote repository without being asked explicitly by the user.
|
|
@@ -439,6 +742,31 @@ You are a specialized context summarizer that creates a comprehensive markdown s
|
|
|
439
742
|
export function getSubagentSystemReminder(agentTypes) {
|
|
440
743
|
return `<system-reminder>You have powerful specialized agents at your disposal, available agent types are: ${agentTypes.join(', ')}. PROACTIVELY use the ${ToolNames.TASK} tool to delegate user's task to appropriate agent when user's task matches agent capabilities. Ignore this message if user's task is not relevant to any agent. This message is for internal use only. Do not mention this to user in your response.</system-reminder>`;
|
|
441
744
|
}
|
|
745
|
+
/**
|
|
746
|
+
* Generates a system reminder message about available skills for the AI assistant.
|
|
747
|
+
*
|
|
748
|
+
* This function creates an internal system message that informs the AI about specialized
|
|
749
|
+
* skills available in the workspace. The reminder encourages proactive use of the skill tool
|
|
750
|
+
* when user requests match skill capabilities.
|
|
751
|
+
*
|
|
752
|
+
* @param availableSkills - Formatted string of available skills with names and descriptions
|
|
753
|
+
* @returns A formatted system reminder string wrapped in XML tags for internal AI processing
|
|
754
|
+
*
|
|
755
|
+
* @example
|
|
756
|
+
* ```typescript
|
|
757
|
+
* const reminder = getSkillSystemReminder(skillsList);
|
|
758
|
+
* // Returns: "<system-reminder>You have specialized skills available..."
|
|
759
|
+
* ```
|
|
760
|
+
*/
|
|
761
|
+
export function getSkillSystemReminder(availableSkills) {
|
|
762
|
+
return `<system-reminder>You have specialized skills available in this workspace. When users ask you to perform tasks, check if any of the available skills can help complete the task more effectively. Skills provide specialized capabilities and domain knowledge.
|
|
763
|
+
|
|
764
|
+
<available_skills>
|
|
765
|
+
${availableSkills}
|
|
766
|
+
</available_skills>
|
|
767
|
+
|
|
768
|
+
When a skill is relevant to the user's task, you MUST invoke the ${ToolNames.SKILL} tool IMMEDIATELY as your first action to load the skill's full instructions. NEVER just mention a skill without actually calling the tool. This is a BLOCKING REQUIREMENT: invoke the skill tool BEFORE generating any other response about the task. This message is for internal use only. Do not mention this to user in your response.</system-reminder>`;
|
|
769
|
+
}
|
|
442
770
|
/**
|
|
443
771
|
* Generates a system reminder message for plan mode operation.
|
|
444
772
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAa3D;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,QAAkB,EAAE,SAAiB;IACvD,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,iBAA6D,EAC7D,UAAmB;IAEnB,uCAAuC;IACvC,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC1C,eAAe,GAAG,iBAAiB,CAAC;IACtC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC5C,cAAc;QACd,eAAe,GAAG,iBAAiB;aAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;aAClE,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;SAAM,IAAI,iBAAiB,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;QAC7D,UAAU;QACV,eAAe;YACb,iBAAiB,CAAC,KAAK;gBACrB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;iBACnE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;SAAM,IAAI,iBAAiB,IAAI,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAC5D,0BAA0B;QAC1B,eAAe,GAAG,iBAAiB,CAAC,IAAI,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,mEAAmE;IACnE,MAAM,YAAY,GAChB,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,cAAc,UAAU,CAAC,IAAI,EAAE,EAAE;QACnC,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,GAAG,eAAe,GAAG,YAAY,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,UAAmB,EACnB,MAA2B,EAC3B,KAAc,EACd,mBAA4B,IAAI;IAEhC,iFAAiF;IACjF,4FAA4F;IAC5F,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACpD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/C,eAAe,GAAG,IAAI,CAAC,CAAC,gCAAgC;YACxD,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC9C,IAAI,UAAU,GAAG,WAAW,CAAC;gBAC7B,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;qBAAM,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC9B,UAAU,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC5B,CAAC;gBACD,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,wCAAwC;YACnF,CAAC;YACD,iDAAiD;YACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,GAAG,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,MAAM,EAAE,oBAAoB,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAE5D,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAClE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YACzC,4CAA4C;YAC5C,IACE,QAAQ;gBACR,UAAU;gBACV,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC;gBACpC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EACjC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,EAAE,QAAQ,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAEjD,mCAAmC;YACnC,IAAI,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;YACvC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACzB,4BAA4B,EAC5B,MAAM,CAAC,SAAS,CAAC,CAClB,CAAC;YACF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACzB,wBAAwB,EACxB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAC7B,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,eAAe;QAChC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC;QACvC,CAAC,CAAC;;;;;;;sQAOgQ,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,SAAS,WAAW,SAAS,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/prompts.ts"],"names":[],"mappings":"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"}
|