neoctl 0.2.30 → 0.2.32

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 (151) hide show
  1. package/README.md +37 -3
  2. package/dist/agents/agent-activity.d.ts +3 -0
  3. package/dist/agents/agent-activity.js +33 -6
  4. package/dist/agents/agent-activity.js.map +1 -1
  5. package/dist/agents/agent-definition.d.ts +2 -2
  6. package/dist/agents/agent-definition.js +6 -6
  7. package/dist/agents/agent-definition.js.map +1 -1
  8. package/dist/agents/agent-report-tool.d.ts +1 -1
  9. package/dist/agents/agent-report-tool.js +4 -4
  10. package/dist/agents/agent-report-tool.js.map +1 -1
  11. package/dist/agents/agent-tool.d.ts +1 -1
  12. package/dist/agents/agent-tool.js +97 -18
  13. package/dist/agents/agent-tool.js.map +1 -1
  14. package/dist/agents/local-agent-task.d.ts +12 -0
  15. package/dist/agents/local-agent-task.js +38 -1
  16. package/dist/agents/local-agent-task.js.map +1 -1
  17. package/dist/agents/smoke-agents.js +37 -26
  18. package/dist/agents/smoke-agents.js.map +1 -1
  19. package/dist/context/compaction.d.ts +20 -4
  20. package/dist/context/compaction.js +378 -187
  21. package/dist/context/compaction.js.map +1 -1
  22. package/dist/context/context-manager.d.ts +7 -1
  23. package/dist/context/context-manager.js +15 -11
  24. package/dist/context/context-manager.js.map +1 -1
  25. package/dist/context/prompts.js +8 -6
  26. package/dist/context/prompts.js.map +1 -1
  27. package/dist/context/smoke-context.js +273 -24
  28. package/dist/context/smoke-context.js.map +1 -1
  29. package/dist/core/assistant-output-filter.d.ts +1 -0
  30. package/dist/core/assistant-output-filter.js +54 -2
  31. package/dist/core/assistant-output-filter.js.map +1 -1
  32. package/dist/core/context-metrics.d.ts +1 -0
  33. package/dist/core/context-metrics.js +18 -12
  34. package/dist/core/context-metrics.js.map +1 -1
  35. package/dist/core/image-registry.d.ts +16 -3
  36. package/dist/core/image-registry.js +65 -30
  37. package/dist/core/image-registry.js.map +1 -1
  38. package/dist/core/image-storage.d.ts +15 -1
  39. package/dist/core/image-storage.js +140 -17
  40. package/dist/core/image-storage.js.map +1 -1
  41. package/dist/core/message-pipeline.js +18 -4
  42. package/dist/core/message-pipeline.js.map +1 -1
  43. package/dist/core/query-engine.d.ts +12 -2
  44. package/dist/core/query-engine.js +59 -8
  45. package/dist/core/query-engine.js.map +1 -1
  46. package/dist/core/query.d.ts +13 -2
  47. package/dist/core/query.js +144 -27
  48. package/dist/core/query.js.map +1 -1
  49. package/dist/core/run-agent.d.ts +13 -2
  50. package/dist/core/run-agent.js +16 -13
  51. package/dist/core/run-agent.js.map +1 -1
  52. package/dist/core/smoke-core-loop.js +121 -3
  53. package/dist/core/smoke-core-loop.js.map +1 -1
  54. package/dist/core/smoke-image-integrity.d.ts +1 -0
  55. package/dist/core/smoke-image-integrity.js +67 -0
  56. package/dist/core/smoke-image-integrity.js.map +1 -0
  57. package/dist/core/state.d.ts +1 -1
  58. package/dist/core/state.js.map +1 -1
  59. package/dist/index.d.ts +2 -1
  60. package/dist/index.js +2 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/model/model-metadata.json +4 -4
  63. package/dist/plugins/plugin-system.d.ts +61 -0
  64. package/dist/plugins/plugin-system.js +189 -0
  65. package/dist/plugins/plugin-system.js.map +1 -0
  66. package/dist/plugins/smoke-plugin-system.d.ts +1 -0
  67. package/dist/plugins/smoke-plugin-system.js +63 -0
  68. package/dist/plugins/smoke-plugin-system.js.map +1 -0
  69. package/dist/repl/index.js +22 -17
  70. package/dist/repl/index.js.map +1 -1
  71. package/dist/secrets/secret-redaction.d.ts +5 -0
  72. package/dist/secrets/secret-redaction.js +43 -0
  73. package/dist/secrets/secret-redaction.js.map +1 -1
  74. package/dist/secrets/secret-types.d.ts +4 -0
  75. package/dist/secrets/secret-types.js.map +1 -1
  76. package/dist/secrets/smoke-secrets.js +7 -3
  77. package/dist/secrets/smoke-secrets.js.map +1 -1
  78. package/dist/session/session-export.d.ts +2 -0
  79. package/dist/session/session-export.js +10 -0
  80. package/dist/session/session-export.js.map +1 -1
  81. package/dist/session/session-store.d.ts +41 -0
  82. package/dist/session/session-store.js +292 -59
  83. package/dist/session/session-store.js.map +1 -1
  84. package/dist/session/smoke-session.js +127 -7
  85. package/dist/session/smoke-session.js.map +1 -1
  86. package/dist/skills/smoke-skills.js +5 -5
  87. package/dist/skills/smoke-skills.js.map +1 -1
  88. package/dist/tasks/subagent-tools.d.ts +31 -0
  89. package/dist/tasks/{task-tools.js → subagent-tools.js} +26 -32
  90. package/dist/tasks/subagent-tools.js.map +1 -0
  91. package/dist/tools/builtins/edit-tool.js +24 -6
  92. package/dist/tools/builtins/edit-tool.js.map +1 -1
  93. package/dist/tools/builtins/exec-process-manager.d.ts +13 -0
  94. package/dist/tools/builtins/exec-process-manager.js +57 -7
  95. package/dist/tools/builtins/exec-process-manager.js.map +1 -1
  96. package/dist/tools/builtins/exec-tool.js +34 -10
  97. package/dist/tools/builtins/exec-tool.js.map +1 -1
  98. package/dist/tools/builtins/filesystem-tools.js +2 -4
  99. package/dist/tools/builtins/filesystem-tools.js.map +1 -1
  100. package/dist/tools/builtins/grep-tool.js +2 -3
  101. package/dist/tools/builtins/grep-tool.js.map +1 -1
  102. package/dist/tools/builtins/image-generation-tool.js +36 -46
  103. package/dist/tools/builtins/image-generation-tool.js.map +1 -1
  104. package/dist/tools/builtins/image-loader-tool.js +12 -7
  105. package/dist/tools/builtins/image-loader-tool.js.map +1 -1
  106. package/dist/tools/builtins/image-note-tool.js +8 -4
  107. package/dist/tools/builtins/image-note-tool.js.map +1 -1
  108. package/dist/tools/builtins/plan-tool.js +1 -1
  109. package/dist/tools/builtins/plan-tool.js.map +1 -1
  110. package/dist/tools/builtins/search-tool.js +3 -3
  111. package/dist/tools/builtins/search-tool.js.map +1 -1
  112. package/dist/tools/registry.d.ts +8 -1
  113. package/dist/tools/registry.js +37 -13
  114. package/dist/tools/registry.js.map +1 -1
  115. package/dist/tools/run-tool-use.js +3 -2
  116. package/dist/tools/run-tool-use.js.map +1 -1
  117. package/dist/tools/smoke-exec-process.js +12 -0
  118. package/dist/tools/smoke-exec-process.js.map +1 -1
  119. package/dist/tools/smoke-tool-system.js +68 -31
  120. package/dist/tools/smoke-tool-system.js.map +1 -1
  121. package/dist/tools/tool-catalog.d.ts +36 -0
  122. package/dist/tools/tool-catalog.js +64 -0
  123. package/dist/tools/tool-catalog.js.map +1 -0
  124. package/dist/tools/tool-orchestration.d.ts +20 -3
  125. package/dist/tools/tool-orchestration.js +29 -4
  126. package/dist/tools/tool-orchestration.js.map +1 -1
  127. package/dist/tools/tool.d.ts +13 -0
  128. package/dist/tools/tool.js.map +1 -1
  129. package/dist/types/events.d.ts +28 -1
  130. package/dist/types/messages.d.ts +13 -5
  131. package/dist/types/messages.js +4 -0
  132. package/dist/types/messages.js.map +1 -1
  133. package/dist/ui/display-message.d.ts +10 -2
  134. package/dist/ui/display-message.js +18 -9
  135. package/dist/ui/display-message.js.map +1 -1
  136. package/dist/web/index.d.ts +198 -9
  137. package/dist/web/index.js +1208 -146
  138. package/dist/web/index.js.map +1 -1
  139. package/dist/web/runtime-context-protocol.d.ts +19 -1
  140. package/dist/web/runtime-context-protocol.js +19 -3
  141. package/dist/web/runtime-context-protocol.js.map +1 -1
  142. package/dist/web/smoke-runtime-context-protocol.js +13 -2
  143. package/dist/web/smoke-runtime-context-protocol.js.map +1 -1
  144. package/dist/web/smoke-web-history.d.ts +1 -0
  145. package/dist/web/smoke-web-history.js +179 -0
  146. package/dist/web/smoke-web-history.js.map +1 -0
  147. package/dist/web/smoke-web-terminal-tasks.js +35 -3
  148. package/dist/web/smoke-web-terminal-tasks.js.map +1 -1
  149. package/package.json +4 -1
  150. package/dist/tasks/task-tools.d.ts +0 -31
  151. package/dist/tasks/task-tools.js.map +0 -1
@@ -4,7 +4,7 @@ import path from "node:path";
4
4
  import { FileToolResultMemory, PERSISTED_OUTPUT_TAG } from "./tool-result-memory.js";
5
5
  import { SessionStore } from "./session-store.js";
6
6
  import { writeSessionMarkdownExport } from "./session-export.js";
7
- import { createThinkingMessage } from "../types/messages.js";
7
+ import { createTextMessage, createThinkingMessage } from "../types/messages.js";
8
8
  async function main() {
9
9
  const root = await fs.mkdtemp(path.join(os.tmpdir(), "agent-session-smoke-"));
10
10
  const sessionId = "smoke-session";
@@ -17,15 +17,56 @@ async function main() {
17
17
  for (const message of messages)
18
18
  store.recordMessage(message);
19
19
  store.recordMessage(createThinkingMessage("persisted visible reasoning"));
20
+ store.recordMessage(createTextMessage("assistant", "assistant before compact"));
20
21
  store.recordContentReplacements(first.records);
21
22
  store.recordTitle("Smoke Session Title", "initial");
22
23
  store.recordTitle("Refined Smoke Session Title", "refinement");
23
24
  store.recordFastMode(true);
25
+ store.recordContextWindowTokens(256000);
24
26
  store.recordMessage({ ...messages[0], role: "progress" });
27
+ const compactionBoundary = {
28
+ ...createTextMessage("system", "<compact_state>persisted compact state</compact_state>"),
29
+ isMeta: true,
30
+ metadata: { compactBoundary: true, compactionReason: "manualcompact", modelDriven: true },
31
+ };
32
+ const preservedUser = { ...createTextMessage("user", "preserved user request"), metadata: { compactPreservedUser: true } };
33
+ store.recordCompactCheckpoint([preservedUser, compactionBoundary], "manualcompact", {
34
+ reason: "manualcompact",
35
+ summary: "persisted compact summary",
36
+ continuationState: "persisted compact state",
37
+ sourceMessages: messages.length + 2,
38
+ preservedUserMessages: 1,
39
+ newWindowMessages: 2,
40
+ charsFreed: 1234,
41
+ modelDriven: true,
42
+ imageCount: 0,
43
+ });
44
+ store.recordMessage(createTextMessage("assistant", "assistant between compacts"));
45
+ const secondCompactionBoundary = {
46
+ ...createTextMessage("system", "<compact_state>second compact state</compact_state>"),
47
+ isMeta: true,
48
+ metadata: { compactBoundary: true, compactionReason: "manualcompact", modelDriven: true },
49
+ };
50
+ store.recordCompactCheckpoint([preservedUser, secondCompactionBoundary], "manualcompact", {
51
+ reason: "manualcompact",
52
+ summary: "second compact summary",
53
+ continuationState: "second compact state",
54
+ sourceMessages: 3,
55
+ preservedUserMessages: 1,
56
+ newWindowMessages: 2,
57
+ charsFreed: 2345,
58
+ modelDriven: true,
59
+ imageCount: 0,
60
+ });
61
+ store.recordMessage(createTextMessage("assistant", "assistant after second compact"));
25
62
  const resumed = await SessionStore.open({ agentId: "main", rootDir: root, sessionId, resume: true });
26
63
  const latest = await SessionStore.open({ agentId: "main", rootDir: root, resume: true });
27
64
  const listed = await SessionStore.list({ agentId: "main", rootDir: root });
28
65
  const resumedBudget = await resumed.toolResultMemory.applyBudget(resumed.getInitialMessages(), { maxSerializedLength: 180 });
66
+ const displayEntries = resumed.getDisplayEntries();
67
+ const displayMessages = displayEntries.filter((entry) => entry.type === "message").map((entry) => entry.message);
68
+ const displayCompactions = displayEntries.filter((entry) => entry.type === "compact");
69
+ const displayCompactionIndexes = displayEntries.flatMap((entry, index) => entry.type === "compact" ? [index] : []);
29
70
  const exportPath = path.join(root, "exports", "session.md");
30
71
  const exportResult = await writeSessionMarkdownExport({
31
72
  outputPath: exportPath,
@@ -41,6 +82,36 @@ async function main() {
41
82
  maxToolResultLines: 3,
42
83
  });
43
84
  const exportedMarkdown = await fs.readFile(exportPath, "utf8");
85
+ const truncatedTailSessionId = "truncated-tail-session";
86
+ const truncatedTailStore = await SessionStore.open({ agentId: "main", rootDir: root, sessionId: truncatedTailSessionId });
87
+ truncatedTailStore.recordMessage(createTextMessage("user", "durable before partial tail"));
88
+ await fs.appendFile(truncatedTailStore.transcriptPath, '{"type":"message","sessionId":"truncated-tail-session"', "utf8");
89
+ const recoveredTailStore = await SessionStore.open({ agentId: "main", rootDir: root, sessionId: truncatedTailSessionId, resume: true });
90
+ const recoveredTailMessagesBeforeAppend = recoveredTailStore.getInitialMessages();
91
+ const repairedTailText = await fs.readFile(truncatedTailStore.transcriptPath, "utf8");
92
+ recoveredTailStore.recordMessage(createTextMessage("assistant", "durable after partial tail"));
93
+ const recoveredTailAgain = await SessionStore.open({ agentId: "main", rootDir: root, sessionId: truncatedTailSessionId, resume: true });
94
+ const unterminatedValidSessionId = "unterminated-valid-session";
95
+ const unterminatedValidStore = await SessionStore.open({ agentId: "main", rootDir: root, sessionId: unterminatedValidSessionId });
96
+ unterminatedValidStore.recordMessage(createTextMessage("user", "valid record without final newline"));
97
+ const validTranscript = await fs.readFile(unterminatedValidStore.transcriptPath, "utf8");
98
+ await fs.writeFile(unterminatedValidStore.transcriptPath, validTranscript.replace(/\n$/u, ""), "utf8");
99
+ const recoveredValidTail = await SessionStore.open({ agentId: "main", rootDir: root, sessionId: unterminatedValidSessionId, resume: true });
100
+ const repairedValidText = await fs.readFile(unterminatedValidStore.transcriptPath, "utf8");
101
+ const corruptMiddleSessionId = "corrupt-middle-session";
102
+ const corruptMiddleStore = await SessionStore.open({ agentId: "main", rootDir: root, sessionId: corruptMiddleSessionId });
103
+ corruptMiddleStore.recordMessage(createTextMessage("user", "before corrupt middle"));
104
+ corruptMiddleStore.recordMessage(createTextMessage("assistant", "after corrupt middle"));
105
+ const corruptLines = (await fs.readFile(corruptMiddleStore.transcriptPath, "utf8")).trimEnd().split("\n");
106
+ await fs.writeFile(corruptMiddleStore.transcriptPath, `${corruptLines[0]}\n{malformed}\n${corruptLines[1]}\n`, "utf8");
107
+ const corruptMiddleRejected = await SessionStore.open({ agentId: "main", rootDir: root, sessionId: corruptMiddleSessionId, resume: true })
108
+ .then(() => false)
109
+ .catch((error) => error instanceof Error && error.message.includes("Malformed session transcript"));
110
+ const durabilitySessionsDeleted = await Promise.all([
111
+ truncatedTailSessionId,
112
+ unterminatedValidSessionId,
113
+ corruptMiddleSessionId,
114
+ ].map((durabilitySessionId) => SessionStore.delete({ rootDir: root, sessionId: durabilitySessionId })));
44
115
  const afterReset = await SessionStore.open({ agentId: "main", rootDir: root, sessionId, resume: true });
45
116
  afterReset.reset();
46
117
  const resetResume = await SessionStore.open({ agentId: "main", rootDir: root, sessionId, resume: true });
@@ -50,33 +121,82 @@ async function main() {
50
121
  persistedBlocks.length === 1 &&
51
122
  second.records.length === 0 &&
52
123
  JSON.stringify(first.messages) === JSON.stringify(second.messages) &&
53
- resumed.snapshot().resumedMessages === messages.length + 1 &&
54
- resumed.getInitialMessages().some((message) => message.blocks.some((block) => block.type === "thinking" && block.text === "persisted visible reasoning")) &&
124
+ resumed.snapshot().resumedMessages === 3 &&
125
+ resumed.getInitialMessages()[0]?.metadata?.compactPreservedUser === true &&
126
+ resumed.getInitialMessages()[1]?.metadata?.compactBoundary === true &&
127
+ resumed.getInitialMessages().at(-1)?.blocks.some((block) => block.type === "text" && block.text === "assistant after second compact") === true &&
128
+ displayMessages.length === messages.length + 4 &&
129
+ displayMessages.some((message) => message.role === "assistant" && message.blocks.some((block) => block.type === "text" && block.text === "assistant before compact")) &&
130
+ displayMessages.some((message) => message.role === "assistant" && message.blocks.some((block) => block.type === "text" && block.text === "assistant between compacts")) &&
131
+ displayMessages.some((message) => message.role === "assistant" && message.blocks.some((block) => block.type === "text" && block.text === "assistant after second compact")) &&
132
+ displayCompactions.length === 2 &&
133
+ displayCompactions[0]?.report?.summary === "persisted compact summary" &&
134
+ displayCompactions[1]?.report?.summary === "second compact summary" &&
135
+ displayEntries.findIndex((entry) => entry.type === "compact") > displayEntries.findIndex((entry) => entry.type === "message" && entry.message.blocks.some((block) => block.type === "text" && block.text === "assistant before compact")) &&
136
+ displayEntries.findIndex((entry) => entry.type === "message" && entry.message.blocks.some((block) => block.type === "text" && block.text === "assistant between compacts")) > displayEntries.findIndex((entry) => entry.type === "compact") &&
137
+ displayCompactionIndexes.at(-1) < displayEntries.findIndex((entry) => entry.type === "message" && entry.message.blocks.some((block) => block.type === "text" && block.text === "assistant after second compact")) &&
138
+ resumed.snapshot().lastCompaction?.summary === "second compact summary" &&
139
+ resumed.snapshot().lastCompaction?.continuationState === "second compact state" &&
55
140
  resumed.snapshot().title === "Refined Smoke Session Title" &&
56
141
  resumed.snapshot().titleKind === "refinement" &&
57
142
  resumed.snapshot().hasInitialTitle &&
58
143
  resumed.snapshot().hasTitleRefinement &&
59
144
  resumed.snapshot().fastMode === true &&
145
+ resumed.snapshot().contextWindowTokens === 256000 &&
146
+ resumed.getContextWindowTokens() === 256000 &&
60
147
  latest.snapshot().sessionId === sessionId &&
61
- latest.snapshot().resumedMessages === messages.length + 1 &&
148
+ latest.snapshot().resumedMessages === 3 &&
149
+ latest.snapshot().lastCompaction?.charsFreed === 2345 &&
62
150
  latest.snapshot().title === "Refined Smoke Session Title" &&
63
151
  latest.snapshot().titleKind === "refinement" &&
64
152
  listed.length === 1 &&
65
153
  listed[0]?.sessionId === sessionId &&
66
154
  listed[0]?.title === "Refined Smoke Session Title" &&
67
155
  resumedBudget.records.length === 0 &&
68
- resumedBudget.messages.some((message) => message.blocks.some((block) => block.type === "tool_result" && String(block.output).startsWith(PERSISTED_OUTPUT_TAG))) &&
156
+ resumedBudget.messages.every((message) => message.role !== "tool_result") &&
69
157
  exportResult.bytes > 0 &&
70
158
  exportedMarkdown.includes("# Neo Session Export") &&
71
159
  exportedMarkdown.includes("system prompt smoke") &&
72
160
  exportedMarkdown.includes("## Transcript") &&
73
161
  exportedMarkdown.includes("Tool use ID: call_a") &&
74
- exportedMarkdown.includes("persisted visible reasoning") &&
162
+ exportedMarkdown.includes("persisted compact state") &&
163
+ recoveredTailMessagesBeforeAppend.length === 1 &&
164
+ recoveredTailMessagesBeforeAppend[0]?.blocks.some((block) => block.type === "text" && block.text === "durable before partial tail") === true &&
165
+ repairedTailText.endsWith("\n") &&
166
+ repairedTailText.trimEnd().split("\n").length === 1 &&
167
+ recoveredTailAgain.getInitialMessages().length === 2 &&
168
+ recoveredTailAgain.getInitialMessages()[1]?.blocks.some((block) => block.type === "text" && block.text === "durable after partial tail") === true &&
169
+ recoveredValidTail.getInitialMessages().length === 1 &&
170
+ repairedValidText.endsWith("\n") &&
171
+ corruptMiddleRejected &&
172
+ durabilitySessionsDeleted.every(Boolean) &&
75
173
  resetResume.snapshot().resumedMessages === 0 &&
174
+ resetResume.snapshot().lastCompaction === undefined &&
76
175
  resetResume.snapshot().fastMode === true &&
176
+ resetResume.snapshot().contextWindowTokens === 256000 &&
77
177
  deleted &&
78
178
  listedAfterDelete.length === 0;
79
- console.log(JSON.stringify({ ok, firstRecords: first.records.length, persistedBlocks: persistedBlocks.length, exportResult, resumed: resumed.snapshot(), latest: latest.snapshot(), listed, reset: resetResume.snapshot(), deleted, listedAfterDelete }, null, 2));
179
+ console.log(JSON.stringify({
180
+ ok,
181
+ firstRecords: first.records.length,
182
+ persistedBlocks: persistedBlocks.length,
183
+ exportResult,
184
+ resumed: resumed.snapshot(),
185
+ latest: latest.snapshot(),
186
+ listed,
187
+ durability: {
188
+ recoveredTailMessagesBeforeAppend: recoveredTailMessagesBeforeAppend.length,
189
+ repairedTailLines: repairedTailText.trimEnd().split("\n").length,
190
+ recoveredTailAgainMessages: recoveredTailAgain.getInitialMessages().length,
191
+ recoveredValidTailMessages: recoveredValidTail.getInitialMessages().length,
192
+ repairedValidEndsWithNewline: repairedValidText.endsWith("\n"),
193
+ corruptMiddleRejected,
194
+ durabilitySessionsDeleted,
195
+ },
196
+ reset: resetResume.snapshot(),
197
+ deleted,
198
+ listedAfterDelete,
199
+ }, null, 2));
80
200
  if (!ok)
81
201
  process.exitCode = 1;
82
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"smoke-session.js","sourceRoot":"","sources":["../../src/session/smoke-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAgB,MAAM,sBAAsB,CAAC;AAE3E,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,eAAe,CAAC;IAClC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3H,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CACxH,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACrF,KAAK,MAAM,OAAO,IAAI,QAAQ;QAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7D,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC1E,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IACpD,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC;IAC/D,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7H,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC;QACpD,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,MAAM;QACf,cAAc,EAAE;YACd,KAAK,EAAE,aAAa;YACpB,YAAY,EAAE,qBAAqB;YACnC,iBAAiB,EAAE,wCAAwC;YAC3D,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;YAChG,QAAQ,EAAE,CAAC,4BAA4B,CAAC;SACzC;QACD,kBAAkB,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxG,UAAU,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzG,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACxE,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtF,MAAM,EAAE,GACN,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC1B,eAAe,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAClE,OAAO,CAAC,QAAQ,EAAE,CAAC,eAAe,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC1D,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,6BAA6B,CAAC,CAAC;QACzJ,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,6BAA6B;QAC1D,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,KAAK,YAAY;QAC7C,OAAO,CAAC,QAAQ,EAAE,CAAC,eAAe;QAClC,OAAO,CAAC,QAAQ,EAAE,CAAC,kBAAkB;QACrC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,KAAK,IAAI;QACpC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,KAAK,SAAS;QACzC,MAAM,CAAC,QAAQ,EAAE,CAAC,eAAe,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC;QACzD,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,6BAA6B;QACzD,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,KAAK,YAAY;QAC5C,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,SAAS;QAClC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,6BAA6B;QAClD,aAAa,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAClC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACtC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CACtH;QACD,YAAY,CAAC,KAAK,GAAG,CAAC;QACtB,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjD,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAChD,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC1C,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAChD,gBAAgB,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACxD,WAAW,CAAC,QAAQ,EAAE,CAAC,eAAe,KAAK,CAAC;QAC5C,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,KAAK,IAAI;QACxC,OAAO;QACP,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC;IAEjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnQ,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO;QACL;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,WAAW;YACjB,SAAS;YACT,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5D,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;aAC5D;SACF;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,aAAa;YACnB,SAAS;YACT,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;SACzG;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,aAAa;YACnB,SAAS;YACT,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;SACxG;KACF,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"smoke-session.js","sourceRoot":"","sources":["../../src/session/smoke-session.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ async function main() {
14
14
  description: "Review a plan before implementation.",
15
15
  entrypoint: "Review the supplied plan for correctness and missing validation.",
16
16
  execution: "inline",
17
- allowedTools: ["plan"],
17
+ allowedTools: ["plan_update"],
18
18
  model: "gpt-5.5",
19
19
  effort: "high",
20
20
  },
@@ -72,19 +72,19 @@ async function main() {
72
72
  description: "Generated review workflow",
73
73
  entrypoint: "Review generated output and list risks.",
74
74
  execution: "inline",
75
- allowedTools: ["read"],
75
+ allowedTools: ["file_read"],
76
76
  },
77
77
  },
78
78
  }, fsContext);
79
79
  const createdSkill = await fsCatalog.get("generated-review");
80
80
  const guard = createSkillAwareCanUseTool(catalog);
81
- const allowedDecision = await guard({ id: "allowed", name: "plan", input: {} }, {
81
+ const allowedDecision = await guard({ id: "allowed", name: "plan_update", input: {} }, {
82
82
  ...context,
83
- options: { activeSkill: { name: "review-plan", allowedTools: ["plan"] } },
83
+ options: { activeSkill: { name: "review-plan", allowedTools: ["plan_update"] } },
84
84
  });
85
85
  const deniedDecision = await guard({ id: "denied", name: "exec", input: {} }, {
86
86
  ...context,
87
- options: { activeSkill: { name: "review-plan", allowedTools: ["plan"] } },
87
+ options: { activeSkill: { name: "review-plan", allowedTools: ["plan_update"] } },
88
88
  });
89
89
  const inlineResult = inline.find((update) => update.message.blocks.some((block) => block.type === "tool_result"));
90
90
  const injected = inline.some((update) => update.message.metadata?.skill === "review-plan");
@@ -1 +1 @@
1
- {"version":3,"file":"smoke-skills.js","sourceRoot":"","sources":["../../src/skills/smoke-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smoke-skills.js","sourceRoot":"","sources":["../../src/skills/smoke-skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Tool, ToolResult } from "../tools/tool.js";
2
+ import { type TaskStore } from "./task-store.js";
3
+ export type SubagentToolName = "subagent_output" | "subagent_list" | "subagent_get" | "subagent_stop" | "subagent_message" | "subagent_resume";
4
+ export interface SubagentOutputInput {
5
+ task_id: string;
6
+ block?: boolean;
7
+ timeout_ms?: number;
8
+ }
9
+ export interface SubagentIdInput {
10
+ task_id: string;
11
+ }
12
+ export interface SubagentMessageInput {
13
+ target: string;
14
+ message: string;
15
+ }
16
+ export interface SubagentResumeInput {
17
+ task_id: string;
18
+ directive?: string;
19
+ }
20
+ export type SubagentResumeHandler = (taskId: string, directive?: string) => Promise<{
21
+ ok: boolean;
22
+ error?: string;
23
+ }>;
24
+ export declare function createSubagentTools(taskStore?: TaskStore, resumeHandler?: SubagentResumeHandler): Tool<any>[];
25
+ export declare function createSubagentOutputTool(taskStore?: TaskStore): Tool<SubagentOutputInput>;
26
+ export declare function createSubagentListTool(taskStore?: TaskStore): Tool<Record<string, never>>;
27
+ export declare function createSubagentGetTool(taskStore?: TaskStore): Tool<SubagentIdInput>;
28
+ export declare function createSubagentStopTool(taskStore?: TaskStore): Tool<SubagentIdInput>;
29
+ export declare function createSubagentMessageTool(taskStore?: TaskStore): Tool<SubagentMessageInput>;
30
+ export declare function createSubagentResumeTool(taskStore?: TaskStore, resumeHandler?: SubagentResumeHandler): Tool<SubagentResumeInput>;
31
+ export declare function asToolResult(output: unknown): ToolResult;
@@ -1,18 +1,17 @@
1
1
  import { globalTaskStore, isTerminalStatus } from "./task-store.js";
2
- export function createTaskTools(taskStore = globalTaskStore, resumeHandler) {
2
+ export function createSubagentTools(taskStore = globalTaskStore, resumeHandler) {
3
3
  return [
4
- createTaskOutputTool(taskStore),
5
- createTaskListTool(taskStore),
6
- createTaskGetTool(taskStore),
7
- createTaskStopTool(taskStore),
8
- createSendMessageTool(taskStore),
9
- createTaskResumeTool(taskStore, resumeHandler),
4
+ createSubagentOutputTool(taskStore),
5
+ createSubagentListTool(taskStore),
6
+ createSubagentGetTool(taskStore),
7
+ createSubagentStopTool(taskStore),
8
+ createSubagentMessageTool(taskStore),
9
+ createSubagentResumeTool(taskStore, resumeHandler),
10
10
  ];
11
11
  }
12
- export function createTaskOutputTool(taskStore = globalTaskStore) {
12
+ export function createSubagentOutputTool(taskStore = globalTaskStore) {
13
13
  return {
14
- name: "TaskOutput",
15
- aliases: ["task_output"],
14
+ name: "subagent_output",
16
15
  description: "Read a background task output, optionally blocking until it reaches a terminal state.",
17
16
  inputSchema: {
18
17
  type: "object",
@@ -33,27 +32,26 @@ export function createTaskOutputTool(taskStore = globalTaskStore) {
33
32
  if (!task)
34
33
  return { ok: false, output: { error: `Unknown task: ${input.task_id}` } };
35
34
  if (input.block && !taskStore.isTerminal(task)) {
36
- options.onProgress?.({ toolName: "TaskOutput", message: `Waiting for task ${input.task_id}` });
35
+ options.onProgress?.({ toolName: "subagent_output", message: `Waiting for task ${input.task_id}` });
37
36
  await taskStore.waitForTerminal(input.task_id, { timeoutMs: input.timeout_ms ?? 30000, signal: context.abortSignal });
38
37
  }
39
38
  const latest = taskStore.get(input.task_id);
40
39
  if (!latest)
41
40
  return { ok: false, output: { error: `Unknown task: ${input.task_id}` } };
42
41
  if (!taskStore.isTerminal(latest)) {
43
- return { ok: true, output: formatTaskOutput(latest, "not_ready") };
42
+ return { ok: true, output: formatSubagentOutput(latest, "not_ready") };
44
43
  }
45
44
  taskStore.markNotified(latest.taskId);
46
- return { ok: true, output: formatTaskOutput(latest, "ready") };
45
+ return { ok: true, output: formatSubagentOutput(latest, "ready") };
47
46
  },
48
47
  mapResult(result) {
49
48
  return result.output;
50
49
  },
51
50
  };
52
51
  }
53
- export function createTaskListTool(taskStore = globalTaskStore) {
52
+ export function createSubagentListTool(taskStore = globalTaskStore) {
54
53
  return {
55
- name: "TaskList",
56
- aliases: ["task_list"],
54
+ name: "subagent_list",
57
55
  description: "List known background tasks and their current status.",
58
56
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
59
57
  metadata: { readOnly: true, concurrent: true, visible: true, searchHint: "list background tasks" },
@@ -65,10 +63,9 @@ export function createTaskListTool(taskStore = globalTaskStore) {
65
63
  },
66
64
  };
67
65
  }
68
- export function createTaskGetTool(taskStore = globalTaskStore) {
66
+ export function createSubagentGetTool(taskStore = globalTaskStore) {
69
67
  return {
70
- name: "TaskGet",
71
- aliases: ["task_get"],
68
+ name: "subagent_get",
72
69
  description: "Get a background task detail by task id.",
73
70
  inputSchema: {
74
71
  type: "object",
@@ -86,10 +83,9 @@ export function createTaskGetTool(taskStore = globalTaskStore) {
86
83
  },
87
84
  };
88
85
  }
89
- export function createTaskStopTool(taskStore = globalTaskStore) {
86
+ export function createSubagentStopTool(taskStore = globalTaskStore) {
90
87
  return {
91
- name: "TaskStop",
92
- aliases: ["task_stop"],
88
+ name: "subagent_stop",
93
89
  description: "Stop a background task and mark it killed.",
94
90
  inputSchema: {
95
91
  type: "object",
@@ -106,15 +102,14 @@ export function createTaskStopTool(taskStore = globalTaskStore) {
106
102
  if (!task)
107
103
  return { ok: false, output: { error: `Unknown task: ${input.task_id}` } };
108
104
  if (!isTerminalStatus(task.status))
109
- taskStore.kill(input.task_id, "Stopped by TaskStop");
105
+ taskStore.kill(input.task_id, "Stopped by subagent_stop");
110
106
  return { ok: true, output: taskDetail(taskStore.get(input.task_id) ?? task) };
111
107
  },
112
108
  };
113
109
  }
114
- export function createSendMessageTool(taskStore = globalTaskStore) {
110
+ export function createSubagentMessageTool(taskStore = globalTaskStore) {
115
111
  return {
116
- name: "SendMessage",
117
- aliases: ["send_message"],
112
+ name: "subagent_message",
118
113
  description: "Queue a message for a named or identified background agent. Stopped-agent resume is represented as queued state in this scaffold.",
119
114
  inputSchema: {
120
115
  type: "object",
@@ -145,10 +140,9 @@ export function createSendMessageTool(taskStore = globalTaskStore) {
145
140
  },
146
141
  };
147
142
  }
148
- export function createTaskResumeTool(taskStore = globalTaskStore, resumeHandler) {
143
+ export function createSubagentResumeTool(taskStore = globalTaskStore, resumeHandler) {
149
144
  return {
150
- name: "TaskResume",
151
- aliases: ["task_resume"],
145
+ name: "subagent_resume",
152
146
  description: "Resume a completed, failed, or killed background agent task with an optional new directive. The agent re-launches with its prior conversation context intact.",
153
147
  inputSchema: {
154
148
  type: "object",
@@ -173,7 +167,7 @@ export function createTaskResumeTool(taskStore = globalTaskStore, resumeHandler)
173
167
  return { ok: false, output: { error: `Task ${input.task_id} is still ${task.status}; stop it first or wait for completion.` } };
174
168
  }
175
169
  if (!resumeHandler) {
176
- return { ok: false, output: { error: "TaskResume handler is not configured in this runtime." } };
170
+ return { ok: false, output: { error: "subagent_resume handler is not configured in this runtime." } };
177
171
  }
178
172
  const result = await resumeHandler(input.task_id, input.directive);
179
173
  if (!result.ok)
@@ -190,7 +184,7 @@ export function createTaskResumeTool(taskStore = globalTaskStore, resumeHandler)
190
184
  },
191
185
  };
192
186
  }
193
- function formatTaskOutput(task, retrievalStatus) {
187
+ function formatSubagentOutput(task, retrievalStatus) {
194
188
  const output = task.result?.content ?? task.error ?? task.progress.lastText ?? "";
195
189
  return [
196
190
  `<retrieval_status>${retrievalStatus}</retrieval_status>`,
@@ -229,4 +223,4 @@ function escapeXml(value) {
229
223
  export function asToolResult(output) {
230
224
  return { ok: true, output };
231
225
  }
232
- //# sourceMappingURL=task-tools.js.map
226
+ //# sourceMappingURL=subagent-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-tools.js","sourceRoot":"","sources":["../../src/tasks/subagent-tools.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  export const editTool = {
4
- name: "edit",
5
- aliases: ["replace"],
4
+ name: "file_edit",
6
5
  description: "Modify a text file by replacing oldString with newString. oldString must match uniquely unless replaceAll is true; LF/CRLF line-ending differences and straight/curly quote differences are tolerated. Use oldString='' only to create a new file.",
7
6
  inputSchema: {
8
7
  type: "object",
@@ -45,6 +44,7 @@ export const editTool = {
45
44
  },
46
45
  async call(input, context) {
47
46
  const target = resolveTarget(context, input.path);
47
+ emitFileStep(context, "file_edit", target, "read", `读取 ${path.basename(target)}`);
48
48
  const current = await readExistingText(target);
49
49
  if (!current.exists) {
50
50
  if (input.oldString !== "") {
@@ -86,6 +86,7 @@ export const editTool = {
86
86
  }
87
87
  const actualOldString = match.actual;
88
88
  const matches = countOccurrences(current.content, actualOldString);
89
+ emitFileStep(context, "file_edit", target, "match", `定位 ${matches} 处匹配`);
89
90
  if (matches > 1 && !input.replaceAll) {
90
91
  return {
91
92
  ok: false,
@@ -100,7 +101,8 @@ export const editTool = {
100
101
  const after = input.replaceAll
101
102
  ? current.content.replaceAll(actualOldString, actualNewString)
102
103
  : replaceOne(current.content, actualOldString, actualNewString);
103
- return writeUpdatedText({
104
+ emitFileStep(context, "file_edit", target, "write", `写入 ${path.basename(target)}`);
105
+ const result = await writeUpdatedText({
104
106
  target,
105
107
  before: current.content,
106
108
  after,
@@ -109,11 +111,12 @@ export const editTool = {
109
111
  encoding: current.encoding,
110
112
  lineEnding: current.lineEnding,
111
113
  });
114
+ emitFileStep(context, "file_edit", target, "completed", `完成 ${input.replaceAll ? matches : 1} 处替换`);
115
+ return result;
112
116
  },
113
117
  };
114
118
  export const writeTool = {
115
- name: "write",
116
- aliases: ["overwrite"],
119
+ name: "file_write",
117
120
  description: "Create or overwrite a text file with the provided full content.",
118
121
  inputSchema: {
119
122
  type: "object",
@@ -150,8 +153,10 @@ export const writeTool = {
150
153
  },
151
154
  async call(input, context) {
152
155
  const target = resolveTarget(context, input.path);
156
+ emitFileStep(context, "file_write", target, "read", `检查 ${path.basename(target)}`);
153
157
  const current = await readExistingText(target);
154
- return writeUpdatedText({
158
+ emitFileStep(context, "file_write", target, "write", `写入 ${path.basename(target)}`);
159
+ const result = await writeUpdatedText({
155
160
  target,
156
161
  before: current.exists ? current.content : "",
157
162
  after: input.content,
@@ -160,8 +165,21 @@ export const writeTool = {
160
165
  encoding: current.exists ? current.encoding : "utf8",
161
166
  lineEnding: current.exists ? current.lineEnding : detectLineEnding(input.content),
162
167
  });
168
+ emitFileStep(context, "file_write", target, "completed", `完成写入 ${Buffer.byteLength(input.content)} 字节`);
169
+ return result;
163
170
  },
164
171
  };
172
+ function emitFileStep(context, toolName, target, phase, message) {
173
+ context.emit({
174
+ toolName,
175
+ message,
176
+ channel: "item",
177
+ operation: "upsert",
178
+ key: `${target}:${phase}`,
179
+ phase,
180
+ data: { path: target },
181
+ });
182
+ }
165
183
  async function writeUpdatedText(input) {
166
184
  await fs.mkdir(path.dirname(input.target), { recursive: true });
167
185
  await fs.writeFile(input.target, encodeText(input.after, input.encoding));