@ashx-j/lunr-dev 0.2.19-dev.10.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 (307) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/README.md +2 -2
  3. package/dist/builtin-extensions/index.d.ts.map +1 -1
  4. package/dist/builtin-extensions/index.js +0 -2
  5. package/dist/builtin-extensions/index.js.map +1 -1
  6. package/dist/builtin-extensions/lunr-computer-use.d.ts.map +1 -1
  7. package/dist/builtin-extensions/lunr-computer-use.js +15 -14
  8. package/dist/builtin-extensions/lunr-computer-use.js.map +1 -1
  9. package/dist/builtin-extensions/lunr-todos.d.ts +6 -5
  10. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
  11. package/dist/builtin-extensions/lunr-todos.js +9 -7
  12. package/dist/builtin-extensions/lunr-todos.js.map +1 -1
  13. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +6 -4
  14. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -1
  15. package/dist/builtin-extensions/pi-intercom/broker/spawn.js +114 -61
  16. package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -1
  17. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  18. package/dist/builtin-extensions/pi-intercom/index.js +360 -351
  19. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  20. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
  21. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +2 -2
  22. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
  23. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +8 -6
  24. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  25. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +128 -57
  26. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  27. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +18 -8
  28. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  29. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +38 -13
  30. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  31. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -3
  32. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  33. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +24 -14
  34. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  35. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +8 -1
  36. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  37. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +247 -18
  38. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +1 -0
  40. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -1
  41. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +1 -1
  42. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -1
  43. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts +29 -0
  44. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.d.ts.map +1 -0
  45. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js +179 -0
  46. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-ask.js.map +1 -0
  47. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts +89 -0
  48. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.d.ts.map +1 -0
  49. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js +541 -0
  50. package/dist/builtin-extensions/pi-subagents/src/intercom/supervisor-questions.js.map +1 -0
  51. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +11 -1
  52. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  53. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +38 -12
  54. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  55. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
  56. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +3 -2
  57. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
  58. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +2 -1
  59. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
  60. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +35 -8
  61. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
  62. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +7 -3
  63. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +26 -4
  65. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
  66. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +1 -0
  67. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  68. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +55 -38
  69. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  70. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +100 -0
  71. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  72. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +46 -31
  73. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  74. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +3 -6
  75. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
  76. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +64 -5
  77. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
  78. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +15 -2
  79. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -1
  80. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +14 -4
  81. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -1
  82. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
  83. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +2 -1
  84. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  85. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  86. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +21 -8
  87. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  88. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  89. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1 -1
  90. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  91. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +0 -1
  92. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  93. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +71 -25
  94. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  95. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -0
  96. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
  97. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +75 -18
  98. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
  99. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +1 -1
  100. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -1
  101. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +1 -1
  102. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -1
  103. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +13 -1
  104. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
  105. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +67 -11
  106. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
  107. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +1 -0
  108. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  109. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  110. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +3 -0
  111. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  112. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +7 -2
  113. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  114. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  115. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -3
  116. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  117. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
  118. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
  119. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +5 -10
  120. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
  121. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts +2 -0
  122. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts.map +1 -0
  123. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js +3 -0
  124. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js.map +1 -0
  125. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +3 -0
  126. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
  127. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +68 -11
  128. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
  129. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +12 -1
  130. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -1
  131. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +21 -2
  132. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -1
  133. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +21 -4
  134. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  135. package/dist/builtin-extensions/pi-subagents/src/shared/types.js +1 -1
  136. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  137. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -1
  138. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -1
  139. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +7 -0
  140. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
  141. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +11 -7
  142. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
  143. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +6 -0
  144. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  145. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +46 -29
  146. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  147. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +46 -4
  148. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  149. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +407 -450
  150. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  151. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
  152. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +1 -1
  153. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -1
  154. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +2 -13
  155. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -1
  156. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +5 -91
  157. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
  158. package/dist/core/computer-use/image.d.ts +26 -0
  159. package/dist/core/computer-use/image.d.ts.map +1 -0
  160. package/dist/core/computer-use/image.js +64 -0
  161. package/dist/core/computer-use/image.js.map +1 -0
  162. package/dist/core/computer-use/policy.d.ts.map +1 -1
  163. package/dist/core/computer-use/policy.js +2 -6
  164. package/dist/core/computer-use/policy.js.map +1 -1
  165. package/dist/core/computer-use/schemas.d.ts +13 -10
  166. package/dist/core/computer-use/schemas.d.ts.map +1 -1
  167. package/dist/core/computer-use/schemas.js +26 -35
  168. package/dist/core/computer-use/schemas.js.map +1 -1
  169. package/dist/core/computer-use/workflow.d.ts +16 -8
  170. package/dist/core/computer-use/workflow.d.ts.map +1 -1
  171. package/dist/core/computer-use/workflow.js +271 -260
  172. package/dist/core/computer-use/workflow.js.map +1 -1
  173. package/dist/core/customize.d.ts +2 -0
  174. package/dist/core/customize.d.ts.map +1 -1
  175. package/dist/core/customize.js +3 -0
  176. package/dist/core/customize.js.map +1 -1
  177. package/dist/core/permissions.d.ts +1 -0
  178. package/dist/core/permissions.d.ts.map +1 -1
  179. package/dist/core/permissions.js +8 -4
  180. package/dist/core/permissions.js.map +1 -1
  181. package/dist/core/plan-mode.d.ts.map +1 -1
  182. package/dist/core/plan-mode.js +0 -5
  183. package/dist/core/plan-mode.js.map +1 -1
  184. package/dist/core/runtime-bridges.d.ts.map +1 -1
  185. package/dist/core/runtime-bridges.js +0 -2
  186. package/dist/core/runtime-bridges.js.map +1 -1
  187. package/dist/core/settings-manager.d.ts +4 -0
  188. package/dist/core/settings-manager.d.ts.map +1 -1
  189. package/dist/core/settings-manager.js +11 -0
  190. package/dist/core/settings-manager.js.map +1 -1
  191. package/dist/core/subagent-cancellation.d.ts +21 -0
  192. package/dist/core/subagent-cancellation.d.ts.map +1 -0
  193. package/dist/core/subagent-cancellation.js +53 -0
  194. package/dist/core/subagent-cancellation.js.map +1 -0
  195. package/dist/core/subagent-spinner-setting.d.ts +6 -0
  196. package/dist/core/subagent-spinner-setting.d.ts.map +1 -0
  197. package/dist/core/subagent-spinner-setting.js +12 -0
  198. package/dist/core/subagent-spinner-setting.js.map +1 -0
  199. package/dist/core/subagent-spinner.d.ts +4 -0
  200. package/dist/core/subagent-spinner.d.ts.map +1 -0
  201. package/dist/core/subagent-spinner.js +6 -0
  202. package/dist/core/subagent-spinner.js.map +1 -0
  203. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  204. package/dist/modes/interactive/components/assistant-message.js +12 -18
  205. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  206. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  207. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  208. package/dist/modes/interactive/components/settings-selector.js +73 -1
  209. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  210. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  211. package/dist/modes/interactive/components/tool-execution.js +12 -0
  212. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  213. package/dist/modes/interactive/extension-widget-order.d.ts +8 -0
  214. package/dist/modes/interactive/extension-widget-order.d.ts.map +1 -0
  215. package/dist/modes/interactive/extension-widget-order.js +37 -0
  216. package/dist/modes/interactive/extension-widget-order.js.map +1 -0
  217. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  218. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  219. package/dist/modes/interactive/interactive-mode.js +44 -22
  220. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  221. package/dist/node-runtime/{agent-session-services-RSGP5GDN.js → agent-session-services-QANFGM2V.js} +14 -13
  222. package/dist/node-runtime/{builtin-extensions-7STLFW3A.js → builtin-extensions-SRCYQPZ6.js} +4 -3
  223. package/dist/node-runtime/{chunk-5OLJGVCB.js → chunk-3ONQTOMR.js} +2 -2
  224. package/dist/node-runtime/chunk-5ZH3ZFIZ.js +308 -0
  225. package/dist/node-runtime/{chunk-4SJWFTUP.js → chunk-7NBZ5P7I.js} +1 -1
  226. package/dist/node-runtime/chunk-A3KMVBZV.js +60 -0
  227. package/dist/node-runtime/{chunk-FLYMHKCS.js → chunk-BJ6H7DPI.js} +25 -25
  228. package/dist/node-runtime/{chunk-T5GM5BFH.js → chunk-BYQ2MOFI.js} +6 -6
  229. package/dist/node-runtime/{chunk-W7S2REEG.js → chunk-CZUBYPFP.js} +157 -74
  230. package/dist/node-runtime/{chunk-ZRDIMBEQ.js → chunk-D466UAID.js} +9 -6
  231. package/dist/node-runtime/{chunk-K72NVGUB.js → chunk-GT5F3OKM.js} +1 -1
  232. package/dist/node-runtime/chunk-H2BI7G7T.js +73 -0
  233. package/dist/node-runtime/{chunk-ISQDQIZN.js → chunk-HXJS2PJM.js} +2 -2
  234. package/dist/node-runtime/chunk-LISUTZS3.js +19 -0
  235. package/dist/node-runtime/{chunk-BKAZ6BKX.js → chunk-LOYUC2ID.js} +7 -7
  236. package/dist/node-runtime/{chunk-OTT6JMPU.js → chunk-LTYWTR3V.js} +1 -369
  237. package/dist/node-runtime/{chunk-5Q45AVQG.js → chunk-MW2XJZIK.js} +1 -1
  238. package/dist/node-runtime/{chunk-MUMMMTW4.js → chunk-N3PNL74S.js} +536 -265
  239. package/dist/node-runtime/{chunk-HQCKFM2O.js → chunk-VGYZ3APQ.js} +3 -0
  240. package/dist/node-runtime/{chunk-5NWQCSKR.js → chunk-VQ4UBWSA.js} +11 -1
  241. package/dist/node-runtime/{chunk-6SPPH4FY.js → chunk-VTGEKB7R.js} +4 -4
  242. package/dist/node-runtime/chunk-W3SILANP.js +24 -0
  243. package/dist/node-runtime/{chunk-J7QGQD45.js → chunk-WJVFOIB5.js} +1 -1
  244. package/dist/node-runtime/{chunk-JT6YCS5B.js → chunk-XAUQOKYK.js} +408 -45
  245. package/dist/node-runtime/{chunk-LCACDWHJ.js → chunk-XSRCAQK2.js} +13 -13
  246. package/dist/node-runtime/{chunk-TAP7QTUT.js → chunk-ZOIIMEN6.js} +24 -425
  247. package/dist/node-runtime/{chunk-MGSB2C3M.js → chunk-ZVSORYRM.js} +1 -1
  248. package/dist/node-runtime/{command-6UXQ6XZN.js → command-ZURZJDXF.js} +1 -1
  249. package/dist/node-runtime/{commands-LGR5VT5X.js → commands-BZGSLIP7.js} +3 -3
  250. package/dist/node-runtime/{customize-XEXL2DGQ.js → customize-LF5VST47.js} +1 -1
  251. package/dist/node-runtime/{direct-tool-executor-TDJS7TBD.js → direct-tool-executor-BSZDHIYR.js} +4 -4
  252. package/dist/node-runtime/{extract-IUCVZCWC.js → extract-XLQSJN4V.js} +2 -2
  253. package/dist/node-runtime/{gateway-3OLC4GQN.js → gateway-FWHRIBK5.js} +9 -9
  254. package/dist/node-runtime/{gemini-search-NCIDF7NE.js → gemini-search-U7SUMPQA.js} +1 -1
  255. package/dist/node-runtime/{gemini-url-context-OKIN7AIP.js → gemini-url-context-PXWCBQHK.js} +2 -2
  256. package/dist/node-runtime/index.js +34 -31
  257. package/dist/node-runtime/{init-EKE277AG.js → init-DVJUAOUO.js} +3 -3
  258. package/dist/node-runtime/{interactive-mode-S5M26CQ7.js → interactive-mode-BBASNWHN.js} +18 -15
  259. package/dist/node-runtime/lunr-computer-use-TJNDAMWM.js +135 -0
  260. package/dist/node-runtime/{lunr-cron-KKBOGAEF.js → lunr-cron-J64I72C6.js} +5 -5
  261. package/dist/node-runtime/main.js +22 -20
  262. package/dist/node-runtime/{package-manager-cli-C4EJOO5Q.js → package-manager-cli-VMYX4Y2S.js} +8 -7
  263. package/dist/node-runtime/{pi-intercom-EEMBGQID.js → pi-intercom-NV2LW6X7.js} +108 -87
  264. package/dist/node-runtime/{pi-mcp-adapter-DPTJGAAL.js → pi-mcp-adapter-JLB5YL2F.js} +6 -6
  265. package/dist/node-runtime/{pi-subagents-VKCLYIBY.js → pi-subagents-WEHV3W7H.js} +1267 -604
  266. package/dist/node-runtime/{pi-web-access-BV6DSZOP.js → pi-web-access-FN5YC5T6.js} +5 -5
  267. package/dist/node-runtime/{proxy-modes-R64LU6WZ.js → proxy-modes-OR7ISBXK.js} +7 -7
  268. package/dist/node-runtime/rpc-entry.js +22 -20
  269. package/dist/node-runtime/{runtime-bridges-UJ5WJJLN.js → runtime-bridges-2VQTLPOZ.js} +3 -5
  270. package/dist/node-runtime/{settings-manager-K6IPIQTI.js → settings-manager-3CCU326G.js} +3 -2
  271. package/dist/node-runtime/{subagent-executor-EFLTO32A.js → subagent-executor-CXKXQDHH.js} +186 -299
  272. package/dist/node-runtime/{update-cli-I6OVDRPL.js → update-cli-NM7B4CKL.js} +3 -2
  273. package/dist/node-runtime/{video-extract-ETA5RA7U.js → video-extract-OYT5WKS5.js} +2 -2
  274. package/dist/node-runtime/workflow-C26QCUTW.js +468 -0
  275. package/dist/node-runtime/{youtube-extract-SRVGNN26.js → youtube-extract-TQYKGFGS.js} +2 -2
  276. package/docs/computer-use.md +233 -268
  277. package/docs/features.md +22 -4
  278. package/docs/keybindings.md +3 -1
  279. package/docs/settings.md +3 -2
  280. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  281. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  282. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  283. package/examples/extensions/gondolin/package-lock.json +2 -2
  284. package/examples/extensions/gondolin/package.json +1 -1
  285. package/examples/extensions/sandbox/package-lock.json +2 -2
  286. package/examples/extensions/sandbox/package.json +1 -1
  287. package/examples/extensions/with-deps/package-lock.json +2 -2
  288. package/examples/extensions/with-deps/package.json +1 -1
  289. package/install-lock/package-lock.json +24 -24
  290. package/install-lock/package.json +2 -2
  291. package/npm-shrinkwrap.json +21 -21
  292. package/package.json +7 -7
  293. package/dist/builtin-extensions/lunr-settings-tools.d.ts +0 -4
  294. package/dist/builtin-extensions/lunr-settings-tools.d.ts.map +0 -1
  295. package/dist/builtin-extensions/lunr-settings-tools.js +0 -120
  296. package/dist/builtin-extensions/lunr-settings-tools.js.map +0 -1
  297. package/dist/core/settings-tools-bridge.d.ts +0 -35
  298. package/dist/core/settings-tools-bridge.d.ts.map +0 -1
  299. package/dist/core/settings-tools-bridge.js +0 -56
  300. package/dist/core/settings-tools-bridge.js.map +0 -1
  301. package/dist/node-runtime/chunk-EH2LJQPM.js +0 -64
  302. package/dist/node-runtime/image-resize-6ZPBFMWW.js +0 -11
  303. package/dist/node-runtime/lunr-computer-use-4X3KUNF4.js +0 -206
  304. package/dist/node-runtime/workflow-SA34S4VX.js +0 -325
  305. package/dist/node-runtime/{chunk-EHMBW7FA.js → chunk-VSELYKWU.js} +3 -3
  306. package/dist/node-runtime/{chunk-ZSEZY3II.js → chunk-VTPM5V35.js} +0 -0
  307. package/dist/node-runtime/{src-GPFAU3N6.js → src-BPQFJR76.js} +3 -3
@@ -6,6 +6,11 @@ import {
6
6
  import {
7
7
  computeContextBreakdown
8
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
@@ -31,16 +36,28 @@ import {
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-JT6YCS5B.js";
57
+ } from "./chunk-XAUQOKYK.js";
41
58
  import {
42
59
  parseGitUrl
43
- } from "./chunk-T5GM5BFH.js";
60
+ } from "./chunk-BYQ2MOFI.js";
44
61
  import {
45
62
  computeFileLists,
46
63
  createFileOps,
@@ -62,7 +79,7 @@ import {
62
79
  restart,
63
80
  resume,
64
81
  truncateToVisualLines
65
- } from "./chunk-K72NVGUB.js";
82
+ } from "./chunk-GT5F3OKM.js";
66
83
  import {
67
84
  DEFAULT_MAX_BYTES,
68
85
  DEFAULT_MAX_LINES,
@@ -79,30 +96,16 @@ import {
79
96
  import {
80
97
  killTrackedDetachedChildren
81
98
  } from "./chunk-ZCHMJ34K.js";
82
- import {
83
- convertToPng,
84
- processImage
85
- } from "./chunk-5Q45AVQG.js";
86
- import {
87
- AUTO_MODE_ADDENDUM,
88
- PLAN_MODE_ADDENDUM,
89
- getPermissionMode,
90
- nextPermissionMode,
91
- registerApprovalHandler,
92
- resetPermissions,
93
- restorePermissionModeAfterPlan,
94
- setPermissionMode
95
- } from "./chunk-ZRDIMBEQ.js";
96
- import {
97
- getGlobalInstructionsPath,
98
- getModelInstructionsPath
99
- } from "./chunk-M3LZLQW2.js";
100
99
  import {
101
100
  HTTP_IDLE_TIMEOUT_CHOICES,
102
101
  SKILL_TAG_CHARACTERS,
103
102
  configureHttpDispatcher,
104
103
  formatHttpIdleTimeoutMs
105
- } from "./chunk-5NWQCSKR.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
@@ -114,26 +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-OTT6JMPU.js";
121
+ getUsageServiceBridge
122
+ } from "./chunk-LTYWTR3V.js";
132
123
  import {
133
- MEMORY_CHAR_CAP_DEFAULT,
134
- MEMORY_CHAR_CAP_MAX,
135
- MEMORY_CHAR_CAP_MIN
136
- } from "./chunk-AY6CAJSL.js";
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";
137
141
  import {
138
142
  CustomEditor
139
143
  } from "./chunk-H2EOZYMP.js";
@@ -142,7 +146,12 @@ import {
142
146
  } from "./chunk-PVCDKGR6.js";
143
147
  import {
144
148
  getCustomizeBridge
145
- } from "./chunk-HQCKFM2O.js";
149
+ } from "./chunk-VGYZ3APQ.js";
150
+ import {
151
+ MEMORY_CHAR_CAP_DEFAULT,
152
+ MEMORY_CHAR_CAP_MAX,
153
+ MEMORY_CHAR_CAP_MIN
154
+ } from "./chunk-AY6CAJSL.js";
146
155
  import {
147
156
  markStartupMilestone
148
157
  } from "./chunk-CCZJ3PYY.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
  }
@@ -2836,11 +2839,56 @@ var SETTINGS_SUBMENU_SELECT_LIST_LAYOUT = {
2836
2839
  handleInput(data) {
2837
2840
  this.input.handleInput(data);
2838
2841
  }
2839
- }, 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 {
2840
2881
  settingsList;
2841
- constructor(_config, callbacks, done) {
2882
+ constructor(config, callbacks, done) {
2842
2883
  super();
2843
- 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
+ },
2844
2892
  {
2845
2893
  id: "footer-mcp",
2846
2894
  label: "MCP status",
@@ -3996,7 +4044,13 @@ var ToolExecutionComponent = class extends Container14 {
3996
4044
  return !!this.result?.isError && this.groupFollowed && !this.expanded && !this.isPartial && this.getRenderShell() === "default" && this.toolName !== "subagent" && this.toolName !== "subagent_wait";
3997
4045
  }
3998
4046
  shouldSkipCompactResult() {
3999
- 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";
4000
4054
  }
4001
4055
  formatHoistedGroupErrors() {
4002
4056
  if (this.groupFollowed || this.expanded)
@@ -4996,6 +5050,29 @@ var UserMessageList = class {
4996
5050
  }
4997
5051
  };
4998
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
+
4999
5076
  // packages/coding-agent/dist/modes/interactive/skill-tag-autocomplete.js
5000
5077
  import { fuzzyFilter as fuzzyFilter4 } from "@ashx-j/lunr-tui";
5001
5078
  function extractSkillTagPrefix(textBeforeCursor, character) {
@@ -5349,6 +5426,7 @@ var InteractiveMode = class _InteractiveMode {
5349
5426
  hiddenThinkingLabel = this.defaultHiddenThinkingLabel;
5350
5427
  lastSigintTime = 0;
5351
5428
  lastEscapeTime = 0;
5429
+ subagentEscape = new SubagentEscapeSequence();
5352
5430
  anthropicSubscriptionWarningShown = !1;
5353
5431
  // Status line tracking (for mutating immediately-sequential status updates)
5354
5432
  lastStatusSpacer = void 0;
@@ -6190,23 +6268,14 @@ ${warningLines}`, 0, 0)), this.loadedResourcesContainer.addChild(new Spacer19(1)
6190
6268
  * Set an extension widget (string array or custom component).
6191
6269
  */
6192
6270
  setExtensionWidget(key, content, options) {
6193
- let placement = options?.placement ?? "aboveEditor", removeExisting = (map) => {
6194
- let existing = map.get(key);
6195
- existing?.dispose && existing.dispose(), map.delete(key);
6196
- };
6197
- if (removeExisting(this.extensionWidgetsAbove), removeExisting(this.extensionWidgetsBelow), content === void 0) {
6198
- this.renderWidgets();
6199
- return;
6200
- }
6201
- let component;
6271
+ let placement = options?.placement ?? "aboveEditor", component;
6202
6272
  if (Array.isArray(content)) {
6203
6273
  let container = new Container19();
6204
6274
  for (let line of content.slice(0, _InteractiveMode.MAX_WIDGET_LINES))
6205
6275
  container.addChild(new Text21(line, 1, 0));
6206
6276
  content.length > _InteractiveMode.MAX_WIDGET_LINES && container.addChild(new Text21(theme.fg("muted", "... (widget truncated)"), 1, 0)), component = container;
6207
- } else
6208
- component = content(this.ui, theme);
6209
- (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();
6210
6279
  }
6211
6280
  clearExtensionWidgets() {
6212
6281
  for (let widget of this.extensionWidgetsAbove.values())
@@ -6232,9 +6301,9 @@ ${warningLines}`, 0, 0)), this.loadedResourcesContainer.addChild(new Spacer19(1)
6232
6301
  return;
6233
6302
  }
6234
6303
  leadingSpacer && container.addChild(new Spacer19(1));
6235
- let first = !0;
6236
- for (let component of widgets.values())
6237
- first || (container.addChild(new Spacer19(1)), container.addChild(new DynamicBorder((s) => theme.fg("dim", s)))), first = !1, 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);
6238
6307
  }
6239
6308
  /**
6240
6309
  * Set a custom footer component, or restore the built-in footer.
@@ -6484,6 +6553,15 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
6484
6553
  // =========================================================================
6485
6554
  setupKeyHandlers() {
6486
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
+ }
6487
6565
  if (this.session.isStreaming)
6488
6566
  this.restoreQueuedMessagesToEditor({ abort: !0 });
6489
6567
  else if (this.session.isBashRunning)
@@ -7575,6 +7653,7 @@ Pi will resume when the editor exits.
7575
7653
  autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
7576
7654
  quietStartup: this.settingsManager.getQuietStartup(),
7577
7655
  smoothStreaming: this.settingsManager.getSmoothStreaming(),
7656
+ subagentSpinner: this.settingsManager.getSubagentSpinner(),
7578
7657
  sessionRetentionDays: this.settingsManager.getSessionRetentionDays(),
7579
7658
  clearOnShrink: this.settingsManager.getClearOnShrink(),
7580
7659
  showTerminalProgress: this.settingsManager.getShowTerminalProgress(),
@@ -7677,6 +7756,9 @@ Pi will resume when the editor exits.
7677
7756
  onSmoothStreamingChange: (enabled) => {
7678
7757
  this.applySmoothStreamingSettingChange(enabled);
7679
7758
  },
7759
+ onSubagentSpinnerChange: (spinner) => {
7760
+ this.settingsManager.setSubagentSpinner(spinner), this.ui.requestRender();
7761
+ },
7680
7762
  onSessionRetentionDaysChange: (days) => {
7681
7763
  this.settingsManager.setSessionRetentionDays(days);
7682
7764
  },
@@ -7813,6 +7895,7 @@ Pi will resume when the editor exits.
7813
7895
  autoManage: () => this.settingsManager.getAutoManageSubscriptions(),
7814
7896
  requestRender: () => this.ui.requestRender()
7815
7897
  },
7898
+ requestRender: () => this.ui.requestRender(),
7816
7899
  createModelTierPicker: (_tier, currentModelRef, done2) => new ModelSelectorComponent(this.ui, this.resolveModelReference(currentModelRef), this.settingsManager, this.session.modelRuntime, this.session.scopedModels, (model) => {
7817
7900
  done2(`${model.provider}/${model.id}`), this.ui.requestRender();
7818
7901
  }, () => {
@@ -4,8 +4,9 @@ import {
4
4
  } from "./chunk-M3LZLQW2.js";
5
5
  import {
6
6
  computerPolicy
7
- } from "./chunk-5OLJGVCB.js";
7
+ } from "./chunk-3ONQTOMR.js";
8
8
  import {
9
+ CONFIG_DIR_NAME,
9
10
  getAgentDir
10
11
  } from "./chunk-PCIGF2XK.js";
11
12
 
@@ -134,7 +135,7 @@ function planModeBlockReason(toolName, input) {
134
135
  } catch {
135
136
  return PLAN_MODE_BLOCK_MESSAGE;
136
137
  }
137
- if (BLOCKED_TOOLS.has(toolName) || toolName === "code_rewrite" && isCodeRewriteMutating(input) || toolName.startsWith("settings_") && toolName !== "settings_load" && Object.keys(input ?? {}).length > 0)
138
+ if (BLOCKED_TOOLS.has(toolName) || toolName === "code_rewrite" && isCodeRewriteMutating(input))
138
139
  return PLAN_MODE_BLOCK_MESSAGE;
139
140
  if (toolName === "bash") {
140
141
  let command = readBashCommand(input);
@@ -404,8 +405,7 @@ var READ_ONLY_TOOLS = /* @__PURE__ */ new Set([
404
405
  "lsp_symbols",
405
406
  "lsp_code_actions",
406
407
  "lsp_completions",
407
- "memory_load",
408
- "settings_load"
408
+ "memory_load"
409
409
  ]), MUTATING_TOOLS = /* @__PURE__ */ new Set(["bash", "edit", "write", "memory_add", "memory_remove", "cron"]), REJECT_REASON = "Rejected by user (permission mode: manual).", NO_HANDLER_REASON = "Mutating tool blocked in manual mode: no approval channel available.", LARGE_SUBAGENT_LAUNCH_REJECT_REASON = "Large subagent launch rejected by user.", NO_LARGE_SUBAGENT_LAUNCH_HANDLER_REASON = "Large subagent launch blocked: no approval channel available.", LARGE_SUBAGENT_LAUNCH_ACTION = "large-subagent-launch", FULL_CHILD_ACTION = "subagent-full", contexts = /* @__PURE__ */ new Map(), defaultContext = { mode: "manual", approvals: /* @__PURE__ */ new Set() }, approvalHandler, turnLargeLaunchDecisions = /* @__PURE__ */ new WeakMap();
410
410
  function getContext(sessionId) {
411
411
  return sessionId ? contexts.get(sessionId) ?? defaultContext : defaultContext;
@@ -453,7 +453,7 @@ function isPathOutsideCwd(absPath, cwd) {
453
453
  function resolvePath(cwd, p) {
454
454
  return typeof p != "string" || !p ? "" : resolve(cwd, p);
455
455
  }
456
- var GLOBAL_AGENTS_FILE_WRITE_BLOCK_REASON = "The agents instruction tree is user-managed. The agent cannot change ~/.lunr/agent/agents/.", MEMORY_FILE_DIRECT_WRITE_BLOCK_REASON = "Memory is model-managed through the memory tools. Do not directly change ~/.lunr/simple-memory/memory.md.";
456
+ var GLOBAL_AGENTS_FILE_WRITE_BLOCK_REASON = "The agents instruction tree is user-managed. The agent cannot change ~/.lunr/agent/agents/.", MEMORY_FILE_DIRECT_WRITE_BLOCK_REASON = "Memory is model-managed through the memory tools. Do not directly change ~/.lunr/simple-memory/memory.md.", SETTINGS_FILE_DIRECT_WRITE_BLOCK_REASON = "lunR settings are user-managed through /settings. Do not directly change settings.json.";
457
457
  function protectedFileWriteReason(toolName, input, cwd) {
458
458
  if (toolName !== "edit" && toolName !== "write" && toolName !== "code_rewrite")
459
459
  return;
@@ -468,6 +468,9 @@ function protectedFileWriteReason(toolName, input, cwd) {
468
468
  return GLOBAL_AGENTS_FILE_WRITE_BLOCK_REASON;
469
469
  if (normalize(target) === normalize(join(dirname(getAgentDir()), "simple-memory", "memory.md")))
470
470
  return MEMORY_FILE_DIRECT_WRITE_BLOCK_REASON;
471
+ let globalSettings = normalize(join(getAgentDir(), "settings.json")), projectSettings = normalize(join(cwd, CONFIG_DIR_NAME, "settings.json")), normalizedTarget = normalize(target);
472
+ if (normalizedTarget === globalSettings || normalizedTarget === projectSettings)
473
+ return SETTINGS_FILE_DIRECT_WRITE_BLOCK_REASON;
471
474
  }
472
475
  function isMutatingTool(toolName) {
473
476
  return MUTATING_TOOLS.has(toolName);
@@ -496,7 +499,7 @@ function getRequestedChildLaunches(input) {
496
499
  return collectRequestedChildLaunches(input, launches), launches;
497
500
  }
498
501
  function requiresManualApproval(toolName, input) {
499
- return toolName.startsWith("computer_") ? toolName !== "computer_end" : isMutatingTool(toolName) ? !0 : toolName.startsWith("settings_") && toolName !== "settings_load" ? Object.keys(input).length > 0 : toolName === "subagent" ? getRequestedChildLaunches(input).some((launch) => launch.permissions === "full") : toolName === "code_rewrite" && isCodeRewriteMutating(input);
502
+ return toolName.startsWith("computer_") ? toolName !== "computer_end" : isMutatingTool(toolName) ? !0 : toolName === "subagent" ? getRequestedChildLaunches(input).some((launch) => launch.permissions === "full") : toolName === "code_rewrite" && isCodeRewriteMutating(input);
500
503
  }
501
504
  function firstTaskText(value) {
502
505
  return typeof value == "string" && value.trim() ? sanitizeDetail(value) : "";
@@ -31,7 +31,7 @@ import {
31
31
  } from "./chunk-ZCHMJ34K.js";
32
32
  import {
33
33
  processImage
34
- } from "./chunk-5Q45AVQG.js";
34
+ } from "./chunk-MW2XJZIK.js";
35
35
  import {
36
36
  keyHint
37
37
  } from "./chunk-C4O2RSQQ.js";
@@ -0,0 +1,73 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ typebox_exports
4
+ } from "./chunk-PL6JKXWI.js";
5
+
6
+ // packages/coding-agent/dist/core/computer-use/schemas.js
7
+ var target = {
8
+ pid: typebox_exports.Integer({ minimum: 1 }),
9
+ window_id: typebox_exports.Integer({ minimum: 1 })
10
+ }, observation = typebox_exports.String({
11
+ description: "Latest image token for this exact target. Single action, expires after 30 seconds."
12
+ }), grounded = {
13
+ pid: typebox_exports.Optional(target.pid),
14
+ window_id: typebox_exports.Optional(target.window_id),
15
+ desktop: typebox_exports.Optional(typebox_exports.Boolean({ description: "Primary desktop instead of a window; requires foreground=true." })),
16
+ observation,
17
+ foreground: typebox_exports.Optional(typebox_exports.Boolean({ description: "Window focus escalation after verified background failure. Settings may forbid it." }))
18
+ }, coordinate = typebox_exports.Number({ minimum: 0 }), pixels = { x: coordinate, y: coordinate }, optionalPixels = { x: typebox_exports.Optional(coordinate), y: typebox_exports.Optional(coordinate) }, computerSchemas = {
19
+ computer_load: typebox_exports.Object({}, { additionalProperties: !1 }),
20
+ computer_apps: typebox_exports.Object({
21
+ pid: typebox_exports.Optional(target.pid),
22
+ offset: typebox_exports.Optional(typebox_exports.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER, description: "Zero-based row offset, default 0. Pass the result's next_offset to retrieve the next 50 apps or windows." }))
23
+ }, { additionalProperties: !1 }),
24
+ computer_observe: typebox_exports.Object({
25
+ pid: typebox_exports.Optional(target.pid),
26
+ window_id: typebox_exports.Optional(target.window_id),
27
+ desktop: typebox_exports.Optional(typebox_exports.Boolean({ description: "Capture the primary desktop instead of a window." })),
28
+ observation: typebox_exports.Optional(observation),
29
+ crop: typebox_exports.Optional(typebox_exports.Object({
30
+ x: coordinate,
31
+ y: coordinate,
32
+ width: typebox_exports.Number({ exclusiveMinimum: 0 }),
33
+ height: typebox_exports.Number({ exclusiveMinimum: 0 })
34
+ }, { additionalProperties: !1, description: "Region in the latest returned image's pixels; requires its observation token. Captures fresh pixels. Omit for full target." }))
35
+ }, { additionalProperties: !1 }),
36
+ computer_click: typebox_exports.Object({
37
+ ...grounded,
38
+ ...pixels,
39
+ button: typebox_exports.Optional(typebox_exports.Union([typebox_exports.Literal("left"), typebox_exports.Literal("right")])),
40
+ count: typebox_exports.Optional(typebox_exports.Integer({ minimum: 1, maximum: 2 })),
41
+ modifier: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String({ minLength: 1 }), { maxItems: 4 }))
42
+ }, { additionalProperties: !1 }),
43
+ computer_drag: typebox_exports.Object({ ...grounded, from_x: coordinate, from_y: coordinate, to_x: coordinate, to_y: coordinate }, { additionalProperties: !1 }),
44
+ computer_key: typebox_exports.Object({
45
+ ...grounded,
46
+ ...optionalPixels,
47
+ key: typebox_exports.Optional(typebox_exports.String({ minLength: 1, maxLength: 100 })),
48
+ keys: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String({ minLength: 1, maxLength: 100 }), { minItems: 2, maxItems: 5 }))
49
+ }, { additionalProperties: !1 }),
50
+ computer_text: typebox_exports.Object({ ...grounded, ...optionalPixels, text: typebox_exports.String({ maxLength: 2e4 }) }, { additionalProperties: !1 }),
51
+ computer_window: typebox_exports.Object({
52
+ ...target,
53
+ observation,
54
+ action: typebox_exports.Union([typebox_exports.Literal("frame"), typebox_exports.Literal("focus")]),
55
+ x: typebox_exports.Optional(typebox_exports.Number()),
56
+ y: typebox_exports.Optional(typebox_exports.Number()),
57
+ width: typebox_exports.Optional(typebox_exports.Integer({ minimum: 1 })),
58
+ height: typebox_exports.Optional(typebox_exports.Integer({ minimum: 1 }))
59
+ }, { additionalProperties: !1 }),
60
+ computer_launch: typebox_exports.Object({ name: typebox_exports.String({ minLength: 1, maxLength: 500 }) }, { additionalProperties: !1 }),
61
+ computer_scroll: typebox_exports.Object({
62
+ ...grounded,
63
+ ...pixels,
64
+ direction: typebox_exports.Union([typebox_exports.Literal("up"), typebox_exports.Literal("down"), typebox_exports.Literal("left"), typebox_exports.Literal("right")]),
65
+ amount: typebox_exports.Integer({ minimum: 1, maximum: 50 }),
66
+ by: typebox_exports.Union([typebox_exports.Literal("line"), typebox_exports.Literal("page")])
67
+ }, { additionalProperties: !1 }),
68
+ computer_end: typebox_exports.Object({}, { additionalProperties: !1 })
69
+ };
70
+
71
+ export {
72
+ computerSchemas
73
+ };
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  DefaultPackageManager,
9
9
  emitProjectTrustEvent
10
- } from "./chunk-T5GM5BFH.js";
10
+ } from "./chunk-BYQ2MOFI.js";
11
11
  import {
12
12
  SettingsManager
13
- } from "./chunk-5NWQCSKR.js";
13
+ } from "./chunk-VQ4UBWSA.js";
14
14
  import {
15
15
  ExtensionSelectorComponent
16
16
  } from "./chunk-MJQDX3BA.js";
@@ -0,0 +1,19 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+
3
+ // packages/coding-agent/dist/core/subagent-spinner-setting.js
4
+ var SUBAGENT_SPINNER_NAMES = ["braille", "orbit", "snake", "sparkle"], DEFAULT_SUBAGENT_SPINNER = "braille", SUBAGENT_SPINNER_LABELS = {
5
+ braille: "Braille",
6
+ orbit: "Orbit",
7
+ snake: "Snake",
8
+ sparkle: "Sparkle"
9
+ };
10
+ function isSubagentSpinnerName(value) {
11
+ return typeof value == "string" && SUBAGENT_SPINNER_NAMES.includes(value);
12
+ }
13
+
14
+ export {
15
+ SUBAGENT_SPINNER_NAMES,
16
+ DEFAULT_SUBAGENT_SPINNER,
17
+ SUBAGENT_SPINNER_LABELS,
18
+ isSubagentSpinnerName
19
+ };
@@ -19,13 +19,7 @@ import {
19
19
  serializeTools,
20
20
  throwIfAborted,
21
21
  truncateAtWord
22
- } from "./chunk-EHMBW7FA.js";
23
- import {
24
- formatToolName,
25
- isToolExcluded,
26
- resourceNameToToolName,
27
- serverStreamResultPatchNotificationSchema
28
- } from "./chunk-ARC4KOTI.js";
22
+ } from "./chunk-VSELYKWU.js";
29
23
  import {
30
24
  AjvJsonSchemaValidator,
31
25
  Client,
@@ -65,6 +59,12 @@ import {
65
59
  import {
66
60
  external_exports
67
61
  } from "./chunk-BI3DHYCN.js";
62
+ import {
63
+ formatToolName,
64
+ isToolExcluded,
65
+ resourceNameToToolName,
66
+ serverStreamResultPatchNotificationSchema
67
+ } from "./chunk-ARC4KOTI.js";
68
68
  import {
69
69
  __require
70
70
  } from "./chunk-BRJX2PRC.js";