@openharness/core 0.2.0 → 0.3.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/__tests__/to-response.test.d.ts +2 -0
- package/dist/__tests__/to-response.test.d.ts.map +1 -0
- package/dist/__tests__/to-response.test.js +67 -0
- package/dist/__tests__/to-response.test.js.map +1 -0
- package/dist/__tests__/ui-stream.test.d.ts +2 -0
- package/dist/__tests__/ui-stream.test.d.ts.map +1 -0
- package/dist/__tests__/ui-stream.test.js +435 -0
- package/dist/__tests__/ui-stream.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/session.d.ts +15 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +21 -1
- package/dist/session.js.map +1 -1
- package/dist/types/__tests__/stream-parts.test.d.ts +2 -0
- package/dist/types/__tests__/stream-parts.test.d.ts.map +1 -0
- package/dist/types/__tests__/stream-parts.test.js +231 -0
- package/dist/types/__tests__/stream-parts.test.js.map +1 -0
- package/dist/types/stream-parts.d.ts +68 -0
- package/dist/types/stream-parts.d.ts.map +1 -0
- package/dist/types/stream-parts.js +53 -0
- package/dist/types/stream-parts.js.map +1 -0
- package/dist/types/ui-message.d.ts +41 -0
- package/dist/types/ui-message.d.ts.map +1 -0
- package/dist/types/ui-message.js +2 -0
- package/dist/types/ui-message.js.map +1 -0
- package/dist/ui-stream.d.ts +15 -0
- package/dist/ui-stream.d.ts.map +1 -0
- package/dist/ui-stream.js +246 -0
- package/dist/ui-stream.js.map +1 -0
- package/package.json +8 -11
- package/README.md +0 -451
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-response.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/to-response.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from "vitest";
|
|
2
|
+
import { Session } from "../session.js";
|
|
3
|
+
import { Agent } from "../agent.js";
|
|
4
|
+
// Minimal mock agent that yields a simple completion
|
|
5
|
+
function createMockAgent() {
|
|
6
|
+
const model = {
|
|
7
|
+
specificationVersion: "v2",
|
|
8
|
+
provider: "mock",
|
|
9
|
+
modelId: "mock-model",
|
|
10
|
+
doStream: vi.fn(),
|
|
11
|
+
doGenerate: vi.fn(),
|
|
12
|
+
};
|
|
13
|
+
// Create Agent with a model that we'll bypass via mock
|
|
14
|
+
return new Agent({
|
|
15
|
+
name: "test",
|
|
16
|
+
model: model,
|
|
17
|
+
maxSteps: 1,
|
|
18
|
+
instructions: false,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
describe("Session.toResponse", () => {
|
|
22
|
+
it("returns a Response with correct SSE headers", () => {
|
|
23
|
+
const agent = createMockAgent();
|
|
24
|
+
const session = new Session({ agent });
|
|
25
|
+
// Mock session.send to yield minimal events
|
|
26
|
+
const originalSend = session.send.bind(session);
|
|
27
|
+
session.send = async function* () {
|
|
28
|
+
yield {
|
|
29
|
+
type: "done",
|
|
30
|
+
result: "complete",
|
|
31
|
+
messages: [],
|
|
32
|
+
totalUsage: {
|
|
33
|
+
inputTokens: 0,
|
|
34
|
+
outputTokens: 0,
|
|
35
|
+
totalTokens: 0,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const response = session.toResponse("hello");
|
|
40
|
+
expect(response).toBeInstanceOf(Response);
|
|
41
|
+
expect(response.headers.get("content-type")).toContain("text/event-stream");
|
|
42
|
+
expect(response.body).toBeTruthy();
|
|
43
|
+
// Restore
|
|
44
|
+
session.send = originalSend;
|
|
45
|
+
});
|
|
46
|
+
it("passes custom headers through", () => {
|
|
47
|
+
const agent = createMockAgent();
|
|
48
|
+
const session = new Session({ agent });
|
|
49
|
+
session.send = async function* () {
|
|
50
|
+
yield {
|
|
51
|
+
type: "done",
|
|
52
|
+
result: "complete",
|
|
53
|
+
messages: [],
|
|
54
|
+
totalUsage: {
|
|
55
|
+
inputTokens: 0,
|
|
56
|
+
outputTokens: 0,
|
|
57
|
+
totalTokens: 0,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
const response = session.toResponse("hello", {
|
|
62
|
+
headers: { "X-Custom": "test" },
|
|
63
|
+
});
|
|
64
|
+
expect(response.headers.get("x-custom")).toBe("test");
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=to-response.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-response.test.js","sourceRoot":"","sources":["../../src/__tests__/to-response.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,qDAAqD;AACrD,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG;QACZ,oBAAoB,EAAE,IAAI;QAC1B,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;KACpB,CAAC;IAEF,uDAAuD;IACvD,OAAO,IAAI,KAAK,CAAC;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,KAAY;QACnB,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEvC,4CAA4C;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,GAAG,KAAK,SAAS,CAAC;YAC5B,MAAM;gBACJ,IAAI,EAAE,MAAe;gBACrB,MAAM,EAAE,UAAmB;gBAC3B,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE;oBACV,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,WAAW,EAAE,CAAC;iBACf;aACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QAEnC,UAAU;QACV,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEvC,OAAO,CAAC,IAAI,GAAG,KAAK,SAAS,CAAC;YAC5B,MAAM;gBACJ,IAAI,EAAE,MAAe;gBACrB,MAAM,EAAE,UAAmB;gBAC3B,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE;oBACV,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,WAAW,EAAE,CAAC;iBACf;aACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;YAC3C,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;SAChC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-stream.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ui-stream.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { sessionEventsToUIStream } from "../ui-stream.js";
|
|
3
|
+
// ── Helpers ─────────────────────────────────────────────────────────
|
|
4
|
+
async function collectChunks(events) {
|
|
5
|
+
async function* gen() {
|
|
6
|
+
for (const e of events)
|
|
7
|
+
yield e;
|
|
8
|
+
}
|
|
9
|
+
const stream = sessionEventsToUIStream(gen());
|
|
10
|
+
const reader = stream.getReader();
|
|
11
|
+
const chunks = [];
|
|
12
|
+
while (true) {
|
|
13
|
+
const { done, value } = await reader.read();
|
|
14
|
+
if (done)
|
|
15
|
+
break;
|
|
16
|
+
chunks.push(value);
|
|
17
|
+
}
|
|
18
|
+
return chunks;
|
|
19
|
+
}
|
|
20
|
+
function findChunks(chunks, type) {
|
|
21
|
+
return chunks.filter((c) => c.type === type);
|
|
22
|
+
}
|
|
23
|
+
// ── Tests ───────────────────────────────────────────────────────────
|
|
24
|
+
describe("sessionEventsToUIStream", () => {
|
|
25
|
+
describe("stream lifecycle", () => {
|
|
26
|
+
it("emits start chunk at the beginning", async () => {
|
|
27
|
+
const chunks = await collectChunks([]);
|
|
28
|
+
expect(chunks[0]).toEqual({ type: "start" });
|
|
29
|
+
});
|
|
30
|
+
it("emits finish chunk on done event", async () => {
|
|
31
|
+
const chunks = await collectChunks([
|
|
32
|
+
{
|
|
33
|
+
type: "done",
|
|
34
|
+
result: "complete",
|
|
35
|
+
messages: [],
|
|
36
|
+
totalUsage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
39
|
+
const finish = findChunks(chunks, "finish");
|
|
40
|
+
expect(finish).toHaveLength(1);
|
|
41
|
+
expect(finish[0].finishReason).toBe("stop");
|
|
42
|
+
});
|
|
43
|
+
it("maps result types to correct finish reasons", async () => {
|
|
44
|
+
const cases = [
|
|
45
|
+
["complete", "stop"],
|
|
46
|
+
["max_steps", "tool-calls"],
|
|
47
|
+
["error", "error"],
|
|
48
|
+
["stopped", "unknown"],
|
|
49
|
+
];
|
|
50
|
+
for (const [result, expected] of cases) {
|
|
51
|
+
const chunks = await collectChunks([
|
|
52
|
+
{
|
|
53
|
+
type: "done",
|
|
54
|
+
result: result,
|
|
55
|
+
messages: [],
|
|
56
|
+
totalUsage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
|
|
57
|
+
},
|
|
58
|
+
]);
|
|
59
|
+
const finish = findChunks(chunks, "finish");
|
|
60
|
+
expect(finish[0].finishReason).toBe(expected);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe("text streaming", () => {
|
|
65
|
+
it("emits text-start before first text-delta", async () => {
|
|
66
|
+
const chunks = await collectChunks([
|
|
67
|
+
{ type: "text.delta", text: "Hello" },
|
|
68
|
+
{ type: "text.done", text: "Hello world" },
|
|
69
|
+
]);
|
|
70
|
+
const textStart = findChunks(chunks, "text-start");
|
|
71
|
+
expect(textStart).toHaveLength(1);
|
|
72
|
+
expect(textStart[0].id).toBeTruthy();
|
|
73
|
+
});
|
|
74
|
+
it("emits text-delta with matching id", async () => {
|
|
75
|
+
const chunks = await collectChunks([
|
|
76
|
+
{ type: "text.delta", text: "Hello" },
|
|
77
|
+
{ type: "text.delta", text: " world" },
|
|
78
|
+
{ type: "text.done", text: "Hello world" },
|
|
79
|
+
]);
|
|
80
|
+
const textStart = findChunks(chunks, "text-start")[0];
|
|
81
|
+
const deltas = findChunks(chunks, "text-delta");
|
|
82
|
+
expect(deltas).toHaveLength(2);
|
|
83
|
+
expect(deltas[0].id).toBe(textStart.id);
|
|
84
|
+
expect(deltas[0].delta).toBe("Hello");
|
|
85
|
+
expect(deltas[1].delta).toBe(" world");
|
|
86
|
+
});
|
|
87
|
+
it("emits text-end on text.done", async () => {
|
|
88
|
+
const chunks = await collectChunks([
|
|
89
|
+
{ type: "text.delta", text: "Hi" },
|
|
90
|
+
{ type: "text.done", text: "Hi" },
|
|
91
|
+
]);
|
|
92
|
+
const textStart = findChunks(chunks, "text-start")[0];
|
|
93
|
+
const textEnd = findChunks(chunks, "text-end");
|
|
94
|
+
expect(textEnd).toHaveLength(1);
|
|
95
|
+
expect(textEnd[0].id).toBe(textStart.id);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe("reasoning streaming", () => {
|
|
99
|
+
it("emits reasoning-start before first reasoning-delta", async () => {
|
|
100
|
+
const chunks = await collectChunks([
|
|
101
|
+
{ type: "reasoning.delta", text: "thinking" },
|
|
102
|
+
{ type: "reasoning.done", text: "thinking" },
|
|
103
|
+
]);
|
|
104
|
+
const start = findChunks(chunks, "reasoning-start");
|
|
105
|
+
expect(start).toHaveLength(1);
|
|
106
|
+
});
|
|
107
|
+
it("emits reasoning-delta and reasoning-end", async () => {
|
|
108
|
+
const chunks = await collectChunks([
|
|
109
|
+
{ type: "reasoning.delta", text: "step 1" },
|
|
110
|
+
{ type: "reasoning.delta", text: " step 2" },
|
|
111
|
+
{ type: "reasoning.done", text: "step 1 step 2" },
|
|
112
|
+
]);
|
|
113
|
+
const start = findChunks(chunks, "reasoning-start")[0];
|
|
114
|
+
const deltas = findChunks(chunks, "reasoning-delta");
|
|
115
|
+
const end = findChunks(chunks, "reasoning-end");
|
|
116
|
+
expect(deltas).toHaveLength(2);
|
|
117
|
+
expect(deltas[0].id).toBe(start.id);
|
|
118
|
+
expect(end).toHaveLength(1);
|
|
119
|
+
expect(end[0].id).toBe(start.id);
|
|
120
|
+
});
|
|
121
|
+
it("closes text part before starting reasoning", async () => {
|
|
122
|
+
const chunks = await collectChunks([
|
|
123
|
+
{ type: "text.delta", text: "Hi" },
|
|
124
|
+
{ type: "reasoning.delta", text: "think" },
|
|
125
|
+
{ type: "reasoning.done", text: "think" },
|
|
126
|
+
]);
|
|
127
|
+
const types = chunks.map((c) => c.type);
|
|
128
|
+
const textEndIdx = types.indexOf("text-end");
|
|
129
|
+
const reasoningStartIdx = types.indexOf("reasoning-start");
|
|
130
|
+
expect(textEndIdx).toBeLessThan(reasoningStartIdx);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe("tool events", () => {
|
|
134
|
+
it("emits tool-input-start and tool-input-available on tool.start", async () => {
|
|
135
|
+
const chunks = await collectChunks([
|
|
136
|
+
{
|
|
137
|
+
type: "tool.start",
|
|
138
|
+
toolCallId: "tc-1",
|
|
139
|
+
toolName: "readFile",
|
|
140
|
+
input: { path: "/test" },
|
|
141
|
+
},
|
|
142
|
+
]);
|
|
143
|
+
const inputStart = findChunks(chunks, "tool-input-start");
|
|
144
|
+
expect(inputStart).toHaveLength(1);
|
|
145
|
+
expect(inputStart[0]).toEqual({
|
|
146
|
+
type: "tool-input-start",
|
|
147
|
+
toolCallId: "tc-1",
|
|
148
|
+
toolName: "readFile",
|
|
149
|
+
});
|
|
150
|
+
const inputAvailable = findChunks(chunks, "tool-input-available");
|
|
151
|
+
expect(inputAvailable).toHaveLength(1);
|
|
152
|
+
expect(inputAvailable[0].input).toEqual({ path: "/test" });
|
|
153
|
+
});
|
|
154
|
+
it("emits tool-output-available on tool.done", async () => {
|
|
155
|
+
const chunks = await collectChunks([
|
|
156
|
+
{
|
|
157
|
+
type: "tool.done",
|
|
158
|
+
toolCallId: "tc-1",
|
|
159
|
+
toolName: "readFile",
|
|
160
|
+
output: { content: "file contents" },
|
|
161
|
+
},
|
|
162
|
+
]);
|
|
163
|
+
const output = findChunks(chunks, "tool-output-available");
|
|
164
|
+
expect(output).toHaveLength(1);
|
|
165
|
+
expect(output[0]).toEqual({
|
|
166
|
+
type: "tool-output-available",
|
|
167
|
+
toolCallId: "tc-1",
|
|
168
|
+
output: { content: "file contents" },
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
it("emits tool-output-error on tool.error", async () => {
|
|
172
|
+
const chunks = await collectChunks([
|
|
173
|
+
{
|
|
174
|
+
type: "tool.error",
|
|
175
|
+
toolCallId: "tc-1",
|
|
176
|
+
toolName: "readFile",
|
|
177
|
+
error: "File not found",
|
|
178
|
+
},
|
|
179
|
+
]);
|
|
180
|
+
const errors = findChunks(chunks, "tool-output-error");
|
|
181
|
+
expect(errors).toHaveLength(1);
|
|
182
|
+
expect(errors[0]).toEqual({
|
|
183
|
+
type: "tool-output-error",
|
|
184
|
+
toolCallId: "tc-1",
|
|
185
|
+
errorText: "File not found",
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
it("closes text/reasoning parts before tool events", async () => {
|
|
189
|
+
const chunks = await collectChunks([
|
|
190
|
+
{ type: "text.delta", text: "Let me check" },
|
|
191
|
+
{
|
|
192
|
+
type: "tool.start",
|
|
193
|
+
toolCallId: "tc-1",
|
|
194
|
+
toolName: "readFile",
|
|
195
|
+
input: {},
|
|
196
|
+
},
|
|
197
|
+
]);
|
|
198
|
+
const types = chunks.map((c) => c.type);
|
|
199
|
+
const textEndIdx = types.indexOf("text-end");
|
|
200
|
+
const toolStartIdx = types.indexOf("tool-input-start");
|
|
201
|
+
expect(textEndIdx).toBeLessThan(toolStartIdx);
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
describe("subagent detection via task tool", () => {
|
|
205
|
+
it("emits data-oh:subagent.start for task tool calls", async () => {
|
|
206
|
+
const chunks = await collectChunks([
|
|
207
|
+
{
|
|
208
|
+
type: "tool.start",
|
|
209
|
+
toolCallId: "tc-1",
|
|
210
|
+
toolName: "task",
|
|
211
|
+
input: { agent: "explore", prompt: "search codebase" },
|
|
212
|
+
},
|
|
213
|
+
]);
|
|
214
|
+
const subStart = findChunks(chunks, "data-oh:subagent.start");
|
|
215
|
+
expect(subStart).toHaveLength(1);
|
|
216
|
+
expect(subStart[0].data).toEqual({
|
|
217
|
+
agentName: "explore",
|
|
218
|
+
task: "search codebase",
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
it("emits data-oh:subagent.done when task tool completes", async () => {
|
|
222
|
+
const chunks = await collectChunks([
|
|
223
|
+
{
|
|
224
|
+
type: "tool.start",
|
|
225
|
+
toolCallId: "tc-1",
|
|
226
|
+
toolName: "task",
|
|
227
|
+
input: { agent: "explore", prompt: "search" },
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
type: "tool.done",
|
|
231
|
+
toolCallId: "tc-1",
|
|
232
|
+
toolName: "task",
|
|
233
|
+
output: "result",
|
|
234
|
+
},
|
|
235
|
+
]);
|
|
236
|
+
const subDone = findChunks(chunks, "data-oh:subagent.done");
|
|
237
|
+
expect(subDone).toHaveLength(1);
|
|
238
|
+
expect(subDone[0].data.durationMs).toBeGreaterThanOrEqual(0);
|
|
239
|
+
});
|
|
240
|
+
it("emits data-oh:subagent.error when task tool fails", async () => {
|
|
241
|
+
const chunks = await collectChunks([
|
|
242
|
+
{
|
|
243
|
+
type: "tool.start",
|
|
244
|
+
toolCallId: "tc-1",
|
|
245
|
+
toolName: "task",
|
|
246
|
+
input: { agent: "explore", prompt: "search" },
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
type: "tool.error",
|
|
250
|
+
toolCallId: "tc-1",
|
|
251
|
+
toolName: "task",
|
|
252
|
+
error: "Agent crashed",
|
|
253
|
+
},
|
|
254
|
+
]);
|
|
255
|
+
const subError = findChunks(chunks, "data-oh:subagent.error");
|
|
256
|
+
expect(subError).toHaveLength(1);
|
|
257
|
+
expect(subError[0].data.error).toBe("Agent crashed");
|
|
258
|
+
});
|
|
259
|
+
it("does not emit subagent events for regular tools", async () => {
|
|
260
|
+
const chunks = await collectChunks([
|
|
261
|
+
{
|
|
262
|
+
type: "tool.start",
|
|
263
|
+
toolCallId: "tc-1",
|
|
264
|
+
toolName: "readFile",
|
|
265
|
+
input: { path: "/test" },
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
type: "tool.done",
|
|
269
|
+
toolCallId: "tc-1",
|
|
270
|
+
toolName: "readFile",
|
|
271
|
+
output: "ok",
|
|
272
|
+
},
|
|
273
|
+
]);
|
|
274
|
+
const subEvents = chunks.filter((c) => c.type?.startsWith("data-oh:subagent."));
|
|
275
|
+
expect(subEvents).toHaveLength(0);
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
describe("step events", () => {
|
|
279
|
+
it("emits start-step and finish-step", async () => {
|
|
280
|
+
const chunks = await collectChunks([
|
|
281
|
+
{ type: "step.start", stepNumber: 1 },
|
|
282
|
+
{ type: "text.delta", text: "Hi" },
|
|
283
|
+
{ type: "text.done", text: "Hi" },
|
|
284
|
+
{
|
|
285
|
+
type: "step.done",
|
|
286
|
+
stepNumber: 1,
|
|
287
|
+
usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
|
|
288
|
+
finishReason: "stop",
|
|
289
|
+
},
|
|
290
|
+
]);
|
|
291
|
+
expect(findChunks(chunks, "start-step")).toHaveLength(1);
|
|
292
|
+
expect(findChunks(chunks, "finish-step")).toHaveLength(1);
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
describe("session lifecycle data parts", () => {
|
|
296
|
+
it("emits turn start/done data parts", async () => {
|
|
297
|
+
const chunks = await collectChunks([
|
|
298
|
+
{ type: "turn.start", turnNumber: 3 },
|
|
299
|
+
{
|
|
300
|
+
type: "turn.done",
|
|
301
|
+
turnNumber: 3,
|
|
302
|
+
usage: { inputTokens: 100, outputTokens: 50, totalTokens: 150 },
|
|
303
|
+
},
|
|
304
|
+
]);
|
|
305
|
+
const turnStart = findChunks(chunks, "data-oh:turn.start");
|
|
306
|
+
expect(turnStart).toHaveLength(1);
|
|
307
|
+
expect(turnStart[0].data).toEqual({ turnIndex: 3 });
|
|
308
|
+
const turnDone = findChunks(chunks, "data-oh:turn.done");
|
|
309
|
+
expect(turnDone).toHaveLength(1);
|
|
310
|
+
expect(turnDone[0].data.turnIndex).toBe(3);
|
|
311
|
+
});
|
|
312
|
+
it("emits compaction data parts", async () => {
|
|
313
|
+
const chunks = await collectChunks([
|
|
314
|
+
{ type: "compaction.start", reason: "overflow", tokensBefore: 50000 },
|
|
315
|
+
{ type: "compaction.pruned", tokensRemoved: 10000, messagesRemoved: 5 },
|
|
316
|
+
{ type: "compaction.done", tokensBefore: 50000, tokensAfter: 30000 },
|
|
317
|
+
]);
|
|
318
|
+
expect(findChunks(chunks, "data-oh:session.compacting")).toHaveLength(1);
|
|
319
|
+
expect(findChunks(chunks, "data-oh:compaction.start")).toHaveLength(1);
|
|
320
|
+
const compDone = findChunks(chunks, "data-oh:compaction.done");
|
|
321
|
+
// One from pruned, one from done
|
|
322
|
+
expect(compDone.length).toBeGreaterThanOrEqual(1);
|
|
323
|
+
});
|
|
324
|
+
it("emits retry data part", async () => {
|
|
325
|
+
const chunks = await collectChunks([
|
|
326
|
+
{
|
|
327
|
+
type: "retry",
|
|
328
|
+
attempt: 1,
|
|
329
|
+
maxRetries: 3,
|
|
330
|
+
delayMs: 2000,
|
|
331
|
+
error: new Error("rate limit exceeded"),
|
|
332
|
+
},
|
|
333
|
+
]);
|
|
334
|
+
const retry = findChunks(chunks, "data-oh:retry");
|
|
335
|
+
expect(retry).toHaveLength(1);
|
|
336
|
+
expect(retry[0].data).toEqual({
|
|
337
|
+
attempt: 1,
|
|
338
|
+
reason: "rate limit exceeded",
|
|
339
|
+
delayMs: 2000,
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
describe("error handling", () => {
|
|
344
|
+
it("emits error chunk on error event", async () => {
|
|
345
|
+
const chunks = await collectChunks([
|
|
346
|
+
{ type: "error", error: new Error("something went wrong") },
|
|
347
|
+
]);
|
|
348
|
+
const errors = findChunks(chunks, "error");
|
|
349
|
+
expect(errors).toHaveLength(1);
|
|
350
|
+
expect(errors[0].errorText).toBe("something went wrong");
|
|
351
|
+
});
|
|
352
|
+
it("emits error chunk when generator throws", async () => {
|
|
353
|
+
async function* throwingGen() {
|
|
354
|
+
throw new Error("generator exploded");
|
|
355
|
+
}
|
|
356
|
+
const stream = sessionEventsToUIStream(throwingGen());
|
|
357
|
+
const reader = stream.getReader();
|
|
358
|
+
const chunks = [];
|
|
359
|
+
while (true) {
|
|
360
|
+
const { done, value } = await reader.read();
|
|
361
|
+
if (done)
|
|
362
|
+
break;
|
|
363
|
+
chunks.push(value);
|
|
364
|
+
}
|
|
365
|
+
const errors = chunks.filter((c) => c.type === "error");
|
|
366
|
+
expect(errors).toHaveLength(1);
|
|
367
|
+
expect(errors[0].errorText).toBe("generator exploded");
|
|
368
|
+
});
|
|
369
|
+
});
|
|
370
|
+
describe("full conversation flow", () => {
|
|
371
|
+
it("handles a complete multi-step conversation", async () => {
|
|
372
|
+
const events = [
|
|
373
|
+
{ type: "turn.start", turnNumber: 1 },
|
|
374
|
+
{ type: "step.start", stepNumber: 1 },
|
|
375
|
+
{ type: "text.delta", text: "Let me " },
|
|
376
|
+
{ type: "text.delta", text: "check." },
|
|
377
|
+
{ type: "text.done", text: "Let me check." },
|
|
378
|
+
{
|
|
379
|
+
type: "tool.start",
|
|
380
|
+
toolCallId: "tc-1",
|
|
381
|
+
toolName: "readFile",
|
|
382
|
+
input: { path: "/src/index.ts" },
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
type: "tool.done",
|
|
386
|
+
toolCallId: "tc-1",
|
|
387
|
+
toolName: "readFile",
|
|
388
|
+
output: { content: "export {}" },
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
type: "step.done",
|
|
392
|
+
stepNumber: 1,
|
|
393
|
+
usage: { inputTokens: 100, outputTokens: 20, totalTokens: 120 },
|
|
394
|
+
finishReason: "tool-calls",
|
|
395
|
+
},
|
|
396
|
+
{ type: "step.start", stepNumber: 2 },
|
|
397
|
+
{ type: "text.delta", text: "The file exports nothing." },
|
|
398
|
+
{ type: "text.done", text: "The file exports nothing." },
|
|
399
|
+
{
|
|
400
|
+
type: "step.done",
|
|
401
|
+
stepNumber: 2,
|
|
402
|
+
usage: { inputTokens: 200, outputTokens: 30, totalTokens: 230 },
|
|
403
|
+
finishReason: "stop",
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
type: "done",
|
|
407
|
+
result: "complete",
|
|
408
|
+
messages: [],
|
|
409
|
+
totalUsage: { inputTokens: 300, outputTokens: 50, totalTokens: 350 },
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
type: "turn.done",
|
|
413
|
+
turnNumber: 1,
|
|
414
|
+
usage: { inputTokens: 300, outputTokens: 50, totalTokens: 350 },
|
|
415
|
+
},
|
|
416
|
+
];
|
|
417
|
+
const chunks = await collectChunks(events);
|
|
418
|
+
const types = chunks.map((c) => c.type);
|
|
419
|
+
// Stream structure
|
|
420
|
+
expect(types[0]).toBe("start");
|
|
421
|
+
expect(types[types.length - 1]).toBe("data-oh:turn.done");
|
|
422
|
+
expect(types).toContain("text-start");
|
|
423
|
+
expect(types).toContain("text-delta");
|
|
424
|
+
expect(types).toContain("text-end");
|
|
425
|
+
expect(types).toContain("tool-input-start");
|
|
426
|
+
expect(types).toContain("tool-input-available");
|
|
427
|
+
expect(types).toContain("tool-output-available");
|
|
428
|
+
expect(types).toContain("start-step");
|
|
429
|
+
expect(types).toContain("finish-step");
|
|
430
|
+
expect(types).toContain("finish");
|
|
431
|
+
expect(types).toContain("data-oh:turn.start");
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
});
|
|
435
|
+
//# sourceMappingURL=ui-stream.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-stream.test.js","sourceRoot":"","sources":["../../src/__tests__/ui-stream.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,4 +2,7 @@ export { Agent, ToolDeniedError, type AgentEvent, type TokenUsage, type ToolCall
|
|
|
2
2
|
export { connectMCPServers, closeMCPClients, type MCPServerConfig, type MCPConnection, type StdioMCPServer, type HttpMCPServer, type SseMCPServer, } from "./mcp.js";
|
|
3
3
|
export { Session, DefaultCompactionStrategy, type SessionEvent, type SessionLifecycleEvent, type SessionOptions, type CompactionStrategy, type CompactionContext, type CompactionResult, type RetryConfig, type SessionHooks, type TurnInfo, type SessionStore, type CompactionCheckInfo, } from "./session.js";
|
|
4
4
|
export { findInstructions, loadInstructions } from "./instructions.js";
|
|
5
|
+
export { type OHDataTypes, type OHMetadata, type OHUIMessage, } from "./types/ui-message.js";
|
|
6
|
+
export { type OHDataPart, type OHSubagentPart, type OHCompactionPart, type OHRetryPart, type OHSessionLifecyclePart, isOHDataPart, isSubagentEvent, isCompactionEvent, isRetryEvent, isSessionLifecycleEvent, formatSSE, formatTextDelta, formatReasoningDelta, formatDataPart, formatToolStart, formatToolResult, formatToolError, formatStepStart, formatStepFinish, formatFinishMessage, formatDone, } from "./types/stream-parts.js";
|
|
7
|
+
export { sessionEventsToUIStream } from "./ui-stream.js";
|
|
5
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,OAAO,EACP,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,OAAO,EACP,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIvE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAG3B,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EAGvB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,4 +6,12 @@ export { connectMCPServers, closeMCPClients, } from "./mcp.js";
|
|
|
6
6
|
export { Session, DefaultCompactionStrategy, } from "./session.js";
|
|
7
7
|
// ── Instructions ────────────────────────────────────────────────────
|
|
8
8
|
export { findInstructions, loadInstructions } from "./instructions.js";
|
|
9
|
+
// ── Stream Parts ────────────────────────────────────────────────────
|
|
10
|
+
export {
|
|
11
|
+
// Type guards
|
|
12
|
+
isOHDataPart, isSubagentEvent, isCompactionEvent, isRetryEvent, isSessionLifecycleEvent,
|
|
13
|
+
// SSE formatters
|
|
14
|
+
formatSSE, formatTextDelta, formatReasoningDelta, formatDataPart, formatToolStart, formatToolResult, formatToolError, formatStepStart, formatStepFinish, formatFinishMessage, formatDone, } from "./types/stream-parts.js";
|
|
15
|
+
// ── UI Stream ───────────────────────────────────────────────────────
|
|
16
|
+
export { sessionEventsToUIStream } from "./ui-stream.js";
|
|
9
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EACL,KAAK,EACL,eAAe,GAMhB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AAEvE,OAAO,EACL,iBAAiB,EACjB,eAAe,GAMhB,MAAM,UAAU,CAAC;AAElB,uEAAuE;AAEvE,OAAO,EACL,OAAO,EACP,yBAAyB,GAY1B,MAAM,cAAc,CAAC;AAEtB,uEAAuE;AAEvE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EACL,KAAK,EACL,eAAe,GAMhB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AAEvE,OAAO,EACL,iBAAiB,EACjB,eAAe,GAMhB,MAAM,UAAU,CAAC;AAElB,uEAAuE;AAEvE,OAAO,EACL,OAAO,EACP,yBAAyB,GAY1B,MAAM,cAAc,CAAC;AAEtB,uEAAuE;AAEvE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAUvE,uEAAuE;AAEvE,OAAO;AAQL,cAAc;AACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB;AAEvB,iBAAiB;AACjB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAEjC,uEAAuE;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/session.d.ts
CHANGED
|
@@ -154,6 +154,21 @@ export declare class Session {
|
|
|
154
154
|
compact(options?: {
|
|
155
155
|
signal?: AbortSignal;
|
|
156
156
|
}): AsyncGenerator<SessionLifecycleEvent>;
|
|
157
|
+
/**
|
|
158
|
+
* Convert a session turn into an AI SDK 5 UIMessage stream.
|
|
159
|
+
* Returns a ReadableStream of typed UIMessageChunks that can be
|
|
160
|
+
* passed to `createUIMessageStreamResponse()` or consumed directly.
|
|
161
|
+
*/
|
|
162
|
+
toUIMessageStream(input: string | ModelMessage[], options?: {
|
|
163
|
+
signal?: AbortSignal;
|
|
164
|
+
}): ReadableStream;
|
|
165
|
+
/**
|
|
166
|
+
* Convert a session turn into an HTTP Response with SSE encoding.
|
|
167
|
+
* Ready to return from any HTTP handler (Next.js, Express, etc.).
|
|
168
|
+
*/
|
|
169
|
+
toResponse(input: string | ModelMessage[], init?: ResponseInit & {
|
|
170
|
+
signal?: AbortSignal;
|
|
171
|
+
}): Response;
|
|
157
172
|
private shouldCompactCheck;
|
|
158
173
|
}
|
|
159
174
|
//# sourceMappingURL=session.d.ts.map
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|