agentfootprint 9.30.0 → 9.32.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.
Files changed (184) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +6 -2
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/adapters/identity/jwks.js +18 -0
  5. package/dist/adapters/identity/jwks.js.map +1 -1
  6. package/dist/adapters/llm/BrowserOpenAIProvider.js +5 -3
  7. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  8. package/dist/adapters/llm/OpenAIProvider.js +74 -2
  9. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  10. package/dist/adapters/llm/azureUrl.js +48 -0
  11. package/dist/adapters/llm/azureUrl.js.map +1 -0
  12. package/dist/adapters/llm/createProvider.js +25 -6
  13. package/dist/adapters/llm/createProvider.js.map +1 -1
  14. package/dist/adapters/types.js.map +1 -1
  15. package/dist/artifacts/gcsArtifacts.js +20 -0
  16. package/dist/artifacts/gcsArtifacts.js.map +1 -1
  17. package/dist/esm/adapters/identity/jwks.d.ts +18 -0
  18. package/dist/esm/adapters/identity/jwks.js +18 -0
  19. package/dist/esm/adapters/identity/jwks.js.map +1 -1
  20. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +5 -3
  21. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  22. package/dist/esm/adapters/llm/OpenAIProvider.d.ts +15 -2
  23. package/dist/esm/adapters/llm/OpenAIProvider.js +74 -2
  24. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  25. package/dist/esm/adapters/llm/azureUrl.d.ts +36 -0
  26. package/dist/esm/adapters/llm/azureUrl.js +43 -0
  27. package/dist/esm/adapters/llm/azureUrl.js.map +1 -0
  28. package/dist/esm/adapters/llm/createProvider.d.ts +5 -1
  29. package/dist/esm/adapters/llm/createProvider.js +25 -6
  30. package/dist/esm/adapters/llm/createProvider.js.map +1 -1
  31. package/dist/esm/adapters/types.d.ts +30 -2
  32. package/dist/esm/adapters/types.js.map +1 -1
  33. package/dist/esm/artifacts/gcsArtifacts.d.ts +20 -0
  34. package/dist/esm/artifacts/gcsArtifacts.js +20 -0
  35. package/dist/esm/artifacts/gcsArtifacts.js.map +1 -1
  36. package/dist/esm/events/payloads.d.ts +36 -0
  37. package/dist/esm/events/registry.d.ts +3 -1
  38. package/dist/esm/events/registry.js +2 -0
  39. package/dist/esm/events/registry.js.map +1 -1
  40. package/dist/esm/hosting/admission.d.ts +25 -0
  41. package/dist/esm/hosting/admission.js +25 -0
  42. package/dist/esm/hosting/admission.js.map +1 -1
  43. package/dist/esm/hosting/envelope.d.ts +10 -0
  44. package/dist/esm/hosting/envelope.js +10 -0
  45. package/dist/esm/hosting/envelope.js.map +1 -1
  46. package/dist/esm/hosting/index.d.ts +1 -0
  47. package/dist/esm/hosting/index.js.map +1 -1
  48. package/dist/esm/hosting/ingressRecord.d.ts +177 -0
  49. package/dist/esm/hosting/ingressRecord.js +246 -0
  50. package/dist/esm/hosting/ingressRecord.js.map +1 -0
  51. package/dist/esm/hosting/standingAgent.js +50 -1
  52. package/dist/esm/hosting/standingAgent.js.map +1 -1
  53. package/dist/esm/hosting/types.d.ts +31 -0
  54. package/dist/esm/hosting/types.js.map +1 -1
  55. package/dist/esm/lib/injection-engine/skillExamples.d.ts +168 -0
  56. package/dist/esm/lib/injection-engine/skillExamples.js +435 -0
  57. package/dist/esm/lib/injection-engine/skillExamples.js.map +1 -0
  58. package/dist/esm/lib/injection-engine/skillGraph.d.ts +63 -0
  59. package/dist/esm/lib/injection-engine/skillGraph.js +40 -2
  60. package/dist/esm/lib/injection-engine/skillGraph.js.map +1 -1
  61. package/dist/esm/lib/injection-engine/skillGraphCheckup.d.ts +25 -2
  62. package/dist/esm/lib/injection-engine/skillGraphCheckup.js +11 -2
  63. package/dist/esm/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  64. package/dist/esm/lib/injection-engine/skillMatch.d.ts +7 -0
  65. package/dist/esm/lib/injection-engine/skillMatch.js +9 -4
  66. package/dist/esm/lib/injection-engine/skillMatch.js.map +1 -1
  67. package/dist/esm/lib/mcp/gatewayTransport.d.ts +52 -0
  68. package/dist/esm/lib/mcp/gatewayTransport.js +1 -0
  69. package/dist/esm/lib/mcp/gatewayTransport.js.map +1 -1
  70. package/dist/esm/lib/mcp/mcpClient.js +8 -1
  71. package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
  72. package/dist/esm/lib/mcp/types.d.ts +10 -0
  73. package/dist/esm/observe.js +2 -1
  74. package/dist/esm/observe.js.map +1 -1
  75. package/dist/esm/recorders/core/ResilienceRecorder.d.ts +8 -7
  76. package/dist/esm/recorders/core/ResilienceRecorder.js +9 -7
  77. package/dist/esm/recorders/core/ResilienceRecorder.js.map +1 -1
  78. package/dist/esm/recorders/core/resilienceHooks.d.ts +1 -0
  79. package/dist/esm/recorders/core/resilienceHooks.js +13 -0
  80. package/dist/esm/recorders/core/resilienceHooks.js.map +1 -1
  81. package/dist/esm/resilience/withCircuitBreaker.d.ts +27 -7
  82. package/dist/esm/resilience/withCircuitBreaker.js +53 -19
  83. package/dist/esm/resilience/withCircuitBreaker.js.map +1 -1
  84. package/dist/esm/resilience/withFallback.d.ts +11 -0
  85. package/dist/esm/resilience/withFallback.js +11 -0
  86. package/dist/esm/resilience/withFallback.js.map +1 -1
  87. package/dist/esm/resilience/withRetry.d.ts +12 -0
  88. package/dist/esm/resilience/withRetry.js +12 -0
  89. package/dist/esm/resilience/withRetry.js.map +1 -1
  90. package/dist/esm/security/PermissionPolicy.d.ts +22 -0
  91. package/dist/esm/security/PermissionPolicy.js +22 -0
  92. package/dist/esm/security/PermissionPolicy.js.map +1 -1
  93. package/dist/events/registry.js +2 -0
  94. package/dist/events/registry.js.map +1 -1
  95. package/dist/hosting/admission.js +25 -0
  96. package/dist/hosting/admission.js.map +1 -1
  97. package/dist/hosting/envelope.js +10 -0
  98. package/dist/hosting/envelope.js.map +1 -1
  99. package/dist/hosting/index.js.map +1 -1
  100. package/dist/hosting/ingressRecord.js +250 -0
  101. package/dist/hosting/ingressRecord.js.map +1 -0
  102. package/dist/hosting/standingAgent.js +50 -1
  103. package/dist/hosting/standingAgent.js.map +1 -1
  104. package/dist/hosting/types.js.map +1 -1
  105. package/dist/lib/injection-engine/skillExamples.js +440 -0
  106. package/dist/lib/injection-engine/skillExamples.js.map +1 -0
  107. package/dist/lib/injection-engine/skillGraph.js +40 -2
  108. package/dist/lib/injection-engine/skillGraph.js.map +1 -1
  109. package/dist/lib/injection-engine/skillGraphCheckup.js +11 -2
  110. package/dist/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  111. package/dist/lib/injection-engine/skillMatch.js +11 -5
  112. package/dist/lib/injection-engine/skillMatch.js.map +1 -1
  113. package/dist/lib/mcp/gatewayTransport.js +1 -0
  114. package/dist/lib/mcp/gatewayTransport.js.map +1 -1
  115. package/dist/lib/mcp/mcpClient.js +8 -1
  116. package/dist/lib/mcp/mcpClient.js.map +1 -1
  117. package/dist/observe.js +2 -1
  118. package/dist/observe.js.map +1 -1
  119. package/dist/recorders/core/ResilienceRecorder.js +9 -7
  120. package/dist/recorders/core/ResilienceRecorder.js.map +1 -1
  121. package/dist/recorders/core/resilienceHooks.js +13 -0
  122. package/dist/recorders/core/resilienceHooks.js.map +1 -1
  123. package/dist/resilience/withCircuitBreaker.js +53 -19
  124. package/dist/resilience/withCircuitBreaker.js.map +1 -1
  125. package/dist/resilience/withFallback.js +11 -0
  126. package/dist/resilience/withFallback.js.map +1 -1
  127. package/dist/resilience/withRetry.js +12 -0
  128. package/dist/resilience/withRetry.js.map +1 -1
  129. package/dist/security/PermissionPolicy.js +22 -0
  130. package/dist/security/PermissionPolicy.js.map +1 -1
  131. package/dist/types/adapters/identity/jwks.d.ts +18 -0
  132. package/dist/types/adapters/identity/jwks.d.ts.map +1 -1
  133. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  134. package/dist/types/adapters/llm/OpenAIProvider.d.ts +15 -2
  135. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  136. package/dist/types/adapters/llm/azureUrl.d.ts +37 -0
  137. package/dist/types/adapters/llm/azureUrl.d.ts.map +1 -0
  138. package/dist/types/adapters/llm/createProvider.d.ts +5 -1
  139. package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
  140. package/dist/types/adapters/types.d.ts +30 -2
  141. package/dist/types/adapters/types.d.ts.map +1 -1
  142. package/dist/types/artifacts/gcsArtifacts.d.ts +20 -0
  143. package/dist/types/artifacts/gcsArtifacts.d.ts.map +1 -1
  144. package/dist/types/events/payloads.d.ts +36 -0
  145. package/dist/types/events/payloads.d.ts.map +1 -1
  146. package/dist/types/events/registry.d.ts +3 -1
  147. package/dist/types/events/registry.d.ts.map +1 -1
  148. package/dist/types/hosting/admission.d.ts +25 -0
  149. package/dist/types/hosting/admission.d.ts.map +1 -1
  150. package/dist/types/hosting/envelope.d.ts +10 -0
  151. package/dist/types/hosting/envelope.d.ts.map +1 -1
  152. package/dist/types/hosting/index.d.ts +1 -0
  153. package/dist/types/hosting/index.d.ts.map +1 -1
  154. package/dist/types/hosting/ingressRecord.d.ts +178 -0
  155. package/dist/types/hosting/ingressRecord.d.ts.map +1 -0
  156. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  157. package/dist/types/hosting/types.d.ts +31 -0
  158. package/dist/types/hosting/types.d.ts.map +1 -1
  159. package/dist/types/lib/injection-engine/skillExamples.d.ts +169 -0
  160. package/dist/types/lib/injection-engine/skillExamples.d.ts.map +1 -0
  161. package/dist/types/lib/injection-engine/skillGraph.d.ts +63 -0
  162. package/dist/types/lib/injection-engine/skillGraph.d.ts.map +1 -1
  163. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts +25 -2
  164. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts.map +1 -1
  165. package/dist/types/lib/injection-engine/skillMatch.d.ts +7 -0
  166. package/dist/types/lib/injection-engine/skillMatch.d.ts.map +1 -1
  167. package/dist/types/lib/mcp/gatewayTransport.d.ts +52 -0
  168. package/dist/types/lib/mcp/gatewayTransport.d.ts.map +1 -1
  169. package/dist/types/lib/mcp/types.d.ts +10 -0
  170. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  171. package/dist/types/observe.d.ts.map +1 -1
  172. package/dist/types/recorders/core/ResilienceRecorder.d.ts +8 -7
  173. package/dist/types/recorders/core/ResilienceRecorder.d.ts.map +1 -1
  174. package/dist/types/recorders/core/resilienceHooks.d.ts +1 -0
  175. package/dist/types/recorders/core/resilienceHooks.d.ts.map +1 -1
  176. package/dist/types/resilience/withCircuitBreaker.d.ts +27 -7
  177. package/dist/types/resilience/withCircuitBreaker.d.ts.map +1 -1
  178. package/dist/types/resilience/withFallback.d.ts +11 -0
  179. package/dist/types/resilience/withFallback.d.ts.map +1 -1
  180. package/dist/types/resilience/withRetry.d.ts +12 -0
  181. package/dist/types/resilience/withRetry.d.ts.map +1 -1
  182. package/dist/types/security/PermissionPolicy.d.ts +22 -0
  183. package/dist/types/security/PermissionPolicy.d.ts.map +1 -1
  184. package/package.json +2 -1
@@ -323,8 +323,7 @@ export interface LLMChunk {
323
323
  * Produced by exactly one decorator per `kind`:
324
324
  * • `'fell-back'` ← `withFallback`
325
325
  * • `'retried'` / `'recovered'` ← `withRetry`
326
- * • nothing ← `withCircuitBreaker` (no declared event for a breaker
327
- * transition; a trip is visible via the enclosing fallback's `reason`)
326
+ * • `'circuit-changed'` ← `withCircuitBreaker` (9.32.0)
328
327
  */
329
328
  export type ResilienceReport = {
330
329
  readonly kind: 'fell-back';
@@ -357,6 +356,35 @@ export type ResilienceReport = {
357
356
  /** 1-based attempt that finally succeeded. Always >= 2. */
358
357
  readonly attempt: number;
359
358
  readonly totalDurationMs: number;
359
+ } | {
360
+ /**
361
+ * v9.32 — the breaker moved between `closed` / `open` / `half-open`.
362
+ *
363
+ * Until this arm existed `withCircuitBreaker` reported NOTHING through
364
+ * the in-run channel: `onStateChange` was the only way to see a trip,
365
+ * and that hook fires at consumer level where the run ids are
366
+ * synthetic. An independent reviewer (2026-08-13, on a local harness of
367
+ * scripted failures) watched a breaker open after two failures, serve
368
+ * from fallback, half-open after cooldown and close after two probes —
369
+ * all correct, and all invisible
370
+ * to the typed stream. So the same trip is now on the record with the
371
+ * run's real correlation ids, because every transition happens INSIDE a
372
+ * call and there is nothing to synthesize.
373
+ *
374
+ * `onStateChange` is unchanged and still fires beside this: it is the
375
+ * consumer's own hook, and a Redis-backed counter built on it must not
376
+ * start depending on whether a run happened to be in flight.
377
+ */
378
+ readonly kind: 'circuit-changed';
379
+ /** The state entered. Transitions only — a no-op re-entry never reports. */
380
+ readonly state: 'closed' | 'open' | 'half-open';
381
+ /** WHY, in the breaker's own words (`'3 consecutive failures'`,
382
+ * `'cooldown elapsed'`, `'half-open probe failed'`). Never an error's
383
+ * message — the failure that tripped it is reported by whoever threw. */
384
+ readonly reason: string;
385
+ /** WHICH provider this breaker wraps. A stack of breakers under one
386
+ * fallback produces one stream, and this is what tells them apart. */
387
+ readonly providerName: string;
360
388
  };
361
389
  /**
362
390
  * v7.8 — optional per-call hooks the CALLER hands a provider.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsHH;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAqlBH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAqDD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,MAAM,UAAU,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsHH;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAwB,MAAM,CAAC,MAAM,CAAC;IAC5E,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAknBH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsC,EACtC,UAAgC;IAEhC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAqDD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAgGpD;uDACuD;AACvD,MAAM,UAAU,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC;AACnD,CAAC"}
@@ -69,6 +69,26 @@
69
69
  * bundle nothing, and a missing install refuses where the config was written.
70
70
  * Pass `storage` to share the client your app already built.
71
71
  *
72
+ * ── What that peer's TREE carries, said out loud ────────────────────────────
73
+ * Optional means it is your dependency and not this package's — nothing here
74
+ * loads it unless you call `gcsArtifacts` — but you inherit its tree when you
75
+ * do. Two independent audits (2026-08-13, 2026-08-14) reported the same five
76
+ * MODERATE advisories, and they reproduce here:
77
+ *
78
+ * `@google-cloud/storage` → `retry-request` → `teeny-request` → `gaxios` → `uuid`
79
+ *
80
+ * rooted in `uuid` (GHSA-w5hq-g745-h8pq — a missing buffer bounds check in
81
+ * v3/v5/v6 when `buf` is provided). It is not a defect in this adapter and
82
+ * there is no line here that would fix it: the chain is entirely inside
83
+ * Google's client.
84
+ *
85
+ * **Do not take `npm audit fix --force`.** Its resolution installs
86
+ * `@google-cloud/storage@5.18.3` — a major DOWNGRADE to a client from a
87
+ * different era of the API. Trading a bounds check in a path this adapter does
88
+ * not exercise for a client several majors behind the service is a different
89
+ * outage, not a security improvement, and this package will never pin you to
90
+ * it. Pin the newest 7.x yourself and watch the upstream chain.
91
+ *
72
92
  * ── Status ──────────────────────────────────────────────────────────────────
73
93
  * **Field-validated** (was "awaiting field use" through 9.28.0). The method
74
94
  * chain it calls is pinned against the really-installed package by
@@ -69,6 +69,26 @@
69
69
  * bundle nothing, and a missing install refuses where the config was written.
70
70
  * Pass `storage` to share the client your app already built.
71
71
  *
72
+ * ── What that peer's TREE carries, said out loud ────────────────────────────
73
+ * Optional means it is your dependency and not this package's — nothing here
74
+ * loads it unless you call `gcsArtifacts` — but you inherit its tree when you
75
+ * do. Two independent audits (2026-08-13, 2026-08-14) reported the same five
76
+ * MODERATE advisories, and they reproduce here:
77
+ *
78
+ * `@google-cloud/storage` → `retry-request` → `teeny-request` → `gaxios` → `uuid`
79
+ *
80
+ * rooted in `uuid` (GHSA-w5hq-g745-h8pq — a missing buffer bounds check in
81
+ * v3/v5/v6 when `buf` is provided). It is not a defect in this adapter and
82
+ * there is no line here that would fix it: the chain is entirely inside
83
+ * Google's client.
84
+ *
85
+ * **Do not take `npm audit fix --force`.** Its resolution installs
86
+ * `@google-cloud/storage@5.18.3` — a major DOWNGRADE to a client from a
87
+ * different era of the API. Trading a bounds check in a path this adapter does
88
+ * not exercise for a client several majors behind the service is a different
89
+ * outage, not a security improvement, and this package will never pin you to
90
+ * it. Pin the newest 7.x yourself and watch the upstream chain.
91
+ *
72
92
  * ── Status ──────────────────────────────────────────────────────────────────
73
93
  * **Field-validated** (was "awaiting field use" through 9.28.0). The method
74
94
  * chain it calls is pinned against the really-installed package by
@@ -1 +1 @@
1
- {"version":3,"file":"gcsArtifacts.js","sourceRoot":"","sources":["../../../src/artifacts/gcsArtifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcsArtifacts.js","sourceRoot":"","sources":["../../../src/artifacts/gcsArtifacts.ts"],"names":[],"mappings":"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"}
@@ -1409,6 +1409,42 @@ export interface ErrorRecoveredPayload {
1409
1409
  readonly attempt: number;
1410
1410
  readonly totalDurationMs: number;
1411
1411
  }
1412
+ /**
1413
+ * v9.32 — `withCircuitBreaker` moved between states.
1414
+ *
1415
+ * The gap this fills, named: until 9.32 the breaker reported nothing at all
1416
+ * through the in-run channel. `onStateChange` was the only way to see a trip,
1417
+ * and that is a consumer-level callback where a run's correlation ids are not
1418
+ * available — so a breaker that opened mid-run was invisible in the trace
1419
+ * beside the tool calls it stopped. An independent reviewer (2026-08-13, on a
1420
+ * local harness of scripted failures) watched a breaker open after two
1421
+ * failures, serve the next request from fallback, half-open after cooldown and
1422
+ * close after two probes: every step correct, every step off the record.
1423
+ *
1424
+ * Transitions ONLY. A hundred requests rejected while the breaker is already
1425
+ * open produce zero events — a re-entry into the same state is not a change,
1426
+ * and reporting it would turn a state log into a request log.
1427
+ *
1428
+ * On the `error.*` domain because that is where the provider decorators
1429
+ * already report; `reliability.*` is the separate rules-based loop.
1430
+ */
1431
+ export interface ErrorCircuitChangedPayload {
1432
+ /** The state entered. */
1433
+ readonly state: 'closed' | 'open' | 'half-open';
1434
+ /**
1435
+ * WHY, in the breaker's own words — `'3 consecutive failures'`,
1436
+ * `'cooldown elapsed'`, `'2 probe successes'`, `'half-open probe failed'`.
1437
+ *
1438
+ * Never an error's message: the failure that tripped it is reported by
1439
+ * whoever threw it, and copying it here would attribute one vendor's text to
1440
+ * a state machine that only counted.
1441
+ */
1442
+ readonly reason: string;
1443
+ /** WHICH provider this breaker wraps — `inner.name`, not a composite chain
1444
+ * name. Two breakers under one fallback produce one stream, and this is
1445
+ * what tells them apart. */
1446
+ readonly providerName: string;
1447
+ }
1412
1448
  /**
1413
1449
  * Fired when the rules loop (or the reliability gate chart) gives up via
1414
1450
  * a `fail-fast` decision. Superset shape: `phase`/`kind`/`attempt` are
@@ -16,7 +16,7 @@
16
16
  * major bump. See agentfootprint_v2_detailed_design.md for rules.
17
17
  */
18
18
  import type { AgentfootprintEventEnvelope } from './types.js';
19
- import type { AgentHandoffPayload, AgentIterationEndPayload, AgentIterationStartPayload, AgentRouteDecidedPayload, AgentTurnEndPayload, AgentTurnStartPayload, CompositionEnterPayload, CompositionExitPayload, ConditionalRouteDecidedPayload, ContextBudgetPressurePayload, ContextEvaluatedPayload, ContextEvictedPayload, ContextInjectedPayload, ContextSlotComposedPayload, CostLimitHitPayload, CostTickPayload, EmbeddingGeneratedPayload, ErrorFatalPayload, ErrorRecoveredPayload, ErrorRetriedPayload, EvalScorePayload, EvalThresholdCrossedPayload, AgentOutputSchemaValidationFailedPayload, AgentOutputContractUnmetPayload, AgentOutputSchemaRetryPayload, AgentThinkingParseFailedPayload, StreamThinkingDeltaPayload, StreamThinkingEndPayload, FallbackTriggeredPayload, LLMEndPayload, LLMStartPayload, LLMTokenPayload, LoopIterationExitPayload, LoopIterationStartPayload, MemoryAttachedPayload, MemoryDetachedPayload, MemoryRetrievedPayload, MemoryStrategyAppliedPayload, MemoryWrittenPayload, ParallelBranchCompletePayload, ParallelForkStartPayload, ParallelMergeEndPayload, PauseRequestPayload, PauseResumePayload, CheckInRequestPayload, CheckInDecisionPayload, PermissionCheckPayload, PermissionGateClosedPayload, PermissionHaltPayload, PermissionGateOpenedPayload, CredentialRequestedPayload, CredentialAcquiredPayload, CredentialAuthorizationRequiredPayload, CredentialFailedPayload, ReliabilityFailFastPayload, ReliabilityRetriedPayload, ReliabilityRecoveredPayload, RiskFlaggedPayload, SkillActivatedPayload, SkillDeactivatedPayload, SkillEscalatedPayload, SkillRejectedPayload, SkillRerouteSupersededPayload, SkillRouteConflictPayload, SkillStepAdvancedPayload, SkillStepSkippedPayload, SkillStepsUnfinishedPayload, SkillTurnRoutedPayload, ToolEffectPayload, ToolRepeatedCallPayload, ToolResultRefusedPayload, ToolEndPayload, ToolsActivatedPayload, ToolsDeactivatedPayload, ToolsDiscoveryStartedPayload, ToolsDiscoveryCompletedPayload, ToolsDiscoveryFailedPayload, ToolsShadowedPayload, ToolsSessionStartedPayload, ToolsSessionReusedPayload, ToolsSessionClosedPayload, ToolsSessionCloseFailedPayload, ToolsOfferedPayload, ToolStartPayload, ValidationArgsInvalidPayload, MiddlewareDecisionPayload, ArtifactMintedPayload, ArtifactResolvedPayload, ArtifactExpiredPayload, ArtifactRefusedPayload, ArtifactPresentedPayload } from './payloads.js';
19
+ import type { AgentHandoffPayload, AgentIterationEndPayload, AgentIterationStartPayload, AgentRouteDecidedPayload, AgentTurnEndPayload, AgentTurnStartPayload, CompositionEnterPayload, CompositionExitPayload, ConditionalRouteDecidedPayload, ContextBudgetPressurePayload, ContextEvaluatedPayload, ContextEvictedPayload, ContextInjectedPayload, ContextSlotComposedPayload, CostLimitHitPayload, CostTickPayload, EmbeddingGeneratedPayload, ErrorCircuitChangedPayload, ErrorFatalPayload, ErrorRecoveredPayload, ErrorRetriedPayload, EvalScorePayload, EvalThresholdCrossedPayload, AgentOutputSchemaValidationFailedPayload, AgentOutputContractUnmetPayload, AgentOutputSchemaRetryPayload, AgentThinkingParseFailedPayload, StreamThinkingDeltaPayload, StreamThinkingEndPayload, FallbackTriggeredPayload, LLMEndPayload, LLMStartPayload, LLMTokenPayload, LoopIterationExitPayload, LoopIterationStartPayload, MemoryAttachedPayload, MemoryDetachedPayload, MemoryRetrievedPayload, MemoryStrategyAppliedPayload, MemoryWrittenPayload, ParallelBranchCompletePayload, ParallelForkStartPayload, ParallelMergeEndPayload, PauseRequestPayload, PauseResumePayload, CheckInRequestPayload, CheckInDecisionPayload, PermissionCheckPayload, PermissionGateClosedPayload, PermissionHaltPayload, PermissionGateOpenedPayload, CredentialRequestedPayload, CredentialAcquiredPayload, CredentialAuthorizationRequiredPayload, CredentialFailedPayload, ReliabilityFailFastPayload, ReliabilityRetriedPayload, ReliabilityRecoveredPayload, RiskFlaggedPayload, SkillActivatedPayload, SkillDeactivatedPayload, SkillEscalatedPayload, SkillRejectedPayload, SkillRerouteSupersededPayload, SkillRouteConflictPayload, SkillStepAdvancedPayload, SkillStepSkippedPayload, SkillStepsUnfinishedPayload, SkillTurnRoutedPayload, ToolEffectPayload, ToolRepeatedCallPayload, ToolResultRefusedPayload, ToolEndPayload, ToolsActivatedPayload, ToolsDeactivatedPayload, ToolsDiscoveryStartedPayload, ToolsDiscoveryCompletedPayload, ToolsDiscoveryFailedPayload, ToolsShadowedPayload, ToolsSessionStartedPayload, ToolsSessionReusedPayload, ToolsSessionClosedPayload, ToolsSessionCloseFailedPayload, ToolsOfferedPayload, ToolStartPayload, ValidationArgsInvalidPayload, MiddlewareDecisionPayload, ArtifactMintedPayload, ArtifactResolvedPayload, ArtifactExpiredPayload, ArtifactRefusedPayload, ArtifactPresentedPayload } from './payloads.js';
20
20
  export declare const EVENT_NAMES: {
21
21
  readonly composition: {
22
22
  readonly enter: "agentfootprint.composition.enter";
@@ -124,6 +124,7 @@ export declare const EVENT_NAMES: {
124
124
  readonly retried: "agentfootprint.error.retried";
125
125
  readonly recovered: "agentfootprint.error.recovered";
126
126
  readonly fatal: "agentfootprint.error.fatal";
127
+ readonly circuitChanged: "agentfootprint.error.circuit_changed";
127
128
  };
128
129
  readonly reliability: {
129
130
  readonly failFast: "agentfootprint.reliability.fail_fast";
@@ -230,6 +231,7 @@ export interface AgentfootprintEventMap {
230
231
  'agentfootprint.error.retried': AgentfootprintEventEnvelope<'agentfootprint.error.retried', ErrorRetriedPayload>;
231
232
  'agentfootprint.error.recovered': AgentfootprintEventEnvelope<'agentfootprint.error.recovered', ErrorRecoveredPayload>;
232
233
  'agentfootprint.error.fatal': AgentfootprintEventEnvelope<'agentfootprint.error.fatal', ErrorFatalPayload>;
234
+ 'agentfootprint.error.circuit_changed': AgentfootprintEventEnvelope<'agentfootprint.error.circuit_changed', ErrorCircuitChangedPayload>;
233
235
  'agentfootprint.reliability.fail_fast': AgentfootprintEventEnvelope<'agentfootprint.reliability.fail_fast', ReliabilityFailFastPayload>;
234
236
  'agentfootprint.reliability.retried': AgentfootprintEventEnvelope<'agentfootprint.reliability.retried', ReliabilityRetriedPayload>;
235
237
  'agentfootprint.reliability.recovered': AgentfootprintEventEnvelope<'agentfootprint.reliability.recovered', ReliabilityRecoveredPayload>;
@@ -125,6 +125,7 @@ export const EVENT_NAMES = {
125
125
  retried: 'agentfootprint.error.retried',
126
126
  recovered: 'agentfootprint.error.recovered',
127
127
  fatal: 'agentfootprint.error.fatal',
128
+ circuitChanged: 'agentfootprint.error.circuit_changed',
128
129
  },
129
130
  reliability: {
130
131
  failFast: 'agentfootprint.reliability.fail_fast',
@@ -235,6 +236,7 @@ export const ALL_EVENT_TYPES = [
235
236
  'agentfootprint.error.retried',
236
237
  'agentfootprint.error.recovered',
237
238
  'agentfootprint.error.fatal',
239
+ 'agentfootprint.error.circuit_changed',
238
240
  'agentfootprint.reliability.fail_fast',
239
241
  'agentfootprint.reliability.retried',
240
242
  'agentfootprint.reliability.recovered',
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/events/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/events/registry.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,31 @@
12
12
  * and cost events every run already emits). This module is the join, plus the
13
13
  * seam where an operator's own rule goes.
14
14
  *
15
+ * **Status, split rather than averaged, because the two halves were not earned
16
+ * equally:**
17
+ *
18
+ * • **The `admission: { decide }` seam is field-validated — an independent
19
+ * field trial, 2026-08-13.** Running against a real hosted door (a live
20
+ * `nodeHost` in a live Google Cloud project, sessions in a real Firestore),
21
+ * the trial had one caller's first two turns run and the third answer **429
22
+ * before the provider or the session store was invoked** — the
23
+ * cheapest-refusal claim, measured rather than asserted.
24
+ *
25
+ * • **`turnsPerHour` itself is contract-shaped and tested.** The finding
26
+ * records the refusal and restates this helper's per-process bound; it does
27
+ * not record the shipped helper as the policy under test, and a run of a few
28
+ * minutes cannot have crossed an HOUR boundary in any case. So the window's
29
+ * own arithmetic — the roll-off, the reset a caller is told about — is
30
+ * proven here by tests and not by a field run.
31
+ *
32
+ * The honest bound the trial restated is the one already on {@link RecentSpend}:
33
+ * `turnsPerHour` is an in-process reference policy, its counters are not shared
34
+ * across instances and do not survive a restart, so a fleet-wide or billing
35
+ * control needs a `decide` that reads a transactional store of your own.
36
+ *
37
+ * The refusal itself is invisible to `auditExport()` — it happens before a run
38
+ * exists. `standingAgent({ onIngressDecision })` is where it lands instead.
39
+ *
15
40
  * ── One decision, three answers, no fourth ───────────────────────────────────
16
41
  * `'allow'` · `{ queue: true }` · `{ refuse: '<sentence>' }`. Deliberately not
17
42
  * "delay by N ms" (a sleep is a thread the caller is paying for), not "degrade
@@ -12,6 +12,31 @@
12
12
  * and cost events every run already emits). This module is the join, plus the
13
13
  * seam where an operator's own rule goes.
14
14
  *
15
+ * **Status, split rather than averaged, because the two halves were not earned
16
+ * equally:**
17
+ *
18
+ * • **The `admission: { decide }` seam is field-validated — an independent
19
+ * field trial, 2026-08-13.** Running against a real hosted door (a live
20
+ * `nodeHost` in a live Google Cloud project, sessions in a real Firestore),
21
+ * the trial had one caller's first two turns run and the third answer **429
22
+ * before the provider or the session store was invoked** — the
23
+ * cheapest-refusal claim, measured rather than asserted.
24
+ *
25
+ * • **`turnsPerHour` itself is contract-shaped and tested.** The finding
26
+ * records the refusal and restates this helper's per-process bound; it does
27
+ * not record the shipped helper as the policy under test, and a run of a few
28
+ * minutes cannot have crossed an HOUR boundary in any case. So the window's
29
+ * own arithmetic — the roll-off, the reset a caller is told about — is
30
+ * proven here by tests and not by a field run.
31
+ *
32
+ * The honest bound the trial restated is the one already on {@link RecentSpend}:
33
+ * `turnsPerHour` is an in-process reference policy, its counters are not shared
34
+ * across instances and do not survive a restart, so a fleet-wide or billing
35
+ * control needs a `decide` that reads a transactional store of your own.
36
+ *
37
+ * The refusal itself is invisible to `auditExport()` — it happens before a run
38
+ * exists. `standingAgent({ onIngressDecision })` is where it lands instead.
39
+ *
15
40
  * ── One decision, three answers, no fourth ───────────────────────────────────
16
41
  * `'allow'` · `{ queue: true }` · `{ refuse: '<sentence>' }`. Deliberately not
17
42
  * "delay by N ms" (a sleep is a thread the caller is paying for), not "degrade
@@ -1 +1 @@
1
- {"version":3,"file":"admission.js","sourceRoot":"","sources":["../../../src/hosting/admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admission.js","sourceRoot":"","sources":["../../../src/hosting/admission.ts"],"names":[],"mappings":"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"}
@@ -138,6 +138,16 @@ export declare function checkEnvelope(envelope: unknown, sessionId?: string): Ch
138
138
  * session nobody signed for is a session nobody can list, and inventing an
139
139
  * owner would be inventing an entitlement.
140
140
  *
141
+ * **Status: the CONTRACT is field-validated — an independent field trial,
142
+ * 2026-08-13.** A live multi-user run against a real Firestore: an owner
143
+ * written once and never moved, a cross-user transcript answering the same
144
+ * not-found a missing session gets, one caller's own two sessions listed over
145
+ * two pages, `listByUser` / `ownerOf` feature detection, and `mayOpenSession`
146
+ * refusing an ordinary turn on somebody else's conversation. The store
147
+ * underneath was **the trial's own Firestore `SessionLifecycle`**, not one this
148
+ * package ships — so the rung belongs to this derivation and the rules above
149
+ * it, and no shipped Google adapter may borrow the credit.
150
+ *
141
151
  * Reads both formats, so a session that is mid-question is owned exactly as
142
152
  * firmly as one that is finished. Returns `undefined` rather than throwing on
143
153
  * a shape it cannot read — an index is a convenience, and refusing to WRITE a
@@ -165,6 +165,16 @@ export function checkEnvelope(envelope, sessionId) {
165
165
  * session nobody signed for is a session nobody can list, and inventing an
166
166
  * owner would be inventing an entitlement.
167
167
  *
168
+ * **Status: the CONTRACT is field-validated — an independent field trial,
169
+ * 2026-08-13.** A live multi-user run against a real Firestore: an owner
170
+ * written once and never moved, a cross-user transcript answering the same
171
+ * not-found a missing session gets, one caller's own two sessions listed over
172
+ * two pages, `listByUser` / `ownerOf` feature detection, and `mayOpenSession`
173
+ * refusing an ordinary turn on somebody else's conversation. The store
174
+ * underneath was **the trial's own Firestore `SessionLifecycle`**, not one this
175
+ * package ships — so the rung belongs to this derivation and the rules above
176
+ * it, and no shipped Google adapter may borrow the credit.
177
+ *
168
178
  * Reads both formats, so a session that is mid-question is owned exactly as
169
179
  * firmly as one that is finished. Returns `undefined` rather than throwing on
170
180
  * a shape it cannot read — an index is a convenience, and refusing to WRITE a
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../src/hosting/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../src/hosting/envelope.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,7 @@ export { bearerToken, verifyRequestIdentity } from './identityVerification.js';
101
101
  export type { IdentityVerificationOptions, IdentityVerifier, VerifiedIdentity, } from './identityVerification.js';
102
102
  export { spendKeyFor, spendLedger, turnsPerHour } from './admission.js';
103
103
  export type { AdmissionContext, AdmissionPolicy, AdmissionVerdict, RecentSpend, SpendLedger, SpendLedgerOptions, TurnsPerHourOptions, } from './admission.js';
104
+ export type { IngressAdmissionVerdict, IngressDoor, IngressOutcome, IngressRecord, IngressSink, } from './ingressRecord.js';
104
105
  export { readSessionWireOp, sessionWireBody, SESSION_LIST_OP, SESSION_TRANSCRIPT_OP, } from './sessionWire.js';
105
106
  export type { SessionSummary, SessionWireRequest, SessionWireResult, TranscriptMessage, } from './sessionWire.js';
106
107
  export { ALL_WIRE_OPS, isWireOp, refuseUnknownWireOp, WIRE_OPS } from './wireOps.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEzF,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,oCAAoC;AAEpC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAWtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,2EAA2E;AAC3E,iEAAiE;AACjE,8EAA8E;AAC9E,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAO/E,+EAA+E;AAC/E,uEAAuE;AACvE,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAWxE,+EAA+E;AAC/E,yEAAyE;AACzE,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGrF,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosting/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEzF,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,oCAAoC;AAEpC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAWtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,2EAA2E;AAC3E,iEAAiE;AACjE,8EAA8E;AAC9E,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAO/E,+EAA+E;AAC/E,uEAAuE;AACvE,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAuBxE,+EAA+E;AAC/E,yEAAyE;AACzE,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGrF,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * hosting/ingressRecord — what the door decided, for the requests that never
3
+ * became a run.
4
+ *
5
+ * await standingAgent({
6
+ * agent, sessions, host,
7
+ * identity: { verify },
8
+ * admission: turnsPerHour({ limit: 60 }),
9
+ * onIngressDecision: (record) => myAuditSink.write(record),
10
+ * });
11
+ *
12
+ * ── The gap this closes, named exactly ───────────────────────────────────────
13
+ * `auditExport()` is a record of RUNS. A 401 out of `identity.verify` and a 429
14
+ * out of `admission.decide` both happen before a run exists — no agent has been
15
+ * built, no observer is attached, no typed event is emitted — so neither is in
16
+ * the bundle. Two independent review rounds wrote that down as the same finding,
17
+ * and the honest consequence is the sharp one: **an empty bundle is not evidence
18
+ * that nobody was turned away.** It is evidence that nobody ran.
19
+ *
20
+ * This is the seam where the turned-away go. One record per request the composer
21
+ * decided, handed to a sink you own, at the moment the reply reaches its
22
+ * terminal.
23
+ *
24
+ * ── What it is NOT, said before anything else ────────────────────────────────
25
+ * **It does not join the audit hash chain.** Nothing here is hashed, chained,
26
+ * sequenced against `auditExport()`'s records, or verifiable by
27
+ * `verifyAuditBundle`. It is a STREAM you chain into your own sink. Saying
28
+ * otherwise would make this fix the exact failure it exists to close — a
29
+ * mechanism that looks like evidence and is not. If you need ingress decisions
30
+ * inside a tamper-evident chain, write them into the same store your audit
31
+ * bundle lands in and chain them there, where the sequence is yours to define.
32
+ *
33
+ * ── Secrets never travel ─────────────────────────────────────────────────────
34
+ * A record carries the CLASS of what happened and the identifiers the caller
35
+ * already knew. Never the bearer token, never a header, never a claim set,
36
+ * never an error's message — the `sdkFailure` law, applied to the front door.
37
+ * `errorName` and `errorCode` are this package's own vocabulary; a message may
38
+ * carry an SDK's text, an operator's sentence or a store's detail, so no message
39
+ * is copied. The one identity field is `userId`, and it is the id the token
40
+ * PROVED — never one a request merely claimed.
41
+ *
42
+ * ── What the composer can decide, and what it never sees ─────────────────────
43
+ * Every ingress exit of `standingAgent` funnels through one reply terminal, so
44
+ * all of these land here — including the ones a consumer's own `verify` and
45
+ * `decide` never observe:
46
+ *
47
+ * - a request with no `Authorization: Bearer …` at all (`verify` is never
48
+ * called, so nothing you wrote could have logged it);
49
+ * - a verifier that could not answer (503) as distinct from a bad credential;
50
+ * - an admission refusal, and also an admission ALLOW — the census is what
51
+ * makes an absence readable;
52
+ * - a turn or a transcript naming somebody else's session (the 404 that is
53
+ * deliberately indistinguishable from "no such session");
54
+ * - a session op at a door with no verifier, a store with no owner index, a
55
+ * concurrent-run refusal, an artifact ref that did not resolve;
56
+ * - and a request that was SERVED.
57
+ *
58
+ * What it does not carry, stated rather than implied: a body the TRANSPORT
59
+ * refused before the composer ever saw it — unparseable JSON, or an `op` this
60
+ * host's wire grammar does not speak (`InvalidWireOpError`, answered 400 by
61
+ * `httpHost` inside its own request reader). That is a malformed request rather
62
+ * than a decision about a caller, and the composer does not claim it. Your HTTP
63
+ * access log has it.
64
+ *
65
+ * Pattern: Observer at a composition boundary. Zero-cost when unset — with no
66
+ * sink configured nothing is built, nothing is wrapped, and the reply object the
67
+ * handler uses is the host's own, to the byte.
68
+ */
69
+ import { type VerifiedIdentity } from './identityVerification.js';
70
+ import { type IdentityFailureClass } from './errors.js';
71
+ import type { HostReply, HostRequest } from './types.js';
72
+ /** Which of the composer's three doors this request knocked at. */
73
+ export type IngressDoor = 'turn' | 'session-op' | 'artifact';
74
+ /**
75
+ * How the door answered — coarse on purpose, because this is the field a
76
+ * dashboard groups by. `errorCode` carries the precision beside it.
77
+ *
78
+ * - `'served'` — the reply reached a DELIVERING terminal: an answer, a
79
+ * question a person must answer, a transcript, a listing, an artifact.
80
+ *
81
+ * Read it as **delivered**, not as *admitted*. The record is filed at the
82
+ * terminal the reply actually reached, and a failure is not a delivery — so
83
+ * a request the door admitted whose RUN, store or provider then broke ends
84
+ * at `reply.fail` and is filed `'failed'` (or `'refused'`, when the error
85
+ * names itself with an `ERR_…` code), carrying that error's class. It is
86
+ * NOT `'served'`. To count what the door let through, count everything that
87
+ * is not one of the door's own refusals — `'identity-refused'`,
88
+ * `'verifier-unavailable'`, `'admission-refused'`, `'session-refused'` — or
89
+ * read `admission`, which is the verdict a policy actually returned and is
90
+ * present on a refused record and a broken one alike.
91
+ * - `'identity-refused'` — 401. The credential did not identify anybody, or
92
+ * none arrived at a door that insists.
93
+ * - `'verifier-unavailable'` — 503. The verifier could not do its job; the
94
+ * caller's token was never judged and this is not their fault.
95
+ * - `'admission-refused'` — 429. A policy said no before any work started.
96
+ * - `'session-refused'` — the one indistinguishable not-found: a session that
97
+ * does not exist, belongs to somebody else, or names no owner.
98
+ * - `'refused'` — every other refusal the door made by name (a session op with
99
+ * no verifier configured, a store with no owner index, a concurrent run, an
100
+ * artifact ref that did not resolve, a pause the wire could not carry).
101
+ * - `'failed'` — the request ended in an error that is not one of the door's
102
+ * own refusals. Usually the run, the store or the provider — which is why
103
+ * an admitted request that then broke lands HERE and not in `'served'`.
104
+ */
105
+ export type IngressOutcome = 'served' | 'identity-refused' | 'verifier-unavailable' | 'admission-refused' | 'session-refused' | 'refused' | 'failed';
106
+ /** What an admission policy answered, when one was consulted. */
107
+ export type IngressAdmissionVerdict = 'allow' | 'queue' | 'refuse';
108
+ /**
109
+ * One decision the door made, as plain data.
110
+ *
111
+ * Every field is either a class of what happened or an identifier the caller
112
+ * already had. Nothing here is a secret, and nothing here is a message.
113
+ */
114
+ export interface IngressRecord {
115
+ /** When the request left the door, `Date.now()`. */
116
+ readonly at: number;
117
+ /** Which door it knocked at. */
118
+ readonly door: IngressDoor;
119
+ /** The wire op it named, in the spelling a body uses. Absent for a turn. */
120
+ readonly op?: string;
121
+ /** How the door answered. */
122
+ readonly outcome: IngressOutcome;
123
+ /** The refusal's own `code` (`'ERR_IDENTITY_NOT_VERIFIED'`, …). Never a message. */
124
+ readonly errorCode?: string;
125
+ /** The error's class name, for a failure this package did not author. */
126
+ readonly errorName?: string;
127
+ /** WHICH token check failed — the whole vocabulary a refusal may say about a
128
+ * credential, and never one character of the credential. */
129
+ readonly identityFailure?: IdentityFailureClass;
130
+ /** `true` when the refused request also NAMED a user it could not prove —
131
+ * the impersonation shape, kept separate so a sink can count it. */
132
+ readonly claimedUser?: boolean;
133
+ /** The id the token PROVED, when one was proven. Never a claimed one. */
134
+ readonly userId?: string;
135
+ /** The conversation this request named, when it named one. */
136
+ readonly sessionId?: string;
137
+ /** Whether a bearer credential was PRESENT. Never its value. */
138
+ readonly bearerPresent: boolean;
139
+ /** What the admission policy answered, when one was consulted. */
140
+ readonly admission?: IngressAdmissionVerdict;
141
+ }
142
+ /**
143
+ * Where records go — {@link StandingAgentBaseOptions.onIngressDecision}.
144
+ *
145
+ * Called once per request, synchronously, at the moment the reply reaches its
146
+ * terminal. A sink that throws is contained (a broken log must not turn a served
147
+ * request into a failed one) and reported once on `console.warn`, because a
148
+ * silently-dropped security record is the failure this whole seam exists to
149
+ * close. Do the slow part yourself: buffer, batch, and never `await` the network
150
+ * inside it.
151
+ */
152
+ export type IngressSink = (record: IngressRecord) => void;
153
+ /**
154
+ * The per-request bookkeeping: the facts known at the door, the facts learned
155
+ * on the way in, and the ONE record that leaves.
156
+ *
157
+ * Built only when a sink is configured. `settle` is idempotent — the first
158
+ * terminal wins, and a reply that somehow reaches two of them (a host that
159
+ * completes and then fails) still produces exactly one record, because two
160
+ * records for one request would be a census that over-counts.
161
+ */
162
+ export interface IngressNote {
163
+ /** Wrap the host's reply so its first terminal files the record. */
164
+ watch(reply: HostReply): HostReply;
165
+ /** The verifier proved somebody — record the proven id, never a claimed one. */
166
+ identified(verified: VerifiedIdentity | undefined): void;
167
+ /** An admission policy answered. */
168
+ admitted(verdict: IngressAdmissionVerdict): void;
169
+ /** File the record for a request that left without any terminal at all. */
170
+ settle(): void;
171
+ }
172
+ /**
173
+ * Begin one request's ingress record.
174
+ *
175
+ * @internal — the option is public, this bookkeeping is not.
176
+ */
177
+ export declare function beginIngress(request: HostRequest, sink: IngressSink): IngressNote;