atom-lite 0.4.1 → 0.5.1

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.
Files changed (88) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/dist/agent/loop.d.ts +9 -0
  4. package/dist/agent/loop.js +233 -47
  5. package/dist/agent/loop.js.map +1 -1
  6. package/dist/agent/model-turn.d.ts +37 -0
  7. package/dist/agent/model-turn.js +53 -0
  8. package/dist/agent/model-turn.js.map +1 -0
  9. package/dist/agent/turn-recorder.d.ts +33 -0
  10. package/dist/agent/turn-recorder.js +74 -0
  11. package/dist/agent/turn-recorder.js.map +1 -0
  12. package/dist/agent/types.d.ts +4 -0
  13. package/dist/cli/app.js +373 -33
  14. package/dist/cli/app.js.map +1 -1
  15. package/dist/cli/commands.d.ts +3 -0
  16. package/dist/cli/commands.js +20 -5
  17. package/dist/cli/commands.js.map +1 -1
  18. package/dist/cli/main.js +2 -2
  19. package/dist/cli/main.js.map +1 -1
  20. package/dist/cli/mouse.js +4 -1
  21. package/dist/cli/mouse.js.map +1 -1
  22. package/dist/cli/stream-text.js +1 -0
  23. package/dist/cli/stream-text.js.map +1 -1
  24. package/dist/cli/theme.d.ts +1 -1
  25. package/dist/cli/theme.js +2 -0
  26. package/dist/cli/theme.js.map +1 -1
  27. package/dist/cli/transcript.d.ts +15 -1
  28. package/dist/cli/transcript.js +40 -1
  29. package/dist/cli/transcript.js.map +1 -1
  30. package/dist/cli/trust-prompt.d.ts +24 -0
  31. package/dist/cli/trust-prompt.js +89 -0
  32. package/dist/cli/trust-prompt.js.map +1 -0
  33. package/dist/config/defaults.d.ts +2 -0
  34. package/dist/config/defaults.js +2 -0
  35. package/dist/config/defaults.js.map +1 -1
  36. package/dist/config/load.js +4 -0
  37. package/dist/config/load.js.map +1 -1
  38. package/dist/config/paths.d.ts +2 -0
  39. package/dist/config/paths.js +12 -1
  40. package/dist/config/paths.js.map +1 -1
  41. package/dist/config/schema.d.ts +4 -0
  42. package/dist/config/schema.js +2 -0
  43. package/dist/config/schema.js.map +1 -1
  44. package/dist/context/manager.d.ts +17 -3
  45. package/dist/context/manager.js +129 -41
  46. package/dist/context/manager.js.map +1 -1
  47. package/dist/extensions/api.d.ts +51 -1
  48. package/dist/extensions/api.js +124 -6
  49. package/dist/extensions/api.js.map +1 -1
  50. package/dist/extensions/discovery.d.ts +16 -0
  51. package/dist/extensions/discovery.js +191 -108
  52. package/dist/extensions/discovery.js.map +1 -1
  53. package/dist/extensions/loader.d.ts +42 -1
  54. package/dist/extensions/loader.js +272 -32
  55. package/dist/extensions/loader.js.map +1 -1
  56. package/dist/extensions/session-manager.d.ts +44 -0
  57. package/dist/extensions/session-manager.js +137 -0
  58. package/dist/extensions/session-manager.js.map +1 -0
  59. package/dist/extensions/tool-adapter.d.ts +12 -0
  60. package/dist/extensions/tool-adapter.js +157 -0
  61. package/dist/extensions/tool-adapter.js.map +1 -0
  62. package/dist/extensions/trust.d.ts +2 -0
  63. package/dist/extensions/trust.js +32 -17
  64. package/dist/extensions/trust.js.map +1 -1
  65. package/dist/extensions/types.d.ts +45 -3
  66. package/dist/extensions/ui.d.ts +21 -0
  67. package/dist/extensions/ui.js +75 -0
  68. package/dist/extensions/ui.js.map +1 -0
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.js +1 -0
  71. package/dist/index.js.map +1 -1
  72. package/dist/mcp/stdio-transport.js +3 -20
  73. package/dist/mcp/stdio-transport.js.map +1 -1
  74. package/dist/runtime/scheduler.d.ts +4 -3
  75. package/dist/runtime/scheduler.js +7 -105
  76. package/dist/runtime/scheduler.js.map +1 -1
  77. package/dist/runtime/tool-executor.d.ts +18 -0
  78. package/dist/runtime/tool-executor.js +126 -0
  79. package/dist/runtime/tool-executor.js.map +1 -0
  80. package/dist/security/process.d.ts +10 -0
  81. package/dist/security/process.js +36 -0
  82. package/dist/security/process.js.map +1 -1
  83. package/dist/sessions/store.js +2 -3
  84. package/dist/sessions/store.js.map +1 -1
  85. package/dist/tools/bash.js +6 -3
  86. package/dist/tools/bash.js.map +1 -1
  87. package/dist/tools/types.d.ts +6 -0
  88. package/package.json +3 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
+ ## [0.5.0] - 2026-11-05
13
+
14
+ ### Added
15
+
16
+ - Unmodified Pi coding-agent extension support: discovery, project trust,
17
+ in-process loading via `jiti`, extension tools, commands, events, and
18
+ session entries, plus ADR-0011 and the extensions guide.
19
+ - `/extensions doctor` diagnostics, `/steer` mid-turn injection, and
20
+ message queuing during active turns.
21
+ - Continuous dimmed thinking blocks in the TUI.
22
+
12
23
  ## [0.4.1] - 2026-11-04
13
24
 
14
25
  ### Fixed
package/README.md CHANGED
@@ -234,7 +234,7 @@ palette. Common commands:
234
234
  | `/search <query>` | Search sessions by title or content |
235
235
  | `/export [path]` | Export the session transcript |
236
236
  | `/mcp [reconnect [server]]` | Inspect or reconnect MCP servers |
237
- | `/extensions` | List loaded extensions |
237
+ | `/extensions` | List discovered extensions and load status |
238
238
  | `/compact` | Compact older context |
239
239
  | `/clear` | Clear the transcript view |
240
240
  | `/approval` | Change approval mode |
@@ -12,6 +12,8 @@ export declare class AgentRuntime {
12
12
  private bashConcurrency;
13
13
  private toolMap;
14
14
  private limits;
15
+ private extensionDispatch;
16
+ private steeringQueue;
15
17
  private systemPrompt;
16
18
  private contextWindow;
17
19
  private contextUsed;
@@ -22,11 +24,18 @@ export declare class AgentRuntime {
22
24
  getContextUsage(): ContextUsage;
23
25
  private emitContextUsage;
24
26
  setEffort(effort: string): void;
27
+ setSteeringQueue(queue: string[]): void;
28
+ compactSession(session: {
29
+ messages: Message[];
30
+ appendMessage(m: Message): void;
31
+ appendEvent?(partial: any): any;
32
+ }, focus?: string): Promise<string | null>;
25
33
  /** Replace the toolset, e.g. after MCP discovery or a list_changed refresh. */
26
34
  setTools(tools: AgentRuntimeOptions["tools"]): void;
27
35
  getEffort(): string;
28
36
  runAgentTurn(input: string, session: {
29
37
  messages: Message[];
30
38
  appendMessage(m: Message): void;
39
+ appendEvent?(partial: any): any;
31
40
  }, signal: AbortSignal): Promise<string>;
32
41
  }
@@ -1,6 +1,8 @@
1
1
  import { DEFAULT_LIMITS } from "../types.js";
2
2
  import { executeToolBatch } from "../runtime/scheduler.js";
3
3
  import { ContextManager } from "../context/manager.js";
4
+ import { runModelTurn } from "./model-turn.js";
5
+ import { TurnRecorder } from "./turn-recorder.js";
4
6
  export class AgentRuntime {
5
7
  provider;
6
8
  model;
@@ -13,6 +15,8 @@ export class AgentRuntime {
13
15
  bashConcurrency;
14
16
  toolMap;
15
17
  limits;
18
+ extensionDispatch;
19
+ steeringQueue;
16
20
  systemPrompt;
17
21
  contextWindow;
18
22
  contextUsed;
@@ -38,6 +42,8 @@ export class AgentRuntime {
38
42
  });
39
43
  this.toolMap = new Map(options.tools.map((t) => [t.definition.name, t]));
40
44
  this.limits = { ...DEFAULT_LIMITS, ...(options.limits ?? {}) };
45
+ this.extensionDispatch = options.extensionDispatch;
46
+ this.steeringQueue = options.steeringQueue;
41
47
  this.systemPrompt = options.systemPrompt ?? "You are a coding assistant with tools: read, write, edit, bash, webfetch, websearch.";
42
48
  this.contextWindow = options.contextWindow;
43
49
  this.contextManager.setModelContextWindow(options.contextWindow);
@@ -76,6 +82,23 @@ export class AgentRuntime {
76
82
  setEffort(effort) {
77
83
  this.effort = effort;
78
84
  }
85
+ setSteeringQueue(queue) {
86
+ this.steeringQueue = queue;
87
+ }
88
+ async compactSession(session, focus) {
89
+ const summary = await this.contextManager.compactHistory(this.workspace, session.messages, focus);
90
+ if (summary) {
91
+ this.contextManager.setSessionMemory(summary, this.contextManager.getLastCompactionCoveredCount());
92
+ if (typeof session.appendEvent === "function") {
93
+ session.appendEvent({
94
+ type: "context_compacted",
95
+ summary,
96
+ coveredCount: this.contextManager.getLastCompactionCoveredCount(),
97
+ });
98
+ }
99
+ }
100
+ return summary;
101
+ }
79
102
  /** Replace the toolset, e.g. after MCP discovery or a list_changed refresh. */
80
103
  setTools(tools) {
81
104
  this.tools = tools;
@@ -85,10 +108,29 @@ export class AgentRuntime {
85
108
  return this.effort;
86
109
  }
87
110
  async runAgentTurn(input, session, signal) {
111
+ // Restore any persisted session memory for resumed sessions.
112
+ const events = session.events;
113
+ if (Array.isArray(events)) {
114
+ const latest = [...events].reverse().find((e) => e?.type === "context_compacted");
115
+ this.contextManager.setSessionMemory(typeof latest?.summary === "string" ? latest.summary : null, typeof latest?.coveredCount === "number" ? latest.coveredCount : undefined);
116
+ }
88
117
  session.appendMessage({ role: "user", content: [{ type: "text", text: input }] });
118
+ await this.extensionDispatch?.("turn_start", { type: "turn_start" });
89
119
  let totalToolCalls = 0;
120
+ let forceContinue = false;
90
121
  const start = Date.now();
91
122
  for (let iteration = 0; iteration < this.limits.maxIterations; iteration++) {
123
+ forceContinue = false;
124
+ // Drain any steering messages into the session before the next model turn.
125
+ if (this.steeringQueue && this.steeringQueue.length > 0) {
126
+ while (this.steeringQueue.length > 0) {
127
+ const msg = this.steeringQueue.shift();
128
+ session.appendMessage({
129
+ role: "user",
130
+ content: [{ type: "text", text: msg }],
131
+ });
132
+ }
133
+ }
92
134
  if (signal.aborted) {
93
135
  throw new Error("USER_CANCELLED");
94
136
  }
@@ -101,49 +143,58 @@ export class AgentRuntime {
101
143
  // assistant response reports fresh numbers.
102
144
  this.contextUsed = undefined;
103
145
  this.emitContextUsage();
146
+ const summary = this.contextManager.consumeCompactionSummary();
147
+ const coveredCount = this.contextManager.consumeCompactionCoveredCount();
148
+ if (summary && typeof session.appendEvent === "function") {
149
+ session.appendEvent({
150
+ type: "context_compacted",
151
+ summary,
152
+ coveredCount,
153
+ });
154
+ }
104
155
  }
105
- const request = {
156
+ let response;
157
+ let streamedText = "";
158
+ await this.extensionDispatch?.("before_provider_request", {
159
+ type: "before_provider_request",
160
+ messages,
161
+ tools: this.tools.map((t) => t.definition),
162
+ });
163
+ for await (const ev of runModelTurn({
164
+ provider: this.provider,
106
165
  model: this.model,
107
166
  messages,
108
167
  tools: this.tools.map((t) => t.definition),
168
+ effort: this.effort,
109
169
  signal,
110
- options: { effort: this.effort },
111
- };
112
- let response;
113
- let streamedText = "";
114
- if (typeof this.provider.stream === "function") {
115
- // Stream tokens as they arrive.
116
- for await (const ev of this.provider.stream(request)) {
117
- if (ev.type === "thinking") {
118
- this.onEvent?.({ type: "thinking_delta", text: ev.text });
119
- }
120
- else if (ev.type === "text") {
121
- streamedText += ev.text;
122
- this.onEvent?.({ type: "assistant_delta", text: ev.text });
123
- }
124
- else if (ev.type === "done") {
125
- response = ev.response;
126
- }
170
+ })) {
171
+ if (ev.type === "thinking_delta") {
172
+ this.onEvent?.({ type: "thinking_delta", text: ev.text });
127
173
  }
128
- if (!response) {
129
- // Fallback if stream ended without done
130
- response = {
131
- message: { role: "assistant", content: streamedText ? [{ type: "text", text: streamedText }] : undefined, toolCalls: undefined },
132
- toolCalls: [],
133
- finishReason: "stop",
134
- };
174
+ else if (ev.type === "assistant_delta") {
175
+ streamedText += ev.text;
176
+ this.onEvent?.({ type: "assistant_delta", text: ev.text });
177
+ }
178
+ else if (ev.type === "assistant_text") {
179
+ streamedText = ev.text;
180
+ this.onEvent?.({ type: "assistant_text", text: ev.text });
181
+ }
182
+ else if (ev.type === "final") {
183
+ response = ev.response;
184
+ streamedText = ev.streamedText;
135
185
  }
136
186
  }
137
- else {
138
- response = await this.provider.generate(request);
139
- const t = response.message.content?.map((p) => (p.type === "text" ? p.text : "")).join("") ?? "";
140
- if (t)
141
- this.onEvent?.({ type: "assistant_text", text: t });
142
- streamedText = t;
143
- }
144
- session.appendMessage(response.message);
187
+ await this.extensionDispatch?.("after_provider_response", {
188
+ type: "after_provider_response",
189
+ response,
190
+ });
191
+ const recorder = new TurnRecorder({
192
+ session,
193
+ onEvent: this.onEvent,
194
+ extensionDispatch: this.extensionDispatch,
195
+ });
196
+ const text = await recorder.recordAssistant(response, streamedText);
145
197
  if (response.usage) {
146
- this.onEvent?.({ type: "usage", input: response.usage.input, output: response.usage.output });
147
198
  const used = (response.usage.input ?? 0) + (response.usage.output ?? 0);
148
199
  if (used > 0) {
149
200
  // The latest assistant step's prompt + generated tokens is the
@@ -152,14 +203,61 @@ export class AgentRuntime {
152
203
  this.emitContextUsage();
153
204
  }
154
205
  }
155
- const text = streamedText || (response.message.content?.map((p) => (p.type === "text" ? p.text : "")).join("") ?? "");
156
206
  const toolCalls = response.toolCalls ?? [];
157
207
  if (toolCalls.length === 0) {
158
- this.onEvent?.({ type: "final", text });
208
+ // turn_end / agent_before_settle continuation handling.
209
+ let continued = false;
210
+ const turnResults = await this.extensionDispatch?.("turn_end", {
211
+ type: "turn_end",
212
+ });
213
+ for (const r of turnResults ?? []) {
214
+ if (r && r.continue)
215
+ continued = true;
216
+ }
217
+ if (continued) {
218
+ forceContinue = true;
219
+ continue;
220
+ }
221
+ const settleResults = await this.extensionDispatch?.("agent_before_settle", { type: "agent_before_settle" });
222
+ for (const r of settleResults ?? []) {
223
+ if (r && r.continue)
224
+ continued = true;
225
+ }
226
+ if (continued) {
227
+ forceContinue = true;
228
+ continue;
229
+ }
230
+ await this.extensionDispatch?.("agent_settled", {
231
+ type: "agent_settled",
232
+ });
159
233
  return text;
160
234
  }
161
- for (const c of toolCalls)
162
- this.onEvent?.({ type: "tool_call", id: c.id, name: c.name, args: c.arguments });
235
+ // Emit tool_call events; allow mutation and block decisions.
236
+ const blocked = new Set();
237
+ let terminate = false;
238
+ for (const call of toolCalls) {
239
+ const payload = {
240
+ type: "tool_call",
241
+ toolCallId: call.id,
242
+ name: call.name,
243
+ input: call.arguments,
244
+ };
245
+ const results = await this.extensionDispatch?.("tool_call", payload);
246
+ // Apply in-place mutation.
247
+ if (payload.input && payload.input !== call.arguments) {
248
+ call.arguments = payload.input;
249
+ }
250
+ for (const r of results ?? []) {
251
+ if (r && typeof r === "object") {
252
+ if (r.block)
253
+ blocked.add(call.id);
254
+ if (r.terminate)
255
+ terminate = true;
256
+ if (r.input)
257
+ call.arguments = r.input;
258
+ }
259
+ }
260
+ }
163
261
  totalToolCalls += toolCalls.length;
164
262
  if (totalToolCalls > this.limits.maxToolCalls) {
165
263
  return "TASK_BUDGET_REACHED";
@@ -178,24 +276,112 @@ export class AgentRuntime {
178
276
  stream,
179
277
  text,
180
278
  });
279
+ void this.extensionDispatch?.("tool_execution_update", {
280
+ type: "tool_execution_update",
281
+ toolCallId: call.id,
282
+ name: call.name,
283
+ stream,
284
+ text,
285
+ });
181
286
  },
182
287
  };
183
- const results = await executeToolBatch(toolCalls, this.toolMap, ctx, this.limits.maxParallelToolCalls, signal, undefined, this.bashConcurrency);
184
- for (const r of results) {
185
- session.appendMessage({
186
- role: "tool",
187
- toolCallId: r.toolCallId,
188
- name: r.name,
189
- content: r.content,
288
+ // Wrapped tool map emits tool_execution_start/end.
289
+ const wrappedToolMap = new Map(this.toolMap);
290
+ for (const [name, tool] of this.toolMap) {
291
+ wrappedToolMap.set(name, {
292
+ ...tool,
293
+ execute: async (call, ctx2) => {
294
+ await this.extensionDispatch?.("tool_execution_start", {
295
+ type: "tool_execution_start",
296
+ toolCallId: call.id,
297
+ name: call.name,
298
+ args: call.arguments,
299
+ });
300
+ let result;
301
+ try {
302
+ result = await tool.execute(call, ctx2);
303
+ }
304
+ catch (err) {
305
+ result = {
306
+ toolCallId: call.id,
307
+ name: call.name,
308
+ content: `COMMAND_FAILED: ${err instanceof Error ? err.message : String(err)}`,
309
+ isError: true,
310
+ };
311
+ }
312
+ await this.extensionDispatch?.("tool_execution_end", {
313
+ type: "tool_execution_end",
314
+ toolCallId: call.id,
315
+ name: call.name,
316
+ result,
317
+ isError: result?.isError,
318
+ });
319
+ return result;
320
+ },
321
+ });
322
+ }
323
+ const blockedResults = new Map();
324
+ for (const call of toolCalls) {
325
+ if (!blocked.has(call.id))
326
+ continue;
327
+ const reason = "blocked by extension";
328
+ const r = {
329
+ toolCallId: call.id,
330
+ name: call.name,
331
+ content: reason,
332
+ isError: true,
333
+ };
334
+ blockedResults.set(call.id, r);
335
+ await this.extensionDispatch?.("tool_execution_start", {
336
+ type: "tool_execution_start",
337
+ toolCallId: call.id,
338
+ name: call.name,
339
+ args: call.arguments,
340
+ });
341
+ await this.extensionDispatch?.("tool_execution_end", {
342
+ type: "tool_execution_end",
343
+ toolCallId: call.id,
344
+ name: call.name,
345
+ result: r,
346
+ isError: true,
190
347
  });
191
- this.onEvent?.({
348
+ }
349
+ const execCalls = toolCalls.filter((c) => !blocked.has(c.id));
350
+ const execResults = await executeToolBatch(execCalls, wrappedToolMap, ctx, this.limits.maxParallelToolCalls, signal, undefined, this.bashConcurrency);
351
+ const resultMap = new Map();
352
+ for (const r of blockedResults.values())
353
+ resultMap.set(r.toolCallId, r);
354
+ for (const r of execResults) {
355
+ // Emit tool_result event and allow patches.
356
+ const payload = {
192
357
  type: "tool_result",
193
358
  toolCallId: r.toolCallId,
194
359
  name: r.name,
195
360
  content: r.content,
361
+ details: r.details,
362
+ structuredContent: r.structuredContent,
196
363
  isError: r.isError,
197
- diff: r.diff,
364
+ usage: r.usage,
365
+ };
366
+ await this.extensionDispatch?.("tool_result", payload);
367
+ r.content = payload.content ?? r.content;
368
+ r.details = payload.details ?? r.details;
369
+ r.structuredContent = payload.structuredContent ?? r.structuredContent;
370
+ r.isError = payload.isError ?? r.isError;
371
+ r.usage = payload.usage ?? r.usage;
372
+ resultMap.set(r.toolCallId, r);
373
+ }
374
+ const orderedResults = toolCalls
375
+ .map((c) => resultMap.get(c.id))
376
+ .filter(Boolean);
377
+ for (const r of orderedResults) {
378
+ recorder.recordToolResult(r);
379
+ }
380
+ if (terminate) {
381
+ await this.extensionDispatch?.("agent_settled", {
382
+ type: "agent_settled",
198
383
  });
384
+ return text;
199
385
  }
200
386
  }
201
387
  return "TASK_BUDGET_REACHED";
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { Message, ModelRequest } from "../types.js";
2
+ import type { ProviderAdapter } from "../providers/types.js";
3
+ export interface ModelTurnRequest {
4
+ provider: ProviderAdapter;
5
+ model: string;
6
+ messages: Message[];
7
+ tools: ModelRequest["tools"];
8
+ effort: string;
9
+ signal: AbortSignal;
10
+ }
11
+ export type ModelTurnEvent = {
12
+ type: "thinking_delta";
13
+ text: string;
14
+ } | {
15
+ type: "assistant_delta";
16
+ text: string;
17
+ } | {
18
+ type: "assistant_text";
19
+ text: string;
20
+ } | {
21
+ type: "final";
22
+ response: {
23
+ message: Message;
24
+ toolCalls?: ModelRequest extends {
25
+ tools: infer T;
26
+ } ? unknown : unknown;
27
+ usage?: {
28
+ input?: number;
29
+ output?: number;
30
+ };
31
+ };
32
+ streamedText: string;
33
+ };
34
+ export declare class ModelTurn {
35
+ static run(request: ModelTurnRequest): AsyncGenerator<ModelTurnEvent, any, any>;
36
+ }
37
+ export declare function runModelTurn(request: ModelTurnRequest): AsyncGenerator<ModelTurnEvent>;
@@ -0,0 +1,53 @@
1
+ export class ModelTurn {
2
+ static run(request) {
3
+ return runModelTurn(request);
4
+ }
5
+ }
6
+ export async function* runModelTurn(request) {
7
+ const modelRequest = {
8
+ model: request.model,
9
+ messages: request.messages,
10
+ tools: request.tools,
11
+ signal: request.signal,
12
+ options: { effort: request.effort },
13
+ };
14
+ if (typeof request.provider.stream === "function") {
15
+ let response;
16
+ let streamedText = "";
17
+ for await (const ev of request.provider.stream(modelRequest)) {
18
+ if (ev.type === "thinking") {
19
+ yield { type: "thinking_delta", text: ev.text };
20
+ }
21
+ else if (ev.type === "text") {
22
+ streamedText += ev.text;
23
+ yield { type: "assistant_delta", text: ev.text };
24
+ }
25
+ else if (ev.type === "done") {
26
+ response = ev.response;
27
+ }
28
+ }
29
+ if (!response) {
30
+ response = {
31
+ message: {
32
+ role: "assistant",
33
+ content: streamedText
34
+ ? [{ type: "text", text: streamedText }]
35
+ : undefined,
36
+ },
37
+ toolCalls: [],
38
+ finishReason: "stop",
39
+ };
40
+ }
41
+ yield { type: "final", response, streamedText };
42
+ return;
43
+ }
44
+ const response = await request.provider.generate(modelRequest);
45
+ const text = response.message.content
46
+ ?.map((p) => (p.type === "text" ? p.text : ""))
47
+ .join("") ?? "";
48
+ if (text) {
49
+ yield { type: "assistant_text", text };
50
+ }
51
+ yield { type: "final", response, streamedText: text };
52
+ }
53
+ //# sourceMappingURL=model-turn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-turn.js","sourceRoot":"","sources":["../../src/agent/model-turn.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,GAAG,CAAC,OAAyB;QAClC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,OAAyB;IAEzB,MAAM,YAAY,GAAiB;QACjC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;KACpC,CAAC;IAEF,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClD,IAAI,QAAa,CAAC;QAClB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAClD,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9B,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YACnD,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9B,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;YACzB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,YAAY;wBACnB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;wBACxC,CAAC,CAAC,SAAS;iBACd;gBACD,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,MAAM;aACrB,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,IAAI,GACR,QAAQ,CAAC,OAAO,CAAC,OAAO;QACtB,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACnD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACpB,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Message } from "../types.js";
2
+ export interface TurnRecorderOptions {
3
+ session: {
4
+ appendMessage(message: Message): void;
5
+ };
6
+ onEvent?: (event: unknown) => void;
7
+ extensionDispatch?: (event: string, payload: any) => Promise<any[]> | any[];
8
+ }
9
+ export declare class TurnRecorder {
10
+ private session;
11
+ private onEvent;
12
+ private extensionDispatch;
13
+ constructor(options: TurnRecorderOptions);
14
+ recordAssistant(response: {
15
+ message: Message;
16
+ toolCalls?: Array<{
17
+ id: string;
18
+ name: string;
19
+ arguments: Record<string, unknown>;
20
+ }>;
21
+ usage?: {
22
+ input?: number;
23
+ output?: number;
24
+ };
25
+ }, streamedText: string): Promise<string>;
26
+ recordToolResult(result: {
27
+ toolCallId: string;
28
+ name: string;
29
+ content: string;
30
+ isError?: boolean;
31
+ diff?: string[];
32
+ }): void;
33
+ }