daycare-cli 0.0.18 → 0.0.19

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 (64) hide show
  1. package/dist/engine/agents/agent.d.ts +5 -0
  2. package/dist/engine/agents/agent.d.ts.map +1 -1
  3. package/dist/engine/agents/agent.js +32 -6
  4. package/dist/engine/agents/agent.js.map +1 -1
  5. package/dist/engine/agents/agent.spec.js +1 -1
  6. package/dist/engine/agents/agent.spec.js.map +1 -1
  7. package/dist/engine/agents/ops/agentHistoryLoad.d.ts +1 -1
  8. package/dist/engine/agents/ops/agentHistoryLoad.d.ts.map +1 -1
  9. package/dist/engine/agents/ops/agentHistoryLoad.js +3 -120
  10. package/dist/engine/agents/ops/agentHistoryLoad.js.map +1 -1
  11. package/dist/engine/agents/ops/agentHistoryLoadAll.d.ts +8 -0
  12. package/dist/engine/agents/ops/agentHistoryLoadAll.d.ts.map +1 -0
  13. package/dist/engine/agents/ops/agentHistoryLoadAll.js +9 -0
  14. package/dist/engine/agents/ops/agentHistoryLoadAll.js.map +1 -0
  15. package/dist/engine/agents/ops/agentHistoryLoadAll.spec.d.ts +2 -0
  16. package/dist/engine/agents/ops/agentHistoryLoadAll.spec.d.ts.map +1 -0
  17. package/dist/engine/agents/ops/agentHistoryLoadAll.spec.js +42 -0
  18. package/dist/engine/agents/ops/agentHistoryLoadAll.spec.js.map +1 -0
  19. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.d.ts +8 -0
  20. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.d.ts.map +1 -0
  21. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.js +60 -0
  22. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.js.map +1 -0
  23. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.spec.d.ts +2 -0
  24. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.spec.d.ts.map +1 -0
  25. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.spec.js +87 -0
  26. package/dist/engine/agents/ops/agentHistoryPendingToolResultsBuild.spec.js.map +1 -0
  27. package/dist/engine/agents/ops/agentHistoryRecordsLoad.d.ts +8 -0
  28. package/dist/engine/agents/ops/agentHistoryRecordsLoad.d.ts.map +1 -0
  29. package/dist/engine/agents/ops/agentHistoryRecordsLoad.js +127 -0
  30. package/dist/engine/agents/ops/agentHistoryRecordsLoad.js.map +1 -0
  31. package/dist/engine/agents/ops/agentLoopRun.d.ts +1 -0
  32. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  33. package/dist/engine/agents/ops/agentLoopRun.js +19 -5
  34. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  35. package/dist/engine/agents/ops/agentLoopRun.spec.js +44 -0
  36. package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
  37. package/dist/engine/agents/ops/messageContextReset.d.ts +15 -0
  38. package/dist/engine/agents/ops/messageContextReset.d.ts.map +1 -0
  39. package/dist/engine/agents/ops/messageContextReset.js +24 -0
  40. package/dist/engine/agents/ops/messageContextReset.js.map +1 -0
  41. package/dist/engine/agents/ops/messageContextReset.spec.d.ts +2 -0
  42. package/dist/engine/agents/ops/messageContextReset.spec.d.ts.map +1 -0
  43. package/dist/engine/agents/ops/messageContextReset.spec.js +25 -0
  44. package/dist/engine/agents/ops/messageContextReset.spec.js.map +1 -0
  45. package/dist/engine/agents/ops/messageContextStatus.d.ts +11 -0
  46. package/dist/engine/agents/ops/messageContextStatus.d.ts.map +1 -0
  47. package/dist/engine/agents/ops/messageContextStatus.js +39 -0
  48. package/dist/engine/agents/ops/messageContextStatus.js.map +1 -0
  49. package/dist/engine/agents/ops/messageContextStatus.spec.d.ts +2 -0
  50. package/dist/engine/agents/ops/messageContextStatus.spec.d.ts.map +1 -0
  51. package/dist/engine/agents/ops/messageContextStatus.spec.js +49 -0
  52. package/dist/engine/agents/ops/messageContextStatus.spec.js.map +1 -0
  53. package/dist/engine/engine.d.ts.map +1 -1
  54. package/dist/engine/engine.js +3 -15
  55. package/dist/engine/engine.js.map +1 -1
  56. package/dist/engine/ipc/server.js +2 -2
  57. package/dist/engine/ipc/server.js.map +1 -1
  58. package/dist/engine/modules/tools/skillToolBuild.d.ts.map +1 -1
  59. package/dist/engine/modules/tools/skillToolBuild.js +6 -2
  60. package/dist/engine/modules/tools/skillToolBuild.js.map +1 -1
  61. package/dist/engine/modules/tools/skillToolBuild.spec.js +4 -1
  62. package/dist/engine/modules/tools/skillToolBuild.spec.js.map +1 -1
  63. package/dist/skills/skills/skill-creator/SKILL.md +10 -2
  64. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ import { mkdtemp, rm } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { describe, expect, it } from "vitest";
5
+ import { createId } from "@paralleldrive/cuid2";
6
+ import { configResolve } from "../../../config/configResolve.js";
7
+ import { agentHistoryAppend } from "./agentHistoryAppend.js";
8
+ import { agentHistoryLoadAll } from "./agentHistoryLoadAll.js";
9
+ const buildRecord = (record) => record;
10
+ describe("agentHistoryLoadAll", () => {
11
+ it("returns records across reset markers", async () => {
12
+ const dir = await mkdtemp(path.join(os.tmpdir(), "daycare-agent-history-all-"));
13
+ const agentId = createId();
14
+ try {
15
+ const config = configResolve({ engine: { dataDir: dir }, assistant: { workspaceDir: dir } }, path.join(dir, "settings.json"));
16
+ await agentHistoryAppend(config, agentId, buildRecord({ type: "start", at: 1 }));
17
+ await agentHistoryAppend(config, agentId, buildRecord({ type: "user_message", at: 2, text: "before reset", files: [] }));
18
+ await agentHistoryAppend(config, agentId, buildRecord({ type: "reset", at: 3 }));
19
+ await agentHistoryAppend(config, agentId, buildRecord({ type: "user_message", at: 4, text: "after reset", files: [] }));
20
+ const records = await agentHistoryLoadAll(config, agentId);
21
+ expect(records).toHaveLength(4);
22
+ expect(records[0]).toEqual({ type: "start", at: 1 });
23
+ expect(records[1]).toEqual({
24
+ type: "user_message",
25
+ at: 2,
26
+ text: "before reset",
27
+ files: []
28
+ });
29
+ expect(records[2]).toEqual({ type: "reset", at: 3 });
30
+ expect(records[3]).toEqual({
31
+ type: "user_message",
32
+ at: 4,
33
+ text: "after reset",
34
+ files: []
35
+ });
36
+ }
37
+ finally {
38
+ await rm(dir, { recursive: true, force: true });
39
+ }
40
+ });
41
+ });
42
+ //# sourceMappingURL=agentHistoryLoadAll.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistoryLoadAll.spec.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentHistoryLoadAll.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { AgentHistoryRecord } from "@/types";
2
+ export type AgentHistoryPendingReason = "session_crashed" | "user_aborted";
3
+ /**
4
+ * Builds synthetic tool_result records for unfinished tool calls.
5
+ * Expects: records are ordered chronologically from oldest to newest.
6
+ */
7
+ export declare function agentHistoryPendingToolResultsBuild(records: AgentHistoryRecord[], reason: AgentHistoryPendingReason, at: number): AgentHistoryRecord[];
8
+ //# sourceMappingURL=agentHistoryPendingToolResultsBuild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistoryPendingToolResultsBuild.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentHistoryPendingToolResultsBuild.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAuB,MAAM,SAAS,CAAC;AAEvE,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAO3E;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,kBAAkB,EAAE,EAC7B,MAAM,EAAE,yBAAyB,EACjC,EAAE,EAAE,MAAM,GACT,kBAAkB,EAAE,CAatB"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Builds synthetic tool_result records for unfinished tool calls.
3
+ * Expects: records are ordered chronologically from oldest to newest.
4
+ */
5
+ export function agentHistoryPendingToolResultsBuild(records, reason, at) {
6
+ const pendingCalls = agentHistoryPendingToolCallsResolve(records);
7
+ const messageText = reason === "session_crashed"
8
+ ? "Session crashed before tool completion."
9
+ : "User aborted before tool completion.";
10
+ return pendingCalls.map((toolCall, index) => ({
11
+ type: "tool_result",
12
+ at: at + index,
13
+ toolCallId: toolCall.id,
14
+ output: toolExecutionResultBuild(toolCall, messageText, at + index)
15
+ }));
16
+ }
17
+ function agentHistoryPendingToolCallsResolve(records) {
18
+ const pending = new Map();
19
+ for (const record of records) {
20
+ if (record.type === "assistant_message") {
21
+ for (const toolCall of record.toolCalls) {
22
+ const parsed = toolCallSafeParse(toolCall);
23
+ if (!parsed) {
24
+ continue;
25
+ }
26
+ pending.set(parsed.id, parsed);
27
+ }
28
+ continue;
29
+ }
30
+ if (record.type === "tool_result") {
31
+ pending.delete(record.toolCallId);
32
+ }
33
+ }
34
+ return [...pending.values()];
35
+ }
36
+ function toolCallSafeParse(value) {
37
+ if (!value || typeof value !== "object") {
38
+ return null;
39
+ }
40
+ const record = value;
41
+ if (typeof record.id !== "string" || record.id.trim().length === 0) {
42
+ return null;
43
+ }
44
+ if (typeof record.name !== "string" || record.name.trim().length === 0) {
45
+ return null;
46
+ }
47
+ return { id: record.id, name: record.name };
48
+ }
49
+ function toolExecutionResultBuild(toolCall, messageText, at) {
50
+ const toolMessage = {
51
+ role: "toolResult",
52
+ toolCallId: toolCall.id,
53
+ toolName: toolCall.name,
54
+ content: [{ type: "text", text: messageText }],
55
+ isError: true,
56
+ timestamp: at
57
+ };
58
+ return { toolMessage, files: [] };
59
+ }
60
+ //# sourceMappingURL=agentHistoryPendingToolResultsBuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistoryPendingToolResultsBuild.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentHistoryPendingToolResultsBuild.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CACjD,OAA6B,EAC7B,MAAiC,EACjC,EAAU;IAEV,MAAM,YAAY,GAAG,mCAAmC,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,WAAW,GACf,MAAM,KAAK,iBAAiB;QAC1B,CAAC,CAAC,yCAAyC;QAC3C,CAAC,CAAC,sCAAsC,CAAC;IAE7C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,aAAa;QACnB,EAAE,EAAE,EAAE,GAAG,KAAK;QACd,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,KAAK,CAAC;KACpE,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,mCAAmC,CAAC,OAA6B;IACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACxC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACjC,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,KAAyC,CAAC;IACzD,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAyB,EACzB,WAAmB,EACnB,EAAU;IAEV,MAAM,WAAW,GAAsB;QACrC,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,EAAE;KACd,CAAC;IACF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agentHistoryPendingToolResultsBuild.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistoryPendingToolResultsBuild.spec.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentHistoryPendingToolResultsBuild.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { agentHistoryPendingToolResultsBuild } from "./agentHistoryPendingToolResultsBuild.js";
3
+ describe("agentHistoryPendingToolResultsBuild", () => {
4
+ it("builds completion records for unfinished calls on session crash", () => {
5
+ const records = [
6
+ assistantRecordBuild(10, [
7
+ toolCallBuild("tool-1", "read_file"),
8
+ toolCallBuild("tool-2", "write_file")
9
+ ]),
10
+ toolResultRecordBuild(11, "tool-1", "read_file")
11
+ ];
12
+ const completion = agentHistoryPendingToolResultsBuild(records, "session_crashed", 50);
13
+ expect(completion).toHaveLength(1);
14
+ expect(completion[0]).toEqual(toolResultErrorRecordBuild(50, "tool-2", "write_file", "Session crashed before tool completion."));
15
+ });
16
+ it("builds completion records for unfinished calls on user abort", () => {
17
+ const records = [
18
+ assistantRecordBuild(10, [toolCallBuild("tool-9", "run_task")])
19
+ ];
20
+ const completion = agentHistoryPendingToolResultsBuild(records, "user_aborted", 70);
21
+ expect(completion).toHaveLength(1);
22
+ expect(completion[0]).toEqual(toolResultErrorRecordBuild(70, "tool-9", "run_task", "User aborted before tool completion."));
23
+ });
24
+ it("returns an empty array when all calls are completed", () => {
25
+ const records = [
26
+ assistantRecordBuild(10, [toolCallBuild("tool-1", "read_file")]),
27
+ toolResultRecordBuild(11, "tool-1", "read_file")
28
+ ];
29
+ const completion = agentHistoryPendingToolResultsBuild(records, "session_crashed", 90);
30
+ expect(completion).toEqual([]);
31
+ });
32
+ });
33
+ function assistantRecordBuild(at, toolCalls) {
34
+ return {
35
+ type: "assistant_message",
36
+ at,
37
+ text: "",
38
+ files: [],
39
+ toolCalls,
40
+ tokens: null
41
+ };
42
+ }
43
+ function toolResultRecordBuild(at, toolCallId, toolName) {
44
+ return {
45
+ type: "tool_result",
46
+ at,
47
+ toolCallId,
48
+ output: {
49
+ toolMessage: {
50
+ role: "toolResult",
51
+ toolCallId,
52
+ toolName,
53
+ content: [{ type: "text", text: "ok" }],
54
+ isError: false,
55
+ timestamp: at
56
+ },
57
+ files: []
58
+ }
59
+ };
60
+ }
61
+ function toolResultErrorRecordBuild(at, toolCallId, toolName, text) {
62
+ return {
63
+ type: "tool_result",
64
+ at,
65
+ toolCallId,
66
+ output: {
67
+ toolMessage: {
68
+ role: "toolResult",
69
+ toolCallId,
70
+ toolName,
71
+ content: [{ type: "text", text }],
72
+ isError: true,
73
+ timestamp: at
74
+ },
75
+ files: []
76
+ }
77
+ };
78
+ }
79
+ function toolCallBuild(id, name) {
80
+ return {
81
+ id,
82
+ name,
83
+ type: "toolCall",
84
+ arguments: {}
85
+ };
86
+ }
87
+ //# sourceMappingURL=agentHistoryPendingToolResultsBuild.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistoryPendingToolResultsBuild.spec.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentHistoryPendingToolResultsBuild.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAE/F,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,OAAO,GAAyB;YACpC,oBAAoB,CAAC,EAAE,EAAE;gBACvB,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC;gBACpC,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC;aACtC,CAAC;YACF,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;SACjD,CAAC;QAEF,MAAM,UAAU,GAAG,mCAAmC,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAEvF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAC3B,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,yCAAyC,CAAC,CAClG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,OAAO,GAAyB;YACpC,oBAAoB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;SAChE,CAAC;QAEF,MAAM,UAAU,GAAG,mCAAmC,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;QAEpF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAC3B,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,sCAAsC,CAAC,CAC7F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAyB;YACpC,oBAAoB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAChE,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;SACjD,CAAC;QAEF,MAAM,UAAU,GAAG,mCAAmC,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAEvF,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAAC,EAAU,EAAE,SAAqB;IAC7D,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,EAAE;QACF,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,SAAS;QACT,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU,EAAE,UAAkB,EAAE,QAAgB;IAC7E,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,EAAE;QACF,UAAU;QACV,MAAM,EAAE;YACN,WAAW,EAAE;gBACX,IAAI,EAAE,YAAY;gBAClB,UAAU;gBACV,QAAQ;gBACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACvC,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,EAAE;aACd;YACD,KAAK,EAAE,EAAE;SACV;KACF,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,EAAU,EACV,UAAkB,EAClB,QAAgB,EAChB,IAAY;IAEZ,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,EAAE;QACF,UAAU;QACV,MAAM,EAAE;YACN,WAAW,EAAE;gBACX,IAAI,EAAE,YAAY;gBAClB,UAAU;gBACV,QAAQ;gBACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjC,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,EAAE;aACd;YACD,KAAK,EAAE,EAAE;SACV;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EAAU,EAAE,IAAY;IAC7C,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Config } from "@/types";
2
+ import type { AgentHistoryRecord } from "./agentTypes.js";
3
+ /**
4
+ * Loads and validates all persisted history records for one agent.
5
+ * Expects: history file is newline-delimited JSON at `<agent>/history.jsonl`.
6
+ */
7
+ export declare function agentHistoryRecordsLoad(config: Config, agentId: string): Promise<AgentHistoryRecord[]>;
8
+ //# sourceMappingURL=agentHistoryRecordsLoad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistoryRecordsLoad.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentHistoryRecordsLoad.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA0F1D;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAoC/B"}
@@ -0,0 +1,127 @@
1
+ import { createReadStream, promises as fs } from "node:fs";
2
+ import path from "node:path";
3
+ import { createInterface } from "node:readline";
4
+ import { z } from "zod";
5
+ import { agentPathBuild } from "./agentPathBuild.js";
6
+ const fileReferenceSchema = z
7
+ .object({
8
+ id: z.string().min(1),
9
+ name: z.string().min(1),
10
+ mimeType: z.string().min(1),
11
+ size: z.number(),
12
+ path: z.string().min(1)
13
+ })
14
+ .strict();
15
+ const toolExecutionResultSchema = z
16
+ .object({
17
+ toolMessage: z.unknown(),
18
+ files: z.array(fileReferenceSchema)
19
+ })
20
+ .strict();
21
+ const tokenSizeSchema = z
22
+ .object({
23
+ input: z.number().int().nonnegative(),
24
+ output: z.number().int().nonnegative(),
25
+ cacheRead: z.number().int().nonnegative(),
26
+ cacheWrite: z.number().int().nonnegative(),
27
+ total: z.number().int().nonnegative()
28
+ })
29
+ .strict();
30
+ const tokenSnapshotSizeSchema = tokenSizeSchema;
31
+ const tokenEntrySchema = z
32
+ .object({
33
+ provider: z.string().min(1),
34
+ model: z.string().min(1),
35
+ size: tokenSnapshotSizeSchema
36
+ })
37
+ .strict()
38
+ .nullable();
39
+ const historyRecordSchema = z.discriminatedUnion("type", [
40
+ z
41
+ .object({
42
+ type: z.literal("start"),
43
+ at: z.number().int()
44
+ })
45
+ .strict(),
46
+ z
47
+ .object({
48
+ type: z.literal("reset"),
49
+ at: z.number().int(),
50
+ message: z.string().optional()
51
+ })
52
+ .strict(),
53
+ z
54
+ .object({
55
+ type: z.literal("user_message"),
56
+ at: z.number().int(),
57
+ text: z.string(),
58
+ files: z.array(fileReferenceSchema)
59
+ })
60
+ .strict(),
61
+ z
62
+ .object({
63
+ type: z.literal("assistant_message"),
64
+ at: z.number().int(),
65
+ text: z.string(),
66
+ files: z.array(fileReferenceSchema),
67
+ toolCalls: z.array(z.unknown()),
68
+ tokens: tokenEntrySchema
69
+ })
70
+ .strict(),
71
+ z
72
+ .object({
73
+ type: z.literal("tool_result"),
74
+ at: z.number().int(),
75
+ toolCallId: z.string().min(1),
76
+ output: toolExecutionResultSchema
77
+ })
78
+ .strict(),
79
+ z
80
+ .object({
81
+ type: z.literal("note"),
82
+ at: z.number().int(),
83
+ text: z.string()
84
+ })
85
+ .strict()
86
+ ]);
87
+ /**
88
+ * Loads and validates all persisted history records for one agent.
89
+ * Expects: history file is newline-delimited JSON at `<agent>/history.jsonl`.
90
+ */
91
+ export async function agentHistoryRecordsLoad(config, agentId) {
92
+ const basePath = agentPathBuild(config, agentId);
93
+ const filePath = path.join(basePath, "history.jsonl");
94
+ try {
95
+ await fs.access(filePath);
96
+ }
97
+ catch (error) {
98
+ if (error.code === "ENOENT") {
99
+ return [];
100
+ }
101
+ throw error;
102
+ }
103
+ const records = [];
104
+ const reader = createInterface({
105
+ input: createReadStream(filePath, { encoding: "utf8" }),
106
+ crlfDelay: Infinity
107
+ });
108
+ for await (const line of reader) {
109
+ const trimmed = line.trim();
110
+ if (!trimmed) {
111
+ continue;
112
+ }
113
+ let parsed;
114
+ try {
115
+ parsed = JSON.parse(trimmed);
116
+ }
117
+ catch {
118
+ continue;
119
+ }
120
+ const result = historyRecordSchema.safeParse(parsed);
121
+ if (result.success) {
122
+ records.push(result.data);
123
+ }
124
+ }
125
+ return records;
126
+ }
127
+ //# sourceMappingURL=agentHistoryRecordsLoad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistoryRecordsLoad.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentHistoryRecordsLoad.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ type AgentLoopRunOptions = {
33
33
  verbose: boolean;
34
34
  logger: Logger;
35
35
  abortSignal?: AbortSignal;
36
+ appendHistoryRecord?: (record: AgentHistoryRecord) => Promise<void>;
36
37
  notifySubagentFailure: (reason: string, error?: unknown) => Promise<void>;
37
38
  };
38
39
  type AgentLoopResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoopRun.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentLoopRun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAOzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,KAAK,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC,CAAC;CACJ,CAAC;AAEF;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuYzF"}
1
+ {"version":3,"file":"agentLoopRun.d.ts","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentLoopRun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAOzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKrD,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,KAAK,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC,CAAC;CACJ,CAAC;AAEF;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuZzF"}
@@ -7,13 +7,14 @@ import { toolListContextBuild } from "../../modules/tools/toolListContextBuild.j
7
7
  import { agentDescriptorIsCron } from "./agentDescriptorIsCron.js";
8
8
  import { agentDescriptorTargetResolve } from "./agentDescriptorTargetResolve.js";
9
9
  import { tokensResolve } from "./tokensResolve.js";
10
+ import { agentHistoryPendingToolResultsBuild } from "./agentHistoryPendingToolResultsBuild.js";
10
11
  const MAX_TOOL_ITERATIONS = 500; // Make this big enough to handle complex tasks
11
12
  /**
12
13
  * Runs the agent inference loop and handles tool execution + response delivery.
13
14
  * Expects: context already includes the user message and system prompt.
14
15
  */
15
16
  export async function agentLoopRun(options) {
16
- const { entry, agent, source, context, connector, connectorRegistry, inferenceRouter, toolResolver, fileStore, authStore, eventBus, assistant, agentSystem, heartbeats, skills, providersForAgent, verbose, logger, abortSignal, notifySubagentFailure } = options;
17
+ const { entry, agent, source, context, connector, connectorRegistry, inferenceRouter, toolResolver, fileStore, authStore, eventBus, assistant, agentSystem, heartbeats, skills, providersForAgent, verbose, logger, abortSignal, appendHistoryRecord, notifySubagentFailure } = options;
17
18
  let response = null;
18
19
  let toolLoopExceeded = false;
19
20
  let lastResponseHadToolCalls = false;
@@ -138,14 +139,14 @@ export async function agentLoopRun(options) {
138
139
  }
139
140
  }
140
141
  logger.debug(`event: Extracted tool calls from response toolCallCount=${toolCalls.length}`);
141
- historyRecords.push({
142
+ await historyRecordAppend(historyRecords, {
142
143
  type: "assistant_message",
143
144
  at: Date.now(),
144
145
  text: effectiveResponseText ?? "",
145
146
  files: [],
146
147
  toolCalls,
147
148
  tokens: tokensEntry
148
- });
149
+ }, appendHistoryRecord);
149
150
  if (toolCalls.length === 0) {
150
151
  logger.debug(`event: No tool calls, breaking inference loop iteration=${iteration}`);
151
152
  break;
@@ -182,12 +183,12 @@ export async function agentLoopRun(options) {
182
183
  });
183
184
  }
184
185
  context.messages.push(toolResult.toolMessage);
185
- historyRecords.push({
186
+ await historyRecordAppend(historyRecords, {
186
187
  type: "tool_result",
187
188
  at: Date.now(),
188
189
  toolCallId: toolCall.id,
189
190
  output: toolResult
190
- });
191
+ }, appendHistoryRecord);
191
192
  if (toolResult.files.length > 0) {
192
193
  generatedFiles.push(...toolResult.files);
193
194
  logger.debug(`event: Tool generated files count=${toolResult.files.length}`);
@@ -203,6 +204,7 @@ export async function agentLoopRun(options) {
203
204
  catch (error) {
204
205
  logger.debug(`error: Inference loop caught error error=${String(error)}`);
205
206
  if (isInferenceAbortError(error, abortSignal)) {
207
+ await historyPendingToolCallsComplete(historyRecords, "user_aborted", appendHistoryRecord);
206
208
  logger.info({ agentId: agent.id }, "event: Inference aborted");
207
209
  return { responseText: finalResponseText, historyRecords, tokenStatsUpdates };
208
210
  }
@@ -210,6 +212,7 @@ export async function agentLoopRun(options) {
210
212
  logger.warn({ agentId: agent.id, error }, "event: Inference context overflow detected");
211
213
  return { responseText: finalResponseText, historyRecords, contextOverflow: true, tokenStatsUpdates };
212
214
  }
215
+ await historyPendingToolCallsComplete(historyRecords, "session_crashed", appendHistoryRecord);
213
216
  logger.warn({ connector: source, error }, "error: Inference failed");
214
217
  const message = error instanceof Error && error.message === "No inference provider available"
215
218
  ? "No inference provider available."
@@ -234,6 +237,7 @@ export async function agentLoopRun(options) {
234
237
  return { responseText: finalResponseText, historyRecords, tokenStatsUpdates };
235
238
  }
236
239
  if (response.message.stopReason === "aborted") {
240
+ await historyPendingToolCallsComplete(historyRecords, "user_aborted", appendHistoryRecord);
237
241
  logger.info({ agentId: agent.id }, "event: Inference aborted by provider");
238
242
  return { responseText: finalResponseText, historyRecords, tokenStatsUpdates };
239
243
  }
@@ -326,6 +330,16 @@ export async function agentLoopRun(options) {
326
330
  logger.debug("event: handleMessage completed successfully");
327
331
  return { responseText: finalResponseText, historyRecords, tokenStatsUpdates };
328
332
  }
333
+ async function historyPendingToolCallsComplete(historyRecords, reason, appendHistoryRecord) {
334
+ const completionRecords = agentHistoryPendingToolResultsBuild(historyRecords, reason, Date.now());
335
+ for (const record of completionRecords) {
336
+ await historyRecordAppend(historyRecords, record, appendHistoryRecord);
337
+ }
338
+ }
339
+ async function historyRecordAppend(historyRecords, record, appendHistoryRecord) {
340
+ historyRecords.push(record);
341
+ await appendHistoryRecord?.(record);
342
+ }
329
343
  // Remove NO_MESSAGE text blocks so the sentinel never re-enters future model context.
330
344
  function stripNoMessageTextBlocks(message) {
331
345
  if (message.role !== "assistant" || !Array.isArray(message.content)) {
@@ -1 +1 @@
1
- {"version":3,"file":"agentLoopRun.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentLoopRun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentLoopRun.js","sourceRoot":"","sources":["../../../../sources/engine/agents/ops/agentLoopRun.ts"],"names":[],"mappings":"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"}
@@ -119,6 +119,48 @@ describe("agentLoopRun", () => {
119
119
  expect(toolResolverSkills).toHaveLength(1);
120
120
  expect(toolResolverSkills[0]).toEqual(firstSkills);
121
121
  });
122
+ it("completes unfinished tool calls with abort records", async () => {
123
+ const controller = new AbortController();
124
+ const appended = [];
125
+ const connector = connectorBuild(vi.fn(async () => undefined));
126
+ const entry = entryBuild();
127
+ const context = contextBuild();
128
+ const inferenceRouter = inferenceRouterBuild([
129
+ assistantMessageBuild([
130
+ toolCallBuild("call-1", "run_python", { code: "print(1)" }),
131
+ toolCallBuild("call-2", "read_file", { path: "notes.txt" })
132
+ ])
133
+ ]);
134
+ const toolResolver = toolResolverBuild(async () => {
135
+ controller.abort();
136
+ const error = new Error("aborted");
137
+ error.name = "AbortError";
138
+ throw error;
139
+ });
140
+ const result = await agentLoopRun(optionsBuild({
141
+ entry,
142
+ context,
143
+ connector,
144
+ inferenceRouter,
145
+ toolResolver,
146
+ abortSignal: controller.signal,
147
+ appendHistoryRecord: async (record) => {
148
+ appended.push(record.type);
149
+ }
150
+ }));
151
+ const abortedResults = result.historyRecords.filter((record) => record.type === "tool_result");
152
+ expect(abortedResults).toHaveLength(2);
153
+ for (const record of abortedResults) {
154
+ if (record.type !== "tool_result") {
155
+ continue;
156
+ }
157
+ expect(record.output.toolMessage.isError).toBe(true);
158
+ expect(record.output.toolMessage.content).toEqual([
159
+ { type: "text", text: "User aborted before tool completion." }
160
+ ]);
161
+ }
162
+ expect(appended).toEqual(["assistant_message", "tool_result", "tool_result"]);
163
+ });
122
164
  });
123
165
  function optionsBuild(params) {
124
166
  const logger = {
@@ -171,6 +213,8 @@ function optionsBuild(params) {
171
213
  providersForAgent: [],
172
214
  verbose: false,
173
215
  logger: logger,
216
+ abortSignal: params.abortSignal,
217
+ appendHistoryRecord: params.appendHistoryRecord,
174
218
  notifySubagentFailure: vi.fn(async () => undefined)
175
219
  };
176
220
  }