waterplane 0.1.6 → 0.1.11
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 +92 -1
- package/README.md +1 -1
- package/SECURITY.md +11 -3
- package/deploy/node-version +1 -1
- package/node_modules/@waterplane/shared/dist/agentfiles.d.ts +17 -0
- package/node_modules/@waterplane/shared/dist/agentfiles.js +58 -4
- package/node_modules/@waterplane/shared/dist/agentfiles.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/alwaysonwords.d.ts +83 -0
- package/node_modules/@waterplane/shared/dist/alwaysonwords.js +209 -0
- package/node_modules/@waterplane/shared/dist/alwaysonwords.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/autocompact.js +1 -1
- package/node_modules/@waterplane/shared/dist/autocompact.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/backendsources.d.ts +11 -1
- package/node_modules/@waterplane/shared/dist/backendsources.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/branchmode.d.ts +27 -0
- package/node_modules/@waterplane/shared/dist/branchmode.js +80 -0
- package/node_modules/@waterplane/shared/dist/branchmode.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/buildstamp.d.ts +37 -0
- package/node_modules/@waterplane/shared/dist/buildstamp.js +95 -0
- package/node_modules/@waterplane/shared/dist/buildstamp.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/burn.d.ts +16 -1
- package/node_modules/@waterplane/shared/dist/burn.js +30 -0
- package/node_modules/@waterplane/shared/dist/burn.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/changebrief.d.ts +61 -0
- package/node_modules/@waterplane/shared/dist/changebrief.js +70 -0
- package/node_modules/@waterplane/shared/dist/changebrief.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/desktopfiles.d.ts +100 -0
- package/node_modules/@waterplane/shared/dist/desktopfiles.js +192 -0
- package/node_modules/@waterplane/shared/dist/desktopfiles.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/exposure.d.ts +175 -0
- package/node_modules/@waterplane/shared/dist/exposure.js +357 -0
- package/node_modules/@waterplane/shared/dist/exposure.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/exposurepush.d.ts +60 -0
- package/node_modules/@waterplane/shared/dist/exposurepush.js +103 -0
- package/node_modules/@waterplane/shared/dist/exposurepush.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/commits.d.ts +26 -0
- package/node_modules/@waterplane/shared/dist/healthindex/commits.js +57 -0
- package/node_modules/@waterplane/shared/dist/healthindex/commits.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/move.d.ts +25 -0
- package/node_modules/@waterplane/shared/dist/healthindex/move.js +79 -0
- package/node_modules/@waterplane/shared/dist/healthindex/move.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/readings.d.ts +53 -0
- package/node_modules/@waterplane/shared/dist/healthindex/readings.js +154 -0
- package/node_modules/@waterplane/shared/dist/healthindex/readings.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/repoindex.d.ts +41 -0
- package/node_modules/@waterplane/shared/dist/healthindex/repoindex.js +19 -0
- package/node_modules/@waterplane/shared/dist/healthindex/repoindex.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/score.d.ts +26 -0
- package/node_modules/@waterplane/shared/dist/healthindex/score.js +154 -0
- package/node_modules/@waterplane/shared/dist/healthindex/score.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/types.d.ts +206 -0
- package/node_modules/@waterplane/shared/dist/healthindex/types.js +58 -0
- package/node_modules/@waterplane/shared/dist/healthindex/types.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/vs.d.ts +26 -0
- package/node_modules/@waterplane/shared/dist/healthindex/vs.js +38 -0
- package/node_modules/@waterplane/shared/dist/healthindex/vs.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex/words.d.ts +28 -0
- package/node_modules/@waterplane/shared/dist/healthindex/words.js +69 -0
- package/node_modules/@waterplane/shared/dist/healthindex/words.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/healthindex.d.ts +15 -411
- package/node_modules/@waterplane/shared/dist/healthindex.js +8 -602
- package/node_modules/@waterplane/shared/dist/healthindex.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/hints.js +5 -0
- package/node_modules/@waterplane/shared/dist/hints.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/index.d.ts +29 -0
- package/node_modules/@waterplane/shared/dist/index.js +29 -0
- package/node_modules/@waterplane/shared/dist/index.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/intent/kind.d.ts +31 -1
- package/node_modules/@waterplane/shared/dist/intent/kind.js +27 -3
- package/node_modules/@waterplane/shared/dist/intent/kind.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/intent.d.ts +1 -1
- package/node_modules/@waterplane/shared/dist/intent.js +1 -1
- package/node_modules/@waterplane/shared/dist/intent.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/launchmodes.d.ts +2 -0
- package/node_modules/@waterplane/shared/dist/launchmodes.js +12 -0
- package/node_modules/@waterplane/shared/dist/launchmodes.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/ledgerspan.d.ts +59 -0
- package/node_modules/@waterplane/shared/dist/ledgerspan.js +99 -0
- package/node_modules/@waterplane/shared/dist/ledgerspan.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/netretry.d.ts +38 -0
- package/node_modules/@waterplane/shared/dist/netretry.js +31 -0
- package/node_modules/@waterplane/shared/dist/netretry.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/netretrycfg.d.ts +12 -0
- package/node_modules/@waterplane/shared/dist/netretrycfg.js +27 -0
- package/node_modules/@waterplane/shared/dist/netretrycfg.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/nodemin.d.ts +6 -4
- package/node_modules/@waterplane/shared/dist/nodemin.js +6 -4
- package/node_modules/@waterplane/shared/dist/nodemin.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/optins.d.ts +35 -1
- package/node_modules/@waterplane/shared/dist/optins.js +39 -1
- package/node_modules/@waterplane/shared/dist/optins.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/plugin/api.d.ts +364 -0
- package/node_modules/@waterplane/shared/dist/plugin/api.js +2 -0
- package/node_modules/@waterplane/shared/dist/plugin/api.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/plugin/backend.d.ts +197 -0
- package/node_modules/@waterplane/shared/dist/plugin/backend.js +9 -0
- package/node_modules/@waterplane/shared/dist/plugin/backend.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/plugin/manifest.d.ts +160 -0
- package/node_modules/@waterplane/shared/dist/plugin/manifest.js +98 -0
- package/node_modules/@waterplane/shared/dist/plugin/manifest.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/plugin/module.d.ts +98 -0
- package/node_modules/@waterplane/shared/dist/plugin/module.js +13 -0
- package/node_modules/@waterplane/shared/dist/plugin/module.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/plugin/version.d.ts +64 -0
- package/node_modules/@waterplane/shared/dist/plugin/version.js +84 -0
- package/node_modules/@waterplane/shared/dist/plugin/version.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/plugin.d.ts +5 -867
- package/node_modules/@waterplane/shared/dist/plugin.js +27 -186
- package/node_modules/@waterplane/shared/dist/plugin.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/pluginlaunch.d.ts +7 -0
- package/node_modules/@waterplane/shared/dist/prview.d.ts +23 -0
- package/node_modules/@waterplane/shared/dist/prview.js +107 -0
- package/node_modules/@waterplane/shared/dist/prview.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/repohealth.d.ts +4 -0
- package/node_modules/@waterplane/shared/dist/repohealth.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/schedule/schedaction.d.ts +29 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedaction.js +22 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedaction.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/schedule/schedclean.js +26 -0
- package/node_modules/@waterplane/shared/dist/schedule/schedclean.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/schedule.d.ts +1 -1
- package/node_modules/@waterplane/shared/dist/schedule.js +1 -1
- package/node_modules/@waterplane/shared/dist/schedule.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/sessionbudget.d.ts +20 -5
- package/node_modules/@waterplane/shared/dist/sessionbudget.js +42 -16
- package/node_modules/@waterplane/shared/dist/sessionbudget.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/weekburn.d.ts +114 -0
- package/node_modules/@waterplane/shared/dist/weekburn.js +205 -0
- package/node_modules/@waterplane/shared/dist/weekburn.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/alwayson.d.ts +64 -0
- package/node_modules/@waterplane/shared/dist/wire/alwayson.js +7 -0
- package/node_modules/@waterplane/shared/dist/wire/alwayson.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/backend.d.ts +4 -0
- package/node_modules/@waterplane/shared/dist/wire/backendtokens.d.ts +6 -0
- package/node_modules/@waterplane/shared/dist/wire/backendtokens.js +0 -9
- package/node_modules/@waterplane/shared/dist/wire/backendtokens.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/wire/costwindow.d.ts +20 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/clienthost.d.ts +15 -1
- package/node_modules/@waterplane/shared/dist/wire/messages/clientsession.d.ts +10 -0
- package/node_modules/@waterplane/shared/dist/wire/messages/hosttools.d.ts +12 -2
- package/node_modules/@waterplane/shared/dist/wire/notify.d.ts +129 -1
- package/node_modules/@waterplane/shared/dist/wire/notify.js +79 -1
- package/node_modules/@waterplane/shared/dist/wire/notify.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/wire/pullrequest.d.ts +42 -0
- package/node_modules/@waterplane/shared/dist/wire/pullrequest.js +2 -0
- package/node_modules/@waterplane/shared/dist/wire/pullrequest.js.map +1 -0
- package/node_modules/@waterplane/shared/dist/wire/repo.d.ts +119 -0
- package/node_modules/@waterplane/shared/dist/wire/repo.js +8 -3
- package/node_modules/@waterplane/shared/dist/wire/repo.js.map +1 -1
- package/node_modules/@waterplane/shared/dist/wire/sent.d.ts +3 -1
- package/node_modules/@waterplane/shared/dist/wire/session/contextspark.d.ts +7 -0
- package/node_modules/@waterplane/shared/dist/wire/session/info.d.ts +4 -1
- package/node_modules/@waterplane/shared/dist/wire/session/launch.d.ts +25 -0
- package/node_modules/@waterplane/shared/dist/wire/session.d.ts +1 -1
- package/node_modules/@waterplane/shared/dist/wire/telemetry.d.ts +4 -0
- package/node_modules/@waterplane/shared/dist/wire/work.d.ts +13 -0
- package/node_modules/@waterplane/shared/dist/wire/work.js.map +1 -1
- package/npm-shrinkwrap.json +3 -3
- package/package.json +2 -2
- package/packages/extensions/scorecard/waterplane-plugin.json +10 -0
- package/packages/host/dist/agentexposure.d.ts +13 -0
- package/packages/host/dist/agentexposure.js +90 -0
- package/packages/host/dist/agentexposure.js.map +1 -0
- package/packages/host/dist/agentintents.js +2 -2
- package/packages/host/dist/agentintents.js.map +1 -1
- package/packages/host/dist/agentwatch.d.ts +3 -7
- package/packages/host/dist/agentwatch.js.map +1 -1
- package/packages/host/dist/alwayson.d.ts +18 -0
- package/packages/host/dist/alwayson.js +159 -0
- package/packages/host/dist/alwayson.js.map +1 -0
- package/packages/host/dist/answergate.d.ts +3 -7
- package/packages/host/dist/answergate.js.map +1 -1
- package/packages/host/dist/attentionstore.d.ts +61 -0
- package/packages/host/dist/attentionstore.js +162 -0
- package/packages/host/dist/attentionstore.js.map +1 -0
- package/packages/host/dist/backends/claude.js +1 -1
- package/packages/host/dist/backends/claude.js.map +1 -1
- package/packages/host/dist/backends/derive.js +1 -0
- package/packages/host/dist/backends/derive.js.map +1 -1
- package/packages/host/dist/backends/registry.js +4 -1
- package/packages/host/dist/backends/registry.js.map +1 -1
- package/packages/host/dist/backends/types.d.ts +2 -0
- package/packages/host/dist/besidespend.d.ts +22 -0
- package/packages/host/dist/besidespend.js +65 -0
- package/packages/host/dist/besidespend.js.map +1 -0
- package/packages/host/dist/boxkit.d.ts +19 -0
- package/packages/host/dist/boxkit.js +38 -0
- package/packages/host/dist/boxkit.js.map +1 -0
- package/packages/host/dist/branchrules.d.ts +14 -0
- package/packages/host/dist/branchrules.js +47 -0
- package/packages/host/dist/branchrules.js.map +1 -0
- package/packages/host/dist/builds.d.ts +31 -1
- package/packages/host/dist/builds.js +55 -3
- package/packages/host/dist/builds.js.map +1 -1
- package/packages/host/dist/buildversions.d.ts +2 -0
- package/packages/host/dist/buildversions.js +36 -0
- package/packages/host/dist/buildversions.js.map +1 -0
- package/packages/host/dist/burnwatch.d.ts +23 -11
- package/packages/host/dist/burnwatch.js +51 -2
- package/packages/host/dist/burnwatch.js.map +1 -1
- package/packages/host/dist/changebrief.d.ts +37 -0
- package/packages/host/dist/changebrief.js +157 -0
- package/packages/host/dist/changebrief.js.map +1 -0
- package/packages/host/dist/cli/index.js +1 -1
- package/packages/host/dist/cli/index.js.map +1 -1
- package/packages/host/dist/clihealth.d.ts +2 -0
- package/packages/host/dist/clihealth.js +11 -2
- package/packages/host/dist/clihealth.js.map +1 -1
- package/packages/host/dist/compliance.d.ts +5 -1
- package/packages/host/dist/compliance.js +70 -31
- package/packages/host/dist/compliance.js.map +1 -1
- package/packages/host/dist/composer.d.ts +3 -1
- package/packages/host/dist/composer.js +3 -1
- package/packages/host/dist/composer.js.map +1 -1
- package/packages/host/dist/ctxlog/ctxcursor.d.ts +36 -1
- package/packages/host/dist/ctxlog/ctxcursor.js +96 -2
- package/packages/host/dist/ctxlog/ctxcursor.js.map +1 -1
- package/packages/host/dist/ctxlog/ctxproject.js +2 -1
- package/packages/host/dist/ctxlog/ctxproject.js.map +1 -1
- package/packages/host/dist/ctxlog/ctxupdate.js +13 -2
- package/packages/host/dist/ctxlog/ctxupdate.js.map +1 -1
- package/packages/host/dist/diskwatch.d.ts +4 -6
- package/packages/host/dist/diskwatch.js +3 -1
- package/packages/host/dist/diskwatch.js.map +1 -1
- package/packages/host/dist/eraseen.d.ts +6 -0
- package/packages/host/dist/eraseen.js +100 -0
- package/packages/host/dist/eraseen.js.map +1 -0
- package/packages/host/dist/exposure.d.ts +56 -0
- package/packages/host/dist/exposure.js +371 -0
- package/packages/host/dist/exposure.js.map +1 -0
- package/packages/host/dist/exposurepush.d.ts +28 -0
- package/packages/host/dist/exposurepush.js +136 -0
- package/packages/host/dist/exposurepush.js.map +1 -0
- package/packages/host/dist/exposurerun.d.ts +18 -0
- package/packages/host/dist/exposurerun.js +126 -0
- package/packages/host/dist/exposurerun.js.map +1 -0
- package/packages/host/dist/exposurewatch.d.ts +29 -0
- package/packages/host/dist/exposurewatch.js +127 -0
- package/packages/host/dist/exposurewatch.js.map +1 -0
- package/packages/host/dist/extensions/scorecard/host/engine.d.mts +54 -0
- package/packages/host/dist/extensions/scorecard/host/engine.mjs +303 -0
- package/packages/host/dist/extensions/scorecard/host/engine.mjs.map +1 -0
- package/packages/host/dist/extensions/scorecard/host/gitslug.d.mts +5 -0
- package/packages/host/dist/extensions/scorecard/host/gitslug.mjs +45 -0
- package/packages/host/dist/extensions/scorecard/host/gitslug.mjs.map +1 -0
- package/packages/host/dist/extensions/scorecard/host/index.d.mts +15 -0
- package/packages/host/dist/extensions/scorecard/host/index.mjs +47 -0
- package/packages/host/dist/extensions/scorecard/host/index.mjs.map +1 -0
- package/packages/host/dist/extensions/scorecard/host/store.d.mts +12 -0
- package/packages/host/dist/extensions/scorecard/host/store.mjs +91 -0
- package/packages/host/dist/extensions/scorecard/host/store.mjs.map +1 -0
- package/packages/host/dist/extensions/scorecard/shared/logic.d.mts +42 -0
- package/packages/host/dist/extensions/scorecard/shared/logic.mjs +170 -0
- package/packages/host/dist/extensions/scorecard/shared/logic.mjs.map +1 -0
- package/packages/host/dist/extensions/scorecard/shared/wire.d.mts +140 -0
- package/packages/host/dist/extensions/scorecard/shared/wire.mjs +29 -0
- package/packages/host/dist/extensions/scorecard/shared/wire.mjs.map +1 -0
- package/packages/host/dist/forge/github.d.ts +3 -0
- package/packages/host/dist/forge/github.js +82 -0
- package/packages/host/dist/forge/github.js.map +1 -0
- package/packages/host/dist/forge/index.d.ts +14 -0
- package/packages/host/dist/forge/index.js +32 -0
- package/packages/host/dist/forge/index.js.map +1 -0
- package/packages/host/dist/forge/types.d.ts +52 -0
- package/packages/host/dist/forge/types.js +2 -0
- package/packages/host/dist/forge/types.js.map +1 -0
- package/packages/host/dist/git.d.ts +36 -3
- package/packages/host/dist/git.js +119 -41
- package/packages/host/dist/git.js.map +1 -1
- package/packages/host/dist/gitnotify.d.ts +24 -0
- package/packages/host/dist/gitnotify.js +60 -0
- package/packages/host/dist/gitnotify.js.map +1 -0
- package/packages/host/dist/healthwatch.d.ts +2 -1
- package/packages/host/dist/healthwatch.js +4 -2
- package/packages/host/dist/healthwatch.js.map +1 -1
- package/packages/host/dist/intents/adapters.js +45 -14
- package/packages/host/dist/intents/adapters.js.map +1 -1
- package/packages/host/dist/intents/contract.d.ts +4 -0
- package/packages/host/dist/intents/contract.js.map +1 -1
- package/packages/host/dist/intents/fire.js +7 -1
- package/packages/host/dist/intents/fire.js.map +1 -1
- package/packages/host/dist/intents/manager.d.ts +3 -3
- package/packages/host/dist/intents/manager.js +2 -2
- package/packages/host/dist/intents/manager.js.map +1 -1
- package/packages/host/dist/intents/watch.d.ts +10 -2
- package/packages/host/dist/intents/watch.js +27 -2
- package/packages/host/dist/intents/watch.js.map +1 -1
- package/packages/host/dist/localcistatus.d.ts +22 -0
- package/packages/host/dist/localcistatus.js +105 -0
- package/packages/host/dist/localcistatus.js.map +1 -0
- package/packages/host/dist/main.js +40 -10
- package/packages/host/dist/main.js.map +1 -1
- package/packages/host/dist/net.d.ts +2 -0
- package/packages/host/dist/net.js +11 -2
- package/packages/host/dist/net.js.map +1 -1
- package/packages/host/dist/netlog.d.ts +40 -0
- package/packages/host/dist/netlog.js +165 -0
- package/packages/host/dist/netlog.js.map +1 -0
- package/packages/host/dist/netretrycfg.d.ts +7 -0
- package/packages/host/dist/netretrycfg.js +51 -0
- package/packages/host/dist/netretrycfg.js.map +1 -0
- package/packages/host/dist/notifyprefs.d.ts +6 -2
- package/packages/host/dist/notifyprefs.js +20 -5
- package/packages/host/dist/notifyprefs.js.map +1 -1
- package/packages/host/dist/notifytypes.d.ts +58 -0
- package/packages/host/dist/notifytypes.js +2 -0
- package/packages/host/dist/notifytypes.js.map +1 -0
- package/packages/host/dist/opendeliveries.js +24 -0
- package/packages/host/dist/opendeliveries.js.map +1 -1
- package/packages/host/dist/optins.d.ts +28 -1
- package/packages/host/dist/optins.js +96 -4
- package/packages/host/dist/optins.js.map +1 -1
- package/packages/host/dist/peers/agentpeer.js +1 -1
- package/packages/host/dist/peers/agentpeer.js.map +1 -1
- package/packages/host/dist/peers/jobs.d.ts +2 -4
- package/packages/host/dist/peers/jobs.js +6 -1
- package/packages/host/dist/peers/jobs.js.map +1 -1
- package/packages/host/dist/plugins/pluginapi.js +2 -0
- package/packages/host/dist/plugins/pluginapi.js.map +1 -1
- package/packages/host/dist/plugins/pluginregistry.d.ts +3 -8
- package/packages/host/dist/plugins/pluginregistry.js +1 -1
- package/packages/host/dist/plugins/pluginregistry.js.map +1 -1
- package/packages/host/dist/protectmain.d.ts +35 -0
- package/packages/host/dist/protectmain.js +73 -0
- package/packages/host/dist/protectmain.js.map +1 -0
- package/packages/host/dist/prpush.d.ts +30 -0
- package/packages/host/dist/prpush.js +171 -0
- package/packages/host/dist/prpush.js.map +1 -0
- package/packages/host/dist/prs.d.ts +70 -0
- package/packages/host/dist/prs.js +328 -0
- package/packages/host/dist/prs.js.map +1 -0
- package/packages/host/dist/push.d.ts +19 -0
- package/packages/host/dist/push.js.map +1 -1
- package/packages/host/dist/render.d.ts +57 -0
- package/packages/host/dist/render.js +57 -39
- package/packages/host/dist/render.js.map +1 -1
- package/packages/host/dist/repohealth.js +5 -2
- package/packages/host/dist/repohealth.js.map +1 -1
- package/packages/host/dist/repohealthapproval.d.ts +3 -0
- package/packages/host/dist/repohealthapproval.js +92 -2
- package/packages/host/dist/repohealthapproval.js.map +1 -1
- package/packages/host/dist/repos.js +7 -1
- package/packages/host/dist/repos.js.map +1 -1
- package/packages/host/dist/reposkill.d.ts +8 -5
- package/packages/host/dist/reposkill.js +16 -11
- package/packages/host/dist/reposkill.js.map +1 -1
- package/packages/host/dist/reposkilltext.d.ts +8 -1
- package/packages/host/dist/reposkilltext.js +72 -3
- package/packages/host/dist/reposkilltext.js.map +1 -1
- package/packages/host/dist/routes/apihost.js +26 -2
- package/packages/host/dist/routes/apihost.js.map +1 -1
- package/packages/host/dist/routes/apiprs.d.ts +2 -0
- package/packages/host/dist/routes/apiprs.js +45 -0
- package/packages/host/dist/routes/apiprs.js.map +1 -0
- package/packages/host/dist/routes/apirepofiles.js +12 -1
- package/packages/host/dist/routes/apirepofiles.js.map +1 -1
- package/packages/host/dist/routes/apirepowork.js +48 -24
- package/packages/host/dist/routes/apirepowork.js.map +1 -1
- package/packages/host/dist/routes/apiroutes.js +2 -1
- package/packages/host/dist/routes/apiroutes.js.map +1 -1
- package/packages/host/dist/routes/apisession.js +24 -0
- package/packages/host/dist/routes/apisession.js.map +1 -1
- package/packages/host/dist/routes/apistats.js +12 -7
- package/packages/host/dist/routes/apistats.js.map +1 -1
- package/packages/host/dist/routes/apisystem.js +23 -1
- package/packages/host/dist/routes/apisystem.js.map +1 -1
- package/packages/host/dist/routes/apitable.d.ts +10 -0
- package/packages/host/dist/routes/apitable.js.map +1 -1
- package/packages/host/dist/routes/apiweekburn.d.ts +2 -0
- package/packages/host/dist/routes/apiweekburn.js +30 -0
- package/packages/host/dist/routes/apiweekburn.js.map +1 -0
- package/packages/host/dist/routes/session.js +4 -0
- package/packages/host/dist/routes/session.js.map +1 -1
- package/packages/host/dist/routes/system.js +33 -6
- package/packages/host/dist/routes/system.js.map +1 -1
- package/packages/host/dist/routes/types.d.ts +29 -21
- package/packages/host/dist/routes/work/workbuild.js +3 -2
- package/packages/host/dist/routes/work/workbuild.js.map +1 -1
- package/packages/host/dist/routes/work/workschedule.js +33 -3
- package/packages/host/dist/routes/work/workschedule.js.map +1 -1
- package/packages/host/dist/screenlog.d.ts +20 -0
- package/packages/host/dist/screenlog.js +40 -0
- package/packages/host/dist/screenlog.js.map +1 -1
- package/packages/host/dist/server/clients.d.ts +14 -24
- package/packages/host/dist/server/clients.js +77 -11
- package/packages/host/dist/server/clients.js.map +1 -1
- package/packages/host/dist/server/ctx.d.ts +2 -0
- package/packages/host/dist/server/ctxseal.d.ts +1 -1
- package/packages/host/dist/server/ctxseal.js +6 -6
- package/packages/host/dist/server/ctxseal.js.map +1 -1
- package/packages/host/dist/server/deliveries.js +4 -2
- package/packages/host/dist/server/deliveries.js.map +1 -1
- package/packages/host/dist/server/http.js +2 -2
- package/packages/host/dist/server/http.js.map +1 -1
- package/packages/host/dist/server/intentDeps.js +4 -1
- package/packages/host/dist/server/intentDeps.js.map +1 -1
- package/packages/host/dist/server/intentEvents.js +9 -4
- package/packages/host/dist/server/intentEvents.js.map +1 -1
- package/packages/host/dist/server/scan.js +23 -1
- package/packages/host/dist/server/scan.js.map +1 -1
- package/packages/host/dist/server/sessionEvents.js +37 -10
- package/packages/host/dist/server/sessionEvents.js.map +1 -1
- package/packages/host/dist/sessions/agentpoll.d.ts +31 -0
- package/packages/host/dist/sessions/agentpoll.js +176 -0
- package/packages/host/dist/sessions/agentpoll.js.map +1 -0
- package/packages/host/dist/sessions/apiretry.d.ts +59 -0
- package/packages/host/dist/sessions/apiretry.js +240 -0
- package/packages/host/dist/sessions/apiretry.js.map +1 -0
- package/packages/host/dist/sessions/askwatch.d.ts +62 -0
- package/packages/host/dist/sessions/askwatch.js +169 -0
- package/packages/host/dist/sessions/askwatch.js.map +1 -0
- package/packages/host/dist/sessions/boxes.d.ts +2 -23
- package/packages/host/dist/sessions/boxes.js +10 -664
- package/packages/host/dist/sessions/boxes.js.map +1 -1
- package/packages/host/dist/sessions/boxread.d.ts +47 -0
- package/packages/host/dist/sessions/boxread.js +628 -0
- package/packages/host/dist/sessions/boxread.js.map +1 -0
- package/packages/host/dist/sessions/core.d.ts +16 -1
- package/packages/host/dist/sessions/ctxseries.js +3 -0
- package/packages/host/dist/sessions/ctxseries.js.map +1 -1
- package/packages/host/dist/sessions/drive.d.ts +20 -6
- package/packages/host/dist/sessions/drive.js +43 -8
- package/packages/host/dist/sessions/drive.js.map +1 -1
- package/packages/host/dist/sessions/knobs.d.ts +8 -0
- package/packages/host/dist/sessions/knobs.js +9 -0
- package/packages/host/dist/sessions/knobs.js.map +1 -1
- package/packages/host/dist/sessions/record.js +7 -2
- package/packages/host/dist/sessions/record.js.map +1 -1
- package/packages/host/dist/sessions/resume.d.ts +17 -0
- package/packages/host/dist/sessions/resume.js +65 -11
- package/packages/host/dist/sessions/resume.js.map +1 -1
- package/packages/host/dist/sessions/roster.js +3 -0
- package/packages/host/dist/sessions/roster.js.map +1 -1
- package/packages/host/dist/sessions/sidechannel.d.ts +1 -1
- package/packages/host/dist/sessions/sidechannel.js +2 -2
- package/packages/host/dist/sessions/turn.d.ts +15 -58
- package/packages/host/dist/sessions/turn.js +17 -356
- package/packages/host/dist/sessions/turn.js.map +1 -1
- package/packages/host/dist/sessions.d.ts +7 -1
- package/packages/host/dist/sessions.js +22 -13
- package/packages/host/dist/sessions.js.map +1 -1
- package/packages/host/dist/settle.d.ts +6 -0
- package/packages/host/dist/settle.js +26 -21
- package/packages/host/dist/settle.js.map +1 -1
- package/packages/host/dist/setupprefs.d.ts +26 -1
- package/packages/host/dist/setupprefs.js +49 -1
- package/packages/host/dist/setupprefs.js.map +1 -1
- package/packages/host/dist/sidecar/sidecarname.d.ts +2 -0
- package/packages/host/dist/sidecar/sidecarname.js +5 -1
- package/packages/host/dist/sidecar/sidecarname.js.map +1 -1
- package/packages/host/dist/sidecar/sidecarroute.d.ts +1 -1
- package/packages/host/dist/sidecar/sidecarroute.js +5 -0
- package/packages/host/dist/sidecar/sidecarroute.js.map +1 -1
- package/packages/host/dist/sidecar.d.ts +1 -1
- package/packages/host/dist/sidecar.js +1 -1
- package/packages/host/dist/sidecar.js.map +1 -1
- package/packages/host/dist/tokenscan.d.ts +4 -0
- package/packages/host/dist/tokenscan.js +6 -1
- package/packages/host/dist/tokenscan.js.map +1 -1
- package/packages/host/dist/tokenstats.js +3 -1
- package/packages/host/dist/tokenstats.js.map +1 -1
- package/packages/host/dist/transcript/transcriptparse.js +6 -1
- package/packages/host/dist/transcript/transcriptparse.js.map +1 -1
- package/packages/host/dist/transcript/transcriptturns.d.ts +29 -0
- package/packages/host/dist/transcript/transcriptturns.js +27 -0
- package/packages/host/dist/transcript/transcriptturns.js.map +1 -1
- package/packages/host/dist/transcript.d.ts +1 -1
- package/packages/host/dist/transcript.js +1 -1
- package/packages/host/dist/transcript.js.map +1 -1
- package/packages/host/dist/usagesources.d.ts +1 -1
- package/packages/host/dist/usagesources.js +7 -2
- package/packages/host/dist/usagesources.js.map +1 -1
- package/packages/host/dist/weekburn.d.ts +75 -0
- package/packages/host/dist/weekburn.js +251 -0
- package/packages/host/dist/weekburn.js.map +1 -0
- package/packages/host/dist/worktreeleftover.d.ts +9 -0
- package/packages/host/dist/worktreeleftover.js +17 -1
- package/packages/host/dist/worktreeleftover.js.map +1 -1
- package/packages/web/dist/assets/demo-C1GHaeTv.js +23 -0
- package/packages/web/dist/assets/icons-DlcvcZoo.js +1 -0
- package/packages/web/dist/assets/index-BBc6xwDA.css +1 -0
- package/packages/web/dist/assets/index-DzQKnksZ.js +169 -0
- package/packages/web/dist/assets/shared-Cl34umPA.js +47 -0
- package/packages/web/dist/assets/{sheets-Bjv2L-cG.css → sheets-DoUhPGK0.css} +1 -1
- package/packages/web/dist/assets/sheets-_3_SvXAx.js +220 -0
- package/packages/web/dist/build-id.txt +1 -1
- package/packages/web/dist/buildstamp.json +1 -0
- package/packages/web/dist/index.html +7 -7
- package/packages/web/dist/sw.js +14 -3
- package/release.json +7 -4
- package/packages/web/dist/assets/demo-CXlqlYE4.js +0 -23
- package/packages/web/dist/assets/icons-BbqDBVjw.js +0 -1
- package/packages/web/dist/assets/index-CgPoyb3Y.css +0 -1
- package/packages/web/dist/assets/index-D5JKj8DK.js +0 -169
- package/packages/web/dist/assets/shared-eyaskl5l.js +0 -47
- package/packages/web/dist/assets/sheets-BzzL2re1.js +0 -204
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rows and sentences of the always-on context feature, worded ONCE for the phone and the
|
|
3
|
+
* VS Code extension: what a repo and this desktop put in every turn (`alwaysOnRows`,
|
|
4
|
+
* `alwaysOnTotalsWords`) and what one conversation's first request carried (`carriedRows`,
|
|
5
|
+
* `carriedWords`, `carriedRemainder`).
|
|
6
|
+
*
|
|
7
|
+
* Rules (CLAUDE.md, skill `web-numbers`): a total is never said without its split; chars are the
|
|
8
|
+
* fact and tokens per part are an estimate, always worded `~`/"about"; an unsized row is NAMED,
|
|
9
|
+
* never counted as 0; nothing here refuses or applies anything.
|
|
10
|
+
*/
|
|
11
|
+
import { countedByThreshold, claudeWeightInput, MCP_UNSIZED } from "./agentfiles.js";
|
|
12
|
+
import { CHARS_PER_TOKEN, weighContext } from "./contextweight.js";
|
|
13
|
+
import { fmtCount } from "./tokens.js";
|
|
14
|
+
import { CARRIED_KINDS } from "./wire/alwayson.js";
|
|
15
|
+
const tokOf = (chars) => Math.round(chars / CHARS_PER_TOKEN);
|
|
16
|
+
const plural = (n, one, many = `${one}s`) => `${n} ${n === 1 ? one : many}`;
|
|
17
|
+
/** One row per inventory row, in the inventory's order. */
|
|
18
|
+
export function alwaysOnRows(files) {
|
|
19
|
+
return files.map((f) => {
|
|
20
|
+
const readers = [...new Set(f.parts.flatMap((p) => p.readers))];
|
|
21
|
+
const sum = (k) => (f.unsized ? null : f.parts.filter((p) => p.when.kind === k).reduce((n, p) => n + p.chars, 0));
|
|
22
|
+
const row = {
|
|
23
|
+
path: f.path, kind: f.kind, scope: f.scope ?? "repo", readers,
|
|
24
|
+
always: sum("always"), scoped: sum("scoped"), onDemand: sum("on-demand"),
|
|
25
|
+
counted: countedByThreshold(f) && readers.includes("claude"),
|
|
26
|
+
};
|
|
27
|
+
if (f.unsized)
|
|
28
|
+
row.unsized = f.unsized;
|
|
29
|
+
if (f.off)
|
|
30
|
+
row.off = f.off;
|
|
31
|
+
return row;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Claude Code's every-turn chars over a set of rows, how many sized files that is, how many MCP
|
|
36
|
+
* servers send schemas nobody can size, and how many other rows have no number (a plugin pack not
|
|
37
|
+
* on disk, a source that could not be read, a server declined here) — never called servers.
|
|
38
|
+
*/
|
|
39
|
+
function claudeAlways(files) {
|
|
40
|
+
let chars = 0, n = 0, servers = 0, other = 0;
|
|
41
|
+
for (const f of files) {
|
|
42
|
+
if (f.unsized) {
|
|
43
|
+
if (f.unsized === MCP_UNSIZED)
|
|
44
|
+
servers++;
|
|
45
|
+
else
|
|
46
|
+
other++;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const mine = f.parts.filter((p) => p.readers.includes("claude") && p.when.kind === "always");
|
|
50
|
+
if (!mine.length)
|
|
51
|
+
continue;
|
|
52
|
+
n++;
|
|
53
|
+
chars += mine.reduce((s, p) => s + p.chars, 0);
|
|
54
|
+
}
|
|
55
|
+
return { chars, files: n, servers, other };
|
|
56
|
+
}
|
|
57
|
+
const unsizedWords = (c, where) => (c.servers ? ` ${plural(c.servers, "MCP server")} ${where}add tool schemas nobody can size from here.` : "")
|
|
58
|
+
+ (c.other ? ` ${plural(c.other, "more row")} ${c.other === 1 ? "has" : "have"} no size here; each says why.` : "");
|
|
59
|
+
/**
|
|
60
|
+
* The list's lead: what Claude Code carries every turn from the repo's files, how much of that
|
|
61
|
+
* the threshold row counts (and which families), then this desktop's rows the same way. The total
|
|
62
|
+
* never stands without the split; unsized rows are counted by name, never as 0.
|
|
63
|
+
*/
|
|
64
|
+
export function alwaysOnTotalsWords(files, fmt = fmtCount) {
|
|
65
|
+
const repo = files.filter((f) => f.scope !== "desktop");
|
|
66
|
+
const desk = files.filter((f) => f.scope === "desktop");
|
|
67
|
+
const out = [];
|
|
68
|
+
const r = claudeAlways(repo);
|
|
69
|
+
if (r.files) {
|
|
70
|
+
const counted = weighContext(claudeWeightInput(repo)).alwaysOnChars;
|
|
71
|
+
const listed = r.chars - counted;
|
|
72
|
+
const split = listed > 0
|
|
73
|
+
? `; the threshold row counts ${fmt(counted)} of those (CLAUDE.md, its imports, rules, skill descriptions), the other ${fmt(listed)} are listed beside it (CLAUDE.local.md, subagent descriptions)`
|
|
74
|
+
: "; the threshold row counts all of them (CLAUDE.md, its imports, rules, skill descriptions)";
|
|
75
|
+
out.push(`Claude Code carries ~${fmt(tokOf(r.chars))} tokens (${fmt(r.chars)} chars) from ${plural(r.files, "repo file")} on every turn${split}.${unsizedWords(r, "")}`);
|
|
76
|
+
}
|
|
77
|
+
else if (repo.length) {
|
|
78
|
+
out.push(`Claude Code carries nothing from this repo's files on every turn.${unsizedWords(r, "")}`);
|
|
79
|
+
}
|
|
80
|
+
const d = claudeAlways(desk);
|
|
81
|
+
if (d.files) {
|
|
82
|
+
out.push(`This desktop adds ~${fmt(tokOf(d.chars))} tokens (${fmt(d.chars)} chars) from ${plural(d.files, "file")} to every session, whatever the repo; the threshold row counts none of it.${unsizedWords(d, "of this desktop's ")}`);
|
|
83
|
+
}
|
|
84
|
+
else if (desk.length && (d.servers || d.other)) {
|
|
85
|
+
out.push(unsizedWords(d, "of this desktop's ").trim());
|
|
86
|
+
}
|
|
87
|
+
return out.join(" ");
|
|
88
|
+
}
|
|
89
|
+
/** The CLI config dir as words when the reader did not say (`RepoInstructionsDoc.configDir` absent: an older host). */
|
|
90
|
+
export const DEFAULT_CONFIG_DIR_WORDS = "~/.claude";
|
|
91
|
+
/**
|
|
92
|
+
* A desktop row's path as words, ONE rule for the phone and VS Code: a config-dir-relative path gets
|
|
93
|
+
* the config dir in front; a `~` or absolute path (`~/.claude.json`, a plugin installed elsewhere)
|
|
94
|
+
* is already words; the managed-plugins row has no path at all.
|
|
95
|
+
*/
|
|
96
|
+
export function desktopPathWords(p, configDirWords = DEFAULT_CONFIG_DIR_WORDS) {
|
|
97
|
+
if (!p)
|
|
98
|
+
return "not on disk";
|
|
99
|
+
if (p.startsWith("~") || p.startsWith("/") || /^[A-Za-z]:[\\/]/.test(p) || p.startsWith("\\\\"))
|
|
100
|
+
return p;
|
|
101
|
+
return `${configDirWords.replace(/[\\/]+$/, "")}/${p}`;
|
|
102
|
+
}
|
|
103
|
+
/** Whether an unsized row is an MCP server whose schemas arrive at connect time (the When column says "every request" only for those). */
|
|
104
|
+
export const isUnsizedServer = (f) => f.unsized === MCP_UNSIZED;
|
|
105
|
+
export const CARRIED_REMAINDER_LABEL = "everything else in the first request: your prompt, and whatever the harness sent that the log does not record (≈)";
|
|
106
|
+
const UNDOC = "(undocumented record)";
|
|
107
|
+
function carriedLabel(p) {
|
|
108
|
+
const n = p.count;
|
|
109
|
+
switch (p.kind) {
|
|
110
|
+
case "instructions": return "instruction files";
|
|
111
|
+
case "skill_listing": return n != null ? `skill listing (${plural(n, "skill")})` : "skill listing";
|
|
112
|
+
case "mcp_instructions": return n != null ? `MCP instructions (${plural(n, "server")})` : "MCP instructions";
|
|
113
|
+
case "deferred_tools": return n != null ? `deferred tool names (${n})` : "deferred tool names";
|
|
114
|
+
case "agent_listing": return n != null ? `subagent listing (${n})` : "subagent listing";
|
|
115
|
+
case "hook_context": return n != null && n > 1 ? `hook context (${n})` : "hook context";
|
|
116
|
+
case "system_prompt": return `system prompt ${UNDOC}`;
|
|
117
|
+
case "tool_schemas": return `tool schemas ${UNDOC}`;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const charsWords = (chars, fmt) => `~${fmt(tokOf(chars))} tokens · ${fmt(chars)} chars`;
|
|
121
|
+
const partsTok = (c) => Math.round(c.parts.reduce((n, p) => n + p.chars, 0) / CHARS_PER_TOKEN);
|
|
122
|
+
/**
|
|
123
|
+
* `firstRequestTok` minus the parts' estimated tokens; null without the anchor, and null — never 0 —
|
|
124
|
+
* when the estimate already exceeds the request (JSON schemas tokenise denser than ~4 chars a token,
|
|
125
|
+
* so a tool-heavy request can overshoot): the remainder then cannot be placed, and `carriedWords`
|
|
126
|
+
* says so. An estimate by construction (the parts are chars), so it is always worded `≈`.
|
|
127
|
+
*/
|
|
128
|
+
export function carriedRemainder(c) {
|
|
129
|
+
if (c.firstRequestTok == null)
|
|
130
|
+
return null;
|
|
131
|
+
const rest = c.firstRequestTok - partsTok(c);
|
|
132
|
+
return rest >= 0 ? rest : null;
|
|
133
|
+
}
|
|
134
|
+
/** The sentence beside a remainder that could not be placed. */
|
|
135
|
+
export const CARRIED_REMAINDER_UNPLACED = "The parts' estimate already exceeds the request, so the rest (your prompt among it) cannot be placed.";
|
|
136
|
+
/** The parts in `CarriedKind` order, then the remainder row when the first request has been answered and the remainder could be placed (`carriedRemainder`). */
|
|
137
|
+
export function carriedRows(c, fmt = fmtCount) {
|
|
138
|
+
const order = (k) => CARRIED_KINDS.indexOf(k);
|
|
139
|
+
const rows = [...c.parts].sort((a, b) => order(a.kind) - order(b.kind)).map((p) => {
|
|
140
|
+
const row = { key: p.kind, label: carriedLabel(p), chars: p.chars, tok: tokOf(p.chars), words: charsWords(p.chars, fmt) };
|
|
141
|
+
if (p.files)
|
|
142
|
+
row.files = p.files.map((f) => ({ label: `${f.path} · ${f.type}`, path: f.path, type: f.type, chars: f.chars, words: charsWords(f.chars, fmt) }));
|
|
143
|
+
if (p.names)
|
|
144
|
+
row.names = p.names;
|
|
145
|
+
if (p.undocumented)
|
|
146
|
+
row.undocumented = true;
|
|
147
|
+
return row;
|
|
148
|
+
});
|
|
149
|
+
const rest = carriedRemainder(c);
|
|
150
|
+
if (rest != null)
|
|
151
|
+
rows.push({ key: "remainder", label: CARRIED_REMAINDER_LABEL, chars: null, tok: rest, words: `≈${fmt(rest)} tokens` });
|
|
152
|
+
return rows;
|
|
153
|
+
}
|
|
154
|
+
const PART_NOUN = {
|
|
155
|
+
instructions: "the instruction files",
|
|
156
|
+
skill_listing: "the skill listing",
|
|
157
|
+
mcp_instructions: "MCP instructions",
|
|
158
|
+
deferred_tools: "deferred tool names",
|
|
159
|
+
agent_listing: "the subagent listing",
|
|
160
|
+
hook_context: "hook context",
|
|
161
|
+
system_prompt: "the system prompt",
|
|
162
|
+
tool_schemas: "tool schemas",
|
|
163
|
+
};
|
|
164
|
+
const capital = (s) => s.charAt(0).toUpperCase() + s.slice(1);
|
|
165
|
+
const andList = (xs) => (xs.length <= 1 ? xs.join("") : `${xs.slice(0, -1).join(", ")} and ${xs[xs.length - 1]}`);
|
|
166
|
+
/**
|
|
167
|
+
* The section's lead: the whole first request, then how much of it the documented attachments
|
|
168
|
+
* explain (chars, and tokens as "about"), what the undocumented snapshot adds where it was seen,
|
|
169
|
+
* and what the rest is. Later deltas are counted in one sentence, never folded in.
|
|
170
|
+
* `unplacedShown`: the caller draws `CARRIED_REMAINDER_UNPLACED`'s fact itself (the phone's strip
|
|
171
|
+
* caption), so the lead leaves it out rather than saying it twice.
|
|
172
|
+
*/
|
|
173
|
+
export function carriedWords(c, fmt = fmtCount, opts = {}) {
|
|
174
|
+
const kinds = new Set(c.parts.map((p) => p.kind));
|
|
175
|
+
const documented = CARRIED_KINDS.filter((k) => kinds.has(k) && k !== "system_prompt" && k !== "tool_schemas");
|
|
176
|
+
const docChars = c.parts.filter((p) => !p.undocumented && p.kind !== "system_prompt" && p.kind !== "tool_schemas").reduce((n, p) => n + p.chars, 0);
|
|
177
|
+
const named = (c.laterKinds ?? []).filter((k) => k in PART_NOUN);
|
|
178
|
+
const later = named.length
|
|
179
|
+
? ` ${capital(andList(named.map((k) => PART_NOUN[k])))} changed later in the conversation; the change is not folded in.`
|
|
180
|
+
: c.laterDeltas > 0
|
|
181
|
+
? ` ${c.laterDeltas === 1 ? "One kind" : `${c.laterDeltas} kinds`} of these changed later in the conversation; the change is not folded in.`
|
|
182
|
+
: "";
|
|
183
|
+
if (c.firstRequestTok == null) {
|
|
184
|
+
return `No request has been answered yet; these are the attachments the CLI has written so far (chars).${later}`;
|
|
185
|
+
}
|
|
186
|
+
const out = [`The first request carried ${fmt(c.firstRequestTok)} tokens.`];
|
|
187
|
+
if (documented.length)
|
|
188
|
+
out.push(`About ${fmt(tokOf(docChars))} of them (${fmt(docChars)} chars) are ${andList(documented.map((k) => PART_NOUN[k]))} the CLI attached;`);
|
|
189
|
+
const snap = ["system_prompt", "tool_schemas"].filter((k) => kinds.has(k));
|
|
190
|
+
const unknown = ["system_prompt", "tool_schemas"].filter((k) => !kinds.has(k)).map((k) => PART_NOUN[k]);
|
|
191
|
+
if (snap.length) {
|
|
192
|
+
const said = snap.map((k) => {
|
|
193
|
+
const chars = c.parts.filter((p) => p.kind === k).reduce((n, p) => n + p.chars, 0);
|
|
194
|
+
return `${PART_NOUN[k]} at about ${fmt(tokOf(chars))} tokens (${fmt(chars)} chars)`;
|
|
195
|
+
});
|
|
196
|
+
out.push(`${documented.length ? "an" : "An"} undocumented record puts ${andList(said)};`);
|
|
197
|
+
}
|
|
198
|
+
const lead = out[out.length - 1].endsWith(";");
|
|
199
|
+
if (carriedRemainder(c) == null) {
|
|
200
|
+
if (!opts.unplacedShown)
|
|
201
|
+
out.push(lead ? CARRIED_REMAINDER_UNPLACED.replace(/^The/, "the") : CARRIED_REMAINDER_UNPLACED);
|
|
202
|
+
else if (lead)
|
|
203
|
+
out[out.length - 1] = out[out.length - 1].replace(/;$/, ".");
|
|
204
|
+
}
|
|
205
|
+
else
|
|
206
|
+
out.push(`${lead ? "the" : "The"} rest is ${andList([...unknown, "your prompt with what the harness added to it"])}.`);
|
|
207
|
+
return out.join(" ") + later;
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=alwaysonwords.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alwaysonwords.js","sourceRoot":"","sources":["../src/alwaysonwords.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ export function cleanAutoCompactDefault(raw) {
|
|
|
52
52
|
* They are never in "Fix all", never counted as "one-tap fixable", and the
|
|
53
53
|
* phone draws them behind a two-tap confirm. One list, read by both ends.
|
|
54
54
|
*/
|
|
55
|
-
export const CONFIRM_GATED_FIXES = ["auto-compact", "android-toolchain", "signing-key"];
|
|
55
|
+
export const CONFIRM_GATED_FIXES = ["auto-compact", "android-toolchain", "signing-key", "protect-main", "era-seen", "local-ci-status"];
|
|
56
56
|
/**
|
|
57
57
|
* The `android-toolchain` fix installs a JDK and the Android SDK and accepts the SDK licence on
|
|
58
58
|
* the person's behalf, so its confirm text IS the consent text: what, how big, where, and the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompact.js","sourceRoot":"","sources":["../src/autocompact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAYnC;8CAC8C;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C,qEAAqE;AACrE,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhG;gFACgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAY;IAClD,MAAM,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,8CAA8C,EAAE,CAAC;IACzH,IAAI,CAAC,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC/D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;IACzJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB,CAAC,cAAc,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"autocompact.js","sourceRoot":"","sources":["../src/autocompact.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,6 +141,13 @@ export interface DeliverySource {
|
|
|
141
141
|
export interface TranscriptSource {
|
|
142
142
|
/** The CLI's own change stamp; drives the 204 poll. Null = unknown (read anyway). */
|
|
143
143
|
updatedAt(s: SourceSession): number | null;
|
|
144
|
+
/**
|
|
145
|
+
* Served verbatim, so a turn's subagent fields (`agentTypes`, `agentsRunning`, `agentModels`,
|
|
146
|
+
* `agentCostUsd`, `agentUnpricedTok`) are the plugin's to fill — only off a record that links the
|
|
147
|
+
* agent to that turn's own tool call, and the token/cost ones only beside the turn's OWN
|
|
148
|
+
* `tokens`/`models` (the phone folds `agentModels` into the turn's model mix, so agents alone
|
|
149
|
+
* read as the whole turn). An agent that cannot be placed withholds the turn's agent figures.
|
|
150
|
+
*/
|
|
144
151
|
read(s: SourceSession, detail: "lite" | "full"): Omit<TranscriptDoc, "sessionId" | "source"> | null;
|
|
145
152
|
}
|
|
146
153
|
/** Named `Source…` because wire/session.ts already exports a `ContextSample`. */
|
|
@@ -312,7 +319,10 @@ export interface SourceAgent {
|
|
|
312
319
|
endedAt?: number;
|
|
313
320
|
lastWriteAt?: number;
|
|
314
321
|
}
|
|
315
|
-
/**
|
|
322
|
+
/**
|
|
323
|
+
* Polled on `agents.ts`'s cadence. Background SHELLS have no slot: no plugin CLI writes down which
|
|
324
|
+
* of its shells is still running (docs/analysis/backend-parity-v3/c11.md), so they stay ABSENT.
|
|
325
|
+
*/
|
|
316
326
|
export interface AgentSource {
|
|
317
327
|
list(s: SourceSession): SourceAgent[] | null;
|
|
318
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendsources.js","sourceRoot":"","sources":["../src/backendsources.ts"],"names":[],"mappings":"AAoGA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"backendsources.js","sourceRoot":"","sources":["../src/backendsources.ts"],"names":[],"mappings":"AAoGA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAiJjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a remote's own rules demand of a push to the default branch — read from
|
|
3
|
+
* GitHub's rules, never chosen by waterplane. `direct` is today's behaviour and
|
|
4
|
+
* the owner's: no rules, or only force-push/deletion blocked. Only a
|
|
5
|
+
* `pull_request`, `required_status_checks` or required-review rule makes it
|
|
6
|
+
* anything else. Unparseable input is ABSENT (undefined), never a guess.
|
|
7
|
+
*/
|
|
8
|
+
export type BranchMode = "direct" | "pr" | "pr-checks";
|
|
9
|
+
export type MergeMethod = "merge" | "squash" | "rebase";
|
|
10
|
+
export interface BranchRules {
|
|
11
|
+
mode: BranchMode;
|
|
12
|
+
/** Status-check contexts the rules require (empty unless `pr-checks`). */
|
|
13
|
+
requiredChecks: string[];
|
|
14
|
+
/** Required checks pinned to one GitHub App (integration_id / app_id): only that app's status
|
|
15
|
+
* satisfies them, so a `local-ci` status from the user's token would not. Omitted when none. */
|
|
16
|
+
pinnedChecks?: string[];
|
|
17
|
+
requiredApprovals: number;
|
|
18
|
+
/** Merge methods the repo allows; empty = the repo JSON did not say. */
|
|
19
|
+
allowedMerge: MergeMethod[];
|
|
20
|
+
autoMerge: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @param rules parsed `repos/{slug}/rules/branches/{branch}` (array of {type, parameters})
|
|
24
|
+
* @param classic parsed classic `branches/{b}/protection`, or null/undefined when none (404)
|
|
25
|
+
* @param repo parsed `repos/{slug}` (allow_*_merge, allow_auto_merge)
|
|
26
|
+
*/
|
|
27
|
+
export declare function classifyBranchRules(rules: unknown, classic?: unknown, repo?: unknown): BranchRules | undefined;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
const isObj = (v) => !!v && typeof v === "object" && !Array.isArray(v);
|
|
2
|
+
/**
|
|
3
|
+
* @param rules parsed `repos/{slug}/rules/branches/{branch}` (array of {type, parameters})
|
|
4
|
+
* @param classic parsed classic `branches/{b}/protection`, or null/undefined when none (404)
|
|
5
|
+
* @param repo parsed `repos/{slug}` (allow_*_merge, allow_auto_merge)
|
|
6
|
+
*/
|
|
7
|
+
export function classifyBranchRules(rules, classic, repo) {
|
|
8
|
+
if (!Array.isArray(rules))
|
|
9
|
+
return undefined;
|
|
10
|
+
if (classic !== undefined && classic !== null && !isObj(classic))
|
|
11
|
+
return undefined;
|
|
12
|
+
let pr = false;
|
|
13
|
+
let approvals = 0;
|
|
14
|
+
const checks = new Set();
|
|
15
|
+
const pinned = new Set();
|
|
16
|
+
let statusChecks = false;
|
|
17
|
+
for (const r of rules) {
|
|
18
|
+
if (!isObj(r) || typeof r.type !== "string")
|
|
19
|
+
return undefined;
|
|
20
|
+
const p = isObj(r.parameters) ? r.parameters : {};
|
|
21
|
+
if (r.type === "pull_request") {
|
|
22
|
+
pr = true;
|
|
23
|
+
const n = p.required_approving_review_count;
|
|
24
|
+
if (typeof n === "number" && n > 0)
|
|
25
|
+
approvals = Math.max(approvals, Math.floor(n));
|
|
26
|
+
}
|
|
27
|
+
else if (r.type === "required_status_checks") {
|
|
28
|
+
statusChecks = true;
|
|
29
|
+
const list = p.required_status_checks;
|
|
30
|
+
if (Array.isArray(list))
|
|
31
|
+
for (const c of list)
|
|
32
|
+
if (isObj(c) && typeof c.context === "string") {
|
|
33
|
+
checks.add(c.context);
|
|
34
|
+
if (typeof c.integration_id === "number")
|
|
35
|
+
pinned.add(c.context);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (isObj(classic)) {
|
|
40
|
+
const rev = classic.required_pull_request_reviews;
|
|
41
|
+
if (isObj(rev)) {
|
|
42
|
+
pr = true;
|
|
43
|
+
const n = rev.required_approving_review_count;
|
|
44
|
+
if (typeof n === "number" && n > 0)
|
|
45
|
+
approvals = Math.max(approvals, Math.floor(n));
|
|
46
|
+
}
|
|
47
|
+
const sc = classic.required_status_checks;
|
|
48
|
+
if (isObj(sc)) {
|
|
49
|
+
statusChecks = true;
|
|
50
|
+
if (Array.isArray(sc.contexts))
|
|
51
|
+
for (const c of sc.contexts)
|
|
52
|
+
if (typeof c === "string")
|
|
53
|
+
checks.add(c);
|
|
54
|
+
if (Array.isArray(sc.checks))
|
|
55
|
+
for (const c of sc.checks)
|
|
56
|
+
if (isObj(c) && typeof c.context === "string") {
|
|
57
|
+
checks.add(c.context);
|
|
58
|
+
if (typeof c.app_id === "number" && c.app_id !== -1)
|
|
59
|
+
pinned.add(c.context);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const mode = statusChecks ? "pr-checks" : pr ? "pr" : "direct";
|
|
64
|
+
const allowedMerge = [];
|
|
65
|
+
let autoMerge = false;
|
|
66
|
+
if (isObj(repo)) {
|
|
67
|
+
if (repo.allow_merge_commit === true)
|
|
68
|
+
allowedMerge.push("merge");
|
|
69
|
+
if (repo.allow_squash_merge === true)
|
|
70
|
+
allowedMerge.push("squash");
|
|
71
|
+
if (repo.allow_rebase_merge === true)
|
|
72
|
+
allowedMerge.push("rebase");
|
|
73
|
+
autoMerge = repo.allow_auto_merge === true;
|
|
74
|
+
}
|
|
75
|
+
const out = { mode, requiredChecks: [...checks], requiredApprovals: approvals, allowedMerge, autoMerge };
|
|
76
|
+
if (pinned.size)
|
|
77
|
+
out.pinnedChecks = [...pinned];
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=branchmode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branchmode.js","sourceRoot":"","sources":["../src/branchmode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** What a build knows about itself. */
|
|
2
|
+
export interface BuildStamp {
|
|
3
|
+
/** The project's own version (`0.7.0`, `1.4.0+344`). */
|
|
4
|
+
version?: string;
|
|
5
|
+
/** The commit it was built from, short form. */
|
|
6
|
+
sha?: string;
|
|
7
|
+
/** Built with uncommitted edits in the sources it bundles: the sha alone does not say which. */
|
|
8
|
+
dirty?: boolean;
|
|
9
|
+
/** When it was built, epoch ms. */
|
|
10
|
+
at: number;
|
|
11
|
+
}
|
|
12
|
+
/** One line of `<state dir>/versions.jsonl`: a stamp plus WHICH artifact and where it went. */
|
|
13
|
+
export interface BuildRecord extends BuildStamp {
|
|
14
|
+
/** The artifact's stable name (`vscode-extension`, `apk-dev`, `web-bundle`). A build entry in
|
|
15
|
+
* `builds.json` names the one it produces with its `artifact` field. */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Where it went: `dev`, `beta`, `store`, `local install`… free words, one line. */
|
|
18
|
+
channel?: string;
|
|
19
|
+
/** The file it produced, repo-relative, when there is one. */
|
|
20
|
+
file?: string;
|
|
21
|
+
}
|
|
22
|
+
/** The per-repo file builds append to, relative to the repo root (gitignored desktop state). */
|
|
23
|
+
export declare const BUILD_RECORDS_FILE: string;
|
|
24
|
+
/** `27 Oct 08:42` in the reader's local time — a clock read beside other local clocks. */
|
|
25
|
+
export declare function buildTimeText(at: number): string;
|
|
26
|
+
/** `0.7.0 · a1b2c3d · 27 Oct 08:42`, with `+ edits` after the sha when it was built dirty.
|
|
27
|
+
* A missing part is not said. */
|
|
28
|
+
export declare function buildStampText(s: BuildStamp): string;
|
|
29
|
+
/** A stamp from untrusted JSON; null when it has no usable time. */
|
|
30
|
+
export declare function cleanBuildStamp(v: unknown): BuildStamp | null;
|
|
31
|
+
/** A record from untrusted JSON; null without a name or a time. */
|
|
32
|
+
export declare function cleanBuildRecord(v: unknown): BuildRecord | null;
|
|
33
|
+
/** Every readable line of a `versions.jsonl`, oldest first as written. A line that does not
|
|
34
|
+
* parse is skipped, never fatal: one bad append must not hide every build after it. */
|
|
35
|
+
export declare function parseBuildRecords(text: string): BuildRecord[];
|
|
36
|
+
/** The newest record per name, newest first per name's history (capped at `keep` each). */
|
|
37
|
+
export declare function recordsByName(records: BuildRecord[], keep?: number): Record<string, BuildRecord[]>;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which build is this — one identifier, said the same way in the artifact and on the phone.
|
|
3
|
+
*
|
|
4
|
+
* The failure this exists for: the VS Code "install latest" button reinstalled 0.2.0 for ten days
|
|
5
|
+
* (2026-10-16..26) while the package script built 0.3.0 through 0.7.0, and nothing anywhere said
|
|
6
|
+
* which build was running. A version alone would not have caught a rebuild of the same version
|
|
7
|
+
* either, so the identifier is the version AND the commit AND the time it was built.
|
|
8
|
+
*
|
|
9
|
+
* Two halves, one vocabulary:
|
|
10
|
+
* - `BuildStamp` is baked into an artifact at build time and shown INSIDE it (a tooltip, an About
|
|
11
|
+
* line), worded by `buildStampText`.
|
|
12
|
+
* - `BuildRecord` is one line a build appends to `<repo>/<state dir>/versions.jsonl` — whether a
|
|
13
|
+
* build button ran it or an agent did — and the build list shows the newest per `name`.
|
|
14
|
+
* The same `buildStampText` words both, so a person can match them by eye.
|
|
15
|
+
*
|
|
16
|
+
* Every field but `at` is optional and absent means nobody said — never "unknown", never 0.
|
|
17
|
+
*/
|
|
18
|
+
import { BRAND } from "./brand.js";
|
|
19
|
+
/** The per-repo file builds append to, relative to the repo root (gitignored desktop state). */
|
|
20
|
+
export const BUILD_RECORDS_FILE = `${BRAND.stateDirName}/versions.jsonl`;
|
|
21
|
+
const MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
22
|
+
/** `27 Oct 08:42` in the reader's local time — a clock read beside other local clocks. */
|
|
23
|
+
export function buildTimeText(at) {
|
|
24
|
+
const d = new Date(at);
|
|
25
|
+
const p = (n) => String(n).padStart(2, "0");
|
|
26
|
+
return `${d.getDate()} ${MONTHS[d.getMonth()]} ${p(d.getHours())}:${p(d.getMinutes())}`;
|
|
27
|
+
}
|
|
28
|
+
/** `0.7.0 · a1b2c3d · 27 Oct 08:42`, with `+ edits` after the sha when it was built dirty.
|
|
29
|
+
* A missing part is not said. */
|
|
30
|
+
export function buildStampText(s) {
|
|
31
|
+
const sha = s.sha ? `${s.sha}${s.dirty ? " + edits" : ""}` : s.dirty ? "uncommitted edits" : "";
|
|
32
|
+
return [s.version ?? "", sha, buildTimeText(s.at)].filter(Boolean).join(" · ");
|
|
33
|
+
}
|
|
34
|
+
const ONE_LINE = /^[^\r\n]{1,200}$/;
|
|
35
|
+
const str = (v) => (typeof v === "string" && ONE_LINE.test(v.trim()) ? v.trim() : undefined);
|
|
36
|
+
/** A stamp from untrusted JSON; null when it has no usable time. */
|
|
37
|
+
export function cleanBuildStamp(v) {
|
|
38
|
+
if (!v || typeof v !== "object")
|
|
39
|
+
return null;
|
|
40
|
+
const o = v;
|
|
41
|
+
if (typeof o.at !== "number" || !Number.isFinite(o.at) || o.at <= 0)
|
|
42
|
+
return null;
|
|
43
|
+
const out = { at: o.at };
|
|
44
|
+
const version = str(o.version);
|
|
45
|
+
const sha = str(o.sha);
|
|
46
|
+
if (version)
|
|
47
|
+
out.version = version;
|
|
48
|
+
if (sha && /^[0-9a-f]{4,40}$/i.test(sha))
|
|
49
|
+
out.sha = sha;
|
|
50
|
+
if (o.dirty === true)
|
|
51
|
+
out.dirty = true;
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
/** A record from untrusted JSON; null without a name or a time. */
|
|
55
|
+
export function cleanBuildRecord(v) {
|
|
56
|
+
const stamp = cleanBuildStamp(v);
|
|
57
|
+
const o = v;
|
|
58
|
+
const name = o ? str(o.name) : undefined;
|
|
59
|
+
if (!stamp || !name)
|
|
60
|
+
return null;
|
|
61
|
+
const out = { ...stamp, name };
|
|
62
|
+
const channel = str(o.channel);
|
|
63
|
+
const file = str(o.file);
|
|
64
|
+
if (channel)
|
|
65
|
+
out.channel = channel;
|
|
66
|
+
if (file)
|
|
67
|
+
out.file = file;
|
|
68
|
+
return out;
|
|
69
|
+
}
|
|
70
|
+
/** Every readable line of a `versions.jsonl`, oldest first as written. A line that does not
|
|
71
|
+
* parse is skipped, never fatal: one bad append must not hide every build after it. */
|
|
72
|
+
export function parseBuildRecords(text) {
|
|
73
|
+
const out = [];
|
|
74
|
+
for (const line of text.split("\n")) {
|
|
75
|
+
if (!line.trim())
|
|
76
|
+
continue;
|
|
77
|
+
try {
|
|
78
|
+
const r = cleanBuildRecord(JSON.parse(line));
|
|
79
|
+
if (r)
|
|
80
|
+
out.push(r);
|
|
81
|
+
}
|
|
82
|
+
catch { /* a torn or hand-edited line */ }
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
/** The newest record per name, newest first per name's history (capped at `keep` each). */
|
|
87
|
+
export function recordsByName(records, keep = 10) {
|
|
88
|
+
const by = {};
|
|
89
|
+
for (const r of records)
|
|
90
|
+
(by[r.name] ??= []).push(r);
|
|
91
|
+
for (const k of Object.keys(by))
|
|
92
|
+
by[k] = by[k].sort((a, b) => b.at - a.at).slice(0, keep);
|
|
93
|
+
return by;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=buildstamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildstamp.js","sourceRoot":"","sources":["../src/buildstamp.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* climb is NULL — never a rate somebody would plan around that was made up.
|
|
14
14
|
* And the push is words only. Nothing here pauses, holds or refuses anything.
|
|
15
15
|
*/
|
|
16
|
-
import type { UsageSample } from "./wire/telemetry.js";
|
|
16
|
+
import type { UsageSample, UsageSourceSample } from "./wire/telemetry.js";
|
|
17
17
|
export interface UsagePoint {
|
|
18
18
|
t: number;
|
|
19
19
|
v: number;
|
|
@@ -135,3 +135,18 @@ export declare function burnPushText(s: BurnStretch, top: {
|
|
|
135
135
|
title: string;
|
|
136
136
|
body: string;
|
|
137
137
|
};
|
|
138
|
+
/** The source windows worth a burn push: the LONG ones (claude's push is the week's, never the
|
|
139
|
+
* 5-hour's — a short window refilling fast is the normal case). Matched on `UsageWindow.unit`. */
|
|
140
|
+
export declare const SOURCE_BURN_UNITS: readonly string[];
|
|
141
|
+
/**
|
|
142
|
+
* One window of a non-claude source's kept readings as the `UsageSample` series the burn rule
|
|
143
|
+
* reads (`w` = that window's pct, `wr` = its reset; the 5-hour pair null). A reading where the
|
|
144
|
+
* window had no percentage keeps `w: null`, which the segment rule DROPS — never a zero.
|
|
145
|
+
*/
|
|
146
|
+
export declare function sourceBurnSamples(samples: readonly UsageSourceSample[], windowId: string): UsageSample[];
|
|
147
|
+
/** The push for a source's window. No "dearest in it": the cost window is claude's conversations,
|
|
148
|
+
* and another backend has no per-conversation dollars to name. Words only. */
|
|
149
|
+
export declare function sourceBurnPushText(label: string, unit: string, s: BurnStretch): {
|
|
150
|
+
title: string;
|
|
151
|
+
body: string;
|
|
152
|
+
};
|
|
@@ -173,4 +173,34 @@ export function burnPushText(s, top, pts) {
|
|
|
173
173
|
parts.push("Nothing was paused.");
|
|
174
174
|
return { title, body: parts.join(" ") };
|
|
175
175
|
}
|
|
176
|
+
// ── the same push for another backend's own window (c2 §3) ───────────────
|
|
177
|
+
/** The source windows worth a burn push: the LONG ones (claude's push is the week's, never the
|
|
178
|
+
* 5-hour's — a short window refilling fast is the normal case). Matched on `UsageWindow.unit`. */
|
|
179
|
+
export const SOURCE_BURN_UNITS = ["wk", "mo"];
|
|
180
|
+
/**
|
|
181
|
+
* One window of a non-claude source's kept readings as the `UsageSample` series the burn rule
|
|
182
|
+
* reads (`w` = that window's pct, `wr` = its reset; the 5-hour pair null). A reading where the
|
|
183
|
+
* window had no percentage keeps `w: null`, which the segment rule DROPS — never a zero.
|
|
184
|
+
*/
|
|
185
|
+
export function sourceBurnSamples(samples, windowId) {
|
|
186
|
+
const out = [];
|
|
187
|
+
for (const r of samples) {
|
|
188
|
+
const w = r.w.find((x) => x.id === windowId);
|
|
189
|
+
if (!w)
|
|
190
|
+
continue;
|
|
191
|
+
out.push({ t: r.t, s: null, w: w.pct, sr: null, wr: w.resetAt });
|
|
192
|
+
}
|
|
193
|
+
return out;
|
|
194
|
+
}
|
|
195
|
+
/** The push for a source's window. No "dearest in it": the cost window is claude's conversations,
|
|
196
|
+
* and another backend has no per-conversation dollars to name. Words only. */
|
|
197
|
+
export function sourceBurnPushText(label, unit, s) {
|
|
198
|
+
const pts1 = fmtPts(s.dPts);
|
|
199
|
+
const pts = s.dPts === 1 ? "point" : "points";
|
|
200
|
+
const what = unit === "mo" ? "monthly" : unit === "wk" ? "weekly" : `${unit}`;
|
|
201
|
+
return {
|
|
202
|
+
title: `${label} ${what} limit climbing fast: +${pts1} ${pts} in ${fmtSpan(s.to - s.from)}`,
|
|
203
|
+
body: `${label}'s ${what} figure rose ${pts1} ${pts} in ${fmtSpan(s.to - s.from)}, about ${fmtPts(s.ptsPerHour)} an hour. That is ${label}'s own account, not claude's. Nothing was paused.`,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
176
206
|
//# sourceMappingURL=burn.js.map
|