@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
@@ -0,0 +1,439 @@
1
+ // Switch-on: the steps that turn auto-review on from the home, on the
2
+ // plugin's step registry (the app's setup is the plugin's checklist with more
3
+ // steps, ADR 0001). They are the wizard's own step modules (src/onboard/
4
+ // steps/), registered here in the wizard's order, over the wizard's checklist
5
+ // file, so an answer given in either place is the same answer:
6
+ //
7
+ // machine_checks Docker, disk, ports (the wizard's preflight, plus the
8
+ // disk and the webhook port) — run first, before the home
9
+ // asks anything
10
+ // topology "this machine" (the home asks; another server goes to
11
+ // the advanced steps, never through here)
12
+ // github_account the person's own account: polling, no App
13
+ // escalation off ┐
14
+ // embeddings local │ silent defaults, each asked only by
15
+ // ingress polling ┘ the wizard; a recorded answer stands
16
+ // memory the memory offer's answer, when it was offered
17
+ // login_share the daemon reviews on the home's own login, which its
18
+ // refresher keeps while it runs: one login per box
19
+ // (src/onboard/steps/loginshare.ts)
20
+ // daemon_start start a stack that was brought up before (a second
21
+ // switch-on is this and little else: its data is kept)
22
+ // bringup the first time: pull and start the stack (restart:
23
+ // unless-stopped, so it survives reboots)
24
+ // memory_user_keys, verify_stack
25
+ // proof_round ┐ after switch-on, never walked by it: auto-review
26
+ // go_live ┘ comes up in dry-run. Going live is its own act
27
+ // (runGoLive): the wizard's proof round on one real pull
28
+ // request, read by the person, then one more confirm
29
+ // handed to the go-live step, the only thing here that
30
+ // may move dry_run, and only through goLiveStep
31
+ // (invariant 6)
32
+ //
33
+ // A step the checklist already records as done is not run again (its answer
34
+ // stands), except the two that act on the running machine: the machine checks
35
+ // and the daemon start.
36
+ //
37
+ // Memory is set up in two phases (src/onboard/steps/memorykeys.ts): its root
38
+ // key must be on disk before the engine boots, and its user keys can only be
39
+ // minted by the running engine. On a stack not running it yet, the memory
40
+ // step lands the root key and stops on the engine not answering; switch-on
41
+ // goes on, the engine is started, and before memory_user_keys the memory
42
+ // step runs again until the engine answers (memoryPhaseB). Any other memory
43
+ // failure ends the walk.
44
+ import { createServer } from "node:net";
45
+ import { execFile } from "node:child_process";
46
+ import { StepRegistry, } from "@quickchatai/pi-quickreview/src/setupchecklist.js";
47
+ import { BRINGUP_STEP_ID, BROUGHT_UP_CHOICE_KEY, bringUpStep } from "../onboard/steps/bringup.js";
48
+ import { DAEMON_SERVICE, DEFAULT_WEBHOOK_PORT, composeArgs, composePs, readEnvText, rootOf, serviceRow, } from "../onboard/steps/compose.js";
49
+ import { EMBEDDINGS_STEP_ID, embeddingsStep } from "../onboard/steps/embeddings.js";
50
+ import { ESCALATION_STEP_ID, escalationStep } from "../onboard/steps/escalation.js";
51
+ import { GITHUB_ACCOUNT_STEP_ID, githubAccountStep } from "../onboard/steps/githubaccount.js";
52
+ import { GO_LIVE_CONFIRMATION, GO_LIVE_STEP_ID, goLiveStep } from "../onboard/steps/golive.js";
53
+ import { INGRESS_STEP_ID, isUp, readEnvKey, ingressStep } from "../onboard/steps/ingress.js";
54
+ import { MEMORY_STEP_ID, memoryStep, waitsOnServer } from "../onboard/steps/memory.js";
55
+ import { MEMORY_KEYS_STEP_ID, memoryUserKeysStep } from "../onboard/steps/memorykeys.js";
56
+ import { preflightStep } from "../onboard/steps/preflight.js";
57
+ import { PROOF_CHOICE_KEY, PROOF_STEP_ID, parseProofRecord, proofRoundStep, } from "../onboard/steps/proof.js";
58
+ import { TOPOLOGY_STEP_ID, topologyOf, topologyStep } from "../onboard/steps/topology.js";
59
+ import { VERIFY_STACK_STEP_ID, verifyStackStep } from "../onboard/steps/verifyup.js";
60
+ import { LOGIN_SHARE_STEP_ID, loginShareStep, } from "../onboard/steps/loginshare.js";
61
+ export const MACHINE_CHECKS_STEP_ID = "machine_checks";
62
+ export const DAEMON_START_STEP_ID = "daemon_start";
63
+ /** Free disk the stack needs where Docker keeps its images: the two released
64
+ * images (the memory one carries its embedding model) and room to run. */
65
+ export const MIN_FREE_GB = 10;
66
+ /** Switch-on's steps, in the order they run (the registry sorts by `order`). */
67
+ export const SWITCH_ON_ORDER = [
68
+ MACHINE_CHECKS_STEP_ID,
69
+ TOPOLOGY_STEP_ID,
70
+ GITHUB_ACCOUNT_STEP_ID,
71
+ ESCALATION_STEP_ID,
72
+ EMBEDDINGS_STEP_ID,
73
+ INGRESS_STEP_ID,
74
+ MEMORY_STEP_ID,
75
+ LOGIN_SHARE_STEP_ID,
76
+ DAEMON_START_STEP_ID,
77
+ BRINGUP_STEP_ID,
78
+ MEMORY_KEYS_STEP_ID,
79
+ VERIFY_STACK_STEP_ID,
80
+ PROOF_STEP_ID,
81
+ GO_LIVE_STEP_ID,
82
+ ];
83
+ /** The steps that act on the running machine: run on every switch-on. */
84
+ const EVERY_TIME = new Set([MACHINE_CHECKS_STEP_ID, DAEMON_START_STEP_ID]);
85
+ /** The steps after switch-on, each the person's own act: never walked. */
86
+ const AFTER_SWITCH_ON = new Set([PROOF_STEP_ID, GO_LIVE_STEP_ID]);
87
+ /** How long phase B waits for a memory engine that has just started. */
88
+ export const MEMORY_WAIT_ATTEMPTS = 20;
89
+ export const MEMORY_WAIT_MS = 15_000;
90
+ /** Can something listen on 127.0.0.1:`port` now? */
91
+ export function loopbackPortFree(port) {
92
+ return new Promise((resolve) => {
93
+ const server = createServer();
94
+ server.once("error", (err) => resolve(err.code === "EADDRINUSE" || err.code === "EACCES" ? false : null));
95
+ server.listen(port, "127.0.0.1", () => server.close(() => resolve(true)));
96
+ });
97
+ }
98
+ /** The webhook port the stack publishes: the project `.env`'s
99
+ * QCR_WEBHOOK_PORT, else compose's default. */
100
+ export function webhookPort(root) {
101
+ const raw = (readEnvKey(readEnvText(root), "QCR_WEBHOOK_PORT") ?? "").trim();
102
+ return /^[0-9]{1,5}$/.test(raw) ? Number(raw) : DEFAULT_WEBHOOK_PORT;
103
+ }
104
+ /** `df -Pk <dir>`'s available space, in GB; null when it does not parse. */
105
+ export function freeGbFromDf(stdout) {
106
+ const row = stdout.trim().split("\n")[1];
107
+ const kb = Number(row?.trim().split(/\s+/)[3]);
108
+ return Number.isFinite(kb) ? kb / (1024 * 1024) : null;
109
+ }
110
+ async function diskCheck(runner, root) {
111
+ const info = await runner.run("docker", ["info", "--format", "{{.DockerRootDir}}"]);
112
+ const dir = info.code === 0 && info.stdout.trim() !== "" ? info.stdout.trim() : root;
113
+ const df = await runner.run("df", ["-Pk", dir]);
114
+ const gb = df.code === 0 ? freeGbFromDf(df.stdout) : null;
115
+ if (gb === null)
116
+ // Docker Desktop keeps its images inside its VM, where df cannot look:
117
+ // said as unknown, never as enough.
118
+ return {
119
+ name: "disk",
120
+ ok: true,
121
+ detail: `free disk unknown: ${dir} could not be measured (${(df.stderr || df.stdout).trim().split("\n")[0] || `exit ${df.code}`}); the stack needs about ${MIN_FREE_GB} GB`,
122
+ };
123
+ return gb >= MIN_FREE_GB
124
+ ? { name: "disk", ok: true, detail: `${Math.floor(gb)} GB free` }
125
+ : {
126
+ name: "disk",
127
+ ok: false,
128
+ detail: `only ${gb.toFixed(1)} GB free in ${dir}; the stack needs about ${MIN_FREE_GB} GB. Fix: free some space, then switch it on again`,
129
+ };
130
+ }
131
+ async function portCheck(runner, root, portFree) {
132
+ const port = webhookPort(root);
133
+ const ps = await composePs(runner, root);
134
+ if (ps.ok && isUp(serviceRow(ps.rows, DAEMON_SERVICE)))
135
+ return { name: "ports", ok: true, detail: `port ${port} is your own daemon's` };
136
+ const free = await portFree(port);
137
+ if (free === null)
138
+ return { name: "ports", ok: true, detail: `whether port ${port} is free is unknown` };
139
+ return free
140
+ ? { name: "ports", ok: true, detail: `port ${port} is free` }
141
+ : {
142
+ name: "ports",
143
+ ok: false,
144
+ detail: `port ${port} is in use by another program. Fix: stop it, or set QCR_WEBHOOK_PORT in ${root}/.env to a free port`,
145
+ };
146
+ }
147
+ /** The machine checks: the wizard's preflight (Docker, Compose, the images,
148
+ * the uid it records), then the disk and the webhook port. */
149
+ export function machineChecksStep(o = {}) {
150
+ const preflight = preflightStep();
151
+ const portFree = o.portFree ?? loopbackPortFree;
152
+ const run = async (ctx) => {
153
+ const base = await preflight.run(ctx);
154
+ const root = rootOf(ctx.adapters);
155
+ const checks = [
156
+ ...base.checks,
157
+ await diskCheck(ctx.adapters.runner, root),
158
+ await portCheck(ctx.adapters.runner, root, portFree),
159
+ ];
160
+ return {
161
+ ok: checks.every((c) => c.ok),
162
+ checks,
163
+ ...(base.data ? { data: base.data } : {}),
164
+ };
165
+ };
166
+ return {
167
+ id: MACHINE_CHECKS_STEP_ID,
168
+ title: "Machine checks: Docker, disk, ports",
169
+ explain: "Checks that this machine can run auto-review: Docker and Compose, free disk, the webhook port.",
170
+ order: preflight.order,
171
+ run,
172
+ verify: run,
173
+ };
174
+ }
175
+ // ---- the daemon start ---------------------------------------------------
176
+ /** Start a stack that was brought up before and switched off since: its
177
+ * containers and volumes are all there, so this is the whole of a second
178
+ * switch-on. Before the first bring-up there is nothing to start. */
179
+ export function daemonStartStep() {
180
+ const state = async (ctx) => {
181
+ const ps = await composePs(ctx.adapters.runner, rootOf(ctx.adapters));
182
+ if (!ps.ok)
183
+ return {
184
+ ok: false,
185
+ checks: [{ name: "daemon", ok: false, detail: `can't ask Docker: ${ps.detail}` }],
186
+ };
187
+ const up = isUp(serviceRow(ps.rows, DAEMON_SERVICE));
188
+ return {
189
+ ok: up,
190
+ checks: [
191
+ { name: "daemon", ok: up, detail: up ? "the daemon runs" : "the daemon is stopped" },
192
+ ],
193
+ };
194
+ };
195
+ return {
196
+ id: DAEMON_START_STEP_ID,
197
+ title: "Start the daemon",
198
+ explain: "Starts the stack a previous switch-on brought up; its data is kept.",
199
+ // after the config steps, just before the first bring-up (70)
200
+ order: 69,
201
+ enabled: (choices) => topologyOf(choices) === "local",
202
+ async run(ctx) {
203
+ if (typeof ctx.choices[BROUGHT_UP_CHOICE_KEY] !== "string")
204
+ return {
205
+ ok: true,
206
+ checks: [{ name: "daemon", ok: true, detail: "not brought up yet: bring-up starts it" }],
207
+ };
208
+ const now = await state(ctx);
209
+ if (now.ok)
210
+ return now;
211
+ const root = rootOf(ctx.adapters);
212
+ const r = await ctx.adapters.runner.run("docker", composeArgs(root, ["start", DAEMON_SERVICE]));
213
+ return r.code === 0
214
+ ? {
215
+ ok: true,
216
+ checks: [{ name: "daemon", ok: true, detail: "started, with its data as it was" }],
217
+ }
218
+ : {
219
+ ok: false,
220
+ checks: [
221
+ {
222
+ name: "daemon",
223
+ ok: false,
224
+ detail: `\`docker compose start ${DAEMON_SERVICE}\` exited ${r.code}: ${(r.stderr || r.stdout).trim().slice(0, 300) || "no output"}`,
225
+ },
226
+ ],
227
+ };
228
+ },
229
+ verify: state,
230
+ };
231
+ }
232
+ /** Switch-on's registry: the wizard's step modules plus the two above. */
233
+ export function switchOnRegistry(o = {}) {
234
+ return new StepRegistry([
235
+ machineChecksStep(o),
236
+ topologyStep(),
237
+ githubAccountStep(),
238
+ escalationStep(),
239
+ embeddingsStep(),
240
+ ingressStep(),
241
+ memoryStep(),
242
+ loginShareStep(o),
243
+ daemonStartStep(),
244
+ bringUpStep(),
245
+ memoryUserKeysStep(),
246
+ verifyStackStep(),
247
+ proofRoundStep(),
248
+ goLiveStep(),
249
+ ]);
250
+ }
251
+ /** What each step is handed: switch-on's silent defaults and the person's
252
+ * answers. Only go_live is ever handed the confirm, and only by runGoLive. */
253
+ export function switchOnInput(id, a) {
254
+ switch (id) {
255
+ case TOPOLOGY_STEP_ID:
256
+ return { choice: "local" };
257
+ case GITHUB_ACCOUNT_STEP_ID:
258
+ return { github_auth: "user", ...(a.repo ? { repo: a.repo } : {}) };
259
+ case ESCALATION_STEP_ID:
260
+ return { enable: "no" };
261
+ case INGRESS_STEP_ID:
262
+ return { choice: "polling" };
263
+ case MEMORY_STEP_ID:
264
+ return a.answers.memory === null
265
+ ? {}
266
+ : { choice: a.answers.memory ? "configure" : "declined" };
267
+ case GO_LIVE_STEP_ID:
268
+ return a.answers.confirmed === true
269
+ ? { decision: "go_live", confirm: GO_LIVE_CONFIRMATION }
270
+ : {};
271
+ default:
272
+ return {};
273
+ }
274
+ }
275
+ const line = (id, what) => `${id}: ${what}`;
276
+ const realSleep = (ms) => new Promise((r) => setTimeout(r, ms));
277
+ /** Memory's phase B on a stack that runs now: start the engine (when the
278
+ * caller can), then run the memory step again until the engine answers, for
279
+ * a bounded wait. The root key is already in place, so the engine read it at
280
+ * boot. A failure that is not the engine starting up ends it at once. */
281
+ export async function memoryPhaseB(r, input) {
282
+ if (r.startMemory) {
283
+ const up = await r.startMemory();
284
+ if (!up.ok)
285
+ return { ok: false, detail: `the memory engine did not start: ${up.detail}` };
286
+ }
287
+ r.progress?.("Waiting for the memory engine to answer…");
288
+ for (let attempt = 1;; attempt += 1) {
289
+ const res = await r.checklist.runStep(MEMORY_STEP_ID, input);
290
+ if (res.ok)
291
+ return { ok: true, detail: res.checks.map((c) => c.detail).join("; ") || "done" };
292
+ const why = res.failures.join("; ") || "it did not finish";
293
+ if (!waitsOnServer(res.checks) || attempt >= MEMORY_WAIT_ATTEMPTS)
294
+ return { ok: false, detail: why };
295
+ await (r.sleep ?? realSleep)(MEMORY_WAIT_MS);
296
+ }
297
+ }
298
+ /** The steps between the machine checks and the proof round, in order. The
299
+ * first that fails ends the walk with what it said, except memory's phase A
300
+ * waiting on an engine not yet running (its phase B follows the bring-up).
301
+ * No step here is ever handed a confirm: the go-live is not among them. */
302
+ export async function runSteps(r, steps) {
303
+ const say = (s) => {
304
+ steps.push(s);
305
+ r.progress?.(s);
306
+ };
307
+ const inputs = { answers: { memory: r.memory, confirmed: false }, repo: r.repo };
308
+ const failed = (id, title, why) => {
309
+ steps.push(line(id, `failed: ${why}`));
310
+ return { ok: false, detail: `${title}: ${why}` };
311
+ };
312
+ let memoryWaits = false;
313
+ const phaseB = async () => {
314
+ memoryWaits = false;
315
+ const b = await memoryPhaseB(r, switchOnInput(MEMORY_STEP_ID, inputs));
316
+ if (!b.ok)
317
+ return failed(MEMORY_STEP_ID, "Memory", b.detail);
318
+ say(line(MEMORY_STEP_ID, b.detail));
319
+ return { ok: true };
320
+ };
321
+ for (const s of r.checklist.list()) {
322
+ if (s.id === MACHINE_CHECKS_STEP_ID || AFTER_SWITCH_ON.has(s.id))
323
+ continue;
324
+ // the engine runs now (the bring-up, or a stack brought up before)
325
+ if (s.id === MEMORY_KEYS_STEP_ID && memoryWaits) {
326
+ const b = await phaseB();
327
+ if (!b.ok)
328
+ return b;
329
+ }
330
+ if (s.status === "disabled") {
331
+ say(line(s.id, "not on this route"));
332
+ continue;
333
+ }
334
+ // a memory "yes" given now runs even over a recorded answer
335
+ const answered = s.id === MEMORY_STEP_ID && r.memory === true;
336
+ if (s.status === "done" && !EVERY_TIME.has(s.id) && !answered) {
337
+ say(line(s.id, "already done"));
338
+ continue;
339
+ }
340
+ r.progress?.(`${s.title}…`);
341
+ const res = await r.checklist.runStep(s.id, switchOnInput(s.id, inputs));
342
+ if (!res.ok && s.id === MEMORY_STEP_ID && waitsOnServer(res.checks)) {
343
+ memoryWaits = true;
344
+ say(line(s.id, "its root key is placed; its user keys follow once the engine runs"));
345
+ continue;
346
+ }
347
+ if (!res.ok)
348
+ return failed(s.id, s.title, res.failures.join("; ") || "it did not finish");
349
+ say(line(s.id, res.checks.map((c) => c.detail).join("; ") || "done"));
350
+ }
351
+ if (memoryWaits)
352
+ return phaseB();
353
+ return { ok: true };
354
+ }
355
+ /**
356
+ * Run switch-on's steps after the machine checks, in order (runSteps).
357
+ * Auto-review comes up in dry-run: switch-on never runs the proof round or
358
+ * the go-live, whatever the config says. Going live is runGoLive, its own
359
+ * act with its own confirm.
360
+ */
361
+ export async function runSwitchOn(r) {
362
+ if (r.answers.confirmed !== true)
363
+ throw new Error("switch-on runs only on the person's confirm");
364
+ const steps = [];
365
+ const say = (s) => {
366
+ steps.push(s);
367
+ r.progress?.(s);
368
+ };
369
+ const walked = await runSteps({ ...r, memory: r.answers.memory }, steps);
370
+ if (!walked.ok) {
371
+ const dry = r.dryRun();
372
+ return { ok: false, live: dry === null ? null : !dry, detail: walked.detail, steps };
373
+ }
374
+ if (r.answers.memory === false) {
375
+ const stopped = await r.stopMemory();
376
+ say(line("memory", stopped.ok ? "kept off" : `could not be kept off: ${stopped.detail}`));
377
+ }
378
+ const dry = r.dryRun();
379
+ if (dry === false) {
380
+ say(line(GO_LIVE_STEP_ID, "already live"));
381
+ return { ok: true, live: true, detail: "Auto-review is on and posts live.", steps };
382
+ }
383
+ if (dry === null) {
384
+ steps.push(line(GO_LIVE_STEP_ID, "unknown: the config's dry_run cannot be read"));
385
+ return {
386
+ ok: false,
387
+ live: null,
388
+ detail: "Auto-review started, but whether it posts live is unknown: the config cannot be read.",
389
+ steps,
390
+ };
391
+ }
392
+ say(line(GO_LIVE_STEP_ID, "not yet: auto-review is in dry-run"));
393
+ return {
394
+ ok: true,
395
+ live: false,
396
+ detail: "Auto-review is on in dry-run: it reviews, and posts nothing yet. Going live is its own step: one review you read, then one more confirm.",
397
+ steps,
398
+ };
399
+ }
400
+ /** The proof round the checklist records, or null: what the go-live step
401
+ * demands (and re-verifies against the daemon's own state). */
402
+ export function recordedProof(checklist) {
403
+ return parseProofRecord(checklist.choices()[PROOF_CHOICE_KEY]);
404
+ }
405
+ /** The wizard's proof round on pull request `pr`, from dry-run: the daemon
406
+ * reviews it now, the round is followed through its own state, and the
407
+ * review it would have posted is read back. The detail is that review. */
408
+ export async function runProofRound(checklist, pr) {
409
+ const r = await checklist.runStep(PROOF_STEP_ID, { pr });
410
+ return r.ok
411
+ ? { ok: true, detail: r.checks.map((c) => c.detail).join("\n\n") }
412
+ : { ok: false, detail: r.failures.join("; ") || "the proof round did not finish" };
413
+ }
414
+ /** The go-live step, from dry-run, on the person's own go-live confirm
415
+ * (asked after the proof round, never the switch-on's). */
416
+ export async function runGoLive(checklist, answers) {
417
+ if (answers.confirmed !== true)
418
+ throw new Error("go-live runs only on the person's confirm");
419
+ const go = await checklist.runStep(GO_LIVE_STEP_ID, switchOnInput(GO_LIVE_STEP_ID, { answers: { memory: null, confirmed: true }, repo: null }));
420
+ return go.ok
421
+ ? { ok: true, detail: "Auto-review posts live now." }
422
+ : { ok: false, detail: go.failures.join("; ") || "going live did not finish" };
423
+ }
424
+ // ---- the real adapters -----------------------------------------------------
425
+ /** A process runner for the steps (a minute per call; the long pulls stream
426
+ * through the steps' own runner). */
427
+ export const stepRunner = {
428
+ run: (cmd, args) => new Promise((resolve) => {
429
+ execFile(cmd, args, { timeout: 60_000, maxBuffer: 16 << 20 }, (err, stdout, stderr) => {
430
+ const code = err === null ? 0 : typeof err.code === "number" ? err.code : 1;
431
+ resolve({
432
+ code,
433
+ stdout: String(stdout),
434
+ stderr: err && !stderr ? String(err.message) : String(stderr),
435
+ });
436
+ });
437
+ }),
438
+ };
439
+ //# sourceMappingURL=switchon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switchon.js","sourceRoot":"","sources":["../../../src/home/switchon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ // The home's tool names: one source for the extension that registers them
2
+ // (extensions/home.ts) and the launch that activates them (launch.ts).
3
+ //
4
+ // pi's `--tools <list>` is an allowlist over every tool, extension tools
5
+ // included (pi 1.4.0), so the reviewer-only launch names each home tool. The
6
+ // read tools are pi's own; bash, edit and write are never on the list.
7
+ /** The setup checklist's tools (src/home/setuptools.ts): one per step, and
8
+ * the next step. */
9
+ export const HOME_SETUP_TOOL_NAMES = [
10
+ "home_setup_next",
11
+ "home_sign_in",
12
+ "home_check_github",
13
+ "home_choose_repo",
14
+ ];
15
+ /** "Tune to this repo" and Advanced (src/home/advancedtools.ts). */
16
+ export const HOME_ADVANCED_TOOL_NAMES = ["home_tune", "home_tune_write", "home_advanced"];
17
+ /** Every tool the home registers. */
18
+ export const HOME_TOOL_NAMES = [
19
+ "home_status",
20
+ "home_refresh",
21
+ "home_move",
22
+ "home_select",
23
+ "home_open_pr",
24
+ "home_review_pr",
25
+ "home_show_review",
26
+ "home_stop_review",
27
+ "home_auto_review",
28
+ "home_memory",
29
+ "home_relogin",
30
+ ...HOME_SETUP_TOOL_NAMES,
31
+ ...HOME_ADVANCED_TOOL_NAMES,
32
+ ];
33
+ /** pi's built-in tools the reviewer-only home keeps: reading only. */
34
+ export const HOME_READ_TOOLS = ["read", "grep", "find", "ls"];
35
+ /** The plugin's tools, by the prefix its tools are named with. */
36
+ export const PLUGIN_TOOL_PATTERN = "qcr_*";
37
+ /** The whole `--tools` allowlist of the reviewer-only home. */
38
+ export function reviewerToolAllowlist() {
39
+ return [...HOME_READ_TOOLS, PLUGIN_TOOL_PATTERN, ...HOME_TOOL_NAMES];
40
+ }
41
+ //# sourceMappingURL=toolnames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolnames.js","sourceRoot":"","sources":["../../../src/home/toolnames.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,uEAAuE;AACvE,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,uEAAuE;AAEvE;oBACoB;AACpB,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAEX,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAU,CAAC;AAEnG,qCAAqC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,GAAG,qBAAqB;IACxB,GAAG,wBAAwB;CACnB,CAAC;AAEX,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAEjF,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,eAAe,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,CAAC;AACvE,CAAC"}