@slopus/rig 0.0.4 → 0.0.6

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 (374) hide show
  1. package/README.md +144 -1
  2. package/dist/agent/Agent.d.ts +16 -0
  3. package/dist/agent/Agent.d.ts.map +1 -1
  4. package/dist/agent/Agent.js +106 -0
  5. package/dist/agent/compaction/compactConversation.d.ts +22 -0
  6. package/dist/agent/compaction/compactConversation.d.ts.map +1 -0
  7. package/dist/agent/compaction/compactConversation.js +77 -0
  8. package/dist/agent/compaction/estimateMessagesTokens.d.ts +3 -0
  9. package/dist/agent/compaction/estimateMessagesTokens.d.ts.map +1 -0
  10. package/dist/agent/compaction/estimateMessagesTokens.js +39 -0
  11. package/dist/agent/compaction/formatMessagesForCompaction.d.ts +3 -0
  12. package/dist/agent/compaction/formatMessagesForCompaction.d.ts.map +1 -0
  13. package/dist/agent/compaction/formatMessagesForCompaction.js +30 -0
  14. package/dist/agent/compaction/requestCompactionSummary.d.ts +11 -0
  15. package/dist/agent/compaction/requestCompactionSummary.d.ts.map +1 -0
  16. package/dist/agent/compaction/requestCompactionSummary.js +43 -0
  17. package/dist/agent/context/AgentContext.d.ts +8 -0
  18. package/dist/agent/context/AgentContext.d.ts.map +1 -1
  19. package/dist/agent/context/BashContext.d.ts +23 -0
  20. package/dist/agent/context/BashContext.d.ts.map +1 -1
  21. package/dist/agent/context/GoalContext.d.ts +7 -0
  22. package/dist/agent/context/GoalContext.d.ts.map +1 -0
  23. package/dist/agent/context/GoalContext.js +1 -0
  24. package/dist/agent/context/SubagentContext.d.ts +20 -1
  25. package/dist/agent/context/SubagentContext.d.ts.map +1 -1
  26. package/dist/agent/context/TaskContext.d.ts +8 -0
  27. package/dist/agent/context/TaskContext.d.ts.map +1 -0
  28. package/dist/agent/context/TaskContext.js +1 -0
  29. package/dist/agent/context/UserInputContext.d.ts +7 -0
  30. package/dist/agent/context/UserInputContext.d.ts.map +1 -0
  31. package/dist/agent/context/UserInputContext.js +1 -0
  32. package/dist/agent/context/assertCanWritePath.d.ts +3 -0
  33. package/dist/agent/context/assertCanWritePath.d.ts.map +1 -0
  34. package/dist/agent/context/assertCanWritePath.js +11 -0
  35. package/dist/agent/context/createJustBashBashContext.d.ts.map +1 -1
  36. package/dist/agent/context/createJustBashBashContext.js +127 -0
  37. package/dist/agent/context/createNodeAgentContext.d.ts +8 -0
  38. package/dist/agent/context/createNodeAgentContext.d.ts.map +1 -1
  39. package/dist/agent/context/createNodeAgentContext.js +15 -2
  40. package/dist/agent/context/createNodeBashContext.d.ts +2 -0
  41. package/dist/agent/context/createNodeBashContext.d.ts.map +1 -1
  42. package/dist/agent/context/createNodeBashContext.js +123 -4
  43. package/dist/agent/context/createNodeFileSystemContext.d.ts +2 -0
  44. package/dist/agent/context/createNodeFileSystemContext.d.ts.map +1 -1
  45. package/dist/agent/context/createNodeFileSystemContext.js +18 -8
  46. package/dist/agent/context/createSandboxedCommand.d.ts +7 -0
  47. package/dist/agent/context/createSandboxedCommand.d.ts.map +1 -0
  48. package/dist/agent/context/createSandboxedCommand.js +47 -0
  49. package/dist/agent/context/findGitWritablePaths.d.ts +2 -0
  50. package/dist/agent/context/findGitWritablePaths.d.ts.map +1 -0
  51. package/dist/agent/context/findGitWritablePaths.js +54 -0
  52. package/dist/agent/context/isPathInsideWorkspace.d.ts +2 -0
  53. package/dist/agent/context/isPathInsideWorkspace.d.ts.map +1 -0
  54. package/dist/agent/context/isPathInsideWorkspace.js +14 -0
  55. package/dist/agent/context/resolvePotentialPath.d.ts +2 -0
  56. package/dist/agent/context/resolvePotentialPath.d.ts.map +1 -0
  57. package/dist/agent/context/resolvePotentialPath.js +32 -0
  58. package/dist/agent/createPermissionInstructions.d.ts +3 -0
  59. package/dist/agent/createPermissionInstructions.d.ts.map +1 -0
  60. package/dist/agent/createPermissionInstructions.js +12 -0
  61. package/dist/agent/createSubagentInstructions.js +1 -1
  62. package/dist/agent/createSystemPrompt.d.ts.map +1 -1
  63. package/dist/agent/createSystemPrompt.js +4 -0
  64. package/dist/agent/index.d.ts +7 -3
  65. package/dist/agent/index.d.ts.map +1 -1
  66. package/dist/agent/loop.d.ts +16 -2
  67. package/dist/agent/loop.d.ts.map +1 -1
  68. package/dist/agent/loop.js +115 -15
  69. package/dist/agent/printAgentMessageToConsole.d.ts +1 -0
  70. package/dist/agent/printAgentMessageToConsole.d.ts.map +1 -1
  71. package/dist/agent/types.d.ts +1 -0
  72. package/dist/agent/types.d.ts.map +1 -1
  73. package/dist/app/CodingAssistantAgentBackend.d.ts +11 -1
  74. package/dist/app/CodingAssistantAgentBackend.d.ts.map +1 -1
  75. package/dist/app/CodingAssistantApp.d.ts +7 -1
  76. package/dist/app/CodingAssistantApp.d.ts.map +1 -1
  77. package/dist/app/CodingAssistantApp.js +678 -45
  78. package/dist/app/ScrollbackPreservingTerminal.d.ts +5 -0
  79. package/dist/app/ScrollbackPreservingTerminal.d.ts.map +1 -0
  80. package/dist/app/ScrollbackPreservingTerminal.js +7 -0
  81. package/dist/app/StartupStatusApp.js +1 -1
  82. package/dist/app/createCodingAssistantAgent.d.ts +6 -1
  83. package/dist/app/createCodingAssistantAgent.d.ts.map +1 -1
  84. package/dist/app/createCodingAssistantAgent.js +22 -5
  85. package/dist/app/createSlashCommands.d.ts.map +1 -1
  86. package/dist/app/createSlashCommands.js +42 -0
  87. package/dist/app/highlightAgentCode.d.ts.map +1 -1
  88. package/dist/app/highlightAgentCode.js +10 -7
  89. package/dist/app/humanizeGoalStatus.d.ts +3 -0
  90. package/dist/app/humanizeGoalStatus.d.ts.map +1 -0
  91. package/dist/app/humanizeGoalStatus.js +9 -0
  92. package/dist/app/humanizePermissionMode.d.ts +3 -0
  93. package/dist/app/humanizePermissionMode.d.ts.map +1 -0
  94. package/dist/app/humanizePermissionMode.js +9 -0
  95. package/dist/app/humanizeToolName.d.ts +2 -0
  96. package/dist/app/humanizeToolName.d.ts.map +1 -0
  97. package/dist/app/humanizeToolName.js +40 -0
  98. package/dist/app/main.d.ts.map +1 -1
  99. package/dist/app/main.js +4 -0
  100. package/dist/app/renderAgentMarkdown.d.ts.map +1 -1
  101. package/dist/app/renderAgentMarkdown.js +2 -1
  102. package/dist/app/runApp.d.ts +2 -0
  103. package/dist/app/runApp.d.ts.map +1 -1
  104. package/dist/app/runApp.js +48 -3
  105. package/dist/app/sanitizeTerminalText.d.ts +2 -0
  106. package/dist/app/sanitizeTerminalText.d.ts.map +1 -0
  107. package/dist/app/sanitizeTerminalText.js +55 -0
  108. package/dist/app/upsertSubagentSummary.d.ts +3 -0
  109. package/dist/app/upsertSubagentSummary.d.ts.map +1 -0
  110. package/dist/app/upsertSubagentSummary.js +6 -0
  111. package/dist/client/ProtocolHttpClient.d.ts +12 -1
  112. package/dist/client/ProtocolHttpClient.d.ts.map +1 -1
  113. package/dist/client/ProtocolHttpClient.js +21 -0
  114. package/dist/client/RemoteAgent.d.ts +11 -1
  115. package/dist/client/RemoteAgent.d.ts.map +1 -1
  116. package/dist/client/RemoteAgent.js +91 -1
  117. package/dist/config/createConfigFile.d.ts.map +1 -1
  118. package/dist/config/createConfigFile.js +5 -0
  119. package/dist/config/defaultConfig.d.ts.map +1 -1
  120. package/dist/config/defaultConfig.js +2 -0
  121. package/dist/config/mergeConfigValues.d.ts.map +1 -1
  122. package/dist/config/mergeConfigValues.js +8 -1
  123. package/dist/config/parseConfigToml.d.ts.map +1 -1
  124. package/dist/config/parseConfigToml.js +88 -0
  125. package/dist/config/serializeMcpServers.d.ts +3 -0
  126. package/dist/config/serializeMcpServers.d.ts.map +1 -0
  127. package/dist/config/serializeMcpServers.js +34 -0
  128. package/dist/config/types.d.ts +6 -0
  129. package/dist/config/types.d.ts.map +1 -1
  130. package/dist/config/writeRuntimeConfig.d.ts.map +1 -1
  131. package/dist/config/writeRuntimeConfig.js +3 -0
  132. package/dist/goals/SessionGoal.d.ts +14 -0
  133. package/dist/goals/SessionGoal.d.ts.map +1 -0
  134. package/dist/goals/SessionGoal.js +1 -0
  135. package/dist/goals/createGoalContinuationPrompt.d.ts +3 -0
  136. package/dist/goals/createGoalContinuationPrompt.d.ts.map +1 -0
  137. package/dist/goals/createGoalContinuationPrompt.js +17 -0
  138. package/dist/goals/index.d.ts +5 -0
  139. package/dist/goals/index.d.ts.map +1 -0
  140. package/dist/goals/index.js +3 -0
  141. package/dist/goals/isGoalStatus.d.ts +3 -0
  142. package/dist/goals/isGoalStatus.d.ts.map +1 -0
  143. package/dist/goals/isGoalStatus.js +3 -0
  144. package/dist/goals/normalizeGoalObjective.d.ts +3 -0
  145. package/dist/goals/normalizeGoalObjective.d.ts.map +1 -0
  146. package/dist/goals/normalizeGoalObjective.js +11 -0
  147. package/dist/mcp/McpClientManager.d.ts +12 -0
  148. package/dist/mcp/McpClientManager.d.ts.map +1 -0
  149. package/dist/mcp/McpClientManager.js +123 -0
  150. package/dist/mcp/connectMcpServer.d.ts +8 -0
  151. package/dist/mcp/connectMcpServer.d.ts.map +1 -0
  152. package/dist/mcp/connectMcpServer.js +47 -0
  153. package/dist/mcp/createMcpTool.d.ts +11 -0
  154. package/dist/mcp/createMcpTool.d.ts.map +1 -0
  155. package/dist/mcp/createMcpTool.js +43 -0
  156. package/dist/mcp/index.d.ts +5 -0
  157. package/dist/mcp/index.d.ts.map +1 -0
  158. package/dist/mcp/index.js +3 -0
  159. package/dist/mcp/loadMcpServerConfigs.d.ts +4 -0
  160. package/dist/mcp/loadMcpServerConfigs.d.ts.map +1 -0
  161. package/dist/mcp/loadMcpServerConfigs.js +122 -0
  162. package/dist/mcp/mcpResultToContentBlocks.d.ts +3 -0
  163. package/dist/mcp/mcpResultToContentBlocks.d.ts.map +1 -0
  164. package/dist/mcp/mcpResultToContentBlocks.js +51 -0
  165. package/dist/mcp/mergeMcpTools.d.ts +7 -0
  166. package/dist/mcp/mergeMcpTools.d.ts.map +1 -0
  167. package/dist/mcp/mergeMcpTools.js +34 -0
  168. package/dist/mcp/normalizeMcpName.d.ts +2 -0
  169. package/dist/mcp/normalizeMcpName.d.ts.map +1 -0
  170. package/dist/mcp/normalizeMcpName.js +3 -0
  171. package/dist/mcp/types.d.ts +37 -0
  172. package/dist/mcp/types.d.ts.map +1 -0
  173. package/dist/mcp/types.js +1 -0
  174. package/dist/permissions/PermissionContext.d.ts +7 -0
  175. package/dist/permissions/PermissionContext.d.ts.map +1 -0
  176. package/dist/permissions/PermissionContext.js +1 -0
  177. package/dist/permissions/PermissionMode.d.ts +3 -0
  178. package/dist/permissions/PermissionMode.d.ts.map +1 -0
  179. package/dist/permissions/PermissionMode.js +1 -0
  180. package/dist/permissions/createPermissionContext.d.ts +4 -0
  181. package/dist/permissions/createPermissionContext.d.ts.map +1 -0
  182. package/dist/permissions/createPermissionContext.js +16 -0
  183. package/dist/permissions/index.d.ts +13 -0
  184. package/dist/permissions/index.d.ts.map +1 -0
  185. package/dist/permissions/index.js +9 -0
  186. package/dist/permissions/isPermissionMode.d.ts +3 -0
  187. package/dist/permissions/isPermissionMode.d.ts.map +1 -0
  188. package/dist/permissions/isPermissionMode.js +6 -0
  189. package/dist/permissions/parseAutoPermissionReview.d.ts +7 -0
  190. package/dist/permissions/parseAutoPermissionReview.d.ts.map +1 -0
  191. package/dist/permissions/parseAutoPermissionReview.js +33 -0
  192. package/dist/permissions/parsePermissionMode.d.ts +3 -0
  193. package/dist/permissions/parsePermissionMode.d.ts.map +1 -0
  194. package/dist/permissions/parsePermissionMode.js +6 -0
  195. package/dist/permissions/requestAutoPermissionApproval.d.ts +9 -0
  196. package/dist/permissions/requestAutoPermissionApproval.d.ts.map +1 -0
  197. package/dist/permissions/requestAutoPermissionApproval.js +26 -0
  198. package/dist/permissions/reviewAutoPermission.d.ts +13 -0
  199. package/dist/permissions/reviewAutoPermission.d.ts.map +1 -0
  200. package/dist/permissions/reviewAutoPermission.js +70 -0
  201. package/dist/permissions/shouldElevateToolInAutoMode.d.ts +2 -0
  202. package/dist/permissions/shouldElevateToolInAutoMode.d.ts.map +1 -0
  203. package/dist/permissions/shouldElevateToolInAutoMode.js +37 -0
  204. package/dist/permissions/shouldReviewToolInAutoMode.d.ts +2 -0
  205. package/dist/permissions/shouldReviewToolInAutoMode.d.ts.map +1 -0
  206. package/dist/permissions/shouldReviewToolInAutoMode.js +85 -0
  207. package/dist/permissions/summarizePermissionAction.d.ts +2 -0
  208. package/dist/permissions/summarizePermissionAction.d.ts.map +1 -0
  209. package/dist/permissions/summarizePermissionAction.js +29 -0
  210. package/dist/protocol/SessionProtocol.d.ts +49 -2
  211. package/dist/protocol/SessionProtocol.d.ts.map +1 -1
  212. package/dist/protocol/index.d.ts +4 -1
  213. package/dist/protocol/index.d.ts.map +1 -1
  214. package/dist/providers/claude-sdk.d.ts.map +1 -1
  215. package/dist/providers/claude-sdk.js +7 -6
  216. package/dist/providers/models.d.ts +12 -12
  217. package/dist/providers/models.d.ts.map +1 -1
  218. package/dist/providers/models.js +18 -0
  219. package/dist/providers/types.d.ts +3 -0
  220. package/dist/providers/types.d.ts.map +1 -1
  221. package/dist/review/createCodeReviewPrompt.d.ts +2 -0
  222. package/dist/review/createCodeReviewPrompt.d.ts.map +1 -0
  223. package/dist/review/createCodeReviewPrompt.js +11 -0
  224. package/dist/review/index.d.ts +2 -0
  225. package/dist/review/index.d.ts.map +1 -0
  226. package/dist/review/index.js +1 -0
  227. package/dist/server/AgentSessionManager.d.ts +10 -1
  228. package/dist/server/AgentSessionManager.d.ts.map +1 -1
  229. package/dist/server/AgentSessionManager.js +203 -12
  230. package/dist/server/InMemorySession.d.ts +34 -1
  231. package/dist/server/InMemorySession.d.ts.map +1 -1
  232. package/dist/server/InMemorySession.js +558 -10
  233. package/dist/server/InMemorySessionStore.d.ts +2 -0
  234. package/dist/server/InMemorySessionStore.d.ts.map +1 -1
  235. package/dist/server/InMemorySessionStore.js +7 -0
  236. package/dist/server/PersistentSessionStore.d.ts +2 -0
  237. package/dist/server/PersistentSessionStore.d.ts.map +1 -1
  238. package/dist/server/PersistentSessionStore.js +80 -5
  239. package/dist/server/createGoalTitle.d.ts +2 -0
  240. package/dist/server/createGoalTitle.d.ts.map +1 -0
  241. package/dist/server/createGoalTitle.js +4 -0
  242. package/dist/server/createProtocolHttpServer.d.ts.map +1 -1
  243. package/dist/server/createProtocolHttpServer.js +119 -2
  244. package/dist/server/runLocalProtocolServer.d.ts.map +1 -1
  245. package/dist/server/runLocalProtocolServer.js +18 -2
  246. package/dist/tasks/index.d.ts +2 -0
  247. package/dist/tasks/index.d.ts.map +1 -0
  248. package/dist/tasks/index.js +1 -0
  249. package/dist/tasks/types.d.ts +39 -0
  250. package/dist/tasks/types.d.ts.map +1 -0
  251. package/dist/tasks/types.js +1 -0
  252. package/dist/tools/Agent.d.ts +13 -3
  253. package/dist/tools/Agent.d.ts.map +1 -1
  254. package/dist/tools/Agent.js +40 -12
  255. package/dist/tools/claude/AskUserQuestion.d.ts +23 -0
  256. package/dist/tools/claude/AskUserQuestion.d.ts.map +1 -0
  257. package/dist/tools/claude/AskUserQuestion.js +52 -0
  258. package/dist/tools/claude/Bash.d.ts +2 -0
  259. package/dist/tools/claude/Bash.d.ts.map +1 -1
  260. package/dist/tools/claude/Bash.js +20 -2
  261. package/dist/tools/claude/SendMessage.d.ts +10 -0
  262. package/dist/tools/claude/SendMessage.d.ts.map +1 -0
  263. package/dist/tools/claude/SendMessage.js +33 -0
  264. package/dist/tools/claude/TaskCreate.d.ts +12 -0
  265. package/dist/tools/claude/TaskCreate.d.ts.map +1 -0
  266. package/dist/tools/claude/TaskCreate.js +34 -0
  267. package/dist/tools/claude/TaskGet.d.ts +16 -0
  268. package/dist/tools/claude/TaskGet.d.ts.map +1 -0
  269. package/dist/tools/claude/TaskGet.js +44 -0
  270. package/dist/tools/claude/TaskList.d.ts +10 -0
  271. package/dist/tools/claude/TaskList.d.ts.map +1 -0
  272. package/dist/tools/claude/TaskList.js +51 -0
  273. package/dist/tools/claude/TaskOutput.d.ts +17 -0
  274. package/dist/tools/claude/TaskOutput.d.ts.map +1 -0
  275. package/dist/tools/claude/TaskOutput.js +74 -0
  276. package/dist/tools/claude/TaskStop.d.ts +10 -0
  277. package/dist/tools/claude/TaskStop.d.ts.map +1 -0
  278. package/dist/tools/claude/TaskStop.js +42 -0
  279. package/dist/tools/claude/TaskUpdate.d.ts +21 -0
  280. package/dist/tools/claude/TaskUpdate.d.ts.map +1 -0
  281. package/dist/tools/claude/TaskUpdate.js +55 -0
  282. package/dist/tools/claude/index.d.ts +111 -5
  283. package/dist/tools/claude/index.d.ts.map +1 -1
  284. package/dist/tools/claude/index.js +24 -2
  285. package/dist/tools/claude/parseBackgroundTaskId.d.ts +2 -0
  286. package/dist/tools/claude/parseBackgroundTaskId.d.ts.map +1 -0
  287. package/dist/tools/claude/parseBackgroundTaskId.js +7 -0
  288. package/dist/tools/claude/taskSchemas.d.ts +14 -0
  289. package/dist/tools/claude/taskSchemas.d.ts.map +1 -0
  290. package/dist/tools/claude/taskSchemas.js +18 -0
  291. package/dist/tools/codex/exec_command.d.ts +8 -6
  292. package/dist/tools/codex/exec_command.d.ts.map +1 -1
  293. package/dist/tools/codex/exec_command.js +37 -18
  294. package/dist/tools/codex/followup_task.d.ts +11 -0
  295. package/dist/tools/codex/followup_task.d.ts.map +1 -0
  296. package/dist/tools/codex/followup_task.js +18 -0
  297. package/dist/tools/codex/humanizeTaskName.d.ts +2 -0
  298. package/dist/tools/codex/humanizeTaskName.d.ts.map +1 -0
  299. package/dist/tools/codex/humanizeTaskName.js +4 -0
  300. package/dist/tools/codex/index.d.ts +90 -7
  301. package/dist/tools/codex/index.d.ts.map +1 -1
  302. package/dist/tools/codex/index.js +24 -0
  303. package/dist/tools/codex/interrupt_agent.d.ts +10 -0
  304. package/dist/tools/codex/interrupt_agent.d.ts.map +1 -0
  305. package/dist/tools/codex/interrupt_agent.js +17 -0
  306. package/dist/tools/codex/list_agents.d.ts +12 -0
  307. package/dist/tools/codex/list_agents.d.ts.map +1 -0
  308. package/dist/tools/codex/list_agents.js +23 -0
  309. package/dist/tools/codex/request_user_input.d.ts +16 -0
  310. package/dist/tools/codex/request_user_input.d.ts.map +1 -0
  311. package/dist/tools/codex/request_user_input.js +58 -0
  312. package/dist/tools/codex/requireSubagentContext.d.ts +3 -0
  313. package/dist/tools/codex/requireSubagentContext.d.ts.map +1 -0
  314. package/dist/tools/codex/requireSubagentContext.js +6 -0
  315. package/dist/tools/codex/spawn_agent.d.ts +9 -0
  316. package/dist/tools/codex/spawn_agent.d.ts.map +1 -0
  317. package/dist/tools/codex/spawn_agent.js +35 -0
  318. package/dist/tools/codex/subagentSchemas.d.ts +8 -0
  319. package/dist/tools/codex/subagentSchemas.d.ts.map +1 -0
  320. package/dist/tools/codex/subagentSchemas.js +13 -0
  321. package/dist/tools/codex/unifiedExecOutput.d.ts +14 -0
  322. package/dist/tools/codex/unifiedExecOutput.d.ts.map +1 -0
  323. package/dist/tools/codex/unifiedExecOutput.js +44 -0
  324. package/dist/tools/codex/update_plan.d.ts +10 -0
  325. package/dist/tools/codex/update_plan.d.ts.map +1 -0
  326. package/dist/tools/codex/update_plan.js +34 -0
  327. package/dist/tools/codex/wait_agent.d.ts +13 -0
  328. package/dist/tools/codex/wait_agent.d.ts.map +1 -0
  329. package/dist/tools/codex/wait_agent.js +32 -0
  330. package/dist/tools/codex/write_stdin.d.ts +6 -1
  331. package/dist/tools/codex/write_stdin.d.ts.map +1 -1
  332. package/dist/tools/codex/write_stdin.js +44 -12
  333. package/dist/tools/goals/create_goal.d.ts +11 -0
  334. package/dist/tools/goals/create_goal.d.ts.map +1 -0
  335. package/dist/tools/goals/create_goal.js +29 -0
  336. package/dist/tools/goals/get_goal.d.ts +9 -0
  337. package/dist/tools/goals/get_goal.d.ts.map +1 -0
  338. package/dist/tools/goals/get_goal.js +26 -0
  339. package/dist/tools/goals/goalSchemas.d.ts +8 -0
  340. package/dist/tools/goals/goalSchemas.d.ts.map +1 -0
  341. package/dist/tools/goals/goalSchemas.js +13 -0
  342. package/dist/tools/goals/index.d.ts +30 -0
  343. package/dist/tools/goals/index.d.ts.map +1 -0
  344. package/dist/tools/goals/index.js +7 -0
  345. package/dist/tools/goals/update_goal.d.ts +11 -0
  346. package/dist/tools/goals/update_goal.d.ts.map +1 -0
  347. package/dist/tools/goals/update_goal.js +33 -0
  348. package/dist/tools/index.d.ts +1 -0
  349. package/dist/tools/index.d.ts.map +1 -1
  350. package/dist/tools/index.js +1 -0
  351. package/dist/tools/pi/bash.d.ts.map +1 -1
  352. package/dist/tools/pi/bash.js +2 -0
  353. package/dist/tools/utils/readSessionWithProgress.d.ts +9 -0
  354. package/dist/tools/utils/readSessionWithProgress.d.ts.map +1 -0
  355. package/dist/tools/utils/readSessionWithProgress.js +27 -0
  356. package/dist/tools/utils/shell.d.ts +2 -0
  357. package/dist/tools/utils/shell.d.ts.map +1 -1
  358. package/dist/tools/utils/shell.js +37 -0
  359. package/dist/tools/utils/summarizeShellOutput.d.ts.map +1 -1
  360. package/dist/tools/utils/summarizeShellOutput.js +2 -0
  361. package/dist/user-input/index.d.ts +2 -0
  362. package/dist/user-input/index.d.ts.map +1 -0
  363. package/dist/user-input/index.js +1 -0
  364. package/dist/user-input/types.d.ts +19 -0
  365. package/dist/user-input/types.d.ts.map +1 -0
  366. package/dist/user-input/types.js +1 -0
  367. package/dist/web/assets/highlighted-body-OFNGDK62-BuJOCQJD.js +1 -0
  368. package/dist/web/assets/highlighted-body-OFNGDK62-TwhCqUaJ.js +1 -0
  369. package/dist/web/assets/index-B6Bc6sUJ.css +1 -0
  370. package/dist/web/assets/index-BC99-iZC.js +341 -0
  371. package/dist/web/assets/index-BZN9jSiw.js +341 -0
  372. package/dist/web/assets/index-CcF0unjO.css +1 -0
  373. package/dist/web/index.html +2 -2
  374. package/package.json +2 -1
@@ -3,19 +3,19 @@
3
3
  *
4
4
  * Order matches the Conductor model picker.
5
5
  */
6
- export declare const modelAnthropicFable5: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "max">;
7
- export declare const modelAnthropicOpus48: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "max">;
8
- export declare const modelAnthropicOpus47: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "max">;
9
- export declare const modelAnthropicOpus46: import("./types.js").Model<"high" | "off" | "low" | "medium" | "max">;
10
- export declare const modelAnthropicSonnet5: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "max">;
11
- export declare const modelAnthropicSonnet461m: import("./types.js").Model<"high" | "off" | "low" | "medium" | "max">;
12
- export declare const modelAnthropicSonnet46: import("./types.js").Model<"high" | "off" | "low" | "medium" | "max">;
6
+ export declare const modelAnthropicFable5: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "max">;
7
+ export declare const modelAnthropicOpus48: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "max">;
8
+ export declare const modelAnthropicOpus47: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "max">;
9
+ export declare const modelAnthropicOpus46: import("./types.js").Model<"high" | "low" | "medium" | "off" | "max">;
10
+ export declare const modelAnthropicSonnet5: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "max">;
11
+ export declare const modelAnthropicSonnet461m: import("./types.js").Model<"high" | "low" | "medium" | "off" | "max">;
12
+ export declare const modelAnthropicSonnet46: import("./types.js").Model<"high" | "low" | "medium" | "off" | "max">;
13
13
  export declare const modelAnthropicHaiku45: import("./types.js").Model<"off">;
14
- export declare const modelOpenaiGpt55: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "minimal">;
15
- export declare const modelOpenaiGpt56Sol: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "max" | "ultra">;
16
- export declare const modelOpenaiGpt56Terra: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "max" | "ultra">;
17
- export declare const modelOpenaiGpt56Luna: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "max">;
18
- export declare const modelOpenaiGpt54: import("./types.js").Model<"high" | "off" | "low" | "medium" | "xhigh" | "minimal">;
14
+ export declare const modelOpenaiGpt55: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "minimal">;
15
+ export declare const modelOpenaiGpt56Sol: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "max" | "ultra">;
16
+ export declare const modelOpenaiGpt56Terra: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "max" | "ultra">;
17
+ export declare const modelOpenaiGpt56Luna: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "max">;
18
+ export declare const modelOpenaiGpt54: import("./types.js").Model<"high" | "low" | "medium" | "off" | "xhigh" | "minimal">;
19
19
  export declare const modelMoonshotKimiK25: import("./types.js").Model<"on" | "off">;
20
20
  export declare const modelMoonshotKimiK2Thinking: import("./types.js").Model<"on">;
21
21
  export declare const modelZaiGlm5: import("./types.js").Model<"high" | "off" | "max">;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../sources/providers/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,eAAO,MAAM,oBAAoB,iFAK/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,iFAK/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,iFAK/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,uEAK/B,CAAC;AAEH,eAAO,MAAM,qBAAqB,iFAKhC,CAAC;AAEH,eAAO,MAAM,wBAAwB,uEAKnC,CAAC;AAEH,eAAO,MAAM,sBAAsB,uEAKjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,mCAKhC,CAAC;AAEH,eAAO,MAAM,gBAAgB,qFAK3B,CAAC;AAEH,eAAO,MAAM,mBAAmB,2FAK9B,CAAC;AAEH,eAAO,MAAM,qBAAqB,2FAKhC,CAAC;AAEH,eAAO,MAAM,oBAAoB,iFAK/B,CAAC;AAEH,eAAO,MAAM,gBAAgB,qFAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB,0CAK/B,CAAC;AAEH,eAAO,MAAM,2BAA2B,kCAKtC,CAAC;AAEH,eAAO,MAAM,YAAY,oDAKvB,CAAC;AAEH,eAAO,MAAM,aAAa,0CAKxB,CAAC;AAEH,eAAO,MAAM,kBAAkB,0CAK7B,CAAC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../sources/providers/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,eAAO,MAAM,oBAAoB,iFAM/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,iFAM/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,iFAM/B,CAAC;AAEH,eAAO,MAAM,oBAAoB,uEAM/B,CAAC;AAEH,eAAO,MAAM,qBAAqB,iFAMhC,CAAC;AAEH,eAAO,MAAM,wBAAwB,uEAMnC,CAAC;AAEH,eAAO,MAAM,sBAAsB,uEAMjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,mCAMhC,CAAC;AAEH,eAAO,MAAM,gBAAgB,qFAM3B,CAAC;AAEH,eAAO,MAAM,mBAAmB,2FAM9B,CAAC;AAEH,eAAO,MAAM,qBAAqB,2FAMhC,CAAC;AAEH,eAAO,MAAM,oBAAoB,iFAM/B,CAAC;AAEH,eAAO,MAAM,gBAAgB,qFAM3B,CAAC;AAEH,eAAO,MAAM,oBAAoB,0CAM/B,CAAC;AAEH,eAAO,MAAM,2BAA2B,kCAMtC,CAAC;AAEH,eAAO,MAAM,YAAY,oDAMvB,CAAC;AAEH,eAAO,MAAM,aAAa,0CAMxB,CAAC;AAEH,eAAO,MAAM,kBAAkB,0CAM7B,CAAC"}
@@ -9,106 +9,124 @@ export const modelAnthropicFable5 = defineModel({
9
9
  name: "Fable 5",
10
10
  thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max"],
11
11
  defaultThinkingLevel: "medium",
12
+ contextWindow: 1_000_000,
12
13
  });
13
14
  export const modelAnthropicOpus48 = defineModel({
14
15
  id: "anthropic/opus-4-8",
15
16
  name: "Opus 4.8 1M",
16
17
  thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max"],
17
18
  defaultThinkingLevel: "medium",
19
+ contextWindow: 1_000_000,
18
20
  });
19
21
  export const modelAnthropicOpus47 = defineModel({
20
22
  id: "anthropic/opus-4-7",
21
23
  name: "Opus 4.7 1M",
22
24
  thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max"],
23
25
  defaultThinkingLevel: "medium",
26
+ contextWindow: 1_000_000,
24
27
  });
25
28
  export const modelAnthropicOpus46 = defineModel({
26
29
  id: "anthropic/opus-4-6",
27
30
  name: "Opus 4.6 1M",
28
31
  thinkingLevels: ["off", "low", "medium", "high", "max"],
29
32
  defaultThinkingLevel: "medium",
33
+ contextWindow: 1_000_000,
30
34
  });
31
35
  export const modelAnthropicSonnet5 = defineModel({
32
36
  id: "anthropic/sonnet-5",
33
37
  name: "Sonnet 5",
34
38
  thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max"],
35
39
  defaultThinkingLevel: "medium",
40
+ contextWindow: 1_000_000,
36
41
  });
37
42
  export const modelAnthropicSonnet461m = defineModel({
38
43
  id: "anthropic/sonnet-4-6-1m",
39
44
  name: "Sonnet 4.6 1M",
40
45
  thinkingLevels: ["off", "low", "medium", "high", "max"],
41
46
  defaultThinkingLevel: "medium",
47
+ contextWindow: 1_000_000,
42
48
  });
43
49
  export const modelAnthropicSonnet46 = defineModel({
44
50
  id: "anthropic/sonnet-4-6",
45
51
  name: "Sonnet 4.6",
46
52
  thinkingLevels: ["off", "low", "medium", "high", "max"],
47
53
  defaultThinkingLevel: "medium",
54
+ contextWindow: 200_000,
48
55
  });
49
56
  export const modelAnthropicHaiku45 = defineModel({
50
57
  id: "anthropic/haiku-4-5",
51
58
  name: "Haiku 4.5",
52
59
  thinkingLevels: ["off"],
53
60
  defaultThinkingLevel: "off",
61
+ contextWindow: 200_000,
54
62
  });
55
63
  export const modelOpenaiGpt55 = defineModel({
56
64
  id: "openai/gpt-5.5",
57
65
  name: "GPT-5.5",
58
66
  thinkingLevels: ["off", "minimal", "low", "medium", "high", "xhigh"],
59
67
  defaultThinkingLevel: "medium",
68
+ contextWindow: 272_000,
60
69
  });
61
70
  export const modelOpenaiGpt56Sol = defineModel({
62
71
  id: "openai/gpt-5.6-sol",
63
72
  name: "GPT-5.6 Sol",
64
73
  thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
65
74
  defaultThinkingLevel: "low",
75
+ contextWindow: 372_000,
66
76
  });
67
77
  export const modelOpenaiGpt56Terra = defineModel({
68
78
  id: "openai/gpt-5.6-terra",
69
79
  name: "GPT-5.6 Terra",
70
80
  thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
71
81
  defaultThinkingLevel: "medium",
82
+ contextWindow: 372_000,
72
83
  });
73
84
  export const modelOpenaiGpt56Luna = defineModel({
74
85
  id: "openai/gpt-5.6-luna",
75
86
  name: "GPT-5.6 Luna",
76
87
  thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max"],
77
88
  defaultThinkingLevel: "medium",
89
+ contextWindow: 372_000,
78
90
  });
79
91
  export const modelOpenaiGpt54 = defineModel({
80
92
  id: "openai/gpt-5.4",
81
93
  name: "GPT-5.4",
82
94
  thinkingLevels: ["off", "minimal", "low", "medium", "high", "xhigh"],
83
95
  defaultThinkingLevel: "medium",
96
+ contextWindow: 272_000,
84
97
  });
85
98
  export const modelMoonshotKimiK25 = defineModel({
86
99
  id: "moonshot/kimi-k2.5",
87
100
  name: "Kimi K2.5",
88
101
  thinkingLevels: ["off", "on"],
89
102
  defaultThinkingLevel: "on",
103
+ contextWindow: 256_000,
90
104
  });
91
105
  export const modelMoonshotKimiK2Thinking = defineModel({
92
106
  id: "moonshot/kimi-k2-thinking",
93
107
  name: "Kimi K2 Thinking",
94
108
  thinkingLevels: ["on"],
95
109
  defaultThinkingLevel: "on",
110
+ contextWindow: 256_000,
96
111
  });
97
112
  export const modelZaiGlm5 = defineModel({
98
113
  id: "zai/glm-5",
99
114
  name: "GLM 5",
100
115
  thinkingLevels: ["off", "high", "max"],
101
116
  defaultThinkingLevel: "max",
117
+ contextWindow: 200_000,
102
118
  });
103
119
  export const modelZaiGlm47 = defineModel({
104
120
  id: "zai/glm-4.7",
105
121
  name: "GLM 4.7",
106
122
  thinkingLevels: ["off", "on"],
107
123
  defaultThinkingLevel: "on",
124
+ contextWindow: 203_000,
108
125
  });
109
126
  export const modelZaiGlm47Flash = defineModel({
110
127
  id: "zai/glm-4.7-flash",
111
128
  name: "GLM 4.7 Flash",
112
129
  thinkingLevels: ["off", "on"],
113
130
  defaultThinkingLevel: "on",
131
+ contextWindow: 203_000,
114
132
  });
@@ -95,6 +95,8 @@ export interface Model<TThinkingLevel extends string = string> {
95
95
  name: string;
96
96
  thinkingLevels: readonly TThinkingLevel[];
97
97
  defaultThinkingLevel: TThinkingLevel;
98
+ /** Maximum input context used for automatic conversation compaction. */
99
+ contextWindow?: number;
98
100
  }
99
101
  export interface StreamOptions<TThinkingLevel extends string = string> {
100
102
  signal?: AbortSignal;
@@ -177,6 +179,7 @@ export declare function defineModel<const TThinkingLevel extends string>(model:
177
179
  name: string;
178
180
  thinkingLevels: readonly TThinkingLevel[];
179
181
  defaultThinkingLevel: TThinkingLevel;
182
+ contextWindow?: number;
180
183
  }): Model<TThinkingLevel>;
181
184
  /** Statically typed helper for constructing a provider definition. */
182
185
  export declare function defineProvider(provider: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sources/providers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sources/providers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function createCodeReviewPrompt(command: string): string | undefined;
2
+ //# sourceMappingURL=createCodeReviewPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCodeReviewPrompt.d.ts","sourceRoot":"","sources":["../../sources/review/createCodeReviewPrompt.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU1E"}
@@ -0,0 +1,11 @@
1
+ export function createCodeReviewPrompt(command) {
2
+ const match = /^\/review(?:\s+([\s\S]*))?$/u.exec(command.trim());
3
+ if (match === null)
4
+ return undefined;
5
+ const focus = match[1]?.trim() ?? "";
6
+ return `Review the current workspace changes and identify actionable issues.
7
+
8
+ Inspect the repository state and the complete relevant diff, including staged, unstaged, and untracked changes. Read surrounding code when needed to verify whether a potential issue is real. Do not modify files or implement fixes.
9
+
10
+ Lead with findings ordered by severity. For each finding, explain the concrete impact and cite the relevant file and line. Prioritize correctness, regressions, security, data loss, broken user flows, and missing tests that leave changed behavior unverified. Keep summaries brief and secondary. If you find no issues, say so clearly and mention any remaining test or verification gaps.${focus.length === 0 ? "" : `\n\nThe user asked you to focus especially on: ${focus}`}`;
11
+ }
@@ -0,0 +1,2 @@
1
+ export { createCodeReviewPrompt } from "./createCodeReviewPrompt.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sources/review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1 @@
1
+ export { createCodeReviewPrompt } from "./createCodeReviewPrompt.js";
@@ -1,19 +1,28 @@
1
- import { type SpawnSubagentRequest, type SpawnSubagentResult } from "../agent/index.js";
1
+ import { type ManagedSubagent, type SpawnSubagentRequest, type SpawnSubagentResult, type WaitForSubagentResult } from "../agent/index.js";
2
2
  import type { CreateSessionRequest, SessionAgentMetadata } from "../protocol/index.js";
3
3
  import type { InMemorySession } from "./InMemorySession.js";
4
4
  export declare const DEFAULT_MAX_SUBAGENT_DEPTH = 3;
5
+ export declare const DEFAULT_MAX_ACTIVE_SUBAGENTS = 4;
5
6
  export interface AgentSessionRepository {
6
7
  createSubagent(request: CreateSessionRequest, metadata: SessionAgentMetadata): InMemorySession;
7
8
  get(sessionId: string): InMemorySession | undefined;
9
+ listByRoot(rootSessionId: string): readonly InMemorySession[];
8
10
  }
9
11
  export interface AgentSessionManagerOptions {
12
+ maxActive?: number;
10
13
  maxDepth?: number;
11
14
  repository: AgentSessionRepository;
12
15
  }
13
16
  export declare class AgentSessionManager {
14
17
  #private;
18
+ readonly maxActive: number;
15
19
  readonly maxDepth: number;
16
20
  constructor(options: AgentSessionManagerOptions);
21
+ taskSession(sessionId: string): InMemorySession | undefined;
22
+ followUp(parentSessionId: string, target: string, message: string): ManagedSubagent;
23
+ interrupt(parentSessionId: string, target: string): ManagedSubagent;
24
+ list(parentSessionId: string, pathPrefix?: string): readonly ManagedSubagent[];
17
25
  spawn(parentSessionId: string, request: SpawnSubagentRequest, signal?: AbortSignal): Promise<SpawnSubagentResult>;
26
+ wait(parentSessionId: string, timeoutMs?: number, signal?: AbortSignal): Promise<WaitForSubagentResult>;
18
27
  }
19
28
  //# sourceMappingURL=AgentSessionManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSessionManager.d.ts","sourceRoot":"","sources":["../../sources/server/AgentSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACnC,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,eAAe,CAAC;IAC/F,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,sBAAsB,CAAC;CACtC;AAED,qBAAa,mBAAmB;;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAId,OAAO,EAAE,0BAA0B;IAKzC,KAAK,CACP,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,mBAAmB,CAAC;CAgElC"}
1
+ {"version":3,"file":"AgentSessionManager.d.ts","sourceRoot":"","sources":["../../sources/server/AgentSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAExB,KAAK,qBAAqB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACnC,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,eAAe,CAAC;IAC/F,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IACpD,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAAC;CACjE;AAED,MAAM,WAAW,0BAA0B;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,sBAAsB,CAAC;CACtC;AAED,qBAAa,mBAAmB;;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAId,OAAO,EAAE,0BAA0B;IAM/C,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAM3D,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe;IASnF,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe;IAQnE,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE;IAYxE,KAAK,CACP,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAiFzB,IAAI,CACN,eAAe,EAAE,MAAM,EACvB,SAAS,SAAS,EAClB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,qBAAqB,CAAC;CA0KpC"}
@@ -1,12 +1,47 @@
1
1
  import { createSubagentInstructions, findLastAgentResponseText, } from "../agent/index.js";
2
2
  export const DEFAULT_MAX_SUBAGENT_DEPTH = 3;
3
+ export const DEFAULT_MAX_ACTIVE_SUBAGENTS = 4;
3
4
  export class AgentSessionManager {
5
+ maxActive;
4
6
  maxDepth;
5
7
  #repository;
6
8
  constructor(options) {
7
9
  this.#repository = options.repository;
10
+ this.maxActive = options.maxActive ?? DEFAULT_MAX_ACTIVE_SUBAGENTS;
8
11
  this.maxDepth = options.maxDepth ?? DEFAULT_MAX_SUBAGENT_DEPTH;
9
12
  }
13
+ taskSession(sessionId) {
14
+ const session = this.#repository.get(sessionId);
15
+ if (session === undefined)
16
+ return undefined;
17
+ return this.#repository.get(session.agentMetadata().rootSessionId) ?? session;
18
+ }
19
+ followUp(parentSessionId, target, message) {
20
+ const child = this.#resolveTarget(parentSessionId, target);
21
+ const submitted = child.submit({ text: message });
22
+ const parent = this.#parentFor(child);
23
+ parent?.recordSubagentChanged(child.subagentSummary());
24
+ void this.#monitorBackground(parent, child, submitted.runId);
25
+ return this.#managedSubagent(child);
26
+ }
27
+ interrupt(parentSessionId, target) {
28
+ const child = this.#resolveTarget(parentSessionId, target);
29
+ const previous = this.#managedSubagent(child);
30
+ child.abort();
31
+ this.#parentFor(child)?.recordSubagentChanged(child.subagentSummary());
32
+ return previous;
33
+ }
34
+ list(parentSessionId, pathPrefix) {
35
+ const root = this.#rootFor(parentSessionId);
36
+ const agents = this.#repository
37
+ .listByRoot(root.id)
38
+ .filter((session) => session.isSubagent())
39
+ .map((session) => this.#managedSubagent(session))
40
+ .sort((left, right) => left.path.localeCompare(right.path));
41
+ return pathPrefix === undefined
42
+ ? agents
43
+ : agents.filter((agent) => agent.path.startsWith(pathPrefix));
44
+ }
10
45
  async spawn(parentSessionId, request, signal) {
11
46
  const parent = this.#repository.get(parentSessionId);
12
47
  if (parent === undefined) {
@@ -17,6 +52,16 @@ export class AgentSessionManager {
17
52
  if (depth > this.maxDepth) {
18
53
  throw new Error(`Subagents are limited to ${this.maxDepth} nested levels.`);
19
54
  }
55
+ const active = this.#repository
56
+ .listByRoot(parentMetadata.rootSessionId)
57
+ .filter((session) => {
58
+ const status = session.subagentSummary().status;
59
+ return status === "queued" || status === "running";
60
+ });
61
+ if (active.length >= this.maxActive) {
62
+ throw new Error(`No more than ${this.maxActive} subagents can run at once.`);
63
+ }
64
+ const taskName = this.#taskName(parent, request.taskName, request.description);
20
65
  const metadata = {
21
66
  depth,
22
67
  description: request.description,
@@ -25,6 +70,7 @@ export class AgentSessionManager {
25
70
  ? { parentToolCallId: request.parentToolCallId }
26
71
  : {}),
27
72
  rootSessionId: parentMetadata.rootSessionId,
73
+ taskName,
28
74
  type: "subagent",
29
75
  };
30
76
  const parentRequest = parent.requestForSubagent();
@@ -32,26 +78,31 @@ export class AgentSessionManager {
32
78
  ...parentRequest,
33
79
  instructions: createSubagentInstructions(parentRequest.instructions, depth, this.maxDepth),
34
80
  }, metadata);
81
+ const submitted = child.submit({ text: request.prompt });
82
+ parent.recordSubagentChanged(child.subagentSummary());
83
+ if (request.background === true) {
84
+ void this.#monitorBackground(parent, child, submitted.runId);
85
+ return {
86
+ output: "The subagent is running in the background.",
87
+ path: this.#pathFor(child),
88
+ sessionId: child.id,
89
+ status: "running",
90
+ taskName,
91
+ };
92
+ }
35
93
  const abortChild = () => child.abort();
36
94
  signal?.addEventListener("abort", abortChild, { once: true });
37
95
  try {
38
- const submitted = child.submit({ text: request.prompt });
39
- parent.recordSubagentChanged(child.subagentSummary());
40
- if (signal?.aborted) {
96
+ if (signal?.aborted)
41
97
  child.abort();
42
- }
43
98
  const completion = await child.waitForRun(submitted.runId);
44
- const summary = child.subagentSummary();
45
- parent.recordSubagentChanged(summary);
46
- const output = (completion.status === "error" ? completion.errorMessage : undefined) ??
47
- findLastAgentResponseText(child.snapshot().snapshot.messages) ??
48
- (completion.status === "aborted"
49
- ? "The subagent was stopped before it returned a response."
50
- : "The subagent finished without a text response.");
99
+ parent.recordSubagentChanged(child.subagentSummary());
51
100
  return {
52
- output,
101
+ output: this.#completionOutput(child, completion.status, completion.errorMessage),
102
+ path: this.#pathFor(child),
53
103
  sessionId: child.id,
54
104
  status: completion.status,
105
+ taskName,
55
106
  };
56
107
  }
57
108
  catch (error) {
@@ -62,4 +113,144 @@ export class AgentSessionManager {
62
113
  signal?.removeEventListener("abort", abortChild);
63
114
  }
64
115
  }
116
+ async wait(parentSessionId, timeoutMs = 30_000, signal) {
117
+ const initial = this.list(parentSessionId);
118
+ const running = initial.filter((agent) => agent.status === "running");
119
+ const terminal = initial.filter((agent) => agent.status !== "running");
120
+ if (running.length === 0) {
121
+ return { agents: terminal, timedOut: false };
122
+ }
123
+ const runningSessionIds = new Set(running.map((agent) => agent.sessionId));
124
+ const deadline = Date.now() + Math.max(0, timeoutMs);
125
+ while (Date.now() < deadline) {
126
+ if (signal?.aborted)
127
+ throw new Error("Waiting for subagents was cancelled.");
128
+ await new Promise((resolve) => setTimeout(resolve, Math.min(100, deadline - Date.now())));
129
+ const current = this.list(parentSessionId);
130
+ const changed = current.filter((agent) => runningSessionIds.has(agent.sessionId) && agent.status !== "running");
131
+ if (changed.length > 0)
132
+ return { agents: changed, timedOut: false };
133
+ }
134
+ return { agents: [], timedOut: true };
135
+ }
136
+ #completionOutput(child, status, errorMessage) {
137
+ return ((status === "error" ? errorMessage : undefined) ??
138
+ findLastAgentResponseText(child.snapshot().snapshot.messages) ??
139
+ (status === "aborted"
140
+ ? "The subagent was stopped before it returned a response."
141
+ : "The subagent finished without a text response."));
142
+ }
143
+ #managedSubagent(child) {
144
+ const summary = child.subagentSummary();
145
+ return {
146
+ description: summary.description,
147
+ path: this.#pathFor(child),
148
+ sessionId: child.id,
149
+ status: this.#runStatus(summary.status),
150
+ taskName: child.agentMetadata().taskName ?? child.id,
151
+ };
152
+ }
153
+ async #monitorBackground(parent, child, runId) {
154
+ try {
155
+ const completion = await child.waitForRun(runId);
156
+ parent?.recordSubagentChanged(child.subagentSummary());
157
+ if (parent === undefined)
158
+ return;
159
+ const output = this.#completionOutput(child, completion.status, completion.errorMessage);
160
+ const taskName = child.agentMetadata().taskName ?? child.id;
161
+ const description = child.subagentSummary().description;
162
+ const outcome = completion.status === "completed"
163
+ ? "completed"
164
+ : completion.status === "aborted"
165
+ ? "was stopped"
166
+ : "failed";
167
+ parent.submit({
168
+ displayText: `Background work "${description}" ${outcome}.`,
169
+ text: [
170
+ "<subagent-notification>",
171
+ `Task: ${taskName}`,
172
+ `Status: ${completion.status}`,
173
+ `Result: ${output}`,
174
+ "</subagent-notification>",
175
+ ].join("\n"),
176
+ });
177
+ }
178
+ catch {
179
+ parent?.recordSubagentChanged(child.subagentSummary());
180
+ }
181
+ }
182
+ #parentFor(child) {
183
+ const parentSessionId = child.agentMetadata().parentSessionId;
184
+ return parentSessionId === undefined ? undefined : this.#repository.get(parentSessionId);
185
+ }
186
+ #pathFor(child) {
187
+ const names = [];
188
+ let current = child;
189
+ while (current !== undefined && current.isSubagent()) {
190
+ const metadata = current.agentMetadata();
191
+ names.unshift(metadata.taskName ?? current.id);
192
+ current =
193
+ metadata.parentSessionId === undefined
194
+ ? undefined
195
+ : this.#repository.get(metadata.parentSessionId);
196
+ }
197
+ return `/root/${names.join("/")}`;
198
+ }
199
+ #resolveTarget(parentSessionId, target) {
200
+ const root = this.#rootFor(parentSessionId);
201
+ const matches = this.#repository.listByRoot(root.id).filter((session) => {
202
+ if (!session.isSubagent())
203
+ return false;
204
+ const metadata = session.agentMetadata();
205
+ return (session.id === target ||
206
+ metadata.taskName === target ||
207
+ this.#pathFor(session) === target);
208
+ });
209
+ if (matches.length === 0)
210
+ throw new Error(`Subagent '${target}' was not found.`);
211
+ if (matches.length > 1) {
212
+ throw new Error(`Subagent name '${target}' is ambiguous. Use its full task path.`);
213
+ }
214
+ return matches[0];
215
+ }
216
+ #rootFor(sessionId) {
217
+ const session = this.#repository.get(sessionId);
218
+ if (session === undefined)
219
+ throw new Error("The current session is no longer available.");
220
+ return this.#repository.get(session.agentMetadata().rootSessionId) ?? session;
221
+ }
222
+ #runStatus(status) {
223
+ if (status === "aborted" || status === "error" || status === "completed")
224
+ return status;
225
+ return "running";
226
+ }
227
+ #taskName(parent, requested, description) {
228
+ if (requested !== undefined && !/^[a-z0-9_]+$/u.test(requested)) {
229
+ throw new Error("Task names may contain only lowercase letters, numbers, and underscores.");
230
+ }
231
+ const root = this.#rootFor(parent.id);
232
+ const existing = new Set(this.#repository
233
+ .listByRoot(root.id)
234
+ .map((session) => session.agentMetadata().taskName)
235
+ .filter((name) => name !== undefined));
236
+ if (requested !== undefined) {
237
+ if (existing.has(requested)) {
238
+ throw new Error(`A subagent named '${requested}' already exists in this session.`);
239
+ }
240
+ return requested;
241
+ }
242
+ const normalized = description
243
+ .toLowerCase()
244
+ .replace(/[^a-z0-9]+/gu, "_")
245
+ .replace(/^_+|_+$/gu, "")
246
+ .slice(0, 32);
247
+ const base = normalized.length > 0 ? normalized : "task";
248
+ let candidate = base;
249
+ let suffix = 2;
250
+ while (existing.has(candidate)) {
251
+ candidate = `${base}_${suffix}`;
252
+ suffix += 1;
253
+ }
254
+ return candidate;
255
+ }
65
256
  }
@@ -1,6 +1,14 @@
1
+ import type { AgentCompactionResult } from "../agent/index.js";
1
2
  import type { Message, UserMessage } from "../agent/types.js";
2
- import type { ChangeEffortRequest, ChangeModelRequest, CreateSessionRequest, EventId, ModelCatalog, ProtocolSession, SessionEvent, SessionAgentMetadata, SessionInterruption, SessionStatus, SessionSummary, SubagentSummary, SessionTitleStatus, SubmitMessageRequest, SubmitMessageResponse } from "../protocol/index.js";
3
+ import { type ChangeGoalStatusRequest, type CreateGoalRequest, type SessionGoal } from "../goals/index.js";
4
+ import type { CodingAssistantRuntime } from "../app/CodingAssistantRuntime.js";
5
+ import { type CreateCodingAssistantAgentOptions } from "../app/createCodingAssistantAgent.js";
6
+ import type { ChangeEffortRequest, ChangeModelRequest, ChangePermissionModeRequest, CreateSessionRequest, EventId, ModelCatalog, ProtocolSession, SessionEvent, SessionAgentMetadata, SessionInterruption, SessionStatus, SessionSummary, SubagentSummary, SessionTitleStatus, SubmitMessageRequest, SubmitMessageResponse, SteerMessageResponse } from "../protocol/index.js";
3
7
  import type { Model } from "../providers/types.js";
8
+ import type { UserInputRequest, UserInputResponse } from "../user-input/index.js";
9
+ import { type McpToolProvider } from "../mcp/index.js";
10
+ import type { CreateTaskRequest, SessionTask, UpdateTaskRequest, UpdateTaskResult } from "../tasks/index.js";
11
+ import { type PermissionMode } from "../permissions/index.js";
4
12
  import { SessionEventLog } from "./SessionEventLog.js";
5
13
  import type { AgentSessionManager } from "./AgentSessionManager.js";
6
14
  export interface PersistedSessionMessage {
@@ -11,6 +19,7 @@ export interface PersistedSessionMessage {
11
19
  }
12
20
  export interface PersistedQueuedRun {
13
21
  displayText: string;
22
+ kind: "goal" | "user";
14
23
  runId: string;
15
24
  text: string;
16
25
  userMessage: UserMessage;
@@ -20,17 +29,22 @@ export interface PersistedSessionState {
20
29
  agent: SessionAgentMetadata;
21
30
  agentId: string;
22
31
  cwd: string;
32
+ contextMessages?: readonly Message[];
23
33
  effort?: string;
24
34
  id: string;
25
35
  instructions?: string;
36
+ goal?: SessionGoal;
26
37
  interruption?: SessionInterruption;
27
38
  lastMessageAt?: number;
28
39
  messages: readonly PersistedSessionMessage[];
29
40
  modelId: string;
30
41
  models: readonly Model[];
31
42
  providerId: string;
43
+ permissionMode: PermissionMode;
32
44
  queuedRuns: readonly PersistedQueuedRun[];
45
+ nextTaskId: number;
33
46
  status: SessionStatus;
47
+ tasks: readonly SessionTask[];
34
48
  title?: string;
35
49
  titleError?: string;
36
50
  titleStatus: SessionTitleStatus;
@@ -46,11 +60,13 @@ export interface InMemorySessionPersistence {
46
60
  export interface InMemorySessionOptions {
47
61
  agentManager?: AgentSessionManager;
48
62
  createEventId: () => EventId;
63
+ createRuntime?: (options: CreateCodingAssistantAgentOptions) => CodingAssistantRuntime;
49
64
  emitCreatedEvent?: boolean;
50
65
  events?: readonly SessionEvent[];
51
66
  now?: () => number;
52
67
  modelCatalog: ModelCatalog;
53
68
  metadata?: SessionAgentMetadata;
69
+ mcpToolProvider?: McpToolProvider;
54
70
  onAppendEvent?: (event: SessionEvent) => void;
55
71
  persistence?: InMemorySessionPersistence;
56
72
  request: CreateSessionRequest;
@@ -72,9 +88,25 @@ export declare class InMemorySession {
72
88
  agentMetadata(): SessionAgentMetadata;
73
89
  changeModel(request: ChangeModelRequest): ProtocolSession;
74
90
  changeEffort(request: ChangeEffortRequest): ProtocolSession;
91
+ changePermissionMode(request: ChangePermissionModeRequest): ProtocolSession;
92
+ setGoal(request: CreateGoalRequest): SessionGoal;
93
+ changeGoalStatus(request: ChangeGoalStatusRequest, options?: {
94
+ stopActiveGoalRun?: boolean;
95
+ }): SessionGoal;
96
+ clearGoal(): boolean;
97
+ goal(): SessionGoal | undefined;
98
+ requestUserInput(request: UserInputRequest, options?: {
99
+ signal?: AbortSignal;
100
+ }): Promise<UserInputResponse>;
101
+ answerUserInput(requestId: string, response: UserInputResponse): ProtocolSession | undefined;
102
+ createTask(request: CreateTaskRequest): SessionTask;
103
+ getTask(taskId: string): SessionTask | undefined;
104
+ listTasks(): readonly SessionTask[];
105
+ updateTask(taskId: string, request: UpdateTaskRequest): UpdateTaskResult;
75
106
  emitCreatedEvent(): void;
76
107
  markInterrupted(interruption: SessionInterruption): void;
77
108
  reset(): ProtocolSession;
109
+ compact(signal?: AbortSignal): Promise<AgentCompactionResult>;
78
110
  isSubagent(): boolean;
79
111
  recordSubagentChanged(subagent: SubagentSummary): void;
80
112
  requestForSubagent(): CreateSessionRequest;
@@ -82,6 +114,7 @@ export declare class InMemorySession {
82
114
  summary(): SessionSummary;
83
115
  state(): PersistedSessionState;
84
116
  submit(request: SubmitMessageRequest): SubmitMessageResponse;
117
+ steer(request: SubmitMessageRequest): SteerMessageResponse;
85
118
  subagentSummary(): SubagentSummary;
86
119
  waitForRun(runId: string): Promise<SessionRunCompletion>;
87
120
  }