@adecore/agents 0.39.0 → 0.40.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/async.d.ts +5 -0
- package/dist/async.js +13 -5
- package/dist/chat/acp-protocol.js +3 -5
- package/dist/chat/chat-core.js +0 -2
- package/dist/chat/chat-process.d.ts +1 -0
- package/dist/chat/chat-process.js +1 -1
- package/dist/chat/chat-session.js +6 -8
- package/dist/chat/claude-protocol.js +1 -6
- package/dist/chat/claude-transcript.js +1 -3
- package/dist/chat/codex-protocol.js +1 -6
- package/dist/chat/projector.js +1 -3
- package/dist/chat/request-summary.js +1 -3
- package/dist/coded-error.js +1 -5
- package/dist/context/argv.js +1 -2
- package/dist/context/verb.js +1 -3
- package/dist/error-text.d.ts +1 -0
- package/dist/error-text.js +4 -0
- package/dist/fields.d.ts +3 -0
- package/dist/fields.js +12 -0
- package/dist/fs.d.ts +1 -0
- package/dist/fs.js +8 -4
- package/dist/lineage.js +11 -5
- package/dist/messages/notice-store.js +3 -4
- package/dist/providers/accounts/acp-account.js +3 -20
- package/dist/providers/accounts/service.d.ts +1 -2
- package/dist/providers/accounts/service.js +5 -9
- package/dist/providers/accounts/status.js +1 -3
- package/dist/providers/acp-agent-state.js +1 -3
- package/dist/providers/claude.js +0 -1
- package/dist/providers/codex.js +0 -1
- package/dist/providers/detect.js +1 -1
- package/dist/providers/shell-commands.js +1 -2
- package/dist/run-process.js +1 -3
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +5 -8
- package/dist/tasks/background-limit.js +3 -2
- package/dist/tasks/task-coordinator.js +11 -17
- package/dist/testing/watch.js +0 -1
- package/dist/usage/limits/monitor.js +1 -2
- package/dist/usage/readers/claude.js +3 -10
- package/dist/usage/readers/codex.js +2 -9
- package/dist/usage/readers/grok.js +3 -10
- package/dist/usage/readers/host-log.js +3 -10
- package/dist/usage/record.d.ts +2 -0
- package/dist/usage/record.js +13 -0
- package/package.json +6 -6
- package/src/async.ts +23 -5
- package/src/chat/acp-backend.ts +121 -0
- package/src/chat/acp-protocol.ts +172 -6
- package/src/chat/attachment-store.ts +21 -0
- package/src/chat/backend.ts +0 -2
- package/src/chat/bookmark-store.ts +23 -0
- package/src/chat/chat-core.ts +208 -7
- package/src/chat/chat-log.ts +19 -0
- package/src/chat/chat-process.ts +52 -1
- package/src/chat/chat-session.ts +401 -10
- package/src/chat/chat-store.ts +50 -0
- package/src/chat/chat-title.ts +9 -0
- package/src/chat/claude-backend.ts +50 -0
- package/src/chat/claude-protocol.ts +155 -8
- package/src/chat/claude-title.ts +10 -0
- package/src/chat/claude-transcript.ts +47 -4
- package/src/chat/codex-backend.ts +131 -0
- package/src/chat/codex-protocol.ts +180 -8
- package/src/chat/codex-thread.ts +23 -0
- package/src/chat/composer-preferences.ts +6 -0
- package/src/chat/context-breakdown.ts +11 -0
- package/src/chat/delta-coalescer.ts +8 -0
- package/src/chat/external-sessions.ts +28 -0
- package/src/chat/generated-image.ts +25 -0
- package/src/chat/index.ts +5 -0
- package/src/chat/input.ts +13 -0
- package/src/chat/json-rpc-transport.ts +28 -0
- package/src/chat/limit-resume.ts +13 -0
- package/src/chat/projector.ts +160 -4
- package/src/chat/readable-text.ts +3 -0
- package/src/chat/request-summary.ts +18 -4
- package/src/chat/subagent-projection.ts +3 -0
- package/src/chat/subagent-reader.ts +76 -0
- package/src/chat/subagent-settlement.ts +24 -0
- package/src/chat/thread-search.ts +13 -0
- package/src/chat/thread.ts +31 -0
- package/src/chat/ui-queries.ts +122 -0
- package/src/chat/ui-replies.ts +34 -0
- package/src/chat/visual-store.ts +49 -0
- package/src/chat/wake-chat.ts +3 -0
- package/src/client-sinks.ts +2 -0
- package/src/coded-error.ts +1 -5
- package/src/context/argv.ts +18 -2
- package/src/context/index.ts +1 -0
- package/src/context/refusal.ts +3 -0
- package/src/context/verb.ts +32 -4
- package/src/coordination/index.ts +10 -0
- package/src/error-text.ts +7 -0
- package/src/fields.ts +14 -0
- package/src/fs.ts +20 -4
- package/src/host/agent-host.ts +20 -0
- package/src/host/environment.ts +6 -0
- package/src/host/handlers.ts +18 -0
- package/src/host/memory-port.ts +4 -0
- package/src/host/wiring.ts +10 -0
- package/src/index.ts +1 -0
- package/src/lineage.ts +24 -5
- package/src/messages/deliver-message.ts +6 -0
- package/src/messages/deliver-notice.ts +13 -0
- package/src/messages/notice-store.ts +16 -4
- package/src/modes.ts +1 -0
- package/src/outbox/outbox-worker.ts +31 -0
- package/src/outbox/outbox.ts +5 -0
- package/src/providers/accounts/accounts.ts +36 -0
- package/src/providers/accounts/acp-account.ts +22 -27
- package/src/providers/accounts/launch.ts +4 -0
- package/src/providers/accounts/service.ts +110 -12
- package/src/providers/accounts/shadow-home.ts +10 -0
- package/src/providers/accounts/status.ts +13 -4
- package/src/providers/accounts/store.ts +25 -0
- package/src/providers/accounts/variables.ts +11 -1
- package/src/providers/acp-agent-state.ts +24 -3
- package/src/providers/acp-provider.ts +5 -0
- package/src/providers/acp-usage-log.ts +2 -0
- package/src/providers/catalog.ts +17 -0
- package/src/providers/claude.ts +10 -1
- package/src/providers/codex-rules.ts +3 -0
- package/src/providers/codex.ts +2 -1
- package/src/providers/detect.ts +6 -1
- package/src/providers/provider.ts +1 -1
- package/src/providers/registry.ts +18 -2
- package/src/providers/shell-commands.ts +37 -2
- package/src/record-directory.ts +19 -0
- package/src/run-process.ts +24 -3
- package/src/serializer.ts +3 -0
- package/src/skills.ts +73 -10
- package/src/tasks/background-limit.ts +9 -2
- package/src/tasks/end-children.ts +9 -0
- package/src/tasks/give-task.ts +8 -0
- package/src/tasks/task-coordinator.ts +81 -17
- package/src/tasks/task-store.ts +28 -0
- package/src/tasks/waiting-child.ts +21 -0
- package/src/tasks/wake-parent.ts +26 -0
- package/src/tasks/wiring.ts +22 -0
- package/src/testing/accounts.ts +2 -0
- package/src/testing/fake-acp-capture.ts +16 -0
- package/src/testing/fake-acp.ts +66 -0
- package/src/testing/fake-claude.ts +177 -0
- package/src/testing/fake-cli.ts +29 -0
- package/src/testing/fake-codex.ts +122 -0
- package/src/testing/manual-clock.ts +2 -0
- package/src/testing/watch.ts +7 -1
- package/src/title-file.ts +12 -0
- package/src/usage/accounts.ts +6 -0
- package/src/usage/aggregate.ts +19 -0
- package/src/usage/exchange.ts +12 -0
- package/src/usage/index-file.ts +27 -0
- package/src/usage/limits/monitor.ts +31 -3
- package/src/usage/limits/normalize.ts +30 -0
- package/src/usage/limits/probe.ts +17 -0
- package/src/usage/pricing.ts +35 -0
- package/src/usage/projects.ts +8 -0
- package/src/usage/readers/claude.ts +12 -9
- package/src/usage/readers/codex.ts +40 -8
- package/src/usage/readers/grok.ts +17 -9
- package/src/usage/readers/host-log.ts +9 -9
- package/src/usage/record.ts +22 -0
- package/src/usage/roots.ts +6 -0
- package/src/usage/scanner.ts +61 -0
- package/src/usage/usage-service.ts +14 -0
- package/src/watch-seam.ts +8 -0
- package/src/windows-command.ts +12 -0
package/src/testing/fake-cli.ts
CHANGED
|
@@ -44,40 +44,49 @@ export interface InProcessCli {
|
|
|
44
44
|
export function inProcess(cli: FakeCli): InProcessCli {
|
|
45
45
|
const started: StartedFake[] = [];
|
|
46
46
|
let nextPid = 900_000;
|
|
47
|
+
|
|
47
48
|
const spawn = (options: ChatSpawnOptions): ChatProcess => {
|
|
48
49
|
const encoder = new TextEncoder();
|
|
49
50
|
const chunks: Uint8Array[] = [];
|
|
50
51
|
let stderrController: ReadableStreamDefaultController<Uint8Array> | null = null;
|
|
52
|
+
|
|
51
53
|
const stderr = new ReadableStream<Uint8Array>({
|
|
52
54
|
start: (controller) => {
|
|
53
55
|
stderrController = controller;
|
|
54
56
|
}
|
|
55
57
|
});
|
|
58
|
+
|
|
56
59
|
const deferred: Array<() => void> = [];
|
|
57
60
|
let ended = false;
|
|
58
61
|
let exitCode: number | null = null;
|
|
59
62
|
let inputClosed = false;
|
|
60
63
|
let pending = '';
|
|
61
64
|
let wake: (() => void) | null = null;
|
|
65
|
+
|
|
62
66
|
let settleExited: (code: number | null) => void = () => undefined;
|
|
67
|
+
|
|
63
68
|
const exited = new Promise<number | null>((resolve) => {
|
|
64
69
|
settleExited = resolve;
|
|
65
70
|
});
|
|
71
|
+
|
|
66
72
|
const nudge = (): void => {
|
|
67
73
|
const waiting = wake;
|
|
68
74
|
wake = null;
|
|
69
75
|
waiting?.();
|
|
70
76
|
};
|
|
77
|
+
|
|
71
78
|
const exit = (code: number | null): void => {
|
|
72
79
|
if (ended) {
|
|
73
80
|
return;
|
|
74
81
|
}
|
|
82
|
+
|
|
75
83
|
ended = true;
|
|
76
84
|
exitCode = code;
|
|
77
85
|
// A pipe closes with the process that held it.
|
|
78
86
|
stderrController?.close();
|
|
79
87
|
nudge();
|
|
80
88
|
};
|
|
89
|
+
|
|
81
90
|
const program = cli({
|
|
82
91
|
argv: options.command.slice(1),
|
|
83
92
|
cwd: options.cwd,
|
|
@@ -85,6 +94,7 @@ export function inProcess(cli: FakeCli): InProcessCli {
|
|
|
85
94
|
if (ended) {
|
|
86
95
|
return;
|
|
87
96
|
}
|
|
97
|
+
|
|
88
98
|
chunks.push(encoder.encode(`${JSON.stringify(frame)}\n`));
|
|
89
99
|
nudge();
|
|
90
100
|
},
|
|
@@ -98,6 +108,7 @@ export function inProcess(cli: FakeCli): InProcessCli {
|
|
|
98
108
|
deferred.push(work);
|
|
99
109
|
}
|
|
100
110
|
});
|
|
111
|
+
|
|
101
112
|
const stdout = new ReadableStream<Uint8Array>(
|
|
102
113
|
{
|
|
103
114
|
pull: async (controller) => {
|
|
@@ -106,11 +117,15 @@ export function inProcess(cli: FakeCli): InProcessCli {
|
|
|
106
117
|
wake = resolve;
|
|
107
118
|
});
|
|
108
119
|
}
|
|
120
|
+
|
|
109
121
|
const chunk = chunks.shift();
|
|
122
|
+
|
|
110
123
|
if (chunk) {
|
|
111
124
|
controller.enqueue(chunk);
|
|
125
|
+
|
|
112
126
|
return;
|
|
113
127
|
}
|
|
128
|
+
|
|
114
129
|
controller.close();
|
|
115
130
|
options.onExit(exitCode);
|
|
116
131
|
settleExited(exitCode);
|
|
@@ -118,21 +133,26 @@ export function inProcess(cli: FakeCli): InProcessCli {
|
|
|
118
133
|
},
|
|
119
134
|
{ highWaterMark: 0 }
|
|
120
135
|
);
|
|
136
|
+
|
|
121
137
|
const stdin = {
|
|
122
138
|
write: (chunk: string): number => {
|
|
123
139
|
if (ended || inputClosed) {
|
|
124
140
|
return 0;
|
|
125
141
|
}
|
|
142
|
+
|
|
126
143
|
pending += chunk;
|
|
127
144
|
let newline = pending.indexOf('\n');
|
|
145
|
+
|
|
128
146
|
while (newline >= 0 && !ended) {
|
|
129
147
|
const line = pending.slice(0, newline);
|
|
130
148
|
pending = pending.slice(newline + 1);
|
|
131
149
|
newline = pending.indexOf('\n');
|
|
150
|
+
|
|
132
151
|
if (line.trim() !== '') {
|
|
133
152
|
program.onLine(line);
|
|
134
153
|
}
|
|
135
154
|
}
|
|
155
|
+
|
|
136
156
|
return chunk.length;
|
|
137
157
|
},
|
|
138
158
|
flush: (): number => 0,
|
|
@@ -140,9 +160,11 @@ export function inProcess(cli: FakeCli): InProcessCli {
|
|
|
140
160
|
end: (): number => {
|
|
141
161
|
inputClosed = true;
|
|
142
162
|
exit(0);
|
|
163
|
+
|
|
143
164
|
return 0;
|
|
144
165
|
}
|
|
145
166
|
};
|
|
167
|
+
|
|
146
168
|
started.push({
|
|
147
169
|
argv: options.command.slice(1),
|
|
148
170
|
runLater: () => {
|
|
@@ -153,6 +175,7 @@ export function inProcess(cli: FakeCli): InProcessCli {
|
|
|
153
175
|
crash: (code) => exit(code),
|
|
154
176
|
exited
|
|
155
177
|
});
|
|
178
|
+
|
|
156
179
|
return {
|
|
157
180
|
pid: nextPid++,
|
|
158
181
|
stdin,
|
|
@@ -162,6 +185,7 @@ export function inProcess(cli: FakeCli): InProcessCli {
|
|
|
162
185
|
kill: () => exit(null)
|
|
163
186
|
};
|
|
164
187
|
};
|
|
188
|
+
|
|
165
189
|
return { spawn, started };
|
|
166
190
|
}
|
|
167
191
|
|
|
@@ -181,19 +205,24 @@ export async function runOverStdio(cli: FakeCli): Promise<void> {
|
|
|
181
205
|
setImmediate(work);
|
|
182
206
|
}
|
|
183
207
|
});
|
|
208
|
+
|
|
184
209
|
const decoder = new TextDecoder();
|
|
185
210
|
let buffered = '';
|
|
211
|
+
|
|
186
212
|
for await (const chunk of process.stdin as AsyncIterable<Uint8Array>) {
|
|
187
213
|
buffered += decoder.decode(chunk, { stream: true });
|
|
188
214
|
let newline = buffered.indexOf('\n');
|
|
215
|
+
|
|
189
216
|
while (newline >= 0) {
|
|
190
217
|
const line = buffered.slice(0, newline);
|
|
191
218
|
buffered = buffered.slice(newline + 1);
|
|
192
219
|
newline = buffered.indexOf('\n');
|
|
220
|
+
|
|
193
221
|
if (line.trim() !== '') {
|
|
194
222
|
program.onLine(line);
|
|
195
223
|
}
|
|
196
224
|
}
|
|
197
225
|
}
|
|
226
|
+
|
|
198
227
|
process.exit(0);
|
|
199
228
|
}
|