@ashx-j/lunr-dev 0.2.16-dev.9.1 → 0.2.21-dev.12.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 (430) hide show
  1. package/CHANGELOG.md +67 -1
  2. package/README.md +7 -1
  3. package/dist/builtin-extensions/ashxj-thinking.d.ts +1 -0
  4. package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -1
  5. package/dist/builtin-extensions/ashxj-thinking.js +44 -19
  6. package/dist/builtin-extensions/ashxj-thinking.js.map +1 -1
  7. package/dist/builtin-extensions/index.d.ts.map +1 -1
  8. package/dist/builtin-extensions/index.js +1 -2
  9. package/dist/builtin-extensions/index.js.map +1 -1
  10. package/dist/builtin-extensions/lunr-computer-use.d.ts +3 -0
  11. package/dist/builtin-extensions/lunr-computer-use.d.ts.map +1 -0
  12. package/dist/builtin-extensions/lunr-computer-use.js +158 -0
  13. package/dist/builtin-extensions/lunr-computer-use.js.map +1 -0
  14. package/dist/builtin-extensions/lunr-todos.d.ts +6 -5
  15. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
  16. package/dist/builtin-extensions/lunr-todos.js +9 -7
  17. package/dist/builtin-extensions/lunr-todos.js.map +1 -1
  18. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +6 -4
  19. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -1
  20. package/dist/builtin-extensions/pi-intercom/broker/spawn.js +114 -61
  21. package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -1
  22. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  23. package/dist/builtin-extensions/pi-intercom/index.js +360 -351
  24. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  25. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
  26. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +10 -3
  27. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
  28. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts +5 -1
  29. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts.map +1 -1
  30. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js +26 -4
  31. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js.map +1 -1
  32. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
  33. package/dist/builtin-extensions/pi-mcp-adapter/index.js +37 -27
  34. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
  35. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts +6 -1
  36. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -1
  37. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +33 -8
  38. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
  40. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +2 -2
  41. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
  42. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +8 -6
  43. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  44. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +179 -79
  45. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  46. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +18 -8
  47. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  48. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +44 -15
  49. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  50. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -3
  51. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +24 -14
  53. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  54. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +8 -1
  55. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  56. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +247 -18
  57. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
  58. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +1 -0
  59. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -1
  60. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -1
  62. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts +29 -0
  63. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts.map +1 -0
  64. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js +179 -0
  65. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js.map +1 -0
  66. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts +89 -0
  67. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts.map +1 -0
  68. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js +541 -0
  69. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js.map +1 -0
  70. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +11 -1
  71. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  72. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +38 -12
  73. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  74. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
  75. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +3 -2
  76. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
  77. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +2 -1
  78. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
  79. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +35 -8
  80. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
  81. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +7 -3
  82. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  83. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +26 -4
  84. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
  85. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +1 -0
  86. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  87. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +55 -38
  88. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  89. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +100 -0
  90. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  91. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +46 -31
  92. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  93. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +3 -6
  94. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
  95. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +64 -5
  96. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
  97. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +15 -2
  98. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -1
  99. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +14 -4
  100. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -1
  101. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts +1 -1
  102. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
  103. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +7 -3
  104. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  105. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  106. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +21 -8
  107. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  108. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  109. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1 -1
  110. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  111. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.d.ts +10 -0
  112. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.d.ts.map +1 -0
  113. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.js +38 -0
  114. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.js.map +1 -0
  115. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +0 -1
  116. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  117. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +74 -41
  118. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  119. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -0
  120. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
  121. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +75 -18
  122. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
  123. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +1 -1
  124. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -1
  125. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +2 -0
  126. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -1
  127. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +1 -1
  128. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -1
  129. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +1 -1
  130. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -1
  131. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +13 -1
  132. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
  133. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +67 -11
  134. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
  135. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +1 -0
  136. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  137. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  138. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +3 -0
  139. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  140. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +7 -2
  141. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  142. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  143. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -3
  144. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  145. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
  146. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
  147. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +5 -10
  148. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
  149. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts +2 -0
  150. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts.map +1 -0
  151. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js +3 -0
  152. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js.map +1 -0
  153. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +3 -0
  154. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
  155. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +68 -11
  156. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
  157. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +12 -1
  158. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -1
  159. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +21 -2
  160. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -1
  161. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +21 -4
  162. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  163. package/dist/builtin-extensions/pi-subagents/src/shared/types.js +1 -1
  164. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  165. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -1
  166. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -1
  167. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +7 -0
  168. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
  169. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +11 -7
  170. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
  171. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +6 -0
  172. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  173. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +46 -29
  174. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  175. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +47 -4
  176. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  177. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +428 -431
  178. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  179. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
  180. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +1 -1
  181. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -1
  182. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +2 -13
  183. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -1
  184. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +5 -91
  185. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
  186. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  187. package/dist/builtin-extensions/pi-web-access/index.js +103 -102
  188. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  189. package/dist/core/agent-session-services.d.ts.map +1 -1
  190. package/dist/core/agent-session-services.js +1 -1
  191. package/dist/core/agent-session-services.js.map +1 -1
  192. package/dist/core/computer-use/adapter.d.ts +23 -0
  193. package/dist/core/computer-use/adapter.d.ts.map +1 -0
  194. package/dist/core/computer-use/adapter.js +116 -0
  195. package/dist/core/computer-use/adapter.js.map +1 -0
  196. package/dist/core/computer-use/image.d.ts +26 -0
  197. package/dist/core/computer-use/image.d.ts.map +1 -0
  198. package/dist/core/computer-use/image.js +64 -0
  199. package/dist/core/computer-use/image.js.map +1 -0
  200. package/dist/core/computer-use/lease.d.ts +18 -0
  201. package/dist/core/computer-use/lease.d.ts.map +1 -0
  202. package/dist/core/computer-use/lease.js +129 -0
  203. package/dist/core/computer-use/lease.js.map +1 -0
  204. package/dist/core/computer-use/macos-runtime.d.ts +14 -0
  205. package/dist/core/computer-use/macos-runtime.d.ts.map +1 -0
  206. package/dist/core/computer-use/macos-runtime.js +148 -0
  207. package/dist/core/computer-use/macos-runtime.js.map +1 -0
  208. package/dist/core/computer-use/policy.d.ts +19 -0
  209. package/dist/core/computer-use/policy.d.ts.map +1 -0
  210. package/dist/core/computer-use/policy.js +62 -0
  211. package/dist/core/computer-use/policy.js.map +1 -0
  212. package/dist/core/computer-use/release.generated.d.ts +31 -0
  213. package/dist/core/computer-use/release.generated.d.ts.map +1 -0
  214. package/dist/core/computer-use/release.generated.js +36 -0
  215. package/dist/core/computer-use/release.generated.js.map +1 -0
  216. package/dist/core/computer-use/runtime.d.ts +13 -0
  217. package/dist/core/computer-use/runtime.d.ts.map +1 -0
  218. package/dist/core/computer-use/runtime.js +158 -0
  219. package/dist/core/computer-use/runtime.js.map +1 -0
  220. package/dist/core/computer-use/schemas.d.ts +91 -0
  221. package/dist/core/computer-use/schemas.d.ts.map +1 -0
  222. package/dist/core/computer-use/schemas.js +71 -0
  223. package/dist/core/computer-use/schemas.js.map +1 -0
  224. package/dist/core/computer-use/windows-desktop.d.ts +3 -0
  225. package/dist/core/computer-use/windows-desktop.d.ts.map +1 -0
  226. package/dist/core/computer-use/windows-desktop.js +48 -0
  227. package/dist/core/computer-use/windows-desktop.js.map +1 -0
  228. package/dist/core/computer-use/workflow.d.ts +32 -0
  229. package/dist/core/computer-use/workflow.d.ts.map +1 -0
  230. package/dist/core/computer-use/workflow.js +341 -0
  231. package/dist/core/computer-use/workflow.js.map +1 -0
  232. package/dist/core/customize.d.ts +2 -0
  233. package/dist/core/customize.d.ts.map +1 -1
  234. package/dist/core/customize.js +3 -0
  235. package/dist/core/customize.js.map +1 -1
  236. package/dist/core/keybindings.d.ts +2 -2
  237. package/dist/core/keybindings.d.ts.map +1 -1
  238. package/dist/core/keybindings.js +2 -2
  239. package/dist/core/keybindings.js.map +1 -1
  240. package/dist/core/model-runtime.d.ts +0 -3
  241. package/dist/core/model-runtime.d.ts.map +1 -1
  242. package/dist/core/model-runtime.js +1 -10
  243. package/dist/core/model-runtime.js.map +1 -1
  244. package/dist/core/package-manager.d.ts.map +1 -1
  245. package/dist/core/package-manager.js +1 -1
  246. package/dist/core/package-manager.js.map +1 -1
  247. package/dist/core/permissions.d.ts +2 -1
  248. package/dist/core/permissions.d.ts.map +1 -1
  249. package/dist/core/permissions.js +31 -11
  250. package/dist/core/permissions.js.map +1 -1
  251. package/dist/core/plan-mode.d.ts.map +1 -1
  252. package/dist/core/plan-mode.js +9 -5
  253. package/dist/core/plan-mode.js.map +1 -1
  254. package/dist/core/rollback.d.ts.map +1 -1
  255. package/dist/core/rollback.js +13 -90
  256. package/dist/core/rollback.js.map +1 -1
  257. package/dist/core/runtime-bridges.d.ts.map +1 -1
  258. package/dist/core/runtime-bridges.js +0 -2
  259. package/dist/core/runtime-bridges.js.map +1 -1
  260. package/dist/core/session-manager.d.ts +0 -1
  261. package/dist/core/session-manager.d.ts.map +1 -1
  262. package/dist/core/session-manager.js +21 -79
  263. package/dist/core/session-manager.js.map +1 -1
  264. package/dist/core/settings-manager.d.ts +10 -0
  265. package/dist/core/settings-manager.d.ts.map +1 -1
  266. package/dist/core/settings-manager.js +30 -0
  267. package/dist/core/settings-manager.js.map +1 -1
  268. package/dist/core/subagent-cancellation.d.ts +21 -0
  269. package/dist/core/subagent-cancellation.d.ts.map +1 -0
  270. package/dist/core/subagent-cancellation.js +53 -0
  271. package/dist/core/subagent-cancellation.js.map +1 -0
  272. package/dist/core/subagent-spinner-setting.d.ts +6 -0
  273. package/dist/core/subagent-spinner-setting.d.ts.map +1 -0
  274. package/dist/core/subagent-spinner-setting.js +12 -0
  275. package/dist/core/subagent-spinner-setting.js.map +1 -0
  276. package/dist/core/subagent-spinner.d.ts +4 -0
  277. package/dist/core/subagent-spinner.d.ts.map +1 -0
  278. package/dist/core/subagent-spinner.js +6 -0
  279. package/dist/core/subagent-spinner.js.map +1 -0
  280. package/dist/dev-cli.js +0 -0
  281. package/dist/gateway/agent-bridge.d.ts +6 -1
  282. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  283. package/dist/gateway/agent-bridge.js +23 -6
  284. package/dist/gateway/agent-bridge.js.map +1 -1
  285. package/dist/gateway/cron.d.ts +1 -1
  286. package/dist/gateway/cron.d.ts.map +1 -1
  287. package/dist/gateway/cron.js +23 -7
  288. package/dist/gateway/cron.js.map +1 -1
  289. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  290. package/dist/modes/interactive/components/assistant-message.js +12 -18
  291. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  292. package/dist/modes/interactive/components/footer.d.ts +4 -2
  293. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  294. package/dist/modes/interactive/components/footer.js +23 -32
  295. package/dist/modes/interactive/components/footer.js.map +1 -1
  296. package/dist/modes/interactive/components/processes-selector.d.ts +2 -3
  297. package/dist/modes/interactive/components/processes-selector.d.ts.map +1 -1
  298. package/dist/modes/interactive/components/processes-selector.js +5 -10
  299. package/dist/modes/interactive/components/processes-selector.js.map +1 -1
  300. package/dist/modes/interactive/components/settings-selector.d.ts +8 -0
  301. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  302. package/dist/modes/interactive/components/settings-selector.js +93 -1
  303. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  304. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  305. package/dist/modes/interactive/components/tool-execution.js +12 -0
  306. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  307. package/dist/modes/interactive/extension-widget-order.d.ts +8 -0
  308. package/dist/modes/interactive/extension-widget-order.d.ts.map +1 -0
  309. package/dist/modes/interactive/extension-widget-order.js +37 -0
  310. package/dist/modes/interactive/extension-widget-order.js.map +1 -0
  311. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  312. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  313. package/dist/modes/interactive/interactive-mode.js +58 -26
  314. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  315. package/dist/modes/interactive/thinking-level-slash.d.ts +4 -0
  316. package/dist/modes/interactive/thinking-level-slash.d.ts.map +1 -0
  317. package/dist/modes/interactive/thinking-level-slash.js +23 -0
  318. package/dist/modes/interactive/thinking-level-slash.js.map +1 -0
  319. package/dist/node-runtime/adapter-AZMY335J.js +279 -0
  320. package/dist/node-runtime/{agent-session-services-IFJMSX7Z.js → agent-session-services-QANFGM2V.js} +15 -11
  321. package/dist/node-runtime/{builtin-extensions-LYZ3BFWQ.js → builtin-extensions-SRCYQPZ6.js} +5 -3
  322. package/dist/node-runtime/chunk-2IDTZAG5.js +1415 -0
  323. package/dist/node-runtime/chunk-3ONQTOMR.js +68 -0
  324. package/dist/node-runtime/{chunk-TQNSPERU.js → chunk-5SQDLSZJ.js} +1 -1
  325. package/dist/node-runtime/chunk-5ZH3ZFIZ.js +308 -0
  326. package/dist/node-runtime/{chunk-PBC2Y6GS.js → chunk-6UB6NKA3.js} +29 -72
  327. package/dist/node-runtime/{chunk-A2KQXUJD.js → chunk-7AFOFSDY.js} +1 -1
  328. package/dist/node-runtime/chunk-A3KMVBZV.js +60 -0
  329. package/dist/node-runtime/{chunk-N77MY65L.js → chunk-BJ6H7DPI.js} +25 -25
  330. package/dist/node-runtime/{chunk-PGAJ5MO5.js → chunk-BYQ2MOFI.js} +6 -6
  331. package/dist/node-runtime/{chunk-QH42CDX3.js → chunk-CZUBYPFP.js} +234 -124
  332. package/dist/node-runtime/{chunk-LZAW4ZX3.js → chunk-D466UAID.js} +34 -13
  333. package/dist/node-runtime/{chunk-ZKMFUD3Q.js → chunk-GT5F3OKM.js} +3 -3
  334. package/dist/node-runtime/chunk-H2BI7G7T.js +73 -0
  335. package/dist/node-runtime/{chunk-5P7PZMRU.js → chunk-HRS4HMDX.js} +1 -1
  336. package/dist/node-runtime/{chunk-IPA627GP.js → chunk-HXJS2PJM.js} +4 -4
  337. package/dist/node-runtime/chunk-JZHEUQRL.js +180 -0
  338. package/dist/node-runtime/chunk-LISUTZS3.js +19 -0
  339. package/dist/node-runtime/chunk-LOYUC2ID.js +2185 -0
  340. package/dist/node-runtime/{chunk-2QKLKMKC.js → chunk-LTXUQJI4.js} +1 -1
  341. package/dist/node-runtime/{chunk-YF63P5ZT.js → chunk-LTYWTR3V.js} +1 -426
  342. package/dist/node-runtime/{chunk-MKKH27PH.js → chunk-LWJXTA6Z.js} +274 -2416
  343. package/dist/node-runtime/chunk-MW2XJZIK.js +108 -0
  344. package/dist/node-runtime/{chunk-CDFZEWPU.js → chunk-N3PNL74S.js} +537 -262
  345. package/dist/node-runtime/{chunk-4TLO4PO2.js → chunk-U6C7VTR5.js} +7 -1401
  346. package/dist/node-runtime/chunk-URD2SLIT.js +1019 -0
  347. package/dist/node-runtime/{chunk-HQCKFM2O.js → chunk-VGYZ3APQ.js} +3 -0
  348. package/dist/node-runtime/{chunk-AJX357CL.js → chunk-VQ4UBWSA.js} +30 -1013
  349. package/dist/node-runtime/{chunk-F4VQFJI2.js → chunk-VTGEKB7R.js} +2 -2
  350. package/dist/node-runtime/{chunk-AD6VXAO7.js → chunk-VTPM5V35.js} +5 -100
  351. package/dist/node-runtime/chunk-W3SILANP.js +24 -0
  352. package/dist/node-runtime/{chunk-WOVTOV5P.js → chunk-XAUQOKYK.js} +421 -63
  353. package/dist/node-runtime/{chunk-ECD5L7YI.js → chunk-XSRCAQK2.js} +390 -16
  354. package/dist/node-runtime/{chunk-PCGNAY2O.js → chunk-ZOIIMEN6.js} +54 -433
  355. package/dist/node-runtime/{chunk-EDBJNRSM.js → chunk-ZVSORYRM.js} +1 -1
  356. package/dist/node-runtime/cli-runtime.js +1 -1
  357. package/dist/node-runtime/{command-L3LAHDIH.js → command-ZURZJDXF.js} +1 -1
  358. package/dist/node-runtime/{commands-RL5YBW5I.js → commands-BZGSLIP7.js} +4 -2
  359. package/dist/node-runtime/{customize-XEXL2DGQ.js → customize-LF5VST47.js} +1 -1
  360. package/dist/node-runtime/{direct-tool-executor-JVDXTO7A.js → direct-tool-executor-BSZDHIYR.js} +7 -4
  361. package/dist/node-runtime/{export-html-KR26FOUZ.js → export-html-E4DT6ZJQ.js} +1 -1
  362. package/dist/node-runtime/{gateway-X2TI5X7F.js → gateway-FWHRIBK5.js} +24 -369
  363. package/dist/node-runtime/index.js +49 -42
  364. package/dist/node-runtime/{init-NJV2T55N.js → init-DVJUAOUO.js} +4 -2
  365. package/dist/node-runtime/{interactive-mode-KOM35YF2.js → interactive-mode-BBASNWHN.js} +23 -17
  366. package/dist/node-runtime/{interactive-view-U6OILKF3.js → interactive-view-N6F4KUIT.js} +3 -5
  367. package/dist/node-runtime/lunr-computer-use-TJNDAMWM.js +135 -0
  368. package/dist/node-runtime/{lunr-cron-YJ5UHYRD.js → lunr-cron-J64I72C6.js} +7 -1
  369. package/dist/node-runtime/main.js +25 -20
  370. package/dist/node-runtime/{mcp-auth-flow-QIXHW6QN.js → mcp-auth-flow-YL6RWPYG.js} +2 -1
  371. package/dist/node-runtime/{package-manager-cli-TZZHJCVI.js → package-manager-cli-VMYX4Y2S.js} +10 -7
  372. package/dist/node-runtime/{pi-intercom-EEMBGQID.js → pi-intercom-NV2LW6X7.js} +108 -87
  373. package/dist/node-runtime/{pi-mcp-adapter-QFB37AVN.js → pi-mcp-adapter-JLB5YL2F.js} +31 -25
  374. package/dist/node-runtime/{pi-subagents-7XJ4H53P.js → pi-subagents-WEHV3W7H.js} +1321 -631
  375. package/dist/node-runtime/{pi-web-access-DPGAVKOA.js → pi-web-access-FN5YC5T6.js} +67 -64
  376. package/dist/node-runtime/{proxy-modes-HEEFK4KC.js → proxy-modes-OR7ISBXK.js} +7 -4
  377. package/dist/node-runtime/rpc-entry.js +25 -20
  378. package/dist/node-runtime/runtime-3SB5ATHQ.js +21 -0
  379. package/dist/node-runtime/{runtime-bridges-PPHNBFWL.js → runtime-bridges-2VQTLPOZ.js} +3 -5
  380. package/dist/node-runtime/{session-manager-MQNBYACL.js → session-manager-QEMZBMTM.js} +3 -5
  381. package/dist/node-runtime/{session-selector-5AZLJS6U.js → session-selector-URVJLOTK.js} +2 -2
  382. package/dist/node-runtime/{settings-manager-5LF2VQWC.js → settings-manager-3CCU326G.js} +4 -1
  383. package/dist/node-runtime/{src-Y7JSCK64.js → src-BPQFJR76.js} +27 -7
  384. package/dist/node-runtime/{subagent-executor-5RNDEPIJ.js → subagent-executor-CXKXQDHH.js} +189 -284
  385. package/dist/node-runtime/{update-cli-A253SZ7P.js → update-cli-NM7B4CKL.js} +4 -1
  386. package/dist/node-runtime/workflow-C26QCUTW.js +468 -0
  387. package/dist/rpc.d.ts +3 -0
  388. package/dist/rpc.d.ts.map +1 -0
  389. package/dist/rpc.js +18 -0
  390. package/dist/rpc.js.map +1 -0
  391. package/dist/startup/interactive-view.d.ts.map +1 -1
  392. package/dist/startup/interactive-view.js +1 -2
  393. package/dist/startup/interactive-view.js.map +1 -1
  394. package/docs/computer-use.md +242 -0
  395. package/docs/development.md +0 -32
  396. package/docs/features.md +24 -6
  397. package/docs/interactive-startup.md +10 -3
  398. package/docs/keybindings.md +5 -3
  399. package/docs/settings.md +3 -2
  400. package/docs/terminal-setup.md +1 -1
  401. package/docs/usage.md +1 -1
  402. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  403. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  404. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  405. package/examples/extensions/gondolin/package-lock.json +2 -2
  406. package/examples/extensions/gondolin/package.json +1 -1
  407. package/examples/extensions/hidden-thinking-label.ts +1 -1
  408. package/examples/extensions/sandbox/package-lock.json +2 -2
  409. package/examples/extensions/sandbox/package.json +1 -1
  410. package/examples/extensions/with-deps/package-lock.json +2 -2
  411. package/examples/extensions/with-deps/package.json +1 -1
  412. package/install-lock/package-lock.json +3827 -0
  413. package/install-lock/package.json +18 -0
  414. package/native/computer-use/LICENSE.md +21 -0
  415. package/npm-shrinkwrap.json +3808 -0
  416. package/package.json +16 -10
  417. package/dist/builtin-extensions/lunr-settings-tools.d.ts +0 -4
  418. package/dist/builtin-extensions/lunr-settings-tools.d.ts.map +0 -1
  419. package/dist/builtin-extensions/lunr-settings-tools.js +0 -120
  420. package/dist/builtin-extensions/lunr-settings-tools.js.map +0 -1
  421. package/dist/core/settings-tools-bridge.d.ts +0 -35
  422. package/dist/core/settings-tools-bridge.d.ts.map +0 -1
  423. package/dist/core/settings-tools-bridge.js +0 -56
  424. package/dist/core/settings-tools-bridge.js.map +0 -1
  425. package/dist/node-runtime/chunk-AHSTJBIB.js +0 -64
  426. package/dist/startup/interactive-shell.d.ts +0 -55
  427. package/dist/startup/interactive-shell.d.ts.map +0 -1
  428. package/dist/startup/interactive-shell.js +0 -264
  429. package/dist/startup/interactive-shell.js.map +0 -1
  430. package/dist/node-runtime/{chunk-YSKSB3BJ.js → chunk-CH6OL6P2.js} +2 -2
@@ -1,11 +1,16 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
- import {
3
- computeContextBreakdown
4
- } from "./chunk-A2KQXUJD.js";
5
2
  import {
6
3
  checkForUpdate,
7
4
  markUpdateNotified
8
5
  } from "./chunk-BR7YDUKA.js";
6
+ import {
7
+ computeContextBreakdown
8
+ } from "./chunk-7AFOFSDY.js";
9
+ import {
10
+ SubagentEscapeSequence,
11
+ getSubagentCancellation,
12
+ getSubagentSpinnerDefinition
13
+ } from "./chunk-A3KMVBZV.js";
9
14
  import {
10
15
  copyToClipboard,
11
16
  readClipboardText
@@ -27,17 +32,32 @@ import {
27
32
  areExperimentalFeaturesEnabled,
28
33
  getProjectTrustOptions,
29
34
  hasTrustRequiringProjectResources
30
- } from "./chunk-2QKLKMKC.js";
35
+ } from "./chunk-LTXUQJI4.js";
31
36
  import {
32
37
  MissingSessionCwdError,
33
38
  SessionImportFileNotFoundError,
39
+ beginTurn,
40
+ captureTreeChanges,
41
+ clearRollback,
42
+ disableRollbackForSession,
43
+ enableRollbackForSession,
34
44
  formatCatalogRefreshSummary,
35
45
  formatMissingSessionCwdPrompt,
36
46
  hasGrokCliXaiAuth,
47
+ initRollback,
48
+ isRollbackEnabled,
49
+ isRollbackSessionForceEnabled,
50
+ migrateRollbackSession,
37
51
  parseSkillBlock,
52
+ peekRollbackTurnsConsumed,
38
53
  refreshModelCandidatesForInit,
54
+ rollbackLastTurn,
55
+ setRollbackWarningHandler,
39
56
  stripJsonComments
40
- } from "./chunk-WOVTOV5P.js";
57
+ } from "./chunk-XAUQOKYK.js";
58
+ import {
59
+ parseGitUrl
60
+ } from "./chunk-BYQ2MOFI.js";
41
61
  import {
42
62
  computeFileLists,
43
63
  createFileOps,
@@ -45,10 +65,7 @@ import {
45
65
  extractFileOpsFromMessage,
46
66
  findExactModelReferenceMatch,
47
67
  resolveModelScope
48
- } from "./chunk-TQNSPERU.js";
49
- import {
50
- parseGitUrl
51
- } from "./chunk-PGAJ5MO5.js";
68
+ } from "./chunk-5SQDLSZJ.js";
52
69
  import {
53
70
  clearRegistry,
54
71
  createAllToolDefinitions,
@@ -62,25 +79,7 @@ import {
62
79
  restart,
63
80
  resume,
64
81
  truncateToVisualLines
65
- } from "./chunk-ZKMFUD3Q.js";
66
- import {
67
- convertToPng,
68
- processImage
69
- } from "./chunk-AD6VXAO7.js";
70
- import {
71
- AUTO_MODE_ADDENDUM,
72
- PLAN_MODE_ADDENDUM,
73
- getPermissionMode,
74
- nextPermissionMode,
75
- registerApprovalHandler,
76
- resetPermissions,
77
- restorePermissionModeAfterPlan,
78
- setPermissionMode
79
- } from "./chunk-LZAW4ZX3.js";
80
- import {
81
- getGlobalInstructionsPath,
82
- getModelInstructionsPath
83
- } from "./chunk-M3LZLQW2.js";
82
+ } from "./chunk-GT5F3OKM.js";
84
83
  import {
85
84
  DEFAULT_MAX_BYTES,
86
85
  DEFAULT_MAX_LINES,
@@ -102,11 +101,15 @@ import {
102
101
  SKILL_TAG_CHARACTERS,
103
102
  configureHttpDispatcher,
104
103
  formatHttpIdleTimeoutMs
105
- } from "./chunk-AJX357CL.js";
104
+ } from "./chunk-VQ4UBWSA.js";
105
+ import {
106
+ SUBAGENT_SPINNER_LABELS,
107
+ SUBAGENT_SPINNER_NAMES
108
+ } from "./chunk-LISUTZS3.js";
106
109
  import {
107
110
  SessionManager,
108
111
  sessionEntryToContextMessages
109
- } from "./chunk-PBC2Y6GS.js";
112
+ } from "./chunk-6UB6NKA3.js";
110
113
  import {
111
114
  createCompactionSummaryMessage
112
115
  } from "./chunk-FVDOXRUD.js";
@@ -114,21 +117,27 @@ import {
114
117
  getModelTiersBridge
115
118
  } from "./chunk-W3CVH5RX.js";
116
119
  import {
117
- beginTurn,
118
- captureTreeChanges,
119
- clearRollback,
120
- disableRollbackForSession,
121
- enableRollbackForSession,
122
120
  getAllPlanUsageResults,
123
- getUsageServiceBridge,
124
- initRollback,
125
- isRollbackEnabled,
126
- isRollbackSessionForceEnabled,
127
- migrateRollbackSession,
128
- peekRollbackTurnsConsumed,
129
- rollbackLastTurn,
130
- setRollbackWarningHandler
131
- } from "./chunk-YF63P5ZT.js";
121
+ getUsageServiceBridge
122
+ } from "./chunk-LTYWTR3V.js";
123
+ import {
124
+ convertToPng,
125
+ processImage
126
+ } from "./chunk-MW2XJZIK.js";
127
+ import {
128
+ AUTO_MODE_ADDENDUM,
129
+ PLAN_MODE_ADDENDUM,
130
+ getPermissionMode,
131
+ nextPermissionMode,
132
+ registerApprovalHandler,
133
+ resetPermissions,
134
+ restorePermissionModeAfterPlan,
135
+ setPermissionMode
136
+ } from "./chunk-D466UAID.js";
137
+ import {
138
+ getGlobalInstructionsPath,
139
+ getModelInstructionsPath
140
+ } from "./chunk-M3LZLQW2.js";
132
141
  import {
133
142
  CustomEditor
134
143
  } from "./chunk-H2EOZYMP.js";
@@ -137,7 +146,7 @@ import {
137
146
  } from "./chunk-PVCDKGR6.js";
138
147
  import {
139
148
  getCustomizeBridge
140
- } from "./chunk-HQCKFM2O.js";
149
+ } from "./chunk-VGYZ3APQ.js";
141
150
  import {
142
151
  MEMORY_CHAR_CAP_DEFAULT,
143
152
  MEMORY_CHAR_CAP_MAX,
@@ -157,10 +166,10 @@ import {
157
166
  } from "./chunk-I6R76AG7.js";
158
167
  import {
159
168
  SessionSelectorComponent
160
- } from "./chunk-5P7PZMRU.js";
169
+ } from "./chunk-HRS4HMDX.js";
161
170
  import {
162
171
  KeybindingsManager
163
- } from "./chunk-YSKSB3BJ.js";
172
+ } from "./chunk-CH6OL6P2.js";
164
173
  import {
165
174
  DynamicBorder
166
175
  } from "./chunk-3GHXVUAK.js";
@@ -1230,8 +1239,8 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
1230
1239
  updateContent(message, options) {
1231
1240
  this.lastMessage = message, this.thinkingSource = options?.thinkingSource, this.contentContainer.clear();
1232
1241
  let sourceMessage = this.thinkingSource ?? message, sourceThinkingRuns = collectThinkingRuns(sourceMessage.content);
1233
- (message.content.some((c) => c.type === "text" && c.text.trim() || c.type === "thinking" && c.thinking.trim()) || !this.hideThinkingBlock && sourceThinkingRuns.some((run) => run.length > 0)) && this.contentContainer.addChild(new Spacer(1));
1234
- let isFirstTextBlock = !0, thinkingRunIndex = -1, renderedThinking = !1;
1242
+ message.content.some((c) => c.type === "text" && c.text.trim() || !this.hideThinkingBlock && c.type === "thinking" && c.thinking.trim()) && this.contentContainer.addChild(new Spacer(1));
1243
+ let isFirstTextBlock = !0, thinkingRunIndex = -1;
1235
1244
  for (let i = 0; i < message.content.length; i++) {
1236
1245
  let content = message.content[i];
1237
1246
  if (content.type === "text" && content.text.trim()) {
@@ -1249,18 +1258,12 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
1249
1258
  let thinking = thinkingContent.thinking.trim();
1250
1259
  thinking && displayBlocks.push(thinking);
1251
1260
  }
1252
- i--;
1253
- let thinkingBlocks = sourceThinkingRuns[thinkingRunIndex] ?? displayBlocks;
1254
- if (thinkingBlocks.length === 0 || this.hideThinkingBlock)
1261
+ if (i--, displayBlocks.length === 0 || this.hideThinkingBlock)
1255
1262
  continue;
1256
- renderedThinking = !0, this.renderThinkingRun(thinkingRunIndex, thinkingBlocks, message, i);
1263
+ let sourceBlocks = sourceThinkingRuns[thinkingRunIndex] ?? [], fullyRevealed = displayBlocks.length === sourceBlocks.length && displayBlocks.every((block, index) => block === sourceBlocks[index]);
1264
+ this.renderThinkingRun(thinkingRunIndex, displayBlocks, message, i, fullyRevealed);
1257
1265
  }
1258
1266
  }
1259
- if (!this.hideThinkingBlock && !renderedThinking && sourceThinkingRuns.length > 0) {
1260
- thinkingRunIndex = 0;
1261
- let thinkingBlocks = sourceThinkingRuns[0] ?? [];
1262
- thinkingBlocks.length > 0 && this.renderThinkingRun(thinkingRunIndex, thinkingBlocks, message, -1);
1263
- }
1264
1267
  let hasToolCalls = message.content.some((c) => c.type === "toolCall");
1265
1268
  if (this.hasToolCalls = hasToolCalls, message.stopReason === "length")
1266
1269
  this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", "Error: Model stopped because it reached the maximum output token limit. The response may be incomplete."), this.outputPad, 0));
@@ -1274,8 +1277,8 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
1274
1277
  }
1275
1278
  }
1276
1279
  }
1277
- renderThinkingRun(thinkingRunIndex, thinkingBlocks, displayMessage, displayIndex) {
1278
- let hasVisibleContentAfter = displayIndex >= 0 ? displayMessage.content.slice(displayIndex + 1).some((c) => c.type === "text" && c.text.trim() || c.type === "thinking" && c.thinking.trim()) : displayMessage.content.some((c) => c.type === "text" && c.text.trim()), runComplete = isThinkingRunComplete(!1, this.thinkingTimings?.[thinkingRunIndex], this.thinkingTimings !== void 0), wrap = (inner) => {
1280
+ renderThinkingRun(thinkingRunIndex, thinkingBlocks, displayMessage, displayIndex, fullyRevealed) {
1281
+ let hasVisibleContentAfter = displayIndex >= 0 ? displayMessage.content.slice(displayIndex + 1).some((c) => c.type === "text" && c.text.trim() || c.type === "thinking" && c.thinking.trim()) : displayMessage.content.some((c) => c.type === "text" && c.text.trim()), runComplete = fullyRevealed && isThinkingRunComplete(!1, this.thinkingTimings?.[thinkingRunIndex], this.thinkingTimings !== void 0), wrap = (inner) => {
1279
1282
  this.contentContainer.addChild(new ThinkingRunBlock(this, thinkingRunIndex, inner));
1280
1283
  };
1281
1284
  if (this.thinkingCollapse && !this.isRunExpanded(thinkingRunIndex) && runComplete) {
@@ -1328,7 +1331,7 @@ function collectThinkingRuns(content) {
1328
1331
  let thinking = thinkingContent.thinking.trim();
1329
1332
  thinking && blocks.push(thinking);
1330
1333
  }
1331
- blocks.length > 0 && runs.push(blocks);
1334
+ runs.push(blocks);
1332
1335
  }
1333
1336
  return runs;
1334
1337
  }
@@ -1523,12 +1526,11 @@ var FooterComponent = class {
1523
1526
  autoCompactEnabled = !0;
1524
1527
  session;
1525
1528
  footerData;
1526
- usageCache;
1527
1529
  constructor(session, footerData) {
1528
1530
  this.session = session, this.footerData = footerData;
1529
1531
  }
1530
1532
  setSession(session) {
1531
- this.session = session, this.usageCache = void 0;
1533
+ this.session = session;
1532
1534
  }
1533
1535
  setAutoCompactEnabled(enabled) {
1534
1536
  this.autoCompactEnabled = enabled;
@@ -1545,29 +1547,15 @@ var FooterComponent = class {
1545
1547
  */
1546
1548
  dispose() {
1547
1549
  }
1548
- getUsageTotals() {
1549
- let manager = this.session.sessionManager, leafId = manager.getLeafId();
1550
- if (this.usageCache?.manager === manager && this.usageCache.leafId === leafId)
1551
- return this.usageCache.totals;
1552
- let totals = {
1553
- totalInput: 0,
1554
- totalOutput: 0,
1555
- totalCacheRead: 0,
1556
- totalCacheWrite: 0,
1557
- totalCost: 0,
1558
- latestCacheHitRate: void 0
1559
- };
1560
- for (let entry of manager.getEntries()) {
1561
- if (entry.type !== "message" || entry.message.role !== "assistant")
1562
- continue;
1563
- totals.totalInput += entry.message.usage.input, totals.totalOutput += entry.message.usage.output, totals.totalCacheRead += entry.message.usage.cacheRead, totals.totalCacheWrite += entry.message.usage.cacheWrite, totals.totalCost += entry.message.usage.cost.total;
1564
- let latestPromptTokens = entry.message.usage.input + entry.message.usage.cacheRead + entry.message.usage.cacheWrite;
1565
- totals.latestCacheHitRate = latestPromptTokens > 0 ? entry.message.usage.cacheRead / latestPromptTokens * 100 : void 0;
1566
- }
1567
- return this.usageCache = { manager, leafId, totals }, totals;
1568
- }
1569
1550
  render(width) {
1570
- let state = this.session.state, { totalInput, totalOutput, totalCacheRead, totalCacheWrite, totalCost, latestCacheHitRate } = this.getUsageTotals(), contextUsage = this.session.getContextUsage(), contextWindow = contextUsage?.contextWindow ?? state.model?.contextWindow ?? 0, contextPercentValue = contextUsage?.percent ?? 0, contextPercent = contextUsage?.percent !== null ? contextPercentValue.toFixed(1) : "?", pwd = formatCwdForFooter(this.session.sessionManager.getCwd(), process.env.HOME || process.env.USERPROFILE), branch = this.footerData.getGitBranch();
1551
+ let state = this.session.state, totalInput = 0, totalOutput = 0, totalCacheRead = 0, totalCacheWrite = 0, totalCost = 0, latestCacheHitRate;
1552
+ for (let entry of this.session.sessionManager.getEntries())
1553
+ if (entry.type === "message" && entry.message.role === "assistant") {
1554
+ totalInput += entry.message.usage.input, totalOutput += entry.message.usage.output, totalCacheRead += entry.message.usage.cacheRead, totalCacheWrite += entry.message.usage.cacheWrite, totalCost += entry.message.usage.cost.total;
1555
+ let latestPromptTokens = entry.message.usage.input + entry.message.usage.cacheRead + entry.message.usage.cacheWrite;
1556
+ latestCacheHitRate = latestPromptTokens > 0 ? entry.message.usage.cacheRead / latestPromptTokens * 100 : void 0;
1557
+ }
1558
+ let contextUsage = this.session.getContextUsage(), contextWindow = contextUsage?.contextWindow ?? state.model?.contextWindow ?? 0, contextPercentValue = contextUsage?.percent ?? 0, contextPercent = contextUsage?.percent !== null ? contextPercentValue.toFixed(1) : "?", pwd = formatCwdForFooter(this.session.sessionManager.getCwd(), process.env.HOME || process.env.USERPROFILE), branch = this.footerData.getGitBranch();
1571
1559
  branch && (pwd = `${pwd} (${branch})`);
1572
1560
  let sessionName = this.session.sessionManager.getSessionName();
1573
1561
  sessionName && (pwd = `${pwd} \u2022 ${sessionName}`);
@@ -2436,7 +2424,6 @@ var ProcessesSelectorComponent = class extends Container11 {
2436
2424
  confirmKill = null;
2437
2425
  done;
2438
2426
  refreshTimer;
2439
- requestRender;
2440
2427
  _focused = !1;
2441
2428
  get focused() {
2442
2429
  return this._focused;
@@ -2444,11 +2431,8 @@ var ProcessesSelectorComponent = class extends Container11 {
2444
2431
  set focused(value) {
2445
2432
  this._focused = value;
2446
2433
  }
2447
- constructor(done, requestRender = () => {
2448
- }) {
2449
- super(), this.done = done, this.requestRender = requestRender, this.refresh(), this.refreshTimer = setInterval(() => {
2450
- this.refresh(), this.requestRender();
2451
- }, 2e3);
2434
+ constructor(done) {
2435
+ super(), this.done = done, this.refresh(), this.refreshTimer = setInterval(() => this.refresh(), 2e3);
2452
2436
  }
2453
2437
  refresh() {
2454
2438
  this.processes = list(), this.selected >= this.processes.length && (this.selected = Math.max(0, this.processes.length - 1)), this.rebuild();
@@ -2484,11 +2468,11 @@ var ProcessesSelectorComponent = class extends Container11 {
2484
2468
  return;
2485
2469
  }
2486
2470
  if (data === "q") {
2487
- this.dispose(), this.done();
2471
+ this.cleanup(), this.done();
2488
2472
  return;
2489
2473
  }
2490
2474
  if (getKeybindings5().matches(data, "tui.select.cancel")) {
2491
- this.dispose(), this.done();
2475
+ this.cleanup(), this.done();
2492
2476
  return;
2493
2477
  }
2494
2478
  if (this.processes.length === 0)
@@ -2521,7 +2505,7 @@ var ProcessesSelectorComponent = class extends Container11 {
2521
2505
  }
2522
2506
  }
2523
2507
  }
2524
- dispose() {
2508
+ cleanup() {
2525
2509
  this.refreshTimer && (clearInterval(this.refreshTimer), this.refreshTimer = void 0);
2526
2510
  }
2527
2511
  };
@@ -2855,11 +2839,56 @@ var SETTINGS_SUBMENU_SELECT_LIST_LAYOUT = {
2855
2839
  handleInput(data) {
2856
2840
  this.input.handleInput(data);
2857
2841
  }
2858
- }, SEARCH_CURATOR_VALUES = ["off", "on", "auto-summary"], CustomizeSubmenu = class extends Container13 {
2842
+ }, SEARCH_CURATOR_VALUES = ["off", "on", "auto-summary"];
2843
+ function subagentSpinnerItems() {
2844
+ return SUBAGENT_SPINNER_NAMES.map((name) => ({
2845
+ value: name,
2846
+ label: SUBAGENT_SPINNER_LABELS[name],
2847
+ description: getSubagentSpinnerDefinition(name).frames.slice(0, 4).join(" ")
2848
+ }));
2849
+ }
2850
+ var SubagentSpinnerSubmenu = class extends Container13 {
2851
+ preview;
2852
+ selectList;
2853
+ selected;
2854
+ timer;
2855
+ constructor(current, callbacks, done) {
2856
+ super(), this.selected = current, this.addChild(new Text15(theme.bold(theme.fg("accent", "Subagent spinner")), 0, 0)), this.addChild(new Spacer14(1)), this.preview = new Text15("", 0, 0), this.addChild(this.preview), this.addChild(new Spacer14(1));
2857
+ let options = subagentSpinnerItems();
2858
+ this.selectList = new SelectList(options, options.length, getSelectListTheme(), SETTINGS_SUBMENU_SELECT_LIST_LAYOUT), this.selectList.setSelectedIndex(Math.max(0, SUBAGENT_SPINNER_NAMES.indexOf(current))), this.selectList.onSelectionChange = (item) => {
2859
+ this.selected = item.value, this.updatePreview(), callbacks.requestRender();
2860
+ }, this.selectList.onSelect = (item) => {
2861
+ this.dispose();
2862
+ let selected = item.value;
2863
+ callbacks.onSubagentSpinnerChange(selected), done(SUBAGENT_SPINNER_LABELS[selected]);
2864
+ }, this.selectList.onCancel = () => {
2865
+ this.dispose(), done();
2866
+ }, this.addChild(this.selectList), this.addChild(new Spacer14(1)), this.addChild(new Text15(theme.fg("dim", " Enter to select \xB7 Esc to go back"), 0, 0)), this.updatePreview(), this.timer = setInterval(() => {
2867
+ this.updatePreview(), callbacks.requestRender();
2868
+ }, 80), this.timer.unref?.();
2869
+ }
2870
+ updatePreview() {
2871
+ let definition = getSubagentSpinnerDefinition(this.selected), frame = definition.frames[Math.floor(Date.now() / definition.interval) % definition.frames.length];
2872
+ this.preview.setText(`${theme.fg("muted", "Preview")} ${theme.fg("accent", frame)}`);
2873
+ }
2874
+ dispose() {
2875
+ this.timer && (clearInterval(this.timer), this.timer = void 0);
2876
+ }
2877
+ handleInput(data) {
2878
+ this.selectList.handleInput(data);
2879
+ }
2880
+ }, CustomizeSubmenu = class extends Container13 {
2859
2881
  settingsList;
2860
- constructor(_config, callbacks, done) {
2882
+ constructor(config, callbacks, done) {
2861
2883
  super();
2862
- let bridge = getCustomizeBridge(), items = [
2884
+ let bridge = getCustomizeBridge(), currentSpinner = bridge?.getSubagentSpinner() ?? config.subagentSpinner, items = [
2885
+ {
2886
+ id: "subagent-spinner",
2887
+ label: "Subagent spinner",
2888
+ description: "Running child indicator",
2889
+ currentValue: SUBAGENT_SPINNER_LABELS[currentSpinner],
2890
+ submenu: (_currentValue, submenuDone) => new SubagentSpinnerSubmenu(bridge?.getSubagentSpinner() ?? currentSpinner, callbacks, submenuDone)
2891
+ },
2863
2892
  {
2864
2893
  id: "footer-mcp",
2865
2894
  label: "MCP status",
@@ -3423,6 +3452,20 @@ var ThemeSubmenu = class extends Container13 {
3423
3452
  currentValue: config.smoothStreaming ? "true" : "false",
3424
3453
  values: ["true", "false"]
3425
3454
  },
3455
+ {
3456
+ id: "computer-use",
3457
+ label: "Computer use",
3458
+ description: "Control this computer with native desktop tools",
3459
+ currentValue: config.computerUse !== !1 ? "on" : "off",
3460
+ values: ["on", "off"]
3461
+ },
3462
+ {
3463
+ id: "computer-foreground",
3464
+ label: "Allow foreground control",
3465
+ description: "Allow desktop tools to change focus when background control fails",
3466
+ currentValue: config.computerForeground !== !1 ? "on" : "off",
3467
+ values: ["on", "off"]
3468
+ },
3426
3469
  {
3427
3470
  id: "agent-memory",
3428
3471
  label: "Agent memory",
@@ -3709,6 +3752,12 @@ var ThemeSubmenu = class extends Container13 {
3709
3752
  case "memory-char-cap":
3710
3753
  callbacks.onMemoryCharCapChange(parseInt(newValue, 10));
3711
3754
  break;
3755
+ case "computer-use":
3756
+ callbacks.onComputerUseChange?.(newValue === "on");
3757
+ break;
3758
+ case "computer-foreground":
3759
+ callbacks.onComputerForegroundChange?.(newValue === "on");
3760
+ break;
3712
3761
  case "agent-memory":
3713
3762
  callbacks.onMemoryEnabledChange(newValue === "on");
3714
3763
  break;
@@ -3995,7 +4044,13 @@ var ToolExecutionComponent = class extends Container14 {
3995
4044
  return !!this.result?.isError && this.groupFollowed && !this.expanded && !this.isPartial && this.getRenderShell() === "default" && this.toolName !== "subagent" && this.toolName !== "subagent_wait";
3996
4045
  }
3997
4046
  shouldSkipCompactResult() {
3998
- return this.result === void 0 || this.isPartial || this.expanded ? !1 : this.result.isError ? this.shouldHideGroupedErrorBody() : this.getRenderShell() === "default";
4047
+ if (this.result === void 0 || this.isPartial || this.expanded)
4048
+ return !1;
4049
+ if (this.toolName === "subagent") {
4050
+ let details = this.result.details;
4051
+ return !(this.result.isError || Array.isArray(details?.results) && details.results.length > 0 || details?.mode === "management");
4052
+ }
4053
+ return this.result.isError ? this.shouldHideGroupedErrorBody() : this.getRenderShell() === "default";
3999
4054
  }
4000
4055
  formatHoistedGroupErrors() {
4001
4056
  if (this.groupFollowed || this.expanded)
@@ -4995,6 +5050,29 @@ var UserMessageList = class {
4995
5050
  }
4996
5051
  };
4997
5052
 
5053
+ // packages/coding-agent/dist/modes/interactive/extension-widget-order.js
5054
+ var BUILTIN_WIDGET_ORDER = /* @__PURE__ */ new Map([
5055
+ ["todos", 0],
5056
+ ["subagent-async", 1]
5057
+ ]);
5058
+ function replaceExtensionWidget(above, below, key, component, placement) {
5059
+ let target = placement === "belowEditor" ? below : above, other = placement === "belowEditor" ? above : below, existingTarget = target.get(key), existingOther = other.get(key);
5060
+ if (existingTarget && existingTarget !== component && existingTarget.dispose?.(), existingOther && existingOther !== component && existingOther.dispose?.(), other.delete(key), component === void 0) {
5061
+ target.delete(key);
5062
+ return;
5063
+ }
5064
+ target.set(key, component);
5065
+ }
5066
+ function orderedExtensionWidgets(widgets) {
5067
+ return [...widgets.entries()].map(([key, component], insertionIndex) => ({ key, component, insertionIndex })).sort((left, right) => {
5068
+ let leftOrder = BUILTIN_WIDGET_ORDER.get(left.key), rightOrder = BUILTIN_WIDGET_ORDER.get(right.key);
5069
+ return leftOrder !== void 0 || rightOrder !== void 0 ? (leftOrder ?? Number.MAX_SAFE_INTEGER) - (rightOrder ?? Number.MAX_SAFE_INTEGER) : left.insertionIndex - right.insertionIndex;
5070
+ }).map(({ key, component }) => [key, component]);
5071
+ }
5072
+ function widgetSeparatorNeedsSpacer(previousKey, key) {
5073
+ return !(previousKey === "todos" && key === "subagent-async");
5074
+ }
5075
+
4998
5076
  // packages/coding-agent/dist/modes/interactive/skill-tag-autocomplete.js
4999
5077
  import { fuzzyFilter as fuzzyFilter4 } from "@ashx-j/lunr-tui";
5000
5078
  function extractSkillTagPrefix(textBeforeCursor, character) {
@@ -5204,6 +5282,27 @@ Fell back to moon theme.`), result;
5204
5282
  }
5205
5283
  };
5206
5284
 
5285
+ // packages/coding-agent/dist/modes/interactive/thinking-level-slash.js
5286
+ var THINKING_LEVEL_SLASH_NAMES = /* @__PURE__ */ new Set(["off", "minimal", "low", "medium", "high", "xhigh", "max"]);
5287
+ function wrapThinkingLevelSlashCommands(inner, getLevels) {
5288
+ return {
5289
+ triggerCharacters: inner.triggerCharacters,
5290
+ async getSuggestions(lines, cursorLine, cursorCol, options) {
5291
+ let result = await inner.getSuggestions(lines, cursorLine, cursorCol, options);
5292
+ if (!result)
5293
+ return result;
5294
+ let textBefore = (lines[cursorLine] || "").slice(0, cursorCol);
5295
+ if (!textBefore.startsWith("/") || textBefore.includes(" "))
5296
+ return result;
5297
+ let allowed = new Set(getLevels()), items = result.items.filter((item) => !THINKING_LEVEL_SLASH_NAMES.has(item.value) || allowed.has(item.value));
5298
+ return items.length === 0 ? null : { ...result, items };
5299
+ },
5300
+ applyCompletion(lines, cursorLine, cursorCol, item, prefix) {
5301
+ return inner.applyCompletion(lines, cursorLine, cursorCol, item, prefix);
5302
+ }
5303
+ };
5304
+ }
5305
+
5207
5306
  // packages/coding-agent/dist/modes/interactive/interactive-mode.js
5208
5307
  function isExpandable(obj) {
5209
5308
  return typeof obj == "object" && obj !== null && "setExpanded" in obj && typeof obj.setExpanded == "function";
@@ -5327,6 +5426,7 @@ var InteractiveMode = class _InteractiveMode {
5327
5426
  hiddenThinkingLabel = this.defaultHiddenThinkingLabel;
5328
5427
  lastSigintTime = 0;
5329
5428
  lastEscapeTime = 0;
5429
+ subagentEscape = new SubagentEscapeSequence();
5330
5430
  anthropicSubscriptionWarningShown = !1;
5331
5431
  // Status line tracking (for mutating immediately-sequential status updates)
5332
5432
  lastStatusSpacer = void 0;
@@ -5525,7 +5625,7 @@ var InteractiveMode = class _InteractiveMode {
5525
5625
  });
5526
5626
  }
5527
5627
  setupAutocompleteProvider() {
5528
- let provider = this.createBaseAutocompleteProvider(), triggerCharacters = [...provider.triggerCharacters ?? []];
5628
+ let provider = wrapThinkingLevelSlashCommands(this.createBaseAutocompleteProvider(), () => this.session.getAvailableThinkingLevels()), triggerCharacters = [...provider.triggerCharacters ?? []];
5529
5629
  for (let wrapProvider of this.autocompleteProviderWrappers)
5530
5630
  provider = wrapProvider(provider), triggerCharacters.push(...provider.triggerCharacters ?? []);
5531
5631
  triggerCharacters.length > 0 && (provider.triggerCharacters = [...new Set(triggerCharacters)]), this.autocompleteProvider = provider, this.defaultEditor.setAutocompleteProvider(provider), this.editor !== this.defaultEditor && this.editor.setAutocompleteProvider?.(provider);
@@ -6168,23 +6268,14 @@ ${warningLines}`, 0, 0)), this.loadedResourcesContainer.addChild(new Spacer19(1)
6168
6268
  * Set an extension widget (string array or custom component).
6169
6269
  */
6170
6270
  setExtensionWidget(key, content, options) {
6171
- let placement = options?.placement ?? "aboveEditor", removeExisting = (map) => {
6172
- let existing = map.get(key);
6173
- existing?.dispose && existing.dispose(), map.delete(key);
6174
- };
6175
- if (removeExisting(this.extensionWidgetsAbove), removeExisting(this.extensionWidgetsBelow), content === void 0) {
6176
- this.renderWidgets();
6177
- return;
6178
- }
6179
- let component;
6271
+ let placement = options?.placement ?? "aboveEditor", component;
6180
6272
  if (Array.isArray(content)) {
6181
6273
  let container = new Container19();
6182
6274
  for (let line of content.slice(0, _InteractiveMode.MAX_WIDGET_LINES))
6183
6275
  container.addChild(new Text21(line, 1, 0));
6184
6276
  content.length > _InteractiveMode.MAX_WIDGET_LINES && container.addChild(new Text21(theme.fg("muted", "... (widget truncated)"), 1, 0)), component = container;
6185
- } else
6186
- component = content(this.ui, theme);
6187
- (placement === "belowEditor" ? this.extensionWidgetsBelow : this.extensionWidgetsAbove).set(key, component), this.renderWidgets();
6277
+ } else content && (component = content(this.ui, theme));
6278
+ replaceExtensionWidget(this.extensionWidgetsAbove, this.extensionWidgetsBelow, key, component, placement), this.renderWidgets();
6188
6279
  }
6189
6280
  clearExtensionWidgets() {
6190
6281
  for (let widget of this.extensionWidgetsAbove.values())
@@ -6210,8 +6301,9 @@ ${warningLines}`, 0, 0)), this.loadedResourcesContainer.addChild(new Spacer19(1)
6210
6301
  return;
6211
6302
  }
6212
6303
  leadingSpacer && container.addChild(new Spacer19(1));
6213
- for (let component of widgets.values())
6214
- container.addChild(component);
6304
+ let previousKey;
6305
+ for (let [key, component] of orderedExtensionWidgets(widgets))
6306
+ previousKey !== void 0 && (widgetSeparatorNeedsSpacer(previousKey, key) && container.addChild(new Spacer19(1)), container.addChild(new DynamicBorder((s) => theme.fg("dim", s)))), previousKey = key, container.addChild(component);
6215
6307
  }
6216
6308
  /**
6217
6309
  * Set a custom footer component, or restore the built-in footer.
@@ -6461,6 +6553,15 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
6461
6553
  // =========================================================================
6462
6554
  setupKeyHandlers() {
6463
6555
  this.defaultEditor.onEscape = () => {
6556
+ let sessionId = this.session.sessionId, cancellation = getSubagentCancellation(sessionId), escapeAction = this.subagentEscape.press(sessionId, cancellation?.hasActiveRuns() ?? !1);
6557
+ if (escapeAction) {
6558
+ this.lastEscapeTime = 0, this.session.isStreaming ? this.restoreQueuedMessagesToEditor({ abort: !0 }) : this.session.isBashRunning && this.session.abortBash(), escapeAction === "children" && cancellation && cancellation.stop().then(({ requested, failed }) => {
6559
+ this.session.sessionId === sessionId && (failed ? this.showError(`Could not request stop for ${failed} async runs. Inspect subagent status.`) : requested && this.showStatus(`Stopping ${requested} async ${requested === 1 ? "run" : "runs"}`));
6560
+ }).catch((error) => {
6561
+ this.session.sessionId === sessionId && this.showError(error instanceof Error ? error.message : String(error));
6562
+ });
6563
+ return;
6564
+ }
6464
6565
  if (this.session.isStreaming)
6465
6566
  this.restoreQueuedMessagesToEditor({ abort: !0 });
6466
6567
  else if (this.session.isBashRunning)
@@ -6573,8 +6674,8 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
6573
6674
  try {
6574
6675
  let image = await readClipboardImage();
6575
6676
  if (image) {
6576
- let saved = this.writeClipboardImageFile(image), id = this.insertImageChip(saved);
6577
- this.ui.requestRender(), this.showStatus(`Pasted ${formatImageMarker(id)}`);
6677
+ let saved = this.writeClipboardImageFile(image);
6678
+ this.insertImageChip(saved), this.ui.requestRender();
6578
6679
  return;
6579
6680
  }
6580
6681
  if (options.textFallback !== !1) {
@@ -7307,8 +7408,7 @@ Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispo
7307
7408
  this.ui.requestRender();
7308
7409
  }
7309
7410
  cycleThinkingLevel() {
7310
- let newLevel = this.session.cycleThinkingLevel();
7311
- newLevel === void 0 ? this.showStatus("Current model does not support thinking") : (this.footer.invalidate(), this.updateEditorBorderColor(), this.showStatus(`Thinking level: ${newLevel}`));
7411
+ this.session.cycleThinkingLevel() === void 0 ? this.showStatus("Current model does not support thinking") : (this.footer.invalidate(), this.updateEditorBorderColor());
7312
7412
  }
7313
7413
  cyclePermissionMode() {
7314
7414
  this.applyPermissionMode(nextPermissionMode(getPermissionMode()), { silent: !0 });
@@ -7319,11 +7419,8 @@ Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispo
7319
7419
  if (result === void 0) {
7320
7420
  let msg = this.session.scopedModels.length > 0 ? "Only one model in scope" : "Only one model available";
7321
7421
  this.showStatus(msg);
7322
- } else {
7323
- this.footer.invalidate(), this.updateEditorBorderColor();
7324
- let thinkingStr = result.model.reasoning && result.thinkingLevel !== "off" ? ` (thinking: ${result.thinkingLevel})` : "";
7325
- this.showStatus(`Switched to ${result.model.name || result.model.id}${thinkingStr}`), this.maybeWarnAboutAnthropicSubscriptionAuth(result.model);
7326
- }
7422
+ } else
7423
+ this.footer.invalidate(), this.updateEditorBorderColor(), this.maybeWarnAboutAnthropicSubscriptionAuth(result.model);
7327
7424
  } catch (error) {
7328
7425
  this.showError(error instanceof Error ? error.message : String(error));
7329
7426
  }
@@ -7556,6 +7653,7 @@ Pi will resume when the editor exits.
7556
7653
  autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
7557
7654
  quietStartup: this.settingsManager.getQuietStartup(),
7558
7655
  smoothStreaming: this.settingsManager.getSmoothStreaming(),
7656
+ subagentSpinner: this.settingsManager.getSubagentSpinner(),
7559
7657
  sessionRetentionDays: this.settingsManager.getSessionRetentionDays(),
7560
7658
  clearOnShrink: this.settingsManager.getClearOnShrink(),
7561
7659
  showTerminalProgress: this.settingsManager.getShowTerminalProgress(),
@@ -7564,6 +7662,8 @@ Pi will resume when the editor exits.
7564
7662
  globalInstructionsPath: getGlobalInstructionsPath(getAgentDir()),
7565
7663
  modelInstructionsPath: getModelInstructionsPath(getAgentDir(), this.session.model?.id ?? "no-model-selected"),
7566
7664
  confirmLargeSubagentLaunches: this.settingsManager.getConfirmLargeSubagentLaunches(),
7665
+ computerUse: this.settingsManager.getComputerUse(),
7666
+ computerForeground: this.settingsManager.getComputerForeground(),
7567
7667
  memoryEnabled: this.settingsManager.getMemoryEnabled(),
7568
7668
  memoryCharCap: this.settingsManager.getMemoryCharCap(),
7569
7669
  searchCurator: getSearchCuratorSetting(),
@@ -7656,6 +7756,9 @@ Pi will resume when the editor exits.
7656
7756
  onSmoothStreamingChange: (enabled) => {
7657
7757
  this.applySmoothStreamingSettingChange(enabled);
7658
7758
  },
7759
+ onSubagentSpinnerChange: (spinner) => {
7760
+ this.settingsManager.setSubagentSpinner(spinner), this.ui.requestRender();
7761
+ },
7659
7762
  onSessionRetentionDaysChange: (days) => {
7660
7763
  this.settingsManager.setSessionRetentionDays(days);
7661
7764
  },
@@ -7717,6 +7820,12 @@ Pi will resume when the editor exits.
7717
7820
  onMemoryCharCapChange: (cap) => {
7718
7821
  this.settingsManager.setMemoryCharCap(cap);
7719
7822
  },
7823
+ onComputerUseChange: (enabled) => {
7824
+ this.settingsManager.setComputerUse(enabled);
7825
+ },
7826
+ onComputerForegroundChange: (enabled) => {
7827
+ this.settingsManager.setComputerForeground(enabled);
7828
+ },
7720
7829
  onMemoryEnabledChange: (enabled) => {
7721
7830
  this.settingsManager.setMemoryEnabled(enabled), this.session.refreshToolRegistry(), this.showStatus(`Agent memory: ${enabled ? "on" : "off"}`);
7722
7831
  },
@@ -7786,6 +7895,7 @@ Pi will resume when the editor exits.
7786
7895
  autoManage: () => this.settingsManager.getAutoManageSubscriptions(),
7787
7896
  requestRender: () => this.ui.requestRender()
7788
7897
  },
7898
+ requestRender: () => this.ui.requestRender(),
7789
7899
  createModelTierPicker: (_tier, currentModelRef, done2) => new ModelSelectorComponent(this.ui, this.resolveModelReference(currentModelRef), this.settingsManager, this.session.modelRuntime, this.session.scopedModels, (model) => {
7790
7900
  done2(`${model.provider}/${model.id}`), this.ui.requestRender();
7791
7901
  }, () => {
@@ -9325,8 +9435,8 @@ ${cycleThinkingLevel ? `| \`${cycleThinkingLevel}\` | Cycle thinking level |
9325
9435
  ` : ""}| \`${cycleModelForward}\` / \`${cycleModelBackward}\` | Cycle models |
9326
9436
  | \`${selectModel}\` | Open model selector |
9327
9437
  | \`${expandTools}\` | Expand or collapse a thinking/tool card |
9328
- | \`${toggleThinking}\` | Toggle thinking block visibility |
9329
- | \`${externalEditor}\` | Edit message in external editor |
9438
+ ${toggleThinking ? `| \`${toggleThinking}\` | Toggle thinking block visibility |
9439
+ ` : ""}| \`${externalEditor}\` | Edit message in external editor |
9330
9440
  | \`${copyMessage}\` | Copy last assistant message |
9331
9441
  | \`${followUp}\` | Queue follow-up message |
9332
9442
  | \`${dequeue}\` | Restore queued messages |