instar 1.3.800 → 1.3.802

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 (83) hide show
  1. package/dashboard/index.html +25 -0
  2. package/dist/commands/server.d.ts.map +1 -1
  3. package/dist/commands/server.js +63 -1
  4. package/dist/commands/server.js.map +1 -1
  5. package/dist/core/BackupManager.d.ts.map +1 -1
  6. package/dist/core/BackupManager.js +8 -0
  7. package/dist/core/BackupManager.js.map +1 -1
  8. package/dist/core/PostUpdateMigrator.d.ts +8 -0
  9. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  10. package/dist/core/PostUpdateMigrator.js +45 -0
  11. package/dist/core/PostUpdateMigrator.js.map +1 -1
  12. package/dist/core/ProactiveSwapMonitor.d.ts +10 -0
  13. package/dist/core/ProactiveSwapMonitor.d.ts.map +1 -1
  14. package/dist/core/ProactiveSwapMonitor.js +39 -0
  15. package/dist/core/ProactiveSwapMonitor.js.map +1 -1
  16. package/dist/core/SessionManager.d.ts +26 -4
  17. package/dist/core/SessionManager.d.ts.map +1 -1
  18. package/dist/core/SessionManager.js +76 -22
  19. package/dist/core/SessionManager.js.map +1 -1
  20. package/dist/core/machineCoherenceManifest.d.ts +10 -0
  21. package/dist/core/machineCoherenceManifest.d.ts.map +1 -1
  22. package/dist/core/machineCoherenceManifest.js +58 -0
  23. package/dist/core/machineCoherenceManifest.js.map +1 -1
  24. package/dist/core/types.d.ts +53 -0
  25. package/dist/core/types.d.ts.map +1 -1
  26. package/dist/core/types.js.map +1 -1
  27. package/dist/monitoring/ExternalHogScanTick.d.ts +9 -0
  28. package/dist/monitoring/ExternalHogScanTick.d.ts.map +1 -1
  29. package/dist/monitoring/ExternalHogScanTick.js +29 -0
  30. package/dist/monitoring/ExternalHogScanTick.js.map +1 -1
  31. package/dist/monitoring/PromiseBeacon.d.ts +6 -0
  32. package/dist/monitoring/PromiseBeacon.d.ts.map +1 -1
  33. package/dist/monitoring/PromiseBeacon.js +42 -6
  34. package/dist/monitoring/PromiseBeacon.js.map +1 -1
  35. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  36. package/dist/monitoring/guardManifest.js +31 -0
  37. package/dist/monitoring/guardManifest.js.map +1 -1
  38. package/dist/monitoring/guardPosture.d.ts.map +1 -1
  39. package/dist/monitoring/guardPosture.js +22 -0
  40. package/dist/monitoring/guardPosture.js.map +1 -1
  41. package/dist/monitoring/selfaction/anchor.d.ts +82 -0
  42. package/dist/monitoring/selfaction/anchor.d.ts.map +1 -0
  43. package/dist/monitoring/selfaction/anchor.js +113 -0
  44. package/dist/monitoring/selfaction/anchor.js.map +1 -0
  45. package/dist/monitoring/selfaction/governor.d.ts +242 -0
  46. package/dist/monitoring/selfaction/governor.d.ts.map +1 -0
  47. package/dist/monitoring/selfaction/governor.js +1475 -0
  48. package/dist/monitoring/selfaction/governor.js.map +1 -0
  49. package/dist/monitoring/selfaction/policies.d.ts +86 -0
  50. package/dist/monitoring/selfaction/policies.d.ts.map +1 -0
  51. package/dist/monitoring/selfaction/policies.js +339 -0
  52. package/dist/monitoring/selfaction/policies.js.map +1 -0
  53. package/dist/monitoring/selfaction/types.d.ts +208 -0
  54. package/dist/monitoring/selfaction/types.d.ts.map +1 -0
  55. package/dist/monitoring/selfaction/types.js +11 -0
  56. package/dist/monitoring/selfaction/types.js.map +1 -0
  57. package/dist/scaffold/templates.d.ts.map +1 -1
  58. package/dist/scaffold/templates.js +8 -1
  59. package/dist/scaffold/templates.js.map +1 -1
  60. package/dist/server/AgentServer.d.ts.map +1 -1
  61. package/dist/server/AgentServer.js +6 -0
  62. package/dist/server/AgentServer.js.map +1 -1
  63. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  64. package/dist/server/CapabilityIndex.js +9 -0
  65. package/dist/server/CapabilityIndex.js.map +1 -1
  66. package/dist/server/routes.d.ts +4 -0
  67. package/dist/server/routes.d.ts.map +1 -1
  68. package/dist/server/routes.js +271 -3
  69. package/dist/server/routes.js.map +1 -1
  70. package/dist/testing/selfActionRegistry.d.ts +16 -0
  71. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  72. package/dist/testing/selfActionRegistry.js +16 -0
  73. package/dist/testing/selfActionRegistry.js.map +1 -1
  74. package/package.json +2 -2
  75. package/scripts/lint-emit-without-admit.js +303 -0
  76. package/src/data/builtin-manifest.json +66 -66
  77. package/src/data/state-coherence-registry.json +1296 -1241
  78. package/src/scaffold/templates.ts +8 -1
  79. package/upgrades/1.3.801.md +38 -0
  80. package/upgrades/1.3.802.md +36 -0
  81. package/upgrades/session-listing-hygiene.eli16.md +26 -0
  82. package/upgrades/side-effects/self-action-governor.md +111 -0
  83. package/upgrades/side-effects/session-listing-hygiene.md +93 -0
@@ -66,6 +66,22 @@ export interface SelfActionController {
66
66
  actionVerb: string;
67
67
  /** Real source this models (documentation + audit trail). */
68
68
  models: string;
69
+ /**
70
+ * PARSEABLE path binding for the emit-without-admit usage-scan lint
71
+ * (unified-self-action-backpressure companion §9): the registry-named
72
+ * source FILE licensed to declare this controller's marker + mint its
73
+ * governor handle. Unlike `models:` (prose-annotated), this field is a
74
+ * bare repo-relative path the lint greps — the promotion of the models:
75
+ * pointer from documentation to a lint-asserted binding (spec SEC6-4).
76
+ */
77
+ modelsPath: string;
78
+ /**
79
+ * The named EXTERNAL give-up authority for an exempt-lane member (the
80
+ * respawn-recovery / eternalSentinel count-exempt lanes — spec ADV5-3):
81
+ * the cap that owns this controller's give-up, which the ratchet fixture
82
+ * drives to its trip point. Required for every eternalSentinel entry.
83
+ */
84
+ delegatedGiveUp?: string;
69
85
  /** Build the controller under a fixture + sink; returns something with tick(). */
70
86
  makeUnderPressure(f: PressureFixture, sink: ActionSink): {
71
87
  tick(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"selfActionRegistry.d.ts","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,wEAAwE;IACxE,eAAe,IAAI,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,gBAAgB,IAAI,OAAO,CAAC;IAC5B,qFAAqF;IACrF,mBAAmB,IAAI,OAAO,CAAC;IAC/B,uGAAuG;IACvG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,2BAA2B;AAC3B,wBAAgB,cAAc,IAAI,UAAU,CAY3C;AAED,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,iBAAiB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IAC1E,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAkcD,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,EAYzD,CAAC"}
1
+ {"version":3,"file":"selfActionRegistry.d.ts","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,wEAAwE;IACxE,eAAe,IAAI,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,gBAAgB,IAAI,OAAO,CAAC;IAC5B,qFAAqF;IACrF,mBAAmB,IAAI,OAAO,CAAC;IAC/B,uGAAuG;IACvG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,2BAA2B;AAC3B,wBAAgB,cAAc,IAAI,UAAU,CAY3C;AAED,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,iBAAiB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IAC1E,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAkdD,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,EAYzD,CAAC"}
@@ -50,6 +50,7 @@ const proactiveSwapMonitor = {
50
50
  id: 'proactive-swap-monitor',
51
51
  actionVerb: 'account-swap',
52
52
  models: 'src/monitoring/SubscriptionPool.ts (proactive pre-limit swap, antiThrash all-hot + projected-load brake)',
53
+ modelsPath: 'src/core/ProactiveSwapMonitor.ts',
53
54
  boundK: 1,
54
55
  perTargetBoundK: 1,
55
56
  ticks: 20,
@@ -92,6 +93,7 @@ const ageKillBackoff = {
92
93
  id: 'age-kill-backoff',
93
94
  actionVerb: 'age-kill',
94
95
  models: 'src/monitoring/SessionReaper.ts (age-limit kill-request; AgeKillBackoff — P19 backoff + breaker)',
96
+ modelsPath: 'src/core/SessionManager.ts',
95
97
  boundK: 5,
96
98
  perTargetBoundK: 5, // legitimately the SAME session, bounded by the breaker (not a ping-pong)
97
99
  // Horizon chosen so N ticks FULLY reaches the breaker cap (cumulative
@@ -139,6 +141,7 @@ const promiseBeaconNotify = {
139
141
  id: 'promise-beacon-notify',
140
142
  actionVerb: 'beacon-notify',
141
143
  models: 'src/monitoring/PromiseBeacon.ts (suppressUnchangedHeartbeats — progress-only heartbeat)',
144
+ modelsPath: 'src/monitoring/PromiseBeacon.ts',
142
145
  boundK: 1,
143
146
  perTargetBoundK: 1,
144
147
  ticks: 20,
@@ -172,6 +175,8 @@ const livenessHeartbeat = {
172
175
  id: 'liveness-heartbeat',
173
176
  actionVerb: 'liveness-notify',
174
177
  models: 'src/monitoring/PromiseBeacon.ts (beaconLivenessIntervalMs — sparse once-per-interval liveness line)',
178
+ modelsPath: 'src/monitoring/PromiseBeacon.ts',
179
+ delegatedGiveUp: 'the hard rateFloorMs (60 min) — emits can never exceed elapsed/rateFloorMs',
175
180
  boundK: Number.POSITIVE_INFINITY, // exempt — bounded by the rate floor, not a total count
176
181
  perTargetBoundK: Number.POSITIVE_INFINITY,
177
182
  ticks: 24,
@@ -216,6 +221,7 @@ const externalHogKillBreaker = {
216
221
  id: 'external-hog-kill-breaker',
217
222
  actionVerb: 'kill',
218
223
  models: 'src/monitoring/ExternalHogKillLedger.ts (respawn breaker driven by the ExternalHogScanTick kill path — real pure functions, not a re-model)',
224
+ modelsPath: 'src/monitoring/ExternalHogSentinel.ts',
219
225
  boundK: 3,
220
226
  perTargetBoundK: 3, // legitimately the SAME respawning signature, bounded by the window breaker (not a ping-pong)
221
227
  ticks: 30,
@@ -257,6 +263,7 @@ const meteredReserveExpirySweep = {
257
263
  id: 'metered-reserve-expiry-sweep',
258
264
  actionVerb: 'expire-reserve-kill', // 'kill' detector token; the swept reserve is terminally closed
259
265
  models: 'src/core/MeteredSpendLedger.ts (sweepExpired; idempotent terminal reserve→expired) + src/server/AgentServer.ts 5-min cadence',
266
+ modelsPath: 'src/core/MeteredSpendLedger.ts',
260
267
  boundK: 3, // exactly the 3 stale reserves in the fixture — never more
261
268
  perTargetBoundK: 1, // terminal: one expire per reserveId, ever
262
269
  ticks: 50,
@@ -296,6 +303,8 @@ const spendStalePriceAlert = {
296
303
  id: 'spend-stale-price-alert',
297
304
  actionVerb: 'stale-price-notify',
298
305
  models: 'src/core/SpendAlertResolver.ts (emit — edge latch on CONFIRMED delivery, 24h re-arm) + src/server/AgentServer.ts 6h staleCheck cadence',
306
+ modelsPath: 'src/core/SpendAlertResolver.ts',
307
+ delegatedGiveUp: 'the 24h confirmed-delivery edge latch (dispatcher re-arm window)',
299
308
  boundK: 3, // 3 emissions across the ~2.1-day horizon = 1 per 24h window (rate floor), one door
300
309
  perTargetBoundK: 3,
301
310
  ticks: 8, // 8 × 6h = 48h+2 ticks horizon; 2N=16 ticks (~4 days) still settles at the daily rate
@@ -331,6 +340,8 @@ const spendDoorDarkBrakes = {
331
340
  id: 'spend-door-dark-brakes',
332
341
  actionVerb: 'door-dark-notify',
333
342
  models: 'src/core/SpendAlertEmitters.ts (onChainExhausted — episode budget = chain length, widening backoff, flapping wording)',
343
+ modelsPath: 'src/core/SpendAlertEmitters.ts',
344
+ delegatedGiveUp: 'the per-episode-bucket attempt budget (= chain length) + widening backoff',
334
345
  boundK: 6, // 2 episode buckets × chain length 3 over the horizon
335
346
  perTargetBoundK: 6, // same chain each time — bounded by the episode budgets, not a ping-pong
336
347
  ticks: 145, // 145 × 5min ≈ 12.1h — crosses one 6h episode-bucket boundary
@@ -379,6 +390,8 @@ const spendFallbackSpike = {
379
390
  id: 'spend-fallback-spike',
380
391
  actionVerb: 'fallback-spike-notify',
381
392
  models: 'src/core/SpendAlertEmitters.ts (onFallbackServed — hourly ceiling edge, one per hour bucket)',
393
+ modelsPath: 'src/core/SpendAlertEmitters.ts',
394
+ delegatedGiveUp: 'the hourly ceiling-crossing bucket edge (one digest line per hour bucket)',
382
395
  boundK: 3, // 3 hour-buckets over the horizon → at most one each
383
396
  perTargetBoundK: 3,
384
397
  ticks: 180, // 180 × 1min = 3h of sustained churn
@@ -420,6 +433,7 @@ const spendCapApproach = {
420
433
  models: 'src/core/SpendAlertEmitters.ts (checkCapApproach — 50/80 on both caps, per-window dedupe via the dispatcher latch). ' +
421
434
  'The FEEDBACK-driven surface is the edge latch (modeled here, horizon-independent); the daily window additionally ' +
422
435
  're-arms on the CALENDAR day boundary — clock-driven, not feedback-driven, bounded at 2 notices/key/day by construction.',
436
+ modelsPath: 'src/core/SpendAlertEmitters.ts',
423
437
  boundK: 4, // 2 kinds × 2 thresholds — the latch bound, horizon-independent
424
438
  perTargetBoundK: 1, // each (kind, threshold, window) key emits ONCE, ever
425
439
  ticks: 96, // 96 × 5min = 8h of admits with committed parked ≥80% (inside one window)
@@ -458,6 +472,8 @@ const spendReconSweep = {
458
472
  id: 'spend-recon-sweep',
459
473
  actionVerb: 'recon-drift-notify',
460
474
  models: 'src/monitoring/ProviderReconciliationSweep.ts (cadenced read-only comparator) + the Increment-C dispatcher latch (24h re-arm per (keyRef, door, driftBucket))',
475
+ modelsPath: 'src/monitoring/ProviderReconciliationSweep.ts',
476
+ delegatedGiveUp: 'the dispatcher 24h latch per (keyRef, door, driftBucket)',
461
477
  boundK: 3, // 3 re-arm windows over the horizon → one each
462
478
  perTargetBoundK: 3,
463
479
  ticks: 12, // 12 × 6h sweep cadence = 3 days of permanent drift
@@ -1 +1 @@
1
- {"version":3,"file":"selfActionRegistry.js","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selfActionRegistry.js","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.800",
3
+ "version": "1.3.802",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -28,7 +28,7 @@
28
28
  "test:contract": "node scripts/run-contract-tests.js",
29
29
  "test:contract:raw": "vitest run --config vitest.contract.config.ts",
30
30
  "test:all": "vitest run && vitest run --config vitest.integration.config.ts && vitest run --config vitest.e2e.config.ts",
31
- "lint": "tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unregistered-self-action.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js && node scripts/lint-routing-registry-freshness.js && node scripts/lint-no-opus-claude-cli-gating.js && node scripts/lint-model-registry-freshness.mjs && node scripts/lint-no-unreachable-messaging-gate.js && node scripts/lint-nature-chains.mjs",
31
+ "lint": "tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unregistered-self-action.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js && node scripts/lint-routing-registry-freshness.js && node scripts/lint-no-opus-claude-cli-gating.js && node scripts/lint-model-registry-freshness.mjs && node scripts/lint-no-unreachable-messaging-gate.js && node scripts/lint-nature-chains.mjs && node scripts/lint-emit-without-admit.js",
32
32
  "lint:routing-registry": "node scripts/lint-routing-registry-freshness.js",
33
33
  "lint:no-opus-claude-cli-gating": "node scripts/lint-no-opus-claude-cli-gating.js",
34
34
  "lint:nature-chains": "node scripts/lint-nature-chains.mjs",
@@ -0,0 +1,303 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * lint-emit-without-admit.js — the SelfActionGovernor usage-scan lint
4
+ * (unified-self-action-backpressure companion §9; spec SEC5-1/ADV5-8,
5
+ * SEC6-4/ADV6-4, SEC8-1/ADV8-3, SEC9-1, INT9-2).
6
+ *
7
+ * Scan scope is CODEBASE-WIDE HANDLE USAGE over src/: `governor.for()` AND
8
+ * `admit()`/`admitSync()` usage of the minted handle — in EVERY file. The
9
+ * controller id is the runtime POLICY SELECTOR (including the privileged
10
+ * lanes), so it is bound at registration + sink, never caller-chosen.
11
+ *
12
+ * RULES (each violation fails the build — this lint is FAIL-CLOSED):
13
+ * 1. `governor.for(<arg>)` requires a STRING-LITERAL id; a variable/dynamic
14
+ * id is forbidden (a raw string-keyed policy selector at an emit site).
15
+ * 2. A file calling `governor.for('<id>')` must carry a matching
16
+ * `@self-action-controller: <id>` marker AND be LICENSED for <id> — the
17
+ * registry-named file (the parseable `modelsPath:` field) or the explicit
18
+ * per-controller file allowlist for legitimately multi-file controllers.
19
+ * 3. EVERY `@self-action-controller: <id>` marker must sit in a licensed
20
+ * file (a copy-pasted second file declaring an existing marker fails) and
21
+ * an id may not be declared twice in one file.
22
+ * 4. A file importing the `governor` handle surface without any marker fails
23
+ * (rogue helper-file import) unless it rides the SELF-SCOPE allowlist
24
+ * (the governor module itself, the enumerated principalAdmit entry
25
+ * surfaces, and the test registry — companion INT9-2).
26
+ * 5. `principalAdmit` / the `origin: 'principal'` literal are build-forbidden
27
+ * outside the enumerated principal entry-surface modules (FD13).
28
+ * 6. A minted handle may only be USED as `<handle>.admit(...)` /
29
+ * `<handle>.admitSync(...)` / `<handle>.isDead()` — it may never be
30
+ * EXPORTED or PASSED AS A VALUE beyond the controller's licensed files
31
+ * (SEC9-1 widening).
32
+ * 7. The first argument of `.admit()`/`.admitSync()` on a minted handle must
33
+ * be the controller's canonical `deriveTargetKey(...)` derivation (or an
34
+ * identifier assigned from one) — never a raw inline expression
35
+ * (target-granularity invariant, spec LA4-M1).
36
+ *
37
+ * Usage:
38
+ * node scripts/lint-emit-without-admit.js # full repo
39
+ */
40
+
41
+ import fs from 'node:fs';
42
+ import path from 'node:path';
43
+ import { fileURLToPath } from 'node:url';
44
+
45
+ const __filename = fileURLToPath(import.meta.url);
46
+ const ROOT = path.resolve(path.dirname(__filename), '..');
47
+
48
+ const GOVERNOR_MODULE_RE = /from\s+['"][^'"]*selfaction\/(?:governor|index)(?:\.js)?['"]/;
49
+ const IMPORTS_GOVERNOR_HANDLE_RE = /import\s*\{[^}]*\bgovernor\b[^}]*\}\s*from\s+['"][^'"]*selfaction\/(?:governor|index)(?:\.js)?['"]/;
50
+ const MARKER_RE = /@self-action-controller\s*:\s*([A-Za-z0-9_-]+)/g;
51
+ const FOR_CALL_RE = /\bgovernor\s*\.\s*for\s*\(\s*([^)]*?)\s*\)/g;
52
+ const HANDLE_DECL_RE = /(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*governor\s*\.\s*for\s*\(/g;
53
+ const PRINCIPAL_TOKEN_RE = /\bprincipalAdmit\b|origin\s*:\s*['"`]principal['"`]/;
54
+
55
+ /** The usage-scan lint's SELF-SCOPE (companion INT9-2): the governor module,
56
+ * the enumerated principalAdmit entry surfaces, and the test registry. */
57
+ export const SELF_SCOPE_ALLOWLIST = new Set([
58
+ 'src/monitoring/selfaction/governor.ts',
59
+ 'src/monitoring/selfaction/anchor.ts',
60
+ 'src/monitoring/selfaction/policies.ts',
61
+ 'src/monitoring/selfaction/types.ts',
62
+ 'src/testing/selfActionRegistry.ts',
63
+ ]);
64
+
65
+ /** The enumerated principal entry-surface modules (FD13): the dual-use sink
66
+ * entry surfaces + the MessageSentinel interceptor. The Tier-3 inventory
67
+ * asserts this enumeration matches the dual-use sink list. */
68
+ export const PRINCIPAL_SURFACE_ALLOWLIST = new Set([
69
+ 'src/monitoring/selfaction/governor.ts',
70
+ 'src/monitoring/selfaction/types.ts',
71
+ 'src/server/routes.ts', // DELETE /sessions/:id + POST /sessions/:name/remote-close (PIN-distinguishable)
72
+ ]);
73
+
74
+ /** Per-controller file allowlist for legitimately MULTI-FILE controllers
75
+ * (mint ONCE, import the handle; the allowlist licenses declaration, not
76
+ * duplicate minting). Every controller's registry-named file (modelsPath)
77
+ * is implicitly licensed. */
78
+ export const CONTROLLER_FILE_ALLOWLIST = {
79
+ 'external-hog-kill-breaker': [
80
+ 'src/monitoring/ExternalHogSentinel.ts',
81
+ 'src/monitoring/ExternalHogScanTick.ts',
82
+ ],
83
+ };
84
+
85
+ /** Parse `id:` + `modelsPath:` pairs out of the registry source. */
86
+ export function loadRegistryBindings(registrySource) {
87
+ const bindings = new Map();
88
+ if (typeof registrySource !== 'string') return bindings;
89
+ // Entries are object literals with id + modelsPath fields; pair them by
90
+ // proximity (modelsPath follows its id within the same literal).
91
+ const re = /\bid:\s*['"`]([A-Za-z0-9_-]+)['"`][\s\S]*?\bmodelsPath:\s*['"`]([^'"`]+)['"`]/g;
92
+ let m;
93
+ while ((m = re.exec(registrySource)) !== null) bindings.set(m[1], m[2]);
94
+ return bindings;
95
+ }
96
+
97
+ function licensedFilesFor(id, bindings, allowlist) {
98
+ const files = new Set(allowlist[id] ?? []);
99
+ const modelsPath = bindings.get(id);
100
+ if (modelsPath) files.add(modelsPath);
101
+ return files;
102
+ }
103
+
104
+ function stripCommentsKeepMarkers(content) {
105
+ // The marker lives in comments, so parse markers BEFORE stripping; the
106
+ // usage checks run on comment-stripped content to avoid prose hits.
107
+ return content
108
+ .replace(/\/\*[\s\S]*?\*\//g, (s) => s.replace(/[^\n]/g, ' '))
109
+ .replace(/(^|[^:])\/\/[^\n]*/g, (s, p1) => p1 + ' '.repeat(s.length - p1.length));
110
+ }
111
+
112
+ /**
113
+ * Pure evaluation over a prepared file set — exported for tests.
114
+ * @param {{ files: string[], registrySource: string, readFile: (rel:string)=>string|null,
115
+ * selfScope?: Set<string>, principalScope?: Set<string>,
116
+ * controllerAllowlist?: Record<string,string[]> }} input
117
+ */
118
+ export function evaluateEmitWithoutAdmit({
119
+ files,
120
+ registrySource,
121
+ readFile,
122
+ selfScope = SELF_SCOPE_ALLOWLIST,
123
+ principalScope = PRINCIPAL_SURFACE_ALLOWLIST,
124
+ controllerAllowlist = CONTROLLER_FILE_ALLOWLIST,
125
+ }) {
126
+ const bindings = loadRegistryBindings(registrySource);
127
+ const violations = [];
128
+ const markerFilesById = new Map();
129
+ let considered = 0;
130
+
131
+ for (const rel of files) {
132
+ const norm = rel.split(path.sep).join('/');
133
+ if (!norm.endsWith('.ts')) continue;
134
+ if (/(^|\/)tests\//.test(norm) || /\.test\.ts$/.test(norm) || /\.d\.ts$/.test(norm)) continue;
135
+ const content = readFile(norm);
136
+ if (content == null) continue;
137
+ considered += 1;
138
+
139
+ // Collect markers (from the raw content — they live in comments).
140
+ const markers = [];
141
+ let mm;
142
+ MARKER_RE.lastIndex = 0;
143
+ while ((mm = MARKER_RE.exec(content)) !== null) markers.push(mm[1]);
144
+ const markerSet = new Set(markers);
145
+ if (markers.length !== markerSet.size) {
146
+ violations.push({ file: norm, rule: 'duplicate-marker', detail: 'the same @self-action-controller id is declared twice in one file' });
147
+ }
148
+ for (const id of markerSet) {
149
+ const prior = markerFilesById.get(id) ?? [];
150
+ prior.push(norm);
151
+ markerFilesById.set(id, prior);
152
+ const licensed = licensedFilesFor(id, bindings, controllerAllowlist);
153
+ if (!selfScope.has(norm) && licensed.size > 0 && !licensed.has(norm)) {
154
+ violations.push({
155
+ file: norm,
156
+ rule: 'unlicensed-marker',
157
+ detail: `marker '${id}' declared in a file that is neither the registry-named file (${bindings.get(id) ?? 'none'}) nor on the per-controller allowlist`,
158
+ });
159
+ }
160
+ }
161
+
162
+ const code = stripCommentsKeepMarkers(content);
163
+ const isSelfScope = selfScope.has(norm);
164
+
165
+ // Rule 5 — principal lane scope.
166
+ if (PRINCIPAL_TOKEN_RE.test(code) && !principalScope.has(norm)) {
167
+ violations.push({
168
+ file: norm,
169
+ rule: 'principal-outside-allowlist',
170
+ detail: 'principalAdmit / the origin:\'principal\' literal is build-forbidden outside the enumerated principal entry surfaces (FD13)',
171
+ });
172
+ }
173
+
174
+ // Rule 4 — importing the handle surface requires a marker (or self-scope /
175
+ // an enumerated principal entry surface, which imports `governor` for the
176
+ // separate privileged principalAdmit API).
177
+ if (IMPORTS_GOVERNOR_HANDLE_RE.test(code) && !isSelfScope && !principalScope.has(norm) && markerSet.size === 0) {
178
+ violations.push({
179
+ file: norm,
180
+ rule: 'handle-import-without-marker',
181
+ detail: 'file imports the governor handle surface with no @self-action-controller marker (rogue helper-file import — SEC8-1/ADV8-3)',
182
+ });
183
+ }
184
+
185
+ // Rules 1 + 2 — governor.for() usage.
186
+ const handleVars = new Set();
187
+ let hd;
188
+ HANDLE_DECL_RE.lastIndex = 0;
189
+ while ((hd = HANDLE_DECL_RE.exec(code)) !== null) handleVars.add(hd[1]);
190
+ let fc;
191
+ FOR_CALL_RE.lastIndex = 0;
192
+ while ((fc = FOR_CALL_RE.exec(code)) !== null) {
193
+ if (isSelfScope) continue; // the governor module + test registry mint internally
194
+ const arg = fc[1].trim();
195
+ const lit = /^['"`]([A-Za-z0-9_-]+)['"`]$/.exec(arg);
196
+ if (!lit) {
197
+ violations.push({ file: norm, rule: 'dynamic-controller-id', detail: `governor.for(${arg}) — the controller id must be a string literal` });
198
+ continue;
199
+ }
200
+ const id = lit[1];
201
+ if (!markerSet.has(id)) {
202
+ violations.push({ file: norm, rule: 'mint-without-marker', detail: `governor.for('${id}') in a file with no matching @self-action-controller marker` });
203
+ }
204
+ const licensed = licensedFilesFor(id, bindings, controllerAllowlist);
205
+ if (licensed.size > 0 && !licensed.has(norm)) {
206
+ violations.push({ file: norm, rule: 'unlicensed-mint', detail: `governor.for('${id}') in a file that is not the registry-named file for '${id}' (${bindings.get(id) ?? 'none'}) nor allowlisted` });
207
+ }
208
+ if (!bindings.has(id) && !(controllerAllowlist[id]?.length > 0)) {
209
+ violations.push({ file: norm, rule: 'unbound-controller', detail: `controller '${id}' has no registry modelsPath binding and no file allowlist — promote the models: pointer to a parseable modelsPath` });
210
+ }
211
+ }
212
+
213
+ // Rule 6 — handle leak (export / passed as a value) + Rule 7 — the
214
+ // deriveTargetKey binding on admit call sites.
215
+ for (const v of handleVars) {
216
+ const usageRe = new RegExp(String.raw`\b${v}\b`, 'g');
217
+ let um;
218
+ while ((um = usageRe.exec(code)) !== null) {
219
+ const rest = code.slice(um.index + v.length);
220
+ const before = code.slice(Math.max(0, um.index - 40), um.index);
221
+ const isDecl = new RegExp(String.raw`(?:const|let|var)\s+$`).test(before);
222
+ const isMemberUse = /^\s*\.\s*(admit|admitSync|isDead)\s*\(/.test(rest) || /^\s*\.\s*controllerId\b/.test(rest);
223
+ if (isDecl || isMemberUse) continue;
224
+ violations.push({
225
+ file: norm,
226
+ rule: 'handle-leak',
227
+ detail: `handle '${v}' used outside <handle>.admit/.admitSync/.isDead — a handle may never be exported or passed as a value (SEC9-1)`,
228
+ });
229
+ break; // one leak violation per handle var
230
+ }
231
+ // Rule 7: every admit first-arg must be a deriveTargetKey derivation.
232
+ const admitRe = new RegExp(String.raw`\b${v}\s*\.\s*admit(?:Sync)?\s*\(`, 'g');
233
+ let am;
234
+ while ((am = admitRe.exec(code)) !== null) {
235
+ const argStart = am.index + am[0].length;
236
+ const argText = code.slice(argStart, argStart + 220);
237
+ const firstArg = argText.split(/[,)]/)[0]?.trim() ?? '';
238
+ const containsDerivation = /deriveTargetKey\s*\(/.test(firstArg);
239
+ const isIdentifier = /^[A-Za-z_$][\w$]*$/.test(firstArg);
240
+ const identifierBoundToDerivation =
241
+ isIdentifier && new RegExp(String.raw`\b${firstArg}\b\s*=[^=][\s\S]{0,160}?deriveTargetKey\s*\(`).test(code);
242
+ if (!containsDerivation && !identifierBoundToDerivation) {
243
+ violations.push({
244
+ file: norm,
245
+ rule: 'raw-target-expression',
246
+ detail: `admit() target must be the controller's canonical deriveTargetKey(...) (or an identifier assigned from it) — raw inline target expressions defeat the granularity invariant`,
247
+ });
248
+ }
249
+ }
250
+ }
251
+
252
+ // Raw string-keyed admit at an emit site (`governor.admit(...)`).
253
+ if (/\bgovernor\s*\.\s*admit(?:Sync)?\s*\(/.test(code) && !isSelfScope) {
254
+ violations.push({ file: norm, rule: 'raw-string-admit', detail: 'raw string-keyed governor.admit() at an emit site is forbidden — use the per-controller handle' });
255
+ }
256
+ }
257
+
258
+ return { violations, considered };
259
+ }
260
+
261
+ // ── CLI ──────────────────────────────────────────────────────────────────────
262
+
263
+ function listSrcFiles(dir, out = []) {
264
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
265
+ const full = path.join(dir, entry.name);
266
+ if (entry.isDirectory()) {
267
+ if (entry.name === 'node_modules') continue;
268
+ listSrcFiles(full, out);
269
+ } else if (entry.name.endsWith('.ts')) {
270
+ out.push(path.relative(ROOT, full));
271
+ }
272
+ }
273
+ return out;
274
+ }
275
+
276
+ const isMain = process.argv[1] && path.resolve(process.argv[1]) === __filename;
277
+ if (isMain) {
278
+ const files = listSrcFiles(path.join(ROOT, 'src'));
279
+ let registrySource = '';
280
+ try {
281
+ registrySource = fs.readFileSync(path.join(ROOT, 'src', 'testing', 'selfActionRegistry.ts'), 'utf-8');
282
+ } catch {
283
+ registrySource = '';
284
+ }
285
+ const { violations, considered } = evaluateEmitWithoutAdmit({
286
+ files,
287
+ registrySource,
288
+ readFile: (rel) => {
289
+ try {
290
+ return fs.readFileSync(path.join(ROOT, rel), 'utf-8');
291
+ } catch {
292
+ return null;
293
+ }
294
+ },
295
+ });
296
+ if (violations.length > 0) {
297
+ console.error(`[lint-emit-without-admit] ${violations.length} violation(s) over ${considered} file(s):`);
298
+ for (const v of violations) console.error(` ${v.file} [${v.rule}]: ${v.detail}`);
299
+ console.error('\nSee docs/specs/unified-self-action-backpressure.companion.md §9 (enforcement tooling).');
300
+ process.exit(1);
301
+ }
302
+ console.log(`[lint-emit-without-admit] OK — ${considered} file(s) scanned, 0 violations.`);
303
+ }