@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
@@ -2,26 +2,41 @@ export { codexApplyPatchTool } from "./apply_patch.js";
2
2
  export { codexExecCommandTool } from "./exec_command.js";
3
3
  export { codexViewImageTool } from "./view_image.js";
4
4
  export { codexWriteStdinTool } from "./write_stdin.js";
5
+ export { codexUpdatePlanTool } from "./update_plan.js";
6
+ export { codexRequestUserInputTool } from "./request_user_input.js";
7
+ export { codexSpawnAgentTool } from "./spawn_agent.js";
8
+ export { codexFollowupTaskTool } from "./followup_task.js";
9
+ export { codexInterruptAgentTool } from "./interrupt_agent.js";
10
+ export { codexListAgentsTool } from "./list_agents.js";
11
+ export { codexWaitAgentTool } from "./wait_agent.js";
12
+ export { unifiedExecOutputSchema } from "./unifiedExecOutput.js";
5
13
  export declare const codexTools: readonly [import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
6
14
  cmd: import("@sinclair/typebox").TString;
7
15
  workdir: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
- tty: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
9
16
  yield_time_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
10
17
  max_output_tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
11
18
  shell: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
- login: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
19
+ sandbox_permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"use_default">, import("@sinclair/typebox").TLiteral<"require_escalated">]>>;
20
+ justification: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
13
21
  }>, import("@sinclair/typebox").TObject<{
14
- stdout: import("@sinclair/typebox").TString;
15
- stderr: import("@sinclair/typebox").TString;
16
- exitCode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
17
- timedOut: import("@sinclair/typebox").TBoolean;
22
+ chunk_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
23
+ exit_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
24
+ original_token_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
25
+ output: import("@sinclair/typebox").TString;
26
+ session_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
27
+ wall_time_seconds: import("@sinclair/typebox").TNumber;
18
28
  }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
19
29
  session_id: import("@sinclair/typebox").TNumber;
20
30
  chars: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
31
  yield_time_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
22
32
  max_output_tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
23
33
  }>, import("@sinclair/typebox").TObject<{
24
- text: import("@sinclair/typebox").TString;
34
+ chunk_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
35
+ exit_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
36
+ original_token_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
37
+ output: import("@sinclair/typebox").TString;
38
+ session_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
39
+ wall_time_seconds: import("@sinclair/typebox").TNumber;
25
40
  }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
26
41
  patch: import("@sinclair/typebox").TString;
27
42
  workdir: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
@@ -33,5 +48,73 @@ export declare const codexTools: readonly [import("../../agent/types.js").Define
33
48
  }>, import("@sinclair/typebox").TObject<{
34
49
  image_url: import("@sinclair/typebox").TString;
35
50
  detail: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"original">]>;
51
+ }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
52
+ explanation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
53
+ plan: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
54
+ step: import("@sinclair/typebox").TString;
55
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"in_progress">, import("@sinclair/typebox").TLiteral<"completed">]>;
56
+ }>>;
57
+ }>, import("@sinclair/typebox").TObject<{
58
+ text: import("@sinclair/typebox").TString;
59
+ }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
60
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
61
+ id: import("@sinclair/typebox").TString;
62
+ header: import("@sinclair/typebox").TString;
63
+ question: import("@sinclair/typebox").TString;
64
+ options: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
65
+ label: import("@sinclair/typebox").TString;
66
+ description: import("@sinclair/typebox").TString;
67
+ }>>;
68
+ }>>;
69
+ }>, import("@sinclair/typebox").TObject<{
70
+ answers: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
71
+ answers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
72
+ }>>;
73
+ }>>];
74
+ export declare const codexCollaborationTools: readonly [import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
75
+ task_name: import("@sinclair/typebox").TString;
76
+ message: import("@sinclair/typebox").TString;
77
+ }>, import("@sinclair/typebox").TObject<{
78
+ agent_id: import("@sinclair/typebox").TString;
79
+ path: import("@sinclair/typebox").TString;
80
+ task_name: import("@sinclair/typebox").TString;
81
+ }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
82
+ target: import("@sinclair/typebox").TString;
83
+ message: import("@sinclair/typebox").TString;
84
+ }>, import("@sinclair/typebox").TObject<{
85
+ description: import("@sinclair/typebox").TString;
86
+ path: import("@sinclair/typebox").TString;
87
+ sessionId: import("@sinclair/typebox").TString;
88
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
89
+ taskName: import("@sinclair/typebox").TString;
90
+ }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
91
+ timeout_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
92
+ }>, import("@sinclair/typebox").TObject<{
93
+ agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
94
+ description: import("@sinclair/typebox").TString;
95
+ path: import("@sinclair/typebox").TString;
96
+ sessionId: import("@sinclair/typebox").TString;
97
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
98
+ taskName: import("@sinclair/typebox").TString;
99
+ }>>;
100
+ timed_out: import("@sinclair/typebox").TBoolean;
101
+ }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
102
+ path_prefix: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
103
+ }>, import("@sinclair/typebox").TObject<{
104
+ agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
105
+ description: import("@sinclair/typebox").TString;
106
+ path: import("@sinclair/typebox").TString;
107
+ sessionId: import("@sinclair/typebox").TString;
108
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
109
+ taskName: import("@sinclair/typebox").TString;
110
+ }>>;
111
+ }>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
112
+ target: import("@sinclair/typebox").TString;
113
+ }>, import("@sinclair/typebox").TObject<{
114
+ description: import("@sinclair/typebox").TString;
115
+ path: import("@sinclair/typebox").TString;
116
+ sessionId: import("@sinclair/typebox").TString;
117
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
118
+ taskName: import("@sinclair/typebox").TString;
36
119
  }>>];
37
120
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAcjE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOb,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM1B,CAAC"}
@@ -2,13 +2,37 @@ export { codexApplyPatchTool } from "./apply_patch.js";
2
2
  export { codexExecCommandTool } from "./exec_command.js";
3
3
  export { codexViewImageTool } from "./view_image.js";
4
4
  export { codexWriteStdinTool } from "./write_stdin.js";
5
+ export { codexUpdatePlanTool } from "./update_plan.js";
6
+ export { codexRequestUserInputTool } from "./request_user_input.js";
7
+ export { codexSpawnAgentTool } from "./spawn_agent.js";
8
+ export { codexFollowupTaskTool } from "./followup_task.js";
9
+ export { codexInterruptAgentTool } from "./interrupt_agent.js";
10
+ export { codexListAgentsTool } from "./list_agents.js";
11
+ export { codexWaitAgentTool } from "./wait_agent.js";
12
+ export { unifiedExecOutputSchema } from "./unifiedExecOutput.js";
5
13
  import { codexApplyPatchTool } from "./apply_patch.js";
6
14
  import { codexExecCommandTool } from "./exec_command.js";
7
15
  import { codexViewImageTool } from "./view_image.js";
8
16
  import { codexWriteStdinTool } from "./write_stdin.js";
17
+ import { codexUpdatePlanTool } from "./update_plan.js";
18
+ import { codexRequestUserInputTool } from "./request_user_input.js";
19
+ import { codexSpawnAgentTool } from "./spawn_agent.js";
20
+ import { codexFollowupTaskTool } from "./followup_task.js";
21
+ import { codexInterruptAgentTool } from "./interrupt_agent.js";
22
+ import { codexListAgentsTool } from "./list_agents.js";
23
+ import { codexWaitAgentTool } from "./wait_agent.js";
9
24
  export const codexTools = [
10
25
  codexExecCommandTool,
11
26
  codexWriteStdinTool,
12
27
  codexApplyPatchTool,
13
28
  codexViewImageTool,
29
+ codexUpdatePlanTool,
30
+ codexRequestUserInputTool,
31
+ ];
32
+ export const codexCollaborationTools = [
33
+ codexSpawnAgentTool,
34
+ codexFollowupTaskTool,
35
+ codexWaitAgentTool,
36
+ codexListAgentsTool,
37
+ codexInterruptAgentTool,
14
38
  ];
@@ -0,0 +1,10 @@
1
+ export declare const codexInterruptAgentTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
2
+ target: import("@sinclair/typebox").TString;
3
+ }>, import("@sinclair/typebox").TObject<{
4
+ description: import("@sinclair/typebox").TString;
5
+ path: import("@sinclair/typebox").TString;
6
+ sessionId: import("@sinclair/typebox").TString;
7
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
8
+ taskName: import("@sinclair/typebox").TString;
9
+ }>>;
10
+ //# sourceMappingURL=interrupt_agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interrupt_agent.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/interrupt_agent.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,uBAAuB;;;;;;;;GAalC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { defineTool } from "../../agent/types.js";
3
+ import { managedSubagentSchema } from "./subagentSchemas.js";
4
+ import { requireSubagentContext } from "./requireSubagentContext.js";
5
+ export const codexInterruptAgentTool = defineTool({
6
+ name: "interrupt_agent",
7
+ label: "interrupt_agent",
8
+ description: "Stop an existing subagent's current turn. The agent remains available for later follow-up work.",
9
+ arguments: Type.Object({
10
+ target: Type.String({ description: "Agent id, task name, or full task path." }),
11
+ }),
12
+ returnType: managedSubagentSchema,
13
+ execute: ({ target }, context) => requireSubagentContext(context).interrupt(target),
14
+ toLLM: (result) => [{ type: "text", text: JSON.stringify(result) }],
15
+ toUI: (result) => `Stopped the current turn for ${result.description}.`,
16
+ locks: [],
17
+ });
@@ -0,0 +1,12 @@
1
+ export declare const codexListAgentsTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
2
+ path_prefix: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
3
+ }>, import("@sinclair/typebox").TObject<{
4
+ agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
5
+ description: import("@sinclair/typebox").TString;
6
+ path: import("@sinclair/typebox").TString;
7
+ sessionId: import("@sinclair/typebox").TString;
8
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
9
+ taskName: import("@sinclair/typebox").TString;
10
+ }>>;
11
+ }>>;
12
+ //# sourceMappingURL=list_agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_agents.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/list_agents.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB;;;;;;;;;;GAqB9B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { defineTool } from "../../agent/types.js";
3
+ import { managedSubagentSchema } from "./subagentSchemas.js";
4
+ import { requireSubagentContext } from "./requireSubagentContext.js";
5
+ export const codexListAgentsTool = defineTool({
6
+ name: "list_agents",
7
+ label: "list_agents",
8
+ description: "List subagents in the current session tree and their latest status.",
9
+ arguments: Type.Object({
10
+ path_prefix: Type.Optional(Type.String({ description: "Full task-path prefix used to filter the list." })),
11
+ }),
12
+ returnType: Type.Object({ agents: Type.Array(managedSubagentSchema) }),
13
+ execute: ({ path_prefix }, context) => ({
14
+ agents: Array.from(requireSubagentContext(context).list(path_prefix), (agent) => ({
15
+ ...agent,
16
+ })),
17
+ }),
18
+ toLLM: (result) => [{ type: "text", text: JSON.stringify(result) }],
19
+ toUI: (result) => result.agents.length === 0
20
+ ? "No subagents have been started."
21
+ : `${result.agents.length} subagent${result.agents.length === 1 ? "" : "s"}.`,
22
+ locks: [],
23
+ });
@@ -0,0 +1,16 @@
1
+ export declare const codexRequestUserInputTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
2
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
3
+ id: import("@sinclair/typebox").TString;
4
+ header: import("@sinclair/typebox").TString;
5
+ question: import("@sinclair/typebox").TString;
6
+ options: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
7
+ label: import("@sinclair/typebox").TString;
8
+ description: import("@sinclair/typebox").TString;
9
+ }>>;
10
+ }>>;
11
+ }>, import("@sinclair/typebox").TObject<{
12
+ answers: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
13
+ answers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
14
+ }>>;
15
+ }>>;
16
+ //# sourceMappingURL=request_user_input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request_user_input.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/request_user_input.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;GA4CpC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { defineTool } from "../../agent/types.js";
3
+ const optionSchema = Type.Object({
4
+ label: Type.String({ description: "User-facing label (1-5 words)." }),
5
+ description: Type.String({
6
+ description: "One short sentence explaining impact or tradeoff if selected.",
7
+ }),
8
+ }, { additionalProperties: false });
9
+ const questionSchema = Type.Object({
10
+ id: Type.String({ description: "Stable identifier for mapping answers." }),
11
+ header: Type.String({
12
+ maxLength: 12,
13
+ description: "Short header label shown in the interface, at most 12 characters.",
14
+ }),
15
+ question: Type.String({ description: "Single-sentence prompt shown to the user." }),
16
+ options: Type.Array(optionSchema, {
17
+ minItems: 2,
18
+ maxItems: 3,
19
+ description: "Provide two or three mutually exclusive choices. Do not add an Other option; the interface provides one.",
20
+ }),
21
+ }, { additionalProperties: false });
22
+ const answerSchema = Type.Object({ answers: Type.Array(Type.String()) });
23
+ export const codexRequestUserInputTool = defineTool({
24
+ name: "request_user_input",
25
+ label: "request_user_input",
26
+ description: "Request user input for one to three short questions and wait for the response.",
27
+ arguments: Type.Object({
28
+ questions: Type.Array(questionSchema, { minItems: 1, maxItems: 3 }),
29
+ }, { additionalProperties: false }),
30
+ returnType: Type.Object({ answers: Type.Record(Type.String(), answerSchema) }),
31
+ async execute({ questions }, context, execution) {
32
+ if (context.userInput === undefined) {
33
+ throw new Error("Interactive user input is unavailable in this session.");
34
+ }
35
+ if (execution.toolCallId === undefined) {
36
+ throw new Error("Interactive user input requires a tool call identifier.");
37
+ }
38
+ if (new Set(questions.map((question) => question.id)).size !== questions.length) {
39
+ throw new Error("Interactive question identifiers must be unique.");
40
+ }
41
+ const response = await context.userInput.request({
42
+ requestId: execution.toolCallId,
43
+ questions: questions.map((question) => ({
44
+ ...question,
45
+ multiSelect: false,
46
+ })),
47
+ }, execution.signal === undefined ? undefined : { signal: execution.signal });
48
+ return {
49
+ answers: Object.fromEntries(Object.entries(response.answers).map(([id, answers]) => [
50
+ id,
51
+ { answers: [...answers] },
52
+ ])),
53
+ };
54
+ },
55
+ toLLM: (result) => [{ type: "text", text: JSON.stringify(result) }],
56
+ toUI: (_result, args) => `Answered ${args.questions.length} question${args.questions.length === 1 ? "" : "s"}`,
57
+ locks: ["user_input"],
58
+ });
@@ -0,0 +1,3 @@
1
+ import type { AgentContext, SubagentContext } from "../../agent/index.js";
2
+ export declare function requireSubagentContext(context: AgentContext): SubagentContext;
3
+ //# sourceMappingURL=requireSubagentContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireSubagentContext.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/requireSubagentContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE1E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,eAAe,CAK7E"}
@@ -0,0 +1,6 @@
1
+ export function requireSubagentContext(context) {
2
+ if (context.subagents === undefined) {
3
+ throw new Error("Subagent management is unavailable in this session.");
4
+ }
5
+ return context.subagents;
6
+ }
@@ -0,0 +1,9 @@
1
+ export declare const codexSpawnAgentTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
2
+ task_name: import("@sinclair/typebox").TString;
3
+ message: import("@sinclair/typebox").TString;
4
+ }>, import("@sinclair/typebox").TObject<{
5
+ agent_id: import("@sinclair/typebox").TString;
6
+ path: import("@sinclair/typebox").TString;
7
+ task_name: import("@sinclair/typebox").TString;
8
+ }>>;
9
+ //# sourceMappingURL=spawn_agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn_agent.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/spawn_agent.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB;;;;;;;GA+B9B,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { defineTool } from "../../agent/types.js";
3
+ import { humanizeTaskName } from "./humanizeTaskName.js";
4
+ import { requireSubagentContext } from "./requireSubagentContext.js";
5
+ export const codexSpawnAgentTool = defineTool({
6
+ name: "spawn_agent",
7
+ label: "spawn_agent",
8
+ description: "Spawn a background subagent for a concrete, bounded task. The new agent shares the workspace and reports back when it finishes.",
9
+ arguments: Type.Object({
10
+ task_name: Type.String({
11
+ description: "Lowercase task name using letters, numbers, and underscores.",
12
+ }),
13
+ message: Type.String({ description: "Complete instructions for the new agent." }),
14
+ }),
15
+ returnType: Type.Object({
16
+ agent_id: Type.String(),
17
+ path: Type.String(),
18
+ task_name: Type.String(),
19
+ }),
20
+ execute: async ({ message, task_name }, context, execution) => {
21
+ const result = await requireSubagentContext(context).spawn({
22
+ background: true,
23
+ description: humanizeTaskName(task_name),
24
+ ...(execution.toolCallId === undefined
25
+ ? {}
26
+ : { parentToolCallId: execution.toolCallId }),
27
+ prompt: message,
28
+ taskName: task_name,
29
+ });
30
+ return { agent_id: result.sessionId, path: result.path, task_name: result.taskName };
31
+ },
32
+ toLLM: (result) => [{ type: "text", text: JSON.stringify(result) }],
33
+ toUI: (result) => `Started background task ${humanizeTaskName(result.task_name)}.`,
34
+ locks: [],
35
+ });
@@ -0,0 +1,8 @@
1
+ export declare const managedSubagentSchema: import("@sinclair/typebox").TObject<{
2
+ description: import("@sinclair/typebox").TString;
3
+ path: import("@sinclair/typebox").TString;
4
+ sessionId: import("@sinclair/typebox").TString;
5
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
6
+ taskName: import("@sinclair/typebox").TString;
7
+ }>;
8
+ //# sourceMappingURL=subagentSchemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagentSchemas.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/subagentSchemas.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;;;;;EAWhC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ export const managedSubagentSchema = Type.Object({
3
+ description: Type.String(),
4
+ path: Type.String(),
5
+ sessionId: Type.String(),
6
+ status: Type.Union([
7
+ Type.Literal("aborted"),
8
+ Type.Literal("completed"),
9
+ Type.Literal("error"),
10
+ Type.Literal("running"),
11
+ ]),
12
+ taskName: Type.String(),
13
+ });
@@ -0,0 +1,14 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ import type { BashSessionSnapshot } from "../../agent/index.js";
3
+ export declare const unifiedExecOutputSchema: import("@sinclair/typebox").TObject<{
4
+ chunk_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
+ exit_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
6
+ original_token_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
7
+ output: import("@sinclair/typebox").TString;
8
+ session_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
9
+ wall_time_seconds: import("@sinclair/typebox").TNumber;
10
+ }>;
11
+ export type UnifiedExecOutput = Static<typeof unifiedExecOutputSchema>;
12
+ export declare function formatUnifiedExecOutput(result: UnifiedExecOutput): string;
13
+ export declare function createUnifiedExecOutput(snapshot: BashSessionSnapshot, wallTimeSeconds: number, maxOutputTokens?: number): UnifiedExecOutput;
14
+ //# sourceMappingURL=unifiedExecOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unifiedExecOutput.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/unifiedExecOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEvE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAezE;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAE,MAAM,EACvB,eAAe,SAAS,GACzB,iBAAiB,CAkBnB"}
@@ -0,0 +1,44 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ export const unifiedExecOutputSchema = Type.Object({
3
+ chunk_id: Type.Optional(Type.String()),
4
+ exit_code: Type.Optional(Type.Number()),
5
+ original_token_count: Type.Optional(Type.Number()),
6
+ output: Type.String(),
7
+ session_id: Type.Optional(Type.Number()),
8
+ wall_time_seconds: Type.Number(),
9
+ });
10
+ export function formatUnifiedExecOutput(result) {
11
+ const sections = [];
12
+ if (result.chunk_id !== undefined)
13
+ sections.push(`Chunk ID: ${result.chunk_id}`);
14
+ sections.push(`Wall time: ${result.wall_time_seconds.toFixed(4)} seconds`);
15
+ if (result.exit_code !== undefined) {
16
+ sections.push(`Process exited with code ${result.exit_code}`);
17
+ }
18
+ if (result.session_id !== undefined) {
19
+ sections.push(`Process running with session ID ${result.session_id}`);
20
+ }
21
+ if (result.original_token_count !== undefined) {
22
+ sections.push(`Original token count: ${result.original_token_count}`);
23
+ }
24
+ sections.push("Output:", result.output);
25
+ return sections.join("\n");
26
+ }
27
+ export function createUnifiedExecOutput(snapshot, wallTimeSeconds, maxOutputTokens = 10_000) {
28
+ const rawOutput = [snapshot.stdoutDelta, snapshot.stderrDelta]
29
+ .filter((value) => value.length > 0)
30
+ .join("\n");
31
+ const maxCharacters = Math.max(4_000, maxOutputTokens * 4);
32
+ const output = rawOutput.length <= maxCharacters
33
+ ? rawOutput
34
+ : `${rawOutput.slice(0, maxCharacters)}\n[output truncated]`;
35
+ return {
36
+ ...(snapshot.status === "running" ? { session_id: snapshot.sessionId } : {}),
37
+ ...(snapshot.status !== "running" && snapshot.exitCode !== null
38
+ ? { exit_code: snapshot.exitCode }
39
+ : {}),
40
+ original_token_count: Math.ceil(rawOutput.length / 4),
41
+ output,
42
+ wall_time_seconds: wallTimeSeconds,
43
+ };
44
+ }
@@ -0,0 +1,10 @@
1
+ export declare const codexUpdatePlanTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
2
+ explanation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
3
+ plan: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
4
+ step: import("@sinclair/typebox").TString;
5
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"pending">, import("@sinclair/typebox").TLiteral<"in_progress">, import("@sinclair/typebox").TLiteral<"completed">]>;
6
+ }>>;
7
+ }>, import("@sinclair/typebox").TObject<{
8
+ text: import("@sinclair/typebox").TString;
9
+ }>>;
10
+ //# sourceMappingURL=update_plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update_plan.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/update_plan.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,mBAAmB;;;;;;;;GA+B9B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { defineTool } from "../../agent/types.js";
3
+ import { textOutputSchema, toTextBlocks } from "../utils/index.js";
4
+ const planItemSchema = Type.Object({
5
+ step: Type.String({ description: "Task step text." }),
6
+ status: Type.Union([Type.Literal("pending"), Type.Literal("in_progress"), Type.Literal("completed")], { description: "Step status." }),
7
+ }, { additionalProperties: false });
8
+ export const codexUpdatePlanTool = defineTool({
9
+ name: "update_plan",
10
+ label: "update_plan",
11
+ description: `Updates the task plan.
12
+ Provide an optional explanation and a list of plan items, each with a step and status.
13
+ At most one step can be in_progress at a time.`,
14
+ arguments: Type.Object({
15
+ explanation: Type.Optional(Type.String({ description: "Optional explanation for this plan update." })),
16
+ plan: Type.Array(planItemSchema, { description: "The list of steps." }),
17
+ }, { additionalProperties: false }),
18
+ returnType: textOutputSchema,
19
+ execute: async ({ plan }) => {
20
+ const activeSteps = plan.filter((item) => item.status === "in_progress").length;
21
+ if (activeSteps > 1) {
22
+ throw new Error("A plan can have at most one step in progress.");
23
+ }
24
+ return { text: "Plan updated" };
25
+ },
26
+ toLLM: toTextBlocks,
27
+ toUI: (_result, { plan }) => {
28
+ const completed = plan.filter((item) => item.status === "completed").length;
29
+ const active = plan.filter((item) => item.status === "in_progress").length;
30
+ const pending = plan.filter((item) => item.status === "pending").length;
31
+ return `Plan updated: ${completed} completed, ${active} in progress, ${pending} pending`;
32
+ },
33
+ locks: ["update_plan"],
34
+ });
@@ -0,0 +1,13 @@
1
+ export declare const codexWaitAgentTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
2
+ timeout_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
3
+ }>, import("@sinclair/typebox").TObject<{
4
+ agents: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
5
+ description: import("@sinclair/typebox").TString;
6
+ path: import("@sinclair/typebox").TString;
7
+ sessionId: import("@sinclair/typebox").TString;
8
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"error">, import("@sinclair/typebox").TLiteral<"running">]>;
9
+ taskName: import("@sinclair/typebox").TString;
10
+ }>>;
11
+ timed_out: import("@sinclair/typebox").TBoolean;
12
+ }>>;
13
+ //# sourceMappingURL=wait_agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait_agent.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/wait_agent.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB;;;;;;;;;;;GA+B7B,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { defineTool } from "../../agent/types.js";
3
+ import { managedSubagentSchema } from "./subagentSchemas.js";
4
+ import { requireSubagentContext } from "./requireSubagentContext.js";
5
+ export const codexWaitAgentTool = defineTool({
6
+ name: "wait_agent",
7
+ label: "wait_agent",
8
+ description: "Wait for a subagent status change or completion. Returns early when an agent updates or the wait is cancelled.",
9
+ arguments: Type.Object({
10
+ timeout_ms: Type.Optional(Type.Number({
11
+ description: "Maximum wait in milliseconds, from 0 to 60000.",
12
+ maximum: 60_000,
13
+ minimum: 0,
14
+ })),
15
+ }),
16
+ returnType: Type.Object({
17
+ agents: Type.Array(managedSubagentSchema),
18
+ timed_out: Type.Boolean(),
19
+ }),
20
+ execute: async ({ timeout_ms }, context, execution) => {
21
+ const result = await requireSubagentContext(context).wait(timeout_ms, execution.signal);
22
+ return {
23
+ agents: Array.from(result.agents, (agent) => ({ ...agent })),
24
+ timed_out: result.timedOut,
25
+ };
26
+ },
27
+ toLLM: (result) => [{ type: "text", text: JSON.stringify(result) }],
28
+ toUI: (result) => result.timed_out
29
+ ? "No subagent updates arrived before the wait ended."
30
+ : `${result.agents.length} subagent update${result.agents.length === 1 ? "" : "s"}.`,
31
+ locks: [],
32
+ });
@@ -4,6 +4,11 @@ export declare const codexWriteStdinTool: import("../../agent/types.js").Defined
4
4
  yield_time_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
5
5
  max_output_tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
6
6
  }>, import("@sinclair/typebox").TObject<{
7
- text: import("@sinclair/typebox").TString;
7
+ chunk_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
+ exit_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
9
+ original_token_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
10
+ output: import("@sinclair/typebox").TString;
11
+ session_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
12
+ wall_time_seconds: import("@sinclair/typebox").TNumber;
8
13
  }>>;
9
14
  //# sourceMappingURL=write_stdin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write_stdin.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/write_stdin.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;;;;;;GAqC9B,CAAC"}
1
+ {"version":3,"file":"write_stdin.d.ts","sourceRoot":"","sources":["../../../sources/tools/codex/write_stdin.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;GAuE9B,CAAC"}