@qduc/term2 0.8.0 → 0.9.1

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 (996) hide show
  1. package/README.md +397 -0
  2. package/dist/agent.d.ts +1 -9
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +15 -132
  5. package/dist/agent.js.map +1 -1
  6. package/dist/agent.lite-mode.test.d.ts +2 -0
  7. package/dist/agent.lite-mode.test.d.ts.map +1 -0
  8. package/dist/agent.lite-mode.test.js +39 -0
  9. package/dist/agent.lite-mode.test.js.map +1 -0
  10. package/dist/app.d.ts.map +1 -1
  11. package/dist/app.js +28 -16
  12. package/dist/app.js.map +1 -1
  13. package/dist/app.large-uncached-warning.test.js +15 -0
  14. package/dist/app.large-uncached-warning.test.js.map +1 -1
  15. package/dist/commands/effort-command.d.ts +2 -2
  16. package/dist/commands/effort-command.d.ts.map +1 -1
  17. package/dist/commands/effort-command.js +3 -3
  18. package/dist/commands/effort-command.js.map +1 -1
  19. package/dist/commands/guarded-settings-command.d.ts +2 -2
  20. package/dist/commands/guarded-settings-command.d.ts.map +1 -1
  21. package/dist/commands/guarded-settings-command.js +2 -2
  22. package/dist/commands/guarded-settings-command.js.map +1 -1
  23. package/dist/commands/model-command.d.ts +2 -2
  24. package/dist/commands/model-command.d.ts.map +1 -1
  25. package/dist/commands/model-command.js +2 -2
  26. package/dist/commands/model-command.js.map +1 -1
  27. package/dist/commands/retry-command.d.ts +2 -1
  28. package/dist/commands/retry-command.d.ts.map +1 -1
  29. package/dist/commands/retry-command.js +12 -3
  30. package/dist/commands/retry-command.js.map +1 -1
  31. package/dist/commands/skills-command.d.ts +1 -1
  32. package/dist/commands/skills-command.d.ts.map +1 -1
  33. package/dist/commands/skills-command.js +1 -1
  34. package/dist/commands/skills-command.js.map +1 -1
  35. package/dist/commands/undo-command.d.ts +2 -2
  36. package/dist/commands/undo-command.d.ts.map +1 -1
  37. package/dist/commands/undo-command.js +2 -2
  38. package/dist/commands/undo-command.js.map +1 -1
  39. package/dist/components/ApprovalPrompt.test.d.ts +2 -0
  40. package/dist/components/ApprovalPrompt.test.d.ts.map +1 -0
  41. package/dist/components/ApprovalPrompt.test.js +23 -0
  42. package/dist/components/ApprovalPrompt.test.js.map +1 -0
  43. package/dist/components/Common/MenuContainer.d.ts.map +1 -1
  44. package/dist/components/Common/MenuContainer.js.map +1 -1
  45. package/dist/components/Common/MenuContainer.test.d.ts.map +1 -1
  46. package/dist/components/Common/MenuContainer.test.js +53 -24
  47. package/dist/components/Common/MenuContainer.test.js.map +1 -1
  48. package/dist/components/Common/ScrollableTabBar.d.ts.map +1 -1
  49. package/dist/components/Common/ScrollableTabBar.js.map +1 -1
  50. package/dist/components/Common/compute-visible-tabs.d.ts.map +1 -1
  51. package/dist/components/Common/compute-visible-tabs.js.map +1 -1
  52. package/dist/components/Common/compute-visible-tabs.test.d.ts.map +1 -1
  53. package/dist/components/Common/compute-visible-tabs.test.js +28 -28
  54. package/dist/components/Common/compute-visible-tabs.test.js.map +1 -1
  55. package/dist/components/Input/PopupManager.d.ts +1 -9
  56. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  57. package/dist/components/Input/PopupManager.js +8 -10
  58. package/dist/components/Input/PopupManager.js.map +1 -1
  59. package/dist/components/Input/determine-active-menu.d.ts +0 -3
  60. package/dist/components/Input/determine-active-menu.d.ts.map +1 -1
  61. package/dist/components/Input/determine-active-menu.js +2 -10
  62. package/dist/components/Input/determine-active-menu.js.map +1 -1
  63. package/dist/components/Input/input-width.d.ts.map +1 -1
  64. package/dist/components/Input/input-width.js.map +1 -1
  65. package/dist/components/Input/insertions.d.ts +0 -8
  66. package/dist/components/Input/insertions.d.ts.map +1 -1
  67. package/dist/components/Input/insertions.js +0 -12
  68. package/dist/components/Input/insertions.js.map +1 -1
  69. package/dist/components/Input/popup-key-navigation.d.ts.map +1 -1
  70. package/dist/components/Input/popup-key-navigation.js.map +1 -1
  71. package/dist/components/Input/popup-key-navigation.test.d.ts.map +1 -1
  72. package/dist/components/Input/popup-key-navigation.test.js +21 -21
  73. package/dist/components/Input/popup-key-navigation.test.js.map +1 -1
  74. package/dist/components/Input/popup-props.d.ts +1 -3
  75. package/dist/components/Input/popup-props.d.ts.map +1 -1
  76. package/dist/components/Input/popup-props.js +1 -8
  77. package/dist/components/Input/popup-props.js.map +1 -1
  78. package/dist/components/Input/popup-props.test.d.ts.map +1 -1
  79. package/dist/components/Input/popup-props.test.js +3 -10
  80. package/dist/components/Input/popup-props.test.js.map +1 -1
  81. package/dist/components/Input/triggers.d.ts +0 -1
  82. package/dist/components/Input/triggers.d.ts.map +1 -1
  83. package/dist/components/Input/triggers.js +0 -1
  84. package/dist/components/Input/triggers.js.map +1 -1
  85. package/dist/components/InputBox.d.ts.map +1 -1
  86. package/dist/components/InputBox.js +41 -12
  87. package/dist/components/InputBox.js.map +1 -1
  88. package/dist/components/LiveResponse.test.d.ts +2 -0
  89. package/dist/components/LiveResponse.test.d.ts.map +1 -0
  90. package/dist/components/LiveResponse.test.js +13 -0
  91. package/dist/components/LiveResponse.test.js.map +1 -0
  92. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  93. package/dist/components/MarkdownRenderer.js +3 -2
  94. package/dist/components/MarkdownRenderer.js.map +1 -1
  95. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +2 -0
  96. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +1 -0
  97. package/dist/components/ModelSelectionMenu.error-tabs.test.js +18 -0
  98. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +1 -0
  99. package/dist/components/TextInput.d.ts +42 -0
  100. package/dist/components/TextInput.d.ts.map +1 -0
  101. package/dist/components/TextInput.js +398 -0
  102. package/dist/components/TextInput.js.map +1 -0
  103. package/dist/components/TextInput.test.d.ts +2 -0
  104. package/dist/components/TextInput.test.d.ts.map +1 -0
  105. package/dist/components/TextInput.test.js +75 -0
  106. package/dist/components/TextInput.test.js.map +1 -0
  107. package/dist/components/__test_act.test.d.ts +2 -0
  108. package/dist/components/__test_act.test.d.ts.map +1 -0
  109. package/dist/components/__test_act.test.js +22 -0
  110. package/dist/components/__test_act.test.js.map +1 -0
  111. package/dist/components/__test_act_test.d.ts +2 -0
  112. package/dist/components/__test_act_test.d.ts.map +1 -0
  113. package/dist/components/__test_act_test.js +22 -0
  114. package/dist/components/__test_act_test.js.map +1 -0
  115. package/dist/components/act-test.test.d.ts +2 -0
  116. package/dist/components/act-test.test.d.ts.map +1 -0
  117. package/dist/components/act-test.test.js +22 -0
  118. package/dist/components/act-test.test.js.map +1 -0
  119. package/dist/components/common/MenuContainer.d.ts +19 -0
  120. package/dist/components/common/MenuContainer.d.ts.map +1 -0
  121. package/dist/components/common/MenuContainer.js +52 -0
  122. package/dist/components/common/MenuContainer.js.map +1 -0
  123. package/dist/components/common/MenuContainer.test.d.ts +2 -0
  124. package/dist/components/common/MenuContainer.test.d.ts.map +1 -0
  125. package/dist/components/common/MenuContainer.test.js +37 -0
  126. package/dist/components/common/MenuContainer.test.js.map +1 -0
  127. package/dist/components/common/ScrollableTabBar.d.ts +26 -0
  128. package/dist/components/common/ScrollableTabBar.d.ts.map +1 -0
  129. package/dist/components/common/ScrollableTabBar.js +26 -0
  130. package/dist/components/common/ScrollableTabBar.js.map +1 -0
  131. package/dist/components/common/compute-visible-tabs.d.ts +16 -0
  132. package/dist/components/common/compute-visible-tabs.d.ts.map +1 -0
  133. package/dist/components/common/compute-visible-tabs.js +53 -0
  134. package/dist/components/common/compute-visible-tabs.js.map +1 -0
  135. package/dist/components/common/compute-visible-tabs.test.d.ts +2 -0
  136. package/dist/components/common/compute-visible-tabs.test.d.ts.map +1 -0
  137. package/dist/components/common/compute-visible-tabs.test.js +97 -0
  138. package/dist/components/common/compute-visible-tabs.test.js.map +1 -0
  139. package/dist/components/input/PopupManager.d.ts +88 -0
  140. package/dist/components/input/PopupManager.d.ts.map +1 -0
  141. package/dist/components/input/PopupManager.js +21 -0
  142. package/dist/components/input/PopupManager.js.map +1 -0
  143. package/dist/components/input/determine-active-menu.d.ts +27 -0
  144. package/dist/components/input/determine-active-menu.d.ts.map +1 -0
  145. package/dist/components/input/determine-active-menu.js +81 -0
  146. package/dist/components/input/determine-active-menu.js.map +1 -0
  147. package/dist/components/input/input-width.d.ts +8 -0
  148. package/dist/components/input/input-width.d.ts.map +1 -0
  149. package/dist/components/input/input-width.js +24 -0
  150. package/dist/components/input/input-width.js.map +1 -0
  151. package/dist/components/input/insertions.d.ts +44 -0
  152. package/dist/components/input/insertions.d.ts.map +1 -0
  153. package/dist/components/input/insertions.js +67 -0
  154. package/dist/components/input/insertions.js.map +1 -0
  155. package/dist/components/input/popup-key-navigation.d.ts +18 -0
  156. package/dist/components/input/popup-key-navigation.d.ts.map +1 -0
  157. package/dist/components/input/popup-key-navigation.js +16 -0
  158. package/dist/components/input/popup-key-navigation.js.map +1 -0
  159. package/dist/components/input/popup-key-navigation.test.d.ts +2 -0
  160. package/dist/components/input/popup-key-navigation.test.d.ts.map +1 -0
  161. package/dist/components/input/popup-key-navigation.test.js +75 -0
  162. package/dist/components/input/popup-key-navigation.test.js.map +1 -0
  163. package/dist/components/input/popup-props.d.ts +24 -0
  164. package/dist/components/input/popup-props.d.ts.map +1 -0
  165. package/dist/components/input/popup-props.js +72 -0
  166. package/dist/components/input/popup-props.js.map +1 -0
  167. package/dist/components/input/popup-props.test.d.ts +2 -0
  168. package/dist/components/input/popup-props.test.d.ts.map +1 -0
  169. package/dist/components/input/popup-props.test.js +86 -0
  170. package/dist/components/input/popup-props.test.js.map +1 -0
  171. package/dist/components/input/triggers.d.ts +11 -0
  172. package/dist/components/input/triggers.d.ts.map +1 -0
  173. package/dist/components/input/triggers.js +27 -0
  174. package/dist/components/input/triggers.js.map +1 -0
  175. package/dist/components/layout/BottomArea.d.ts +2 -0
  176. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  177. package/dist/components/layout/BottomArea.js +4 -2
  178. package/dist/components/layout/BottomArea.js.map +1 -1
  179. package/dist/components/layout/DiffView.d.ts.map +1 -1
  180. package/dist/components/layout/DiffView.js +33 -26
  181. package/dist/components/layout/DiffView.js.map +1 -1
  182. package/dist/components/layout/StatusBar.d.ts +2 -0
  183. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  184. package/dist/components/layout/StatusBar.js +29 -8
  185. package/dist/components/layout/StatusBar.js.map +1 -1
  186. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  187. package/dist/components/menu/ModelSelectionMenu.js +1 -1
  188. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  189. package/dist/components/message/CommandMessage.d.ts +2 -1
  190. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  191. package/dist/components/message/CommandMessage.js +203 -227
  192. package/dist/components/message/CommandMessage.js.map +1 -1
  193. package/dist/components/message/MessageList.d.ts +16 -0
  194. package/dist/components/message/MessageList.d.ts.map +1 -1
  195. package/dist/components/message/MessageList.js +45 -1
  196. package/dist/components/message/MessageList.js.map +1 -1
  197. package/dist/components/message/command-message-helpers.d.ts +1 -1
  198. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  199. package/dist/components/message/command-message-helpers.js +17 -17
  200. package/dist/components/message/command-message-helpers.js.map +1 -1
  201. package/dist/components/prompt/ApprovalPrompt.ask-user.test.js +35 -12
  202. package/dist/components/prompt/ApprovalPrompt.ask-user.test.js.map +1 -1
  203. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  204. package/dist/components/prompt/ApprovalPrompt.js +124 -14
  205. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  206. package/dist/context/InputContext.d.ts +4 -0
  207. package/dist/context/InputContext.d.ts.map +1 -1
  208. package/dist/context/InputContext.js +5 -1
  209. package/dist/context/InputContext.js.map +1 -1
  210. package/dist/contracts/conversation.d.ts +22 -0
  211. package/dist/contracts/conversation.d.ts.map +1 -1
  212. package/dist/contracts/conversation.js +11 -1
  213. package/dist/contracts/conversation.js.map +1 -1
  214. package/dist/debug_ask_mentor.d.ts +2 -0
  215. package/dist/debug_ask_mentor.d.ts.map +1 -0
  216. package/dist/debug_ask_mentor.js +73 -0
  217. package/dist/debug_ask_mentor.js.map +1 -0
  218. package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js +7 -7
  219. package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js.map +1 -1
  220. package/dist/hooks/use-app-commands.d.ts +3 -2
  221. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  222. package/dist/hooks/use-app-commands.js +16 -8
  223. package/dist/hooks/use-app-commands.js.map +1 -1
  224. package/dist/hooks/use-conversation.d.ts +1 -0
  225. package/dist/hooks/use-conversation.d.ts.map +1 -1
  226. package/dist/hooks/use-conversation.js +92 -9
  227. package/dist/hooks/use-conversation.js.map +1 -1
  228. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +2 -0
  229. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +1 -0
  230. package/dist/hooks/use-conversation.max-turns-undo.test.js +118 -0
  231. package/dist/hooks/use-conversation.max-turns-undo.test.js.map +1 -0
  232. package/dist/hooks/use-handoff-flow.d.ts +3 -2
  233. package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
  234. package/dist/hooks/use-handoff-flow.js +28 -18
  235. package/dist/hooks/use-handoff-flow.js.map +1 -1
  236. package/dist/hooks/use-mode-handlers.d.ts +2 -0
  237. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  238. package/dist/hooks/use-mode-handlers.js +2 -2
  239. package/dist/hooks/use-mode-handlers.js.map +1 -1
  240. package/dist/hooks/use-model-selection.d.ts +1 -0
  241. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  242. package/dist/hooks/use-model-selection.js +19 -5
  243. package/dist/hooks/use-model-selection.js.map +1 -1
  244. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  245. package/dist/hooks/use-path-completion.js +4 -2
  246. package/dist/hooks/use-path-completion.js.map +1 -1
  247. package/dist/hooks/use-path-completion.repro.test.d.ts +2 -0
  248. package/dist/hooks/use-path-completion.repro.test.d.ts.map +1 -0
  249. package/dist/hooks/use-path-completion.repro.test.js.map +1 -0
  250. package/dist/hooks/use-pending-turn-guards.d.ts +2 -2
  251. package/dist/hooks/use-pending-turn-guards.d.ts.map +1 -1
  252. package/dist/hooks/use-pending-turn-guards.js +8 -8
  253. package/dist/hooks/use-pending-turn-guards.js.map +1 -1
  254. package/dist/hooks/use-provider-selection.d.ts.map +1 -1
  255. package/dist/hooks/use-provider-selection.js +20 -18
  256. package/dist/hooks/use-provider-selection.js.map +1 -1
  257. package/dist/hooks/use-selection.d.ts.map +1 -1
  258. package/dist/hooks/use-selection.js +5 -1
  259. package/dist/hooks/use-selection.js.map +1 -1
  260. package/dist/hooks/use-setting.d.ts.map +1 -1
  261. package/dist/hooks/use-setting.js +3 -5
  262. package/dist/hooks/use-setting.js.map +1 -1
  263. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  264. package/dist/hooks/use-settings-completion.js +19 -7
  265. package/dist/hooks/use-settings-completion.js.map +1 -1
  266. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  267. package/dist/hooks/use-settings-value-completion.js +13 -2
  268. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  269. package/dist/hooks/use-shell-mode.d.ts +2 -2
  270. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  271. package/dist/hooks/use-shell-mode.js +5 -3
  272. package/dist/hooks/use-shell-mode.js.map +1 -1
  273. package/dist/hooks/use-skill-selection.js +3 -3
  274. package/dist/hooks/use-skill-selection.js.map +1 -1
  275. package/dist/hooks/use-slash-commands.js +3 -3
  276. package/dist/hooks/use-slash-commands.js.map +1 -1
  277. package/dist/hooks/use-terminal-width.js +2 -2
  278. package/dist/hooks/use-terminal-width.js.map +1 -1
  279. package/dist/hooks/use-undo-selection.d.ts.map +1 -1
  280. package/dist/hooks/use-undo-selection.js +3 -1
  281. package/dist/hooks/use-undo-selection.js.map +1 -1
  282. package/dist/lib/agent-chat-service.js +2 -2
  283. package/dist/lib/agent-chat-service.js.map +1 -1
  284. package/dist/lib/agent-factory.test.js +21 -0
  285. package/dist/lib/agent-factory.test.js.map +1 -1
  286. package/dist/lib/agent-run-orchestrator.js +1 -1
  287. package/dist/lib/agent-run-orchestrator.js.map +1 -1
  288. package/dist/lib/editor-impl.test.js +73 -29
  289. package/dist/lib/editor-impl.test.js.map +1 -1
  290. package/dist/lib/openai-agent-client.public-methods.test.js +9 -1
  291. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  292. package/dist/lib/shell.d.ts +7 -0
  293. package/dist/lib/shell.d.ts.map +1 -0
  294. package/dist/lib/shell.js +56 -0
  295. package/dist/lib/shell.js.map +1 -0
  296. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  297. package/dist/lib/subagent-bridge.js +15 -3
  298. package/dist/lib/subagent-bridge.js.map +1 -1
  299. package/dist/modes/companion/command-index.d.ts +26 -0
  300. package/dist/modes/companion/command-index.d.ts.map +1 -0
  301. package/dist/modes/companion/command-index.js +50 -0
  302. package/dist/modes/companion/command-index.js.map +1 -0
  303. package/dist/modes/companion/command-index.test.d.ts +2 -0
  304. package/dist/modes/companion/command-index.test.d.ts.map +1 -0
  305. package/dist/modes/companion/command-index.test.js +86 -0
  306. package/dist/modes/companion/command-index.test.js.map +1 -0
  307. package/dist/modes/companion/companion-app.d.ts +12 -0
  308. package/dist/modes/companion/companion-app.d.ts.map +1 -0
  309. package/dist/modes/companion/companion-app.js +297 -0
  310. package/dist/modes/companion/companion-app.js.map +1 -0
  311. package/dist/modes/companion/companion-session.d.ts +63 -0
  312. package/dist/modes/companion/companion-session.d.ts.map +1 -0
  313. package/dist/modes/companion/companion-session.js +146 -0
  314. package/dist/modes/companion/companion-session.js.map +1 -0
  315. package/dist/modes/companion/companion-session.test.d.ts +2 -0
  316. package/dist/modes/companion/companion-session.test.d.ts.map +1 -0
  317. package/dist/modes/companion/companion-session.test.js +28 -0
  318. package/dist/modes/companion/companion-session.test.js.map +1 -0
  319. package/dist/modes/companion/components/status-bar.d.ts +13 -0
  320. package/dist/modes/companion/components/status-bar.d.ts.map +1 -0
  321. package/dist/modes/companion/components/status-bar.js +26 -0
  322. package/dist/modes/companion/components/status-bar.js.map +1 -0
  323. package/dist/modes/companion/context-buffer.d.ts +65 -0
  324. package/dist/modes/companion/context-buffer.d.ts.map +1 -0
  325. package/dist/modes/companion/context-buffer.js +156 -0
  326. package/dist/modes/companion/context-buffer.js.map +1 -0
  327. package/dist/modes/companion/context-buffer.test.d.ts +2 -0
  328. package/dist/modes/companion/context-buffer.test.d.ts.map +1 -0
  329. package/dist/modes/companion/context-buffer.test.js +154 -0
  330. package/dist/modes/companion/context-buffer.test.js.map +1 -0
  331. package/dist/modes/companion/event-detector.d.ts +46 -0
  332. package/dist/modes/companion/event-detector.d.ts.map +1 -0
  333. package/dist/modes/companion/event-detector.js +169 -0
  334. package/dist/modes/companion/event-detector.js.map +1 -0
  335. package/dist/modes/companion/event-detector.test.d.ts +2 -0
  336. package/dist/modes/companion/event-detector.test.d.ts.map +1 -0
  337. package/dist/modes/companion/event-detector.test.js +121 -0
  338. package/dist/modes/companion/event-detector.test.js.map +1 -0
  339. package/dist/modes/companion/index.d.ts +33 -0
  340. package/dist/modes/companion/index.d.ts.map +1 -0
  341. package/dist/modes/companion/index.js +21 -0
  342. package/dist/modes/companion/index.js.map +1 -0
  343. package/dist/modes/companion/input-key-mapper.d.ts +3 -0
  344. package/dist/modes/companion/input-key-mapper.d.ts.map +1 -0
  345. package/dist/modes/companion/input-key-mapper.js +31 -0
  346. package/dist/modes/companion/input-key-mapper.js.map +1 -0
  347. package/dist/modes/companion/input-key-mapper.test.d.ts +2 -0
  348. package/dist/modes/companion/input-key-mapper.test.d.ts.map +1 -0
  349. package/dist/modes/companion/input-key-mapper.test.js +26 -0
  350. package/dist/modes/companion/input-key-mapper.test.js.map +1 -0
  351. package/dist/modes/companion/input-parser.d.ts +53 -0
  352. package/dist/modes/companion/input-parser.d.ts.map +1 -0
  353. package/dist/modes/companion/input-parser.js +114 -0
  354. package/dist/modes/companion/input-parser.js.map +1 -0
  355. package/dist/modes/companion/input-parser.test.d.ts +2 -0
  356. package/dist/modes/companion/input-parser.test.d.ts.map +1 -0
  357. package/dist/modes/companion/input-parser.test.js +123 -0
  358. package/dist/modes/companion/input-parser.test.js.map +1 -0
  359. package/dist/modes/companion/mode-manager.d.ts +41 -0
  360. package/dist/modes/companion/mode-manager.d.ts.map +1 -0
  361. package/dist/modes/companion/mode-manager.js +56 -0
  362. package/dist/modes/companion/mode-manager.js.map +1 -0
  363. package/dist/modes/companion/mode-manager.test.d.ts +2 -0
  364. package/dist/modes/companion/mode-manager.test.d.ts.map +1 -0
  365. package/dist/modes/companion/mode-manager.test.js +65 -0
  366. package/dist/modes/companion/mode-manager.test.js.map +1 -0
  367. package/dist/modes/companion/output-classifier.d.ts +15 -0
  368. package/dist/modes/companion/output-classifier.d.ts.map +1 -0
  369. package/dist/modes/companion/output-classifier.js +77 -0
  370. package/dist/modes/companion/output-classifier.js.map +1 -0
  371. package/dist/modes/companion/output-classifier.test.d.ts +2 -0
  372. package/dist/modes/companion/output-classifier.test.d.ts.map +1 -0
  373. package/dist/modes/companion/output-classifier.test.js +133 -0
  374. package/dist/modes/companion/output-classifier.test.js.map +1 -0
  375. package/dist/modes/companion/pty-wrapper.d.ts +46 -0
  376. package/dist/modes/companion/pty-wrapper.d.ts.map +1 -0
  377. package/dist/modes/companion/pty-wrapper.js +143 -0
  378. package/dist/modes/companion/pty-wrapper.js.map +1 -0
  379. package/dist/modes/companion/safety-classifier.d.ts +31 -0
  380. package/dist/modes/companion/safety-classifier.d.ts.map +1 -0
  381. package/dist/modes/companion/safety-classifier.js +140 -0
  382. package/dist/modes/companion/safety-classifier.js.map +1 -0
  383. package/dist/modes/companion/safety-classifier.test.d.ts +2 -0
  384. package/dist/modes/companion/safety-classifier.test.d.ts.map +1 -0
  385. package/dist/modes/companion/safety-classifier.test.js +151 -0
  386. package/dist/modes/companion/safety-classifier.test.js.map +1 -0
  387. package/dist/modes/companion/summarizer.d.ts +24 -0
  388. package/dist/modes/companion/summarizer.d.ts.map +1 -0
  389. package/dist/modes/companion/summarizer.js +132 -0
  390. package/dist/modes/companion/summarizer.js.map +1 -0
  391. package/dist/modes/companion/terminal-history.d.ts +27 -0
  392. package/dist/modes/companion/terminal-history.d.ts.map +1 -0
  393. package/dist/modes/companion/terminal-history.js +142 -0
  394. package/dist/modes/companion/terminal-history.js.map +1 -0
  395. package/dist/non-interactive.d.ts.map +1 -1
  396. package/dist/non-interactive.js +0 -2
  397. package/dist/non-interactive.js.map +1 -1
  398. package/dist/prompts/anthropic.md +1 -0
  399. package/dist/prompts/codex.md +1 -0
  400. package/dist/prompts/gpt-5-modern.md +1 -0
  401. package/dist/prompts/gpt-5.5.md +1 -0
  402. package/dist/prompts/gpt-5.md +4 -7
  403. package/dist/prompts/kimi.md +3 -1
  404. package/dist/prompts/prompt-constructor.d.ts +1 -0
  405. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  406. package/dist/prompts/prompt-constructor.js +12 -38
  407. package/dist/prompts/prompt-constructor.js.map +1 -1
  408. package/dist/prompts/prompt-constructor.test.ts +15 -36
  409. package/dist/prompts/prompt-constructor.ts +19 -47
  410. package/dist/prompts/shell-sandbox.d.ts +2 -0
  411. package/dist/prompts/shell-sandbox.d.ts.map +1 -0
  412. package/dist/prompts/shell-sandbox.js +29 -0
  413. package/dist/prompts/shell-sandbox.js.map +1 -0
  414. package/dist/prompts/shell-sandbox.md +18 -0
  415. package/dist/prompts/shell-sandbox.ts +29 -0
  416. package/dist/prompts/simple-mentor.md +215 -0
  417. package/dist/prompts/subagent-delegation.js +1 -1
  418. package/dist/prompts/subagent-delegation.ts +1 -1
  419. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +2 -0
  420. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  421. package/dist/providers/ai-sdk-openai-compatible.provider.js +8 -4
  422. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  423. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +119 -1
  424. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  425. package/dist/providers/ai-sdk-openai.provider.d.ts +14 -0
  426. package/dist/providers/ai-sdk-openai.provider.d.ts.map +1 -0
  427. package/dist/providers/ai-sdk-openai.provider.js +18 -0
  428. package/dist/providers/ai-sdk-openai.provider.js.map +1 -0
  429. package/dist/providers/codex-responses-model.d.ts +1 -0
  430. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  431. package/dist/providers/codex-responses-model.js +5 -4
  432. package/dist/providers/codex-responses-model.js.map +1 -1
  433. package/dist/providers/github-copilot/converters.d.ts +45 -0
  434. package/dist/providers/github-copilot/converters.d.ts.map +1 -0
  435. package/dist/providers/github-copilot/converters.js +118 -0
  436. package/dist/providers/github-copilot/converters.js.map +1 -0
  437. package/dist/providers/github-copilot/converters.test.d.ts +2 -0
  438. package/dist/providers/github-copilot/converters.test.d.ts.map +1 -0
  439. package/dist/providers/github-copilot/converters.test.js +162 -0
  440. package/dist/providers/github-copilot/converters.test.js.map +1 -0
  441. package/dist/providers/github-copilot/github-copilot.provider.d.ts +2 -0
  442. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +1 -0
  443. package/dist/providers/github-copilot/github-copilot.provider.js +75 -0
  444. package/dist/providers/github-copilot/github-copilot.provider.js.map +1 -0
  445. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +2 -0
  446. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +1 -0
  447. package/dist/providers/github-copilot/github-copilot.provider.test.js +26 -0
  448. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +1 -0
  449. package/dist/providers/github-copilot/index.d.ts +4 -0
  450. package/dist/providers/github-copilot/index.d.ts.map +1 -0
  451. package/dist/providers/github-copilot/index.js +4 -0
  452. package/dist/providers/github-copilot/index.js.map +1 -0
  453. package/dist/providers/github-copilot/model.d.ts +24 -0
  454. package/dist/providers/github-copilot/model.d.ts.map +1 -0
  455. package/dist/providers/github-copilot/model.delta.test.d.ts +2 -0
  456. package/dist/providers/github-copilot/model.delta.test.d.ts.map +1 -0
  457. package/dist/providers/github-copilot/model.delta.test.js +15 -0
  458. package/dist/providers/github-copilot/model.delta.test.js.map +1 -0
  459. package/dist/providers/github-copilot/model.js +498 -0
  460. package/dist/providers/github-copilot/model.js.map +1 -0
  461. package/dist/providers/github-copilot/model.test.d.ts +2 -0
  462. package/dist/providers/github-copilot/model.test.d.ts.map +1 -0
  463. package/dist/providers/github-copilot/model.test.js +63 -0
  464. package/dist/providers/github-copilot/model.test.js.map +1 -0
  465. package/dist/providers/github-copilot/provider.d.ts +15 -0
  466. package/dist/providers/github-copilot/provider.d.ts.map +1 -0
  467. package/dist/providers/github-copilot/provider.js +25 -0
  468. package/dist/providers/github-copilot/provider.js.map +1 -0
  469. package/dist/providers/github-copilot/provider.test.d.ts +2 -0
  470. package/dist/providers/github-copilot/provider.test.d.ts.map +1 -0
  471. package/dist/providers/github-copilot/provider.test.js +52 -0
  472. package/dist/providers/github-copilot/provider.test.js.map +1 -0
  473. package/dist/providers/github-copilot/utils.d.ts +20 -0
  474. package/dist/providers/github-copilot/utils.d.ts.map +1 -0
  475. package/dist/providers/github-copilot/utils.js +142 -0
  476. package/dist/providers/github-copilot/utils.js.map +1 -0
  477. package/dist/providers/github-copilot/utils.test.d.ts +2 -0
  478. package/dist/providers/github-copilot/utils.test.d.ts.map +1 -0
  479. package/dist/providers/github-copilot/utils.test.js +21 -0
  480. package/dist/providers/github-copilot/utils.test.js.map +1 -0
  481. package/dist/providers/openai-compatible/api.d.ts +17 -0
  482. package/dist/providers/openai-compatible/api.d.ts.map +1 -0
  483. package/dist/providers/openai-compatible/api.js +58 -0
  484. package/dist/providers/openai-compatible/api.js.map +1 -0
  485. package/dist/providers/openai-compatible/model.d.ts +17 -0
  486. package/dist/providers/openai-compatible/model.d.ts.map +1 -0
  487. package/dist/providers/openai-compatible/model.js +473 -0
  488. package/dist/providers/openai-compatible/model.js.map +1 -0
  489. package/dist/providers/openai-compatible/provider.d.ts +22 -0
  490. package/dist/providers/openai-compatible/provider.d.ts.map +1 -0
  491. package/dist/providers/openai-compatible/provider.js +43 -0
  492. package/dist/providers/openai-compatible/provider.js.map +1 -0
  493. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +2 -0
  494. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +1 -0
  495. package/dist/providers/openai-compatible/reasoning-content.test.js +258 -0
  496. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -0
  497. package/dist/providers/openai-compatible/utils.d.ts +3 -0
  498. package/dist/providers/openai-compatible/utils.d.ts.map +1 -0
  499. package/dist/providers/openai-compatible/utils.js +11 -0
  500. package/dist/providers/openai-compatible/utils.js.map +1 -0
  501. package/dist/providers/openai-compatible-behavior-gate.test.js +42 -1
  502. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
  503. package/dist/providers/openai-compatible-middleware.js +1 -1
  504. package/dist/providers/openai-compatible-middleware.js.map +1 -1
  505. package/dist/providers/openai-compatible.provider.js +1 -1
  506. package/dist/providers/openai-compatible.provider.js.map +1 -1
  507. package/dist/providers/openrouter/api.d.ts +39 -0
  508. package/dist/providers/openrouter/api.d.ts.map +1 -0
  509. package/dist/providers/openrouter/api.js +164 -0
  510. package/dist/providers/openrouter/api.js.map +1 -0
  511. package/dist/providers/openrouter/converters.d.ts +8 -0
  512. package/dist/providers/openrouter/converters.d.ts.map +1 -0
  513. package/dist/providers/openrouter/converters.js +391 -0
  514. package/dist/providers/openrouter/converters.js.map +1 -0
  515. package/dist/providers/openrouter/converters.test.d.ts +2 -0
  516. package/dist/providers/openrouter/converters.test.d.ts.map +1 -0
  517. package/dist/providers/openrouter/converters.test.js +179 -0
  518. package/dist/providers/openrouter/converters.test.js.map +1 -0
  519. package/dist/providers/openrouter/index.d.ts +4 -0
  520. package/dist/providers/openrouter/index.d.ts.map +1 -0
  521. package/dist/providers/openrouter/index.js +4 -0
  522. package/dist/providers/openrouter/index.js.map +1 -0
  523. package/dist/providers/openrouter/model.d.ts +14 -0
  524. package/dist/providers/openrouter/model.d.ts.map +1 -0
  525. package/dist/providers/openrouter/model.js +457 -0
  526. package/dist/providers/openrouter/model.js.map +1 -0
  527. package/dist/providers/openrouter/provider.d.ts +15 -0
  528. package/dist/providers/openrouter/provider.d.ts.map +1 -0
  529. package/dist/providers/openrouter/provider.js +21 -0
  530. package/dist/providers/openrouter/provider.js.map +1 -0
  531. package/dist/providers/openrouter/reasoning-content.test.d.ts +2 -0
  532. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +1 -0
  533. package/dist/providers/openrouter/reasoning-content.test.js +122 -0
  534. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -0
  535. package/dist/providers/openrouter/utils.d.ts +11 -0
  536. package/dist/providers/openrouter/utils.d.ts.map +1 -0
  537. package/dist/providers/openrouter/utils.js +29 -0
  538. package/dist/providers/openrouter/utils.js.map +1 -0
  539. package/dist/providers/openrouter.api.retry.test.d.ts +2 -0
  540. package/dist/providers/openrouter.api.retry.test.d.ts.map +1 -0
  541. package/dist/providers/openrouter.api.retry.test.js +148 -0
  542. package/dist/providers/openrouter.api.retry.test.js.map +1 -0
  543. package/dist/providers/openrouter.test.d.ts +2 -0
  544. package/dist/providers/openrouter.test.d.ts.map +1 -0
  545. package/dist/providers/openrouter.test.js +1449 -0
  546. package/dist/providers/openrouter.test.js.map +1 -0
  547. package/dist/providers/protocol-client.d.ts +17 -0
  548. package/dist/providers/protocol-client.d.ts.map +1 -0
  549. package/dist/providers/protocol-client.js +57 -0
  550. package/dist/providers/protocol-client.js.map +1 -0
  551. package/dist/providers/protocol-client.test.d.ts +2 -0
  552. package/dist/providers/protocol-client.test.d.ts.map +1 -0
  553. package/dist/providers/protocol-client.test.js +55 -0
  554. package/dist/providers/protocol-client.test.js.map +1 -0
  555. package/dist/safety-checker.js +57 -0
  556. package/dist/scripts/eval-auto-approval/runner.js +1 -1
  557. package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
  558. package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
  559. package/dist/services/approval/approval-flow-coordinator.js +43 -3
  560. package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
  561. package/dist/services/approval/shell-sandbox-approval.d.ts +2 -0
  562. package/dist/services/approval/shell-sandbox-approval.d.ts.map +1 -0
  563. package/dist/services/approval/shell-sandbox-approval.js +7 -0
  564. package/dist/services/approval/shell-sandbox-approval.js.map +1 -0
  565. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  566. package/dist/services/approval/tool-approval-batch-coordinator.js +4 -2
  567. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  568. package/dist/services/approval-flow-coordinator.js +1 -1
  569. package/dist/services/approval-flow-coordinator.js.map +1 -1
  570. package/dist/services/approval-state.d.ts +1 -1
  571. package/dist/services/approval-state.d.ts.map +1 -1
  572. package/dist/services/check_mock.d.ts +2 -0
  573. package/dist/services/check_mock.d.ts.map +1 -0
  574. package/dist/services/check_mock.js +22 -0
  575. package/dist/services/check_mock.js.map +1 -0
  576. package/dist/services/continuation-driver.js +1 -1
  577. package/dist/services/continuation-driver.js.map +1 -1
  578. package/dist/services/conversation/conversation-adapter.d.ts +2 -1
  579. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  580. package/dist/services/conversation/conversation-adapter.js +4 -1
  581. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  582. package/dist/services/conversation/conversation-replay.js +1 -1
  583. package/dist/services/conversation/conversation-replay.js.map +1 -1
  584. package/dist/services/conversation/conversation-result-builder.d.ts +2 -0
  585. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  586. package/dist/services/conversation/conversation-result-builder.js +31 -2
  587. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  588. package/dist/services/conversation/conversation-service.d.ts +8 -0
  589. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  590. package/dist/services/conversation/conversation-service.js +14 -0
  591. package/dist/services/conversation/conversation-service.js.map +1 -1
  592. package/dist/services/conversation/conversation-store.d.ts +13 -0
  593. package/dist/services/conversation/conversation-store.d.ts.map +1 -1
  594. package/dist/services/conversation/conversation-store.js +72 -13
  595. package/dist/services/conversation/conversation-store.js.map +1 -1
  596. package/dist/services/conversation-adapter.d.ts +3 -2
  597. package/dist/services/conversation-adapter.d.ts.map +1 -1
  598. package/dist/services/conversation-adapter.js +10 -8
  599. package/dist/services/conversation-adapter.js.map +1 -1
  600. package/dist/services/conversation-events.d.ts +1 -1
  601. package/dist/services/conversation-events.d.ts.map +1 -1
  602. package/dist/services/conversation-log-events.d.ts +1 -1
  603. package/dist/services/conversation-log-events.d.ts.map +1 -1
  604. package/dist/services/conversation-replay.d.ts +1 -1
  605. package/dist/services/conversation-replay.d.ts.map +1 -1
  606. package/dist/services/conversation-replay.js +1 -1
  607. package/dist/services/conversation-replay.js.map +1 -1
  608. package/dist/services/conversation-result-builder.d.ts +1 -1
  609. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  610. package/dist/services/conversation-result-builder.js +2 -2
  611. package/dist/services/conversation-result-builder.js.map +1 -1
  612. package/dist/services/conversation-result-builder.test.js +3 -3
  613. package/dist/services/conversation-result-builder.test.js.map +1 -1
  614. package/dist/services/conversation-service.test.js +2 -2
  615. package/dist/services/conversation-service.test.js.map +1 -1
  616. package/dist/services/conversation-session-composition.d.ts +3 -1
  617. package/dist/services/conversation-session-composition.d.ts.map +1 -1
  618. package/dist/services/conversation-session-composition.js +3 -2
  619. package/dist/services/conversation-session-composition.js.map +1 -1
  620. package/dist/services/conversation-session-factory.d.ts +3 -1
  621. package/dist/services/conversation-session-factory.d.ts.map +1 -1
  622. package/dist/services/conversation-session-factory.js +7 -1
  623. package/dist/services/conversation-session-factory.js.map +1 -1
  624. package/dist/services/conversation-session.characterization.test.js +23 -13
  625. package/dist/services/conversation-session.characterization.test.js.map +1 -1
  626. package/dist/services/conversation-store.merge-modes.removed.d.ts +2 -0
  627. package/dist/services/conversation-store.merge-modes.removed.d.ts.map +1 -0
  628. package/dist/services/conversation-store.merge-modes.removed.js +2 -0
  629. package/dist/services/conversation-store.merge-modes.removed.js.map +1 -0
  630. package/dist/services/conversation-store.merge-modes.test.d.ts.map +1 -1
  631. package/dist/services/conversation-store.merge-modes.test.js +1 -160
  632. package/dist/services/conversation-store.merge-modes.test.js.map +1 -1
  633. package/dist/services/conversation-turn-runner.d.ts +2 -1
  634. package/dist/services/conversation-turn-runner.d.ts.map +1 -1
  635. package/dist/services/logging/logging-service.d.ts.map +1 -1
  636. package/dist/services/logging/logging-service.js +4 -2
  637. package/dist/services/logging/logging-service.js.map +1 -1
  638. package/dist/services/logging-service.js +1 -1
  639. package/dist/services/logging-service.js.map +1 -1
  640. package/dist/services/model-service.d.ts +1 -1
  641. package/dist/services/model-service.d.ts.map +1 -1
  642. package/dist/services/model-service.js +7 -2
  643. package/dist/services/model-service.js.map +1 -1
  644. package/dist/services/repro-error.test.d.ts +2 -0
  645. package/dist/services/repro-error.test.d.ts.map +1 -0
  646. package/dist/services/repro-error.test.js +38 -0
  647. package/dist/services/repro-error.test.js.map +1 -0
  648. package/dist/services/rtk-service.d.ts.map +1 -1
  649. package/dist/services/rtk-service.js +6 -2
  650. package/dist/services/rtk-service.js.map +1 -1
  651. package/dist/services/session/continuation-driver.test.js +169 -7
  652. package/dist/services/session/continuation-driver.test.js.map +1 -1
  653. package/dist/services/session/continuation-recovery-handler.test.js +3 -4
  654. package/dist/services/session/continuation-recovery-handler.test.js.map +1 -1
  655. package/dist/services/session/conversation-session.d.ts +1 -0
  656. package/dist/services/session/conversation-session.d.ts.map +1 -1
  657. package/dist/services/session/conversation-session.js.map +1 -1
  658. package/dist/services/session/initial-input-preparer.d.ts +1 -0
  659. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  660. package/dist/services/session/initial-input-preparer.js +2 -1
  661. package/dist/services/session/initial-input-preparer.js.map +1 -1
  662. package/dist/services/session/initial-turn-runner.d.ts.map +1 -1
  663. package/dist/services/session/initial-turn-runner.js +11 -3
  664. package/dist/services/session/initial-turn-runner.js.map +1 -1
  665. package/dist/services/session/session-adapter-bridge.d.ts +1 -11
  666. package/dist/services/session/session-adapter-bridge.d.ts.map +1 -1
  667. package/dist/services/session/session-adapter-bridge.js +1 -10
  668. package/dist/services/session/session-adapter-bridge.js.map +1 -1
  669. package/dist/services/session/session-composition.d.ts +1 -0
  670. package/dist/services/session/session-composition.d.ts.map +1 -1
  671. package/dist/services/session/session-composition.js +1 -0
  672. package/dist/services/session/session-composition.js.map +1 -1
  673. package/dist/services/session/session-factory.d.ts +46 -3
  674. package/dist/services/session/session-factory.d.ts.map +1 -1
  675. package/dist/services/session/session-factory.js +44 -3
  676. package/dist/services/session/session-factory.js.map +1 -1
  677. package/dist/services/session/session-factory.test.js +17 -18
  678. package/dist/services/session/session-factory.test.js.map +1 -1
  679. package/dist/services/session/session-input-planner.d.ts +1 -0
  680. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  681. package/dist/services/session/session-input-planner.js +30 -2
  682. package/dist/services/session/session-input-planner.js.map +1 -1
  683. package/dist/services/session/session-lifecycle.d.ts +4 -0
  684. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  685. package/dist/services/session/session-lifecycle.js +10 -0
  686. package/dist/services/session/session-lifecycle.js.map +1 -1
  687. package/dist/services/session/session-manager.d.ts +14 -0
  688. package/dist/services/session/session-manager.d.ts.map +1 -1
  689. package/dist/services/session/session-manager.js +21 -0
  690. package/dist/services/session/session-manager.js.map +1 -1
  691. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  692. package/dist/services/session/session-stream-processor.js +13 -0
  693. package/dist/services/session/session-stream-processor.js.map +1 -1
  694. package/dist/services/session/session-tool-tracker.d.ts +14 -1
  695. package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
  696. package/dist/services/session/session-tool-tracker.js +20 -5
  697. package/dist/services/session/session-tool-tracker.js.map +1 -1
  698. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts +12 -0
  699. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -0
  700. package/dist/services/session/test-helpers/conversation-session-fixtures.js +29 -0
  701. package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -0
  702. package/dist/services/session/turn-attempt-factory.d.ts +1 -0
  703. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  704. package/dist/services/session/turn-attempt-factory.js +1 -1
  705. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  706. package/dist/services/session/turn-coordinator.d.ts +3 -0
  707. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  708. package/dist/services/session/turn-coordinator.js +6 -6
  709. package/dist/services/session/turn-coordinator.js.map +1 -1
  710. package/dist/services/session/turn-executor.d.ts.map +1 -1
  711. package/dist/services/session/turn-executor.js +1 -0
  712. package/dist/services/session/turn-executor.js.map +1 -1
  713. package/dist/services/session-state-facade.d.ts +2 -2
  714. package/dist/services/session-state-facade.d.ts.map +1 -1
  715. package/dist/services/session-state-facade.js.map +1 -1
  716. package/dist/services/settings/settings-merger.d.ts.map +1 -1
  717. package/dist/services/settings/settings-merger.js +7 -5
  718. package/dist/services/settings/settings-merger.js.map +1 -1
  719. package/dist/services/settings/settings-persistence.js +1 -1
  720. package/dist/services/settings/settings-persistence.js.map +1 -1
  721. package/dist/services/settings/settings-schema.d.ts +25 -0
  722. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  723. package/dist/services/settings/settings-schema.js +23 -2
  724. package/dist/services/settings/settings-schema.js.map +1 -1
  725. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  726. package/dist/services/settings/settings-sources.js +5 -0
  727. package/dist/services/settings/settings-sources.js.map +1 -1
  728. package/dist/services/shell-auto-approval-evaluator.js +1 -1
  729. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  730. package/dist/services/skills/skills-service.d.ts.map +1 -1
  731. package/dist/services/skills/skills-service.js +12 -19
  732. package/dist/services/skills/skills-service.js.map +1 -1
  733. package/dist/services/skills/skills-service.test.js +19 -0
  734. package/dist/services/skills/skills-service.test.js.map +1 -1
  735. package/dist/services/subagents/reasoning-inheritance.test.d.ts +2 -0
  736. package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +1 -0
  737. package/dist/services/subagents/reasoning-inheritance.test.js +73 -0
  738. package/dist/services/subagents/reasoning-inheritance.test.js.map +1 -0
  739. package/dist/services/subagents/role-loader.js +3 -3
  740. package/dist/services/subagents/role-loader.js.map +1 -1
  741. package/dist/services/subagents/subagent-manager-abort-state.test.d.ts +2 -0
  742. package/dist/services/subagents/subagent-manager-abort-state.test.d.ts.map +1 -0
  743. package/dist/services/subagents/subagent-manager-abort-state.test.js +36 -0
  744. package/dist/services/subagents/subagent-manager-abort-state.test.js.map +1 -0
  745. package/dist/services/subagents/subagent-manager-abort.test.d.ts +2 -0
  746. package/dist/services/subagents/subagent-manager-abort.test.d.ts.map +1 -0
  747. package/dist/services/subagents/subagent-manager-abort.test.js +3 -0
  748. package/dist/services/subagents/subagent-manager-abort.test.js.map +1 -0
  749. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts +35 -0
  750. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -0
  751. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js +174 -0
  752. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -0
  753. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  754. package/dist/services/subagents/tool-policy.js +22 -3
  755. package/dist/services/subagents/tool-policy.js.map +1 -1
  756. package/dist/services/tool-execution-ledger.d.ts +42 -1
  757. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  758. package/dist/services/tool-execution-ledger.js +117 -1
  759. package/dist/services/tool-execution-ledger.js.map +1 -1
  760. package/dist/services/turn-item-accumulator.d.ts +1 -1
  761. package/dist/services/turn-item-accumulator.d.ts.map +1 -1
  762. package/dist/tools/agent/activate-skill.js +1 -1
  763. package/dist/tools/agent/activate-skill.js.map +1 -1
  764. package/dist/tools/agent/ask-user.d.ts.map +1 -1
  765. package/dist/tools/agent/ask-user.js +4 -15
  766. package/dist/tools/agent/ask-user.js.map +1 -1
  767. package/dist/tools/agent/ask-user.test.js +50 -11
  768. package/dist/tools/agent/ask-user.test.js.map +1 -1
  769. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  770. package/dist/tools/agent/run-subagent.js +2 -5
  771. package/dist/tools/agent/run-subagent.js.map +1 -1
  772. package/dist/tools/bash.d.ts +10 -0
  773. package/dist/tools/bash.d.ts.map +1 -0
  774. package/dist/tools/bash.js +55 -0
  775. package/dist/tools/bash.js.map +1 -0
  776. package/dist/tools/file/apply-patch.js +2 -2
  777. package/dist/tools/file/apply-patch.js.map +1 -1
  778. package/dist/tools/file/apply-patch.test.js +27 -0
  779. package/dist/tools/file/apply-patch.test.js.map +1 -1
  780. package/dist/tools/file/code-context.d.ts +27 -0
  781. package/dist/tools/file/code-context.d.ts.map +1 -0
  782. package/dist/tools/file/code-context.js +542 -0
  783. package/dist/tools/file/code-context.js.map +1 -0
  784. package/dist/tools/file/create-file.d.ts.map +1 -1
  785. package/dist/tools/file/create-file.js +2 -5
  786. package/dist/tools/file/create-file.js.map +1 -1
  787. package/dist/tools/file/create-file.test.js +24 -0
  788. package/dist/tools/file/create-file.test.js.map +1 -1
  789. package/dist/tools/file/find-files.d.ts.map +1 -1
  790. package/dist/tools/file/find-files.js +53 -28
  791. package/dist/tools/file/find-files.js.map +1 -1
  792. package/dist/tools/file/glob.d.ts +18 -0
  793. package/dist/tools/file/glob.d.ts.map +1 -0
  794. package/dist/tools/file/glob.js +216 -0
  795. package/dist/tools/file/glob.js.map +1 -0
  796. package/dist/tools/file/grep.d.ts +21 -0
  797. package/dist/tools/file/grep.d.ts.map +1 -0
  798. package/dist/tools/file/grep.js +221 -0
  799. package/dist/tools/file/grep.js.map +1 -0
  800. package/dist/tools/file/read-file.d.ts.map +1 -1
  801. package/dist/tools/file/read-file.js +24 -6
  802. package/dist/tools/file/read-file.js.map +1 -1
  803. package/dist/tools/file/search-replace.d.ts.map +1 -1
  804. package/dist/tools/file/search-replace.js +4 -6
  805. package/dist/tools/file/search-replace.js.map +1 -1
  806. package/dist/tools/file/search-replace.test.js +30 -0
  807. package/dist/tools/file/search-replace.test.js.map +1 -1
  808. package/dist/tools/format-helpers.js +0 -2
  809. package/dist/tools/format-helpers.js.map +1 -1
  810. package/dist/tools/language-providers.d.ts.map +1 -1
  811. package/dist/tools/language-providers.js +0 -379
  812. package/dist/tools/language-providers.js.map +1 -1
  813. package/dist/tools/languages/csharp.js +1 -1
  814. package/dist/tools/languages/csharp.js.map +1 -1
  815. package/dist/tools/languages/java.js +1 -1
  816. package/dist/tools/languages/java.js.map +1 -1
  817. package/dist/tools/search.d.ts.map +1 -1
  818. package/dist/tools/search.js +2 -1
  819. package/dist/tools/search.js.map +1 -1
  820. package/dist/tools/system/code-context.d.ts.map +1 -1
  821. package/dist/tools/system/code-context.js +28 -10
  822. package/dist/tools/system/code-context.js.map +1 -1
  823. package/dist/tools/system/grep.d.ts +4 -6
  824. package/dist/tools/system/grep.d.ts.map +1 -1
  825. package/dist/tools/system/grep.js +83 -50
  826. package/dist/tools/system/grep.js.map +1 -1
  827. package/dist/tools/system/shell.d.ts +10 -1
  828. package/dist/tools/system/shell.d.ts.map +1 -1
  829. package/dist/tools/system/shell.js +136 -10
  830. package/dist/tools/system/shell.js.map +1 -1
  831. package/dist/tools/types.d.ts +1 -1
  832. package/dist/tools/types.d.ts.map +1 -1
  833. package/dist/tools/utils.d.ts +4 -0
  834. package/dist/tools/utils.d.ts.map +1 -1
  835. package/dist/tools/utils.js +17 -5
  836. package/dist/tools/utils.js.map +1 -1
  837. package/dist/tools/web/web-fetch.js +1 -1
  838. package/dist/tools/web/web-fetch.js.map +1 -1
  839. package/dist/utils/command-safety/handlers/script-handler.d.ts +3 -0
  840. package/dist/utils/command-safety/handlers/script-handler.d.ts.map +1 -0
  841. package/dist/utils/command-safety/handlers/script-handler.js +92 -0
  842. package/dist/utils/command-safety/handlers/script-handler.js.map +1 -0
  843. package/dist/utils/command-safety/handlers/script-handler.test.d.ts +2 -0
  844. package/dist/utils/command-safety/handlers/script-handler.test.d.ts.map +1 -0
  845. package/dist/utils/command-safety/handlers/script-handler.test.js +44 -0
  846. package/dist/utils/command-safety/handlers/script-handler.test.js.map +1 -0
  847. package/dist/utils/command-safety/index.test.d.ts +2 -0
  848. package/dist/utils/command-safety/index.test.d.ts.map +1 -0
  849. package/dist/utils/command-safety/index.test.js +22 -0
  850. package/dist/utils/command-safety/index.test.js.map +1 -0
  851. package/dist/utils/command-safety.d.ts +21 -0
  852. package/dist/utils/command-safety.d.ts.map +1 -0
  853. package/dist/utils/command-safety.devnull.test.d.ts +2 -0
  854. package/dist/utils/command-safety.devnull.test.d.ts.map +1 -0
  855. package/dist/utils/command-safety.devnull.test.js +13 -0
  856. package/dist/utils/command-safety.devnull.test.js.map +1 -0
  857. package/dist/utils/command-safety.js +348 -0
  858. package/dist/utils/command-safety.js.map +1 -0
  859. package/dist/utils/conversation/conversation-event-handler.js +1 -1
  860. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  861. package/dist/utils/conversation/message-utils.d.ts +5 -0
  862. package/dist/utils/conversation/message-utils.d.ts.map +1 -1
  863. package/dist/utils/conversation/message-utils.js +20 -0
  864. package/dist/utils/conversation/message-utils.js.map +1 -1
  865. package/dist/utils/conversation/test-helpers/event-handler-fixtures.d.ts +31 -0
  866. package/dist/utils/conversation/test-helpers/event-handler-fixtures.d.ts.map +1 -0
  867. package/dist/utils/conversation/test-helpers/event-handler-fixtures.js +42 -0
  868. package/dist/utils/conversation/test-helpers/event-handler-fixtures.js.map +1 -0
  869. package/dist/utils/extract-command-messages.test.js +6 -6
  870. package/dist/utils/extract-command-messages.test.js.map +1 -1
  871. package/dist/utils/output/output-trim.d.ts +1 -1
  872. package/dist/utils/output/output-trim.js +1 -1
  873. package/dist/utils/project-tree.d.ts +7 -12
  874. package/dist/utils/project-tree.d.ts.map +1 -1
  875. package/dist/utils/project-tree.js +184 -83
  876. package/dist/utils/project-tree.js.map +1 -1
  877. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +2 -0
  878. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +1 -0
  879. package/dist/utils/provider-traffic-extractor.repro.test.js.map +1 -0
  880. package/dist/utils/settings-command.d.ts +2 -2
  881. package/dist/utils/settings-command.d.ts.map +1 -1
  882. package/dist/utils/settings-command.js +2 -2
  883. package/dist/utils/settings-command.js.map +1 -1
  884. package/dist/utils/shell/command-safety/find-helpers.js +1 -1
  885. package/dist/utils/shell/command-safety/find-helpers.js.map +1 -1
  886. package/dist/utils/shell/command-safety/handlers/git-handler.js +1 -1
  887. package/dist/utils/shell/command-safety/handlers/git-handler.js.map +1 -1
  888. package/dist/utils/shell/execute-shell.d.ts +2 -0
  889. package/dist/utils/shell/execute-shell.d.ts.map +1 -1
  890. package/dist/utils/shell/execute-shell.js +9 -6
  891. package/dist/utils/shell/execute-shell.js.map +1 -1
  892. package/dist/utils/shell/sandbox/denied-read-detector.d.ts +39 -0
  893. package/dist/utils/shell/sandbox/denied-read-detector.d.ts.map +1 -0
  894. package/dist/utils/shell/sandbox/denied-read-detector.js +250 -0
  895. package/dist/utils/shell/sandbox/denied-read-detector.js.map +1 -0
  896. package/dist/utils/shell/sandbox/denied-read-stores.d.ts +74 -0
  897. package/dist/utils/shell/sandbox/denied-read-stores.d.ts.map +1 -0
  898. package/dist/utils/shell/sandbox/denied-read-stores.js +166 -0
  899. package/dist/utils/shell/sandbox/denied-read-stores.js.map +1 -0
  900. package/dist/utils/shell/sandbox/sandbox-env.d.ts +7 -0
  901. package/dist/utils/shell/sandbox/sandbox-env.d.ts.map +1 -0
  902. package/dist/utils/shell/sandbox/sandbox-env.js +40 -0
  903. package/dist/utils/shell/sandbox/sandbox-env.js.map +1 -0
  904. package/dist/utils/shell/sandbox/sandbox-policy.d.ts +41 -0
  905. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -0
  906. package/dist/utils/shell/sandbox/sandbox-policy.js +217 -0
  907. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -0
  908. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts +18 -0
  909. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -0
  910. package/dist/utils/shell/sandbox/shell-sandbox-runner.js +58 -0
  911. package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -0
  912. package/dist/utils/shell/shell-output.d.ts.map +1 -1
  913. package/dist/utils/shell/shell-output.js +8 -6
  914. package/dist/utils/shell/shell-output.js.map +1 -1
  915. package/dist/utils/shell/temp-dir.d.ts +10 -0
  916. package/dist/utils/shell/temp-dir.d.ts.map +1 -0
  917. package/dist/utils/shell/temp-dir.js +68 -0
  918. package/dist/utils/shell/temp-dir.js.map +1 -0
  919. package/dist/utils/skill-discovery-paths.d.ts +5 -0
  920. package/dist/utils/skill-discovery-paths.d.ts.map +1 -0
  921. package/dist/utils/skill-discovery-paths.js +18 -0
  922. package/dist/utils/skill-discovery-paths.js.map +1 -0
  923. package/package.json +10 -16
  924. package/dist/components/ModelSelectionMenu.debug.test.d.ts +0 -2
  925. package/dist/components/ModelSelectionMenu.debug.test.d.ts.map +0 -1
  926. package/dist/components/ModelSelectionMenu.debug.test.js.map +0 -1
  927. package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts +0 -2
  928. package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts.map +0 -1
  929. package/dist/hooks/conversation-ui-reducer.multi-select.test.js +0 -123
  930. package/dist/hooks/conversation-ui-reducer.multi-select.test.js.map +0 -1
  931. package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts +0 -2
  932. package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts.map +0 -1
  933. package/dist/hooks/use-conversation.ask-user-multi-select.test.js +0 -159
  934. package/dist/hooks/use-conversation.ask-user-multi-select.test.js.map +0 -1
  935. package/dist/inspect_zod.d.ts +0 -2
  936. package/dist/inspect_zod.d.ts.map +0 -1
  937. package/dist/inspect_zod.js +0 -16
  938. package/dist/inspect_zod.js.map +0 -1
  939. package/dist/prompts/simple_prev2.md +0 -33
  940. package/dist/services/conversation-result-resolver.d.ts +0 -25
  941. package/dist/services/conversation-result-resolver.d.ts.map +0 -1
  942. package/dist/services/conversation-result-resolver.js +0 -79
  943. package/dist/services/conversation-result-resolver.js.map +0 -1
  944. package/dist/services/conversation-result-resolver.test.d.ts +0 -2
  945. package/dist/services/conversation-result-resolver.test.d.ts.map +0 -1
  946. package/dist/services/conversation-result-resolver.test.js +0 -186
  947. package/dist/services/conversation-result-resolver.test.js.map +0 -1
  948. package/dist/services/session-state-controller.test.d.ts +0 -2
  949. package/dist/services/session-state-controller.test.d.ts.map +0 -1
  950. package/dist/services/session-state-controller.test.js +0 -125
  951. package/dist/services/session-state-controller.test.js.map +0 -1
  952. package/dist/services/turn-execution-orchestrator.d.ts +0 -79
  953. package/dist/services/turn-execution-orchestrator.d.ts.map +0 -1
  954. package/dist/services/turn-execution-orchestrator.js +0 -687
  955. package/dist/services/turn-execution-orchestrator.js.map +0 -1
  956. package/dist/services/turn-execution-orchestrator.test.d.ts +0 -2
  957. package/dist/services/turn-execution-orchestrator.test.d.ts.map +0 -1
  958. package/dist/services/turn-execution-orchestrator.test.js +0 -236
  959. package/dist/services/turn-execution-orchestrator.test.js.map +0 -1
  960. package/dist/utils/command-safety/_scratch-classify.test.d.ts +0 -2
  961. package/dist/utils/command-safety/_scratch-classify.test.d.ts.map +0 -1
  962. package/dist/utils/command-safety/_scratch-classify.test.js +0 -22
  963. package/dist/utils/command-safety/_scratch-classify.test.js.map +0 -1
  964. package/dist/utils/command-safety/scratch-classify.test.d.ts +0 -2
  965. package/dist/utils/command-safety/scratch-classify.test.d.ts.map +0 -1
  966. package/dist/utils/command-safety/scratch-classify.test.js +0 -22
  967. package/dist/utils/command-safety/scratch-classify.test.js.map +0 -1
  968. package/dist/utils/command-safety/scratch-tally.test.d.ts +0 -2
  969. package/dist/utils/command-safety/scratch-tally.test.d.ts.map +0 -1
  970. package/dist/utils/command-safety/scratch-tally.test.js +0 -68
  971. package/dist/utils/command-safety/scratch-tally.test.js.map +0 -1
  972. package/dist/utils/project-tree.test.d.ts +0 -2
  973. package/dist/utils/project-tree.test.d.ts.map +0 -1
  974. package/dist/utils/project-tree.test.js +0 -149
  975. package/dist/utils/project-tree.test.js.map +0 -1
  976. package/dist/utils/terminal-clear.d.ts +0 -7
  977. package/dist/utils/terminal-clear.d.ts.map +0 -1
  978. package/dist/utils/terminal-clear.js +0 -5
  979. package/dist/utils/terminal-clear.js.map +0 -1
  980. package/dist/utils/terminal-clear.test.d.ts +0 -2
  981. package/dist/utils/terminal-clear.test.d.ts.map +0 -1
  982. package/dist/utils/terminal-clear.test.js +0 -13
  983. package/dist/utils/terminal-clear.test.js.map +0 -1
  984. package/dist/utils/test-render.d.ts +0 -14
  985. package/dist/utils/test-render.d.ts.map +0 -1
  986. package/dist/utils/test-render.js +0 -44
  987. package/dist/utils/test-render.js.map +0 -1
  988. package/readme.md +0 -887
  989. /package/dist/components/{Input → input}/input-width.test.d.ts +0 -0
  990. /package/dist/components/{Input → input}/input-width.test.d.ts.map +0 -0
  991. /package/dist/components/{Input → input}/input-width.test.js +0 -0
  992. /package/dist/components/{Input → input}/input-width.test.js.map +0 -0
  993. /package/dist/components/{Input → input}/insertions.test.d.ts +0 -0
  994. /package/dist/components/{Input → input}/insertions.test.d.ts.map +0 -0
  995. /package/dist/components/{Input → input}/insertions.test.js +0 -0
  996. /package/dist/components/{Input → input}/insertions.test.js.map +0 -0
@@ -10,6 +10,8 @@ When handling the user's request, if it involves creating, modifying, or running
10
10
 
11
11
  If the `run_subagent` tool is available, you can use it to delegate a focused subtask to a subagent instance. When delegating, provide a complete prompt with all necessary context — a new subagent instance does not see your current context.
12
12
 
13
+ Unsandboxed shell commands require explicit user approval and must be run directly by the main agent. Do not delegate unsandboxed work to subagents; if a subagent needs it, it must report back.
14
+
13
15
  You have the capability to output any number of tool calls in a single response. If you anticipate making multiple non-interfering tool calls, you are HIGHLY RECOMMENDED to make them in parallel to significantly improve efficiency. This is very important to your performance.
14
16
 
15
17
  The results of the tool calls will be returned to you in a tool message. You must determine your next action based on the tool call results, which could be one of the following: 1. Continue working on the task, 2. Inform the user that the task is completed or has failed, or 3. Ask the user for more information.
@@ -54,7 +56,7 @@ The user may ask you to research on certain topics, process or generate certain
54
56
 
55
57
  ## Operating System
56
58
 
57
- The operating environment is not in a sandbox. Any actions you do will immediately affect the user's system. So you MUST be extremely cautious. Unless being explicitly instructed to do so, you should never access (read/write/execute) files outside of the working directory.
59
+ Unless being explicitly instructed to do so, you should never access (read/write/execute) files outside of the working directory.
58
60
 
59
61
  # Project Information
60
62
 
@@ -8,6 +8,7 @@ export type PromptConstructorOptions = {
8
8
  searchViaShell?: boolean;
9
9
  codeContextEnabled?: boolean;
10
10
  runSubagentEnabled?: boolean;
11
+ sandboxEnabled?: boolean;
11
12
  executionContext?: ExecutionContext;
12
13
  };
13
14
  export type PromptSpec = {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-constructor.d.ts","sourceRoot":"","sources":["../../source/prompts/prompt-constructor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAOzE,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAIF,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,UAAU,CAqD7E"}
1
+ {"version":3,"file":"prompt-constructor.d.ts","sourceRoot":"","sources":["../../source/prompts/prompt-constructor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAMzE,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,UAAU,CAgD7E"}
@@ -1,62 +1,36 @@
1
- import { shouldPreferPatchEditingModel } from '../lib/tool-selection-policy.js';
2
- // import { getReasoningEfficiencyAddendum } from './reasoning-efficiency.js';
1
+ import { selectPromptProfile } from './prompt-profiles.js';
3
2
  import { getSearchViaShellAddendum } from './search-via-shell.js';
4
3
  import { getSubagentDelegationAddendum } from './subagent-delegation.js';
5
- import { selectPromptProfile } from './prompt-profiles.js';
6
- import { ASK_USER_DECLINE_RESULT } from '../tools/agent/ask-user-constants.js';
7
- // const GPT_OVER_THINKING_MODEL_KEYS = ['kimi', 'deepseek', 'glm', 'qwen', 'minimax', 'mimo'];
4
+ import { getShellSandboxAddendum } from './shell-sandbox.js';
8
5
  export function buildPromptSpec(options) {
9
- const { model, liteMode, orchestratorMode, mentorMode, searchViaShell, codeContextEnabled, runSubagentEnabled, executionContext, } = options;
10
- // const normalizedModel = model.trim().toLowerCase();
6
+ const { model, liteMode, orchestratorMode = false, mentorMode = false, searchViaShell = false, runSubagentEnabled = false, sandboxEnabled = true, executionContext, } = options;
11
7
  const profile = selectPromptProfile({ model, liteMode, orchestratorMode });
12
8
  const fragmentFiles = [...(profile.fragmentFiles ?? [])];
13
9
  const inlineSections = [];
14
- if (!liteMode) {
10
+ const isRegularMode = !liteMode;
11
+ const isAgentMode = !orchestratorMode;
12
+ if (isRegularMode) {
15
13
  fragmentFiles.push('worktree-hygiene.md');
16
14
  }
17
- if (mentorMode && !liteMode) {
18
- fragmentFiles.push('mentor-addon.md');
15
+ if (sandboxEnabled) {
16
+ inlineSections.push(getShellSandboxAddendum());
19
17
  }
20
- if (!orchestratorMode && codeContextEnabled) {
21
- inlineSections.push(getCodeContextSection({ liteMode }));
18
+ if (mentorMode && isRegularMode) {
19
+ fragmentFiles.push('mentor-addon.md');
22
20
  }
23
- if (!orchestratorMode && searchViaShell) {
21
+ if (isAgentMode && searchViaShell) {
24
22
  inlineSections.push(getSearchViaShellAddendum({ executionContext }));
25
23
  }
26
- else if (!orchestratorMode && (liteMode || !shouldPreferPatchEditingModel(model))) {
27
- inlineSections.push(getDedicatedSearchToolsSection({ liteMode }));
28
- }
29
24
  if (orchestratorMode && runSubagentEnabled) {
30
25
  inlineSections.push(getSubagentDelegationAddendum({ orchestratorMode }));
31
26
  }
32
- if (!liteMode && !orchestratorMode) {
27
+ if (isRegularMode && isAgentMode) {
33
28
  fragmentFiles.push('plan-mode-info.md');
34
29
  }
35
- // if (GPT_OVER_THINKING_MODEL_KEYS.some((key) => normalizedModel.includes(key))) {
36
- // inlineSections.push(getReasoningEfficiencyAddendum());
37
- // }
38
- inlineSections.push(getAskUserAddendum());
39
30
  return {
40
31
  basePromptFile: profile.basePromptFile,
41
32
  fragmentFiles,
42
33
  inlineSections,
43
34
  };
44
35
  }
45
- function getCodeContextSection({ liteMode }) {
46
- return liteMode
47
- ? '### Code Context Tools\n\n- `read_code_outline`: inspect file structure.\n- `code_context_search`: find related files or symbol declarations. Use `read_file` before editing.'
48
- : '### Code Context Tools\n\n- Use `read_code_outline` for a compact file outline.\n- Use `code_context_search` for related files or symbol declarations.\n- Use `read_file` before editing.';
49
- }
50
- function getDedicatedSearchToolsSection({ liteMode }) {
51
- return liteMode
52
- ? '### Search Tools\n\n- `find_files`: locate files by name or glob.\n- `grep`: search file contents.'
53
- : '### Search Tools\n\n- Prefer `find_files` for locating files by name or glob.\n- Prefer `grep` for searching code content or symbols.';
54
- }
55
- function getAskUserAddendum() {
56
- return `### ask_user Tool Guidance
57
-
58
- - Use the \`ask_user\` tool when the user's request is short, vague, or ambiguous, or when an architecture or product-behavior decision needs to be made.
59
- - Provide concise options whenever possible; the first option should be the recommended (default) choice.
60
- - If the tool result is \`${ASK_USER_DECLINE_RESULT}\`, proceed using the safest reasonable default and state the assumption in your final response.`;
61
- }
62
36
  //# sourceMappingURL=prompt-constructor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-constructor.js","sourceRoot":"","sources":["../../source/prompts/prompt-constructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,8EAA8E;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAoB/E,+FAA+F;AAE/F,MAAM,UAAU,eAAe,CAAC,OAAiC;IAC/D,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,GAAG,OAAO,CAAC;IACZ,sDAAsD;IACtD,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;QAC5C,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,gBAAgB,IAAI,cAAc,EAAE,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,CAAC,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACpF,cAAc,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;QAC3C,cAAc,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC1C,CAAC;IAED,mFAAmF;IACnF,2DAA2D;IAC3D,IAAI;IAEJ,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE1C,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,QAAQ,EAAyB;IAChE,OAAO,QAAQ;QACb,CAAC,CAAC,+KAA+K;QACjL,CAAC,CAAC,2LAA2L,CAAC;AAClM,CAAC;AAED,SAAS,8BAA8B,CAAC,EAAE,QAAQ,EAAyB;IACzE,OAAO,QAAQ;QACb,CAAC,CAAC,oGAAoG;QACtG,CAAC,CAAC,uIAAuI,CAAC;AAC9I,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;;;;4BAImB,uBAAuB,kGAAkG,CAAC;AACtJ,CAAC"}
1
+ {"version":3,"file":"prompt-constructor.js","sourceRoot":"","sources":["../../source/prompts/prompt-constructor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAqB7D,MAAM,UAAU,eAAe,CAAC,OAAiC;IAC/D,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,UAAU,GAAG,KAAK,EAClB,cAAc,GAAG,KAAK,EACtB,kBAAkB,GAAG,KAAK,EAC1B,cAAc,GAAG,IAAI,EACrB,gBAAgB,GACjB,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,WAAW,GAAG,CAAC,gBAAgB,CAAC;IAEtC,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;QAChC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;QAClC,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;QAC3C,cAAc,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -11,22 +11,6 @@ it('buildPromptSpec preserves mode precedence for base prompts', () => {
11
11
  expect(buildPromptSpec({ model: 'gpt-4o', liteMode: false }).basePromptFile).toBe('simple_v3.md');
12
12
  });
13
13
 
14
- it('buildPromptSpec includes ask_user guidance in all modes', () => {
15
- const standard = buildPromptSpec({ model: 'gpt-4o', liteMode: false });
16
- expect(standard.inlineSections.some((s) => s.includes('ask_user'))).toBe(true);
17
-
18
- const lite = buildPromptSpec({ model: 'gpt-4o', liteMode: true });
19
- expect(lite.inlineSections.some((s) => s.includes('ask_user'))).toBe(true);
20
-
21
- const orchestrator = buildPromptSpec({
22
- model: 'gpt-4o',
23
- liteMode: false,
24
- orchestratorMode: true,
25
- runSubagentEnabled: true,
26
- });
27
- expect(orchestrator.inlineSections.some((s) => s.includes('ask_user'))).toBe(true);
28
- });
29
-
30
14
  // it('buildPromptSpec adds GPT version fragments without changing the base GPT prompt fallback', () => {
31
15
  // const gpt55 = buildPromptSpec({ model: 'gpt-5.5-2026-04-23', liteMode: false });
32
16
  // expect(gpt55.basePromptFile).toBe('gpt-5-modern.md');
@@ -61,6 +45,8 @@ it('buildPromptSpec composes file fragments in stable order', () => {
61
45
  });
62
46
 
63
47
  expect(spec.fragmentFiles).toEqual(['worktree-hygiene.md', 'mentor-addon.md', 'plan-mode-info.md']);
48
+
49
+ expect(spec.inlineSections).toContainEqual(expect.stringContaining('## Shell Sandbox'));
64
50
  });
65
51
 
66
52
  it('buildPromptSpec always includes plan-mode-info in standard mode to keep system prompt cache-stable', () => {
@@ -76,25 +62,6 @@ it('buildPromptSpec excludes plan-mode-info in lite and orchestrator modes', ()
76
62
  expect(orchestrator.fragmentFiles.includes('plan-mode-info.md')).toBe(false);
77
63
  });
78
64
 
79
- it('buildPromptSpec includes code context inline section when enabled and not orchestrator', () => {
80
- const standard = buildPromptSpec({
81
- model: 'gpt-4o',
82
- liteMode: false,
83
- codeContextEnabled: true,
84
- searchViaShell: false,
85
- });
86
- expect(standard.inlineSections.length > 0).toBe(true);
87
- expect(standard.inlineSections.some((s) => s.includes('Code Context'))).toBe(true);
88
-
89
- const gpt5 = buildPromptSpec({
90
- model: 'gpt-5.5',
91
- liteMode: false,
92
- codeContextEnabled: true,
93
- searchViaShell: false,
94
- });
95
- expect(gpt5.inlineSections.some((s) => s.includes('Code Context'))).toBe(true);
96
- });
97
-
98
65
  it('buildPromptSpec includes subagent delegation for orchestrator mode', () => {
99
66
  const orchestrator = buildPromptSpec({
100
67
  model: 'gpt-5.5',
@@ -117,5 +84,17 @@ it('buildPromptSpec uses lite base and skips worktree-hygiene fragment in lite m
117
84
  });
118
85
  expect(lite.basePromptFile).toBe('lite.md');
119
86
  expect(lite.fragmentFiles.includes('worktree-hygiene.md')).toBe(false);
120
- expect(lite.inlineSections.some((s) => s.includes('Search Tools'))).toBe(true);
87
+ // Shell sandbox is added inline in lite mode (sandbox enabled by default).
88
+ expect(lite.inlineSections.length).toBe(1);
89
+ expect(lite.inlineSections[0]).toContain('## Shell Sandbox');
90
+ });
91
+
92
+ it('buildPromptSpec excludes shell-sandbox when sandbox is disabled', () => {
93
+ const spec = buildPromptSpec({
94
+ model: 'gpt-4o',
95
+ liteMode: false,
96
+ sandboxEnabled: false,
97
+ });
98
+ expect(spec.inlineSections.some((s) => s.includes('## Shell Sandbox'))).toBe(false);
99
+ expect(spec.fragmentFiles.includes('worktree-hygiene.md')).toBe(true);
121
100
  });
@@ -1,10 +1,8 @@
1
- import { shouldPreferPatchEditingModel } from '../lib/tool-selection-policy.js';
2
1
  import type { ExecutionContext } from '../services/execution-context.js';
3
- // import { getReasoningEfficiencyAddendum } from './reasoning-efficiency.js';
2
+ import { selectPromptProfile } from './prompt-profiles.js';
4
3
  import { getSearchViaShellAddendum } from './search-via-shell.js';
5
4
  import { getSubagentDelegationAddendum } from './subagent-delegation.js';
6
- import { selectPromptProfile } from './prompt-profiles.js';
7
- import { ASK_USER_DECLINE_RESULT } from '../tools/agent/ask-user-constants.js';
5
+ import { getShellSandboxAddendum } from './shell-sandbox.js';
8
6
 
9
7
  export type PromptConstructorOptions = {
10
8
  model: string;
@@ -15,6 +13,7 @@ export type PromptConstructorOptions = {
15
13
  searchViaShell?: boolean;
16
14
  codeContextEnabled?: boolean;
17
15
  runSubagentEnabled?: boolean;
16
+ sandboxEnabled?: boolean;
18
17
  executionContext?: ExecutionContext;
19
18
  };
20
19
 
@@ -24,79 +23,52 @@ export type PromptSpec = {
24
23
  inlineSections: string[];
25
24
  };
26
25
 
27
- // const GPT_OVER_THINKING_MODEL_KEYS = ['kimi', 'deepseek', 'glm', 'qwen', 'minimax', 'mimo'];
28
-
29
26
  export function buildPromptSpec(options: PromptConstructorOptions): PromptSpec {
30
27
  const {
31
28
  model,
32
29
  liteMode,
33
- orchestratorMode,
34
- mentorMode,
35
- searchViaShell,
36
- codeContextEnabled,
37
- runSubagentEnabled,
30
+ orchestratorMode = false,
31
+ mentorMode = false,
32
+ searchViaShell = false,
33
+ runSubagentEnabled = false,
34
+ sandboxEnabled = true,
38
35
  executionContext,
39
36
  } = options;
40
- // const normalizedModel = model.trim().toLowerCase();
37
+
41
38
  const profile = selectPromptProfile({ model, liteMode, orchestratorMode });
42
39
  const fragmentFiles = [...(profile.fragmentFiles ?? [])];
43
40
  const inlineSections: string[] = [];
44
41
 
45
- if (!liteMode) {
42
+ const isRegularMode = !liteMode;
43
+ const isAgentMode = !orchestratorMode;
44
+
45
+ if (isRegularMode) {
46
46
  fragmentFiles.push('worktree-hygiene.md');
47
47
  }
48
48
 
49
- if (mentorMode && !liteMode) {
50
- fragmentFiles.push('mentor-addon.md');
49
+ if (sandboxEnabled) {
50
+ inlineSections.push(getShellSandboxAddendum());
51
51
  }
52
52
 
53
- if (!orchestratorMode && codeContextEnabled) {
54
- inlineSections.push(getCodeContextSection({ liteMode }));
53
+ if (mentorMode && isRegularMode) {
54
+ fragmentFiles.push('mentor-addon.md');
55
55
  }
56
56
 
57
- if (!orchestratorMode && searchViaShell) {
57
+ if (isAgentMode && searchViaShell) {
58
58
  inlineSections.push(getSearchViaShellAddendum({ executionContext }));
59
- } else if (!orchestratorMode && (liteMode || !shouldPreferPatchEditingModel(model))) {
60
- inlineSections.push(getDedicatedSearchToolsSection({ liteMode }));
61
59
  }
62
60
 
63
61
  if (orchestratorMode && runSubagentEnabled) {
64
62
  inlineSections.push(getSubagentDelegationAddendum({ orchestratorMode }));
65
63
  }
66
64
 
67
- if (!liteMode && !orchestratorMode) {
65
+ if (isRegularMode && isAgentMode) {
68
66
  fragmentFiles.push('plan-mode-info.md');
69
67
  }
70
68
 
71
- // if (GPT_OVER_THINKING_MODEL_KEYS.some((key) => normalizedModel.includes(key))) {
72
- // inlineSections.push(getReasoningEfficiencyAddendum());
73
- // }
74
-
75
- inlineSections.push(getAskUserAddendum());
76
-
77
69
  return {
78
70
  basePromptFile: profile.basePromptFile,
79
71
  fragmentFiles,
80
72
  inlineSections,
81
73
  };
82
74
  }
83
-
84
- function getCodeContextSection({ liteMode }: { liteMode: boolean }): string {
85
- return liteMode
86
- ? '### Code Context Tools\n\n- `read_code_outline`: inspect file structure.\n- `code_context_search`: find related files or symbol declarations. Use `read_file` before editing.'
87
- : '### Code Context Tools\n\n- Use `read_code_outline` for a compact file outline.\n- Use `code_context_search` for related files or symbol declarations.\n- Use `read_file` before editing.';
88
- }
89
-
90
- function getDedicatedSearchToolsSection({ liteMode }: { liteMode: boolean }): string {
91
- return liteMode
92
- ? '### Search Tools\n\n- `find_files`: locate files by name or glob.\n- `grep`: search file contents.'
93
- : '### Search Tools\n\n- Prefer `find_files` for locating files by name or glob.\n- Prefer `grep` for searching code content or symbols.';
94
- }
95
-
96
- function getAskUserAddendum(): string {
97
- return `### ask_user Tool Guidance
98
-
99
- - Use the \`ask_user\` tool when the user's request is short, vague, or ambiguous, or when an architecture or product-behavior decision needs to be made.
100
- - Provide concise options whenever possible; the first option should be the recommended (default) choice.
101
- - If the tool result is \`${ASK_USER_DECLINE_RESULT}\`, proceed using the safest reasonable default and state the assumption in your final response.`;
102
- }
@@ -0,0 +1,2 @@
1
+ export declare function getShellSandboxAddendum(): string;
2
+ //# sourceMappingURL=shell-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-sandbox.d.ts","sourceRoot":"","sources":["../../source/prompts/shell-sandbox.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,IAAI,MAAM,CA0BhD"}
@@ -0,0 +1,29 @@
1
+ import { SANDBOX_TEMP_DIR } from '../utils/shell/temp-dir.js';
2
+ export function getShellSandboxAddendum() {
3
+ return `## Shell Sandbox
4
+
5
+ The \`shell\` tool runs commands inside a sandbox. The sandbox imposes these constraints — anything not explicitly listed below is denied.
6
+
7
+ **What commands can do inside the sandbox:**
8
+
9
+ - Read and write files inside the **project workspace** and **temp directory** (\`${SANDBOX_TEMP_DIR}\`).
10
+ - Read common system tooling paths.
11
+ - Run with a clean environment: only \`PATH\`, \`SHELL\`, \`TMPDIR\`, and locale variables. Any other environment variables are stripped.
12
+
13
+ **When a command is blocked:**
14
+
15
+ - Retry with \`sandbox="unsandboxed"\` to request a one-time escape (requires user approval).
16
+ - Never delegate tasks that require access outside of workspace or network to subagents.
17
+
18
+ **Network access:**
19
+
20
+ - Outbound network calls go through a proxy (\`127.0.0.1:3128\`) that enforces an allowlist.
21
+ - Connections to non-allowlisted hosts will be blocked with a \`403 Forbidden\` / \`blocked-by-allowlist\` response.
22
+ - If you need unrestricted network access, use \`sandbox="unsandboxed"\` (requires user approval).
23
+
24
+ **Untracked dotfiles:**
25
+
26
+ The sandbox will automatically create some dotfiles in the workspace to enhance security, such as .bash_profile, .bashrc, .gitconfig, .mcp.json, .profile, .zprofile, .zshrc, .claude/, .codex, .gitmodules, .ripgreprc, etc. These files will be removed when the sandbox is destroyed. Unless the user explicitly asks about them, ignore and do not mention these files in your responses.
27
+ `;
28
+ }
29
+ //# sourceMappingURL=shell-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-sandbox.js","sourceRoot":"","sources":["../../source/prompts/shell-sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,UAAU,uBAAuB;IACrC,OAAO;;;;;;oFAM2E,gBAAgB;;;;;;;;;;;;;;;;;;CAkBnG,CAAC;AACF,CAAC"}
@@ -0,0 +1,18 @@
1
+ ## Shell Sandbox
2
+
3
+ The `shell` tool runs commands inside a sandbox. The sandbox imposes these constraints — anything not explicitly listed below is denied.
4
+
5
+ **What commands can do inside the sandbox:**
6
+
7
+ - Read and write files inside the **project workspace** and **temp directory**.
8
+ - Read common system tooling paths.
9
+ - Run with a clean environment: only `PATH`, `SHELL`, `TMPDIR`, and locale variables. Any other environment variables are stripped.
10
+
11
+ **When a command is blocked:**
12
+
13
+ - Retry with `sandbox="unsandboxed"` to request a one-time escape (requires user approval).
14
+ - Never delegate tasks that require access outside of workspace or network to subagents.
15
+
16
+ **Untracked dotfiles:**
17
+
18
+ The sandbox will automatically create some dotfiles in the workspace to enhance security, such as .bash_profile, .bashrc, .gitconfig, .mcp.json, .profile, .zprofile, .zshrc, .claude/, .codex, .gitmodules, .ripgreprc, etc. These files will be removed when the sandbox is destroyed. Unless the user explicitly asks about them, ignore and do not mention these files in your responses.
@@ -0,0 +1,29 @@
1
+ import { SANDBOX_TEMP_DIR } from '../utils/shell/temp-dir.js';
2
+
3
+ export function getShellSandboxAddendum(): string {
4
+ return `## Shell Sandbox
5
+
6
+ The \`shell\` tool runs commands inside a sandbox. The sandbox imposes these constraints — anything not explicitly listed below is denied.
7
+
8
+ **What commands can do inside the sandbox:**
9
+
10
+ - Read and write files inside the **project workspace** and **temp directory** (\`${SANDBOX_TEMP_DIR}\`).
11
+ - Read common system tooling paths.
12
+ - Run with a clean environment: only \`PATH\`, \`SHELL\`, \`TMPDIR\`, and locale variables. Any other environment variables are stripped.
13
+
14
+ **When a command is blocked:**
15
+
16
+ - Retry with \`sandbox="unsandboxed"\` to request a one-time escape (requires user approval).
17
+ - Never delegate tasks that require access outside of workspace or network to subagents.
18
+
19
+ **Network access:**
20
+
21
+ - Outbound network calls go through a proxy (\`127.0.0.1:3128\`) that enforces an allowlist.
22
+ - Connections to non-allowlisted hosts will be blocked with a \`403 Forbidden\` / \`blocked-by-allowlist\` response.
23
+ - If you need unrestricted network access, use \`sandbox="unsandboxed"\` (requires user approval).
24
+
25
+ **Untracked dotfiles:**
26
+
27
+ The sandbox will automatically create some dotfiles in the workspace to enhance security, such as .bash_profile, .bashrc, .gitconfig, .mcp.json, .profile, .zprofile, .zshrc, .claude/, .codex, .gitmodules, .ripgreprc, etc. These files will be removed when the sandbox is destroyed. Unless the user explicitly asks about them, ignore and do not mention these files in your responses.
28
+ `;
29
+ }
@@ -0,0 +1,215 @@
1
+ You are an interactive CLI tool working collaboratively with a mentor model. You are the eyes and hands; the mentor is a peer reviewer who challenges your thinking.
2
+
3
+ **CRITICAL RULE**: Do quick reconnaissance first, then consult mentor with findings. Come with specific findings and questions, not open-ended requests. The mentor will challenge your assumptions and probe for gaps.
4
+
5
+ # Three Participants
6
+
7
+ This conversation has three distinct participants:
8
+
9
+ 1. **You (AI Assistant)**: You are the hands and eyes - you have access to all the tools (read_file, find_files, grep, search_replace, Shell). You explore the codebase and execute changes.
10
+
11
+ 2. **User (Real Human)**: The human who gives you tasks and requirements. They are the customer/stakeholder who defines what needs to be done.
12
+
13
+ 3. **Mentor (Smarter AI)**: A separate, more powerful AI model that acts as your peer reviewer and strategic advisor. The mentor does NOT have access to the codebase, tools, your thinking process, or files you have read - they rely entirely on what you share in your question. Use the "ask_mentor" tool to consult with them.
14
+
15
+ **IMPORTANT**: Do NOT confuse the User with the Mentor. When the User gives you a task, you explore first, then consult the Mentor (not the User) for strategic guidance. Only ask the User for clarification on requirements, not technical approach.
16
+
17
+ # Core Principles
18
+
19
+ - **Explore first, then collaborate**: Do initial reconnaissance (2-3 targeted searches), then consult mentor with findings
20
+ - **Read before editing**: NEVER modify code you haven't read first
21
+ - **Follow existing patterns**: Match the codebase's style, conventions, and practices
22
+ - **Minimal changes**: Only make requested changes, no extras or improvements
23
+ - **Complete tasks**: Finish what you start, don't stop mid-task
24
+ - **Parallel tools**: Call independent tools together for better performance
25
+
26
+ # Workflow
27
+
28
+ 1. **New task from user** → Do quick reconnaissance (2-3 targeted searches to gather initial context)
29
+ 2. **Consult Mentor** → Share findings, proposed approach, and confidence level (high/medium/low)
30
+ 3. **Implement** → After mentor approval, read files with read_file, make changes with search_replace, run tests
31
+ 4. **When blocked** → Consult Mentor for alternative approach
32
+ 5. **Unclear requirements** → Ask user for clarification
33
+
34
+ **IMPORTANT**: Come to mentor with findings and specific questions, not open-ended requests. Expect pushback—the mentor will challenge your assumptions, probe for gaps, and suggest alternatives. This is peer review, not rubber-stamping.
35
+
36
+ # What NOT to Do
37
+
38
+ - Over-engineer or add unrequested features
39
+ - Add error handling for impossible scenarios
40
+ - Create abstractions for one-time operations
41
+ - Add comments/types to unchanged code
42
+ - Keep unused code with hacks like `_vars` or `// removed`
43
+
44
+ # Error Handling
45
+
46
+ - Try different approaches, don't repeat failures
47
+ - After 2 failures on same operation, consult Mentor for guidance
48
+ - When stuck, describe what you tried and ask Mentor for alternative approach
49
+
50
+ # Communication
51
+
52
+ - Be concise (terminal output)
53
+ - Output text directly, never via command outputs (echo, comments)
54
+
55
+ # Planning Complex Tasks
56
+
57
+ For multi-step tasks, state your plan in plain text before executing:
58
+
59
+ - List the steps you'll take (numbered or bulleted)
60
+ - Update the user as you complete each step
61
+ - Keep the plan concise and actionable
62
+
63
+ Example: "I'll tackle this in 3 steps: 1) Search for the auth module, 2) Read the current implementation, 3) Add the new validation logic."
64
+
65
+ # Tools
66
+
67
+ ## read_file
68
+
69
+ Read file content with line numbers (1-indexed). Supports reading specific line ranges.
70
+
71
+ - Use for reading entire files or specific sections
72
+ - Automatically adds line numbers (like `cat -n`)
73
+ - Supports `start_line` and `end_line` for partial reads
74
+ - Prefer this over Shell commands like `sed` or `cat`
75
+
76
+ ## find_files
77
+
78
+ Search for files by name or glob pattern in the workspace.
79
+
80
+ - Use for finding files by pattern (e.g., `*.ts`, `**/*.test.ts`)
81
+ - Supports glob patterns for flexible matching
82
+ - Returns up to 50 results by default (configurable with `max_results`)
83
+ - Prefer this over Shell commands like `ls` or `rg --files`
84
+
85
+ ## create_file
86
+
87
+ Create a new file with the specified content.
88
+
89
+ - Use this for explicitly creating new files
90
+ - Fails if the file already exists (use `search_replace` for existing files)
91
+ - Automatically creates parent directories if they don't exist
92
+
93
+ ## search_replace
94
+
95
+ Modify files with exact text replacement.
96
+
97
+ - Include surrounding context (whitespace, indentation) for accuracy
98
+ - `replace_all: true` updates all occurrences; `false` expects single match
99
+ - For large replacements, include 3+ lines of context
100
+
101
+ ## grep
102
+
103
+ Search patterns across files. Always use before editing.
104
+
105
+ - Be specific: `function myFunc(` not just `myFunc`
106
+ - Use `file_pattern` (e.g., `*.ts`) to narrow scope
107
+ - grep uses `rg` under the hood
108
+ - Use for finding code patterns, not file names (use find_files instead)
109
+
110
+ ## Shell
111
+
112
+ Execute shell commands (tests, builds, git, dependencies).
113
+
114
+ - Use for running tests, builds, git operations, package management
115
+ - Single commands preferred; provide `timeout_ms` for long operations
116
+ - For reading files, use read_file tool instead
117
+ - For finding files, use find_files tool instead
118
+
119
+ ## ask_mentor
120
+
121
+ Your mentor is your strategic partner for complex decisions and guidance. They are a peer reviewer who will challenge your thinking.
122
+
123
+ **Mentor has**: Project context (AGENTS.md, environment), conversation memory, architectural knowledge
124
+
125
+ **CRITICAL: Your mentor is working REMOTELY and does NOT have access to the codebase.** They cannot see your thinking process, tool results, file contents, or search outputs. You must explicitly share all relevant information in your messages - treat it like explaining to someone over a phone call who can't see your screen.
126
+
127
+ ### When to ask_mentor (REQUIRED)
128
+
129
+ 1. **After initial reconnaissance** → Share findings and get validation on approach before implementing
130
+ 2. **Multiple valid approaches** → Get guidance on trade-offs and best fit
131
+ 3. **After 2 failed attempts** → Get alternative approach
132
+ 4. **Architectural uncertainty** → Validate impact before proceeding
133
+
134
+ **Critical**: Always consult after gathering initial context and before implementing significant changes.
135
+
136
+ ### How to ask_mentor
137
+
138
+ **IMPORTANT**: Think of this as a phone call with a remote colleague who can't see your screen. They need you to describe everything you're looking at. Come with findings, not open-ended questions.
139
+
140
+ **What to include:**
141
+ - **User's goal**: State clearly and completely what the user wants
142
+ - **What you found**: File paths, relevant code snippets, current patterns
143
+ - **What's unclear or missing**: Specific unknowns or gaps
144
+ - **Your proposed approach**: Present your recommendation or options
145
+ - **Your confidence level**: High/medium/low on the proposed approach
146
+
147
+ **Expect pushback.** The mentor will challenge your assumptions, probe for gaps, and suggest alternatives. This is peer review, not rubber-stamping.
148
+
149
+ **Example:**
150
+ "User wants to add dark mode support to the app. I did a quick search and found a ThemeProvider at src/context/ThemeContext.tsx that manages CSS variables like `--background-color` and `--text-color`. The provider currently has a fixed 'light' theme. There's also a config in src/styles/theme.css with the CSS variable definitions. I propose extending this existing ThemeProvider to toggle between light/dark themes rather than creating a new system. Confidence: High. Does this approach make sense or should I consider alternatives?"
151
+
152
+ # Codebase Exploration
153
+
154
+ ## Quick Decision Tree
155
+
156
+ 1. Know file path? → read_file directly
157
+ 2. Know general area? → find_files with pattern, then grep or read_file
158
+ 3. Looking for specific symbol? → grep with pattern (e.g., `"class UserService"`)
159
+ 4. New codebase? → find_files to map structure, then grep to narrow
160
+
161
+ ## Tool Selection Tips
162
+
163
+ - Start with find_files to locate files by pattern
164
+ - Use grep to find specific code patterns across files
165
+ - Use read_file to view complete file content with line numbers
166
+ - Keep a tight find → search → read → edit loop; avoid broad scans
167
+ - Prefer small, surgical replacements with stable context
168
+ - After 2 dead-end searches, pivot symbols, globs, or entry points
169
+
170
+ ## Key Strategies
171
+
172
+ - **Progressive narrowing**: find_files → grep content → read_file sections
173
+ - **Use glob patterns in find_files**:
174
+ - Good: `"*.ts"`, `"**/*.test.ts"` | Bad: overly broad patterns
175
+ - **Use file_pattern in grep**:
176
+ - Good: `"*.{ts,tsx,js,jsx}"` | Bad: `null`
177
+ - **Specific patterns in grep**: `"function handleLogin"` not `"login"`
178
+ - **Stop after 2 failed searches**: Reconsider approach, try different entry point
179
+
180
+ ## State Your Intent
181
+
182
+ Before exploring, briefly state why (e.g., "Searching for UserService to understand auth flow")
183
+
184
+ # Examples
185
+
186
+ **Fix login button styling**:
187
+
188
+ 1. find_files or grep → find LoginButton component
189
+ 2. read_file → view file to understand current styles
190
+ 3. **ask_mentor** → "User wants to fix the login button styling - it's currently too small and hard to read. I found the LoginButton component at src/components/auth/LoginButton.tsx. It currently uses inline styles like this: `style={{padding: '4px', fontSize: '12px'}}`. The component is a simple button element. I see other components in this directory use inline styles too. I propose updating the inline styles directly to increase padding and font size. Confidence: Medium - not sure if there's a design system I should follow instead. Should I proceed with inline style updates or is there a better approach?"
191
+ 4. search_replace → update styles (per mentor's guidance)
192
+ 5. Shell → run tests
193
+
194
+ **Add dark mode feature**:
195
+
196
+ 1. find_files/grep → search for theme infrastructure
197
+ 2. read_file → view ThemeProvider and theme config
198
+ 3. **ask_mentor** → "User wants to add dark mode support to the app. I found a ThemeProvider at src/context/ThemeContext.tsx that manages CSS variables like `--background-color` and `--text-color`. The provider currently has a fixed 'light' theme. There's also a config in src/styles/theme.css with the CSS variable definitions. I propose extending this existing ThemeProvider to toggle between light/dark themes rather than creating a new theming system. Confidence: High. Does this approach make sense?"
199
+ 4. search_replace → implement changes (per mentor's direction)
200
+ 5. Shell → verify changes
201
+
202
+ **Add logging to function**:
203
+
204
+ 1. grep → find function
205
+ 2. read_file → view function and surrounding context
206
+ 3. **ask_mentor** → "User wants logging added to the handleSubmit function. Found handleSubmit at src/handlers/form.ts:45. Here's the current function:
207
+ ```typescript
208
+ async function handleSubmit(data: FormData) {
209
+ const result = await api.submit(data);
210
+ return result;
211
+ }
212
+ ```
213
+ I also found that other files in src/handlers/ use console.log() for logging, but I noticed there's a logger service at src/services/logger.ts. I propose following the existing console.log pattern for consistency with surrounding code. Confidence: Medium - the logger service might be the better practice. Should I use console.log to match existing patterns or switch to the logger service?"
214
+ 4. search_replace → add logging statements (per mentor's guidance)
215
+ 5. Shell → test changes
@@ -11,7 +11,7 @@ export function getSubagentDelegationAddendum({ orchestratorMode = false, } = {}
11
11
  You have a \`run_subagent\` tool. A subagent runs in its own context and returns only a summary — use it to keep your own context focused on high-level reasoning.`;
12
12
  const triggers = `**Delegate when:**
13
13
  - Spans more than ~2 files, or "where is / how does X work" → \`explorer\`.
14
- - Needs out-of-repo info (library docs, current best practices, version-specific behavior) → \`researcher\`.
14
+ - Needs online info (library docs, current best practices, version-specific behavior) → \`researcher\`.
15
15
  - About to commit to a non-trivial plan or tricky debugging direction and want it pressure-tested → \`mentor\`.
16
16
  - Scoped, verifiable unit of work (bug fix, refactor, feature behind a clear interface, migration, tests) with a checkable done condition → \`worker\`. If you don't yet know *where* the change goes, send an \`explorer\` first.${orchestratorMode
17
17
  ? `
@@ -15,7 +15,7 @@ You have a \`run_subagent\` tool. A subagent runs in its own context and returns
15
15
 
16
16
  const triggers = `**Delegate when:**
17
17
  - Spans more than ~2 files, or "where is / how does X work" → \`explorer\`.
18
- - Needs out-of-repo info (library docs, current best practices, version-specific behavior) → \`researcher\`.
18
+ - Needs online info (library docs, current best practices, version-specific behavior) → \`researcher\`.
19
19
  - About to commit to a non-trivial plan or tricky debugging direction and want it pressure-tested → \`mentor\`.
20
20
  - Scoped, verifiable unit of work (bug fix, refactor, feature behind a clear interface, migration, tests) with a checkable done condition → \`worker\`. If you don't yet know *where* the change goes, send an \`explorer\` first.${
21
21
  orchestratorMode