agentfootprint 9.114.2 → 9.115.1

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 (242) hide show
  1. package/AGENTS.md +205 -528
  2. package/CAPABILITIES.md +3 -0
  3. package/README.md +33 -790
  4. package/ai-instructions/claude-code/SKILL.md +26 -3
  5. package/bin/agentfootprint-lint-tools.mjs +1 -1
  6. package/dist/adapters/hosting/agentCoreA2A.js +5 -0
  7. package/dist/adapters/hosting/agentCoreA2A.js.map +1 -1
  8. package/dist/adapters/hosting/agentcore.js +5 -0
  9. package/dist/adapters/hosting/agentcore.js.map +1 -1
  10. package/dist/adapters/hosting/foundryResponses.js +5 -0
  11. package/dist/adapters/hosting/foundryResponses.js.map +1 -1
  12. package/dist/adapters/observability/agentcore.js +18 -5
  13. package/dist/adapters/observability/agentcore.js.map +1 -1
  14. package/dist/adapters/observability/audit.js +17 -4
  15. package/dist/adapters/observability/audit.js.map +1 -1
  16. package/dist/adapters/observability/otel.js +890 -33
  17. package/dist/adapters/observability/otel.js.map +1 -1
  18. package/dist/artifacts/capability.js +9 -3
  19. package/dist/artifacts/capability.js.map +1 -1
  20. package/dist/bridge/eventMeta.js +40 -1
  21. package/dist/bridge/eventMeta.js.map +1 -1
  22. package/dist/core/Agent.js +40 -6
  23. package/dist/core/Agent.js.map +1 -1
  24. package/dist/core/RunnerBase.js +32 -1
  25. package/dist/core/RunnerBase.js.map +1 -1
  26. package/dist/core/agent/AgentBuilder.js +13 -1
  27. package/dist/core/agent/AgentBuilder.js.map +1 -1
  28. package/dist/core/agent/stages/toolCalls.js +64 -7
  29. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  30. package/dist/core/flowchartAsTool.js +8 -2
  31. package/dist/core/flowchartAsTool.js.map +1 -1
  32. package/dist/core/runbook/runbookAsTool.js +7 -2
  33. package/dist/core/runbook/runbookAsTool.js.map +1 -1
  34. package/dist/core/toolShownArgs.js +55 -0
  35. package/dist/core/toolShownArgs.js.map +1 -0
  36. package/dist/debug.js +1 -1
  37. package/dist/debug.js.map +1 -1
  38. package/dist/esm/adapters/hosting/agentCoreA2A.d.ts +14 -1
  39. package/dist/esm/adapters/hosting/agentCoreA2A.js +5 -0
  40. package/dist/esm/adapters/hosting/agentCoreA2A.js.map +1 -1
  41. package/dist/esm/adapters/hosting/agentcore.d.ts +18 -2
  42. package/dist/esm/adapters/hosting/agentcore.js +5 -0
  43. package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
  44. package/dist/esm/adapters/hosting/foundryResponses.d.ts +15 -1
  45. package/dist/esm/adapters/hosting/foundryResponses.js +5 -0
  46. package/dist/esm/adapters/hosting/foundryResponses.js.map +1 -1
  47. package/dist/esm/adapters/observability/agentcore.d.ts +17 -5
  48. package/dist/esm/adapters/observability/agentcore.js +18 -5
  49. package/dist/esm/adapters/observability/agentcore.js.map +1 -1
  50. package/dist/esm/adapters/observability/audit.d.ts +6 -2
  51. package/dist/esm/adapters/observability/audit.js +17 -4
  52. package/dist/esm/adapters/observability/audit.js.map +1 -1
  53. package/dist/esm/adapters/observability/otel.d.ts +240 -11
  54. package/dist/esm/adapters/observability/otel.js +890 -33
  55. package/dist/esm/adapters/observability/otel.js.map +1 -1
  56. package/dist/esm/artifacts/capability.d.ts +3 -1
  57. package/dist/esm/artifacts/capability.js +9 -3
  58. package/dist/esm/artifacts/capability.js.map +1 -1
  59. package/dist/esm/bridge/eventMeta.d.ts +32 -0
  60. package/dist/esm/bridge/eventMeta.js +38 -0
  61. package/dist/esm/bridge/eventMeta.js.map +1 -1
  62. package/dist/esm/core/Agent.d.ts +18 -5
  63. package/dist/esm/core/Agent.js +42 -8
  64. package/dist/esm/core/Agent.js.map +1 -1
  65. package/dist/esm/core/RunnerBase.d.ts +20 -0
  66. package/dist/esm/core/RunnerBase.js +32 -1
  67. package/dist/esm/core/RunnerBase.js.map +1 -1
  68. package/dist/esm/core/agent/AgentBuilder.js +13 -1
  69. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  70. package/dist/esm/core/agent/stages/toolCalls.d.ts +11 -0
  71. package/dist/esm/core/agent/stages/toolCalls.js +64 -7
  72. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  73. package/dist/esm/core/flowchartAsTool.js +8 -2
  74. package/dist/esm/core/flowchartAsTool.js.map +1 -1
  75. package/dist/esm/core/runbook/runbookAsTool.js +7 -2
  76. package/dist/esm/core/runbook/runbookAsTool.js.map +1 -1
  77. package/dist/esm/core/toolShownArgs.d.ts +62 -0
  78. package/dist/esm/core/toolShownArgs.js +49 -0
  79. package/dist/esm/core/toolShownArgs.js.map +1 -0
  80. package/dist/esm/core-flow/Parallel.d.ts +1 -1
  81. package/dist/esm/debug.js +1 -1
  82. package/dist/esm/debug.js.map +1 -1
  83. package/dist/esm/events/payloads.d.ts +122 -6
  84. package/dist/esm/events/registry.d.ts +3 -1
  85. package/dist/esm/events/registry.js +2 -0
  86. package/dist/esm/events/registry.js.map +1 -1
  87. package/dist/esm/events/types.d.ts +7 -0
  88. package/dist/esm/hosting/artifactWire.d.ts +10 -2
  89. package/dist/esm/hosting/artifactWire.js +20 -2
  90. package/dist/esm/hosting/artifactWire.js.map +1 -1
  91. package/dist/esm/hosting/doorGuard.d.ts +280 -0
  92. package/dist/esm/hosting/doorGuard.js +499 -0
  93. package/dist/esm/hosting/doorGuard.js.map +1 -0
  94. package/dist/esm/hosting/errors.d.ts +113 -0
  95. package/dist/esm/hosting/errors.js +177 -0
  96. package/dist/esm/hosting/errors.js.map +1 -1
  97. package/dist/esm/hosting/httpHost.d.ts +32 -3
  98. package/dist/esm/hosting/httpHost.js +218 -4
  99. package/dist/esm/hosting/httpHost.js.map +1 -1
  100. package/dist/esm/hosting/index.d.ts +7 -5
  101. package/dist/esm/hosting/index.js +10 -3
  102. package/dist/esm/hosting/index.js.map +1 -1
  103. package/dist/esm/hosting/ingressRecord.d.ts +64 -10
  104. package/dist/esm/hosting/ingressRecord.js +65 -6
  105. package/dist/esm/hosting/ingressRecord.js.map +1 -1
  106. package/dist/esm/hosting/nodeHost.d.ts +32 -2
  107. package/dist/esm/hosting/nodeHost.js +10 -0
  108. package/dist/esm/hosting/nodeHost.js.map +1 -1
  109. package/dist/esm/hosting/standingAgent.js +362 -51
  110. package/dist/esm/hosting/standingAgent.js.map +1 -1
  111. package/dist/esm/hosting/turnArtifacts.d.ts +93 -0
  112. package/dist/esm/hosting/turnArtifacts.js +126 -0
  113. package/dist/esm/hosting/turnArtifacts.js.map +1 -0
  114. package/dist/esm/hosting/types.d.ts +196 -3
  115. package/dist/esm/hosting/types.js +10 -0
  116. package/dist/esm/hosting/types.js.map +1 -1
  117. package/dist/esm/hosting/webSocketConversation.d.ts +15 -1
  118. package/dist/esm/hosting/webSocketConversation.js +54 -2
  119. package/dist/esm/hosting/webSocketConversation.js.map +1 -1
  120. package/dist/esm/integrity/disposition/ledger.d.ts +8 -0
  121. package/dist/esm/integrity/disposition/ledger.js +0 -0
  122. package/dist/esm/integrity/disposition/ledger.js.map +1 -1
  123. package/dist/esm/lib/mcp/mcpServe.js +39 -2
  124. package/dist/esm/lib/mcp/mcpServe.js.map +1 -1
  125. package/dist/esm/lib/mcp/types.d.ts +30 -0
  126. package/dist/esm/lib/tool-lint/index.d.ts +1 -1
  127. package/dist/esm/lib/tool-lint/index.js +1 -1
  128. package/dist/esm/recorders/observability/commentary/artifactPhrases.d.ts +4 -0
  129. package/dist/esm/recorders/observability/commentary/artifactPhrases.js +9 -0
  130. package/dist/esm/recorders/observability/commentary/artifactPhrases.js.map +1 -1
  131. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js +30 -3
  132. package/dist/esm/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  133. package/dist/esm/recorders/observability/recordRun.d.ts +12 -0
  134. package/dist/esm/recorders/observability/recordRun.js +17 -1
  135. package/dist/esm/recorders/observability/recordRun.js.map +1 -1
  136. package/dist/esm/strategies/attach.js +87 -1
  137. package/dist/esm/strategies/attach.js.map +1 -1
  138. package/dist/events/registry.js +2 -0
  139. package/dist/events/registry.js.map +1 -1
  140. package/dist/hosting/artifactWire.js +21 -3
  141. package/dist/hosting/artifactWire.js.map +1 -1
  142. package/dist/hosting/doorGuard.js +509 -0
  143. package/dist/hosting/doorGuard.js.map +1 -0
  144. package/dist/hosting/errors.js +183 -1
  145. package/dist/hosting/errors.js.map +1 -1
  146. package/dist/hosting/httpHost.js +218 -4
  147. package/dist/hosting/httpHost.js.map +1 -1
  148. package/dist/hosting/index.js +19 -2
  149. package/dist/hosting/index.js.map +1 -1
  150. package/dist/hosting/ingressRecord.js +66 -6
  151. package/dist/hosting/ingressRecord.js.map +1 -1
  152. package/dist/hosting/nodeHost.js +11 -1
  153. package/dist/hosting/nodeHost.js.map +1 -1
  154. package/dist/hosting/standingAgent.js +359 -48
  155. package/dist/hosting/standingAgent.js.map +1 -1
  156. package/dist/hosting/turnArtifacts.js +130 -0
  157. package/dist/hosting/turnArtifacts.js.map +1 -0
  158. package/dist/hosting/types.js +11 -1
  159. package/dist/hosting/types.js.map +1 -1
  160. package/dist/hosting/webSocketConversation.js +54 -2
  161. package/dist/hosting/webSocketConversation.js.map +1 -1
  162. package/dist/integrity/disposition/ledger.js +0 -0
  163. package/dist/integrity/disposition/ledger.js.map +1 -1
  164. package/dist/lib/mcp/mcpServe.js +39 -2
  165. package/dist/lib/mcp/mcpServe.js.map +1 -1
  166. package/dist/lib/tool-lint/index.js +1 -1
  167. package/dist/recorders/observability/commentary/artifactPhrases.js +10 -1
  168. package/dist/recorders/observability/commentary/artifactPhrases.js.map +1 -1
  169. package/dist/recorders/observability/commentary/commentaryTemplates.js +29 -2
  170. package/dist/recorders/observability/commentary/commentaryTemplates.js.map +1 -1
  171. package/dist/recorders/observability/recordRun.js +20 -3
  172. package/dist/recorders/observability/recordRun.js.map +1 -1
  173. package/dist/strategies/attach.js +87 -1
  174. package/dist/strategies/attach.js.map +1 -1
  175. package/dist/types/adapters/hosting/agentCoreA2A.d.ts +14 -1
  176. package/dist/types/adapters/hosting/agentCoreA2A.d.ts.map +1 -1
  177. package/dist/types/adapters/hosting/agentcore.d.ts +18 -2
  178. package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
  179. package/dist/types/adapters/hosting/foundryResponses.d.ts +15 -1
  180. package/dist/types/adapters/hosting/foundryResponses.d.ts.map +1 -1
  181. package/dist/types/adapters/observability/agentcore.d.ts +17 -5
  182. package/dist/types/adapters/observability/agentcore.d.ts.map +1 -1
  183. package/dist/types/adapters/observability/audit.d.ts +6 -2
  184. package/dist/types/adapters/observability/audit.d.ts.map +1 -1
  185. package/dist/types/adapters/observability/otel.d.ts +240 -11
  186. package/dist/types/adapters/observability/otel.d.ts.map +1 -1
  187. package/dist/types/artifacts/capability.d.ts +3 -1
  188. package/dist/types/artifacts/capability.d.ts.map +1 -1
  189. package/dist/types/bridge/eventMeta.d.ts +32 -0
  190. package/dist/types/bridge/eventMeta.d.ts.map +1 -1
  191. package/dist/types/core/Agent.d.ts +18 -5
  192. package/dist/types/core/Agent.d.ts.map +1 -1
  193. package/dist/types/core/RunnerBase.d.ts +20 -0
  194. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  195. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  196. package/dist/types/core/agent/stages/toolCalls.d.ts +11 -0
  197. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  198. package/dist/types/core/flowchartAsTool.d.ts.map +1 -1
  199. package/dist/types/core/runbook/runbookAsTool.d.ts.map +1 -1
  200. package/dist/types/core/toolShownArgs.d.ts +63 -0
  201. package/dist/types/core/toolShownArgs.d.ts.map +1 -0
  202. package/dist/types/core-flow/Parallel.d.ts +1 -1
  203. package/dist/types/events/payloads.d.ts +122 -6
  204. package/dist/types/events/payloads.d.ts.map +1 -1
  205. package/dist/types/events/registry.d.ts +3 -1
  206. package/dist/types/events/registry.d.ts.map +1 -1
  207. package/dist/types/events/types.d.ts +7 -0
  208. package/dist/types/events/types.d.ts.map +1 -1
  209. package/dist/types/hosting/artifactWire.d.ts +10 -2
  210. package/dist/types/hosting/artifactWire.d.ts.map +1 -1
  211. package/dist/types/hosting/doorGuard.d.ts +281 -0
  212. package/dist/types/hosting/doorGuard.d.ts.map +1 -0
  213. package/dist/types/hosting/errors.d.ts +113 -0
  214. package/dist/types/hosting/errors.d.ts.map +1 -1
  215. package/dist/types/hosting/httpHost.d.ts +32 -3
  216. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  217. package/dist/types/hosting/index.d.ts +7 -5
  218. package/dist/types/hosting/index.d.ts.map +1 -1
  219. package/dist/types/hosting/ingressRecord.d.ts +64 -10
  220. package/dist/types/hosting/ingressRecord.d.ts.map +1 -1
  221. package/dist/types/hosting/nodeHost.d.ts +32 -2
  222. package/dist/types/hosting/nodeHost.d.ts.map +1 -1
  223. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  224. package/dist/types/hosting/turnArtifacts.d.ts +94 -0
  225. package/dist/types/hosting/turnArtifacts.d.ts.map +1 -0
  226. package/dist/types/hosting/types.d.ts +196 -3
  227. package/dist/types/hosting/types.d.ts.map +1 -1
  228. package/dist/types/hosting/webSocketConversation.d.ts +15 -1
  229. package/dist/types/hosting/webSocketConversation.d.ts.map +1 -1
  230. package/dist/types/integrity/disposition/ledger.d.ts +8 -0
  231. package/dist/types/integrity/disposition/ledger.d.ts.map +1 -1
  232. package/dist/types/lib/mcp/mcpServe.d.ts.map +1 -1
  233. package/dist/types/lib/mcp/types.d.ts +30 -0
  234. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  235. package/dist/types/lib/tool-lint/index.d.ts +1 -1
  236. package/dist/types/recorders/observability/commentary/artifactPhrases.d.ts +4 -0
  237. package/dist/types/recorders/observability/commentary/artifactPhrases.d.ts.map +1 -1
  238. package/dist/types/recorders/observability/commentary/commentaryTemplates.d.ts.map +1 -1
  239. package/dist/types/recorders/observability/recordRun.d.ts +12 -0
  240. package/dist/types/recorders/observability/recordRun.d.ts.map +1 -1
  241. package/dist/types/strategies/attach.d.ts.map +1 -1
  242. package/package.json +1 -1
package/CAPABILITIES.md CHANGED
@@ -66,6 +66,8 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
66
66
  | minting one of those shapes from a tool that is NOT JavaScript — the canonical note sentences and reserved marker keys as DATA, so a Python/Go/Rust sidecar reads a file instead of regex-scraping `dist/esm` (which a consumer really did) | `canonical-notes.json` at the package root + the `./canonical-notes.json` exports entry, GENERATED from the built barrel by `scripts/gen-canonical-notes.mjs` | `scripts/gen-canonical-notes.mjs` | 9.70.0 |
67
67
  | proving a session store really honours the port | `runSessionLifecycleConformance` + `declared` skips (by case name WITH the reason; a declared case still RUNS) + outcomes `'passed'`/`'not-applicable'`/`'declared'`/`'failed'` | `src/hosting/conformance/` | 9.37.0 |
68
68
  | deciding who owns a contested session write | `resolveSessionOwner` | `src/hosting/sessionOwnership.ts` | 9.37.0 |
69
+ | a host filing its OWN per-turn artifacts (a story, the person's clicks) where `artifact-get` will look for the same caller — never composing a scope itself; awaited inside the turn, bounded (`turnArtifactsTimeoutMs`, default `TURN_ARTIFACTS_TIMEOUT_MS`), revoked after it (`TurnArtifactsExpiredError`), failures on the stream (`artifacts.hand_over_failed`) | `HostReply.turnArtifacts` + `TurnArtifacts` | `src/hosting/turnArtifacts.ts` | 9.115.0 |
70
+ | refusing a forged cross-site request, DNS rebinding or an oversized session id at the hosting door — before any handler, in every identity mode; the same rule for an app's own routes beside the door | `doorGuard` + `checkSessionId` + `MAX_SESSION_ID_LENGTH` + `CrossSiteOptions` (`allowedOrigins` / `allowedHosts` / `requireJsonContentType` on `httpHost`, `nodeHost` and the hosted-runtime adapters, which default the browser rules OFF on a non-loopback bind; a loopback bind defaults `allowedHosts` to the loopback names) + `AgentHost.onRefusal` (feeds the ingress record) | `src/hosting/doorGuard.ts` | 9.115.0 |
69
71
  | making a caller-supplied id safe for a backend | `encodeIdentityField` | `src/memory/identity/encode.ts` | 9.37.0 |
70
72
  | scoping a skill's tools so they reach the model only while it is active | `toolsFromActiveSkill` + a no-arg posture (default off) + the stamp `autoActivate: 'currentSkill'` (a default, never an override) | `src/core/agent/toolsFromActiveSkill.ts` | 9.36.0 |
71
73
  | subscribing to every event in one domain at once | `DomainWildcard` | `src/events/dispatcher.ts` | 9.4.0 |
@@ -75,6 +77,7 @@ not in this table, search `src/index.ts` for the nearest noun before writing cod
75
77
  | a MAP of the domain the model can reason over when a result holds nothing — what each term IS (meaning, unit), how terms RELATE, which SOURCE holds a term (with the author's coverage sentence) and which registered TOOL reads it from there; declared once, validated against the tool registry at build, on the record as one run constant, served as one request-only system piece per call, never a fetch path and never inferred from | `defineOntology` + `.ontology(map)` (`AgentOptions.ontology`) + `AgentState.ontology` + `ontologyPiece` / `ONTOLOGY_INSTRUCTION` (`agentfootprint/ontology`) + `agentfootprint.ontology.served` | `src/ontology/` | 9.106.0 |
76
78
  | a value the model USED — in its answer, or as an argument of a later call — that came ONLY from results it had itself declared open, noise or ruled-out (a theorem tower on a set-aside lemma): declared standings joined to the evidence corpus's carriers, no inference, no judge; one row per value per moment through the one writer; served back under `contingent (read off the record):`; cache reads summed on the record beside the input tokens | `ContingentRow` / `ContingentCarrier` + `agentfootprint.findings.contingent` + `findingsInstructionFor` (`FINDINGS_CONTINGENT_LINE`, registered under BOTH `.findings()` and `.namesAndNumbersFromEvidence()`, never one) + `EvidenceCorpus.carriers` / `EvidenceVerdict.grounded` + `AgentState.totalCacheReadTokens` | `src/core/agent/findings/contingent.ts` | 9.110.0 |
77
79
  | a model's ruling-out that rests only on "nothing found" — a `ruled-out` standing on a result the dispatch door recorded as an absence (`absent()`, bare or bounded by `coverage()`: status `'absent'`, a `coverageDeclared` row; never a second reading of a return) AND the model was served as one (a result an after-tool rule denied, a ceiling's refusal, a placed ticket or a summary files nothing) — marked by a row BESIDE the model's own, never a rewrite of it, carrying what the SERVED envelope said it did not check and its `try_instead` byte for byte; served back under `unsettled by absence (read off the record):`; no event, no instruction line | `UnsettledByAbsenceRow` + `agent.findings()` / the checkpoint's `findingsLedger` (the fold's `unsettled` map and the rule — `withUnsettledRows` / `unsettledRowOf` — are internal) | `src/core/agent/findings/unsettled.ts` | 9.113.0 |
80
+ | an evaluation platform grading your agent from its OpenTelemetry traces — scores as the GenAI `gen_ai.evaluation.result` event, the conversation (as a digest), declared absence and coverage, the evidence verdict, findings standings and actionable checker accounting as content-free span events, and tool arguments/results only under their own opt-in, after your middleware rules | `otelObservability` options `captureToolContent` / `maxContentChars` / `conversationId` / `checkAccounting` (+ `agentCoreEvaluationSpans`, which turns tool content on) | `src/adapters/observability/otel.ts` | 9.115.0 |
78
81
 
79
82
  **Maintaining this table:** a new public capability adds a row, in the same
80
83
  change that adds the capability. `test/docs/capability-index.test.ts` fails if a