@dlnk/cli 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/engine.d.ts +30 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +218 -0
- package/dist/engine.js.map +1 -0
- package/dist/index.js +175 -93
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +31 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +159 -0
- package/dist/mcp.js.map +1 -0
- package/dist/memory.d.ts +44 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +161 -0
- package/dist/memory.js.map +1 -0
- package/dist/react.js +2 -2
- package/dist/react.js.map +1 -1
- package/dist/subagent.d.ts +37 -0
- package/dist/subagent.d.ts.map +1 -0
- package/dist/subagent.js +128 -0
- package/dist/subagent.js.map +1 -0
- package/dist/tools.d.ts +29 -8
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +207 -70
- package/dist/tools.js.map +1 -1
- package/dlnk-release.sh +87 -0
- package/package.json +3 -2
package/dist/subagent.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SUB_AGENTS = void 0;
|
|
7
|
+
exports.runPipeline = runPipeline;
|
|
8
|
+
exports.runSwarm = runSwarm;
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const engine_js_1 = require("./engine.js");
|
|
11
|
+
const memory_js_1 = require("./memory.js");
|
|
12
|
+
// ── Predefined Sub-agent Roles ────────────────────────────────
|
|
13
|
+
exports.SUB_AGENTS = {
|
|
14
|
+
planner: {
|
|
15
|
+
id: 'planner',
|
|
16
|
+
name: 'Planner',
|
|
17
|
+
emoji: '🧠',
|
|
18
|
+
role: 'expert software architect and project planner',
|
|
19
|
+
systemContext: 'Break down complex tasks into clear, actionable steps. Output a numbered execution plan.',
|
|
20
|
+
},
|
|
21
|
+
coder: {
|
|
22
|
+
id: 'coder',
|
|
23
|
+
name: 'Coder',
|
|
24
|
+
emoji: '💻',
|
|
25
|
+
role: 'senior software engineer',
|
|
26
|
+
systemContext: 'Write clean, production-ready code. Always handle errors. Add comments for complex logic.',
|
|
27
|
+
},
|
|
28
|
+
reviewer: {
|
|
29
|
+
id: 'reviewer',
|
|
30
|
+
name: 'Reviewer',
|
|
31
|
+
emoji: '🔍',
|
|
32
|
+
role: 'senior code reviewer',
|
|
33
|
+
systemContext: 'Review code for bugs, security issues, performance, and best practices. Be specific.',
|
|
34
|
+
},
|
|
35
|
+
tester: {
|
|
36
|
+
id: 'tester',
|
|
37
|
+
name: 'Tester',
|
|
38
|
+
emoji: '🧪',
|
|
39
|
+
role: 'QA engineer',
|
|
40
|
+
systemContext: 'Write comprehensive tests. Cover edge cases, error cases, and happy paths.',
|
|
41
|
+
},
|
|
42
|
+
devops: {
|
|
43
|
+
id: 'devops',
|
|
44
|
+
name: 'DevOps',
|
|
45
|
+
emoji: '⚙️',
|
|
46
|
+
role: 'DevOps engineer',
|
|
47
|
+
systemContext: 'Handle deployment, CI/CD, Docker, environment configs, and infrastructure.',
|
|
48
|
+
},
|
|
49
|
+
researcher: {
|
|
50
|
+
id: 'researcher',
|
|
51
|
+
name: 'Researcher',
|
|
52
|
+
emoji: '🔎',
|
|
53
|
+
role: 'technical researcher',
|
|
54
|
+
systemContext: 'Search for information, summarize findings, and provide citations.',
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
// ── Sequential Multi-Agent Pipeline ───────────────────────────
|
|
58
|
+
async function runPipeline(masterTask, agentIds, options = {}) {
|
|
59
|
+
const cwd = options.cwd || process.cwd();
|
|
60
|
+
const sharedMemory = options.sharedMemory || new memory_js_1.MemoryManager(cwd);
|
|
61
|
+
const agentResults = [];
|
|
62
|
+
// Step 1: Planner breaks down the master task
|
|
63
|
+
let plan = masterTask;
|
|
64
|
+
if (agentIds.length > 1 && agentIds[0] !== 'planner') {
|
|
65
|
+
console.log(chalk_1.default.gray('\n 🧠 Orchestrator planning task decomposition...'));
|
|
66
|
+
const planResult = await (0, engine_js_1.runAgent)(`Break down this task into ${agentIds.length} subtasks for these agents: ${agentIds.join(', ')}.\nTask: ${masterTask}\n\nOutput a numbered list of subtasks, one per agent.`, {
|
|
67
|
+
cwd,
|
|
68
|
+
permissionMode: 'auto',
|
|
69
|
+
memory: new memory_js_1.MemoryManager(cwd),
|
|
70
|
+
});
|
|
71
|
+
plan = planResult.output;
|
|
72
|
+
}
|
|
73
|
+
// Step 2: Extract subtasks from plan (simple line parsing)
|
|
74
|
+
const planLines = plan.split('\n').filter(l => /^\d+\./.test(l.trim()));
|
|
75
|
+
const subtasks = planLines.length >= agentIds.length
|
|
76
|
+
? planLines.map(l => l.replace(/^\d+\.\s*/, '').trim())
|
|
77
|
+
: agentIds.map(() => masterTask); // fallback: same task for all
|
|
78
|
+
// Step 3: Run each agent with their subtask
|
|
79
|
+
for (let i = 0; i < agentIds.length; i++) {
|
|
80
|
+
const agentId = agentIds[i];
|
|
81
|
+
const agentDef = exports.SUB_AGENTS[agentId];
|
|
82
|
+
if (!agentDef)
|
|
83
|
+
continue;
|
|
84
|
+
const task = subtasks[i] || masterTask;
|
|
85
|
+
if (options.onAgentStart)
|
|
86
|
+
options.onAgentStart(agentDef, task);
|
|
87
|
+
// Inject previous results as context
|
|
88
|
+
const contextNote = agentResults.length > 0
|
|
89
|
+
? `\n\nPrevious agents' work:\n${agentResults.map(r => `[${r.agentId}]: ${r.result.output.slice(0, 500)}`).join('\n\n')}`
|
|
90
|
+
: '';
|
|
91
|
+
const result = await (0, engine_js_1.runAgent)(task + contextNote, {
|
|
92
|
+
cwd,
|
|
93
|
+
role: agentDef.role,
|
|
94
|
+
permissionMode: 'auto',
|
|
95
|
+
memory: sharedMemory,
|
|
96
|
+
onStep: (step) => {
|
|
97
|
+
if (options.onStep)
|
|
98
|
+
options.onStep(agentId, step.type, step.content);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
agentResults.push({ agentId, task, result });
|
|
102
|
+
// Add to shared memory
|
|
103
|
+
sharedMemory.addNote(`[${agentDef.emoji} ${agentDef.name}] completed: ${task.slice(0, 100)}`);
|
|
104
|
+
}
|
|
105
|
+
// Step 4: Summarize
|
|
106
|
+
const summary = agentResults
|
|
107
|
+
.map(r => `${exports.SUB_AGENTS[r.agentId]?.emoji || '•'} **${r.agentId}**: ${r.result.success ? '✓' : '✗'} (${r.result.iterations} steps)`)
|
|
108
|
+
.join('\n');
|
|
109
|
+
return { plan, agentResults, summary };
|
|
110
|
+
}
|
|
111
|
+
// ── Parallel Swarm (fire all agents simultaneously) ───────────
|
|
112
|
+
async function runSwarm(tasks, options = {}) {
|
|
113
|
+
const cwd = options.cwd || process.cwd();
|
|
114
|
+
const promises = tasks.map(({ agentId, task }) => {
|
|
115
|
+
const agentDef = exports.SUB_AGENTS[agentId];
|
|
116
|
+
return (0, engine_js_1.runAgent)(task, {
|
|
117
|
+
cwd,
|
|
118
|
+
role: agentDef?.role,
|
|
119
|
+
permissionMode: 'auto',
|
|
120
|
+
onStep: (step) => {
|
|
121
|
+
if (options.onStep)
|
|
122
|
+
options.onStep(agentId, step.type, step.content);
|
|
123
|
+
}
|
|
124
|
+
}).then(result => ({ agentId, task, result }));
|
|
125
|
+
});
|
|
126
|
+
return Promise.all(promises);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=subagent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../src/subagent.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type PermissionMode = 'auto' | 'ask' | 'deny';
|
|
3
|
+
export interface ToolPermission {
|
|
4
|
+
mode: PermissionMode;
|
|
5
|
+
allowedCommands?: string[];
|
|
6
|
+
blockedPatterns?: RegExp[];
|
|
7
|
+
}
|
|
8
|
+
export interface ToolDef {
|
|
2
9
|
name: string;
|
|
3
10
|
description: string;
|
|
4
|
-
|
|
5
|
-
|
|
11
|
+
schema: z.ZodTypeAny;
|
|
12
|
+
permission: ToolPermission;
|
|
13
|
+
execute: (params: any, ctx: ToolContext) => Promise<ToolResult>;
|
|
14
|
+
}
|
|
15
|
+
export interface ToolContext {
|
|
16
|
+
cwd: string;
|
|
17
|
+
confirm: (message: string) => Promise<boolean>;
|
|
6
18
|
}
|
|
7
19
|
export interface ToolResult {
|
|
8
20
|
success: boolean;
|
|
@@ -11,11 +23,20 @@ export interface ToolResult {
|
|
|
11
23
|
}
|
|
12
24
|
export interface ToolCall {
|
|
13
25
|
tool: string;
|
|
14
|
-
params: Record<string,
|
|
26
|
+
params: Record<string, unknown>;
|
|
27
|
+
id?: string;
|
|
15
28
|
}
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const
|
|
18
|
-
export declare
|
|
29
|
+
export declare const readFileTool: ToolDef;
|
|
30
|
+
export declare const writeFileTool: ToolDef;
|
|
31
|
+
export declare const patchFileTool: ToolDef;
|
|
32
|
+
export declare const listDirTool: ToolDef;
|
|
33
|
+
export declare const shellTool: ToolDef;
|
|
34
|
+
export declare const fetchUrlTool: ToolDef;
|
|
35
|
+
export declare const searchTool: ToolDef;
|
|
36
|
+
export declare const gitTool: ToolDef;
|
|
37
|
+
export declare const ALL_TOOLS: ToolDef[];
|
|
38
|
+
export declare const TOOL_MAP: Record<string, ToolDef>;
|
|
39
|
+
export declare function getToolsSystemPrompt(cwd: string): string;
|
|
19
40
|
export declare function parseToolCall(text: string): ToolCall | null;
|
|
20
|
-
export declare function executeTool(call: ToolCall): Promise<ToolResult>;
|
|
41
|
+
export declare function executeTool(call: ToolCall, ctx: ToolContext): Promise<ToolResult>;
|
|
21
42
|
//# sourceMappingURL=tools.d.ts.map
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAmBD,eAAO,MAAM,YAAY,EAAE,OAoB1B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OAkB3B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OAsB3B,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,OAmBzB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,OAgCvB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,OA0B1B,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,OAyBxB,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,OAoBrB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,OAAO,EAS9B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAE5C,CAAC;AAGF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA+BxD;AAGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAU3D;AAGD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,UAAU,CAAC,CAyBrB"}
|
package/dist/tools.js
CHANGED
|
@@ -33,21 +33,41 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.TOOL_MAP = exports.ALL_TOOLS = void 0;
|
|
36
|
+
exports.TOOL_MAP = exports.ALL_TOOLS = exports.gitTool = exports.searchTool = exports.fetchUrlTool = exports.shellTool = exports.listDirTool = exports.patchFileTool = exports.writeFileTool = exports.readFileTool = void 0;
|
|
37
37
|
exports.getToolsSystemPrompt = getToolsSystemPrompt;
|
|
38
38
|
exports.parseToolCall = parseToolCall;
|
|
39
39
|
exports.executeTool = executeTool;
|
|
40
|
+
const zod_1 = require("zod");
|
|
41
|
+
// ── DANGEROUS patterns ────────────────────────────────────────
|
|
42
|
+
const DANGEROUS = [
|
|
43
|
+
/rm\s+-rf\s+\//,
|
|
44
|
+
/mkfs/,
|
|
45
|
+
/dd\s+if=/,
|
|
46
|
+
/>\s*\/dev\/(sd|hd|nvme)/,
|
|
47
|
+
/chmod\s+777\s+\//,
|
|
48
|
+
/curl.*\|\s*(bash|sh)/,
|
|
49
|
+
/wget.*\|\s*(bash|sh)/,
|
|
50
|
+
];
|
|
51
|
+
// ── Tool Registry ──────────────────────────────────────────────
|
|
40
52
|
const fs = __importStar(require("fs"));
|
|
41
53
|
const path = __importStar(require("path"));
|
|
42
54
|
const child_process_1 = require("child_process");
|
|
43
|
-
//
|
|
44
|
-
|
|
55
|
+
// read_file
|
|
56
|
+
exports.readFileTool = {
|
|
45
57
|
name: 'read_file',
|
|
46
|
-
description: 'Read contents
|
|
47
|
-
|
|
48
|
-
|
|
58
|
+
description: 'Read file contents. Returns text.',
|
|
59
|
+
schema: zod_1.z.object({
|
|
60
|
+
path: zod_1.z.string().describe('File path to read'),
|
|
61
|
+
lines: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional().describe('[start, end] line range (1-indexed)'),
|
|
62
|
+
}),
|
|
63
|
+
permission: { mode: 'auto' },
|
|
64
|
+
execute: async ({ path: filePath, lines }) => {
|
|
49
65
|
try {
|
|
50
|
-
|
|
66
|
+
let content = fs.readFileSync(filePath, 'utf-8');
|
|
67
|
+
if (lines) {
|
|
68
|
+
const [s, e] = lines;
|
|
69
|
+
content = content.split('\n').slice(s - 1, e).join('\n');
|
|
70
|
+
}
|
|
51
71
|
return { success: true, output: content };
|
|
52
72
|
}
|
|
53
73
|
catch (e) {
|
|
@@ -55,66 +75,100 @@ const readFileTool = {
|
|
|
55
75
|
}
|
|
56
76
|
}
|
|
57
77
|
};
|
|
58
|
-
|
|
78
|
+
// write_file
|
|
79
|
+
exports.writeFileTool = {
|
|
59
80
|
name: 'write_file',
|
|
60
|
-
description: 'Write
|
|
61
|
-
|
|
81
|
+
description: 'Write or overwrite a file.',
|
|
82
|
+
schema: zod_1.z.object({
|
|
83
|
+
path: zod_1.z.string().describe('File path'),
|
|
84
|
+
content: zod_1.z.string().describe('Full content to write'),
|
|
85
|
+
}),
|
|
86
|
+
permission: { mode: 'ask' },
|
|
62
87
|
execute: async ({ path: filePath, content }) => {
|
|
63
88
|
try {
|
|
64
89
|
const dir = path.dirname(filePath);
|
|
65
90
|
if (!fs.existsSync(dir))
|
|
66
91
|
fs.mkdirSync(dir, { recursive: true });
|
|
67
92
|
fs.writeFileSync(filePath, content, 'utf-8');
|
|
68
|
-
return { success: true, output: `Written ${content.length} bytes
|
|
93
|
+
return { success: true, output: `Written ${content.length} bytes → ${filePath}` };
|
|
69
94
|
}
|
|
70
95
|
catch (e) {
|
|
71
96
|
return { success: false, output: '', error: e.message };
|
|
72
97
|
}
|
|
73
98
|
}
|
|
74
99
|
};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
100
|
+
// patch_file — apply unified diff style edit
|
|
101
|
+
exports.patchFileTool = {
|
|
102
|
+
name: 'patch_file',
|
|
103
|
+
description: 'Replace a specific block of text in a file (find & replace). Safer than write_file.',
|
|
104
|
+
schema: zod_1.z.object({
|
|
105
|
+
path: zod_1.z.string().describe('File path'),
|
|
106
|
+
old_text: zod_1.z.string().describe('Exact text to find and replace'),
|
|
107
|
+
new_text: zod_1.z.string().describe('Replacement text'),
|
|
108
|
+
}),
|
|
109
|
+
permission: { mode: 'auto' },
|
|
110
|
+
execute: async ({ path: filePath, old_text, new_text }) => {
|
|
80
111
|
try {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
112
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
113
|
+
if (!content.includes(old_text)) {
|
|
114
|
+
return { success: false, output: '', error: `Text not found in ${filePath}` };
|
|
115
|
+
}
|
|
116
|
+
const newContent = content.replace(old_text, new_text);
|
|
117
|
+
fs.writeFileSync(filePath, newContent, 'utf-8');
|
|
118
|
+
return { success: true, output: `Patched ${filePath}` };
|
|
84
119
|
}
|
|
85
120
|
catch (e) {
|
|
86
121
|
return { success: false, output: '', error: e.message };
|
|
87
122
|
}
|
|
88
123
|
}
|
|
89
124
|
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
125
|
+
// list_dir
|
|
126
|
+
exports.listDirTool = {
|
|
127
|
+
name: 'list_dir',
|
|
128
|
+
description: 'List directory contents.',
|
|
129
|
+
schema: zod_1.z.object({
|
|
130
|
+
path: zod_1.z.string().default('.').describe('Directory path'),
|
|
131
|
+
recursive: zod_1.z.boolean().default(false).describe('List recursively'),
|
|
132
|
+
}),
|
|
133
|
+
permission: { mode: 'auto' },
|
|
134
|
+
execute: async ({ path: dirPath, recursive }) => {
|
|
95
135
|
try {
|
|
96
|
-
|
|
97
|
-
|
|
136
|
+
const cmd = recursive
|
|
137
|
+
? `find ${dirPath} -not -path '*/node_modules/*' -not -path '*/.git/*' | head -100`
|
|
138
|
+
: `ls -la ${dirPath}`;
|
|
139
|
+
const out = (0, child_process_1.execSync)(cmd, { encoding: 'utf-8', timeout: 5000 });
|
|
140
|
+
return { success: true, output: out.trim() };
|
|
98
141
|
}
|
|
99
142
|
catch (e) {
|
|
100
143
|
return { success: false, output: '', error: e.message };
|
|
101
144
|
}
|
|
102
145
|
}
|
|
103
146
|
};
|
|
104
|
-
//
|
|
105
|
-
|
|
147
|
+
// shell
|
|
148
|
+
exports.shellTool = {
|
|
106
149
|
name: 'shell',
|
|
107
|
-
description: 'Execute a shell command
|
|
108
|
-
|
|
109
|
-
|
|
150
|
+
description: 'Execute a shell command. For code execution, file operations, git, npm, etc.',
|
|
151
|
+
schema: zod_1.z.object({
|
|
152
|
+
command: zod_1.z.string().describe('Shell command to run'),
|
|
153
|
+
cwd: zod_1.z.string().optional().describe('Working directory'),
|
|
154
|
+
timeout: zod_1.z.number().default(30000).describe('Timeout in ms'),
|
|
155
|
+
}),
|
|
156
|
+
permission: { mode: 'ask', blockedPatterns: DANGEROUS },
|
|
157
|
+
execute: async ({ command, cwd, timeout }, ctx) => {
|
|
158
|
+
// Check dangerous patterns
|
|
159
|
+
for (const pat of DANGEROUS) {
|
|
160
|
+
if (pat.test(command)) {
|
|
161
|
+
return { success: false, output: '', error: `Blocked: dangerous command pattern detected` };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
110
164
|
try {
|
|
111
|
-
const
|
|
112
|
-
cwd: cwd ||
|
|
113
|
-
timeout: 30000,
|
|
165
|
+
const out = (0, child_process_1.execSync)(command, {
|
|
166
|
+
cwd: cwd || ctx.cwd,
|
|
114
167
|
encoding: 'utf-8',
|
|
115
|
-
|
|
168
|
+
timeout,
|
|
169
|
+
maxBuffer: 1024 * 1024 * 5,
|
|
116
170
|
});
|
|
117
|
-
return { success: true, output:
|
|
171
|
+
return { success: true, output: out.trim() };
|
|
118
172
|
}
|
|
119
173
|
catch (e) {
|
|
120
174
|
return {
|
|
@@ -125,76 +179,140 @@ const shellTool = {
|
|
|
125
179
|
}
|
|
126
180
|
}
|
|
127
181
|
};
|
|
128
|
-
//
|
|
129
|
-
|
|
182
|
+
// fetch_url
|
|
183
|
+
exports.fetchUrlTool = {
|
|
184
|
+
name: 'fetch_url',
|
|
185
|
+
description: 'Fetch content from a URL. Returns text/HTML.',
|
|
186
|
+
schema: zod_1.z.object({
|
|
187
|
+
url: zod_1.z.string().url().describe('URL to fetch'),
|
|
188
|
+
method: zod_1.z.enum(['GET', 'POST']).default('GET'),
|
|
189
|
+
body: zod_1.z.string().optional(),
|
|
190
|
+
}),
|
|
191
|
+
permission: { mode: 'auto' },
|
|
192
|
+
execute: async ({ url, method, body }) => {
|
|
193
|
+
try {
|
|
194
|
+
const fetch = (await Promise.resolve().then(() => __importStar(require('node-fetch')))).default;
|
|
195
|
+
const res = await fetch(url, {
|
|
196
|
+
method,
|
|
197
|
+
body: body || undefined,
|
|
198
|
+
headers: { 'User-Agent': 'dlnk-agent/0.3.0' },
|
|
199
|
+
timeout: 15000,
|
|
200
|
+
});
|
|
201
|
+
const text = await res.text();
|
|
202
|
+
// Truncate large responses
|
|
203
|
+
const out = text.length > 8000 ? text.slice(0, 8000) + '\n[truncated...]' : text;
|
|
204
|
+
return { success: true, output: out };
|
|
205
|
+
}
|
|
206
|
+
catch (e) {
|
|
207
|
+
return { success: false, output: '', error: e.message };
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
// search_web
|
|
212
|
+
exports.searchTool = {
|
|
130
213
|
name: 'search_web',
|
|
131
|
-
description: 'Search the web using DuckDuckGo',
|
|
132
|
-
|
|
214
|
+
description: 'Search the web using DuckDuckGo.',
|
|
215
|
+
schema: zod_1.z.object({
|
|
216
|
+
query: zod_1.z.string().describe('Search query'),
|
|
217
|
+
}),
|
|
218
|
+
permission: { mode: 'auto' },
|
|
133
219
|
execute: async ({ query }) => {
|
|
134
220
|
try {
|
|
135
221
|
const fetch = (await Promise.resolve().then(() => __importStar(require('node-fetch')))).default;
|
|
136
222
|
const url = `https://api.duckduckgo.com/?q=${encodeURIComponent(query)}&format=json&no_html=1&skip_disambig=1`;
|
|
137
|
-
const res = await fetch(url);
|
|
223
|
+
const res = await fetch(url, { timeout: 10000 });
|
|
138
224
|
const data = await res.json();
|
|
139
225
|
const results = [];
|
|
140
226
|
if (data.AbstractText)
|
|
141
|
-
results.push(
|
|
227
|
+
results.push(`📄 ${data.AbstractText}`);
|
|
142
228
|
if (data.RelatedTopics?.length) {
|
|
143
|
-
data.RelatedTopics.slice(0,
|
|
229
|
+
data.RelatedTopics.slice(0, 6).forEach((t) => {
|
|
144
230
|
if (t.Text)
|
|
145
|
-
results.push(
|
|
231
|
+
results.push(`• ${t.Text}`);
|
|
146
232
|
});
|
|
147
233
|
}
|
|
148
|
-
return {
|
|
149
|
-
success: true,
|
|
150
|
-
output: results.length ? results.join('\n') : 'No results found'
|
|
151
|
-
};
|
|
234
|
+
return { success: true, output: results.join('\n') || 'No results.' };
|
|
152
235
|
}
|
|
153
236
|
catch (e) {
|
|
154
237
|
return { success: false, output: '', error: e.message };
|
|
155
238
|
}
|
|
156
239
|
}
|
|
157
240
|
};
|
|
158
|
-
//
|
|
241
|
+
// git_status / git operations
|
|
242
|
+
exports.gitTool = {
|
|
243
|
+
name: 'git',
|
|
244
|
+
description: 'Run git commands (status, diff, log, add, commit, etc.)',
|
|
245
|
+
schema: zod_1.z.object({
|
|
246
|
+
subcommand: zod_1.z.string().describe('Git subcommand e.g. "status", "diff HEAD", "log --oneline -5"'),
|
|
247
|
+
cwd: zod_1.z.string().optional(),
|
|
248
|
+
}),
|
|
249
|
+
permission: { mode: 'auto' },
|
|
250
|
+
execute: async ({ subcommand, cwd }, ctx) => {
|
|
251
|
+
try {
|
|
252
|
+
const out = (0, child_process_1.execSync)(`git ${subcommand}`, {
|
|
253
|
+
cwd: cwd || ctx.cwd,
|
|
254
|
+
encoding: 'utf-8',
|
|
255
|
+
timeout: 15000,
|
|
256
|
+
});
|
|
257
|
+
return { success: true, output: out.trim() };
|
|
258
|
+
}
|
|
259
|
+
catch (e) {
|
|
260
|
+
return { success: false, output: e.stderr?.trim() || e.message, error: e.stderr?.trim() };
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
// ── Registry ───────────────────────────────────────────────────
|
|
159
265
|
exports.ALL_TOOLS = [
|
|
160
|
-
readFileTool,
|
|
161
|
-
writeFileTool,
|
|
162
|
-
|
|
163
|
-
listDirTool,
|
|
164
|
-
shellTool,
|
|
165
|
-
|
|
266
|
+
exports.readFileTool,
|
|
267
|
+
exports.writeFileTool,
|
|
268
|
+
exports.patchFileTool,
|
|
269
|
+
exports.listDirTool,
|
|
270
|
+
exports.shellTool,
|
|
271
|
+
exports.fetchUrlTool,
|
|
272
|
+
exports.searchTool,
|
|
273
|
+
exports.gitTool,
|
|
166
274
|
];
|
|
167
275
|
exports.TOOL_MAP = Object.fromEntries(exports.ALL_TOOLS.map(t => [t.name, t]));
|
|
168
|
-
|
|
276
|
+
// ── System prompt builder ──────────────────────────────────────
|
|
277
|
+
function getToolsSystemPrompt(cwd) {
|
|
169
278
|
const toolDocs = exports.ALL_TOOLS.map(t => {
|
|
170
|
-
const
|
|
171
|
-
|
|
279
|
+
const shape = t.schema instanceof zod_1.z.ZodObject ? t.schema.shape : {};
|
|
280
|
+
const params = Object.entries(shape)
|
|
281
|
+
.map(([k, v]) => ` ${k}: ${v.description || ''}`)
|
|
172
282
|
.join('\n');
|
|
173
|
-
return
|
|
283
|
+
return `### ${t.name}\n${t.description}\nParameters:\n${params}`;
|
|
174
284
|
}).join('\n\n');
|
|
175
|
-
return `You are a powerful AI agent
|
|
285
|
+
return `You are a powerful AI coding agent — like Claude Code or Gemini CLI.
|
|
286
|
+
You can autonomously read, write, and execute code to accomplish tasks.
|
|
287
|
+
|
|
288
|
+
Working directory: ${cwd}
|
|
176
289
|
|
|
290
|
+
## Available Tools
|
|
177
291
|
${toolDocs}
|
|
178
292
|
|
|
179
|
-
|
|
293
|
+
## Tool Call Format
|
|
294
|
+
When you need to use a tool, emit a JSON block:
|
|
180
295
|
\`\`\`tool
|
|
181
296
|
{"tool": "tool_name", "params": {"key": "value"}}
|
|
182
297
|
\`\`\`
|
|
183
298
|
|
|
184
|
-
Rules
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
299
|
+
## Rules
|
|
300
|
+
1. Think step by step before using tools
|
|
301
|
+
2. Use patch_file for small edits (safer than write_file)
|
|
302
|
+
3. Always read a file before editing it
|
|
303
|
+
4. Run tests/verification after making changes
|
|
304
|
+
5. If a command fails, diagnose and retry with corrected approach
|
|
305
|
+
6. When done, provide a clear summary of what was accomplished
|
|
306
|
+
7. Be concise — don't explain things the user didn't ask for`;
|
|
190
307
|
}
|
|
308
|
+
// ── Tool call parser ───────────────────────────────────────────
|
|
191
309
|
function parseToolCall(text) {
|
|
192
310
|
const match = text.match(/```tool\s*([\s\S]*?)\s*```/);
|
|
193
311
|
if (!match)
|
|
194
312
|
return null;
|
|
195
313
|
try {
|
|
196
314
|
const parsed = JSON.parse(match[1]);
|
|
197
|
-
if (parsed.tool && parsed.params)
|
|
315
|
+
if (parsed.tool && parsed.params !== undefined)
|
|
198
316
|
return parsed;
|
|
199
317
|
return null;
|
|
200
318
|
}
|
|
@@ -202,10 +320,29 @@ function parseToolCall(text) {
|
|
|
202
320
|
return null;
|
|
203
321
|
}
|
|
204
322
|
}
|
|
205
|
-
|
|
323
|
+
// ── Execute with validation ────────────────────────────────────
|
|
324
|
+
async function executeTool(call, ctx) {
|
|
206
325
|
const tool = exports.TOOL_MAP[call.tool];
|
|
207
326
|
if (!tool)
|
|
208
327
|
return { success: false, output: '', error: `Unknown tool: ${call.tool}` };
|
|
209
|
-
|
|
328
|
+
// Zod validate
|
|
329
|
+
const parsed = tool.schema.safeParse(call.params);
|
|
330
|
+
if (!parsed.success) {
|
|
331
|
+
return {
|
|
332
|
+
success: false,
|
|
333
|
+
output: '',
|
|
334
|
+
error: `Invalid params: ${parsed.error.issues.map((i) => i.message).join(', ')}`
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
// Permission check
|
|
338
|
+
if (tool.permission.mode === 'deny') {
|
|
339
|
+
return { success: false, output: '', error: 'Tool is disabled (deny mode)' };
|
|
340
|
+
}
|
|
341
|
+
if (tool.permission.mode === 'ask') {
|
|
342
|
+
const allowed = await ctx.confirm(`Allow: ${call.tool} ${JSON.stringify(call.params)}`);
|
|
343
|
+
if (!allowed)
|
|
344
|
+
return { success: false, output: '', error: 'Denied by user' };
|
|
345
|
+
}
|
|
346
|
+
return await tool.execute(parsed.data, ctx);
|
|
210
347
|
}
|
|
211
348
|
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|