hoomanjs 1.29.2 → 1.30.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 (273) hide show
  1. package/README.md +216 -69
  2. package/dist/acp/acp-agent.d.ts +5 -5
  3. package/dist/acp/acp-agent.js +55 -54
  4. package/dist/acp/acp-agent.js.map +1 -1
  5. package/dist/acp/approvals.d.ts +3 -3
  6. package/dist/acp/approvals.js +73 -115
  7. package/dist/acp/approvals.js.map +1 -1
  8. package/dist/acp/sessions/options.js +11 -25
  9. package/dist/acp/sessions/options.js.map +1 -1
  10. package/dist/acp/utils/tool-kind.js +1 -5
  11. package/dist/acp/utils/tool-kind.js.map +1 -1
  12. package/dist/chat/app.d.ts +5 -1
  13. package/dist/chat/app.js +322 -202
  14. package/dist/chat/app.js.map +1 -1
  15. package/dist/chat/approvals.d.ts +4 -3
  16. package/dist/chat/approvals.js +11 -45
  17. package/dist/chat/approvals.js.map +1 -1
  18. package/dist/chat/components/ChatMessage.d.ts +1 -2
  19. package/dist/chat/components/ChatMessage.js +4 -5
  20. package/dist/chat/components/ChatMessage.js.map +1 -1
  21. package/dist/chat/components/EmptyChatBanner.js +2 -3
  22. package/dist/chat/components/EmptyChatBanner.js.map +1 -1
  23. package/dist/chat/components/StatusBar.js +6 -2
  24. package/dist/chat/components/StatusBar.js.map +1 -1
  25. package/dist/chat/components/ThoughtEvent.d.ts +6 -0
  26. package/dist/chat/components/ThoughtEvent.js +30 -0
  27. package/dist/chat/components/ThoughtEvent.js.map +1 -0
  28. package/dist/chat/components/ToolEvent.js +1 -1
  29. package/dist/chat/components/ToolEvent.js.map +1 -1
  30. package/dist/chat/components/Transcript.d.ts +7 -2
  31. package/dist/chat/components/Transcript.js +6 -2
  32. package/dist/chat/components/Transcript.js.map +1 -1
  33. package/dist/chat/components/markdown/BlockRenderer.js +7 -7
  34. package/dist/chat/components/markdown/BlockRenderer.js.map +1 -1
  35. package/dist/chat/components/markdown/MarkdownMessage.js +1 -1
  36. package/dist/chat/components/markdown/MarkdownMessage.js.map +1 -1
  37. package/dist/chat/components/shared.js +2 -0
  38. package/dist/chat/components/shared.js.map +1 -1
  39. package/dist/chat/index.d.ts +4 -0
  40. package/dist/chat/index.js +17 -3
  41. package/dist/chat/index.js.map +1 -1
  42. package/dist/chat/steering.d.ts +20 -0
  43. package/dist/chat/steering.js +67 -0
  44. package/dist/chat/steering.js.map +1 -0
  45. package/dist/chat/types.d.ts +5 -1
  46. package/dist/cli.js +91 -13
  47. package/dist/cli.js.map +1 -1
  48. package/dist/configure/app.d.ts +1 -1
  49. package/dist/configure/app.js +581 -303
  50. package/dist/configure/app.js.map +1 -1
  51. package/dist/configure/components/MenuScreen.d.ts +4 -2
  52. package/dist/configure/components/MenuScreen.js +33 -6
  53. package/dist/configure/components/MenuScreen.js.map +1 -1
  54. package/dist/configure/components/SelectMenuItem.d.ts +1 -0
  55. package/dist/configure/components/SelectMenuItem.js +19 -10
  56. package/dist/configure/components/SelectMenuItem.js.map +1 -1
  57. package/dist/configure/index.js +4 -2
  58. package/dist/configure/index.js.map +1 -1
  59. package/dist/configure/types.d.ts +14 -12
  60. package/dist/configure/utils.d.ts +2 -0
  61. package/dist/configure/utils.js +21 -2
  62. package/dist/configure/utils.js.map +1 -1
  63. package/dist/core/agent/index.d.ts +3 -3
  64. package/dist/core/agent/index.js +20 -25
  65. package/dist/core/agent/index.js.map +1 -1
  66. package/dist/core/agent/mode-aware-tool-registry.js +2 -1
  67. package/dist/core/agent/mode-aware-tool-registry.js.map +1 -1
  68. package/dist/core/approvals/intervention.d.ts +34 -0
  69. package/dist/core/approvals/intervention.js +94 -0
  70. package/dist/core/approvals/intervention.js.map +1 -0
  71. package/dist/core/config.d.ts +49 -28
  72. package/dist/core/config.js +85 -26
  73. package/dist/core/config.js.map +1 -1
  74. package/dist/core/context/index.d.ts +11 -2
  75. package/dist/core/context/index.js +54 -4
  76. package/dist/core/context/index.js.map +1 -1
  77. package/dist/core/context/model-extractor.d.ts +13 -0
  78. package/dist/core/context/model-extractor.js +98 -0
  79. package/dist/core/context/model-extractor.js.map +1 -0
  80. package/dist/core/index.d.ts +6 -2
  81. package/dist/core/index.js +6 -1
  82. package/dist/core/index.js.map +1 -1
  83. package/dist/core/mcp/config.d.ts +28 -0
  84. package/dist/core/mcp/index.d.ts +5 -3
  85. package/dist/core/mcp/index.js +4 -2
  86. package/dist/core/mcp/index.js.map +1 -1
  87. package/dist/core/mcp/manager.d.ts +14 -1
  88. package/dist/core/mcp/manager.js +76 -4
  89. package/dist/core/mcp/manager.js.map +1 -1
  90. package/dist/core/mcp/oauth/callback-server.d.ts +16 -0
  91. package/dist/core/mcp/oauth/callback-server.js +134 -0
  92. package/dist/core/mcp/oauth/callback-server.js.map +1 -0
  93. package/dist/core/mcp/oauth/identity.d.ts +9 -0
  94. package/dist/core/mcp/oauth/identity.js +31 -0
  95. package/dist/core/mcp/oauth/identity.js.map +1 -0
  96. package/dist/core/mcp/oauth/index.d.ts +11 -0
  97. package/dist/core/mcp/oauth/index.js +15 -0
  98. package/dist/core/mcp/oauth/index.js.map +1 -0
  99. package/dist/core/mcp/oauth/provider.d.ts +43 -0
  100. package/dist/core/mcp/oauth/provider.js +203 -0
  101. package/dist/core/mcp/oauth/provider.js.map +1 -0
  102. package/dist/core/mcp/oauth/service.d.ts +29 -0
  103. package/dist/core/mcp/oauth/service.js +139 -0
  104. package/dist/core/mcp/oauth/service.js.map +1 -0
  105. package/dist/core/mcp/oauth/store.d.ts +14 -0
  106. package/dist/core/mcp/oauth/store.js +86 -0
  107. package/dist/core/mcp/oauth/store.js.map +1 -0
  108. package/dist/core/mcp/oauth/types.d.ts +87 -0
  109. package/dist/core/mcp/oauth/types.js +45 -0
  110. package/dist/core/mcp/oauth/types.js.map +1 -0
  111. package/dist/core/mcp/types.d.ts +56 -0
  112. package/dist/core/mcp/types.js +3 -0
  113. package/dist/core/mcp/types.js.map +1 -1
  114. package/dist/core/memory/file-store.d.ts +24 -0
  115. package/dist/core/memory/file-store.js +151 -0
  116. package/dist/core/memory/file-store.js.map +1 -0
  117. package/dist/core/memory/index.d.ts +2 -5
  118. package/dist/core/memory/index.js +2 -3
  119. package/dist/core/memory/index.js.map +1 -1
  120. package/dist/core/memory/runtime.d.ts +4 -0
  121. package/dist/core/memory/runtime.js +37 -0
  122. package/dist/core/memory/runtime.js.map +1 -0
  123. package/dist/core/models/anthropic.js +24 -1
  124. package/dist/core/models/anthropic.js.map +1 -1
  125. package/dist/core/models/moonshot.js +33 -1
  126. package/dist/core/models/moonshot.js.map +1 -1
  127. package/dist/core/modes/definitions.d.ts +19 -0
  128. package/dist/core/modes/definitions.js +99 -0
  129. package/dist/core/modes/definitions.js.map +1 -0
  130. package/dist/core/modes/index.d.ts +3 -0
  131. package/dist/core/modes/index.js +4 -0
  132. package/dist/core/modes/index.js.map +1 -0
  133. package/dist/core/modes/registry.d.ts +9 -0
  134. package/dist/core/modes/registry.js +57 -0
  135. package/dist/core/modes/registry.js.map +1 -0
  136. package/dist/core/modes/schema.d.ts +5 -0
  137. package/dist/core/modes/schema.js +6 -0
  138. package/dist/core/modes/schema.js.map +1 -0
  139. package/dist/core/prompts/agents/research.md +8 -8
  140. package/dist/core/prompts/bundled.d.ts +3 -0
  141. package/dist/core/prompts/bundled.js +14 -0
  142. package/dist/core/prompts/bundled.js.map +1 -0
  143. package/dist/core/prompts/environment.d.ts +0 -1
  144. package/dist/core/prompts/environment.js +0 -2
  145. package/dist/core/prompts/environment.js.map +1 -1
  146. package/dist/core/prompts/index.d.ts +1 -4
  147. package/dist/core/prompts/index.js +1 -7
  148. package/dist/core/prompts/index.js.map +1 -1
  149. package/dist/core/prompts/modes/agent.md +3 -0
  150. package/dist/core/prompts/modes/ask.md +5 -3
  151. package/dist/core/prompts/modes/plan.md +2 -2
  152. package/dist/core/prompts/session-mode-appendix.d.ts +3 -9
  153. package/dist/core/prompts/session-mode-appendix.js +32 -69
  154. package/dist/core/prompts/session-mode-appendix.js.map +1 -1
  155. package/dist/core/prompts/static/environment.md +2 -2
  156. package/dist/core/prompts/static/init.md +25 -0
  157. package/dist/core/prompts/static/memory.md +9 -123
  158. package/dist/core/prompts/static/planning.md +1 -1
  159. package/dist/core/prompts/static/skills.md +6 -5
  160. package/dist/core/prompts/static/subagents.md +2 -2
  161. package/dist/core/prompts/static/web-search.md +2 -1
  162. package/dist/core/prompts/system.js +8 -22
  163. package/dist/core/prompts/system.js.map +1 -1
  164. package/dist/core/skills/built-in/hooman-config/SKILL.md +105 -32
  165. package/dist/core/skills/built-in/hooman-skills/SKILL.md +1 -1
  166. package/dist/core/skills/index.d.ts +1 -0
  167. package/dist/core/skills/index.js +1 -0
  168. package/dist/core/skills/index.js.map +1 -1
  169. package/dist/core/skills/plugin.d.ts +7 -0
  170. package/dist/core/skills/plugin.js +40 -0
  171. package/dist/core/skills/plugin.js.map +1 -0
  172. package/dist/core/state/agent-app-state.d.ts +1 -1
  173. package/dist/core/state/agent-app-state.js +1 -1
  174. package/dist/core/state/session-mode.d.ts +2 -9
  175. package/dist/core/state/session-mode.js +4 -12
  176. package/dist/core/state/session-mode.js.map +1 -1
  177. package/dist/core/state/tool-approvals.d.ts +4 -8
  178. package/dist/core/state/tool-approvals.js +14 -76
  179. package/dist/core/state/tool-approvals.js.map +1 -1
  180. package/dist/core/subagents/index.d.ts +3 -0
  181. package/dist/core/subagents/index.js +4 -0
  182. package/dist/core/subagents/index.js.map +1 -0
  183. package/dist/core/subagents/research.d.ts +16 -0
  184. package/dist/core/subagents/research.js +58 -0
  185. package/dist/core/subagents/research.js.map +1 -0
  186. package/dist/core/{agents → subagents}/runner.d.ts +6 -5
  187. package/dist/core/{agents → subagents}/runner.js +8 -10
  188. package/dist/core/subagents/runner.js.map +1 -0
  189. package/dist/core/{agents/tools.d.ts → subagents/tool.d.ts} +6 -6
  190. package/dist/core/{agents/tools.js → subagents/tool.js} +14 -16
  191. package/dist/core/subagents/tool.js.map +1 -0
  192. package/dist/core/tools/plan.js +2 -6
  193. package/dist/core/tools/plan.js.map +1 -1
  194. package/dist/core/tools/time.js +1 -1
  195. package/dist/core/tools/time.js.map +1 -1
  196. package/dist/core/utils/browser.d.ts +1 -0
  197. package/dist/core/utils/browser.js +25 -0
  198. package/dist/core/utils/browser.js.map +1 -0
  199. package/dist/core/utils/paths.d.ts +2 -4
  200. package/dist/core/utils/paths.js +2 -4
  201. package/dist/core/utils/paths.js.map +1 -1
  202. package/dist/daemon/approvals.d.ts +2 -2
  203. package/dist/daemon/approvals.js +51 -56
  204. package/dist/daemon/approvals.js.map +1 -1
  205. package/dist/daemon/index.js +9 -6
  206. package/dist/daemon/index.js.map +1 -1
  207. package/dist/exec/approvals.d.ts +2 -4
  208. package/dist/exec/approvals.js +16 -48
  209. package/dist/exec/approvals.js.map +1 -1
  210. package/dist/index.d.ts +13 -18
  211. package/dist/index.js +9 -11
  212. package/dist/index.js.map +1 -1
  213. package/package.json +5 -18
  214. package/dist/chat/components/ScrollView.d.ts +0 -106
  215. package/dist/chat/components/ScrollView.js +0 -80
  216. package/dist/chat/components/ScrollView.js.map +0 -1
  217. package/dist/chat/components/TranscriptViewport.d.ts +0 -9
  218. package/dist/chat/components/TranscriptViewport.js +0 -124
  219. package/dist/chat/components/TranscriptViewport.js.map +0 -1
  220. package/dist/core/agents/definitions.d.ts +0 -12
  221. package/dist/core/agents/definitions.js +0 -20
  222. package/dist/core/agents/definitions.js.map +0 -1
  223. package/dist/core/agents/index.d.ts +0 -4
  224. package/dist/core/agents/index.js +0 -5
  225. package/dist/core/agents/index.js.map +0 -1
  226. package/dist/core/agents/registry.d.ts +0 -5
  227. package/dist/core/agents/registry.js +0 -84
  228. package/dist/core/agents/registry.js.map +0 -1
  229. package/dist/core/agents/runner.js.map +0 -1
  230. package/dist/core/agents/tools.js.map +0 -1
  231. package/dist/core/inference/embedder.d.ts +0 -26
  232. package/dist/core/inference/embedder.js +0 -85
  233. package/dist/core/inference/embedder.js.map +0 -1
  234. package/dist/core/inference/index.d.ts +0 -9
  235. package/dist/core/inference/index.js +0 -13
  236. package/dist/core/inference/index.js.map +0 -1
  237. package/dist/core/inference/loader.d.ts +0 -16
  238. package/dist/core/inference/loader.js +0 -129
  239. package/dist/core/inference/loader.js.map +0 -1
  240. package/dist/core/inference/reranker.d.ts +0 -28
  241. package/dist/core/inference/reranker.js +0 -66
  242. package/dist/core/inference/reranker.js.map +0 -1
  243. package/dist/core/memory/brain.d.ts +0 -25
  244. package/dist/core/memory/brain.js +0 -137
  245. package/dist/core/memory/brain.js.map +0 -1
  246. package/dist/core/memory/database.d.ts +0 -4
  247. package/dist/core/memory/database.js +0 -87
  248. package/dist/core/memory/database.js.map +0 -1
  249. package/dist/core/memory/tools.d.ts +0 -16
  250. package/dist/core/memory/tools.js +0 -110
  251. package/dist/core/memory/tools.js.map +0 -1
  252. package/dist/core/memory/types.d.ts +0 -11
  253. package/dist/core/memory/types.js +0 -2
  254. package/dist/core/memory/types.js.map +0 -1
  255. package/dist/core/prompts/skills.d.ts +0 -15
  256. package/dist/core/prompts/skills.js +0 -92
  257. package/dist/core/prompts/skills.js.map +0 -1
  258. package/dist/core/prompts/static/wiki.md +0 -25
  259. package/dist/core/wiki/converters.d.ts +0 -12
  260. package/dist/core/wiki/converters.js +0 -73
  261. package/dist/core/wiki/converters.js.map +0 -1
  262. package/dist/core/wiki/database.d.ts +0 -39
  263. package/dist/core/wiki/database.js +0 -177
  264. package/dist/core/wiki/database.js.map +0 -1
  265. package/dist/core/wiki/index.d.ts +0 -7
  266. package/dist/core/wiki/index.js +0 -5
  267. package/dist/core/wiki/index.js.map +0 -1
  268. package/dist/core/wiki/storage.d.ts +0 -38
  269. package/dist/core/wiki/storage.js +0 -206
  270. package/dist/core/wiki/storage.js.map +0 -1
  271. package/dist/core/wiki/tools.d.ts +0 -5
  272. package/dist/core/wiki/tools.js +0 -32
  273. package/dist/core/wiki/tools.js.map +0 -1
@@ -3,18 +3,18 @@ import { readFile } from "node:fs/promises";
3
3
  import { Readable, Writable } from "node:stream";
4
4
  import { stdin, stdout } from "node:process";
5
5
  import { AgentSideConnection, ndJsonStream, PROTOCOL_VERSION, RequestError, } from "@agentclientprotocol/sdk";
6
- import { BeforeToolCallEvent, isModelStreamEvent, Message, } from "@strands-agents/sdk";
6
+ import { isModelStreamEvent, Message, } from "@strands-agents/sdk";
7
7
  import { bootstrap } from "../core/index.js";
8
8
  import { runWithCwd } from "../core/utils/cwd-context.js";
9
9
  import { acpSessionsRootPath } from "./utils/paths.js";
10
10
  import { inferToolKind } from "./utils/tool-kind.js";
11
11
  import { toolResultToAcpContent } from "./utils/tool-result-content.js";
12
- import { createAcpToolApprovalHook } from "./approvals.js";
12
+ import { createAcpToolApprovalIntervention } from "./approvals.js";
13
13
  import { replayConversationHistory } from "./sessions/replay.js";
14
14
  import { applySessionConfigOption, buildSessionConfigOptions, HOOMAN_SESSION_MODE_CONFIG_ID, HOOMAN_YOLO_CONFIG_ID, } from "./sessions/options.js";
15
15
  import { applySessionMode } from "../core/agent/sync-tool-registry-mode.js";
16
16
  import { copyAgentAppState } from "../core/state/agent-app-state.js";
17
- import { getModeState, normalizeSessionMode, } from "../core/state/session-mode.js";
17
+ import { getModeState } from "../core/state/session-mode.js";
18
18
  import { ENTER_PLAN_MODE_TOOL, EXIT_PLAN_MODE_TOOL, } from "../core/state/tool-approvals.js";
19
19
  import { isYoloEnabled } from "../core/state/yolo.js";
20
20
  import { extractAcpClientSystemPrompt } from "./meta/system-prompt.js";
@@ -24,8 +24,9 @@ import { acpPromptEchoText, acpPromptToInvokeArgs } from "./prompt-invoke.js";
24
24
  import { createSessionConfig, } from "../core/session-config.js";
25
25
  import { normalizeAcpSessionMcpServers } from "./mcp-servers.js";
26
26
  import { consumeExitRequest, EXIT_REQUESTED_CODE, } from "../core/state/exit-request.js";
27
+ import { flushAgentMemory, runWithAgentMemoryScope, } from "../core/memory/index.js";
27
28
  import { listStoredSessionIds, loadSessionMessages, patchSessionMeta, readSessionMeta, saveSessionMessages, toSessionInfo, writeSessionMeta, } from "./sessions/store.js";
28
- const DEFAULT_MODE_ID = "default";
29
+ const DEFAULT_MODE_ID = "agent";
29
30
  const LIST_PAGE_SIZE = 40;
30
31
  /** Fallback when a session record is missing (never mutate). */
31
32
  const EMPTY_STREAMED_TOOL_CALL_IDS = new Set();
@@ -246,6 +247,10 @@ export class AcpAgent {
246
247
  const { config: bootConfig, agent, mcp: { manager }, } = await bootstrap("acp", {
247
248
  userId: bootstrapUserId,
248
249
  sessionId,
250
+ createInterventions: () => [
251
+ createAcpToolApprovalIntervention(this.#connection, sessionId, () => this.#sessions.get(sessionId)?.streamedToolCallIds ??
252
+ EMPTY_STREAMED_TOOL_CALL_IDS),
253
+ ],
249
254
  acp: {
250
255
  mcpServers,
251
256
  ...(clientSystemPrompt ? { systemPrompt: clientSystemPrompt } : {}),
@@ -253,15 +258,12 @@ export class AcpAgent {
253
258
  }, false, createSessionConfig());
254
259
  const config = bootConfig;
255
260
  const availableModeIds = new Set([DEFAULT_MODE_ID]);
256
- const hookOff = agent.addHook(BeforeToolCallEvent, createAcpToolApprovalHook(this.#connection, sessionId, () => this.#sessions.get(sessionId)?.streamedToolCallIds ??
257
- EMPTY_STREAMED_TOOL_CALL_IDS));
258
261
  this.#sessions.set(sessionId, {
259
262
  cwd: params.cwd,
260
263
  agent,
261
264
  config,
262
265
  currentModeId: DEFAULT_MODE_ID,
263
266
  availableModeIds,
264
- hookOff,
265
267
  mcpDisconnect: async () => {
266
268
  try {
267
269
  await manager.disconnect();
@@ -321,7 +323,11 @@ export class AcpAgent {
321
323
  userId: bootstrapUserId,
322
324
  sessionId: params.sessionId,
323
325
  yolo: existing.yolo === true,
324
- sessionMode: normalizeSessionMode(existing.sessionMode),
326
+ sessionMode: existing.sessionMode ?? "agent",
327
+ createInterventions: () => [
328
+ createAcpToolApprovalIntervention(this.#connection, params.sessionId, () => this.#sessions.get(params.sessionId)?.streamedToolCallIds ??
329
+ EMPTY_STREAMED_TOOL_CALL_IDS),
330
+ ],
325
331
  acp: {
326
332
  mcpServers,
327
333
  ...(clientSystemPrompt ? { systemPrompt: clientSystemPrompt } : {}),
@@ -335,15 +341,12 @@ export class AcpAgent {
335
341
  }
336
342
  await replayConversationHistory(this.#connection, params.sessionId, agent.messages);
337
343
  const availableModeIds = new Set([DEFAULT_MODE_ID]);
338
- const hookOff = agent.addHook(BeforeToolCallEvent, createAcpToolApprovalHook(this.#connection, params.sessionId, () => this.#sessions.get(params.sessionId)?.streamedToolCallIds ??
339
- EMPTY_STREAMED_TOOL_CALL_IDS));
340
344
  this.#sessions.set(params.sessionId, {
341
345
  cwd: params.cwd,
342
346
  agent,
343
347
  config,
344
348
  currentModeId: DEFAULT_MODE_ID,
345
349
  availableModeIds,
346
- hookOff,
347
350
  mcpDisconnect: async () => {
348
351
  try {
349
352
  await manager.disconnect();
@@ -413,6 +416,10 @@ export class AcpAgent {
413
416
  sessionId,
414
417
  yolo: isYoloEnabled(rec.agent),
415
418
  sessionMode: getModeState(rec.agent).mode,
419
+ createInterventions: () => [
420
+ createAcpToolApprovalIntervention(this.#connection, sessionId, () => this.#sessions.get(sessionId)?.streamedToolCallIds ??
421
+ EMPTY_STREAMED_TOOL_CALL_IDS),
422
+ ],
416
423
  acp: {
417
424
  mcpServers,
418
425
  ...(meta.systemPrompt ? { systemPrompt: meta.systemPrompt } : {}),
@@ -425,13 +432,10 @@ export class AcpAgent {
425
432
  }
426
433
  copyAgentAppState(rec.agent, agent);
427
434
  applySessionMode(agent);
428
- const hookOff = agent.addHook(BeforeToolCallEvent, createAcpToolApprovalHook(this.#connection, sessionId, () => this.#sessions.get(sessionId)?.streamedToolCallIds ??
429
- EMPTY_STREAMED_TOOL_CALL_IDS));
430
- const oldHookOff = rec.hookOff;
435
+ const oldAgent = rec.agent;
431
436
  const oldMcpDisconnect = rec.mcpDisconnect;
432
437
  rec.agent = agent;
433
438
  rec.config = config;
434
- rec.hookOff = hookOff;
435
439
  rec.mcpDisconnect = async () => {
436
440
  try {
437
441
  await manager.disconnect();
@@ -441,12 +445,7 @@ export class AcpAgent {
441
445
  }
442
446
  };
443
447
  rec.agentStale = false;
444
- try {
445
- oldHookOff();
446
- }
447
- catch {
448
- /* ignore */
449
- }
448
+ await flushAgentMemory(oldAgent).catch(() => { });
450
449
  await oldMcpDisconnect();
451
450
  }
452
451
  async prompt(params) {
@@ -506,45 +505,47 @@ export class AcpAgent {
506
505
  turnAbort.signal,
507
506
  ]);
508
507
  try {
509
- await runWithCwd(rec.cwd, async () => {
510
- const stream = rec.agent.stream(invokeArgs, { cancelSignal });
511
- let iter = await stream.next();
512
- while (!iter.done) {
513
- const ev = iter.value;
514
- if (ev.type === "modelStreamUpdateEvent") {
515
- await this.#dispatchModelStreamUpdate(params.sessionId, ev, rec);
516
- }
517
- else if (ev.type === "afterToolCallEvent") {
518
- await this.#connection.sessionUpdate({
519
- sessionId: params.sessionId,
520
- update: {
521
- sessionUpdate: "tool_call_update",
522
- toolCallId: ev.toolUse.toolUseId,
523
- status: ev.result.status === "success" ? "completed" : "failed",
524
- rawOutput: ev.result.toJSON(),
525
- content: toolResultToAcpContent(ev.result),
526
- },
527
- });
528
- if (ev.result.status === "success" &&
529
- (ev.toolUse.name === ENTER_PLAN_MODE_TOOL ||
530
- ev.toolUse.name === EXIT_PLAN_MODE_TOOL)) {
531
- await patchSessionMeta(this.#acpRoot, params.sessionId, {
532
- sessionMode: getModeState(rec.agent).mode,
533
- });
508
+ await runWithAgentMemoryScope(rec.agent, async () => {
509
+ await runWithCwd(rec.cwd, async () => {
510
+ const stream = rec.agent.stream(invokeArgs, { cancelSignal });
511
+ let iter = await stream.next();
512
+ while (!iter.done) {
513
+ const ev = iter.value;
514
+ if (ev.type === "modelStreamUpdateEvent") {
515
+ await this.#dispatchModelStreamUpdate(params.sessionId, ev, rec);
516
+ }
517
+ else if (ev.type === "afterToolCallEvent") {
534
518
  await this.#connection.sessionUpdate({
535
519
  sessionId: params.sessionId,
536
520
  update: {
537
- sessionUpdate: "config_option_update",
538
- configOptions: buildSessionConfigOptions(rec.config, rec.agent),
521
+ sessionUpdate: "tool_call_update",
522
+ toolCallId: ev.toolUse.toolUseId,
523
+ status: ev.result.status === "success" ? "completed" : "failed",
524
+ rawOutput: ev.result.toJSON(),
525
+ content: toolResultToAcpContent(ev.result),
539
526
  },
540
527
  });
528
+ if (ev.result.status === "success" &&
529
+ (ev.toolUse.name === ENTER_PLAN_MODE_TOOL ||
530
+ ev.toolUse.name === EXIT_PLAN_MODE_TOOL)) {
531
+ await patchSessionMeta(this.#acpRoot, params.sessionId, {
532
+ sessionMode: getModeState(rec.agent).mode,
533
+ });
534
+ await this.#connection.sessionUpdate({
535
+ sessionId: params.sessionId,
536
+ update: {
537
+ sessionUpdate: "config_option_update",
538
+ configOptions: buildSessionConfigOptions(rec.config, rec.agent),
539
+ },
540
+ });
541
+ }
541
542
  }
543
+ else if (ev.type === "agentResultEvent") {
544
+ stopReason = toAcpStopReason(ev.result.stopReason);
545
+ }
546
+ iter = await stream.next();
542
547
  }
543
- else if (ev.type === "agentResultEvent") {
544
- stopReason = toAcpStopReason(ev.result.stopReason);
545
- }
546
- iter = await stream.next();
547
- }
548
+ });
548
549
  });
549
550
  }
550
551
  catch (err) {
@@ -717,7 +718,7 @@ export class AcpAgent {
717
718
  catch {
718
719
  /* ignore */
719
720
  }
720
- rec.hookOff();
721
+ await flushAgentMemory(rec.agent).catch(() => { });
721
722
  await rec.mcpDisconnect();
722
723
  this.#sessions.delete(sessionId);
723
724
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acp-agent.js","sourceRoot":"","sources":["../../src/acp/acp-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-agent.js","sourceRoot":"","sources":["../../src/acp/acp-agent.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AgentSideConnection } from "@agentclientprotocol/sdk";
2
- import { BeforeToolCallEvent, type HookCallback } from "@strands-agents/sdk";
3
- export declare function createAcpToolApprovalHook(connection: AgentSideConnection, sessionId: string,
2
+ import { HoomanToolApprovalIntervention } from "../core/approvals/intervention.js";
3
+ export declare function createAcpToolApprovalIntervention(connection: AgentSideConnection, sessionId: string,
4
4
  /** Tool calls already announced via model stream (`tool_call` pending). */
5
- streamPrimedToolCallIds?: () => ReadonlySet<string>): HookCallback<BeforeToolCallEvent>;
5
+ streamPrimedToolCallIds?: () => ReadonlySet<string>): HoomanToolApprovalIntervention;
@@ -1,146 +1,104 @@
1
- import { INTERNAL_ALWAYS_ALLOWED, allowToolForSession, isToolSessionAllowed, planModeWriteEditRejectionMessage, } from "../core/state/tool-approvals.js";
2
- import { isYoloEnabled } from "../core/state/yolo.js";
1
+ import { HoomanToolApprovalIntervention } from "../core/approvals/intervention.js";
3
2
  import { inferToolKind, toolDisplayTitle } from "./utils/tool-kind.js";
4
3
  import { toolCallLocationsFromInput } from "./utils/tool-locations.js";
5
- export function createAcpToolApprovalHook(connection, sessionId,
4
+ export function createAcpToolApprovalIntervention(connection, sessionId,
6
5
  /** Tool calls already announced via model stream (`tool_call` pending). */
7
6
  streamPrimedToolCallIds) {
8
- return async function onBeforeToolCall(event) {
9
- const name = event.toolUse.name;
10
- const title = toolDisplayTitle(name, event.tool);
11
- const kind = inferToolKind(name);
12
- const locations = toolCallLocationsFromInput(name, event.toolUse.input);
13
- const planReject = planModeWriteEditRejectionMessage(event.agent, name, event.toolUse.input);
14
- const primed = streamPrimedToolCallIds?.().has(event.toolUse.toolUseId) ?? false;
15
- if (primed) {
16
- await connection.sessionUpdate({
17
- sessionId,
18
- update: {
19
- sessionUpdate: "tool_call_update",
20
- toolCallId: event.toolUse.toolUseId,
21
- title,
22
- kind,
23
- status: "pending",
24
- rawInput: event.toolUse.input,
25
- ...(locations ? { locations } : {}),
26
- },
27
- });
28
- }
29
- else {
30
- await connection.sessionUpdate({
31
- sessionId,
32
- update: {
33
- sessionUpdate: "tool_call",
34
- toolCallId: event.toolUse.toolUseId,
35
- title,
36
- kind,
37
- status: "pending",
38
- rawInput: event.toolUse.input,
39
- ...(locations ? { locations } : {}),
40
- },
41
- });
42
- }
43
- if (planReject) {
44
- event.cancel = planReject;
45
- await connection.sessionUpdate({
46
- sessionId,
47
- update: {
48
- sessionUpdate: "tool_call_update",
49
- toolCallId: event.toolUse.toolUseId,
50
- status: "failed",
51
- rawOutput: { reason: "plan_mode_path_rejected", message: planReject },
52
- },
53
- });
54
- return;
55
- }
56
- if (isYoloEnabled(event.agent) ||
57
- INTERNAL_ALWAYS_ALLOWED.has(name) ||
58
- isToolSessionAllowed(event.agent, name, event.toolUse.input)) {
59
- await connection.sessionUpdate({
60
- sessionId,
61
- update: {
62
- sessionUpdate: "tool_call_update",
63
- toolCallId: event.toolUse.toolUseId,
64
- status: "in_progress",
65
- },
66
- });
67
- return;
68
- }
69
- const response = await connection.requestPermission({
7
+ async function sendPending(request, toolUseId) {
8
+ const desc = request.description?.trim();
9
+ const title = desc && desc.length <= 120
10
+ ? `${request.toolName}: ${desc}`
11
+ : request.toolName;
12
+ const kind = inferToolKind(request.toolName);
13
+ const locations = toolCallLocationsFromInput(request.toolName, request.input);
14
+ const primed = streamPrimedToolCallIds?.().has(toolUseId) ?? false;
15
+ await connection.sessionUpdate({
70
16
  sessionId,
71
- toolCall: {
72
- toolCallId: event.toolUse.toolUseId,
17
+ update: {
18
+ sessionUpdate: primed ? "tool_call_update" : "tool_call",
19
+ toolCallId: toolUseId,
73
20
  title,
74
21
  kind,
75
22
  status: "pending",
76
- rawInput: event.toolUse.input,
23
+ rawInput: request.input,
77
24
  ...(locations ? { locations } : {}),
78
25
  },
79
- options: [
80
- {
81
- kind: "allow_once",
82
- name: "Allow once",
83
- optionId: "allow_once",
84
- },
85
- {
86
- kind: "allow_always",
87
- name: "Always allow",
88
- optionId: "allow_always",
89
- },
90
- {
91
- kind: "reject_once",
92
- name: "Reject",
93
- optionId: "reject_once",
94
- },
95
- ],
96
26
  });
97
- if (response.outcome.outcome === "cancelled") {
98
- event.cancel = `Tool "${name}" permission request was cancelled.`;
27
+ }
28
+ return new HoomanToolApprovalIntervention({
29
+ onPromptStart: async (request, event) => {
30
+ await sendPending(request, event.toolUse.toolUseId);
31
+ },
32
+ onApproved: async (request, event, decision) => {
33
+ if (decision === "auto") {
34
+ await sendPending(request, event.toolUse.toolUseId);
35
+ }
99
36
  await connection.sessionUpdate({
100
37
  sessionId,
101
38
  update: {
102
39
  sessionUpdate: "tool_call_update",
103
40
  toolCallId: event.toolUse.toolUseId,
104
- status: "failed",
105
- rawOutput: { reason: "permission_cancelled" },
41
+ status: "in_progress",
106
42
  },
107
43
  });
108
- return;
109
- }
110
- const optionId = response.outcome.optionId;
111
- if (optionId === "allow_once") {
44
+ },
45
+ onRejected: async (_request, event, reason) => {
112
46
  await connection.sessionUpdate({
113
47
  sessionId,
114
48
  update: {
115
49
  sessionUpdate: "tool_call_update",
116
50
  toolCallId: event.toolUse.toolUseId,
117
- status: "in_progress",
51
+ status: "failed",
52
+ rawOutput: { reason: "permission_rejected", message: reason },
118
53
  },
119
54
  });
120
- return;
121
- }
122
- if (optionId === "allow_always") {
123
- allowToolForSession(event.agent, name);
124
- await connection.sessionUpdate({
55
+ },
56
+ ask: async (request, event) => {
57
+ const title = toolDisplayTitle(request.toolName, event.tool);
58
+ const kind = inferToolKind(request.toolName);
59
+ const locations = toolCallLocationsFromInput(request.toolName, request.input);
60
+ const response = await connection.requestPermission({
125
61
  sessionId,
126
- update: {
127
- sessionUpdate: "tool_call_update",
62
+ toolCall: {
128
63
  toolCallId: event.toolUse.toolUseId,
129
- status: "in_progress",
64
+ title,
65
+ kind,
66
+ status: "pending",
67
+ rawInput: request.input,
68
+ ...(locations ? { locations } : {}),
130
69
  },
70
+ options: [
71
+ {
72
+ kind: "allow_once",
73
+ name: "Allow once",
74
+ optionId: "allow_once",
75
+ },
76
+ {
77
+ kind: "allow_always",
78
+ name: "Always allow",
79
+ optionId: "allow_always",
80
+ },
81
+ {
82
+ kind: "reject_once",
83
+ name: "Reject",
84
+ optionId: "reject_once",
85
+ },
86
+ ],
131
87
  });
132
- return;
133
- }
134
- event.cancel = `Tool "${name}" was rejected by the user.`;
135
- await connection.sessionUpdate({
136
- sessionId,
137
- update: {
138
- sessionUpdate: "tool_call_update",
139
- toolCallId: event.toolUse.toolUseId,
140
- status: "failed",
141
- rawOutput: { reason: "permission_rejected" },
142
- },
143
- });
144
- };
88
+ if (response.outcome.outcome === "cancelled") {
89
+ return {
90
+ decision: "reject",
91
+ reason: `Tool "${request.toolName}" permission request was cancelled.`,
92
+ };
93
+ }
94
+ if (response.outcome.optionId === "allow_once") {
95
+ return "allow";
96
+ }
97
+ if (response.outcome.optionId === "allow_always") {
98
+ return "always";
99
+ }
100
+ return "reject";
101
+ },
102
+ });
145
103
  }
146
104
  //# sourceMappingURL=approvals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/acp/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/acp/approvals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,UAAU,iCAAiC,CAC/C,UAA+B,EAC/B,SAAiB;AACjB,2EAA2E;AAC3E,uBAAmD;IAEnD,KAAK,UAAU,WAAW,CACxB,OAIC,EACD,SAAiB;QAEjB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GACT,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;YACxB,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;YAChC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvB,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,0BAA0B,CAC1C,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,CACd,CAAC;QACF,MAAM,MAAM,GAAG,uBAAuB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;QAEnE,MAAM,UAAU,CAAC,aAAa,CAAC;YAC7B,SAAS;YACT,MAAM,EAAE;gBACN,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW;gBACxD,UAAU,EAAE,SAAS;gBACrB,KAAK;gBACL,IAAI;gBACJ,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,OAAO,CAAC,KAAK;gBACvB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,8BAA8B,CAAC;QACxC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC7C,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,UAAU,CAAC,aAAa,CAAC;gBAC7B,SAAS;gBACT,MAAM,EAAE;oBACN,aAAa,EAAE,kBAAkB;oBACjC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;oBACnC,MAAM,EAAE,aAAa;iBACtB;aACF,CAAC,CAAC;QACL,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,UAAU,CAAC,aAAa,CAAC;gBAC7B,SAAS;gBACT,MAAM,EAAE;oBACN,aAAa,EAAE,kBAAkB;oBACjC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;oBACnC,MAAM,EAAE,QAAQ;oBAChB,SAAS,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE;iBAC9D;aACF,CAAC,CAAC;QACL,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,0BAA0B,CAC1C,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,CACd,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC;gBAClD,SAAS;gBACT,QAAQ,EAAE;oBACR,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;oBACnC,KAAK;oBACL,IAAI;oBACJ,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,OAAO,CAAC,KAAK;oBACvB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpC;gBACD,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,YAAY;qBACvB;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,cAAc;wBACpB,QAAQ,EAAE,cAAc;qBACzB;oBACD;wBACE,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,aAAa;qBACxB;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC7C,OAAO;oBACL,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,SAAS,OAAO,CAAC,QAAQ,qCAAqC;iBACvE,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC/C,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;gBACjD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}