instar 1.3.591 → 1.3.593

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 (51) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +23 -0
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/PostUpdateMigrator.d.ts +10 -0
  5. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  6. package/dist/core/PostUpdateMigrator.js +83 -12
  7. package/dist/core/PostUpdateMigrator.js.map +1 -1
  8. package/dist/core/QuotaAwareScheduler.d.ts +25 -0
  9. package/dist/core/QuotaAwareScheduler.d.ts.map +1 -1
  10. package/dist/core/QuotaAwareScheduler.js +36 -0
  11. package/dist/core/QuotaAwareScheduler.js.map +1 -1
  12. package/dist/core/types.d.ts +15 -0
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/core/types.js.map +1 -1
  15. package/dist/monitoring/GreenPrAutoMerger.d.ts +90 -5
  16. package/dist/monitoring/GreenPrAutoMerger.d.ts.map +1 -1
  17. package/dist/monitoring/GreenPrAutoMerger.js +269 -6
  18. package/dist/monitoring/GreenPrAutoMerger.js.map +1 -1
  19. package/dist/monitoring/MergeRunner.d.ts +21 -0
  20. package/dist/monitoring/MergeRunner.d.ts.map +1 -1
  21. package/dist/monitoring/MergeRunner.js +33 -5
  22. package/dist/monitoring/MergeRunner.js.map +1 -1
  23. package/dist/monitoring/QuotaTracker.d.ts +56 -0
  24. package/dist/monitoring/QuotaTracker.d.ts.map +1 -1
  25. package/dist/monitoring/QuotaTracker.js +112 -4
  26. package/dist/monitoring/QuotaTracker.js.map +1 -1
  27. package/dist/monitoring/greenPrAutomergeWiring.d.ts +7 -0
  28. package/dist/monitoring/greenPrAutomergeWiring.d.ts.map +1 -1
  29. package/dist/monitoring/greenPrAutomergeWiring.js +44 -2
  30. package/dist/monitoring/greenPrAutomergeWiring.js.map +1 -1
  31. package/dist/monitoring/greenPrLogic.d.ts +39 -1
  32. package/dist/monitoring/greenPrLogic.d.ts.map +1 -1
  33. package/dist/monitoring/greenPrLogic.js +33 -1
  34. package/dist/monitoring/greenPrLogic.js.map +1 -1
  35. package/dist/scaffold/templates.d.ts.map +1 -1
  36. package/dist/scaffold/templates.js +2 -1
  37. package/dist/scaffold/templates.js.map +1 -1
  38. package/dist/server/CapabilityIndex.js +1 -1
  39. package/dist/server/CapabilityIndex.js.map +1 -1
  40. package/dist/server/routes.d.ts.map +1 -1
  41. package/dist/server/routes.js +29 -4
  42. package/dist/server/routes.js.map +1 -1
  43. package/package.json +1 -1
  44. package/scripts/safe-merge.mjs +27 -1
  45. package/src/data/builtin-manifest.json +63 -63
  46. package/src/scaffold/templates.ts +2 -1
  47. package/upgrades/1.3.592.md +40 -0
  48. package/upgrades/1.3.593.md +28 -0
  49. package/upgrades/side-effects/mergerunner-auto-arm-handoff-parity-track.md +60 -0
  50. package/upgrades/side-effects/mergerunner-auto-arm-handoff.md +48 -0
  51. package/upgrades/side-effects/pool-aware-quota-throttle.md +123 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAg4CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoodtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmCH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,OAAO,EAAE,eAAe,EAAiC,MAAM,iCAAiC,CAAC;AAuBjG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkH7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAUT;AAyID,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;2DACuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAg4CD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAGvE,UAAU,CAAC,EAAE,MAAM,OAAO,8BAA8B,EAAE,WAAW,GAAG,IAAI,EAK5E,qBAAqB,CAAC,EAAE,MAAM,OAAO,gCAAgC,EAAE,kBAAkB,GAAG,IAAI,EAKhG,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GACpD,IAAI,CA8eN;AA2lBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4pdtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5E"}
@@ -9173,6 +9173,24 @@ export async function startServer(options) {
9173
9173
  if (subscriptionPool.size() > 0) {
9174
9174
  console.log(pc.green(` Subscription pool: ${subscriptionPool.size()} account(s) registered`));
9175
9175
  }
9176
+ // POOL-AWARE QUOTA THROTTLE wiring (docs/specs/POOL-AWARE-QUOTA-THROTTLE-SPEC.md):
9177
+ // give the global quota brake the SAME placeability predicate the placement layer
9178
+ // (selectAccount) uses, reading the LIVE SubscriptionPool. Effect: the brake never
9179
+ // stops the whole agent while a placeable account has headroom (the 2026-06-15
9180
+ // "one maxed account stalls everything while reserves sit idle" bug), and never
9181
+ // allows work placement can't land (the 90–95% respawn-loop band — selectAccount's
9182
+ // soft threshold is stricter than the shutdown threshold). Only for a genuine pool
9183
+ // (>1 account); a solo agent keeps the legacy single-account gating untouched.
9184
+ if (quotaTracker && subscriptionPool.size() > 1) {
9185
+ const { poolHeadroom } = await import('../core/QuotaAwareScheduler.js');
9186
+ // poolHeadroom shares placement's exact eligibility predicate, so a throttle
9187
+ // "allow" always corresponds to a placeable account, AND it gates on the
9188
+ // MOST-HEADROOM account (not the use-it-or-lose-it drain-first winner) — so
9189
+ // non-critical work runs whenever ANY account has room, while placement still
9190
+ // drains the soonest-to-reset account. Clamps + degraded signal are built in.
9191
+ quotaTracker.setPoolQuotaProvider(() => poolHeadroom(subscriptionPool.list(), { nowMs: Date.now() }));
9192
+ console.log(pc.green(' Pool-aware quota throttle: wired (placement-shared eligibility, most-headroom gating)'));
9193
+ }
9176
9194
  // ── Live credential re-pointing — census consumer re-routing (WS5.2 Step 6) ──
9177
9195
  // The CredentialLocationLedger is the machine-local source of truth for "which account is in
9178
9196
  // which config-home slot" once re-pointing is enabled. The CredentialLocationGate re-routes
@@ -13522,6 +13540,11 @@ export async function startServer(options) {
13522
13540
  repo: 'JKHeadley/instar', agentNamespace,
13523
13541
  mergeTimeoutMs: Number(gpCfg.mergeTimeoutMs) || 1_500_000,
13524
13542
  mergeKillGraceMs: Number(gpCfg.mergeKillGraceMs) || 60_000,
13543
+ // mergerunner-auto-arm-handoff M2: thread the two runner-path fields so
13544
+ // run() selects --auto vs --admin + the auto-path deadline (not the
13545
+ // previously-hardcoded --admin). Defaults keep the arm path.
13546
+ mergeStrategy: gpCfg.mergeStrategy === 'admin' ? 'admin' : 'auto',
13547
+ armTimeoutMs: Number(gpCfg.armTimeoutMs) || 60_000,
13525
13548
  holdsLease: () => (leaseCoordinatorRef ? leaseCoordinatorRef.holdsLease() : true),
13526
13549
  leaseEpoch: () => (leaseCoordinatorRef ? leaseCoordinatorRef.currentEpoch() : 0),
13527
13550
  // Single-machine: the durable local file is the authoritative gate.