waterplane 0.1.25 → 0.1.26

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 (342) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/SECURITY.md +24 -4
  3. package/node_modules/@waterplane/shared/dist/agentseries/compare.d.ts +8 -0
  4. package/node_modules/@waterplane/shared/dist/agentseries/compare.js +103 -0
  5. package/node_modules/@waterplane/shared/dist/agentseries/compare.js.map +1 -0
  6. package/node_modules/@waterplane/shared/dist/agentseries/markers.d.ts +17 -0
  7. package/node_modules/@waterplane/shared/dist/agentseries/markers.js +125 -0
  8. package/node_modules/@waterplane/shared/dist/agentseries/markers.js.map +1 -0
  9. package/node_modules/@waterplane/shared/dist/agentseries/series.d.ts +16 -0
  10. package/node_modules/@waterplane/shared/dist/agentseries/series.js +93 -0
  11. package/node_modules/@waterplane/shared/dist/agentseries/series.js.map +1 -0
  12. package/node_modules/@waterplane/shared/dist/agentseries/stats.d.ts +8 -0
  13. package/node_modules/@waterplane/shared/dist/agentseries/stats.js +33 -0
  14. package/node_modules/@waterplane/shared/dist/agentseries/stats.js.map +1 -0
  15. package/node_modules/@waterplane/shared/dist/agentseries/types.d.ts +103 -0
  16. package/node_modules/@waterplane/shared/dist/agentseries/types.js +11 -0
  17. package/node_modules/@waterplane/shared/dist/agentseries/types.js.map +1 -0
  18. package/node_modules/@waterplane/shared/dist/agentseries.d.ts +10 -0
  19. package/node_modules/@waterplane/shared/dist/agentseries.js +11 -0
  20. package/node_modules/@waterplane/shared/dist/agentseries.js.map +1 -0
  21. package/node_modules/@waterplane/shared/dist/calday.d.ts +5 -0
  22. package/node_modules/@waterplane/shared/dist/calday.js +10 -0
  23. package/node_modules/@waterplane/shared/dist/calday.js.map +1 -1
  24. package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.d.ts +13 -1
  25. package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.js +22 -4
  26. package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.js.map +1 -1
  27. package/node_modules/@waterplane/shared/dist/clihealth.d.ts +1 -1
  28. package/node_modules/@waterplane/shared/dist/clihealth.js +1 -1
  29. package/node_modules/@waterplane/shared/dist/clihealth.js.map +1 -1
  30. package/node_modules/@waterplane/shared/dist/dictate.d.ts +6 -0
  31. package/node_modules/@waterplane/shared/dist/dictate.js.map +1 -1
  32. package/node_modules/@waterplane/shared/dist/dictatemodels.d.ts +23 -0
  33. package/node_modules/@waterplane/shared/dist/dictatemodels.js +31 -0
  34. package/node_modules/@waterplane/shared/dist/dictatemodels.js.map +1 -0
  35. package/node_modules/@waterplane/shared/dist/healthspend.d.ts +23 -0
  36. package/node_modules/@waterplane/shared/dist/healthspend.js +31 -0
  37. package/node_modules/@waterplane/shared/dist/healthspend.js.map +1 -1
  38. package/node_modules/@waterplane/shared/dist/index.d.ts +7 -0
  39. package/node_modules/@waterplane/shared/dist/index.js +7 -0
  40. package/node_modules/@waterplane/shared/dist/index.js.map +1 -1
  41. package/node_modules/@waterplane/shared/dist/installrow.js +10 -0
  42. package/node_modules/@waterplane/shared/dist/installrow.js.map +1 -1
  43. package/node_modules/@waterplane/shared/dist/itempaths.d.ts +23 -0
  44. package/node_modules/@waterplane/shared/dist/itempaths.js +38 -0
  45. package/node_modules/@waterplane/shared/dist/itempaths.js.map +1 -1
  46. package/node_modules/@waterplane/shared/dist/pluginlaunch.d.ts +3 -2
  47. package/node_modules/@waterplane/shared/dist/pluginlaunch.js +1 -1
  48. package/node_modules/@waterplane/shared/dist/pluginlaunch.js.map +1 -1
  49. package/node_modules/@waterplane/shared/dist/pricelist.d.ts +57 -0
  50. package/node_modules/@waterplane/shared/dist/pricelist.js +128 -0
  51. package/node_modules/@waterplane/shared/dist/pricelist.js.map +1 -0
  52. package/node_modules/@waterplane/shared/dist/pricing.d.ts +86 -9
  53. package/node_modules/@waterplane/shared/dist/pricing.js +140 -20
  54. package/node_modules/@waterplane/shared/dist/pricing.js.map +1 -1
  55. package/node_modules/@waterplane/shared/dist/queue/queuelanestate.d.ts +14 -0
  56. package/node_modules/@waterplane/shared/dist/queue/queuelanestate.js +25 -0
  57. package/node_modules/@waterplane/shared/dist/queue/queuelanestate.js.map +1 -0
  58. package/node_modules/@waterplane/shared/dist/queue/queueplan.d.ts +4 -0
  59. package/node_modules/@waterplane/shared/dist/queue/queueplan.js +21 -0
  60. package/node_modules/@waterplane/shared/dist/queue/queueplan.js.map +1 -1
  61. package/node_modules/@waterplane/shared/dist/queue/queuewords.js +2 -1
  62. package/node_modules/@waterplane/shared/dist/queue/queuewords.js.map +1 -1
  63. package/node_modules/@waterplane/shared/dist/queue.d.ts +2 -0
  64. package/node_modules/@waterplane/shared/dist/queue.js +1 -0
  65. package/node_modules/@waterplane/shared/dist/queue.js.map +1 -1
  66. package/node_modules/@waterplane/shared/dist/skillstate.d.ts +51 -0
  67. package/node_modules/@waterplane/shared/dist/skillstate.js +176 -0
  68. package/node_modules/@waterplane/shared/dist/skillstate.js.map +1 -0
  69. package/node_modules/@waterplane/shared/dist/skillwords.d.ts +10 -0
  70. package/node_modules/@waterplane/shared/dist/skillwords.js +18 -0
  71. package/node_modules/@waterplane/shared/dist/skillwords.js.map +1 -0
  72. package/node_modules/@waterplane/shared/dist/wire/agentreadings.d.ts +147 -3
  73. package/node_modules/@waterplane/shared/dist/wire/agentreadings.js +29 -0
  74. package/node_modules/@waterplane/shared/dist/wire/agentreadings.js.map +1 -1
  75. package/node_modules/@waterplane/shared/dist/wire/backend.d.ts +2 -0
  76. package/node_modules/@waterplane/shared/dist/wire/costwindow.d.ts +4 -0
  77. package/node_modules/@waterplane/shared/dist/wire/dictatesetup.d.ts +42 -0
  78. package/node_modules/@waterplane/shared/dist/wire/dictatesetup.js +9 -0
  79. package/node_modules/@waterplane/shared/dist/wire/dictatesetup.js.map +1 -0
  80. package/node_modules/@waterplane/shared/dist/wire/messages/hostcore.d.ts +22 -1
  81. package/node_modules/@waterplane/shared/dist/wire/skills.d.ts +142 -0
  82. package/node_modules/@waterplane/shared/dist/wire/skills.js +6 -0
  83. package/node_modules/@waterplane/shared/dist/wire/skills.js.map +1 -0
  84. package/node_modules/@waterplane/shared/dist/wire/sysstat.d.ts +17 -0
  85. package/node_modules/@waterplane/shared/dist/wire/telemetry.d.ts +4 -0
  86. package/npm-shrinkwrap.json +2 -2
  87. package/package.json +1 -1
  88. package/packages/extensions/diskspace/waterplane-plugin.json +16 -0
  89. package/packages/extensions/links/waterplane-plugin.json +18 -0
  90. package/packages/host/dist/agentclass.d.ts +42 -31
  91. package/packages/host/dist/agentclass.js +155 -5
  92. package/packages/host/dist/agentclass.js.map +1 -1
  93. package/packages/host/dist/agentmarkers.d.ts +49 -0
  94. package/packages/host/dist/agentmarkers.js +255 -0
  95. package/packages/host/dist/agentmarkers.js.map +1 -0
  96. package/packages/host/dist/agentreadings.d.ts +30 -2
  97. package/packages/host/dist/agentreadings.js +89 -7
  98. package/packages/host/dist/agentreadings.js.map +1 -1
  99. package/packages/host/dist/agentscan.d.ts +1 -1
  100. package/packages/host/dist/agentscan.js +107 -9
  101. package/packages/host/dist/agentscan.js.map +1 -1
  102. package/packages/host/dist/archive.js +9 -3
  103. package/packages/host/dist/archive.js.map +1 -1
  104. package/packages/host/dist/artifacts.js +4 -7
  105. package/packages/host/dist/artifacts.js.map +1 -1
  106. package/packages/host/dist/askrules.js +12 -4
  107. package/packages/host/dist/askrules.js.map +1 -1
  108. package/packages/host/dist/auth.d.ts +1 -0
  109. package/packages/host/dist/auth.js +5 -3
  110. package/packages/host/dist/auth.js.map +1 -1
  111. package/packages/host/dist/autopull.js +4 -8
  112. package/packages/host/dist/autopull.js.map +1 -1
  113. package/packages/host/dist/backends/claude.js +1 -0
  114. package/packages/host/dist/backends/claude.js.map +1 -1
  115. package/packages/host/dist/backends/derive.js +3 -1
  116. package/packages/host/dist/backends/derive.js.map +1 -1
  117. package/packages/host/dist/binguard.js +19 -2
  118. package/packages/host/dist/binguard.js.map +1 -1
  119. package/packages/host/dist/capture.js +7 -10
  120. package/packages/host/dist/capture.js.map +1 -1
  121. package/packages/host/dist/clifixtures.d.ts +24 -4
  122. package/packages/host/dist/clifixtures.js +50 -10
  123. package/packages/host/dist/clifixtures.js.map +1 -1
  124. package/packages/host/dist/clihealth.d.ts +8 -2
  125. package/packages/host/dist/clihealth.js +11 -3
  126. package/packages/host/dist/clihealth.js.map +1 -1
  127. package/packages/host/dist/costwindow.js +4 -2
  128. package/packages/host/dist/costwindow.js.map +1 -1
  129. package/packages/host/dist/ctxlog/ctxagents.d.ts +2 -0
  130. package/packages/host/dist/ctxlog/ctxagents.js +5 -5
  131. package/packages/host/dist/ctxlog/ctxagents.js.map +1 -1
  132. package/packages/host/dist/ctxlog/ctxcursor.d.ts +2 -0
  133. package/packages/host/dist/ctxlog/ctxcursor.js +2 -2
  134. package/packages/host/dist/ctxlog/ctxcursor.js.map +1 -1
  135. package/packages/host/dist/ctxlog/ctxupdate.js +11 -6
  136. package/packages/host/dist/ctxlog/ctxupdate.js.map +1 -1
  137. package/packages/host/dist/deliver/deliverknobs.d.ts +0 -2
  138. package/packages/host/dist/deliver/deliverknobs.js +0 -2
  139. package/packages/host/dist/deliver/deliverknobs.js.map +1 -1
  140. package/packages/host/dist/deliver/deliverproof.d.ts +3 -2
  141. package/packages/host/dist/deliver/deliverproof.js +9 -8
  142. package/packages/host/dist/deliver/deliverproof.js.map +1 -1
  143. package/packages/host/dist/deliver/deliverreturn.d.ts +3 -2
  144. package/packages/host/dist/deliver/deliverreturn.js +13 -12
  145. package/packages/host/dist/deliver/deliverreturn.js.map +1 -1
  146. package/packages/host/dist/deliver/deliverrun.js +20 -18
  147. package/packages/host/dist/deliver/deliverrun.js.map +1 -1
  148. package/packages/host/dist/deliver/deliverscreen.d.ts +2 -1
  149. package/packages/host/dist/deliver/deliverscreen.js +9 -8
  150. package/packages/host/dist/deliver/deliverscreen.js.map +1 -1
  151. package/packages/host/dist/deliver/delivertypes.d.ts +4 -0
  152. package/packages/host/dist/deliver.js +2 -1
  153. package/packages/host/dist/deliver.js.map +1 -1
  154. package/packages/host/dist/dictate.d.ts +11 -0
  155. package/packages/host/dist/dictate.js +20 -10
  156. package/packages/host/dist/dictate.js.map +1 -1
  157. package/packages/host/dist/dictatesetup.d.ts +54 -0
  158. package/packages/host/dist/dictatesetup.js +261 -0
  159. package/packages/host/dist/dictatesetup.js.map +1 -0
  160. package/packages/host/dist/doctor.js +1 -1
  161. package/packages/host/dist/doctor.js.map +1 -1
  162. package/packages/host/dist/exposurepush.js +2 -2
  163. package/packages/host/dist/exposurepush.js.map +1 -1
  164. package/packages/host/dist/extensions/diskspace/host/candidates.d.mts +180 -0
  165. package/packages/host/dist/extensions/diskspace/host/candidates.mjs +716 -0
  166. package/packages/host/dist/extensions/diskspace/host/candidates.mjs.map +1 -0
  167. package/packages/host/dist/extensions/diskspace/host/engine.d.mts +21 -0
  168. package/packages/host/dist/extensions/diskspace/host/engine.mjs +498 -0
  169. package/packages/host/dist/extensions/diskspace/host/engine.mjs.map +1 -0
  170. package/packages/host/dist/extensions/diskspace/host/index.d.mts +25 -0
  171. package/packages/host/dist/extensions/diskspace/host/index.mjs +135 -0
  172. package/packages/host/dist/extensions/diskspace/host/index.mjs.map +1 -0
  173. package/packages/host/dist/extensions/diskspace/host/large.d.mts +11 -0
  174. package/packages/host/dist/extensions/diskspace/host/large.mjs +56 -0
  175. package/packages/host/dist/extensions/diskspace/host/large.mjs.map +1 -0
  176. package/packages/host/dist/extensions/diskspace/host/run.d.mts +94 -0
  177. package/packages/host/dist/extensions/diskspace/host/run.mjs +200 -0
  178. package/packages/host/dist/extensions/diskspace/host/run.mjs.map +1 -0
  179. package/packages/host/dist/extensions/diskspace/shared/wire.d.mts +197 -0
  180. package/packages/host/dist/extensions/diskspace/shared/wire.mjs +23 -0
  181. package/packages/host/dist/extensions/diskspace/shared/wire.mjs.map +1 -0
  182. package/packages/host/dist/extensions/links/host/engine.d.mts +39 -0
  183. package/packages/host/dist/extensions/links/host/engine.mjs +285 -0
  184. package/packages/host/dist/extensions/links/host/engine.mjs.map +1 -0
  185. package/packages/host/dist/extensions/links/host/index.d.mts +10 -0
  186. package/packages/host/dist/extensions/links/host/index.mjs +72 -0
  187. package/packages/host/dist/extensions/links/host/index.mjs.map +1 -0
  188. package/packages/host/dist/extensions/links/host/parse.d.mts +61 -0
  189. package/packages/host/dist/extensions/links/host/parse.mjs +225 -0
  190. package/packages/host/dist/extensions/links/host/parse.mjs.map +1 -0
  191. package/packages/host/dist/extensions/links/host/run.d.mts +15 -0
  192. package/packages/host/dist/extensions/links/host/run.mjs +32 -0
  193. package/packages/host/dist/extensions/links/host/run.mjs.map +1 -0
  194. package/packages/host/dist/extensions/links/host/store.d.mts +11 -0
  195. package/packages/host/dist/extensions/links/host/store.mjs +76 -0
  196. package/packages/host/dist/extensions/links/host/store.mjs.map +1 -0
  197. package/packages/host/dist/extensions/links/shared/wire.d.mts +141 -0
  198. package/packages/host/dist/extensions/links/shared/wire.mjs +20 -0
  199. package/packages/host/dist/extensions/links/shared/wire.mjs.map +1 -0
  200. package/packages/host/dist/git.d.ts +5 -3
  201. package/packages/host/dist/git.js +16 -28
  202. package/packages/host/dist/git.js.map +1 -1
  203. package/packages/host/dist/halt.js +16 -3
  204. package/packages/host/dist/halt.js.map +1 -1
  205. package/packages/host/dist/jsonstore.d.ts +16 -4
  206. package/packages/host/dist/jsonstore.js +32 -8
  207. package/packages/host/dist/jsonstore.js.map +1 -1
  208. package/packages/host/dist/landedbase.d.ts +41 -0
  209. package/packages/host/dist/landedbase.js +59 -0
  210. package/packages/host/dist/landedbase.js.map +1 -0
  211. package/packages/host/dist/lantls.js +2 -2
  212. package/packages/host/dist/lantls.js.map +1 -1
  213. package/packages/host/dist/limitretry.js +2 -3
  214. package/packages/host/dist/limitretry.js.map +1 -1
  215. package/packages/host/dist/localledger.js +9 -12
  216. package/packages/host/dist/localledger.js.map +1 -1
  217. package/packages/host/dist/main.js +2 -0
  218. package/packages/host/dist/main.js.map +1 -1
  219. package/packages/host/dist/opendeliveries.d.ts +4 -0
  220. package/packages/host/dist/opendeliveries.js +27 -1
  221. package/packages/host/dist/opendeliveries.js.map +1 -1
  222. package/packages/host/dist/plugins/setupcontrib.js +3 -2
  223. package/packages/host/dist/plugins/setupcontrib.js.map +1 -1
  224. package/packages/host/dist/pricefetch.d.ts +80 -0
  225. package/packages/host/dist/pricefetch.js +289 -0
  226. package/packages/host/dist/pricefetch.js.map +1 -0
  227. package/packages/host/dist/pricegap.d.ts +11 -0
  228. package/packages/host/dist/pricegap.js +30 -0
  229. package/packages/host/dist/pricegap.js.map +1 -0
  230. package/packages/host/dist/repohealthscopes.js +16 -24
  231. package/packages/host/dist/repohealthscopes.js.map +1 -1
  232. package/packages/host/dist/repos.d.ts +4 -0
  233. package/packages/host/dist/repos.js +1 -1
  234. package/packages/host/dist/repos.js.map +1 -1
  235. package/packages/host/dist/routes/apiagentpoints.d.ts +5 -0
  236. package/packages/host/dist/routes/apiagentpoints.js +48 -0
  237. package/packages/host/dist/routes/apiagentpoints.js.map +1 -0
  238. package/packages/host/dist/routes/apidictate.d.ts +2 -0
  239. package/packages/host/dist/routes/apidictate.js +27 -0
  240. package/packages/host/dist/routes/apidictate.js.map +1 -0
  241. package/packages/host/dist/routes/apihost.js +3 -2
  242. package/packages/host/dist/routes/apihost.js.map +1 -1
  243. package/packages/host/dist/routes/apirepofiles.js +3 -1
  244. package/packages/host/dist/routes/apirepofiles.js.map +1 -1
  245. package/packages/host/dist/routes/apirepowork.js +3 -2
  246. package/packages/host/dist/routes/apirepowork.js.map +1 -1
  247. package/packages/host/dist/routes/apiroutes.js +4 -1
  248. package/packages/host/dist/routes/apiroutes.js.map +1 -1
  249. package/packages/host/dist/routes/apiskills.d.ts +3 -0
  250. package/packages/host/dist/routes/apiskills.js +81 -0
  251. package/packages/host/dist/routes/apiskills.js.map +1 -0
  252. package/packages/host/dist/routes/apistats.js +2 -2
  253. package/packages/host/dist/routes/apistats.js.map +1 -1
  254. package/packages/host/dist/server/billingwire.js +5 -0
  255. package/packages/host/dist/server/billingwire.js.map +1 -1
  256. package/packages/host/dist/server/deliveries.d.ts +4 -1
  257. package/packages/host/dist/server/deliveries.js +38 -6
  258. package/packages/host/dist/server/deliveries.js.map +1 -1
  259. package/packages/host/dist/server/intentDeps.js +7 -6
  260. package/packages/host/dist/server/intentDeps.js.map +1 -1
  261. package/packages/host/dist/server/wsops.js +2 -1
  262. package/packages/host/dist/server/wsops.js.map +1 -1
  263. package/packages/host/dist/sessions/core.d.ts +1 -0
  264. package/packages/host/dist/sessions/ctxseries.js +7 -5
  265. package/packages/host/dist/sessions/ctxseries.js.map +1 -1
  266. package/packages/host/dist/sessions/drive.d.ts +6 -1
  267. package/packages/host/dist/sessions/drive.js +13 -10
  268. package/packages/host/dist/sessions/drive.js.map +1 -1
  269. package/packages/host/dist/sessions/record.js +16 -17
  270. package/packages/host/dist/sessions/record.js.map +1 -1
  271. package/packages/host/dist/sessions/sidechannel.js +1 -1
  272. package/packages/host/dist/sessions/sidechannel.js.map +1 -1
  273. package/packages/host/dist/sessions/turn.js +5 -0
  274. package/packages/host/dist/sessions/turn.js.map +1 -1
  275. package/packages/host/dist/sessions.d.ts +2 -1
  276. package/packages/host/dist/sessions.js +1 -1
  277. package/packages/host/dist/sessions.js.map +1 -1
  278. package/packages/host/dist/settle.d.ts +3 -2
  279. package/packages/host/dist/settle.js +13 -13
  280. package/packages/host/dist/settle.js.map +1 -1
  281. package/packages/host/dist/sidecar/sidecarname.d.ts +2 -0
  282. package/packages/host/dist/sidecar/sidecarname.js +5 -1
  283. package/packages/host/dist/sidecar/sidecarname.js.map +1 -1
  284. package/packages/host/dist/sidecar/sidecarroute.d.ts +1 -1
  285. package/packages/host/dist/sidecar/sidecarroute.js +5 -0
  286. package/packages/host/dist/sidecar/sidecarroute.js.map +1 -1
  287. package/packages/host/dist/sidecar.d.ts +1 -1
  288. package/packages/host/dist/sidecar.js +1 -1
  289. package/packages/host/dist/sidecar.js.map +1 -1
  290. package/packages/host/dist/skills/skillinventory.d.ts +23 -0
  291. package/packages/host/dist/skills/skillinventory.js +275 -0
  292. package/packages/host/dist/skills/skillinventory.js.map +1 -0
  293. package/packages/host/dist/skills/skilllayers.d.ts +28 -0
  294. package/packages/host/dist/skills/skilllayers.js +73 -0
  295. package/packages/host/dist/skills/skilllayers.js.map +1 -0
  296. package/packages/host/dist/skills/skillrecommend.d.ts +42 -0
  297. package/packages/host/dist/skills/skillrecommend.js +171 -0
  298. package/packages/host/dist/skills/skillrecommend.js.map +1 -0
  299. package/packages/host/dist/skills/skillrefs.d.ts +2 -0
  300. package/packages/host/dist/skills/skillrefs.js +50 -0
  301. package/packages/host/dist/skills/skillrefs.js.map +1 -0
  302. package/packages/host/dist/skills/skilluse.d.ts +57 -0
  303. package/packages/host/dist/skills/skilluse.js +242 -0
  304. package/packages/host/dist/skills/skilluse.js.map +1 -0
  305. package/packages/host/dist/skills/skillweight.d.ts +18 -0
  306. package/packages/host/dist/skills/skillweight.js +69 -0
  307. package/packages/host/dist/skills/skillweight.js.map +1 -0
  308. package/packages/host/dist/skills/skillwrite.d.ts +56 -0
  309. package/packages/host/dist/skills/skillwrite.js +183 -0
  310. package/packages/host/dist/skills/skillwrite.js.map +1 -0
  311. package/packages/host/dist/sysstat.d.ts +34 -1
  312. package/packages/host/dist/sysstat.js +82 -14
  313. package/packages/host/dist/sysstat.js.map +1 -1
  314. package/packages/host/dist/tokenscan.js +5 -2
  315. package/packages/host/dist/tokenscan.js.map +1 -1
  316. package/packages/host/dist/tokenstats.js +7 -4
  317. package/packages/host/dist/tokenstats.js.map +1 -1
  318. package/packages/host/dist/transcript/transcriptparse.js +2 -2
  319. package/packages/host/dist/transcript/transcriptparse.js.map +1 -1
  320. package/packages/host/dist/waitclock.d.ts +12 -0
  321. package/packages/host/dist/waitclock.js +23 -0
  322. package/packages/host/dist/waitclock.js.map +1 -0
  323. package/packages/host/dist/worktreeleftover.js +13 -15
  324. package/packages/host/dist/worktreeleftover.js.map +1 -1
  325. package/packages/web/dist/assets/demo-DHkwSmU5.js +26 -0
  326. package/packages/web/dist/assets/{icons-D8RlmSLR.js → icons-5lVTFNUU.js} +1 -1
  327. package/packages/web/dist/assets/index-Bh4cH6X8.js +170 -0
  328. package/packages/web/dist/assets/index-F7VHtsLI.css +1 -0
  329. package/packages/web/dist/assets/shared-BvQMg9ra.js +51 -0
  330. package/packages/web/dist/assets/sheets-Cwi72V02.js +257 -0
  331. package/packages/web/dist/assets/sheets-DjU2XiUd.css +1 -0
  332. package/packages/web/dist/build-id.txt +1 -1
  333. package/packages/web/dist/buildstamp.json +1 -1
  334. package/packages/web/dist/index.html +7 -7
  335. package/packages/web/dist/sw.js +2 -2
  336. package/release.json +11 -3
  337. package/packages/web/dist/assets/demo-mKJo0QVO.js +0 -26
  338. package/packages/web/dist/assets/index-B6f7Lcp1.js +0 -170
  339. package/packages/web/dist/assets/index-DQIK94fc.css +0 -1
  340. package/packages/web/dist/assets/shared-Cd69oxHd.js +0 -51
  341. package/packages/web/dist/assets/sheets-BImsk1_Y.js +0 -256
  342. package/packages/web/dist/assets/sheets-DoUhPGK0.css +0 -1
@@ -68,13 +68,17 @@
68
68
  * them fell back to a token total beside priced siblings; Haiku 5.5 added
69
69
  * 2026-10-09 from the same skill's table and its migration notes — $0.10/
70
70
  * $0.50 at a prompt of 100K tokens or fewer, cache at the multipliers —
71
- * after 1.1M of its tokens sat unpriced in one week).
71
+ * after 1.1M of its tokens sat unpriced in one week; Fable 5.2 added and
72
+ * Sonnet 5.5's cache read corrected 2026-11-12 from the same table —
73
+ * Fable 5.2 $8/$40, cache read $0.20, after 3,241 of its log records sat
74
+ * unpriced; Sonnet 5.5 reads the cache at $0.10, not the rule's $0.20, so
75
+ * every Sonnet 5.5 session had been charged twice that line).
72
76
  * `PRICES_AS_OF` is carried to the UI so the screen can say how old the
73
77
  * table is rather than implying it is current.
74
78
  */
75
79
  /** When this table was taken. Shown, so a stale rate is visible rather than
76
80
  * silently authoritative. */
77
- export const PRICES_AS_OF = "2026-10-09";
81
+ export const PRICES_AS_OF = "2026-11-12";
78
82
  /** Multipliers on a model's INPUT rate. */
79
83
  export const CACHE_READ_MULT = 0.1;
80
84
  export const CACHE_WRITE_5M_MULT = 1.25;
@@ -87,16 +91,18 @@ export const CACHE_WRITE_1H_MULT = 2;
87
91
  * one of those would be priced wrongly here, which is why the screen calls this
88
92
  * a list-price estimate rather than a cost.
89
93
  *
90
- * The Mythos ids are the two the list does NOT price (they are not on the
91
- * public page at all). They are kept at their Fable twins' input/output rates,
92
- * which is what the model documentation states — but Fable 5.1's cache-read
93
- * discount is deliberately NOT extended to `claude-mythos-5-1`: that number is
94
- * unstated for it, and the 0.1× rule is the one that errs dear rather than
95
- * cheap.
94
+ * This is the BUILT-IN floor. A running host overlays the rates it reads off
95
+ * Anthropic's own price page (`pricelist.ts`, `installPriceList`), so a new
96
+ * model or a changed rate reaches an installation without a release; this
97
+ * table is what prices a desktop that has never read the page or is told not
98
+ * to (`WATERPLANE_PRICE_FETCH=0`). Every row here was checked against that
99
+ * page on 2026-11-12, Mythos and the retired models included.
96
100
  */
97
101
  export const PRICES = {
102
+ "claude-fable-5-2": { input: 8, output: 40, cacheRead: 0.2 },
103
+ "claude-mythos-5-2": { input: 8, output: 40, cacheRead: 0.2 },
98
104
  "claude-fable-5-1": { input: 10, output: 50, cacheRead: 0.25 },
99
- "claude-mythos-5-1": { input: 10, output: 50 },
105
+ "claude-mythos-5-1": { input: 10, output: 50, cacheRead: 0.25 },
100
106
  "claude-fable-5": { input: 10, output: 50 },
101
107
  "claude-mythos-5": { input: 10, output: 50 },
102
108
  "claude-opus-5-5": { input: 4, output: 20, cacheRead: 0.2 },
@@ -105,19 +111,62 @@ export const PRICES = {
105
111
  "claude-opus-4-7": { input: 5, output: 25 },
106
112
  "claude-opus-4-6": { input: 5, output: 25 },
107
113
  "claude-opus-4-5": { input: 5, output: 25 },
108
- "claude-sonnet-5-5": { input: 2, output: 10 },
114
+ // Retired on the Claude API, still in older logs.
115
+ "claude-opus-4-1": { input: 15, output: 75 },
116
+ "claude-opus-4": { input: 15, output: 75 },
117
+ "claude-sonnet-5-5": { input: 2, output: 10, cacheRead: 0.1 },
109
118
  "claude-sonnet-5": { input: 2, output: 10 },
110
119
  "claude-sonnet-4-6": { input: 3, output: 15 },
111
120
  "claude-sonnet-4-5": { input: 3, output: 15 },
112
- // Two published cards, chosen by PROMPT length: $0.10/$0.50 up to a 100K-token
113
- // prompt, $0.50/$2.50 above it. This table prices buckets, not requests, so
114
- // it carries the short card and a longer prompt is UNDER-priced (5×) — the
115
- // fast-mode stance, and measured 0 of 106 haiku-5-5 requests here past 100K
116
- // (2026-10-09). Splitting the long card out needs the scan to tally those
117
- // requests under their own key; until then this is the one known floor.
121
+ "claude-sonnet-4": { input: 3, output: 15 },
122
+ // Two published cards, chosen by PROMPT length: this is the card up to a
123
+ // 100K-token prompt; the dearer one is `LONG_PROMPT` below, charged to a
124
+ // request whose own prompt is past the line (`priceKeyOf`).
118
125
  "claude-haiku-5-5": { input: 0.1, output: 0.5 },
119
126
  "claude-haiku-4-5": { input: 1, output: 5 },
120
127
  };
128
+ /**
129
+ * A model's dearer card for LONG prompts, keyed by the canonical alias. The
130
+ * page prices Haiku 5.5 by prompt length: a request whose prompt (input plus
131
+ * cache reads plus cache writes) is over `overTokens` pays this card for ALL of
132
+ * its tokens, cache hits included, and each request is judged on its own.
133
+ *
134
+ * Built-in floor, like `PRICES`; the host overlays the page's own long cards
135
+ * (`LivePrices.longPrompt`). Checked against the page on 2026-11-12.
136
+ */
137
+ export const LONG_PROMPT = {
138
+ "claude-haiku-5-5": { input: 0.5, output: 2.5, cacheRead: 0.05, overTokens: 100_000 },
139
+ };
140
+ /** The mark a price key carries when its requests were over the long-prompt line. */
141
+ export const LONG_PROMPT_MARK = "@long";
142
+ const longCardOf = (base) => LIVE?.longPrompt?.[base] ?? LONG_PROMPT[base] ?? null;
143
+ /**
144
+ * The key ONE request prices under: its own model, or `<alias>@long` when the
145
+ * model has a long-prompt card and this request's prompt is past its line.
146
+ * Asked per request, never of a bucket — a bucket's sum says nothing about
147
+ * any one prompt's length. A model without a long card keeps its raw id.
148
+ */
149
+ export function priceKeyOf(model, t) {
150
+ if (!model)
151
+ return model ?? null;
152
+ const id = normalizeModel(model);
153
+ if (!id || id.endsWith(LONG_PROMPT_MARK))
154
+ return model;
155
+ const card = longCardOf(id);
156
+ return card && t.input + t.cacheRead + t.cacheWrite > card.overTokens ? id + LONG_PROMPT_MARK : model;
157
+ }
158
+ /** `claude-haiku-5-5@long` → ` (prompts over 100K)`; anything else → "". For labels. */
159
+ export function longPromptNote(id) {
160
+ if (!id.endsWith(LONG_PROMPT_MARK))
161
+ return "";
162
+ const card = longCardOf(id.slice(0, -LONG_PROMPT_MARK.length));
163
+ return card ? ` (prompts over ${Math.round(card.overTokens / 1000)}K)` : " (long prompts)";
164
+ }
165
+ /** A tallied model key as a row names it: the alias, plus the long-prompt note when it has the mark. */
166
+ export function priceKeyLabel(key) {
167
+ const id = normalizeModel(key) ?? key;
168
+ return id.endsWith(LONG_PROMPT_MARK) ? id.slice(0, -LONG_PROMPT_MARK.length) + longPromptNote(id) : id;
169
+ }
121
170
  /**
122
171
  * The alias a logged model id prices under, or null when it is not one of ours.
123
172
  *
@@ -133,9 +182,13 @@ export function normalizeModel(model) {
133
182
  let id = model.trim().toLowerCase();
134
183
  if (!id || !id.startsWith("claude-"))
135
184
  return null;
185
+ // A price key for long-prompt requests (`priceKeyOf`) keeps its mark.
186
+ const long = id.endsWith(LONG_PROMPT_MARK);
187
+ if (long)
188
+ id = id.slice(0, -LONG_PROMPT_MARK.length);
136
189
  id = id.replace(/(\[1m\]|-1m)$/, ""); // context variant, same price
137
190
  id = id.replace(/-\d{8}$/, ""); // dated snapshot → alias
138
- return id;
191
+ return long ? id + LONG_PROMPT_MARK : id;
139
192
  }
140
193
  /** The rate for a model on a given day, or null when we have no list price.
141
194
  * `day` is `YYYY-MM-DD`; omit it to get the current (non-intro) rate. */
@@ -143,12 +196,22 @@ export function rateFor(model, day) {
143
196
  const id = normalizeModel(model);
144
197
  if (!id)
145
198
  return null;
199
+ if (id.endsWith(LONG_PROMPT_MARK)) {
200
+ // A long-prompt request: the long card, or — when no list states one any
201
+ // more — the model's own rate (the page dropping the card means one price).
202
+ const base = id.slice(0, -LONG_PROMPT_MARK.length);
203
+ const card = longCardOf(base);
204
+ return card ? { input: card.input, output: card.output, cacheRead: card.cacheRead ?? card.input * CACHE_READ_MULT } : rateFor(base, day);
205
+ }
146
206
  const p = PRICES[id];
147
- if (!p)
148
- return null;
207
+ const live = LIVE?.rates[id];
149
208
  // Lexicographic compare is correct for `YYYY-MM-DD` and needs no parsing —
150
209
  // and no zone, which matters because the day buckets are already local.
151
- const r = p.intro && day && day <= p.intro.until ? p.intro : p;
210
+ // A built-in introductory rate still wins on its own days: the page states
211
+ // TODAY's price, and an intro is a statement about earlier ones.
212
+ const r = p?.intro && day && day <= p.intro.until ? p.intro : live ?? p;
213
+ if (!r)
214
+ return null;
152
215
  // Spread out by hand rather than returned whole: `intro` must not ride along
153
216
  // on a rate, and an absent `cacheRead` has to stay ABSENT (the multiplier),
154
217
  // never an explicit `undefined` a caller's `??` would read past and a
@@ -157,6 +220,55 @@ export function rateFor(model, day) {
157
220
  ? { input: r.input, output: r.output, cacheRead: r.cacheRead }
158
221
  : { input: r.input, output: r.output };
159
222
  }
223
+ let LIVE = null;
224
+ /** Bumped whenever the rates in force CHANGE (not on a re-read that found the
225
+ * same rates), so a host cache holding money priced at the old rates can tell
226
+ * it is stale and re-price from its tokens. */
227
+ let GEN = 0;
228
+ let GEN_AT = 0;
229
+ const sorted = (o) => Object.entries(o ?? {}).sort(([a], [b]) => (a < b ? -1 : 1));
230
+ const ratesKey = (p) => (p ? JSON.stringify([sorted(p.rates), sorted(p.longPrompt)]) : "");
231
+ /**
232
+ * Put a parsed price list in front of the built-in table — or take it away
233
+ * (`null`). The HOST calls this (from its cached copy at boot, and after every
234
+ * good read); nothing in shared fetches. A model the page lists is priced by
235
+ * the page; one it does not list falls back to `PRICES`, then to null.
236
+ */
237
+ export function installPriceList(p) {
238
+ const next = p && Object.keys(p.rates).length ? p : null;
239
+ if (ratesKey(next) !== ratesKey(LIVE)) {
240
+ GEN++;
241
+ GEN_AT = Date.now();
242
+ }
243
+ LIVE = next;
244
+ }
245
+ /** Changes whenever the rates in force change — a cache key for priced money. */
246
+ export function priceGeneration() {
247
+ return GEN;
248
+ }
249
+ /** When the rates in force last changed, epoch ms; 0 when never this process. */
250
+ export function priceListChangedAt() {
251
+ return GEN_AT;
252
+ }
253
+ /** The list installed now, or null — what the host hands the phone in `welcome`. */
254
+ export function installedPriceList() {
255
+ return LIVE;
256
+ }
257
+ /** Where the rates in force came from — the two wire fields every cost document carries. */
258
+ export function priceListSource() {
259
+ if (!LIVE)
260
+ return { pricesAsOf: PRICES_AS_OF, pricesFrom: "builtin" };
261
+ return { pricesAsOf: new Date(LIVE.fetchedAt).toISOString().slice(0, 10), pricesFrom: "list" };
262
+ }
263
+ /**
264
+ * Where a dollar figure's rates came from, as one phrase every screen shares. `pricesFrom`
265
+ * absent (an older host) reads as the built-in table.
266
+ */
267
+ export function priceSourceText(doc) {
268
+ return doc.pricesFrom === "list"
269
+ ? `Anthropic's price list, read ${doc.pricesAsOf}`
270
+ : `built-in price table from ${doc.pricesAsOf}`;
271
+ }
160
272
  /** Whether a model has a published list price at all. */
161
273
  export function isPriced(model) {
162
274
  return rateFor(model) != null;
@@ -203,6 +315,14 @@ export function costOf(t, model, day) {
203
315
  cost.total = cost.input + cost.output + cost.cacheRead + cost.cacheWrite;
204
316
  return cost;
205
317
  }
318
+ /**
319
+ * Price ONE request: `costOf` under `priceKeyOf`, so a Haiku 5.5 request with a
320
+ * prompt past 100K tokens pays the long card. Only for a single request's
321
+ * counts — a bucket goes through `costOf` with the key it was tallied under.
322
+ */
323
+ export function costOfRequest(t, model, day) {
324
+ return costOf(t, priceKeyOf(model, t), day);
325
+ }
206
326
  /**
207
327
  * `$1,284.40` / `$4.21` / `$0.0031` / `$0`.
208
328
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../src/pricing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { BlockFacts } from "../block.js";
2
+ import type { SessionInfo } from "../wire/session.js";
3
+ import type { LaneSessionState } from "./queuelane.js";
4
+ /** The `SessionInfo` fields the lane reads — a `SessionInfo`, or anything shaped like its slice. */
5
+ export type LaneSource = BlockFacts & Pick<SessionInfo, "turnActive" | "awaitingInput" | "prompt">;
6
+ export interface LaneStateOpts {
7
+ /**
8
+ * Does delivery answer this session's backend's folder-trust box itself? `false` makes a trust
9
+ * box a wall; `true` or absent leaves it auto-accepted (today's behaviour — a phone whose
10
+ * backend list has not arrived says nothing). It only ever matters while a trust box is up.
11
+ */
12
+ autoAcceptsTrust?: boolean;
13
+ }
14
+ export declare function laneStateOf(s: LaneSource, opts?: LaneStateOpts): LaneSessionState;
@@ -0,0 +1,25 @@
1
+ // The ONE mapping from a session's wire record onto `LaneSessionState`.
2
+ //
3
+ // It was written twice — the phone's `laneStateOf` and an object literal in the host's
4
+ // `intentDeps.sessions` — each warning that handing `sessionWall` a raw `SessionInfo`
5
+ // "type-checks and quietly answers not busy". Every field is optional there and ABSENT reads as
6
+ // free, so a field one side forgot was a prompt typed into a question box (62fbb382 trust,
7
+ // 0b84920e auth/net, 181980cb). Both sides now call this; a `LaneSessionState` object literal
8
+ // anywhere else is refused by `tools/lanestate.test.mjs`.
9
+ //
10
+ // What only ONE side knows stays with that side: the host layers its unhooked-session silence
11
+ // guess over `turnActive` and its own serial facts (`automatic`, `asking`, `netStalled`, name)
12
+ // on top of this result; the phone and the host each decide `autoAcceptsTrust` from their own
13
+ // backend knowledge (`BackendInfo.caps` / the descriptor) and say it in `opts`.
14
+ import { blockWallOf } from "../block.js";
15
+ export function laneStateOf(s, opts = {}) {
16
+ return {
17
+ turnActive: s.turnActive, limitBlocked: s.limit?.blocked, promptKind: s.prompt?.kind,
18
+ awaitingInput: s.awaitingInput,
19
+ // Signed out, or the host's net retry holds it — `blockWallOf`, never `blockOf`'s kind: a
20
+ // net give-up with nothing more scheduled and first-launch setup alone are badges, not walls.
21
+ block: blockWallOf(s),
22
+ ...(s.prompt?.kind === "trust" && opts.autoAcceptsTrust === false ? { trustAutoAccepted: false } : {}),
23
+ };
24
+ }
25
+ //# sourceMappingURL=queuelanestate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queuelanestate.js","sourceRoot":"","sources":["../../src/queue/queuelanestate.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,uFAAuF;AACvF,sFAAsF;AACtF,gGAAgG;AAChG,2FAA2F;AAC3F,8FAA8F;AAC9F,0DAA0D;AAC1D,EAAE;AACF,8FAA8F;AAC9F,+FAA+F;AAC/F,8FAA8F;AAC9F,gFAAgF;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiB1C,MAAM,UAAU,WAAW,CAAC,CAAa,EAAE,OAAsB,EAAE;IACjE,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI;QACpF,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,0FAA0F;QAC1F,8FAA8F;QAC9F,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QACrB,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvG,CAAC;AACJ,CAAC"}
@@ -112,6 +112,10 @@ export type SendBlockReason =
112
112
  /** The session this lane names no longer exists. Terminal: nothing but a
113
113
  * re-aim (or a rewrite) will ever get this delivered. */
114
114
  | "sessionGone"
115
+ /** The text names an inbox file whose upload FAILED, so the path will never
116
+ * resolve. Held, not sent: retrying that upload (or re-attaching the
117
+ * picture and rewriting the row) is what lets it go. */
118
+ | "uploadFailed"
115
119
  /** The user's own switches (auto-send off / reconnect hold). Not decided here
116
120
  * — `sendEligible` answers it, and the caller appends these. */
117
121
  | "gate";
@@ -21,6 +21,10 @@ export function selectSendable(entries, opts) {
21
21
  // Lanes held by an entry that is already on the wire (a `pending` one whose
22
22
  // receipt hasn't landed, or one this pass has just picked).
23
23
  const busy = new Set();
24
+ // Inbox paths whose upload is `failed` — see the `uploadFailed` block below.
25
+ const deadUploads = entries
26
+ .filter((e) => e.mode === "upload" && e.status === "failed" && e.upload)
27
+ .map((e) => e.upload.relPath);
24
28
  for (const e of entries) {
25
29
  if (e.status === "pending" || inflight.has(e.ackId)) {
26
30
  busy.add(e.sessionId);
@@ -41,6 +45,15 @@ export function selectSendable(entries, opts) {
41
45
  block(e, "inflight");
42
46
  continue;
43
47
  } // already out; its lane is marked busy
48
+ // A prompt naming a picture whose upload has FAILED. Sending it hands the
49
+ // agent a path that will never resolve while the phone reports success —
50
+ // and a failed upload no longer holds the lane, so nothing else stops it.
51
+ // It holds its lane in turn: what was queued after it was written after it.
52
+ if (e.mode !== "upload" && deadUploads.length && deadUploads.some((p) => e.text?.includes(p))) {
53
+ busy.add(e.sessionId);
54
+ block(e, "uploadFailed");
55
+ continue;
56
+ }
44
57
  // Parked until the agent finishes this turn. Two consequences while it
45
58
  // waits, both deliberate: the entry HOLDS its lane (anything queued behind
46
59
  // it is meant to arrive after it, not overtake it), and it is exempt from
@@ -117,6 +130,14 @@ export function selectSendable(entries, opts) {
117
130
  const tryingFor = e.firstTryAt == null ? Infinity : opts.now - e.firstTryAt;
118
131
  if ((e.attempts ?? 0) >= opts.maxAttempts && tryingFor >= (opts.minTryMs ?? 0)) {
119
132
  expire.push({ ackId: e.ackId, reason: "delivery kept failing" });
133
+ // It HOLDS its lane on this pass too. An expired entry is not dropped: the
134
+ // caller parks it on a round backoff (`nextRound`), which holds the lane
135
+ // from the next pass on — but on THIS pass it fell through with the lane
136
+ // free, and whatever was queued behind it went out. Behind an upload
137
+ // that is the prompt naming the picture: Send & run typed a path whose
138
+ // bytes were still on their way (2026-11-11, the collage landed 53 s
139
+ // after the agent had been told to read it).
140
+ busy.add(e.sessionId);
120
141
  continue;
121
142
  }
122
143
  // Past the usage ceiling the account is under, and one at a time in this
@@ -1 +1 @@
1
- {"version":3,"file":"queueplan.js","sourceRoot":"","sources":["../../src/queue/queueplan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queueplan.js","sourceRoot":"","sources":["../../src/queue/queueplan.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export function blockedReasonText(r) {
13
13
  // two chances for one of them to keep saying the old thing.
14
14
  case "sessionBudget": return "held — this session is over its own budget; raise or clear it to send";
15
15
  case "sessionGone": return "that session is gone — aim it at another session or at the repo's backlog";
16
+ case "uploadFailed": return "the picture it names never uploaded — retry that upload, or re-attach it and rewrite this message";
16
17
  case "gate": return "queued — auto-send is off, tap Send now";
17
18
  case "backoff": return "a send just failed — retrying in a moment";
18
19
  case "held": return "held until the agent finishes this turn";
@@ -45,7 +46,7 @@ export function queueIdleReason(blocked, opts) {
45
46
  // so when it is true it is the answer for every row at once.
46
47
  // `sessionGone` sits above the three self-resolving waits: it is the only
47
48
  // reason here that never clears on its own.
48
- const order = ["gate", "budget", "sessionBudget", "sessionGone", "backoff", "serial", "held", "pendingCreate", "lane", "inflight"];
49
+ const order = ["gate", "budget", "sessionBudget", "sessionGone", "uploadFailed", "backoff", "serial", "held", "pendingCreate", "lane", "inflight"];
49
50
  // `serialText` is the caller's NAMED serial sentence (`serialWaitText`), when
50
51
  // it could say who holds the repo; the generic line otherwise.
51
52
  for (const r of order)
@@ -1 +1 @@
1
- {"version":3,"file":"queuewords.js","sourceRoot":"","sources":["../../src/queue/queuewords.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+FAA+F;AAG/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;kDACkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,CAAkB;IAClD,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,QAAQ,CAAC,CAAC,OAAO,mFAAmF,CAAC;QAC1G,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,4DAA4D;QAC5D,KAAK,eAAe,CAAC,CAAC,OAAO,uEAAuE,CAAC;QACrG,KAAK,aAAa,CAAC,CAAC,OAAO,2EAA2E,CAAC;QACvG,KAAK,MAAM,CAAC,CAAC,OAAO,yCAAyC,CAAC;QAC9D,KAAK,SAAS,CAAC,CAAC,OAAO,2CAA2C,CAAC;QACnE,KAAK,MAAM,CAAC,CAAC,OAAO,yCAAyC,CAAC;QAC9D,KAAK,QAAQ,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACvC,KAAK,eAAe,CAAC,CAAC,OAAO,iCAAiC,CAAC;QAC/D,KAAK,MAAM,CAAC,CAAC,OAAO,qDAAqD,CAAC;QAC1E,KAAK,UAAU,CAAC,CAAC,OAAO,kDAAkD,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgC,EAChC,IAA8D;IAE9D,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,gCAAgC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACjD,yEAAyE;IACzE,+EAA+E;IAC/E,6DAA6D;IAC7D,0EAA0E;IAC1E,4CAA4C;IAC5C,MAAM,KAAK,GAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACtJ,8EAA8E;IAC9E,+DAA+D;IAC/D,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClJ,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"queuewords.js","sourceRoot":"","sources":["../../src/queue/queuewords.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+FAA+F;AAG/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;kDACkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,CAAkB;IAClD,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,QAAQ,CAAC,CAAC,OAAO,mFAAmF,CAAC;QAC1G,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,4DAA4D;QAC5D,KAAK,eAAe,CAAC,CAAC,OAAO,uEAAuE,CAAC;QACrG,KAAK,aAAa,CAAC,CAAC,OAAO,2EAA2E,CAAC;QACvG,KAAK,cAAc,CAAC,CAAC,OAAO,mGAAmG,CAAC;QAChI,KAAK,MAAM,CAAC,CAAC,OAAO,yCAAyC,CAAC;QAC9D,KAAK,SAAS,CAAC,CAAC,OAAO,2CAA2C,CAAC;QACnE,KAAK,MAAM,CAAC,CAAC,OAAO,yCAAyC,CAAC;QAC9D,KAAK,QAAQ,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACvC,KAAK,eAAe,CAAC,CAAC,OAAO,iCAAiC,CAAC;QAC/D,KAAK,MAAM,CAAC,CAAC,OAAO,qDAAqD,CAAC;QAC1E,KAAK,UAAU,CAAC,CAAC,OAAO,kDAAkD,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgC,EAChC,IAA8D;IAE9D,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,gCAAgC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACjD,yEAAyE;IACzE,+EAA+E;IAC/E,6DAA6D;IAC7D,0EAA0E;IAC1E,4CAA4C;IAC5C,MAAM,KAAK,GAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACtK,8EAA8E;IAC9E,+DAA+D;IAC/D,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClJ,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -3,6 +3,8 @@ export { RETRY_BACKOFF_MS, RETRY_BACKOFF_MAX_MS, retryDelay, MIN_TRY_MS, RETRY_R
3
3
  export { adoptReferencedUploads, danglingUploadRefs, answerInsertAt, } from "./queue/queueuploads.js";
4
4
  export { laneBusy, sessionWall, } from "./queue/queuelane.js";
5
5
  export type { LaneSessionState, SessionWall, } from "./queue/queuelane.js";
6
+ export { laneStateOf } from "./queue/queuelanestate.js";
7
+ export type { LaneSource, LaneStateOpts } from "./queue/queuelanestate.js";
6
8
  export { selectSendable, } from "./queue/queueplan.js";
7
9
  export type { SelectSendableOpts, SendBlockReason, BlockedEntry, SendPlan, } from "./queue/queueplan.js";
8
10
  export { bindPendingSession, ownedPendingCreates, applyRelease, } from "./queue/queuebind.js";
@@ -36,6 +36,7 @@
36
36
  export { RETRY_BACKOFF_MS, RETRY_BACKOFF_MAX_MS, retryDelay, MIN_TRY_MS, RETRY_ROUND_MS, RETRY_ROUND_MAX_MS, roundDelay, uploadAttemptWasted, } from "./queue/queueretry.js";
37
37
  export { adoptReferencedUploads, danglingUploadRefs, answerInsertAt, } from "./queue/queueuploads.js";
38
38
  export { laneBusy, sessionWall, } from "./queue/queuelane.js";
39
+ export { laneStateOf } from "./queue/queuelanestate.js";
39
40
  export { selectSendable, } from "./queue/queueplan.js";
40
41
  export { bindPendingSession, ownedPendingCreates, applyRelease, } from "./queue/queuebind.js";
41
42
  export { serialGroup, SERIAL_STARTUP_MS, busySerialGroups, sendEligible, serialHolders, serialLead, serialWaitText, SERIAL_WAIT_TEXT, } from "./queue/queueserial.js";
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,6EAA6E;AAC7E,4EAA4E;AAC5E,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,iDAAiD;AACjD,EAAE;AACF,4EAA4E;AAC5E,kDAAkD;AAClD,EAAE;AACF,4CAA4C;AAC5C,2EAA2E;AAC3E,+EAA+E;AAC/E,yEAAyE;AACzE,2EAA2E;AAC3E,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,4CAA4C;AAU5C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,cAAc,GACf,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,GAC1E,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,6EAA6E;AAC7E,4EAA4E;AAC5E,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,iDAAiD;AACjD,EAAE;AACF,4EAA4E;AAC5E,kDAAkD;AAClD,EAAE;AACF,4CAA4C;AAC5C,2EAA2E;AAC3E,+EAA+E;AAC/E,yEAAyE;AACzE,2EAA2E;AAC3E,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,4CAA4C;AAU5C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,cAAc,GACf,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,GAC1E,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type PluginRow, type SkillChange, type SkillRow, type SkillState, type SwitchLevel } from "./wire/skills.js";
2
+ /** Settings files, nearest first: `.local` beats project beats user. */
3
+ export interface SkillLayers<T> {
4
+ local?: T;
5
+ project?: T;
6
+ user?: T;
7
+ }
8
+ export interface SkillLocks<T> {
9
+ policy?: T;
10
+ flag?: T;
11
+ }
12
+ export type ResolvedFrom = SwitchLevel | "default" | "locked";
13
+ export declare function resolveSkillState(id: string, layers: SkillLayers<Record<string, unknown>>, locks?: SkillLocks<Record<string, unknown>>): {
14
+ state: SkillState;
15
+ from: ResolvedFrom;
16
+ };
17
+ export declare function resolvePluginEnabled(id: string, layers: SkillLayers<Record<string, unknown>>, locks?: SkillLocks<Record<string, unknown>>, cliDefault?: boolean): {
18
+ enabled: boolean;
19
+ from: ResolvedFrom;
20
+ };
21
+ /** null = fine, else a sentence. */
22
+ export declare function validateChange(c: SkillChange): string | null;
23
+ export type SettingsWrite = {
24
+ ok: true;
25
+ text: string;
26
+ changed: {
27
+ id: string;
28
+ from: string;
29
+ to: string;
30
+ }[];
31
+ } | {
32
+ ok: false;
33
+ error: string;
34
+ };
35
+ /**
36
+ * Apply `changes` to a settings file's text. Touches only `skillOverrides` and `enabledPlugins`;
37
+ * a new key appends, an existing key keeps its place, `inherit` deletes the key (and the object
38
+ * only if this call emptied it). `text: null` = no file yet. Refuses an unparseable file.
39
+ */
40
+ export declare function withSkillSettings(text: string | null, changes: SkillChange[]): SettingsWrite;
41
+ export declare function lineCost(row: SkillRow, state: SkillState): number | null;
42
+ export interface Savings {
43
+ chars: number;
44
+ tokens: number;
45
+ unmeasured: number;
46
+ }
47
+ /**
48
+ * Chars a change set would remove from the skill listing (negative = adds). Unmeasured rows and
49
+ * `inherit` (whose result depends on the other levels) contribute nothing and are counted.
50
+ */
51
+ export declare function savingsOf(rows: (SkillRow | PluginRow)[], changes: SkillChange[]): Savings;