@element47/ag 4.5.5 → 4.5.6
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 +44 -14
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +8 -5
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/repl.d.ts.map +1 -1
- package/dist/cli/repl.js +136 -72
- package/dist/cli/repl.js.map +1 -1
- package/dist/core/__tests__/agent-units.test.d.ts +2 -0
- package/dist/core/__tests__/agent-units.test.d.ts.map +1 -0
- package/dist/core/__tests__/agent-units.test.js +144 -0
- package/dist/core/__tests__/agent-units.test.js.map +1 -0
- package/dist/core/__tests__/context.test.js +24 -0
- package/dist/core/__tests__/context.test.js.map +1 -1
- package/dist/core/__tests__/events.test.js +1 -1
- package/dist/core/__tests__/events.test.js.map +1 -1
- package/dist/core/__tests__/streaming.test.js +2 -1
- package/dist/core/__tests__/streaming.test.js.map +1 -1
- package/dist/core/agent.d.ts +7 -8
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +94 -428
- package/dist/core/agent.js.map +1 -1
- package/dist/core/compaction.d.ts +27 -0
- package/dist/core/compaction.d.ts.map +1 -0
- package/dist/core/compaction.js +102 -0
- package/dist/core/compaction.js.map +1 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +6 -2
- package/dist/core/context.js.map +1 -1
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/events.js +6 -1
- package/dist/core/events.js.map +1 -1
- package/dist/core/prompt.d.ts +23 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +122 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/utils.d.ts +11 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +82 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/memory/__tests__/memory.test.js +47 -2
- package/dist/memory/__tests__/memory.test.js.map +1 -1
- package/dist/memory/memory.d.ts +8 -0
- package/dist/memory/memory.d.ts.map +1 -1
- package/dist/memory/memory.js +93 -6
- package/dist/memory/memory.js.map +1 -1
- package/dist/tools/agent.js +17 -15
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/file.d.ts.map +1 -1
- package/dist/tools/file.js +9 -5
- package/dist/tools/file.js.map +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +7 -5
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/task.d.ts.map +1 -1
- package/dist/tools/task.js +40 -33
- package/dist/tools/task.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/grep.js
CHANGED
|
@@ -7,7 +7,7 @@ import { execFile } from 'node:child_process';
|
|
|
7
7
|
import { promisify } from 'node:util';
|
|
8
8
|
import { readdirSync, readFileSync, statSync } from 'node:fs';
|
|
9
9
|
import { join, resolve, relative } from 'node:path';
|
|
10
|
-
import { DEFAULT_IGNORE, isBinary } from '../core/constants.js';
|
|
10
|
+
import { AG_DIR, DEFAULT_IGNORE, isBinary } from '../core/constants.js';
|
|
11
11
|
const execFileAsync = promisify(execFile);
|
|
12
12
|
const MAX_SEARCH_LINES = 250;
|
|
13
13
|
const MAX_FIND_RESULTS = 100;
|
|
@@ -211,8 +211,9 @@ function fallbackFind(cwd, pattern, searchRoot) {
|
|
|
211
211
|
// ── Action handlers ──────────────────────────────────────────────────────
|
|
212
212
|
async function doSearch(cwd, pattern, path, glob, caseInsensitive, context) {
|
|
213
213
|
const searchRoot = path ? resolve(cwd, path) : cwd;
|
|
214
|
-
if (!searchRoot.startsWith(cwd))
|
|
215
|
-
return 'Error: path must be within the project directory.';
|
|
214
|
+
if (!searchRoot.startsWith(cwd) && !searchRoot.startsWith(AG_DIR)) {
|
|
215
|
+
return 'Error: path must be within the project directory or ~/.ag.';
|
|
216
|
+
}
|
|
216
217
|
// Try ripgrep first
|
|
217
218
|
const rgResult = await rgSearch(cwd, pattern, path, glob, caseInsensitive, context);
|
|
218
219
|
if (rgResult !== '')
|
|
@@ -222,8 +223,9 @@ async function doSearch(cwd, pattern, path, glob, caseInsensitive, context) {
|
|
|
222
223
|
}
|
|
223
224
|
async function doFind(cwd, pattern, path) {
|
|
224
225
|
const searchRoot = path ? resolve(cwd, path) : cwd;
|
|
225
|
-
if (!searchRoot.startsWith(cwd))
|
|
226
|
-
return 'Error: path must be within the project directory.';
|
|
226
|
+
if (!searchRoot.startsWith(cwd) && !searchRoot.startsWith(AG_DIR)) {
|
|
227
|
+
return 'Error: path must be within the project directory or ~/.ag.';
|
|
228
|
+
}
|
|
227
229
|
// Try ripgrep first
|
|
228
230
|
const rgResult = await rgFind(cwd, pattern, path);
|
|
229
231
|
if (rgResult !== '')
|
package/dist/tools/grep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAWxC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAWxC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAoH1C"}
|
package/dist/tools/task.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Task tool — structured task tracking for plans and sub-agents
|
|
3
3
|
*/
|
|
4
|
-
import { loadTasks,
|
|
4
|
+
import { loadTasks, withTasks, getActivePlanName } from '../memory/memory.js';
|
|
5
5
|
const VALID_STATUSES = ['pending', 'in_progress', 'done'];
|
|
6
6
|
function formatTask(t) {
|
|
7
7
|
const plan = t.plan ? ` (plan: ${t.plan})` : '';
|
|
@@ -44,25 +44,26 @@ export function taskTool(cwd) {
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
execute: ({ action, title, description: desc, id, status }) => {
|
|
47
|
-
const tasks = loadTasks(cwd);
|
|
48
47
|
switch (action) {
|
|
49
48
|
case 'create': {
|
|
50
49
|
if (!title)
|
|
51
50
|
return 'Error: title is required for create';
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
51
|
+
return withTasks(cwd, tasks => {
|
|
52
|
+
const nextId = tasks.length > 0 ? Math.max(...tasks.map(t => t.id)) + 1 : 1;
|
|
53
|
+
const task = {
|
|
54
|
+
id: nextId,
|
|
55
|
+
title,
|
|
56
|
+
description: desc || undefined,
|
|
57
|
+
status: 'pending',
|
|
58
|
+
plan: getActivePlanName(cwd) || undefined,
|
|
59
|
+
created: new Date().toISOString(),
|
|
60
|
+
};
|
|
61
|
+
tasks.push(task);
|
|
62
|
+
return `Task #${nextId} created: ${title}`;
|
|
63
|
+
});
|
|
64
64
|
}
|
|
65
65
|
case 'list': {
|
|
66
|
+
const tasks = loadTasks(cwd);
|
|
66
67
|
if (tasks.length === 0)
|
|
67
68
|
return 'No tasks.';
|
|
68
69
|
const pending = tasks.filter(t => t.status === 'pending');
|
|
@@ -85,16 +86,18 @@ export function taskTool(cwd) {
|
|
|
85
86
|
if (!VALID_STATUSES.includes(status)) {
|
|
86
87
|
return `Error: invalid status "${status}". Use: ${VALID_STATUSES.join(', ')}`;
|
|
87
88
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
return withTasks(cwd, tasks => {
|
|
90
|
+
const task = tasks.find(t => t.id === id);
|
|
91
|
+
if (!task)
|
|
92
|
+
return `Error: task #${id} not found`;
|
|
93
|
+
task.status = status;
|
|
94
|
+
return `Task #${id} updated: [${status}] ${task.title}`;
|
|
95
|
+
});
|
|
94
96
|
}
|
|
95
97
|
case 'read': {
|
|
96
98
|
if (id == null)
|
|
97
99
|
return 'Error: id is required for read';
|
|
100
|
+
const tasks = loadTasks(cwd);
|
|
98
101
|
const task = tasks.find(t => t.id === id);
|
|
99
102
|
if (!task)
|
|
100
103
|
return `Error: task #${id} not found`;
|
|
@@ -103,21 +106,25 @@ export function taskTool(cwd) {
|
|
|
103
106
|
case 'remove': {
|
|
104
107
|
if (id == null)
|
|
105
108
|
return 'Error: id is required for remove';
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
return withTasks(cwd, tasks => {
|
|
110
|
+
const idx = tasks.findIndex(t => t.id === id);
|
|
111
|
+
if (idx === -1)
|
|
112
|
+
return `Error: task #${id} not found`;
|
|
113
|
+
const removed = tasks.splice(idx, 1)[0];
|
|
114
|
+
return `Task #${removed.id} removed: ${removed.title}`;
|
|
115
|
+
});
|
|
112
116
|
}
|
|
113
117
|
case 'clear': {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
return withTasks(cwd, tasks => {
|
|
119
|
+
const before = tasks.length;
|
|
120
|
+
const done = tasks.filter(t => t.status === 'done');
|
|
121
|
+
// Remove done tasks in-place (withTasks saves the mutated array)
|
|
122
|
+
for (const d of done)
|
|
123
|
+
tasks.splice(tasks.indexOf(d), 1);
|
|
124
|
+
return done.length > 0
|
|
125
|
+
? `Cleared ${done.length} done task(s). ${tasks.length} remaining.`
|
|
126
|
+
: 'No done tasks to clear.';
|
|
127
|
+
});
|
|
121
128
|
}
|
|
122
129
|
default:
|
|
123
130
|
return `Error: unknown action "${action}". Use: create, list, update, read, remove, clear`;
|
package/dist/tools/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAa,MAAM,qBAAqB,CAAC;AAEzF,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;AAEnE,SAAS,UAAU,CAAC,CAAO;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,oKAAoK;YACjL,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;wBAC7D,WAAW,EAAE,4HAA4H;qBAC1I;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yBAAyB;qBACvC;oBACD,EAAE,EAAE;wBACF,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oCAAoC;qBAClD;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oHAAoH;qBAClI;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;wBACxC,WAAW,EAAE,yBAAyB;qBACvC;iBACF;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;SACF;QACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAA0F,EAAU,EAAE;YAC5J,
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"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"}
|