waterplane 0.0.1 → 0.1.6

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 (1641) hide show
  1. package/CHANGELOG.md +1172 -0
  2. package/DISCLAIMER.md +113 -0
  3. package/LICENSE +21 -0
  4. package/NOTICES.md +78 -0
  5. package/README.md +392 -4
  6. package/SECURITY.md +388 -0
  7. package/bin/waterplane.mjs +5 -0
  8. package/deploy/gh-version +1 -0
  9. package/deploy/node-version +1 -0
  10. package/node_modules/@waterplane/shared/dist/agentfiles.d.ts +118 -0
  11. package/node_modules/@waterplane/shared/dist/agentfiles.js +345 -0
  12. package/node_modules/@waterplane/shared/dist/agentfiles.js.map +1 -0
  13. package/node_modules/@waterplane/shared/dist/artifacts.d.ts +213 -0
  14. package/node_modules/@waterplane/shared/dist/artifacts.js +295 -0
  15. package/node_modules/@waterplane/shared/dist/artifacts.js.map +1 -0
  16. package/node_modules/@waterplane/shared/dist/askrules.d.ts +95 -0
  17. package/node_modules/@waterplane/shared/dist/askrules.js +133 -0
  18. package/node_modules/@waterplane/shared/dist/askrules.js.map +1 -0
  19. package/node_modules/@waterplane/shared/dist/assess/sassapply.d.ts +191 -0
  20. package/node_modules/@waterplane/shared/dist/assess/sassapply.js +152 -0
  21. package/node_modules/@waterplane/shared/dist/assess/sassapply.js.map +1 -0
  22. package/node_modules/@waterplane/shared/dist/assess/sassclean.d.ts +21 -0
  23. package/node_modules/@waterplane/shared/dist/assess/sassclean.js +453 -0
  24. package/node_modules/@waterplane/shared/dist/assess/sassclean.js.map +1 -0
  25. package/node_modules/@waterplane/shared/dist/assess/sassio.d.ts +257 -0
  26. package/node_modules/@waterplane/shared/dist/assess/sassio.js +2 -0
  27. package/node_modules/@waterplane/shared/dist/assess/sassio.js.map +1 -0
  28. package/node_modules/@waterplane/shared/dist/assess/sassslot.d.ts +19 -0
  29. package/node_modules/@waterplane/shared/dist/assess/sassslot.js +136 -0
  30. package/node_modules/@waterplane/shared/dist/assess/sassslot.js.map +1 -0
  31. package/node_modules/@waterplane/shared/dist/assess/sassvocab.d.ts +115 -0
  32. package/node_modules/@waterplane/shared/dist/assess/sassvocab.js +98 -0
  33. package/node_modules/@waterplane/shared/dist/assess/sassvocab.js.map +1 -0
  34. package/node_modules/@waterplane/shared/dist/assess/sasswords.d.ts +140 -0
  35. package/node_modules/@waterplane/shared/dist/assess/sasswords.js +155 -0
  36. package/node_modules/@waterplane/shared/dist/assess/sasswords.js.map +1 -0
  37. package/node_modules/@waterplane/shared/dist/assess.d.ts +58 -0
  38. package/node_modules/@waterplane/shared/dist/assess.js +55 -0
  39. package/node_modules/@waterplane/shared/dist/assess.js.map +1 -0
  40. package/node_modules/@waterplane/shared/dist/attach.d.ts +118 -0
  41. package/node_modules/@waterplane/shared/dist/attach.js +85 -0
  42. package/node_modules/@waterplane/shared/dist/attach.js.map +1 -0
  43. package/node_modules/@waterplane/shared/dist/autocompact.d.ts +125 -0
  44. package/node_modules/@waterplane/shared/dist/autocompact.js +226 -0
  45. package/node_modules/@waterplane/shared/dist/autocompact.js.map +1 -0
  46. package/node_modules/@waterplane/shared/dist/backendsources.d.ts +399 -0
  47. package/node_modules/@waterplane/shared/dist/backendsources.js +3 -0
  48. package/node_modules/@waterplane/shared/dist/backendsources.js.map +1 -0
  49. package/node_modules/@waterplane/shared/dist/billing.d.ts +48 -0
  50. package/node_modules/@waterplane/shared/dist/billing.js +64 -0
  51. package/node_modules/@waterplane/shared/dist/billing.js.map +1 -0
  52. package/node_modules/@waterplane/shared/dist/bindconv.d.ts +47 -0
  53. package/node_modules/@waterplane/shared/dist/bindconv.js +35 -0
  54. package/node_modules/@waterplane/shared/dist/bindconv.js.map +1 -0
  55. package/node_modules/@waterplane/shared/dist/bookmark.d.ts +26 -0
  56. package/node_modules/@waterplane/shared/dist/bookmark.js +40 -0
  57. package/node_modules/@waterplane/shared/dist/bookmark.js.map +1 -0
  58. package/node_modules/@waterplane/shared/dist/brand.d.ts +94 -0
  59. package/node_modules/@waterplane/shared/dist/brand.js +88 -0
  60. package/node_modules/@waterplane/shared/dist/brand.js.map +1 -0
  61. package/node_modules/@waterplane/shared/dist/brandmigrate.d.ts +30 -0
  62. package/node_modules/@waterplane/shared/dist/brandmigrate.js +67 -0
  63. package/node_modules/@waterplane/shared/dist/brandmigrate.js.map +1 -0
  64. package/node_modules/@waterplane/shared/dist/budget.d.ts +247 -0
  65. package/node_modules/@waterplane/shared/dist/budget.js +295 -0
  66. package/node_modules/@waterplane/shared/dist/budget.js.map +1 -0
  67. package/node_modules/@waterplane/shared/dist/buildparams.d.ts +146 -0
  68. package/node_modules/@waterplane/shared/dist/buildparams.js +260 -0
  69. package/node_modules/@waterplane/shared/dist/buildparams.js.map +1 -0
  70. package/node_modules/@waterplane/shared/dist/buildscan.d.ts +99 -0
  71. package/node_modules/@waterplane/shared/dist/buildscan.js +334 -0
  72. package/node_modules/@waterplane/shared/dist/buildscan.js.map +1 -0
  73. package/node_modules/@waterplane/shared/dist/burn.d.ts +137 -0
  74. package/node_modules/@waterplane/shared/dist/burn.js +176 -0
  75. package/node_modules/@waterplane/shared/dist/burn.js.map +1 -0
  76. package/node_modules/@waterplane/shared/dist/chord.d.ts +39 -0
  77. package/node_modules/@waterplane/shared/dist/chord.js +102 -0
  78. package/node_modules/@waterplane/shared/dist/chord.js.map +1 -0
  79. package/node_modules/@waterplane/shared/dist/claudeconfig.d.ts +18 -0
  80. package/node_modules/@waterplane/shared/dist/claudeconfig.js +44 -0
  81. package/node_modules/@waterplane/shared/dist/claudeconfig.js.map +1 -0
  82. package/node_modules/@waterplane/shared/dist/claudeversion.d.ts +17 -0
  83. package/node_modules/@waterplane/shared/dist/claudeversion.js +31 -0
  84. package/node_modules/@waterplane/shared/dist/claudeversion.js.map +1 -0
  85. package/node_modules/@waterplane/shared/dist/clientframe.d.ts +12 -0
  86. package/node_modules/@waterplane/shared/dist/clientframe.js +15 -0
  87. package/node_modules/@waterplane/shared/dist/clientframe.js.map +1 -0
  88. package/node_modules/@waterplane/shared/dist/clihealth/healthcatalog.d.ts +52 -0
  89. package/node_modules/@waterplane/shared/dist/clihealth/healthcatalog.js +137 -0
  90. package/node_modules/@waterplane/shared/dist/clihealth/healthcatalog.js.map +1 -0
  91. package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.d.ts +58 -0
  92. package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.js +189 -0
  93. package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.js.map +1 -0
  94. package/node_modules/@waterplane/shared/dist/clihealth/healthrecord.d.ts +254 -0
  95. package/node_modules/@waterplane/shared/dist/clihealth/healthrecord.js +367 -0
  96. package/node_modules/@waterplane/shared/dist/clihealth/healthrecord.js.map +1 -0
  97. package/node_modules/@waterplane/shared/dist/clihealth/healthrollup.d.ts +36 -0
  98. package/node_modules/@waterplane/shared/dist/clihealth/healthrollup.js +123 -0
  99. package/node_modules/@waterplane/shared/dist/clihealth/healthrollup.js.map +1 -0
  100. package/node_modules/@waterplane/shared/dist/clihealth/healththresholds.d.ts +101 -0
  101. package/node_modules/@waterplane/shared/dist/clihealth/healththresholds.js +103 -0
  102. package/node_modules/@waterplane/shared/dist/clihealth/healththresholds.js.map +1 -0
  103. package/node_modules/@waterplane/shared/dist/clihealth.d.ts +64 -0
  104. package/node_modules/@waterplane/shared/dist/clihealth.js +69 -0
  105. package/node_modules/@waterplane/shared/dist/clihealth.js.map +1 -0
  106. package/node_modules/@waterplane/shared/dist/clirestart.d.ts +66 -0
  107. package/node_modules/@waterplane/shared/dist/clirestart.js +82 -0
  108. package/node_modules/@waterplane/shared/dist/clirestart.js.map +1 -0
  109. package/node_modules/@waterplane/shared/dist/closed.d.ts +41 -0
  110. package/node_modules/@waterplane/shared/dist/closed.js +102 -0
  111. package/node_modules/@waterplane/shared/dist/closed.js.map +1 -0
  112. package/node_modules/@waterplane/shared/dist/collage.d.ts +132 -0
  113. package/node_modules/@waterplane/shared/dist/collage.js +198 -0
  114. package/node_modules/@waterplane/shared/dist/collage.js.map +1 -0
  115. package/node_modules/@waterplane/shared/dist/contextweight.d.ts +169 -0
  116. package/node_modules/@waterplane/shared/dist/contextweight.js +247 -0
  117. package/node_modules/@waterplane/shared/dist/contextweight.js.map +1 -0
  118. package/node_modules/@waterplane/shared/dist/costwindow.d.ts +216 -0
  119. package/node_modules/@waterplane/shared/dist/costwindow.js +430 -0
  120. package/node_modules/@waterplane/shared/dist/costwindow.js.map +1 -0
  121. package/node_modules/@waterplane/shared/dist/ctxwindow.d.ts +92 -0
  122. package/node_modules/@waterplane/shared/dist/ctxwindow.js +107 -0
  123. package/node_modules/@waterplane/shared/dist/ctxwindow.js.map +1 -0
  124. package/node_modules/@waterplane/shared/dist/deskstorage.d.ts +170 -0
  125. package/node_modules/@waterplane/shared/dist/deskstorage.js +140 -0
  126. package/node_modules/@waterplane/shared/dist/deskstorage.js.map +1 -0
  127. package/node_modules/@waterplane/shared/dist/devices.d.ts +52 -0
  128. package/node_modules/@waterplane/shared/dist/devices.js +53 -0
  129. package/node_modules/@waterplane/shared/dist/devices.js.map +1 -0
  130. package/node_modules/@waterplane/shared/dist/dictate.d.ts +178 -0
  131. package/node_modules/@waterplane/shared/dist/dictate.js +345 -0
  132. package/node_modules/@waterplane/shared/dist/dictate.js.map +1 -0
  133. package/node_modules/@waterplane/shared/dist/dictateterms.d.ts +91 -0
  134. package/node_modules/@waterplane/shared/dist/dictateterms.js +180 -0
  135. package/node_modules/@waterplane/shared/dist/dictateterms.js.map +1 -0
  136. package/node_modules/@waterplane/shared/dist/envresolve.d.ts +30 -0
  137. package/node_modules/@waterplane/shared/dist/envresolve.js +76 -0
  138. package/node_modules/@waterplane/shared/dist/envresolve.js.map +1 -0
  139. package/node_modules/@waterplane/shared/dist/fanoutruns.d.ts +25 -0
  140. package/node_modules/@waterplane/shared/dist/fanoutruns.js +88 -0
  141. package/node_modules/@waterplane/shared/dist/fanoutruns.js.map +1 -0
  142. package/node_modules/@waterplane/shared/dist/followup.d.ts +38 -0
  143. package/node_modules/@waterplane/shared/dist/followup.js +68 -0
  144. package/node_modules/@waterplane/shared/dist/followup.js.map +1 -0
  145. package/node_modules/@waterplane/shared/dist/gallery.d.ts +83 -0
  146. package/node_modules/@waterplane/shared/dist/gallery.js +94 -0
  147. package/node_modules/@waterplane/shared/dist/gallery.js.map +1 -0
  148. package/node_modules/@waterplane/shared/dist/halt.d.ts +46 -0
  149. package/node_modules/@waterplane/shared/dist/halt.js +34 -0
  150. package/node_modules/@waterplane/shared/dist/halt.js.map +1 -0
  151. package/node_modules/@waterplane/shared/dist/healthindex.d.ts +485 -0
  152. package/node_modules/@waterplane/shared/dist/healthindex.js +677 -0
  153. package/node_modules/@waterplane/shared/dist/healthindex.js.map +1 -0
  154. package/node_modules/@waterplane/shared/dist/healthindexresponse.d.ts +36 -0
  155. package/node_modules/@waterplane/shared/dist/healthindexresponse.js +84 -0
  156. package/node_modules/@waterplane/shared/dist/healthindexresponse.js.map +1 -0
  157. package/node_modules/@waterplane/shared/dist/healthspend.d.ts +23 -0
  158. package/node_modules/@waterplane/shared/dist/healthspend.js +41 -0
  159. package/node_modules/@waterplane/shared/dist/healthspend.js.map +1 -0
  160. package/node_modules/@waterplane/shared/dist/hints.d.ts +77 -0
  161. package/node_modules/@waterplane/shared/dist/hints.js +607 -0
  162. package/node_modules/@waterplane/shared/dist/hints.js.map +1 -0
  163. package/node_modules/@waterplane/shared/dist/hosts.d.ts +160 -0
  164. package/node_modules/@waterplane/shared/dist/hosts.js +316 -0
  165. package/node_modules/@waterplane/shared/dist/hosts.js.map +1 -0
  166. package/node_modules/@waterplane/shared/dist/hosturl.d.ts +73 -0
  167. package/node_modules/@waterplane/shared/dist/hosturl.js +129 -0
  168. package/node_modules/@waterplane/shared/dist/hosturl.js.map +1 -0
  169. package/node_modules/@waterplane/shared/dist/index.d.ts +283 -0
  170. package/node_modules/@waterplane/shared/dist/index.js +305 -0
  171. package/node_modules/@waterplane/shared/dist/index.js.map +1 -0
  172. package/node_modules/@waterplane/shared/dist/installlog.d.ts +137 -0
  173. package/node_modules/@waterplane/shared/dist/installlog.js +367 -0
  174. package/node_modules/@waterplane/shared/dist/installlog.js.map +1 -0
  175. package/node_modules/@waterplane/shared/dist/intent/budgetpass.d.ts +103 -0
  176. package/node_modules/@waterplane/shared/dist/intent/budgetpass.js +185 -0
  177. package/node_modules/@waterplane/shared/dist/intent/budgetpass.js.map +1 -0
  178. package/node_modules/@waterplane/shared/dist/intent/clean.d.ts +30 -0
  179. package/node_modules/@waterplane/shared/dist/intent/clean.js +492 -0
  180. package/node_modules/@waterplane/shared/dist/intent/clean.js.map +1 -0
  181. package/node_modules/@waterplane/shared/dist/intent/facts.d.ts +320 -0
  182. package/node_modules/@waterplane/shared/dist/intent/facts.js +52 -0
  183. package/node_modules/@waterplane/shared/dist/intent/facts.js.map +1 -0
  184. package/node_modules/@waterplane/shared/dist/intent/kind.d.ts +194 -0
  185. package/node_modules/@waterplane/shared/dist/intent/kind.js +230 -0
  186. package/node_modules/@waterplane/shared/dist/intent/kind.js.map +1 -0
  187. package/node_modules/@waterplane/shared/dist/intent/row.d.ts +433 -0
  188. package/node_modules/@waterplane/shared/dist/intent/row.js +75 -0
  189. package/node_modules/@waterplane/shared/dist/intent/row.js.map +1 -0
  190. package/node_modules/@waterplane/shared/dist/intent/slot.d.ts +137 -0
  191. package/node_modules/@waterplane/shared/dist/intent/slot.js +238 -0
  192. package/node_modules/@waterplane/shared/dist/intent/slot.js.map +1 -0
  193. package/node_modules/@waterplane/shared/dist/intent/target.d.ts +62 -0
  194. package/node_modules/@waterplane/shared/dist/intent/target.js +177 -0
  195. package/node_modules/@waterplane/shared/dist/intent/target.js.map +1 -0
  196. package/node_modules/@waterplane/shared/dist/intent/types.d.ts +455 -0
  197. package/node_modules/@waterplane/shared/dist/intent/types.js +27 -0
  198. package/node_modules/@waterplane/shared/dist/intent/types.js.map +1 -0
  199. package/node_modules/@waterplane/shared/dist/intent/verdict.d.ts +50 -0
  200. package/node_modules/@waterplane/shared/dist/intent/verdict.js +431 -0
  201. package/node_modules/@waterplane/shared/dist/intent/verdict.js.map +1 -0
  202. package/node_modules/@waterplane/shared/dist/intent/words.d.ts +236 -0
  203. package/node_modules/@waterplane/shared/dist/intent/words.js +329 -0
  204. package/node_modules/@waterplane/shared/dist/intent/words.js.map +1 -0
  205. package/node_modules/@waterplane/shared/dist/intent.d.ts +69 -0
  206. package/node_modules/@waterplane/shared/dist/intent.js +65 -0
  207. package/node_modules/@waterplane/shared/dist/intent.js.map +1 -0
  208. package/node_modules/@waterplane/shared/dist/itempaths.d.ts +35 -0
  209. package/node_modules/@waterplane/shared/dist/itempaths.js +55 -0
  210. package/node_modules/@waterplane/shared/dist/itempaths.js.map +1 -0
  211. package/node_modules/@waterplane/shared/dist/keyhint.d.ts +32 -0
  212. package/node_modules/@waterplane/shared/dist/keyhint.js +53 -0
  213. package/node_modules/@waterplane/shared/dist/keyhint.js.map +1 -0
  214. package/node_modules/@waterplane/shared/dist/lanroute.d.ts +86 -0
  215. package/node_modules/@waterplane/shared/dist/lanroute.js +84 -0
  216. package/node_modules/@waterplane/shared/dist/lanroute.js.map +1 -0
  217. package/node_modules/@waterplane/shared/dist/launch.d.ts +110 -0
  218. package/node_modules/@waterplane/shared/dist/launch.js +102 -0
  219. package/node_modules/@waterplane/shared/dist/launch.js.map +1 -0
  220. package/node_modules/@waterplane/shared/dist/launchmodes.d.ts +22 -0
  221. package/node_modules/@waterplane/shared/dist/launchmodes.js +38 -0
  222. package/node_modules/@waterplane/shared/dist/launchmodes.js.map +1 -0
  223. package/node_modules/@waterplane/shared/dist/localrt.d.ts +53 -0
  224. package/node_modules/@waterplane/shared/dist/localrt.js +54 -0
  225. package/node_modules/@waterplane/shared/dist/localrt.js.map +1 -0
  226. package/node_modules/@waterplane/shared/dist/localusage.d.ts +35 -0
  227. package/node_modules/@waterplane/shared/dist/localusage.js +135 -0
  228. package/node_modules/@waterplane/shared/dist/localusage.js.map +1 -0
  229. package/node_modules/@waterplane/shared/dist/naming.d.ts +391 -0
  230. package/node_modules/@waterplane/shared/dist/naming.js +571 -0
  231. package/node_modules/@waterplane/shared/dist/naming.js.map +1 -0
  232. package/node_modules/@waterplane/shared/dist/netfuse.d.ts +60 -0
  233. package/node_modules/@waterplane/shared/dist/netfuse.js +99 -0
  234. package/node_modules/@waterplane/shared/dist/netfuse.js.map +1 -0
  235. package/node_modules/@waterplane/shared/dist/netstall.d.ts +163 -0
  236. package/node_modules/@waterplane/shared/dist/netstall.js +241 -0
  237. package/node_modules/@waterplane/shared/dist/netstall.js.map +1 -0
  238. package/node_modules/@waterplane/shared/dist/nodemin.d.ts +18 -0
  239. package/node_modules/@waterplane/shared/dist/nodemin.js +35 -0
  240. package/node_modules/@waterplane/shared/dist/nodemin.js.map +1 -0
  241. package/node_modules/@waterplane/shared/dist/optins.d.ts +122 -0
  242. package/node_modules/@waterplane/shared/dist/optins.js +252 -0
  243. package/node_modules/@waterplane/shared/dist/optins.js.map +1 -0
  244. package/node_modules/@waterplane/shared/dist/pad.d.ts +263 -0
  245. package/node_modules/@waterplane/shared/dist/pad.js +373 -0
  246. package/node_modules/@waterplane/shared/dist/pad.js.map +1 -0
  247. package/node_modules/@waterplane/shared/dist/pairing.d.ts +120 -0
  248. package/node_modules/@waterplane/shared/dist/pairing.js +130 -0
  249. package/node_modules/@waterplane/shared/dist/pairing.js.map +1 -0
  250. package/node_modules/@waterplane/shared/dist/passive.d.ts +58 -0
  251. package/node_modules/@waterplane/shared/dist/passive.js +36 -0
  252. package/node_modules/@waterplane/shared/dist/passive.js.map +1 -0
  253. package/node_modules/@waterplane/shared/dist/peer.d.ts +311 -0
  254. package/node_modules/@waterplane/shared/dist/peer.js +390 -0
  255. package/node_modules/@waterplane/shared/dist/peer.js.map +1 -0
  256. package/node_modules/@waterplane/shared/dist/period.d.ts +108 -0
  257. package/node_modules/@waterplane/shared/dist/period.js +263 -0
  258. package/node_modules/@waterplane/shared/dist/period.js.map +1 -0
  259. package/node_modules/@waterplane/shared/dist/plugin.d.ts +898 -0
  260. package/node_modules/@waterplane/shared/dist/plugin.js +196 -0
  261. package/node_modules/@waterplane/shared/dist/plugin.js.map +1 -0
  262. package/node_modules/@waterplane/shared/dist/pluginfile.d.ts +25 -0
  263. package/node_modules/@waterplane/shared/dist/pluginfile.js +8 -0
  264. package/node_modules/@waterplane/shared/dist/pluginfile.js.map +1 -0
  265. package/node_modules/@waterplane/shared/dist/pluginlaunch.d.ts +109 -0
  266. package/node_modules/@waterplane/shared/dist/pluginlaunch.js +3 -0
  267. package/node_modules/@waterplane/shared/dist/pluginlaunch.js.map +1 -0
  268. package/node_modules/@waterplane/shared/dist/pluginmaturity.d.ts +26 -0
  269. package/node_modules/@waterplane/shared/dist/pluginmaturity.js +32 -0
  270. package/node_modules/@waterplane/shared/dist/pluginmaturity.js.map +1 -0
  271. package/node_modules/@waterplane/shared/dist/pluginreadings.d.ts +43 -0
  272. package/node_modules/@waterplane/shared/dist/pluginreadings.js +5 -0
  273. package/node_modules/@waterplane/shared/dist/pluginreadings.js.map +1 -0
  274. package/node_modules/@waterplane/shared/dist/pricing.d.ts +249 -0
  275. package/node_modules/@waterplane/shared/dist/pricing.js +388 -0
  276. package/node_modules/@waterplane/shared/dist/pricing.js.map +1 -0
  277. package/node_modules/@waterplane/shared/dist/promptid.d.ts +48 -0
  278. package/node_modules/@waterplane/shared/dist/promptid.js +116 -0
  279. package/node_modules/@waterplane/shared/dist/promptid.js.map +1 -0
  280. package/node_modules/@waterplane/shared/dist/ptysize.d.ts +74 -0
  281. package/node_modules/@waterplane/shared/dist/ptysize.js +77 -0
  282. package/node_modules/@waterplane/shared/dist/ptysize.js.map +1 -0
  283. package/node_modules/@waterplane/shared/dist/queue/queuebind.d.ts +40 -0
  284. package/node_modules/@waterplane/shared/dist/queue/queuebind.js +70 -0
  285. package/node_modules/@waterplane/shared/dist/queue/queuebind.js.map +1 -0
  286. package/node_modules/@waterplane/shared/dist/queue/queueentry.d.ts +175 -0
  287. package/node_modules/@waterplane/shared/dist/queue/queueentry.js +4 -0
  288. package/node_modules/@waterplane/shared/dist/queue/queueentry.js.map +1 -0
  289. package/node_modules/@waterplane/shared/dist/queue/queuelane.d.ts +65 -0
  290. package/node_modules/@waterplane/shared/dist/queue/queuelane.js +45 -0
  291. package/node_modules/@waterplane/shared/dist/queue/queuelane.js.map +1 -0
  292. package/node_modules/@waterplane/shared/dist/queue/queueplan.d.ts +180 -0
  293. package/node_modules/@waterplane/shared/dist/queue/queueplan.js +169 -0
  294. package/node_modules/@waterplane/shared/dist/queue/queueplan.js.map +1 -0
  295. package/node_modules/@waterplane/shared/dist/queue/queueretarget.d.ts +61 -0
  296. package/node_modules/@waterplane/shared/dist/queue/queueretarget.js +94 -0
  297. package/node_modules/@waterplane/shared/dist/queue/queueretarget.js.map +1 -0
  298. package/node_modules/@waterplane/shared/dist/queue/queueretry.d.ts +61 -0
  299. package/node_modules/@waterplane/shared/dist/queue/queueretry.js +66 -0
  300. package/node_modules/@waterplane/shared/dist/queue/queueretry.js.map +1 -0
  301. package/node_modules/@waterplane/shared/dist/queue/queueserial.d.ts +154 -0
  302. package/node_modules/@waterplane/shared/dist/queue/queueserial.js +169 -0
  303. package/node_modules/@waterplane/shared/dist/queue/queueserial.js.map +1 -0
  304. package/node_modules/@waterplane/shared/dist/queue/queueuploads.d.ts +65 -0
  305. package/node_modules/@waterplane/shared/dist/queue/queueuploads.js +79 -0
  306. package/node_modules/@waterplane/shared/dist/queue/queueuploads.js.map +1 -0
  307. package/node_modules/@waterplane/shared/dist/queue/queuewords.d.ts +22 -0
  308. package/node_modules/@waterplane/shared/dist/queue/queuewords.js +55 -0
  309. package/node_modules/@waterplane/shared/dist/queue/queuewords.js.map +1 -0
  310. package/node_modules/@waterplane/shared/dist/queue.d.ts +13 -0
  311. package/node_modules/@waterplane/shared/dist/queue.js +44 -0
  312. package/node_modules/@waterplane/shared/dist/queue.js.map +1 -0
  313. package/node_modules/@waterplane/shared/dist/repocolor.d.ts +159 -0
  314. package/node_modules/@waterplane/shared/dist/repocolor.js +261 -0
  315. package/node_modules/@waterplane/shared/dist/repocolor.js.map +1 -0
  316. package/node_modules/@waterplane/shared/dist/repohealth.d.ts +640 -0
  317. package/node_modules/@waterplane/shared/dist/repohealth.js +117 -0
  318. package/node_modules/@waterplane/shared/dist/repohealth.js.map +1 -0
  319. package/node_modules/@waterplane/shared/dist/repohealthread.d.ts +156 -0
  320. package/node_modules/@waterplane/shared/dist/repohealthread.js +680 -0
  321. package/node_modules/@waterplane/shared/dist/repohealthread.js.map +1 -0
  322. package/node_modules/@waterplane/shared/dist/requirements.d.ts +81 -0
  323. package/node_modules/@waterplane/shared/dist/requirements.js +191 -0
  324. package/node_modules/@waterplane/shared/dist/requirements.js.map +1 -0
  325. package/node_modules/@waterplane/shared/dist/rootchoice.d.ts +52 -0
  326. package/node_modules/@waterplane/shared/dist/rootchoice.js +18 -0
  327. package/node_modules/@waterplane/shared/dist/rootchoice.js.map +1 -0
  328. package/node_modules/@waterplane/shared/dist/schedule/schedaction.d.ts +106 -0
  329. package/node_modules/@waterplane/shared/dist/schedule/schedaction.js +14 -0
  330. package/node_modules/@waterplane/shared/dist/schedule/schedaction.js.map +1 -0
  331. package/node_modules/@waterplane/shared/dist/schedule/schedclean.d.ts +6 -0
  332. package/node_modules/@waterplane/shared/dist/schedule/schedclean.js +180 -0
  333. package/node_modules/@waterplane/shared/dist/schedule/schedclean.js.map +1 -0
  334. package/node_modules/@waterplane/shared/dist/schedule/schedfire.d.ts +76 -0
  335. package/node_modules/@waterplane/shared/dist/schedule/schedfire.js +122 -0
  336. package/node_modules/@waterplane/shared/dist/schedule/schedfire.js.map +1 -0
  337. package/node_modules/@waterplane/shared/dist/schedule/schedhorizon.d.ts +78 -0
  338. package/node_modules/@waterplane/shared/dist/schedule/schedhorizon.js +98 -0
  339. package/node_modules/@waterplane/shared/dist/schedule/schedhorizon.js.map +1 -0
  340. package/node_modules/@waterplane/shared/dist/schedule/schedrule.d.ts +219 -0
  341. package/node_modules/@waterplane/shared/dist/schedule/schedrule.js +162 -0
  342. package/node_modules/@waterplane/shared/dist/schedule/schedrule.js.map +1 -0
  343. package/node_modules/@waterplane/shared/dist/schedule/schedtext.d.ts +37 -0
  344. package/node_modules/@waterplane/shared/dist/schedule/schedtext.js +119 -0
  345. package/node_modules/@waterplane/shared/dist/schedule/schedtext.js.map +1 -0
  346. package/node_modules/@waterplane/shared/dist/schedule/schedwhen.d.ts +54 -0
  347. package/node_modules/@waterplane/shared/dist/schedule/schedwhen.js +70 -0
  348. package/node_modules/@waterplane/shared/dist/schedule/schedwhen.js.map +1 -0
  349. package/node_modules/@waterplane/shared/dist/schedule/schedzone.d.ts +76 -0
  350. package/node_modules/@waterplane/shared/dist/schedule/schedzone.js +159 -0
  351. package/node_modules/@waterplane/shared/dist/schedule/schedzone.js.map +1 -0
  352. package/node_modules/@waterplane/shared/dist/schedule.d.ts +44 -0
  353. package/node_modules/@waterplane/shared/dist/schedule.js +43 -0
  354. package/node_modules/@waterplane/shared/dist/schedule.js.map +1 -0
  355. package/node_modules/@waterplane/shared/dist/screenlog.d.ts +65 -0
  356. package/node_modules/@waterplane/shared/dist/screenlog.js +169 -0
  357. package/node_modules/@waterplane/shared/dist/screenlog.js.map +1 -0
  358. package/node_modules/@waterplane/shared/dist/sendstamp.d.ts +85 -0
  359. package/node_modules/@waterplane/shared/dist/sendstamp.js +96 -0
  360. package/node_modules/@waterplane/shared/dist/sendstamp.js.map +1 -0
  361. package/node_modules/@waterplane/shared/dist/sessionbudget.d.ts +162 -0
  362. package/node_modules/@waterplane/shared/dist/sessionbudget.js +213 -0
  363. package/node_modules/@waterplane/shared/dist/sessionbudget.js.map +1 -0
  364. package/node_modules/@waterplane/shared/dist/sessioncost/costcold.d.ts +99 -0
  365. package/node_modules/@waterplane/shared/dist/sessioncost/costcold.js +94 -0
  366. package/node_modules/@waterplane/shared/dist/sessioncost/costcold.js.map +1 -0
  367. package/node_modules/@waterplane/shared/dist/sessioncost/costcompact.d.ts +125 -0
  368. package/node_modules/@waterplane/shared/dist/sessioncost/costcompact.js +184 -0
  369. package/node_modules/@waterplane/shared/dist/sessioncost/costcompact.js.map +1 -0
  370. package/node_modules/@waterplane/shared/dist/sessioncost/costofseries.d.ts +21 -0
  371. package/node_modules/@waterplane/shared/dist/sessioncost/costofseries.js +31 -0
  372. package/node_modules/@waterplane/shared/dist/sessioncost/costofseries.js.map +1 -0
  373. package/node_modules/@waterplane/shared/dist/sessioncost/costreading.d.ts +174 -0
  374. package/node_modules/@waterplane/shared/dist/sessioncost/costreading.js +302 -0
  375. package/node_modules/@waterplane/shared/dist/sessioncost/costreading.js.map +1 -0
  376. package/node_modules/@waterplane/shared/dist/sessioncost/costtypes.d.ts +209 -0
  377. package/node_modules/@waterplane/shared/dist/sessioncost/costtypes.js +128 -0
  378. package/node_modules/@waterplane/shared/dist/sessioncost/costtypes.js.map +1 -0
  379. package/node_modules/@waterplane/shared/dist/sessioncost/costwords.d.ts +169 -0
  380. package/node_modules/@waterplane/shared/dist/sessioncost/costwords.js +262 -0
  381. package/node_modules/@waterplane/shared/dist/sessioncost/costwords.js.map +1 -0
  382. package/node_modules/@waterplane/shared/dist/sessioncost.d.ts +52 -0
  383. package/node_modules/@waterplane/shared/dist/sessioncost.js +51 -0
  384. package/node_modules/@waterplane/shared/dist/sessioncost.js.map +1 -0
  385. package/node_modules/@waterplane/shared/dist/settings.d.ts +136 -0
  386. package/node_modules/@waterplane/shared/dist/settings.js +303 -0
  387. package/node_modules/@waterplane/shared/dist/settings.js.map +1 -0
  388. package/node_modules/@waterplane/shared/dist/shells.d.ts +140 -0
  389. package/node_modules/@waterplane/shared/dist/shells.js +257 -0
  390. package/node_modules/@waterplane/shared/dist/shells.js.map +1 -0
  391. package/node_modules/@waterplane/shared/dist/slash.d.ts +47 -0
  392. package/node_modules/@waterplane/shared/dist/slash.js +166 -0
  393. package/node_modules/@waterplane/shared/dist/slash.js.map +1 -0
  394. package/node_modules/@waterplane/shared/dist/sourceshape.d.ts +27 -0
  395. package/node_modules/@waterplane/shared/dist/sourceshape.js +141 -0
  396. package/node_modules/@waterplane/shared/dist/sourceshape.js.map +1 -0
  397. package/node_modules/@waterplane/shared/dist/spendwarn.d.ts +37 -0
  398. package/node_modules/@waterplane/shared/dist/spendwarn.js +79 -0
  399. package/node_modules/@waterplane/shared/dist/spendwarn.js.map +1 -0
  400. package/node_modules/@waterplane/shared/dist/statedir.d.ts +11 -0
  401. package/node_modules/@waterplane/shared/dist/statedir.js +34 -0
  402. package/node_modules/@waterplane/shared/dist/statedir.js.map +1 -0
  403. package/node_modules/@waterplane/shared/dist/stream.d.ts +135 -0
  404. package/node_modules/@waterplane/shared/dist/stream.js +117 -0
  405. package/node_modules/@waterplane/shared/dist/stream.js.map +1 -0
  406. package/node_modules/@waterplane/shared/dist/sweep.d.ts +156 -0
  407. package/node_modules/@waterplane/shared/dist/sweep.js +193 -0
  408. package/node_modules/@waterplane/shared/dist/sweep.js.map +1 -0
  409. package/node_modules/@waterplane/shared/dist/sweepfamilies.d.ts +56 -0
  410. package/node_modules/@waterplane/shared/dist/sweepfamilies.js +140 -0
  411. package/node_modules/@waterplane/shared/dist/sweepfamilies.js.map +1 -0
  412. package/node_modules/@waterplane/shared/dist/termpalette.d.ts +17 -0
  413. package/node_modules/@waterplane/shared/dist/termpalette.js +5 -0
  414. package/node_modules/@waterplane/shared/dist/termpalette.js.map +1 -0
  415. package/node_modules/@waterplane/shared/dist/themeoverlay.d.ts +111 -0
  416. package/node_modules/@waterplane/shared/dist/themeoverlay.js +328 -0
  417. package/node_modules/@waterplane/shared/dist/themeoverlay.js.map +1 -0
  418. package/node_modules/@waterplane/shared/dist/tokens.d.ts +198 -0
  419. package/node_modules/@waterplane/shared/dist/tokens.js +320 -0
  420. package/node_modules/@waterplane/shared/dist/tokens.js.map +1 -0
  421. package/node_modules/@waterplane/shared/dist/transcriptfold.d.ts +50 -0
  422. package/node_modules/@waterplane/shared/dist/transcriptfold.js +87 -0
  423. package/node_modules/@waterplane/shared/dist/transcriptfold.js.map +1 -0
  424. package/node_modules/@waterplane/shared/dist/urls.d.ts +53 -0
  425. package/node_modules/@waterplane/shared/dist/urls.js +150 -0
  426. package/node_modules/@waterplane/shared/dist/urls.js.map +1 -0
  427. package/node_modules/@waterplane/shared/dist/usagesources.d.ts +88 -0
  428. package/node_modules/@waterplane/shared/dist/usagesources.js +198 -0
  429. package/node_modules/@waterplane/shared/dist/usagesources.js.map +1 -0
  430. package/node_modules/@waterplane/shared/dist/windowadvice.d.ts +7 -0
  431. package/node_modules/@waterplane/shared/dist/windowadvice.js +50 -0
  432. package/node_modules/@waterplane/shared/dist/windowadvice.js.map +1 -0
  433. package/node_modules/@waterplane/shared/dist/wire/backend.d.ts +223 -0
  434. package/node_modules/@waterplane/shared/dist/wire/backend.js +18 -0
  435. package/node_modules/@waterplane/shared/dist/wire/backend.js.map +1 -0
  436. package/node_modules/@waterplane/shared/dist/wire/backendtokens.d.ts +99 -0
  437. package/node_modules/@waterplane/shared/dist/wire/backendtokens.js +11 -0
  438. package/node_modules/@waterplane/shared/dist/wire/backendtokens.js.map +1 -0
  439. package/node_modules/@waterplane/shared/dist/wire/capture.d.ts +380 -0
  440. package/node_modules/@waterplane/shared/dist/wire/capture.js +46 -0
  441. package/node_modules/@waterplane/shared/dist/wire/capture.js.map +1 -0
  442. package/node_modules/@waterplane/shared/dist/wire/costwindow.d.ts +143 -0
  443. package/node_modules/@waterplane/shared/dist/wire/costwindow.js +16 -0
  444. package/node_modules/@waterplane/shared/dist/wire/costwindow.js.map +1 -0
  445. package/node_modules/@waterplane/shared/dist/wire/install.d.ts +172 -0
  446. package/node_modules/@waterplane/shared/dist/wire/install.js +30 -0
  447. package/node_modules/@waterplane/shared/dist/wire/install.js.map +1 -0
  448. package/node_modules/@waterplane/shared/dist/wire/intent.d.ts +187 -0
  449. package/node_modules/@waterplane/shared/dist/wire/intent.js +2 -0
  450. package/node_modules/@waterplane/shared/dist/wire/intent.js.map +1 -0
  451. package/node_modules/@waterplane/shared/dist/wire/localrt.d.ts +78 -0
  452. package/node_modules/@waterplane/shared/dist/wire/localrt.js +21 -0
  453. package/node_modules/@waterplane/shared/dist/wire/localrt.js.map +1 -0
  454. package/node_modules/@waterplane/shared/dist/wire/localusage.d.ts +121 -0
  455. package/node_modules/@waterplane/shared/dist/wire/localusage.js +23 -0
  456. package/node_modules/@waterplane/shared/dist/wire/localusage.js.map +1 -0
  457. package/node_modules/@waterplane/shared/dist/wire/messages/clientbacklog.d.ts +177 -0
  458. package/node_modules/@waterplane/shared/dist/wire/messages/clientbacklog.js +3 -0
  459. package/node_modules/@waterplane/shared/dist/wire/messages/clientbacklog.js.map +1 -0
  460. package/node_modules/@waterplane/shared/dist/wire/messages/clienthost.d.ts +344 -0
  461. package/node_modules/@waterplane/shared/dist/wire/messages/clienthost.js +3 -0
  462. package/node_modules/@waterplane/shared/dist/wire/messages/clienthost.js.map +1 -0
  463. package/node_modules/@waterplane/shared/dist/wire/messages/clientsession.d.ts +307 -0
  464. package/node_modules/@waterplane/shared/dist/wire/messages/clientsession.js +3 -0
  465. package/node_modules/@waterplane/shared/dist/wire/messages/clientsession.js.map +1 -0
  466. package/node_modules/@waterplane/shared/dist/wire/messages/clientupdates.d.ts +18 -0
  467. package/node_modules/@waterplane/shared/dist/wire/messages/clientupdates.js +5 -0
  468. package/node_modules/@waterplane/shared/dist/wire/messages/clientupdates.js.map +1 -0
  469. package/node_modules/@waterplane/shared/dist/wire/messages/clientwork.d.ts +478 -0
  470. package/node_modules/@waterplane/shared/dist/wire/messages/clientwork.js +3 -0
  471. package/node_modules/@waterplane/shared/dist/wire/messages/clientwork.js.map +1 -0
  472. package/node_modules/@waterplane/shared/dist/wire/messages/hostcore.d.ts +488 -0
  473. package/node_modules/@waterplane/shared/dist/wire/messages/hostcore.js +3 -0
  474. package/node_modules/@waterplane/shared/dist/wire/messages/hostcore.js.map +1 -0
  475. package/node_modules/@waterplane/shared/dist/wire/messages/hosttools.d.ts +338 -0
  476. package/node_modules/@waterplane/shared/dist/wire/messages/hosttools.js +3 -0
  477. package/node_modules/@waterplane/shared/dist/wire/messages/hosttools.js.map +1 -0
  478. package/node_modules/@waterplane/shared/dist/wire/messages/hostupdates.d.ts +16 -0
  479. package/node_modules/@waterplane/shared/dist/wire/messages/hostupdates.js +3 -0
  480. package/node_modules/@waterplane/shared/dist/wire/messages/hostupdates.js.map +1 -0
  481. package/node_modules/@waterplane/shared/dist/wire/messages.d.ts +25 -0
  482. package/node_modules/@waterplane/shared/dist/wire/messages.js +18 -0
  483. package/node_modules/@waterplane/shared/dist/wire/messages.js.map +1 -0
  484. package/node_modules/@waterplane/shared/dist/wire/notify.d.ts +145 -0
  485. package/node_modules/@waterplane/shared/dist/wire/notify.js +96 -0
  486. package/node_modules/@waterplane/shared/dist/wire/notify.js.map +1 -0
  487. package/node_modules/@waterplane/shared/dist/wire/notifylink.d.ts +36 -0
  488. package/node_modules/@waterplane/shared/dist/wire/notifylink.js +44 -0
  489. package/node_modules/@waterplane/shared/dist/wire/notifylink.js.map +1 -0
  490. package/node_modules/@waterplane/shared/dist/wire/onboard.d.ts +121 -0
  491. package/node_modules/@waterplane/shared/dist/wire/onboard.js +11 -0
  492. package/node_modules/@waterplane/shared/dist/wire/onboard.js.map +1 -0
  493. package/node_modules/@waterplane/shared/dist/wire/repo.d.ts +456 -0
  494. package/node_modules/@waterplane/shared/dist/wire/repo.js +30 -0
  495. package/node_modules/@waterplane/shared/dist/wire/repo.js.map +1 -0
  496. package/node_modules/@waterplane/shared/dist/wire/sent.d.ts +127 -0
  497. package/node_modules/@waterplane/shared/dist/wire/sent.js +2 -0
  498. package/node_modules/@waterplane/shared/dist/wire/sent.js.map +1 -0
  499. package/node_modules/@waterplane/shared/dist/wire/session/archive.d.ts +286 -0
  500. package/node_modules/@waterplane/shared/dist/wire/session/archive.js +2 -0
  501. package/node_modules/@waterplane/shared/dist/wire/session/archive.js.map +1 -0
  502. package/node_modules/@waterplane/shared/dist/wire/session/context.d.ts +298 -0
  503. package/node_modules/@waterplane/shared/dist/wire/session/context.js +6 -0
  504. package/node_modules/@waterplane/shared/dist/wire/session/context.js.map +1 -0
  505. package/node_modules/@waterplane/shared/dist/wire/session/contextspark.d.ts +402 -0
  506. package/node_modules/@waterplane/shared/dist/wire/session/contextspark.js +2 -0
  507. package/node_modules/@waterplane/shared/dist/wire/session/contextspark.js.map +1 -0
  508. package/node_modules/@waterplane/shared/dist/wire/session/delivery.d.ts +114 -0
  509. package/node_modules/@waterplane/shared/dist/wire/session/delivery.js +2 -0
  510. package/node_modules/@waterplane/shared/dist/wire/session/delivery.js.map +1 -0
  511. package/node_modules/@waterplane/shared/dist/wire/session/info.d.ts +427 -0
  512. package/node_modules/@waterplane/shared/dist/wire/session/info.js +2 -0
  513. package/node_modules/@waterplane/shared/dist/wire/session/info.js.map +1 -0
  514. package/node_modules/@waterplane/shared/dist/wire/session/launch.d.ts +332 -0
  515. package/node_modules/@waterplane/shared/dist/wire/session/launch.js +2 -0
  516. package/node_modules/@waterplane/shared/dist/wire/session/launch.js.map +1 -0
  517. package/node_modules/@waterplane/shared/dist/wire/session/promptbox.d.ts +181 -0
  518. package/node_modules/@waterplane/shared/dist/wire/session/promptbox.js +2 -0
  519. package/node_modules/@waterplane/shared/dist/wire/session/promptbox.js.map +1 -0
  520. package/node_modules/@waterplane/shared/dist/wire/session.d.ts +16 -0
  521. package/node_modules/@waterplane/shared/dist/wire/session.js +10 -0
  522. package/node_modules/@waterplane/shared/dist/wire/session.js.map +1 -0
  523. package/node_modules/@waterplane/shared/dist/wire/slash.d.ts +31 -0
  524. package/node_modules/@waterplane/shared/dist/wire/slash.js +9 -0
  525. package/node_modules/@waterplane/shared/dist/wire/slash.js.map +1 -0
  526. package/node_modules/@waterplane/shared/dist/wire/sysstat.d.ts +226 -0
  527. package/node_modules/@waterplane/shared/dist/wire/sysstat.js +47 -0
  528. package/node_modules/@waterplane/shared/dist/wire/sysstat.js.map +1 -0
  529. package/node_modules/@waterplane/shared/dist/wire/telemetry.d.ts +645 -0
  530. package/node_modules/@waterplane/shared/dist/wire/telemetry.js +3 -0
  531. package/node_modules/@waterplane/shared/dist/wire/telemetry.js.map +1 -0
  532. package/node_modules/@waterplane/shared/dist/wire/transcript.d.ts +327 -0
  533. package/node_modules/@waterplane/shared/dist/wire/transcript.js +60 -0
  534. package/node_modules/@waterplane/shared/dist/wire/transcript.js.map +1 -0
  535. package/node_modules/@waterplane/shared/dist/wire/updates.d.ts +130 -0
  536. package/node_modules/@waterplane/shared/dist/wire/updates.js +52 -0
  537. package/node_modules/@waterplane/shared/dist/wire/updates.js.map +1 -0
  538. package/node_modules/@waterplane/shared/dist/wire/work.d.ts +699 -0
  539. package/node_modules/@waterplane/shared/dist/wire/work.js +22 -0
  540. package/node_modules/@waterplane/shared/dist/wire/work.js.map +1 -0
  541. package/node_modules/@waterplane/shared/dist/working.d.ts +70 -0
  542. package/node_modules/@waterplane/shared/dist/working.js +208 -0
  543. package/node_modules/@waterplane/shared/dist/working.js.map +1 -0
  544. package/node_modules/@waterplane/shared/package.json +17 -0
  545. package/npm-shrinkwrap.json +250 -0
  546. package/package.json +33 -6
  547. package/packages/extensions/copilot-usage/waterplane-plugin.json +9 -0
  548. package/packages/extensions/ocr/assets/deu.traineddata.gz +0 -0
  549. package/packages/extensions/ocr/assets/eng.traineddata.gz +0 -0
  550. package/packages/extensions/ocr/assets/manifest.json +44 -0
  551. package/packages/extensions/ocr/assets/tesseract-core-lstm.wasm.js +191 -0
  552. package/packages/extensions/ocr/assets/tesseract-core-simd-lstm.wasm.js +191 -0
  553. package/packages/extensions/ocr/assets/worker.min.js +3 -0
  554. package/packages/extensions/ocr/waterplane-plugin.json +11 -0
  555. package/packages/extensions/requirements/waterplane-plugin.json +9 -0
  556. package/packages/extensions/token-stats/waterplane-plugin.json +8 -0
  557. package/packages/host/dist/acks.d.ts +119 -0
  558. package/packages/host/dist/acks.js +268 -0
  559. package/packages/host/dist/acks.js.map +1 -0
  560. package/packages/host/dist/agentfollowup.d.ts +45 -0
  561. package/packages/host/dist/agentfollowup.js +77 -0
  562. package/packages/host/dist/agentfollowup.js.map +1 -0
  563. package/packages/host/dist/agentintents.d.ts +278 -0
  564. package/packages/host/dist/agentintents.js +509 -0
  565. package/packages/host/dist/agentintents.js.map +1 -0
  566. package/packages/host/dist/agents.d.ts +112 -0
  567. package/packages/host/dist/agents.js +517 -0
  568. package/packages/host/dist/agents.js.map +1 -0
  569. package/packages/host/dist/agentwatch.d.ts +42 -0
  570. package/packages/host/dist/agentwatch.js +35 -0
  571. package/packages/host/dist/agentwatch.js.map +1 -0
  572. package/packages/host/dist/androidenv.d.ts +80 -0
  573. package/packages/host/dist/androidenv.js +344 -0
  574. package/packages/host/dist/androidenv.js.map +1 -0
  575. package/packages/host/dist/answergate.d.ts +191 -0
  576. package/packages/host/dist/answergate.js +321 -0
  577. package/packages/host/dist/answergate.js.map +1 -0
  578. package/packages/host/dist/api.d.ts +19 -0
  579. package/packages/host/dist/api.js +62 -0
  580. package/packages/host/dist/api.js.map +1 -0
  581. package/packages/host/dist/apkcheck.d.ts +36 -0
  582. package/packages/host/dist/apkcheck.js +290 -0
  583. package/packages/host/dist/apkcheck.js.map +1 -0
  584. package/packages/host/dist/appready.d.ts +8 -0
  585. package/packages/host/dist/appready.js +16 -0
  586. package/packages/host/dist/appready.js.map +1 -0
  587. package/packages/host/dist/archive.d.ts +95 -0
  588. package/packages/host/dist/archive.js +318 -0
  589. package/packages/host/dist/archive.js.map +1 -0
  590. package/packages/host/dist/artifacts.d.ts +38 -0
  591. package/packages/host/dist/artifacts.js +315 -0
  592. package/packages/host/dist/artifacts.js.map +1 -0
  593. package/packages/host/dist/askbox.d.ts +116 -0
  594. package/packages/host/dist/askbox.js +341 -0
  595. package/packages/host/dist/askbox.js.map +1 -0
  596. package/packages/host/dist/askrules.d.ts +38 -0
  597. package/packages/host/dist/askrules.js +139 -0
  598. package/packages/host/dist/askrules.js.map +1 -0
  599. package/packages/host/dist/assess/hassapply.d.ts +127 -0
  600. package/packages/host/dist/assess/hassapply.js +482 -0
  601. package/packages/host/dist/assess/hassapply.js.map +1 -0
  602. package/packages/host/dist/assess/hassexec.d.ts +160 -0
  603. package/packages/host/dist/assess/hassexec.js +178 -0
  604. package/packages/host/dist/assess/hassexec.js.map +1 -0
  605. package/packages/host/dist/assess/hassinput.d.ts +80 -0
  606. package/packages/host/dist/assess/hassinput.js +264 -0
  607. package/packages/host/dist/assess/hassinput.js.map +1 -0
  608. package/packages/host/dist/assess/hassknobs.d.ts +66 -0
  609. package/packages/host/dist/assess/hassknobs.js +69 -0
  610. package/packages/host/dist/assess/hassknobs.js.map +1 -0
  611. package/packages/host/dist/assess/hassprogress.d.ts +30 -0
  612. package/packages/host/dist/assess/hassprogress.js +165 -0
  613. package/packages/host/dist/assess/hassprogress.js.map +1 -0
  614. package/packages/host/dist/assess/hassrun.d.ts +39 -0
  615. package/packages/host/dist/assess/hassrun.js +269 -0
  616. package/packages/host/dist/assess/hassrun.js.map +1 -0
  617. package/packages/host/dist/assess/hassstore.d.ts +77 -0
  618. package/packages/host/dist/assess/hassstore.js +187 -0
  619. package/packages/host/dist/assess/hassstore.js.map +1 -0
  620. package/packages/host/dist/assess/hassutil.d.ts +28 -0
  621. package/packages/host/dist/assess/hassutil.js +53 -0
  622. package/packages/host/dist/assess/hassutil.js.map +1 -0
  623. package/packages/host/dist/assess.d.ts +60 -0
  624. package/packages/host/dist/assess.js +58 -0
  625. package/packages/host/dist/assess.js.map +1 -0
  626. package/packages/host/dist/auth.d.ts +93 -0
  627. package/packages/host/dist/auth.js +276 -0
  628. package/packages/host/dist/auth.js.map +1 -0
  629. package/packages/host/dist/authroutes.d.ts +36 -0
  630. package/packages/host/dist/authroutes.js +108 -0
  631. package/packages/host/dist/authroutes.js.map +1 -0
  632. package/packages/host/dist/autopull.d.ts +107 -0
  633. package/packages/host/dist/autopull.js +248 -0
  634. package/packages/host/dist/autopull.js.map +1 -0
  635. package/packages/host/dist/backends/claude-endpoint.d.ts +98 -0
  636. package/packages/host/dist/backends/claude-endpoint.js +347 -0
  637. package/packages/host/dist/backends/claude-endpoint.js.map +1 -0
  638. package/packages/host/dist/backends/claude-local.d.ts +51 -0
  639. package/packages/host/dist/backends/claude-local.js +221 -0
  640. package/packages/host/dist/backends/claude-local.js.map +1 -0
  641. package/packages/host/dist/backends/claude-sources.d.ts +53 -0
  642. package/packages/host/dist/backends/claude-sources.js +68 -0
  643. package/packages/host/dist/backends/claude-sources.js.map +1 -0
  644. package/packages/host/dist/backends/claude.d.ts +45 -0
  645. package/packages/host/dist/backends/claude.js +248 -0
  646. package/packages/host/dist/backends/claude.js.map +1 -0
  647. package/packages/host/dist/backends/claudemodels.d.ts +19 -0
  648. package/packages/host/dist/backends/claudemodels.js +122 -0
  649. package/packages/host/dist/backends/claudemodels.js.map +1 -0
  650. package/packages/host/dist/backends/derive.d.ts +81 -0
  651. package/packages/host/dist/backends/derive.js +198 -0
  652. package/packages/host/dist/backends/derive.js.map +1 -0
  653. package/packages/host/dist/backends/index.d.ts +138 -0
  654. package/packages/host/dist/backends/index.js +328 -0
  655. package/packages/host/dist/backends/index.js.map +1 -0
  656. package/packages/host/dist/backends/overhead.d.ts +16 -0
  657. package/packages/host/dist/backends/overhead.js +124 -0
  658. package/packages/host/dist/backends/overhead.js.map +1 -0
  659. package/packages/host/dist/backends/readers.d.ts +57 -0
  660. package/packages/host/dist/backends/readers.js +74 -0
  661. package/packages/host/dist/backends/readers.js.map +1 -0
  662. package/packages/host/dist/backends/registry.d.ts +37 -0
  663. package/packages/host/dist/backends/registry.js +73 -0
  664. package/packages/host/dist/backends/registry.js.map +1 -0
  665. package/packages/host/dist/backends/shell.d.ts +31 -0
  666. package/packages/host/dist/backends/shell.js +127 -0
  667. package/packages/host/dist/backends/shell.js.map +1 -0
  668. package/packages/host/dist/backends/types.d.ts +457 -0
  669. package/packages/host/dist/backends/types.js +2 -0
  670. package/packages/host/dist/backends/types.js.map +1 -0
  671. package/packages/host/dist/backlog/backlogcore.d.ts +36 -0
  672. package/packages/host/dist/backlog/backlogcore.js +2 -0
  673. package/packages/host/dist/backlog/backlogcore.js.map +1 -0
  674. package/packages/host/dist/backlog/backlogedits.d.ts +96 -0
  675. package/packages/host/dist/backlog/backlogedits.js +229 -0
  676. package/packages/host/dist/backlog/backlogedits.js.map +1 -0
  677. package/packages/host/dist/backlog/backlogfollowup.d.ts +7 -0
  678. package/packages/host/dist/backlog/backlogfollowup.js +71 -0
  679. package/packages/host/dist/backlog/backlogfollowup.js.map +1 -0
  680. package/packages/host/dist/backlog/backlogknobs.d.ts +56 -0
  681. package/packages/host/dist/backlog/backlogknobs.js +62 -0
  682. package/packages/host/dist/backlog/backlogknobs.js.map +1 -0
  683. package/packages/host/dist/backlog/backlogsessions.d.ts +217 -0
  684. package/packages/host/dist/backlog/backlogsessions.js +421 -0
  685. package/packages/host/dist/backlog/backlogsessions.js.map +1 -0
  686. package/packages/host/dist/backlog/backlogstore.d.ts +31 -0
  687. package/packages/host/dist/backlog/backlogstore.js +101 -0
  688. package/packages/host/dist/backlog/backlogstore.js.map +1 -0
  689. package/packages/host/dist/backlog/backlogtitles.d.ts +40 -0
  690. package/packages/host/dist/backlog/backlogtitles.js +50 -0
  691. package/packages/host/dist/backlog/backlogtitles.js.map +1 -0
  692. package/packages/host/dist/backlog/backlogwording.d.ts +31 -0
  693. package/packages/host/dist/backlog/backlogwording.js +42 -0
  694. package/packages/host/dist/backlog/backlogwording.js.map +1 -0
  695. package/packages/host/dist/backlog.d.ts +142 -0
  696. package/packages/host/dist/backlog.js +96 -0
  697. package/packages/host/dist/backlog.js.map +1 -0
  698. package/packages/host/dist/billing.d.ts +53 -0
  699. package/packages/host/dist/billing.js +140 -0
  700. package/packages/host/dist/billing.js.map +1 -0
  701. package/packages/host/dist/binguard.d.ts +28 -0
  702. package/packages/host/dist/binguard.js +88 -0
  703. package/packages/host/dist/binguard.js.map +1 -0
  704. package/packages/host/dist/bookmarks.d.ts +24 -0
  705. package/packages/host/dist/bookmarks.js +118 -0
  706. package/packages/host/dist/bookmarks.js.map +1 -0
  707. package/packages/host/dist/branddirs.d.ts +223 -0
  708. package/packages/host/dist/branddirs.js +828 -0
  709. package/packages/host/dist/branddirs.js.map +1 -0
  710. package/packages/host/dist/budget.d.ts +57 -0
  711. package/packages/host/dist/budget.js +153 -0
  712. package/packages/host/dist/budget.js.map +1 -0
  713. package/packages/host/dist/builds.d.ts +178 -0
  714. package/packages/host/dist/builds.js +645 -0
  715. package/packages/host/dist/builds.js.map +1 -0
  716. package/packages/host/dist/buildscan.d.ts +16 -0
  717. package/packages/host/dist/buildscan.js +177 -0
  718. package/packages/host/dist/buildscan.js.map +1 -0
  719. package/packages/host/dist/burnwatch.d.ts +53 -0
  720. package/packages/host/dist/burnwatch.js +141 -0
  721. package/packages/host/dist/burnwatch.js.map +1 -0
  722. package/packages/host/dist/capture/android.d.ts +2 -0
  723. package/packages/host/dist/capture/android.js +144 -0
  724. package/packages/host/dist/capture/android.js.map +1 -0
  725. package/packages/host/dist/capture/captureconfig.d.ts +44 -0
  726. package/packages/host/dist/capture/captureconfig.js +169 -0
  727. package/packages/host/dist/capture/captureconfig.js.map +1 -0
  728. package/packages/host/dist/capture/capturehelpers.d.ts +34 -0
  729. package/packages/host/dist/capture/capturehelpers.js +156 -0
  730. package/packages/host/dist/capture/capturehelpers.js.map +1 -0
  731. package/packages/host/dist/capture/capturekit.d.ts +32 -0
  732. package/packages/host/dist/capture/capturekit.js +47 -0
  733. package/packages/host/dist/capture/capturekit.js.map +1 -0
  734. package/packages/host/dist/capture/capturepass.d.ts +17 -0
  735. package/packages/host/dist/capture/capturepass.js +262 -0
  736. package/packages/host/dist/capture/capturepass.js.map +1 -0
  737. package/packages/host/dist/capture/capturesettle.d.ts +35 -0
  738. package/packages/host/dist/capture/capturesettle.js +77 -0
  739. package/packages/host/dist/capture/capturesettle.js.map +1 -0
  740. package/packages/host/dist/capture/captureverdict.d.ts +132 -0
  741. package/packages/host/dist/capture/captureverdict.js +107 -0
  742. package/packages/host/dist/capture/captureverdict.js.map +1 -0
  743. package/packages/host/dist/capture/garmin.d.ts +2 -0
  744. package/packages/host/dist/capture/garmin.js +294 -0
  745. package/packages/host/dist/capture/garmin.js.map +1 -0
  746. package/packages/host/dist/capture/pixels.d.ts +60 -0
  747. package/packages/host/dist/capture/pixels.js +199 -0
  748. package/packages/host/dist/capture/pixels.js.map +1 -0
  749. package/packages/host/dist/capture/types.d.ts +195 -0
  750. package/packages/host/dist/capture/types.js +2 -0
  751. package/packages/host/dist/capture/types.js.map +1 -0
  752. package/packages/host/dist/capture/web.d.ts +2 -0
  753. package/packages/host/dist/capture/web.js +290 -0
  754. package/packages/host/dist/capture/web.js.map +1 -0
  755. package/packages/host/dist/capture/window.d.ts +2 -0
  756. package/packages/host/dist/capture/window.js +88 -0
  757. package/packages/host/dist/capture/window.js.map +1 -0
  758. package/packages/host/dist/capture.d.ts +116 -0
  759. package/packages/host/dist/capture.js +295 -0
  760. package/packages/host/dist/capture.js.map +1 -0
  761. package/packages/host/dist/claudebin.d.ts +32 -0
  762. package/packages/host/dist/claudebin.js +113 -0
  763. package/packages/host/dist/claudebin.js.map +1 -0
  764. package/packages/host/dist/claudeconfig.d.ts +23 -0
  765. package/packages/host/dist/claudeconfig.js +118 -0
  766. package/packages/host/dist/claudeconfig.js.map +1 -0
  767. package/packages/host/dist/cli/entry.d.ts +1 -0
  768. package/packages/host/dist/cli/entry.js +11 -0
  769. package/packages/host/dist/cli/entry.js.map +1 -0
  770. package/packages/host/dist/cli/index.d.ts +12 -0
  771. package/packages/host/dist/cli/index.js +122 -0
  772. package/packages/host/dist/cli/index.js.map +1 -0
  773. package/packages/host/dist/cli/pair.d.ts +28 -0
  774. package/packages/host/dist/cli/pair.js +94 -0
  775. package/packages/host/dist/cli/pair.js.map +1 -0
  776. package/packages/host/dist/cli/releasesig.d.ts +42 -0
  777. package/packages/host/dist/cli/releasesig.js +60 -0
  778. package/packages/host/dist/cli/releasesig.js.map +1 -0
  779. package/packages/host/dist/cli/selfupdate.d.ts +96 -0
  780. package/packages/host/dist/cli/selfupdate.js +842 -0
  781. package/packages/host/dist/cli/selfupdate.js.map +1 -0
  782. package/packages/host/dist/cli/service.d.ts +100 -0
  783. package/packages/host/dist/cli/service.js +645 -0
  784. package/packages/host/dist/cli/service.js.map +1 -0
  785. package/packages/host/dist/cli/statesnap.d.ts +34 -0
  786. package/packages/host/dist/cli/statesnap.js +135 -0
  787. package/packages/host/dist/cli/statesnap.js.map +1 -0
  788. package/packages/host/dist/cli/windows.d.ts +191 -0
  789. package/packages/host/dist/cli/windows.js +658 -0
  790. package/packages/host/dist/cli/windows.js.map +1 -0
  791. package/packages/host/dist/clifixtures.d.ts +28 -0
  792. package/packages/host/dist/clifixtures.js +193 -0
  793. package/packages/host/dist/clifixtures.js.map +1 -0
  794. package/packages/host/dist/clihealth.d.ts +121 -0
  795. package/packages/host/dist/clihealth.js +301 -0
  796. package/packages/host/dist/clihealth.js.map +1 -0
  797. package/packages/host/dist/clisuggest.d.ts +13 -0
  798. package/packages/host/dist/clisuggest.js +54 -0
  799. package/packages/host/dist/clisuggest.js.map +1 -0
  800. package/packages/host/dist/commitmsg.d.ts +17 -0
  801. package/packages/host/dist/commitmsg.js +98 -0
  802. package/packages/host/dist/commitmsg.js.map +1 -0
  803. package/packages/host/dist/compliance.d.ts +121 -0
  804. package/packages/host/dist/compliance.js +827 -0
  805. package/packages/host/dist/compliance.js.map +1 -0
  806. package/packages/host/dist/composer.d.ts +225 -0
  807. package/packages/host/dist/composer.js +453 -0
  808. package/packages/host/dist/composer.js.map +1 -0
  809. package/packages/host/dist/confirmgate.d.ts +34 -0
  810. package/packages/host/dist/confirmgate.js +114 -0
  811. package/packages/host/dist/confirmgate.js.map +1 -0
  812. package/packages/host/dist/context.d.ts +22 -0
  813. package/packages/host/dist/context.js +92 -0
  814. package/packages/host/dist/context.js.map +1 -0
  815. package/packages/host/dist/contextlimits.d.ts +31 -0
  816. package/packages/host/dist/contextlimits.js +128 -0
  817. package/packages/host/dist/contextlimits.js.map +1 -0
  818. package/packages/host/dist/convfork.d.ts +67 -0
  819. package/packages/host/dist/convfork.js +372 -0
  820. package/packages/host/dist/convfork.js.map +1 -0
  821. package/packages/host/dist/convlog.d.ts +40 -0
  822. package/packages/host/dist/convlog.js +52 -0
  823. package/packages/host/dist/convlog.js.map +1 -0
  824. package/packages/host/dist/costwindow.d.ts +77 -0
  825. package/packages/host/dist/costwindow.js +333 -0
  826. package/packages/host/dist/costwindow.js.map +1 -0
  827. package/packages/host/dist/ctxlog/ctxagents.d.ts +179 -0
  828. package/packages/host/dist/ctxlog/ctxagents.js +419 -0
  829. package/packages/host/dist/ctxlog/ctxagents.js.map +1 -0
  830. package/packages/host/dist/ctxlog/ctxcursor.d.ts +299 -0
  831. package/packages/host/dist/ctxlog/ctxcursor.js +163 -0
  832. package/packages/host/dist/ctxlog/ctxcursor.js.map +1 -0
  833. package/packages/host/dist/ctxlog/ctxproject.d.ts +49 -0
  834. package/packages/host/dist/ctxlog/ctxproject.js +198 -0
  835. package/packages/host/dist/ctxlog/ctxproject.js.map +1 -0
  836. package/packages/host/dist/ctxlog/ctxupdate.d.ts +11 -0
  837. package/packages/host/dist/ctxlog/ctxupdate.js +338 -0
  838. package/packages/host/dist/ctxlog/ctxupdate.js.map +1 -0
  839. package/packages/host/dist/ctxlog.d.ts +56 -0
  840. package/packages/host/dist/ctxlog.js +57 -0
  841. package/packages/host/dist/ctxlog.js.map +1 -0
  842. package/packages/host/dist/ctxwindow.d.ts +17 -0
  843. package/packages/host/dist/ctxwindow.js +106 -0
  844. package/packages/host/dist/ctxwindow.js.map +1 -0
  845. package/packages/host/dist/decisionlog.d.ts +29 -0
  846. package/packages/host/dist/decisionlog.js +167 -0
  847. package/packages/host/dist/decisionlog.js.map +1 -0
  848. package/packages/host/dist/deliver/deliverknobs.d.ts +84 -0
  849. package/packages/host/dist/deliver/deliverknobs.js +85 -0
  850. package/packages/host/dist/deliver/deliverknobs.js.map +1 -0
  851. package/packages/host/dist/deliver/deliverproof.d.ts +25 -0
  852. package/packages/host/dist/deliver/deliverproof.js +123 -0
  853. package/packages/host/dist/deliver/deliverproof.js.map +1 -0
  854. package/packages/host/dist/deliver/deliverreturn.d.ts +12 -0
  855. package/packages/host/dist/deliver/deliverreturn.js +365 -0
  856. package/packages/host/dist/deliver/deliverreturn.js.map +1 -0
  857. package/packages/host/dist/deliver/deliverrun.d.ts +20 -0
  858. package/packages/host/dist/deliver/deliverrun.js +495 -0
  859. package/packages/host/dist/deliver/deliverrun.js.map +1 -0
  860. package/packages/host/dist/deliver/deliverscreen.d.ts +67 -0
  861. package/packages/host/dist/deliver/deliverscreen.js +428 -0
  862. package/packages/host/dist/deliver/deliverscreen.js.map +1 -0
  863. package/packages/host/dist/deliver/delivertypes.d.ts +119 -0
  864. package/packages/host/dist/deliver/delivertypes.js +2 -0
  865. package/packages/host/dist/deliver/delivertypes.js.map +1 -0
  866. package/packages/host/dist/deliver.d.ts +50 -0
  867. package/packages/host/dist/deliver.js +142 -0
  868. package/packages/host/dist/deliver.js.map +1 -0
  869. package/packages/host/dist/deviceledger.d.ts +33 -0
  870. package/packages/host/dist/deviceledger.js +143 -0
  871. package/packages/host/dist/deviceledger.js.map +1 -0
  872. package/packages/host/dist/dictate.d.ts +142 -0
  873. package/packages/host/dist/dictate.js +419 -0
  874. package/packages/host/dist/dictate.js.map +1 -0
  875. package/packages/host/dist/discover.d.ts +20 -0
  876. package/packages/host/dist/discover.js +162 -0
  877. package/packages/host/dist/discover.js.map +1 -0
  878. package/packages/host/dist/diskwatch.d.ts +39 -0
  879. package/packages/host/dist/diskwatch.js +111 -0
  880. package/packages/host/dist/diskwatch.js.map +1 -0
  881. package/packages/host/dist/doctor.d.ts +153 -0
  882. package/packages/host/dist/doctor.js +748 -0
  883. package/packages/host/dist/doctor.js.map +1 -0
  884. package/packages/host/dist/doctorclaude.d.ts +33 -0
  885. package/packages/host/dist/doctorclaude.js +128 -0
  886. package/packages/host/dist/doctorclaude.js.map +1 -0
  887. package/packages/host/dist/doctormac.d.ts +47 -0
  888. package/packages/host/dist/doctormac.js +81 -0
  889. package/packages/host/dist/doctormac.js.map +1 -0
  890. package/packages/host/dist/doctorproc.d.ts +11 -0
  891. package/packages/host/dist/doctorproc.js +36 -0
  892. package/packages/host/dist/doctorproc.js.map +1 -0
  893. package/packages/host/dist/doctorwsl.d.ts +90 -0
  894. package/packages/host/dist/doctorwsl.js +205 -0
  895. package/packages/host/dist/doctorwsl.js.map +1 -0
  896. package/packages/host/dist/echo.d.ts +331 -0
  897. package/packages/host/dist/echo.js +439 -0
  898. package/packages/host/dist/echo.js.map +1 -0
  899. package/packages/host/dist/env.d.ts +16 -0
  900. package/packages/host/dist/env.js +190 -0
  901. package/packages/host/dist/env.js.map +1 -0
  902. package/packages/host/dist/envfiles.d.ts +5 -0
  903. package/packages/host/dist/envfiles.js +43 -0
  904. package/packages/host/dist/envfiles.js.map +1 -0
  905. package/packages/host/dist/extensions/copilot-usage/host/ghquota.d.mts +17 -0
  906. package/packages/host/dist/extensions/copilot-usage/host/ghquota.mjs +96 -0
  907. package/packages/host/dist/extensions/copilot-usage/host/ghquota.mjs.map +1 -0
  908. package/packages/host/dist/extensions/copilot-usage/host/index.d.mts +17 -0
  909. package/packages/host/dist/extensions/copilot-usage/host/index.mjs +102 -0
  910. package/packages/host/dist/extensions/copilot-usage/host/index.mjs.map +1 -0
  911. package/packages/host/dist/extensions/copilot-usage/host/vscodelocal.d.mts +90 -0
  912. package/packages/host/dist/extensions/copilot-usage/host/vscodelocal.mjs +365 -0
  913. package/packages/host/dist/extensions/copilot-usage/host/vscodelocal.mjs.map +1 -0
  914. package/packages/host/dist/extensions/ocr/host/index.d.mts +10 -0
  915. package/packages/host/dist/extensions/ocr/host/index.mjs +4 -0
  916. package/packages/host/dist/extensions/ocr/host/index.mjs.map +1 -0
  917. package/packages/host/dist/extensions/requirements/host/index.d.mts +2 -0
  918. package/packages/host/dist/extensions/requirements/host/index.mjs +63 -0
  919. package/packages/host/dist/extensions/requirements/host/index.mjs.map +1 -0
  920. package/packages/host/dist/extensions/requirements/host/list.d.mts +17 -0
  921. package/packages/host/dist/extensions/requirements/host/list.mjs +125 -0
  922. package/packages/host/dist/extensions/requirements/host/list.mjs.map +1 -0
  923. package/packages/host/dist/extensions/requirements/host/requirements.d.mts +31 -0
  924. package/packages/host/dist/extensions/requirements/host/requirements.mjs +318 -0
  925. package/packages/host/dist/extensions/requirements/host/requirements.mjs.map +1 -0
  926. package/packages/host/dist/extensions/requirements/shared/methods.d.mts +88 -0
  927. package/packages/host/dist/extensions/requirements/shared/methods.mjs +36 -0
  928. package/packages/host/dist/extensions/requirements/shared/methods.mjs.map +1 -0
  929. package/packages/host/dist/fanout.d.ts +89 -0
  930. package/packages/host/dist/fanout.js +273 -0
  931. package/packages/host/dist/fanout.js.map +1 -0
  932. package/packages/host/dist/files.d.ts +211 -0
  933. package/packages/host/dist/files.js +760 -0
  934. package/packages/host/dist/files.js.map +1 -0
  935. package/packages/host/dist/git.d.ts +261 -0
  936. package/packages/host/dist/git.js +787 -0
  937. package/packages/host/dist/git.js.map +1 -0
  938. package/packages/host/dist/gitlog.d.ts +14 -0
  939. package/packages/host/dist/gitlog.js +93 -0
  940. package/packages/host/dist/gitlog.js.map +1 -0
  941. package/packages/host/dist/halt.d.ts +35 -0
  942. package/packages/host/dist/halt.js +160 -0
  943. package/packages/host/dist/halt.js.map +1 -0
  944. package/packages/host/dist/healthwatch.d.ts +90 -0
  945. package/packages/host/dist/healthwatch.js +334 -0
  946. package/packages/host/dist/healthwatch.js.map +1 -0
  947. package/packages/host/dist/host.d.ts +51 -0
  948. package/packages/host/dist/host.js +153 -0
  949. package/packages/host/dist/host.js.map +1 -0
  950. package/packages/host/dist/hoststore.d.ts +24 -0
  951. package/packages/host/dist/hoststore.js +350 -0
  952. package/packages/host/dist/hoststore.js.map +1 -0
  953. package/packages/host/dist/httpio.d.ts +64 -0
  954. package/packages/host/dist/httpio.js +199 -0
  955. package/packages/host/dist/httpio.js.map +1 -0
  956. package/packages/host/dist/installlog.d.ts +25 -0
  957. package/packages/host/dist/installlog.js +137 -0
  958. package/packages/host/dist/installlog.js.map +1 -0
  959. package/packages/host/dist/intents/adapters.d.ts +285 -0
  960. package/packages/host/dist/intents/adapters.js +690 -0
  961. package/packages/host/dist/intents/adapters.js.map +1 -0
  962. package/packages/host/dist/intents/clock.d.ts +105 -0
  963. package/packages/host/dist/intents/clock.js +190 -0
  964. package/packages/host/dist/intents/clock.js.map +1 -0
  965. package/packages/host/dist/intents/contract.d.ts +488 -0
  966. package/packages/host/dist/intents/contract.js +155 -0
  967. package/packages/host/dist/intents/contract.js.map +1 -0
  968. package/packages/host/dist/intents/disk.d.ts +198 -0
  969. package/packages/host/dist/intents/disk.js +588 -0
  970. package/packages/host/dist/intents/disk.js.map +1 -0
  971. package/packages/host/dist/intents/fire.d.ts +112 -0
  972. package/packages/host/dist/intents/fire.js +545 -0
  973. package/packages/host/dist/intents/fire.js.map +1 -0
  974. package/packages/host/dist/intents/ladder.d.ts +7 -0
  975. package/packages/host/dist/intents/ladder.js +408 -0
  976. package/packages/host/dist/intents/ladder.js.map +1 -0
  977. package/packages/host/dist/intents/manager.d.ts +239 -0
  978. package/packages/host/dist/intents/manager.js +292 -0
  979. package/packages/host/dist/intents/manager.js.map +1 -0
  980. package/packages/host/dist/intents/requeue.d.ts +207 -0
  981. package/packages/host/dist/intents/requeue.js +521 -0
  982. package/packages/host/dist/intents/requeue.js.map +1 -0
  983. package/packages/host/dist/intents/watch.d.ts +92 -0
  984. package/packages/host/dist/intents/watch.js +464 -0
  985. package/packages/host/dist/intents/watch.js.map +1 -0
  986. package/packages/host/dist/intents/write.d.ts +238 -0
  987. package/packages/host/dist/intents/write.js +651 -0
  988. package/packages/host/dist/intents/write.js.map +1 -0
  989. package/packages/host/dist/jsonstore.d.ts +50 -0
  990. package/packages/host/dist/jsonstore.js +158 -0
  991. package/packages/host/dist/jsonstore.js.map +1 -0
  992. package/packages/host/dist/keyhints.d.ts +45 -0
  993. package/packages/host/dist/keyhints.js +117 -0
  994. package/packages/host/dist/keyhints.js.map +1 -0
  995. package/packages/host/dist/lanid.d.ts +21 -0
  996. package/packages/host/dist/lanid.js +78 -0
  997. package/packages/host/dist/lanid.js.map +1 -0
  998. package/packages/host/dist/launchfiles.d.ts +64 -0
  999. package/packages/host/dist/launchfiles.js +212 -0
  1000. package/packages/host/dist/launchfiles.js.map +1 -0
  1001. package/packages/host/dist/limit.d.ts +82 -0
  1002. package/packages/host/dist/limit.js +251 -0
  1003. package/packages/host/dist/limit.js.map +1 -0
  1004. package/packages/host/dist/limitlog.d.ts +51 -0
  1005. package/packages/host/dist/limitlog.js +154 -0
  1006. package/packages/host/dist/limitlog.js.map +1 -0
  1007. package/packages/host/dist/limitretry.d.ts +135 -0
  1008. package/packages/host/dist/limitretry.js +115 -0
  1009. package/packages/host/dist/limitretry.js.map +1 -0
  1010. package/packages/host/dist/livesources.d.ts +38 -0
  1011. package/packages/host/dist/livesources.js +26 -0
  1012. package/packages/host/dist/livesources.js.map +1 -0
  1013. package/packages/host/dist/localledger.d.ts +69 -0
  1014. package/packages/host/dist/localledger.js +214 -0
  1015. package/packages/host/dist/localledger.js.map +1 -0
  1016. package/packages/host/dist/localrt.d.ts +164 -0
  1017. package/packages/host/dist/localrt.js +414 -0
  1018. package/packages/host/dist/localrt.js.map +1 -0
  1019. package/packages/host/dist/localslot.d.ts +152 -0
  1020. package/packages/host/dist/localslot.js +269 -0
  1021. package/packages/host/dist/localslot.js.map +1 -0
  1022. package/packages/host/dist/localusage.d.ts +153 -0
  1023. package/packages/host/dist/localusage.js +710 -0
  1024. package/packages/host/dist/localusage.js.map +1 -0
  1025. package/packages/host/dist/login.d.ts +34 -0
  1026. package/packages/host/dist/login.js +126 -0
  1027. package/packages/host/dist/login.js.map +1 -0
  1028. package/packages/host/dist/main.d.ts +1 -0
  1029. package/packages/host/dist/main.js +694 -0
  1030. package/packages/host/dist/main.js.map +1 -0
  1031. package/packages/host/dist/meter.d.ts +23 -0
  1032. package/packages/host/dist/meter.js +121 -0
  1033. package/packages/host/dist/meter.js.map +1 -0
  1034. package/packages/host/dist/naming.d.ts +257 -0
  1035. package/packages/host/dist/naming.js +387 -0
  1036. package/packages/host/dist/naming.js.map +1 -0
  1037. package/packages/host/dist/net.d.ts +78 -0
  1038. package/packages/host/dist/net.js +267 -0
  1039. package/packages/host/dist/net.js.map +1 -0
  1040. package/packages/host/dist/netstats.d.ts +99 -0
  1041. package/packages/host/dist/netstats.js +223 -0
  1042. package/packages/host/dist/netstats.js.map +1 -0
  1043. package/packages/host/dist/notifyprefs.d.ts +12 -0
  1044. package/packages/host/dist/notifyprefs.js +60 -0
  1045. package/packages/host/dist/notifyprefs.js.map +1 -0
  1046. package/packages/host/dist/ocrlocal.d.ts +46 -0
  1047. package/packages/host/dist/ocrlocal.js +297 -0
  1048. package/packages/host/dist/ocrlocal.js.map +1 -0
  1049. package/packages/host/dist/onboard.d.ts +182 -0
  1050. package/packages/host/dist/onboard.js +590 -0
  1051. package/packages/host/dist/onboard.js.map +1 -0
  1052. package/packages/host/dist/onboardroutes.d.ts +31 -0
  1053. package/packages/host/dist/onboardroutes.js +78 -0
  1054. package/packages/host/dist/onboardroutes.js.map +1 -0
  1055. package/packages/host/dist/opendeliveries.d.ts +175 -0
  1056. package/packages/host/dist/opendeliveries.js +538 -0
  1057. package/packages/host/dist/opendeliveries.js.map +1 -0
  1058. package/packages/host/dist/optins.d.ts +14 -0
  1059. package/packages/host/dist/optins.js +252 -0
  1060. package/packages/host/dist/optins.js.map +1 -0
  1061. package/packages/host/dist/origin.d.ts +86 -0
  1062. package/packages/host/dist/origin.js +301 -0
  1063. package/packages/host/dist/origin.js.map +1 -0
  1064. package/packages/host/dist/pair.d.ts +149 -0
  1065. package/packages/host/dist/pair.js +505 -0
  1066. package/packages/host/dist/pair.js.map +1 -0
  1067. package/packages/host/dist/passive.d.ts +58 -0
  1068. package/packages/host/dist/passive.js +187 -0
  1069. package/packages/host/dist/passive.js.map +1 -0
  1070. package/packages/host/dist/paths.d.ts +67 -0
  1071. package/packages/host/dist/paths.js +135 -0
  1072. package/packages/host/dist/paths.js.map +1 -0
  1073. package/packages/host/dist/pathx.d.ts +6 -0
  1074. package/packages/host/dist/pathx.js +35 -0
  1075. package/packages/host/dist/pathx.js.map +1 -0
  1076. package/packages/host/dist/peers/agentpeer.d.ts +58 -0
  1077. package/packages/host/dist/peers/agentpeer.js +249 -0
  1078. package/packages/host/dist/peers/agentpeer.js.map +1 -0
  1079. package/packages/host/dist/peers/client.d.ts +60 -0
  1080. package/packages/host/dist/peers/client.js +96 -0
  1081. package/packages/host/dist/peers/client.js.map +1 -0
  1082. package/packages/host/dist/peers/jobs.d.ts +140 -0
  1083. package/packages/host/dist/peers/jobs.js +424 -0
  1084. package/packages/host/dist/peers/jobs.js.map +1 -0
  1085. package/packages/host/dist/peers/routes.d.ts +50 -0
  1086. package/packages/host/dist/peers/routes.js +191 -0
  1087. package/packages/host/dist/peers/routes.js.map +1 -0
  1088. package/packages/host/dist/peers/serve.d.ts +61 -0
  1089. package/packages/host/dist/peers/serve.js +532 -0
  1090. package/packages/host/dist/peers/serve.js.map +1 -0
  1091. package/packages/host/dist/peers/store.d.ts +64 -0
  1092. package/packages/host/dist/peers/store.js +128 -0
  1093. package/packages/host/dist/peers/store.js.map +1 -0
  1094. package/packages/host/dist/periodspend.d.ts +61 -0
  1095. package/packages/host/dist/periodspend.js +109 -0
  1096. package/packages/host/dist/periodspend.js.map +1 -0
  1097. package/packages/host/dist/permmode.d.ts +90 -0
  1098. package/packages/host/dist/permmode.js +157 -0
  1099. package/packages/host/dist/permmode.js.map +1 -0
  1100. package/packages/host/dist/planbox.d.ts +23 -0
  1101. package/packages/host/dist/planbox.js +123 -0
  1102. package/packages/host/dist/planbox.js.map +1 -0
  1103. package/packages/host/dist/plugins/builtin.d.ts +39 -0
  1104. package/packages/host/dist/plugins/builtin.js +200 -0
  1105. package/packages/host/dist/plugins/builtin.js.map +1 -0
  1106. package/packages/host/dist/plugins/pluginapi.d.ts +34 -0
  1107. package/packages/host/dist/plugins/pluginapi.js +649 -0
  1108. package/packages/host/dist/plugins/pluginapi.js.map +1 -0
  1109. package/packages/host/dist/plugins/pluginassets.d.ts +16 -0
  1110. package/packages/host/dist/plugins/pluginassets.js +44 -0
  1111. package/packages/host/dist/plugins/pluginassets.js.map +1 -0
  1112. package/packages/host/dist/plugins/pluginfiles.d.ts +30 -0
  1113. package/packages/host/dist/plugins/pluginfiles.js +130 -0
  1114. package/packages/host/dist/plugins/pluginfiles.js.map +1 -0
  1115. package/packages/host/dist/plugins/pluginloader.d.ts +59 -0
  1116. package/packages/host/dist/plugins/pluginloader.js +206 -0
  1117. package/packages/host/dist/plugins/pluginloader.js.map +1 -0
  1118. package/packages/host/dist/plugins/pluginregistry.d.ts +249 -0
  1119. package/packages/host/dist/plugins/pluginregistry.js +799 -0
  1120. package/packages/host/dist/plugins/pluginregistry.js.map +1 -0
  1121. package/packages/host/dist/plugins/pluginroutes.d.ts +29 -0
  1122. package/packages/host/dist/plugins/pluginroutes.js +50 -0
  1123. package/packages/host/dist/plugins/pluginroutes.js.map +1 -0
  1124. package/packages/host/dist/plugins/pluginrpc.d.ts +19 -0
  1125. package/packages/host/dist/plugins/pluginrpc.js +28 -0
  1126. package/packages/host/dist/plugins/pluginrpc.js.map +1 -0
  1127. package/packages/host/dist/plugins/pluginstreams.d.ts +109 -0
  1128. package/packages/host/dist/plugins/pluginstreams.js +418 -0
  1129. package/packages/host/dist/plugins/pluginstreams.js.map +1 -0
  1130. package/packages/host/dist/plugins/plugintoolkit/screen.d.ts +9 -0
  1131. package/packages/host/dist/plugins/plugintoolkit/screen.js +21 -0
  1132. package/packages/host/dist/plugins/plugintoolkit/screen.js.map +1 -0
  1133. package/packages/host/dist/plugins/plugintoolkit/sessionfiles.d.ts +6 -0
  1134. package/packages/host/dist/plugins/plugintoolkit/sessionfiles.js +24 -0
  1135. package/packages/host/dist/plugins/plugintoolkit/sessionfiles.js.map +1 -0
  1136. package/packages/host/dist/plugins/plugintoolkit/tail.d.ts +10 -0
  1137. package/packages/host/dist/plugins/plugintoolkit/tail.js +110 -0
  1138. package/packages/host/dist/plugins/plugintoolkit/tail.js.map +1 -0
  1139. package/packages/host/dist/plugins/setupcontrib.d.ts +64 -0
  1140. package/packages/host/dist/plugins/setupcontrib.js +94 -0
  1141. package/packages/host/dist/plugins/setupcontrib.js.map +1 -0
  1142. package/packages/host/dist/proc.d.ts +13 -0
  1143. package/packages/host/dist/proc.js +27 -0
  1144. package/packages/host/dist/proc.js.map +1 -0
  1145. package/packages/host/dist/prompt.d.ts +113 -0
  1146. package/packages/host/dist/prompt.js +565 -0
  1147. package/packages/host/dist/prompt.js.map +1 -0
  1148. package/packages/host/dist/promptbase.d.ts +28 -0
  1149. package/packages/host/dist/promptbase.js +42 -0
  1150. package/packages/host/dist/promptbase.js.map +1 -0
  1151. package/packages/host/dist/promptmerge.d.ts +63 -0
  1152. package/packages/host/dist/promptmerge.js +221 -0
  1153. package/packages/host/dist/promptmerge.js.map +1 -0
  1154. package/packages/host/dist/promptnav.d.ts +29 -0
  1155. package/packages/host/dist/promptnav.js +97 -0
  1156. package/packages/host/dist/promptnav.js.map +1 -0
  1157. package/packages/host/dist/prompts.d.ts +4 -0
  1158. package/packages/host/dist/prompts.js +78 -0
  1159. package/packages/host/dist/prompts.js.map +1 -0
  1160. package/packages/host/dist/ptycap.d.ts +41 -0
  1161. package/packages/host/dist/ptycap.js +192 -0
  1162. package/packages/host/dist/ptycap.js.map +1 -0
  1163. package/packages/host/dist/ptyenv.d.ts +3 -0
  1164. package/packages/host/dist/ptyenv.js +63 -0
  1165. package/packages/host/dist/ptyenv.js.map +1 -0
  1166. package/packages/host/dist/push.d.ts +42 -0
  1167. package/packages/host/dist/push.js +107 -0
  1168. package/packages/host/dist/push.js.map +1 -0
  1169. package/packages/host/dist/pushprogress.d.ts +27 -0
  1170. package/packages/host/dist/pushprogress.js +72 -0
  1171. package/packages/host/dist/pushprogress.js.map +1 -0
  1172. package/packages/host/dist/question.d.ts +60 -0
  1173. package/packages/host/dist/question.js +137 -0
  1174. package/packages/host/dist/question.js.map +1 -0
  1175. package/packages/host/dist/ratelimit.d.ts +44 -0
  1176. package/packages/host/dist/ratelimit.js +68 -0
  1177. package/packages/host/dist/ratelimit.js.map +1 -0
  1178. package/packages/host/dist/render.d.ts +50 -0
  1179. package/packages/host/dist/render.js +138 -0
  1180. package/packages/host/dist/render.js.map +1 -0
  1181. package/packages/host/dist/repohealth.d.ts +113 -0
  1182. package/packages/host/dist/repohealth.js +752 -0
  1183. package/packages/host/dist/repohealth.js.map +1 -0
  1184. package/packages/host/dist/repohealthapproval.d.ts +88 -0
  1185. package/packages/host/dist/repohealthapproval.js +709 -0
  1186. package/packages/host/dist/repohealthapproval.js.map +1 -0
  1187. package/packages/host/dist/repohealthscopes.d.ts +23 -0
  1188. package/packages/host/dist/repohealthscopes.js +124 -0
  1189. package/packages/host/dist/repohealthscopes.js.map +1 -0
  1190. package/packages/host/dist/repos.d.ts +25 -0
  1191. package/packages/host/dist/repos.js +181 -0
  1192. package/packages/host/dist/repos.js.map +1 -0
  1193. package/packages/host/dist/reposkill.d.ts +17 -0
  1194. package/packages/host/dist/reposkill.js +92 -0
  1195. package/packages/host/dist/reposkill.js.map +1 -0
  1196. package/packages/host/dist/reposkilltext.d.ts +16 -0
  1197. package/packages/host/dist/reposkilltext.js +320 -0
  1198. package/packages/host/dist/reposkilltext.js.map +1 -0
  1199. package/packages/host/dist/restartnote.d.ts +17 -0
  1200. package/packages/host/dist/restartnote.js +36 -0
  1201. package/packages/host/dist/restartnote.js.map +1 -0
  1202. package/packages/host/dist/review.d.ts +83 -0
  1203. package/packages/host/dist/review.js +513 -0
  1204. package/packages/host/dist/review.js.map +1 -0
  1205. package/packages/host/dist/rootchoice.d.ts +26 -0
  1206. package/packages/host/dist/rootchoice.js +101 -0
  1207. package/packages/host/dist/rootchoice.js.map +1 -0
  1208. package/packages/host/dist/routes/apihost.d.ts +2 -0
  1209. package/packages/host/dist/routes/apihost.js +532 -0
  1210. package/packages/host/dist/routes/apihost.js.map +1 -0
  1211. package/packages/host/dist/routes/apiio.d.ts +86 -0
  1212. package/packages/host/dist/routes/apiio.js +354 -0
  1213. package/packages/host/dist/routes/apiio.js.map +1 -0
  1214. package/packages/host/dist/routes/apirepofiles.d.ts +7 -0
  1215. package/packages/host/dist/routes/apirepofiles.js +382 -0
  1216. package/packages/host/dist/routes/apirepofiles.js.map +1 -0
  1217. package/packages/host/dist/routes/apirepowork.d.ts +2 -0
  1218. package/packages/host/dist/routes/apirepowork.js +500 -0
  1219. package/packages/host/dist/routes/apirepowork.js.map +1 -0
  1220. package/packages/host/dist/routes/apiroutes.d.ts +14 -0
  1221. package/packages/host/dist/routes/apiroutes.js +20 -0
  1222. package/packages/host/dist/routes/apiroutes.js.map +1 -0
  1223. package/packages/host/dist/routes/apisession.d.ts +2 -0
  1224. package/packages/host/dist/routes/apisession.js +197 -0
  1225. package/packages/host/dist/routes/apisession.js.map +1 -0
  1226. package/packages/host/dist/routes/apistats.d.ts +2 -0
  1227. package/packages/host/dist/routes/apistats.js +220 -0
  1228. package/packages/host/dist/routes/apistats.js.map +1 -0
  1229. package/packages/host/dist/routes/apisystem.d.ts +2 -0
  1230. package/packages/host/dist/routes/apisystem.js +389 -0
  1231. package/packages/host/dist/routes/apisystem.js.map +1 -0
  1232. package/packages/host/dist/routes/apitable.d.ts +180 -0
  1233. package/packages/host/dist/routes/apitable.js +71 -0
  1234. package/packages/host/dist/routes/apitable.js.map +1 -0
  1235. package/packages/host/dist/routes/index.d.ts +19 -0
  1236. package/packages/host/dist/routes/index.js +65 -0
  1237. package/packages/host/dist/routes/index.js.map +1 -0
  1238. package/packages/host/dist/routes/session.d.ts +2 -0
  1239. package/packages/host/dist/routes/session.js +771 -0
  1240. package/packages/host/dist/routes/session.js.map +1 -0
  1241. package/packages/host/dist/routes/system.d.ts +24 -0
  1242. package/packages/host/dist/routes/system.js +530 -0
  1243. package/packages/host/dist/routes/system.js.map +1 -0
  1244. package/packages/host/dist/routes/types.d.ts +283 -0
  1245. package/packages/host/dist/routes/types.js +2 -0
  1246. package/packages/host/dist/routes/types.js.map +1 -0
  1247. package/packages/host/dist/routes/work/workassess.d.ts +2 -0
  1248. package/packages/host/dist/routes/work/workassess.js +182 -0
  1249. package/packages/host/dist/routes/work/workassess.js.map +1 -0
  1250. package/packages/host/dist/routes/work/workbacklog.d.ts +2 -0
  1251. package/packages/host/dist/routes/work/workbacklog.js +329 -0
  1252. package/packages/host/dist/routes/work/workbacklog.js.map +1 -0
  1253. package/packages/host/dist/routes/work/workbuild.d.ts +2 -0
  1254. package/packages/host/dist/routes/work/workbuild.js +250 -0
  1255. package/packages/host/dist/routes/work/workbuild.js.map +1 -0
  1256. package/packages/host/dist/routes/work/workintent.d.ts +2 -0
  1257. package/packages/host/dist/routes/work/workintent.js +167 -0
  1258. package/packages/host/dist/routes/work/workintent.js.map +1 -0
  1259. package/packages/host/dist/routes/work/workschedule.d.ts +2 -0
  1260. package/packages/host/dist/routes/work/workschedule.js +131 -0
  1261. package/packages/host/dist/routes/work/workschedule.js.map +1 -0
  1262. package/packages/host/dist/routes/work.d.ts +10 -0
  1263. package/packages/host/dist/routes/work.js +13 -0
  1264. package/packages/host/dist/routes/work.js.map +1 -0
  1265. package/packages/host/dist/scaffold.d.ts +104 -0
  1266. package/packages/host/dist/scaffold.js +417 -0
  1267. package/packages/host/dist/scaffold.js.map +1 -0
  1268. package/packages/host/dist/screenlog.d.ts +43 -0
  1269. package/packages/host/dist/screenlog.js +209 -0
  1270. package/packages/host/dist/screenlog.js.map +1 -0
  1271. package/packages/host/dist/secrets.d.ts +72 -0
  1272. package/packages/host/dist/secrets.js +258 -0
  1273. package/packages/host/dist/secrets.js.map +1 -0
  1274. package/packages/host/dist/sentlog.d.ts +82 -0
  1275. package/packages/host/dist/sentlog.js +186 -0
  1276. package/packages/host/dist/sentlog.js.map +1 -0
  1277. package/packages/host/dist/server/billingwire.d.ts +24 -0
  1278. package/packages/host/dist/server/billingwire.js +73 -0
  1279. package/packages/host/dist/server/billingwire.js.map +1 -0
  1280. package/packages/host/dist/server/clients.d.ts +52 -0
  1281. package/packages/host/dist/server/clients.js +178 -0
  1282. package/packages/host/dist/server/clients.js.map +1 -0
  1283. package/packages/host/dist/server/ctx.d.ts +118 -0
  1284. package/packages/host/dist/server/ctx.js +2 -0
  1285. package/packages/host/dist/server/ctx.js.map +1 -0
  1286. package/packages/host/dist/server/ctxseal.d.ts +21 -0
  1287. package/packages/host/dist/server/ctxseal.js +24 -0
  1288. package/packages/host/dist/server/ctxseal.js.map +1 -0
  1289. package/packages/host/dist/server/deliveries.d.ts +20 -0
  1290. package/packages/host/dist/server/deliveries.js +276 -0
  1291. package/packages/host/dist/server/deliveries.js.map +1 -0
  1292. package/packages/host/dist/server/firstapp.d.ts +12 -0
  1293. package/packages/host/dist/server/firstapp.js +37 -0
  1294. package/packages/host/dist/server/firstapp.js.map +1 -0
  1295. package/packages/host/dist/server/http.d.ts +34 -0
  1296. package/packages/host/dist/server/http.js +475 -0
  1297. package/packages/host/dist/server/http.js.map +1 -0
  1298. package/packages/host/dist/server/intentDeps.d.ts +36 -0
  1299. package/packages/host/dist/server/intentDeps.js +418 -0
  1300. package/packages/host/dist/server/intentDeps.js.map +1 -0
  1301. package/packages/host/dist/server/intentEvents.d.ts +13 -0
  1302. package/packages/host/dist/server/intentEvents.js +234 -0
  1303. package/packages/host/dist/server/intentEvents.js.map +1 -0
  1304. package/packages/host/dist/server/liveness.d.ts +64 -0
  1305. package/packages/host/dist/server/liveness.js +74 -0
  1306. package/packages/host/dist/server/liveness.js.map +1 -0
  1307. package/packages/host/dist/server/scan.d.ts +41 -0
  1308. package/packages/host/dist/server/scan.js +227 -0
  1309. package/packages/host/dist/server/scan.js.map +1 -0
  1310. package/packages/host/dist/server/sessionEvents.d.ts +40 -0
  1311. package/packages/host/dist/server/sessionEvents.js +509 -0
  1312. package/packages/host/dist/server/sessionEvents.js.map +1 -0
  1313. package/packages/host/dist/server/shutdown.d.ts +11 -0
  1314. package/packages/host/dist/server/shutdown.js +135 -0
  1315. package/packages/host/dist/server/shutdown.js.map +1 -0
  1316. package/packages/host/dist/server/wsops.d.ts +44 -0
  1317. package/packages/host/dist/server/wsops.js +313 -0
  1318. package/packages/host/dist/server/wsops.js.map +1 -0
  1319. package/packages/host/dist/sessionSearch.d.ts +46 -0
  1320. package/packages/host/dist/sessionSearch.js +93 -0
  1321. package/packages/host/dist/sessionSearch.js.map +1 -0
  1322. package/packages/host/dist/sessionbudget.d.ts +61 -0
  1323. package/packages/host/dist/sessionbudget.js +84 -0
  1324. package/packages/host/dist/sessionbudget.js.map +1 -0
  1325. package/packages/host/dist/sessions/boxes.d.ts +112 -0
  1326. package/packages/host/dist/sessions/boxes.js +968 -0
  1327. package/packages/host/dist/sessions/boxes.js.map +1 -0
  1328. package/packages/host/dist/sessions/budgetwatch.d.ts +95 -0
  1329. package/packages/host/dist/sessions/budgetwatch.js +171 -0
  1330. package/packages/host/dist/sessions/budgetwatch.js.map +1 -0
  1331. package/packages/host/dist/sessions/convid.d.ts +72 -0
  1332. package/packages/host/dist/sessions/convid.js +305 -0
  1333. package/packages/host/dist/sessions/convid.js.map +1 -0
  1334. package/packages/host/dist/sessions/core.d.ts +749 -0
  1335. package/packages/host/dist/sessions/core.js +2 -0
  1336. package/packages/host/dist/sessions/core.js.map +1 -0
  1337. package/packages/host/dist/sessions/ctxseries.d.ts +184 -0
  1338. package/packages/host/dist/sessions/ctxseries.js +766 -0
  1339. package/packages/host/dist/sessions/ctxseries.js.map +1 -0
  1340. package/packages/host/dist/sessions/drive.d.ts +207 -0
  1341. package/packages/host/dist/sessions/drive.js +779 -0
  1342. package/packages/host/dist/sessions/drive.js.map +1 -0
  1343. package/packages/host/dist/sessions/haltall.d.ts +36 -0
  1344. package/packages/host/dist/sessions/haltall.js +95 -0
  1345. package/packages/host/dist/sessions/haltall.js.map +1 -0
  1346. package/packages/host/dist/sessions/health.d.ts +88 -0
  1347. package/packages/host/dist/sessions/health.js +108 -0
  1348. package/packages/host/dist/sessions/health.js.map +1 -0
  1349. package/packages/host/dist/sessions/idlewatch.d.ts +34 -0
  1350. package/packages/host/dist/sessions/idlewatch.js +74 -0
  1351. package/packages/host/dist/sessions/idlewatch.js.map +1 -0
  1352. package/packages/host/dist/sessions/knobs.d.ts +315 -0
  1353. package/packages/host/dist/sessions/knobs.js +411 -0
  1354. package/packages/host/dist/sessions/knobs.js.map +1 -0
  1355. package/packages/host/dist/sessions/links.d.ts +53 -0
  1356. package/packages/host/dist/sessions/links.js +209 -0
  1357. package/packages/host/dist/sessions/links.js.map +1 -0
  1358. package/packages/host/dist/sessions/livemode.d.ts +56 -0
  1359. package/packages/host/dist/sessions/livemode.js +300 -0
  1360. package/packages/host/dist/sessions/livemode.js.map +1 -0
  1361. package/packages/host/dist/sessions/record.d.ts +196 -0
  1362. package/packages/host/dist/sessions/record.js +719 -0
  1363. package/packages/host/dist/sessions/record.js.map +1 -0
  1364. package/packages/host/dist/sessions/resume.d.ts +164 -0
  1365. package/packages/host/dist/sessions/resume.js +629 -0
  1366. package/packages/host/dist/sessions/resume.js.map +1 -0
  1367. package/packages/host/dist/sessions/roster.d.ts +164 -0
  1368. package/packages/host/dist/sessions/roster.js +566 -0
  1369. package/packages/host/dist/sessions/roster.js.map +1 -0
  1370. package/packages/host/dist/sessions/sidechannel.d.ts +96 -0
  1371. package/packages/host/dist/sessions/sidechannel.js +726 -0
  1372. package/packages/host/dist/sessions/sidechannel.js.map +1 -0
  1373. package/packages/host/dist/sessions/tmux.d.ts +247 -0
  1374. package/packages/host/dist/sessions/tmux.js +731 -0
  1375. package/packages/host/dist/sessions/tmux.js.map +1 -0
  1376. package/packages/host/dist/sessions/turn.d.ts +237 -0
  1377. package/packages/host/dist/sessions/turn.js +1003 -0
  1378. package/packages/host/dist/sessions/turn.js.map +1 -0
  1379. package/packages/host/dist/sessions/wall.d.ts +117 -0
  1380. package/packages/host/dist/sessions/wall.js +658 -0
  1381. package/packages/host/dist/sessions/wall.js.map +1 -0
  1382. package/packages/host/dist/sessions.d.ts +255 -0
  1383. package/packages/host/dist/sessions.js +758 -0
  1384. package/packages/host/dist/sessions.js.map +1 -0
  1385. package/packages/host/dist/settings.d.ts +40 -0
  1386. package/packages/host/dist/settings.js +171 -0
  1387. package/packages/host/dist/settings.js.map +1 -0
  1388. package/packages/host/dist/settle.d.ts +171 -0
  1389. package/packages/host/dist/settle.js +409 -0
  1390. package/packages/host/dist/settle.js.map +1 -0
  1391. package/packages/host/dist/setupprefs.d.ts +51 -0
  1392. package/packages/host/dist/setupprefs.js +178 -0
  1393. package/packages/host/dist/setupprefs.js.map +1 -0
  1394. package/packages/host/dist/setupwatch.d.ts +39 -0
  1395. package/packages/host/dist/setupwatch.js +249 -0
  1396. package/packages/host/dist/setupwatch.js.map +1 -0
  1397. package/packages/host/dist/shelllinks.d.ts +39 -0
  1398. package/packages/host/dist/shelllinks.js +292 -0
  1399. package/packages/host/dist/shelllinks.js.map +1 -0
  1400. package/packages/host/dist/shells.d.ts +190 -0
  1401. package/packages/host/dist/shells.js +633 -0
  1402. package/packages/host/dist/shells.js.map +1 -0
  1403. package/packages/host/dist/sidecar/sidecarclaude.d.ts +120 -0
  1404. package/packages/host/dist/sidecar/sidecarclaude.js +213 -0
  1405. package/packages/host/dist/sidecar/sidecarclaude.js.map +1 -0
  1406. package/packages/host/dist/sidecar/sidecarname.d.ts +99 -0
  1407. package/packages/host/dist/sidecar/sidecarname.js +163 -0
  1408. package/packages/host/dist/sidecar/sidecarname.js.map +1 -0
  1409. package/packages/host/dist/sidecar/sidecaropenai.d.ts +24 -0
  1410. package/packages/host/dist/sidecar/sidecaropenai.js +129 -0
  1411. package/packages/host/dist/sidecar/sidecaropenai.js.map +1 -0
  1412. package/packages/host/dist/sidecar/sidecarroute.d.ts +65 -0
  1413. package/packages/host/dist/sidecar/sidecarroute.js +158 -0
  1414. package/packages/host/dist/sidecar/sidecarroute.js.map +1 -0
  1415. package/packages/host/dist/sidecar/sidecartasks.d.ts +20 -0
  1416. package/packages/host/dist/sidecar/sidecartasks.js +63 -0
  1417. package/packages/host/dist/sidecar/sidecartasks.js.map +1 -0
  1418. package/packages/host/dist/sidecar/sidecartrust.d.ts +32 -0
  1419. package/packages/host/dist/sidecar/sidecartrust.js +74 -0
  1420. package/packages/host/dist/sidecar/sidecartrust.js.map +1 -0
  1421. package/packages/host/dist/sidecar.d.ts +82 -0
  1422. package/packages/host/dist/sidecar.js +78 -0
  1423. package/packages/host/dist/sidecar.js.map +1 -0
  1424. package/packages/host/dist/signkey.d.ts +57 -0
  1425. package/packages/host/dist/signkey.js +159 -0
  1426. package/packages/host/dist/signkey.js.map +1 -0
  1427. package/packages/host/dist/slash.d.ts +43 -0
  1428. package/packages/host/dist/slash.js +236 -0
  1429. package/packages/host/dist/slash.js.map +1 -0
  1430. package/packages/host/dist/sourceanswer.d.ts +103 -0
  1431. package/packages/host/dist/sourceanswer.js +193 -0
  1432. package/packages/host/dist/sourceanswer.js.map +1 -0
  1433. package/packages/host/dist/speedtest.d.ts +57 -0
  1434. package/packages/host/dist/speedtest.js +137 -0
  1435. package/packages/host/dist/speedtest.js.map +1 -0
  1436. package/packages/host/dist/spendwall.d.ts +33 -0
  1437. package/packages/host/dist/spendwall.js +45 -0
  1438. package/packages/host/dist/spendwall.js.map +1 -0
  1439. package/packages/host/dist/sysstat.d.ts +134 -0
  1440. package/packages/host/dist/sysstat.js +630 -0
  1441. package/packages/host/dist/sysstat.js.map +1 -0
  1442. package/packages/host/dist/tailnetpeers.d.ts +34 -0
  1443. package/packages/host/dist/tailnetpeers.js +116 -0
  1444. package/packages/host/dist/tailnetpeers.js.map +1 -0
  1445. package/packages/host/dist/tailscaleguard.d.ts +11 -0
  1446. package/packages/host/dist/tailscaleguard.js +133 -0
  1447. package/packages/host/dist/tailscaleguard.js.map +1 -0
  1448. package/packages/host/dist/termqueries.d.ts +124 -0
  1449. package/packages/host/dist/termqueries.js +207 -0
  1450. package/packages/host/dist/termqueries.js.map +1 -0
  1451. package/packages/host/dist/themeoverlay.d.ts +74 -0
  1452. package/packages/host/dist/themeoverlay.js +262 -0
  1453. package/packages/host/dist/themeoverlay.js.map +1 -0
  1454. package/packages/host/dist/thumbs.d.ts +69 -0
  1455. package/packages/host/dist/thumbs.js +359 -0
  1456. package/packages/host/dist/thumbs.js.map +1 -0
  1457. package/packages/host/dist/tmuxreq.d.ts +91 -0
  1458. package/packages/host/dist/tmuxreq.js +207 -0
  1459. package/packages/host/dist/tmuxreq.js.map +1 -0
  1460. package/packages/host/dist/tmuxscroll.d.ts +70 -0
  1461. package/packages/host/dist/tmuxscroll.js +206 -0
  1462. package/packages/host/dist/tmuxscroll.js.map +1 -0
  1463. package/packages/host/dist/tokenscan.d.ts +63 -0
  1464. package/packages/host/dist/tokenscan.js +220 -0
  1465. package/packages/host/dist/tokenscan.js.map +1 -0
  1466. package/packages/host/dist/tokenstats.d.ts +115 -0
  1467. package/packages/host/dist/tokenstats.js +763 -0
  1468. package/packages/host/dist/tokenstats.js.map +1 -0
  1469. package/packages/host/dist/toolchain.d.ts +147 -0
  1470. package/packages/host/dist/toolchain.js +468 -0
  1471. package/packages/host/dist/toolchain.js.map +1 -0
  1472. package/packages/host/dist/transcript/transcriptlog.d.ts +134 -0
  1473. package/packages/host/dist/transcript/transcriptlog.js +300 -0
  1474. package/packages/host/dist/transcript/transcriptlog.js.map +1 -0
  1475. package/packages/host/dist/transcript/transcriptparse.d.ts +28 -0
  1476. package/packages/host/dist/transcript/transcriptparse.js +377 -0
  1477. package/packages/host/dist/transcript/transcriptparse.js.map +1 -0
  1478. package/packages/host/dist/transcript/transcriptscreen.d.ts +71 -0
  1479. package/packages/host/dist/transcript/transcriptscreen.js +120 -0
  1480. package/packages/host/dist/transcript/transcriptscreen.js.map +1 -0
  1481. package/packages/host/dist/transcript/transcriptturns.d.ts +139 -0
  1482. package/packages/host/dist/transcript/transcriptturns.js +270 -0
  1483. package/packages/host/dist/transcript/transcriptturns.js.map +1 -0
  1484. package/packages/host/dist/transcript.d.ts +28 -0
  1485. package/packages/host/dist/transcript.js +34 -0
  1486. package/packages/host/dist/transcript.js.map +1 -0
  1487. package/packages/host/dist/transportsurvey.d.ts +10 -0
  1488. package/packages/host/dist/transportsurvey.js +109 -0
  1489. package/packages/host/dist/transportsurvey.js.map +1 -0
  1490. package/packages/host/dist/tree.d.ts +80 -0
  1491. package/packages/host/dist/tree.js +372 -0
  1492. package/packages/host/dist/tree.js.map +1 -0
  1493. package/packages/host/dist/turnagents.d.ts +17 -0
  1494. package/packages/host/dist/turnagents.js +205 -0
  1495. package/packages/host/dist/turnagents.js.map +1 -0
  1496. package/packages/host/dist/uistats.d.ts +18 -0
  1497. package/packages/host/dist/uistats.js +105 -0
  1498. package/packages/host/dist/uistats.js.map +1 -0
  1499. package/packages/host/dist/update.d.ts +100 -0
  1500. package/packages/host/dist/update.js +536 -0
  1501. package/packages/host/dist/update.js.map +1 -0
  1502. package/packages/host/dist/updates/apply.d.ts +45 -0
  1503. package/packages/host/dist/updates/apply.js +362 -0
  1504. package/packages/host/dist/updates/apply.js.map +1 -0
  1505. package/packages/host/dist/updates/catalog.d.ts +11 -0
  1506. package/packages/host/dist/updates/catalog.js +123 -0
  1507. package/packages/host/dist/updates/catalog.js.map +1 -0
  1508. package/packages/host/dist/updates/checker.d.ts +73 -0
  1509. package/packages/host/dist/updates/checker.js +189 -0
  1510. package/packages/host/dist/updates/checker.js.map +1 -0
  1511. package/packages/host/dist/updates/github.d.ts +13 -0
  1512. package/packages/host/dist/updates/github.js +63 -0
  1513. package/packages/host/dist/updates/github.js.map +1 -0
  1514. package/packages/host/dist/updates/gitops.d.ts +16 -0
  1515. package/packages/host/dist/updates/gitops.js +61 -0
  1516. package/packages/host/dist/updates/gitops.js.map +1 -0
  1517. package/packages/host/dist/updates/installrecord.d.ts +26 -0
  1518. package/packages/host/dist/updates/installrecord.js +42 -0
  1519. package/packages/host/dist/updates/installrecord.js.map +1 -0
  1520. package/packages/host/dist/updates/remote.d.ts +10 -0
  1521. package/packages/host/dist/updates/remote.js +54 -0
  1522. package/packages/host/dist/updates/remote.js.map +1 -0
  1523. package/packages/host/dist/updates/restart.d.ts +5 -0
  1524. package/packages/host/dist/updates/restart.js +20 -0
  1525. package/packages/host/dist/updates/restart.js.map +1 -0
  1526. package/packages/host/dist/updates/self.d.ts +19 -0
  1527. package/packages/host/dist/updates/self.js +51 -0
  1528. package/packages/host/dist/updates/self.js.map +1 -0
  1529. package/packages/host/dist/updates/wire.d.ts +18 -0
  1530. package/packages/host/dist/updates/wire.js +21 -0
  1531. package/packages/host/dist/updates/wire.js.map +1 -0
  1532. package/packages/host/dist/usage.d.ts +124 -0
  1533. package/packages/host/dist/usage.js +411 -0
  1534. package/packages/host/dist/usage.js.map +1 -0
  1535. package/packages/host/dist/usagelog.d.ts +53 -0
  1536. package/packages/host/dist/usagelog.js +223 -0
  1537. package/packages/host/dist/usagelog.js.map +1 -0
  1538. package/packages/host/dist/usagesourcelog.d.ts +59 -0
  1539. package/packages/host/dist/usagesourcelog.js +208 -0
  1540. package/packages/host/dist/usagesourcelog.js.map +1 -0
  1541. package/packages/host/dist/usagesources.d.ts +175 -0
  1542. package/packages/host/dist/usagesources.js +462 -0
  1543. package/packages/host/dist/usagesources.js.map +1 -0
  1544. package/packages/host/dist/visualskill.d.ts +36 -0
  1545. package/packages/host/dist/visualskill.js +230 -0
  1546. package/packages/host/dist/visualskill.js.map +1 -0
  1547. package/packages/host/dist/webbundle.d.ts +47 -0
  1548. package/packages/host/dist/webbundle.js +155 -0
  1549. package/packages/host/dist/webbundle.js.map +1 -0
  1550. package/packages/host/dist/wirerecord.d.ts +5 -0
  1551. package/packages/host/dist/wirerecord.js +128 -0
  1552. package/packages/host/dist/wirerecord.js.map +1 -0
  1553. package/packages/host/dist/worktreeleftover.d.ts +27 -0
  1554. package/packages/host/dist/worktreeleftover.js +153 -0
  1555. package/packages/host/dist/worktreeleftover.js.map +1 -0
  1556. package/packages/host/dist/worktreeowner.d.ts +17 -0
  1557. package/packages/host/dist/worktreeowner.js +45 -0
  1558. package/packages/host/dist/worktreeowner.js.map +1 -0
  1559. package/packages/host/package.json +26 -0
  1560. package/packages/web/dist/assets/apple-touch-icon.png +0 -0
  1561. package/packages/web/dist/assets/badge-96.png +0 -0
  1562. package/packages/web/dist/assets/demo-CXlqlYE4.js +23 -0
  1563. package/packages/web/dist/assets/hero.png +0 -0
  1564. package/packages/web/dist/assets/icon-192.png +0 -0
  1565. package/packages/web/dist/assets/icon-32.png +0 -0
  1566. package/packages/web/dist/assets/icon-48.png +0 -0
  1567. package/packages/web/dist/assets/icon-512-maskable.png +0 -0
  1568. package/packages/web/dist/assets/icon-512.png +0 -0
  1569. package/packages/web/dist/assets/icon-dark.svg +43 -0
  1570. package/packages/web/dist/assets/icon-light.svg +42 -0
  1571. package/packages/web/dist/assets/icon.svg +11 -0
  1572. package/packages/web/dist/assets/icons-BbqDBVjw.js +1 -0
  1573. package/packages/web/dist/assets/index-CgPoyb3Y.css +1 -0
  1574. package/packages/web/dist/assets/index-D5JKj8DK.js +169 -0
  1575. package/packages/web/dist/assets/react-CoSyT_xY.js +8 -0
  1576. package/packages/web/dist/assets/rolldown-runtime-BpQH8Ho1.js +1 -0
  1577. package/packages/web/dist/assets/shared-eyaskl5l.js +47 -0
  1578. package/packages/web/dist/assets/sheets-Bjv2L-cG.css +1 -0
  1579. package/packages/web/dist/assets/sheets-BzzL2re1.js +204 -0
  1580. package/packages/web/dist/assets/vendor-BPwPmufs.js +3 -0
  1581. package/packages/web/dist/assets/xterm-BrP-ENHg.css +1 -0
  1582. package/packages/web/dist/assets/xterm-C8zLTNGk.js +16 -0
  1583. package/packages/web/dist/build-id.txt +1 -0
  1584. package/packages/web/dist/demo/media/r1/dot-claude/inbox/swipe-sketch.png +0 -0
  1585. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-android-fixed.png +0 -0
  1586. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-android.png +0 -0
  1587. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-before.png +0 -0
  1588. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-date-picker.png +0 -0
  1589. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-empty-state.png +0 -0
  1590. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-grouped.png +0 -0
  1591. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-ios.png +0 -0
  1592. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-preview.html +18 -0
  1593. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-release-notes.md +21 -0
  1594. package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-sorted.png +0 -0
  1595. package/packages/web/dist/demo/media/r3/dot-claude/outbox/trail-log-ridge-loop.png +0 -0
  1596. package/packages/web/dist/index.html +84 -0
  1597. package/packages/web/dist/manifest.webmanifest +16 -0
  1598. package/packages/web/dist/sw.js +420 -0
  1599. package/release.json +22 -0
  1600. package/scripts/windows/keeper.ps1 +60 -0
  1601. package/scripts/windows/wsl-setup.sh +173 -0
  1602. package/tools/repohealth/census.mjs +353 -0
  1603. package/tools/repohealth/central.mjs +234 -0
  1604. package/tools/repohealth/constants.mjs +420 -0
  1605. package/tools/repohealth/events.mjs +563 -0
  1606. package/tools/repohealth/fixture.json +17976 -0
  1607. package/tools/repohealth/git.mjs +471 -0
  1608. package/tools/repohealth/html.mjs +601 -0
  1609. package/tools/repohealth/judge.mjs +546 -0
  1610. package/tools/repohealth/lang/typescript-ast.mjs +538 -0
  1611. package/tools/repohealth/metrics/classics.mjs +239 -0
  1612. package/tools/repohealth/metrics/cochange.mjs +234 -0
  1613. package/tools/repohealth/metrics/context.mjs +411 -0
  1614. package/tools/repohealth/metrics/deadexports.mjs +122 -0
  1615. package/tools/repohealth/metrics/dups.mjs +261 -0
  1616. package/tools/repohealth/metrics/hatches.mjs +164 -0
  1617. package/tools/repohealth/metrics/retouch.mjs +326 -0
  1618. package/tools/repohealth/metrics/route.mjs +159 -0
  1619. package/tools/repohealth/metrics/size.mjs +120 -0
  1620. package/tools/repohealth/metrics/tripwires.mjs +258 -0
  1621. package/tools/repohealth/metrics/untested.mjs +308 -0
  1622. package/tools/repohealth/narrate.mjs +342 -0
  1623. package/tools/repohealth/own.mjs +238 -0
  1624. package/tools/repohealth/packs/c.mjs +124 -0
  1625. package/tools/repohealth/packs/common.mjs +205 -0
  1626. package/tools/repohealth/packs/dart.mjs +118 -0
  1627. package/tools/repohealth/packs/index.mjs +83 -0
  1628. package/tools/repohealth/packs/kotlin.mjs +320 -0
  1629. package/tools/repohealth/packs/python.mjs +488 -0
  1630. package/tools/repohealth/packs/shell.mjs +88 -0
  1631. package/tools/repohealth/packs/typescript.mjs +604 -0
  1632. package/tools/repohealth/plot.mjs +462 -0
  1633. package/tools/repohealth/readings.mjs +427 -0
  1634. package/tools/repohealth/scope.mjs +184 -0
  1635. package/tools/repohealth/series.mjs +360 -0
  1636. package/tools/repohealth/snapshot.mjs +431 -0
  1637. package/tools/repohealth/source.mjs +266 -0
  1638. package/tools/repohealth/statefile.mjs +31 -0
  1639. package/tools/repohealth/types.mjs +316 -0
  1640. package/tools/repohealth.mjs +767 -0
  1641. package/tools/skillmap.mjs +109 -0
@@ -0,0 +1,968 @@
1
+ /**
2
+ * The choice box: when to look for one, reading it off the rendered screen
3
+ * (claude's numbered box and opencode's highlighted row), publishing it, the
4
+ * "unparsable dialog" fallback flag, the sign-in link that rides on the same
5
+ * render, and the two answer walks that place a selection before pressing
6
+ * Return. Stateless — every per-session fact lives on the `Session` record.
7
+ * Reasoning: `waterplane-heuristics` (`prompt.ts`, `ocprompt.ts`, `askbox.ts`,
8
+ * `login.ts`) and docs/notes/host-architecture.md.
9
+ */
10
+ import { answerTextProblem } from "@waterplane/shared";
11
+ import { answerSourcePlan, applySourceReply } from "../sourceanswer.js";
12
+ export { sourceKeysProblem } from "../sourceanswer.js";
13
+ import { screenReaderFor } from "../backends/readers.js";
14
+ import { derive } from "../backends/derive.js";
15
+ import { detectPrompt, dialogStillUp, dialogEvidence, hasDialogFooter, isDialogFooterRow, MAX_BOX_OPTIONS, mergeBox, navToSubmit, readNavBox, sameBox, samePrompt, stripAnsi } from "../prompt.js";
16
+ import { asksFromCall, descFor, pendingAskQuestions, pendingAskRecord, pickAsk, recoverHead } from "../askbox.js";
17
+ import { isPlanBox, planPathFor, readPlan } from "../planbox.js";
18
+ import { detectLimitText, STOP_WAIT_RE } from "../limit.js";
19
+ import { detectLogin, loginCandidate, sameLogin } from "../login.js";
20
+ import { logMtime, transcriptPath } from "../transcript.js";
21
+ import { recordSent } from "../sentlog.js";
22
+ import { rememberRule, sessionAskRules } from "../answergate.js";
23
+ import { PROMPT_CHECK_MS, PROMPT_MAX_STALE_MS, PROMPT_MISS_MAX, PROMPT_SETTLE_MS, RESIZE_REPAINT_MS, PROMPT_GATE_BYTES, SUBMIT_NAV_TRIES, SUBMIT_NAV_MAX_KEYS, SUBMIT_NAV_LINES, SUBMIT_NAV_SETTLE_MS, CHOOSE_NAV_TRIES, CHOOSE_NAV_SETTLE_MS, PROMPT_CELL_ROWS, IDLE_PING_MS, HEALTH_SAMPLE_ROWS, } from "./knobs.js";
24
+ /**
25
+ * The tail of a screen ending at the row a matcher was looking for.
26
+ *
27
+ * Anchored on the MATCHED row rather than sliced off the bottom, for the same
28
+ * reason `deliver.ts` places its echo instead of taking the last N rows: the
29
+ * bottom of a claude screen is the composer and the working line, and a sample
30
+ * that shows those says nothing about the box above them.
31
+ */
32
+ /** How long the `askbox.enrich` fixture waits for the log to write the call: 2 min. */
33
+ const ASK_RECORD_POLLS = 60;
34
+ const ASK_RECORD_POLL_MS = 2_000;
35
+ function healthTail(screen, anchor) {
36
+ const rows = screen.split("\n");
37
+ let hit = -1;
38
+ for (let i = rows.length - 1; i >= 0; i--)
39
+ if (anchor(rows[i])) {
40
+ hit = i;
41
+ break;
42
+ }
43
+ if (hit < 0)
44
+ hit = rows.length - 1;
45
+ return rows.slice(Math.max(0, hit - HEALTH_SAMPLE_ROWS + 1), hit + 1).join("\n");
46
+ }
47
+ export function scheduleChecks(core, s) {
48
+ if (s.idleTimer)
49
+ clearTimeout(s.idleTimer);
50
+ s.idleTimer = setTimeout(() => core.checkIdle(s), IDLE_PING_MS);
51
+ // Output on a hooked session with no turn in flight: the hooks say nothing
52
+ // is running, and the CLI may be working anyway (`/compact` announces
53
+ // nothing, and a `Stop` a hook blocked leaves the turn going). One armed
54
+ // timer, never restarted while a pass is already pending, and it costs a
55
+ // regex over ONE repaint — see `checkTurnWatch`. A session with a turn the
56
+ // hooks DO own is left to them.
57
+ // Not while a backend's own channel reports EXACT turns: those boundaries are
58
+ // exact by definition, and `workingLine` is claude's working line — pointed
59
+ // at another TUI it could only ever match something else. A channel whose
60
+ // ends are requests (`verifyEnds`: claude's hook pipe) keeps the watch.
61
+ const exactTurns = !!s.channel?.turnsLive && !s.backend.sources?.turns?.verifyEnds;
62
+ if (s.hooksActive && !exactTurns && !s.stopVerifyTimer && !s.turnActive)
63
+ core.armTurnWatch(s);
64
+ // The prompt check is a debounce with a CEILING. A pure debounce never fires
65
+ // while a box is up — the TUI repaints its working line every second or so,
66
+ // and each repaint pushed the check out again — which is exactly the state
67
+ // that needs publishing. `PROMPT_MAX_STALE_MS` since the last check that
68
+ // actually ran wins over the quiet window, so a repaint storm delays
69
+ // verification by a bounded amount instead of for ever.
70
+ // Measured from the start of THIS burst when the last check is older than the
71
+ // ceiling itself: after a quiet spell the ceiling has long expired, and taking
72
+ // it at face value fired the check at 0 ms on the burst's FIRST chunk — the
73
+ // first chunk of a box tmux is still painting. (`readTwice` is what keeps a
74
+ // half-painted read from being published; this only stops buying it.)
75
+ const now = Date.now();
76
+ const since = s.promptTimer || now - s.lastPromptCheckAt < PROMPT_MAX_STALE_MS ? s.lastPromptCheckAt : now;
77
+ const ceiling = since + PROMPT_MAX_STALE_MS - now;
78
+ armPromptCheck(core, s, Math.max(0, Math.min(PROMPT_CHECK_MS, ceiling)));
79
+ // A shell's links and codes (`shelllinks.ts`) on the same quiet tick; a
80
+ // session with turns never pays for that read.
81
+ if (s.backend.caps.turns === false)
82
+ core.armLinksCheck(s);
83
+ }
84
+ /** Arm the prompt check, EARLIEST-wins: a later caller may pull the check
85
+ * forward but never push a pending one back (that is what made the debounce
86
+ * starve under constant output). */
87
+ export function armPromptCheck(core, s, delayMs) {
88
+ const due = Date.now() + delayMs;
89
+ if (s.promptTimer && s.promptDueAt <= due)
90
+ return;
91
+ if (s.promptTimer)
92
+ clearTimeout(s.promptTimer);
93
+ s.promptDueAt = due;
94
+ s.promptTimer = setTimeout(() => { s.promptTimer = null; checkPrompt(core, s); }, delayMs);
95
+ }
96
+ /**
97
+ * Prompt detection runs in two stages. The cheap stage scans an ANSI-stripped
98
+ * byte window — fast enough for a per-quiet-period check, but a repaint-based
99
+ * TUI makes that window a shuffled, hole-punched approximation of the screen
100
+ * (fragments joined across cursor jumps, words missing letters). So a hit is
101
+ * only a CANDIDATE: it is re-detected against the RENDERED screen (headless VT
102
+ * replay, what a user actually sees) and that result is what we publish. The
103
+ * render is the expensive part, hence the gate — no candidate, no replay.
104
+ *
105
+ * Before this, garbled repaint fragments were surfaced verbatim as one-tap
106
+ * option labels, and phantom prompts flickered in and out mid-answer.
107
+ */
108
+ function checkPrompt(core, s) {
109
+ if (!s.info.running)
110
+ return;
111
+ // A backend whose TUI draws no box this detector can read is a backend this
112
+ // check has nothing to say about. Not armed at all, rather than armed and
113
+ // publishing null: the strict stage costs a full VT replay per quiet period,
114
+ // and — the part that matters more — the only way a claude-shaped rule can
115
+ // "match" a screen it was never written for is by matching something else.
116
+ // The sign-in link rides on this same render, which is the right place for
117
+ // it too: a claude account's sign-in screen is not a fact about a binary
118
+ // that has no claude account.
119
+ const reader = derive(s.backend).screen("dialogs");
120
+ if (!reader)
121
+ return;
122
+ // The CLI's own channel is posing the dialogs: the screen reader stands down,
123
+ // because two readers on one box re-key its fingerprint (a card re-opened, a
124
+ // queued answer stale, a push). It comes back the moment the channel goes
125
+ // down (`sidechannel.ts`), and it also stays off for a box the channel
126
+ // published before it finished reconciling.
127
+ if (screenReaderOff(s))
128
+ return;
129
+ // Named readers, not a boolean: `prompt.ts`'s rules are claude's screen and
130
+ // nothing else, so a second TUI gets its own reader rather than a looser
131
+ // version of this one. See `backends/types.ts`.
132
+ // A reader a plugin contributed (`backends/readers.ts`) — opencode's, for one.
133
+ const nav = screenReaderFor(s.backend);
134
+ if (nav) {
135
+ checkNavBox(core, s, nav);
136
+ return;
137
+ }
138
+ if (reader !== "claude-numbered")
139
+ return; // a contributed name whose plugin left: no reader, no box
140
+ // A pane in copy-mode is showing HISTORY, not the live screen: the rendered
141
+ // grid is wherever the user panned to, so an answered box scrolled back into
142
+ // view would be re-detected as live — an approve bar over a dialog that no
143
+ // longer exists, and an `awaitingInput` interlock on a session that is fine.
144
+ // The pane is unchanged underneath; the next check after the pan back down
145
+ // reads it. (`tmuxscroll.ts`.)
146
+ if (s.copyMode)
147
+ return;
148
+ s.lastPromptCheckAt = Date.now();
149
+ // Cheap stage runs LENIENT: the "❯" cursor and the Enter/Esc footer each sit
150
+ // on their own row, and a repaint can leave them outside the byte window while
151
+ // the option rows sit inside it. Demanding them here would drop a real prompt
152
+ // before it ever reached the render — no approve bar, no push. Strictness
153
+ // belongs on the rendered screen below, which is what gets published.
154
+ // A dialog we could NOT parse is still a blocked session, and the reader view
155
+ // has no terminal to notice it in — so the render is also paid for when the
156
+ // tail merely carries a box FOOTER, and an unparsable box publishes the
157
+ // weaker `awaitingInput` signal ("open the CLI") instead of nothing at all.
158
+ // "esc to interrupt" is deliberately not in DIALOG_FOOTER_RE: that is the
159
+ // TUI's working line, i.e. every busy session, i.e. a render per check.
160
+ // The window is a few repaints wide, not one: this TUI redraws a full screen
161
+ // in ~3 KB, and the footer is not the LAST thing it draws — a box whose
162
+ // preview pane was painted after it fell outside a one-frame window entirely.
163
+ // A regex over 12 KB every 600 ms of quiet costs nothing; missing the gate
164
+ // costs the whole feature. Stale bytes here only buy a render whose STRICT
165
+ // pass then publishes null, so a wide gate can't invent a phantom prompt.
166
+ const rawTail = s.scrollback.slice(-PROMPT_GATE_BYTES);
167
+ const tail = stripAnsi(rawTail);
168
+ const candidate = !!detectPrompt(rawTail, { lenient: true });
169
+ // A gate miss retires a prompt only when there is no PUBLISHED box to lose.
170
+ //
171
+ // "Only the strict verifier clears it" is the rule the miss counter below
172
+ // exists to enforce, and this exit sat outside it. The gate reads a fixed
173
+ // byte WINDOW, so a box whose own frame is a large fraction of that window —
174
+ // six options with a wrapped description each — plus the repaints that follow
175
+ // can push the footer out of view while the box is plainly still on screen,
176
+ // and the panel vanished with no misses spent. With a box published we fall
177
+ // through to the render and let the strict pass decide instead; a box that is
178
+ // genuinely gone leaves a screen carrying no dialog footer, which clears it on
179
+ // that same pass with no added latency.
180
+ // A sign-in link opens the gate on its own shape: claude 2.1.293's sign-in
181
+ // screen draws no dialog footer (`login.ts`'s `loginCandidate`).
182
+ if (!candidate && !hasDialogFooter(tail) && !s.info.prompt && !s.info.login && !loginCandidate(rawTail, tail)) {
183
+ s.promptGen++; // invalidates any render still in flight — the box is gone
184
+ s.promptMisses = 0;
185
+ s.promptPending = null;
186
+ applyPrompt(core, s, null);
187
+ setAwaiting(core, s, false);
188
+ return;
189
+ }
190
+ if (s.promptRendering)
191
+ return;
192
+ s.promptRendering = true;
193
+ const gen = s.promptGen;
194
+ void core.screenText(s.info.id, 60)
195
+ .then((screen) => {
196
+ if (!s.info.running || s.promptGen !== gen)
197
+ return;
198
+ // The sign-in link rides on THIS render rather than paying for one of
199
+ // its own: the gate above opens on the link's shape (`loginCandidate`),
200
+ // so the replay is bought every time there is a link to find.
201
+ applyLogin(core, s, detectLogin(screen, s.scrollback));
202
+ const parsed = detectPrompt(screen);
203
+ if (parsed) {
204
+ s.promptMisses = 0;
205
+ // One box stays ONE box while the TUI repaints under it. The strict
206
+ // pass runs about twice a second and reads whatever is legible right
207
+ // now — which the console refreshing itself, a pan, or a box taller
208
+ // than the terminal all change — so a live question was re-published
209
+ // several times a minute under a new fingerprint. That re-opened a
210
+ // card the user had collapsed or hidden to answer at the desk, made
211
+ // queued answers stale and fired a push per repaint. `sameBox` /
212
+ // `mergeBox` in `prompt.ts` carry the reasoning; a box that is
213
+ // genuinely different is published as itself.
214
+ // The commit row's own word, off this same render — "Submit" on the
215
+ // last question of an ask, "Next" on every one before it.
216
+ const commit = parsed.multi ? navToSubmit(screen) : null;
217
+ const read = commit ? { ...parsed, submitLabel: commit.label } : parsed;
218
+ // Enriched BEFORE the comparison, not after: the enrichment is what
219
+ // carries `askId`, and that is the only handle `sameBox` can trust on
220
+ // the boxes that actually move.
221
+ const fresh = enrichPrompt(s, read);
222
+ const live = s.info.prompt;
223
+ const next = live && sameBox(live, fresh) ? mergeBox(live, fresh) : fresh;
224
+ // A box that is NEW, or that would change the published one, waits for
225
+ // a second read that agrees — see `readTwice`. The published box (if
226
+ // any) stays as it is meanwhile.
227
+ if (samePrompt(next, live ?? null))
228
+ s.promptPending = null;
229
+ else if (!readTwice(s, read)) {
230
+ armPromptCheck(core, s, PROMPT_SETTLE_MS);
231
+ return;
232
+ }
233
+ applyPrompt(core, s, next);
234
+ setAwaiting(core, s, false);
235
+ return;
236
+ }
237
+ // Nothing parsed — but a capture taken mid-repaint is a HALF-DRAWN box:
238
+ // the option rows are there and the cursor row (or a label, or the
239
+ // footer) is not yet redrawn. Publishing null on that is what made a
240
+ // live dialog blink: the panel unmounted, the next capture parsed it
241
+ // again, and around it went, about once a second. So while the screen
242
+ // still carries a dialog footer, keep the box we already published and
243
+ // count the miss; a box that is genuinely gone runs the counter out (or
244
+ // takes the cheap gate's exit above, which needs no misses at all).
245
+ // `dialogStillUp`, not merely "a footer is somewhere on this screen".
246
+ // This CLI scrolls rather than repainting an alt screen, so an answered
247
+ // box stays in the rendered tail for as long as the conversation takes
248
+ // to push it out — and the loose test read that corpse as a live
249
+ // question, which both kept the retired box published for its full miss
250
+ // budget and raised `awaitingInput` on a session sitting at an idle
251
+ // composer.
252
+ s.promptPending = null; // agreement is between CONSECUTIVE reads
253
+ const dialog = dialogStillUp(screen);
254
+ /**
255
+ * **A repaint WE asked for is not evidence the box is gone.**
256
+ *
257
+ * The phone's answer panel takes its space from the terminal, so
258
+ * publishing a box shrinks the grid, which reports new rows, which is a
259
+ * SIGWINCH, which makes this TUI clear and redraw everything. The
260
+ * captures taken across that redraw are half-drawn — and they were being
261
+ * counted as misses, three of them at `PROMPT_CHECK_MS` apart retired the
262
+ * box, the panel unmounted, the grid grew back, another SIGWINCH, the box
263
+ * parsed again, and the panel came back. A ~2 Hz blink that made a live
264
+ * question unanswerable, and every part of it correct in isolation.
265
+ *
266
+ * The miss budget is for a screen we happened to catch mid-repaint. This
267
+ * is a screen we KNOW is mid-repaint, because we are the ones who asked
268
+ * for it — so it costs nothing and we simply look again. `dialogStillUp`
269
+ * still gates it: a box genuinely gone during a resize leaves a screen
270
+ * with no footer and is retired on this same pass, exactly as before.
271
+ */
272
+ if (s.info.prompt && dialog && Date.now() - s.lastResizeAt < RESIZE_REPAINT_MS) {
273
+ armPromptCheck(core, s, PROMPT_CHECK_MS);
274
+ return;
275
+ }
276
+ if (s.info.prompt && dialog && s.promptMisses < PROMPT_MISS_MAX) {
277
+ s.promptMisses++;
278
+ // Re-arm ourselves: checks are otherwise driven by output, and a box
279
+ // that was answered at the DESK leaves a quiet screen behind — the
280
+ // retained prompt would then never be re-verified at all.
281
+ armPromptCheck(core, s, PROMPT_CHECK_MS);
282
+ return;
283
+ }
284
+ s.promptMisses = 0;
285
+ applyPrompt(core, s, null);
286
+ setAwaiting(core, s, dialog, screen);
287
+ })
288
+ .catch(() => { })
289
+ .finally(() => { s.promptRendering = false; });
290
+ }
291
+ /**
292
+ * Has the screen read this box TWICE IN A ROW? A box is published only then.
293
+ *
294
+ * tmux hands its client a screen in CHUNKS, so a render taken between two of
295
+ * them is a box painted down to some row and no further: options missing, the
296
+ * last label cut mid-word ("Yes, and don't a"), the question short. With a
297
+ * selection cursor on row 1 that half PARSES — strictly, correctly, as what is
298
+ * legible — and publishing it is publishing a wrong box: the cut label is a
299
+ * one-tap button, it is in `promptFingerprint`, and `mergeBox` never rewrites a
300
+ * published label, so the cut stayed for the life of the box. Measured on the
301
+ * first box of a session, where the paint follows a quiet spell and the check
302
+ * fired on its first chunk (`scheduleChecks`'s ceiling), but nothing about it
303
+ * is specific to the first.
304
+ *
305
+ * Nothing on a half-painted screen says it is half-painted, so completeness is
306
+ * asked of TIME instead: two consecutive strict reads, `PROMPT_SETTLE_MS`
307
+ * apart, that agree field for field (`samePrompt`, on the screen's own read
308
+ * BEFORE enrichment — the log is not what is being proved). A read that
309
+ * disagrees becomes the new candidate; any pass that reads no box clears it.
310
+ * Costs one extra render and ~`PROMPT_SETTLE_MS` on a box's first appearance,
311
+ * and nothing while it sits unchanged. Degrades to publishing nothing yet,
312
+ * never to a box nobody drew.
313
+ */
314
+ function readTwice(s, read) {
315
+ const agreed = !!s.promptPending && samePrompt(s.promptPending, read);
316
+ s.promptPending = agreed ? null : read;
317
+ return agreed;
318
+ }
319
+ /** A settle between a walk's keystroke and its re-read — the box walks' one wait. */
320
+ const pause = (ms) => new Promise((r) => setTimeout(r, ms));
321
+ /** A contributed reader's answer, or `fallback` when it threw: a throw reads as "no box". */
322
+ function safe(fn, fallback) {
323
+ try {
324
+ return fn();
325
+ }
326
+ catch {
327
+ return fallback;
328
+ }
329
+ }
330
+ /**
331
+ * The same two-stage check, for a TUI that draws its dialog a different way.
332
+ *
333
+ * Separate from `checkPrompt()` rather than a branch inside it, because the
334
+ * two share the SHAPE (cheap byte gate → expensive replay → publish, with a
335
+ * miss budget so a half-drawn repaint cannot retire a live box) and not one
336
+ * single rule: opencode (the first such TUI) has no numbered rows, no `❯`, no
337
+ * "Enter to confirm" footer and no scrollback, and every one of `prompt.ts`'s defences is written
338
+ * against one of those. Folding them together would mean loosening rules that
339
+ * exist because of a measured failure on the other screen.
340
+ *
341
+ * What it keeps, deliberately, is the blink fix: a box that stops parsing
342
+ * while the anchor is still on screen costs a MISS, not a retirement, and a
343
+ * repaint the host itself caused by publishing the box (the answer panel takes
344
+ * its space from the terminal, which resizes the PTY, which makes the TUI
345
+ * redraw) costs nothing at all.
346
+ */
347
+ function checkNavBox(core, s, reader) {
348
+ if (s.copyMode)
349
+ return;
350
+ s.lastPromptCheckAt = Date.now();
351
+ const tail = stripAnsi(s.scrollback.slice(-PROMPT_GATE_BYTES));
352
+ if (!safe(() => reader.candidate(tail), false)) {
353
+ // Nothing that could be a dialog in the window: retire whatever was
354
+ // published with no misses spent, exactly as the claude gate does.
355
+ s.promptGen++;
356
+ s.promptMisses = 0;
357
+ applyPrompt(core, s, null);
358
+ setAwaiting(core, s, false);
359
+ return;
360
+ }
361
+ if (s.promptRendering)
362
+ return;
363
+ s.promptRendering = true;
364
+ const gen = s.promptGen;
365
+ void core.screenCells(s.info.id, PROMPT_CELL_ROWS)
366
+ .then((rows) => {
367
+ if (!s.info.running || s.promptGen !== gen)
368
+ return;
369
+ const box = safe(() => reader.read(rows), null);
370
+ const prompt = box ? safe(() => reader.prompt(box), null) : null;
371
+ if (prompt) {
372
+ s.promptMisses = 0;
373
+ applyPrompt(core, s, prompt);
374
+ setAwaiting(core, s, false);
375
+ return;
376
+ }
377
+ // Unparsed. "Is the dialog still up" is the reader's own question about
378
+ // its own TUI; a dialog still drawn spends a miss rather than retiring the box.
379
+ const dialog = safe(() => reader.stillUp(rows), false);
380
+ if (s.info.prompt && dialog && Date.now() - s.lastResizeAt < RESIZE_REPAINT_MS) {
381
+ armPromptCheck(core, s, PROMPT_CHECK_MS);
382
+ return;
383
+ }
384
+ if (s.info.prompt && dialog && s.promptMisses < PROMPT_MISS_MAX) {
385
+ s.promptMisses++;
386
+ armPromptCheck(core, s, PROMPT_CHECK_MS);
387
+ return;
388
+ }
389
+ s.promptMisses = 0;
390
+ applyPrompt(core, s, null);
391
+ // A dialog whose ARMED option could not be read is still a blocked
392
+ // session, and the phone has no terminal open in the reader view to
393
+ // notice it in. `awaitingInput` is the honest signal for it — "something
394
+ // is asking; open the CLI" — and it is what the phone renders the
395
+ // sentence from rather than greying out a control nobody can explain.
396
+ setAwaiting(core, s, dialog);
397
+ })
398
+ .catch(() => { })
399
+ .finally(() => { s.promptRendering = false; });
400
+ }
401
+ /**
402
+ * Answer an unnumbered box by placing the selection on the option the user
403
+ * named, and only then pressing Return.
404
+ *
405
+ * The claude path sends the option's digit, which is a complete answer in one
406
+ * keystroke. There are no digits here: the options are three words on a row
407
+ * and the only thing that decides what Return does is which one is armed. So
408
+ * this is `submitPromptBox()`'s loop with a different target — walk, RE-READ,
409
+ * walk again — and the same reason for re-reading rather than counting: how
410
+ * many options there are, whether the ends wrap and whether a keystroke was
411
+ * swallowed by a repaint are all upstream details, and the screen is the only
412
+ * thing that knows.
413
+ *
414
+ * **It refuses rather than guessing.** If the box stops being readable, or the
415
+ * armed option never becomes the one that was asked for, no Return is pressed
416
+ * and the receipt says so. A Return on the wrong row here is "Allow always" on
417
+ * a command nobody approved — this is the failure the capability was false for
418
+ * three months to avoid, and the walk existing does not make it acceptable to
419
+ * fall back to a bare Return the way a checkbox box can.
420
+ */
421
+ export async function choosePromptBox(core, id, choice) {
422
+ const s = core.sessions.get(id);
423
+ if (!s || !s.info.running)
424
+ return { ok: false, reason: "session not available" };
425
+ const reader = screenReaderFor(s.backend);
426
+ if (!reader) {
427
+ if (derive(s.backend).screen("dialogs") === "claude-numbered" && s.info.prompt?.nav)
428
+ return chooseClaudeNavBox(core, id, choice);
429
+ return { ok: false, reason: "this backend's boxes are answered with a keystroke, not a selection" };
430
+ }
431
+ let box = null;
432
+ for (let i = 0; i < CHOOSE_NAV_TRIES; i++) {
433
+ const rows = await core.screenCells(id, PROMPT_CELL_ROWS);
434
+ box = safe(() => reader.read(rows), null);
435
+ if (!box)
436
+ return { ok: false, reason: "that question is no longer readable on screen" };
437
+ if (box.armed === choice)
438
+ break;
439
+ const b = box;
440
+ const nav = safe(() => reader.navTo(b, choice), null);
441
+ if (!nav)
442
+ return { ok: false, reason: `this box has ${box.options.length} options, not ${choice}` };
443
+ // One key per pass. Overshooting is not self-correcting the way a
444
+ // checkbox walk is — the list WRAPS, so a repaint that swallowed a
445
+ // keystroke and one that did not are two different rings — and a single
446
+ // step re-read is cheap next to pressing Return on the wrong option.
447
+ if (!core.input(id, nav.dir === "right" ? "\x1b[C" : "\x1b[D")) {
448
+ return { ok: false, reason: "session not available" };
449
+ }
450
+ await pause(CHOOSE_NAV_SETTLE_MS);
451
+ }
452
+ if (!box || box.armed !== choice) {
453
+ return { ok: false, reason: "could not place the selection on that option — answer it in the terminal" };
454
+ }
455
+ // Nothing is written to the audit log here, for the same reason the claude
456
+ // answer path writes nothing: `sentlog.ts` records SENDS, and an answer to a
457
+ // box is a keystroke aimed at a question the session already published. The
458
+ // one exception in this file stays the exception — the usage-limit menu is
459
+ // answered on the user's behalf and never shown, so the log is the only
460
+ // place it is visible at all.
461
+ return { ok: core.input(id, "\r") };
462
+ }
463
+ /**
464
+ * The same walk for claude's own UNNUMBERED box (2.1.293's first-launch trust
465
+ * box, `prompt.ts`'s `readNavBox`): the rows are a vertical list, so Up/Down
466
+ * rather than Left/Right, one key per pass and a RE-READ between, and Return
467
+ * only once the "❯" is on the option asked for.
468
+ *
469
+ * Not a digit, though the old numbered trust box took one: nothing measured
470
+ * says a digit answers this box, and a digit that does not is a stray
471
+ * character in the composer of the session it lets in. The arrows are what
472
+ * the box's own footer offers.
473
+ *
474
+ * Refuses rather than guessing, as the reader's walk does — and also when the
475
+ * box on screen no longer carries the label that was tapped at that index:
476
+ * that is a different box, and "Yes" by position on it is a guess.
477
+ */
478
+ async function chooseClaudeNavBox(core, id, choice) {
479
+ const want = core.sessions.get(id)?.info.prompt?.options.find((o) => o.index === choice)?.label;
480
+ let cursor = 0;
481
+ for (let i = 0; i < CHOOSE_NAV_TRIES; i++) {
482
+ const read = readNavBox(await core.screenText(id, 60));
483
+ if (!read)
484
+ return { ok: false, reason: "that question is no longer readable on screen" };
485
+ const target = read.prompt.options.find((o) => o.index === choice);
486
+ if (!target)
487
+ return { ok: false, reason: `this box has ${read.prompt.options.length} options, not ${choice}` };
488
+ if (want !== undefined && target.label !== want) {
489
+ return { ok: false, reason: "the box on screen is not the one that was answered — answer it in the terminal" };
490
+ }
491
+ cursor = read.cursor;
492
+ if (cursor === choice)
493
+ break;
494
+ if (!core.input(id, choice > cursor ? "\x1b[B" : "\x1b[A"))
495
+ return { ok: false, reason: "session not available" };
496
+ await pause(CHOOSE_NAV_SETTLE_MS);
497
+ }
498
+ if (cursor !== choice) {
499
+ return { ok: false, reason: "could not place the selection on that option — answer it in the terminal" };
500
+ }
501
+ return core.input(id, "\r") ? { ok: true } : { ok: false, reason: "session not available" };
502
+ }
503
+ /** Is the published box the side channel's, or is the channel reconciled and
504
+ * owning every box? Either way the screen has nothing to add. */
505
+ export function screenReaderOff(s) {
506
+ const ch = s.channel;
507
+ if (!ch || ch.closed)
508
+ return false;
509
+ if (!!ch.published && s.info.prompt?.askId === ch.published)
510
+ return true;
511
+ // A dialog the channel can see but cannot pose (opencode's `question` tool, whose answer
512
+ // route nobody measured) reaches the phone through the screen or not at all: the reader
513
+ // keeps its duty — and so does `awaitingInput` behind it — while one is open.
514
+ return ch.dialogsLive && !ch.unposed;
515
+ }
516
+ /**
517
+ * **The one answer dispatcher** — every answer to a choice box goes through
518
+ * here: the phone's tap (`routes/session.ts`, a digit, a `promptChoice`, typed
519
+ * `promptText`) and anything the answer gate let through (`answergate.ts`, a
520
+ * choice only — the gate never carries words). Three rungs, in order:
521
+ *
522
+ * 1. the box is a dialog, QUESTION or PLAN the CLI posed on its OWN channel ⇒
523
+ * answered there (`SourceDialog.answer(choice, {text})` — `text` only on a
524
+ * `takesText` row; `SourceQuestion.answer({choice, text})`; a plan's verb, a
525
+ * person's tap only, at most once), nothing typed into the PTY — unless the
526
+ * source hands back `{ keys }` or, for a question, `{ typed }`: then exactly
527
+ * that, bounded and typed by `sourceanswer.ts` into this session through
528
+ * `core.input`, the path a digit tap takes, only while it is still open;
529
+ * 2. the box has no numbers (`nav`), or the caller asked for a walk ⇒
530
+ * `choosePromptBox`, which refuses rather than pressing a blind Return;
531
+ * 3. otherwise the digit and a Return, which is what a tap always sent.
532
+ *
533
+ * Typed words reach only rung 1: a box the screen read takes none (refused in
534
+ * words — the composer is `deliver.ts`'s, never this). `choice` is `NaN` for a
535
+ * question answered with words alone.
536
+ *
537
+ * **While the channel owns the dialogs, a box it does not know is not answered
538
+ * by guessing.** A dialog the channel resolved a moment ago (answered at the
539
+ * desk, withdrawn) leaves nothing to type at — the screen walk would read a box
540
+ * that is gone and the digit would land in the composer — so it refuses in
541
+ * words, as the gate refuses, with nothing written.
542
+ *
543
+ * Without `sources` none of rung 1 or the refusal can apply (`s.channel` is
544
+ * absent) and this is exactly the two calls the route and the gate made before.
545
+ */
546
+ export async function answerBox(core, id, choice, opts = {}) {
547
+ const s = core.sessions.get(id);
548
+ if (!s || !s.info.running)
549
+ return { ok: false, reason: "session not available" };
550
+ const p = s.info.prompt ?? null;
551
+ const ch = s.channel && !s.channel.closed ? s.channel : null;
552
+ const text = opts.text;
553
+ const textWhy = text === undefined ? null : answerTextProblem(text);
554
+ if (textWhy)
555
+ return { ok: false, reason: textWhy };
556
+ const sourceOwned = !!ch && !!p?.askId && p.askId === ch.published;
557
+ // A screen-read box while the channel reports a dialog it cannot pose is the screen's to
558
+ // answer (the walk below), never refused as "not the channel's".
559
+ if (sourceOwned || (ch?.dialogsLive && !ch.unposed)) {
560
+ const q = p?.askId ? ch.questions.get(p.askId) : undefined;
561
+ const d = p?.askId ? ch.dialogs.get(p.askId) : undefined;
562
+ const reply = {
563
+ input: (data) => core.input(id, data), label: s.backend.label,
564
+ stillOpen: () => !ch.closed && s.channel === ch && !!p?.askId && (ch.questions.has(p.askId) || ch.dialogs.has(p.askId) || ch.plans.has(p.askId)),
565
+ log: { sessionId: id, source: opts.byPerson ? "phone" : "plugin" },
566
+ onUnclosed: (note) => {
567
+ if (s.info.prompt?.askId !== p?.askId)
568
+ return;
569
+ s.info.prompt = { ...s.info.prompt, answerNote: note };
570
+ core.emit("updated", s.info);
571
+ },
572
+ };
573
+ if (p && q)
574
+ return answerQuestion(q, choice, text, reply);
575
+ if (p?.askId && ch.plans.has(p.askId))
576
+ return answerSourcePlan(ch.plans.get(p.askId), choice, { byPerson: !!opts.byPerson, text }, reply);
577
+ if (!p || !d)
578
+ return { ok: false, reason: "that question is no longer open — it was answered or withdrawn" };
579
+ const option = Number.isInteger(choice) ? d.options.find((o) => o.index === choice) : undefined;
580
+ if (!option)
581
+ return { ok: false, reason: `${choice} is not one of the box's options` };
582
+ if (text !== undefined && !option.takesText)
583
+ return { ok: false, reason: `“${option.label}” takes no typed reason — tap it without one` };
584
+ // Read BEFORE answering: a source may re-word its options once answered (they are its own).
585
+ const remember = option.remember;
586
+ const dialogWords = remember ? [d.question, ...d.options.map((o) => o.label)].join("\n") : "";
587
+ let r;
588
+ try {
589
+ r = await (text === undefined ? d.answer(choice) : d.answer(choice, { text }));
590
+ }
591
+ catch (e) {
592
+ return { ok: false, reason: `the CLI's own channel did not take that answer (${e?.message || String(e)})` };
593
+ }
594
+ // A dialog's reply is `{ok}` or `{keys}`: typed words are a question's (`SourceTyped`) —
595
+ // except keys-then-words (2.1): the row's key opens a reason field, and the words are the
596
+ // ones the PERSON typed on a `takesText` row (checked above), never the source's own.
597
+ const done = r && typeof r === "object" && "typed" in r
598
+ ? dialogWordsProblem(r, text) ?? await applySourceReply(r, reply)
599
+ : await applySourceReply(r, reply);
600
+ // A PERSON chose an option the source marked `remember`: the host keeps that standing rule
601
+ // (`answergate.ts`), keyed by the plugin that registered this backend — the owner of the source.
602
+ // Only the phone's route sets `byPerson` — a gated answer never makes one; a dialog an ask rule the gate holds names keeps none.
603
+ if (done.ok && opts.byPerson && remember)
604
+ rememberRule({ sessionId: id, plugin: s.backend.plugin, backend: s.backend.id, key: remember.key, label: remember.label, askRules: sessionAskRules(id, s.info), text: dialogWords });
605
+ return done;
606
+ }
607
+ if (text !== undefined)
608
+ return { ok: false, reason: "this box takes no typed answer — only a question the CLI posed on its own channel does" };
609
+ if (opts.walk || p?.nav)
610
+ return choosePromptBox(core, id, choice);
611
+ const ok = core.input(id, `${choice}\r`);
612
+ return ok ? { ok } : { ok, reason: "session not available" };
613
+ }
614
+ /**
615
+ * Why a dialog's reply carrying `typed` is refused, or null when it is keys-then-words for the
616
+ * person's own reason. `text` is only ever set on a `takesText` row (`answerBox` refused it
617
+ * otherwise before the source was asked).
618
+ */
619
+ function dialogWordsProblem(r, text) {
620
+ if (text === undefined || !("keys" in r))
621
+ return { ok: false, reason: "the CLI's own channel asked to type words into a dialog — only a question's form takes them" };
622
+ if (r.typed !== text)
623
+ return { ok: false, reason: "the CLI's own channel asked to type a reason that is not the words you typed — nothing was typed" };
624
+ return null;
625
+ }
626
+ /** Rung 1 for a QUESTION: an option, typed words, or both — each only where it offers one. */
627
+ async function answerQuestion(q, choice, text, reply) {
628
+ const picked = Number.isInteger(choice) ? choice : undefined;
629
+ if (picked !== undefined && !(q.options ?? []).some((o) => o.index === picked))
630
+ return { ok: false, reason: `${picked} is not one of the question's options` };
631
+ if (text !== undefined && q.freeText !== true)
632
+ return { ok: false, reason: "this question takes one of its options, not typed words" };
633
+ if (picked === undefined && text === undefined)
634
+ return { ok: false, reason: "an answer to this question needs an option or typed words" };
635
+ let r;
636
+ try {
637
+ r = await q.answer({ ...(picked !== undefined ? { choice: picked } : {}), ...(text !== undefined ? { text } : {}) });
638
+ }
639
+ catch (e) {
640
+ return { ok: false, reason: `the CLI's own channel did not take that answer (${e?.message || String(e)})` };
641
+ }
642
+ return applySourceReply(r, reply);
643
+ }
644
+ /**
645
+ * Put the CLI's OWN words on the box we scraped.
646
+ *
647
+ * `AskUserQuestion` writes its question and every option's full description
648
+ * into the conversation log before anyone answers, and the screen is where
649
+ * that text goes to die: descriptions are cut at the right edge and again by
650
+ * the preview pane, and a box with six of them is taller than a phone's
651
+ * terminal, so the question row is not on screen at all. A one-tap button
652
+ * reading "A + B + C" with the paragraph explaining it nowhere on the device
653
+ * is a button you cannot honestly press — which is the actual complaint
654
+ * behind "I need to see the question".
655
+ *
656
+ * Enrichment is additive and identity-neutral: `desc`/`ask`/`truncated` are
657
+ * outside `promptFingerprint` on purpose, so a description that arrives one
658
+ * check late cannot invalidate an answer already queued against the box.
659
+ * Matching is by LABEL, never by index — the TUI appends its own rows ("Type
660
+ * something.", "Chat about this") after the tool's, and on a truncated box the
661
+ * visible run starts above 1.
662
+ *
663
+ * Cached on the log's mtime: the strict pass runs about twice a second while a
664
+ * box is up and the log does not move in that time, so this costs one `stat`
665
+ * per check and a tail read per turn.
666
+ */
667
+ function enrichPrompt(s, p) {
668
+ // The health verdict is STASHED, not recorded: this runs on every strict
669
+ // pass, about twice a second while a box is up, and `applyPrompt` owns the
670
+ // one edge where a box genuinely becomes published. Cleared first, so a
671
+ // path that returns early below leaves no stale answer behind for that edge
672
+ // to record — "the log could not be asked" is not an observation about the
673
+ // matcher.
674
+ s.enrich = null;
675
+ const cid = s.info.claudeSessionId;
676
+ if (!cid)
677
+ return p;
678
+ // A plan approval is never an `AskUserQuestion`, so it is done and returned
679
+ // here: the card gets the plan it is asking about, or nothing extra.
680
+ if (isPlanBox(p.ask ?? p.question)) {
681
+ const plan = pendingPlanFor(s, cid);
682
+ return plan ? { ...p, plan } : p;
683
+ }
684
+ let asks;
685
+ try {
686
+ const mtime = logMtime(transcriptPath(s.info.cwd, cid)) ?? 0;
687
+ if (s.askCache && s.askCache.mtime === mtime)
688
+ asks = s.askCache.asks;
689
+ else {
690
+ asks = pendingAskQuestions(s.info.cwd, cid);
691
+ s.askCache = { mtime, asks };
692
+ }
693
+ // The log does not hold the call while its box is up on 2.1.304 (it is
694
+ // written once answered); the `PreToolUse` hook carried it before the box.
695
+ if (!asks.length && s.askHook)
696
+ asks = asksFromCall(s.info.cwd, cid, s.askHook);
697
+ }
698
+ catch {
699
+ return p;
700
+ }
701
+ const labels = p.options.map((o) => o.label);
702
+ // The UNIQUE best match, never the first that overlaps: one
703
+ // `AskUserQuestion` may carry several questions and two of them sharing a
704
+ // pair of labels ("Yes"/"No") is ordinary, so `find` handed back question 1
705
+ // for a screen showing question 2 — and with it question 1's `askId`, its
706
+ // descriptions and its first options as a "recovered" head a digit would
707
+ // select. A tie now enriches nothing. See `pickAsk`.
708
+ const ask = pickAsk(asks, labels);
709
+ // Only a box the log HAS a pending question for can say anything about this
710
+ // matcher. A tool approval or a trust dialog carries no `AskUserQuestion` at
711
+ // all, so `asks` is legitimately empty and counting that as a miss would
712
+ // report the commonest box in the app as a broken parse.
713
+ s.enrich = { asks: asks.length, matched: !!ask, labels: labels.join("\n") };
714
+ if (!ask)
715
+ return p;
716
+ const options = p.options.map((o) => {
717
+ const desc = descFor(ask, o.label);
718
+ return desc ? { ...o, desc } : o;
719
+ });
720
+ // A box taller than the terminal scrolled its own first options away. The
721
+ // log has them, and their indices are the TUI's own — see `recoverHead`,
722
+ // which refuses unless the two lists can be proved to line up. Recovered,
723
+ // the card is no longer missing buttons, so `truncated` (which SAYS options
724
+ // are unreachable from here) goes with them.
725
+ const head = recoverHead(ask, p.options);
726
+ if (head) {
727
+ const recovered = head.map((o, i) => ({ index: i + 1, label: o.label, ...(o.desc ? { desc: o.desc } : {}) }));
728
+ const { truncated: _cut, ...rest } = p;
729
+ // Capped like the merge, and from the same end: the recovered head is the
730
+ // part nobody can see on the terminal, so the tail is what gives way.
731
+ const all = [...recovered, ...options].slice(0, MAX_BOX_OPTIONS);
732
+ return { ...rest, options: all, ask: ask.question, askId: ask.id };
733
+ }
734
+ return { ...p, options, ask: ask.question, askId: ask.id };
735
+ }
736
+ /**
737
+ * The plan file behind a plan-approval box (`planbox.ts`), cached on the log's
738
+ * mtime and the file's: the strict pass runs about twice a second while the box
739
+ * is up, and neither moves in that time unless somebody edits the plan.
740
+ */
741
+ function pendingPlanFor(s, cid) {
742
+ try {
743
+ const logM = logMtime(transcriptPath(s.info.cwd, cid)) ?? 0;
744
+ const c = s.planCache;
745
+ const path = c && c.logMtime === logM ? c.path : planPathFor(s.info.cwd, cid);
746
+ const fileM = path ? logMtime(path) ?? 0 : 0;
747
+ if (c && c.logMtime === logM && c.path === path && c.fileMtime === fileM)
748
+ return c.plan ?? undefined;
749
+ const plan = path && fileM ? readPlan(path) : null;
750
+ s.planCache = { logMtime: logM, path, fileMtime: fileM, plan };
751
+ return plan ?? undefined;
752
+ }
753
+ catch {
754
+ return undefined;
755
+ }
756
+ }
757
+ /** Publish the "unparsable dialog on screen" fallback flag. */
758
+ export function setAwaiting(core, s, on, screen) {
759
+ if (!!s.info.awaitingInput === on)
760
+ return;
761
+ s.info.awaitingInput = on || undefined;
762
+ core.emit("updated", s.info);
763
+ // Same reason the parsed prompt notifies: a blocked session is silent, so
764
+ // nothing else would ever tell you. Fires on the ON transition only.
765
+ if (on)
766
+ core.emit("awaiting", s.info.id);
767
+ // …which is nearly the edge the health record wants, and the "nearly" is
768
+ // the whole correction. Raising this flag means "a dialog footer is on that
769
+ // screen and no box parsed above it" — but the flag is an INTERLOCK, and its
770
+ // rule is deliberately loose because a false wait is cheap and typing into a
771
+ // live question box is not. A CLAIM ABOUT THE DETECTOR has the opposite
772
+ // error cost, so it needs the stricter question: was a box actually up?
773
+ //
774
+ // On the live host it was not. A claude session displaying our own prose
775
+ // about this very detector put "Esc to cancel" on screen inside a sentence,
776
+ // the cheap gate fired, the strict pass correctly refused to read a
777
+ // paragraph as a box — and that CORRECT REFUSAL was filed as a miss. Four in
778
+ // nine, i.e. a working detector reporting 44% failure, which is how a board
779
+ // teaches the person reading it to stop reading it.
780
+ //
781
+ // So: an observation is only a miss if the primary rule was the RIGHT RULE
782
+ // and failed. `dialogEvidence` is what says it was — a footer row the CLI
783
+ // painted, plus a cursor or option rows above it. No box, no observation:
784
+ // not a `good` either, because nothing here has been seen to work, and a
785
+ // `good` per correct refusal would fill the twenty-slot window with
786
+ // successes and bury the misses that matter.
787
+ if (on && screen) {
788
+ const ev = dialogEvidence(screen);
789
+ if (ev.box) {
790
+ core.noteFor(s, "prompt.box", "fallback", {
791
+ via: "the weaker “something is asking you something” flag",
792
+ raw: healthTail(screen, (l) => isDialogFooterRow(l)),
793
+ });
794
+ }
795
+ }
796
+ }
797
+ /**
798
+ * Publish (or retire) the sign-in link this session is showing.
799
+ *
800
+ * Same shape as `applyPrompt` and for the same reason: this runs about twice
801
+ * a second while the login screen is up, and a `session.list` broadcast per
802
+ * repaint would be one per repaint. `at` is stamped when the URL first
803
+ * appears and kept while it is the same URL, because a login link expires and
804
+ * "how old is this" is the difference between a page that signs you in and a
805
+ * page that refuses.
806
+ */
807
+ function applyLogin(core, s, login) {
808
+ const had = s.info.login ?? null;
809
+ if (sameLogin(had, login))
810
+ return;
811
+ if (!login) {
812
+ s.info.login = null;
813
+ }
814
+ else {
815
+ s.info.login = { ...login, at: had && had.url === login.url ? had.at : Date.now() };
816
+ }
817
+ core.emit("updated", s.info);
818
+ }
819
+ export function applyPrompt(core, s, prompt) {
820
+ // The usage-limit menu is owned by auto-continue, not the normal prompt
821
+ // flow: take its stop-and-wait option ourselves and never surface it (no
822
+ // push, no plugin event) — the scheduled continue does the rest. With
823
+ // auto-continue off it stays a normal prompt (the badge still shows).
824
+ const stopWait = prompt?.options.find((o) => STOP_WAIT_RE.test(o.label));
825
+ if (prompt && stopWait) {
826
+ const scan = stripAnsi(s.scrollback.slice(-6000));
827
+ const det = detectLimitText(scan);
828
+ core.markLimitBlocked(s, det.resetAt, det.weekly, scan.slice(-600));
829
+ if (core.limitAuto(s)) {
830
+ if (s.info.prompt) {
831
+ s.info.prompt = null;
832
+ core.emit("updated", s.info);
833
+ }
834
+ s.proc.write(String(stopWait.index) + "\r");
835
+ // This menu is answered on the user's behalf and then never shown, so
836
+ // the audit log is the ONLY place it is visible at all.
837
+ recordSent({
838
+ sessionId: s.info.id, actor: "auto", source: "limit", kind: "answer",
839
+ text: String(stopWait.index), result: "written",
840
+ detail: `took the usage-limit menu's "${stopWait.label}"`,
841
+ });
842
+ return;
843
+ }
844
+ }
845
+ // A box IS the question, with buttons. Publishing both would put the same
846
+ // ask on the row twice and in two different wordings.
847
+ if (prompt)
848
+ core.setAsking(s, null);
849
+ // Field by field (`samePrompt`), never `JSON.stringify`: that also compares
850
+ // KEY ORDER, and `mergeBox` builds its object in its own order, so the pass
851
+ // after every merge reported a change for a card that had not moved — one
852
+ // broadcast, one push and one plugin event per box, bought with nothing.
853
+ const changed = !samePrompt(prompt, s.info.prompt ?? null);
854
+ // A tick toggled on a checkbox box is the box being answered, not a new
855
+ // question: the phone redraws it, nobody is pushed "needs you" per tap.
856
+ const ticked = changed && samePrompt(prompt, s.info.prompt ?? null, "ignore");
857
+ const had = !!s.info.prompt;
858
+ if (changed) {
859
+ s.info.prompt = prompt;
860
+ // A numbered-choice suggestion answers THIS box; when the box goes, so
861
+ // does it. (Output alone no longer clears either — see the data handler.)
862
+ const sug = s.info.suggestion;
863
+ if (!prompt && sug && sug.choice != null)
864
+ s.info.suggestion = null;
865
+ core.emit("updated", s.info);
866
+ if (prompt && !ticked)
867
+ core.emit("prompt", s.info.id, prompt);
868
+ // A box became published where none was — the one edge on which the
869
+ // choice-box detector has provably worked. Not on every `changed`: a box
870
+ // whose cursor moves republishes several times while it is up, and the
871
+ // question is "can this app still read a question box", asked once per
872
+ // box. Not on every strict pass either, for the reason `enrichPrompt`
873
+ // states.
874
+ if (prompt && !had) {
875
+ // The fixture is the screen the box was published off (`clifixtures.ts`).
876
+ core.noteFor(s, "prompt.box", "good", { fixture: () => core.screenText(s.info.id) });
877
+ // The enrichment rides on the same edge, from what the poll stashed.
878
+ // `asks: 0` is not a miss (see `enrichPrompt`); the fallback is that the
879
+ // phone shows the labels as the terminal cut them, with the paragraph
880
+ // that explains them nowhere on the device.
881
+ const e = s.enrich;
882
+ if (e && e.asks > 0) {
883
+ // The fixture is the LOG's record of the call, which 2.1.304 writes only
884
+ // once the box is answered — so it is waited for (once per CLI version).
885
+ if (e.matched)
886
+ core.noteFor(s, "askbox.enrich", "good", { fixture: async () => {
887
+ for (let i = 0; i < ASK_RECORD_POLLS; i++) {
888
+ const rec = pendingAskRecord(s.info.cwd, s.info.claudeSessionId);
889
+ if (rec)
890
+ return rec;
891
+ await pause(ASK_RECORD_POLL_MS);
892
+ }
893
+ return null;
894
+ } });
895
+ else
896
+ core.noteFor(s, "askbox.enrich", "fallback", { via: "the labels as the terminal cut them", raw: e.labels });
897
+ }
898
+ }
899
+ }
900
+ }
901
+ /**
902
+ * Press Return on a checkbox box's **Submit row**, walking the selection
903
+ * cursor there first.
904
+ *
905
+ * A multi-select `AskUserQuestion` is answered by toggling rows and then
906
+ * confirming on a Submit row that carries no index — so the phone's Submit
907
+ * button, which sent a bare Return, pressed it wherever the cursor happened to
908
+ * be: on option 1, where the box starts, that RE-TOGGLES the option and leaves
909
+ * the box open. The box is never answered and the row the user did pick is
910
+ * silently un-picked.
911
+ *
912
+ * Driven off the RENDERED screen rather than a count of rows we believe are
913
+ * there (`navToSubmit`), and re-read between moves: whether a digit key also
914
+ * moves the cursor, and whether the ends of the list wrap, are both upstream
915
+ * details we would otherwise be encoding a guess about. Overshooting is
916
+ * self-correcting — the next pass just walks back — so the loop converges
917
+ * where an open-loop "press Down N times" would land on the wrong row.
918
+ *
919
+ * Falls back to the bare Return whenever the screen shows no Submit row or no
920
+ * cursor (a box taller than the terminal can have scrolled either off): that
921
+ * is exactly what this call did before, and guessing a direction from half a
922
+ * box would toggle a row nobody chose.
923
+ */
924
+ export async function submitPromptBox(core, id) {
925
+ const s = core.sessions.get(id);
926
+ if (!s || !s.info.running || !s.info.remoteControl)
927
+ return { ok: false, placed: false };
928
+ let placed = false;
929
+ /** Did the screen ever yield a Submit row AND a cursor? The two failures are
930
+ * different facts: "the box is not readable at all" is the fallback this
931
+ * signal is named for, while "readable but the walk never converged" is a
932
+ * navigation miss. Collapsing them would report an unreadable screen as a
933
+ * broken walk. */
934
+ let readable = false;
935
+ /** Kept for the sample: the screen the last decision was taken on. */
936
+ let seen = "";
937
+ for (let i = 0; i < SUBMIT_NAV_TRIES; i++) {
938
+ seen = await core.screenText(id, SUBMIT_NAV_LINES);
939
+ const nav = navToSubmit(seen);
940
+ if (!nav)
941
+ break;
942
+ readable = true;
943
+ if (nav.steps === 0) {
944
+ placed = true;
945
+ break;
946
+ }
947
+ const key = nav.steps > 0 ? "\x1b[B" : "\x1b[A";
948
+ if (!core.input(id, key.repeat(Math.min(Math.abs(nav.steps), SUBMIT_NAV_MAX_KEYS)))) {
949
+ return { ok: false, placed: false };
950
+ }
951
+ await pause(SUBMIT_NAV_SETTLE_MS);
952
+ }
953
+ // One observation per answered box — this is a user's tap, not a poll.
954
+ // `placed` is the only outcome in which the Return that follows means
955
+ // "submit"; without it the keystroke toggles whatever row the cursor sat on,
956
+ // which is the bug this whole method exists to fix.
957
+ // Both words the commit row is drawn with — see `prompt.ts`'s
958
+ // `SUBMIT_ROW_RE`. Anchored, so a sentence containing "next" is not a row.
959
+ const tail = healthTail(seen, (l) => /^\s*\S?\s*(Submit|Next)\s*$/.test(l));
960
+ if (placed)
961
+ core.noteFor(s, "prompt.submit", "good", { fixture: () => seen });
962
+ else if (readable)
963
+ core.noteFor(s, "prompt.submit", "miss", { raw: tail });
964
+ else
965
+ core.noteFor(s, "prompt.submit", "fallback", { via: "a bare Return", raw: tail });
966
+ return { ok: core.input(id, "\r"), placed };
967
+ }
968
+ //# sourceMappingURL=boxes.js.map