@ashx-j/lunr 0.2.25 → 0.2.27

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 (729) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +22 -0
  3. package/dist/builtin-extensions/ashxj-thinking.d.ts +1 -1
  4. package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -1
  5. package/dist/builtin-extensions/ashxj-thinking.js +1 -1
  6. package/dist/builtin-extensions/ashxj-thinking.js.map +1 -1
  7. package/dist/builtin-extensions/ashxj-tui.d.ts +11 -1
  8. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
  9. package/dist/builtin-extensions/ashxj-tui.js +6 -10
  10. package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
  11. package/dist/builtin-extensions/index.d.ts.map +1 -1
  12. package/dist/builtin-extensions/index.js +1 -0
  13. package/dist/builtin-extensions/index.js.map +1 -1
  14. package/dist/builtin-extensions/lunr-computer-use.d.ts +3 -0
  15. package/dist/builtin-extensions/lunr-computer-use.d.ts.map +1 -0
  16. package/dist/builtin-extensions/lunr-computer-use.js +179 -0
  17. package/dist/builtin-extensions/lunr-computer-use.js.map +1 -0
  18. package/dist/builtin-extensions/lunr-cron.d.ts +4 -5
  19. package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -1
  20. package/dist/builtin-extensions/lunr-cron.js +94 -108
  21. package/dist/builtin-extensions/lunr-cron.js.map +1 -1
  22. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -1
  23. package/dist/builtin-extensions/lunr-local-providers/local-servers.js +3 -1
  24. package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -1
  25. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -1
  26. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +2 -2
  27. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -1
  28. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -1
  29. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +1 -1
  30. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -1
  31. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -1
  32. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +1 -1
  33. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -1
  34. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  35. package/dist/builtin-extensions/pi-intercom/index.js +2 -2
  36. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  37. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +1 -1
  38. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -1
  39. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +1 -1
  40. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -1
  41. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
  42. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +1 -15
  43. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
  44. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +6 -0
  45. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -1
  46. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +187 -132
  47. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -1
  48. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +8 -0
  49. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -1
  50. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +142 -112
  51. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -1
  52. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +12 -1
  53. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -1
  54. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +14 -7
  55. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -1
  56. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +11 -3
  57. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -1
  58. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +67 -41
  59. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -1
  60. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +4 -2
  61. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -1
  62. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +3 -0
  63. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -1
  64. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +2 -1
  65. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -1
  66. package/dist/builtin-extensions/pi-mcp-adapter/commands.js +6 -6
  67. package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -1
  68. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +1 -1
  69. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -1
  70. package/dist/builtin-extensions/pi-mcp-adapter/config.js +11 -5
  71. package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -1
  72. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts.map +1 -1
  73. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js +2 -2
  74. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js.map +1 -1
  75. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -1
  76. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +1 -1
  77. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -1
  78. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
  79. package/dist/builtin-extensions/pi-mcp-adapter/index.js +48 -40
  80. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
  81. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -1
  82. package/dist/builtin-extensions/pi-mcp-adapter/init.js +3 -1
  83. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -1
  84. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +12 -40
  85. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -1
  86. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +166 -235
  87. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -1
  88. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +5 -0
  89. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -1
  90. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +43 -13
  91. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -1
  92. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +14 -3
  93. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -1
  94. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +73 -21
  95. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -1
  96. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -1
  97. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +4 -4
  98. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -1
  99. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -1
  100. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +2 -2
  101. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -1
  102. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +2 -0
  103. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -1
  104. package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -1
  105. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +1 -1
  106. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -1
  107. package/dist/builtin-extensions/pi-ollama-cloud/index.js +1 -1
  108. package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -1
  109. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +11 -5
  110. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -1
  111. package/dist/builtin-extensions/pi-ollama-cloud/models.js +12 -32
  112. package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -1
  113. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -1
  114. package/dist/builtin-extensions/pi-prompt-template-model/index.js +5 -3
  115. package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -1
  116. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +2 -1
  117. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -1
  118. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +21 -12
  119. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -1
  120. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -1
  121. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +7 -24
  122. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -1
  123. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  124. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +39 -77
  125. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  126. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  127. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +1 -1
  128. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  129. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +4 -4
  130. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  131. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +8 -5
  132. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  133. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +1 -1
  134. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  135. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +15 -31
  136. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
  137. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  138. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +7 -2
  139. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  140. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +1 -0
  141. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  142. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +21 -4
  143. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  144. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  145. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +11 -4
  146. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  147. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  148. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +121 -25
  149. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  150. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  151. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +25 -5
  152. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  153. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts +1 -0
  154. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts.map +1 -1
  155. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js +5 -0
  156. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js.map +1 -1
  157. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +1 -1
  158. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -1
  159. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +2 -0
  160. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -1
  161. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +1 -1
  162. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
  163. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +1 -1
  164. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
  165. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +7 -8
  166. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  167. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +60 -32
  168. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  169. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +1 -1
  170. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -1
  171. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +15 -5
  172. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -1
  173. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
  174. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +4 -3
  175. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
  176. package/dist/builtin-extensions/pi-subagents/src/tui/communication.d.ts.map +1 -1
  177. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js +1 -1
  178. package/dist/builtin-extensions/pi-subagents/src/tui/communication.js.map +1 -1
  179. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +2 -1
  180. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  181. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +22 -11
  182. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  183. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -1
  184. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +3 -3
  185. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -1
  186. package/dist/builtin-extensions/pi-tps.d.ts.map +1 -1
  187. package/dist/builtin-extensions/pi-tps.js +20 -17
  188. package/dist/builtin-extensions/pi-tps.js.map +1 -1
  189. package/dist/builtin-extensions/pi-web-access/activity.d.ts +1 -0
  190. package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -1
  191. package/dist/builtin-extensions/pi-web-access/activity.js +27 -5
  192. package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -1
  193. package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts +3 -0
  194. package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts.map +1 -0
  195. package/dist/builtin-extensions/pi-web-access/bounded-body.js +43 -0
  196. package/dist/builtin-extensions/pi-web-access/bounded-body.js.map +1 -0
  197. package/dist/builtin-extensions/pi-web-access/content-page.d.ts +24 -0
  198. package/dist/builtin-extensions/pi-web-access/content-page.d.ts.map +1 -0
  199. package/dist/builtin-extensions/pi-web-access/content-page.js +57 -0
  200. package/dist/builtin-extensions/pi-web-access/content-page.js.map +1 -0
  201. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -1
  202. package/dist/builtin-extensions/pi-web-access/extract.js +7 -2
  203. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -1
  204. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +0 -1
  205. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -1
  206. package/dist/builtin-extensions/pi-web-access/github-extract.js +147 -36
  207. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -1
  208. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  209. package/dist/builtin-extensions/pi-web-access/index.js +48 -73
  210. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  211. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts +12 -4
  212. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts.map +1 -1
  213. package/dist/builtin-extensions/pi-web-access/session-cleanup.js +35 -12
  214. package/dist/builtin-extensions/pi-web-access/session-cleanup.js.map +1 -1
  215. package/dist/builtin-extensions/pi-web-access/storage.d.ts +9 -6
  216. package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -1
  217. package/dist/builtin-extensions/pi-web-access/storage.js +36 -24
  218. package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -1
  219. package/dist/builtin-extensions/simple-pi-memory.d.ts +1 -1
  220. package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -1
  221. package/dist/builtin-extensions/simple-pi-memory.js +1 -1
  222. package/dist/builtin-extensions/simple-pi-memory.js.map +1 -1
  223. package/dist/cli/install-cli.d.ts.map +1 -1
  224. package/dist/cli/install-cli.js +38 -30
  225. package/dist/cli/install-cli.js.map +1 -1
  226. package/dist/core/agent-session-runtime.d.ts +13 -0
  227. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  228. package/dist/core/agent-session-runtime.js +75 -11
  229. package/dist/core/agent-session-runtime.js.map +1 -1
  230. package/dist/core/agent-session-services.d.ts +1 -0
  231. package/dist/core/agent-session-services.d.ts.map +1 -1
  232. package/dist/core/agent-session-services.js +1 -0
  233. package/dist/core/agent-session-services.js.map +1 -1
  234. package/dist/core/agent-session.d.ts +40 -6
  235. package/dist/core/agent-session.d.ts.map +1 -1
  236. package/dist/core/agent-session.js +309 -76
  237. package/dist/core/agent-session.js.map +1 -1
  238. package/dist/core/browser/runtime.d.ts +2 -0
  239. package/dist/core/browser/runtime.d.ts.map +1 -1
  240. package/dist/core/browser/runtime.js +80 -45
  241. package/dist/core/browser/runtime.js.map +1 -1
  242. package/dist/core/browser/setup.d.ts.map +1 -1
  243. package/dist/core/browser/setup.js +12 -1
  244. package/dist/core/browser/setup.js.map +1 -1
  245. package/dist/core/computer-use/adapter.d.ts +28 -0
  246. package/dist/core/computer-use/adapter.d.ts.map +1 -0
  247. package/dist/core/computer-use/adapter.js +138 -0
  248. package/dist/core/computer-use/adapter.js.map +1 -0
  249. package/dist/core/computer-use/image.d.ts +27 -0
  250. package/dist/core/computer-use/image.d.ts.map +1 -0
  251. package/dist/core/computer-use/image.js +84 -0
  252. package/dist/core/computer-use/image.js.map +1 -0
  253. package/dist/core/computer-use/lease.d.ts +18 -0
  254. package/dist/core/computer-use/lease.d.ts.map +1 -0
  255. package/dist/core/computer-use/lease.js +129 -0
  256. package/dist/core/computer-use/lease.js.map +1 -0
  257. package/dist/core/computer-use/macos-runtime.d.ts +14 -0
  258. package/dist/core/computer-use/macos-runtime.d.ts.map +1 -0
  259. package/dist/core/computer-use/macos-runtime.js +148 -0
  260. package/dist/core/computer-use/macos-runtime.js.map +1 -0
  261. package/dist/core/computer-use/policy.d.ts +19 -0
  262. package/dist/core/computer-use/policy.d.ts.map +1 -0
  263. package/dist/core/computer-use/policy.js +67 -0
  264. package/dist/core/computer-use/policy.js.map +1 -0
  265. package/dist/core/computer-use/release.generated.d.ts +31 -0
  266. package/dist/core/computer-use/release.generated.d.ts.map +1 -0
  267. package/dist/core/computer-use/release.generated.js +36 -0
  268. package/dist/core/computer-use/release.generated.js.map +1 -0
  269. package/dist/core/computer-use/runtime.d.ts +13 -0
  270. package/dist/core/computer-use/runtime.d.ts.map +1 -0
  271. package/dist/core/computer-use/runtime.js +158 -0
  272. package/dist/core/computer-use/runtime.js.map +1 -0
  273. package/dist/core/computer-use/schemas.d.ts +100 -0
  274. package/dist/core/computer-use/schemas.d.ts.map +1 -0
  275. package/dist/core/computer-use/schemas.js +96 -0
  276. package/dist/core/computer-use/schemas.js.map +1 -0
  277. package/dist/core/computer-use/windows-desktop.d.ts +3 -0
  278. package/dist/core/computer-use/windows-desktop.d.ts.map +1 -0
  279. package/dist/core/computer-use/windows-desktop.js +48 -0
  280. package/dist/core/computer-use/windows-desktop.js.map +1 -0
  281. package/dist/core/computer-use/workflow.d.ts +38 -0
  282. package/dist/core/computer-use/workflow.d.ts.map +1 -0
  283. package/dist/core/computer-use/workflow.js +900 -0
  284. package/dist/core/computer-use/workflow.js.map +1 -0
  285. package/dist/core/cron/jobs.d.ts +26 -8
  286. package/dist/core/cron/jobs.d.ts.map +1 -1
  287. package/dist/core/cron/jobs.js +357 -232
  288. package/dist/core/cron/jobs.js.map +1 -1
  289. package/dist/core/cron/origin-context.d.ts +1 -0
  290. package/dist/core/cron/origin-context.d.ts.map +1 -1
  291. package/dist/core/cron/origin-context.js.map +1 -1
  292. package/dist/core/cron/scheduler.d.ts +22 -17
  293. package/dist/core/cron/scheduler.d.ts.map +1 -1
  294. package/dist/core/cron/scheduler.js +153 -73
  295. package/dist/core/cron/scheduler.js.map +1 -1
  296. package/dist/core/extensions/index.d.ts +1 -1
  297. package/dist/core/extensions/index.d.ts.map +1 -1
  298. package/dist/core/extensions/index.js.map +1 -1
  299. package/dist/core/extensions/loader.d.ts.map +1 -1
  300. package/dist/core/extensions/loader.js +4 -0
  301. package/dist/core/extensions/loader.js.map +1 -1
  302. package/dist/core/extensions/runner.d.ts +1 -0
  303. package/dist/core/extensions/runner.d.ts.map +1 -1
  304. package/dist/core/extensions/runner.js +8 -0
  305. package/dist/core/extensions/runner.js.map +1 -1
  306. package/dist/core/extensions/types.d.ts +8 -0
  307. package/dist/core/extensions/types.d.ts.map +1 -1
  308. package/dist/core/extensions/types.js.map +1 -1
  309. package/dist/core/footer-data-provider.d.ts +4 -0
  310. package/dist/core/footer-data-provider.d.ts.map +1 -1
  311. package/dist/core/footer-data-provider.js +22 -1
  312. package/dist/core/footer-data-provider.js.map +1 -1
  313. package/dist/core/large-subagent-launch.d.ts +1 -1
  314. package/dist/core/large-subagent-launch.d.ts.map +1 -1
  315. package/dist/core/large-subagent-launch.js +7 -7
  316. package/dist/core/large-subagent-launch.js.map +1 -1
  317. package/dist/core/model-registry.d.ts +2 -0
  318. package/dist/core/model-registry.d.ts.map +1 -1
  319. package/dist/core/model-registry.js +5 -0
  320. package/dist/core/model-registry.js.map +1 -1
  321. package/dist/core/model-runtime.d.ts +4 -1
  322. package/dist/core/model-runtime.d.ts.map +1 -1
  323. package/dist/core/model-runtime.js +40 -4
  324. package/dist/core/model-runtime.js.map +1 -1
  325. package/dist/core/package-manager.d.ts.map +1 -1
  326. package/dist/core/package-manager.js.map +1 -1
  327. package/dist/core/permissions.d.ts +4 -4
  328. package/dist/core/permissions.d.ts.map +1 -1
  329. package/dist/core/permissions.js +25 -38
  330. package/dist/core/permissions.js.map +1 -1
  331. package/dist/core/plan-mode.d.ts +5 -13
  332. package/dist/core/plan-mode.d.ts.map +1 -1
  333. package/dist/core/plan-mode.js +135 -116
  334. package/dist/core/plan-mode.js.map +1 -1
  335. package/dist/core/project-trust.d.ts.map +1 -1
  336. package/dist/core/project-trust.js +1 -1
  337. package/dist/core/project-trust.js.map +1 -1
  338. package/dist/core/prompt-resource-bridge.d.ts +12 -0
  339. package/dist/core/prompt-resource-bridge.d.ts.map +1 -0
  340. package/dist/core/prompt-resource-bridge.js +9 -0
  341. package/dist/core/prompt-resource-bridge.js.map +1 -0
  342. package/dist/core/protected-targets.d.ts +6 -0
  343. package/dist/core/protected-targets.d.ts.map +1 -0
  344. package/dist/core/protected-targets.js +45 -0
  345. package/dist/core/protected-targets.js.map +1 -0
  346. package/dist/core/resource-loader.d.ts.map +1 -1
  347. package/dist/core/resource-loader.js +7 -0
  348. package/dist/core/resource-loader.js.map +1 -1
  349. package/dist/core/rollback.d.ts +19 -3
  350. package/dist/core/rollback.d.ts.map +1 -1
  351. package/dist/core/rollback.js +172 -56
  352. package/dist/core/rollback.js.map +1 -1
  353. package/dist/core/runtime-credentials.d.ts +3 -0
  354. package/dist/core/runtime-credentials.d.ts.map +1 -1
  355. package/dist/core/runtime-credentials.js +14 -1
  356. package/dist/core/runtime-credentials.js.map +1 -1
  357. package/dist/core/sdk.d.ts +3 -0
  358. package/dist/core/sdk.d.ts.map +1 -1
  359. package/dist/core/sdk.js +1 -0
  360. package/dist/core/sdk.js.map +1 -1
  361. package/dist/core/session-manager.d.ts +6 -0
  362. package/dist/core/session-manager.d.ts.map +1 -1
  363. package/dist/core/session-manager.js +95 -32
  364. package/dist/core/session-manager.js.map +1 -1
  365. package/dist/core/session-ownership.d.ts.map +1 -1
  366. package/dist/core/session-ownership.js +8 -3
  367. package/dist/core/session-ownership.js.map +1 -1
  368. package/dist/core/session-retention.d.ts.map +1 -1
  369. package/dist/core/session-retention.js +18 -7
  370. package/dist/core/session-retention.js.map +1 -1
  371. package/dist/core/session-startup-settings.d.ts +10 -0
  372. package/dist/core/session-startup-settings.d.ts.map +1 -0
  373. package/dist/core/session-startup-settings.js +70 -0
  374. package/dist/core/session-startup-settings.js.map +1 -0
  375. package/dist/core/settings-manager.d.ts +6 -0
  376. package/dist/core/settings-manager.d.ts.map +1 -1
  377. package/dist/core/settings-manager.js +19 -0
  378. package/dist/core/settings-manager.js.map +1 -1
  379. package/dist/core/subagent-event-transport.d.ts +3 -0
  380. package/dist/core/subagent-event-transport.d.ts.map +1 -0
  381. package/dist/core/subagent-event-transport.js +61 -0
  382. package/dist/core/subagent-event-transport.js.map +1 -0
  383. package/dist/core/subscriptions.d.ts +16 -7
  384. package/dist/core/subscriptions.d.ts.map +1 -1
  385. package/dist/core/subscriptions.js +96 -55
  386. package/dist/core/subscriptions.js.map +1 -1
  387. package/dist/core/trust-manager.d.ts +2 -1
  388. package/dist/core/trust-manager.d.ts.map +1 -1
  389. package/dist/core/trust-manager.js +6 -1
  390. package/dist/core/trust-manager.js.map +1 -1
  391. package/dist/core/update-check.d.ts.map +1 -1
  392. package/dist/core/update-check.js.map +1 -1
  393. package/dist/core/usage-adapters/kimi-coding.d.ts +2 -2
  394. package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -1
  395. package/dist/core/usage-adapters/kimi-coding.js +2 -2
  396. package/dist/core/usage-adapters/kimi-coding.js.map +1 -1
  397. package/dist/core/usage-adapters/openai-codex.d.ts +3 -2
  398. package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -1
  399. package/dist/core/usage-adapters/openai-codex.js +3 -3
  400. package/dist/core/usage-adapters/openai-codex.js.map +1 -1
  401. package/dist/core/usage-adapters/xai.d.ts +2 -2
  402. package/dist/core/usage-adapters/xai.d.ts.map +1 -1
  403. package/dist/core/usage-adapters/xai.js +3 -3
  404. package/dist/core/usage-adapters/xai.js.map +1 -1
  405. package/dist/core/usage-adapters/zai.d.ts +2 -2
  406. package/dist/core/usage-adapters/zai.d.ts.map +1 -1
  407. package/dist/core/usage-adapters/zai.js +2 -2
  408. package/dist/core/usage-adapters/zai.js.map +1 -1
  409. package/dist/core/usage-service.d.ts +9 -2
  410. package/dist/core/usage-service.d.ts.map +1 -1
  411. package/dist/core/usage-service.js +95 -50
  412. package/dist/core/usage-service.js.map +1 -1
  413. package/dist/gateway/adapters/discord.d.ts.map +1 -1
  414. package/dist/gateway/adapters/discord.js +2 -2
  415. package/dist/gateway/adapters/discord.js.map +1 -1
  416. package/dist/gateway/agent-bridge.d.ts +9 -1
  417. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  418. package/dist/gateway/agent-bridge.js +91 -37
  419. package/dist/gateway/agent-bridge.js.map +1 -1
  420. package/dist/gateway/approval.d.ts.map +1 -1
  421. package/dist/gateway/approval.js +3 -3
  422. package/dist/gateway/approval.js.map +1 -1
  423. package/dist/gateway/authz.d.ts +4 -4
  424. package/dist/gateway/authz.d.ts.map +1 -1
  425. package/dist/gateway/authz.js +8 -12
  426. package/dist/gateway/authz.js.map +1 -1
  427. package/dist/gateway/buttons.d.ts +8 -1
  428. package/dist/gateway/buttons.d.ts.map +1 -1
  429. package/dist/gateway/buttons.js +76 -18
  430. package/dist/gateway/buttons.js.map +1 -1
  431. package/dist/gateway/commands.d.ts +1 -0
  432. package/dist/gateway/commands.d.ts.map +1 -1
  433. package/dist/gateway/commands.js +12 -10
  434. package/dist/gateway/commands.js.map +1 -1
  435. package/dist/gateway/cron.d.ts +12 -11
  436. package/dist/gateway/cron.d.ts.map +1 -1
  437. package/dist/gateway/cron.js +85 -62
  438. package/dist/gateway/cron.js.map +1 -1
  439. package/dist/gateway/index.d.ts.map +1 -1
  440. package/dist/gateway/index.js +5 -4
  441. package/dist/gateway/index.js.map +1 -1
  442. package/dist/gateway/mobile-commands.d.ts +1 -0
  443. package/dist/gateway/mobile-commands.d.ts.map +1 -1
  444. package/dist/gateway/mobile-commands.js +64 -22
  445. package/dist/gateway/mobile-commands.js.map +1 -1
  446. package/dist/gateway/presenter.d.ts +12 -2
  447. package/dist/gateway/presenter.d.ts.map +1 -1
  448. package/dist/gateway/presenter.js +74 -39
  449. package/dist/gateway/presenter.js.map +1 -1
  450. package/dist/gateway/router.d.ts +2 -2
  451. package/dist/gateway/router.d.ts.map +1 -1
  452. package/dist/gateway/router.js +22 -9
  453. package/dist/gateway/router.js.map +1 -1
  454. package/dist/gateway/service.d.ts +2 -0
  455. package/dist/gateway/service.d.ts.map +1 -1
  456. package/dist/gateway/service.js +153 -0
  457. package/dist/gateway/service.js.map +1 -1
  458. package/dist/gateway/setup.d.ts.map +1 -1
  459. package/dist/gateway/setup.js +6 -4
  460. package/dist/gateway/setup.js.map +1 -1
  461. package/dist/main.d.ts.map +1 -1
  462. package/dist/main.js +86 -33
  463. package/dist/main.js.map +1 -1
  464. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  465. package/dist/modes/interactive/components/assistant-message.js +6 -4
  466. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  467. package/dist/modes/interactive/components/copyable-text.d.ts.map +1 -1
  468. package/dist/modes/interactive/components/copyable-text.js +3 -2
  469. package/dist/modes/interactive/components/copyable-text.js.map +1 -1
  470. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  471. package/dist/modes/interactive/components/extension-editor.js +1 -1
  472. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  473. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  474. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  475. package/dist/modes/interactive/components/settings-selector.js +20 -0
  476. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  477. package/dist/modes/interactive/interactive-mode.d.ts +2 -2
  478. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  479. package/dist/modes/interactive/interactive-mode.js +104 -109
  480. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  481. package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -1
  482. package/dist/modes/interactive/smooth-streaming.js.map +1 -1
  483. package/dist/modes/print-mode.d.ts.map +1 -1
  484. package/dist/modes/print-mode.js +9 -1
  485. package/dist/modes/print-mode.js.map +1 -1
  486. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  487. package/dist/modes/rpc/rpc-mode.js +2 -1
  488. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  489. package/dist/node-runtime/adapter-247RTYLS.js +16 -0
  490. package/dist/node-runtime/agent-session-services-KDMSPQDY.js +53 -0
  491. package/dist/node-runtime/{brave-UWDA3I22.js → brave-2AFFAXNN.js} +1 -1
  492. package/dist/node-runtime/{builtin-extensions-ZLAX7TUH.js → builtin-extensions-OX6KELNX.js} +9 -7
  493. package/dist/node-runtime/{chunk-QH6YL7VK.js → chunk-252ZVPPF.js} +3 -3
  494. package/dist/node-runtime/{chunk-PCEW76PM.js → chunk-2OIPYKLZ.js} +6 -6
  495. package/dist/node-runtime/{chunk-XBWPBZBN.js → chunk-2SWW7KMW.js} +1 -1
  496. package/dist/node-runtime/{chunk-UQUCFAJ3.js → chunk-2VIW3IMF.js} +40 -7
  497. package/dist/node-runtime/{chunk-UOEDI7RP.js → chunk-4KNKQGHM.js} +2 -2
  498. package/dist/node-runtime/{chunk-FQMM2EZ2.js → chunk-64XTQNLA.js} +29 -7
  499. package/dist/node-runtime/{chunk-NRKGMJYU.js → chunk-6O3IW3IA.js} +2 -2
  500. package/dist/node-runtime/{chunk-5ZQXRPMC.js → chunk-6ZZHGUSA.js} +2 -2
  501. package/dist/node-runtime/chunk-A2WO6WIN.js +1197 -0
  502. package/dist/node-runtime/{chunk-ZXSGTGJ6.js → chunk-APVM5NEU.js} +169 -148
  503. package/dist/node-runtime/{chunk-RC7DMV45.js → chunk-AYHH7YSD.js} +205 -144
  504. package/dist/node-runtime/{chunk-LWYIVUGV.js → chunk-B2IBAXNX.js} +48 -31
  505. package/dist/node-runtime/{chunk-M3LZLQW2.js → chunk-BDRGN3L2.js} +1 -0
  506. package/dist/node-runtime/{chunk-GJ2RDBRL.js → chunk-BYC6RKCN.js} +4 -2
  507. package/dist/node-runtime/{chunk-KWIYUUZK.js → chunk-C3P6Q3B2.js} +469 -283
  508. package/dist/node-runtime/{chunk-YCUZEGJG.js → chunk-DQSCFU7R.js} +17 -8
  509. package/dist/node-runtime/chunk-EBLAZVSA.js +4170 -0
  510. package/dist/node-runtime/{chunk-2KIPT4HJ.js → chunk-EPR2F3GU.js} +68 -20
  511. package/dist/node-runtime/{chunk-CSFI6YXL.js → chunk-ES6PBSIE.js} +1 -1
  512. package/dist/node-runtime/{chunk-IF24A3FH.js → chunk-EVM653DD.js} +4 -4
  513. package/dist/node-runtime/{chunk-HTFRRDSF.js → chunk-F2SMQ6ES.js} +3 -2
  514. package/dist/node-runtime/chunk-F2V2F4ZG.js +114 -0
  515. package/dist/node-runtime/chunk-FE3WZI7F.js +290 -0
  516. package/dist/node-runtime/{chunk-GYIXXQAO.js → chunk-FIRA54AC.js} +2 -5
  517. package/dist/node-runtime/{chunk-6VYZ5UFP.js → chunk-FLGEEH27.js} +1 -1
  518. package/dist/node-runtime/{chunk-5EFIU3OM.js → chunk-FTKEZL27.js} +1 -1
  519. package/dist/node-runtime/chunk-FY4A63RK.js +73 -0
  520. package/dist/node-runtime/chunk-FYIFPFXE.js +98 -0
  521. package/dist/node-runtime/{chunk-HMBGROQK.js → chunk-GLDXBBL6.js} +3 -3
  522. package/dist/node-runtime/{chunk-KWA4OC2J.js → chunk-H6YBCWKG.js} +1 -1
  523. package/dist/node-runtime/{chunk-2MI5OPMN.js → chunk-HNNHHJAB.js} +68 -50
  524. package/dist/node-runtime/{chunk-6XL67VVY.js → chunk-HUD2RFJW.js} +17 -2
  525. package/dist/node-runtime/{chunk-I54LGHWM.js → chunk-I2H5QMWW.js} +3 -3
  526. package/dist/node-runtime/chunk-IAZSK7KK.js +108 -0
  527. package/dist/node-runtime/{chunk-2HHLJWGD.js → chunk-IHHTWSXN.js} +9 -9
  528. package/dist/node-runtime/{chunk-DAPBPCBP.js → chunk-IPP5BIV5.js} +25 -3
  529. package/dist/node-runtime/{chunk-QFWG2RVL.js → chunk-IXG6F4NT.js} +11 -0
  530. package/dist/node-runtime/{chunk-RDDAZOMU.js → chunk-JL4HYQXK.js} +1 -1
  531. package/dist/node-runtime/{chunk-CDVHZOOK.js → chunk-JQYNHAKX.js} +1 -1
  532. package/dist/node-runtime/{chunk-WF7PGWRZ.js → chunk-JWEVT363.js} +37 -28
  533. package/dist/node-runtime/{chunk-2HMIRK7W.js → chunk-LHV3V67B.js} +5 -5
  534. package/dist/node-runtime/{chunk-UAEOTO52.js → chunk-MNQXDFPV.js} +6 -2
  535. package/dist/node-runtime/{chunk-IJIFHRTB.js → chunk-MQPKUHRN.js} +165 -85
  536. package/dist/node-runtime/{chunk-MPKSOJBT.js → chunk-NHATCSOI.js} +4 -7
  537. package/dist/node-runtime/{chunk-RMQZU2YU.js → chunk-NNNR3QIY.js} +1 -1
  538. package/dist/node-runtime/{chunk-RWTKOC3B.js → chunk-QBTJG3UM.js} +1 -1
  539. package/dist/node-runtime/{chunk-E4D3IGP2.js → chunk-QNVMKNNN.js} +20 -17
  540. package/dist/node-runtime/{chunk-GS42T6MX.js → chunk-QW3AAHWN.js} +1 -1
  541. package/dist/node-runtime/{chunk-7S3T6YEA.js → chunk-R4WSB2MQ.js} +5 -5
  542. package/dist/node-runtime/{chunk-B4HP6ZWM.js → chunk-RHCGYWO7.js} +1 -1
  543. package/dist/node-runtime/{chunk-3XPLBUEM.js → chunk-RLGY2QIL.js} +49 -59
  544. package/dist/node-runtime/{chunk-KKUTQQV7.js → chunk-RYRGL7P4.js} +1 -1
  545. package/dist/node-runtime/{chunk-AD6VXAO7.js → chunk-TCT6PCUR.js} +47 -115
  546. package/dist/node-runtime/chunk-U5F4IC7R.js +53 -0
  547. package/dist/node-runtime/{chunk-OCVIXVTZ.js → chunk-UBWW2PID.js} +13 -2
  548. package/dist/node-runtime/{chunk-HFVZUPFJ.js → chunk-UNUZICC4.js} +3 -3
  549. package/dist/node-runtime/{chunk-LQP3RB67.js → chunk-UYRKUKFE.js} +1 -1
  550. package/dist/node-runtime/{chunk-DSIKTUPW.js → chunk-VSUEAI7O.js} +2993 -3820
  551. package/dist/node-runtime/{chunk-NAY6UUQZ.js → chunk-WDIVLMOH.js} +1 -1
  552. package/dist/node-runtime/{chunk-E24EO34J.js → chunk-WPXUR3HE.js} +1 -1
  553. package/dist/node-runtime/{chunk-SLVOAQOY.js → chunk-WXYNALHD.js} +113 -1
  554. package/dist/node-runtime/{chunk-KJ6DWS3K.js → chunk-XEOCUEUJ.js} +121 -60
  555. package/dist/node-runtime/chunk-YD3IZAZ7.js +47 -0
  556. package/dist/node-runtime/chunk-YSB6URMT.js +41 -0
  557. package/dist/node-runtime/{chunk-VQFSUJJG.js → chunk-ZDJUR45D.js} +430 -129
  558. package/dist/node-runtime/{chunk-YDO2F2IA.js → chunk-ZEVFBFNF.js} +95 -142
  559. package/dist/node-runtime/chunk-ZIQUS5QO.js +180 -0
  560. package/dist/node-runtime/cli-runtime.js +4 -4
  561. package/dist/node-runtime/{command-6WDOYKS6.js → command-3HMSY6W2.js} +5 -5
  562. package/dist/node-runtime/{commands-NZLSOHPE.js → commands-D6A6H4TS.js} +11 -16
  563. package/dist/node-runtime/commands-OCSSEEWJ.js +37 -0
  564. package/dist/node-runtime/{config-QDD5PUE2.js → config-CU7M7BTK.js} +1 -1
  565. package/dist/node-runtime/{config-D4QUPAHX.js → config-DS7XLMEM.js} +2 -2
  566. package/dist/node-runtime/{direct-tool-executor-77GW4F5P.js → direct-tool-executor-2QJXVQD2.js} +8 -10
  567. package/dist/node-runtime/{exa-LL64QZR2.js → exa-6VBZNPGE.js} +1 -1
  568. package/dist/node-runtime/{export-html-VM4J2MNR.js → export-html-BRWF5AHI.js} +4 -4
  569. package/dist/node-runtime/{extension-input-E7BJZ35H.js → extension-input-VBBMX7YV.js} +5 -5
  570. package/dist/node-runtime/{extension-selector-WU42XDTU.js → extension-selector-T5AOG5XB.js} +5 -5
  571. package/dist/node-runtime/{extract-EQJE7FZZ.js → extract-BFX2N35A.js} +3 -3
  572. package/dist/node-runtime/{gateway-INAYBF4Q.js → gateway-6623C2U3.js} +61 -53
  573. package/dist/node-runtime/{gemini-search-35OCRFLN.js → gemini-search-C66QHDT6.js} +2 -2
  574. package/dist/node-runtime/{gemini-url-context-UQY3PHHW.js → gemini-url-context-T7DEK73R.js} +3 -3
  575. package/dist/node-runtime/{github-extract-F64RZOEA.js → github-extract-HOGE3D6F.js} +107 -38
  576. package/dist/node-runtime/{goal-NJEE5CTU.js → goal-AIHEDUYA.js} +5 -5
  577. package/dist/node-runtime/index.js +54 -48
  578. package/dist/node-runtime/{init-HS6NQXSK.js → init-JBQJIPYI.js} +3 -4
  579. package/dist/node-runtime/{install-cli-KL4UDDAD.js → install-cli-INGHIVBY.js} +30 -25
  580. package/dist/node-runtime/interactive-mode-FM5DNUSW.js +74 -0
  581. package/dist/node-runtime/{interactive-view-NGFAMHPW.js → interactive-view-K33PM4OS.js} +8 -8
  582. package/dist/node-runtime/{lsp-manager-3ASUSO4T.js → lsp-manager-S554V5HR.js} +240 -155
  583. package/dist/node-runtime/{lunr-browser-IR7TL3J7.js → lunr-browser-H4FDOR3C.js} +7 -7
  584. package/dist/node-runtime/lunr-computer-use-VDP2QNRQ.js +158 -0
  585. package/dist/node-runtime/{lunr-cron-LWIZJM2N.js → lunr-cron-LKVA5CZZ.js} +94 -79
  586. package/dist/node-runtime/main.js +42 -39
  587. package/dist/node-runtime/{mobile-commands-J7OJEKFO.js → mobile-commands-XT3NQXLD.js} +13 -12
  588. package/dist/node-runtime/{model-runtime-OO5HFLWE.js → model-runtime-MZ2JMDV4.js} +4 -4
  589. package/dist/node-runtime/{openai-search-B3MSNCQA.js → openai-search-K72LJDYN.js} +1 -1
  590. package/dist/node-runtime/{package-manager-cli-VYZM5WHN.js → package-manager-cli-CYM262SI.js} +20 -19
  591. package/dist/node-runtime/{parallel-AI2MNSCU.js → parallel-X724NCNU.js} +1 -1
  592. package/dist/node-runtime/{perplexity-QVJW3I35.js → perplexity-RDHQHVMK.js} +2 -2
  593. package/dist/node-runtime/{pi-intercom-QM53RLTS.js → pi-intercom-NHHEPBMI.js} +2 -2
  594. package/dist/node-runtime/{pi-mcp-adapter-5UKBZP44.js → pi-mcp-adapter-PP3GQJQ2.js} +98 -94
  595. package/dist/node-runtime/{pi-ollama-cloud-2F3Y2QNM.js → pi-ollama-cloud-4MNWIMFN.js} +11 -24
  596. package/dist/node-runtime/{pi-prompt-template-model-QWTCGLJU.js → pi-prompt-template-model-FTGELLS5.js} +32 -36
  597. package/dist/node-runtime/{pi-subagents-DNY7EAIG.js → pi-subagents-LT3CTO4E.js} +114 -116
  598. package/dist/node-runtime/{pi-web-access-WTGMNZ32.js → pi-web-access-Z3LP246C.js} +144 -108
  599. package/dist/node-runtime/{print-mode-XSFM26EL.js → print-mode-2XHN5SUA.js} +4 -3
  600. package/dist/node-runtime/{process-registry-4FAKZQOL.js → process-registry-Q4QWIU33.js} +3 -3
  601. package/dist/node-runtime/{proxy-modes-LGEUYD7R.js → proxy-modes-VEGC6QG5.js} +9 -13
  602. package/dist/node-runtime/rpc-entry.js +42 -39
  603. package/dist/node-runtime/{rpc-mode-O3XV4SID.js → rpc-mode-32DHJPEJ.js} +4 -4
  604. package/dist/node-runtime/{runtime-4VA6JKNF.js → runtime-EDUUGAQD.js} +56 -46
  605. package/dist/node-runtime/runtime-UGXM4NPQ.js +21 -0
  606. package/dist/node-runtime/{runtime-bridges-VRDDR73P.js → runtime-bridges-DNKMNJCF.js} +8 -7
  607. package/dist/node-runtime/{service-MDQIPQ26.js → service-IHLGFLBT.js} +6 -4
  608. package/dist/node-runtime/{session-handoff-GWARVEWT.js → session-handoff-LNSPDTKY.js} +4 -4
  609. package/dist/node-runtime/{session-manager-JB5J6XBN.js → session-manager-YIFIAVGC.js} +3 -3
  610. package/dist/node-runtime/{session-selector-GIM4DHQ2.js → session-selector-I73U3EIO.js} +7 -7
  611. package/dist/node-runtime/{settings-manager-J4SPQPDJ.js → settings-manager-P2TKGYTR.js} +6 -5
  612. package/dist/node-runtime/{setup-JBKOLJ6F.js → setup-H7CCELIL.js} +15 -1
  613. package/dist/node-runtime/{setup-CQ2NLVK5.js → setup-OLQ4GXWS.js} +22 -21
  614. package/dist/node-runtime/{src-IVPNZ2BX.js → src-6RV4PXKJ.js} +64 -36
  615. package/dist/node-runtime/{subagent-executor-KZZQGAKV.js → subagent-executor-Q5F7DBVM.js} +141 -62
  616. package/dist/node-runtime/{tavily-WEZFVFP7.js → tavily-KZBFYQB6.js} +1 -1
  617. package/dist/node-runtime/{theme-UOO5RVFN.js → theme-YLVZKKZD.js} +2 -2
  618. package/dist/node-runtime/{trust-manager-MMISNCYO.js → trust-manager-ZCU76D23.js} +2 -2
  619. package/dist/node-runtime/{update-cli-GTFJC7XK.js → update-cli-F3XXJANQ.js} +7 -6
  620. package/dist/node-runtime/{usage-service-LFB2SWYV.js → usage-service-CPAGBED5.js} +1 -1
  621. package/dist/node-runtime/{video-extract-OOZHR7SU.js → video-extract-UPKYIBW3.js} +3 -3
  622. package/dist/node-runtime/workflow-ICDI4N3J.js +767 -0
  623. package/dist/node-runtime/{youtube-extract-FNPAUNHU.js → youtube-extract-77NT7FWH.js} +4 -4
  624. package/dist/utils/clipboard-image.d.ts.map +1 -1
  625. package/dist/utils/clipboard-image.js.map +1 -1
  626. package/dist/utils/exif-orientation.d.ts.map +1 -1
  627. package/dist/utils/exif-orientation.js +25 -10
  628. package/dist/utils/exif-orientation.js.map +1 -1
  629. package/dist/utils/image-resize-core.d.ts +2 -0
  630. package/dist/utils/image-resize-core.d.ts.map +1 -1
  631. package/dist/utils/image-resize-core.js +12 -0
  632. package/dist/utils/image-resize-core.js.map +1 -1
  633. package/dist/utils/paths.d.ts +4 -0
  634. package/dist/utils/paths.d.ts.map +1 -1
  635. package/dist/utils/paths.js +33 -2
  636. package/dist/utils/paths.js.map +1 -1
  637. package/dist/utils/sanitize-terminal-text.d.ts +7 -0
  638. package/dist/utils/sanitize-terminal-text.d.ts.map +1 -0
  639. package/dist/utils/sanitize-terminal-text.js +67 -0
  640. package/dist/utils/sanitize-terminal-text.js.map +1 -0
  641. package/docs/browser.md +1 -1
  642. package/docs/computer-use.md +362 -0
  643. package/docs/custom-provider.md +3 -3
  644. package/docs/extensions.md +8 -4
  645. package/docs/features.md +22 -12
  646. package/docs/keybindings.md +1 -1
  647. package/docs/models.md +5 -5
  648. package/docs/packages.md +1 -1
  649. package/docs/providers.md +2 -2
  650. package/docs/rpc.md +7 -7
  651. package/docs/security.md +10 -5
  652. package/docs/sessions.md +2 -2
  653. package/docs/skills.md +1 -1
  654. package/docs/terminal-setup.md +7 -7
  655. package/docs/themes.md +1 -1
  656. package/docs/usage.md +1 -1
  657. package/examples/extensions/auto-commit-on-exit.ts +1 -1
  658. package/examples/extensions/bash-spawn-hook.ts +1 -1
  659. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  660. package/examples/extensions/claude-rules.ts +1 -1
  661. package/examples/extensions/commands.ts +1 -1
  662. package/examples/extensions/custom-compaction.ts +1 -1
  663. package/examples/extensions/custom-provider-anthropic/index.ts +3 -3
  664. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  665. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  666. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  667. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  668. package/examples/extensions/doom-overlay/index.ts +1 -1
  669. package/examples/extensions/git-merge-and-resolve.ts +2 -2
  670. package/examples/extensions/gondolin/index.ts +1 -1
  671. package/examples/extensions/gondolin/package-lock.json +2 -2
  672. package/examples/extensions/gondolin/package.json +1 -1
  673. package/examples/extensions/hidden-thinking-label.ts +1 -1
  674. package/examples/extensions/inline-bash.ts +2 -2
  675. package/examples/extensions/input-transform-streaming.ts +2 -2
  676. package/examples/extensions/input-transform.ts +2 -2
  677. package/examples/extensions/interactive-shell.ts +1 -1
  678. package/examples/extensions/kimi-deferred-tools.ts +1 -1
  679. package/examples/extensions/mac-system-theme.ts +1 -1
  680. package/examples/extensions/minimal-mode.ts +1 -1
  681. package/examples/extensions/modal-editor.ts +1 -1
  682. package/examples/extensions/model-status.ts +1 -1
  683. package/examples/extensions/notify.ts +3 -3
  684. package/examples/extensions/overlay-qa-tests.ts +1 -1
  685. package/examples/extensions/overlay-test.ts +1 -1
  686. package/examples/extensions/pirate.ts +1 -1
  687. package/examples/extensions/preset.ts +3 -3
  688. package/examples/extensions/project-trust.ts +4 -4
  689. package/examples/extensions/prompt-customizer.ts +1 -1
  690. package/examples/extensions/rainbow-editor.ts +1 -1
  691. package/examples/extensions/rpc-demo.ts +1 -1
  692. package/examples/extensions/sandbox/index.ts +7 -7
  693. package/examples/extensions/sandbox/package-lock.json +2 -2
  694. package/examples/extensions/sandbox/package.json +1 -1
  695. package/examples/extensions/shutdown-command.ts +5 -5
  696. package/examples/extensions/ssh.ts +2 -2
  697. package/examples/extensions/subagent/README.md +3 -3
  698. package/examples/extensions/subagent/index.ts +2 -2
  699. package/examples/extensions/titlebar-spinner.ts +1 -1
  700. package/examples/extensions/tool-override.ts +1 -1
  701. package/examples/extensions/tools.ts +1 -1
  702. package/examples/extensions/with-deps/package-lock.json +2 -2
  703. package/examples/extensions/with-deps/package.json +1 -1
  704. package/examples/extensions/working-indicator.ts +1 -1
  705. package/examples/extensions/working-message-test.ts +1 -1
  706. package/examples/sdk/01-minimal.ts +1 -1
  707. package/examples/sdk/03-custom-prompt.ts +1 -1
  708. package/examples/sdk/04-skills.ts +1 -1
  709. package/examples/sdk/06-extensions.ts +2 -2
  710. package/examples/sdk/08-prompt-templates.ts +1 -1
  711. package/install-lock/package-lock.json +3841 -0
  712. package/install-lock/package.json +18 -0
  713. package/native/computer-use/LICENSE.md +21 -0
  714. package/npm-shrinkwrap.json +3858 -0
  715. package/package.json +15 -9
  716. package/dist/modes/interactive/components/exit-card.d.ts +0 -22
  717. package/dist/modes/interactive/components/exit-card.d.ts.map +0 -1
  718. package/dist/modes/interactive/components/exit-card.js +0 -69
  719. package/dist/modes/interactive/components/exit-card.js.map +0 -1
  720. package/dist/node-runtime/agent-session-services-YXXFCP5J.js +0 -49
  721. package/dist/node-runtime/chunk-4HXHDDCF.js +0 -16
  722. package/dist/node-runtime/chunk-4TLO4PO2.js +0 -3427
  723. package/dist/node-runtime/chunk-AUXVGBO4.js +0 -19
  724. package/dist/node-runtime/chunk-OVX6X377.js +0 -50
  725. package/dist/node-runtime/chunk-QTU6AKNJ.js +0 -773
  726. package/dist/node-runtime/chunk-TORR5XBV.js +0 -356
  727. package/dist/node-runtime/commands-QC6VUZJQ.js +0 -36
  728. package/dist/node-runtime/interactive-mode-Z5M7WYYZ.js +0 -72
  729. package/dist/node-runtime/mcp-auth-flow-QIXHW6QN.js +0 -32
@@ -2,13 +2,13 @@ import { createRequire as __lunrRequire } from "node:module"; const require = __
2
2
  import {
3
3
  checkForUpdate,
4
4
  markUpdateNotified
5
- } from "./chunk-KWA4OC2J.js";
5
+ } from "./chunk-H6YBCWKG.js";
6
6
  import {
7
7
  getSubagentSpinnerDefinition
8
8
  } from "./chunk-US544NN6.js";
9
9
  import {
10
10
  computeContextBreakdown
11
- } from "./chunk-CDVHZOOK.js";
11
+ } from "./chunk-JQYNHAKX.js";
12
12
  import {
13
13
  copyToClipboard,
14
14
  readClipboardText
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  BootScreenComponent,
22
22
  registerPermissionModeBridge
23
- } from "./chunk-RWTKOC3B.js";
23
+ } from "./chunk-QBTJG3UM.js";
24
24
  import {
25
25
  nextModeForGoal,
26
26
  registerPermissionModeControlBridge
@@ -34,9 +34,12 @@ import {
34
34
  beginTurn,
35
35
  captureTreeChanges,
36
36
  clearRollback,
37
+ commitRollbackTurn,
37
38
  disableRollbackForSession,
38
39
  enableRollbackForSession,
39
40
  formatMissingSessionCwdPrompt,
41
+ getRollbackRecoveryBlockReason,
42
+ getRollbackTargetUserId,
40
43
  initRollback,
41
44
  isRollbackEnabled,
42
45
  isRollbackSessionForceEnabled,
@@ -45,24 +48,19 @@ import {
45
48
  peekRollbackTurnsConsumed,
46
49
  rollbackLastTurn,
47
50
  setRollbackWarningHandler
48
- } from "./chunk-VQFSUJJG.js";
51
+ } from "./chunk-ZDJUR45D.js";
49
52
  import {
50
53
  notifyTodosEnabledChanged
51
54
  } from "./chunk-CCCN2UCX.js";
52
55
  import {
53
56
  parseGitUrl
54
- } from "./chunk-LQP3RB67.js";
57
+ } from "./chunk-UYRKUKFE.js";
55
58
  import {
56
59
  createAllToolDefinitions,
57
60
  ensureTool,
58
61
  getToolPath,
59
62
  truncateToVisualLines
60
- } from "./chunk-YDO2F2IA.js";
61
- import {
62
- DEFAULT_MAX_BYTES,
63
- DEFAULT_MAX_LINES,
64
- truncateTail
65
- } from "./chunk-53YJI7JU.js";
63
+ } from "./chunk-ZEVFBFNF.js";
66
64
  import {
67
65
  formatGroupedCall,
68
66
  getTextOutput,
@@ -70,17 +68,22 @@ import {
70
68
  toolGroupRole,
71
69
  toolGroupTree,
72
70
  toolStatusDot
73
- } from "./chunk-5ZQXRPMC.js";
71
+ } from "./chunk-6ZZHGUSA.js";
72
+ import {
73
+ DEFAULT_MAX_BYTES,
74
+ DEFAULT_MAX_LINES,
75
+ truncateTail
76
+ } from "./chunk-53YJI7JU.js";
74
77
  import {
75
78
  convertToPng,
76
79
  processImage
77
- } from "./chunk-AD6VXAO7.js";
80
+ } from "./chunk-IAZSK7KK.js";
78
81
  import {
79
82
  formatCatalogRefreshSummary,
80
83
  hasGrokCliXaiAuth,
81
84
  refreshModelCandidatesForInit,
82
85
  stripJsonComments
83
- } from "./chunk-KJ6DWS3K.js";
86
+ } from "./chunk-XEOCUEUJ.js";
84
87
  import {
85
88
  HTTP_IDLE_TIMEOUT_CHOICES,
86
89
  SKILL_TAG_CHARACTERS,
@@ -88,38 +91,30 @@ import {
88
91
  SUBAGENT_SPINNER_NAMES,
89
92
  configureHttpDispatcher,
90
93
  formatHttpIdleTimeoutMs
91
- } from "./chunk-6XL67VVY.js";
94
+ } from "./chunk-HUD2RFJW.js";
92
95
  import {
93
96
  ProjectTrustStore,
94
97
  getProjectTrustOptions,
95
98
  hasTrustRequiringProjectResources
96
- } from "./chunk-HTFRRDSF.js";
99
+ } from "./chunk-F2SMQ6ES.js";
97
100
  import {
98
- computeFileLists,
99
- createFileOps,
100
101
  defaultModelPerProvider,
101
- extractFileOpsFromMessage,
102
102
  findExactModelReferenceMatch,
103
103
  resolveModelScope
104
- } from "./chunk-GYIXXQAO.js";
104
+ } from "./chunk-FIRA54AC.js";
105
105
  import {
106
106
  SubagentEscapeSequence,
107
107
  getSubagentCancellation
108
108
  } from "./chunk-BBUVIEZB.js";
109
109
  import {
110
- AUTO_MODE_ADDENDUM,
111
- READ_ONLY_MODE_ADDENDUM,
112
- getPermissionMode,
113
110
  nextPermissionMode,
114
111
  registerApprovalHandler,
115
- resetPermissions,
116
- restorePermissionModeAfterPlan,
117
- setPermissionMode
118
- } from "./chunk-ZXSGTGJ6.js";
112
+ restorePermissionModeAfterPlan
113
+ } from "./chunk-APVM5NEU.js";
119
114
  import {
120
115
  getGlobalInstructionsPath,
121
116
  getModelInstructionsPath
122
- } from "./chunk-M3LZLQW2.js";
117
+ } from "./chunk-BDRGN3L2.js";
123
118
  import {
124
119
  clearRegistry,
125
120
  isWindows,
@@ -129,21 +124,21 @@ import {
129
124
  pause,
130
125
  restart,
131
126
  resume
132
- } from "./chunk-KKUTQQV7.js";
127
+ } from "./chunk-RYRGL7P4.js";
133
128
  import {
134
129
  killTrackedDetachedChildren
135
- } from "./chunk-CSFI6YXL.js";
130
+ } from "./chunk-ES6PBSIE.js";
136
131
  import {
137
132
  cancelSessionHandoff,
138
133
  markSessionHandoff,
139
134
  recordTuiActivity,
140
135
  registerTransferHandler,
141
136
  requestSessionTransfer
142
- } from "./chunk-I54LGHWM.js";
137
+ } from "./chunk-I2H5QMWW.js";
143
138
  import {
144
139
  SessionManager,
145
140
  sessionEntryToContextMessages
146
- } from "./chunk-2KIPT4HJ.js";
141
+ } from "./chunk-EPR2F3GU.js";
147
142
  import {
148
143
  createCompactionSummaryMessage
149
144
  } from "./chunk-FVDOXRUD.js";
@@ -161,16 +156,16 @@ import {
161
156
  import {
162
157
  getAllPlanUsageResults,
163
158
  getUsageServiceBridge
164
- } from "./chunk-2MI5OPMN.js";
159
+ } from "./chunk-HNNHHJAB.js";
165
160
  import {
166
161
  SessionSelectorComponent
167
- } from "./chunk-PCEW76PM.js";
162
+ } from "./chunk-2OIPYKLZ.js";
168
163
  import {
169
164
  CustomEditor
170
165
  } from "./chunk-H2EOZYMP.js";
171
166
  import {
172
167
  KeybindingsManager
173
- } from "./chunk-5EFIU3OM.js";
168
+ } from "./chunk-FTKEZL27.js";
174
169
  import {
175
170
  time
176
171
  } from "./chunk-PVCDKGR6.js";
@@ -179,23 +174,23 @@ import {
179
174
  } from "./chunk-CCZJ3PYY.js";
180
175
  import {
181
176
  ExtensionSelectorComponent
182
- } from "./chunk-QH6YL7VK.js";
177
+ } from "./chunk-252ZVPPF.js";
183
178
  import {
184
179
  ExtensionInputComponent
185
- } from "./chunk-HMBGROQK.js";
180
+ } from "./chunk-GLDXBBL6.js";
186
181
  import {
187
182
  CountdownTimer
188
183
  } from "./chunk-I6R76AG7.js";
189
184
  import {
190
185
  DynamicBorder
191
- } from "./chunk-6VYZ5UFP.js";
186
+ } from "./chunk-FLGEEH27.js";
192
187
  import {
193
188
  formatKeyText,
194
189
  keyDisplayText,
195
190
  keyHint,
196
191
  keyText,
197
192
  rawKeyHint
198
- } from "./chunk-GS42T6MX.js";
193
+ } from "./chunk-QW3AAHWN.js";
199
194
  import {
200
195
  FS_WATCH_RETRY_DELAY_MS,
201
196
  Theme,
@@ -221,7 +216,7 @@ import {
221
216
  stopThemeWatcher,
222
217
  theme,
223
218
  watchWithErrorHandler
224
- } from "./chunk-RDDAZOMU.js";
219
+ } from "./chunk-JL4HYQXK.js";
225
220
  import {
226
221
  APP_NAME,
227
222
  APP_TITLE,
@@ -235,7 +230,7 @@ import {
235
230
  getDocsPath,
236
231
  getShareViewerUrl,
237
232
  normalizePath
238
- } from "./chunk-FQMM2EZ2.js";
233
+ } from "./chunk-64XTQNLA.js";
239
234
 
240
235
  // packages/coding-agent/dist/modes/interactive/interactive-mode.js
241
236
  import * as crypto from "node:crypto";
@@ -244,7 +239,6 @@ import * as os2 from "node:os";
244
239
  import * as path2 from "node:path";
245
240
  import { getSupportedThinkingLevels } from "@ashx-j/lunr-ai/compat";
246
241
  import { CombinedAutocompleteProvider, Container as Container19, collectImageMarkerIds, formatImageMarker, fuzzyFilter as fuzzyFilter5, isFocusable, Markdown as Markdown10, matchesKey as matchesKey2, ProcessTerminal, Spacer as Spacer19, setKeybindings, Text as Text21, TruncatedText as TruncatedText2, TUI, visibleWidth as visibleWidth6 } from "@ashx-j/lunr-tui";
247
- import chalk from "chalk";
248
242
  import { spawn as spawn3, spawnSync } from "child_process";
249
243
 
250
244
  // packages/coding-agent/dist/core/cache-stats.js
@@ -421,6 +415,9 @@ function shouldPollGitHead(repoDir) {
421
415
  var FooterDataProvider = class _FooterDataProvider {
422
416
  cwd;
423
417
  static WATCH_DEBOUNCE_MS = 500;
418
+ static DIFFSTAT_REFRESH_MS = 2e3;
419
+ diffstatTimer = null;
420
+ diffstatStale = !0;
424
421
  extensionStatuses = /* @__PURE__ */ new Map();
425
422
  cachedBranch = void 0;
426
423
  cachedDiffstat = void 0;
@@ -447,7 +444,9 @@ var FooterDataProvider = class _FooterDataProvider {
447
444
  }
448
445
  /** Staged + unstaged added/removed vs HEAD. Null until the asynchronous lookup completes. */
449
446
  getGitDiffstat() {
450
- return this.cachedDiffstat === void 0 && !this.refreshInFlight && this.refreshGitData(), this.cachedDiffstat ?? null;
447
+ return this.diffstatStale && !this.refreshInFlight && this.refreshGitData(), !this.disposed && !this.diffstatTimer && (this.diffstatTimer = setTimeout(() => {
448
+ this.diffstatTimer = null, this.diffstatStale = !0, this.notifyBranchChange();
449
+ }, _FooterDataProvider.DIFFSTAT_REFRESH_MS), this.diffstatTimer.unref()), this.cachedDiffstat ?? null;
451
450
  }
452
451
  /** Extension status texts set via ctx.ui.setStatus() */
453
452
  getExtensionStatuses() {
@@ -474,11 +473,14 @@ var FooterDataProvider = class _FooterDataProvider {
474
473
  this.availableProviderCount = count;
475
474
  }
476
475
  setCwd(cwd) {
477
- this.cwd !== cwd && (this.cwd = cwd, this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.cachedBranch = void 0, this.cachedDiffstat = void 0, this.gitPaths = void 0, this.refreshInFlight && (this.refreshPending = !0), this.notifyBranchChange());
476
+ this.cwd !== cwd && (this.cwd = cwd, this.clearDiffstatTimer(), this.diffstatStale = !0, this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.cachedBranch = void 0, this.cachedDiffstat = void 0, this.gitPaths = void 0, this.refreshInFlight && (this.refreshPending = !0), this.notifyBranchChange());
478
477
  }
479
478
  /** Internal: cleanup */
480
479
  dispose() {
481
- this.disposed = !0, this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.branchChangeCallbacks.clear();
480
+ this.disposed = !0, this.clearDiffstatTimer(), this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.branchChangeCallbacks.clear();
481
+ }
482
+ clearDiffstatTimer() {
483
+ this.diffstatTimer && clearTimeout(this.diffstatTimer), this.diffstatTimer = null;
482
484
  }
483
485
  notifyBranchChange() {
484
486
  for (let cb of this.branchChangeCallbacks)
@@ -516,7 +518,7 @@ var FooterDataProvider = class _FooterDataProvider {
516
518
  if (this.disposed || this.cwd !== cwd)
517
519
  return;
518
520
  let prevBranch = this.cachedBranch, prevDiff = this.cachedDiffstat, branchChanged = prevBranch !== nextBranch, diffChanged = prevDiff?.added !== nextDiff?.added || prevDiff?.removed !== nextDiff?.removed;
519
- this.cachedBranch = nextBranch, this.cachedDiffstat = nextDiff, (branchChanged || diffChanged) && this.notifyBranchChange();
521
+ this.cachedBranch = nextBranch, this.cachedDiffstat = nextDiff, this.diffstatStale = !1, (branchChanged || diffChanged) && this.notifyBranchChange();
520
522
  } finally {
521
523
  this.refreshInFlight = !1, this.refreshPending && !this.disposed && (this.refreshPending = !1, this.scheduleRefresh());
522
524
  }
@@ -1115,6 +1117,52 @@ var ArminComponent = class {
1115
1117
  // packages/coding-agent/dist/modes/interactive/components/assistant-message.js
1116
1118
  import { Container, Markdown as Markdown2, Spacer, Text } from "@ashx-j/lunr-tui";
1117
1119
 
1120
+ // packages/coding-agent/dist/utils/sanitize-terminal-text.js
1121
+ function sanitizeTerminalText(source) {
1122
+ if (!/[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(source))
1123
+ return source;
1124
+ let parts = [], index = 0, plainStart = 0;
1125
+ for (; index < source.length; ) {
1126
+ let code = source.charCodeAt(index);
1127
+ if (code === 9 || code === 10 || code >= 32 && (code < 127 || code > 159)) {
1128
+ index++;
1129
+ continue;
1130
+ }
1131
+ if (parts.push(source.slice(plainStart, index)), index++, code === 13)
1132
+ source.charCodeAt(index) === 10 && index++, parts.push(`
1133
+ `);
1134
+ else {
1135
+ let sequence = code;
1136
+ if (code === 27 && index < source.length) {
1137
+ let next = source.charCodeAt(index);
1138
+ if (next >= 64 && next <= 95)
1139
+ sequence = next + 64, index++;
1140
+ else {
1141
+ for (; source.charCodeAt(index) >= 32 && source.charCodeAt(index) <= 47; )
1142
+ index++;
1143
+ source.charCodeAt(index) >= 48 && source.charCodeAt(index) <= 126 && index++;
1144
+ }
1145
+ }
1146
+ if (sequence === 155) {
1147
+ for (; source.charCodeAt(index) >= 32 && source.charCodeAt(index) <= 63; )
1148
+ index++;
1149
+ source.charCodeAt(index) >= 64 && source.charCodeAt(index) <= 126 && index++;
1150
+ } else if ([144, 152, 157, 158, 159].includes(sequence))
1151
+ for (; index < source.length; ) {
1152
+ let next = source.charCodeAt(index++);
1153
+ if (next === 156 || sequence === 157 && next === 7)
1154
+ break;
1155
+ if (next === 27 && source.charCodeAt(index) === 92) {
1156
+ index++;
1157
+ break;
1158
+ }
1159
+ }
1160
+ }
1161
+ plainStart = index;
1162
+ }
1163
+ return parts.push(source.slice(plainStart)), parts.join("");
1164
+ }
1165
+
1118
1166
  // packages/coding-agent/dist/modes/interactive/components/copyable-text.js
1119
1167
  import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "@ashx-j/lunr-tui";
1120
1168
  function sourceLines(source) {
@@ -1208,13 +1256,13 @@ var CopyableTextBlockComponent = class {
1208
1256
  let horizontalPad = Math.min(this.outputPad, Math.max(0, width - 1)), pad = " ".repeat(horizontalPad), contentWidth = Math.max(1, width - horizontalPad * 2), paint = (content) => {
1209
1257
  let line = truncateToWidth(`${pad}${content}`, width, "");
1210
1258
  return theme.bg("userMessageBg", `${line}${" ".repeat(Math.max(0, width - visibleWidth(line)))}`);
1211
- }, lines = [paint("")], payloadLines = this.payload.replace(/\t/g, " ").split(`
1259
+ }, lines = [paint("")], payloadLines = sanitizeTerminalText(this.payload).replace(/\t/g, " ").split(`
1212
1260
  `);
1213
1261
  for (let payloadLine of payloadLines)
1214
1262
  for (let wrappedLine of wrapTextWithAnsi(payloadLine, contentWidth))
1215
1263
  lines.push(paint(theme.fg("userMessageText", wrappedLine)));
1216
1264
  if (typeof this.status == "object")
1217
- for (let wrappedLine of wrapTextWithAnsi(`Copy failed: ${this.status.error}`, contentWidth))
1265
+ for (let wrappedLine of wrapTextWithAnsi(`Copy failed: ${sanitizeTerminalText(this.status.error)}`, contentWidth))
1218
1266
  lines.push(paint(theme.fg("error", wrappedLine)));
1219
1267
  return lines.push(paint("")), this.renderedRows = lines.length, lines;
1220
1268
  }
@@ -1405,7 +1453,7 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
1405
1453
  if (content.type === "text" && content.text.trim())
1406
1454
  for (let segment of parseCopyableTextSegments(content.text)) {
1407
1455
  if (segment.type === "markdown") {
1408
- let trimmed = segment.text.trim();
1456
+ let trimmed = sanitizeTerminalText(segment.text).trim();
1409
1457
  if (!trimmed)
1410
1458
  continue;
1411
1459
  let text = isFirstTextBlock ? `\u25CF ${trimmed}` : trimmed;
@@ -1430,7 +1478,7 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
1430
1478
  if (i--, displayBlocks.length === 0 || this.hideThinkingBlock)
1431
1479
  continue;
1432
1480
  let sourceBlocks = sourceThinkingRuns[thinkingRunIndex] ?? [], fullyRevealed = displayBlocks.length === sourceBlocks.length && displayBlocks.every((block, index) => block === sourceBlocks[index]);
1433
- this.renderThinkingRun(thinkingRunIndex, displayBlocks, message, i, fullyRevealed);
1481
+ this.renderThinkingRun(thinkingRunIndex, displayBlocks.map(sanitizeTerminalText), message, i, fullyRevealed);
1434
1482
  }
1435
1483
  }
1436
1484
  let hasToolCalls = message.content.some((c) => c.type === "toolCall");
@@ -1439,10 +1487,10 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
1439
1487
  else if (!hasToolCalls) {
1440
1488
  if (message.stopReason === "aborted") {
1441
1489
  let abortMessage = message.errorMessage && message.errorMessage !== "Request was aborted" ? message.errorMessage : "Operation aborted";
1442
- this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", abortMessage), this.outputPad, 0));
1490
+ this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", sanitizeTerminalText(abortMessage)), this.outputPad, 0));
1443
1491
  } else if (message.stopReason === "error") {
1444
1492
  let errorMsg = message.errorMessage || "Unknown error";
1445
- this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", `Error: ${errorMsg}`), this.outputPad, 0));
1493
+ this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", `Error: ${sanitizeTerminalText(errorMsg)}`), this.outputPad, 0));
1446
1494
  }
1447
1495
  }
1448
1496
  this.onThinkingAnimationChange?.(this.thinkingAnimationActive);
@@ -2059,36 +2107,6 @@ var DaxnutsComponent = class {
2059
2107
  }
2060
2108
  };
2061
2109
 
2062
- // packages/coding-agent/dist/modes/interactive/components/boot-ascii.js
2063
- var MOON_ASCII_SMALL = ["\u263E"];
2064
-
2065
- // packages/coding-agent/dist/modes/interactive/components/exit-card.js
2066
- function formatTokens2(count) {
2067
- return count < 1e3 ? count.toString() : count < 1e4 ? `${(count / 1e3).toFixed(1)}k` : count < 1e6 ? `${Math.round(count / 1e3)}k` : count < 1e7 ? `${(count / 1e6).toFixed(1)}M` : `${Math.round(count / 1e6)}M`;
2068
- }
2069
- function computeExitCardStats(entries) {
2070
- let turns = 0, tokens = 0, fileOps = createFileOps();
2071
- for (let entry of entries) {
2072
- if (entry.type !== "message")
2073
- continue;
2074
- let message = entry.message;
2075
- if (message.role === "user")
2076
- turns++;
2077
- else if (message.role === "assistant") {
2078
- let usage = message.usage;
2079
- usage && (tokens += (usage.input ?? 0) + (usage.cacheRead ?? 0) + (usage.cacheWrite ?? 0) + (usage.output ?? 0)), extractFileOpsFromMessage(message, fileOps);
2080
- }
2081
- }
2082
- let { modifiedFiles } = computeFileLists(fileOps);
2083
- return { turns, tokens, filesChanged: modifiedFiles.length };
2084
- }
2085
- function buildExitCard(stats) {
2086
- if (stats.turns === 0)
2087
- return [];
2088
- let line1 = `${MOON_ASCII_SMALL[0] ?? "\u263E"} ${stats.turns} turn${stats.turns === 1 ? "" : "s"} \xB7 ${formatTokens2(stats.tokens)} tok`, line2 = `${stats.filesChanged} file${stats.filesChanged === 1 ? "" : "s"} changed`, moonPad = " ", innerLeft = ` ${line1}`, innerRight = ` ${moonPad}${line2}`, innerWidth = Math.max(innerLeft.length, innerRight.length), pad = (s) => `${s}${" ".repeat(Math.max(0, innerWidth - s.length))}`, top = `\u256D${"\u2500".repeat(innerWidth + 2)}\u256E`, bottom = `\u2570${"\u2500".repeat(innerWidth + 2)}\u256F`, body1 = `\u2502 ${pad(innerLeft)} \u2502`, body2 = `\u2502 ${pad(innerRight)} \u2502`;
2089
- return [top, body1, body2, bottom];
2090
- }
2091
-
2092
2110
  // packages/coding-agent/dist/modes/interactive/components/extension-editor.js
2093
2111
  import { spawn } from "node:child_process";
2094
2112
  import * as fs from "node:fs";
@@ -2140,7 +2158,7 @@ var ExtensionEditorComponent = class extends Container6 {
2140
2158
  fs.writeFileSync(tmpFile, currentText, "utf-8"), this.tui.stop();
2141
2159
  let [editor, ...editorArgs] = editorCmd.split(" ");
2142
2160
  if (process.stdout.write(`Launching external editor: ${editorCmd}
2143
- Pi will resume when the editor exits.
2161
+ lunR will resume when the editor exits.
2144
2162
  `), await new Promise((resolve4) => {
2145
2163
  let child = spawn(editor, [...editorArgs, tmpFile], {
2146
2164
  stdio: "inherit",
@@ -3653,6 +3671,20 @@ var ThemeSubmenu = class extends Container13 {
3653
3671
  currentValue: config.smoothStreaming ? "true" : "false",
3654
3672
  values: ["true", "false"]
3655
3673
  },
3674
+ {
3675
+ id: "computer-use",
3676
+ label: "Computer use",
3677
+ description: "Control this computer with native desktop tools",
3678
+ currentValue: config.computerUse !== !1 ? "on" : "off",
3679
+ values: ["on", "off"]
3680
+ },
3681
+ {
3682
+ id: "computer-foreground",
3683
+ label: "Allow foreground control",
3684
+ description: "Allow desktop tools to change focus when background control fails",
3685
+ currentValue: config.computerForeground !== !1 ? "on" : "off",
3686
+ values: ["on", "off"]
3687
+ },
3656
3688
  {
3657
3689
  id: "browser-enabled",
3658
3690
  label: "Browser",
@@ -3993,6 +4025,12 @@ var ThemeSubmenu = class extends Container13 {
3993
4025
  case "memory-char-cap":
3994
4026
  callbacks.onMemoryCharCapChange(parseInt(newValue, 10));
3995
4027
  break;
4028
+ case "computer-use":
4029
+ callbacks.onComputerUseChange?.(newValue === "on");
4030
+ break;
4031
+ case "computer-foreground":
4032
+ callbacks.onComputerForegroundChange?.(newValue === "on");
4033
+ break;
3996
4034
  case "browser-enabled":
3997
4035
  callbacks.onBrowserEnabledChange(newValue === "on");
3998
4036
  break;
@@ -5581,18 +5619,6 @@ function isAnthropicSubscriptionAuthKey(apiKey) {
5581
5619
  function isUnknownModel(model) {
5582
5620
  return !!model && model.provider === "unknown" && model.id === "unknown" && model.api === "unknown";
5583
5621
  }
5584
- function quoteIfNeeded(value) {
5585
- return value.length > 0 && !/[^a-zA-Z0-9_\-./~:@]/.test(value) ? value : `'${value.replace(/'/g, "'\\''")}'`;
5586
- }
5587
- function formatResumeCommand(sessionManager) {
5588
- if (!process.stdout.isTTY || !sessionManager.isPersisted())
5589
- return;
5590
- let sessionFile = sessionManager.getSessionFile();
5591
- if (!sessionFile || !fs2.existsSync(sessionFile))
5592
- return;
5593
- let args = [APP_NAME];
5594
- return sessionManager.usesDefaultSessionDir() || args.push("--session-dir", quoteIfNeeded(sessionManager.getSessionDir())), args.push("--session", sessionManager.getSessionId()), args.join(" ");
5595
- }
5596
5622
  function hasDefaultModelProvider(providerId) {
5597
5623
  return providerId in defaultModelPerProvider;
5598
5624
  }
@@ -5763,15 +5789,15 @@ var InteractiveMode = class _InteractiveMode {
5763
5789
  }
5764
5790
  constructor(runtimeHost, options = {}) {
5765
5791
  this.runtimeHost = runtimeHost, this.options = options, this.autoTrustOnReloadCwd = options.autoTrustOnReloadCwd, this.runtimeHost.setBeforeSessionInvalidate((reason) => {
5766
- this.resetExtensionUI(), this.previousPermissionMode = void 0, this.preGoalPermissionMode = void 0, resetPermissions(this.settingsManager.getDefaultPermissionMode()), clearRegistry(), reason !== "fork" && clearRollback(this.sessionManager.getSessionId());
5792
+ this.stopPlanUsagePolling(), this.resetExtensionUI(), this.previousPermissionMode = void 0, this.preGoalPermissionMode = void 0, clearRegistry(), reason !== "fork" && clearRollback(this.sessionManager.getSessionId());
5767
5793
  }), this.runtimeHost.setRebindSession(async () => {
5768
- await this.rebindCurrentSession({ renderBeforeBind: !0 }), initRollback(this.settingsManager, this.sessionManager.getSessionId());
5769
- let mode = this.sessionManager.getPermissionMode() ?? this.settingsManager.getDefaultPermissionMode();
5770
- resetPermissions(mode), this.syncPermissionModeEffects(mode);
5771
- }), this.version = VERSION, this.ui = options.startupView?.ui ?? new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor()), this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink()), registerPermissionModeBridge(() => getPermissionMode()), registerPermissionModeControlBridge({
5794
+ await this.rebindCurrentSession({ renderBeforeBind: !0 }), this.startPlanUsagePolling(), initRollback(this.settingsManager, this.sessionManager.getSessionId());
5795
+ let mode = this.session.permissionMode;
5796
+ this.syncPermissionModeEffects(mode);
5797
+ }), this.version = VERSION, this.ui = options.startupView?.ui ?? new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor()), this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink()), registerPermissionModeBridge(() => this.session.permissionMode), registerPermissionModeControlBridge({
5772
5798
  enterGoalAuto: () => this.enterGoalAuto(),
5773
5799
  leaveGoalAuto: () => this.leaveGoalAuto()
5774
- }), resetPermissions(this.sessionManager.getPermissionMode() ?? this.settingsManager.getDefaultPermissionMode()), this.headerContainer = new Container19(), options.startupView && (this.headerContainer.addChild(new Spacer19(1)), this.headerContainer.addChild(options.startupView.header), this.customFooter = options.startupView.footer), this.loadedResourcesContainer = new Container19(), this.chatContainer = new Container19(), this.pendingMessagesContainer = new Container19(), this.statusContainer = options.startupView?.statusContainer ?? new Container19(), this.widgetContainerAbove = new Container19(), this.widgetContainerBelow = new Container19(), this.keybindings = options.startupView?.keybindings ?? KeybindingsManager.create(), setKeybindings(this.keybindings);
5800
+ }), this.headerContainer = new Container19(), options.startupView && (this.headerContainer.addChild(new Spacer19(1)), this.headerContainer.addChild(options.startupView.header), this.customFooter = options.startupView.footer), this.loadedResourcesContainer = new Container19(), this.chatContainer = new Container19(), this.pendingMessagesContainer = new Container19(), this.statusContainer = options.startupView?.statusContainer ?? new Container19(), this.widgetContainerAbove = new Container19(), this.widgetContainerBelow = new Container19(), this.keybindings = options.startupView?.keybindings ?? KeybindingsManager.create(), setKeybindings(this.keybindings);
5775
5801
  let editorPaddingX = this.settingsManager.getEditorPaddingX(), autocompleteMaxVisible = this.settingsManager.getAutocompleteMaxVisible();
5776
5802
  this.defaultEditor = options.startupView?.editor ?? new CustomEditor(this.ui, getEditorTheme(), this.keybindings, {
5777
5803
  paddingX: editorPaddingX,
@@ -5894,7 +5920,7 @@ var InteractiveMode = class _InteractiveMode {
5894
5920
  return resp;
5895
5921
  }
5896
5922
  return "reject";
5897
- }), initRollback(this.settingsManager, this.sessionManager.getSessionId()), setRollbackWarningHandler((msg) => this.showStatus(msg)), this.syncPermissionModeEffects(this.sessionManager.getPermissionMode() ?? this.settingsManager.getDefaultPermissionMode()), await this.themeController.applyFromSettings(), this.headerContainer.clear(), this.options.verbose || !this.settingsManager.getQuietStartup()) {
5923
+ }), initRollback(this.settingsManager, this.sessionManager.getSessionId()), setRollbackWarningHandler((msg) => this.showStatus(msg)), this.syncPermissionModeEffects(this.session.permissionMode), await this.themeController.applyFromSettings(), this.headerContainer.clear(), this.options.verbose || !this.settingsManager.getQuietStartup()) {
5898
5924
  let header = theme.bold(theme.fg("accent", APP_NAME)) + theme.fg("dim", ` v${this.version}`);
5899
5925
  this.builtInHeader = new BootScreenComponent(header, this.buildBootRows()), this.headerContainer.addChild(new Spacer19(1)), this.headerContainer.addChild(this.builtInHeader);
5900
5926
  } else
@@ -5937,17 +5963,22 @@ var InteractiveMode = class _InteractiveMode {
5937
5963
  this.deferredBuiltinAttachPromise && await this.deferredBuiltinAttachPromise;
5938
5964
  }
5939
5965
  planUsageTimer;
5966
+ planUsageBridge;
5940
5967
  startPlanUsagePolling() {
5941
- let bridge = getUsageServiceBridge();
5968
+ this.stopPlanUsagePolling();
5969
+ let bridge = getUsageServiceBridge(this.session.modelRuntime);
5942
5970
  if (!bridge)
5943
5971
  return;
5944
- bridge.setOnUpdate(() => this.ui.requestRender());
5972
+ this.planUsageBridge = bridge, bridge.setOnUpdate(() => this.ui.requestRender());
5945
5973
  let tick = () => {
5946
5974
  let provider = this.session.model?.provider;
5947
5975
  provider && bridge.prefetch(provider);
5948
5976
  };
5949
5977
  tick(), this.planUsageTimer = setInterval(tick, 6e4), this.planUsageTimer.unref?.();
5950
5978
  }
5979
+ stopPlanUsagePolling() {
5980
+ this.planUsageTimer && (clearInterval(this.planUsageTimer), this.planUsageTimer = void 0), this.planUsageBridge?.setOnUpdate(void 0), this.planUsageBridge = void 0;
5981
+ }
5951
5982
  /** Background npm version check. Never blocks first paint. Workspace installs skip. */
5952
5983
  async maybeNotifyCliUpdate() {
5953
5984
  try {
@@ -6029,7 +6060,7 @@ var InteractiveMode = class _InteractiveMode {
6029
6060
  if (extendedKeys !== "on" && extendedKeys !== "always")
6030
6061
  return "tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.";
6031
6062
  if (extendedKeysFormat === "xterm")
6032
- return "tmux extended-keys-format is xterm. Pi works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.";
6063
+ return "tmux extended-keys-format is xterm. lunR works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.";
6033
6064
  }
6034
6065
  }
6035
6066
  getMarkdownThemeWithSettings() {
@@ -7324,7 +7355,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
7324
7355
  break;
7325
7356
  }
7326
7357
  case "agent_end":
7327
- this.session.refreshModelFromRegistry(), this.settingsManager.getShowTerminalProgress() && this.ui.terminal.setProgress(!1), this.clearStatusIndicator("working"), this.stopSmoothStreaming(), this.streamingComponent && (this.chatContainer.removeChild(this.streamingComponent), this.streamingComponent = void 0, this.streamingMessage = void 0), this.pendingTools.clear(), this.browserActivityComponent = void 0, this.maybeAutoNameSession(), captureTreeChanges(this.sessionManager.getCwd(), this.sessionManager.getSessionId()), this.ui.requestRender();
7358
+ this.session.refreshModelFromRegistry(), this.ui.terminal.setProgress(!1), this.clearStatusIndicator("working"), this.stopSmoothStreaming(), this.streamingComponent && (this.chatContainer.removeChild(this.streamingComponent), this.streamingComponent = void 0, this.streamingMessage = void 0), this.pendingTools.clear(), this.browserActivityComponent = void 0, this.maybeAutoNameSession(), captureTreeChanges(this.sessionManager.getCwd(), this.sessionManager.getSessionId()), this.ui.requestRender();
7328
7359
  break;
7329
7360
  case "agent_settled":
7330
7361
  if (this.pendingCompactionRender) {
@@ -7340,7 +7371,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
7340
7371
  break;
7341
7372
  }
7342
7373
  case "compaction_end": {
7343
- this.settingsManager.getShowTerminalProgress() && this.ui.terminal.setProgress(!1), this.autoCompactionEscapeHandler && (this.defaultEditor.onEscape = this.autoCompactionEscapeHandler, this.autoCompactionEscapeHandler = void 0), this.clearStatusIndicator("compaction"), event.aborted ? event.reason === "manual" ? this.showError("Compaction cancelled") : this.showStatus("Auto-compaction cancelled") : event.result ? this.session.isIdle ? this.renderCompactionResult(event.result) : this.pendingCompactionRender = event.result : event.errorMessage && (event.reason === "manual" ? this.showError(event.errorMessage) : (this.chatContainer.addChild(new Spacer19(1)), this.chatContainer.addChild(new Text21(theme.fg("error", event.errorMessage), 1, 0)))), this.flushCompactionQueue({ willRetry: event.willRetry }), this.ui.requestRender();
7374
+ this.ui.terminal.setProgress(!1), this.autoCompactionEscapeHandler && (this.defaultEditor.onEscape = this.autoCompactionEscapeHandler, this.autoCompactionEscapeHandler = void 0), this.clearStatusIndicator("compaction"), event.aborted ? event.reason === "manual" ? this.showError("Compaction cancelled") : this.showStatus("Auto-compaction cancelled") : event.result ? this.session.isIdle ? this.renderCompactionResult(event.result) : this.pendingCompactionRender = event.result : event.errorMessage && (event.reason === "manual" ? this.showError(event.errorMessage) : (this.chatContainer.addChild(new Spacer19(1)), this.chatContainer.addChild(new Text21(theme.fg("error", event.errorMessage), 1, 0)))), this.flushCompactionQueue({ willRetry: event.willRetry }), this.ui.requestRender();
7344
7375
  break;
7345
7376
  }
7346
7377
  case "auto_retry_start": {
@@ -7576,7 +7607,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
7576
7607
  async shutdown(options) {
7577
7608
  if (this.isShuttingDown)
7578
7609
  return;
7579
- if (this.isShuttingDown = !0, this.unregisterSessionTransfer?.(), this.stopSmoothStreaming(), this.planUsageTimer && (clearInterval(this.planUsageTimer), this.planUsageTimer = void 0), getUsageServiceBridge()?.setOnUpdate(void 0), options?.fromSignal) {
7610
+ if (this.isShuttingDown = !0, this.session.stopAdmission(), this.unregisterSessionTransfer?.(), this.stopSmoothStreaming(), this.stopPlanUsagePolling(), options?.fromSignal) {
7580
7611
  await this.runtimeHost.dispose(), this.themeController.disableAutoSync(), await this.ui.terminal.drainInput(1e3);
7581
7612
  try {
7582
7613
  killAll();
@@ -7587,14 +7618,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
7587
7618
  this.themeController.disableAutoSync(), await this.ui.terminal.drainInput(1e3);
7588
7619
  let tracked = list().filter((p) => p.status !== "exited");
7589
7620
  tracked.length > 0 && await this.confirmDisclaimerWithLabels("Session processes still running", `${tracked.length} process(es) started during this session are still alive.
7590
- Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispose();
7591
- let entries = this.sessionManager?.getEntries?.(), exitStats = entries ? computeExitCardStats(entries) : { turns: 0, tokens: 0, filesChanged: 0 }, cardLines = buildExitCard(exitStats);
7592
- cardLines.length > 0 && process.stdout.write(`${chalk.dim(cardLines.join(`
7593
- `))}
7594
- `);
7595
- let resumeCommand = this.sessionManager && typeof this.sessionManager.isPersisted == "function" ? formatResumeCommand(this.sessionManager) : void 0;
7596
- resumeCommand && process.stdout.write(`${chalk.dim("To resume this session:")} ${resumeCommand}
7597
- `), process.exit(0);
7621
+ Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispose(), process.exit(0);
7598
7622
  }
7599
7623
  emergencyTerminalExit() {
7600
7624
  this.isShuttingDown = !0, this.unregisterSignalHandlers(), killTrackedDetachedChildren();
@@ -7720,7 +7744,7 @@ Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispo
7720
7744
  recordTuiActivity(this.sessionManager, this.runtimeHost.services.agentDir), this.session.cycleThinkingLevel() === void 0 ? this.showStatus("Current model does not support thinking") : (this.footer.invalidate(), this.updateEditorBorderColor());
7721
7745
  }
7722
7746
  cyclePermissionMode() {
7723
- this.applyPermissionMode(nextPermissionMode(getPermissionMode()), { silent: !0 });
7747
+ this.applyPermissionMode(nextPermissionMode(this.session.permissionMode), { silent: !0 });
7724
7748
  }
7725
7749
  async cycleModel(direction) {
7726
7750
  if (!(this.runtimeHost.isDetached || this.transferInProgress)) {
@@ -7796,7 +7820,7 @@ Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispo
7796
7820
  fs2.writeFileSync(tmpFile, currentText, "utf-8"), this.ui.stop();
7797
7821
  let [editor, ...editorArgs] = editorCmd.split(" ");
7798
7822
  if (process.stdout.write(`Launching external editor: ${editorCmd}
7799
- Pi will resume when the editor exits.
7823
+ lunR will resume when the editor exits.
7800
7824
  `), await new Promise((resolve4) => {
7801
7825
  let child = spawn3(editor, [...editorArgs, tmpFile], {
7802
7826
  stdio: "inherit",
@@ -7992,6 +8016,8 @@ Pi will resume when the editor exits.
7992
8016
  globalInstructionsPath: getGlobalInstructionsPath(getAgentDir()),
7993
8017
  modelInstructionsPath: getModelInstructionsPath(getAgentDir(), this.session.model?.id ?? "no-model-selected"),
7994
8018
  confirmLargeSubagentLaunches: this.settingsManager.getConfirmLargeSubagentLaunches(),
8019
+ computerUse: this.settingsManager.getComputerUse(),
8020
+ computerForeground: this.settingsManager.getComputerForeground(),
7995
8021
  subagentCommunicationEnabled: this.settingsManager.getSubagentCommunicationEnabled(),
7996
8022
  automaticSubagentDelegation: this.settingsManager.getAutomaticSubagentDelegation(),
7997
8023
  browserEnabled: this.settingsManager.getBrowserEnabled(),
@@ -8131,7 +8157,7 @@ Pi will resume when the editor exits.
8131
8157
  this.settingsManager.setClearOnShrink(enabled), this.ui.setClearOnShrink(enabled), !enabled && !this.activeStatusIndicator && this.statusContainer.clear();
8132
8158
  },
8133
8159
  onShowTerminalProgressChange: (enabled) => {
8134
- this.settingsManager.setShowTerminalProgress(enabled);
8160
+ this.settingsManager.setShowTerminalProgress(enabled), enabled || this.ui.terminal.setProgress(!1);
8135
8161
  },
8136
8162
  onModelTiersEnabledChange: (enabled) => {
8137
8163
  this.settingsManager.setModelTiersEnabled(enabled), getModelTiersBridge()?.refreshToolDescription();
@@ -8164,6 +8190,12 @@ Pi will resume when the editor exits.
8164
8190
  onMemoryCharCapChange: (cap) => {
8165
8191
  this.settingsManager.setMemoryCharCap(cap);
8166
8192
  },
8193
+ onComputerUseChange: (enabled) => {
8194
+ this.settingsManager.setComputerUse(enabled);
8195
+ },
8196
+ onComputerForegroundChange: (enabled) => {
8197
+ this.settingsManager.setComputerForeground(enabled);
8198
+ },
8167
8199
  onBrowserEnabledChange: (enabled) => {
8168
8200
  this.settingsManager.setBrowserEnabled(enabled), this.session.refreshToolRegistry();
8169
8201
  },
@@ -8217,7 +8249,7 @@ Pi will resume when the editor exits.
8217
8249
  return;
8218
8250
  }
8219
8251
  if (action === "status") {
8220
- this.showStatus((await import("./service-MDQIPQ26.js")).serviceStatusText());
8252
+ this.showStatus((await import("./service-IHLGFLBT.js")).serviceStatusText());
8221
8253
  return;
8222
8254
  }
8223
8255
  this.ui.stop();
@@ -8232,7 +8264,7 @@ Pi will resume when the editor exits.
8232
8264
  } finally {
8233
8265
  this.ui.start(), this.ui.requestRender(!0);
8234
8266
  }
8235
- this.showStatus((await import("./service-MDQIPQ26.js")).serviceStatusText());
8267
+ this.showStatus((await import("./service-IHLGFLBT.js")).serviceStatusText());
8236
8268
  })().catch((error) => this.showStatus(error instanceof Error ? error.message : String(error)));
8237
8269
  },
8238
8270
  onDefaultPermissionModeChange: (mode) => {
@@ -8308,7 +8340,14 @@ Pi will resume when the editor exits.
8308
8340
  let extraDefaults = result.incomplete.length, asked = [], ollama, runner = this.session.extensionRunner, cloudRefresh = globalThis[/* @__PURE__ */ Symbol.for("@lunr/ollama-cloud-refresh")];
8309
8341
  if (cloudRefresh && allowNetwork)
8310
8342
  try {
8311
- await cloudRefresh({ ui: runner.createCommandContext().ui });
8343
+ let resolution = await runtime.getAuth("ollama-cloud");
8344
+ await cloudRefresh({
8345
+ ui: runner.createCommandContext().ui,
8346
+ auth: resolution ? {
8347
+ apiKey: resolution.auth.apiKey,
8348
+ headers: Object.fromEntries(Object.entries(resolution.auth.headers ?? {}).filter((entry) => entry[1] !== null))
8349
+ } : void 0
8350
+ });
8312
8351
  } catch (error) {
8313
8352
  ollama = `ollama-cloud refresh failed: ${error instanceof Error ? error.message : String(error)}`;
8314
8353
  }
@@ -9616,9 +9655,9 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
9616
9655
  }
9617
9656
  // /plan is a shortcut into read-only mode for planning.
9618
9657
  async handlePlanCommand(args) {
9619
- let sub = args.toLowerCase(), inReadOnly = getPermissionMode() === "read-only";
9658
+ let sub = args.toLowerCase(), inReadOnly = this.session.permissionMode === "read-only";
9620
9659
  if (sub === "status") {
9621
- this.showStatus(inReadOnly ? "Read mode is active. /plan off to leave it." : `Permission mode: ${getPermissionMode()}.`);
9660
+ this.showStatus(inReadOnly ? "Read mode is active. /plan off to leave it." : `Permission mode: ${this.session.permissionMode}.`);
9622
9661
  return;
9623
9662
  }
9624
9663
  if (sub !== "" && sub !== "on" && sub !== "off") {
@@ -9635,7 +9674,7 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
9635
9674
  handleModeCommand(args) {
9636
9675
  let sub = args.toLowerCase();
9637
9676
  if (sub === "status") {
9638
- this.showStatus(`Permission mode: ${getPermissionMode() === "read-only" ? "read" : getPermissionMode()}`);
9677
+ this.showStatus(`Permission mode: ${this.session.permissionMode === "read-only" ? "read" : this.session.permissionMode}`);
9639
9678
  return;
9640
9679
  }
9641
9680
  if (sub === "yolo" || sub === "auto" || sub === "read-only" || sub === "read") {
@@ -9661,23 +9700,23 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
9661
9700
  }
9662
9701
  /** Apply addendum + auto-rollback for a mode without a status toast. */
9663
9702
  syncPermissionModeEffects(mode) {
9664
- this.runtimeHost.isDetached || this.transferInProgress || (this.sessionManager.setPermissionMode(mode), mode === "read-only" ? this.session.setSystemPromptAppend(READ_ONLY_MODE_ADDENDUM) : mode === "auto" ? (this.session.setSystemPromptAppend(AUTO_MODE_ADDENDUM), enableRollbackForSession(this.sessionManager.getSessionId())) : this.session.setSystemPromptAppend(void 0));
9703
+ this.runtimeHost.isDetached || this.transferInProgress || (this.session.setPermissionMode(mode), mode === "auto" && enableRollbackForSession(this.sessionManager.getSessionId()));
9665
9704
  }
9666
9705
  // lunr: `/goal` forces session auto without writing settings.
9667
9706
  enterGoalAuto() {
9668
- let next = nextModeForGoal(getPermissionMode(), "enter", this.preGoalPermissionMode);
9669
- this.preGoalPermissionMode = next.saved, next.mode !== getPermissionMode() && this.applyPermissionMode(next.mode, { silent: !0 });
9707
+ let next = nextModeForGoal(this.session.permissionMode, "enter", this.preGoalPermissionMode);
9708
+ this.preGoalPermissionMode = next.saved, next.mode !== this.session.permissionMode && this.applyPermissionMode(next.mode, { silent: !0 });
9670
9709
  }
9671
9710
  leaveGoalAuto() {
9672
- let next = nextModeForGoal(getPermissionMode(), "leave", this.preGoalPermissionMode);
9673
- this.preGoalPermissionMode = next.saved, next.mode !== getPermissionMode() && this.applyPermissionMode(next.mode, { silent: !0 });
9711
+ let next = nextModeForGoal(this.session.permissionMode, "leave", this.preGoalPermissionMode);
9712
+ this.preGoalPermissionMode = next.saved, next.mode !== this.session.permissionMode && this.applyPermissionMode(next.mode, { silent: !0 });
9674
9713
  }
9675
9714
  applyPermissionMode(mode, opts) {
9676
9715
  if (this.runtimeHost.isDetached || this.transferInProgress)
9677
9716
  return;
9678
- this.sessionManager.setPermissionMode(mode), recordTuiActivity(this.sessionManager, this.runtimeHost.services.agentDir);
9679
- let prev = getPermissionMode();
9680
- mode === "read-only" && prev !== "read-only" && (this.previousPermissionMode = prev), setPermissionMode(mode), this.ui.requestRender(), mode === "read-only" ? this.session.setSystemPromptAppend(READ_ONLY_MODE_ADDENDUM) : mode === "auto" ? this.session.setSystemPromptAppend(AUTO_MODE_ADDENDUM) : this.session.setSystemPromptAppend(void 0), mode === "auto" && prev !== "auto" ? enableRollbackForSession(this.sessionManager.getSessionId()) : mode !== "auto" && prev === "auto" && disableRollbackForSession(this.sessionManager.getSessionId()), !opts?.silent && (mode === "auto" && prev !== "auto" ? this.showStatus("Auto mode active \u2014 fully autonomous. Rollback enabled for this session.") : mode === "read-only" ? this.showStatus("Read mode active. Changes are blocked.") : this.showStatus(`Permission mode: ${mode}`));
9717
+ recordTuiActivity(this.sessionManager, this.runtimeHost.services.agentDir);
9718
+ let prev = this.session.permissionMode;
9719
+ mode === "read-only" && prev !== "read-only" && (this.previousPermissionMode = prev), this.session.setPermissionMode(mode), this.ui.requestRender(), mode === "auto" && prev !== "auto" ? enableRollbackForSession(this.sessionManager.getSessionId()) : mode !== "auto" && prev === "auto" && disableRollbackForSession(this.sessionManager.getSessionId()), !opts?.silent && (mode === "auto" && prev !== "auto" ? this.showStatus("Auto mode active \u2014 fully autonomous. Rollback enabled for this session.") : mode === "read-only" ? this.showStatus("Read mode active. Changes are blocked.") : this.showStatus(`Permission mode: ${mode}`));
9681
9720
  }
9682
9721
  // Approval dialog for one subagent call launching more than two children.
9683
9722
  // "Reject with feedback" collects a one-line
@@ -9736,37 +9775,60 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
9736
9775
  this.showWarning("Wait for the current response to finish before running /rollback.");
9737
9776
  return;
9738
9777
  }
9739
- if (!isRollbackEnabled()) {
9778
+ if (!isRollbackEnabled(this.sessionManager.getSessionId())) {
9740
9779
  this.showStatus("Rollback is disabled \u2014 enable it in /settings \u2192 Rollback");
9741
9780
  return;
9742
9781
  }
9743
- let turnsToConsume = Math.max(1, peekRollbackTurnsConsumed(this.sessionManager.getSessionId())), branch = this.sessionManager.getBranch(), targetUserId, userMessagesSeen = 0;
9744
- for (let i = branch.length - 1; i >= 0; i--) {
9782
+ let recoveryBlocked = getRollbackRecoveryBlockReason(this.sessionManager.getSessionId());
9783
+ if (recoveryBlocked) {
9784
+ this.showWarning(recoveryBlocked);
9785
+ return;
9786
+ }
9787
+ let turnsToConsume = Math.max(1, peekRollbackTurnsConsumed(this.sessionManager.getSessionId())), branch = this.sessionManager.getBranch(), targetUserId = getRollbackTargetUserId(this.sessionManager.getSessionId());
9788
+ if (targetUserId && !branch.some((entry) => entry.id === targetUserId)) {
9789
+ this.showWarning("Rollback recovery belongs to another chat branch. Return to that branch to retry.");
9790
+ return;
9791
+ }
9792
+ let userMessagesSeen = 0, fallbackUserId;
9793
+ for (let i = branch.length - 1; !targetUserId && i >= 0; i--) {
9745
9794
  let entry = branch[i];
9746
- if (entry.type === "message" && entry.message.role === "user" && (userMessagesSeen++, targetUserId = entry.id, userMessagesSeen >= turnsToConsume))
9795
+ if (entry.type === "message" && entry.message.role === "user" && (userMessagesSeen++, fallbackUserId = entry.id, userMessagesSeen >= turnsToConsume))
9747
9796
  break;
9748
9797
  }
9749
- if (!targetUserId) {
9798
+ if (targetUserId ??= fallbackUserId, !targetUserId) {
9750
9799
  this.showStatus("Nothing to roll back");
9751
9800
  return;
9752
9801
  }
9753
9802
  let result;
9803
+ try {
9804
+ result = rollbackLastTurn(this.sessionManager.getSessionId(), { deferCommit: !0, targetUserId });
9805
+ } catch (error) {
9806
+ this.showError(`Rollback could not prepare recovery: ${error instanceof Error ? error.message : String(error)}`);
9807
+ return;
9808
+ }
9809
+ if (!result.complete) {
9810
+ let failures = result.failed.slice(0, 3).map(({ path: file, error }) => `${path2.basename(file)}: ${error}`).join("; ");
9811
+ this.showWarning(`Rollback incomplete. ${result.restored.length} file(s) restored, ${result.deleted.length} deleted, ${result.failed.length} failed. ${failures}. Chat unchanged. /rollback retries this turn's unfinished recovery.`);
9812
+ return;
9813
+ }
9814
+ let chatRewound = !1;
9754
9815
  try {
9755
9816
  let oldSid = this.sessionManager.getSessionId(), forkResult = await this.runtimeHost.fork(targetUserId, { position: "before" });
9756
9817
  if (forkResult.cancelled) {
9757
- this.showStatus("Rollback cancelled");
9818
+ this.showWarning("File recovery complete. Chat rewind cancelled. /rollback retries the same turn without restoring completed files again.");
9758
9819
  return;
9759
9820
  }
9760
- migrateRollbackSession(oldSid, this.sessionManager.getSessionId()), result = rollbackLastTurn(this.sessionManager.getSessionId()), this.redoStack.length = 0, forkResult.selectedText && !this.editor.getText().trim() && this.editor.setText(forkResult.selectedText);
9821
+ chatRewound = !0, migrateRollbackSession(oldSid, this.sessionManager.getSessionId()), result.turnIndex !== void 0 && commitRollbackTurn(this.sessionManager.getSessionId(), result.turnIndex), this.redoStack.length = 0, forkResult.selectedText && !this.editor.getText().trim() && this.editor.setText(forkResult.selectedText);
9761
9822
  } catch (error) {
9762
- this.showError(error instanceof Error ? error.message : String(error));
9823
+ let message = error instanceof Error ? error.message : String(error);
9824
+ this.showError(chatRewound ? `Chat rewound, but finishing rollback failed: ${message}` : `File recovery complete; chat rewind failed: ${message}. /rollback retries the same turn.`);
9763
9825
  return;
9764
9826
  }
9765
9827
  let names = (paths) => {
9766
9828
  let base = paths.slice(0, 3).map((p) => path2.basename(p)).join(", ");
9767
9829
  return paths.length > 3 ? `${base}, \u2026` : base;
9768
9830
  }, parts = [];
9769
- result.restored.length > 0 && parts.push(`${result.restored.length} file(s) restored (${names(result.restored)})`), result.deleted.length > 0 && parts.push(`${result.deleted.length} file(s) deleted (${names(result.deleted)})`), parts.length === 0 && parts.push("no file changes to restore"), this.showStatus(`Rollback complete \u2014 ${parts.join("; ")}.`);
9831
+ result.restored.length > 0 && parts.push(`${result.restored.length} file(s) restored (${names(result.restored)})`), result.deleted.length > 0 && parts.push(`${result.deleted.length} file(s) deleted (${names(result.deleted)})`), parts.length === 0 && parts.push(result.turnIndex === void 0 ? "no file changes to restore" : "file recovery complete"), this.showStatus(`Rollback complete \u2014 ${parts.join("; ")}.`);
9770
9832
  }
9771
9833
  /**
9772
9834
  * Get capitalized display string for an app keybinding action.
@@ -9921,7 +9983,7 @@ ${theme.fg("muted", debugLogPath)}`, 1, 1)), this.ui.requestRender();
9921
9983
  }
9922
9984
  }
9923
9985
  stop() {
9924
- this.setThinkingAnimation(!1), this.stopCatalogRefresh?.(), this.stopCatalogRefresh = void 0, this.settingsManager.getShowTerminalProgress() && this.ui.terminal.setProgress(!1), this.clearStatusIndicator(), this.themeController.disableAutoSync(), this.clearExtensionTerminalInputListeners(), this.footer.dispose(), this.footerDataProvider.dispose(), this.disposeChatToolComponents(), this.unsubscribe && this.unsubscribe(), this.isInitialized && (this.ui.stop(), this.isInitialized = !1), this.unregisterSignalHandlers();
9986
+ this.setThinkingAnimation(!1), this.stopCatalogRefresh?.(), this.stopCatalogRefresh = void 0, this.ui.terminal.setProgress(!1), this.clearStatusIndicator(), this.themeController.disableAutoSync(), this.clearExtensionTerminalInputListeners(), this.footer.dispose(), this.footerDataProvider.dispose(), this.disposeChatToolComponents(), this.unsubscribe && this.unsubscribe(), this.isInitialized && (this.ui.stop(), this.isInitialized = !1), this.unregisterSignalHandlers();
9925
9987
  }
9926
9988
  };
9927
9989
 
@@ -9944,7 +10006,6 @@ export {
9944
10006
  TreeSelectorComponent,
9945
10007
  UserMessageComponent,
9946
10008
  UserMessageSelectorComponent,
9947
- formatResumeCommand,
9948
10009
  startInteractiveToolInstalls,
9949
10010
  InteractiveMode
9950
10011
  };