developer-ai 1.1.0 โ 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +24 -12
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/core/agent.d.ts +10 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +74 -6
- package/dist/core/agent.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +52 -10
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/skills/loader.d.ts +7 -3
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +109 -12
- package/dist/skills/loader.js.map +1 -1
- package/dist/tools/git-commit.d.ts +7 -0
- package/dist/tools/git-commit.d.ts.map +1 -0
- package/dist/tools/git-commit.js +84 -0
- package/dist/tools/git-commit.js.map +1 -0
- package/dist/tools/git-diff.d.ts +6 -0
- package/dist/tools/git-diff.d.ts.map +1 -0
- package/dist/tools/git-diff.js +84 -0
- package/dist/tools/git-diff.js.map +1 -0
- package/dist/tools/git-status.d.ts +7 -0
- package/dist/tools/git-status.d.ts.map +1 -0
- package/dist/tools/git-status.js +70 -0
- package/dist/tools/git-status.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +19 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/patch-file.d.ts +13 -0
- package/dist/tools/patch-file.d.ts.map +1 -0
- package/dist/tools/patch-file.js +120 -0
- package/dist/tools/patch-file.js.map +1 -0
- package/dist/tools/project-detect.d.ts +8 -0
- package/dist/tools/project-detect.d.ts.map +1 -0
- package/dist/tools/project-detect.js +201 -0
- package/dist/tools/project-detect.js.map +1 -0
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +27 -3
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/run-command.d.ts.map +1 -1
- package/dist/tools/run-command.js +29 -8
- package/dist/tools/run-command.js.map +1 -1
- package/dist/tools/stat-file.d.ts +7 -0
- package/dist/tools/stat-file.d.ts.map +1 -0
- package/dist/tools/stat-file.js +96 -0
- package/dist/tools/stat-file.js.map +1 -0
- package/dist/tools/test-run.d.ts +7 -0
- package/dist/tools/test-run.d.ts.map +1 -0
- package/dist/tools/test-run.js +181 -0
- package/dist/tools/test-run.js.map +1 -0
- package/dist/ui/spinner.d.ts +21 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +76 -0
- package/dist/ui/spinner.js.map +1 -0
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -12,6 +12,7 @@ import { McpManager } from './mcp/client.js';
|
|
|
12
12
|
import { SkillsLoader } from './skills/loader.js';
|
|
13
13
|
import { OpenAIProvider } from './providers/openai.js';
|
|
14
14
|
import { OllamaProvider } from './providers/ollama.js';
|
|
15
|
+
import { ShimmerSpinner } from './ui/spinner.js';
|
|
15
16
|
import { VERSION } from './constants.js';
|
|
16
17
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
17
18
|
// ---- Helpers ----
|
|
@@ -63,6 +64,7 @@ async function createAgent(opts, confirmFn) {
|
|
|
63
64
|
workspaceDir: process.cwd(),
|
|
64
65
|
autoYes: opts.yes ?? false,
|
|
65
66
|
allowDangerous: opts.allowDangerous ?? false,
|
|
67
|
+
showThinking: opts.showThinking ?? false,
|
|
66
68
|
maxIterations: 30,
|
|
67
69
|
confirmFn,
|
|
68
70
|
});
|
|
@@ -82,11 +84,14 @@ async function runRepl(opts) {
|
|
|
82
84
|
resolve(answer.trim().toLowerCase().startsWith('y'));
|
|
83
85
|
});
|
|
84
86
|
});
|
|
85
|
-
console.log(chalk.bold.cyan('\n Developer-AI') +
|
|
87
|
+
console.log(chalk.bold.cyan('\n ๐ Developer-AI') +
|
|
86
88
|
chalk.dim(` v${VERSION}`) +
|
|
87
89
|
chalk.dim(` ยท provider: ${loadConfig().provider}`));
|
|
88
|
-
console.log(chalk.dim(` Workspace: ${process.cwd()}`));
|
|
89
|
-
|
|
90
|
+
console.log(chalk.dim(` ๐ Workspace: ${process.cwd()}`));
|
|
91
|
+
if (opts.showThinking) {
|
|
92
|
+
console.log(chalk.dim(` ๐ญ Show-thinking: enabled`));
|
|
93
|
+
}
|
|
94
|
+
console.log(chalk.dim(' ๐ก Type "exit" to quit, "clear" to reset context.\n'));
|
|
90
95
|
const agent = await createAgent(opts, confirmFn);
|
|
91
96
|
rl.prompt();
|
|
92
97
|
rl.on('line', async (line) => {
|
|
@@ -96,25 +101,28 @@ async function runRepl(opts) {
|
|
|
96
101
|
return;
|
|
97
102
|
}
|
|
98
103
|
if (input === 'exit' || input === 'quit' || input === '.exit') {
|
|
99
|
-
console.log(chalk.dim('Goodbye!'));
|
|
104
|
+
console.log(chalk.dim('๐ Goodbye!'));
|
|
100
105
|
rl.close();
|
|
101
106
|
process.exit(0);
|
|
102
107
|
}
|
|
103
108
|
if (input === 'clear') {
|
|
104
109
|
agent.resetHistory();
|
|
105
|
-
console.log(chalk.dim('Context cleared.\n'));
|
|
110
|
+
console.log(chalk.dim('๐งน Context cleared.\n'));
|
|
106
111
|
rl.prompt();
|
|
107
112
|
return;
|
|
108
113
|
}
|
|
109
114
|
// Pause readline while the agent is working
|
|
110
115
|
rl.pause();
|
|
116
|
+
const spinner = new ShimmerSpinner('Thinking');
|
|
111
117
|
try {
|
|
112
|
-
|
|
118
|
+
spinner.start();
|
|
113
119
|
const response = await agent.chat(input);
|
|
120
|
+
spinner.stop();
|
|
114
121
|
console.log('\n' + response + '\n');
|
|
115
122
|
}
|
|
116
123
|
catch (err) {
|
|
117
|
-
|
|
124
|
+
spinner.stop();
|
|
125
|
+
console.error(chalk.red(`\nโ Error: ${err.message}\n`));
|
|
118
126
|
}
|
|
119
127
|
rl.resume();
|
|
120
128
|
rl.prompt();
|
|
@@ -134,20 +142,23 @@ async function runOneShot(instruction, opts) {
|
|
|
134
142
|
resolve(answer.trim().toLowerCase().startsWith('y'));
|
|
135
143
|
});
|
|
136
144
|
});
|
|
145
|
+
const spinner = new ShimmerSpinner('Processing');
|
|
137
146
|
try {
|
|
138
147
|
const agent = await createAgent(opts, confirmFn);
|
|
139
|
-
|
|
148
|
+
spinner.start();
|
|
140
149
|
const response = await agent.chat(instruction);
|
|
150
|
+
spinner.stop();
|
|
141
151
|
console.log(response);
|
|
142
152
|
}
|
|
143
153
|
catch (err) {
|
|
144
|
-
|
|
154
|
+
spinner.stop();
|
|
155
|
+
console.error(chalk.red(`โ Error: ${err.message}`));
|
|
145
156
|
process.exit(1);
|
|
146
157
|
}
|
|
147
158
|
}
|
|
148
159
|
// ---- Onboard command ----
|
|
149
160
|
async function runOnboard() {
|
|
150
|
-
console.log(chalk.bold.cyan('\n Developer-AI Setup\n'));
|
|
161
|
+
console.log(chalk.bold.cyan('\n โ๏ธ Developer-AI Setup\n'));
|
|
151
162
|
const rl = readline.createInterface({
|
|
152
163
|
input: process.stdin,
|
|
153
164
|
output: process.stdout,
|
|
@@ -189,8 +200,8 @@ async function runOnboard() {
|
|
|
189
200
|
config.webSearch.serperApiKey = key.trim();
|
|
190
201
|
}
|
|
191
202
|
saveConfig(config);
|
|
192
|
-
console.log(chalk.green('\n
|
|
193
|
-
console.log(chalk.dim('
|
|
203
|
+
console.log(chalk.green('\n โ
Configuration saved to ~/.developer-ai/config.json'));
|
|
204
|
+
console.log(chalk.dim(' ๐ File permissions set to owner-only (0600).\n'));
|
|
194
205
|
rl.close();
|
|
195
206
|
}
|
|
196
207
|
// ---- Program definition ----
|
|
@@ -201,6 +212,7 @@ program
|
|
|
201
212
|
.version(VERSION)
|
|
202
213
|
.option('--yes', 'Auto-confirm all prompts (non-interactive)', false)
|
|
203
214
|
.option('--allow-dangerous', 'Allow dangerous commands without confirmation', false)
|
|
215
|
+
.option('--show-thinking', 'Display the model\'s reasoning/thinking process', false)
|
|
204
216
|
.argument('[instruction...]', 'One-shot instruction (non-interactive)')
|
|
205
217
|
.action(async (instructionParts, options) => {
|
|
206
218
|
const instruction = instructionParts.join(' ').trim();
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ export declare const MAX_FILE_SIZE: number;
|
|
|
4
4
|
export declare const MAX_OUTPUT_LENGTH = 10000;
|
|
5
5
|
export declare const MAX_AGENT_ITERATIONS = 30;
|
|
6
6
|
export declare const COMMAND_TIMEOUT_MS = 30000;
|
|
7
|
-
export declare const VERSION = "1.
|
|
7
|
+
export declare const VERSION = "1.1.1";
|
|
8
8
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
|
@@ -4,5 +4,5 @@ export const MAX_FILE_SIZE = 1024 * 1024; // 1 MB
|
|
|
4
4
|
export const MAX_OUTPUT_LENGTH = 10_000;
|
|
5
5
|
export const MAX_AGENT_ITERATIONS = 30;
|
|
6
6
|
export const COMMAND_TIMEOUT_MS = 30_000;
|
|
7
|
-
export const VERSION = '1.
|
|
7
|
+
export const VERSION = '1.1.1';
|
|
8
8
|
//# sourceMappingURL=constants.js.map
|
package/dist/core/agent.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface AgentOptions {
|
|
|
11
11
|
autoYes: boolean;
|
|
12
12
|
allowDangerous: boolean;
|
|
13
13
|
maxIterations: number;
|
|
14
|
+
showThinking: boolean;
|
|
14
15
|
confirmFn: (message: string) => Promise<boolean>;
|
|
15
16
|
}
|
|
16
17
|
export declare class Agent {
|
|
@@ -23,6 +24,7 @@ export declare class Agent {
|
|
|
23
24
|
private autoYes;
|
|
24
25
|
private allowDangerous;
|
|
25
26
|
private maxIterations;
|
|
27
|
+
private showThinking;
|
|
26
28
|
private confirmFn;
|
|
27
29
|
constructor(opts: AgentOptions);
|
|
28
30
|
initialize(): Promise<void>;
|
|
@@ -34,5 +36,13 @@ export declare class Agent {
|
|
|
34
36
|
resetHistory(): void;
|
|
35
37
|
private executeTool;
|
|
36
38
|
private logToolExecution;
|
|
39
|
+
/**
|
|
40
|
+
* Split thinking blocks (wrapped in <think>...</think>) from visible content.
|
|
41
|
+
*/
|
|
42
|
+
private splitThinking;
|
|
43
|
+
/**
|
|
44
|
+
* Display thinking/reasoning text to stderr with visual formatting.
|
|
45
|
+
*/
|
|
46
|
+
private emitThinking;
|
|
37
47
|
}
|
|
38
48
|
//# sourceMappingURL=agent.d.ts.map
|
package/dist/core/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,WAAW,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAwC;gBAE7C,IAAI,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,WAAW,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAwC;gBAE7C,IAAI,EAAE,YAAY;IAaxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;OAGG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0FhD,YAAY,IAAI,IAAI;YAMN,WAAW;IA8BzB,OAAO,CAAC,gBAAgB;IAuDxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,YAAY;CAerB"}
|
package/dist/core/agent.js
CHANGED
|
@@ -10,6 +10,7 @@ export class Agent {
|
|
|
10
10
|
autoYes;
|
|
11
11
|
allowDangerous;
|
|
12
12
|
maxIterations;
|
|
13
|
+
showThinking;
|
|
13
14
|
confirmFn;
|
|
14
15
|
constructor(opts) {
|
|
15
16
|
this.provider = opts.provider;
|
|
@@ -20,6 +21,7 @@ export class Agent {
|
|
|
20
21
|
this.autoYes = opts.autoYes;
|
|
21
22
|
this.allowDangerous = opts.allowDangerous;
|
|
22
23
|
this.maxIterations = opts.maxIterations;
|
|
24
|
+
this.showThinking = opts.showThinking;
|
|
23
25
|
this.confirmFn = opts.confirmFn;
|
|
24
26
|
}
|
|
25
27
|
async initialize() {
|
|
@@ -65,6 +67,10 @@ export class Agent {
|
|
|
65
67
|
}
|
|
66
68
|
// Tool calls โ execute, feed results back, continue
|
|
67
69
|
if (response.toolCalls.length > 0) {
|
|
70
|
+
// Extract and display thinking/reasoning if --show-thinking is on
|
|
71
|
+
if (this.showThinking && response.content) {
|
|
72
|
+
this.emitThinking(response.content);
|
|
73
|
+
}
|
|
68
74
|
this.messages.push({
|
|
69
75
|
role: 'assistant',
|
|
70
76
|
content: response.content,
|
|
@@ -84,8 +90,14 @@ export class Agent {
|
|
|
84
90
|
}
|
|
85
91
|
// Final text response
|
|
86
92
|
if (response.content) {
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
// Show any final thinking if enabled
|
|
94
|
+
const { thinking, visible } = this.splitThinking(response.content);
|
|
95
|
+
if (this.showThinking && thinking) {
|
|
96
|
+
this.emitThinking(thinking);
|
|
97
|
+
}
|
|
98
|
+
const finalContent = visible || response.content;
|
|
99
|
+
this.messages.push({ role: 'assistant', content: finalContent });
|
|
100
|
+
return finalContent;
|
|
89
101
|
}
|
|
90
102
|
// Neither content nor tool calls โ loop shouldn't continue
|
|
91
103
|
break;
|
|
@@ -134,10 +146,27 @@ export class Agent {
|
|
|
134
146
|
catch {
|
|
135
147
|
/* ignore */
|
|
136
148
|
}
|
|
137
|
-
|
|
149
|
+
// Tool-specific icons for visual clarity
|
|
150
|
+
const TOOL_ICONS = {
|
|
151
|
+
read_file: '๐',
|
|
152
|
+
write_file: '๐',
|
|
153
|
+
patch_file: '๐ฉน',
|
|
154
|
+
stat_file: '๐',
|
|
155
|
+
list_files: '๐',
|
|
156
|
+
search_text: '๐',
|
|
157
|
+
run_command: 'โก',
|
|
158
|
+
web_search: '๐',
|
|
159
|
+
git_status: '๐',
|
|
160
|
+
git_diff: '๐',
|
|
161
|
+
git_commit: '๐ฆ',
|
|
162
|
+
project_detect: '๐ฌ',
|
|
163
|
+
test_run: '๐งช',
|
|
164
|
+
};
|
|
165
|
+
const toolIcon = TOOL_ICONS[name] ?? '๐ง';
|
|
166
|
+
const statusIcon = result.success ? chalk.green('โ') : chalk.red('โ');
|
|
138
167
|
const label = chalk.cyan(`[${name}]`);
|
|
139
168
|
// Concise single-line summary per tool call
|
|
140
|
-
const detail = name === 'write_file' || name === 'read_file'
|
|
169
|
+
const detail = name === 'write_file' || name === 'read_file' || name === 'patch_file' || name === 'stat_file'
|
|
141
170
|
? String(args['path'] ?? '')
|
|
142
171
|
: name === 'run_command'
|
|
143
172
|
? String(args['command'] ?? '')
|
|
@@ -145,11 +174,50 @@ export class Agent {
|
|
|
145
174
|
? String(args['path'] ?? '.')
|
|
146
175
|
: name === 'search_text' || name === 'web_search'
|
|
147
176
|
? `"${String(args['query'] ?? '')}"`
|
|
148
|
-
: ''
|
|
149
|
-
|
|
177
|
+
: name === 'git_diff'
|
|
178
|
+
? args['staged'] ? '(staged)' : '(unstaged)'
|
|
179
|
+
: name === 'git_commit'
|
|
180
|
+
? `"${String(args['message'] ?? '').slice(0, 60)}"`
|
|
181
|
+
: name === 'test_run'
|
|
182
|
+
? String(args['filter'] ?? args['command'] ?? 'auto-detect')
|
|
183
|
+
: '';
|
|
184
|
+
process.stderr.write(` ${toolIcon} ${statusIcon} ${label} ${detail}\n`);
|
|
150
185
|
if (!result.success && result.error) {
|
|
151
186
|
process.stderr.write(` ${chalk.red(result.error)}\n`);
|
|
152
187
|
}
|
|
153
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Split thinking blocks (wrapped in <think>...</think>) from visible content.
|
|
191
|
+
*/
|
|
192
|
+
splitThinking(content) {
|
|
193
|
+
const thinkRegex = /<think>([\s\S]*?)<\/think>/gi;
|
|
194
|
+
const thinkBlocks = [];
|
|
195
|
+
let visible = content;
|
|
196
|
+
let match;
|
|
197
|
+
while ((match = thinkRegex.exec(content)) !== null) {
|
|
198
|
+
thinkBlocks.push(match[1]?.trim() ?? '');
|
|
199
|
+
}
|
|
200
|
+
visible = content.replace(thinkRegex, '').trim();
|
|
201
|
+
return {
|
|
202
|
+
thinking: thinkBlocks.length > 0 ? thinkBlocks.join('\n\n') : null,
|
|
203
|
+
visible,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Display thinking/reasoning text to stderr with visual formatting.
|
|
208
|
+
*/
|
|
209
|
+
emitThinking(text) {
|
|
210
|
+
const { thinking } = this.splitThinking(text);
|
|
211
|
+
const content = thinking ?? text;
|
|
212
|
+
if (!content.trim())
|
|
213
|
+
return;
|
|
214
|
+
const border = chalk.dim.magenta('โ');
|
|
215
|
+
const header = chalk.dim.magenta('โโ ๐ญ Reasoning โโโโโโโโโโโโโโโโโ');
|
|
216
|
+
const footer = chalk.dim.magenta('โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ');
|
|
217
|
+
const lines = content
|
|
218
|
+
.split('\n')
|
|
219
|
+
.map((line) => `${border} ${chalk.dim.italic(line)}`);
|
|
220
|
+
process.stderr.write(`\n${header}\n${lines.join('\n')}\n${footer}\n\n`);
|
|
221
|
+
}
|
|
154
222
|
}
|
|
155
223
|
//# sourceMappingURL=agent.js.map
|
package/dist/core/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EAAE,GACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EAAE,GACtB,MAAM,CAkFR"}
|
|
@@ -6,11 +6,11 @@ export function buildSystemPrompt(workspaceDir, skillSnippets) {
|
|
|
6
6
|
let prompt = `You are Developer-AI, a terminal coding agent operating inside the user's current workspace.
|
|
7
7
|
Workspace root: ${workspaceDir}
|
|
8
8
|
|
|
9
|
-
You must accomplish tasks by calling the provided tools. Never claim you changed a file unless you used write_file.
|
|
9
|
+
You must accomplish tasks by calling the provided tools. Never claim you changed a file unless you used write_file or patch_file.
|
|
10
10
|
|
|
11
11
|
## Operating Rules
|
|
12
12
|
- Think step-by-step. Explain your plan briefly (1โ4 bullets), then execute with tool calls.
|
|
13
|
-
- Prefer minimal, correct changes.
|
|
13
|
+
- Prefer minimal, correct changes. Avoid rewriting entire files when only a few lines need to change.
|
|
14
14
|
- When creating websites or apps:
|
|
15
15
|
โข Produce self-contained files (inline SVGs, inline data).
|
|
16
16
|
โข NEVER reference external assets, images, or data files that don't exist.
|
|
@@ -20,19 +20,61 @@ You must accomplish tasks by calling the provided tools. Never claim you changed
|
|
|
20
20
|
- If a tool fails, explain briefly and try an alternative approach.
|
|
21
21
|
- After completing edits, summarise what changed and how to run/test.
|
|
22
22
|
|
|
23
|
+
## Token-Efficient Editing Strategy
|
|
24
|
+
You have TWO file-editing tools. Choose wisely to minimise token usage:
|
|
25
|
+
|
|
26
|
+
1. **patch_file** (PREFERRED for edits) โ targeted string replacement.
|
|
27
|
+
- Use for changing text, fixing bugs, updating values, renaming, small additions/removals.
|
|
28
|
+
- Provide old_string with 2โ3 lines of surrounding context so it matches exactly once.
|
|
29
|
+
- Example: changing footer text, updating a version number, fixing a typo.
|
|
30
|
+
|
|
31
|
+
2. **write_file** โ full file creation or complete rewrite.
|
|
32
|
+
- Use ONLY when creating new files or when >50% of the file content changes.
|
|
33
|
+
- Set confirmOverwrite=true when overwriting.
|
|
34
|
+
|
|
35
|
+
โ ๏ธ CRITICAL: For small changes (a line, a paragraph, a CSS rule), ALWAYS use patch_file.
|
|
36
|
+
Never rewrite an entire file just to change a few lines โ this wastes tokens and risks data loss.
|
|
37
|
+
|
|
23
38
|
## Tool Usage
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- Use
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
39
|
+
|
|
40
|
+
### File operations
|
|
41
|
+
- **read_file** โ Read files. Use start_line/end_line for large files to save tokens.
|
|
42
|
+
- **write_file** โ Create new files or complete rewrites only.
|
|
43
|
+
- **patch_file** โ Targeted string replacement (PREFERRED for edits).
|
|
44
|
+
- **stat_file** โ Check file metadata, size, or hash. Use to verify edits landed.
|
|
45
|
+
- **list_files** โ Explore project structure.
|
|
46
|
+
- **search_text** โ Find code patterns with regex across the workspace.
|
|
47
|
+
|
|
48
|
+
### Execution
|
|
49
|
+
- **run_command** โ Run shell commands. Supports custom timeout_ms, env vars, max_output_kb.
|
|
50
|
+
|
|
51
|
+
### Git (native โ prefer these over raw git commands)
|
|
52
|
+
- **git_status** โ Check working tree state (staged, unstaged, untracked).
|
|
53
|
+
- **git_diff** โ View changes (staged or unstaged) with context.
|
|
54
|
+
- **git_commit** โ Stage files and commit with a message.
|
|
55
|
+
|
|
56
|
+
### Project intelligence
|
|
57
|
+
- **project_detect** โ Detect language, framework, package manager, test runner. Call early.
|
|
58
|
+
- **test_run** โ Run tests with auto-detection. Parses failures into structured output.
|
|
59
|
+
|
|
60
|
+
### Web
|
|
61
|
+
- **web_search** โ Search the web (if configured).
|
|
62
|
+
|
|
63
|
+
## Workflow Best Practices
|
|
64
|
+
1. Start with project_detect or list_files to orient yourself.
|
|
65
|
+
2. Use read_file with line ranges for large files โ don't read the whole file if you only need a section.
|
|
66
|
+
3. Use patch_file for all small edits. Never rewrite a file to change a few lines.
|
|
67
|
+
4. After edits, use stat_file or read_file (with range) to verify changes landed correctly.
|
|
68
|
+
5. Use git_status / git_diff to review changes before committing.
|
|
69
|
+
6. Run test_run after code changes to validate correctness.
|
|
30
70
|
|
|
31
71
|
## Never
|
|
32
|
-
- Fabricate file edits โ always use
|
|
72
|
+
- Fabricate file edits โ always use write_file or patch_file.
|
|
33
73
|
- Output secrets or API keys.
|
|
34
74
|
- Run destructive commands (rm -rf, etc.) without explicit user approval.
|
|
35
|
-
- Reference external assets/files that haven't been created
|
|
75
|
+
- Reference external assets/files that haven't been created.
|
|
76
|
+
- Rewrite an entire file when patch_file can accomplish the edit.
|
|
77
|
+
- Read entire large files when you only need a few lines โ use start_line/end_line.`;
|
|
36
78
|
if (skillSnippets.length > 0) {
|
|
37
79
|
prompt += '\n\n## Relevant Skills\n';
|
|
38
80
|
for (const snippet of skillSnippets) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,aAAuB;IAEvB,IAAI,MAAM,GAAG;kBACG,YAAY
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,aAAuB;IAEvB,IAAI,MAAM,GAAG;kBACG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oFAsEsD,CAAC;IAEnF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,0BAA0B,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/skills/loader.d.ts
CHANGED
|
@@ -3,9 +3,11 @@ interface Skill {
|
|
|
3
3
|
description: string;
|
|
4
4
|
content: string;
|
|
5
5
|
filePath: string;
|
|
6
|
+
/** Pre-computed keyword set for fast matching */
|
|
7
|
+
keywords: Set<string>;
|
|
6
8
|
}
|
|
7
9
|
/**
|
|
8
|
-
* Loads SKILL.md files and provides
|
|
10
|
+
* Loads SKILL.md files and provides intelligent keyword-based matching
|
|
9
11
|
* to inject relevant skill context into agent prompts.
|
|
10
12
|
*/
|
|
11
13
|
export declare class SkillsLoader {
|
|
@@ -15,8 +17,10 @@ export declare class SkillsLoader {
|
|
|
15
17
|
constructor(skillsDirs: string[]);
|
|
16
18
|
load(): Promise<void>;
|
|
17
19
|
/**
|
|
18
|
-
* Find skills relevant to a query using
|
|
19
|
-
*
|
|
20
|
+
* Find skills relevant to a query using multi-signal scoring:
|
|
21
|
+
* 1. Alias-based category matching (highest weight)
|
|
22
|
+
* 2. Name / description keyword matches
|
|
23
|
+
* 3. Body content keyword matches
|
|
20
24
|
*/
|
|
21
25
|
findRelevant(query: string, maxResults?: number): Skill[];
|
|
22
26
|
getAll(): Skill[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB;AA6DD;;;GAGG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,UAAU;IAH9B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAS;gBAEH,UAAU,EAAE,MAAM,EAAE;IAElC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC3B;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,KAAK,EAAE;IAyDpD,MAAM,IAAI,KAAK,EAAE;CAGlB"}
|