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.
- package/CHANGELOG.md +1172 -0
- package/DISCLAIMER.md +113 -0
- package/LICENSE +21 -0
- package/NOTICES.md +78 -0
- package/README.md +392 -4
- package/SECURITY.md +388 -0
- package/bin/waterplane.mjs +5 -0
- package/deploy/gh-version +1 -0
- package/deploy/node-version +1 -0
- package/node_modules/@waterplane/shared/dist/agentfiles.d.ts +118 -0
- package/node_modules/@waterplane/shared/dist/agentfiles.js +345 -0
- package/node_modules/@waterplane/shared/dist/agentfiles.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/artifacts.d.ts +213 -0
- package/node_modules/@waterplane/shared/dist/artifacts.js +295 -0
- package/node_modules/@waterplane/shared/dist/artifacts.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/askrules.d.ts +95 -0
- package/node_modules/@waterplane/shared/dist/askrules.js +133 -0
- package/node_modules/@waterplane/shared/dist/askrules.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/assess/sassapply.d.ts +191 -0
- package/node_modules/@waterplane/shared/dist/assess/sassapply.js +152 -0
- package/node_modules/@waterplane/shared/dist/assess/sassapply.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/assess/sassclean.d.ts +21 -0
- package/node_modules/@waterplane/shared/dist/assess/sassclean.js +453 -0
- package/node_modules/@waterplane/shared/dist/assess/sassclean.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/assess/sassio.d.ts +257 -0
- package/node_modules/@waterplane/shared/dist/assess/sassio.js +2 -0
- package/node_modules/@waterplane/shared/dist/assess/sassio.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/assess/sassslot.d.ts +19 -0
- package/node_modules/@waterplane/shared/dist/assess/sassslot.js +136 -0
- package/node_modules/@waterplane/shared/dist/assess/sassslot.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/assess/sassvocab.d.ts +115 -0
- package/node_modules/@waterplane/shared/dist/assess/sassvocab.js +98 -0
- package/node_modules/@waterplane/shared/dist/assess/sassvocab.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/assess/sasswords.d.ts +140 -0
- package/node_modules/@waterplane/shared/dist/assess/sasswords.js +155 -0
- package/node_modules/@waterplane/shared/dist/assess/sasswords.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/assess.d.ts +58 -0
- package/node_modules/@waterplane/shared/dist/assess.js +55 -0
- package/node_modules/@waterplane/shared/dist/assess.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/attach.d.ts +118 -0
- package/node_modules/@waterplane/shared/dist/attach.js +85 -0
- package/node_modules/@waterplane/shared/dist/attach.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/autocompact.d.ts +125 -0
- package/node_modules/@waterplane/shared/dist/autocompact.js +226 -0
- package/node_modules/@waterplane/shared/dist/autocompact.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/backendsources.d.ts +399 -0
- package/node_modules/@waterplane/shared/dist/backendsources.js +3 -0
- package/node_modules/@waterplane/shared/dist/backendsources.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/billing.d.ts +48 -0
- package/node_modules/@waterplane/shared/dist/billing.js +64 -0
- package/node_modules/@waterplane/shared/dist/billing.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/bindconv.d.ts +47 -0
- package/node_modules/@waterplane/shared/dist/bindconv.js +35 -0
- package/node_modules/@waterplane/shared/dist/bindconv.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/bookmark.d.ts +26 -0
- package/node_modules/@waterplane/shared/dist/bookmark.js +40 -0
- package/node_modules/@waterplane/shared/dist/bookmark.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/brand.d.ts +94 -0
- package/node_modules/@waterplane/shared/dist/brand.js +88 -0
- package/node_modules/@waterplane/shared/dist/brand.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/brandmigrate.d.ts +30 -0
- package/node_modules/@waterplane/shared/dist/brandmigrate.js +67 -0
- package/node_modules/@waterplane/shared/dist/brandmigrate.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/budget.d.ts +247 -0
- package/node_modules/@waterplane/shared/dist/budget.js +295 -0
- package/node_modules/@waterplane/shared/dist/budget.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/buildparams.d.ts +146 -0
- package/node_modules/@waterplane/shared/dist/buildparams.js +260 -0
- package/node_modules/@waterplane/shared/dist/buildparams.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/buildscan.d.ts +99 -0
- package/node_modules/@waterplane/shared/dist/buildscan.js +334 -0
- package/node_modules/@waterplane/shared/dist/buildscan.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/burn.d.ts +137 -0
- package/node_modules/@waterplane/shared/dist/burn.js +176 -0
- package/node_modules/@waterplane/shared/dist/burn.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/chord.d.ts +39 -0
- package/node_modules/@waterplane/shared/dist/chord.js +102 -0
- package/node_modules/@waterplane/shared/dist/chord.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/claudeconfig.d.ts +18 -0
- package/node_modules/@waterplane/shared/dist/claudeconfig.js +44 -0
- package/node_modules/@waterplane/shared/dist/claudeconfig.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/claudeversion.d.ts +17 -0
- package/node_modules/@waterplane/shared/dist/claudeversion.js +31 -0
- package/node_modules/@waterplane/shared/dist/claudeversion.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clientframe.d.ts +12 -0
- package/node_modules/@waterplane/shared/dist/clientframe.js +15 -0
- package/node_modules/@waterplane/shared/dist/clientframe.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthcatalog.d.ts +52 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthcatalog.js +137 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthcatalog.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.d.ts +58 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.js +189 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthfixture.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthrecord.d.ts +254 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthrecord.js +367 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthrecord.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthrollup.d.ts +36 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthrollup.js +123 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healthrollup.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healththresholds.d.ts +101 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healththresholds.js +103 -0
- package/node_modules/@waterplane/shared/dist/clihealth/healththresholds.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clihealth.d.ts +64 -0
- package/node_modules/@waterplane/shared/dist/clihealth.js +69 -0
- package/node_modules/@waterplane/shared/dist/clihealth.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/clirestart.d.ts +66 -0
- package/node_modules/@waterplane/shared/dist/clirestart.js +82 -0
- package/node_modules/@waterplane/shared/dist/clirestart.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/closed.d.ts +41 -0
- package/node_modules/@waterplane/shared/dist/closed.js +102 -0
- package/node_modules/@waterplane/shared/dist/closed.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/collage.d.ts +132 -0
- package/node_modules/@waterplane/shared/dist/collage.js +198 -0
- package/node_modules/@waterplane/shared/dist/collage.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/contextweight.d.ts +169 -0
- package/node_modules/@waterplane/shared/dist/contextweight.js +247 -0
- package/node_modules/@waterplane/shared/dist/contextweight.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/costwindow.d.ts +216 -0
- package/node_modules/@waterplane/shared/dist/costwindow.js +430 -0
- package/node_modules/@waterplane/shared/dist/costwindow.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/ctxwindow.d.ts +92 -0
- package/node_modules/@waterplane/shared/dist/ctxwindow.js +107 -0
- package/node_modules/@waterplane/shared/dist/ctxwindow.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/deskstorage.d.ts +170 -0
- package/node_modules/@waterplane/shared/dist/deskstorage.js +140 -0
- package/node_modules/@waterplane/shared/dist/deskstorage.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/devices.d.ts +52 -0
- package/node_modules/@waterplane/shared/dist/devices.js +53 -0
- package/node_modules/@waterplane/shared/dist/devices.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/dictate.d.ts +178 -0
- package/node_modules/@waterplane/shared/dist/dictate.js +345 -0
- package/node_modules/@waterplane/shared/dist/dictate.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/dictateterms.d.ts +91 -0
- package/node_modules/@waterplane/shared/dist/dictateterms.js +180 -0
- package/node_modules/@waterplane/shared/dist/dictateterms.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/envresolve.d.ts +30 -0
- package/node_modules/@waterplane/shared/dist/envresolve.js +76 -0
- package/node_modules/@waterplane/shared/dist/envresolve.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/fanoutruns.d.ts +25 -0
- package/node_modules/@waterplane/shared/dist/fanoutruns.js +88 -0
- package/node_modules/@waterplane/shared/dist/fanoutruns.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/followup.d.ts +38 -0
- package/node_modules/@waterplane/shared/dist/followup.js +68 -0
- package/node_modules/@waterplane/shared/dist/followup.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/gallery.d.ts +83 -0
- package/node_modules/@waterplane/shared/dist/gallery.js +94 -0
- package/node_modules/@waterplane/shared/dist/gallery.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/halt.d.ts +46 -0
- package/node_modules/@waterplane/shared/dist/halt.js +34 -0
- package/node_modules/@waterplane/shared/dist/halt.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex.d.ts +485 -0
- package/node_modules/@waterplane/shared/dist/healthindex.js +677 -0
- package/node_modules/@waterplane/shared/dist/healthindex.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindexresponse.d.ts +36 -0
- package/node_modules/@waterplane/shared/dist/healthindexresponse.js +84 -0
- package/node_modules/@waterplane/shared/dist/healthindexresponse.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthspend.d.ts +23 -0
- package/node_modules/@waterplane/shared/dist/healthspend.js +41 -0
- package/node_modules/@waterplane/shared/dist/healthspend.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/hints.d.ts +77 -0
- package/node_modules/@waterplane/shared/dist/hints.js +607 -0
- package/node_modules/@waterplane/shared/dist/hints.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/hosts.d.ts +160 -0
- package/node_modules/@waterplane/shared/dist/hosts.js +316 -0
- package/node_modules/@waterplane/shared/dist/hosts.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/hosturl.d.ts +73 -0
- package/node_modules/@waterplane/shared/dist/hosturl.js +129 -0
- package/node_modules/@waterplane/shared/dist/hosturl.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/index.d.ts +283 -0
- package/node_modules/@waterplane/shared/dist/index.js +305 -0
- package/node_modules/@waterplane/shared/dist/index.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/installlog.d.ts +137 -0
- package/node_modules/@waterplane/shared/dist/installlog.js +367 -0
- package/node_modules/@waterplane/shared/dist/installlog.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/budgetpass.d.ts +103 -0
- package/node_modules/@waterplane/shared/dist/intent/budgetpass.js +185 -0
- package/node_modules/@waterplane/shared/dist/intent/budgetpass.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/clean.d.ts +30 -0
- package/node_modules/@waterplane/shared/dist/intent/clean.js +492 -0
- package/node_modules/@waterplane/shared/dist/intent/clean.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/facts.d.ts +320 -0
- package/node_modules/@waterplane/shared/dist/intent/facts.js +52 -0
- package/node_modules/@waterplane/shared/dist/intent/facts.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/kind.d.ts +194 -0
- package/node_modules/@waterplane/shared/dist/intent/kind.js +230 -0
- package/node_modules/@waterplane/shared/dist/intent/kind.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/row.d.ts +433 -0
- package/node_modules/@waterplane/shared/dist/intent/row.js +75 -0
- package/node_modules/@waterplane/shared/dist/intent/row.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/slot.d.ts +137 -0
- package/node_modules/@waterplane/shared/dist/intent/slot.js +238 -0
- package/node_modules/@waterplane/shared/dist/intent/slot.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/target.d.ts +62 -0
- package/node_modules/@waterplane/shared/dist/intent/target.js +177 -0
- package/node_modules/@waterplane/shared/dist/intent/target.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/types.d.ts +455 -0
- package/node_modules/@waterplane/shared/dist/intent/types.js +27 -0
- package/node_modules/@waterplane/shared/dist/intent/types.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/verdict.d.ts +50 -0
- package/node_modules/@waterplane/shared/dist/intent/verdict.js +431 -0
- package/node_modules/@waterplane/shared/dist/intent/verdict.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent/words.d.ts +236 -0
- package/node_modules/@waterplane/shared/dist/intent/words.js +329 -0
- package/node_modules/@waterplane/shared/dist/intent/words.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/intent.d.ts +69 -0
- package/node_modules/@waterplane/shared/dist/intent.js +65 -0
- package/node_modules/@waterplane/shared/dist/intent.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/itempaths.d.ts +35 -0
- package/node_modules/@waterplane/shared/dist/itempaths.js +55 -0
- package/node_modules/@waterplane/shared/dist/itempaths.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/keyhint.d.ts +32 -0
- package/node_modules/@waterplane/shared/dist/keyhint.js +53 -0
- package/node_modules/@waterplane/shared/dist/keyhint.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/lanroute.d.ts +86 -0
- package/node_modules/@waterplane/shared/dist/lanroute.js +84 -0
- package/node_modules/@waterplane/shared/dist/lanroute.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/launch.d.ts +110 -0
- package/node_modules/@waterplane/shared/dist/launch.js +102 -0
- package/node_modules/@waterplane/shared/dist/launch.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/launchmodes.d.ts +22 -0
- package/node_modules/@waterplane/shared/dist/launchmodes.js +38 -0
- package/node_modules/@waterplane/shared/dist/launchmodes.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/localrt.d.ts +53 -0
- package/node_modules/@waterplane/shared/dist/localrt.js +54 -0
- package/node_modules/@waterplane/shared/dist/localrt.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/localusage.d.ts +35 -0
- package/node_modules/@waterplane/shared/dist/localusage.js +135 -0
- package/node_modules/@waterplane/shared/dist/localusage.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/naming.d.ts +391 -0
- package/node_modules/@waterplane/shared/dist/naming.js +571 -0
- package/node_modules/@waterplane/shared/dist/naming.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/netfuse.d.ts +60 -0
- package/node_modules/@waterplane/shared/dist/netfuse.js +99 -0
- package/node_modules/@waterplane/shared/dist/netfuse.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/netstall.d.ts +163 -0
- package/node_modules/@waterplane/shared/dist/netstall.js +241 -0
- package/node_modules/@waterplane/shared/dist/netstall.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/nodemin.d.ts +18 -0
- package/node_modules/@waterplane/shared/dist/nodemin.js +35 -0
- package/node_modules/@waterplane/shared/dist/nodemin.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/optins.d.ts +122 -0
- package/node_modules/@waterplane/shared/dist/optins.js +252 -0
- package/node_modules/@waterplane/shared/dist/optins.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/pad.d.ts +263 -0
- package/node_modules/@waterplane/shared/dist/pad.js +373 -0
- package/node_modules/@waterplane/shared/dist/pad.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/pairing.d.ts +120 -0
- package/node_modules/@waterplane/shared/dist/pairing.js +130 -0
- package/node_modules/@waterplane/shared/dist/pairing.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/passive.d.ts +58 -0
- package/node_modules/@waterplane/shared/dist/passive.js +36 -0
- package/node_modules/@waterplane/shared/dist/passive.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/peer.d.ts +311 -0
- package/node_modules/@waterplane/shared/dist/peer.js +390 -0
- package/node_modules/@waterplane/shared/dist/peer.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/period.d.ts +108 -0
- package/node_modules/@waterplane/shared/dist/period.js +263 -0
- package/node_modules/@waterplane/shared/dist/period.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/plugin.d.ts +898 -0
- package/node_modules/@waterplane/shared/dist/plugin.js +196 -0
- package/node_modules/@waterplane/shared/dist/plugin.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/pluginfile.d.ts +25 -0
- package/node_modules/@waterplane/shared/dist/pluginfile.js +8 -0
- package/node_modules/@waterplane/shared/dist/pluginfile.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/pluginlaunch.d.ts +109 -0
- package/node_modules/@waterplane/shared/dist/pluginlaunch.js +3 -0
- package/node_modules/@waterplane/shared/dist/pluginlaunch.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/pluginmaturity.d.ts +26 -0
- package/node_modules/@waterplane/shared/dist/pluginmaturity.js +32 -0
- package/node_modules/@waterplane/shared/dist/pluginmaturity.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/pluginreadings.d.ts +43 -0
- package/node_modules/@waterplane/shared/dist/pluginreadings.js +5 -0
- package/node_modules/@waterplane/shared/dist/pluginreadings.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/pricing.d.ts +249 -0
- package/node_modules/@waterplane/shared/dist/pricing.js +388 -0
- package/node_modules/@waterplane/shared/dist/pricing.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/promptid.d.ts +48 -0
- package/node_modules/@waterplane/shared/dist/promptid.js +116 -0
- package/node_modules/@waterplane/shared/dist/promptid.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/ptysize.d.ts +74 -0
- package/node_modules/@waterplane/shared/dist/ptysize.js +77 -0
- package/node_modules/@waterplane/shared/dist/ptysize.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queuebind.d.ts +40 -0
- package/node_modules/@waterplane/shared/dist/queue/queuebind.js +70 -0
- package/node_modules/@waterplane/shared/dist/queue/queuebind.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queueentry.d.ts +175 -0
- package/node_modules/@waterplane/shared/dist/queue/queueentry.js +4 -0
- package/node_modules/@waterplane/shared/dist/queue/queueentry.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queuelane.d.ts +65 -0
- package/node_modules/@waterplane/shared/dist/queue/queuelane.js +45 -0
- package/node_modules/@waterplane/shared/dist/queue/queuelane.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queueplan.d.ts +180 -0
- package/node_modules/@waterplane/shared/dist/queue/queueplan.js +169 -0
- package/node_modules/@waterplane/shared/dist/queue/queueplan.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queueretarget.d.ts +61 -0
- package/node_modules/@waterplane/shared/dist/queue/queueretarget.js +94 -0
- package/node_modules/@waterplane/shared/dist/queue/queueretarget.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queueretry.d.ts +61 -0
- package/node_modules/@waterplane/shared/dist/queue/queueretry.js +66 -0
- package/node_modules/@waterplane/shared/dist/queue/queueretry.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queueserial.d.ts +154 -0
- package/node_modules/@waterplane/shared/dist/queue/queueserial.js +169 -0
- package/node_modules/@waterplane/shared/dist/queue/queueserial.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queueuploads.d.ts +65 -0
- package/node_modules/@waterplane/shared/dist/queue/queueuploads.js +79 -0
- package/node_modules/@waterplane/shared/dist/queue/queueuploads.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue/queuewords.d.ts +22 -0
- package/node_modules/@waterplane/shared/dist/queue/queuewords.js +55 -0
- package/node_modules/@waterplane/shared/dist/queue/queuewords.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/queue.d.ts +13 -0
- package/node_modules/@waterplane/shared/dist/queue.js +44 -0
- package/node_modules/@waterplane/shared/dist/queue.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/repocolor.d.ts +159 -0
- package/node_modules/@waterplane/shared/dist/repocolor.js +261 -0
- package/node_modules/@waterplane/shared/dist/repocolor.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/repohealth.d.ts +640 -0
- package/node_modules/@waterplane/shared/dist/repohealth.js +117 -0
- package/node_modules/@waterplane/shared/dist/repohealth.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/repohealthread.d.ts +156 -0
- package/node_modules/@waterplane/shared/dist/repohealthread.js +680 -0
- package/node_modules/@waterplane/shared/dist/repohealthread.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/requirements.d.ts +81 -0
- package/node_modules/@waterplane/shared/dist/requirements.js +191 -0
- package/node_modules/@waterplane/shared/dist/requirements.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/rootchoice.d.ts +52 -0
- package/node_modules/@waterplane/shared/dist/rootchoice.js +18 -0
- package/node_modules/@waterplane/shared/dist/rootchoice.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedaction.d.ts +106 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedaction.js +14 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedaction.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedclean.d.ts +6 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedclean.js +180 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedclean.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedfire.d.ts +76 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedfire.js +122 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedfire.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedhorizon.d.ts +78 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedhorizon.js +98 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedhorizon.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedrule.d.ts +219 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedrule.js +162 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedrule.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedtext.d.ts +37 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedtext.js +119 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedtext.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedwhen.d.ts +54 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedwhen.js +70 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedwhen.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedzone.d.ts +76 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedzone.js +159 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedzone.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/schedule.d.ts +44 -0
- package/node_modules/@waterplane/shared/dist/schedule.js +43 -0
- package/node_modules/@waterplane/shared/dist/schedule.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/screenlog.d.ts +65 -0
- package/node_modules/@waterplane/shared/dist/screenlog.js +169 -0
- package/node_modules/@waterplane/shared/dist/screenlog.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sendstamp.d.ts +85 -0
- package/node_modules/@waterplane/shared/dist/sendstamp.js +96 -0
- package/node_modules/@waterplane/shared/dist/sendstamp.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessionbudget.d.ts +162 -0
- package/node_modules/@waterplane/shared/dist/sessionbudget.js +213 -0
- package/node_modules/@waterplane/shared/dist/sessionbudget.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costcold.d.ts +99 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costcold.js +94 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costcold.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costcompact.d.ts +125 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costcompact.js +184 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costcompact.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costofseries.d.ts +21 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costofseries.js +31 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costofseries.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costreading.d.ts +174 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costreading.js +302 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costreading.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costtypes.d.ts +209 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costtypes.js +128 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costtypes.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costwords.d.ts +169 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costwords.js +262 -0
- package/node_modules/@waterplane/shared/dist/sessioncost/costwords.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sessioncost.d.ts +52 -0
- package/node_modules/@waterplane/shared/dist/sessioncost.js +51 -0
- package/node_modules/@waterplane/shared/dist/sessioncost.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/settings.d.ts +136 -0
- package/node_modules/@waterplane/shared/dist/settings.js +303 -0
- package/node_modules/@waterplane/shared/dist/settings.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/shells.d.ts +140 -0
- package/node_modules/@waterplane/shared/dist/shells.js +257 -0
- package/node_modules/@waterplane/shared/dist/shells.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/slash.d.ts +47 -0
- package/node_modules/@waterplane/shared/dist/slash.js +166 -0
- package/node_modules/@waterplane/shared/dist/slash.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sourceshape.d.ts +27 -0
- package/node_modules/@waterplane/shared/dist/sourceshape.js +141 -0
- package/node_modules/@waterplane/shared/dist/sourceshape.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/spendwarn.d.ts +37 -0
- package/node_modules/@waterplane/shared/dist/spendwarn.js +79 -0
- package/node_modules/@waterplane/shared/dist/spendwarn.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/statedir.d.ts +11 -0
- package/node_modules/@waterplane/shared/dist/statedir.js +34 -0
- package/node_modules/@waterplane/shared/dist/statedir.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/stream.d.ts +135 -0
- package/node_modules/@waterplane/shared/dist/stream.js +117 -0
- package/node_modules/@waterplane/shared/dist/stream.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sweep.d.ts +156 -0
- package/node_modules/@waterplane/shared/dist/sweep.js +193 -0
- package/node_modules/@waterplane/shared/dist/sweep.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/sweepfamilies.d.ts +56 -0
- package/node_modules/@waterplane/shared/dist/sweepfamilies.js +140 -0
- package/node_modules/@waterplane/shared/dist/sweepfamilies.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/termpalette.d.ts +17 -0
- package/node_modules/@waterplane/shared/dist/termpalette.js +5 -0
- package/node_modules/@waterplane/shared/dist/termpalette.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/themeoverlay.d.ts +111 -0
- package/node_modules/@waterplane/shared/dist/themeoverlay.js +328 -0
- package/node_modules/@waterplane/shared/dist/themeoverlay.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/tokens.d.ts +198 -0
- package/node_modules/@waterplane/shared/dist/tokens.js +320 -0
- package/node_modules/@waterplane/shared/dist/tokens.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/transcriptfold.d.ts +50 -0
- package/node_modules/@waterplane/shared/dist/transcriptfold.js +87 -0
- package/node_modules/@waterplane/shared/dist/transcriptfold.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/urls.d.ts +53 -0
- package/node_modules/@waterplane/shared/dist/urls.js +150 -0
- package/node_modules/@waterplane/shared/dist/urls.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/usagesources.d.ts +88 -0
- package/node_modules/@waterplane/shared/dist/usagesources.js +198 -0
- package/node_modules/@waterplane/shared/dist/usagesources.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/windowadvice.d.ts +7 -0
- package/node_modules/@waterplane/shared/dist/windowadvice.js +50 -0
- package/node_modules/@waterplane/shared/dist/windowadvice.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/backend.d.ts +223 -0
- package/node_modules/@waterplane/shared/dist/wire/backend.js +18 -0
- package/node_modules/@waterplane/shared/dist/wire/backend.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/backendtokens.d.ts +99 -0
- package/node_modules/@waterplane/shared/dist/wire/backendtokens.js +11 -0
- package/node_modules/@waterplane/shared/dist/wire/backendtokens.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/capture.d.ts +380 -0
- package/node_modules/@waterplane/shared/dist/wire/capture.js +46 -0
- package/node_modules/@waterplane/shared/dist/wire/capture.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/costwindow.d.ts +143 -0
- package/node_modules/@waterplane/shared/dist/wire/costwindow.js +16 -0
- package/node_modules/@waterplane/shared/dist/wire/costwindow.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/install.d.ts +172 -0
- package/node_modules/@waterplane/shared/dist/wire/install.js +30 -0
- package/node_modules/@waterplane/shared/dist/wire/install.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/intent.d.ts +187 -0
- package/node_modules/@waterplane/shared/dist/wire/intent.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/intent.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/localrt.d.ts +78 -0
- package/node_modules/@waterplane/shared/dist/wire/localrt.js +21 -0
- package/node_modules/@waterplane/shared/dist/wire/localrt.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/localusage.d.ts +121 -0
- package/node_modules/@waterplane/shared/dist/wire/localusage.js +23 -0
- package/node_modules/@waterplane/shared/dist/wire/localusage.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientbacklog.d.ts +177 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientbacklog.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientbacklog.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clienthost.d.ts +344 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clienthost.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clienthost.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientsession.d.ts +307 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientsession.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientsession.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientupdates.d.ts +18 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientupdates.js +5 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientupdates.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientwork.d.ts +478 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientwork.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clientwork.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hostcore.d.ts +488 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hostcore.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hostcore.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hosttools.d.ts +338 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hosttools.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hosttools.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hostupdates.d.ts +16 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hostupdates.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hostupdates.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/messages.d.ts +25 -0
- package/node_modules/@waterplane/shared/dist/wire/messages.js +18 -0
- package/node_modules/@waterplane/shared/dist/wire/messages.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/notify.d.ts +145 -0
- package/node_modules/@waterplane/shared/dist/wire/notify.js +96 -0
- package/node_modules/@waterplane/shared/dist/wire/notify.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/notifylink.d.ts +36 -0
- package/node_modules/@waterplane/shared/dist/wire/notifylink.js +44 -0
- package/node_modules/@waterplane/shared/dist/wire/notifylink.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/onboard.d.ts +121 -0
- package/node_modules/@waterplane/shared/dist/wire/onboard.js +11 -0
- package/node_modules/@waterplane/shared/dist/wire/onboard.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/repo.d.ts +456 -0
- package/node_modules/@waterplane/shared/dist/wire/repo.js +30 -0
- package/node_modules/@waterplane/shared/dist/wire/repo.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/sent.d.ts +127 -0
- package/node_modules/@waterplane/shared/dist/wire/sent.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/sent.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session/archive.d.ts +286 -0
- package/node_modules/@waterplane/shared/dist/wire/session/archive.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/session/archive.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session/context.d.ts +298 -0
- package/node_modules/@waterplane/shared/dist/wire/session/context.js +6 -0
- package/node_modules/@waterplane/shared/dist/wire/session/context.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session/contextspark.d.ts +402 -0
- package/node_modules/@waterplane/shared/dist/wire/session/contextspark.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/session/contextspark.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session/delivery.d.ts +114 -0
- package/node_modules/@waterplane/shared/dist/wire/session/delivery.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/session/delivery.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session/info.d.ts +427 -0
- package/node_modules/@waterplane/shared/dist/wire/session/info.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/session/info.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session/launch.d.ts +332 -0
- package/node_modules/@waterplane/shared/dist/wire/session/launch.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/session/launch.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session/promptbox.d.ts +181 -0
- package/node_modules/@waterplane/shared/dist/wire/session/promptbox.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/session/promptbox.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/session.d.ts +16 -0
- package/node_modules/@waterplane/shared/dist/wire/session.js +10 -0
- package/node_modules/@waterplane/shared/dist/wire/session.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/slash.d.ts +31 -0
- package/node_modules/@waterplane/shared/dist/wire/slash.js +9 -0
- package/node_modules/@waterplane/shared/dist/wire/slash.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/sysstat.d.ts +226 -0
- package/node_modules/@waterplane/shared/dist/wire/sysstat.js +47 -0
- package/node_modules/@waterplane/shared/dist/wire/sysstat.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/telemetry.d.ts +645 -0
- package/node_modules/@waterplane/shared/dist/wire/telemetry.js +3 -0
- package/node_modules/@waterplane/shared/dist/wire/telemetry.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/transcript.d.ts +327 -0
- package/node_modules/@waterplane/shared/dist/wire/transcript.js +60 -0
- package/node_modules/@waterplane/shared/dist/wire/transcript.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/updates.d.ts +130 -0
- package/node_modules/@waterplane/shared/dist/wire/updates.js +52 -0
- package/node_modules/@waterplane/shared/dist/wire/updates.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/work.d.ts +699 -0
- package/node_modules/@waterplane/shared/dist/wire/work.js +22 -0
- package/node_modules/@waterplane/shared/dist/wire/work.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/working.d.ts +70 -0
- package/node_modules/@waterplane/shared/dist/working.js +208 -0
- package/node_modules/@waterplane/shared/dist/working.js.map +1 -0
- package/node_modules/@waterplane/shared/package.json +17 -0
- package/npm-shrinkwrap.json +250 -0
- package/package.json +33 -6
- package/packages/extensions/copilot-usage/waterplane-plugin.json +9 -0
- package/packages/extensions/ocr/assets/deu.traineddata.gz +0 -0
- package/packages/extensions/ocr/assets/eng.traineddata.gz +0 -0
- package/packages/extensions/ocr/assets/manifest.json +44 -0
- package/packages/extensions/ocr/assets/tesseract-core-lstm.wasm.js +191 -0
- package/packages/extensions/ocr/assets/tesseract-core-simd-lstm.wasm.js +191 -0
- package/packages/extensions/ocr/assets/worker.min.js +3 -0
- package/packages/extensions/ocr/waterplane-plugin.json +11 -0
- package/packages/extensions/requirements/waterplane-plugin.json +9 -0
- package/packages/extensions/token-stats/waterplane-plugin.json +8 -0
- package/packages/host/dist/acks.d.ts +119 -0
- package/packages/host/dist/acks.js +268 -0
- package/packages/host/dist/acks.js.map +1 -0
- package/packages/host/dist/agentfollowup.d.ts +45 -0
- package/packages/host/dist/agentfollowup.js +77 -0
- package/packages/host/dist/agentfollowup.js.map +1 -0
- package/packages/host/dist/agentintents.d.ts +278 -0
- package/packages/host/dist/agentintents.js +509 -0
- package/packages/host/dist/agentintents.js.map +1 -0
- package/packages/host/dist/agents.d.ts +112 -0
- package/packages/host/dist/agents.js +517 -0
- package/packages/host/dist/agents.js.map +1 -0
- package/packages/host/dist/agentwatch.d.ts +42 -0
- package/packages/host/dist/agentwatch.js +35 -0
- package/packages/host/dist/agentwatch.js.map +1 -0
- package/packages/host/dist/androidenv.d.ts +80 -0
- package/packages/host/dist/androidenv.js +344 -0
- package/packages/host/dist/androidenv.js.map +1 -0
- package/packages/host/dist/answergate.d.ts +191 -0
- package/packages/host/dist/answergate.js +321 -0
- package/packages/host/dist/answergate.js.map +1 -0
- package/packages/host/dist/api.d.ts +19 -0
- package/packages/host/dist/api.js +62 -0
- package/packages/host/dist/api.js.map +1 -0
- package/packages/host/dist/apkcheck.d.ts +36 -0
- package/packages/host/dist/apkcheck.js +290 -0
- package/packages/host/dist/apkcheck.js.map +1 -0
- package/packages/host/dist/appready.d.ts +8 -0
- package/packages/host/dist/appready.js +16 -0
- package/packages/host/dist/appready.js.map +1 -0
- package/packages/host/dist/archive.d.ts +95 -0
- package/packages/host/dist/archive.js +318 -0
- package/packages/host/dist/archive.js.map +1 -0
- package/packages/host/dist/artifacts.d.ts +38 -0
- package/packages/host/dist/artifacts.js +315 -0
- package/packages/host/dist/artifacts.js.map +1 -0
- package/packages/host/dist/askbox.d.ts +116 -0
- package/packages/host/dist/askbox.js +341 -0
- package/packages/host/dist/askbox.js.map +1 -0
- package/packages/host/dist/askrules.d.ts +38 -0
- package/packages/host/dist/askrules.js +139 -0
- package/packages/host/dist/askrules.js.map +1 -0
- package/packages/host/dist/assess/hassapply.d.ts +127 -0
- package/packages/host/dist/assess/hassapply.js +482 -0
- package/packages/host/dist/assess/hassapply.js.map +1 -0
- package/packages/host/dist/assess/hassexec.d.ts +160 -0
- package/packages/host/dist/assess/hassexec.js +178 -0
- package/packages/host/dist/assess/hassexec.js.map +1 -0
- package/packages/host/dist/assess/hassinput.d.ts +80 -0
- package/packages/host/dist/assess/hassinput.js +264 -0
- package/packages/host/dist/assess/hassinput.js.map +1 -0
- package/packages/host/dist/assess/hassknobs.d.ts +66 -0
- package/packages/host/dist/assess/hassknobs.js +69 -0
- package/packages/host/dist/assess/hassknobs.js.map +1 -0
- package/packages/host/dist/assess/hassprogress.d.ts +30 -0
- package/packages/host/dist/assess/hassprogress.js +165 -0
- package/packages/host/dist/assess/hassprogress.js.map +1 -0
- package/packages/host/dist/assess/hassrun.d.ts +39 -0
- package/packages/host/dist/assess/hassrun.js +269 -0
- package/packages/host/dist/assess/hassrun.js.map +1 -0
- package/packages/host/dist/assess/hassstore.d.ts +77 -0
- package/packages/host/dist/assess/hassstore.js +187 -0
- package/packages/host/dist/assess/hassstore.js.map +1 -0
- package/packages/host/dist/assess/hassutil.d.ts +28 -0
- package/packages/host/dist/assess/hassutil.js +53 -0
- package/packages/host/dist/assess/hassutil.js.map +1 -0
- package/packages/host/dist/assess.d.ts +60 -0
- package/packages/host/dist/assess.js +58 -0
- package/packages/host/dist/assess.js.map +1 -0
- package/packages/host/dist/auth.d.ts +93 -0
- package/packages/host/dist/auth.js +276 -0
- package/packages/host/dist/auth.js.map +1 -0
- package/packages/host/dist/authroutes.d.ts +36 -0
- package/packages/host/dist/authroutes.js +108 -0
- package/packages/host/dist/authroutes.js.map +1 -0
- package/packages/host/dist/autopull.d.ts +107 -0
- package/packages/host/dist/autopull.js +248 -0
- package/packages/host/dist/autopull.js.map +1 -0
- package/packages/host/dist/backends/claude-endpoint.d.ts +98 -0
- package/packages/host/dist/backends/claude-endpoint.js +347 -0
- package/packages/host/dist/backends/claude-endpoint.js.map +1 -0
- package/packages/host/dist/backends/claude-local.d.ts +51 -0
- package/packages/host/dist/backends/claude-local.js +221 -0
- package/packages/host/dist/backends/claude-local.js.map +1 -0
- package/packages/host/dist/backends/claude-sources.d.ts +53 -0
- package/packages/host/dist/backends/claude-sources.js +68 -0
- package/packages/host/dist/backends/claude-sources.js.map +1 -0
- package/packages/host/dist/backends/claude.d.ts +45 -0
- package/packages/host/dist/backends/claude.js +248 -0
- package/packages/host/dist/backends/claude.js.map +1 -0
- package/packages/host/dist/backends/claudemodels.d.ts +19 -0
- package/packages/host/dist/backends/claudemodels.js +122 -0
- package/packages/host/dist/backends/claudemodels.js.map +1 -0
- package/packages/host/dist/backends/derive.d.ts +81 -0
- package/packages/host/dist/backends/derive.js +198 -0
- package/packages/host/dist/backends/derive.js.map +1 -0
- package/packages/host/dist/backends/index.d.ts +138 -0
- package/packages/host/dist/backends/index.js +328 -0
- package/packages/host/dist/backends/index.js.map +1 -0
- package/packages/host/dist/backends/overhead.d.ts +16 -0
- package/packages/host/dist/backends/overhead.js +124 -0
- package/packages/host/dist/backends/overhead.js.map +1 -0
- package/packages/host/dist/backends/readers.d.ts +57 -0
- package/packages/host/dist/backends/readers.js +74 -0
- package/packages/host/dist/backends/readers.js.map +1 -0
- package/packages/host/dist/backends/registry.d.ts +37 -0
- package/packages/host/dist/backends/registry.js +73 -0
- package/packages/host/dist/backends/registry.js.map +1 -0
- package/packages/host/dist/backends/shell.d.ts +31 -0
- package/packages/host/dist/backends/shell.js +127 -0
- package/packages/host/dist/backends/shell.js.map +1 -0
- package/packages/host/dist/backends/types.d.ts +457 -0
- package/packages/host/dist/backends/types.js +2 -0
- package/packages/host/dist/backends/types.js.map +1 -0
- package/packages/host/dist/backlog/backlogcore.d.ts +36 -0
- package/packages/host/dist/backlog/backlogcore.js +2 -0
- package/packages/host/dist/backlog/backlogcore.js.map +1 -0
- package/packages/host/dist/backlog/backlogedits.d.ts +96 -0
- package/packages/host/dist/backlog/backlogedits.js +229 -0
- package/packages/host/dist/backlog/backlogedits.js.map +1 -0
- package/packages/host/dist/backlog/backlogfollowup.d.ts +7 -0
- package/packages/host/dist/backlog/backlogfollowup.js +71 -0
- package/packages/host/dist/backlog/backlogfollowup.js.map +1 -0
- package/packages/host/dist/backlog/backlogknobs.d.ts +56 -0
- package/packages/host/dist/backlog/backlogknobs.js +62 -0
- package/packages/host/dist/backlog/backlogknobs.js.map +1 -0
- package/packages/host/dist/backlog/backlogsessions.d.ts +217 -0
- package/packages/host/dist/backlog/backlogsessions.js +421 -0
- package/packages/host/dist/backlog/backlogsessions.js.map +1 -0
- package/packages/host/dist/backlog/backlogstore.d.ts +31 -0
- package/packages/host/dist/backlog/backlogstore.js +101 -0
- package/packages/host/dist/backlog/backlogstore.js.map +1 -0
- package/packages/host/dist/backlog/backlogtitles.d.ts +40 -0
- package/packages/host/dist/backlog/backlogtitles.js +50 -0
- package/packages/host/dist/backlog/backlogtitles.js.map +1 -0
- package/packages/host/dist/backlog/backlogwording.d.ts +31 -0
- package/packages/host/dist/backlog/backlogwording.js +42 -0
- package/packages/host/dist/backlog/backlogwording.js.map +1 -0
- package/packages/host/dist/backlog.d.ts +142 -0
- package/packages/host/dist/backlog.js +96 -0
- package/packages/host/dist/backlog.js.map +1 -0
- package/packages/host/dist/billing.d.ts +53 -0
- package/packages/host/dist/billing.js +140 -0
- package/packages/host/dist/billing.js.map +1 -0
- package/packages/host/dist/binguard.d.ts +28 -0
- package/packages/host/dist/binguard.js +88 -0
- package/packages/host/dist/binguard.js.map +1 -0
- package/packages/host/dist/bookmarks.d.ts +24 -0
- package/packages/host/dist/bookmarks.js +118 -0
- package/packages/host/dist/bookmarks.js.map +1 -0
- package/packages/host/dist/branddirs.d.ts +223 -0
- package/packages/host/dist/branddirs.js +828 -0
- package/packages/host/dist/branddirs.js.map +1 -0
- package/packages/host/dist/budget.d.ts +57 -0
- package/packages/host/dist/budget.js +153 -0
- package/packages/host/dist/budget.js.map +1 -0
- package/packages/host/dist/builds.d.ts +178 -0
- package/packages/host/dist/builds.js +645 -0
- package/packages/host/dist/builds.js.map +1 -0
- package/packages/host/dist/buildscan.d.ts +16 -0
- package/packages/host/dist/buildscan.js +177 -0
- package/packages/host/dist/buildscan.js.map +1 -0
- package/packages/host/dist/burnwatch.d.ts +53 -0
- package/packages/host/dist/burnwatch.js +141 -0
- package/packages/host/dist/burnwatch.js.map +1 -0
- package/packages/host/dist/capture/android.d.ts +2 -0
- package/packages/host/dist/capture/android.js +144 -0
- package/packages/host/dist/capture/android.js.map +1 -0
- package/packages/host/dist/capture/captureconfig.d.ts +44 -0
- package/packages/host/dist/capture/captureconfig.js +169 -0
- package/packages/host/dist/capture/captureconfig.js.map +1 -0
- package/packages/host/dist/capture/capturehelpers.d.ts +34 -0
- package/packages/host/dist/capture/capturehelpers.js +156 -0
- package/packages/host/dist/capture/capturehelpers.js.map +1 -0
- package/packages/host/dist/capture/capturekit.d.ts +32 -0
- package/packages/host/dist/capture/capturekit.js +47 -0
- package/packages/host/dist/capture/capturekit.js.map +1 -0
- package/packages/host/dist/capture/capturepass.d.ts +17 -0
- package/packages/host/dist/capture/capturepass.js +262 -0
- package/packages/host/dist/capture/capturepass.js.map +1 -0
- package/packages/host/dist/capture/capturesettle.d.ts +35 -0
- package/packages/host/dist/capture/capturesettle.js +77 -0
- package/packages/host/dist/capture/capturesettle.js.map +1 -0
- package/packages/host/dist/capture/captureverdict.d.ts +132 -0
- package/packages/host/dist/capture/captureverdict.js +107 -0
- package/packages/host/dist/capture/captureverdict.js.map +1 -0
- package/packages/host/dist/capture/garmin.d.ts +2 -0
- package/packages/host/dist/capture/garmin.js +294 -0
- package/packages/host/dist/capture/garmin.js.map +1 -0
- package/packages/host/dist/capture/pixels.d.ts +60 -0
- package/packages/host/dist/capture/pixels.js +199 -0
- package/packages/host/dist/capture/pixels.js.map +1 -0
- package/packages/host/dist/capture/types.d.ts +195 -0
- package/packages/host/dist/capture/types.js +2 -0
- package/packages/host/dist/capture/types.js.map +1 -0
- package/packages/host/dist/capture/web.d.ts +2 -0
- package/packages/host/dist/capture/web.js +290 -0
- package/packages/host/dist/capture/web.js.map +1 -0
- package/packages/host/dist/capture/window.d.ts +2 -0
- package/packages/host/dist/capture/window.js +88 -0
- package/packages/host/dist/capture/window.js.map +1 -0
- package/packages/host/dist/capture.d.ts +116 -0
- package/packages/host/dist/capture.js +295 -0
- package/packages/host/dist/capture.js.map +1 -0
- package/packages/host/dist/claudebin.d.ts +32 -0
- package/packages/host/dist/claudebin.js +113 -0
- package/packages/host/dist/claudebin.js.map +1 -0
- package/packages/host/dist/claudeconfig.d.ts +23 -0
- package/packages/host/dist/claudeconfig.js +118 -0
- package/packages/host/dist/claudeconfig.js.map +1 -0
- package/packages/host/dist/cli/entry.d.ts +1 -0
- package/packages/host/dist/cli/entry.js +11 -0
- package/packages/host/dist/cli/entry.js.map +1 -0
- package/packages/host/dist/cli/index.d.ts +12 -0
- package/packages/host/dist/cli/index.js +122 -0
- package/packages/host/dist/cli/index.js.map +1 -0
- package/packages/host/dist/cli/pair.d.ts +28 -0
- package/packages/host/dist/cli/pair.js +94 -0
- package/packages/host/dist/cli/pair.js.map +1 -0
- package/packages/host/dist/cli/releasesig.d.ts +42 -0
- package/packages/host/dist/cli/releasesig.js +60 -0
- package/packages/host/dist/cli/releasesig.js.map +1 -0
- package/packages/host/dist/cli/selfupdate.d.ts +96 -0
- package/packages/host/dist/cli/selfupdate.js +842 -0
- package/packages/host/dist/cli/selfupdate.js.map +1 -0
- package/packages/host/dist/cli/service.d.ts +100 -0
- package/packages/host/dist/cli/service.js +645 -0
- package/packages/host/dist/cli/service.js.map +1 -0
- package/packages/host/dist/cli/statesnap.d.ts +34 -0
- package/packages/host/dist/cli/statesnap.js +135 -0
- package/packages/host/dist/cli/statesnap.js.map +1 -0
- package/packages/host/dist/cli/windows.d.ts +191 -0
- package/packages/host/dist/cli/windows.js +658 -0
- package/packages/host/dist/cli/windows.js.map +1 -0
- package/packages/host/dist/clifixtures.d.ts +28 -0
- package/packages/host/dist/clifixtures.js +193 -0
- package/packages/host/dist/clifixtures.js.map +1 -0
- package/packages/host/dist/clihealth.d.ts +121 -0
- package/packages/host/dist/clihealth.js +301 -0
- package/packages/host/dist/clihealth.js.map +1 -0
- package/packages/host/dist/clisuggest.d.ts +13 -0
- package/packages/host/dist/clisuggest.js +54 -0
- package/packages/host/dist/clisuggest.js.map +1 -0
- package/packages/host/dist/commitmsg.d.ts +17 -0
- package/packages/host/dist/commitmsg.js +98 -0
- package/packages/host/dist/commitmsg.js.map +1 -0
- package/packages/host/dist/compliance.d.ts +121 -0
- package/packages/host/dist/compliance.js +827 -0
- package/packages/host/dist/compliance.js.map +1 -0
- package/packages/host/dist/composer.d.ts +225 -0
- package/packages/host/dist/composer.js +453 -0
- package/packages/host/dist/composer.js.map +1 -0
- package/packages/host/dist/confirmgate.d.ts +34 -0
- package/packages/host/dist/confirmgate.js +114 -0
- package/packages/host/dist/confirmgate.js.map +1 -0
- package/packages/host/dist/context.d.ts +22 -0
- package/packages/host/dist/context.js +92 -0
- package/packages/host/dist/context.js.map +1 -0
- package/packages/host/dist/contextlimits.d.ts +31 -0
- package/packages/host/dist/contextlimits.js +128 -0
- package/packages/host/dist/contextlimits.js.map +1 -0
- package/packages/host/dist/convfork.d.ts +67 -0
- package/packages/host/dist/convfork.js +372 -0
- package/packages/host/dist/convfork.js.map +1 -0
- package/packages/host/dist/convlog.d.ts +40 -0
- package/packages/host/dist/convlog.js +52 -0
- package/packages/host/dist/convlog.js.map +1 -0
- package/packages/host/dist/costwindow.d.ts +77 -0
- package/packages/host/dist/costwindow.js +333 -0
- package/packages/host/dist/costwindow.js.map +1 -0
- package/packages/host/dist/ctxlog/ctxagents.d.ts +179 -0
- package/packages/host/dist/ctxlog/ctxagents.js +419 -0
- package/packages/host/dist/ctxlog/ctxagents.js.map +1 -0
- package/packages/host/dist/ctxlog/ctxcursor.d.ts +299 -0
- package/packages/host/dist/ctxlog/ctxcursor.js +163 -0
- package/packages/host/dist/ctxlog/ctxcursor.js.map +1 -0
- package/packages/host/dist/ctxlog/ctxproject.d.ts +49 -0
- package/packages/host/dist/ctxlog/ctxproject.js +198 -0
- package/packages/host/dist/ctxlog/ctxproject.js.map +1 -0
- package/packages/host/dist/ctxlog/ctxupdate.d.ts +11 -0
- package/packages/host/dist/ctxlog/ctxupdate.js +338 -0
- package/packages/host/dist/ctxlog/ctxupdate.js.map +1 -0
- package/packages/host/dist/ctxlog.d.ts +56 -0
- package/packages/host/dist/ctxlog.js +57 -0
- package/packages/host/dist/ctxlog.js.map +1 -0
- package/packages/host/dist/ctxwindow.d.ts +17 -0
- package/packages/host/dist/ctxwindow.js +106 -0
- package/packages/host/dist/ctxwindow.js.map +1 -0
- package/packages/host/dist/decisionlog.d.ts +29 -0
- package/packages/host/dist/decisionlog.js +167 -0
- package/packages/host/dist/decisionlog.js.map +1 -0
- package/packages/host/dist/deliver/deliverknobs.d.ts +84 -0
- package/packages/host/dist/deliver/deliverknobs.js +85 -0
- package/packages/host/dist/deliver/deliverknobs.js.map +1 -0
- package/packages/host/dist/deliver/deliverproof.d.ts +25 -0
- package/packages/host/dist/deliver/deliverproof.js +123 -0
- package/packages/host/dist/deliver/deliverproof.js.map +1 -0
- package/packages/host/dist/deliver/deliverreturn.d.ts +12 -0
- package/packages/host/dist/deliver/deliverreturn.js +365 -0
- package/packages/host/dist/deliver/deliverreturn.js.map +1 -0
- package/packages/host/dist/deliver/deliverrun.d.ts +20 -0
- package/packages/host/dist/deliver/deliverrun.js +495 -0
- package/packages/host/dist/deliver/deliverrun.js.map +1 -0
- package/packages/host/dist/deliver/deliverscreen.d.ts +67 -0
- package/packages/host/dist/deliver/deliverscreen.js +428 -0
- package/packages/host/dist/deliver/deliverscreen.js.map +1 -0
- package/packages/host/dist/deliver/delivertypes.d.ts +119 -0
- package/packages/host/dist/deliver/delivertypes.js +2 -0
- package/packages/host/dist/deliver/delivertypes.js.map +1 -0
- package/packages/host/dist/deliver.d.ts +50 -0
- package/packages/host/dist/deliver.js +142 -0
- package/packages/host/dist/deliver.js.map +1 -0
- package/packages/host/dist/deviceledger.d.ts +33 -0
- package/packages/host/dist/deviceledger.js +143 -0
- package/packages/host/dist/deviceledger.js.map +1 -0
- package/packages/host/dist/dictate.d.ts +142 -0
- package/packages/host/dist/dictate.js +419 -0
- package/packages/host/dist/dictate.js.map +1 -0
- package/packages/host/dist/discover.d.ts +20 -0
- package/packages/host/dist/discover.js +162 -0
- package/packages/host/dist/discover.js.map +1 -0
- package/packages/host/dist/diskwatch.d.ts +39 -0
- package/packages/host/dist/diskwatch.js +111 -0
- package/packages/host/dist/diskwatch.js.map +1 -0
- package/packages/host/dist/doctor.d.ts +153 -0
- package/packages/host/dist/doctor.js +748 -0
- package/packages/host/dist/doctor.js.map +1 -0
- package/packages/host/dist/doctorclaude.d.ts +33 -0
- package/packages/host/dist/doctorclaude.js +128 -0
- package/packages/host/dist/doctorclaude.js.map +1 -0
- package/packages/host/dist/doctormac.d.ts +47 -0
- package/packages/host/dist/doctormac.js +81 -0
- package/packages/host/dist/doctormac.js.map +1 -0
- package/packages/host/dist/doctorproc.d.ts +11 -0
- package/packages/host/dist/doctorproc.js +36 -0
- package/packages/host/dist/doctorproc.js.map +1 -0
- package/packages/host/dist/doctorwsl.d.ts +90 -0
- package/packages/host/dist/doctorwsl.js +205 -0
- package/packages/host/dist/doctorwsl.js.map +1 -0
- package/packages/host/dist/echo.d.ts +331 -0
- package/packages/host/dist/echo.js +439 -0
- package/packages/host/dist/echo.js.map +1 -0
- package/packages/host/dist/env.d.ts +16 -0
- package/packages/host/dist/env.js +190 -0
- package/packages/host/dist/env.js.map +1 -0
- package/packages/host/dist/envfiles.d.ts +5 -0
- package/packages/host/dist/envfiles.js +43 -0
- package/packages/host/dist/envfiles.js.map +1 -0
- package/packages/host/dist/extensions/copilot-usage/host/ghquota.d.mts +17 -0
- package/packages/host/dist/extensions/copilot-usage/host/ghquota.mjs +96 -0
- package/packages/host/dist/extensions/copilot-usage/host/ghquota.mjs.map +1 -0
- package/packages/host/dist/extensions/copilot-usage/host/index.d.mts +17 -0
- package/packages/host/dist/extensions/copilot-usage/host/index.mjs +102 -0
- package/packages/host/dist/extensions/copilot-usage/host/index.mjs.map +1 -0
- package/packages/host/dist/extensions/copilot-usage/host/vscodelocal.d.mts +90 -0
- package/packages/host/dist/extensions/copilot-usage/host/vscodelocal.mjs +365 -0
- package/packages/host/dist/extensions/copilot-usage/host/vscodelocal.mjs.map +1 -0
- package/packages/host/dist/extensions/ocr/host/index.d.mts +10 -0
- package/packages/host/dist/extensions/ocr/host/index.mjs +4 -0
- package/packages/host/dist/extensions/ocr/host/index.mjs.map +1 -0
- package/packages/host/dist/extensions/requirements/host/index.d.mts +2 -0
- package/packages/host/dist/extensions/requirements/host/index.mjs +63 -0
- package/packages/host/dist/extensions/requirements/host/index.mjs.map +1 -0
- package/packages/host/dist/extensions/requirements/host/list.d.mts +17 -0
- package/packages/host/dist/extensions/requirements/host/list.mjs +125 -0
- package/packages/host/dist/extensions/requirements/host/list.mjs.map +1 -0
- package/packages/host/dist/extensions/requirements/host/requirements.d.mts +31 -0
- package/packages/host/dist/extensions/requirements/host/requirements.mjs +318 -0
- package/packages/host/dist/extensions/requirements/host/requirements.mjs.map +1 -0
- package/packages/host/dist/extensions/requirements/shared/methods.d.mts +88 -0
- package/packages/host/dist/extensions/requirements/shared/methods.mjs +36 -0
- package/packages/host/dist/extensions/requirements/shared/methods.mjs.map +1 -0
- package/packages/host/dist/fanout.d.ts +89 -0
- package/packages/host/dist/fanout.js +273 -0
- package/packages/host/dist/fanout.js.map +1 -0
- package/packages/host/dist/files.d.ts +211 -0
- package/packages/host/dist/files.js +760 -0
- package/packages/host/dist/files.js.map +1 -0
- package/packages/host/dist/git.d.ts +261 -0
- package/packages/host/dist/git.js +787 -0
- package/packages/host/dist/git.js.map +1 -0
- package/packages/host/dist/gitlog.d.ts +14 -0
- package/packages/host/dist/gitlog.js +93 -0
- package/packages/host/dist/gitlog.js.map +1 -0
- package/packages/host/dist/halt.d.ts +35 -0
- package/packages/host/dist/halt.js +160 -0
- package/packages/host/dist/halt.js.map +1 -0
- package/packages/host/dist/healthwatch.d.ts +90 -0
- package/packages/host/dist/healthwatch.js +334 -0
- package/packages/host/dist/healthwatch.js.map +1 -0
- package/packages/host/dist/host.d.ts +51 -0
- package/packages/host/dist/host.js +153 -0
- package/packages/host/dist/host.js.map +1 -0
- package/packages/host/dist/hoststore.d.ts +24 -0
- package/packages/host/dist/hoststore.js +350 -0
- package/packages/host/dist/hoststore.js.map +1 -0
- package/packages/host/dist/httpio.d.ts +64 -0
- package/packages/host/dist/httpio.js +199 -0
- package/packages/host/dist/httpio.js.map +1 -0
- package/packages/host/dist/installlog.d.ts +25 -0
- package/packages/host/dist/installlog.js +137 -0
- package/packages/host/dist/installlog.js.map +1 -0
- package/packages/host/dist/intents/adapters.d.ts +285 -0
- package/packages/host/dist/intents/adapters.js +690 -0
- package/packages/host/dist/intents/adapters.js.map +1 -0
- package/packages/host/dist/intents/clock.d.ts +105 -0
- package/packages/host/dist/intents/clock.js +190 -0
- package/packages/host/dist/intents/clock.js.map +1 -0
- package/packages/host/dist/intents/contract.d.ts +488 -0
- package/packages/host/dist/intents/contract.js +155 -0
- package/packages/host/dist/intents/contract.js.map +1 -0
- package/packages/host/dist/intents/disk.d.ts +198 -0
- package/packages/host/dist/intents/disk.js +588 -0
- package/packages/host/dist/intents/disk.js.map +1 -0
- package/packages/host/dist/intents/fire.d.ts +112 -0
- package/packages/host/dist/intents/fire.js +545 -0
- package/packages/host/dist/intents/fire.js.map +1 -0
- package/packages/host/dist/intents/ladder.d.ts +7 -0
- package/packages/host/dist/intents/ladder.js +408 -0
- package/packages/host/dist/intents/ladder.js.map +1 -0
- package/packages/host/dist/intents/manager.d.ts +239 -0
- package/packages/host/dist/intents/manager.js +292 -0
- package/packages/host/dist/intents/manager.js.map +1 -0
- package/packages/host/dist/intents/requeue.d.ts +207 -0
- package/packages/host/dist/intents/requeue.js +521 -0
- package/packages/host/dist/intents/requeue.js.map +1 -0
- package/packages/host/dist/intents/watch.d.ts +92 -0
- package/packages/host/dist/intents/watch.js +464 -0
- package/packages/host/dist/intents/watch.js.map +1 -0
- package/packages/host/dist/intents/write.d.ts +238 -0
- package/packages/host/dist/intents/write.js +651 -0
- package/packages/host/dist/intents/write.js.map +1 -0
- package/packages/host/dist/jsonstore.d.ts +50 -0
- package/packages/host/dist/jsonstore.js +158 -0
- package/packages/host/dist/jsonstore.js.map +1 -0
- package/packages/host/dist/keyhints.d.ts +45 -0
- package/packages/host/dist/keyhints.js +117 -0
- package/packages/host/dist/keyhints.js.map +1 -0
- package/packages/host/dist/lanid.d.ts +21 -0
- package/packages/host/dist/lanid.js +78 -0
- package/packages/host/dist/lanid.js.map +1 -0
- package/packages/host/dist/launchfiles.d.ts +64 -0
- package/packages/host/dist/launchfiles.js +212 -0
- package/packages/host/dist/launchfiles.js.map +1 -0
- package/packages/host/dist/limit.d.ts +82 -0
- package/packages/host/dist/limit.js +251 -0
- package/packages/host/dist/limit.js.map +1 -0
- package/packages/host/dist/limitlog.d.ts +51 -0
- package/packages/host/dist/limitlog.js +154 -0
- package/packages/host/dist/limitlog.js.map +1 -0
- package/packages/host/dist/limitretry.d.ts +135 -0
- package/packages/host/dist/limitretry.js +115 -0
- package/packages/host/dist/limitretry.js.map +1 -0
- package/packages/host/dist/livesources.d.ts +38 -0
- package/packages/host/dist/livesources.js +26 -0
- package/packages/host/dist/livesources.js.map +1 -0
- package/packages/host/dist/localledger.d.ts +69 -0
- package/packages/host/dist/localledger.js +214 -0
- package/packages/host/dist/localledger.js.map +1 -0
- package/packages/host/dist/localrt.d.ts +164 -0
- package/packages/host/dist/localrt.js +414 -0
- package/packages/host/dist/localrt.js.map +1 -0
- package/packages/host/dist/localslot.d.ts +152 -0
- package/packages/host/dist/localslot.js +269 -0
- package/packages/host/dist/localslot.js.map +1 -0
- package/packages/host/dist/localusage.d.ts +153 -0
- package/packages/host/dist/localusage.js +710 -0
- package/packages/host/dist/localusage.js.map +1 -0
- package/packages/host/dist/login.d.ts +34 -0
- package/packages/host/dist/login.js +126 -0
- package/packages/host/dist/login.js.map +1 -0
- package/packages/host/dist/main.d.ts +1 -0
- package/packages/host/dist/main.js +694 -0
- package/packages/host/dist/main.js.map +1 -0
- package/packages/host/dist/meter.d.ts +23 -0
- package/packages/host/dist/meter.js +121 -0
- package/packages/host/dist/meter.js.map +1 -0
- package/packages/host/dist/naming.d.ts +257 -0
- package/packages/host/dist/naming.js +387 -0
- package/packages/host/dist/naming.js.map +1 -0
- package/packages/host/dist/net.d.ts +78 -0
- package/packages/host/dist/net.js +267 -0
- package/packages/host/dist/net.js.map +1 -0
- package/packages/host/dist/netstats.d.ts +99 -0
- package/packages/host/dist/netstats.js +223 -0
- package/packages/host/dist/netstats.js.map +1 -0
- package/packages/host/dist/notifyprefs.d.ts +12 -0
- package/packages/host/dist/notifyprefs.js +60 -0
- package/packages/host/dist/notifyprefs.js.map +1 -0
- package/packages/host/dist/ocrlocal.d.ts +46 -0
- package/packages/host/dist/ocrlocal.js +297 -0
- package/packages/host/dist/ocrlocal.js.map +1 -0
- package/packages/host/dist/onboard.d.ts +182 -0
- package/packages/host/dist/onboard.js +590 -0
- package/packages/host/dist/onboard.js.map +1 -0
- package/packages/host/dist/onboardroutes.d.ts +31 -0
- package/packages/host/dist/onboardroutes.js +78 -0
- package/packages/host/dist/onboardroutes.js.map +1 -0
- package/packages/host/dist/opendeliveries.d.ts +175 -0
- package/packages/host/dist/opendeliveries.js +538 -0
- package/packages/host/dist/opendeliveries.js.map +1 -0
- package/packages/host/dist/optins.d.ts +14 -0
- package/packages/host/dist/optins.js +252 -0
- package/packages/host/dist/optins.js.map +1 -0
- package/packages/host/dist/origin.d.ts +86 -0
- package/packages/host/dist/origin.js +301 -0
- package/packages/host/dist/origin.js.map +1 -0
- package/packages/host/dist/pair.d.ts +149 -0
- package/packages/host/dist/pair.js +505 -0
- package/packages/host/dist/pair.js.map +1 -0
- package/packages/host/dist/passive.d.ts +58 -0
- package/packages/host/dist/passive.js +187 -0
- package/packages/host/dist/passive.js.map +1 -0
- package/packages/host/dist/paths.d.ts +67 -0
- package/packages/host/dist/paths.js +135 -0
- package/packages/host/dist/paths.js.map +1 -0
- package/packages/host/dist/pathx.d.ts +6 -0
- package/packages/host/dist/pathx.js +35 -0
- package/packages/host/dist/pathx.js.map +1 -0
- package/packages/host/dist/peers/agentpeer.d.ts +58 -0
- package/packages/host/dist/peers/agentpeer.js +249 -0
- package/packages/host/dist/peers/agentpeer.js.map +1 -0
- package/packages/host/dist/peers/client.d.ts +60 -0
- package/packages/host/dist/peers/client.js +96 -0
- package/packages/host/dist/peers/client.js.map +1 -0
- package/packages/host/dist/peers/jobs.d.ts +140 -0
- package/packages/host/dist/peers/jobs.js +424 -0
- package/packages/host/dist/peers/jobs.js.map +1 -0
- package/packages/host/dist/peers/routes.d.ts +50 -0
- package/packages/host/dist/peers/routes.js +191 -0
- package/packages/host/dist/peers/routes.js.map +1 -0
- package/packages/host/dist/peers/serve.d.ts +61 -0
- package/packages/host/dist/peers/serve.js +532 -0
- package/packages/host/dist/peers/serve.js.map +1 -0
- package/packages/host/dist/peers/store.d.ts +64 -0
- package/packages/host/dist/peers/store.js +128 -0
- package/packages/host/dist/peers/store.js.map +1 -0
- package/packages/host/dist/periodspend.d.ts +61 -0
- package/packages/host/dist/periodspend.js +109 -0
- package/packages/host/dist/periodspend.js.map +1 -0
- package/packages/host/dist/permmode.d.ts +90 -0
- package/packages/host/dist/permmode.js +157 -0
- package/packages/host/dist/permmode.js.map +1 -0
- package/packages/host/dist/planbox.d.ts +23 -0
- package/packages/host/dist/planbox.js +123 -0
- package/packages/host/dist/planbox.js.map +1 -0
- package/packages/host/dist/plugins/builtin.d.ts +39 -0
- package/packages/host/dist/plugins/builtin.js +200 -0
- package/packages/host/dist/plugins/builtin.js.map +1 -0
- package/packages/host/dist/plugins/pluginapi.d.ts +34 -0
- package/packages/host/dist/plugins/pluginapi.js +649 -0
- package/packages/host/dist/plugins/pluginapi.js.map +1 -0
- package/packages/host/dist/plugins/pluginassets.d.ts +16 -0
- package/packages/host/dist/plugins/pluginassets.js +44 -0
- package/packages/host/dist/plugins/pluginassets.js.map +1 -0
- package/packages/host/dist/plugins/pluginfiles.d.ts +30 -0
- package/packages/host/dist/plugins/pluginfiles.js +130 -0
- package/packages/host/dist/plugins/pluginfiles.js.map +1 -0
- package/packages/host/dist/plugins/pluginloader.d.ts +59 -0
- package/packages/host/dist/plugins/pluginloader.js +206 -0
- package/packages/host/dist/plugins/pluginloader.js.map +1 -0
- package/packages/host/dist/plugins/pluginregistry.d.ts +249 -0
- package/packages/host/dist/plugins/pluginregistry.js +799 -0
- package/packages/host/dist/plugins/pluginregistry.js.map +1 -0
- package/packages/host/dist/plugins/pluginroutes.d.ts +29 -0
- package/packages/host/dist/plugins/pluginroutes.js +50 -0
- package/packages/host/dist/plugins/pluginroutes.js.map +1 -0
- package/packages/host/dist/plugins/pluginrpc.d.ts +19 -0
- package/packages/host/dist/plugins/pluginrpc.js +28 -0
- package/packages/host/dist/plugins/pluginrpc.js.map +1 -0
- package/packages/host/dist/plugins/pluginstreams.d.ts +109 -0
- package/packages/host/dist/plugins/pluginstreams.js +418 -0
- package/packages/host/dist/plugins/pluginstreams.js.map +1 -0
- package/packages/host/dist/plugins/plugintoolkit/screen.d.ts +9 -0
- package/packages/host/dist/plugins/plugintoolkit/screen.js +21 -0
- package/packages/host/dist/plugins/plugintoolkit/screen.js.map +1 -0
- package/packages/host/dist/plugins/plugintoolkit/sessionfiles.d.ts +6 -0
- package/packages/host/dist/plugins/plugintoolkit/sessionfiles.js +24 -0
- package/packages/host/dist/plugins/plugintoolkit/sessionfiles.js.map +1 -0
- package/packages/host/dist/plugins/plugintoolkit/tail.d.ts +10 -0
- package/packages/host/dist/plugins/plugintoolkit/tail.js +110 -0
- package/packages/host/dist/plugins/plugintoolkit/tail.js.map +1 -0
- package/packages/host/dist/plugins/setupcontrib.d.ts +64 -0
- package/packages/host/dist/plugins/setupcontrib.js +94 -0
- package/packages/host/dist/plugins/setupcontrib.js.map +1 -0
- package/packages/host/dist/proc.d.ts +13 -0
- package/packages/host/dist/proc.js +27 -0
- package/packages/host/dist/proc.js.map +1 -0
- package/packages/host/dist/prompt.d.ts +113 -0
- package/packages/host/dist/prompt.js +565 -0
- package/packages/host/dist/prompt.js.map +1 -0
- package/packages/host/dist/promptbase.d.ts +28 -0
- package/packages/host/dist/promptbase.js +42 -0
- package/packages/host/dist/promptbase.js.map +1 -0
- package/packages/host/dist/promptmerge.d.ts +63 -0
- package/packages/host/dist/promptmerge.js +221 -0
- package/packages/host/dist/promptmerge.js.map +1 -0
- package/packages/host/dist/promptnav.d.ts +29 -0
- package/packages/host/dist/promptnav.js +97 -0
- package/packages/host/dist/promptnav.js.map +1 -0
- package/packages/host/dist/prompts.d.ts +4 -0
- package/packages/host/dist/prompts.js +78 -0
- package/packages/host/dist/prompts.js.map +1 -0
- package/packages/host/dist/ptycap.d.ts +41 -0
- package/packages/host/dist/ptycap.js +192 -0
- package/packages/host/dist/ptycap.js.map +1 -0
- package/packages/host/dist/ptyenv.d.ts +3 -0
- package/packages/host/dist/ptyenv.js +63 -0
- package/packages/host/dist/ptyenv.js.map +1 -0
- package/packages/host/dist/push.d.ts +42 -0
- package/packages/host/dist/push.js +107 -0
- package/packages/host/dist/push.js.map +1 -0
- package/packages/host/dist/pushprogress.d.ts +27 -0
- package/packages/host/dist/pushprogress.js +72 -0
- package/packages/host/dist/pushprogress.js.map +1 -0
- package/packages/host/dist/question.d.ts +60 -0
- package/packages/host/dist/question.js +137 -0
- package/packages/host/dist/question.js.map +1 -0
- package/packages/host/dist/ratelimit.d.ts +44 -0
- package/packages/host/dist/ratelimit.js +68 -0
- package/packages/host/dist/ratelimit.js.map +1 -0
- package/packages/host/dist/render.d.ts +50 -0
- package/packages/host/dist/render.js +138 -0
- package/packages/host/dist/render.js.map +1 -0
- package/packages/host/dist/repohealth.d.ts +113 -0
- package/packages/host/dist/repohealth.js +752 -0
- package/packages/host/dist/repohealth.js.map +1 -0
- package/packages/host/dist/repohealthapproval.d.ts +88 -0
- package/packages/host/dist/repohealthapproval.js +709 -0
- package/packages/host/dist/repohealthapproval.js.map +1 -0
- package/packages/host/dist/repohealthscopes.d.ts +23 -0
- package/packages/host/dist/repohealthscopes.js +124 -0
- package/packages/host/dist/repohealthscopes.js.map +1 -0
- package/packages/host/dist/repos.d.ts +25 -0
- package/packages/host/dist/repos.js +181 -0
- package/packages/host/dist/repos.js.map +1 -0
- package/packages/host/dist/reposkill.d.ts +17 -0
- package/packages/host/dist/reposkill.js +92 -0
- package/packages/host/dist/reposkill.js.map +1 -0
- package/packages/host/dist/reposkilltext.d.ts +16 -0
- package/packages/host/dist/reposkilltext.js +320 -0
- package/packages/host/dist/reposkilltext.js.map +1 -0
- package/packages/host/dist/restartnote.d.ts +17 -0
- package/packages/host/dist/restartnote.js +36 -0
- package/packages/host/dist/restartnote.js.map +1 -0
- package/packages/host/dist/review.d.ts +83 -0
- package/packages/host/dist/review.js +513 -0
- package/packages/host/dist/review.js.map +1 -0
- package/packages/host/dist/rootchoice.d.ts +26 -0
- package/packages/host/dist/rootchoice.js +101 -0
- package/packages/host/dist/rootchoice.js.map +1 -0
- package/packages/host/dist/routes/apihost.d.ts +2 -0
- package/packages/host/dist/routes/apihost.js +532 -0
- package/packages/host/dist/routes/apihost.js.map +1 -0
- package/packages/host/dist/routes/apiio.d.ts +86 -0
- package/packages/host/dist/routes/apiio.js +354 -0
- package/packages/host/dist/routes/apiio.js.map +1 -0
- package/packages/host/dist/routes/apirepofiles.d.ts +7 -0
- package/packages/host/dist/routes/apirepofiles.js +382 -0
- package/packages/host/dist/routes/apirepofiles.js.map +1 -0
- package/packages/host/dist/routes/apirepowork.d.ts +2 -0
- package/packages/host/dist/routes/apirepowork.js +500 -0
- package/packages/host/dist/routes/apirepowork.js.map +1 -0
- package/packages/host/dist/routes/apiroutes.d.ts +14 -0
- package/packages/host/dist/routes/apiroutes.js +20 -0
- package/packages/host/dist/routes/apiroutes.js.map +1 -0
- package/packages/host/dist/routes/apisession.d.ts +2 -0
- package/packages/host/dist/routes/apisession.js +197 -0
- package/packages/host/dist/routes/apisession.js.map +1 -0
- package/packages/host/dist/routes/apistats.d.ts +2 -0
- package/packages/host/dist/routes/apistats.js +220 -0
- package/packages/host/dist/routes/apistats.js.map +1 -0
- package/packages/host/dist/routes/apisystem.d.ts +2 -0
- package/packages/host/dist/routes/apisystem.js +389 -0
- package/packages/host/dist/routes/apisystem.js.map +1 -0
- package/packages/host/dist/routes/apitable.d.ts +180 -0
- package/packages/host/dist/routes/apitable.js +71 -0
- package/packages/host/dist/routes/apitable.js.map +1 -0
- package/packages/host/dist/routes/index.d.ts +19 -0
- package/packages/host/dist/routes/index.js +65 -0
- package/packages/host/dist/routes/index.js.map +1 -0
- package/packages/host/dist/routes/session.d.ts +2 -0
- package/packages/host/dist/routes/session.js +771 -0
- package/packages/host/dist/routes/session.js.map +1 -0
- package/packages/host/dist/routes/system.d.ts +24 -0
- package/packages/host/dist/routes/system.js +530 -0
- package/packages/host/dist/routes/system.js.map +1 -0
- package/packages/host/dist/routes/types.d.ts +283 -0
- package/packages/host/dist/routes/types.js +2 -0
- package/packages/host/dist/routes/types.js.map +1 -0
- package/packages/host/dist/routes/work/workassess.d.ts +2 -0
- package/packages/host/dist/routes/work/workassess.js +182 -0
- package/packages/host/dist/routes/work/workassess.js.map +1 -0
- package/packages/host/dist/routes/work/workbacklog.d.ts +2 -0
- package/packages/host/dist/routes/work/workbacklog.js +329 -0
- package/packages/host/dist/routes/work/workbacklog.js.map +1 -0
- package/packages/host/dist/routes/work/workbuild.d.ts +2 -0
- package/packages/host/dist/routes/work/workbuild.js +250 -0
- package/packages/host/dist/routes/work/workbuild.js.map +1 -0
- package/packages/host/dist/routes/work/workintent.d.ts +2 -0
- package/packages/host/dist/routes/work/workintent.js +167 -0
- package/packages/host/dist/routes/work/workintent.js.map +1 -0
- package/packages/host/dist/routes/work/workschedule.d.ts +2 -0
- package/packages/host/dist/routes/work/workschedule.js +131 -0
- package/packages/host/dist/routes/work/workschedule.js.map +1 -0
- package/packages/host/dist/routes/work.d.ts +10 -0
- package/packages/host/dist/routes/work.js +13 -0
- package/packages/host/dist/routes/work.js.map +1 -0
- package/packages/host/dist/scaffold.d.ts +104 -0
- package/packages/host/dist/scaffold.js +417 -0
- package/packages/host/dist/scaffold.js.map +1 -0
- package/packages/host/dist/screenlog.d.ts +43 -0
- package/packages/host/dist/screenlog.js +209 -0
- package/packages/host/dist/screenlog.js.map +1 -0
- package/packages/host/dist/secrets.d.ts +72 -0
- package/packages/host/dist/secrets.js +258 -0
- package/packages/host/dist/secrets.js.map +1 -0
- package/packages/host/dist/sentlog.d.ts +82 -0
- package/packages/host/dist/sentlog.js +186 -0
- package/packages/host/dist/sentlog.js.map +1 -0
- package/packages/host/dist/server/billingwire.d.ts +24 -0
- package/packages/host/dist/server/billingwire.js +73 -0
- package/packages/host/dist/server/billingwire.js.map +1 -0
- package/packages/host/dist/server/clients.d.ts +52 -0
- package/packages/host/dist/server/clients.js +178 -0
- package/packages/host/dist/server/clients.js.map +1 -0
- package/packages/host/dist/server/ctx.d.ts +118 -0
- package/packages/host/dist/server/ctx.js +2 -0
- package/packages/host/dist/server/ctx.js.map +1 -0
- package/packages/host/dist/server/ctxseal.d.ts +21 -0
- package/packages/host/dist/server/ctxseal.js +24 -0
- package/packages/host/dist/server/ctxseal.js.map +1 -0
- package/packages/host/dist/server/deliveries.d.ts +20 -0
- package/packages/host/dist/server/deliveries.js +276 -0
- package/packages/host/dist/server/deliveries.js.map +1 -0
- package/packages/host/dist/server/firstapp.d.ts +12 -0
- package/packages/host/dist/server/firstapp.js +37 -0
- package/packages/host/dist/server/firstapp.js.map +1 -0
- package/packages/host/dist/server/http.d.ts +34 -0
- package/packages/host/dist/server/http.js +475 -0
- package/packages/host/dist/server/http.js.map +1 -0
- package/packages/host/dist/server/intentDeps.d.ts +36 -0
- package/packages/host/dist/server/intentDeps.js +418 -0
- package/packages/host/dist/server/intentDeps.js.map +1 -0
- package/packages/host/dist/server/intentEvents.d.ts +13 -0
- package/packages/host/dist/server/intentEvents.js +234 -0
- package/packages/host/dist/server/intentEvents.js.map +1 -0
- package/packages/host/dist/server/liveness.d.ts +64 -0
- package/packages/host/dist/server/liveness.js +74 -0
- package/packages/host/dist/server/liveness.js.map +1 -0
- package/packages/host/dist/server/scan.d.ts +41 -0
- package/packages/host/dist/server/scan.js +227 -0
- package/packages/host/dist/server/scan.js.map +1 -0
- package/packages/host/dist/server/sessionEvents.d.ts +40 -0
- package/packages/host/dist/server/sessionEvents.js +509 -0
- package/packages/host/dist/server/sessionEvents.js.map +1 -0
- package/packages/host/dist/server/shutdown.d.ts +11 -0
- package/packages/host/dist/server/shutdown.js +135 -0
- package/packages/host/dist/server/shutdown.js.map +1 -0
- package/packages/host/dist/server/wsops.d.ts +44 -0
- package/packages/host/dist/server/wsops.js +313 -0
- package/packages/host/dist/server/wsops.js.map +1 -0
- package/packages/host/dist/sessionSearch.d.ts +46 -0
- package/packages/host/dist/sessionSearch.js +93 -0
- package/packages/host/dist/sessionSearch.js.map +1 -0
- package/packages/host/dist/sessionbudget.d.ts +61 -0
- package/packages/host/dist/sessionbudget.js +84 -0
- package/packages/host/dist/sessionbudget.js.map +1 -0
- package/packages/host/dist/sessions/boxes.d.ts +112 -0
- package/packages/host/dist/sessions/boxes.js +968 -0
- package/packages/host/dist/sessions/boxes.js.map +1 -0
- package/packages/host/dist/sessions/budgetwatch.d.ts +95 -0
- package/packages/host/dist/sessions/budgetwatch.js +171 -0
- package/packages/host/dist/sessions/budgetwatch.js.map +1 -0
- package/packages/host/dist/sessions/convid.d.ts +72 -0
- package/packages/host/dist/sessions/convid.js +305 -0
- package/packages/host/dist/sessions/convid.js.map +1 -0
- package/packages/host/dist/sessions/core.d.ts +749 -0
- package/packages/host/dist/sessions/core.js +2 -0
- package/packages/host/dist/sessions/core.js.map +1 -0
- package/packages/host/dist/sessions/ctxseries.d.ts +184 -0
- package/packages/host/dist/sessions/ctxseries.js +766 -0
- package/packages/host/dist/sessions/ctxseries.js.map +1 -0
- package/packages/host/dist/sessions/drive.d.ts +207 -0
- package/packages/host/dist/sessions/drive.js +779 -0
- package/packages/host/dist/sessions/drive.js.map +1 -0
- package/packages/host/dist/sessions/haltall.d.ts +36 -0
- package/packages/host/dist/sessions/haltall.js +95 -0
- package/packages/host/dist/sessions/haltall.js.map +1 -0
- package/packages/host/dist/sessions/health.d.ts +88 -0
- package/packages/host/dist/sessions/health.js +108 -0
- package/packages/host/dist/sessions/health.js.map +1 -0
- package/packages/host/dist/sessions/idlewatch.d.ts +34 -0
- package/packages/host/dist/sessions/idlewatch.js +74 -0
- package/packages/host/dist/sessions/idlewatch.js.map +1 -0
- package/packages/host/dist/sessions/knobs.d.ts +315 -0
- package/packages/host/dist/sessions/knobs.js +411 -0
- package/packages/host/dist/sessions/knobs.js.map +1 -0
- package/packages/host/dist/sessions/links.d.ts +53 -0
- package/packages/host/dist/sessions/links.js +209 -0
- package/packages/host/dist/sessions/links.js.map +1 -0
- package/packages/host/dist/sessions/livemode.d.ts +56 -0
- package/packages/host/dist/sessions/livemode.js +300 -0
- package/packages/host/dist/sessions/livemode.js.map +1 -0
- package/packages/host/dist/sessions/record.d.ts +196 -0
- package/packages/host/dist/sessions/record.js +719 -0
- package/packages/host/dist/sessions/record.js.map +1 -0
- package/packages/host/dist/sessions/resume.d.ts +164 -0
- package/packages/host/dist/sessions/resume.js +629 -0
- package/packages/host/dist/sessions/resume.js.map +1 -0
- package/packages/host/dist/sessions/roster.d.ts +164 -0
- package/packages/host/dist/sessions/roster.js +566 -0
- package/packages/host/dist/sessions/roster.js.map +1 -0
- package/packages/host/dist/sessions/sidechannel.d.ts +96 -0
- package/packages/host/dist/sessions/sidechannel.js +726 -0
- package/packages/host/dist/sessions/sidechannel.js.map +1 -0
- package/packages/host/dist/sessions/tmux.d.ts +247 -0
- package/packages/host/dist/sessions/tmux.js +731 -0
- package/packages/host/dist/sessions/tmux.js.map +1 -0
- package/packages/host/dist/sessions/turn.d.ts +237 -0
- package/packages/host/dist/sessions/turn.js +1003 -0
- package/packages/host/dist/sessions/turn.js.map +1 -0
- package/packages/host/dist/sessions/wall.d.ts +117 -0
- package/packages/host/dist/sessions/wall.js +658 -0
- package/packages/host/dist/sessions/wall.js.map +1 -0
- package/packages/host/dist/sessions.d.ts +255 -0
- package/packages/host/dist/sessions.js +758 -0
- package/packages/host/dist/sessions.js.map +1 -0
- package/packages/host/dist/settings.d.ts +40 -0
- package/packages/host/dist/settings.js +171 -0
- package/packages/host/dist/settings.js.map +1 -0
- package/packages/host/dist/settle.d.ts +171 -0
- package/packages/host/dist/settle.js +409 -0
- package/packages/host/dist/settle.js.map +1 -0
- package/packages/host/dist/setupprefs.d.ts +51 -0
- package/packages/host/dist/setupprefs.js +178 -0
- package/packages/host/dist/setupprefs.js.map +1 -0
- package/packages/host/dist/setupwatch.d.ts +39 -0
- package/packages/host/dist/setupwatch.js +249 -0
- package/packages/host/dist/setupwatch.js.map +1 -0
- package/packages/host/dist/shelllinks.d.ts +39 -0
- package/packages/host/dist/shelllinks.js +292 -0
- package/packages/host/dist/shelllinks.js.map +1 -0
- package/packages/host/dist/shells.d.ts +190 -0
- package/packages/host/dist/shells.js +633 -0
- package/packages/host/dist/shells.js.map +1 -0
- package/packages/host/dist/sidecar/sidecarclaude.d.ts +120 -0
- package/packages/host/dist/sidecar/sidecarclaude.js +213 -0
- package/packages/host/dist/sidecar/sidecarclaude.js.map +1 -0
- package/packages/host/dist/sidecar/sidecarname.d.ts +99 -0
- package/packages/host/dist/sidecar/sidecarname.js +163 -0
- package/packages/host/dist/sidecar/sidecarname.js.map +1 -0
- package/packages/host/dist/sidecar/sidecaropenai.d.ts +24 -0
- package/packages/host/dist/sidecar/sidecaropenai.js +129 -0
- package/packages/host/dist/sidecar/sidecaropenai.js.map +1 -0
- package/packages/host/dist/sidecar/sidecarroute.d.ts +65 -0
- package/packages/host/dist/sidecar/sidecarroute.js +158 -0
- package/packages/host/dist/sidecar/sidecarroute.js.map +1 -0
- package/packages/host/dist/sidecar/sidecartasks.d.ts +20 -0
- package/packages/host/dist/sidecar/sidecartasks.js +63 -0
- package/packages/host/dist/sidecar/sidecartasks.js.map +1 -0
- package/packages/host/dist/sidecar/sidecartrust.d.ts +32 -0
- package/packages/host/dist/sidecar/sidecartrust.js +74 -0
- package/packages/host/dist/sidecar/sidecartrust.js.map +1 -0
- package/packages/host/dist/sidecar.d.ts +82 -0
- package/packages/host/dist/sidecar.js +78 -0
- package/packages/host/dist/sidecar.js.map +1 -0
- package/packages/host/dist/signkey.d.ts +57 -0
- package/packages/host/dist/signkey.js +159 -0
- package/packages/host/dist/signkey.js.map +1 -0
- package/packages/host/dist/slash.d.ts +43 -0
- package/packages/host/dist/slash.js +236 -0
- package/packages/host/dist/slash.js.map +1 -0
- package/packages/host/dist/sourceanswer.d.ts +103 -0
- package/packages/host/dist/sourceanswer.js +193 -0
- package/packages/host/dist/sourceanswer.js.map +1 -0
- package/packages/host/dist/speedtest.d.ts +57 -0
- package/packages/host/dist/speedtest.js +137 -0
- package/packages/host/dist/speedtest.js.map +1 -0
- package/packages/host/dist/spendwall.d.ts +33 -0
- package/packages/host/dist/spendwall.js +45 -0
- package/packages/host/dist/spendwall.js.map +1 -0
- package/packages/host/dist/sysstat.d.ts +134 -0
- package/packages/host/dist/sysstat.js +630 -0
- package/packages/host/dist/sysstat.js.map +1 -0
- package/packages/host/dist/tailnetpeers.d.ts +34 -0
- package/packages/host/dist/tailnetpeers.js +116 -0
- package/packages/host/dist/tailnetpeers.js.map +1 -0
- package/packages/host/dist/tailscaleguard.d.ts +11 -0
- package/packages/host/dist/tailscaleguard.js +133 -0
- package/packages/host/dist/tailscaleguard.js.map +1 -0
- package/packages/host/dist/termqueries.d.ts +124 -0
- package/packages/host/dist/termqueries.js +207 -0
- package/packages/host/dist/termqueries.js.map +1 -0
- package/packages/host/dist/themeoverlay.d.ts +74 -0
- package/packages/host/dist/themeoverlay.js +262 -0
- package/packages/host/dist/themeoverlay.js.map +1 -0
- package/packages/host/dist/thumbs.d.ts +69 -0
- package/packages/host/dist/thumbs.js +359 -0
- package/packages/host/dist/thumbs.js.map +1 -0
- package/packages/host/dist/tmuxreq.d.ts +91 -0
- package/packages/host/dist/tmuxreq.js +207 -0
- package/packages/host/dist/tmuxreq.js.map +1 -0
- package/packages/host/dist/tmuxscroll.d.ts +70 -0
- package/packages/host/dist/tmuxscroll.js +206 -0
- package/packages/host/dist/tmuxscroll.js.map +1 -0
- package/packages/host/dist/tokenscan.d.ts +63 -0
- package/packages/host/dist/tokenscan.js +220 -0
- package/packages/host/dist/tokenscan.js.map +1 -0
- package/packages/host/dist/tokenstats.d.ts +115 -0
- package/packages/host/dist/tokenstats.js +763 -0
- package/packages/host/dist/tokenstats.js.map +1 -0
- package/packages/host/dist/toolchain.d.ts +147 -0
- package/packages/host/dist/toolchain.js +468 -0
- package/packages/host/dist/toolchain.js.map +1 -0
- package/packages/host/dist/transcript/transcriptlog.d.ts +134 -0
- package/packages/host/dist/transcript/transcriptlog.js +300 -0
- package/packages/host/dist/transcript/transcriptlog.js.map +1 -0
- package/packages/host/dist/transcript/transcriptparse.d.ts +28 -0
- package/packages/host/dist/transcript/transcriptparse.js +377 -0
- package/packages/host/dist/transcript/transcriptparse.js.map +1 -0
- package/packages/host/dist/transcript/transcriptscreen.d.ts +71 -0
- package/packages/host/dist/transcript/transcriptscreen.js +120 -0
- package/packages/host/dist/transcript/transcriptscreen.js.map +1 -0
- package/packages/host/dist/transcript/transcriptturns.d.ts +139 -0
- package/packages/host/dist/transcript/transcriptturns.js +270 -0
- package/packages/host/dist/transcript/transcriptturns.js.map +1 -0
- package/packages/host/dist/transcript.d.ts +28 -0
- package/packages/host/dist/transcript.js +34 -0
- package/packages/host/dist/transcript.js.map +1 -0
- package/packages/host/dist/transportsurvey.d.ts +10 -0
- package/packages/host/dist/transportsurvey.js +109 -0
- package/packages/host/dist/transportsurvey.js.map +1 -0
- package/packages/host/dist/tree.d.ts +80 -0
- package/packages/host/dist/tree.js +372 -0
- package/packages/host/dist/tree.js.map +1 -0
- package/packages/host/dist/turnagents.d.ts +17 -0
- package/packages/host/dist/turnagents.js +205 -0
- package/packages/host/dist/turnagents.js.map +1 -0
- package/packages/host/dist/uistats.d.ts +18 -0
- package/packages/host/dist/uistats.js +105 -0
- package/packages/host/dist/uistats.js.map +1 -0
- package/packages/host/dist/update.d.ts +100 -0
- package/packages/host/dist/update.js +536 -0
- package/packages/host/dist/update.js.map +1 -0
- package/packages/host/dist/updates/apply.d.ts +45 -0
- package/packages/host/dist/updates/apply.js +362 -0
- package/packages/host/dist/updates/apply.js.map +1 -0
- package/packages/host/dist/updates/catalog.d.ts +11 -0
- package/packages/host/dist/updates/catalog.js +123 -0
- package/packages/host/dist/updates/catalog.js.map +1 -0
- package/packages/host/dist/updates/checker.d.ts +73 -0
- package/packages/host/dist/updates/checker.js +189 -0
- package/packages/host/dist/updates/checker.js.map +1 -0
- package/packages/host/dist/updates/github.d.ts +13 -0
- package/packages/host/dist/updates/github.js +63 -0
- package/packages/host/dist/updates/github.js.map +1 -0
- package/packages/host/dist/updates/gitops.d.ts +16 -0
- package/packages/host/dist/updates/gitops.js +61 -0
- package/packages/host/dist/updates/gitops.js.map +1 -0
- package/packages/host/dist/updates/installrecord.d.ts +26 -0
- package/packages/host/dist/updates/installrecord.js +42 -0
- package/packages/host/dist/updates/installrecord.js.map +1 -0
- package/packages/host/dist/updates/remote.d.ts +10 -0
- package/packages/host/dist/updates/remote.js +54 -0
- package/packages/host/dist/updates/remote.js.map +1 -0
- package/packages/host/dist/updates/restart.d.ts +5 -0
- package/packages/host/dist/updates/restart.js +20 -0
- package/packages/host/dist/updates/restart.js.map +1 -0
- package/packages/host/dist/updates/self.d.ts +19 -0
- package/packages/host/dist/updates/self.js +51 -0
- package/packages/host/dist/updates/self.js.map +1 -0
- package/packages/host/dist/updates/wire.d.ts +18 -0
- package/packages/host/dist/updates/wire.js +21 -0
- package/packages/host/dist/updates/wire.js.map +1 -0
- package/packages/host/dist/usage.d.ts +124 -0
- package/packages/host/dist/usage.js +411 -0
- package/packages/host/dist/usage.js.map +1 -0
- package/packages/host/dist/usagelog.d.ts +53 -0
- package/packages/host/dist/usagelog.js +223 -0
- package/packages/host/dist/usagelog.js.map +1 -0
- package/packages/host/dist/usagesourcelog.d.ts +59 -0
- package/packages/host/dist/usagesourcelog.js +208 -0
- package/packages/host/dist/usagesourcelog.js.map +1 -0
- package/packages/host/dist/usagesources.d.ts +175 -0
- package/packages/host/dist/usagesources.js +462 -0
- package/packages/host/dist/usagesources.js.map +1 -0
- package/packages/host/dist/visualskill.d.ts +36 -0
- package/packages/host/dist/visualskill.js +230 -0
- package/packages/host/dist/visualskill.js.map +1 -0
- package/packages/host/dist/webbundle.d.ts +47 -0
- package/packages/host/dist/webbundle.js +155 -0
- package/packages/host/dist/webbundle.js.map +1 -0
- package/packages/host/dist/wirerecord.d.ts +5 -0
- package/packages/host/dist/wirerecord.js +128 -0
- package/packages/host/dist/wirerecord.js.map +1 -0
- package/packages/host/dist/worktreeleftover.d.ts +27 -0
- package/packages/host/dist/worktreeleftover.js +153 -0
- package/packages/host/dist/worktreeleftover.js.map +1 -0
- package/packages/host/dist/worktreeowner.d.ts +17 -0
- package/packages/host/dist/worktreeowner.js +45 -0
- package/packages/host/dist/worktreeowner.js.map +1 -0
- package/packages/host/package.json +26 -0
- package/packages/web/dist/assets/apple-touch-icon.png +0 -0
- package/packages/web/dist/assets/badge-96.png +0 -0
- package/packages/web/dist/assets/demo-CXlqlYE4.js +23 -0
- package/packages/web/dist/assets/hero.png +0 -0
- package/packages/web/dist/assets/icon-192.png +0 -0
- package/packages/web/dist/assets/icon-32.png +0 -0
- package/packages/web/dist/assets/icon-48.png +0 -0
- package/packages/web/dist/assets/icon-512-maskable.png +0 -0
- package/packages/web/dist/assets/icon-512.png +0 -0
- package/packages/web/dist/assets/icon-dark.svg +43 -0
- package/packages/web/dist/assets/icon-light.svg +42 -0
- package/packages/web/dist/assets/icon.svg +11 -0
- package/packages/web/dist/assets/icons-BbqDBVjw.js +1 -0
- package/packages/web/dist/assets/index-CgPoyb3Y.css +1 -0
- package/packages/web/dist/assets/index-D5JKj8DK.js +169 -0
- package/packages/web/dist/assets/react-CoSyT_xY.js +8 -0
- package/packages/web/dist/assets/rolldown-runtime-BpQH8Ho1.js +1 -0
- package/packages/web/dist/assets/shared-eyaskl5l.js +47 -0
- package/packages/web/dist/assets/sheets-Bjv2L-cG.css +1 -0
- package/packages/web/dist/assets/sheets-BzzL2re1.js +204 -0
- package/packages/web/dist/assets/vendor-BPwPmufs.js +3 -0
- package/packages/web/dist/assets/xterm-BrP-ENHg.css +1 -0
- package/packages/web/dist/assets/xterm-C8zLTNGk.js +16 -0
- package/packages/web/dist/build-id.txt +1 -0
- package/packages/web/dist/demo/media/r1/dot-claude/inbox/swipe-sketch.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-android-fixed.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-android.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-before.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-date-picker.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-empty-state.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-grouped.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-ios.png +0 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-preview.html +18 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-release-notes.md +21 -0
- package/packages/web/dist/demo/media/r1/dot-claude/outbox/todo-garden-sorted.png +0 -0
- package/packages/web/dist/demo/media/r3/dot-claude/outbox/trail-log-ridge-loop.png +0 -0
- package/packages/web/dist/index.html +84 -0
- package/packages/web/dist/manifest.webmanifest +16 -0
- package/packages/web/dist/sw.js +420 -0
- package/release.json +22 -0
- package/scripts/windows/keeper.ps1 +60 -0
- package/scripts/windows/wsl-setup.sh +173 -0
- package/tools/repohealth/census.mjs +353 -0
- package/tools/repohealth/central.mjs +234 -0
- package/tools/repohealth/constants.mjs +420 -0
- package/tools/repohealth/events.mjs +563 -0
- package/tools/repohealth/fixture.json +17976 -0
- package/tools/repohealth/git.mjs +471 -0
- package/tools/repohealth/html.mjs +601 -0
- package/tools/repohealth/judge.mjs +546 -0
- package/tools/repohealth/lang/typescript-ast.mjs +538 -0
- package/tools/repohealth/metrics/classics.mjs +239 -0
- package/tools/repohealth/metrics/cochange.mjs +234 -0
- package/tools/repohealth/metrics/context.mjs +411 -0
- package/tools/repohealth/metrics/deadexports.mjs +122 -0
- package/tools/repohealth/metrics/dups.mjs +261 -0
- package/tools/repohealth/metrics/hatches.mjs +164 -0
- package/tools/repohealth/metrics/retouch.mjs +326 -0
- package/tools/repohealth/metrics/route.mjs +159 -0
- package/tools/repohealth/metrics/size.mjs +120 -0
- package/tools/repohealth/metrics/tripwires.mjs +258 -0
- package/tools/repohealth/metrics/untested.mjs +308 -0
- package/tools/repohealth/narrate.mjs +342 -0
- package/tools/repohealth/own.mjs +238 -0
- package/tools/repohealth/packs/c.mjs +124 -0
- package/tools/repohealth/packs/common.mjs +205 -0
- package/tools/repohealth/packs/dart.mjs +118 -0
- package/tools/repohealth/packs/index.mjs +83 -0
- package/tools/repohealth/packs/kotlin.mjs +320 -0
- package/tools/repohealth/packs/python.mjs +488 -0
- package/tools/repohealth/packs/shell.mjs +88 -0
- package/tools/repohealth/packs/typescript.mjs +604 -0
- package/tools/repohealth/plot.mjs +462 -0
- package/tools/repohealth/readings.mjs +427 -0
- package/tools/repohealth/scope.mjs +184 -0
- package/tools/repohealth/series.mjs +360 -0
- package/tools/repohealth/snapshot.mjs +431 -0
- package/tools/repohealth/source.mjs +266 -0
- package/tools/repohealth/statefile.mjs +31 -0
- package/tools/repohealth/types.mjs +316 -0
- package/tools/repohealth.mjs +767 -0
- package/tools/skillmap.mjs +109 -0
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pairing a new phone by QR: the code store, the three routes and the
|
|
3
|
+
* host-rendered landing page.
|
|
4
|
+
*
|
|
5
|
+
* POST /api/pair/mint behind the gate (loopback, an ungated
|
|
6
|
+
* Tailscale peer, or a valid token)
|
|
7
|
+
* POST /api/pair/redeem {code, deviceName}
|
|
8
|
+
* PRE-auth — the code IS the credential —
|
|
9
|
+
* rate-limited per remote IP
|
|
10
|
+
* GET /pair/<code> the landing page the QR opens
|
|
11
|
+
* GET /pair/<code>/apk the Android build, same origin
|
|
12
|
+
*
|
|
13
|
+
* **Codes live in memory only, as their sha256** (`PairStore`): a restart
|
|
14
|
+
* forgets every outstanding code, which costs a person one "show a new QR" and
|
|
15
|
+
* means no file ever holds a live credential. A lookup hashes the presented
|
|
16
|
+
* code and compares it against EVERY entry with `timingSafeEqual`, no early
|
|
17
|
+
* exit. A code lives `PAIR_TTL_MS`, is spent by its first successful REDEEM —
|
|
18
|
+
* viewing the landing page and downloading the APK do NOT spend it, because
|
|
19
|
+
* the new phone does both before it has an app that can redeem — and at most
|
|
20
|
+
* `PAIR_MAX_OUTSTANDING` are live at once (the oldest is dropped by a new mint).
|
|
21
|
+
* A spent or expired code is remembered a little longer only so the phone can
|
|
22
|
+
* be told WHICH it was; it never passes again.
|
|
23
|
+
*
|
|
24
|
+
* **The landing page reveals nothing without a live code.** It is reachable by
|
|
25
|
+
* a brand-new device with no token (static paths are outside the token gate,
|
|
26
|
+
* and over LAN that is the point: the code is the capability), so the code is
|
|
27
|
+
* checked BEFORE anything about this desktop is rendered, and every invalid
|
|
28
|
+
* case — malformed, unknown, expired, spent, rate-limited — is the same plain
|
|
29
|
+
* page. `/pair/*` is NOT in `OPAQUE_READ_ROUTES` and passes no origin check:
|
|
30
|
+
* it is a top-level navigation, not an `/api/` call.
|
|
31
|
+
*
|
|
32
|
+
* Redeem mints a device token (a ledger row, `auth.issueToken`) only when a
|
|
33
|
+
* password is set — deny-until-set. With none set a loopback/Tailscale peer
|
|
34
|
+
* needs no token and is told so; a LAN peer is refused BEFORE the code is spent.
|
|
35
|
+
* The LAN identity secret goes only to a loopback/Tailscale redeemer, as
|
|
36
|
+
* `GET /api/lan/identity` does.
|
|
37
|
+
*/
|
|
38
|
+
import { createHash, timingSafeEqual } from "node:crypto";
|
|
39
|
+
import { createReadStream, readdirSync, readFileSync, statSync } from "node:fs";
|
|
40
|
+
import { join, resolve } from "node:path";
|
|
41
|
+
import { PAIR_TTL_MS, formatPairCode, newPairCode, normalizeDeviceName, normalizePairCode, pairDeepLink, pairLandingUrl, pairPathCode, pairRedeemErrorText, BRAND, releaseApkName, } from "@waterplane/shared";
|
|
42
|
+
import { tokenFromRequest } from "./auth.js";
|
|
43
|
+
import { lanIdentity } from "./lanid.js";
|
|
44
|
+
import { hostName, lanIps, serveHttpsUrl, tailscaleIp } from "./net.js";
|
|
45
|
+
import { RateLimiter, rateKey } from "./ratelimit.js";
|
|
46
|
+
import { corsHeaders } from "./origin.js";
|
|
47
|
+
import { env } from "./env.js";
|
|
48
|
+
/** Live (unspent, unexpired) codes at once; a mint past it drops the oldest. */
|
|
49
|
+
export const PAIR_MAX_OUTSTANDING = 5;
|
|
50
|
+
/** A spent/expired code is remembered this long past its expiry, only so the
|
|
51
|
+
* phone can say "used" or "expired" instead of "unknown". */
|
|
52
|
+
const PAIR_FORGET_AFTER_MS = PAIR_TTL_MS;
|
|
53
|
+
/** Hard bound on remembered entries (live + spent + expired). */
|
|
54
|
+
const PAIR_MAX_ENTRIES = 50;
|
|
55
|
+
/** `WATERPLANE_PAIR_TTL_MS` shortens the lifetime for e2e (floored at 1 s, never
|
|
56
|
+
* longer than the shared 10 minutes the phone's sentences promise). */
|
|
57
|
+
function pairTtlFromEnv() {
|
|
58
|
+
const n = Number(env("PAIR_TTL_MS"));
|
|
59
|
+
return Number.isFinite(n) && n > 0 ? Math.min(PAIR_TTL_MS, Math.max(1000, n)) : PAIR_TTL_MS;
|
|
60
|
+
}
|
|
61
|
+
function hashCode(code) {
|
|
62
|
+
return createHash("sha256").update(code, "utf8").digest();
|
|
63
|
+
}
|
|
64
|
+
export class PairStore {
|
|
65
|
+
entries = [];
|
|
66
|
+
now;
|
|
67
|
+
ttlMs;
|
|
68
|
+
maxOutstanding;
|
|
69
|
+
compare;
|
|
70
|
+
constructor(opts = {}) {
|
|
71
|
+
this.now = opts.now ?? Date.now;
|
|
72
|
+
this.ttlMs = opts.ttlMs ?? pairTtlFromEnv();
|
|
73
|
+
this.maxOutstanding = opts.maxOutstanding ?? PAIR_MAX_OUTSTANDING;
|
|
74
|
+
this.compare = opts.compare ?? timingSafeEqual;
|
|
75
|
+
}
|
|
76
|
+
/** A new code; the plaintext exists only in the return value. */
|
|
77
|
+
mint(mintedBy, passive = false) {
|
|
78
|
+
const now = this.now();
|
|
79
|
+
this.prune(now);
|
|
80
|
+
let code = newPairCode();
|
|
81
|
+
while (this.find(code) !== null)
|
|
82
|
+
code = newPairCode(); // 32^8: never in practice
|
|
83
|
+
const live = this.entries.filter((e) => e.usedAt === null && e.expiresAt > now);
|
|
84
|
+
for (let i = 0; i <= live.length - this.maxOutstanding; i++)
|
|
85
|
+
this.entries.splice(this.entries.indexOf(live[i]), 1);
|
|
86
|
+
const expiresAt = now + this.ttlMs;
|
|
87
|
+
this.entries.push({ hash: hashCode(code), createdAt: now, expiresAt, mintedBy, usedAt: null, passive });
|
|
88
|
+
while (this.entries.length > PAIR_MAX_ENTRIES)
|
|
89
|
+
this.entries.shift();
|
|
90
|
+
return { code, expiresAt };
|
|
91
|
+
}
|
|
92
|
+
/** Constant-time over every entry: no early exit on a match. */
|
|
93
|
+
find(code) {
|
|
94
|
+
const h = hashCode(code);
|
|
95
|
+
let hit = null;
|
|
96
|
+
for (const e of this.entries)
|
|
97
|
+
if (this.compare(e.hash, h) && hit === null)
|
|
98
|
+
hit = e;
|
|
99
|
+
return hit;
|
|
100
|
+
}
|
|
101
|
+
stateOf(e, now) {
|
|
102
|
+
if (!e)
|
|
103
|
+
return "unknown";
|
|
104
|
+
if (e.usedAt !== null)
|
|
105
|
+
return "used";
|
|
106
|
+
return now >= e.expiresAt ? "expired" : "ok";
|
|
107
|
+
}
|
|
108
|
+
/** What a code is, spending nothing (the landing page, the APK). */
|
|
109
|
+
peek(code) {
|
|
110
|
+
const now = this.now();
|
|
111
|
+
this.prune(now);
|
|
112
|
+
return this.stateOf(this.find(code), now);
|
|
113
|
+
}
|
|
114
|
+
/** Does this code pair a passive device? Spends nothing. */
|
|
115
|
+
isPassive(code) {
|
|
116
|
+
return this.find(code)?.passive === true;
|
|
117
|
+
}
|
|
118
|
+
/** Spend a live code. Anything but "ok" spends nothing. */
|
|
119
|
+
redeem(code) {
|
|
120
|
+
const now = this.now();
|
|
121
|
+
this.prune(now);
|
|
122
|
+
const e = this.find(code);
|
|
123
|
+
const state = this.stateOf(e, now);
|
|
124
|
+
if (state === "ok" && e)
|
|
125
|
+
e.usedAt = now;
|
|
126
|
+
return { state, mintedBy: e?.mintedBy ?? null, passive: e?.passive === true };
|
|
127
|
+
}
|
|
128
|
+
/** Live codes right now. */
|
|
129
|
+
outstanding() {
|
|
130
|
+
const now = this.now();
|
|
131
|
+
return this.entries.filter((e) => e.usedAt === null && e.expiresAt > now).length;
|
|
132
|
+
}
|
|
133
|
+
/** Every remembered entry, spent and expired included (tests). */
|
|
134
|
+
get size() { return this.entries.length; }
|
|
135
|
+
/** The stored hashes, hex (tests: nothing at rest is the code). */
|
|
136
|
+
storedHashes() { return this.entries.map((e) => e.hash.toString("hex")); }
|
|
137
|
+
prune(now) {
|
|
138
|
+
this.entries = this.entries.filter((e) => now < e.expiresAt + PAIR_FORGET_AFTER_MS);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
let netCache = null;
|
|
142
|
+
const NET_CACHE_MS = 60_000;
|
|
143
|
+
/**
|
|
144
|
+
* Re-derived here rather than handed down from `main()`: the same three facts
|
|
145
|
+
* `main()` binds with (tailscale IP, serve URL, bound LAN IPs), asked of the
|
|
146
|
+
* same functions, cached a minute — a mint is a person tapping "show QR", not
|
|
147
|
+
* a hot path. An explicit `WATERPLANE_HOST` is the address actually bound, so it
|
|
148
|
+
* wins over the Tailscale IP.
|
|
149
|
+
*/
|
|
150
|
+
export async function pairNet(port) {
|
|
151
|
+
const now = Date.now();
|
|
152
|
+
if (netCache && netCache.port === port && now - netCache.at < NET_CACHE_MS)
|
|
153
|
+
return netCache.net;
|
|
154
|
+
const httpsUrl = await serveHttpsUrl(port);
|
|
155
|
+
const ts = await tailscaleIp();
|
|
156
|
+
const hostEnv = env("HOST");
|
|
157
|
+
const explicit = hostEnv && !/^(0\.0\.0\.0|::)$/.test(hostEnv) ? hostEnv : null;
|
|
158
|
+
const addr = explicit ?? ts ?? "127.0.0.1";
|
|
159
|
+
const hostPart = addr.includes(":") ? `[${addr}]` : addr;
|
|
160
|
+
const lan = env("ALLOW_PUBLIC") === "1" && !explicit ? lanIps()[0] : undefined;
|
|
161
|
+
const net = {
|
|
162
|
+
name: hostName(),
|
|
163
|
+
base: httpsUrl ?? `http://${hostPart}:${port}`,
|
|
164
|
+
httpsUrl,
|
|
165
|
+
...(lan ? { lanBase: `http://${lan}:${port}` } : {}),
|
|
166
|
+
};
|
|
167
|
+
netCache = { at: now, port, net };
|
|
168
|
+
return net;
|
|
169
|
+
}
|
|
170
|
+
// ── The Android build ───────────────────────────────────────────────────
|
|
171
|
+
/** Gradle's output for `npm run apk` — the `dev` flavor's debug build, the
|
|
172
|
+
* owner's sideloadable one (the `play` flavor ships through Google Play and is
|
|
173
|
+
* never handed out here) — relative to this checkout (`src/` under tsx and
|
|
174
|
+
* `dist/` built are both one level under `packages/host`). */
|
|
175
|
+
export const DEFAULT_APK = resolve(import.meta.dirname, "../../app/android/app/build/outputs/apk/dev/debug/app-dev-debug.apk");
|
|
176
|
+
function apkAt(p) {
|
|
177
|
+
try {
|
|
178
|
+
const st = statSync(p);
|
|
179
|
+
if (st.isFile())
|
|
180
|
+
return /\.apk$/i.test(p) && st.size > 0 ? { path: p, size: st.size, mtimeMs: st.mtimeMs } : null;
|
|
181
|
+
if (!st.isDirectory())
|
|
182
|
+
return null;
|
|
183
|
+
let best = null;
|
|
184
|
+
for (const name of readdirSync(p)) {
|
|
185
|
+
if (!/\.apk$/i.test(name))
|
|
186
|
+
continue;
|
|
187
|
+
const f = apkAt(join(p, name));
|
|
188
|
+
if (f && (!best || f.mtimeMs > best.mtimeMs))
|
|
189
|
+
best = f;
|
|
190
|
+
}
|
|
191
|
+
return best;
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/** The newest of `WATERPLANE_APK_PATH` (a file, or a directory of .apk files) and
|
|
198
|
+
* the default gradle output; null when neither holds one. */
|
|
199
|
+
export function latestApk(envPath = env("APK_PATH"), fallback = DEFAULT_APK) {
|
|
200
|
+
const cands = [envPath ? apkAt(envPath) : null, apkAt(fallback)].filter((x) => !!x);
|
|
201
|
+
cands.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
202
|
+
return cands[0] ?? null;
|
|
203
|
+
}
|
|
204
|
+
/** The install root's `release.json`: `dist/` → `host/` → `packages/` → the root. */
|
|
205
|
+
const RELEASE_JSON = resolve(import.meta.dirname, "../../../release.json");
|
|
206
|
+
/**
|
|
207
|
+
* Where a release install's phone can get the APK, or null. Never a guess: a URL
|
|
208
|
+
* is built only from what the release says it published (`apk`, the asset's file
|
|
209
|
+
* name, which `scripts/release/build.mjs --apk` records), or an explicit
|
|
210
|
+
* `WATERPLANE_APK_URL` (https only). A release without an APK asset answers null,
|
|
211
|
+
* and the page then says the web route — a link that 404s is worse than none.
|
|
212
|
+
*/
|
|
213
|
+
export function releaseApkUrl(releaseJson = readJsonQuiet(RELEASE_JSON), envUrl = env("APK_URL"), org = BRAND.githubOrg, slug = BRAND.slug) {
|
|
214
|
+
if (envUrl && /^https:\/\/[^\s"'<>]+$/.test(envUrl))
|
|
215
|
+
return envUrl;
|
|
216
|
+
const r = releaseJson;
|
|
217
|
+
if (!r || typeof r.version !== "string" || typeof r.apk !== "string")
|
|
218
|
+
return null;
|
|
219
|
+
if (!/^[\w.-]+\.apk$/i.test(r.apk) || !/^[\w.+-]+$/.test(r.version))
|
|
220
|
+
return null;
|
|
221
|
+
if (r.apk !== releaseApkName(slug, r.version))
|
|
222
|
+
return null; // the one shared naming rule (shared/brand.ts)
|
|
223
|
+
if (r.apk !== releaseApkName(slug, r.version))
|
|
224
|
+
return null; // the one shared naming rule (shared/brand.ts)
|
|
225
|
+
return `https://github.com/${org}/${slug}/releases/download/v${r.version}/${r.apk}`;
|
|
226
|
+
}
|
|
227
|
+
function readJsonQuiet(p) {
|
|
228
|
+
try {
|
|
229
|
+
return JSON.parse(readFileSync(p, "utf8"));
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/** The one decision: a build on this computer wins (it matches this host); else the release's; else none. */
|
|
236
|
+
export function apkSource(local, releaseUrl) {
|
|
237
|
+
if (local)
|
|
238
|
+
return { kind: "local", apk: local };
|
|
239
|
+
if (releaseUrl)
|
|
240
|
+
return { kind: "release", url: releaseUrl };
|
|
241
|
+
return { kind: "none" };
|
|
242
|
+
}
|
|
243
|
+
/** The name a download carries: the build's own time, so two are told apart. */
|
|
244
|
+
export function apkFileName(a) {
|
|
245
|
+
const d = new Date(a.mtimeMs);
|
|
246
|
+
const p = (n) => String(n).padStart(2, "0");
|
|
247
|
+
return `${BRAND.slug}-${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}-${p(d.getHours())}${p(d.getMinutes())}.apk`;
|
|
248
|
+
}
|
|
249
|
+
/** 5 attempts in a burst, then one every 10 s, per remote IP: 32^8 codes do
|
|
250
|
+
* not fall to that, and a person mistyping twice is never blocked. */
|
|
251
|
+
export const redeemLimit = new RateLimiter({ burst: 5, perSec: 0.1 });
|
|
252
|
+
/** The landing + APK: a phone loads the page, maybe twice, and the APK once. */
|
|
253
|
+
export const landingLimit = new RateLimiter({ burst: 12, perSec: 0.2 });
|
|
254
|
+
const NO_PASSWORD_LAN = "This desktop has no password set, so it refuses every device on the Wi-Fi. Pair over Tailscale, or set a password on the paired phone first.";
|
|
255
|
+
const NO_PASSWORD_PASSIVE = "This desktop has no password set, and a passive device needs a token of its own. Set a password on the desktop first, then show a new code.";
|
|
256
|
+
const NO_PASSWORD_NOTE = "This desktop has no password set, so this phone needs no token over Tailscale. It cannot use the Wi-Fi route until a password is set.";
|
|
257
|
+
function reply(req, res, status, body, extra = {}) {
|
|
258
|
+
res.writeHead(status, { "content-type": "application/json", "cache-control": "no-store", ...corsHeaders(req.headers), ...extra });
|
|
259
|
+
res.end(JSON.stringify(body));
|
|
260
|
+
}
|
|
261
|
+
async function readJson(req, max = 4096) {
|
|
262
|
+
const chunks = [];
|
|
263
|
+
let n = 0;
|
|
264
|
+
for await (const c of req) {
|
|
265
|
+
n += c.length;
|
|
266
|
+
if (n > max) {
|
|
267
|
+
req.destroy();
|
|
268
|
+
return {};
|
|
269
|
+
}
|
|
270
|
+
chunks.push(c);
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
const j = JSON.parse(Buffer.concat(chunks).toString("utf8") || "{}");
|
|
274
|
+
return j && typeof j === "object" ? j : {};
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
return {};
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const refuse = (error, message = error === "no-password" ? NO_PASSWORD_LAN : pairRedeemErrorText(error)) => ({ ok: false, error, message });
|
|
281
|
+
/** The redeem decision, over a store and an auth manager — no sockets, so the
|
|
282
|
+
* test suite asks it directly. Never spends the code on a refusal.
|
|
283
|
+
*
|
|
284
|
+
* `presented`: a token the caller sent with the redeem (the phone re-pairing a
|
|
285
|
+
* desktop it already holds a token for). A valid one names the caller's OWN
|
|
286
|
+
* old ledger row, which the new token replaces — otherwise every re-pair left
|
|
287
|
+
* a ghost row in Paired devices. Only the holder of a token can retire it,
|
|
288
|
+
* and only after the code checked out and a new row was minted. */
|
|
289
|
+
export async function redeemPair(body, kind, deps, presented = null) {
|
|
290
|
+
const code = normalizePairCode(body.code);
|
|
291
|
+
if (!code)
|
|
292
|
+
return { status: 400, body: refuse("bad-request") };
|
|
293
|
+
const trustedPath = kind === "loopback" || kind === "tailscale";
|
|
294
|
+
const state = deps.store.peek(code);
|
|
295
|
+
if (state !== "ok")
|
|
296
|
+
return { status: state === "unknown" ? 404 : 410, body: refuse(state) };
|
|
297
|
+
if (!deps.auth.isEnabled() && !trustedPath)
|
|
298
|
+
return { status: 403, body: refuse("no-password") };
|
|
299
|
+
// A passive device without a token would be a full one on Tailscale: refused, code unspent.
|
|
300
|
+
if (!deps.auth.isEnabled() && deps.store.isPassive(code))
|
|
301
|
+
return { status: 403, body: refuse("no-password", NO_PASSWORD_PASSIVE) };
|
|
302
|
+
const spent = deps.store.redeem(code);
|
|
303
|
+
if (spent.state !== "ok")
|
|
304
|
+
return { status: 410, body: refuse("used") };
|
|
305
|
+
const net = await deps.net();
|
|
306
|
+
const host = { name: net.name, base: net.base, httpsUrl: net.httpsUrl, ...(net.lanBase ? { lanBase: net.lanBase } : {}) };
|
|
307
|
+
const out = { ok: true, host };
|
|
308
|
+
if (deps.auth.isEnabled()) {
|
|
309
|
+
const gateBefore = deps.auth.gateTailscale();
|
|
310
|
+
const { token, deviceId } = deps.auth.issueToken(normalizeDeviceName(body.deviceName) ?? "paired phone", kind, spent.passive ? "passive" : undefined);
|
|
311
|
+
out.token = token;
|
|
312
|
+
out.deviceId = deviceId;
|
|
313
|
+
if (spent.passive)
|
|
314
|
+
out.scope = "passive";
|
|
315
|
+
if (presented && deps.auth.deviceFor(presented))
|
|
316
|
+
deps.auth.revoke(presented);
|
|
317
|
+
// A passive row switches the gate on for good: every tokenless Tailscale socket open right
|
|
318
|
+
// now is no longer authorized, and must be told and closed rather than left to have its
|
|
319
|
+
// frames dropped in silence.
|
|
320
|
+
if (deps.auth.gateTailscale() !== gateBefore)
|
|
321
|
+
deps.onGateChange?.();
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
out.note = NO_PASSWORD_NOTE;
|
|
325
|
+
}
|
|
326
|
+
if (trustedPath) {
|
|
327
|
+
const id = lanIdentity(deps.root);
|
|
328
|
+
out.lanIdentity = { hostId: id.hostId, secret: id.secret };
|
|
329
|
+
}
|
|
330
|
+
return { status: 200, body: out };
|
|
331
|
+
}
|
|
332
|
+
/** `POST /api/pair/redeem`, before the auth gate. True when it answered. */
|
|
333
|
+
export async function handlePairPreAuth(req, res, kind, deps) {
|
|
334
|
+
const path = (req.url ?? "/").split("?")[0];
|
|
335
|
+
if (path !== "/api/pair/redeem")
|
|
336
|
+
return false;
|
|
337
|
+
if (req.method !== "POST") {
|
|
338
|
+
reply(req, res, 405, { error: "POST only" });
|
|
339
|
+
return true;
|
|
340
|
+
}
|
|
341
|
+
const key = rateKey(req);
|
|
342
|
+
if (!redeemLimit.take(key)) {
|
|
343
|
+
reply(req, res, 429, refuse("rate-limited"), { "retry-after": String(Math.ceil(redeemLimit.retryAfterMs(key) / 1000) || 1) });
|
|
344
|
+
return true;
|
|
345
|
+
}
|
|
346
|
+
const r = await redeemPair(await readJson(req), kind, deps, tokenFromRequest(req.headers));
|
|
347
|
+
reply(req, res, r.status, r.body);
|
|
348
|
+
return true;
|
|
349
|
+
}
|
|
350
|
+
/** `POST /api/pair/mint`, behind the auth gate. True when it answered. */
|
|
351
|
+
export async function handlePairAuthed(req, res, tok, deps, kind) {
|
|
352
|
+
const path = (req.url ?? "/").split("?")[0];
|
|
353
|
+
if (path !== "/api/pair/mint")
|
|
354
|
+
return false;
|
|
355
|
+
if (req.method !== "POST") {
|
|
356
|
+
reply(req, res, 405, { error: "POST only" });
|
|
357
|
+
return true;
|
|
358
|
+
}
|
|
359
|
+
// Pairing hands out a full token: only the trusted path (loopback / Tailscale) mints, never a LAN token.
|
|
360
|
+
if (!deps.auth.canManage(kind)) {
|
|
361
|
+
reply(req, res, 403, { error: "Pairing codes are made from the desktop or from a phone over Tailscale — not over the Wi-Fi route." });
|
|
362
|
+
return true;
|
|
363
|
+
}
|
|
364
|
+
const passive = (await readJson(req)).passive === true;
|
|
365
|
+
if (passive && !deps.auth.isEnabled()) {
|
|
366
|
+
reply(req, res, 409, { error: NO_PASSWORD_PASSIVE });
|
|
367
|
+
return true;
|
|
368
|
+
}
|
|
369
|
+
const { code, expiresAt } = deps.store.mint(deps.auth.deviceFor(tok)?.id ?? null, passive);
|
|
370
|
+
const net = await deps.net();
|
|
371
|
+
const out = {
|
|
372
|
+
code, expiresAt, base: net.base, ...(passive ? { passive } : {}),
|
|
373
|
+
landingUrl: pairLandingUrl(net.base, code),
|
|
374
|
+
deepLink: pairDeepLink(net.base, code),
|
|
375
|
+
...(net.lanBase ? { lanBase: net.lanBase } : {}),
|
|
376
|
+
};
|
|
377
|
+
reply(req, res, 200, out);
|
|
378
|
+
return true;
|
|
379
|
+
}
|
|
380
|
+
// ── The landing page ────────────────────────────────────────────────────
|
|
381
|
+
const PAGE_HEADERS = {
|
|
382
|
+
"content-type": "text/html; charset=utf-8",
|
|
383
|
+
"cache-control": "no-store",
|
|
384
|
+
"x-frame-options": "DENY",
|
|
385
|
+
"x-content-type-options": "nosniff",
|
|
386
|
+
// The code is in the URL: never hand it to another site as a Referer.
|
|
387
|
+
"referrer-policy": "no-referrer",
|
|
388
|
+
"content-security-policy": "default-src 'none'; style-src 'unsafe-inline'; img-src data:; base-uri 'none'; form-action 'none'; frame-ancestors 'none'",
|
|
389
|
+
};
|
|
390
|
+
function esc(s) {
|
|
391
|
+
return s.replace(/[&<>"']/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c]));
|
|
392
|
+
}
|
|
393
|
+
// lucide-style strokes, inline: no icon font, no external request.
|
|
394
|
+
const svg = (d) => `<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${d}</svg>`;
|
|
395
|
+
const ICON_GLOBE = svg('<circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/>');
|
|
396
|
+
const ICON_DOWNLOAD = svg('<path d="M12 15V3"/><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="m7 10 5 5 5-5"/>');
|
|
397
|
+
const ICON_PHONE = svg('<rect width="14" height="20" x="5" y="2" rx="2" ry="2"/><path d="M12 18h.01"/>');
|
|
398
|
+
const STYLE = `
|
|
399
|
+
:root{--bg:#f7f7f5;--fg:#1b1b1a;--muted:#5d5d58;--card:#fff;--line:#deded8;--accent:#2f5bd3;--accentfg:#fff}
|
|
400
|
+
@media (prefers-color-scheme:dark){:root{--bg:#141413;--fg:#ecece8;--muted:#a3a39c;--card:#1f1f1d;--line:#34342f;--accent:#7d9bff;--accentfg:#0d0d0c}}
|
|
401
|
+
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
|
|
402
|
+
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
|
|
403
|
+
main{max-width:30rem;margin:0 auto;padding:24px 16px 40px}
|
|
404
|
+
h1{font-size:1.4rem;line-height:1.25;margin:0 0 4px}
|
|
405
|
+
p{margin:8px 0}.muted{color:var(--muted);font-size:.93rem}
|
|
406
|
+
.choice{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;margin:14px 0 4px;padding:14px 16px;border-radius:12px;background:var(--accent);color:var(--accentfg);text-decoration:none;font-weight:600;font-size:1.05rem}
|
|
407
|
+
.choice.alt{background:var(--card);color:var(--fg);border:1px solid var(--line)}
|
|
408
|
+
.box{margin-top:24px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
|
|
409
|
+
code{font:600 1.05rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
|
|
410
|
+
a{color:var(--accent)}
|
|
411
|
+
`;
|
|
412
|
+
function page(title, body) {
|
|
413
|
+
return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="referrer" content="no-referrer"><meta name="robots" content="noindex"><title>${esc(title)}</title><style>${STYLE}</style></head><body><main>${body}</main></body></html>`;
|
|
414
|
+
}
|
|
415
|
+
/** Every invalid case renders THIS — nothing about the desktop in it. */
|
|
416
|
+
export function invalidPage() {
|
|
417
|
+
return page("Pairing code not valid", `<h1>This pairing code is not valid</h1><p>It may have expired (codes last 10 minutes), already been used, or been mistyped.</p><p>Ask for a new code on your other phone: in ${BRAND.name}, open the host list and choose "show QR".</p>`);
|
|
418
|
+
}
|
|
419
|
+
/** The page for a live code. Pure: tests render it without a server. */
|
|
420
|
+
export function landingPage(code, net, apk, releaseUrl = null) {
|
|
421
|
+
const addr = net.base;
|
|
422
|
+
// The PWA route is the URL itself, in words, not only a button: a phone that will never take the
|
|
423
|
+
// APK (an iPhone, a locked-down Android) needs the address to open, bookmark or type.
|
|
424
|
+
const webUrl = `${net.httpsUrl ?? addr}/`;
|
|
425
|
+
const route = `<p class="muted">Or open <code>${esc(webUrl)}</code> in this phone's browser — that is the whole app, no install needed${net.httpsUrl ? "; add it to the home screen to keep it" : ""}.</p>`;
|
|
426
|
+
const web = net.httpsUrl
|
|
427
|
+
? `<a class="choice" href="${esc(webUrl)}">${ICON_GLOBE}<span>Use web version</span></a>
|
|
428
|
+
${route}`
|
|
429
|
+
: `<a class="choice" href="${esc(webUrl)}">${ICON_GLOBE}<span>Use web version</span></a>
|
|
430
|
+
${route}
|
|
431
|
+
<p class="muted">This address is plain http, so the browser will not install the app or show notifications. On the desktop, run <code>tailscale serve --bg --https=443 http://127.0.0.1:${esc(new URL(addr).port || "8770")}</code> to give it an https address.</p>`;
|
|
432
|
+
const mb = apk ? Math.max(1, Math.round(apk.size / 1048576)) : 0;
|
|
433
|
+
const src = apkSource(apk, releaseUrl);
|
|
434
|
+
const app = src.kind === "release"
|
|
435
|
+
? `<a class="choice alt" href="${esc(src.url)}" rel="noreferrer">${ICON_DOWNLOAD}<span>Download the Android app</span></a>
|
|
436
|
+
<p class="muted">From the ${esc(BRAND.name)} release page. Android will ask to allow installs from your browser.</p>`
|
|
437
|
+
: apk
|
|
438
|
+
? `<a class="choice alt" href="/pair/${esc(code)}/apk" download="${esc(apkFileName(apk))}">${ICON_DOWNLOAD}<span>Download the Android app</span></a>
|
|
439
|
+
<p class="muted">${mb} MB, built ${esc(new Date(apk.mtimeMs).toISOString().slice(0, 10))}. Android will ask to allow installs from your browser.</p>`
|
|
440
|
+
: `<p class="box">No Android app is offered from this computer. Use the web version${net.httpsUrl ? " — it installs to the home screen" : ""}.</p>`;
|
|
441
|
+
const deep = pairDeepLink(addr, code);
|
|
442
|
+
return page(`Pair with ${net.name}`, `
|
|
443
|
+
<h1>Connect to ${esc(net.name)}</h1>
|
|
444
|
+
<p class="muted">This phone must be on the same tailnet, with Tailscale connected.</p>
|
|
445
|
+
${web}
|
|
446
|
+
${app}
|
|
447
|
+
<div class="box">
|
|
448
|
+
<p>${ICON_PHONE} <strong>After installing</strong></p>
|
|
449
|
+
<p>Open the app, choose "Pair with code", enter</p>
|
|
450
|
+
<p><code>${esc(addr)}</code></p>
|
|
451
|
+
<p>and code <code>${esc(formatPairCode(code))}</code></p>
|
|
452
|
+
<p><a href="${esc(deep)}">Open in app</a></p>
|
|
453
|
+
<p class="muted">The code works once and expires 10 minutes after it was shown.</p>
|
|
454
|
+
</div>`);
|
|
455
|
+
}
|
|
456
|
+
/** `GET /pair/<code>` and `/pair/<code>/apk`. Every other `/pair…` path is
|
|
457
|
+
* the invalid page, never the SPA shell. */
|
|
458
|
+
export async function handlePairPage(req, res, deps) {
|
|
459
|
+
const method = req.method ?? "GET";
|
|
460
|
+
if (method !== "GET" && method !== "HEAD") {
|
|
461
|
+
res.writeHead(405, { ...PAGE_HEADERS, allow: "GET, HEAD" });
|
|
462
|
+
res.end();
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
const path = (req.url ?? "/").split("?")[0];
|
|
466
|
+
const invalid = (status) => { res.writeHead(status, PAGE_HEADERS); res.end(method === "HEAD" ? undefined : invalidPage()); };
|
|
467
|
+
if (!landingLimit.take(rateKey(req))) {
|
|
468
|
+
invalid(429);
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
const p = pairPathCode(path);
|
|
472
|
+
// The code is checked BEFORE anything about this desktop is looked up.
|
|
473
|
+
if (!p || deps.store.peek(p.code) !== "ok") {
|
|
474
|
+
invalid(404);
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
const apk = deps.apk();
|
|
478
|
+
if (p.apk) {
|
|
479
|
+
if (!apk) {
|
|
480
|
+
res.writeHead(404, PAGE_HEADERS);
|
|
481
|
+
res.end(method === "HEAD" ? undefined : page("No Android build", `<h1>No Android build on this computer yet</h1><p>Use the web version instead.</p>`));
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
484
|
+
res.writeHead(200, {
|
|
485
|
+
"content-type": "application/vnd.android.package-archive",
|
|
486
|
+
"content-length": String(apk.size),
|
|
487
|
+
"content-disposition": `attachment; filename="${apkFileName(apk)}"`,
|
|
488
|
+
"cache-control": "no-store",
|
|
489
|
+
"x-content-type-options": "nosniff",
|
|
490
|
+
"referrer-policy": "no-referrer",
|
|
491
|
+
});
|
|
492
|
+
if (method === "HEAD") {
|
|
493
|
+
res.end();
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
const s = createReadStream(apk.path);
|
|
497
|
+
s.on("error", () => res.destroy());
|
|
498
|
+
s.pipe(res);
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
const html = landingPage(p.code, await deps.net(), apk, releaseApkUrl());
|
|
502
|
+
res.writeHead(200, PAGE_HEADERS);
|
|
503
|
+
res.end(method === "HEAD" ? undefined : html);
|
|
504
|
+
}
|
|
505
|
+
//# sourceMappingURL=pair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../src/pair.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type DeviceRow, type PassiveUnlockResponse, type PullItem } from "@waterplane/shared";
|
|
2
|
+
/** `WATERPLANE_PASSIVE_UNLOCK_MS` shortens the unlock for e2e (floored at 1 s,
|
|
3
|
+
* never longer than the 30 minutes the phone's sentence promises). */
|
|
4
|
+
export declare function unlockMsFromEnv(): number;
|
|
5
|
+
/**
|
|
6
|
+
* May a passive (locked) token make this `/api/` request? `queuedApk` answers
|
|
7
|
+
* "is (repoId, worktree-relative path) an APK in the auto-pull queue". Pure:
|
|
8
|
+
* `packages/host/test/passive.test.mjs` asks it directly.
|
|
9
|
+
*/
|
|
10
|
+
export declare function passiveAllows(method: string, path: string, query: URLSearchParams, queuedApk: (repoId: string, relPath: string) => boolean): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Auth MATERIAL is out of a passive row's reach even while it is unlocked: a
|
|
13
|
+
* pairing code (it mints a full token), a revoke, a peer pairing, the LAN
|
|
14
|
+
* identity secret. The unlock lifts the device to full scope for 30 minutes;
|
|
15
|
+
* each of these would outlive it as a credential or an auth change in its own
|
|
16
|
+
* right. `/api/auth/token` and `/api/auth/pin` refuse a passive row the same
|
|
17
|
+
* way in `server/http.ts`, and the WebSocket `auth.*` ops in `routes/system.ts`.
|
|
18
|
+
* Pure: `passive.test.mjs` asks it.
|
|
19
|
+
*/
|
|
20
|
+
export declare function passiveNeverAllows(method: string, path: string): boolean;
|
|
21
|
+
/** The auto-pull queue as a passive device may see it: APKs only. */
|
|
22
|
+
export declare function passiveItems(items: readonly PullItem[]): PullItem[];
|
|
23
|
+
/** `passiveAllows`'s question over a queue. */
|
|
24
|
+
export declare function queuedApkIn(items: readonly PullItem[]): (repoId: string, relPath: string) => boolean;
|
|
25
|
+
export interface PassiveGateOpts {
|
|
26
|
+
now?: () => number;
|
|
27
|
+
unlockMs?: number;
|
|
28
|
+
/** A device's unlock ended (expiry or "Lock now"): close its sockets. */
|
|
29
|
+
onRelock?: (deviceId: string) => void;
|
|
30
|
+
}
|
|
31
|
+
export type UnlockResult = PassiveUnlockResponse & {
|
|
32
|
+
retryAfterMs?: number;
|
|
33
|
+
};
|
|
34
|
+
export declare class PassiveGate {
|
|
35
|
+
readonly file: string;
|
|
36
|
+
private pin;
|
|
37
|
+
private readonly unlocked;
|
|
38
|
+
private readonly now;
|
|
39
|
+
readonly unlockMs: number;
|
|
40
|
+
/** Set by `main.ts` once the socket registry exists (`closeDevice`). */
|
|
41
|
+
onRelock: (id: string) => void;
|
|
42
|
+
/** 5 tries in a burst, then one a minute, per device: a 4-digit PIN takes
|
|
43
|
+
* days to walk, a child mistyping twice is never locked out. */
|
|
44
|
+
private readonly limit;
|
|
45
|
+
constructor(root: string, opts?: PassiveGateOpts);
|
|
46
|
+
pinSet(): boolean;
|
|
47
|
+
/** Set (a valid PIN) or clear (`null`) the unlock PIN. Every live unlock ends. */
|
|
48
|
+
setPin(raw: string | null): void;
|
|
49
|
+
private pinMatches;
|
|
50
|
+
/** A passive device asks to be lifted to full scope. */
|
|
51
|
+
unlock(row: DeviceRow | null, raw: unknown): UnlockResult;
|
|
52
|
+
/** End a device's unlock ("Lock now", expiry, a PIN change). */
|
|
53
|
+
lock(id: string, notify?: boolean): boolean;
|
|
54
|
+
/** Until when this device is unlocked, or null. The clock decides, not the timer. */
|
|
55
|
+
unlockedUntil(id: string | null | undefined): number | null;
|
|
56
|
+
/** Is this row a passive token that is NOT unlocked right now? */
|
|
57
|
+
restricted(row: DeviceRow | null | undefined): boolean;
|
|
58
|
+
}
|