@openharness/core 0.4.4 → 0.5.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.
Files changed (61) hide show
  1. package/dist/__tests__/conversation.test.js +81 -0
  2. package/dist/__tests__/conversation.test.js.map +1 -1
  3. package/dist/__tests__/middleware/compaction.test.js +105 -0
  4. package/dist/__tests__/middleware/compaction.test.js.map +1 -1
  5. package/dist/__tests__/middleware/hooks.test.js +68 -0
  6. package/dist/__tests__/middleware/hooks.test.js.map +1 -1
  7. package/dist/__tests__/middleware/persistence.test.js +19 -0
  8. package/dist/__tests__/middleware/persistence.test.js.map +1 -1
  9. package/dist/__tests__/middleware/retry.test.js +67 -0
  10. package/dist/__tests__/middleware/retry.test.js.map +1 -1
  11. package/dist/__tests__/middleware/turn-tracking.test.js +23 -0
  12. package/dist/__tests__/middleware/turn-tracking.test.js.map +1 -1
  13. package/dist/__tests__/providers/node.test.d.ts +2 -0
  14. package/dist/__tests__/providers/node.test.d.ts.map +1 -0
  15. package/dist/__tests__/providers/node.test.js +135 -0
  16. package/dist/__tests__/providers/node.test.js.map +1 -0
  17. package/dist/__tests__/runner.test.js +37 -0
  18. package/dist/__tests__/runner.test.js.map +1 -1
  19. package/dist/__tests__/stream.test.js +46 -0
  20. package/dist/__tests__/stream.test.js.map +1 -1
  21. package/dist/__tests__/tools/create-bash-tool.test.d.ts +2 -0
  22. package/dist/__tests__/tools/create-bash-tool.test.d.ts.map +1 -0
  23. package/dist/__tests__/tools/create-bash-tool.test.js +25 -0
  24. package/dist/__tests__/tools/create-bash-tool.test.js.map +1 -0
  25. package/dist/__tests__/tools/create-fs-tools.test.d.ts +2 -0
  26. package/dist/__tests__/tools/create-fs-tools.test.d.ts.map +1 -0
  27. package/dist/__tests__/tools/create-fs-tools.test.js +200 -0
  28. package/dist/__tests__/tools/create-fs-tools.test.js.map +1 -0
  29. package/dist/__tests__/utils.test.d.ts +2 -0
  30. package/dist/__tests__/utils.test.d.ts.map +1 -0
  31. package/dist/__tests__/utils.test.js +149 -0
  32. package/dist/__tests__/utils.test.js.map +1 -0
  33. package/dist/index.d.ts +6 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/providers/index.d.ts +4 -0
  38. package/dist/providers/index.d.ts.map +1 -0
  39. package/dist/providers/index.js +2 -0
  40. package/dist/providers/index.js.map +1 -0
  41. package/dist/providers/node.d.ts +51 -0
  42. package/dist/providers/node.d.ts.map +1 -0
  43. package/dist/providers/node.js +130 -0
  44. package/dist/providers/node.js.map +1 -0
  45. package/dist/providers/types.d.ts +52 -0
  46. package/dist/providers/types.d.ts.map +1 -0
  47. package/dist/providers/types.js +8 -0
  48. package/dist/providers/types.js.map +1 -0
  49. package/dist/tools/create-bash-tool.d.ts +8 -0
  50. package/dist/tools/create-bash-tool.d.ts.map +1 -0
  51. package/dist/tools/create-bash-tool.js +27 -0
  52. package/dist/tools/create-bash-tool.js.map +1 -0
  53. package/dist/tools/create-fs-tools.d.ts +100 -0
  54. package/dist/tools/create-fs-tools.d.ts.map +1 -0
  55. package/dist/tools/create-fs-tools.js +361 -0
  56. package/dist/tools/create-fs-tools.js.map +1 -0
  57. package/dist/tools/create-local-tools.d.ts +97 -0
  58. package/dist/tools/create-local-tools.d.ts.map +1 -0
  59. package/dist/tools/create-local-tools.js +9 -0
  60. package/dist/tools/create-local-tools.js.map +1 -0
  61. package/package.json +4 -8
@@ -123,5 +123,86 @@ describe("Conversation", () => {
123
123
  });
124
124
  expect(conv.sessionId).toBe("my-session");
125
125
  });
126
+ describe("send with options", () => {
127
+ it("passes abort signal to the runner", async () => {
128
+ let receivedSignal;
129
+ const runner = async function* (_h, _i, options) {
130
+ receivedSignal = options?.signal;
131
+ yield doneEvent;
132
+ };
133
+ const controller = new AbortController();
134
+ const conv = new Conversation({ runner });
135
+ await collectEvents(conv.send("hi", { signal: controller.signal }));
136
+ expect(receivedSignal).toBe(controller.signal);
137
+ });
138
+ it("accepts array input", async () => {
139
+ let receivedInput;
140
+ const runner = async function* (_h, input) {
141
+ receivedInput = input;
142
+ yield doneEvent;
143
+ };
144
+ const conv = new Conversation({ runner });
145
+ const arrayInput = [{ role: "user", content: "array msg" }];
146
+ await collectEvents(conv.send(arrayInput));
147
+ expect(receivedInput).toEqual(arrayInput);
148
+ });
149
+ });
150
+ describe("error handling", () => {
151
+ it("propagates runner errors", async () => {
152
+ const runner = async function* () {
153
+ throw new Error("runner exploded");
154
+ };
155
+ const conv = new Conversation({ runner });
156
+ await expect(collectEvents(conv.send("hi"))).rejects.toThrow("runner exploded");
157
+ });
158
+ it("does not update messages if no done event before error", async () => {
159
+ const runner = async function* () {
160
+ yield { type: "text.delta", text: "partial" };
161
+ throw new Error("oops");
162
+ };
163
+ const conv = new Conversation({ runner });
164
+ try {
165
+ await collectEvents(conv.send("hi"));
166
+ }
167
+ catch { }
168
+ expect(conv.messages).toEqual([]);
169
+ });
170
+ });
171
+ describe("toUIMessageStream", () => {
172
+ it("returns a ReadableStream", () => {
173
+ const conv = new Conversation({ runner: createMockRunner([doneEvent]) });
174
+ const stream = conv.toUIMessageStream("hi");
175
+ expect(stream).toBeInstanceOf(ReadableStream);
176
+ });
177
+ it("produces chunks from runner events", async () => {
178
+ const runner = createMockRunner([
179
+ { type: "text.delta", text: "hello" },
180
+ { type: "text.done", text: "hello" },
181
+ doneEvent,
182
+ ]);
183
+ const conv = new Conversation({ runner });
184
+ const stream = conv.toUIMessageStream("hi");
185
+ const reader = stream.getReader();
186
+ const chunks = [];
187
+ while (true) {
188
+ const { done, value } = await reader.read();
189
+ if (done)
190
+ break;
191
+ chunks.push(value);
192
+ }
193
+ expect(chunks.length).toBeGreaterThan(0);
194
+ expect(chunks[0].type).toBe("start");
195
+ expect(chunks.find((c) => c.type === "text-delta")).toBeDefined();
196
+ expect(chunks.find((c) => c.type === "finish")).toBeDefined();
197
+ });
198
+ });
199
+ describe("toResponse", () => {
200
+ it("returns a Response object", () => {
201
+ const conv = new Conversation({ runner: createMockRunner([doneEvent]) });
202
+ const response = conv.toResponse("hi");
203
+ expect(response).toBeInstanceOf(Response);
204
+ expect(response.headers.get("content-type")).toContain("text/event-stream");
205
+ });
206
+ });
126
207
  });
127
208
  //# sourceMappingURL=conversation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.test.js","sourceRoot":"","sources":["../../src/__tests__/conversation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.test.js","sourceRoot":"","sources":["../../src/__tests__/conversation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAIlD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,uEAAuE;AAEvE,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC;IACzB,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,IAAI,EAAE;IACxC,EAAE,IAAI,EAAE,WAAoB,EAAE,OAAO,EAAE,OAAO,EAAE;CACjD,CAAC;AAEF,SAAS,gBAAgB,CAAC,MAAoB;IAC5C,OAAO,KAAK,SAAS,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,KAAK,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAiC;IAC5D,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,SAAS,GAAe;IAC5B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,YAAY,EAAE;IACxB,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;CAClE,CAAC;AAEF,uEAAuE;AAEvE,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC;YAC9B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;YACrC,SAAS;SACV,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAiB;YAC3B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;YACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;YACpC,SAAS;SACV,CAAC;QACF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAW,KAAK,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK;YACpD,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAC7B,MAAM;gBACJ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC9F,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;aAClD,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE1C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEzC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,mBAAmB;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;gBAC/C,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;aACd,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC;gBAC5B,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBAC5B,KAAK;gBACL,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBAC1C,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;aACd,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAEvE,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACb,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;aACd,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC;gBAC5B,MAAM,EAAE,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC;gBACrC,KAAK;gBACL,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YAEH,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAElB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC;YAC5B,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC5B,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,IAAI,cAAuC,CAAC;YAC5C,MAAM,MAAM,GAAW,KAAK,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO;gBACrD,cAAc,GAAG,OAAO,EAAE,MAAM,CAAC;gBACjC,MAAM,SAAS,CAAC;YAClB,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAEpE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACnC,IAAI,aAAkB,CAAC;YACvB,MAAM,MAAM,GAAW,KAAK,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK;gBAC/C,aAAa,GAAG,KAAK,CAAC;gBACtB,MAAM,SAAS,CAAC;YAClB,CAAC,CAAC;YAEF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACrE,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAE3C,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,MAAM,GAAW,KAAK,SAAS,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC,CAAC;YAEF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,MAAM,GAAW,KAAK,SAAS,CAAC;gBACpC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAgB,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC,CAAC;YAEF,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC;gBAC9B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;gBACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;gBACpC,SAAS;aACV,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAU,EAAE,CAAC;YACzB,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -159,5 +159,110 @@ describe("withCompaction", () => {
159
159
  expect(shouldCompact).toHaveBeenCalledTimes(2);
160
160
  expect(shouldCompact.mock.calls[1][0].lastInputTokens).toBe(50_000);
161
161
  });
162
+ it("skips compaction.pruned when tokensPruned is 0", async () => {
163
+ const strategy = createMockStrategy({ tokensPruned: 0, messagesRemoved: 0 });
164
+ const runner = async function* () {
165
+ yield doneEvent;
166
+ };
167
+ const compacted = withCompaction({
168
+ contextWindow: 200_000,
169
+ model: {},
170
+ strategy,
171
+ shouldCompact: () => true,
172
+ })(runner);
173
+ const history = [{ role: "user", content: "hi" }];
174
+ const events = await collect(compacted(history, "test"));
175
+ expect(events.find((e) => e.type === "compaction.pruned")).toBeUndefined();
176
+ expect(events.find((e) => e.type === "compaction.start")).toBeDefined();
177
+ expect(events.find((e) => e.type === "compaction.done")).toBeDefined();
178
+ });
179
+ it("skips compaction.summary when no summary returned", async () => {
180
+ const strategy = createMockStrategy({
181
+ tokensPruned: 5000,
182
+ summary: undefined,
183
+ });
184
+ const runner = async function* () {
185
+ yield doneEvent;
186
+ };
187
+ const compacted = withCompaction({
188
+ contextWindow: 200_000,
189
+ model: {},
190
+ strategy,
191
+ shouldCompact: () => true,
192
+ })(runner);
193
+ const history = [{ role: "user", content: "hi" }];
194
+ const events = await collect(compacted(history, "test"));
195
+ expect(events.find((e) => e.type === "compaction.summary")).toBeUndefined();
196
+ });
197
+ it("uses last step.done when multiple are emitted", async () => {
198
+ const strategy = createMockStrategy();
199
+ const runner = async function* () {
200
+ yield {
201
+ type: "step.done",
202
+ stepNumber: 1,
203
+ usage: { inputTokens: 10_000, outputTokens: 100, totalTokens: 10_100 },
204
+ finishReason: "tool-calls",
205
+ };
206
+ yield {
207
+ type: "step.done",
208
+ stepNumber: 2,
209
+ usage: { inputTokens: 60_000, outputTokens: 200, totalTokens: 60_200 },
210
+ finishReason: "stop",
211
+ };
212
+ yield doneEvent;
213
+ };
214
+ const shouldCompact = vi.fn().mockReturnValue(false);
215
+ const compacted = withCompaction({
216
+ contextWindow: 200_000,
217
+ model: {},
218
+ strategy,
219
+ shouldCompact,
220
+ })(runner);
221
+ await collect(compacted([], "first"));
222
+ await collect(compacted([], "second"));
223
+ // Should see last step.done's inputTokens (60_000)
224
+ expect(shouldCompact.mock.calls[1][0].lastInputTokens).toBe(60_000);
225
+ });
226
+ it("uses custom reservedTokens", async () => {
227
+ const strategy = createMockStrategy();
228
+ const runner = async function* () {
229
+ yield {
230
+ type: "step.done",
231
+ stepNumber: 1,
232
+ usage: { inputTokens: 160_000, outputTokens: 100, totalTokens: 160_100 },
233
+ finishReason: "stop",
234
+ };
235
+ yield doneEvent;
236
+ };
237
+ // With reservedTokens: 50_000, threshold = 200_000 - 50_000 = 150_000
238
+ // 160_000 >= 150_000 → should compact
239
+ const compacted = withCompaction({
240
+ contextWindow: 200_000,
241
+ model: {},
242
+ strategy,
243
+ reservedTokens: 50_000,
244
+ })(runner);
245
+ const history = [{ role: "user", content: "hi" }];
246
+ await collect(compacted(history, "first"));
247
+ const events2 = await collect(compacted(history, "second"));
248
+ expect(strategy.compact).toHaveBeenCalled();
249
+ expect(events2.find((e) => e.type === "compaction.start")).toBeDefined();
250
+ });
251
+ it("propagates strategy errors", async () => {
252
+ const strategy = {
253
+ compact: vi.fn().mockRejectedValue(new Error("compaction failed")),
254
+ };
255
+ const runner = async function* () {
256
+ yield doneEvent;
257
+ };
258
+ const compacted = withCompaction({
259
+ contextWindow: 200_000,
260
+ model: {},
261
+ strategy,
262
+ shouldCompact: () => true,
263
+ })(runner);
264
+ const history = [{ role: "user", content: "hi" }];
265
+ await expect(collect(compacted(history, "test"))).rejects.toThrow("compaction failed");
266
+ });
162
267
  });
163
268
  //# sourceMappingURL=compaction.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/compaction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/compaction.test.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,74 @@ describe("withHooks", () => {
92
92
  const events = await collect(hooked([], "test"));
93
93
  expect(events.find((e) => e.type === "error")).toBeDefined();
94
94
  });
95
+ it("receives the error object", async () => {
96
+ const receivedErrors = [];
97
+ const runner = async function* () {
98
+ yield { type: "error", error: new Error("check-me") };
99
+ yield doneEvent;
100
+ };
101
+ const hooked = withHooks({
102
+ onError: (err) => {
103
+ receivedErrors.push(err);
104
+ return false;
105
+ },
106
+ })(runner);
107
+ await collect(hooked([], "test"));
108
+ expect(receivedErrors).toHaveLength(1);
109
+ expect(receivedErrors[0].message).toBe("check-me");
110
+ });
111
+ });
112
+ describe("no hooks provided", () => {
113
+ it("passes history and events through unchanged without hooks", async () => {
114
+ let receivedHistory = [];
115
+ const runner = async function* (history) {
116
+ receivedHistory = [...history];
117
+ yield { type: "text.delta", text: "hi" };
118
+ yield doneEvent;
119
+ };
120
+ const hooked = withHooks({})(runner);
121
+ const history = [{ role: "user", content: "original" }];
122
+ const events = await collect(hooked(history, "test"));
123
+ expect(receivedHistory).toEqual(history);
124
+ expect(events).toHaveLength(2);
125
+ });
126
+ });
127
+ describe("async hooks", () => {
128
+ it("supports async onBeforeSend", async () => {
129
+ const runner = async function* (history) {
130
+ yield doneEvent;
131
+ };
132
+ const hooked = withHooks({
133
+ onBeforeSend: async (msgs) => {
134
+ await new Promise((r) => setTimeout(r, 1));
135
+ return [...msgs, { role: "user", content: "async-injected" }];
136
+ },
137
+ })(runner);
138
+ let receivedHistory = [];
139
+ const captureRunner = async function* (history) {
140
+ receivedHistory = [...history];
141
+ yield doneEvent;
142
+ };
143
+ const hooked2 = withHooks({
144
+ onBeforeSend: async (msgs) => [...msgs, { role: "user", content: "async" }],
145
+ })(captureRunner);
146
+ await collect(hooked2([], "test"));
147
+ expect(receivedHistory).toEqual([{ role: "user", content: "async" }]);
148
+ });
149
+ it("supports async onAfterResponse", async () => {
150
+ let called = false;
151
+ const runner = async function* () {
152
+ yield doneEvent;
153
+ };
154
+ const hooked = withHooks({
155
+ onAfterResponse: async () => {
156
+ await new Promise((r) => setTimeout(r, 1));
157
+ called = true;
158
+ },
159
+ })(runner);
160
+ await collect(hooked([], "test"));
161
+ expect(called).toBe(true);
162
+ });
95
163
  });
96
164
  });
97
165
  //# sourceMappingURL=hooks.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/hooks.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/hooks.test.ts"],"names":[],"mappings":"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"}
@@ -66,5 +66,24 @@ describe("withPersistence", () => {
66
66
  const result = await collect(persisted([], "test"));
67
67
  expect(result).toEqual(events);
68
68
  });
69
+ it("propagates store.save errors", async () => {
70
+ const store = {
71
+ load: vi.fn(),
72
+ save: vi.fn().mockRejectedValue(new Error("disk full")),
73
+ };
74
+ const runner = createMockRunner([doneEvent]);
75
+ const persisted = withPersistence({ store, sessionId: "s1" })(runner);
76
+ await expect(collect(persisted([], "test"))).rejects.toThrow("disk full");
77
+ });
78
+ it("uses the provided sessionId", async () => {
79
+ const store = {
80
+ load: vi.fn(),
81
+ save: vi.fn().mockResolvedValue(undefined),
82
+ };
83
+ const runner = createMockRunner([doneEvent]);
84
+ const persisted = withPersistence({ store, sessionId: "custom-id" })(runner);
85
+ await collect(persisted([], "test"));
86
+ expect(store.save).toHaveBeenCalledWith("custom-id", expect.any(Array));
87
+ });
69
88
  });
70
89
  //# sourceMappingURL=persistence.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/persistence.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/persistence.test.ts"],"names":[],"mappings":"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"}
@@ -147,5 +147,72 @@ describe("withRetry", () => {
147
147
  await collect(retried([], "test"));
148
148
  expect(callCount).toBe(2);
149
149
  });
150
+ it("does not retry after tool.start (counts as content)", async () => {
151
+ let callCount = 0;
152
+ const runner = async function* () {
153
+ callCount++;
154
+ yield {
155
+ type: "tool.start",
156
+ toolCallId: "tc-1",
157
+ toolName: "readFile",
158
+ input: {},
159
+ };
160
+ yield { type: "error", error: new Error("429 rate limit") };
161
+ yield doneEvent;
162
+ };
163
+ const retried = withRetry({ maxRetries: 3, initialDelayMs: 1 })(runner);
164
+ const events = await collect(retried([], "test"));
165
+ expect(callCount).toBe(1);
166
+ expect(events.filter((e) => e.type === "retry")).toHaveLength(0);
167
+ });
168
+ it("works with maxRetries: 0 (no retries)", async () => {
169
+ let callCount = 0;
170
+ const runner = async function* () {
171
+ callCount++;
172
+ yield { type: "error", error: new Error("429 rate limit") };
173
+ yield {
174
+ type: "done",
175
+ result: "error",
176
+ messages: [],
177
+ totalUsage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
178
+ };
179
+ };
180
+ const retried = withRetry({ maxRetries: 0, initialDelayMs: 1 })(runner);
181
+ const events = await collect(retried([], "test"));
182
+ expect(callCount).toBe(1);
183
+ expect(events.filter((e) => e.type === "retry")).toHaveLength(0);
184
+ expect(events.find((e) => e.type === "error")).toBeDefined();
185
+ });
186
+ it("retry events include error details", async () => {
187
+ let callCount = 0;
188
+ const runner = async function* () {
189
+ callCount++;
190
+ if (callCount === 1) {
191
+ yield { type: "error", error: new Error("503 overloaded") };
192
+ yield {
193
+ type: "done",
194
+ result: "error",
195
+ messages: [],
196
+ totalUsage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
197
+ };
198
+ return;
199
+ }
200
+ yield doneEvent;
201
+ };
202
+ const retried = withRetry({ maxRetries: 3, initialDelayMs: 1 })(runner);
203
+ const events = await collect(retried([], "test"));
204
+ const retryEvent = events.find((e) => e.type === "retry");
205
+ expect(retryEvent).toBeDefined();
206
+ expect(retryEvent.error.message).toBe("503 overloaded");
207
+ expect(retryEvent.maxRetries).toBe(3);
208
+ expect(retryEvent.delayMs).toBeGreaterThan(0);
209
+ });
210
+ it("wraps non-Error thrown values in Error", async () => {
211
+ const runner = async function* () {
212
+ throw "string error";
213
+ };
214
+ const retried = withRetry({ maxRetries: 0, initialDelayMs: 1 })(runner);
215
+ await expect(collect(retried([], "test"))).rejects.toBe("string error");
216
+ });
150
217
  });
151
218
  //# sourceMappingURL=retry.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/retry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/retry.test.ts"],"names":[],"mappings":"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"}
@@ -66,5 +66,28 @@ describe("withTurnTracking", () => {
66
66
  expect(events).toHaveLength(5);
67
67
  expect(events.slice(1, 4)).toEqual(innerEvents);
68
68
  });
69
+ it("reports undefined usage when no done event", async () => {
70
+ const runner = createMockRunner([
71
+ { type: "text.delta", text: "hi" },
72
+ ]);
73
+ const tracked = withTurnTracking()(runner);
74
+ const events = await collect(tracked([], "test"));
75
+ const turnDone = events.find((e) => e.type === "turn.done");
76
+ expect(turnDone.usage).toEqual({
77
+ inputTokens: undefined,
78
+ outputTokens: undefined,
79
+ totalTokens: undefined,
80
+ });
81
+ });
82
+ it("each withTurnTracking() call creates independent counters", async () => {
83
+ const runner = createMockRunner([doneEvent]);
84
+ const tracked1 = withTurnTracking()(runner);
85
+ const tracked2 = withTurnTracking()(runner);
86
+ const events1 = await collect(tracked1([], "test"));
87
+ const events2 = await collect(tracked2([], "test"));
88
+ // Both should start at 1 (independent closures)
89
+ expect(events1[0]).toEqual({ type: "turn.start", turnNumber: 1 });
90
+ expect(events2[0]).toEqual({ type: "turn.start", turnNumber: 1 });
91
+ });
69
92
  });
70
93
  //# sourceMappingURL=turn-tracking.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-tracking.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/turn-tracking.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-tracking.test.js","sourceRoot":"","sources":["../../../src/__tests__/middleware/turn-tracking.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=node.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/providers/node.test.ts"],"names":[],"mappings":""}