@ashx-j/lunr 0.2.26 → 0.2.28

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 (697) hide show
  1. package/CHANGELOG.md +25 -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/lunr-cron.d.ts +4 -5
  12. package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -1
  13. package/dist/builtin-extensions/lunr-cron.js +94 -108
  14. package/dist/builtin-extensions/lunr-cron.js.map +1 -1
  15. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -1
  16. package/dist/builtin-extensions/lunr-local-providers/local-servers.js +3 -1
  17. package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -1
  18. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts.map +1 -1
  19. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js +5 -2
  20. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js.map +1 -1
  21. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -1
  22. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +2 -2
  23. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -1
  24. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -1
  25. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +1 -1
  26. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -1
  27. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -1
  28. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +1 -1
  29. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -1
  30. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  31. package/dist/builtin-extensions/pi-intercom/index.js +2 -2
  32. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  33. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +1 -1
  34. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -1
  35. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +1 -1
  36. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -1
  37. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
  38. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +1 -15
  39. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
  40. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +6 -0
  41. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -1
  42. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +187 -132
  43. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -1
  44. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +8 -0
  45. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -1
  46. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +142 -112
  47. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -1
  48. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +12 -1
  49. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -1
  50. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +14 -7
  51. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -1
  52. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +11 -3
  53. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -1
  54. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +67 -41
  55. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -1
  56. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +4 -2
  57. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -1
  58. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +3 -0
  59. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -1
  60. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +2 -1
  61. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -1
  62. package/dist/builtin-extensions/pi-mcp-adapter/commands.js +6 -6
  63. package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -1
  64. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +1 -1
  65. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -1
  66. package/dist/builtin-extensions/pi-mcp-adapter/config.js +11 -5
  67. package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -1
  68. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts.map +1 -1
  69. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js +2 -2
  70. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js.map +1 -1
  71. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -1
  72. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +1 -1
  73. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -1
  74. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
  75. package/dist/builtin-extensions/pi-mcp-adapter/index.js +48 -40
  76. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
  77. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -1
  78. package/dist/builtin-extensions/pi-mcp-adapter/init.js +3 -1
  79. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -1
  80. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +12 -40
  81. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -1
  82. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +166 -235
  83. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -1
  84. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +5 -0
  85. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -1
  86. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +43 -13
  87. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -1
  88. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +14 -3
  89. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -1
  90. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +73 -21
  91. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -1
  92. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -1
  93. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +4 -4
  94. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -1
  95. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -1
  96. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +2 -2
  97. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -1
  98. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +2 -0
  99. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -1
  100. package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -1
  101. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +1 -1
  102. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -1
  103. package/dist/builtin-extensions/pi-ollama-cloud/index.js +1 -1
  104. package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -1
  105. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +11 -5
  106. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -1
  107. package/dist/builtin-extensions/pi-ollama-cloud/models.js +12 -32
  108. package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -1
  109. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -1
  110. package/dist/builtin-extensions/pi-prompt-template-model/index.js +5 -3
  111. package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -1
  112. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +2 -1
  113. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -1
  114. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +21 -12
  115. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -1
  116. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -1
  117. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +7 -24
  118. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -1
  119. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  120. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +39 -77
  121. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  122. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts +4 -1
  123. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -1
  124. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js +2 -0
  125. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -1
  126. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +6 -1
  127. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  128. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +17 -31
  129. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
  130. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  131. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +7 -2
  132. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  133. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +5 -1
  134. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  135. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +78 -42
  136. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  137. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  138. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +8 -1
  139. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  140. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +0 -3
  141. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  142. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +134 -28
  143. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  144. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  145. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +26 -5
  146. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  147. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +1 -1
  148. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
  149. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +1 -1
  150. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
  151. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +7 -8
  152. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  153. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +60 -32
  154. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  155. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts +7 -1
  156. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts.map +1 -1
  157. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js +70 -38
  158. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js.map +1 -1
  159. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +9 -0
  160. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  161. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  162. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +1 -1
  163. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -1
  164. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +15 -5
  165. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -1
  166. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
  167. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +4 -3
  168. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
  169. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  170. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +13 -62
  171. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  172. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +1 -1
  173. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  174. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +18 -9
  175. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  176. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -1
  177. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +3 -3
  178. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -1
  179. package/dist/builtin-extensions/pi-tps.d.ts.map +1 -1
  180. package/dist/builtin-extensions/pi-tps.js +28 -17
  181. package/dist/builtin-extensions/pi-tps.js.map +1 -1
  182. package/dist/builtin-extensions/pi-web-access/activity.d.ts +1 -0
  183. package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -1
  184. package/dist/builtin-extensions/pi-web-access/activity.js +27 -5
  185. package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -1
  186. package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts +3 -0
  187. package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts.map +1 -0
  188. package/dist/builtin-extensions/pi-web-access/bounded-body.js +43 -0
  189. package/dist/builtin-extensions/pi-web-access/bounded-body.js.map +1 -0
  190. package/dist/builtin-extensions/pi-web-access/content-page.d.ts +24 -0
  191. package/dist/builtin-extensions/pi-web-access/content-page.d.ts.map +1 -0
  192. package/dist/builtin-extensions/pi-web-access/content-page.js +57 -0
  193. package/dist/builtin-extensions/pi-web-access/content-page.js.map +1 -0
  194. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -1
  195. package/dist/builtin-extensions/pi-web-access/extract.js +7 -2
  196. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -1
  197. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +0 -1
  198. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -1
  199. package/dist/builtin-extensions/pi-web-access/github-extract.js +147 -36
  200. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -1
  201. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  202. package/dist/builtin-extensions/pi-web-access/index.js +48 -73
  203. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  204. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts +12 -4
  205. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts.map +1 -1
  206. package/dist/builtin-extensions/pi-web-access/session-cleanup.js +35 -12
  207. package/dist/builtin-extensions/pi-web-access/session-cleanup.js.map +1 -1
  208. package/dist/builtin-extensions/pi-web-access/storage.d.ts +9 -6
  209. package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -1
  210. package/dist/builtin-extensions/pi-web-access/storage.js +36 -24
  211. package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -1
  212. package/dist/builtin-extensions/simple-pi-memory.d.ts +1 -1
  213. package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -1
  214. package/dist/builtin-extensions/simple-pi-memory.js +1 -1
  215. package/dist/builtin-extensions/simple-pi-memory.js.map +1 -1
  216. package/dist/catalog/models.json +1 -1
  217. package/dist/catalog/providers/google-vertex.json +1 -1
  218. package/dist/catalog/providers/google.json +1 -1
  219. package/dist/catalog/publication.json +3 -3
  220. package/dist/cli/install-cli.d.ts.map +1 -1
  221. package/dist/cli/install-cli.js +38 -30
  222. package/dist/cli/install-cli.js.map +1 -1
  223. package/dist/core/agent-session-runtime.d.ts +13 -0
  224. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  225. package/dist/core/agent-session-runtime.js +75 -11
  226. package/dist/core/agent-session-runtime.js.map +1 -1
  227. package/dist/core/agent-session-services.d.ts +1 -0
  228. package/dist/core/agent-session-services.d.ts.map +1 -1
  229. package/dist/core/agent-session-services.js +1 -0
  230. package/dist/core/agent-session-services.js.map +1 -1
  231. package/dist/core/agent-session.d.ts +46 -21
  232. package/dist/core/agent-session.d.ts.map +1 -1
  233. package/dist/core/agent-session.js +344 -126
  234. package/dist/core/agent-session.js.map +1 -1
  235. package/dist/core/browser/runtime.d.ts +2 -0
  236. package/dist/core/browser/runtime.d.ts.map +1 -1
  237. package/dist/core/browser/runtime.js +80 -45
  238. package/dist/core/browser/runtime.js.map +1 -1
  239. package/dist/core/browser/setup.d.ts.map +1 -1
  240. package/dist/core/browser/setup.js +12 -1
  241. package/dist/core/browser/setup.js.map +1 -1
  242. package/dist/core/cache-stats.d.ts +1 -1
  243. package/dist/core/cache-stats.d.ts.map +1 -1
  244. package/dist/core/cache-stats.js +1 -1
  245. package/dist/core/cache-stats.js.map +1 -1
  246. package/dist/core/compaction/branch-summarization.d.ts +2 -1
  247. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  248. package/dist/core/compaction/branch-summarization.js +1 -0
  249. package/dist/core/compaction/branch-summarization.js.map +1 -1
  250. package/dist/core/compaction/compaction.d.ts +5 -11
  251. package/dist/core/compaction/compaction.d.ts.map +1 -1
  252. package/dist/core/compaction/compaction.js +38 -92
  253. package/dist/core/compaction/compaction.js.map +1 -1
  254. package/dist/core/computer-use/adapter.d.ts.map +1 -1
  255. package/dist/core/computer-use/adapter.js +7 -2
  256. package/dist/core/computer-use/adapter.js.map +1 -1
  257. package/dist/core/computer-use/image.d.ts.map +1 -1
  258. package/dist/core/computer-use/image.js +17 -5
  259. package/dist/core/computer-use/image.js.map +1 -1
  260. package/dist/core/computer-use/schemas.d.ts.map +1 -1
  261. package/dist/core/computer-use/schemas.js +23 -6
  262. package/dist/core/computer-use/schemas.js.map +1 -1
  263. package/dist/core/computer-use/workflow.d.ts.map +1 -1
  264. package/dist/core/computer-use/workflow.js +459 -119
  265. package/dist/core/computer-use/workflow.js.map +1 -1
  266. package/dist/core/context-breakdown.d.ts +2 -2
  267. package/dist/core/context-breakdown.d.ts.map +1 -1
  268. package/dist/core/context-breakdown.js +22 -20
  269. package/dist/core/context-breakdown.js.map +1 -1
  270. package/dist/core/cron/jobs.d.ts +26 -8
  271. package/dist/core/cron/jobs.d.ts.map +1 -1
  272. package/dist/core/cron/jobs.js +357 -232
  273. package/dist/core/cron/jobs.js.map +1 -1
  274. package/dist/core/cron/origin-context.d.ts +1 -0
  275. package/dist/core/cron/origin-context.d.ts.map +1 -1
  276. package/dist/core/cron/origin-context.js.map +1 -1
  277. package/dist/core/cron/scheduler.d.ts +22 -17
  278. package/dist/core/cron/scheduler.d.ts.map +1 -1
  279. package/dist/core/cron/scheduler.js +153 -73
  280. package/dist/core/cron/scheduler.js.map +1 -1
  281. package/dist/core/extensions/index.d.ts +1 -1
  282. package/dist/core/extensions/index.d.ts.map +1 -1
  283. package/dist/core/extensions/index.js.map +1 -1
  284. package/dist/core/extensions/runner.d.ts +1 -0
  285. package/dist/core/extensions/runner.d.ts.map +1 -1
  286. package/dist/core/extensions/runner.js +8 -0
  287. package/dist/core/extensions/runner.js.map +1 -1
  288. package/dist/core/extensions/types.d.ts +11 -1
  289. package/dist/core/extensions/types.d.ts.map +1 -1
  290. package/dist/core/extensions/types.js.map +1 -1
  291. package/dist/core/footer-data-provider.d.ts +4 -0
  292. package/dist/core/footer-data-provider.d.ts.map +1 -1
  293. package/dist/core/footer-data-provider.js +22 -1
  294. package/dist/core/footer-data-provider.js.map +1 -1
  295. package/dist/core/large-subagent-launch.d.ts +1 -1
  296. package/dist/core/large-subagent-launch.d.ts.map +1 -1
  297. package/dist/core/large-subagent-launch.js +7 -7
  298. package/dist/core/large-subagent-launch.js.map +1 -1
  299. package/dist/core/model-registry.d.ts +2 -0
  300. package/dist/core/model-registry.d.ts.map +1 -1
  301. package/dist/core/model-registry.js +5 -0
  302. package/dist/core/model-registry.js.map +1 -1
  303. package/dist/core/model-runtime.d.ts +4 -1
  304. package/dist/core/model-runtime.d.ts.map +1 -1
  305. package/dist/core/model-runtime.js +40 -4
  306. package/dist/core/model-runtime.js.map +1 -1
  307. package/dist/core/package-manager.d.ts.map +1 -1
  308. package/dist/core/package-manager.js.map +1 -1
  309. package/dist/core/permissions.d.ts +3 -3
  310. package/dist/core/permissions.d.ts.map +1 -1
  311. package/dist/core/permissions.js +11 -35
  312. package/dist/core/permissions.js.map +1 -1
  313. package/dist/core/plan-mode.d.ts +5 -13
  314. package/dist/core/plan-mode.d.ts.map +1 -1
  315. package/dist/core/plan-mode.js +126 -116
  316. package/dist/core/plan-mode.js.map +1 -1
  317. package/dist/core/project-trust.d.ts.map +1 -1
  318. package/dist/core/project-trust.js +1 -1
  319. package/dist/core/project-trust.js.map +1 -1
  320. package/dist/core/prompt-resource-bridge.d.ts +12 -0
  321. package/dist/core/prompt-resource-bridge.d.ts.map +1 -0
  322. package/dist/core/prompt-resource-bridge.js +9 -0
  323. package/dist/core/prompt-resource-bridge.js.map +1 -0
  324. package/dist/core/protected-targets.d.ts +6 -0
  325. package/dist/core/protected-targets.d.ts.map +1 -0
  326. package/dist/core/protected-targets.js +45 -0
  327. package/dist/core/protected-targets.js.map +1 -0
  328. package/dist/core/resource-loader.d.ts.map +1 -1
  329. package/dist/core/resource-loader.js +7 -0
  330. package/dist/core/resource-loader.js.map +1 -1
  331. package/dist/core/rollback.d.ts +19 -3
  332. package/dist/core/rollback.d.ts.map +1 -1
  333. package/dist/core/rollback.js +172 -56
  334. package/dist/core/rollback.js.map +1 -1
  335. package/dist/core/runtime-credentials.d.ts +3 -0
  336. package/dist/core/runtime-credentials.d.ts.map +1 -1
  337. package/dist/core/runtime-credentials.js +14 -1
  338. package/dist/core/runtime-credentials.js.map +1 -1
  339. package/dist/core/sdk.d.ts +3 -0
  340. package/dist/core/sdk.d.ts.map +1 -1
  341. package/dist/core/sdk.js +1 -0
  342. package/dist/core/sdk.js.map +1 -1
  343. package/dist/core/session-manager.d.ts +11 -1
  344. package/dist/core/session-manager.d.ts.map +1 -1
  345. package/dist/core/session-manager.js +111 -33
  346. package/dist/core/session-manager.js.map +1 -1
  347. package/dist/core/session-ownership.d.ts.map +1 -1
  348. package/dist/core/session-ownership.js +8 -3
  349. package/dist/core/session-ownership.js.map +1 -1
  350. package/dist/core/session-retention.d.ts.map +1 -1
  351. package/dist/core/session-retention.js +18 -7
  352. package/dist/core/session-retention.js.map +1 -1
  353. package/dist/core/session-startup-settings.d.ts +10 -0
  354. package/dist/core/session-startup-settings.d.ts.map +1 -0
  355. package/dist/core/session-startup-settings.js +70 -0
  356. package/dist/core/session-startup-settings.js.map +1 -0
  357. package/dist/core/subscriptions.d.ts +16 -7
  358. package/dist/core/subscriptions.d.ts.map +1 -1
  359. package/dist/core/subscriptions.js +96 -55
  360. package/dist/core/subscriptions.js.map +1 -1
  361. package/dist/core/trust-manager.d.ts +2 -1
  362. package/dist/core/trust-manager.d.ts.map +1 -1
  363. package/dist/core/trust-manager.js +6 -1
  364. package/dist/core/trust-manager.js.map +1 -1
  365. package/dist/core/update-check.d.ts.map +1 -1
  366. package/dist/core/update-check.js.map +1 -1
  367. package/dist/core/usage-accounting.d.ts +47 -0
  368. package/dist/core/usage-accounting.d.ts.map +1 -0
  369. package/dist/core/usage-accounting.js +205 -0
  370. package/dist/core/usage-accounting.js.map +1 -0
  371. package/dist/core/usage-adapters/kimi-coding.d.ts +2 -2
  372. package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -1
  373. package/dist/core/usage-adapters/kimi-coding.js +2 -2
  374. package/dist/core/usage-adapters/kimi-coding.js.map +1 -1
  375. package/dist/core/usage-adapters/openai-codex.d.ts +3 -2
  376. package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -1
  377. package/dist/core/usage-adapters/openai-codex.js +3 -3
  378. package/dist/core/usage-adapters/openai-codex.js.map +1 -1
  379. package/dist/core/usage-adapters/xai.d.ts +2 -2
  380. package/dist/core/usage-adapters/xai.d.ts.map +1 -1
  381. package/dist/core/usage-adapters/xai.js +3 -3
  382. package/dist/core/usage-adapters/xai.js.map +1 -1
  383. package/dist/core/usage-adapters/zai.d.ts +2 -2
  384. package/dist/core/usage-adapters/zai.d.ts.map +1 -1
  385. package/dist/core/usage-adapters/zai.js +2 -2
  386. package/dist/core/usage-adapters/zai.js.map +1 -1
  387. package/dist/core/usage-history.d.ts +1 -18
  388. package/dist/core/usage-history.d.ts.map +1 -1
  389. package/dist/core/usage-history.js +46 -114
  390. package/dist/core/usage-history.js.map +1 -1
  391. package/dist/core/usage-service.d.ts +9 -2
  392. package/dist/core/usage-service.d.ts.map +1 -1
  393. package/dist/core/usage-service.js +95 -50
  394. package/dist/core/usage-service.js.map +1 -1
  395. package/dist/gateway/agent-bridge.d.ts +9 -1
  396. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  397. package/dist/gateway/agent-bridge.js +91 -37
  398. package/dist/gateway/agent-bridge.js.map +1 -1
  399. package/dist/gateway/buttons.d.ts +8 -1
  400. package/dist/gateway/buttons.d.ts.map +1 -1
  401. package/dist/gateway/buttons.js +76 -18
  402. package/dist/gateway/buttons.js.map +1 -1
  403. package/dist/gateway/commands.d.ts +1 -0
  404. package/dist/gateway/commands.d.ts.map +1 -1
  405. package/dist/gateway/commands.js +10 -4
  406. package/dist/gateway/commands.js.map +1 -1
  407. package/dist/gateway/cron.d.ts +12 -11
  408. package/dist/gateway/cron.d.ts.map +1 -1
  409. package/dist/gateway/cron.js +65 -56
  410. package/dist/gateway/cron.js.map +1 -1
  411. package/dist/gateway/index.d.ts.map +1 -1
  412. package/dist/gateway/index.js +2 -1
  413. package/dist/gateway/index.js.map +1 -1
  414. package/dist/gateway/mobile-commands.d.ts +1 -0
  415. package/dist/gateway/mobile-commands.d.ts.map +1 -1
  416. package/dist/gateway/mobile-commands.js +69 -15
  417. package/dist/gateway/mobile-commands.js.map +1 -1
  418. package/dist/gateway/presenter.d.ts +12 -2
  419. package/dist/gateway/presenter.d.ts.map +1 -1
  420. package/dist/gateway/presenter.js +73 -38
  421. package/dist/gateway/presenter.js.map +1 -1
  422. package/dist/gateway/router.d.ts +2 -2
  423. package/dist/gateway/router.d.ts.map +1 -1
  424. package/dist/gateway/router.js +17 -2
  425. package/dist/gateway/router.js.map +1 -1
  426. package/dist/gateway/service.d.ts +2 -0
  427. package/dist/gateway/service.d.ts.map +1 -1
  428. package/dist/gateway/service.js +153 -0
  429. package/dist/gateway/service.js.map +1 -1
  430. package/dist/main.d.ts.map +1 -1
  431. package/dist/main.js +86 -33
  432. package/dist/main.js.map +1 -1
  433. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  434. package/dist/modes/interactive/components/assistant-message.js +6 -4
  435. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  436. package/dist/modes/interactive/components/context-view.d.ts.map +1 -1
  437. package/dist/modes/interactive/components/context-view.js +2 -2
  438. package/dist/modes/interactive/components/context-view.js.map +1 -1
  439. package/dist/modes/interactive/components/copyable-text.d.ts.map +1 -1
  440. package/dist/modes/interactive/components/copyable-text.js +3 -2
  441. package/dist/modes/interactive/components/copyable-text.js.map +1 -1
  442. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  443. package/dist/modes/interactive/components/extension-editor.js +1 -1
  444. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  445. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  446. package/dist/modes/interactive/components/footer.js +8 -12
  447. package/dist/modes/interactive/components/footer.js.map +1 -1
  448. package/dist/modes/interactive/components/usage-view.d.ts +5 -0
  449. package/dist/modes/interactive/components/usage-view.d.ts.map +1 -1
  450. package/dist/modes/interactive/components/usage-view.js +21 -6
  451. package/dist/modes/interactive/components/usage-view.js.map +1 -1
  452. package/dist/modes/interactive/interactive-mode.d.ts +3 -7
  453. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  454. package/dist/modes/interactive/interactive-mode.js +151 -131
  455. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  456. package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -1
  457. package/dist/modes/interactive/smooth-streaming.js.map +1 -1
  458. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  459. package/dist/modes/rpc/rpc-mode.js +2 -1
  460. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  461. package/dist/node-runtime/{adapter-VFG7WNPX.js → adapter-247RTYLS.js} +4 -5
  462. package/dist/node-runtime/agent-session-services-RTUGP3XR.js +54 -0
  463. package/dist/node-runtime/{brave-UWDA3I22.js → brave-2AFFAXNN.js} +1 -1
  464. package/dist/node-runtime/{builtin-extensions-I2HIFEMY.js → builtin-extensions-N4EUD6SB.js} +8 -7
  465. package/dist/node-runtime/{chunk-QH6YL7VK.js → chunk-252ZVPPF.js} +3 -3
  466. package/dist/node-runtime/{chunk-PCEW76PM.js → chunk-2OIPYKLZ.js} +6 -6
  467. package/dist/node-runtime/{chunk-XBWPBZBN.js → chunk-2SWW7KMW.js} +1 -1
  468. package/dist/node-runtime/{chunk-UQUCFAJ3.js → chunk-2VIW3IMF.js} +40 -7
  469. package/dist/node-runtime/{chunk-UOEDI7RP.js → chunk-4KNKQGHM.js} +2 -2
  470. package/dist/node-runtime/chunk-4QRUZ64T.js +1203 -0
  471. package/dist/node-runtime/{chunk-FQMM2EZ2.js → chunk-64XTQNLA.js} +29 -7
  472. package/dist/node-runtime/{chunk-SPVDBUOS.js → chunk-6O3IW3IA.js} +2 -2
  473. package/dist/node-runtime/{chunk-5ZQXRPMC.js → chunk-6ZZHGUSA.js} +2 -2
  474. package/dist/node-runtime/{chunk-WIF24I7G.js → chunk-APVM5NEU.js} +149 -144
  475. package/dist/node-runtime/{chunk-LWYIVUGV.js → chunk-B2IBAXNX.js} +48 -31
  476. package/dist/node-runtime/{chunk-M3LZLQW2.js → chunk-BDRGN3L2.js} +1 -0
  477. package/dist/node-runtime/{chunk-LJTIVM7I.js → chunk-BMRXLQWQ.js} +464 -160
  478. package/dist/node-runtime/{chunk-GJ2RDBRL.js → chunk-BYC6RKCN.js} +4 -2
  479. package/dist/node-runtime/{chunk-T4DA4XE7.js → chunk-DFMPRAQQ.js} +162 -82
  480. package/dist/node-runtime/{chunk-SN2KSMPQ.js → chunk-DQSCFU7R.js} +13 -7
  481. package/dist/node-runtime/{chunk-UVWCDQYF.js → chunk-E5DQGNJI.js} +455 -278
  482. package/dist/node-runtime/{chunk-4SBQAI4T.js → chunk-EBLAZVSA.js} +2058 -73
  483. package/dist/node-runtime/{chunk-CSFI6YXL.js → chunk-ES6PBSIE.js} +1 -1
  484. package/dist/node-runtime/{chunk-IF24A3FH.js → chunk-EVM653DD.js} +4 -4
  485. package/dist/node-runtime/{chunk-HTFRRDSF.js → chunk-F2SMQ6ES.js} +3 -2
  486. package/dist/node-runtime/chunk-F2V2F4ZG.js +114 -0
  487. package/dist/node-runtime/{chunk-IKU6Y7DL.js → chunk-FE3WZI7F.js} +9 -6
  488. package/dist/node-runtime/{chunk-6VYZ5UFP.js → chunk-FLGEEH27.js} +1 -1
  489. package/dist/node-runtime/{chunk-5EFIU3OM.js → chunk-FTKEZL27.js} +1 -1
  490. package/dist/node-runtime/{chunk-RGQAEOM5.js → chunk-FYIFPFXE.js} +23 -6
  491. package/dist/node-runtime/{chunk-HMBGROQK.js → chunk-GLDXBBL6.js} +3 -3
  492. package/dist/node-runtime/{chunk-KWA4OC2J.js → chunk-H6YBCWKG.js} +1 -1
  493. package/dist/node-runtime/{chunk-2MI5OPMN.js → chunk-HNNHHJAB.js} +68 -50
  494. package/dist/node-runtime/{chunk-I74LN5JG.js → chunk-HUD2RFJW.js} +2 -2
  495. package/dist/node-runtime/{chunk-XHIRAZ26.js → chunk-IAZSK7KK.js} +1 -1
  496. package/dist/node-runtime/{chunk-GYIXXQAO.js → chunk-ICKGAKWX.js} +23 -59
  497. package/dist/node-runtime/{chunk-X3PGBLQ7.js → chunk-IHHTWSXN.js} +9 -9
  498. package/dist/node-runtime/{chunk-DAPBPCBP.js → chunk-IPP5BIV5.js} +25 -3
  499. package/dist/node-runtime/{chunk-QFWG2RVL.js → chunk-IXG6F4NT.js} +11 -0
  500. package/dist/node-runtime/{chunk-L24TPBS4.js → chunk-JEK35V2M.js} +45 -31
  501. package/dist/node-runtime/{chunk-RDDAZOMU.js → chunk-JL4HYQXK.js} +1 -1
  502. package/dist/node-runtime/{chunk-2HMIRK7W.js → chunk-LHV3V67B.js} +5 -5
  503. package/dist/node-runtime/{chunk-UAEOTO52.js → chunk-MNQXDFPV.js} +6 -2
  504. package/dist/node-runtime/{chunk-MPKSOJBT.js → chunk-NHATCSOI.js} +4 -7
  505. package/dist/node-runtime/{chunk-RMQZU2YU.js → chunk-NNNR3QIY.js} +1 -1
  506. package/dist/node-runtime/{chunk-2KIPT4HJ.js → chunk-PWHTSQC4.js} +83 -21
  507. package/dist/node-runtime/{chunk-RWTKOC3B.js → chunk-QBTJG3UM.js} +1 -1
  508. package/dist/node-runtime/{chunk-RCR3XAQY.js → chunk-QT3F6UEV.js} +233 -169
  509. package/dist/node-runtime/{chunk-GS42T6MX.js → chunk-QW3AAHWN.js} +1 -1
  510. package/dist/node-runtime/{chunk-DVQSHCVP.js → chunk-R4WSB2MQ.js} +5 -5
  511. package/dist/node-runtime/{chunk-B4HP6ZWM.js → chunk-RHCGYWO7.js} +1 -1
  512. package/dist/node-runtime/{chunk-2CFDTH5B.js → chunk-RLGY2QIL.js} +45 -59
  513. package/dist/node-runtime/{chunk-CDVHZOOK.js → chunk-RY3FJ6WI.js} +29 -27
  514. package/dist/node-runtime/{chunk-KKUTQQV7.js → chunk-RYRGL7P4.js} +1 -1
  515. package/dist/node-runtime/{chunk-I54LGHWM.js → chunk-STMX7W5I.js} +3 -3
  516. package/dist/node-runtime/chunk-SWWHZ2RI.js +158 -0
  517. package/dist/node-runtime/{chunk-5Q4A37RB.js → chunk-TCT6PCUR.js} +32 -11
  518. package/dist/node-runtime/{chunk-P7XBVXGT.js → chunk-U3YVZ6UC.js} +18 -14
  519. package/dist/node-runtime/{chunk-D5UCKPBQ.js → chunk-UBWW2PID.js} +1 -1
  520. package/dist/node-runtime/{chunk-E75WFZ33.js → chunk-UNUZICC4.js} +3 -3
  521. package/dist/node-runtime/{chunk-RAK2QA2B.js → chunk-UYRKUKFE.js} +4 -4
  522. package/dist/node-runtime/{chunk-LWJXTA6Z.js → chunk-VSUEAI7O.js} +1377 -45
  523. package/dist/node-runtime/{chunk-NAY6UUQZ.js → chunk-WDIVLMOH.js} +1 -1
  524. package/dist/node-runtime/{chunk-E24EO34J.js → chunk-WPXUR3HE.js} +1 -1
  525. package/dist/node-runtime/{chunk-SLVOAQOY.js → chunk-WXYNALHD.js} +113 -1
  526. package/dist/node-runtime/{chunk-KJ6DWS3K.js → chunk-XEOCUEUJ.js} +121 -60
  527. package/dist/node-runtime/chunk-YD3IZAZ7.js +47 -0
  528. package/dist/node-runtime/chunk-YSB6URMT.js +41 -0
  529. package/dist/node-runtime/{chunk-YWOJIGFY.js → chunk-ZEVFBFNF.js} +95 -142
  530. package/dist/node-runtime/{chunk-5B6VKFEV.js → chunk-ZIQUS5QO.js} +1 -1
  531. package/dist/node-runtime/cli-runtime.js +4 -4
  532. package/dist/node-runtime/{command-FSBU2EVZ.js → command-YRT7I2BW.js} +5 -5
  533. package/dist/node-runtime/{commands-NAAL7KNT.js → commands-2ETOWWRA.js} +16 -16
  534. package/dist/node-runtime/{commands-EMBQQVVT.js → commands-D6A6H4TS.js} +11 -18
  535. package/dist/node-runtime/{config-QDD5PUE2.js → config-CU7M7BTK.js} +1 -1
  536. package/dist/node-runtime/{config-D4QUPAHX.js → config-DS7XLMEM.js} +2 -2
  537. package/dist/node-runtime/{direct-tool-executor-4D7UXYU4.js → direct-tool-executor-2QJXVQD2.js} +6 -11
  538. package/dist/node-runtime/{exa-LL64QZR2.js → exa-6VBZNPGE.js} +1 -1
  539. package/dist/node-runtime/{export-html-VM4J2MNR.js → export-html-DBQRRMAY.js} +4 -4
  540. package/dist/node-runtime/{extension-input-E7BJZ35H.js → extension-input-VBBMX7YV.js} +5 -5
  541. package/dist/node-runtime/{extension-selector-WU42XDTU.js → extension-selector-T5AOG5XB.js} +5 -5
  542. package/dist/node-runtime/{extract-EQJE7FZZ.js → extract-BFX2N35A.js} +3 -3
  543. package/dist/node-runtime/{gateway-DQM333YV.js → gateway-V6K2CDWN.js} +51 -42
  544. package/dist/node-runtime/{gemini-search-35OCRFLN.js → gemini-search-C66QHDT6.js} +2 -2
  545. package/dist/node-runtime/{gemini-url-context-UQY3PHHW.js → gemini-url-context-T7DEK73R.js} +3 -3
  546. package/dist/node-runtime/{github-extract-F64RZOEA.js → github-extract-HOGE3D6F.js} +107 -38
  547. package/dist/node-runtime/{goal-NJEE5CTU.js → goal-J7TYMOBK.js} +14 -8
  548. package/dist/node-runtime/index.js +51 -48
  549. package/dist/node-runtime/{init-P5AUV77I.js → init-JBQJIPYI.js} +3 -6
  550. package/dist/node-runtime/{install-cli-NN4YAU44.js → install-cli-INGHIVBY.js} +30 -25
  551. package/dist/node-runtime/interactive-mode-ASZ7APYP.js +75 -0
  552. package/dist/node-runtime/{interactive-view-NGFAMHPW.js → interactive-view-K33PM4OS.js} +8 -8
  553. package/dist/node-runtime/{lsp-manager-3ASUSO4T.js → lsp-manager-S554V5HR.js} +240 -155
  554. package/dist/node-runtime/{lunr-browser-IR7TL3J7.js → lunr-browser-H4FDOR3C.js} +7 -7
  555. package/dist/node-runtime/{lunr-computer-use-Y23CCDIJ.js → lunr-computer-use-VDP2QNRQ.js} +9 -9
  556. package/dist/node-runtime/{lunr-cron-USHC4LXH.js → lunr-cron-WD3YH4CR.js} +93 -80
  557. package/dist/node-runtime/main.js +43 -41
  558. package/dist/node-runtime/{mobile-commands-O5LCHL32.js → mobile-commands-ICUXFW5V.js} +12 -12
  559. package/dist/node-runtime/{model-runtime-OO5HFLWE.js → model-runtime-MZ2JMDV4.js} +4 -4
  560. package/dist/node-runtime/{openai-search-B3MSNCQA.js → openai-search-K72LJDYN.js} +1 -1
  561. package/dist/node-runtime/{package-manager-cli-Q7BL6KZO.js → package-manager-cli-CYM262SI.js} +20 -20
  562. package/dist/node-runtime/{parallel-AI2MNSCU.js → parallel-X724NCNU.js} +1 -1
  563. package/dist/node-runtime/{perplexity-QVJW3I35.js → perplexity-RDHQHVMK.js} +2 -2
  564. package/dist/node-runtime/{pi-intercom-QM53RLTS.js → pi-intercom-NHHEPBMI.js} +2 -2
  565. package/dist/node-runtime/{pi-mcp-adapter-3PHF4KZ4.js → pi-mcp-adapter-PP3GQJQ2.js} +98 -94
  566. package/dist/node-runtime/{pi-ollama-cloud-2F3Y2QNM.js → pi-ollama-cloud-4MNWIMFN.js} +11 -24
  567. package/dist/node-runtime/{pi-prompt-template-model-QWTCGLJU.js → pi-prompt-template-model-FTGELLS5.js} +32 -36
  568. package/dist/node-runtime/{pi-subagents-7IBSSGEW.js → pi-subagents-QPU3OXE4.js} +114 -167
  569. package/dist/node-runtime/{pi-web-access-WTGMNZ32.js → pi-web-access-Z3LP246C.js} +144 -108
  570. package/dist/node-runtime/{print-mode-XQ76CYMT.js → print-mode-2XHN5SUA.js} +3 -3
  571. package/dist/node-runtime/{process-registry-4FAKZQOL.js → process-registry-Q4QWIU33.js} +3 -3
  572. package/dist/node-runtime/{proxy-modes-5FAPSZEZ.js → proxy-modes-VEGC6QG5.js} +8 -15
  573. package/dist/node-runtime/rpc-entry.js +43 -41
  574. package/dist/node-runtime/{rpc-mode-O3XV4SID.js → rpc-mode-32DHJPEJ.js} +4 -4
  575. package/dist/node-runtime/{runtime-4VA6JKNF.js → runtime-EDUUGAQD.js} +56 -46
  576. package/dist/node-runtime/{runtime-EFPPD2UW.js → runtime-UGXM4NPQ.js} +2 -2
  577. package/dist/node-runtime/{runtime-bridges-7WVCLI76.js → runtime-bridges-DNKMNJCF.js} +7 -7
  578. package/dist/node-runtime/{service-MDQIPQ26.js → service-IHLGFLBT.js} +6 -4
  579. package/dist/node-runtime/{session-handoff-GWARVEWT.js → session-handoff-LYH53ESV.js} +4 -4
  580. package/dist/node-runtime/{session-manager-JB5J6XBN.js → session-manager-ZJ3N5Q74.js} +3 -3
  581. package/dist/node-runtime/{session-selector-GIM4DHQ2.js → session-selector-I73U3EIO.js} +7 -7
  582. package/dist/node-runtime/{settings-manager-DJDM5AHM.js → settings-manager-P2TKGYTR.js} +5 -5
  583. package/dist/node-runtime/{setup-JBKOLJ6F.js → setup-H7CCELIL.js} +15 -1
  584. package/dist/node-runtime/{setup-PFBWRNUI.js → setup-OLQ4GXWS.js} +17 -17
  585. package/dist/node-runtime/{src-IVPNZ2BX.js → src-6RV4PXKJ.js} +64 -36
  586. package/dist/node-runtime/{subagent-executor-LPZ4BHWE.js → subagent-executor-UI6SHG3X.js} +412 -288
  587. package/dist/node-runtime/{tavily-WEZFVFP7.js → tavily-KZBFYQB6.js} +1 -1
  588. package/dist/node-runtime/{theme-UOO5RVFN.js → theme-YLVZKKZD.js} +2 -2
  589. package/dist/node-runtime/{trust-manager-MMISNCYO.js → trust-manager-ZCU76D23.js} +2 -2
  590. package/dist/node-runtime/{update-cli-HNMOTNGX.js → update-cli-F3XXJANQ.js} +6 -6
  591. package/dist/node-runtime/{usage-service-LFB2SWYV.js → usage-service-CPAGBED5.js} +1 -1
  592. package/dist/node-runtime/{video-extract-OOZHR7SU.js → video-extract-UPKYIBW3.js} +3 -3
  593. package/dist/node-runtime/{workflow-OHPBEFO4.js → workflow-ICDI4N3J.js} +208 -78
  594. package/dist/node-runtime/{youtube-extract-FNPAUNHU.js → youtube-extract-77NT7FWH.js} +4 -4
  595. package/dist/utils/clipboard-image.d.ts.map +1 -1
  596. package/dist/utils/clipboard-image.js.map +1 -1
  597. package/dist/utils/exif-orientation.d.ts.map +1 -1
  598. package/dist/utils/exif-orientation.js +25 -10
  599. package/dist/utils/exif-orientation.js.map +1 -1
  600. package/dist/utils/image-resize-core.d.ts.map +1 -1
  601. package/dist/utils/image-resize-core.js +2 -0
  602. package/dist/utils/image-resize-core.js.map +1 -1
  603. package/dist/utils/paths.d.ts +4 -0
  604. package/dist/utils/paths.d.ts.map +1 -1
  605. package/dist/utils/paths.js +33 -2
  606. package/dist/utils/paths.js.map +1 -1
  607. package/dist/utils/sanitize-terminal-text.d.ts +7 -0
  608. package/dist/utils/sanitize-terminal-text.d.ts.map +1 -0
  609. package/dist/utils/sanitize-terminal-text.js +67 -0
  610. package/dist/utils/sanitize-terminal-text.js.map +1 -0
  611. package/docs/browser.md +1 -1
  612. package/docs/custom-provider.md +3 -3
  613. package/docs/extensions.md +8 -4
  614. package/docs/features.md +25 -7
  615. package/docs/keybindings.md +1 -1
  616. package/docs/models.md +5 -5
  617. package/docs/packages.md +1 -1
  618. package/docs/providers.md +2 -2
  619. package/docs/rpc.md +7 -7
  620. package/docs/security.md +10 -5
  621. package/docs/sessions.md +2 -2
  622. package/docs/skills.md +1 -1
  623. package/docs/terminal-setup.md +7 -7
  624. package/docs/themes.md +1 -1
  625. package/docs/usage.md +1 -1
  626. package/examples/extensions/auto-commit-on-exit.ts +1 -1
  627. package/examples/extensions/bash-spawn-hook.ts +1 -1
  628. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  629. package/examples/extensions/claude-rules.ts +1 -1
  630. package/examples/extensions/commands.ts +1 -1
  631. package/examples/extensions/custom-compaction.ts +1 -1
  632. package/examples/extensions/custom-provider-anthropic/index.ts +3 -3
  633. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  634. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  635. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  636. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  637. package/examples/extensions/doom-overlay/index.ts +1 -1
  638. package/examples/extensions/git-merge-and-resolve.ts +2 -2
  639. package/examples/extensions/gondolin/index.ts +1 -1
  640. package/examples/extensions/gondolin/package-lock.json +2 -2
  641. package/examples/extensions/gondolin/package.json +1 -1
  642. package/examples/extensions/hidden-thinking-label.ts +1 -1
  643. package/examples/extensions/inline-bash.ts +2 -2
  644. package/examples/extensions/input-transform-streaming.ts +2 -2
  645. package/examples/extensions/input-transform.ts +2 -2
  646. package/examples/extensions/interactive-shell.ts +1 -1
  647. package/examples/extensions/kimi-deferred-tools.ts +1 -1
  648. package/examples/extensions/mac-system-theme.ts +1 -1
  649. package/examples/extensions/minimal-mode.ts +1 -1
  650. package/examples/extensions/modal-editor.ts +1 -1
  651. package/examples/extensions/model-status.ts +1 -1
  652. package/examples/extensions/notify.ts +3 -3
  653. package/examples/extensions/overlay-qa-tests.ts +1 -1
  654. package/examples/extensions/overlay-test.ts +1 -1
  655. package/examples/extensions/pirate.ts +1 -1
  656. package/examples/extensions/preset.ts +3 -3
  657. package/examples/extensions/project-trust.ts +4 -4
  658. package/examples/extensions/prompt-customizer.ts +1 -1
  659. package/examples/extensions/rainbow-editor.ts +1 -1
  660. package/examples/extensions/rpc-demo.ts +1 -1
  661. package/examples/extensions/sandbox/index.ts +7 -7
  662. package/examples/extensions/sandbox/package-lock.json +2 -2
  663. package/examples/extensions/sandbox/package.json +1 -1
  664. package/examples/extensions/shutdown-command.ts +5 -5
  665. package/examples/extensions/ssh.ts +2 -2
  666. package/examples/extensions/subagent/README.md +3 -3
  667. package/examples/extensions/subagent/index.ts +2 -2
  668. package/examples/extensions/titlebar-spinner.ts +1 -1
  669. package/examples/extensions/tool-override.ts +1 -1
  670. package/examples/extensions/tools.ts +1 -1
  671. package/examples/extensions/with-deps/package-lock.json +2 -2
  672. package/examples/extensions/with-deps/package.json +1 -1
  673. package/examples/extensions/working-indicator.ts +1 -1
  674. package/examples/extensions/working-message-test.ts +1 -1
  675. package/examples/sdk/01-minimal.ts +1 -1
  676. package/examples/sdk/03-custom-prompt.ts +1 -1
  677. package/examples/sdk/04-skills.ts +1 -1
  678. package/examples/sdk/06-extensions.ts +2 -2
  679. package/examples/sdk/08-prompt-templates.ts +1 -1
  680. package/install-lock/package-lock.json +24 -24
  681. package/install-lock/package.json +2 -2
  682. package/npm-shrinkwrap.json +60 -24
  683. package/package.json +9 -9
  684. package/dist/modes/interactive/components/exit-card.d.ts +0 -22
  685. package/dist/modes/interactive/components/exit-card.d.ts.map +0 -1
  686. package/dist/modes/interactive/components/exit-card.js +0 -69
  687. package/dist/modes/interactive/components/exit-card.js.map +0 -1
  688. package/dist/node-runtime/agent-session-services-5YXS2PLF.js +0 -51
  689. package/dist/node-runtime/chunk-2IDTZAG5.js +0 -1415
  690. package/dist/node-runtime/chunk-3MISGG4S.js +0 -769
  691. package/dist/node-runtime/chunk-4HXHDDCF.js +0 -16
  692. package/dist/node-runtime/chunk-5B5QN3ZQ.js +0 -356
  693. package/dist/node-runtime/chunk-7IQGBKBJ.js +0 -2033
  694. package/dist/node-runtime/chunk-AUXVGBO4.js +0 -19
  695. package/dist/node-runtime/chunk-PTFBPO3C.js +0 -50
  696. package/dist/node-runtime/interactive-mode-YOHZVMKX.js +0 -74
  697. package/dist/node-runtime/mcp-auth-flow-QVLFVLEO.js +0 -33
@@ -1 +1 @@
1
- {"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}}}
1
+ {"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}}}
@@ -1 +1 @@
1
- {"deep-research-max-preview-04-2026":{"id":"deep-research-max-preview-04-2026","name":"Deep Research Max Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"deep-research-preview-04-2026":{"id":"deep-research-preview-04-2026","name":"Deep Research Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-computer-use-preview-10-2025":{"id":"gemini-2.5-computer-use-preview-10-2025","name":"Gemini 2.5 Computer Use Preview 10-2025","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-image":{"id":"gemini-3.1-flash-lite-image","name":"Nano Banana 2 Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":30,"cacheRead":0,"cacheWrite":0},"contextWindow":65536,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-live-preview":{"id":"gemini-3.1-flash-live-preview","name":"Gemini 3.1 Flash Live Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemma-4-26b-a4b-it":{"id":"gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}},"gemma-4-31b-it":{"id":"gemma-4-31b-it","name":"Gemma 4 31B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}}}
1
+ {"deep-research-max-preview-04-2026":{"id":"deep-research-max-preview-04-2026","name":"Deep Research Max Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"deep-research-preview-04-2026":{"id":"deep-research-preview-04-2026","name":"Deep Research Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-computer-use-preview-10-2025":{"id":"gemini-2.5-computer-use-preview-10-2025","name":"Gemini 2.5 Computer Use Preview 10-2025","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-image":{"id":"gemini-3.1-flash-lite-image","name":"Nano Banana 2 Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":30,"cacheRead":0,"cacheWrite":0},"contextWindow":65536,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-live-preview":{"id":"gemini-3.1-flash-live-preview","name":"Gemini 3.1 Flash Live Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemma-4-26b-a4b-it":{"id":"gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}},"gemma-4-31b-it":{"id":"gemma-4-31b-it","name":"Gemma 4 31B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}}}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 2,
3
- "revision": "sha256-e4f0493be0ddc4665131268d7cd9eeee0ece7b68a438edd4e06eb392b1b77fcf",
3
+ "revision": "sha256-f836e374f4e0a775d0735c47b4ed016c2651d4d5755702b6ba23bbd2001db653",
4
4
  "providers": [
5
5
  "amazon-bedrock",
6
6
  "ant-ling",
@@ -53,8 +53,8 @@
53
53
  "deepseek": "ca5d7ba4befdf2a01f93ef0aefecf05ae3c1c3af2851814fa909bd49e035e17f",
54
54
  "fireworks": "703747604b788f393b8c62ef914f80f0546a0a7de3cb2127fa42eb27d8a2946a",
55
55
  "github-copilot": "c4f8891a3b5e8f36bdcd0dfb6f96cf623d0c22e46ef070564d3208cd2b981063",
56
- "google": "c432ced269c2c9d556c16b8a54e5e60956f99f96f12637b09141d9813d23f554",
57
- "google-vertex": "196ba8b70801b66bf41f7f7e9ac3a17c90ef7f219ea6f8e8a7365e759e66a23c",
56
+ "google": "978be2f38bd45cba977ec2e3b3288f955976ed4cbd3a528a0d06ef0e7156bd30",
57
+ "google-vertex": "74efed28abbb59e67338379317e18393e149cd15a6b274fae6103e3265ae391c",
58
58
  "groq": "570718dc81117da906dfd3e0ac63e6edbc3f24e7c78159d64b4a698cb5aa1805",
59
59
  "huggingface": "3f34d7ca275d1e1bd7bf7c8737d54f5bf1f7a0a0d2eba773099d5af83ad1224d",
60
60
  "kimi-coding": "90920ef2a2fd2ea0b56364c44b9ac5011e2b286f19bce86d5dd3253e8685d738",
@@ -1 +1 @@
1
- {"version":3,"file":"install-cli.d.ts","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAON,KAAK,mBAAmB,EAKxB,MAAM,6BAA6B,CAAC;AA4RrC;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBvE;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tlet next = current;\n\n\tif (parsed.yes) {\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tnext = applied.next;\n\t\tfor (const id of applied.enabledIds) {\n\t\t\tconst prev = current.features[id];\n\t\t\tconst state = next.features[id];\n\t\t\tif (state) {\n\t\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\t\tprevious: prev,\n\t\t\t\t\tnext: state,\n\t\t\t\t\tsecrets: applied.secrets,\n\t\t\t\t\tnonInteractive: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tfor (const id of applied.disabledIds) {\n\t\t\tawait FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t\t}\n\t} else {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\treturn 0;\n\t}\n\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tappendInstallLog(`uninstall npm purge=${purge}`);\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmSync(prefix, { recursive: true, force: true });\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tappendInstallLog(`uninstall purge=${purge}`);\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
1
+ {"version":3,"file":"install-cli.d.ts","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAON,KAAK,mBAAmB,EAKxB,MAAM,6BAA6B,CAAC;AA6RrC;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBvE;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmdirSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tconst applied = applyFeatureFlags(current, parsed);\n\tif (!applied.ok) {\n\t\tconsole.error(applied.error);\n\t\treturn applied.exitCode;\n\t}\n\tconst explicitFeatures = parsed.features.length > 0 || parsed.noFeatures.length > 0 || parsed.sets.length > 0;\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tlet next = applied.next;\n\tif (!parsed.yes && !explicitFeatures) {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\t// Gateway setup persists its own feature choices. Do not overwrite them.\n\t\tnext = loadInstallFeatures();\n\t} else {\n\t\tconst enabled = new Set([...applied.enabledIds, ...parsed.sets.map((set) => getFeatureSpec(set.id)?.id)]);\n\t\tfor (const id of enabled) {\n\t\t\tif (!id) continue;\n\t\t\tconst state = next.features[id];\n\t\t\tif (!state) continue;\n\t\t\tif (!parsed.yes) await collectSecretsForFeature(id, applied.secrets);\n\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets: applied.secrets,\n\t\t\t\tnonInteractive: parsed.yes,\n\t\t\t});\n\t\t}\n\t\tfor (const id of applied.disabledIds) await FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t}\n\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tif (!purge) appendInstallLog(\"uninstall npm purge=false\");\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmdirSync(prefix);\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tif (!purge) appendInstallLog(\"uninstall purge=false\");\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
@@ -3,7 +3,7 @@
3
3
  * Intercepted before handlePackageCommand so `lunr uninstall` (no source)
4
4
  * is product uninstall and `lunr uninstall <source>` stays package-remove.
5
5
  */
6
- import { existsSync, rmSync } from "node:fs";
6
+ import { existsSync, rmdirSync, rmSync } from "node:fs";
7
7
  import { join } from "node:path";
8
8
  import { createInterface } from "node:readline";
9
9
  import { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from "../config.js";
@@ -80,36 +80,40 @@ async function runSetup(argv) {
80
80
  return 2;
81
81
  }
82
82
  const current = loadInstallFeatures();
83
- let next = current;
84
- if (parsed.yes) {
85
- const applied = applyFeatureFlags(current, parsed);
86
- if (!applied.ok) {
87
- console.error(applied.error);
88
- return applied.exitCode;
89
- }
90
- next = applied.next;
91
- for (const id of applied.enabledIds) {
92
- const prev = current.features[id];
83
+ const applied = applyFeatureFlags(current, parsed);
84
+ if (!applied.ok) {
85
+ console.error(applied.error);
86
+ return applied.exitCode;
87
+ }
88
+ const explicitFeatures = parsed.features.length > 0 || parsed.noFeatures.length > 0 || parsed.sets.length > 0;
89
+ const { installBrowser } = await import("../core/browser/setup.js");
90
+ await installBrowser(false);
91
+ let next = applied.next;
92
+ if (!parsed.yes && !explicitFeatures) {
93
+ await (await import("../gateway/setup.js")).setupGateway();
94
+ // Gateway setup persists its own feature choices. Do not overwrite them.
95
+ next = loadInstallFeatures();
96
+ }
97
+ else {
98
+ const enabled = new Set([...applied.enabledIds, ...parsed.sets.map((set) => getFeatureSpec(set.id)?.id)]);
99
+ for (const id of enabled) {
100
+ if (!id)
101
+ continue;
93
102
  const state = next.features[id];
94
- if (state) {
95
- await FEATURE_HANDLERS[id].apply({
96
- previous: prev,
97
- next: state,
98
- secrets: applied.secrets,
99
- nonInteractive: true,
100
- });
101
- }
103
+ if (!state)
104
+ continue;
105
+ if (!parsed.yes)
106
+ await collectSecretsForFeature(id, applied.secrets);
107
+ await FEATURE_HANDLERS[id].apply({
108
+ previous: current.features[id],
109
+ next: state,
110
+ secrets: applied.secrets,
111
+ nonInteractive: parsed.yes,
112
+ });
102
113
  }
103
- for (const id of applied.disabledIds) {
114
+ for (const id of applied.disabledIds)
104
115
  await FEATURE_HANDLERS[id].disable({ purgeSecrets: false });
105
- }
106
116
  }
107
- else {
108
- await (await import("../gateway/setup.js")).setupGateway();
109
- return 0;
110
- }
111
- const { installBrowser } = await import("../core/browser/setup.js");
112
- await installBrowser(false);
113
117
  saveInstallFeatures(next);
114
118
  appendInstallLog(`setup installerVersion=${VERSION}`);
115
119
  console.log(`Writing ${getAgentDir()}/install-features.json`);
@@ -238,6 +242,7 @@ async function runProductUninstall(argv) {
238
242
  return 1;
239
243
  }
240
244
  }
245
+ await (await import("../gateway/service.js")).teardownGatewayService();
241
246
  if (existsSync(agentDir))
242
247
  rmSync(agentDir, { recursive: true, force: true });
243
248
  console.log(`purged ${agentDir}`);
@@ -246,7 +251,8 @@ async function runProductUninstall(argv) {
246
251
  console.log(`sessions, auth, and gateway config kept in ${agentDir}`);
247
252
  console.log(`Add --purge to delete that directory.`);
248
253
  }
249
- appendInstallLog(`uninstall npm purge=${purge}`);
254
+ if (!purge)
255
+ appendInstallLog("uninstall npm purge=false");
250
256
  return 0;
251
257
  }
252
258
  const prefix = resolveInstallPrefix();
@@ -261,6 +267,7 @@ async function runProductUninstall(argv) {
261
267
  return 1;
262
268
  }
263
269
  }
270
+ await (await import("../gateway/service.js")).teardownGatewayService();
264
271
  const versions = join(prefix, "versions");
265
272
  const bin = join(prefix, "bin");
266
273
  if (existsSync(versions))
@@ -273,7 +280,7 @@ async function runProductUninstall(argv) {
273
280
  rmSync(agentDir, { recursive: true, force: true });
274
281
  if (existsSync(prefix)) {
275
282
  try {
276
- rmSync(prefix, { recursive: true, force: true });
283
+ rmdirSync(prefix);
277
284
  }
278
285
  catch {
279
286
  // prefix may still hold unrelated files
@@ -285,7 +292,8 @@ async function runProductUninstall(argv) {
285
292
  console.log(`sessions, auth, and gateway config kept in ${agentDir}`);
286
293
  }
287
294
  console.log("Remove the PATH line from your shell profile if you added one.");
288
- appendInstallLog(`uninstall purge=${purge}`);
295
+ if (!purge)
296
+ appendInstallLog("uninstall purge=false");
289
297
  return 0;
290
298
  }
291
299
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"install-cli.js","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tlet next = current;\n\n\tif (parsed.yes) {\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tnext = applied.next;\n\t\tfor (const id of applied.enabledIds) {\n\t\t\tconst prev = current.features[id];\n\t\t\tconst state = next.features[id];\n\t\t\tif (state) {\n\t\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\t\tprevious: prev,\n\t\t\t\t\tnext: state,\n\t\t\t\t\tsecrets: applied.secrets,\n\t\t\t\t\tnonInteractive: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tfor (const id of applied.disabledIds) {\n\t\t\tawait FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t\t}\n\t} else {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\treturn 0;\n\t}\n\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tappendInstallLog(`uninstall npm purge=${purge}`);\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmSync(prefix, { recursive: true, force: true });\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tappendInstallLog(`uninstall purge=${purge}`);\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
1
+ {"version":3,"file":"install-cli.js","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmdirSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tconst applied = applyFeatureFlags(current, parsed);\n\tif (!applied.ok) {\n\t\tconsole.error(applied.error);\n\t\treturn applied.exitCode;\n\t}\n\tconst explicitFeatures = parsed.features.length > 0 || parsed.noFeatures.length > 0 || parsed.sets.length > 0;\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tlet next = applied.next;\n\tif (!parsed.yes && !explicitFeatures) {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\t// Gateway setup persists its own feature choices. Do not overwrite them.\n\t\tnext = loadInstallFeatures();\n\t} else {\n\t\tconst enabled = new Set([...applied.enabledIds, ...parsed.sets.map((set) => getFeatureSpec(set.id)?.id)]);\n\t\tfor (const id of enabled) {\n\t\t\tif (!id) continue;\n\t\t\tconst state = next.features[id];\n\t\t\tif (!state) continue;\n\t\t\tif (!parsed.yes) await collectSecretsForFeature(id, applied.secrets);\n\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets: applied.secrets,\n\t\t\t\tnonInteractive: parsed.yes,\n\t\t\t});\n\t\t}\n\t\tfor (const id of applied.disabledIds) await FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t}\n\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tif (!purge) appendInstallLog(\"uninstall npm purge=false\");\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmdirSync(prefix);\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tif (!purge) appendInstallLog(\"uninstall purge=false\");\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
@@ -54,11 +54,20 @@ export declare class AgentSessionRuntime {
54
54
  private _modelFallbackMessage?;
55
55
  private detached;
56
56
  private transferring;
57
+ private replacement?;
58
+ private teardown?;
59
+ private closing;
60
+ private withReplacement;
57
61
  get isDetached(): boolean;
62
+ /** Correlated prompt entry for scheduled hosts; never queues across a lifecycle change. */
63
+ promptWithCompletion(text: string, options?: Parameters<AgentSession["promptWithCompletion"]>[1]): Promise<{
64
+ messages: import("@ashx-j/lunr-agent").AgentMessage[];
65
+ }>;
58
66
  releaseForTransfer(options?: {
59
67
  stop?: boolean;
60
68
  signal?: AbortSignal;
61
69
  }): Promise<void>;
70
+ private releaseForTransferOwned;
62
71
  constructor(_session: AgentSession, _services: AgentSessionServices, createRuntime: CreateAgentSessionRuntimeFactory, _diagnostics?: AgentSessionRuntimeDiagnostic[], _modelFallbackMessage?: string, onRuntimeApplied?: AgentSessionRuntimeApplied);
63
72
  private createOwnedRuntime;
64
73
  get services(): AgentSessionServices;
@@ -89,6 +98,7 @@ export declare class AgentSessionRuntime {
89
98
  }): Promise<{
90
99
  cancelled: boolean;
91
100
  }>;
101
+ private switchSessionOwned;
92
102
  newSession(options?: {
93
103
  parentSession?: string;
94
104
  setup?: (sessionManager: SessionManager) => Promise<void>;
@@ -96,6 +106,7 @@ export declare class AgentSessionRuntime {
96
106
  }): Promise<{
97
107
  cancelled: boolean;
98
108
  }>;
109
+ private newSessionOwned;
99
110
  fork(entryId: string, options?: {
100
111
  position?: "before" | "at";
101
112
  withSession?: (ctx: ReplacedSessionContext) => Promise<void>;
@@ -103,6 +114,7 @@ export declare class AgentSessionRuntime {
103
114
  cancelled: boolean;
104
115
  selectedText?: string;
105
116
  }>;
117
+ private forkOwned;
106
118
  /**
107
119
  * Import a session JSONL file and switch runtime state to the imported session.
108
120
  *
@@ -113,6 +125,7 @@ export declare class AgentSessionRuntime {
113
125
  importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{
114
126
  cancelled: boolean;
115
127
  }>;
128
+ private importFromJsonlOwned;
116
129
  dispose(): Promise<void>;
117
130
  }
118
131
  /**