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.
- package/CHANGELOG.md +97 -103
- package/CODE_OF_CONDUCT.md +11 -13
- package/CONTRIBUTING.md +40 -43
- package/GOVERNANCE.md +34 -35
- package/README.md +99 -63
- package/ROADMAP.md +12 -12
- package/SECURITY.md +15 -15
- package/dist/audit/ledger.d.ts.map +1 -1
- package/dist/audit/ledger.js +2 -1
- package/dist/audit/records.d.ts.map +1 -1
- package/dist/audit/records.js +2 -1
- package/dist/audit/types.d.ts +4 -1
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/aws/dynamodb-stores.d.ts +2 -7
- package/dist/aws/dynamodb-stores.d.ts.map +1 -1
- package/dist/aws/dynamodb-stores.js +56 -5
- package/dist/aws/testing.d.ts.map +1 -1
- package/dist/aws/testing.js +9 -0
- package/dist/cli.d.ts +6 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +77 -7
- package/dist/evals-live/index.d.ts +2 -2
- package/dist/evals-live/index.d.ts.map +1 -1
- package/dist/evals-live/index.js +1 -1
- package/dist/evals-live/live-eval-runner.d.ts +49 -1
- package/dist/evals-live/live-eval-runner.d.ts.map +1 -1
- package/dist/evals-live/live-eval-runner.js +246 -4
- package/dist/evals-live/types.d.ts +62 -9
- package/dist/evals-live/types.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/runtime/actions.d.ts +2 -0
- package/dist/runtime/actions.d.ts.map +1 -1
- package/dist/runtime/actions.js +200 -55
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/stores.d.ts +2 -7
- package/dist/runtime/stores.d.ts.map +1 -1
- package/dist/runtime/stores.js +12 -0
- package/dist/runtime/types.d.ts +25 -6
- package/dist/runtime/types.d.ts.map +1 -1
- package/docs/action-lifecycle.md +38 -32
- package/docs/adapter-roadmap.md +51 -49
- package/docs/adapters.md +14 -15
- package/docs/ai-sdk-runtime.md +36 -39
- package/docs/anthropic-runtime.md +29 -32
- package/docs/api/public-api-policy.md +59 -0
- package/docs/api.md +354 -371
- package/docs/architecture/current-state.md +28 -31
- package/docs/audit/index.md +29 -29
- package/docs/aws/cloudwatch-telemetry.md +5 -7
- package/docs/aws/dynamodb-single-table.md +8 -9
- package/docs/aws/kms-redaction.md +5 -6
- package/docs/aws/overview.md +5 -5
- package/docs/aws/production-reference.md +13 -14
- package/docs/aws/step-functions-approval.md +7 -9
- package/docs/aws-runtime.md +24 -25
- package/docs/capability-manifests.md +17 -21
- package/docs/control-plane/overview.md +2 -2
- package/docs/control-plane.md +24 -27
- package/docs/controls/index.md +19 -22
- package/docs/core/capability-manifests.md +4 -5
- package/docs/core/entity-manifests.md +5 -5
- package/docs/eval-runner.md +29 -31
- package/docs/evalops.md +13 -14
- package/docs/evals/golden-tests.md +4 -5
- package/docs/evals/overview.md +3 -3
- package/docs/evals/replay-and-trace-to-golden.md +19 -20
- package/docs/evals.md +19 -20
- package/docs/evidence.md +22 -23
- package/docs/gemini-runtime.md +31 -33
- package/docs/getting-started/anthropic-quickstart.md +61 -0
- package/docs/getting-started/concepts.md +9 -10
- package/docs/getting-started/gemini-quickstart.md +62 -0
- package/docs/getting-started/installation.md +3 -3
- package/docs/getting-started/openai-quickstart.md +61 -0
- package/docs/getting-started/provider-neutral-quickstart.md +106 -0
- package/docs/getting-started/quickstart.md +2 -2
- package/docs/getting-started.md +23 -20
- package/docs/glossary.md +31 -48
- package/docs/governance/gate.md +28 -30
- package/docs/governance/impact-and-compatibility.md +2 -3
- package/docs/governance/index.md +53 -54
- package/docs/governance/lifecycle.md +4 -5
- package/docs/governance/overview.md +2 -3
- package/docs/governance/risk-compiler.md +4 -5
- package/docs/host-responsibilities.md +6 -8
- package/docs/implementation-notes/baseline-gaps.md +15 -18
- package/docs/index.md +21 -6
- package/docs/interoperability.md +9 -9
- package/docs/langchain-runtime.md +27 -31
- package/docs/live-evals.md +68 -32
- package/docs/mcp-server-runtime.md +36 -40
- package/docs/memory.md +35 -36
- package/docs/migration-0.1-to-1.0.md +14 -9
- package/docs/observability/overview.md +2 -3
- package/docs/observability-runtime.md +35 -39
- package/docs/openai-responses.md +36 -37
- package/docs/openai-runtime.md +41 -46
- package/docs/openai-walkthrough.md +24 -28
- package/docs/policy-broker.md +9 -10
- package/docs/provenance.md +30 -29
- package/docs/providers/anthropic.md +5 -5
- package/docs/providers/choose-a-runtime.md +37 -0
- package/docs/providers/conformance.md +14 -15
- package/docs/providers/gemini.md +5 -5
- package/docs/providers/mcp.md +2 -3
- package/docs/providers/openai.md +2 -2
- package/docs/providers/semantic-kernel.md +2 -2
- package/docs/providers.md +43 -38
- package/docs/public/license-exceptions.md +187 -0
- package/docs/public/npm-release-preflight.md +112 -0
- package/docs/public-framework/compatibility-policy.md +12 -13
- package/docs/public-framework/deprecation-policy.md +8 -8
- package/docs/public-framework/final-certification-matrix.md +104 -0
- package/docs/public-framework/license-decision.md +20 -0
- package/docs/public-framework/release-process.md +46 -16
- package/docs/public-framework/security-disclosure.md +4 -5
- package/docs/public-framework/v1-certification.md +102 -15
- package/docs/release.md +200 -122
- package/docs/runtime/action-lifecycle.md +3 -3
- package/docs/runtime/policy-broker.md +4 -4
- package/docs/runtime/runtime-overview.md +4 -5
- package/docs/runtime/tool-result-envelope.md +7 -7
- package/docs/runtime.md +90 -93
- package/docs/security/overview.md +4 -4
- package/docs/security/security-packs.md +24 -26
- package/docs/security/trust-taint-redaction.md +42 -47
- package/docs/semantic-kernel-runtime.md +35 -37
- package/docs/spec.md +95 -101
- package/docs/start-here.md +18 -20
- package/examples/01-basic-read-capability/README.md +3 -4
- package/examples/02-prepare-approve-commit/README.md +6 -6
- package/examples/03-multi-provider-tools/README.md +2 -2
- package/examples/04-mcp-server/README.md +4 -5
- package/examples/05-langchain-langgraph-bridge/README.md +4 -5
- package/examples/06-vercel-ai-sdk-bridge/README.md +5 -7
- package/examples/07-policy-broker-custom-auth/README.md +4 -4
- package/examples/08-aws-step-functions-approval/README.md +4 -5
- package/examples/09-security-packs-promptfoo/README.md +4 -4
- package/examples/10-trace-to-golden/README.md +2 -2
- package/examples/11-control-plane/README.md +4 -5
- package/examples/aws/README.md +5 -8
- package/examples/control-plane/README.md +8 -9
- package/examples/control-plane/fixtures/control-plane.seed.json +8 -32
- package/examples/control-plane/public/app.js +57 -18
- package/examples/control-plane/public/index.html +15 -6
- package/examples/control-plane/server.mjs +15 -3
- package/examples/eval-results/public.results.passing.json +6 -21
- package/examples/providers/ai-sdk-next/README.md +11 -8
- package/examples/providers/anthropic-claude/README.md +5 -6
- package/examples/providers/gemini/README.md +6 -6
- package/examples/providers/langchain-agent/README.md +3 -4
- package/examples/providers/langgraph-tool-node/README.md +7 -7
- package/examples/providers/mcp/README.md +8 -8
- package/examples/providers/provider-conformance/README.md +3 -3
- package/examples/providers/semantic-kernel-mcp/README.md +6 -6
- package/examples/providers/semantic-kernel-openapi/README.md +6 -7
- package/examples/runtime-support-billing/README.md +8 -9
- package/examples/runtime-support-billing/support-billing-runtime.mjs +8 -4
- package/examples/scheduling/capabilities/scheduling.availability.get.yaml +2 -2
- package/examples/scheduling/capabilities/scheduling.invite.prepare.yaml +2 -2
- package/examples/scheduling/capabilities/scheduling.invite.send.yaml +2 -2
- package/examples/scheduling/entities/AvailabilitySlot.yaml +2 -2
- package/examples/scheduling/entities/MeetingInvite.yaml +2 -2
- package/examples/scheduling/evals/scheduling.invite.prepare.valid.yaml +3 -1
- package/examples/semantic-kernel-mcp/README.md +11 -12
- package/examples/semantic-kernel-openapi/README.md +8 -8
- package/examples/support/capabilities/support.refund.commit_case.yaml +3 -3
- package/examples/support/capabilities/support.refund.prepare_case.yaml +2 -2
- package/examples/support/capabilities/support.ticket.get.yaml +2 -2
- package/examples/support/entities/Ticket.yaml +0 -1
- package/examples/support/eval-results/support.results.passing.json +3 -12
- package/examples/support/evals/support.refund.prepare_case.approval_required.yaml +3 -1
- package/examples/support/evals/support.refund.prepare_case.valid.yaml +3 -2
- package/examples/support/memory/support.agent.preferences.json +2 -6
- package/examples/support/openai/context.support_agent.json +1 -4
- package/examples/support/provenance/support.refund.summary.provenance.json +2 -6
- package/examples/support/replay/support.refund.approval_required.trace.json +4 -14
- package/package.json +22 -5
- package/schemas/audit/action-record.schema.json +4 -1
- package/schemas/aws/approval-task.schema.json +8 -1
- package/schemas/conformance/conformance-case.schema.json +18 -2
- package/schemas/conformance/conformance-report.schema.json +17 -2
- package/schemas/conformance/provider-target-matrix.schema.json +35 -4
- package/schemas/controls/control-decision.schema.json +7 -1
- package/schemas/eval-case.schema.json +8 -1
- package/schemas/eval-result.schema.json +8 -1
- package/schemas/evidence/evidence-pack.schema.json +34 -5
- package/schemas/governance/compatibility-diff.schema.json +8 -1
- package/schemas/governance/lifecycle-transition.schema.json +10 -1
- package/schemas/governance/risk-compilation-result.schema.json +9 -1
- package/schemas/provenance/generated-content-provenance.schema.json +3 -1
- package/schemas/replay/replay-result.schema.json +16 -2
- package/schemas/replay/replay-trace.schema.json +11 -2
- package/schemas/security/context-segment.schema.json +21 -12
- package/schemas/security/redaction-policy.schema.json +4 -1
- package/schemas/security-packs/coverage-report.schema.json +17 -2
- package/schemas/security-packs/security-case-suite.schema.json +11 -1
- package/schemas/tool-result-envelope.schema.json +9 -1
- package/security-packs/approval_bypass.yaml +12 -2
- package/security-packs/capability_spoofing.yaml +17 -3
- package/security-packs/cost_amplification.yaml +21 -4
- package/security-packs/cross_tenant_access.yaml +16 -3
- package/security-packs/insecure_output_rendering.yaml +15 -4
- package/security-packs/mcp_tool_abuse.yaml +17 -3
- package/security-packs/memory_scope_violation.yaml +19 -4
- package/security-packs/prompt_injection_direct.yaml +19 -4
- package/security-packs/prompt_injection_indirect.yaml +18 -3
- package/security-packs/provider_payload_exposure.yaml +26 -4
- package/security-packs/retrieval_poisoning.yaml +5 -2
- package/security-packs/schema_confusion.yaml +17 -3
- package/security-packs/sensitive_data_disclosure.yaml +22 -5
- package/security-packs/tool_exfiltration.yaml +20 -4
- package/security-packs/tool_result_poisoning.yaml +19 -4
- 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
|
|
4
|
-
public npm release-candidate material, and the exported surface is treated as
|
|
5
|
-
|
|
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
|
-
|
|
9
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
66
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
98
|
-
|
|
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
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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
|
-
|
|
228
|
-
- `validateManifests(manifests, options)` validates schemas, duplicate IDs, and
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
252
|
-
|
|
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
|
-
|
|
258
|
-
|
|
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
|
-
|
|
266
|
-
- `parseOpenAIResponsesToolCall(toolset, call)` maps a Responses
|
|
267
|
-
|
|
268
|
-
- `toOpenAIResponsesToolName(capabilityId, options)` converts an AICF capability
|
|
269
|
-
|
|
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
|
-
|
|
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
|
-
|
|
278
|
-
- `buildAiSdkTools(registry, options)` exports a Vercel AI SDK-compatible tool
|
|
279
|
-
|
|
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
|
-
|
|
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
|
-
|
|
288
|
-
- `parseSemanticKernelFunctionCall(functionSet, functionCall)` parses Semantic
|
|
289
|
-
|
|
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
|
-
|
|
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
|
-
|
|
296
|
-
|
|
297
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
335
|
-
|
|
336
|
-
- `formatCapabilitySliceForModel(input)` renders compact model-facing
|
|
337
|
-
|
|
338
|
-
- `DefaultPolicyBroker` combines Core decisions with runtime context checks and
|
|
339
|
-
|
|
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
|
-
|
|
343
|
-
- `AicfActionLifecycleManager` prepares actions, records approvals, and commits
|
|
344
|
-
|
|
345
|
-
- `InMemoryPreparedActionStore`, `InMemoryApprovalStore`,
|
|
346
|
-
|
|
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
|
-
|
|
354
|
-
|
|
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
|
-
|
|
375
|
-
- `evaluateLifecycleTransition(registry, request, context?)` returns an
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
- `compareCapabilityVersions(before, after)` classifies manifest changes as
|
|
379
|
-
|
|
380
|
-
- `analyzeCapabilityImpact(registry, capabilityId, options?)` reports directly
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
- `
|
|
412
|
-
|
|
413
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
468
|
-
- `selectGovernedMemory(records, context)` filters and deterministically sorts
|
|
469
|
-
|
|
470
|
-
- `memoryRecordToContextSegment(record)` returns a security `ContextSegment`
|
|
471
|
-
|
|
472
|
-
- `memoryRecordToRuntimeContextItem(record)` returns a model-context item for a
|
|
473
|
-
|
|
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
|
-
|
|
494
|
-
- `evaluateKillSwitches`, `evaluateCircuitBreakers`, and `evaluateBudget` are
|
|
495
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
510
|
-
- `extractOpenAIResponsesFunctionCalls(response)` extracts Responses
|
|
511
|
-
|
|
512
|
-
- `buildOpenAIFunctionCallOutput(call, envelope, options?)` serializes a
|
|
513
|
-
|
|
514
|
-
- `buildAgentsSdkTools(options)` builds executor-backed OpenAI Agents SDK
|
|
515
|
-
|
|
516
|
-
- `createDefaultAgentsSdkBridgeFactory(options?)` dynamically imports the
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
The runner builds context through `AicfContextBuilder`, routes capabilities
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
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
|
-
|
|
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
|
|
541
|
-
|
|
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
|
-
|
|
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
|
-
|
|
551
|
-
|
|
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
|
-
|
|
555
|
-
[
|
|
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
|
-
|
|
563
|
-
|
|
564
|
-
- `DynamoDbPreparedActionStore`, `DynamoDbApprovalStore`,
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
- `DynamoDbPolicyDecisionStore`, `DynamoDbActionStore`,
|
|
568
|
-
|
|
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
|
-
|
|
573
|
-
- `StepFunctionsApprovalAdapter` starts and resumes host-owned approval
|
|
574
|
-
|
|
575
|
-
- `EventBridgeRuntimeEventPublisher` publishes sanitized AICF trace or audit
|
|
576
|
-
|
|
577
|
-
- `CloudWatchTelemetryPublisher` and `KmsRedactionProvider` provide sanitized
|
|
578
|
-
|
|
579
|
-
- `FakeDynamoDbDocumentClient`, `FakeStepFunctionsClient`, and
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
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
|
-
|
|
592
|
-
- `parseMcpProviderToolCall(toolset, call)` maps MCP `tools/call` requests back
|
|
593
|
-
|
|
594
|
-
- `toMcpProviderToolName(capabilityId, options?)` creates deterministic
|
|
595
|
-
|
|
596
|
-
-
|
|
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
|
-
|
|
601
|
-
|
|
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
|
-
|
|
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
|
-
|
|
619
|
-
- `createProviderToolNameMap(input)` creates deterministic provider-safe tool
|
|
620
|
-
|
|
621
|
-
- `normalizeProviderToolSchema(schema)` validates and clones callable provider
|
|
622
|
-
|
|
623
|
-
- `buildProviderToolDescriptor(input)` creates provider-neutral descriptor
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
643
|
-
- `runConformanceSuite(input)` runs deterministic mock conformance cases and
|
|
644
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
675
|
-
- `parseAnthropicToolUseBlocks(toolset, blocks)` maps Claude `tool_use` blocks
|
|
676
|
-
|
|
677
|
-
- `buildAnthropicToolResultMessage(results)` formats model-safe AICF provider
|
|
678
|
-
|
|
679
|
-
- `createAnthropicClientFromSdk(client)` wraps a compatible host-owned
|
|
680
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
695
|
-
- `parseGeminiFunctionCalls(declarationSet, calls)` maps Gemini
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
- `
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
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
|
-
|
|
717
|
-
- `createAiSdkToolFactoriesFromSdk(sdk)` wraps compatible host-owned AI SDK
|
|
718
|
-
`
|
|
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
|
-
|
|
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
|
-
|
|
727
|
-
|
|
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
|
-
|
|
734
|
-
- `buildLangGraphToolNode(request)` wraps the generated tools in a
|
|
735
|
-
|
|
736
|
-
- `createLangChainToolFactoryFromSdk(sdk)` wraps a compatible host-owned
|
|
737
|
-
|
|
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
|
-
|
|
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
|
-
|
|
745
|
-
|
|
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
|
-
|
|
753
|
-
- `exportSemanticKernelPluginMetadata(request)` returns plugin metadata with
|
|
754
|
-
|
|
755
|
-
- `getSemanticKernelMcpIntegrationGuide()` returns public-safe integration
|
|
756
|
-
|
|
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
|
-
|
|
762
|
-
|
|
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
|
-
|
|
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
|
-
|
|
785
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
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
|
-
|
|
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).
|