agentfootprint 11.2.0 → 11.3.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 (157) hide show
  1. package/AGENTS.md +1 -1
  2. package/CAPABILITIES.md +2 -0
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/dist/adapters/identity/verify/claims.js +3 -3
  5. package/dist/adapters/mcp/agentcoreRuntime/invoke.js +3 -2
  6. package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  7. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +6 -5
  8. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
  9. package/dist/adapters/mcp/agentcoreRuntime/transport.js +8 -6
  10. package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  11. package/dist/core/agent/buildToolRegistry.js +1 -1
  12. package/dist/core/agent/buildToolRegistry.js.map +1 -1
  13. package/dist/core/agent/evidence/evidenceIndex.js +30 -2
  14. package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
  15. package/dist/core/agent/evidence/extract.js +34 -5
  16. package/dist/core/agent/evidence/extract.js.map +1 -1
  17. package/dist/core/agent/evidence/figures.js +31 -3
  18. package/dist/core/agent/evidence/figures.js.map +1 -1
  19. package/dist/core/agent/evidence/numberPrecision.js +58 -2
  20. package/dist/core/agent/evidence/numberPrecision.js.map +1 -1
  21. package/dist/core/agent/stages/route.js +2 -1
  22. package/dist/core/agent/stages/route.js.map +1 -1
  23. package/dist/core/agent/stages/toolCalls.js +14 -1
  24. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  25. package/dist/core/slots/buildToolsSlot.js +1 -1
  26. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  27. package/dist/esm/adapters/identity/jwks.d.ts +2 -2
  28. package/dist/esm/adapters/identity/verify/claims.d.ts +3 -3
  29. package/dist/esm/adapters/identity/verify/claims.js +3 -3
  30. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +3 -2
  31. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +3 -2
  32. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -1
  33. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +6 -5
  34. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +6 -5
  35. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -1
  36. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +3 -1
  37. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +9 -7
  38. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -1
  39. package/dist/esm/core/agent/buildToolRegistry.js +1 -1
  40. package/dist/esm/core/agent/buildToolRegistry.js.map +1 -1
  41. package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +12 -2
  42. package/dist/esm/core/agent/evidence/evidenceIndex.js +30 -2
  43. package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
  44. package/dist/esm/core/agent/evidence/extract.js +35 -6
  45. package/dist/esm/core/agent/evidence/extract.js.map +1 -1
  46. package/dist/esm/core/agent/evidence/figures.d.ts +6 -0
  47. package/dist/esm/core/agent/evidence/figures.js +32 -4
  48. package/dist/esm/core/agent/evidence/figures.js.map +1 -1
  49. package/dist/esm/core/agent/evidence/numberPrecision.d.ts +28 -1
  50. package/dist/esm/core/agent/evidence/numberPrecision.js +56 -1
  51. package/dist/esm/core/agent/evidence/numberPrecision.js.map +1 -1
  52. package/dist/esm/core/agent/stages/route.js +2 -1
  53. package/dist/esm/core/agent/stages/route.js.map +1 -1
  54. package/dist/esm/core/agent/stages/toolCalls.js +14 -1
  55. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  56. package/dist/esm/core/slots/buildToolsSlot.js +1 -1
  57. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  58. package/dist/esm/events/payloads.d.ts +185 -0
  59. package/dist/esm/events/registry.d.ts +3 -1
  60. package/dist/esm/events/registry.js +2 -0
  61. package/dist/esm/events/registry.js.map +1 -1
  62. package/dist/esm/hosting/doorGuard.d.ts +3 -3
  63. package/dist/esm/hosting/doorGuard.js +2 -2
  64. package/dist/esm/hosting/nodeHost.d.ts +1 -1
  65. package/dist/esm/mcp/callLifetime.d.ts +49 -0
  66. package/dist/esm/mcp/callLifetime.js +99 -0
  67. package/dist/esm/mcp/callLifetime.js.map +1 -0
  68. package/dist/esm/mcp/mcpClient.d.ts +4 -1
  69. package/dist/esm/mcp/mcpClient.js +70 -28
  70. package/dist/esm/mcp/mcpClient.js.map +1 -1
  71. package/dist/esm/mcp/requestLedger.d.ts +97 -0
  72. package/dist/esm/mcp/requestLedger.js +192 -0
  73. package/dist/esm/mcp/requestLedger.js.map +1 -0
  74. package/dist/esm/mcp/seriesEvidence.d.ts +102 -0
  75. package/dist/esm/mcp/seriesEvidence.js +246 -0
  76. package/dist/esm/mcp/seriesEvidence.js.map +1 -0
  77. package/dist/esm/mcp/throttleRetry.d.ts +70 -35
  78. package/dist/esm/mcp/throttleRetry.js +181 -54
  79. package/dist/esm/mcp/throttleRetry.js.map +1 -1
  80. package/dist/esm/mcp/types.d.ts +12 -7
  81. package/dist/esm/redaction/knownStrings.js +29 -0
  82. package/dist/esm/redaction/knownStrings.js.map +1 -1
  83. package/dist/esm/security/PermissionPolicy.d.ts +1 -1
  84. package/dist/esm/security/PermissionPolicy.js +1 -1
  85. package/dist/esm/strategies/defaults/chatBubbleLiveStatus.d.ts +1 -1
  86. package/dist/esm/strategies/defaults/chatBubbleLiveStatus.js +1 -1
  87. package/dist/esm/tool-lint/analyze.d.ts +1 -1
  88. package/dist/esm/tool-lint/analyze.js +1 -1
  89. package/dist/esm/tool-lint/rules.d.ts +3 -3
  90. package/dist/esm/tool-lint/rules.js +3 -3
  91. package/dist/esm/tools/requestEvidence.d.ts +78 -0
  92. package/dist/esm/tools/requestEvidence.js +331 -0
  93. package/dist/esm/tools/requestEvidence.js.map +1 -0
  94. package/dist/events/registry.js +2 -0
  95. package/dist/events/registry.js.map +1 -1
  96. package/dist/hosting/doorGuard.js +2 -2
  97. package/dist/mcp/callLifetime.js +103 -0
  98. package/dist/mcp/callLifetime.js.map +1 -0
  99. package/dist/mcp/mcpClient.js +69 -27
  100. package/dist/mcp/mcpClient.js.map +1 -1
  101. package/dist/mcp/requestLedger.js +196 -0
  102. package/dist/mcp/requestLedger.js.map +1 -0
  103. package/dist/mcp/seriesEvidence.js +251 -0
  104. package/dist/mcp/seriesEvidence.js.map +1 -0
  105. package/dist/mcp/throttleRetry.js +184 -55
  106. package/dist/mcp/throttleRetry.js.map +1 -1
  107. package/dist/redaction/knownStrings.js +29 -0
  108. package/dist/redaction/knownStrings.js.map +1 -1
  109. package/dist/security/PermissionPolicy.js +1 -1
  110. package/dist/strategies/defaults/chatBubbleLiveStatus.js +1 -1
  111. package/dist/tool-lint/analyze.js +1 -1
  112. package/dist/tool-lint/rules.js +3 -3
  113. package/dist/tools/requestEvidence.js +337 -0
  114. package/dist/tools/requestEvidence.js.map +1 -0
  115. package/dist/types/adapters/identity/jwks.d.ts +2 -2
  116. package/dist/types/adapters/identity/verify/claims.d.ts +3 -3
  117. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +3 -2
  118. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -1
  119. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +6 -5
  120. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -1
  121. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +3 -1
  122. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -1
  123. package/dist/types/core/agent/evidence/evidenceIndex.d.ts +12 -2
  124. package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
  125. package/dist/types/core/agent/evidence/extract.d.ts.map +1 -1
  126. package/dist/types/core/agent/evidence/figures.d.ts +6 -0
  127. package/dist/types/core/agent/evidence/figures.d.ts.map +1 -1
  128. package/dist/types/core/agent/evidence/numberPrecision.d.ts +28 -1
  129. package/dist/types/core/agent/evidence/numberPrecision.d.ts.map +1 -1
  130. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  131. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  132. package/dist/types/events/payloads.d.ts +185 -0
  133. package/dist/types/events/payloads.d.ts.map +1 -1
  134. package/dist/types/events/registry.d.ts +3 -1
  135. package/dist/types/events/registry.d.ts.map +1 -1
  136. package/dist/types/hosting/doorGuard.d.ts +3 -3
  137. package/dist/types/hosting/nodeHost.d.ts +1 -1
  138. package/dist/types/mcp/callLifetime.d.ts +50 -0
  139. package/dist/types/mcp/callLifetime.d.ts.map +1 -0
  140. package/dist/types/mcp/mcpClient.d.ts +4 -1
  141. package/dist/types/mcp/mcpClient.d.ts.map +1 -1
  142. package/dist/types/mcp/requestLedger.d.ts +98 -0
  143. package/dist/types/mcp/requestLedger.d.ts.map +1 -0
  144. package/dist/types/mcp/seriesEvidence.d.ts +103 -0
  145. package/dist/types/mcp/seriesEvidence.d.ts.map +1 -0
  146. package/dist/types/mcp/throttleRetry.d.ts +70 -35
  147. package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
  148. package/dist/types/mcp/types.d.ts +12 -7
  149. package/dist/types/mcp/types.d.ts.map +1 -1
  150. package/dist/types/redaction/knownStrings.d.ts.map +1 -1
  151. package/dist/types/security/PermissionPolicy.d.ts +1 -1
  152. package/dist/types/strategies/defaults/chatBubbleLiveStatus.d.ts +1 -1
  153. package/dist/types/tool-lint/analyze.d.ts +1 -1
  154. package/dist/types/tool-lint/rules.d.ts +3 -3
  155. package/dist/types/tools/requestEvidence.d.ts +79 -0
  156. package/dist/types/tools/requestEvidence.d.ts.map +1 -0
  157. package/package.json +1 -1
@@ -0,0 +1,79 @@
1
+ /**
2
+ * requestEvidence — the door a tool call's REQUEST attempts enter its run by.
3
+ *
4
+ * Pattern: a per-dispatch port (the `LLMCallHooks` precedent) + one allow-list.
5
+ * Role: The seam between a retry series that runs BELOW a tool — inside
6
+ * `mcpClient`'s transport, built before any run existed — and the run
7
+ * that dispatched the call. The dispatcher builds the port for each
8
+ * call (`requestEvidenceFor`) and puts it on the call's context under
9
+ * an internal symbol; the MCP tool hands it down to the series that
10
+ * sends its request (`mcp/requestLedger.ts`); the series files ONE
11
+ * record when the request ends. Nothing here retries anything.
12
+ * Emits: agentfootprint.tools.request_attempts
13
+ *
14
+ * Why a port and not a scope: a decorator constructed by the consumer before
15
+ * any run exists can never reach a scope (`resilienceHooks` says the same of
16
+ * the provider decorators). The call is the one thing both sides share, so the
17
+ * port rides the call — and the identity on the event (`toolCallId`,
18
+ * `toolName`, `iteration`, the run's ids in the meta) is stamped HERE, from the
19
+ * dispatch, never by whatever files: a filing cannot claim another call.
20
+ *
21
+ * Why an internal symbol and not a public `ctx` field: this is the evidence
22
+ * path for the library's own retry series, not a retry API. A public member
23
+ * would invite every tool to file attempts the library cannot vouch for. The
24
+ * symbol is enumerable, so a wrapper that copies the context (`{ ...ctx }`)
25
+ * keeps it; a filing from anyone else still passes the allow-list below.
26
+ *
27
+ * The port only FILES. What cancels a call is the call's own context signal
28
+ * (`ctx.signal`), read by the MCP tool whether or not a port rides along — a
29
+ * cancellation must never depend on evidence being attributable.
30
+ *
31
+ * THE ALLOW-LIST is the whole record: numbers, the library's own words, the
32
+ * endpoint label the app declared or else the endpoint's ORIGIN. A filing with
33
+ * anything else in it — a field nobody listed, a word outside its set, a URL
34
+ * with a path, an array that is not a plain one — is refused whole, never
35
+ * trimmed into something it did not say. Values are read as DATA, through own
36
+ * property descriptors, so no getter, `toJSON` or array subclass a filing
37
+ * carries ever runs or reaches the record.
38
+ */
39
+ import type { ToolsRequestAttemptsPayload } from '../events/payloads.js';
40
+ import { type EmitableScope } from '../recorders/core/typedEmit.js';
41
+ /** At most this many attempts are listed per request; the rest are counted (`omitted`). */
42
+ export declare const MAX_REQUEST_ATTEMPT_ROWS = 100;
43
+ /** What a request's series files: the event's payload, less the identity the dispatcher stamps. */
44
+ export type RequestEvidence = Omit<ToolsRequestAttemptsPayload, 'toolCallId' | 'toolName' | 'iteration'>;
45
+ /** Where one dispatched call's request evidence goes. */
46
+ export interface RequestEvidenceSink {
47
+ /** File the request's record. Never throws; a filing outside the allow-list is refused whole. */
48
+ file(evidence: RequestEvidence): void;
49
+ }
50
+ /** @internal The context key the dispatcher puts a call's sink under. */
51
+ export declare const REQUEST_EVIDENCE: unique symbol;
52
+ /** What the dispatcher spreads into a call's context. */
53
+ export interface RequestEvidencePort {
54
+ readonly [REQUEST_EVIDENCE]: RequestEvidenceSink;
55
+ }
56
+ /** The call the sink files for — the dispatch's own identity. */
57
+ export interface RequestEvidenceCall {
58
+ readonly toolName: string;
59
+ readonly toolCallId: string;
60
+ readonly iteration: number;
61
+ }
62
+ /**
63
+ * The port for one dispatch: files `agentfootprint.tools.request_attempts`
64
+ * mid-stage through `typedEmit` (so the run's redaction rule serves it, and the
65
+ * meta carries the real `runtimeStageId`), stamped with `call`.
66
+ */
67
+ export declare function requestEvidenceFor(scope: EmitableScope, call: RequestEvidenceCall): RequestEvidencePort;
68
+ /**
69
+ * The sink a call's context carries, or `undefined` — a context from a door with
70
+ * no run (`mcpServe`, a direct `execute`), or one a wrapper rebuilt without it.
71
+ * Never throws, whatever `ctx` is.
72
+ */
73
+ export declare function requestEvidenceOf(ctx: unknown): RequestEvidenceSink | undefined;
74
+ /**
75
+ * `raw` rebuilt from allow-listed fields — a fresh plain object — or
76
+ * `undefined` when anything in it is outside the list.
77
+ */
78
+ export declare function servedRequestEvidence(raw: unknown): RequestEvidence | undefined;
79
+ //# sourceMappingURL=requestEvidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestEvidence.d.ts","sourceRoot":"","sources":["../../../src/tools/requestEvidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EAIV,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/E,2FAA2F;AAC3F,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,mGAAmG;AACnG,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,2BAA2B,EAC3B,YAAY,GAAG,UAAU,GAAG,WAAW,CACxC,CAAC;AAEF,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,iGAAiG;IACjG,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC;AAED,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAAkD,CAAC;AAEzF,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CAClD;AAED,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,mBAAmB,GACxB,mBAAmB,CAsBrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CAiB/E;AA0ED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAiB/E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentfootprint",
3
- "version": "11.2.0",
3
+ "version": "11.3.0",
4
4
  "description": "The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",