pilot-ai 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/claude.d.ts +6 -6
- package/dist/agent/claude.js +12 -12
- package/dist/agent/claude.js.map +1 -1
- package/dist/agent/memory.js +6 -6
- package/dist/agent/memory.js.map +1 -1
- package/dist/agent/planner.d.ts +3 -3
- package/dist/agent/planner.js +7 -7
- package/dist/agent/planner.js.map +1 -1
- package/dist/agent/project.d.ts +3 -3
- package/dist/agent/project.js +8 -8
- package/dist/agent/project.js.map +1 -1
- package/dist/agent/safety.d.ts +3 -3
- package/dist/agent/safety.js +4 -4
- package/dist/agent/safety.js.map +1 -1
- package/dist/cli/init.js +50 -50
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/logs.js +1 -1
- package/dist/cli/logs.js.map +1 -1
- package/dist/cli/project.js +11 -11
- package/dist/cli/project.js.map +1 -1
- package/dist/cli/start.js +5 -5
- package/dist/cli/start.js.map +1 -1
- package/dist/cli/status.js +3 -3
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/stop.js +3 -3
- package/dist/cli/stop.js.map +1 -1
- package/dist/config/store.js +2 -2
- package/dist/config/store.js.map +1 -1
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/dist/messenger/factory.js +3 -3
- package/dist/messenger/factory.js.map +1 -1
- package/dist/messenger/slack.js +5 -5
- package/dist/messenger/slack.js.map +1 -1
- package/dist/messenger/telegram.js +6 -6
- package/dist/messenger/telegram.js.map +1 -1
- package/dist/security/audit.d.ts +2 -2
- package/dist/security/audit.js +3 -3
- package/dist/security/auth.d.ts +2 -2
- package/dist/security/auth.js +2 -2
- package/dist/security/prompt-guard.d.ts +2 -2
- package/dist/security/prompt-guard.js +4 -4
- package/dist/security/prompt-guard.js.map +1 -1
- package/dist/security/sandbox.d.ts +4 -4
- package/dist/security/sandbox.js +13 -13
- package/dist/security/sandbox.js.map +1 -1
- package/dist/tools/filesystem.js +1 -1
- package/dist/tools/filesystem.js.map +1 -1
- package/dist/tools/shell.js +4 -4
- package/dist/tools/shell.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/claude.d.ts
CHANGED
|
@@ -20,21 +20,21 @@ export interface ClaudeJsonMessage {
|
|
|
20
20
|
[key: string]: unknown;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Checks whether the Claude CLI binary is installed.
|
|
24
24
|
*/
|
|
25
25
|
export declare function checkClaudeCli(binary?: string): Promise<boolean>;
|
|
26
26
|
/**
|
|
27
|
-
* Claude Code CLI
|
|
28
|
-
* `claude -p --output-format json`
|
|
27
|
+
* Invokes the Claude Code CLI as a subprocess.
|
|
28
|
+
* Runs `claude -p --output-format json` and parses the JSON response.
|
|
29
29
|
*/
|
|
30
30
|
export declare function invokeClaudeCli(options: ClaudeCliOptions): Promise<ClaudeCliResult>;
|
|
31
31
|
/**
|
|
32
|
-
* Claude CLI
|
|
33
|
-
* --output-format json
|
|
32
|
+
* Parses Claude CLI JSON output and extracts the final text result.
|
|
33
|
+
* --output-format json outputs multiple messages in JSONL format.
|
|
34
34
|
*/
|
|
35
35
|
export declare function parseClaudeJsonOutput(output: string): string;
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
37
|
+
* Fallback mode that directly calls the Anthropic API.
|
|
38
38
|
*/
|
|
39
39
|
export declare function invokeClaudeApi(options: {
|
|
40
40
|
prompt: string;
|
package/dist/agent/claude.js
CHANGED
|
@@ -3,9 +3,9 @@ import { execFile } from 'node:child_process';
|
|
|
3
3
|
import { promisify } from 'node:util';
|
|
4
4
|
import Anthropic from '@anthropic-ai/sdk';
|
|
5
5
|
const execFileAsync = promisify(execFile);
|
|
6
|
-
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5
|
|
6
|
+
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Checks whether the Claude CLI binary is installed.
|
|
9
9
|
*/
|
|
10
10
|
export async function checkClaudeCli(binary = 'claude') {
|
|
11
11
|
try {
|
|
@@ -17,8 +17,8 @@ export async function checkClaudeCli(binary = 'claude') {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Claude Code CLI
|
|
21
|
-
* `claude -p --output-format json`
|
|
20
|
+
* Invokes the Claude Code CLI as a subprocess.
|
|
21
|
+
* Runs `claude -p --output-format json` and parses the JSON response.
|
|
22
22
|
*/
|
|
23
23
|
export async function invokeClaudeCli(options) {
|
|
24
24
|
const { prompt, cwd, allowedTools, mcpConfigPath, timeoutMs = DEFAULT_TIMEOUT_MS } = options;
|
|
@@ -49,12 +49,12 @@ export async function invokeClaudeCli(options) {
|
|
|
49
49
|
stderr += data.toString();
|
|
50
50
|
});
|
|
51
51
|
child.on('error', (err) => {
|
|
52
|
-
reject(new Error(`Claude CLI
|
|
52
|
+
reject(new Error(`Claude CLI execution failed: ${err.message}`));
|
|
53
53
|
});
|
|
54
54
|
child.on('close', (code) => {
|
|
55
55
|
const exitCode = code ?? 1;
|
|
56
56
|
if (exitCode !== 0 && !stdout) {
|
|
57
|
-
reject(new Error(`Claude CLI
|
|
57
|
+
reject(new Error(`Claude CLI error (exit ${exitCode}): ${stderr || 'Unknown error'}`));
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
const result = parseClaudeJsonOutput(stdout);
|
|
@@ -63,8 +63,8 @@ export async function invokeClaudeCli(options) {
|
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
|
-
* Claude CLI
|
|
67
|
-
* --output-format json
|
|
66
|
+
* Parses Claude CLI JSON output and extracts the final text result.
|
|
67
|
+
* --output-format json outputs multiple messages in JSONL format.
|
|
68
68
|
*/
|
|
69
69
|
export function parseClaudeJsonOutput(output) {
|
|
70
70
|
const lines = output.trim().split('\n').filter(Boolean);
|
|
@@ -72,7 +72,7 @@ export function parseClaudeJsonOutput(output) {
|
|
|
72
72
|
for (const line of lines) {
|
|
73
73
|
try {
|
|
74
74
|
const msg = JSON.parse(line);
|
|
75
|
-
//
|
|
75
|
+
// Extract text from assistant messages
|
|
76
76
|
if (msg.type === 'assistant' && Array.isArray(msg.content)) {
|
|
77
77
|
for (const block of msg.content) {
|
|
78
78
|
if (block.type === 'text' && block.text) {
|
|
@@ -80,20 +80,20 @@ export function parseClaudeJsonOutput(output) {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
//
|
|
83
|
+
// Result message
|
|
84
84
|
if (msg.type === 'result' && typeof msg.result === 'string') {
|
|
85
85
|
texts.push(msg.result);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
catch {
|
|
89
|
-
// JSON
|
|
89
|
+
// On JSON parse failure, treat as raw text
|
|
90
90
|
texts.push(line);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
return texts.join('\n') || output;
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
96
|
+
* Fallback mode that directly calls the Anthropic API.
|
|
97
97
|
*/
|
|
98
98
|
export async function invokeClaudeApi(options) {
|
|
99
99
|
const { prompt, apiKey, model = 'claude-sonnet-4-20250514', maxTokens = 4096 } = options;
|
package/dist/agent/claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agent/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAuB1C,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agent/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/memory.js
CHANGED
|
@@ -16,7 +16,7 @@ function getHistoryPath(date) {
|
|
|
16
16
|
const dateStr = d.toISOString().split('T')[0];
|
|
17
17
|
return path.join(getMemoryDir(), 'history', `${dateStr}.md`);
|
|
18
18
|
}
|
|
19
|
-
// --- MEMORY.md (
|
|
19
|
+
// --- MEMORY.md (user preferences) ---
|
|
20
20
|
export async function readUserMemory() {
|
|
21
21
|
try {
|
|
22
22
|
return await fs.readFile(getMemoryPath(), 'utf-8');
|
|
@@ -36,7 +36,7 @@ export async function appendUserMemory(entry) {
|
|
|
36
36
|
const updated = existing ? `${existing}\n${entry}` : entry;
|
|
37
37
|
await writeUserMemory(updated);
|
|
38
38
|
}
|
|
39
|
-
// ---
|
|
39
|
+
// --- Project memory ---
|
|
40
40
|
export async function readProjectMemory(projectName) {
|
|
41
41
|
try {
|
|
42
42
|
return await fs.readFile(getProjectMemoryPath(projectName), 'utf-8');
|
|
@@ -50,11 +50,11 @@ export async function writeProjectMemory(projectName, content) {
|
|
|
50
50
|
await fs.mkdir(path.dirname(memPath), { recursive: true });
|
|
51
51
|
await fs.writeFile(memPath, content);
|
|
52
52
|
}
|
|
53
|
-
// ---
|
|
53
|
+
// --- History ---
|
|
54
54
|
export async function appendHistory(entry) {
|
|
55
55
|
const histPath = getHistoryPath();
|
|
56
56
|
await fs.mkdir(path.dirname(histPath), { recursive: true });
|
|
57
|
-
const timestamp = new Date().toLocaleTimeString('
|
|
57
|
+
const timestamp = new Date().toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' });
|
|
58
58
|
const line = `- ${timestamp}: ${entry}\n`;
|
|
59
59
|
await fs.appendFile(histPath, line);
|
|
60
60
|
}
|
|
@@ -80,7 +80,7 @@ export async function getRecentHistory(days = 3) {
|
|
|
80
80
|
}
|
|
81
81
|
return entries.join('\n\n');
|
|
82
82
|
}
|
|
83
|
-
// ---
|
|
83
|
+
// --- Assemble memory context for prompts ---
|
|
84
84
|
export async function buildMemoryContext(projectName) {
|
|
85
85
|
const parts = [];
|
|
86
86
|
const userMemory = await readUserMemory();
|
|
@@ -99,7 +99,7 @@ export async function buildMemoryContext(projectName) {
|
|
|
99
99
|
}
|
|
100
100
|
return parts.join('\n\n');
|
|
101
101
|
}
|
|
102
|
-
// ---
|
|
102
|
+
// --- Reset memory ---
|
|
103
103
|
export async function resetMemory() {
|
|
104
104
|
const memDir = getMemoryDir();
|
|
105
105
|
await fs.rm(memDir, { recursive: true, force: true });
|
package/dist/agent/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/agent/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,IAAW;IACjC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/agent/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/planner.d.ts
CHANGED
|
@@ -10,12 +10,12 @@ export interface ExecutionPlan {
|
|
|
10
10
|
hasDangerousSteps: boolean;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Claude
|
|
14
|
-
* Claude
|
|
13
|
+
* Parses Claude's response into an execution plan.
|
|
14
|
+
* Requests a structured plan from Claude and parses the result.
|
|
15
15
|
*/
|
|
16
16
|
export declare function parsePlan(claudeResponse: string): ExecutionPlan;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Formats the plan into a human-readable form.
|
|
19
19
|
*/
|
|
20
20
|
export declare function formatPlanForUser(plan: ExecutionPlan): string;
|
|
21
21
|
//# sourceMappingURL=planner.d.ts.map
|
package/dist/agent/planner.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { classifySafety } from './safety.js';
|
|
2
2
|
/**
|
|
3
|
-
* Claude
|
|
4
|
-
* Claude
|
|
3
|
+
* Parses Claude's response into an execution plan.
|
|
4
|
+
* Requests a structured plan from Claude and parses the result.
|
|
5
5
|
*/
|
|
6
6
|
export function parsePlan(claudeResponse) {
|
|
7
7
|
const steps = [];
|
|
@@ -9,7 +9,7 @@ export function parsePlan(claudeResponse) {
|
|
|
9
9
|
let summary = '';
|
|
10
10
|
for (const line of lines) {
|
|
11
11
|
const trimmed = line.trim();
|
|
12
|
-
// "1. [tool] description"
|
|
12
|
+
// Parse "1. [tool] description" format
|
|
13
13
|
const stepMatch = trimmed.match(/^\d+\.\s*\[(\w+)\]\s*(.+)$/);
|
|
14
14
|
if (stepMatch) {
|
|
15
15
|
const tool = stepMatch[1];
|
|
@@ -21,19 +21,19 @@ export function parsePlan(claudeResponse) {
|
|
|
21
21
|
});
|
|
22
22
|
continue;
|
|
23
23
|
}
|
|
24
|
-
//
|
|
24
|
+
// First non-empty line becomes the summary
|
|
25
25
|
if (!summary && trimmed && !trimmed.startsWith('#')) {
|
|
26
26
|
summary = trimmed;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
return {
|
|
30
|
-
summary: summary || '
|
|
30
|
+
summary: summary || 'Execute task',
|
|
31
31
|
steps,
|
|
32
32
|
hasDangerousSteps: steps.some((s) => s.safetyLevel === 'dangerous'),
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Formats the plan into a human-readable form.
|
|
37
37
|
*/
|
|
38
38
|
export function formatPlanForUser(plan) {
|
|
39
39
|
const lines = [`**${plan.summary}**\n`];
|
|
@@ -44,7 +44,7 @@ export function formatPlanForUser(plan) {
|
|
|
44
44
|
lines.push(`${i + 1}. ${icon} [${step.tool}] ${step.description}`);
|
|
45
45
|
}
|
|
46
46
|
if (plan.hasDangerousSteps) {
|
|
47
|
-
lines.push('\n⚠️
|
|
47
|
+
lines.push('\n⚠️ Contains dangerous operations. Approval required.');
|
|
48
48
|
}
|
|
49
49
|
return lines.join('\n');
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAc/D;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,cAAsB;IAC9C,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AAc/D;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,cAAsB;IAC9C,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,uCAAuC;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC;gBACT,WAAW;gBACX,IAAI;gBACJ,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;aACzC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO,IAAI,cAAc;QAClC,KAAK;QACL,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC;KACpE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAmB;IACnD,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,MAAM,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GACR,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/agent/project.d.ts
CHANGED
|
@@ -13,12 +13,12 @@ export declare function addProject(name: string, projectPath: string, descriptio
|
|
|
13
13
|
export declare function removeProject(name: string): Promise<boolean>;
|
|
14
14
|
export declare function listProjects(): Promise<Record<string, ProjectEntry>>;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Scans specified root directories to auto-detect projects.
|
|
17
17
|
*/
|
|
18
18
|
export declare function scanProjects(roots: string[]): Promise<Record<string, string>>;
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* Resolves a project from a user message.
|
|
21
|
+
* Priority: exact name -> absolute path -> fuzzy match
|
|
22
22
|
*/
|
|
23
23
|
export declare function resolveProject(query: string): Promise<{
|
|
24
24
|
name: string;
|
package/dist/agent/project.js
CHANGED
|
@@ -40,7 +40,7 @@ export async function listProjects() {
|
|
|
40
40
|
return registry.projects;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* Scans specified root directories to auto-detect projects.
|
|
44
44
|
*/
|
|
45
45
|
export async function scanProjects(roots) {
|
|
46
46
|
const registry = await loadRegistry();
|
|
@@ -67,7 +67,7 @@ export async function scanProjects(roots) {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
// scanRoots
|
|
70
|
+
// Add to scanRoots
|
|
71
71
|
if (!registry.scanRoots.includes(resolvedRoot)) {
|
|
72
72
|
registry.scanRoots.push(resolvedRoot);
|
|
73
73
|
}
|
|
@@ -82,27 +82,27 @@ async function detectProject(dirPath, markers) {
|
|
|
82
82
|
return true;
|
|
83
83
|
}
|
|
84
84
|
catch {
|
|
85
|
-
//
|
|
85
|
+
// Try next marker
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
return false;
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
91
|
+
* Resolves a project from a user message.
|
|
92
|
+
* Priority: exact name -> absolute path -> fuzzy match
|
|
93
93
|
*/
|
|
94
94
|
export async function resolveProject(query) {
|
|
95
95
|
const registry = await loadRegistry();
|
|
96
96
|
const projects = registry.projects;
|
|
97
|
-
// 1.
|
|
97
|
+
// 1. Exact name match
|
|
98
98
|
if (query in projects) {
|
|
99
99
|
return { name: query, path: projects[query].path };
|
|
100
100
|
}
|
|
101
|
-
// 2.
|
|
101
|
+
// 2. Absolute path check
|
|
102
102
|
if (query.startsWith('/') || query.startsWith('~')) {
|
|
103
103
|
return { name: path.basename(query), path: path.resolve(query) };
|
|
104
104
|
}
|
|
105
|
-
// 3. Fuzzy match (
|
|
105
|
+
// 3. Fuzzy match (substring)
|
|
106
106
|
const lowerQuery = query.toLowerCase();
|
|
107
107
|
for (const [name, entry] of Object.entries(projects)) {
|
|
108
108
|
if (name.toLowerCase().includes(lowerQuery) || lowerQuery.includes(name.toLowerCase())) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/agent/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAcjD,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAE7F,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACtE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAyB;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,WAAmB,EAAE,WAAoB;IACtF,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;QACxB,IAAI,EAAE,WAAW;QACjB,WAAW;QACX,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC;IACF,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAe;IAChD,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;oBAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/agent/project.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/safety.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type SafetyLevel = 'safe' | 'moderate' | 'dangerous';
|
|
2
2
|
export declare function classifySafety(action: string): SafetyLevel;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Manages pending approval state.
|
|
5
5
|
*/
|
|
6
6
|
export interface PendingApproval {
|
|
7
7
|
taskId: string;
|
|
@@ -12,11 +12,11 @@ export interface PendingApproval {
|
|
|
12
12
|
export declare class ApprovalManager {
|
|
13
13
|
private pending;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Requests approval and waits for approve/reject/timeout.
|
|
16
16
|
*/
|
|
17
17
|
requestApproval(taskId: string, action: string, timeoutMs: number): Promise<boolean>;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Handles a user's approve/reject response.
|
|
20
20
|
*/
|
|
21
21
|
handleResponse(taskId: string, approved: boolean): boolean;
|
|
22
22
|
hasPending(taskId: string): boolean;
|
package/dist/agent/safety.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Classifies the risk level of a task plan.
|
|
3
3
|
*/
|
|
4
4
|
const DANGEROUS_PATTERNS = [
|
|
5
5
|
/\bgit\s+push\b/,
|
|
@@ -44,19 +44,19 @@ export function classifySafety(action) {
|
|
|
44
44
|
export class ApprovalManager {
|
|
45
45
|
pending = new Map();
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Requests approval and waits for approve/reject/timeout.
|
|
48
48
|
*/
|
|
49
49
|
requestApproval(taskId, action, timeoutMs) {
|
|
50
50
|
return new Promise((resolve) => {
|
|
51
51
|
const timer = setTimeout(() => {
|
|
52
52
|
this.pending.delete(taskId);
|
|
53
|
-
resolve(false); //
|
|
53
|
+
resolve(false); // Timeout -> treated as rejection
|
|
54
54
|
}, timeoutMs);
|
|
55
55
|
this.pending.set(taskId, { taskId, action, resolve, timer });
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* Handles a user's approve/reject response.
|
|
60
60
|
*/
|
|
61
61
|
handleResponse(taskId, approved) {
|
|
62
62
|
const entry = this.pending.get(taskId);
|
package/dist/agent/safety.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/agent/safety.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,kBAAkB,GAAG;IACzB,gBAAgB;IAChB,0BAA0B;IAC1B,0BAA0B;IAC1B,kCAAkC,EAAI,uBAAuB;IAC7D,8BAA8B;IAC9B,uBAAuB;IACvB,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,kCAAkC;IAClC,sBAAsB;CACvB,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,aAAa;IACb,WAAW;CACZ,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAYD,MAAM,OAAO,eAAe;IAClB,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAErD;;OAEG;IACH,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,SAAiB;QAC/D,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../src/agent/safety.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,kBAAkB,GAAG;IACzB,gBAAgB;IAChB,0BAA0B;IAC1B,0BAA0B;IAC1B,kCAAkC,EAAI,uBAAuB;IAC7D,8BAA8B;IAC9B,uBAAuB;IACvB,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,kCAAkC;IAClC,sBAAsB;CACvB,CAAC;AAEF,MAAM,iBAAiB,GAAG;IACxB,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,aAAa;IACb,WAAW;CACZ,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAYD,MAAM,OAAO,eAAe;IAClB,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAErD;;OAEG;IACH,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,SAAiB;QAC/D,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kCAAkC;YACpD,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,MAAc,EAAE,QAAiB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;CACF"}
|