instar 1.3.393 → 1.3.395

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +17 -1
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +2 -1
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/QuotaPoller.d.ts +120 -0
  8. package/dist/core/QuotaPoller.d.ts.map +1 -0
  9. package/dist/core/QuotaPoller.js +286 -0
  10. package/dist/core/QuotaPoller.js.map +1 -0
  11. package/dist/core/ReapGuard.js +1 -1
  12. package/dist/core/ReapGuard.js.map +1 -1
  13. package/dist/core/types.d.ts +6 -1
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/core/types.js.map +1 -1
  16. package/dist/monitoring/SessionReaper.d.ts +14 -1
  17. package/dist/monitoring/SessionReaper.d.ts.map +1 -1
  18. package/dist/monitoring/SessionReaper.js +25 -5
  19. package/dist/monitoring/SessionReaper.js.map +1 -1
  20. package/dist/server/AgentServer.d.ts +1 -0
  21. package/dist/server/AgentServer.d.ts.map +1 -1
  22. package/dist/server/AgentServer.js +1 -0
  23. package/dist/server/AgentServer.js.map +1 -1
  24. package/dist/server/routes.d.ts +2 -0
  25. package/dist/server/routes.d.ts.map +1 -1
  26. package/dist/server/routes.js +36 -0
  27. package/dist/server/routes.js.map +1 -1
  28. package/package.json +1 -1
  29. package/scripts/lint-no-direct-llm-http.js +6 -0
  30. package/src/data/builtin-manifest.json +47 -47
  31. package/upgrades/1.3.394.md +51 -0
  32. package/upgrades/1.3.395.md +57 -0
  33. package/upgrades/side-effects/reaper-stale-idle-override.md +46 -0
  34. package/upgrades/side-effects/subscription-quota-poller.md +71 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAymBH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
1
+ {"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0mBH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
@@ -103,7 +103,8 @@ const SHARED_DEFAULTS = {
103
103
  maxReapsPerHour: 12,
104
104
  finalGraceSec: 60,
105
105
  protectOpenCommitments: true,
106
- staleCommitmentWindowMinutes: 1440, // 24h — open commitment stops pinning an inactive session past a day
106
+ staleCommitmentWindowMinutes: 480, // 8hsilent 8h stops an open commitment/idle children from pinning a session (operator: restarts are cheap)
107
+ reapStaleIdleWithActiveChildren: true, // 24h-silent + idle + flat-transcript reaps even with idle children (e.g. idle MCP servers)
107
108
  // CPU pressure: overall tier = WORST of memory (free %) and CPU (1-min load
108
109
  // ÷ cores), so a CPU-bound box raises pressure even when memory is fine.
109
110
  cpuModerateLoadPerCore: 1.0,
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,2EAA2E;AAC3E,MAAM,eAAe,GAA4B;IAC/C,UAAU,EAAE;QACV,gBAAgB,EAAE,IAAI;QACtB,qBAAqB,EAAE,KAAK;QAC5B,mEAAmE;QACnE,qDAAqD;QACrD,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;SACd;QACD,sEAAsE;QACtE,sEAAsE;QACtE,wEAAwE;QACxE,iBAAiB,EAAE;YACjB,OAAO,EAAE,IAAI;SACd;QACD,gFAAgF;QAChF,kFAAkF;QAClF,6EAA6E;QAC7E,+EAA+E;QAC/E,wFAAwF;QACxF,oBAAoB,EAAE;YACpB,OAAO,EAAE,KAAK;SACf;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,0EAA0E;QAC1E,2DAA2D;QAC3D,6DAA6D;QAC7D,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,8DAA8D;QAC9D,wEAAwE;QACxE,wDAAwD;QACxD,+CAA+C;QAC/C,cAAc,EAAE;YACd,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,MAAM;YACxB,oBAAoB,EAAE,CAAC,GAAG,MAAM;YAChC,aAAa,EAAE,CAAC;SACjB;QACD,uEAAuE;QACvE,yEAAyE;QACzE,mEAAmE;QACnE,iEAAiE;QACjE,wBAAwB,EAAE;YACxB,OAAO,EAAE,IAAI;SACd;QACD,yBAAyB,EAAE;YACzB,OAAO,EAAE,IAAI;SACd;QACD,2EAA2E;QAC3E,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,4EAA4E;QAC5E,qEAAqE;QACrE,6EAA6E;QAC7E,+DAA+D;QAC/D,8EAA8E;QAC9E,4EAA4E;QAC5E,4CAA4C;QAC5C,oBAAoB,EAAE;YACpB,OAAO,EAAE,IAAI;SACd;QACD,oEAAoE;QACpE,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,0EAA0E;QAC1E,kDAAkD;QAClD,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,GAAG;YACpB,aAAa,EAAE,EAAE;YACjB,mBAAmB,EAAE,CAAC;YACtB,oBAAoB,EAAE,EAAE;YACxB,gBAAgB,EAAE,GAAG;YACrB,uBAAuB,EAAE,EAAE;YAC3B,4BAA4B,EAAE,EAAE;YAChC,4BAA4B,EAAE,EAAE;YAChC,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,CAAC;YAClB,eAAe,EAAE,EAAE;YACnB,aAAa,EAAE,EAAE;YACjB,sBAAsB,EAAE,IAAI;YAC5B,4BAA4B,EAAE,GAAG,EAAE,8GAA8G;YACjJ,+BAA+B,EAAE,IAAI,EAAE,4FAA4F;YAEnI,4EAA4E;YAC5E,yEAAyE;YACzE,sBAAsB,EAAE,GAAG;YAC3B,sBAAsB,EAAE,GAAG;YAC3B,0EAA0E;YAC1E,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,yBAAyB,EAAE,KAAK;YAChC,sBAAsB,EAAE,IAAI;YAC5B,qEAAqE;YACrE,kEAAkE;YAClE,2EAA2E;YAC3E,mBAAmB,EAAE,KAAK;YAC1B,sBAAsB,EAAE,CAAC;SAC1B;QACD,6EAA6E;QAC7E,8EAA8E;QAC9E,+EAA+E;QAC/E,+EAA+E;QAC/E,qCAAqC;QACrC,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,MAAM;SACzB;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,+EAA+E;QAC/E,uEAAuE;QACvE,mBAAmB,EAAE;YACnB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,UAAU;YAC1B,eAAe,EAAE,EAAE;SACpB;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,6EAA6E;QAC7E,4CAA4C;QAC5C,gBAAgB,EAAE;YAChB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;SACpB;QACD,4EAA4E;QAC5E,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,6EAA6E;QAC7E,+EAA+E;QAC/E,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,OAAO;YACnB,UAAU,EAAE,OAAO;SACpB;QACD,8EAA8E;QAC9E,+EAA+E;QAC/E,8EAA8E;QAC9E,6EAA6E;QAC7E,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,GAAG;YACpB,2BAA2B,EAAE,EAAE;YAC/B,6BAA6B,EAAE,GAAG;YAClC,0BAA0B,EAAE,EAAE;YAC9B,kBAAkB,EAAE,GAAG;SACxB;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,kEAAkE;QAClE,eAAe,EAAE;YACf,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,mBAAmB,EAAE,CAAC;YACtB,uBAAuB,EAAE,CAAC;YAC1B,0BAA0B,EAAE,GAAG;YAC/B,yBAAyB,EAAE,KAAK;YAChC,oEAAoE;YACpE,qEAAqE;YACrE,OAAO,EAAE;gBACP,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,KAAK;gBACjB,2BAA2B,EAAE,KAAK;gBAClC,WAAW,EAAE,EAAE;gBACf,gBAAgB,EAAE,EAAE;aACrB;SACF;QACD,4CAA4C;QAC5C,8EAA8E;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,0EAA0E;QAC1E,wEAAwE;QACxE,+DAA+D;QAC/D,mEAAmE;QACnE,kBAAkB,EAAE;YAClB,OAAO,EAAE,KAAK;YACd,6EAA6E;YAC7E,wEAAwE;YACxE,2EAA2E;YAC3E,mBAAmB,EAAE,KAAK;YAC1B,UAAU,EAAE,CAAC;YACb,uBAAuB,EAAE,CAAC;YAC1B,yBAAyB,EAAE,CAAC;YAC5B,2BAA2B,EAAE,CAAC;YAC9B,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,KAAK;YAClB,qBAAqB,EAAE,CAAC;YACxB,aAAa,EAAE,EAAE;YACjB,gBAAgB,EAAE,CAAC;YACnB,mBAAmB,EAAE,CAAC;YACtB,kBAAkB,EAAE,EAAE;YACtB,sBAAsB,EAAE,EAAE;YAC1B,4BAA4B,EAAE,CAAC;YAC/B,wBAAwB,EAAE,EAAE;YAC5B,0BAA0B,EAAE,CAAC;YAC7B,2BAA2B,EAAE,IAAI;YACjC,4BAA4B,EAAE,gCAAgC;YAC9D,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,CAAC;YACnB,mBAAmB,EAAE,IAAI;YACzB,yEAAyE;YACzE,wEAAwE;YACxE,0EAA0E;YAC1E,4EAA4E;YAC5E,wBAAwB,EAAE,GAAG;YAC7B,sBAAsB,EAAE,EAAE;YAC1B,0BAA0B,EAAE,CAAC;YAC7B,wBAAwB,EAAE,CAAC;SAC5B;QACD,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,sBAAsB,EAAE;YACtB,OAAO,EAAE,KAAK;YACd,mBAAmB,EAAE,GAAG;SACzB;QACD,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,iEAAiE;QACjE,wBAAwB,EAAE;YACxB,OAAO,EAAE,KAAK;YACd,oBAAoB,EAAE,EAAE;SACzB;QACD,4EAA4E;QAC5E,uEAAuE;QACvE,mEAAmE;QACnE,6CAA6C;QAC7C,gBAAgB,EAAE;YAChB,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,UAAU;YAC1B,oBAAoB,EAAE,CAAC;YACvB,iBAAiB,EAAE,CAAC;YACpB,oBAAoB,EAAE,CAAC;YACvB,kBAAkB,EAAE,CAAC;YACrB,eAAe,EAAE,EAAE;YACnB,mBAAmB,EAAE,EAAE;YACvB,cAAc,EAAE,MAAM;SACvB;QACD,iEAAiE;QACjE,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,wEAAwE;QACxE,0BAA0B,EAAE,KAAK;QACjC,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,WAAW,EAAE;gBACX,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,KAAK;aACpB;YACD,MAAM,EAAE,KAAK;SACd;KACF;IACD,UAAU,EAAE;QACV,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,CAAC,MAAM,CAAC;QACtB,0EAA0E;QAC1E,uEAAuE;QACvE,8EAA8E;QAC9E,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,mEAAmE;QACnE,6DAA6D;QAC7D,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;YACd,gBAAgB,EAAE,KAAK;YACvB,mBAAmB,EAAE,MAAM,EAAE,uCAAuC;SACrE;QACD,8EAA8E;QAC9E,6EAA6E;QAC7E,4EAA4E;QAC5E,yEAAyE;QACzE,6EAA6E;QAC7E,6EAA6E;QAC7E,+CAA+C;QAC/C,cAAc,EAAE;YACd,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,MAAM,EAAE,SAAS;YACxB,UAAU,EAAE,UAAU;SACvB;KACF;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,gEAAgE;IAChE,+CAA+C;IAC/C,WAAW,EAAE;QACX,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;SACd;QACD,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;SACd;KACF;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,+EAA+E;IAC/E,mFAAmF;IACnF,MAAM,EAAE;QACN,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;QACX,eAAe,EAAE,WAAW;QAC5B,aAAa,EAAE,MAAM,EAAE,mDAAmD;QAC1E,eAAe,EAAE,EAAE;QACnB,gBAAgB,EAAE,GAAG;QACrB,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,uEAAuE;QACvE,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,MAAM;YACb,iBAAiB,EAAE,iBAAiB;YACpC,eAAe,EAAE,GAAG;SACrB;KACF;IACD,uEAAuE;IACvE,4EAA4E;IAC5E,wEAAwE;IACxE,sEAAsE;IACtE,kEAAkE;IAClE,0EAA0E;IAC1E,wEAAwE;IACxE,wDAAwD;IACxD,MAAM,EAAE;QACN,OAAO,EAAE,KAAK;QACd,cAAc,EAAE,EAAE;QAClB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,MAAM,EAAE,iCAAiC;KAC5D;IACD,+EAA+E;IAC/E,0EAA0E;IAC1E,8EAA8E;IAC9E,4EAA4E;IAC5E,UAAU,EAAE;QACV,WAAW,EAAE;YACX,OAAO,EAAE,IAAI;SACd;KACF;IACD,gFAAgF;IAChF,iFAAiF;IACjF,mFAAmF;IACnF,KAAK,EAAE;QACL,OAAO,EAAE,IAAI;KACd;IACD,sEAAsE;IACtE,wEAAwE;IACxE,2EAA2E;IAC3E,oEAAoE;IACpE,qEAAqE;IACrE,kEAAkE;IAClE,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;KACd;IACD,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,yCAAyC;IACzC,MAAM,EAAE;QACN,YAAY,EAAE,EAAc;KAC7B;IACD,kEAAkE;IAClE,iEAAiE;IACjE,MAAM,EAAE;QACN,KAAK,EAAE,KAAc;KACtB;IACD,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,2EAA2E;IAC3E,sDAAsD;IACtD,OAAO,EAAE;QACP,8BAA8B,EAAE,EAAE,GAAG,MAAM;KAC5C;IACD,qEAAqE;IACrE,2EAA2E;IAC3E,mFAAmF;IACnF,QAAQ,EAAE;QACR,aAAa,EAAE;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,EAAE,GAAG,MAAM;SACxB;KACF;IACD,mFAAmF;IACnF,sFAAsF;IACtF,+EAA+E;IAC/E,kFAAkF;IAClF,mFAAmF;IACnF,sFAAsF;IACtF,kFAAkF;IAClF,gFAAgF;IAChF,YAAY,EAAE;QACZ,WAAW,EAAE;YACX,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,IAAI;YACZ,oBAAoB,EAAE,MAAM;YAC5B,qBAAqB,EAAE,GAAG;YAC1B,uBAAuB,EAAE,QAAQ;YACjC,uBAAuB,EAAE,KAAK;YAC9B,4EAA4E;YAC5E,6EAA6E;YAC7E,uBAAuB,EAAE,IAAI;YAC7B,wBAAwB,EAAE,CAAC;YAC3B,wBAAwB,EAAE,IAAI;YAC9B,sBAAsB,EAAE,CAAC;YACzB,kDAAkD;YAClD,sBAAsB,EAAE,KAAK;YAC7B,sBAAsB,EAAE,IAAI;YAC5B,mBAAmB,EAAE,MAAM;YAC3B,iCAAiC,EAAE,KAAK;SACzC;QACD,2EAA2E;QAC3E,8EAA8E;QAC9E,wDAAwD;QACxD,sEAAsE;QACtE,gFAAgF;QAChF,uEAAuE;QACvE,gFAAgF;QAChF,gBAAgB,EAAE;YAChB,eAAe,EAAE,GAAG;YACpB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;YACtC,sEAAsE;YACtE,qEAAqE;YACrE,qEAAqE;YACrE,qEAAqE;YACrE,UAAU,EAAE;gBACV,YAAY,EAAE,OAAO;gBACrB,iBAAiB,EAAE,QAAQ;gBAC3B,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,QAAQ;gBACvB,iBAAiB,EAAE,OAAO;gBAC1B,UAAU,EAAE,IAAI;gBAChB,kBAAkB,EAAE,CAAC;gBACrB,eAAe,EAAE,CAAC;gBAClB,aAAa,EAAE,CAAC;gBAChB,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,EAAE;aACjB;YACD,qEAAqE;YACrE,kEAAkE;YAClE,WAAW,EAAE;gBACX,aAAa,EAAE,MAAM;gBACrB,mBAAmB,EAAE,CAAC;gBACtB,kBAAkB,EAAE,MAAM;gBAC1B,sBAAsB,EAAE,CAAC;gBACzB,0BAA0B,EAAE,CAAC;gBAC7B,qBAAqB,EAAE,EAAE;gBACzB,YAAY,EAAE,CAAC;aAChB;YACD,SAAS,EAAE;gBACT,iBAAiB,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE;gBAC3D,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE;gBAC9D,gBAAgB,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE;gBAC1D,mEAAmE;gBACnE,uDAAuD;gBACvD,yBAAyB,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE;aACpE;SACF;KACF;IACD,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,mEAAmE;IACnE,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,iFAAiF;IACjF,aAAa,EAAE;QACb,cAAc,EAAE;YACd,gBAAgB,EAAE,IAAI;SACvB;QACD,gBAAgB,EAAE,EAAE;KACrB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,cAAc,GAA4C;IAC9D,iBAAiB,EAAE;QACjB,UAAU,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;QACpC,kBAAkB,EAAE;YAClB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3B,QAAQ,EAAE,EAAE;YACZ,gBAAgB,EAAE,EAAE;YACpB,KAAK,EAAE;gBACL,KAAK,EAAE,eAAe;gBACtB,kBAAkB,EAAE,IAAI;gBACxB,kBAAkB,EAAE,CAAC;aACtB;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO;YACb,yEAAyE;YACzE,qEAAqE;YACrE,8BAA8B;YAC9B,cAAc,EAAE,CAAC,aAAa,CAAC;YAC/B,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE,MAAM;YACxB,WAAW,EAAE,WAAW;SACzB;KACF;IACD,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;QACnC,kBAAkB,EAAE;YAClB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3B,QAAQ,EAAE,EAAE;YACZ,gBAAgB,EAAE,EAAE;YACpB,KAAK,EAAE;gBACL,KAAK,EAAE,eAAe;gBACtB,kBAAkB,EAAE,IAAI;gBACxB,kBAAkB,EAAE,CAAC;aACtB;SACF;KACF;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAA4B;IACnD,kBAAkB,EAAE;QAClB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,QAAQ,EAAE,EAAE;QACZ,gBAAgB,EAAE,EAAE;QACpB,KAAK,EAAE;YACL,KAAK,EAAE,YAAY,EAAS,gDAAgD;YAC5E,kBAAkB,EAAE,KAAK,EAAI,qCAAqC;YAClE,kBAAkB,EAAE,EAAE,EAAO,mBAAmB;SACjD;KACF;CACF,CAAC;AAEF,2BAA2B;AAE3B;;;GAGG;AACH,SAAS,SAAS,CAAC,MAA+B,EAAE,MAA+B;IACjF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IACE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtF,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EACtF,CAAC;YACD,SAAS,CAAC,MAAM,CAAC,GAAG,CAA4B,EAAE,MAAM,CAAC,GAAG,CAA4B,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,MAA+B,EAC/B,QAAiC;IAEjC,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,iBAA6B;QACtC,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,SAAS,KAAK,CAAC,MAA+B,EAAE,MAA+B,EAAE,IAAY;QAC3F,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAE/C,+CAA+C;YAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,oCAAoC,CAAC,CAAC;gBAC9D,SAAS;YACX,CAAC;YAED,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;gBACrB,0BAA0B;gBAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,UAAU,CAAC,CAAC;YACtC,CAAC;iBAAM,IACL,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtF,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EACtF,CAAC;gBACD,6BAA6B;gBAC7B,KAAK,CAAC,MAAM,CAAC,GAAG,CAA4B,EAAE,MAAM,CAAC,GAAG,CAA4B,EAAE,QAAQ,CAAC,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACN,4EAA4E;gBAC5E,wEAAwE;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * QuotaPoller — per-account live quota reader (P1.2 of the Subscription & Auth
3
+ * Standard, decision C hybrid read).
4
+ *
5
+ * Produces an AccountQuotaSnapshot per SubscriptionPool account: 5-hour and
6
+ * 7-day utilization + reset dates, per-model breakdown, and extra-usage credit
7
+ * state — exactly what the QuotaAwareScheduler (P1.3) needs to drain each
8
+ * account optimally before its reset and swap before a limit.
9
+ *
10
+ * ── Read mechanism (decision C, grounded by hands-on finding) ──
11
+ * Justin chose C: drive Claude Code's own /usage surface by default, the
12
+ * `GET /api/oauth/usage` endpoint as a bounded fallback. FINDING (2026-06-06):
13
+ * Claude Code does NOT persist usage to disk and exposes no non-interactive
14
+ * usage command, so a truly "read what the client cached" primary does not
15
+ * exist. The only viable Claude mechanism is the OAuth usage endpoint — the
16
+ * same endpoint the client's /usage screen calls internally. So the poller:
17
+ * - resolves each account's OAuth access token TRANSIENTLY from that account's
18
+ * own config-home credential store (never persisted, never logged),
19
+ * - calls the read-only usage endpoint at LOW frequency, and
20
+ * - stamps the snapshot `source: 'oauth-usage-endpoint-fallback'` for honesty.
21
+ * This is read-only TELEMETRY, not inference — distinct from the inference-
22
+ * spoofing Anthropic enforces against. It stays within decision C's accepted
23
+ * bounds (subscription-only, no API keys, official-client login reused).
24
+ *
25
+ * ── Burn rate, not call count ──
26
+ * The scheduler must decide on MEASURED utilization deltas over time, never raw
27
+ * call volume (lesson: call counts overstate real burn ~100× because the
28
+ * LlmQueue shed layer absorbs most background traffic). The poller exposes a
29
+ * per-account burn rate (utilization %/hour) computed from consecutive reads.
30
+ *
31
+ * Testability: `fetchImpl` and `tokenResolver` are injectable so the whole
32
+ * poller runs hermetically with zero credentials and zero network in tests.
33
+ */
34
+ import type { SubscriptionPool, SubscriptionAccount, AccountQuotaSnapshot } from './SubscriptionPool.js';
35
+ /** Injectable token resolver — returns an account's OAuth access token or null. */
36
+ export type TokenResolver = (account: SubscriptionAccount) => string | null;
37
+ /** Minimal fetch surface so tests inject a stub (no global fetch dependency). */
38
+ export type FetchImpl = (url: string, init: {
39
+ headers: Record<string, string>;
40
+ }) => Promise<{
41
+ ok: boolean;
42
+ status: number;
43
+ json: () => Promise<unknown>;
44
+ }>;
45
+ export interface QuotaPollerConfig {
46
+ pool: SubscriptionPool;
47
+ /** Poll cadence. Default 15 min — low frequency by design (telemetry, not hot path). */
48
+ pollIntervalMs?: number;
49
+ /** Injected for tests; defaults to global fetch. */
50
+ fetchImpl?: FetchImpl;
51
+ /** Injected for tests; defaults to the config-home credential resolver. */
52
+ tokenResolver?: TokenResolver;
53
+ /** Logger (defaults to console). */
54
+ logger?: {
55
+ log: (m: string) => void;
56
+ warn: (m: string) => void;
57
+ };
58
+ }
59
+ export interface BurnRate {
60
+ /** Utilization points per hour on the binding (7-day) window. */
61
+ sevenDayPctPerHour: number | null;
62
+ /** Utilization points per hour on the 5-hour window. */
63
+ fiveHourPctPerHour: number | null;
64
+ /** Wall-clock ms between the two samples the rate was computed from. */
65
+ spanMs: number;
66
+ }
67
+ /**
68
+ * Resolve a claude-code account's OAuth access token from its config home,
69
+ * TRANSIENTLY. Never persisted, never logged. macOS: the per-config-home
70
+ * keychain entry `Claude Code-credentials-<sha256(configHome)[0:8]>` (verified
71
+ * empirically). Linux/other: `<configHome>/.credentials.json`. The default
72
+ * (`~/.claude`) keychain entry has no hash suffix.
73
+ */
74
+ export declare function defaultTokenResolver(account: SubscriptionAccount): string | null;
75
+ /**
76
+ * Map the REAL /api/oauth/usage response (verified live 2026-06-06) into an
77
+ * AccountQuotaSnapshot. The live shape is `five_hour: {utilization, resets_at}`,
78
+ * `seven_day: {utilization, resets_at}`, `seven_day_sonnet`, `seven_day_opus`,
79
+ * `extra_usage: {is_enabled, used_credits, monthly_limit}`.
80
+ */
81
+ export declare function mapUsageResponse(body: Record<string, unknown>, source: AccountQuotaSnapshot['source'], nowIso: string): AccountQuotaSnapshot;
82
+ export declare class QuotaPoller {
83
+ private readonly pool;
84
+ private readonly pollIntervalMs;
85
+ private readonly fetchImpl;
86
+ private readonly tokenResolver;
87
+ private readonly logger;
88
+ private interval;
89
+ /** Most-recent snapshot per account id. */
90
+ private readonly lastByAccount;
91
+ /** The snapshot BEFORE the most recent, per account — the burn-rate baseline. */
92
+ private readonly prevByAccount;
93
+ constructor(config: QuotaPollerConfig);
94
+ start(): void;
95
+ stop(): void;
96
+ /**
97
+ * Poll one account: resolve token transiently, read usage, map to snapshot.
98
+ * Returns null when the token is unresolvable or the read fails. NEVER logs
99
+ * or returns the token.
100
+ */
101
+ pollAccount(account: SubscriptionAccount): Promise<AccountQuotaSnapshot | null>;
102
+ /**
103
+ * Poll every claude-code/anthropic account in the pool and persist each
104
+ * account's latest snapshot (and a recovered status when a prior needs-reauth
105
+ * account now reads cleanly).
106
+ */
107
+ pollAll(): Promise<{
108
+ polled: number;
109
+ failed: number;
110
+ }>;
111
+ /**
112
+ * Burn rate for an account, computed from the two most recent reads. Returns
113
+ * null until at least two distinct reads exist. Uses MEASURED utilization
114
+ * deltas — never call counts. The caller (P1.3 scheduler) decides on these.
115
+ */
116
+ burnRate(accountId: string): BurnRate | null;
117
+ /** Expose the last in-memory snapshot for an account (test/diagnostic). */
118
+ lastSnapshot(accountId: string): AccountQuotaSnapshot | null;
119
+ }
120
+ //# sourceMappingURL=QuotaPoller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuotaPoller.d.ts","sourceRoot":"","sources":["../../src/core/QuotaPoller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAMH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,MAAM,GAAG,IAAI,CAAC;AAE5E,iFAAiF;AACjF,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KACtC,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,oCAAoC;IACpC,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CAClE;AAED,MAAM,WAAW,QAAQ;IACvB,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAyChF;AASD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EACtC,MAAM,EAAE,MAAM,GACb,oBAAoB,CA0CtB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0D;IACjF,OAAO,CAAC,QAAQ,CAA+C;IAC/D,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;IACzE,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;gBAE7D,MAAM,EAAE,iBAAiB;IAUrC,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAOZ;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA6CrF;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAwB5D;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAqB5C,2EAA2E;IAC3E,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;CAG7D"}
@@ -0,0 +1,286 @@
1
+ /**
2
+ * QuotaPoller — per-account live quota reader (P1.2 of the Subscription & Auth
3
+ * Standard, decision C hybrid read).
4
+ *
5
+ * Produces an AccountQuotaSnapshot per SubscriptionPool account: 5-hour and
6
+ * 7-day utilization + reset dates, per-model breakdown, and extra-usage credit
7
+ * state — exactly what the QuotaAwareScheduler (P1.3) needs to drain each
8
+ * account optimally before its reset and swap before a limit.
9
+ *
10
+ * ── Read mechanism (decision C, grounded by hands-on finding) ──
11
+ * Justin chose C: drive Claude Code's own /usage surface by default, the
12
+ * `GET /api/oauth/usage` endpoint as a bounded fallback. FINDING (2026-06-06):
13
+ * Claude Code does NOT persist usage to disk and exposes no non-interactive
14
+ * usage command, so a truly "read what the client cached" primary does not
15
+ * exist. The only viable Claude mechanism is the OAuth usage endpoint — the
16
+ * same endpoint the client's /usage screen calls internally. So the poller:
17
+ * - resolves each account's OAuth access token TRANSIENTLY from that account's
18
+ * own config-home credential store (never persisted, never logged),
19
+ * - calls the read-only usage endpoint at LOW frequency, and
20
+ * - stamps the snapshot `source: 'oauth-usage-endpoint-fallback'` for honesty.
21
+ * This is read-only TELEMETRY, not inference — distinct from the inference-
22
+ * spoofing Anthropic enforces against. It stays within decision C's accepted
23
+ * bounds (subscription-only, no API keys, official-client login reused).
24
+ *
25
+ * ── Burn rate, not call count ──
26
+ * The scheduler must decide on MEASURED utilization deltas over time, never raw
27
+ * call volume (lesson: call counts overstate real burn ~100× because the
28
+ * LlmQueue shed layer absorbs most background traffic). The poller exposes a
29
+ * per-account burn rate (utilization %/hour) computed from consecutive reads.
30
+ *
31
+ * Testability: `fetchImpl` and `tokenResolver` are injectable so the whole
32
+ * poller runs hermetically with zero credentials and zero network in tests.
33
+ */
34
+ import { execFileSync } from 'node:child_process';
35
+ import crypto from 'node:crypto';
36
+ import fs from 'node:fs';
37
+ import path from 'node:path';
38
+ const USAGE_URL = 'https://api.anthropic.com/api/oauth/usage';
39
+ /**
40
+ * Resolve a claude-code account's OAuth access token from its config home,
41
+ * TRANSIENTLY. Never persisted, never logged. macOS: the per-config-home
42
+ * keychain entry `Claude Code-credentials-<sha256(configHome)[0:8]>` (verified
43
+ * empirically). Linux/other: `<configHome>/.credentials.json`. The default
44
+ * (`~/.claude`) keychain entry has no hash suffix.
45
+ */
46
+ export function defaultTokenResolver(account) {
47
+ if (account.provider !== 'anthropic' || account.framework !== 'claude-code') {
48
+ return null;
49
+ }
50
+ const configHome = expandHome(account.configHome);
51
+ // Linux / non-darwin: per-config-home credentials file.
52
+ if (process.platform !== 'darwin') {
53
+ try {
54
+ const credPath = path.join(configHome, '.credentials.json');
55
+ if (fs.existsSync(credPath)) {
56
+ const data = JSON.parse(fs.readFileSync(credPath, 'utf-8'));
57
+ const tok = data?.claudeAiOauth?.accessToken;
58
+ return typeof tok === 'string' && tok.startsWith('sk-ant-oat') ? tok : null;
59
+ }
60
+ }
61
+ catch {
62
+ // @silent-fallback-ok: missing/unreadable creds → unresolvable token (null)
63
+ }
64
+ return null;
65
+ }
66
+ // macOS: keychain service name, hash-suffixed by config-home path.
67
+ const defaultHome = expandHome('~/.claude');
68
+ const service = configHome === defaultHome
69
+ ? 'Claude Code-credentials'
70
+ : `Claude Code-credentials-${crypto.createHash('sha256').update(configHome).digest('hex').slice(0, 8)}`;
71
+ try {
72
+ const raw = execFileSync('security', ['find-generic-password', '-s', service, '-w'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
73
+ if (!raw)
74
+ return null;
75
+ const data = JSON.parse(raw);
76
+ const tok = data?.claudeAiOauth?.accessToken;
77
+ return typeof tok === 'string' && tok.startsWith('sk-ant-oat') ? tok : null;
78
+ }
79
+ catch {
80
+ // @silent-fallback-ok: no keychain entry for this config home → null
81
+ return null;
82
+ }
83
+ }
84
+ function expandHome(p) {
85
+ if (p === '~' || p.startsWith('~/')) {
86
+ return path.join(process.env.HOME ?? '', p.slice(1));
87
+ }
88
+ return p;
89
+ }
90
+ /**
91
+ * Map the REAL /api/oauth/usage response (verified live 2026-06-06) into an
92
+ * AccountQuotaSnapshot. The live shape is `five_hour: {utilization, resets_at}`,
93
+ * `seven_day: {utilization, resets_at}`, `seven_day_sonnet`, `seven_day_opus`,
94
+ * `extra_usage: {is_enabled, used_credits, monthly_limit}`.
95
+ */
96
+ export function mapUsageResponse(body, source, nowIso) {
97
+ const snap = { source, measuredAt: nowIso };
98
+ const win = (v) => {
99
+ if (!v || typeof v !== 'object')
100
+ return undefined;
101
+ const o = v;
102
+ if (o.utilization === undefined && o.resets_at === undefined)
103
+ return undefined;
104
+ return {
105
+ utilizationPct: Number(o.utilization ?? 0),
106
+ resetsAt: String(o.resets_at ?? ''),
107
+ };
108
+ };
109
+ const five = win(body['five_hour']);
110
+ if (five)
111
+ snap.fiveHour = five;
112
+ const seven = win(body['seven_day']);
113
+ if (seven)
114
+ snap.sevenDay = seven;
115
+ const perModel = {};
116
+ for (const [key, label] of [
117
+ ['seven_day_sonnet', 'sonnet'],
118
+ ['seven_day_opus', 'opus'],
119
+ ]) {
120
+ const v = body[key];
121
+ if (v && typeof v === 'object') {
122
+ const u = v.utilization;
123
+ perModel[label] = u === undefined || u === null ? null : Number(u);
124
+ }
125
+ }
126
+ if (Object.keys(perModel).length > 0)
127
+ snap.perModel = perModel;
128
+ const extra = body['extra_usage'];
129
+ if (extra && typeof extra === 'object') {
130
+ const e = extra;
131
+ snap.extraUsage = {
132
+ isEnabled: Boolean(e.is_enabled),
133
+ usedCredits: Number(e.used_credits ?? 0),
134
+ monthlyLimit: Number(e.monthly_limit ?? 0),
135
+ };
136
+ }
137
+ return snap;
138
+ }
139
+ export class QuotaPoller {
140
+ pool;
141
+ pollIntervalMs;
142
+ fetchImpl;
143
+ tokenResolver;
144
+ logger;
145
+ interval = null;
146
+ /** Most-recent snapshot per account id. */
147
+ lastByAccount = new Map();
148
+ /** The snapshot BEFORE the most recent, per account — the burn-rate baseline. */
149
+ prevByAccount = new Map();
150
+ constructor(config) {
151
+ this.pool = config.pool;
152
+ this.pollIntervalMs = config.pollIntervalMs ?? 15 * 60_000;
153
+ this.fetchImpl =
154
+ config.fetchImpl ??
155
+ ((url, init) => fetch(url, init));
156
+ this.tokenResolver = config.tokenResolver ?? defaultTokenResolver;
157
+ this.logger = config.logger ?? { log: () => { }, warn: () => { } };
158
+ }
159
+ start() {
160
+ if (this.interval)
161
+ return;
162
+ this.interval = setInterval(() => {
163
+ void this.pollAll();
164
+ }, this.pollIntervalMs);
165
+ this.interval.unref?.();
166
+ }
167
+ stop() {
168
+ if (this.interval) {
169
+ clearInterval(this.interval);
170
+ this.interval = null;
171
+ }
172
+ }
173
+ /**
174
+ * Poll one account: resolve token transiently, read usage, map to snapshot.
175
+ * Returns null when the token is unresolvable or the read fails. NEVER logs
176
+ * or returns the token.
177
+ */
178
+ async pollAccount(account) {
179
+ const token = this.tokenResolver(account);
180
+ if (!token) {
181
+ this.logger.warn(`[QuotaPoller] no resolvable token for account ${account.id} — skipping`);
182
+ return null;
183
+ }
184
+ let body = null;
185
+ let authFailed = false;
186
+ try {
187
+ const res = await this.fetchImpl(USAGE_URL, {
188
+ headers: {
189
+ Authorization: `Bearer ${token}`,
190
+ 'anthropic-beta': 'oauth-2025-04-20',
191
+ 'anthropic-version': '2023-06-01',
192
+ },
193
+ });
194
+ if (res.ok) {
195
+ body = (await res.json());
196
+ }
197
+ else if (res.status === 401 || res.status === 403) {
198
+ authFailed = true;
199
+ }
200
+ }
201
+ catch {
202
+ // @silent-fallback-ok: network failure → no snapshot this cycle (retry next)
203
+ return null;
204
+ }
205
+ if (authFailed) {
206
+ // Genuine auth failure (revoked / password change) — surface for re-auth.
207
+ try {
208
+ this.pool.update(account.id, { status: 'needs-reauth' });
209
+ }
210
+ catch {
211
+ // @silent-fallback-ok: pool update best-effort; status reflects next read
212
+ }
213
+ this.logger.warn(`[QuotaPoller] account ${account.id} usage read returned auth error → needs-reauth`);
214
+ return null;
215
+ }
216
+ if (!body)
217
+ return null;
218
+ const snap = mapUsageResponse(body, 'oauth-usage-endpoint-fallback', new Date().toISOString());
219
+ // Shift the prior "last" down to "prev" so burnRate has a distinct baseline.
220
+ const priorLast = this.lastByAccount.get(account.id);
221
+ if (priorLast)
222
+ this.prevByAccount.set(account.id, priorLast);
223
+ this.lastByAccount.set(account.id, snap);
224
+ return snap;
225
+ }
226
+ /**
227
+ * Poll every claude-code/anthropic account in the pool and persist each
228
+ * account's latest snapshot (and a recovered status when a prior needs-reauth
229
+ * account now reads cleanly).
230
+ */
231
+ async pollAll() {
232
+ let polled = 0;
233
+ let failed = 0;
234
+ for (const account of this.pool.list()) {
235
+ if (account.provider !== 'anthropic' || account.framework !== 'claude-code')
236
+ continue;
237
+ if (account.status === 'disabled')
238
+ continue;
239
+ const snap = await this.pollAccount(account);
240
+ if (!snap) {
241
+ failed++;
242
+ continue;
243
+ }
244
+ polled++;
245
+ const patch = { lastQuota: snap };
246
+ // A clean read on an account previously flagged needs-reauth restores it.
247
+ if (account.status === 'needs-reauth')
248
+ patch.status = 'active';
249
+ try {
250
+ this.pool.update(account.id, patch);
251
+ }
252
+ catch {
253
+ // @silent-fallback-ok: persistence best-effort; snapshot retained in memory
254
+ }
255
+ }
256
+ return { polled, failed };
257
+ }
258
+ /**
259
+ * Burn rate for an account, computed from the two most recent reads. Returns
260
+ * null until at least two distinct reads exist. Uses MEASURED utilization
261
+ * deltas — never call counts. The caller (P1.3 scheduler) decides on these.
262
+ */
263
+ burnRate(accountId) {
264
+ const prev = this.prevByAccount.get(accountId);
265
+ const current = this.lastByAccount.get(accountId);
266
+ if (!prev || !current || prev.measuredAt === current.measuredAt)
267
+ return null;
268
+ const t0 = Date.parse(prev.measuredAt ?? '');
269
+ const t1 = Date.parse(current.measuredAt ?? '');
270
+ if (!Number.isFinite(t0) || !Number.isFinite(t1) || t1 <= t0)
271
+ return null;
272
+ const spanMs = t1 - t0;
273
+ const hours = spanMs / 3_600_000;
274
+ const delta = (a, b) => a && b ? (b.utilizationPct - a.utilizationPct) / hours : null;
275
+ return {
276
+ sevenDayPctPerHour: delta(prev.sevenDay, current.sevenDay),
277
+ fiveHourPctPerHour: delta(prev.fiveHour, current.fiveHour),
278
+ spanMs,
279
+ };
280
+ }
281
+ /** Expose the last in-memory snapshot for an account (test/diagnostic). */
282
+ lastSnapshot(accountId) {
283
+ return this.lastByAccount.get(accountId) ?? null;
284
+ }
285
+ }
286
+ //# sourceMappingURL=QuotaPoller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuotaPoller.js","sourceRoot":"","sources":["../../src/core/QuotaPoller.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export const DEFAULT_REAP_GUARD_OPTIONS = {
26
26
  minAgeMs: 30 * 60_000,
27
27
  recentUserWindowMs: 30 * 60_000,
28
28
  protectOpenCommitments: true,
29
- staleCommitmentWindowMs: 24 * 60 * 60_000, // 24h — "no user message today commitment is stale"
29
+ staleCommitmentWindowMs: 8 * 60 * 60_000, // 8h — "silent 8h stale" (operator: restarts are cheap, prefer free resources)
30
30
  };
31
31
  export class ReapGuard {
32
32
  deps;
@@ -1 +1 @@
1
- {"version":3,"file":"ReapGuard.js","sourceRoot":"","sources":["../../src/core/ReapGuard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReapGuard.js","sourceRoot":"","sources":["../../src/core/ReapGuard.ts"],"names":[],"mappings":"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"}
@@ -3320,8 +3320,13 @@ export interface MonitoringConfig {
3320
3320
  /** Staleness horizon (minutes) for the open-commitment veto: an open commitment
3321
3321
  * protects a session only while a user message arrived within this window; past
3322
3322
  * it the commitment is treated as abandoned and no longer blocks reaping.
3323
- * Default 1440 (24h) — "no message today ⇒ reapable even with an open commitment". */
3323
+ * Default 480 (8h) — "no message today ⇒ reapable even with an open commitment". */
3324
3324
  staleCommitmentWindowMinutes?: number;
3325
+ /** When true, a stale-idle session (no user message within staleCommitmentWindowMinutes)
3326
+ * also has its `active-process` existence-veto relaxed, so its own idle children
3327
+ * (e.g. idle MCP servers) stop shielding a 24h-abandoned session. It STILL must be
3328
+ * positively idle + flat-transcript + confirmed across ticks to reap. Default true. */
3329
+ reapStaleIdleWithActiveChildren?: boolean;
3325
3330
  /** CPU pressure: 1-min load ÷ cores at/above which pressure is `moderate`
3326
3331
  * (overall tier = worst of memory and CPU). Default 1.0. */
3327
3332
  cpuModerateLoadPerCore?: number;