@autonome-research/thread-phase-agents 3.0.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/LICENSE +21 -0
- package/README.md +207 -0
- package/dist/acp/adapter.d.ts +89 -0
- package/dist/acp/adapter.d.ts.map +1 -0
- package/dist/acp/adapter.js +461 -0
- package/dist/acp/adapter.js.map +1 -0
- package/dist/acp/index.d.ts +12 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +10 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/acp/transport.d.ts +82 -0
- package/dist/acp/transport.d.ts.map +1 -0
- package/dist/acp/transport.js +199 -0
- package/dist/acp/transport.js.map +1 -0
- package/dist/acp/types.d.ts +157 -0
- package/dist/acp/types.d.ts.map +1 -0
- package/dist/acp/types.js +34 -0
- package/dist/acp/types.js.map +1 -0
- package/dist/anthropic/adapter.d.ts +55 -0
- package/dist/anthropic/adapter.d.ts.map +1 -0
- package/dist/anthropic/adapter.js +259 -0
- package/dist/anthropic/adapter.js.map +1 -0
- package/dist/anthropic/index.d.ts +8 -0
- package/dist/anthropic/index.d.ts.map +1 -0
- package/dist/anthropic/index.js +8 -0
- package/dist/anthropic/index.js.map +1 -0
- package/dist/claude-code/adapter.d.ts +56 -0
- package/dist/claude-code/adapter.d.ts.map +1 -0
- package/dist/claude-code/adapter.js +319 -0
- package/dist/claude-code/adapter.js.map +1 -0
- package/dist/claude-code/index.d.ts +8 -0
- package/dist/claude-code/index.d.ts.map +1 -0
- package/dist/claude-code/index.js +8 -0
- package/dist/claude-code/index.js.map +1 -0
- package/dist/codex/adapter.d.ts +62 -0
- package/dist/codex/adapter.d.ts.map +1 -0
- package/dist/codex/adapter.js +258 -0
- package/dist/codex/adapter.js.map +1 -0
- package/dist/codex/index.d.ts +9 -0
- package/dist/codex/index.d.ts.map +1 -0
- package/dist/codex/index.js +9 -0
- package/dist/codex/index.js.map +1 -0
- package/dist/codex-cli/adapter.d.ts +70 -0
- package/dist/codex-cli/adapter.d.ts.map +1 -0
- package/dist/codex-cli/adapter.js +368 -0
- package/dist/codex-cli/adapter.js.map +1 -0
- package/dist/codex-cli/index.d.ts +10 -0
- package/dist/codex-cli/index.d.ts.map +1 -0
- package/dist/codex-cli/index.js +10 -0
- package/dist/codex-cli/index.js.map +1 -0
- package/dist/hermes/index.d.ts +50 -0
- package/dist/hermes/index.d.ts.map +1 -0
- package/dist/hermes/index.js +43 -0
- package/dist/hermes/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/injectors.d.ts +104 -0
- package/dist/injectors.d.ts.map +1 -0
- package/dist/injectors.js +219 -0
- package/dist/injectors.js.map +1 -0
- package/dist/openclaw/index.d.ts +54 -0
- package/dist/openclaw/index.d.ts.map +1 -0
- package/dist/openclaw/index.js +61 -0
- package/dist/openclaw/index.js.map +1 -0
- package/dist/pi/adapter.d.ts +79 -0
- package/dist/pi/adapter.d.ts.map +1 -0
- package/dist/pi/adapter.js +396 -0
- package/dist/pi/adapter.js.map +1 -0
- package/dist/pi/index.d.ts +14 -0
- package/dist/pi/index.d.ts.map +1 -0
- package/dist/pi/index.js +14 -0
- package/dist/pi/index.js.map +1 -0
- package/dist/thread-bridge.d.ts +83 -0
- package/dist/thread-bridge.d.ts.map +1 -0
- package/dist/thread-bridge.js +143 -0
- package/dist/thread-bridge.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pi adapter — in-process via `@mariozechner/pi-coding-agent`.
|
|
3
|
+
*
|
|
4
|
+
* Pi is a fully-featured TypeScript coding agent SDK. Unlike the
|
|
5
|
+
* subprocess-based adapters (claude-code, codex-cli, ACP), pi runs in
|
|
6
|
+
* the same Node process: the adapter calls `createAgentSession`,
|
|
7
|
+
* subscribes to its event stream, and forwards each event into the
|
|
8
|
+
* canonical AgentEvent vocabulary.
|
|
9
|
+
*
|
|
10
|
+
* The headline difference from every other adapter: **pi supports
|
|
11
|
+
* native mid-stream steering and follow-up.** This is the first
|
|
12
|
+
* adapter where both `steer()` and `followUp()` on
|
|
13
|
+
* `SteerableAgentRun` actually work at runtime — pi accepts new
|
|
14
|
+
* messages while the model is still generating.
|
|
15
|
+
*
|
|
16
|
+
* Capabilities:
|
|
17
|
+
* streaming 'text'
|
|
18
|
+
* cancellation 'cooperative' (session.abort())
|
|
19
|
+
* resumption 'session-file' (pi's SessionManager persists to disk)
|
|
20
|
+
* structuredOutput 'prompted'
|
|
21
|
+
*
|
|
22
|
+
* Event translation:
|
|
23
|
+
* pi agent_start -> canonical agent_start
|
|
24
|
+
* pi message_update + text_delta -> canonical text
|
|
25
|
+
* pi message_update + thinking_* -> canonical thinking
|
|
26
|
+
* pi tool_execution_start -> canonical tool_call
|
|
27
|
+
* pi tool_execution_end -> canonical tool_result
|
|
28
|
+
* pi turn_end -> canonical turn_end (via endTurn)
|
|
29
|
+
* pi agent_end -> canonical agent_end
|
|
30
|
+
* everything else -> native events (kind: 'pi:*')
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
import { applyStructuredOutputPrompt, composeAbort, createEventQueue, defineAgentAdapter, lazyEvents, parseStructuredFromText, serializeError, TurnAccumulator, } from '@autonome-research/thread-phase/agents';
|
|
35
|
+
const ADAPTER_ID = 'pi';
|
|
36
|
+
/** @internal */
|
|
37
|
+
export const piAgent = defineAgentAdapter({
|
|
38
|
+
id: ADAPTER_ID,
|
|
39
|
+
capabilities: {
|
|
40
|
+
streaming: 'text',
|
|
41
|
+
cancellation: 'cooperative',
|
|
42
|
+
resumption: 'session-file',
|
|
43
|
+
structuredOutput: 'prompted',
|
|
44
|
+
},
|
|
45
|
+
adapter: createPiAdapter,
|
|
46
|
+
});
|
|
47
|
+
function createPiAdapter(config, options = {}) {
|
|
48
|
+
const source = ADAPTER_ID;
|
|
49
|
+
const traceId = options.traceId;
|
|
50
|
+
const { signal: compositeSignal, controller } = composeAbort(options.signal);
|
|
51
|
+
const queue = createEventQueue(options.eventBus);
|
|
52
|
+
const turns = new TurnAccumulator(queue.push, source, traceId);
|
|
53
|
+
// Track session for steer/followUp/abort.
|
|
54
|
+
let activeSession = null;
|
|
55
|
+
let hasEnded = false;
|
|
56
|
+
let started = false;
|
|
57
|
+
let runPromise = null;
|
|
58
|
+
const startIfNeeded = () => {
|
|
59
|
+
if (runPromise)
|
|
60
|
+
return runPromise;
|
|
61
|
+
started = true;
|
|
62
|
+
runPromise = runOnce();
|
|
63
|
+
return runPromise;
|
|
64
|
+
};
|
|
65
|
+
async function runOnce() {
|
|
66
|
+
let resumeToken = config.resumeSessionFile
|
|
67
|
+
? { kind: 'session-file', path: config.resumeSessionFile }
|
|
68
|
+
: undefined;
|
|
69
|
+
queue.push({ type: 'agent_start', source, traceId, resumeToken });
|
|
70
|
+
const effectivePrompt = config.outputSchema
|
|
71
|
+
? `${config.prompt}\n\n${applyStructuredOutputPrompt('', config.outputSchema)}`
|
|
72
|
+
: config.prompt;
|
|
73
|
+
let assembledText = '';
|
|
74
|
+
let finishReason = 'unknown';
|
|
75
|
+
let inputTokens = 0;
|
|
76
|
+
let outputTokens = 0;
|
|
77
|
+
const executedToolCalls = [];
|
|
78
|
+
let sessionId;
|
|
79
|
+
let ownsSession = false;
|
|
80
|
+
try {
|
|
81
|
+
let session;
|
|
82
|
+
if (config.session) {
|
|
83
|
+
session = config.session;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Dynamic import keeps pi-coding-agent out of the type/runtime
|
|
87
|
+
// path for consumers who don't use this adapter.
|
|
88
|
+
const piModule = await import('@mariozechner/pi-coding-agent');
|
|
89
|
+
const factory = piModule.createAgentSession;
|
|
90
|
+
if (typeof factory !== 'function') {
|
|
91
|
+
throw new Error('@mariozechner/pi-coding-agent: createAgentSession not exported');
|
|
92
|
+
}
|
|
93
|
+
const result = await factory({
|
|
94
|
+
cwd: config.cwd ?? process.cwd(),
|
|
95
|
+
continueSession: config.continueSession,
|
|
96
|
+
resumeSessionFile: config.resumeSessionFile,
|
|
97
|
+
model: config.model,
|
|
98
|
+
thinkingLevel: config.thinkingLevel,
|
|
99
|
+
...config.sessionOptions,
|
|
100
|
+
});
|
|
101
|
+
session = result.session;
|
|
102
|
+
ownsSession = true;
|
|
103
|
+
}
|
|
104
|
+
activeSession = session;
|
|
105
|
+
// Subscribe and translate events.
|
|
106
|
+
const unsubscribe = session.subscribe((event) => {
|
|
107
|
+
try {
|
|
108
|
+
translateEvent(event);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
queue.push({
|
|
112
|
+
type: 'error',
|
|
113
|
+
source,
|
|
114
|
+
traceId,
|
|
115
|
+
error: serializeError(err),
|
|
116
|
+
transient: false,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
function translateEvent(event) {
|
|
121
|
+
if (event === null || typeof event !== 'object')
|
|
122
|
+
return;
|
|
123
|
+
const eventType = event.type;
|
|
124
|
+
switch (eventType) {
|
|
125
|
+
case 'agent_start': {
|
|
126
|
+
// pi emits its own agent_start; we already emitted ours.
|
|
127
|
+
// Forward as native so the audit log keeps both.
|
|
128
|
+
turns.native('pi:agent_start', event);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
case 'agent_end': {
|
|
132
|
+
// Stop reason comes from the last assistant message. Usage is
|
|
133
|
+
// captured per-turn via turn_end events — DO NOT re-add it
|
|
134
|
+
// here, since agent_end.messages contains every assistant
|
|
135
|
+
// message of the run and would double-count.
|
|
136
|
+
const messages = event.messages ?? [];
|
|
137
|
+
const last = messages[messages.length - 1];
|
|
138
|
+
if (last) {
|
|
139
|
+
finishReason = mapStopReason(last.stopReason);
|
|
140
|
+
if (typeof last.errorMessage === 'string' && last.errorMessage) {
|
|
141
|
+
queue.push({
|
|
142
|
+
type: 'error',
|
|
143
|
+
source,
|
|
144
|
+
traceId,
|
|
145
|
+
error: { name: 'PiAgentError', message: last.errorMessage },
|
|
146
|
+
transient: false,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
if (typeof last.sessionId === 'string')
|
|
150
|
+
sessionId = last.sessionId;
|
|
151
|
+
}
|
|
152
|
+
turns.native('pi:agent_end', event);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
case 'turn_start': {
|
|
156
|
+
turns.native('pi:turn_start', event);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
case 'turn_end': {
|
|
160
|
+
const turnMsg = event.message;
|
|
161
|
+
if (turnMsg?.usage) {
|
|
162
|
+
const usage = {
|
|
163
|
+
promptTokens: Number(turnMsg.usage.input) || 0,
|
|
164
|
+
completionTokens: Number(turnMsg.usage.output) || 0,
|
|
165
|
+
totalTokens: (Number(turnMsg.usage.input) || 0) + (Number(turnMsg.usage.output) || 0),
|
|
166
|
+
};
|
|
167
|
+
turns.endTurn(usage);
|
|
168
|
+
inputTokens += usage.promptTokens;
|
|
169
|
+
outputTokens += usage.completionTokens;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
turns.endTurn();
|
|
173
|
+
}
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
case 'message_update': {
|
|
177
|
+
const inner = event.assistantMessageEvent;
|
|
178
|
+
if (!inner)
|
|
179
|
+
return;
|
|
180
|
+
switch (inner.type) {
|
|
181
|
+
case 'text_delta': {
|
|
182
|
+
const delta = typeof inner.delta === 'string' ? inner.delta : '';
|
|
183
|
+
if (delta) {
|
|
184
|
+
assembledText += delta;
|
|
185
|
+
turns.text(delta);
|
|
186
|
+
}
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
case 'thinking_delta': {
|
|
190
|
+
const delta = typeof inner.delta === 'string' ? inner.delta : '';
|
|
191
|
+
if (delta)
|
|
192
|
+
turns.thinking(delta);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
case 'toolcall_end': {
|
|
196
|
+
// Tool call args finalized inside the message stream.
|
|
197
|
+
// The canonical tool_call event fires from
|
|
198
|
+
// `tool_execution_start` below — surface the inner
|
|
199
|
+
// event as native for audit.
|
|
200
|
+
turns.native('pi:toolcall_end', inner);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
default: {
|
|
204
|
+
turns.native(`pi:message_update:${inner.type}`, inner);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
case 'tool_execution_start': {
|
|
210
|
+
const e = event;
|
|
211
|
+
const input = e.args && typeof e.args === 'object' && !Array.isArray(e.args)
|
|
212
|
+
? e.args
|
|
213
|
+
: { value: e.args };
|
|
214
|
+
turns.toolCall(e.toolCallId, e.toolName, input);
|
|
215
|
+
executedToolCalls.push({ id: e.toolCallId, name: e.toolName, input });
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
case 'tool_execution_end': {
|
|
219
|
+
const e = event;
|
|
220
|
+
turns.toolResult(e.toolCallId, e.toolName, e.result, e.isError === true);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
case 'tool_execution_update': {
|
|
224
|
+
turns.native('pi:tool_execution_update', event);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
case 'message_start':
|
|
228
|
+
case 'message_end': {
|
|
229
|
+
turns.native(`pi:${eventType}`, event);
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
default: {
|
|
233
|
+
turns.native(`pi:${eventType ?? 'unknown'}`, event);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// Wire abort. Pi's session.abort() is async and graceful.
|
|
239
|
+
const onAbort = () => {
|
|
240
|
+
try {
|
|
241
|
+
void session.abort();
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
// best-effort
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
if (compositeSignal.aborted) {
|
|
248
|
+
onAbort();
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
compositeSignal.addEventListener('abort', onAbort, { once: true });
|
|
252
|
+
}
|
|
253
|
+
try {
|
|
254
|
+
await session.prompt(effectivePrompt);
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
queue.push({
|
|
258
|
+
type: 'error',
|
|
259
|
+
source,
|
|
260
|
+
traceId,
|
|
261
|
+
error: serializeError(err),
|
|
262
|
+
transient: false,
|
|
263
|
+
});
|
|
264
|
+
if (compositeSignal.aborted && finishReason === 'unknown') {
|
|
265
|
+
finishReason = 'aborted';
|
|
266
|
+
}
|
|
267
|
+
else if (finishReason === 'unknown') {
|
|
268
|
+
finishReason = 'error';
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
unsubscribe();
|
|
272
|
+
// If agent_end never fired (rare), close the accumulator.
|
|
273
|
+
turns.close();
|
|
274
|
+
if (finishReason === 'unknown' && compositeSignal.aborted) {
|
|
275
|
+
finishReason = 'aborted';
|
|
276
|
+
}
|
|
277
|
+
if (sessionId) {
|
|
278
|
+
// Pi sessions can be looked up by id via SessionManager. Surface
|
|
279
|
+
// the id alongside the session file when available.
|
|
280
|
+
resumeToken = { kind: 'opaque', data: sessionId };
|
|
281
|
+
}
|
|
282
|
+
let parsed = undefined;
|
|
283
|
+
let parseError = undefined;
|
|
284
|
+
// finishReason can be any AgentFinishReason (set via translateEvent
|
|
285
|
+
// callback which TS can't flow-analyze); cast through unknown to
|
|
286
|
+
// bypass the narrowed view TS infers from the catch path.
|
|
287
|
+
if (config.outputSchema && finishReason === 'stop') {
|
|
288
|
+
try {
|
|
289
|
+
parsed = parseStructuredFromText(assembledText, config.outputSchema);
|
|
290
|
+
}
|
|
291
|
+
catch (err) {
|
|
292
|
+
parseError = serializeError(err);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
queue.push({ type: 'agent_end', source, traceId, reason: finishReason, resumeToken });
|
|
296
|
+
hasEnded = true;
|
|
297
|
+
queue.close();
|
|
298
|
+
if (ownsSession) {
|
|
299
|
+
try {
|
|
300
|
+
session.dispose();
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
// ignore disposal errors
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
text: assembledText,
|
|
308
|
+
finishReason,
|
|
309
|
+
usage: {
|
|
310
|
+
promptTokens: inputTokens,
|
|
311
|
+
completionTokens: outputTokens,
|
|
312
|
+
totalTokens: inputTokens + outputTokens,
|
|
313
|
+
},
|
|
314
|
+
executedToolCalls,
|
|
315
|
+
parsed,
|
|
316
|
+
parseError,
|
|
317
|
+
resumeToken,
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
catch (err) {
|
|
321
|
+
const aborted = compositeSignal.aborted;
|
|
322
|
+
turns.close();
|
|
323
|
+
queue.push({
|
|
324
|
+
type: 'error',
|
|
325
|
+
source,
|
|
326
|
+
traceId,
|
|
327
|
+
error: serializeError(err),
|
|
328
|
+
transient: false,
|
|
329
|
+
});
|
|
330
|
+
const reason = aborted ? 'aborted' : 'error';
|
|
331
|
+
queue.push({ type: 'agent_end', source, traceId, reason, resumeToken });
|
|
332
|
+
hasEnded = true;
|
|
333
|
+
queue.close();
|
|
334
|
+
return {
|
|
335
|
+
text: assembledText,
|
|
336
|
+
finishReason: reason,
|
|
337
|
+
usage: { promptTokens: 0, completionTokens: 0, totalTokens: 0 },
|
|
338
|
+
executedToolCalls: [],
|
|
339
|
+
resumeToken,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Returned object includes the SteerableAgentRun shape — pi natively
|
|
344
|
+
// supports both steer() and followUp().
|
|
345
|
+
const run = {
|
|
346
|
+
events: lazyEvents(queue.events, startIfNeeded),
|
|
347
|
+
get result() {
|
|
348
|
+
return startIfNeeded();
|
|
349
|
+
},
|
|
350
|
+
abort(reason) {
|
|
351
|
+
controller.abort(reason);
|
|
352
|
+
if (!started)
|
|
353
|
+
startIfNeeded();
|
|
354
|
+
},
|
|
355
|
+
async steer(message) {
|
|
356
|
+
if (hasEnded) {
|
|
357
|
+
throw new Error('cannot steer after agent_end');
|
|
358
|
+
}
|
|
359
|
+
const session = activeSession;
|
|
360
|
+
if (!session) {
|
|
361
|
+
throw new Error('cannot steer before the pi session has started');
|
|
362
|
+
}
|
|
363
|
+
await session.steer(message);
|
|
364
|
+
},
|
|
365
|
+
async followUp(message) {
|
|
366
|
+
if (hasEnded) {
|
|
367
|
+
throw new Error('cannot followUp after agent_end');
|
|
368
|
+
}
|
|
369
|
+
const session = activeSession;
|
|
370
|
+
if (!session) {
|
|
371
|
+
throw new Error('cannot followUp before the pi session has started');
|
|
372
|
+
}
|
|
373
|
+
await session.followUp(message);
|
|
374
|
+
},
|
|
375
|
+
};
|
|
376
|
+
return run;
|
|
377
|
+
}
|
|
378
|
+
function mapStopReason(reason) {
|
|
379
|
+
if (typeof reason !== 'string')
|
|
380
|
+
return 'unknown';
|
|
381
|
+
switch (reason) {
|
|
382
|
+
case 'stop':
|
|
383
|
+
return 'stop';
|
|
384
|
+
case 'length':
|
|
385
|
+
return 'length';
|
|
386
|
+
case 'toolUse':
|
|
387
|
+
return 'tool_calls';
|
|
388
|
+
case 'error':
|
|
389
|
+
return 'error';
|
|
390
|
+
case 'aborted':
|
|
391
|
+
return 'aborted';
|
|
392
|
+
default:
|
|
393
|
+
return 'unknown';
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/pi/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pi adapter entry. In-process via `@mariozechner/pi-coding-agent`.
|
|
3
|
+
*
|
|
4
|
+
* The first adapter in this package that natively supports
|
|
5
|
+
* `SteerableAgentRun.steer()` and `.followUp()`. Use `isSteerable`
|
|
6
|
+
* from `thread-phase/agents` to narrow at the call site:
|
|
7
|
+
*
|
|
8
|
+
* const run = piAgent.adapter({ cwd, prompt });
|
|
9
|
+
* if (isSteerable(run)) await run.steer('reconsider this');
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export { piAgent, type PiAgentConfig } from './adapter.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pi/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/pi/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pi adapter entry. In-process via `@mariozechner/pi-coding-agent`.
|
|
3
|
+
*
|
|
4
|
+
* The first adapter in this package that natively supports
|
|
5
|
+
* `SteerableAgentRun.steer()` and `.followUp()`. Use `isSteerable`
|
|
6
|
+
* from `thread-phase/agents` to narrow at the call site:
|
|
7
|
+
*
|
|
8
|
+
* const run = piAgent.adapter({ cwd, prompt });
|
|
9
|
+
* if (isSteerable(run)) await run.steer('reconsider this');
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export { piAgent } from './adapter.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pi/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAsB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a `Thread` into the input shape each adapter expects.
|
|
3
|
+
*
|
|
4
|
+
* Same-adapter handoff (claude-code → claude-code) uses the resume
|
|
5
|
+
* token; native fidelity. Cross-adapter handoff (claude-code →
|
|
6
|
+
* anthropic) loses the per-adapter native log and falls back to a
|
|
7
|
+
* text rendering of the canonical event stream.
|
|
8
|
+
*
|
|
9
|
+
* These helpers turn `thread.events` into the next adapter's input
|
|
10
|
+
* format. They're lossy by design — preserve the gist, not the
|
|
11
|
+
* adapter-specific structure. For tighter fidelity, pass the
|
|
12
|
+
* adapter's resume token via `injectResume.<adapter>` instead.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
import { threadToMessages, type Thread } from '@autonome-research/thread-phase/agents';
|
|
17
|
+
import type { ContentBlock } from './acp/index.js';
|
|
18
|
+
/**
|
|
19
|
+
* Produce a text transcript of the thread suitable for splicing into
|
|
20
|
+
* any adapter's prompt. Format is "[<source>] <text>" for assistant
|
|
21
|
+
* turns, "[<source>:tool] <name>(<input>)" for tool calls,
|
|
22
|
+
* "[<source>:result] <output>" for tool results. Skips native /
|
|
23
|
+
* thinking / lifecycle events.
|
|
24
|
+
*
|
|
25
|
+
* Output is bounded by the thread's content; very long threads
|
|
26
|
+
* produce very long transcripts — callers managing token budgets
|
|
27
|
+
* should pre-trim or summarize.
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare function threadToTranscript(thread: Thread): string;
|
|
32
|
+
/**
|
|
33
|
+
* Render a thread as a single ACP `ContentBlock[]` (one text block).
|
|
34
|
+
* Suitable for `acpAgent.adapter({ ..., prompt: threadToAcpPrompt(thread) })`
|
|
35
|
+
* when a downstream adapter call shouldn't try same-session resume.
|
|
36
|
+
*
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
export declare function threadToAcpPrompt(thread: Thread): ContentBlock[];
|
|
40
|
+
/**
|
|
41
|
+
* Render a thread as a plain string. Suitable for `claudeCodeAgent` or
|
|
42
|
+
* any adapter that takes a single user-prompt string.
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export declare function threadToClaudeCodePrompt(thread: Thread): string;
|
|
47
|
+
/**
|
|
48
|
+
* Render a thread as a single text input for the OpenAI Responses API.
|
|
49
|
+
* The Responses API's `input` field accepts a string or an items array;
|
|
50
|
+
* we use the string form for cross-adapter handoff.
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export declare function threadToCodexInput(thread: Thread): string;
|
|
55
|
+
/**
|
|
56
|
+
* Render a thread as Anthropic `MessageParam[]` — currently a single
|
|
57
|
+
* user message wrapping the transcript. Anthropic's role-based
|
|
58
|
+
* conversation structure doesn't round-trip from canonical events
|
|
59
|
+
* losslessly; for tighter fidelity, use Anthropic's own messages
|
|
60
|
+
* array directly rather than crossing adapter boundaries.
|
|
61
|
+
*
|
|
62
|
+
* The return type is intentionally typed loosely as `unknown[]` to
|
|
63
|
+
* avoid importing `@anthropic-ai/sdk` types from this module — the
|
|
64
|
+
* runtime shape matches `MessageParam[]` (role: 'user' | 'assistant',
|
|
65
|
+
* content: string), which is the broadly-compatible subset across
|
|
66
|
+
* Anthropic SDK versions.
|
|
67
|
+
*
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
export declare function threadToAnthropicMessages(thread: Thread): Array<{
|
|
71
|
+
role: 'user' | 'assistant';
|
|
72
|
+
content: string;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Render the thread's canonical event log to thread-phase's internal
|
|
76
|
+
* `Message[]` shape. Re-exports the upstream `threadToMessages` so
|
|
77
|
+
* sibling-package consumers can find all the bridge helpers in one
|
|
78
|
+
* place.
|
|
79
|
+
*
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
export { threadToMessages };
|
|
83
|
+
//# sourceMappingURL=thread-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-bridge.d.ts","sourceRoot":"","sources":["../src/thread-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,MAAM,EACZ,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmCzD;AAeD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAGhE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GACb,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAMxD;AAED;;;;;;;GAOG;AACH,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|