rovecode 0.3.3 → 0.4.0-beta.2

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 (491) hide show
  1. package/CHANGELOG.md +512 -0
  2. package/README.md +33 -48
  3. package/bin/rovecode.js +24 -0
  4. package/dist/cli/app-dybnr56b.js +2 -0
  5. package/dist/cli/ask-user-p8hq4xgj.js +2 -0
  6. package/dist/cli/auth-login-ewpgw5sm.js +2 -0
  7. package/dist/cli/auth-m8p9grty.js +2 -0
  8. package/dist/cli/bench-xv3ypwev.js +9 -0
  9. package/dist/cli/catalog-737wb2s0.js +2 -0
  10. package/dist/cli/cli-arhg40m0.js +2 -0
  11. package/dist/cli/client-cf2pxx8q.js +2 -0
  12. package/dist/cli/commands-3p7e4xxs.js +2 -0
  13. package/dist/cli/connect-3q93d7cb.js +2 -0
  14. package/dist/cli/context-cmd-eqxmxhzq.js +2 -0
  15. package/dist/cli/context-report-hbw9zfes.js +2 -0
  16. package/dist/cli/count-remote-mby98cd0.js +2 -0
  17. package/dist/cli/design-122y0axd.js +2 -0
  18. package/dist/cli/dispatch-b4egzvvh.js +2 -0
  19. package/dist/cli/doctor-x4jkv72e.js +3 -0
  20. package/dist/cli/executor-ftvg6tsy.js +2 -0
  21. package/dist/cli/export-pdgdhkch.js +2 -0
  22. package/dist/cli/files-cez9a96p.js +2 -0
  23. package/dist/cli/gauntlet-r3xxaszc.js +2 -0
  24. package/dist/cli/gauntlet-runner-r515m7kk.js +10 -0
  25. package/dist/cli/gauntlet-wave3-bnkjk2v2.js +5 -0
  26. package/dist/cli/gauntlet-wave4-acs9s60q.js +14 -0
  27. package/dist/cli/hashline-ewg5hbe3.js +2 -0
  28. package/dist/cli/http-n0kehsk8.js +5 -0
  29. package/dist/cli/index-z5qt1s76.js +2 -0
  30. package/dist/cli/install-80mp63kx.js +2 -0
  31. package/dist/cli/loop-12twjcat.js +2 -0
  32. package/dist/cli/main-01pv9206.js +4 -0
  33. package/dist/cli/main-0jys2ccn.js +3 -0
  34. package/dist/cli/main-1ztz6fkj.js +10 -0
  35. package/dist/cli/main-23q7cmww.js +9 -0
  36. package/dist/cli/main-2rzbexn2.js +3 -0
  37. package/dist/cli/main-2wyax8k9.js +9 -0
  38. package/dist/cli/main-2yeveeve.js +6 -0
  39. package/dist/cli/main-2z3dek0b.js +3 -0
  40. package/dist/cli/main-2zgsknth.js +3 -0
  41. package/dist/cli/main-45ejth3a.js +4 -0
  42. package/dist/cli/main-45rn3trk.js +22 -0
  43. package/dist/cli/main-4p4e2w7x.js +4 -0
  44. package/dist/cli/main-4y0tnfpa.js +16 -0
  45. package/dist/cli/main-5py0rkmc.js +4 -0
  46. package/dist/cli/main-6dtqmbt6.js +7 -0
  47. package/dist/cli/main-6h9x282m.js +4 -0
  48. package/dist/cli/main-6vjeds42.js +3 -0
  49. package/dist/cli/main-78gq4bt9.js +6 -0
  50. package/dist/cli/main-7jd5vh3x.js +4 -0
  51. package/dist/cli/main-7kt6r53y.js +4 -0
  52. package/dist/cli/main-8c1tbazx.js +58 -0
  53. package/dist/cli/main-9a9rnh47.js +19 -0
  54. package/dist/cli/main-9ht36z12.js +3 -0
  55. package/dist/cli/main-a2yfvcy9.js +7 -0
  56. package/dist/cli/main-a3f51n0x.js +5 -0
  57. package/dist/cli/main-b8zq261k.js +3 -0
  58. package/dist/cli/main-bxtvnf6d.js +13 -0
  59. package/dist/cli/main-edxc3yzt.js +4 -0
  60. package/dist/cli/main-evgz4mp5.js +21 -0
  61. package/dist/cli/main-f33fc5je.js +9 -0
  62. package/dist/cli/main-fvnpq46y.js +12 -0
  63. package/dist/cli/main-gbbty4d4.js +3 -0
  64. package/dist/cli/main-gth53dnt.js +25 -0
  65. package/dist/cli/main-hqbz10aw.js +9 -0
  66. package/dist/cli/main-hrrvcfan.js +38 -0
  67. package/dist/cli/main-hzwtsb2m.js +5 -0
  68. package/dist/cli/main-j7ttv0sd.js +34 -0
  69. package/dist/cli/main-jak598k9.js +5 -0
  70. package/dist/cli/main-kba6zeyd.js +6 -0
  71. package/dist/cli/main-kwwsz6rq.js +3 -0
  72. package/dist/cli/main-m8vm17zq.js +3 -0
  73. package/dist/cli/main-mg4f96e1.js +3 -0
  74. package/dist/cli/main-mg9b20ac.js +18 -0
  75. package/dist/cli/main-mgb9ccnx.js +3 -0
  76. package/dist/cli/main-mjt2p7aj.js +3 -0
  77. package/dist/cli/main-n6qrdbmy.js +3 -0
  78. package/dist/cli/main-na7wse0x.js +5 -0
  79. package/dist/cli/main-nqveez48.js +4 -0
  80. package/dist/cli/main-ntqef02r.js +10 -0
  81. package/dist/cli/main-nvc3yjay.js +136 -0
  82. package/dist/cli/main-p0cfn6nr.js +16 -0
  83. package/dist/cli/main-qj2djy17.js +19 -0
  84. package/dist/cli/main-qsevpgsv.js +3 -0
  85. package/dist/cli/main-qvarybsp.js +3 -0
  86. package/dist/cli/main-rebtt91r.js +5 -0
  87. package/dist/cli/main-rpg7h8mb.js +3 -0
  88. package/dist/cli/main-rsy72qmw.js +15 -0
  89. package/dist/cli/main-rvetps99.js +18 -0
  90. package/dist/cli/main-s4bb0jav.js +3 -0
  91. package/dist/cli/main-s9v8k74e.js +3 -0
  92. package/dist/cli/main-tjvwmscs.js +3 -0
  93. package/dist/cli/main-tkgarpjj.js +4 -0
  94. package/dist/cli/main-v8y60bb2.js +3 -0
  95. package/dist/cli/main-vhrrq337.js +3 -0
  96. package/dist/cli/main-vp2dfb7s.js +4 -0
  97. package/dist/cli/main-vqbr22sz.js +8 -0
  98. package/dist/cli/main-vxnwe5xx.js +18 -0
  99. package/dist/cli/main-wgph00xf.js +5 -0
  100. package/dist/cli/main-wk2csfnj.js +5 -0
  101. package/dist/cli/main-wm997zjx.js +3 -0
  102. package/dist/cli/main-wpkyraxh.js +3 -0
  103. package/dist/cli/main-wqt32p5x.js +4 -0
  104. package/dist/cli/main-x9ct6y1a.js +3 -0
  105. package/dist/cli/main-xfekqh9m.js +7 -0
  106. package/dist/cli/main-xt9zc3n6.js +7 -0
  107. package/dist/cli/main-xx2z3zh5.js +4 -0
  108. package/dist/cli/main-y5c82rxr.js +3 -0
  109. package/dist/cli/main-yrjt2sqt.js +14 -0
  110. package/dist/cli/main-ys6zj3yr.js +3 -0
  111. package/dist/cli/main-ywbxshqc.js +8 -0
  112. package/dist/cli/main-z13755t8.js +25 -0
  113. package/dist/cli/main-zc7pyrbj.js +4 -0
  114. package/dist/cli/main.js +279 -0
  115. package/dist/cli/market-cmd-bm5xvn9f.js +5 -0
  116. package/dist/cli/mcp-login-bthtfpt7.js +2 -0
  117. package/dist/cli/mcp-market-cmd-mbeshfyd.js +2 -0
  118. package/dist/cli/notify-54v5z9dz.js +2 -0
  119. package/dist/cli/oauth-g5gme95c.js +2 -0
  120. package/dist/cli/output-satndjap.js +16 -0
  121. package/dist/cli/profiles-sfhpbq3m.js +2 -0
  122. package/dist/cli/provider-config-hv3xtdt4.js +2 -0
  123. package/dist/cli/provider-kwzq6g84.js +2 -0
  124. package/dist/cli/registry-fh0hdnyn.js +2 -0
  125. package/dist/cli/registry-y1y8e94r.js +2 -0
  126. package/dist/cli/repl-t4z03mqq.js +11 -0
  127. package/dist/cli/resume-fqt4chg8.js +2 -0
  128. package/dist/cli/run-flags-rysbag9t.js +2 -0
  129. package/dist/cli/runtime-j19fjbsa.js +2 -0
  130. package/dist/cli/sandbox-config-g4qxd7y5.js +2 -0
  131. package/dist/cli/server-r0b6bksk.js +5 -0
  132. package/dist/cli/session-arg-txmn5g4x.js +2 -0
  133. package/dist/cli/session-ed250d9j.js +2 -0
  134. package/dist/cli/sessions-cmd-adw7svfn.js +7 -0
  135. package/dist/cli/settings-y9rzcqx8.js +2 -0
  136. package/dist/cli/setup-jmbr11j0.js +2 -0
  137. package/dist/cli/sextant-smoke-tcth0vea.js +5 -0
  138. package/dist/cli/skills-cmd-zbdy99v6.js +2 -0
  139. package/dist/cli/smoke-1bg937kx.js +8 -0
  140. package/dist/cli/start-chat-p01cdks3.js +12 -0
  141. package/dist/cli/stream-4wmyaypz.js +2 -0
  142. package/dist/cli/task-eg4s093s.js +2 -0
  143. package/dist/cli/tasks-12v9rr9k.js +2 -0
  144. package/dist/cli/thinking-a5ngvqyh.js +2 -0
  145. package/dist/cli/todo-1wxpcecx.js +2 -0
  146. package/dist/cli/tools-2ftsya7w.js +2 -0
  147. package/dist/cli/tools-x1tj4fxm.js +2 -0
  148. package/dist/cli/trust-cmd-hccxehzb.js +2 -0
  149. package/dist/cli/update-check-ygt3vd7m.js +2 -0
  150. package/dist/cli/update-cmd-v23qhr8c.js +2 -0
  151. package/dist/cli/voice-g1gtck92.js +2 -0
  152. package/dist/cli/webfetch-0nnrjgb5.js +2 -0
  153. package/dist/cli/websearch-f0vr2p7d.js +2 -0
  154. package/dist/cli/workspace-9rq1w4ta.js +2 -0
  155. package/dist/lib/index.js +62 -0
  156. package/dist/lib/models-index.json +1 -0
  157. package/dist/lib/plugins.js +6 -0
  158. package/dist/lib/providers.js +17 -0
  159. package/dist/lib/public-api.js +20 -0
  160. package/dist/rovecode.exe +4 -0
  161. package/package.json +83 -72
  162. package/bin/rovecode.ts +0 -21
  163. package/src/acp/server.ts +0 -374
  164. package/src/cli/auth-login.ts +0 -122
  165. package/src/cli/connect.ts +0 -244
  166. package/src/cli/context-cmd.ts +0 -199
  167. package/src/cli/dispatch.ts +0 -82
  168. package/src/cli/doctor.ts +0 -362
  169. package/src/cli/export.ts +0 -276
  170. package/src/cli/help.ts +0 -293
  171. package/src/cli/is-tui-invocation.ts +0 -8
  172. package/src/cli/main.ts +0 -583
  173. package/src/cli/market-cmd.ts +0 -658
  174. package/src/cli/mcp-login.ts +0 -141
  175. package/src/cli/mcp-market-cmd.ts +0 -302
  176. package/src/cli/output.ts +0 -382
  177. package/src/cli/repl.ts +0 -250
  178. package/src/cli/repomap-root.ts +0 -14
  179. package/src/cli/resume.ts +0 -57
  180. package/src/cli/run-flags.ts +0 -43
  181. package/src/cli/run-limits.ts +0 -78
  182. package/src/cli/runtime.ts +0 -931
  183. package/src/cli/session-arg.ts +0 -30
  184. package/src/cli/sessions-cmd.ts +0 -145
  185. package/src/cli/setup.ts +0 -153
  186. package/src/cli/skills-cmd.ts +0 -194
  187. package/src/cli/start-chat.ts +0 -65
  188. package/src/cli/trust-cmd.ts +0 -52
  189. package/src/coding/bash.ts +0 -148
  190. package/src/coding/checkpoints.ts +0 -327
  191. package/src/coding/diff.ts +0 -138
  192. package/src/coding/files.ts +0 -341
  193. package/src/coding/hashline.ts +0 -274
  194. package/src/coding/lsp-gate.ts +0 -254
  195. package/src/coding/lsp-servers.ts +0 -147
  196. package/src/coding/lsp.ts +0 -283
  197. package/src/coding/repomap-cache.ts +0 -99
  198. package/src/coding/repomap-files.ts +0 -192
  199. package/src/coding/repomap.ts +0 -481
  200. package/src/core/agents.ts +0 -255
  201. package/src/core/compaction.ts +0 -259
  202. package/src/core/config.ts +0 -289
  203. package/src/core/context-report.ts +0 -228
  204. package/src/core/context.ts +0 -60
  205. package/src/core/count-remote.ts +0 -107
  206. package/src/core/execpolicy-rules.ts +0 -196
  207. package/src/core/execpolicy.ts +0 -385
  208. package/src/core/executor.ts +0 -454
  209. package/src/core/guardrails.ts +0 -400
  210. package/src/core/hooks.ts +0 -411
  211. package/src/core/images.ts +0 -230
  212. package/src/core/intro.ts +0 -266
  213. package/src/core/loop.ts +0 -567
  214. package/src/core/modes.ts +0 -372
  215. package/src/core/orchestrator.ts +0 -245
  216. package/src/core/proc-group.ts +0 -48
  217. package/src/core/project-trust.ts +0 -98
  218. package/src/core/reflection.ts +0 -165
  219. package/src/core/sandbox-config.ts +0 -186
  220. package/src/core/session-id.ts +0 -24
  221. package/src/core/session-images.ts +0 -73
  222. package/src/core/session-ops.ts +0 -183
  223. package/src/core/session-text.ts +0 -29
  224. package/src/core/session.ts +0 -469
  225. package/src/core/settings.ts +0 -170
  226. package/src/core/tasks.ts +0 -646
  227. package/src/core/token-scale.ts +0 -108
  228. package/src/core/tools.ts +0 -309
  229. package/src/core/trust.ts +0 -104
  230. package/src/core/types.ts +0 -330
  231. package/src/core/update-check.ts +0 -171
  232. package/src/core/usage.ts +0 -204
  233. package/src/core/validate.ts +0 -121
  234. package/src/core/verify-gate.ts +0 -159
  235. package/src/core/verify.ts +0 -236
  236. package/src/core/voice.ts +0 -158
  237. package/src/core/win-job.ts +0 -183
  238. package/src/core/workspace.ts +0 -184
  239. package/src/design/audit.ts +0 -797
  240. package/src/design/direction.ts +0 -190
  241. package/src/design/rules.ts +0 -157
  242. package/src/eval/bench.ts +0 -150
  243. package/src/eval/gauntlet-runner.ts +0 -215
  244. package/src/eval/gauntlet-support.ts +0 -84
  245. package/src/eval/gauntlet-wave3.ts +0 -269
  246. package/src/eval/gauntlet-wave4.ts +0 -217
  247. package/src/eval/gauntlet.ts +0 -253
  248. package/src/index.ts +0 -17
  249. package/src/lanes/agy.ts +0 -95
  250. package/src/lanes/approval.ts +0 -24
  251. package/src/lanes/claude.ts +0 -129
  252. package/src/lanes/codex.ts +0 -127
  253. package/src/lanes/events.ts +0 -130
  254. package/src/lanes/job.ts +0 -142
  255. package/src/lanes/opencode.ts +0 -122
  256. package/src/lanes/process.ts +0 -184
  257. package/src/lanes/progress.ts +0 -183
  258. package/src/lanes/registry.ts +0 -178
  259. package/src/lanes/runner.ts +0 -124
  260. package/src/lanes/types.ts +0 -112
  261. package/src/market/catalogs/mcp-docs.json +0 -111
  262. package/src/market/catalogs/plugins.json +0 -111
  263. package/src/market/catalogs/skills.json +0 -478
  264. package/src/market/clone.ts +0 -72
  265. package/src/market/context-cost.ts +0 -121
  266. package/src/market/digest.ts +0 -106
  267. package/src/market/index.ts +0 -22
  268. package/src/market/install.ts +0 -578
  269. package/src/market/manifest.ts +0 -187
  270. package/src/market/prereq.ts +0 -145
  271. package/src/market/registry.ts +0 -363
  272. package/src/market/resolve.ts +0 -111
  273. package/src/market/types.ts +0 -236
  274. package/src/market/validate.ts +0 -227
  275. package/src/mcp/client.ts +0 -449
  276. package/src/mcp/config.ts +0 -252
  277. package/src/mcp/local-package.ts +0 -211
  278. package/src/mcp/market-catalog.ts +0 -84
  279. package/src/mcp/market-install.ts +0 -289
  280. package/src/mcp/market.ts +0 -362
  281. package/src/mcp/oauth.ts +0 -251
  282. package/src/mcp/prompts-resources.ts +0 -249
  283. package/src/mcp/shared.ts +0 -149
  284. package/src/mcp/status.ts +0 -67
  285. package/src/mcp/tools.ts +0 -275
  286. package/src/mcp/transport.ts +0 -122
  287. package/src/mcp/trust.ts +0 -25
  288. package/src/memory/blocks.ts +0 -278
  289. package/src/memory/recall.ts +0 -355
  290. package/src/memory/scope.ts +0 -182
  291. package/src/memory/store.ts +0 -105
  292. package/src/memory/tools.ts +0 -99
  293. package/src/plugins/cli.ts +0 -119
  294. package/src/plugins/discover.ts +0 -108
  295. package/src/plugins/index.ts +0 -50
  296. package/src/plugins/install.ts +0 -184
  297. package/src/plugins/load.ts +0 -124
  298. package/src/plugins/manifest.ts +0 -92
  299. package/src/plugins/state.ts +0 -83
  300. package/src/providers/auth.ts +0 -408
  301. package/src/providers/cache.ts +0 -223
  302. package/src/providers/catalog-local.ts +0 -160
  303. package/src/providers/catalog.ts +0 -421
  304. package/src/providers/middleware-context.ts +0 -86
  305. package/src/providers/middleware.ts +0 -373
  306. package/src/providers/model-list.ts +0 -23
  307. package/src/providers/oauth/common.ts +0 -105
  308. package/src/providers/oauth/device-code.ts +0 -107
  309. package/src/providers/oauth/github-copilot.ts +0 -146
  310. package/src/providers/oauth/loopback.ts +0 -158
  311. package/src/providers/oauth/openai.ts +0 -163
  312. package/src/providers/oauth/openrouter.ts +0 -89
  313. package/src/providers/oauth/pkce.ts +0 -45
  314. package/src/providers/oauth/registry.ts +0 -39
  315. package/src/providers/oauth/seam.ts +0 -89
  316. package/src/providers/profile-glm53.ts +0 -111
  317. package/src/providers/profile-sonnet5-persona.ts +0 -65
  318. package/src/providers/profile-sonnet5-voice.ts +0 -23
  319. package/src/providers/profiles.ts +0 -156
  320. package/src/providers/provider-config.ts +0 -311
  321. package/src/providers/registry.ts +0 -333
  322. package/src/providers/responses.ts +0 -209
  323. package/src/providers/retry.ts +0 -234
  324. package/src/providers/router.ts +0 -294
  325. package/src/providers/sse.ts +0 -26
  326. package/src/providers/stream-errors.ts +0 -117
  327. package/src/providers/stream.ts +0 -566
  328. package/src/providers/thinking.ts +0 -189
  329. package/src/providers/wire-messages.ts +0 -129
  330. package/src/providers/wire-responses.ts +0 -79
  331. package/src/providers/wire-select.ts +0 -53
  332. package/src/server/http.ts +0 -291
  333. package/src/server/openapi.ts +0 -246
  334. package/src/sextant/card-hits.ts +0 -102
  335. package/src/sextant/card-keys.ts +0 -55
  336. package/src/sextant/context-source.ts +0 -157
  337. package/src/sextant/crew-cards.ts +0 -350
  338. package/src/sextant/draw-agents.ts +0 -273
  339. package/src/sextant/draw-code.ts +0 -388
  340. package/src/sextant/draw-context.ts +0 -222
  341. package/src/sextant/draw-frame.ts +0 -164
  342. package/src/sextant/draw-market.ts +0 -573
  343. package/src/sextant/draw-messages.ts +0 -386
  344. package/src/sextant/draw-pet.ts +0 -230
  345. package/src/sextant/draw-plan.ts +0 -187
  346. package/src/sextant/draw-tabs.ts +0 -85
  347. package/src/sextant/draw-util.ts +0 -65
  348. package/src/sextant/draw-wizard.ts +0 -378
  349. package/src/sextant/engine.ts +0 -230
  350. package/src/sextant/frame-hits.ts +0 -25
  351. package/src/sextant/frame.ts +0 -101
  352. package/src/sextant/git-status.ts +0 -197
  353. package/src/sextant/grid.ts +0 -59
  354. package/src/sextant/input.ts +0 -119
  355. package/src/sextant/keys.ts +0 -521
  356. package/src/sextant/layout.ts +0 -86
  357. package/src/sextant/local-commands.ts +0 -169
  358. package/src/sextant/market-source.ts +0 -287
  359. package/src/sextant/mentions.ts +0 -200
  360. package/src/sextant/message-hits.ts +0 -26
  361. package/src/sextant/model.ts +0 -387
  362. package/src/sextant/overlays.ts +0 -456
  363. package/src/sextant/panel-hits.ts +0 -38
  364. package/src/sextant/pet.ts +0 -399
  365. package/src/sextant/screen.ts +0 -324
  366. package/src/sextant/scroll-hits.ts +0 -66
  367. package/src/sextant/scrollbar.ts +0 -82
  368. package/src/sextant/sextant-bridge.ts +0 -174
  369. package/src/sextant/sextant-cards.ts +0 -142
  370. package/src/sextant/sextant-diff-base.ts +0 -63
  371. package/src/sextant/sextant-files.ts +0 -154
  372. package/src/sextant/sextant-frame-loop.ts +0 -335
  373. package/src/sextant/sextant-renderer.ts +0 -574
  374. package/src/sextant/sextant-repo.ts +0 -140
  375. package/src/sextant/theme.ts +0 -66
  376. package/src/sextant/tool-rows.ts +0 -189
  377. package/src/sextant/types.ts +0 -493
  378. package/src/skills/index.ts +0 -387
  379. package/src/skills/pack.ts +0 -220
  380. package/src/skills/spec.ts +0 -162
  381. package/src/skills/tools.ts +0 -69
  382. package/src/skills/versioned.ts +0 -227
  383. package/src/telemetry/otel-export.ts +0 -122
  384. package/src/telemetry/otel-lanes.ts +0 -89
  385. package/src/telemetry/otel-logs.ts +0 -131
  386. package/src/telemetry/otel-metrics.ts +0 -136
  387. package/src/telemetry/otel.ts +0 -397
  388. package/src/telemetry/otlp.ts +0 -76
  389. package/src/tools/ask-user.ts +0 -156
  390. package/src/tools/bash-bg.ts +0 -94
  391. package/src/tools/bash-jobs.ts +0 -237
  392. package/src/tools/design.ts +0 -151
  393. package/src/tools/evalcell.ts +0 -338
  394. package/src/tools/html-text.ts +0 -139
  395. package/src/tools/provider.ts +0 -149
  396. package/src/tools/task.ts +0 -250
  397. package/src/tools/todo.ts +0 -320
  398. package/src/tools/webfetch.ts +0 -332
  399. package/src/tools/websearch.ts +0 -359
  400. package/src/tui/agents-cmd.ts +0 -41
  401. package/src/tui/app.ts +0 -749
  402. package/src/tui/attach.ts +0 -127
  403. package/src/tui/boot-notes.ts +0 -41
  404. package/src/tui/builtin-prompts.ts +0 -59
  405. package/src/tui/checkpoints-cmd.ts +0 -70
  406. package/src/tui/clipboard-image.ts +0 -81
  407. package/src/tui/clipboard.ts +0 -78
  408. package/src/tui/commands.ts +0 -283
  409. package/src/tui/config-view.ts +0 -53
  410. package/src/tui/context-cmds.ts +0 -282
  411. package/src/tui/cost.ts +0 -108
  412. package/src/tui/crash-guard.ts +0 -173
  413. package/src/tui/focus-terminal.ts +0 -34
  414. package/src/tui/git-cmds.ts +0 -273
  415. package/src/tui/git-plain.ts +0 -58
  416. package/src/tui/info-cmd.ts +0 -150
  417. package/src/tui/input-plain.ts +0 -76
  418. package/src/tui/mcp-cmd.ts +0 -128
  419. package/src/tui/memory-note.ts +0 -77
  420. package/src/tui/modes-cmd.ts +0 -45
  421. package/src/tui/notify-seq.ts +0 -100
  422. package/src/tui/notify.ts +0 -318
  423. package/src/tui/overlays.ts +0 -97
  424. package/src/tui/pi-renderer.ts +0 -428
  425. package/src/tui/providers-cmd.ts +0 -377
  426. package/src/tui/reasoning-view.ts +0 -56
  427. package/src/tui/renderer.ts +0 -128
  428. package/src/tui/replay-marker.ts +0 -29
  429. package/src/tui/session-cmd.ts +0 -148
  430. package/src/tui/session-manage.ts +0 -95
  431. package/src/tui/sextant-attach.ts +0 -102
  432. package/src/tui/sextant-io.ts +0 -202
  433. package/src/tui/sextant-smoke.ts +0 -110
  434. package/src/tui/shell-cmd.ts +0 -158
  435. package/src/tui/smoke.ts +0 -72
  436. package/src/tui/staged-terminal.ts +0 -50
  437. package/src/tui/startup.ts +0 -12
  438. package/src/tui/theme.ts +0 -59
  439. package/src/tui/todo-label.ts +0 -7
  440. package/src/tui/trust-card.ts +0 -107
  441. package/src/tui/tui-commands.ts +0 -87
  442. package/tsconfig.json +0 -30
  443. package/vendor/pi-tui/LICENSE +0 -21
  444. package/vendor/pi-tui/PATCHES.md +0 -12
  445. package/vendor/pi-tui/PROVENANCE.md +0 -12
  446. package/vendor/pi-tui/README.upstream.md +0 -854
  447. package/vendor/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  448. package/vendor/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  449. package/vendor/pi-tui/src/alt-screen-search.ts +0 -158
  450. package/vendor/pi-tui/src/autocomplete.ts +0 -827
  451. package/vendor/pi-tui/src/components/alt-screen-flash.ts +0 -52
  452. package/vendor/pi-tui/src/components/box.ts +0 -138
  453. package/vendor/pi-tui/src/components/cancellable-loader.ts +0 -41
  454. package/vendor/pi-tui/src/components/editor.ts +0 -2364
  455. package/vendor/pi-tui/src/components/h-stack.ts +0 -45
  456. package/vendor/pi-tui/src/components/image.ts +0 -128
  457. package/vendor/pi-tui/src/components/input.ts +0 -448
  458. package/vendor/pi-tui/src/components/loader.ts +0 -93
  459. package/vendor/pi-tui/src/components/markdown.ts +0 -1016
  460. package/vendor/pi-tui/src/components/scroll-view.ts +0 -217
  461. package/vendor/pi-tui/src/components/select-list.ts +0 -230
  462. package/vendor/pi-tui/src/components/settings-list.ts +0 -277
  463. package/vendor/pi-tui/src/components/spacer.ts +0 -29
  464. package/vendor/pi-tui/src/components/stack.ts +0 -155
  465. package/vendor/pi-tui/src/components/text.ts +0 -108
  466. package/vendor/pi-tui/src/components/truncated-text.ts +0 -66
  467. package/vendor/pi-tui/src/components/v-stack.ts +0 -34
  468. package/vendor/pi-tui/src/editor-component.ts +0 -75
  469. package/vendor/pi-tui/src/fuzzy.ts +0 -138
  470. package/vendor/pi-tui/src/index.ts +0 -149
  471. package/vendor/pi-tui/src/keybindings.ts +0 -321
  472. package/vendor/pi-tui/src/keys.ts +0 -1402
  473. package/vendor/pi-tui/src/kill-ring.ts +0 -47
  474. package/vendor/pi-tui/src/latex.ts +0 -1381
  475. package/vendor/pi-tui/src/layout-node.ts +0 -52
  476. package/vendor/pi-tui/src/layout.ts +0 -411
  477. package/vendor/pi-tui/src/native-modifiers.ts +0 -60
  478. package/vendor/pi-tui/src/native-module-path.ts +0 -32
  479. package/vendor/pi-tui/src/stdin-buffer.ts +0 -445
  480. package/vendor/pi-tui/src/terminal-colors.ts +0 -74
  481. package/vendor/pi-tui/src/terminal-image.ts +0 -701
  482. package/vendor/pi-tui/src/terminal.ts +0 -554
  483. package/vendor/pi-tui/src/tui-alt-screen.ts +0 -1379
  484. package/vendor/pi-tui/src/tui-main-screen.ts +0 -655
  485. package/vendor/pi-tui/src/tui.ts +0 -1264
  486. package/vendor/pi-tui/src/undo-stack.ts +0 -29
  487. package/vendor/pi-tui/src/utils.ts +0 -1327
  488. package/vendor/pi-tui/src/word-navigation.ts +0 -118
  489. package/vendor/pi-tui/test/test-themes.ts +0 -39
  490. package/vendor/pi-tui/test/virtual-terminal.ts +0 -219
  491. /package/{src/providers → dist/cli}/models-index.json +0 -0
package/src/cli/help.ts DELETED
@@ -1,293 +0,0 @@
1
- /** `rovecode help [topic]` — short and grouped by default; `env`, `advanced` and `all` hold the full
2
- * reference. Pure text so it is unit-testable (main.ts dispatches on import). Wording follows
3
- * core/voice.ts: plain sentences, the two permission modes by their screen names. */
4
-
5
- import { MODE_ASK, MODE_AUTO } from "../core/voice.ts";
6
-
7
- export const HELP_TOPICS = ["", "env", "advanced", "all"] as const;
8
- export type HelpTopic = (typeof HELP_TOPICS)[number];
9
-
10
- const SHORT = `rovecode — a coding agent in your terminal
11
-
12
- start here
13
- rovecode open the cockpit (--classic: the plain chat · --plain: a bare REPL)
14
- rovecode "fix the failing test" one task, then exit
15
- rovecode connect connect a model: pick a provider, paste the key (hidden), one test call
16
- rovecode connect <id> [<url>] the same in one line — rovecode connect anthropic · rovecode connect me https://host/v1
17
-
18
- everyday
19
- rovecode run "<prompt>" --yolo one task in ${MODE_AUTO} mode
20
- rovecode run "<prompt>" --output json machine-readable result (ndjson: one line per event)
21
- rovecode model pick the default from a menu · model use <provider/model> sets it (--project pins it here)
22
- rovecode market search <q> MCP servers, skills and plugins on one shelf; install any with market install <id>
23
- --effort auto|off|low|medium|high how hard I think before answering (/effort in the TUI, ROVECODE_EFFORT=…)
24
- rovecode provider list|add|remove|test endpoints in ~/.rovecode/providers.json — live, no restart
25
- rovecode auth set <id> · auth login <id> store an API key (hidden) · sign in (github-copilot, openrouter, openai) · list · remove
26
- rovecode doctor · --resume <id> what is wrong with my setup, in one pass · reopen a session (export <id> → markdown)
27
-
28
- safety
29
- ${MODE_ASK} (default) I read freely; I ask before every write, shell command and subagent
30
- accept edits (--accept-edits) I write inside this folder without asking; shell, subagents,
31
- network and writes OUTSIDE it still ask (/accept-edits, ROVECODE_ACCEPT_EDITS=1)
32
- auto (--yolo, ROVECODE_YOLO=1) I never ask — deny rules and plan mode still hold
33
- /yolo --save · /accept-edits --save make the level stick (add --project to pin it to this repo);
34
- without --save a toggle lasts one session. ROVECODE_PERMISSION=ask|accept-edits|auto
35
- plan mode (/plan in the TUI) read-only: I can look and plan, not change anything
36
-
37
- more
38
- rovecode help env every ROVECODE_* setting (incl. the bash sandbox rungs)
39
- rovecode help advanced market · context · mcp · plugins · acp · serve · gauntlet · bench · trace · tools
40
- rovecode help all everything on one page`;
41
-
42
- const ADVANCED = `advanced — the full command reference
43
- rovecode interactive TUI chat — the full cockpit (files · code · messages · plan · usage · pet)
44
- on a colour TTY of at least 100x30 (truecolor, or 256 colours through the
45
- quantizer), else the classic chat;
46
- --classic forces the classic chat · --pet <name> names the pet · --plain = readline REPL
47
- --no-intro (or ROVECODE_INTRO=0) skips the ~0.9s opening animation
48
- rovecode chat · rovecode repl the same as bare rovecode (repl still needs --plain for the readline REPL)
49
- rovecode --help | -h this help (only with no command in front of it) · rovecode --version prints the
50
- version to stdout and the update check’s answer to stderr
51
- rovecode --resume <id> open the TUI resuming a session (full id or unique prefix); an unknown, ambiguous or
52
- malformed id is refused with the reason (exit 2) — never a new session under that name
53
- rovecode --continue reopen the newest session that holds something (also: --resume with no id);
54
- nothing to continue from → a fresh session, and the startup card says so
55
- rovecode "prompt" one-shot task (same as run; a lone path-shaped word — ./x, x.ts, an existing
56
- name — is confirmed on a TTY and refused with exit 2 off one: use "rovecode run" to send it)
57
- rovecode setup connect a model step by step (TTY only; piped stdin prints the recipe and exits 2)
58
- TUI: /agents list the subagent definitions loaded from .rovecode/agents/*.md (the bare /agents
59
- is the crew board) · /config [all] the settings this session loaded
60
- rovecode connect the same wizard when given no arguments
61
- rovecode connect <id> [<baseUrl>] [--model <id>] [--key | --key-stdin | --key-env NAME | --no-key]
62
- [--protocol openai|anthropic] [--project] [--no-test]
63
- one line: register the endpoint, store the key, pick the model, one tiny real
64
- call, persist the default. A key is never a flag value (shell history, ps):
65
- --key prompts hidden, --key-stdin reads one piped line (CI), --key-env names
66
- an env var, --no-key marks a local server.
67
- exit 0 connected · 1 the test call failed (config still written) · 2 usage
68
- rovecode smoke-tui render check: full pipeline into an 80x24 terminal emulator (dev-only)
69
- rovecode smoke-tui --sextant render check: the full cockpit at 160x44 through the pipeline (no emulator needed)
70
- rovecode run "<prompt>" run an agent task (--yolo = ${MODE_AUTO}; with no provider configured this is a
71
- startup error, exit 2 — ROVECODE_MOCK=1 asks for the scripted mock on purpose)
72
- "/name args" expands a custom command (.rovecode/commands/<name>.md, else ~/.rovecode/commands)
73
- the way the TUI does; an unknown /name is sent verbatim; model:/mode: frontmatter is
74
- TUI-only and not applied headlessly
75
- piped stdin is appended to the prompt as a fenced block — git diff | rovecode run "review this"
76
- (never read from a terminal; --no-stdin ignores it; an open pipe that sends nothing
77
- for 3 s is skipped with a note; capped at 1 MB)
78
- --max-turns N · --max-seconds S|off ceilings on one run; a hit ends it cleanly with status
79
- "budget" (exit 1) and the work so far, instead of an external kill. Headless runs
80
- default to a 20-minute wall clock; --max-seconds off removes it
81
- --max-cost D|off a spend ceiling in dollars for one run, priced from each turn's usage as it lands
82
- (the catalog's rates for the model that served it); the same clean "budget" end.
83
- A turn the catalog cannot price adds nothing and is counted in the summary
84
- --output <text|json|ndjson> text (default): progress + the final answer on stdout
85
- json: exactly ONE result object on stdout {status, summary, sessionId,
86
- model:{provider,model}, origin (served model|null), usage:{input,output,cacheRead,
87
- cacheWrite}, costUsd (null when unpriced), toolCalls:[{tool,ok,ms?}], durationMs, exitCode}
88
- ndjson: one JSON line per RunEvent, then a final {type:"result"} line
89
- json/ndjson: stdout carries only JSON, progress goes to stderr
90
- exit codes: 0 done · 1 error/budget · 2 usage/startup error · 130 aborted (Ctrl-C)
91
- exit 2 = usage/startup error (bad --output value, sandbox misconfig or unavailable rung):
92
- one stderr line, nothing on stdout; --output=<mode> is accepted as well
93
- rovecode bench run cross-harness micro-benchmarks (edits, sessions)
94
- rovecode gauntlet run the adversarial evaluation suite (offline, scripted model)
95
- rovecode gauntlet --live the gauntlet's tasks minus loop-guard (9) against the configured REAL model through
96
- the real prompt — --model <provider/model> and --effort pick; compare pass/calls/tokens
97
- rovecode tools list registered tools
98
- rovecode plugin list plugins in ~/.rovecode/plugins and .rovecode/plugins with status (active · disabled · untrusted · broken)
99
- rovecode plugin add <folder|git-url> [--project] [--force] install a plugin folder (tools, hooks, commands, skills, MCP in one manifest)
100
- rovecode plugin trust <name> approve a PROJECT plugin's current files on this machine (show <name> lists them first)
101
- rovecode plugin remove|enable|disable|untrust|show <name> (docs/plugins.md; restart to load — read once per process, like hooks)
102
- rovecode mcp search [query] MCP servers to install: the curated shelf, then the official registry (cached a day)
103
- rovecode mcp info <name> publisher, version, the exact command or URL, the keys it asks for
104
- rovecode mcp add <name> [--project] [--pick N] [--as <name>] [--yes] [--force] show the plan, ask for keys
105
- masked, write ~/.rovecode/mcp.json (or .rovecode/mcp.json); --as renames it, --force replaces an entry
106
- rovecode mcp remove <name> [--project] · rovecode mcp list (docs/mcp-market.md; /mcp does the same inside the TUI)
107
- rovecode mcp show this repo's .rovecode/mcp.json + .mcp.json: exact commands/URLs, env names, trusted or not
108
- rovecode mcp trust [--yes] · rovecode mcp untrust approve those files as they are now, or withdraw that
109
- approval — until trusted nothing in them loads; your own add --project is trusted as you approve it
110
- rovecode trust show every project file that could make rovecode RUN or IMPORT something, with what it would do:
111
- .rovecode/settings.json (verify, lsp, notify_command), hooks.ts, sandbox.json, mcp.json, .mcp.json
112
- rovecode trust [--yes] · rovecode trust untrust approve them as they are now (one store with mcp trust: path → sha256,
113
- an edit asks again) — until trusted a cloned repo's files contribute NOTHING; the user files never ask
114
- rovecode skills list [--json] every installed skill, its scope and path — and every SKILL.md the loader
115
- refused or warned about, which is the only place those warnings are visible
116
- rovecode skills validate <dir> the agentskills.io spec check, strictly: findings on stderr, exit 1, nothing written
117
- rovecode skills pack <dir> [--out <file>] [--force] a <name>.tar.gz of one skill (a symlink inside refuses the pack)
118
- rovecode skills install <dir|file.tar.gz|http(s)-url> [--user] [--force] staged, validated, then renamed into
119
- place; a URL goes through the same SSRF guard as web_fetch, on the URL AND every redirect hop
120
- rovecode market search [query] [--kind mcp|skill|plugin] one shelf over MCP servers, skills and plugins
121
- rovecode market info <id> publisher, licence, version, exactly what an install would write
122
- rovecode market docs <id> the item's own documentation, as the catalog carries it — no network
123
- rovecode market install <id|kind:id|git-url|npm-pkg> [--project] [--ref <branch|tag|commit>] [--yes]
124
- plan first, write only after you agree
125
- rovecode market list|remove|update|sources what is installed, what is behind, where each shelf came from
126
- rovecode market verify [id] re-hash what is installed and say what has changed since
127
- rovecode market validate <path|url> [--kind skill|plugin] check a catalog before anyone trusts it
128
- (docs/market.md; /market does the same inside the TUI; every subcommand takes --json)
129
- rovecode doctor [--json] [--no-connect] one pass over the setup: home (and a legacy ~/.cumulus), the default
130
- provider and where its key comes from (names, never values), the permission level and
131
- which rung set it, git/node/npm/npx/uvx on PATH with what each absence costs HERE,
132
- every configured MCP server (loads? skipped for a placeholder or an unset variable?
133
- untrusted file? connects?), the shadow checkpoints' size — and a list of what it did
134
- NOT check. exit 0 nothing broken · 1 something to fix · a missing provider is a note
135
- rovecode context [session] [--json] what fills the window, item by item, and how far our estimate is from
136
- the provider's own count of the same prompt (cache reads included — they are the prompt too)
137
- (--exact asks Anthropic to count it for real; --no-runtime skips the system prompt and tool schemas)
138
- rovecode auth set <provider> [--key <name>] store an API key (prompts on stdin; ~/.rovecode/credentials.json)
139
- rovecode auth login <provider> OAuth sign-in, stored next to the keys: github-copilot (GitHub device code — open the URL,
140
- type the code) · openrouter (PKCE in your browser, back to a loopback port on this machine) ·
141
- openai (ChatGPT device code; the token is sent over the Codex Responses wire only — see
142
- ROVECODE_OPENAI_WIRE). anthropic is refused (the Claude subscription login is an owner
143
- decision, not a port). Ctrl-C cancels (exit 130)
144
- rovecode auth list stored providers: kind (api | oauth), key name, redacted value, and for oauth the expiry
145
- rovecode auth remove <provider> delete a stored credential (api or oauth)
146
- rovecode provider list [--all] providers with a key + every providers.json entry, and the default provider/model
147
- rovecode provider add <id> <baseUrl> [--protocol openai|anthropic] [--key-env NAME] [--model <id>] [--no-key]
148
- [--project | --user | --scope user|project] [--key]
149
- register any OpenAI-compatible or Anthropic endpoint in ~/.rovecode/providers.json
150
- (--project: ./.rovecode/providers.json); --key prompts for the secret (never echoed);
151
- running TUIs/servers pick the change up live — no restart
152
- rovecode provider remove <id> delete a providers.json entry (built-ins: rovecode auth remove <id> drops the key)
153
- rovecode provider test <id> [model] one tiny real call — proves url + key + model together
154
- rovecode model list [provider] model ids (providers.json "models" or the endpoint's /models); * = current default
155
- rovecode models [provider] alias for model list
156
- rovecode model no arguments on a terminal: every configured provider's models in one
157
- numbered menu, the current one first; a pipe gets the usage line instead
158
- rovecode model use <provider/model> [--project] persist the default (in the TUI: /model <provider/model> --save)
159
- rovecode model show [provider/model] the model, its protocol, and the exact thinking field each /effort
160
- level puts on the wire (docs/thinking.md)
161
- rovecode sessions [--json] this folder's sessions, newest first: id · created · turns · first prompt (or the title);
162
- reads only the sessions that hold something, and a footer counts the empty session
163
- directories (a meta.json, nothing ever written) so they stay visible without being rows
164
- rovecode sessions rename <id|prefix> <title…> name a session (one line, ≤ 120 chars; shown in place of the first prompt)
165
- rovecode sessions delete <id|prefix> [--yes] remove the session AND its checkpoints shadow dir; asks y/N on a
166
- terminal, needs --yes off one; prints every path it removed
167
- rovecode sessions fork <id|prefix> [--json] copy a session (entries, meta, attachments; up to 256 MB of attachments)
168
- into a new id titled "… (fork #N)" — the source is untouched
169
- rovecode sessions search <terms…> [--json] title hits first, then the recall index (all terms, exact before partial)
170
- every id here is exact or a unique prefix: ambiguous or unknown → exit 2 naming the
171
- candidates, nothing created or removed
172
- rovecode trace <id|prefix> the session's messages, one line each (role · first 120 chars · tool-call count)
173
- rovecode export <session> write a session as markdown (--json: raw JSONL copy; --out <path>; --force)
174
- rovecode eval alias for gauntlet
175
- rovecode acp Agent Client Protocol v1 endpoint over stdio (Zed/JetBrains)
176
- rovecode serve headless HTTP server (ROVECODE_PORT, default 4100; loopback-only)`;
177
-
178
- const ENV = `env — every ROVECODE_* setting
179
- ROVECODE_BASE_URL any OpenAI-compatible or Anthropic endpoint
180
- ROVECODE_API_KEY API key (falls back to OPENAI_API_KEY)
181
- ROVECODE_MODEL model id (e.g. zai-org/glm-5.3)
182
- ROVECODE_MODEL_<ROLE> role fallback chain, comma-separated provider/model list; on 429/5xx
183
- the next candidate serves. Roles: DEFAULT SMOL PLAN COMMIT TASK
184
- (e.g. ROVECODE_MODEL_DEFAULT=kaesra/zai-org/glm-5.3-flash,openai/gpt-4o-mini)
185
- ROVECODE_STREAM streaming is on by default (both protocols); off|json|0|false|none use the one-shot JSON
186
- adapters; sse forces the raw SSE adapter, without the tool-call middleware, for one-shot runs
187
- ROVECODE_OPENAI_WIRE responses | chat — which OpenAI wire a request takes. Unset: a stored ChatGPT login
188
- (auth login openai) always takes /responses; provider openai takes /responses for models the
189
- catalog does not mark non-reasoning (gpt-5, o3, ids it does not know) and /chat/completions
190
- for the gpt-4o class; every other provider stays on /chat/completions. Not done yet on
191
- /responses: the model's own reasoning items are NOT sent back to it on the next turn (each
192
- turn reasons afresh; reasoning text still streams live) — that needs a reasoning part in
193
- the message store, a change across the session store, export and both other wires
194
- ROVECODE_EFFORT auto|off|low|medium|high thinking before the answer (default auto: the provider's
195
- own default stands). Anthropic gets output_config.effort or a thinking budget,
196
- whichever the model takes (learned from its own 400, then remembered); OpenAI gets
197
- reasoning_effort. Thinking is billed as output and delays the first word.
198
- ROVECODE_PROFILE model profile: off, or an id (glm-5.3 | glm-5.3-plain) whose PROMPT section is forced onto
199
- every model (request fields always follow the model id). Unset = by model id: GLM-5.3 / -Flash
200
- get the Claude Sonnet 5 persona + the working agreement appended to the system prompt
201
- (glm-5.3-plain = agreement only) plus, on OpenAI-compatible providers, Z.ai's
202
- request fields (thinking always on, reasoning_effort low|high|max — off leaves the endpoint's
203
- max, medium rounds up to high, high means max — and tool_stream when streaming). The text
204
- comes from .rovecode/profiles/<id>.md (project) or ~/.rovecode/profiles/<id>.md when present.
205
- ROVECODE_DESIGN off drops the interface-design section from the system prompt (for runs with no UI in
206
- them). Otherwise every run carries it: propose three distinct directions before the first
207
- UI in a project, let the human choose, record it with design_direction, then build to it.
208
- The section prescribes NO palette, typeface or layout -- there is no default look, on
209
- purpose -- and names the patterns to climb out of (amber accents, the reflex full-viewport
210
- hero, Inter/Roboto/Poppins, hairlines round everything, all-square corners, everything
211
- centred, violet gradients). The choice lives in .rovecode/design.json; design_audit counts
212
- those patterns in the files you touched and checks them against it.
213
- ROVECODE_PERMISSION ask|accept-edits|auto — the level this run starts at. Ladder, widest first:
214
- a CLI flag, then this, then <cwd>/.rovecode/settings.json, then ~/.rovecode/settings.json,
215
- then "ask". Write the files with /yolo --save or /accept-edits --save [--project].
216
- ROVECODE_ACCEPT_EDITS=1 start in accept-edits (writes inside the workspace do not ask)
217
- ROVECODE_YOLO=1 ${MODE_AUTO}: allow all tool actions
218
- ROVECODE_TUI cockpit | classic — force the TUI surface (the cockpit still needs a TTY; --classic wins)
219
- ROVECODE_THEME cockpit palette: night (default) | ember | contrast (/theme switches it live)
220
- ROVECODE_PET=0 hide the pet panel (rovecode); --pet <name> renames it
221
- ROVECODE_NOTIFY off | auto | bell | osc9 | osc777 — how the TUI tells you a run ended or a card needs you, ONLY while
222
- the terminal is unfocused (auto = an OSC 9 toast on Ghostty/iTerm2/kitty/Warp/WezTerm, else the bell;
223
- settings.json "bell": false is off; a terminal that never reports focus stays silent)
224
- ROVECODE_NOTIFY_WHEN unfocused (default; the terminal must report focus — Windows Terminal ≥ 1.14, Ghostty, kitty, WezTerm,
225
- iTerm2, xterm, VTE) | always (every run, as before 2026-09-07)
226
- ROVECODE_NOTIFY_COMMAND a desktop hook under the same gate: argv as a JSON string array (["notify-send","rovecode"]) or
227
- whitespace-split words, the JSON payload appended as its last argument; never a shell. From a project
228
- settings.json it applies only once that file is trusted; the user file and this variable always may
229
- ROVECODE_SANDBOX executor rung for bash: direct (default) | wsl | docker; beats .rovecode/sandbox.json {"rung","dockerImage"}
230
- ROVECODE_SANDBOX_IMAGE image for the docker rung (default debian:stable-slim; must contain bash)
231
- ROVECODE_RETRY_MAX same-model retries after a 429/5xx/transport failure (default 3 = 4 attempts; 0 = off)
232
- The wait is announced live, while it is happening, not in a summary after the run
233
- ROVECODE_RETRY_BASE_MS cap of the FIRST backoff, ms (default 1000; full jitter; a Retry-After hint is a floor)
234
- It doubles per attempt up to 20 s, and a server hint can raise the wait, never shorten it
235
- ROVECODE_FIRST_BYTE_TIMEOUT_MS how long a provider may go without ANY response before the request
236
- counts as failed and is retried (default 60000). Only the FIRST byte is on this clock:
237
- once the model is talking, the body may take as long as it takes
238
- ROVECODE_WEBFETCH_TIMEOUT_MS web_fetch request timeout in ms (default 30000)
239
- EXA_API_KEY optional Exa key for web_search; without it the search runs keyless against the
240
- same hosted endpoint. Read only where the tool is registered, never stored, and
241
- stripped from every URL and error line the tool prints
242
- ROVECODE_WEBFETCH_ALLOW_PRIVATE=1 let web_fetch reach loopback/private hosts (SSRF guard escape for local dev)
243
- ROVECODE_COMPACTION history compaction strategy: head-summarize (default) | keep-window | provider-native
244
- /compact runs the same set on demand (TUI + --plain); on this build it keeps
245
- the window and notes "no summarizer wired on this surface" — a manual compaction
246
- is durable (new session branch, marker persisted) even when it falls back
247
- ROVECODE_TASKS_MAX concurrent background tasks (default 3; further task starts queue FIFO)
248
- ROVECODE_OTEL_ENDPOINT OTLP/HTTP collector, e.g. http://host:4318 — one trace per run (run ⊃ turn ⊃ tool); unset = off
249
- ROVECODE_OTEL_HEADERS extra OTLP headers as k=v,k2=v2 (e.g. authorization=Bearer …)
250
- ROVECODE_REFLECTION=0 disable reflection nudges after failed edits; ROVECODE_REFLECTION_MAX caps them per run (default 2)
251
- ROVECODE_PORT port for rovecode serve (default 4100; loopback-only)
252
- ROVECODE_IMAGE_MAX_BYTES per-image cap in bytes for pasted and attached images (default 5 MB;
253
- at most 8 images per message). Over it, the image is refused by name, not silently dropped.
254
- ROVECODE_REPOMAP_TOKENS repo-map budget in tokens (default 1024); ROVECODE_NO_REPOMAP=1 drops the map entirely
255
- ROVECODE_HOOK_TIMEOUT_MS per-hook-call budget in ms (default 5000); ROVECODE_NO_HOOKS=1 skips hook files
256
- ROVECODE_PLUGIN_TIMEOUT_MS per-plugin import + tools() budget in ms (default 5000);
257
- ROVECODE_NO_PLUGINS=1 skips plugin discovery
258
- ROVECODE_NO_CHECKPOINTS=1 turn off the shadow-git checkpoints taken after mutating tools
259
- ROVECODE_TOOL_MIDDLEWARE=1 force the text tool-call protocol (a prompt block + a parser) even for a model
260
- the catalog says has native tool calling; ROVECODE_NO_TOOL_MIDDLEWARE=1 forces native only
261
- ROVECODE_EVAL_CELL=1 register the persistent eval cell tool (a REPL that keeps state between calls)
262
- ROVECODE_MAX_TURNS turn ceiling for one run, every surface (TUI included); a hit ends it with status
263
- "budget" and exit 1
264
- ROVECODE_MAX_SECONDS the same as a wall clock, or "off". Every surface honours it, but only
265
- one-shot runs have a DEFAULT (1200 s) — the TUI has no clock unless this sets one
266
- ROVECODE_MAX_COST the same in dollars for one run (--max-cost on a one-shot run), or "off"; no default
267
- ROVECODE_FINISH_CHECK=0 turn off the once-per-run finish check: when the model stops right after a failed tool
268
- call or an unanswered question, it is asked ONCE to finish or say what is left; the next
269
- reply ends the run either way. "done · …" on run_end still names what was left
270
- ROVECODE_VERIFY=1 turn ON the verify gate (off by default): a run that wrote files runs the project's configured
271
- check before "done"; a failure goes back to the model once, then "done · check failed (…)" says
272
- so. No check configured → nothing runs, run_end says "not verified". ROVECODE_VERIFY_TIMEOUT=<s> (120)
273
- ROVECODE_LSP the language-server table behind the per-edit diagnostics gate: "ext[,ext]=argv;…" merged over
274
- the built-in ".ts,.tsx,.mts,.cts,.js,.jsx,.mjs,.cjs=typescript-language-server --stdio"; "ext=off"
275
- drops one, "off" drops all; overrides the settings key lsp. A server not on PATH is named at boot
276
- ROVECODE_HOME credentials + user-scope providers/commands dir (default ~/.rovecode)
277
- providers: built in — kaesra openai anthropic deepseek groq openrouter ollama lmstudio
278
- together mistral cerebras fireworks perplexity xai moondream vllm
279
- plus anything in ~/.rovecode/providers.json or ./.rovecode/providers.json (rovecode provider add)
280
- key: rovecode auth set <id>, or set <ID>_API_KEY — stored creds beat env;
281
- default: providers.json "default" ("provider/model"), ROVECODE_MODEL overrides the model,
282
- ROVECODE_BASE_URL/ROVECODE_API_KEY always wins`;
283
-
284
- /** the text for a topic; an unknown topic gets the short page plus a one-line note */
285
- export function helpText(topic = ""): string {
286
- switch (topic) {
287
- case "": return SHORT;
288
- case "env": return ENV;
289
- case "advanced": return ADVANCED;
290
- case "all": return `${SHORT}\n\n${ADVANCED}\n\n${ENV}`;
291
- default: return `${SHORT}\n\nno help topic "${topic}" — topics: env · advanced · all`;
292
- }
293
- }
@@ -1,8 +0,0 @@
1
- /** Returns true when argv will start the interactive TUI (as opposed to a lightweight subcommand).
2
- * Used by bin/rovecode.ts to decide whether to route through the pre-bundled dist/cli/main.js. */
3
- import { parseCli } from "./dispatch.ts";
4
-
5
- export function isTuiInvocation(argv: string[]): boolean {
6
- const { cmd, plain } = parseCli(argv);
7
- return (cmd === "" || cmd === "chat" || cmd === "repl") && !plain;
8
- }