@vibelord/lanes 1.3.0 → 1.5.0
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/package.json +1 -1
- package/payload/lanes/README.md +4 -3
- package/payload/lanes/VERSION +1 -1
- package/payload/lanes/bin/lanes +790 -31
- package/payload/lanes/container/hooks/grok-cli-hooks.json +8 -0
- package/payload/lanes/container/hooks/grok-hooks.json +12 -0
- package/payload/lanes/container/hooks/kimi-hooks.toml +49 -0
- package/payload/lanes/container/lane +13 -7
- package/payload/lanes/container/lane-mcp +56 -17
- package/payload/lanes/container/lane-signal +86 -23
- package/payload/lanes/container/lane_core.py +346 -36
- package/payload/lanes/container/throttle-pulse +456 -0
- package/payload/lanes/docs/ARCHITECTURE.md +165 -14
- package/payload/lanes/docs/DESIGN.md +7 -0
- package/payload/lanes/docs/INSTALL.md +23 -3
- package/payload/lanes/docs/RUNBOOK.md +392 -4
- package/payload/lanes/docs/USERGUIDE.md +222 -23
- package/payload/lanes/libexec/agent_state.py +604 -12
- package/payload/lanes/libexec/economy_poll.py +6 -2
- package/payload/lanes/libexec/harness_grok.py +742 -0
- package/payload/lanes/libexec/lanes_lib.py +143 -20
- package/payload/lanes/libexec/sidebar.py +522 -14
- package/payload/lanes/libexec/statusd.py +434 -28
- package/payload/lanes/libexec/tokens.py +12 -1
- package/payload/lanes/libexec/update.py +78 -5
- package/payload/lanes/libexec/users.py +31 -3
- package/payload/lanes/site/site.example.conf +4 -0
- package/payload/manifest.json +4 -3
|
@@ -26,7 +26,9 @@ Trace keys: `cc-session/<id>` and `codex-session/<id>` (first two segments of th
|
|
|
26
26
|
|
|
27
27
|
The poller (plan Task 11, opt-in `lanes-economy.service`; enabling it is an operator gate because it reads the
|
|
28
28
|
production daemon's loopback control port): every `--interval` seconds it GETs `/status` and `/sessions` (3 s
|
|
29
|
-
timeout,
|
|
29
|
+
timeout, bearer from `LANES_THROTTLE_TOKEN_FILE`: both routes are guarded control reads, and the daemon's ControlAuth
|
|
30
|
+
answers 401 to a request without the bearer whatever the bind — there is no loopback exemption on the control port,
|
|
31
|
+
DEF-1930), folds today's log through `day_totals`, and writes
|
|
30
32
|
`STATE/economy.json` (schema `v: 1`, additive) only when the payload changed apart from `at` — or when the file's
|
|
31
33
|
`at` is HEARTBEAT seconds old, so `at` is a liveness heartbeat the sidebar ages with its own clock (DEF-1528); the
|
|
32
34
|
cursor lives in `STATE/economy.cursor.json`. `LANES_THROTTLE_CONTROL=none` disables every daemon request (the log fold still runs);
|
|
@@ -442,7 +444,9 @@ def control_url(env):
|
|
|
442
444
|
|
|
443
445
|
|
|
444
446
|
def read_token(env):
|
|
445
|
-
"""The
|
|
447
|
+
"""The bearer, or None when no file is named. `/status` and `/sessions` are guarded control routes: the daemon's
|
|
448
|
+
ControlAuth (its `remote_key` or the claude pool's managed local client token) answers 401 without one, loopback
|
|
449
|
+
or not (DEF-1930), so a poll without it degrades to `HTTP 401`. Never logged, never written anywhere."""
|
|
446
450
|
path = env.get('LANES_THROTTLE_TOKEN_FILE')
|
|
447
451
|
if not path:
|
|
448
452
|
return None
|