@quickchatai/quickreview 1.1.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/README.md +137 -57
  2. package/bin/qcr.js +1 -1
  3. package/config.example.toml +60 -14
  4. package/deploy/ansible/README.md +20 -12
  5. package/deploy/ansible/inventory.example.ini +1 -1
  6. package/deploy/collect-secrets.sh +1 -1
  7. package/deploy/qcr-update.sh +1 -1
  8. package/dist/extensions/cli/home.js +14 -0
  9. package/dist/extensions/cli/home.js.map +1 -0
  10. package/dist/extensions/cli/login-route.js +5 -0
  11. package/dist/extensions/cli/login-route.js.map +1 -0
  12. package/dist/extensions/cli/selfimprove.js +18 -0
  13. package/dist/extensions/cli/selfimprove.js.map +1 -0
  14. package/dist/extensions/home.js +350 -0
  15. package/dist/extensions/home.js.map +1 -0
  16. package/dist/extensions/login-route.js +180 -0
  17. package/dist/extensions/login-route.js.map +1 -0
  18. package/dist/extensions/onboarding.js +35 -11
  19. package/dist/extensions/onboarding.js.map +1 -1
  20. package/dist/extensions/selfimprove.js +49 -0
  21. package/dist/extensions/selfimprove.js.map +1 -0
  22. package/dist/extensions/setup-scan.js +23 -592
  23. package/dist/extensions/setup-scan.js.map +1 -1
  24. package/dist/extensions/setup.js +2 -47
  25. package/dist/extensions/setup.js.map +1 -1
  26. package/dist/src/archive/restore.js +18 -15
  27. package/dist/src/archive/restore.js.map +1 -1
  28. package/dist/src/botworker.js +13 -2
  29. package/dist/src/botworker.js.map +1 -1
  30. package/dist/src/channelfs.js +3 -26
  31. package/dist/src/channelfs.js.map +1 -1
  32. package/dist/src/ciretry.js +2 -1
  33. package/dist/src/ciretry.js.map +1 -1
  34. package/dist/src/cli.js +54 -61
  35. package/dist/src/cli.js.map +1 -1
  36. package/dist/src/cliops.js +3 -2
  37. package/dist/src/cliops.js.map +1 -1
  38. package/dist/src/commands.js +25 -2
  39. package/dist/src/commands.js.map +1 -1
  40. package/dist/src/config.js +32 -2
  41. package/dist/src/config.js.map +1 -1
  42. package/dist/src/daemon.js +50 -8
  43. package/dist/src/daemon.js.map +1 -1
  44. package/dist/src/debuground.js +1 -0
  45. package/dist/src/debuground.js.map +1 -1
  46. package/dist/src/debugroundpi.js +6 -1
  47. package/dist/src/debugroundpi.js.map +1 -1
  48. package/dist/src/dispatch.js +5 -4
  49. package/dist/src/dispatch.js.map +1 -1
  50. package/dist/src/engine/caserunner-sdk.js +15 -251
  51. package/dist/src/engine/caserunner-sdk.js.map +1 -1
  52. package/dist/src/engine/debugpi.js +17 -5
  53. package/dist/src/engine/debugpi.js.map +1 -1
  54. package/dist/src/execboundary.js +10 -3
  55. package/dist/src/execboundary.js.map +1 -1
  56. package/dist/src/github.js +51 -16
  57. package/dist/src/github.js.map +1 -1
  58. package/dist/src/githubtoken.js +346 -0
  59. package/dist/src/githubtoken.js.map +1 -0
  60. package/dist/src/home/adapters.js +349 -0
  61. package/dist/src/home/adapters.js.map +1 -0
  62. package/dist/src/home/advanced.js +318 -0
  63. package/dist/src/home/advanced.js.map +1 -0
  64. package/dist/src/home/advancedtools.js +57 -0
  65. package/dist/src/home/advancedtools.js.map +1 -0
  66. package/dist/src/home/autoreview.js +325 -0
  67. package/dist/src/home/autoreview.js.map +1 -0
  68. package/dist/src/home/daemonstatus.js +32 -0
  69. package/dist/src/home/daemonstatus.js.map +1 -0
  70. package/dist/src/home/devicelogin.js +61 -0
  71. package/dist/src/home/devicelogin.js.map +1 -0
  72. package/dist/src/home/launch.js +202 -0
  73. package/dist/src/home/launch.js.map +1 -0
  74. package/dist/src/home/loginowner.js +205 -0
  75. package/dist/src/home/loginowner.js.map +1 -0
  76. package/dist/src/home/memory.js +122 -0
  77. package/dist/src/home/memory.js.map +1 -0
  78. package/dist/src/home/model.js +811 -0
  79. package/dist/src/home/model.js.map +1 -0
  80. package/dist/src/home/panel.js +520 -0
  81. package/dist/src/home/panel.js.map +1 -0
  82. package/dist/src/home/ports.js +19 -0
  83. package/dist/src/home/ports.js.map +1 -0
  84. package/dist/src/home/review.js +163 -0
  85. package/dist/src/home/review.js.map +1 -0
  86. package/dist/src/home/reviews.js +478 -0
  87. package/dist/src/home/reviews.js.map +1 -0
  88. package/dist/src/home/setup.js +507 -0
  89. package/dist/src/home/setup.js.map +1 -0
  90. package/dist/src/home/setupadapters.js +214 -0
  91. package/dist/src/home/setupadapters.js.map +1 -0
  92. package/dist/src/home/setupcard.js +199 -0
  93. package/dist/src/home/setupcard.js.map +1 -0
  94. package/dist/src/home/setuptools.js +45 -0
  95. package/dist/src/home/setuptools.js.map +1 -0
  96. package/dist/src/home/spend.js +160 -0
  97. package/dist/src/home/spend.js.map +1 -0
  98. package/dist/src/home/switches.js +209 -0
  99. package/dist/src/home/switches.js.map +1 -0
  100. package/dist/src/home/switchon.js +439 -0
  101. package/dist/src/home/switchon.js.map +1 -0
  102. package/dist/src/home/toolnames.js +41 -0
  103. package/dist/src/home/toolnames.js.map +1 -0
  104. package/dist/src/home/tune.js +341 -0
  105. package/dist/src/home/tune.js.map +1 -0
  106. package/dist/src/home/words.js +7 -0
  107. package/dist/src/home/words.js.map +1 -0
  108. package/dist/src/homes.js +14 -0
  109. package/dist/src/homes.js.map +1 -1
  110. package/dist/src/install.js +1 -1
  111. package/dist/src/install.js.map +1 -1
  112. package/dist/src/ipc/workerspec.js +8 -0
  113. package/dist/src/ipc/workerspec.js.map +1 -1
  114. package/dist/src/live/publish.js +1 -1
  115. package/dist/src/live/publish.js.map +1 -1
  116. package/dist/src/livecli.js +1 -1
  117. package/dist/src/livecli.js.map +1 -1
  118. package/dist/src/loginhint.js +8 -3
  119. package/dist/src/loginhint.js.map +1 -1
  120. package/dist/src/loginrefresh/handover.js +121 -0
  121. package/dist/src/loginrefresh/handover.js.map +1 -0
  122. package/dist/src/loginrefresh/lock.js +54 -3
  123. package/dist/src/loginrefresh/lock.js.map +1 -1
  124. package/dist/src/loginrefresh/pirefresh.js +3 -0
  125. package/dist/src/loginrefresh/pirefresh.js.map +1 -1
  126. package/dist/src/loginrefresh/refresher.js +33 -5
  127. package/dist/src/loginrefresh/refresher.js.map +1 -1
  128. package/dist/src/loginrefresh/supervisor.js +18 -1
  129. package/dist/src/loginrefresh/supervisor.js.map +1 -1
  130. package/dist/src/npmverbs.js +46 -14
  131. package/dist/src/npmverbs.js.map +1 -1
  132. package/dist/src/onboard/choices.js +35 -4
  133. package/dist/src/onboard/choices.js.map +1 -1
  134. package/dist/src/onboard/engine.js +32 -306
  135. package/dist/src/onboard/engine.js.map +1 -1
  136. package/dist/src/onboard/pipin.js +22 -0
  137. package/dist/src/onboard/pipin.js.map +1 -0
  138. package/dist/src/onboard/stepforward.js +41 -0
  139. package/dist/src/onboard/stepforward.js.map +1 -0
  140. package/dist/src/onboard/steps/appslug.js +4 -1
  141. package/dist/src/onboard/steps/appslug.js.map +1 -1
  142. package/dist/src/onboard/steps/bringup.js +3 -2
  143. package/dist/src/onboard/steps/bringup.js.map +1 -1
  144. package/dist/src/onboard/steps/compose.js +29 -0
  145. package/dist/src/onboard/steps/compose.js.map +1 -1
  146. package/dist/src/onboard/steps/configfill.js +120 -39
  147. package/dist/src/onboard/steps/configfill.js.map +1 -1
  148. package/dist/src/onboard/steps/githubaccount.js +595 -0
  149. package/dist/src/onboard/steps/githubaccount.js.map +1 -0
  150. package/dist/src/onboard/steps/githubapp.js +65 -7
  151. package/dist/src/onboard/steps/githubapp.js.map +1 -1
  152. package/dist/src/onboard/steps/golive.js +2 -0
  153. package/dist/src/onboard/steps/golive.js.map +1 -1
  154. package/dist/src/onboard/steps/index.js +11 -0
  155. package/dist/src/onboard/steps/index.js.map +1 -1
  156. package/dist/src/onboard/steps/ingress.js +80 -25
  157. package/dist/src/onboard/steps/ingress.js.map +1 -1
  158. package/dist/src/onboard/steps/llmauth.js +103 -30
  159. package/dist/src/onboard/steps/llmauth.js.map +1 -1
  160. package/dist/src/onboard/steps/loginshare.js +213 -0
  161. package/dist/src/onboard/steps/loginshare.js.map +1 -0
  162. package/dist/src/onboard/steps/memory.js +67 -3
  163. package/dist/src/onboard/steps/memory.js.map +1 -1
  164. package/dist/src/onboard/steps/proof.js +366 -56
  165. package/dist/src/onboard/steps/proof.js.map +1 -1
  166. package/dist/src/onboard/steps/repoconfig.js +72 -0
  167. package/dist/src/onboard/steps/repoconfig.js.map +1 -0
  168. package/dist/src/onboard/steps/topology.js +6 -6
  169. package/dist/src/onboard/steps/topology.js.map +1 -1
  170. package/dist/src/onboard/steps/transport.js +9 -1
  171. package/dist/src/onboard/steps/transport.js.map +1 -1
  172. package/dist/src/onboard/steps/tuiroute.js +102 -0
  173. package/dist/src/onboard/steps/tuiroute.js.map +1 -0
  174. package/dist/src/onboard/steps/verifyup.js +17 -1
  175. package/dist/src/onboard/steps/verifyup.js.map +1 -1
  176. package/dist/src/onboard/toolnames.js +30 -0
  177. package/dist/src/onboard/toolnames.js.map +1 -0
  178. package/dist/src/operatorwrite.js +23 -0
  179. package/dist/src/operatorwrite.js.map +1 -0
  180. package/dist/src/outcomes.js +4 -1
  181. package/dist/src/outcomes.js.map +1 -1
  182. package/dist/src/piagentdir.js +13 -0
  183. package/dist/src/piagentdir.js.map +1 -0
  184. package/dist/src/pilogin.js +31 -16
  185. package/dist/src/pilogin.js.map +1 -1
  186. package/dist/src/posting-journal.js +2 -1
  187. package/dist/src/posting-journal.js.map +1 -1
  188. package/dist/src/posting-outbox.js +6 -2
  189. package/dist/src/posting-outbox.js.map +1 -1
  190. package/dist/src/posting-receipt.js +14 -1
  191. package/dist/src/posting-receipt.js.map +1 -1
  192. package/dist/src/qcrbin.js +16 -11
  193. package/dist/src/qcrbin.js.map +1 -1
  194. package/dist/src/recheck.js +2 -1
  195. package/dist/src/recheck.js.map +1 -1
  196. package/dist/src/reconcile.js +22 -2
  197. package/dist/src/reconcile.js.map +1 -1
  198. package/dist/src/reviewargs.js +122 -0
  199. package/dist/src/reviewargs.js.map +1 -0
  200. package/dist/src/reviewcli.js +7 -161
  201. package/dist/src/reviewcli.js.map +1 -1
  202. package/dist/src/reviewdetach.js +76 -11
  203. package/dist/src/reviewdetach.js.map +1 -1
  204. package/dist/src/reviewhistory.js +32 -6
  205. package/dist/src/reviewhistory.js.map +1 -1
  206. package/dist/src/reviewnow.js +45 -0
  207. package/dist/src/reviewnow.js.map +1 -0
  208. package/dist/src/scancli.js +39 -691
  209. package/dist/src/scancli.js.map +1 -1
  210. package/dist/src/selfimprove.js +66 -0
  211. package/dist/src/selfimprove.js.map +1 -0
  212. package/dist/src/setup/adapters.js +5 -223
  213. package/dist/src/setup/adapters.js.map +1 -1
  214. package/dist/src/setup/caserunner.js +15 -249
  215. package/dist/src/setup/caserunner.js.map +1 -1
  216. package/dist/src/setup/engine.js +32 -341
  217. package/dist/src/setup/engine.js.map +1 -1
  218. package/dist/src/setup/facts.js +3 -592
  219. package/dist/src/setup/facts.js.map +1 -1
  220. package/dist/src/setup/findings.js +3 -947
  221. package/dist/src/setup/findings.js.map +1 -1
  222. package/dist/src/setup/presentation.js +3 -8
  223. package/dist/src/setup/presentation.js.map +1 -1
  224. package/dist/src/setup/scan.js +3 -724
  225. package/dist/src/setup/scan.js.map +1 -1
  226. package/dist/src/setup/scanbuild.js +9 -92
  227. package/dist/src/setup/scanbuild.js.map +1 -1
  228. package/dist/src/setup/scanlease.js +3 -250
  229. package/dist/src/setup/scanlease.js.map +1 -1
  230. package/dist/src/setup/scanreport.js +3 -288
  231. package/dist/src/setup/scanreport.js.map +1 -1
  232. package/dist/src/setup/scanrun.js +3 -1732
  233. package/dist/src/setup/scanrun.js.map +1 -1
  234. package/dist/src/setup/scantree.js +3 -256
  235. package/dist/src/setup/scantree.js.map +1 -1
  236. package/dist/src/setup/stage2request.js +3 -258
  237. package/dist/src/setup/stage2request.js.map +1 -1
  238. package/dist/src/setup/unitcut.js +3 -436
  239. package/dist/src/setup/unitcut.js.map +1 -1
  240. package/dist/src/state.js +2 -0
  241. package/dist/src/state.js.map +1 -1
  242. package/dist/src/statemachine.js +4 -1
  243. package/dist/src/statemachine.js.map +1 -1
  244. package/dist/src/takeover.js +1 -0
  245. package/dist/src/takeover.js.map +1 -1
  246. package/dist/src/takeoverpi.js +15 -1
  247. package/dist/src/takeoverpi.js.map +1 -1
  248. package/dist/src/tui/app.js +49 -0
  249. package/dist/src/tui/app.js.map +1 -1
  250. package/dist/src/tui/board.js +88 -12
  251. package/dist/src/tui/board.js.map +1 -1
  252. package/dist/src/tui/cmdbar.js +4 -1
  253. package/dist/src/tui/cmdbar.js.map +1 -1
  254. package/dist/src/tui/companion.js +76 -11
  255. package/dist/src/tui/companion.js.map +1 -1
  256. package/dist/src/tui/connect.js +7 -1
  257. package/dist/src/tui/connect.js.map +1 -1
  258. package/dist/src/tui/deploytab.js +2 -2
  259. package/dist/src/tui/deploytab.js.map +1 -1
  260. package/dist/src/tui/filters.js +5 -2
  261. package/dist/src/tui/filters.js.map +1 -1
  262. package/dist/src/tui/ghread.js +61 -5
  263. package/dist/src/tui/ghread.js.map +1 -1
  264. package/dist/src/tui/index.js +109 -20
  265. package/dist/src/tui/index.js.map +1 -1
  266. package/dist/src/tui/memforward.js +39 -2
  267. package/dist/src/tui/memforward.js.map +1 -1
  268. package/dist/src/tui/memory.js +3 -16
  269. package/dist/src/tui/memory.js.map +1 -1
  270. package/dist/src/tui/memoryurl.js +22 -0
  271. package/dist/src/tui/memoryurl.js.map +1 -0
  272. package/dist/src/tui/model.js +25 -0
  273. package/dist/src/tui/model.js.map +1 -1
  274. package/dist/src/tui/prpause.js +7 -0
  275. package/dist/src/tui/prpause.js.map +1 -1
  276. package/dist/src/tui/remote.js +7 -1
  277. package/dist/src/tui/remote.js.map +1 -1
  278. package/dist/src/tui/route.js +143 -0
  279. package/dist/src/tui/route.js.map +1 -0
  280. package/dist/src/tui/setupstate.js +32 -0
  281. package/dist/src/tui/setupstate.js.map +1 -0
  282. package/dist/src/tui/sshtriage.js +102 -5
  283. package/dist/src/tui/sshtriage.js.map +1 -1
  284. package/dist/src/tui/theme.js +2 -1
  285. package/dist/src/tui/theme.js.map +1 -1
  286. package/dist/src/tui/unwedge.js +2 -12
  287. package/dist/src/tui/unwedge.js.map +1 -1
  288. package/dist/src/verdicts.js +17 -5
  289. package/dist/src/verdicts.js.map +1 -1
  290. package/dist/src/version.js +1 -1
  291. package/dist/src/version.js.map +1 -1
  292. package/dist/src/webhook.js +12 -1
  293. package/dist/src/webhook.js.map +1 -1
  294. package/dist/src/wire.js +34 -8
  295. package/dist/src/wire.js.map +1 -1
  296. package/dist/src/workerworld.js +11 -1
  297. package/dist/src/workerworld.js.map +1 -1
  298. package/docker/README.md +1 -1
  299. package/docker/companion/entrypoint.sh +20 -1
  300. package/docker/entrypoint.sh +57 -6
  301. package/docker-compose.yml +16 -1
  302. package/extensions/cli/home.ts +14 -0
  303. package/extensions/cli/login-route.ts +10 -0
  304. package/extensions/cli/selfimprove.ts +18 -0
  305. package/extensions/home.ts +484 -0
  306. package/extensions/login-route.ts +220 -0
  307. package/extensions/onboarding.ts +41 -11
  308. package/extensions/selfimprove.ts +65 -0
  309. package/extensions/setup-scan.ts +79 -766
  310. package/extensions/setup.ts +14 -70
  311. package/package.json +6 -4
  312. package/prompts/onboarding.md +58 -18
  313. package/schemas/review-result.v1.json +60 -0
  314. package/scripts/deploy.sh +8 -6
  315. package/scripts/mint-token.sh +25 -4
  316. package/scripts/qcr-host.sh +28 -5
  317. package/scripts/vm-ghcr-login.sh +7 -4
  318. package/src/archive/restore.ts +18 -21
  319. package/src/botworker.ts +13 -2
  320. package/src/channelfs.ts +3 -26
  321. package/src/ciretry.ts +2 -1
  322. package/src/cli.ts +59 -67
  323. package/src/cliops.ts +3 -2
  324. package/src/commands.ts +28 -2
  325. package/src/config.ts +62 -4
  326. package/src/daemon.ts +58 -7
  327. package/src/debuground.ts +3 -0
  328. package/src/debugroundpi.ts +12 -1
  329. package/src/dispatch.ts +5 -4
  330. package/src/engine/caserunner-sdk.ts +29 -314
  331. package/src/engine/debugpi.ts +17 -5
  332. package/src/execboundary.ts +16 -4
  333. package/src/github.ts +57 -15
  334. package/src/githubtoken.ts +435 -0
  335. package/src/home/adapters.ts +418 -0
  336. package/src/home/advanced.ts +421 -0
  337. package/src/home/advancedtools.ts +96 -0
  338. package/src/home/autoreview.ts +385 -0
  339. package/src/home/daemonstatus.ts +55 -0
  340. package/src/home/devicelogin.ts +107 -0
  341. package/src/home/launch.ts +257 -0
  342. package/src/home/loginowner.ts +248 -0
  343. package/src/home/memory.ts +176 -0
  344. package/src/home/model.ts +965 -0
  345. package/src/home/panel.ts +666 -0
  346. package/src/home/ports.ts +338 -0
  347. package/src/home/review.ts +206 -0
  348. package/src/home/reviews.ts +565 -0
  349. package/src/home/setup.ts +689 -0
  350. package/src/home/setupadapters.ts +217 -0
  351. package/src/home/setupcard.ts +288 -0
  352. package/src/home/setuptools.ts +57 -0
  353. package/src/home/spend.ts +194 -0
  354. package/src/home/switches.ts +293 -0
  355. package/src/home/switchon.ts +554 -0
  356. package/src/home/toolnames.ts +46 -0
  357. package/src/home/tune.ts +405 -0
  358. package/src/home/words.ts +8 -0
  359. package/src/homes.ts +17 -0
  360. package/src/install.ts +1 -1
  361. package/src/ipc/workerspec.ts +15 -0
  362. package/src/live/publish.ts +4 -1
  363. package/src/livecli.ts +6 -1
  364. package/src/loginhint.ts +8 -3
  365. package/src/loginrefresh/handover.ts +138 -0
  366. package/src/loginrefresh/lock.ts +72 -3
  367. package/src/loginrefresh/pirefresh.ts +3 -0
  368. package/src/loginrefresh/refresher.ts +34 -5
  369. package/src/loginrefresh/supervisor.ts +25 -2
  370. package/src/npmverbs.ts +55 -13
  371. package/src/onboard/choices.ts +40 -4
  372. package/src/onboard/engine.ts +70 -421
  373. package/src/onboard/pipin.ts +31 -0
  374. package/src/onboard/stepforward.ts +61 -0
  375. package/src/onboard/steps/appslug.ts +4 -1
  376. package/src/onboard/steps/bringup.ts +3 -2
  377. package/src/onboard/steps/compose.ts +31 -0
  378. package/src/onboard/steps/configfill.ts +144 -40
  379. package/src/onboard/steps/githubaccount.ts +716 -0
  380. package/src/onboard/steps/githubapp.ts +92 -8
  381. package/src/onboard/steps/golive.ts +2 -0
  382. package/src/onboard/steps/index.ts +11 -0
  383. package/src/onboard/steps/ingress.ts +98 -31
  384. package/src/onboard/steps/llmauth.ts +114 -29
  385. package/src/onboard/steps/loginshare.ts +258 -0
  386. package/src/onboard/steps/memory.ts +76 -3
  387. package/src/onboard/steps/proof.ts +473 -55
  388. package/src/onboard/steps/repoconfig.ts +85 -0
  389. package/src/onboard/steps/topology.ts +7 -6
  390. package/src/onboard/steps/transport.ts +15 -0
  391. package/src/onboard/steps/tuiroute.ts +119 -0
  392. package/src/onboard/steps/verifyup.ts +20 -1
  393. package/src/onboard/toolnames.ts +34 -0
  394. package/src/operatorwrite.ts +25 -0
  395. package/src/outcomes.ts +8 -1
  396. package/src/piagentdir.ts +12 -0
  397. package/src/pilogin.ts +32 -16
  398. package/src/posting-journal.ts +6 -1
  399. package/src/posting-outbox.ts +10 -2
  400. package/src/posting-receipt.ts +17 -0
  401. package/src/qcrbin.ts +16 -11
  402. package/src/recheck.ts +2 -1
  403. package/src/reconcile.ts +29 -3
  404. package/src/reviewargs.ts +119 -0
  405. package/src/reviewcli.ts +6 -167
  406. package/src/reviewdetach.ts +107 -13
  407. package/src/reviewhistory.ts +20 -6
  408. package/src/reviewnow.ts +76 -0
  409. package/src/scancli.ts +75 -826
  410. package/src/selfimprove.ts +90 -0
  411. package/src/setup/adapters.ts +13 -221
  412. package/src/setup/caserunner.ts +34 -273
  413. package/src/setup/engine.ts +62 -496
  414. package/src/setup/facts.ts +3 -627
  415. package/src/setup/findings.ts +3 -1264
  416. package/src/setup/presentation.ts +3 -18
  417. package/src/setup/scan.ts +3 -1033
  418. package/src/setup/scanbuild.ts +20 -114
  419. package/src/setup/scanlease.ts +3 -297
  420. package/src/setup/scanreport.ts +3 -373
  421. package/src/setup/scanrun.ts +3 -2268
  422. package/src/setup/scantree.ts +3 -259
  423. package/src/setup/stage2request.ts +3 -347
  424. package/src/setup/unitcut.ts +3 -523
  425. package/src/state.ts +43 -0
  426. package/src/statemachine.ts +4 -1
  427. package/src/takeover.ts +5 -0
  428. package/src/takeoverpi.ts +16 -2
  429. package/src/tui/app.ts +47 -0
  430. package/src/tui/board.ts +111 -14
  431. package/src/tui/cmdbar.ts +4 -1
  432. package/src/tui/companion.ts +80 -11
  433. package/src/tui/connect.ts +7 -1
  434. package/src/tui/deploytab.ts +2 -2
  435. package/src/tui/filters.ts +7 -3
  436. package/src/tui/ghread.ts +74 -7
  437. package/src/tui/index.ts +117 -23
  438. package/src/tui/memforward.ts +52 -3
  439. package/src/tui/memory.ts +3 -15
  440. package/src/tui/memoryurl.ts +22 -0
  441. package/src/tui/model.ts +36 -2
  442. package/src/tui/prpause.ts +11 -2
  443. package/src/tui/remote.ts +9 -1
  444. package/src/tui/route.ts +173 -0
  445. package/src/tui/setupstate.ts +56 -0
  446. package/src/tui/sshtriage.ts +127 -6
  447. package/src/tui/theme.ts +2 -1
  448. package/src/tui/unwedge.ts +2 -14
  449. package/src/verdicts.ts +23 -5
  450. package/src/version.ts +1 -1
  451. package/src/webhook.ts +10 -1
  452. package/src/wire.ts +42 -9
  453. package/src/workerworld.ts +16 -2
  454. package/dist/src/live/projection.js +0 -450
  455. package/dist/src/live/projection.js.map +0 -1
  456. package/dist/src/live/read.js +0 -60
  457. package/dist/src/live/read.js.map +0 -1
  458. package/dist/src/onboard/launch.js +0 -83
  459. package/dist/src/onboard/launch.js.map +0 -1
  460. package/dist/src/setup/ledger.js +0 -207
  461. package/dist/src/setup/ledger.js.map +0 -1
  462. package/dist/src/setup/stage2.js +0 -617
  463. package/dist/src/setup/stage2.js.map +0 -1
  464. package/dist/src/setup/textsniff.js +0 -89
  465. package/dist/src/setup/textsniff.js.map +0 -1
  466. package/src/live/projection.ts +0 -491
  467. package/src/live/read.ts +0 -86
  468. package/src/onboard/launch.ts +0 -115
  469. package/src/setup/ledger.ts +0 -324
  470. package/src/setup/stage2.ts +0 -926
  471. package/src/setup/textsniff.ts +0 -95
@@ -5,8 +5,13 @@
5
5
  // qcr login [provider] pi's own /login, in the pinned pi (src/picli.ts),
6
6
  // into the user's pi agent dir. pi's UI is the flow:
7
7
  // qcr types /login for the person and steps aside.
8
+ // When auto-review's refresher holds that login, it
9
+ // is paused first and released after, as the home's
10
+ // re-login does (src/loginrefresh/handover.ts).
8
11
  // qcr pi [args] the pinned pi with the qcr plugin preloaded
9
- // (`-e <the plugin package's dir>`), args passed on.
12
+ // (`-e <the plugin package's dir>`) and the app's
13
+ // own /selfimprove beside it (`-e` its shim,
14
+ // `APP_PI_EXTENSIONS`), args passed on.
10
15
  // qcr update the package manager that installed qcr (npm, pnpm or
11
16
  // bun) updates it globally. The release image keeps its
12
17
  // own route (a release), and a checkout its git.
@@ -15,11 +20,11 @@
15
20
  // `npmVerbDeps()` is the real assembly.
16
21
  import { spawnSync } from "node:child_process";
17
22
  import { existsSync, realpathSync } from "node:fs";
18
- import { homedir } from "node:os";
19
23
  import { delimiter, join } from "node:path";
20
24
  import { pluginPackageDir } from "./coreext.js";
21
25
  import { detectInstall } from "./installkind.js";
22
26
  import { readLogins } from "./loginhint.js";
27
+ import { piAgentDir } from "./piagentdir.js";
23
28
  import { piCliPath } from "./picli.js";
24
29
  /** The npm package this CLI is published as. */
25
30
  export const CLI_PACKAGE = "@quickchatai/quickreview";
@@ -42,13 +47,9 @@ export function updateCommand(installer, pkg = CLI_PACKAGE) {
42
47
  return ["bun", "add", "-g", spec];
43
48
  }
44
49
  }
45
- /** pi's agent dir: `$PI_CODING_AGENT_DIR`, else `~/.pi/agent`, as pi reads it. */
46
- export function piAgentDir(env) {
47
- const set = (env["PI_CODING_AGENT_DIR"] ?? "").trim();
48
- if (set !== "")
49
- return set;
50
- return join((env["HOME"] ?? "").trim() || homedir(), ".pi", "agent");
51
- }
50
+ // pi's agent dir lives in a leaf of its own, so the home reads the same rule
51
+ // without these verbs.
52
+ export { piAgentDir };
52
53
  /** The providers pi holds a credential for in `agentDir`, from its auth.json;
53
54
  * empty when there is none or it cannot be read. Never a token. */
54
55
  export function loggedInProviders(agentDir) {
@@ -79,9 +80,18 @@ export function npmVerbDeps(pkgRoot) {
79
80
  out: (l) => console.log(l),
80
81
  err: (l) => console.error(l),
81
82
  execPath: process.execPath,
83
+ holdLogin: async (agentDir) => {
84
+ const { holdRefresher } = await import("./loginrefresh/handover.js");
85
+ return holdRefresher(agentDir);
86
+ },
82
87
  };
83
88
  }
84
- /** `qcr pi [args]`: the pinned pi with the plugin preloaded; pi's exit code. */
89
+ /** The app's own extensions `qcr pi` loads beside the plugin, as paths under
90
+ * the CLI package's root: the commands that are the app's, not the plugin's
91
+ * (ADR 0001). */
92
+ export const APP_PI_EXTENSIONS = ["extensions/cli/selfimprove.ts"];
93
+ /** `qcr pi [args]`: the pinned pi with the plugin and the app's own
94
+ * extensions preloaded; pi's exit code. */
85
95
  export function cmdPi(args, deps) {
86
96
  let pi;
87
97
  let plugin;
@@ -93,7 +103,8 @@ export function cmdPi(args, deps) {
93
103
  deps.err(`qcr pi: ${err instanceof Error ? err.message : String(err)}`);
94
104
  return 1;
95
105
  }
96
- const r = deps.run(deps.execPath, [pi, "-e", plugin, ...args], {});
106
+ const app = APP_PI_EXTENSIONS.flatMap((e) => ["-e", join(deps.pkgRoot, e)]);
107
+ const r = deps.run(deps.execPath, [pi, "-e", plugin, ...app, ...args], {});
97
108
  if (r.error) {
98
109
  deps.err(`qcr pi: pi could not start: ${r.error.message}`);
99
110
  return 1;
@@ -117,8 +128,10 @@ export async function cmdLogin(args, deps) {
117
128
  "",
118
129
  "Opens pi's own /login in the pi qcr runs on, so the review sessions can use it.",
119
130
  "The login is kept in pi's agent dir ($PI_CODING_AGENT_DIR, default ~/.pi/agent).",
120
- "The default review models run on a ChatGPT login (openai-codex); an API key in the",
121
- "environment does not stand in for it: log in, or set the review's models in your qcr config.",
131
+ 'Any OpenAI login serves the default review models: "OpenAI Codex (legacy)" or "OpenAI"',
132
+ '(Sign in with ChatGPT) under "Sign in with an account", or an OpenAI API key (at /login, or',
133
+ "OPENAI_API_KEY in the environment). A key for another provider does not stand in for it:",
134
+ "log in, or set the review's models in your qcr config.",
122
135
  ].join("\n"));
123
136
  return 0;
124
137
  }
@@ -140,6 +153,23 @@ export async function cmdLogin(args, deps) {
140
153
  return 1;
141
154
  }
142
155
  const agentDir = piAgentDir(deps.env);
156
+ // The refresher first, when one runs: a refresh that read the old grant and
157
+ // lands after the login would write it back over the new one.
158
+ const hold = await deps.holdLogin(agentDir);
159
+ if (!hold.ok) {
160
+ deps.err(`qcr login: ${hold.why}; nothing was changed.`);
161
+ return 1;
162
+ }
163
+ if (hold.held)
164
+ deps.out("qcr login: auto-review's login refresher is paused while you log in.");
165
+ try {
166
+ return await runLogin(provider, pi, agentDir, deps);
167
+ }
168
+ finally {
169
+ hold.release();
170
+ }
171
+ }
172
+ async function runLogin(provider, pi, agentDir, deps) {
143
173
  const before = loggedInProviders(agentDir);
144
174
  let status;
145
175
  if (onPath("tmux", deps.env["PATH"])) {
@@ -165,7 +195,9 @@ export async function cmdLogin(args, deps) {
165
195
  }
166
196
  else {
167
197
  deps.out(`qcr login: opening pi — type /login${provider ? ` ${provider}` : ""} and pick your provider, then quit pi (the login lands in ${agentDir}).`);
168
- const r = deps.run(deps.execPath, [pi], {});
198
+ // --no-approve as on the tmux route (src/pilogin.ts): a login needs
199
+ // nothing from this folder, so pi neither asks to trust it nor trusts it.
200
+ const r = deps.run(deps.execPath, [pi, "--no-approve"], {});
169
201
  if (r.error) {
170
202
  deps.err(`qcr login: pi could not start: ${r.error.message}`);
171
203
  return 1;
@@ -1 +1 @@
1
- {"version":3,"file":"npmverbs.js","sourceRoot":"","sources":["../../src/npmverbs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npmverbs.js","sourceRoot":"","sources":["../../src/npmverbs.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,7 @@
16
16
  // record each key, and the test proves each named step really does — so a
17
17
  // key that only ever gets read cannot survive review.
18
18
  //
19
- // A key private to one step — the go-live decision, the bring-up timestamp, the
20
- // vm-deploy record, the model prefix, the memory key-file path — stays a local
19
+ // A key private to one step — the go-live decision, the vm-deploy record, the model prefix, the memory key-file path — stays a local
21
20
  // constant in that step. This file is about the handoffs.
22
21
  //
23
22
  // Nothing here imports a step (the steps import this), so there is no cycle and
@@ -33,6 +32,10 @@ export const INGRESS_CHOICES = ["quick", "ngrok", "named", "polling"];
33
32
  /** The LLM auth routes. "api" is the API-key route — not "api_key": the value
34
33
  * the LLM step writes is the value every reader must test for. */
35
34
  export const AUTH_ROUTES = ["oauth", "api"];
35
+ /** How the daemon authenticates to GitHub (`config.toml [github] auth`):
36
+ * "user" is the person's own account (polling only, no App), "app" a GitHub
37
+ * App. Answered as the github_account step's input; absent ⇒ unanswered. */
38
+ export const GITHUB_AUTH_CHOICES = ["user", "app"];
36
39
  /** "owner/name" — the reviewed repo as the interview records it and the App
37
40
  * step parses it: no URL, no trailing `.git`. */
38
41
  export const REPO_SLUG_RE = /^([A-Za-z0-9._-]+)\/([A-Za-z0-9._-]+)$/;
@@ -47,6 +50,10 @@ export const MEMORY_CHOICE_IDS = ["configure", "declined"];
47
50
  export const CHOICE_KEYS = {
48
51
  /** The operator's uid, captured by preflight: the containers run as it. */
49
52
  uid: "qcr_uid",
53
+ /** When the bring-up step last brought the stack up (an ISO timestamp).
54
+ * Written by bringup; read by the login-share step, which recreates a
55
+ * stack brought up before so the daemon gets its login mount. */
56
+ broughtUpAt: "stack_brought_up_at",
50
57
  /** `Topology`. Written by the topology step; read by everything that has to
51
58
  * know where the stack runs (transport selection, the VM-only steps). */
52
59
  topology: "topology",
@@ -56,6 +63,19 @@ export const CHOICE_KEYS = {
56
63
  sshUser: "vm_ssh_user",
57
64
  /** `AuthRoute`. Written by the LLM step; read by the interview's shape line. */
58
65
  authRoute: "llm_auth_route",
66
+ /** `GithubAuth`. Written by the github_account step (the operator's answer,
67
+ * defaulted to "user" where `gh auth token` works); read by everything that
68
+ * differs between the own-account route and the App route — which of
69
+ * github_account / github_app / app_slug_reconcile is enabled, the
70
+ * interview's App questions, the ingress shapes on offer, verification. */
71
+ githubAuth: "github_auth",
72
+ /** The person's GitHub login, from `GET /user` with their own token (own-
73
+ * account route). The interview's owner-login answer and `[github]
74
+ * bot_login` both come from it. */
75
+ accountLogin: "github_account_login",
76
+ /** "owner/name" the person picked from the repos their account reaches
77
+ * (own-account route). The interview reads it as its repo answer. */
78
+ accountRepo: "github_account_repo",
59
79
  /** "owner/name" of the reviewed repo. Written by the interview; read by the
60
80
  * GitHub App step and the proof round. */
61
81
  repo: "reviewed_repo",
@@ -119,6 +139,10 @@ export const CHOICE_KEYS = {
119
139
  */
120
140
  export const CHOICE_WRITERS = {
121
141
  uid: ["preflight"],
142
+ broughtUpAt: ["bringup"],
143
+ githubAuth: ["github_account"],
144
+ accountLogin: ["github_account"],
145
+ accountRepo: ["github_account"],
122
146
  topology: ["topology"],
123
147
  sshAlias: ["topology"],
124
148
  sshUser: ["ssh_preflight"],
@@ -133,7 +157,7 @@ export const CHOICE_WRITERS = {
133
157
  dryRun: ["config_fill"],
134
158
  labels: ["config_fill"],
135
159
  appSlug: ["config_fill", "github_app", "app_slug_reconcile"],
136
- botLogin: ["github_app", "app_slug_reconcile"],
160
+ botLogin: ["github_account", "github_app", "app_slug_reconcile"],
137
161
  appId: ["github_app"],
138
162
  appTarget: ["github_app"],
139
163
  appName: ["github_app"],
@@ -161,7 +185,6 @@ export const CHOICE_WRITERS = {
161
185
  export const PRIVATE_CHOICE_KEYS = {
162
186
  llm_model_prefix: "llm_auth",
163
187
  openviking_keys_file: "memory",
164
- stack_brought_up_at: "bringup",
165
188
  go_live_decision: "go_live",
166
189
  };
167
190
  /** The bot login GitHub gives an App with this slug. One rule, one place —
@@ -184,6 +207,14 @@ export function memberOf(vocabulary, value) {
184
207
  export function authRouteOf(choices) {
185
208
  return memberOf(AUTH_ROUTES, raw(choices, CHOICE_KEYS.authRoute));
186
209
  }
210
+ /** The recorded GitHub auth route, or null while unanswered. */
211
+ export function githubAuthOf(choices) {
212
+ return memberOf(GITHUB_AUTH_CHOICES, raw(choices, CHOICE_KEYS.githubAuth));
213
+ }
214
+ /** Is the own-account route recorded? (Unanswered is NOT user mode.) */
215
+ export function userAuthRecorded(choices) {
216
+ return githubAuthOf(choices) === "user";
217
+ }
187
218
  /** The recorded ingress shape, or null when the ingress step has not run. */
188
219
  export function ingressChoiceOf(choices) {
189
220
  return memberOf(INGRESS_CHOICES, raw(choices, CHOICE_KEYS.ingress));
@@ -1 +1 @@
1
- {"version":3,"file":"choices.js","sourceRoot":"","sources":["../../../src/onboard/choices.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,YAAY;AACZ,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,iBAAiB;AACjB,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,2DAA2D;AAC3D,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,0DAA0D;AAC1D,EAAE;AACF,gFAAgF;AAChF,sBAAsB;AAEtB,iFAAiF;AACjF,8EAA8E;AAC9E,yDAAyD;AAEzD,oEAAoE;AACpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,OAAO,CAAU,CAAC;AAGzD;2DAC2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAG/E;kEACkE;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,KAAK,CAAU,CAAC;AAGrD;iDACiD;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,wCAAwC,CAAC;AAErE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,UAAU,CAAU,CAAC;AAGpE,iFAAiF;AAEjF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,2EAA2E;IAC3E,GAAG,EAAE,SAAS;IAEd;6EACyE;IACzE,QAAQ,EAAE,UAAU;IACpB,mDAAmD;IACnD,QAAQ,EAAE,cAAc;IACxB,6DAA6D;IAC7D,OAAO,EAAE,aAAa;IAEtB,gFAAgF;IAChF,SAAS,EAAE,gBAAgB;IAE3B;8CAC0C;IAC1C,IAAI,EAAE,eAAe;IACrB,0DAA0D;IAC1D,OAAO,EAAE,mBAAmB;IAC5B,iCAAiC;IACjC,UAAU,EAAE,aAAa;IACzB,yBAAyB;IACzB,QAAQ,EAAE,cAAc;IACxB,mCAAmC;IACnC,UAAU,EAAE,oBAAoB;IAChC;oDACgD;IAChD,UAAU,EAAE,aAAa;IACzB,4DAA4D;IAC5D,UAAU,EAAE,aAAa;IACzB,6EAA6E;IAC7E,MAAM,EAAE,gBAAgB;IACxB;iFAC6E;IAC7E,MAAM,EAAE,eAAe;IAEvB;8EAC0E;IAC1E,OAAO,EAAE,iBAAiB;IAC1B,uEAAuE;IACvE,QAAQ,EAAE,kBAAkB;IAC5B,sBAAsB;IACtB,KAAK,EAAE,eAAe;IACtB,gEAAgE;IAChE,SAAS,EAAE,mBAAmB;IAC9B,0EAA0E;IAC1E,OAAO,EAAE,iBAAiB;IAC1B,+CAA+C;IAC/C,cAAc,EAAE,wBAAwB;IACxC,gCAAgC;IAChC,UAAU,EAAE,qBAAqB;IAEjC;;qCAEiC;IACjC,OAAO,EAAE,gBAAgB;IACzB,6EAA6E;IAC7E,eAAe,EAAE,kBAAkB;IACnC;6EACyE;IACzE,UAAU,EAAE,aAAa;IAEzB,4EAA4E;IAC5E,MAAM,EAAE,cAAc;IAEtB,2EAA2E;IAC3E,iBAAiB,EAAE,qBAAqB;IAExC,0EAA0E;IAC1E,KAAK,EAAE,uBAAuB;IAE9B;;kDAE8C;IAC9C,UAAU,EAAE,aAAa;CACjB,CAAC;AAKX;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAA0C;IACnE,GAAG,EAAE,CAAC,WAAW,CAAC;IAClB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,CAAC,eAAe,CAAC;IAC1B,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,OAAO,EAAE,CAAC,aAAa,CAAC;IACxB,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,QAAQ,EAAE,CAAC,aAAa,CAAC;IACzB,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,MAAM,EAAE,CAAC,aAAa,CAAC;IACvB,MAAM,EAAE,CAAC,aAAa,CAAC;IACvB,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,oBAAoB,CAAC;IAC5D,QAAQ,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC9C,KAAK,EAAE,CAAC,YAAY,CAAC;IACrB,SAAS,EAAE,CAAC,YAAY,CAAC;IACzB,OAAO,EAAE,CAAC,YAAY,CAAC;IACvB,cAAc,EAAE,CAAC,YAAY,CAAC;IAC9B,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,eAAe,EAAE,CAAC,SAAS,CAAC;IAC5B,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,KAAK,EAAE,CAAC,aAAa,CAAC;IACtB,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,iBAAiB,EAAE,CAAC,QAAQ,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqC;IACnE,gBAAgB,EAAE,UAAU;IAC5B,oBAAoB,EAAE,QAAQ;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,gBAAgB,EAAE,SAAS;CAC5B,CAAC;AAEF;4EAC4E;AAC5E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,GAAG,IAAI,OAAO,CAAC;AACxB,CAAC;AAED,iFAAiF;AACjF,2EAA2E;AAC3E,+DAA+D;AAE/D,SAAS,GAAG,CAAC,OAA0C,EAAE,GAAc;IACrE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,QAAQ,CAAmB,UAAwB,EAAE,KAAa;IAChF,OAAQ,UAAgC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,OAA0C;IACpE,OAAO,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,OAA0C;IACxE,OAAO,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"choices.js","sourceRoot":"","sources":["../../../src/onboard/choices.ts"],"names":[],"mappings":"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"}