ai-capability-framework 1.0.0-rc.3 → 1.0.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 (217) hide show
  1. package/CHANGELOG.md +97 -103
  2. package/CODE_OF_CONDUCT.md +11 -13
  3. package/CONTRIBUTING.md +40 -43
  4. package/GOVERNANCE.md +34 -35
  5. package/README.md +99 -63
  6. package/ROADMAP.md +12 -12
  7. package/SECURITY.md +15 -15
  8. package/dist/audit/ledger.d.ts.map +1 -1
  9. package/dist/audit/ledger.js +2 -1
  10. package/dist/audit/records.d.ts.map +1 -1
  11. package/dist/audit/records.js +2 -1
  12. package/dist/audit/types.d.ts +4 -1
  13. package/dist/audit/types.d.ts.map +1 -1
  14. package/dist/aws/dynamodb-stores.d.ts +2 -7
  15. package/dist/aws/dynamodb-stores.d.ts.map +1 -1
  16. package/dist/aws/dynamodb-stores.js +56 -5
  17. package/dist/aws/testing.d.ts.map +1 -1
  18. package/dist/aws/testing.js +9 -0
  19. package/dist/cli.d.ts +6 -6
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +77 -7
  22. package/dist/evals-live/index.d.ts +2 -2
  23. package/dist/evals-live/index.d.ts.map +1 -1
  24. package/dist/evals-live/index.js +1 -1
  25. package/dist/evals-live/live-eval-runner.d.ts +49 -1
  26. package/dist/evals-live/live-eval-runner.d.ts.map +1 -1
  27. package/dist/evals-live/live-eval-runner.js +246 -4
  28. package/dist/evals-live/types.d.ts +62 -9
  29. package/dist/evals-live/types.d.ts.map +1 -1
  30. package/dist/index.d.ts +0 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +0 -1
  33. package/dist/runtime/actions.d.ts +2 -0
  34. package/dist/runtime/actions.d.ts.map +1 -1
  35. package/dist/runtime/actions.js +200 -55
  36. package/dist/runtime/index.d.ts +1 -1
  37. package/dist/runtime/index.d.ts.map +1 -1
  38. package/dist/runtime/stores.d.ts +2 -7
  39. package/dist/runtime/stores.d.ts.map +1 -1
  40. package/dist/runtime/stores.js +12 -0
  41. package/dist/runtime/types.d.ts +25 -6
  42. package/dist/runtime/types.d.ts.map +1 -1
  43. package/docs/action-lifecycle.md +38 -32
  44. package/docs/adapter-roadmap.md +51 -49
  45. package/docs/adapters.md +14 -15
  46. package/docs/ai-sdk-runtime.md +36 -39
  47. package/docs/anthropic-runtime.md +29 -32
  48. package/docs/api/public-api-policy.md +59 -0
  49. package/docs/api.md +354 -371
  50. package/docs/architecture/current-state.md +28 -31
  51. package/docs/audit/index.md +29 -29
  52. package/docs/aws/cloudwatch-telemetry.md +5 -7
  53. package/docs/aws/dynamodb-single-table.md +8 -9
  54. package/docs/aws/kms-redaction.md +5 -6
  55. package/docs/aws/overview.md +5 -5
  56. package/docs/aws/production-reference.md +13 -14
  57. package/docs/aws/step-functions-approval.md +7 -9
  58. package/docs/aws-runtime.md +24 -25
  59. package/docs/capability-manifests.md +17 -21
  60. package/docs/control-plane/overview.md +2 -2
  61. package/docs/control-plane.md +24 -27
  62. package/docs/controls/index.md +19 -22
  63. package/docs/core/capability-manifests.md +4 -5
  64. package/docs/core/entity-manifests.md +5 -5
  65. package/docs/eval-runner.md +29 -31
  66. package/docs/evalops.md +13 -14
  67. package/docs/evals/golden-tests.md +4 -5
  68. package/docs/evals/overview.md +3 -3
  69. package/docs/evals/replay-and-trace-to-golden.md +19 -20
  70. package/docs/evals.md +19 -20
  71. package/docs/evidence.md +22 -23
  72. package/docs/gemini-runtime.md +31 -33
  73. package/docs/getting-started/anthropic-quickstart.md +61 -0
  74. package/docs/getting-started/concepts.md +9 -10
  75. package/docs/getting-started/gemini-quickstart.md +62 -0
  76. package/docs/getting-started/installation.md +3 -3
  77. package/docs/getting-started/openai-quickstart.md +61 -0
  78. package/docs/getting-started/provider-neutral-quickstart.md +106 -0
  79. package/docs/getting-started/quickstart.md +2 -2
  80. package/docs/getting-started.md +23 -20
  81. package/docs/glossary.md +31 -48
  82. package/docs/governance/gate.md +28 -30
  83. package/docs/governance/impact-and-compatibility.md +2 -3
  84. package/docs/governance/index.md +53 -54
  85. package/docs/governance/lifecycle.md +4 -5
  86. package/docs/governance/overview.md +2 -3
  87. package/docs/governance/risk-compiler.md +4 -5
  88. package/docs/host-responsibilities.md +6 -8
  89. package/docs/implementation-notes/baseline-gaps.md +15 -18
  90. package/docs/index.md +21 -6
  91. package/docs/interoperability.md +9 -9
  92. package/docs/langchain-runtime.md +27 -31
  93. package/docs/live-evals.md +68 -32
  94. package/docs/mcp-server-runtime.md +36 -40
  95. package/docs/memory.md +35 -36
  96. package/docs/migration-0.1-to-1.0.md +14 -9
  97. package/docs/observability/overview.md +2 -3
  98. package/docs/observability-runtime.md +35 -39
  99. package/docs/openai-responses.md +36 -37
  100. package/docs/openai-runtime.md +41 -46
  101. package/docs/openai-walkthrough.md +24 -28
  102. package/docs/policy-broker.md +9 -10
  103. package/docs/provenance.md +30 -29
  104. package/docs/providers/anthropic.md +5 -5
  105. package/docs/providers/choose-a-runtime.md +37 -0
  106. package/docs/providers/conformance.md +14 -15
  107. package/docs/providers/gemini.md +5 -5
  108. package/docs/providers/mcp.md +2 -3
  109. package/docs/providers/openai.md +2 -2
  110. package/docs/providers/semantic-kernel.md +2 -2
  111. package/docs/providers.md +43 -38
  112. package/docs/public/license-exceptions.md +187 -0
  113. package/docs/public/npm-release-preflight.md +112 -0
  114. package/docs/public-framework/compatibility-policy.md +12 -13
  115. package/docs/public-framework/deprecation-policy.md +8 -8
  116. package/docs/public-framework/final-certification-matrix.md +104 -0
  117. package/docs/public-framework/license-decision.md +20 -0
  118. package/docs/public-framework/release-process.md +46 -16
  119. package/docs/public-framework/security-disclosure.md +4 -5
  120. package/docs/public-framework/v1-certification.md +102 -15
  121. package/docs/release.md +200 -122
  122. package/docs/runtime/action-lifecycle.md +3 -3
  123. package/docs/runtime/policy-broker.md +4 -4
  124. package/docs/runtime/runtime-overview.md +4 -5
  125. package/docs/runtime/tool-result-envelope.md +7 -7
  126. package/docs/runtime.md +90 -93
  127. package/docs/security/overview.md +4 -4
  128. package/docs/security/security-packs.md +24 -26
  129. package/docs/security/trust-taint-redaction.md +42 -47
  130. package/docs/semantic-kernel-runtime.md +35 -37
  131. package/docs/spec.md +95 -101
  132. package/docs/start-here.md +18 -20
  133. package/examples/01-basic-read-capability/README.md +3 -4
  134. package/examples/02-prepare-approve-commit/README.md +6 -6
  135. package/examples/03-multi-provider-tools/README.md +2 -2
  136. package/examples/04-mcp-server/README.md +4 -5
  137. package/examples/05-langchain-langgraph-bridge/README.md +4 -5
  138. package/examples/06-vercel-ai-sdk-bridge/README.md +5 -7
  139. package/examples/07-policy-broker-custom-auth/README.md +4 -4
  140. package/examples/08-aws-step-functions-approval/README.md +4 -5
  141. package/examples/09-security-packs-promptfoo/README.md +4 -4
  142. package/examples/10-trace-to-golden/README.md +2 -2
  143. package/examples/11-control-plane/README.md +4 -5
  144. package/examples/aws/README.md +5 -8
  145. package/examples/control-plane/README.md +8 -9
  146. package/examples/control-plane/fixtures/control-plane.seed.json +8 -32
  147. package/examples/control-plane/public/app.js +57 -18
  148. package/examples/control-plane/public/index.html +15 -6
  149. package/examples/control-plane/server.mjs +15 -3
  150. package/examples/eval-results/public.results.passing.json +6 -21
  151. package/examples/providers/ai-sdk-next/README.md +11 -8
  152. package/examples/providers/anthropic-claude/README.md +5 -6
  153. package/examples/providers/gemini/README.md +6 -6
  154. package/examples/providers/langchain-agent/README.md +3 -4
  155. package/examples/providers/langgraph-tool-node/README.md +7 -7
  156. package/examples/providers/mcp/README.md +8 -8
  157. package/examples/providers/provider-conformance/README.md +3 -3
  158. package/examples/providers/semantic-kernel-mcp/README.md +6 -6
  159. package/examples/providers/semantic-kernel-openapi/README.md +6 -7
  160. package/examples/runtime-support-billing/README.md +8 -9
  161. package/examples/runtime-support-billing/support-billing-runtime.mjs +8 -4
  162. package/examples/scheduling/capabilities/scheduling.availability.get.yaml +2 -2
  163. package/examples/scheduling/capabilities/scheduling.invite.prepare.yaml +2 -2
  164. package/examples/scheduling/capabilities/scheduling.invite.send.yaml +2 -2
  165. package/examples/scheduling/entities/AvailabilitySlot.yaml +2 -2
  166. package/examples/scheduling/entities/MeetingInvite.yaml +2 -2
  167. package/examples/scheduling/evals/scheduling.invite.prepare.valid.yaml +3 -1
  168. package/examples/semantic-kernel-mcp/README.md +11 -12
  169. package/examples/semantic-kernel-openapi/README.md +8 -8
  170. package/examples/support/capabilities/support.refund.commit_case.yaml +3 -3
  171. package/examples/support/capabilities/support.refund.prepare_case.yaml +2 -2
  172. package/examples/support/capabilities/support.ticket.get.yaml +2 -2
  173. package/examples/support/entities/Ticket.yaml +0 -1
  174. package/examples/support/eval-results/support.results.passing.json +3 -12
  175. package/examples/support/evals/support.refund.prepare_case.approval_required.yaml +3 -1
  176. package/examples/support/evals/support.refund.prepare_case.valid.yaml +3 -2
  177. package/examples/support/memory/support.agent.preferences.json +2 -6
  178. package/examples/support/openai/context.support_agent.json +1 -4
  179. package/examples/support/provenance/support.refund.summary.provenance.json +2 -6
  180. package/examples/support/replay/support.refund.approval_required.trace.json +4 -14
  181. package/package.json +22 -5
  182. package/schemas/audit/action-record.schema.json +4 -1
  183. package/schemas/aws/approval-task.schema.json +8 -1
  184. package/schemas/conformance/conformance-case.schema.json +18 -2
  185. package/schemas/conformance/conformance-report.schema.json +17 -2
  186. package/schemas/conformance/provider-target-matrix.schema.json +35 -4
  187. package/schemas/controls/control-decision.schema.json +7 -1
  188. package/schemas/eval-case.schema.json +8 -1
  189. package/schemas/eval-result.schema.json +8 -1
  190. package/schemas/evidence/evidence-pack.schema.json +34 -5
  191. package/schemas/governance/compatibility-diff.schema.json +8 -1
  192. package/schemas/governance/lifecycle-transition.schema.json +10 -1
  193. package/schemas/governance/risk-compilation-result.schema.json +9 -1
  194. package/schemas/provenance/generated-content-provenance.schema.json +3 -1
  195. package/schemas/replay/replay-result.schema.json +16 -2
  196. package/schemas/replay/replay-trace.schema.json +11 -2
  197. package/schemas/security/context-segment.schema.json +21 -12
  198. package/schemas/security/redaction-policy.schema.json +4 -1
  199. package/schemas/security-packs/coverage-report.schema.json +17 -2
  200. package/schemas/security-packs/security-case-suite.schema.json +11 -1
  201. package/schemas/tool-result-envelope.schema.json +9 -1
  202. package/security-packs/approval_bypass.yaml +12 -2
  203. package/security-packs/capability_spoofing.yaml +17 -3
  204. package/security-packs/cost_amplification.yaml +21 -4
  205. package/security-packs/cross_tenant_access.yaml +16 -3
  206. package/security-packs/insecure_output_rendering.yaml +15 -4
  207. package/security-packs/mcp_tool_abuse.yaml +17 -3
  208. package/security-packs/memory_scope_violation.yaml +19 -4
  209. package/security-packs/prompt_injection_direct.yaml +19 -4
  210. package/security-packs/prompt_injection_indirect.yaml +18 -3
  211. package/security-packs/provider_payload_exposure.yaml +26 -4
  212. package/security-packs/retrieval_poisoning.yaml +5 -2
  213. package/security-packs/schema_confusion.yaml +17 -3
  214. package/security-packs/sensitive_data_disclosure.yaml +22 -5
  215. package/security-packs/tool_exfiltration.yaml +20 -4
  216. package/security-packs/tool_result_poisoning.yaml +19 -4
  217. package/security-packs/unsafe_commit_attempt.yaml +6 -3
package/docs/api.md CHANGED
@@ -1,12 +1,13 @@
1
1
  # API
2
2
 
3
- AICF Core exposes a small TypeScript API and the `aicf` CLI. The package is
4
- public npm release-candidate material, and the exported surface is treated as
5
- public developer API.
3
+ AICF exposes a TypeScript API, optional subpath APIs, and the `aicf` CLI. The package is
4
+ public npm release-candidate material, and the exported surface is treated as public
5
+ developer API. AICF Core refers specifically to the root contracts, schemas, manifest
6
+ validation, and deterministic decision helpers.
6
7
 
7
- If you are reading AICF for the first time, start with
8
- [Start here](start-here.md) and the [OpenAI walkthrough](openai-walkthrough.md).
9
- This page is the reference once the basic flow is familiar.
8
+ If you are reading AICF for the first time, start with [Start here](start-here.md) and
9
+ the [OpenAI walkthrough](openai-walkthrough.md). This page is the reference once the
10
+ basic flow is familiar.
10
11
 
11
12
  Recommended path:
12
13
 
@@ -20,6 +21,9 @@ Recommended path:
20
21
  8. [Governance](governance/overview.md) and [security](security/overview.md)
21
22
  9. [Release process](public-framework/release-process.md)
22
23
 
24
+ For the stability promise behind each root and subpath export, see
25
+ [Public API policy](api/public-api-policy.md).
26
+
23
27
  Import from the package root:
24
28
 
25
29
  ```ts
@@ -33,11 +37,20 @@ import {
33
37
 
34
38
  ## Boundaries
35
39
 
36
- The Core root API does not call models, execute capabilities, verify host
37
- authorization, persist actions, collect approvals, write audit logs, or perform
38
- side effects. Host applications own production authorization, durable storage,
39
- approval workflows, audit retention, provider calls, and final side-effect
40
- execution.
40
+ The Core root API does not call models, execute capabilities, verify host authorization,
41
+ persist actions, collect approvals, write audit logs, or perform side effects. Host
42
+ applications own production authorization, durable storage, approval workflows, audit
43
+ retention, provider calls, and final side-effect execution.
44
+
45
+ Programmatic CLI use is intentionally isolated from the root API:
46
+
47
+ ```ts
48
+ import { runCli } from "ai-capability-framework/cli";
49
+ ```
50
+
51
+ The `runCli` helper is release-candidate public API for tests and local tooling. It is
52
+ not exported from `ai-capability-framework`. Normal command-line use should keep using
53
+ the `aicf` binary.
41
54
 
42
55
  Runtime control utilities are available from a separate subpath:
43
56
 
@@ -49,11 +62,10 @@ import {
49
62
  } from "ai-capability-framework/runtime";
50
63
  ```
51
64
 
52
- The runtime subpath adds context building, redaction, deterministic routing,
53
- policy brokering, handler registry utilities, no-model read/prepare execution,
54
- host-controlled action lifecycle, in-memory reference stores, audit events, and
55
- runtime envelope helpers. It still does not call providers or expose commit
56
- through model tool execution.
65
+ The runtime subpath adds context building, redaction, deterministic routing, policy
66
+ brokering, handler registry utilities, no-model read/prepare execution, host-controlled
67
+ action lifecycle, in-memory reference stores, audit events, and runtime envelope
68
+ helpers. It still does not call providers or expose commit through model tool execution.
57
69
 
58
70
  Governance analysis utilities are available from:
59
71
 
@@ -61,9 +73,9 @@ Governance analysis utilities are available from:
61
73
  import { compileCapabilityRisk } from "ai-capability-framework/governance";
62
74
  ```
63
75
 
64
- The governance subpath evaluates lifecycle transitions, inferred risk,
65
- compatibility diffs, and registry impact. It does not mutate manifests, execute
66
- handlers, call models, or replace a host policy engine.
76
+ The governance subpath evaluates lifecycle transitions, inferred risk, compatibility
77
+ diffs, and registry impact. It does not mutate manifests, execute handlers, call models,
78
+ or replace a host policy engine.
67
79
 
68
80
  Canonical audit ledger contracts are available from:
69
81
 
@@ -71,10 +83,10 @@ Canonical audit ledger contracts are available from:
71
83
  import { DefaultAuditLedger } from "ai-capability-framework/audit";
72
84
  ```
73
85
 
74
- The audit subpath provides public-safe ledger record constructors, redaction and
75
- hash helpers, store interfaces, in-memory reference stores, and an optional
76
- runtime recorder. It does not store raw prompts, provider payloads, stack
77
- traces, secrets, or unredacted user/account/tenant IDs.
86
+ The audit subpath provides public-safe ledger record constructors, redaction and hash
87
+ helpers, store interfaces, in-memory reference stores, and an optional runtime recorder.
88
+ It does not store raw prompts, provider payloads, stack traces, secrets, or unredacted
89
+ user/account/tenant IDs.
78
90
 
79
91
  Trust, taint, redaction, and retention helpers are available from:
80
92
 
@@ -82,10 +94,10 @@ Trust, taint, redaction, and retention helpers are available from:
82
94
  import { redactForProvider } from "ai-capability-framework/security";
83
95
  ```
84
96
 
85
- The security subpath labels context segments, preserves public-safe provenance,
86
- keeps untrusted data separate from instructions, applies provider/trace
87
- redaction policies, and evaluates conservative retention defaults. It does not
88
- replace host DLP, privacy review, or retention infrastructure.
97
+ The security subpath labels context segments, preserves public-safe provenance, keeps
98
+ untrusted data separate from instructions, applies provider/trace redaction policies,
99
+ and evaluates conservative retention defaults. It does not replace host DLP, privacy
100
+ review, or retention infrastructure.
89
101
 
90
102
  Governed memory helpers are available from:
91
103
 
@@ -93,9 +105,9 @@ Governed memory helpers are available from:
93
105
  import { selectGovernedMemory } from "ai-capability-framework/memory";
94
106
  ```
95
107
 
96
- The memory subpath validates host-owned memory summaries, decides whether they
97
- may become model context for a specific use case, and converts selected records
98
- to security/runtime context. It does not store, recall, infer, or update memory.
108
+ The memory subpath validates host-owned memory summaries, decides whether they may
109
+ become model context for a specific use case, and converts selected records to
110
+ security/runtime context. It does not store, recall, infer, or update memory.
99
111
 
100
112
  Capability-aware security test packs are available from:
101
113
 
@@ -103,11 +115,10 @@ Capability-aware security test packs are available from:
103
115
  import { generateSecurityCases } from "ai-capability-framework/security-packs";
104
116
  ```
105
117
 
106
- The security-packs subpath lists built-in risk packs, generates public-safe
107
- security cases, assesses pack coverage, and exports API-key-free Promptfoo
108
- red-team config templates. It does not run Promptfoo, call models, claim
109
- certification, or replace a host security review. See
110
- [capability-aware security packs](security/security-packs.md).
118
+ The security-packs subpath lists built-in risk packs, generates public-safe security
119
+ cases, assesses pack coverage, and exports API-key-free Promptfoo red-team config
120
+ templates. It does not run Promptfoo, call models, claim certification, or replace a
121
+ host security review. See [capability-aware security packs](security/security-packs.md).
111
122
 
112
123
  Runtime kill switches, circuit breakers, and budgets are available from:
113
124
 
@@ -115,10 +126,10 @@ Runtime kill switches, circuit breakers, and budgets are available from:
115
126
  import { DefaultControlsEvaluator } from "ai-capability-framework/controls";
116
127
  ```
117
128
 
118
- The controls subpath evaluates optional runtime controls for capability export,
119
- routing, tool execution, lifecycle commit, and provider loops. It includes
120
- in-memory and local JSON reference stores only; host applications own production
121
- control storage, operator auth, incident workflows, and rollout policy.
129
+ The controls subpath evaluates optional runtime controls for capability export, routing,
130
+ tool execution, lifecycle commit, and provider loops. It includes in-memory and local
131
+ JSON reference stores only; host applications own production control storage, operator
132
+ auth, incident workflows, and rollout policy.
122
133
 
123
134
  The optional governance control plane is available from:
124
135
 
@@ -126,12 +137,11 @@ The optional governance control plane is available from:
126
137
  import { createControlPlaneService } from "ai-capability-framework/control-plane";
127
138
  ```
128
139
 
129
- The control-plane subpath provides a framework-neutral request router, service
130
- helpers, in-memory/file-backed reference stores, safe evidence export, and a
131
- local example UI for reviewing capabilities, governance status, ledgers,
132
- approvals, controls, and redacted replay metadata. It does not provide
133
- production auth, production storage, hosted SaaS behavior, model calls, provider
134
- SDK execution, or side-effect execution.
140
+ The control-plane subpath provides a framework-neutral request router, service helpers,
141
+ in-memory/file-backed reference stores, safe evidence export, and a local example UI for
142
+ reviewing capabilities, governance status, ledgers, approvals, controls, and redacted
143
+ replay metadata. It does not provide production auth, production storage, hosted SaaS
144
+ behavior, model calls, provider SDK execution, or side-effect execution.
135
145
 
136
146
  Compliance evidence export is available from:
137
147
 
@@ -139,11 +149,11 @@ Compliance evidence export is available from:
139
149
  import { createEvidencePack } from "ai-capability-framework/evidence";
140
150
  ```
141
151
 
142
- The evidence subpath creates public-safe JSON or Markdown evidence packs from
143
- manifests and optional supplied reports. It records missing coverage as gaps and
144
- includes required disclaimers. It does not certify compliance, call providers,
145
- store evidence, or include raw prompts, provider payloads, secrets, stack
146
- traces, or unredacted IDs. See [evidence export](evidence.md).
152
+ The evidence subpath creates public-safe JSON or Markdown evidence packs from manifests
153
+ and optional supplied reports. It records missing coverage as gaps and includes required
154
+ disclaimers. It does not certify compliance, call providers, store evidence, or include
155
+ raw prompts, provider payloads, secrets, stack traces, or unredacted IDs. See
156
+ [evidence export](evidence.md).
147
157
 
148
158
  Generated-content provenance hooks are available from:
149
159
 
@@ -151,11 +161,11 @@ Generated-content provenance hooks are available from:
151
161
  import { createGeneratedContentProvenance } from "ai-capability-framework/provenance";
152
162
  ```
153
163
 
154
- The provenance subpath creates refs-and-hashes metadata for customer-facing
155
- generated content and passes validated metadata to host-supplied adapter hooks.
156
- It does not implement C2PA signing, process documents or media, call providers,
157
- store records, or include raw prompts, provider payloads, transcripts, secrets,
158
- stack traces, or unredacted IDs. See [content provenance hooks](provenance.md).
164
+ The provenance subpath creates refs-and-hashes metadata for customer-facing generated
165
+ content and passes validated metadata to host-supplied adapter hooks. It does not
166
+ implement C2PA signing, process documents or media, call providers, store records, or
167
+ include raw prompts, provider payloads, transcripts, secrets, stack traces, or
168
+ unredacted IDs. See [content provenance hooks](provenance.md).
159
169
 
160
170
  Runtime replay and trace-to-golden helpers are available from:
161
171
 
@@ -163,10 +173,10 @@ Runtime replay and trace-to-golden helpers are available from:
163
173
  import { runReplay, createGoldenFromTrace } from "ai-capability-framework/replay";
164
174
  ```
165
175
 
166
- The replay subpath validates sanitized replay traces, runs deterministic replay
167
- modes, and drafts review-required eval cases. It does not store raw prompts,
168
- raw provider payloads, raw traces, credentials, or private diagnostics, and it
169
- does not call live providers unless the host supplies an explicit live runner.
176
+ The replay subpath validates sanitized replay traces, runs deterministic replay modes,
177
+ and drafts review-required eval cases. It does not store raw prompts, raw provider
178
+ payloads, raw traces, credentials, or private diagnostics, and it does not call live
179
+ providers unless the host supplies an explicit live runner.
170
180
 
171
181
  The optional OpenAI Responses runtime is available from its own subpath:
172
182
 
@@ -177,15 +187,18 @@ import {
177
187
  } from "ai-capability-framework/openai";
178
188
  ```
179
189
 
180
- This subpath can call a caller-provided OpenAI-compatible client. The package
181
- root and runtime subpath do not import OpenAI code.
190
+ This subpath can call a caller-provided OpenAI-compatible client. The package root and
191
+ runtime subpath do not import OpenAI code.
182
192
 
183
193
  Observability and eval-ops imports are also isolated:
184
194
 
185
195
  ```ts
186
196
  import { CollectingTraceSink } from "ai-capability-framework/observability";
187
197
  import { LangfuseTraceSink } from "ai-capability-framework/langfuse";
188
- import { runLiveEvalSuite } from "ai-capability-framework/evals-live";
198
+ import {
199
+ createOpenAILiveEvalRunner,
200
+ runLiveEvalSuite
201
+ } from "ai-capability-framework/evals-live";
189
202
  import { exportBraintrustDataset } from "ai-capability-framework/evalops";
190
203
  import { exportPromptfooSuite } from "ai-capability-framework/promptfoo";
191
204
  ```
@@ -200,8 +213,8 @@ import {
200
213
  } from "ai-capability-framework/aws";
201
214
  ```
202
215
 
203
- The AWS subpath is for durable-store and workflow handoff references. Root,
204
- runtime, OpenAI, and eval imports do not import AWS SDK modules.
216
+ The AWS subpath is for durable-store and workflow handoff references. Root, runtime,
217
+ OpenAI, and eval imports do not import AWS SDK modules.
205
218
 
206
219
  MCP server runtime imports are separate as well:
207
220
 
@@ -215,93 +228,92 @@ Shared multi-provider foundation imports are available from:
215
228
  import { createProviderToolNameMap } from "ai-capability-framework/providers";
216
229
  ```
217
230
 
218
- Provider-specific optional subpaths cover OpenAI, Anthropic Claude, Google
219
- Gemini, Vercel AI SDK, LangChain/LangGraph, MCP, Semantic Kernel compatibility,
220
- and descriptor/mock-only conformance. OpenAI is one adapter, not the
221
- architecture; provider SDK validation is advisory and AICF remains the
222
- validation, policy, lifecycle, approval, and envelope authority.
231
+ Provider-specific optional subpaths cover OpenAI, Anthropic Claude, Google Gemini,
232
+ Vercel AI SDK, LangChain/LangGraph, MCP, Semantic Kernel compatibility, and
233
+ descriptor/mock-only conformance. OpenAI is one adapter, not the architecture; provider
234
+ SDK validation is advisory and AICF remains the validation, policy, lifecycle, approval,
235
+ and envelope authority.
223
236
 
224
237
  ## Core Manifest APIs
225
238
 
226
- - `loadManifests(options)` reads YAML and JSON manifests from convention paths
227
- and parses public non-manifest fixtures.
228
- - `validateManifests(manifests, options)` validates schemas, duplicate IDs, and
229
- manifest cross-references, embedded capability schemas, and semantic
230
- invariants.
231
- - `validatePublicFixtures(fixtures)` validates decision requests, adapter
232
- contexts, and eval-result fixtures discovered by `loadManifests`.
239
+ - `loadManifests(options)` reads YAML and JSON manifests from convention paths and
240
+ parses public non-manifest fixtures.
241
+ - `validateManifests(manifests, options)` validates schemas, duplicate IDs, and manifest
242
+ cross-references, embedded capability schemas, and semantic invariants.
243
+ - `validatePublicFixtures(fixtures)` validates decision requests, adapter contexts, and
244
+ eval-result fixtures discovered by `loadManifests`.
233
245
  - `buildRegistry(manifests)` returns lookup maps and grouped manifest arrays.
234
- - `inspectRegistry(registry)` returns counts, capability groupings, eval
235
- coverage, and warnings.
246
+ - `inspectRegistry(registry)` returns counts, capability groupings, eval coverage, and
247
+ warnings.
236
248
 
237
- Diagnostics use `AicfDiagnostic` with `code`, `path`, optional `kind`, optional
238
- `id`, and a human-readable `message`.
249
+ Diagnostics use `AicfDiagnostic` with `code`, `path`, optional `kind`, optional `id`,
250
+ and a human-readable `message`.
239
251
 
240
252
  ## Decision APIs
241
253
 
242
- - `decideCapability(registry, request, options?)` evaluates select, prepare, or
243
- commit status for one capability.
254
+ - `decideCapability(registry, request, options?)` evaluates select, prepare, or commit
255
+ status for one capability.
244
256
  - `evaluatePolicy(capability, request)` evaluates deterministic policy metadata.
245
257
  - `evaluateLifecycle(capability, request)` evaluates lifecycle availability.
246
258
 
247
259
  Decision results return `status`, `reasons`, `requiredApprovals`, `diagnostics`,
248
260
  `policy`, `lifecycle`, and an audit preview. The audit preview is not persisted.
249
261
 
250
- The decision path validates prepare/commit args against `input_schema`, denies
251
- missing required `userId` or `tenantId`, enforces active status by default, and
252
- honors `riskCeiling` and `allowedRiskTiers` in request context.
262
+ The decision path validates prepare/commit args against `input_schema`, denies missing
263
+ required `userId` or `tenantId`, enforces active status by default, and honors
264
+ `riskCeiling` and `allowedRiskTiers` in request context.
253
265
 
254
266
  ## Capability Slices
255
267
 
256
- - `selectCapabilitySlice(input)` filters a registry deterministically by
257
- capability IDs, domains, entities, tags, capability types, risk, permissions,
258
- autonomy, status, restricted side effects, and max count.
268
+ - `selectCapabilitySlice(input)` filters a registry deterministically by capability IDs,
269
+ domains, entities, tags, capability types, risk, permissions, autonomy, status,
270
+ restricted side effects, and max count.
259
271
 
260
272
  Adapter builders accept either a full registry or a selected slice.
261
273
 
262
274
  ## Provider And Runtime Adapters
263
275
 
264
- - `buildOpenAIResponsesTools(registry, options)` exports OpenAI-compatible
265
- function tools plus bindings, exclusions, and diagnostics.
266
- - `parseOpenAIResponsesToolCall(toolset, call)` maps a Responses
267
- `function_call` item back to a capability ID and validates arguments.
268
- - `toOpenAIResponsesToolName(capabilityId, options)` converts an AICF capability
269
- ID into a deterministic OpenAI-safe tool name.
276
+ - `buildOpenAIResponsesTools(registry, options)` exports OpenAI-compatible function
277
+ tools plus bindings, exclusions, and diagnostics.
278
+ - `parseOpenAIResponsesToolCall(toolset, call)` maps a Responses `function_call` item
279
+ back to a capability ID and validates arguments.
280
+ - `toOpenAIResponsesToolName(capabilityId, options)` converts an AICF capability ID into
281
+ a deterministic OpenAI-safe tool name.
270
282
  - `buildAnthropicClaudeTools(registry, options)` exports Anthropic Claude tool
271
283
  definitions.
272
- - `parseAnthropicClaudeToolUse(toolset, toolUse)` maps Claude `tool_use` blocks
273
- back to AICF capability requests.
284
+ - `parseAnthropicClaudeToolUse(toolset, toolUse)` maps Claude `tool_use` blocks back to
285
+ AICF capability requests.
274
286
  - `buildGeminiFunctionDeclarations(registry, options)` exports Gemini function
275
287
  declarations.
276
- - `parseGeminiFunctionCall(functionSet, functionCall)` parses Gemini
277
- `functionCall` objects.
278
- - `buildAiSdkTools(registry, options)` exports a Vercel AI SDK-compatible tool
279
- map without `execute` handlers.
288
+ - `parseGeminiFunctionCall(functionSet, functionCall)` parses Gemini `functionCall`
289
+ objects.
290
+ - `buildAiSdkTools(registry, options)` exports a Vercel AI SDK-compatible tool map
291
+ without `execute` handlers.
280
292
  - `parseAiSdkToolCall(toolset, toolCall)` parses AI SDK tool calls.
281
293
  - `buildMcpToolDescriptors(registry, options)` exports MCP tool descriptors.
282
294
  - `parseMcpToolCall(toolset, toolCall)` parses MCP `tools/call` requests.
283
- - `buildLangChainToolDescriptors(registry, options)` exports LangChain and
284
- LangGraph descriptor metadata without callable implementations.
295
+ - `buildLangChainToolDescriptors(registry, options)` exports LangChain and LangGraph
296
+ descriptor metadata without callable implementations.
285
297
  - `parseLangChainToolCall(toolset, toolCall)` parses LangChain-style tool calls.
286
- - `buildSemanticKernelFunctions(registry, options)` exports Semantic Kernel
287
- function metadata.
288
- - `parseSemanticKernelFunctionCall(functionSet, functionCall)` parses Semantic
289
- Kernel manual invocation calls.
298
+ - `buildSemanticKernelFunctions(registry, options)` exports Semantic Kernel function
299
+ metadata.
300
+ - `parseSemanticKernelFunctionCall(functionSet, functionCall)` parses Semantic Kernel
301
+ manual invocation calls.
290
302
 
291
- Adapters emit descriptor JSON only. They do not call providers or execute tool
292
- handlers. See [the adapter guide](adapters.md) for output shapes and CLI usage.
303
+ Adapters emit descriptor JSON only. They do not call providers or execute tool handlers.
304
+ See [the adapter guide](adapters.md) for output shapes and CLI usage.
293
305
 
294
- Adapter builders exclude disabled, deprecated, draft, and experimental
295
- capabilities by default. Use explicit include options only for compatibility,
296
- development, or test contexts. Restricted side-effect capabilities still require
297
- `includeRestricted: true` and a successful select decision.
306
+ Adapter builders exclude disabled, deprecated, draft, and experimental capabilities by
307
+ default. Use explicit include options only for compatibility, development, or test
308
+ contexts. Restricted side-effect capabilities still require `includeRestricted: true`
309
+ and a successful select decision.
298
310
 
299
311
  ## Eval Runner APIs
300
312
 
301
313
  - `loadEvalResults(path)` reads and validates a public-safe eval result fixture.
302
314
  - `scoreEvalCase(evalCase, candidate, registry)` scores one eval/candidate pair.
303
- - `runEvalSuite(registry, candidates, options)` scores loaded eval manifests
304
- against candidate results.
315
+ - `runEvalSuite(registry, candidates, options)` scores loaded eval manifests against
316
+ candidate results.
305
317
  - `formatEvalSuiteResult(result)` formats a readable text summary.
306
318
 
307
319
  Eval runner output includes suite status, per-eval status, scorer results, and
@@ -316,43 +328,39 @@ diagnostics. It scores summarized behavior only, not raw model traces.
316
328
  - `errorToolResult(input)`
317
329
  - `toModelFacingToolResult(envelope)`
318
330
 
319
- These helpers build a standard result wrapper for host applications. They do not
320
- execute tools. `toModelFacingToolResult` strips `private_diagnostics`.
331
+ These helpers build a standard result wrapper for host applications. They do not execute
332
+ tools. `toModelFacingToolResult` strips `private_diagnostics`.
321
333
 
322
334
  ## Runtime Subpath APIs
323
335
 
324
336
  Runtime imports are intentionally separate from the Core root API:
325
337
 
326
- - `buildRuntimeContext(input)` resolves subject/account context through a
327
- host-provided `AicfAuthPlatformAdapter`.
338
+ - `buildRuntimeContext(input)` resolves subject/account context through a host-provided
339
+ `AicfAuthPlatformAdapter`.
328
340
  - `StaticAuthPlatformAdapter` is for tests and examples only.
329
- - `DefaultContextBuilder` builds deterministic model context and applies
330
- redaction.
341
+ - `DefaultContextBuilder` builds deterministic model context and applies redaction.
331
342
  - `DefaultRedactionPolicy` redacts values under sensitive keyed fields.
332
343
  - `DefaultCapabilityRouter` creates deterministic runtime capability slices.
333
- - `DefaultControlsEvaluator` can be supplied to routing, executor, lifecycle,
334
- and provider runtime calls to deny, force approval, apply read-only mode, or
335
- enforce per-run budgets.
336
- - `formatCapabilitySliceForModel(input)` renders compact model-facing
337
- capability guidance.
338
- - `DefaultPolicyBroker` combines Core decisions with runtime context checks and
339
- optional stricter host policy hooks.
344
+ - `DefaultControlsEvaluator` can be supplied to routing, executor, lifecycle, and
345
+ provider runtime calls to deny, force approval, apply read-only mode, or enforce
346
+ per-run budgets.
347
+ - `formatCapabilitySliceForModel(input)` renders compact model-facing capability
348
+ guidance.
349
+ - `DefaultPolicyBroker` combines Core decisions with runtime context checks and optional
350
+ stricter host policy hooks.
340
351
  - `AicfHandlerRegistry` registers host capability handlers.
341
- - `AicfToolExecutor` executes read and prepare handlers after validation and
342
- policy checks.
343
- - `AicfActionLifecycleManager` prepares actions, records approvals, and commits
344
- stored prepared actions through host-controlled APIs.
345
- - `InMemoryPreparedActionStore`, `InMemoryApprovalStore`,
346
- `InMemoryIdempotencyStore`, and `InMemoryAuditSink` are dev/test reference
347
- stores only.
352
+ - `AicfToolExecutor` executes read and prepare handlers after validation and policy
353
+ checks.
354
+ - `AicfActionLifecycleManager` prepares actions, records approvals, and commits stored
355
+ prepared actions through host-controlled APIs.
356
+ - `InMemoryPreparedActionStore`, `InMemoryApprovalStore`, `InMemoryIdempotencyStore`,
357
+ and `InMemoryAuditSink` are dev/test reference stores only.
348
358
  - `createToolEnvelope(input)`, `toModelSafeToolEnvelope(envelope)`, and
349
- `serializeToolEnvelopeForModel(envelope)` produce runtime model-safe result
350
- envelopes.
359
+ `serializeToolEnvelopeForModel(envelope)` produce runtime model-safe result envelopes.
351
360
 
352
- See [the runtime guide](runtime.md) for execution boundaries and host
353
- responsibilities, [action lifecycle](action-lifecycle.md) for prepare, approval,
354
- and commit semantics, and [policy broker](policy-broker.md) for runtime policy
355
- behavior.
361
+ See [the runtime guide](runtime.md) for execution boundaries and host responsibilities,
362
+ [action lifecycle](action-lifecycle.md) for prepare, approval, and commit semantics, and
363
+ [policy broker](policy-broker.md) for runtime policy behavior.
356
364
 
357
365
  ## Governance Subpath APIs
358
366
 
@@ -370,23 +378,21 @@ import {
370
378
  } from "ai-capability-framework/governance";
371
379
  ```
372
380
 
373
- - `compileCapabilityRisk(capability, options?)` compares declared risk with an
374
- inferred minimum and reports required controls.
375
- - `evaluateLifecycleTransition(registry, request, context?)` returns an
376
- allow/block decision for draft, review, approved, canary, production,
377
- deprecated, disabled, and removed governance statuses.
378
- - `compareCapabilityVersions(before, after)` classifies manifest changes as
379
- compatible, minor-required, or breaking.
380
- - `analyzeCapabilityImpact(registry, capabilityId, options?)` reports directly
381
- affected capabilities, entities, evals, providers, policy references, and
382
- coverage gaps.
383
- - `loadGovernanceGateConfig(pathOrRoot, options?)` loads `aicf.config.yaml` or
384
- JSON config with safe defaults when no config exists.
381
+ - `compileCapabilityRisk(capability, options?)` compares declared risk with an inferred
382
+ minimum and reports required controls.
383
+ - `evaluateLifecycleTransition(registry, request, context?)` returns an allow/block
384
+ decision for draft, review, approved, canary, production, deprecated, disabled, and
385
+ removed governance statuses.
386
+ - `compareCapabilityVersions(before, after)` classifies manifest changes as compatible,
387
+ minor-required, or breaking.
388
+ - `analyzeCapabilityImpact(registry, capabilityId, options?)` reports directly affected
389
+ capabilities, entities, evals, providers, policy references, and coverage gaps.
390
+ - `loadGovernanceGateConfig(pathOrRoot, options?)` loads `aicf.config.yaml` or JSON
391
+ config with safe defaults when no config exists.
385
392
  - `runGovernanceGate(input)` coordinates validation, semantic invariants, risk,
386
- lifecycle, optional compatibility baselines, impact, eval coverage,
387
- security-pack coverage, configured provider conformance, and artifact hygiene.
388
- - `formatGovernanceGateReport(report, format)` formats gate results for CLI or
389
- CI logs.
393
+ lifecycle, optional compatibility baselines, impact, eval coverage, security-pack
394
+ coverage, configured provider conformance, and artifact hygiene.
395
+ - `formatGovernanceGateReport(report, format)` formats gate results for CLI or CI logs.
390
396
 
391
397
  The CLI equivalents live under `aicf governance ...` and `aicf gate ...`. See
392
398
  [governance](governance/index.md) and [governance gate](governance/gate.md).
@@ -404,16 +410,16 @@ import {
404
410
  } from "ai-capability-framework/audit";
405
411
  ```
406
412
 
407
- - `createPolicyDecisionRecord(input)` creates a schema-valid decision evidence
408
- record with hashed inputs and redacted subject/account/tenant refs.
413
+ - `createPolicyDecisionRecord(input)` creates a schema-valid decision evidence record
414
+ with hashed inputs and redacted subject/account/tenant refs.
409
415
  - `createActionRecord(input)`, `createApprovalRecord(input)`, and
410
416
  `createIdempotencyRecord(input)` create the corresponding canonical records.
411
- - `InMemoryPolicyDecisionStore`, `InMemoryActionStore`,
412
- `InMemoryApprovalLedgerStore`, and `InMemoryIdempotencyLedgerStore` are
413
- reference stores for tests and examples only.
417
+ - `ActionRecord.verificationStatus` records optional verification state without changing
418
+ the primary committed action state.
419
+ - `InMemoryPolicyDecisionStore`, `InMemoryActionStore`, `InMemoryApprovalLedgerStore`,
420
+ and `InMemoryIdempotencyLedgerStore` are reference stores for tests and examples only.
414
421
  - `DefaultAuditLedger` composes the stores and implements the optional
415
- `AicfRuntimeLedgerRecorder` used by the runtime executor and lifecycle
416
- manager.
422
+ `AicfRuntimeLedgerRecorder` used by the runtime executor and lifecycle manager.
417
423
 
418
424
  The schemas live under `schemas/audit/`. See [audit ledger](audit/index.md).
419
425
 
@@ -438,12 +444,12 @@ import {
438
444
  boundaries.
439
445
  - `validateContextSegment(segment)` rejects untrusted segments that try to carry
440
446
  instructions.
441
- - `markTainted(segment)` and `mergeTaint(left, right)` preserve the fact that
442
- content is not trusted tool input until validated by the host.
447
+ - `markTainted(segment)` and `mergeTaint(left, right)` preserve the fact that content is
448
+ not trusted tool input until validated by the host.
443
449
  - `redactForProvider(value, context, policy?)` and
444
450
  `redactForTrace(value, context, policy?)` apply redaction policy.
445
- - `defaultRetentionPolicy()` and `evaluateRetentionPolicy(policy, context)`
446
- enforce conservative raw-content defaults.
451
+ - `defaultRetentionPolicy()` and `evaluateRetentionPolicy(policy, context)` enforce
452
+ conservative raw-content defaults.
447
453
 
448
454
  The schemas live under `schemas/security/`. See
449
455
  [trust, taint, redaction, and retention](security/trust-taint-redaction.md).
@@ -463,14 +469,14 @@ import {
463
469
  ```
464
470
 
465
471
  - `validateGovernedMemoryRecord(record)` checks the public memory contract.
466
- - `evaluateMemoryExposure(record, context)` returns allow/deny reasons for a
467
- specific exact use case and runtime scope.
468
- - `selectGovernedMemory(records, context)` filters and deterministically sorts
469
- allowed records.
470
- - `memoryRecordToContextSegment(record)` returns a security `ContextSegment`
471
- with `instructionsAllowed: false`.
472
- - `memoryRecordToRuntimeContextItem(record)` returns a model-context item for a
473
- host runtime builder.
472
+ - `evaluateMemoryExposure(record, context)` returns allow/deny reasons for a specific
473
+ exact use case and runtime scope.
474
+ - `selectGovernedMemory(records, context)` filters and deterministically sorts allowed
475
+ records.
476
+ - `memoryRecordToContextSegment(record)` returns a security `ContextSegment` with
477
+ `instructionsAllowed: false`.
478
+ - `memoryRecordToRuntimeContextItem(record)` returns a model-context item for a host
479
+ runtime builder.
474
480
 
475
481
  The schemas live under `schemas/memory/`. See
476
482
  [governed memory and preferences](memory.md).
@@ -489,124 +495,114 @@ import {
489
495
 
490
496
  - `DefaultControlsEvaluator` evaluates kill switches, circuit breaker state, and
491
497
  budgets.
492
- - `InMemoryControlsStore` and `LocalJsonControlsStore` are reference/local
493
- utilities, not production stores.
494
- - `evaluateKillSwitches`, `evaluateCircuitBreakers`, and `evaluateBudget` are
495
- pure helpers for tests and host integration.
498
+ - `InMemoryControlsStore` and `LocalJsonControlsStore` are reference/local utilities,
499
+ not production stores.
500
+ - `evaluateKillSwitches`, `evaluateCircuitBreakers`, and `evaluateBudget` are pure
501
+ helpers for tests and host integration.
496
502
 
497
503
  The schemas live under `schemas/controls/`. See [runtime controls](controls/index.md).
498
504
 
499
505
  ## OpenAI Runtime Subpath APIs
500
506
 
501
- OpenAI runtime imports are intentionally separate from both the Core root API
502
- and the no-model runtime subpath:
507
+ OpenAI runtime imports are intentionally separate from both the Core root API and the
508
+ no-model runtime subpath:
503
509
 
504
- - `runOpenAIResponses(request)` runs a bounded non-streaming Responses tool
505
- loop with routed read/prepare capabilities.
510
+ - `runOpenAIResponses(request)` runs a bounded non-streaming Responses tool loop with
511
+ routed read/prepare capabilities.
506
512
  - `createOpenAIResponsesClientFromSdk(client)` wraps any compatible client with
507
513
  `responses.create()`.
508
- - `createDefaultOpenAIResponsesClient(options?)` dynamically imports the
509
- optional `openai` SDK and returns a compatible client.
510
- - `extractOpenAIResponsesFunctionCalls(response)` extracts Responses
511
- `function_call` items from a response-like object.
512
- - `buildOpenAIFunctionCallOutput(call, envelope, options?)` serializes a
513
- runtime envelope as a `function_call_output` item.
514
- - `buildAgentsSdkTools(options)` builds executor-backed OpenAI Agents SDK
515
- function-tool definitions from routed AICF capabilities.
516
- - `createDefaultAgentsSdkBridgeFactory(options?)` dynamically imports the
517
- optional `@openai/agents` SDK and returns a tool factory.
518
-
519
- The runner builds context through `AicfContextBuilder`, routes capabilities
520
- through `AicfCapabilityRouter`, exports routed tools with the existing OpenAI
521
- adapter, executes tool calls through `AicfToolExecutor`, and returns
522
- `AicfOpenAIRunResult`.
523
-
524
- The OpenAI runtime does not stream, use the OpenAI Agents SDK, expose commit
525
- tools to the model, persist actions, collect approvals, or write durable audit
526
- logs. The Agents SDK bridge is a separate adapter surface that still executes
527
- through AICF runtime policy and lifecycle controls. See
528
- [the OpenAI runtime guide](openai-runtime.md).
514
+ - `createDefaultOpenAIResponsesClient(options?)` dynamically imports the optional
515
+ `openai` SDK and returns a compatible client.
516
+ - `extractOpenAIResponsesFunctionCalls(response)` extracts Responses `function_call`
517
+ items from a response-like object.
518
+ - `buildOpenAIFunctionCallOutput(call, envelope, options?)` serializes a runtime
519
+ envelope as a `function_call_output` item.
520
+ - `buildAgentsSdkTools(options)` builds executor-backed OpenAI Agents SDK function-tool
521
+ definitions from routed AICF capabilities.
522
+ - `createDefaultAgentsSdkBridgeFactory(options?)` dynamically imports the optional
523
+ `@openai/agents` SDK and returns a tool factory.
524
+
525
+ The runner builds context through `AicfContextBuilder`, routes capabilities through
526
+ `AicfCapabilityRouter`, exports routed tools with the existing OpenAI adapter, executes
527
+ tool calls through `AicfToolExecutor`, and returns `AicfOpenAIRunResult`.
528
+
529
+ The OpenAI runtime does not stream, use the OpenAI Agents SDK, expose commit tools to
530
+ the model, persist actions, collect approvals, or write durable audit logs. The Agents
531
+ SDK bridge is a separate adapter surface that still executes through AICF runtime policy
532
+ and lifecycle controls. See [the OpenAI runtime guide](openai-runtime.md).
529
533
 
530
534
  ## Observability And Eval-Ops APIs
531
535
 
532
536
  - `CollectingTraceSink`, `NoopTraceSink`, `CompositeTraceSink`, and
533
537
  `OpenTelemetryTraceSink` consume sanitized AICF runtime trace events.
534
- - `NoopTracer`, `InMemoryTracer`, `TraceSinkTracer`, and
535
- `OpenTelemetryTracerAdapter` provide run/span-style observability over the
536
- same safe event model.
538
+ - `NoopTracer`, `InMemoryTracer`, `TraceSinkTracer`, and `OpenTelemetryTracerAdapter`
539
+ provide run/span-style observability over the same safe event model.
537
540
  - `LangfuseTraceSink` adapts trace events to a client-like Langfuse object.
538
541
  - `createLangfuseDatasetItemsFromEvalCases()` and
539
542
  `createEvalCaseFromLangfuseDatasetItem()` convert public-safe eval cases.
540
- - `runLiveEvalSuite(options)` executes live eval cases through the OpenAI
541
- runtime with a caller-provided client.
543
+ - `runLiveEvalSuite(options)` executes live eval cases through a provider-neutral
544
+ `AicfLiveEvalRunner`. OpenAI, Anthropic, Gemini, and AI SDK convenience runners are
545
+ available from the same subpath.
542
546
  - `evaluateGate(results, gate?)` applies deterministic release gates.
543
- - `createEvalCaseFromTrace(input)` drafts public-safe eval cases from runtime
544
- summaries.
545
- - `exportPromptfooSuite(options)` generates Promptfoo files without running
546
- Promptfoo.
547
+ - `createEvalCaseFromTrace(input)` drafts public-safe eval cases from runtime summaries.
548
+ - `exportPromptfooSuite(options)` generates Promptfoo files without running Promptfoo.
547
549
  - `importPromptfooResults(input)` maps basic Promptfoo JSON results to live eval
548
550
  summaries.
549
- - `exportBraintrustDataset()`, `importBraintrustResults()`,
550
- `exportOpenAIEvalDataset()`, and `importOpenAIEvalResults()` live in
551
- `ai-capability-framework/evalops` and transform public-safe eval data only.
551
+ - `exportBraintrustDataset()`, `importBraintrustResults()`, `exportOpenAIEvalDataset()`,
552
+ and `importOpenAIEvalResults()` live in `ai-capability-framework/evalops` and
553
+ transform public-safe eval data only.
552
554
 
553
- These APIs are optional and do not make root imports depend on OpenTelemetry,
554
- Langfuse, Promptfoo, or live model calls. See
555
- [observability runtime](observability-runtime.md), [live evals](live-evals.md),
556
- and [EvalOps](evalops.md).
555
+ These APIs are optional and do not make root imports depend on OpenTelemetry, Langfuse,
556
+ Promptfoo, or live model calls. See [observability runtime](observability-runtime.md),
557
+ [live evals](live-evals.md), and [EvalOps](evalops.md).
557
558
 
558
559
  ## AWS Reference APIs
559
560
 
560
561
  The AWS subpath is importable without AWS SDK packages installed. Store,
561
- approval-adapter, and publisher operations require the relevant optional AWS SDK
562
- peer dependency when used.
563
-
564
- - `DynamoDbPreparedActionStore`, `DynamoDbApprovalStore`,
565
- `DynamoDbIdempotencyStore`, and `DynamoDbAuditSink` implement the runtime
566
- store/sink interfaces with caller-provided DynamoDB document clients.
567
- - `DynamoDbPolicyDecisionStore`, `DynamoDbActionStore`,
568
- `DynamoDbApprovalLedgerStore`, and `DynamoDbIdempotencyLedgerStore`
569
- implement canonical audit ledger stores.
562
+ approval-adapter, and publisher operations require the relevant optional AWS SDK peer
563
+ dependency when used.
564
+
565
+ - `DynamoDbPreparedActionStore`, `DynamoDbApprovalStore`, `DynamoDbIdempotencyStore`,
566
+ and `DynamoDbAuditSink` implement the runtime store/sink interfaces with
567
+ caller-provided DynamoDB document clients.
568
+ - `DynamoDbPolicyDecisionStore`, `DynamoDbActionStore`, `DynamoDbApprovalLedgerStore`,
569
+ and `DynamoDbIdempotencyLedgerStore` implement canonical audit ledger stores.
570
570
  - `DynamoDbControlsStore`, `DynamoDbBudgetUsageStore`,
571
- `DynamoDbReplayTraceMetadataStore`, and `DynamoDbControlPlaneStore` provide
572
- AWS-backed controls and control-plane state.
573
- - `StepFunctionsApprovalAdapter` starts and resumes host-owned approval
574
- workflows with safe prepared-action summaries.
575
- - `EventBridgeRuntimeEventPublisher` publishes sanitized AICF trace or audit
576
- events to EventBridge.
577
- - `CloudWatchTelemetryPublisher` and `KmsRedactionProvider` provide sanitized
578
- AWS telemetry and deterministic redaction refs.
579
- - `FakeDynamoDbDocumentClient`, `FakeStepFunctionsClient`, and
580
- `FakeEventBridgeClient` plus CloudWatch, CloudWatch Logs, and KMS fakes
581
- support API-key-free tests.
582
-
583
- These adapters do not provision AWS infrastructure, own approval UI, call
584
- models, or expose commit to model tool execution. See
585
- [AWS runtime](aws-runtime.md) and
571
+ `DynamoDbReplayTraceMetadataStore`, and `DynamoDbControlPlaneStore` provide AWS-backed
572
+ controls and control-plane state.
573
+ - `StepFunctionsApprovalAdapter` starts and resumes host-owned approval workflows with
574
+ safe prepared-action summaries.
575
+ - `EventBridgeRuntimeEventPublisher` publishes sanitized AICF trace or audit events to
576
+ EventBridge.
577
+ - `CloudWatchTelemetryPublisher` and `KmsRedactionProvider` provide sanitized AWS
578
+ telemetry and deterministic redaction refs.
579
+ - `FakeDynamoDbDocumentClient`, `FakeStepFunctionsClient`, and `FakeEventBridgeClient`
580
+ plus CloudWatch, CloudWatch Logs, and KMS fakes support API-key-free tests.
581
+
582
+ These adapters do not provision AWS infrastructure, own approval UI, call models, or
583
+ expose commit to model tool execution. See [AWS runtime](aws-runtime.md) and
586
584
  [AWS production reference](aws/production-reference.md).
587
585
 
588
586
  ## MCP Provider Descriptor APIs
589
587
 
590
- - `buildMcpProviderToolDescriptors(request)` exports MCP tool descriptors from
591
- a routed AICF capability slice.
592
- - `parseMcpProviderToolCall(toolset, call)` maps MCP `tools/call` requests back
593
- to AICF provider tool calls through generated bindings.
594
- - `toMcpProviderToolName(capabilityId, options?)` creates deterministic
595
- MCP-safe names.
596
- - `mcpAnnotationsForCapability()` and `mcpSecuritySummaryForCapability()`
597
- expose public-safe descriptor hints.
588
+ - `buildMcpProviderToolDescriptors(request)` exports MCP tool descriptors from a routed
589
+ AICF capability slice.
590
+ - `parseMcpProviderToolCall(toolset, call)` maps MCP `tools/call` requests back to AICF
591
+ provider tool calls through generated bindings.
592
+ - `toMcpProviderToolName(capabilityId, options?)` creates deterministic MCP-safe names.
593
+ - `mcpAnnotationsForCapability()` and `mcpSecuritySummaryForCapability()` expose
594
+ public-safe descriptor hints.
598
595
 
599
- The MCP provider subpath is isolated under
600
- `ai-capability-framework/providers/mcp`. It does not start transports, call
601
- models, execute handlers, or expose commit capabilities. The MCP server runtime
602
- uses these descriptors for listing and parsing.
596
+ The MCP provider subpath is isolated under `ai-capability-framework/providers/mcp`. It
597
+ does not start transports, call models, execute handlers, or expose commit capabilities.
598
+ The MCP server runtime uses these descriptors for listing and parsing.
603
599
 
604
600
  ## MCP Server Runtime APIs
605
601
 
606
602
  - `AicfMcpServer` lists routed MCP tools and executes MCP tool calls through
607
603
  `AicfToolExecutor`.
608
- - `registerAicfMcpTools(options)` registers the current routed tool set against
609
- a caller-provided MCP SDK server object.
604
+ - `registerAicfMcpTools(options)` registers the current routed tool set against a
605
+ caller-provided MCP SDK server object.
610
606
 
611
607
  The MCP server subpath does not start transports, own auth, trust client-supplied
612
608
  tenant/user IDs, or expose commit capabilities. See
@@ -614,47 +610,43 @@ tenant/user IDs, or expose commit capabilities. See
614
610
 
615
611
  ## Provider Foundation APIs
616
612
 
617
- - `aicfProviderIds` and `aicfProviderMetadata` describe supported provider and
618
- framework targets.
619
- - `createProviderToolNameMap(input)` creates deterministic provider-safe tool
620
- bindings and collision diagnostics.
621
- - `normalizeProviderToolSchema(schema)` validates and clones callable provider
622
- tool schemas.
623
- - `buildProviderToolDescriptor(input)` creates provider-neutral descriptor
624
- metadata.
625
- - `parseProviderToolCall(input)` maps provider tool calls back to AICF
626
- capability IDs through bindings.
627
- - `buildProviderToolResult(input)` returns model-safe provider tool-result
628
- summaries.
613
+ - `aicfProviderIds` and `aicfProviderMetadata` describe supported provider and framework
614
+ targets.
615
+ - `createProviderToolNameMap(input)` creates deterministic provider-safe tool bindings
616
+ and collision diagnostics.
617
+ - `normalizeProviderToolSchema(schema)` validates and clones callable provider tool
618
+ schemas.
619
+ - `buildProviderToolDescriptor(input)` creates provider-neutral descriptor metadata.
620
+ - `parseProviderToolCall(input)` maps provider tool calls back to AICF capability IDs
621
+ through bindings.
622
+ - `buildProviderToolResult(input)` returns model-safe provider tool-result summaries.
629
623
  - `executeProviderToolCall(input)` delegates allowed read/prepare calls to
630
624
  `AicfToolExecutor`.
631
- - `loadOptionalProviderDependency(input)` dynamically loads optional SDKs and
632
- throws actionable safe errors when missing.
625
+ - `loadOptionalProviderDependency(input)` dynamically loads optional SDKs and throws
626
+ actionable safe errors when missing.
633
627
 
634
- The provider foundation does not call models, import provider SDKs, expose
635
- commit tools, or log raw provider payloads. See
636
- [provider foundation](providers.md).
628
+ The provider foundation does not call models, import provider SDKs, expose commit tools,
629
+ or log raw provider payloads. See [provider foundation](providers.md).
637
630
 
638
631
  ## Provider Conformance APIs
639
632
 
640
633
  - `listConformanceTargets()` returns supported provider and bridge targets.
641
- - `exportConformanceProviderTools(input)` exports descriptor JSON for a target
642
- from a selected AICF capability slice.
643
- - `runConformanceSuite(input)` runs deterministic mock conformance cases and
644
- returns the canonical F7 report shape.
634
+ - `exportConformanceProviderTools(input)` exports descriptor JSON for a target from a
635
+ selected AICF capability slice.
636
+ - `runConformanceSuite(input)` runs deterministic mock conformance cases and returns the
637
+ canonical F7 report shape.
645
638
  - `buildConformanceMatrix(input)` returns the canonical target matrix.
646
639
  - `formatConformanceReport(report, format)` and
647
640
  `formatConformanceMatrix(matrix, format)` format CLI-ready output.
648
641
  - `listProviderTargets()` returns supported provider and bridge targets.
649
- - `exportProviderTools(input)` exports descriptor JSON for a target from a
650
- selected AICF capability slice.
651
- - `runProviderConformanceSuite(input)` runs deterministic mock conformance
652
- cases.
642
+ - `exportProviderTools(input)` exports descriptor JSON for a target from a selected AICF
643
+ capability slice.
644
+ - `runProviderConformanceSuite(input)` runs deterministic mock conformance cases.
653
645
  - `formatProviderConformanceReport(report, format)` formats conformance output.
654
646
 
655
647
  Use `ai-capability-framework/conformance` for new code. The older
656
- `ai-capability-framework/providers/conformance` subpath remains a compatibility
657
- alias. Both are descriptor/mock-only and do not call live providers. See
648
+ `ai-capability-framework/providers/conformance` subpath remains a compatibility alias.
649
+ Both are descriptor/mock-only and do not call live providers. See
658
650
  [cross-provider conformance](providers/conformance.md).
659
651
 
660
652
  CLI commands:
@@ -665,101 +657,94 @@ aicf conformance matrix examples --format markdown
665
657
  aicf providers conformance examples --format text
666
658
  ```
667
659
 
668
- API changes for manifests using `schema_version: "0.1"` should be reflected in
669
- the changelog and release notes before a release tag is created.
660
+ API changes for manifests using `schema_version: "0.1"` should be reflected in the
661
+ changelog and release notes before a release tag is created.
670
662
 
671
663
  ## Anthropic Runtime Subpath APIs
672
664
 
673
- - `buildAnthropicTools(input)` exports Claude client tool definitions from a
674
- routed AICF capability slice.
675
- - `parseAnthropicToolUseBlocks(toolset, blocks)` maps Claude `tool_use` blocks
676
- back to AICF provider tool calls through the generated binding map.
677
- - `buildAnthropicToolResultMessage(results)` formats model-safe AICF provider
678
- results as Claude `tool_result` user messages.
679
- - `createAnthropicClientFromSdk(client)` wraps a compatible host-owned
680
- Anthropic SDK client.
665
+ - `buildAnthropicTools(input)` exports Claude client tool definitions from a routed AICF
666
+ capability slice.
667
+ - `parseAnthropicToolUseBlocks(toolset, blocks)` maps Claude `tool_use` blocks back to
668
+ AICF provider tool calls through the generated binding map.
669
+ - `buildAnthropicToolResultMessage(results)` formats model-safe AICF provider results as
670
+ Claude `tool_result` user messages.
671
+ - `createAnthropicClientFromSdk(client)` wraps a compatible host-owned Anthropic SDK
672
+ client.
681
673
  - `createDefaultAnthropicMessagesClient(options?)` dynamically imports optional
682
674
  `@anthropic-ai/sdk`.
683
- - `runAnthropicMessages(request)` runs a bounded Claude Messages loop and
684
- delegates read/prepare execution to `AicfToolExecutor`.
675
+ - `runAnthropicMessages(request)` runs a bounded Claude Messages loop and delegates
676
+ read/prepare execution to `AicfToolExecutor`.
685
677
 
686
- The Anthropic runtime is isolated under
687
- `ai-capability-framework/providers/anthropic`; root, runtime, OpenAI, and shared
688
- provider imports do not require the Anthropic SDK. See
678
+ The Anthropic runtime is isolated under `ai-capability-framework/providers/anthropic`;
679
+ root, runtime, OpenAI, and shared provider imports do not require the Anthropic SDK. See
689
680
  [Anthropic runtime](anthropic-runtime.md).
690
681
 
691
682
  ## Gemini Runtime Subpath APIs
692
683
 
693
- - `buildGeminiFunctionDeclarations(input)` exports Gemini function declarations
694
- from a routed AICF capability slice.
695
- - `parseGeminiFunctionCalls(declarationSet, calls)` maps Gemini
696
- `functionCall` objects back to AICF provider tool calls through the generated
697
- binding map.
698
- - `buildGeminiFunctionResponseParts(results)` formats model-safe AICF provider
699
- results as Gemini `functionResponse` parts.
700
- - `createGeminiClientFromSdk(client)` wraps a compatible host-owned Google
701
- GenAI SDK client.
702
- - `createDefaultGeminiClient(options?)` dynamically imports optional
703
- `@google/genai`.
704
- - `runGeminiGenerateContent(request)` runs a bounded GenerateContent
705
- function-calling loop and delegates read/prepare execution to
706
- `AicfToolExecutor`.
707
-
708
- The Gemini runtime is isolated under
709
- `ai-capability-framework/providers/gemini`; root, runtime, OpenAI, Anthropic,
710
- and shared provider imports do not require the Google GenAI SDK. See
711
- [Gemini runtime](gemini-runtime.md).
684
+ - `buildGeminiFunctionDeclarations(input)` exports Gemini function declarations from a
685
+ routed AICF capability slice.
686
+ - `parseGeminiFunctionCalls(declarationSet, calls)` maps Gemini `functionCall` objects
687
+ back to AICF provider tool calls through the generated binding map.
688
+ - `buildGeminiFunctionResponseParts(results)` formats model-safe AICF provider results
689
+ as Gemini `functionResponse` parts.
690
+ - `createGeminiClientFromSdk(client)` wraps a compatible host-owned Google GenAI SDK
691
+ client.
692
+ - `createDefaultGeminiClient(options?)` dynamically imports optional `@google/genai`.
693
+ - `runGeminiGenerateContent(request)` runs a bounded GenerateContent function-calling
694
+ loop and delegates read/prepare execution to `AicfToolExecutor`.
695
+
696
+ The Gemini runtime is isolated under `ai-capability-framework/providers/gemini`; root,
697
+ runtime, OpenAI, Anthropic, and shared provider imports do not require the Google GenAI
698
+ SDK. See [Gemini runtime](gemini-runtime.md).
712
699
 
713
700
  ## AI SDK Bridge Subpath APIs
714
701
 
715
- - `buildAiSdkTools(request)` exports Vercel AI SDK tools from a routed AICF
716
- capability slice.
717
- - `createAiSdkToolFactoriesFromSdk(sdk)` wraps compatible host-owned AI SDK
718
- `tool`, `jsonSchema`, and optional `stepCountIs` factories.
702
+ - `buildAiSdkTools(request)` exports Vercel AI SDK tools from a routed AICF capability
703
+ slice.
704
+ - `createAiSdkToolFactoriesFromSdk(sdk)` wraps compatible host-owned AI SDK `tool`,
705
+ `jsonSchema`, and optional `stepCountIs` factories.
719
706
  - `createDefaultAiSdkToolFactories()` dynamically imports optional `ai`.
720
- - `runAiSdkGenerateText(request)` calls a host-supplied `generateText` function
721
- with AICF-backed tools and returns a safe summary.
707
+ - `runAiSdkGenerateText(request)` calls a host-supplied `generateText` function with
708
+ AICF-backed tools and returns a safe summary.
722
709
  - `runAiSdkStreamText(request)` calls a host-supplied `streamText` function with
723
710
  AICF-backed tools and does not consume or log raw stream chunks.
724
711
 
725
- The AI SDK bridge is isolated under
726
- `ai-capability-framework/providers/ai-sdk`; root, runtime, OpenAI, Anthropic,
727
- Gemini, and shared provider imports do not require the `ai` package or any AI
728
- SDK provider package. See [AI SDK bridge](ai-sdk-runtime.md).
712
+ The AI SDK bridge is isolated under `ai-capability-framework/providers/ai-sdk`; root,
713
+ runtime, OpenAI, Anthropic, Gemini, and shared provider imports do not require the `ai`
714
+ package or any AI SDK provider package. See [AI SDK bridge](ai-sdk-runtime.md).
729
715
 
730
716
  ## LangChain Runtime Subpath APIs
731
717
 
732
- - `buildLangChainTools(request)` exports LangChain tool objects from a routed
733
- AICF capability slice.
734
- - `buildLangGraphToolNode(request)` wraps the generated tools in a
735
- host-supplied LangGraph `ToolNode` constructor.
736
- - `createLangChainToolFactoryFromSdk(sdk)` wraps a compatible host-owned
737
- LangChain tool factory.
718
+ - `buildLangChainTools(request)` exports LangChain tool objects from a routed AICF
719
+ capability slice.
720
+ - `buildLangGraphToolNode(request)` wraps the generated tools in a host-supplied
721
+ LangGraph `ToolNode` constructor.
722
+ - `createLangChainToolFactoryFromSdk(sdk)` wraps a compatible host-owned LangChain tool
723
+ factory.
738
724
  - `createDefaultLangChainToolFactory()` dynamically imports optional
739
725
  `@langchain/core/tools`.
740
- - `createLangChainZodSchemaFactory(zod)` converts the supported AICF JSON
741
- Schema object subset into Zod schemas for LangChain tools.
726
+ - `createLangChainZodSchemaFactory(zod)` converts the supported AICF JSON Schema object
727
+ subset into Zod schemas for LangChain tools.
742
728
 
743
- The LangChain bridge is isolated under
744
- `ai-capability-framework/providers/langchain`; root, runtime, OpenAI, Anthropic,
745
- Gemini, AI SDK, and shared provider imports do not require LangChain or
746
- provider-specific LangChain integrations. See
729
+ The LangChain bridge is isolated under `ai-capability-framework/providers/langchain`;
730
+ root, runtime, OpenAI, Anthropic, Gemini, AI SDK, and shared provider imports do not
731
+ require LangChain or provider-specific LangChain integrations. See
747
732
  [LangChain bridge](langchain-runtime.md).
748
733
 
749
734
  ## Semantic Kernel Compatibility Subpath APIs
750
735
 
751
- - `exportSemanticKernelOpenApiPlugin(request)` returns an OpenAPI 3.1 document
752
- for a host-owned AICF executor route.
753
- - `exportSemanticKernelPluginMetadata(request)` returns plugin metadata with
754
- MCP recommendation, OpenAPI import hints, and function summaries.
755
- - `getSemanticKernelMcpIntegrationGuide()` returns public-safe integration
756
- guidance for Semantic Kernel MCP plugin hosts.
736
+ - `exportSemanticKernelOpenApiPlugin(request)` returns an OpenAPI 3.1 document for a
737
+ host-owned AICF executor route.
738
+ - `exportSemanticKernelPluginMetadata(request)` returns plugin metadata with MCP
739
+ recommendation, OpenAPI import hints, and function summaries.
740
+ - `getSemanticKernelMcpIntegrationGuide()` returns public-safe integration guidance for
741
+ Semantic Kernel MCP plugin hosts.
757
742
 
758
743
  The Semantic Kernel subpath is isolated under
759
744
  `ai-capability-framework/providers/semantic-kernel`. It has no Semantic Kernel
760
- dependency, does not call models, does not execute handlers, and does not expose
761
- commit capabilities. MCP is the preferred path when available; OpenAPI export is
762
- the fallback for hosts that already expose an AICF executor HTTP route. See
745
+ dependency, does not call models, does not execute handlers, and does not expose commit
746
+ capabilities. MCP is the preferred path when available; OpenAPI export is the fallback
747
+ for hosts that already expose an AICF executor HTTP route. See
763
748
  [Semantic Kernel compatibility](semantic-kernel-runtime.md).
764
749
 
765
750
  ## Evidence Subpath APIs
@@ -775,14 +760,14 @@ import {
775
760
 
776
761
  - `createEvidencePack(input)` summarizes manifests and optional supplied
777
762
  governance/eval/security/conformance/control-plane reports.
778
- - `exportEvidencePack(input, format)` returns JSON or Markdown content plus the
779
- pack object.
763
+ - `exportEvidencePack(input, format)` returns JSON or Markdown content plus the pack
764
+ object.
780
765
  - `formatEvidencePackMarkdown(pack)` renders review-friendly Markdown.
781
766
  - `validateEvidencePack(pack)` checks the public evidence schema.
782
767
 
783
- Evidence packs are review summaries with required disclaimers and explicit
784
- coverage gaps. They are not certification, audit opinions, legal opinions,
785
- security guarantees, or compliance attestations.
768
+ Evidence packs are review summaries with required disclaimers and explicit coverage
769
+ gaps. They are not certification, audit opinions, legal opinions, security guarantees,
770
+ or compliance attestations.
786
771
 
787
772
  ## Schema Subpaths
788
773
 
@@ -792,8 +777,8 @@ The package exports stable schema subpaths, including:
792
777
  import capabilitySchema from "ai-capability-framework/schemas/capability-manifest.schema.json";
793
778
  ```
794
779
 
795
- Bundlers and runtimes may require JSON import assertions. The same files are
796
- also included under `schemas/` in the npm package.
780
+ Bundlers and runtimes may require JSON import assertions. The same files are also
781
+ included under `schemas/` in the npm package.
797
782
 
798
783
  ## CLI
799
784
 
@@ -809,7 +794,7 @@ aicf mcp-tools <path> --context <context.json> [--include-restricted]
809
794
  aicf langchain-tools <path> --context <context.json> [--include-restricted]
810
795
  aicf semantic-kernel-functions <path> --context <context.json> [--include-restricted]
811
796
  aicf eval <path> --results <results.json> [--format text|json]
812
- aicf eval-live <path> --cases <cases.json> --model <model> [--format text|json]
797
+ aicf eval-live <path> --cases <cases.json> --provider <provider> --model <model> [--format text|json]
813
798
  aicf export promptfoo <path> --out <dir> [--provider <provider>] [--include-red-team-defaults]
814
799
  aicf security list-packs [--format text|json]
815
800
  aicf security generate <path> --pack <id> --out <file> [--format yaml|json]
@@ -818,23 +803,21 @@ aicf gate <manifest-root> --env <name> [--config <file>] [--baseline <path>] [--
818
803
  aicf evidence export <manifest-root> --out <file> [--format json|markdown]
819
804
  ```
820
805
 
821
- Denied decisions exit `0` when the decision was evaluated successfully. Eval
822
- runs exit `0` only when all targeted evals pass.
806
+ Denied decisions exit `0` when the decision was evaluated successfully. Eval runs exit
807
+ `0` only when all targeted evals pass.
823
808
 
824
809
  Adapter commands also accept `--include-deprecated`, `--include-draft`, and
825
- `--include-experimental`. `--include-disabled-for-tests` is intentionally
826
- reserved for test contexts.
810
+ `--include-experimental`. `--include-disabled-for-tests` is intentionally reserved for
811
+ test contexts.
827
812
 
828
813
  ## Versioning
829
814
 
830
- The package version uses semver. Manifest schemas use `schema_version: "1.0"`.
831
- The 1.0 validator intentionally does not support the pre-release 0.1 schema.
832
- Changes to TypeScript exports, CLI output, or schema semantics must be covered
833
- by tests before release. Public API or schema changes must also update
834
- `CHANGELOG.md`, the migration notes when relevant, and the GitHub release notes
835
- checklist in `docs/release.md`.
815
+ The package version uses semver. Manifest schemas use `schema_version: "1.0"`. The 1.0
816
+ validator intentionally does not support the pre-release 0.1 schema. Changes to
817
+ TypeScript exports, CLI output, or schema semantics must be covered by tests before
818
+ release. Public API or schema changes must also update `CHANGELOG.md`, the migration
819
+ notes when relevant, and the GitHub release notes checklist in `docs/release.md`.
836
820
 
837
821
  Final release readiness uses repository scripts rather than TypeScript APIs:
838
- `npm run check`, `npm run check:public`, and `npm run check:certification`.
839
- The final gate is documented in
840
- [Final v1 certification](public-framework/v1-certification.md).
822
+ `npm run check`, `npm run check:public`, and `npm run check:certification`. The final
823
+ gate is documented in [Final v1 certification](public-framework/v1-certification.md).