agentrust-telemetry 0.1.0a3__tar.gz
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.
- agentrust_telemetry-0.1.0a3/CHANGELOG.md +57 -0
- agentrust_telemetry-0.1.0a3/CODE_OF_CONDUCT.md +7 -0
- agentrust_telemetry-0.1.0a3/CONTRIBUTING.md +12 -0
- agentrust_telemetry-0.1.0a3/GOVERNANCE.md +17 -0
- agentrust_telemetry-0.1.0a3/LICENSE +21 -0
- agentrust_telemetry-0.1.0a3/LIMITATIONS.md +25 -0
- agentrust_telemetry-0.1.0a3/MAINTAINERS.md +7 -0
- agentrust_telemetry-0.1.0a3/MANIFEST.in +20 -0
- agentrust_telemetry-0.1.0a3/NOTICE +4 -0
- agentrust_telemetry-0.1.0a3/PKG-INFO +180 -0
- agentrust_telemetry-0.1.0a3/PRIVACY.md +17 -0
- agentrust_telemetry-0.1.0a3/README.md +146 -0
- agentrust_telemetry-0.1.0a3/RELEASING.md +59 -0
- agentrust_telemetry-0.1.0a3/REPOSITORY-SETUP.md +42 -0
- agentrust_telemetry-0.1.0a3/ROADMAP.md +24 -0
- agentrust_telemetry-0.1.0a3/SECURITY.md +35 -0
- agentrust_telemetry-0.1.0a3/SUPPORT.md +9 -0
- agentrust_telemetry-0.1.0a3/VERSIONING.md +17 -0
- agentrust_telemetry-0.1.0a3/compatibility/golden/event-factory.json +1 -0
- agentrust_telemetry-0.1.0a3/compatibility/golden/evidence-chain.json +18 -0
- agentrust_telemetry-0.1.0a3/compatibility/golden/usage-rollup.json +13 -0
- agentrust_telemetry-0.1.0a3/compatibility/otel-genai.json +58 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/invalid/action-without-digest.json +16 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/invalid/aggregate-cost-without-rollup.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/invalid/model-call-with-rollup.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/invalid/numeric-timestamp.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/invalid/raw-content.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/invalid/usage-without-measurement.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/invalid/zero-trace-id.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/valid/action.json +28 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/valid/approval.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/valid/data-flow.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/valid/evidence.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/valid/policy-decision.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/fixtures/valid/usage.json +1 -0
- agentrust_telemetry-0.1.0a3/conformance/requirements.txt +1 -0
- agentrust_telemetry-0.1.0a3/conformance/runner/validate.py +144 -0
- agentrust_telemetry-0.1.0a3/docs/action-events.md +19 -0
- agentrust_telemetry-0.1.0a3/docs/adapters.md +70 -0
- agentrust_telemetry-0.1.0a3/docs/architecture.md +91 -0
- agentrust_telemetry-0.1.0a3/docs/data-flow-classification.md +22 -0
- agentrust_telemetry-0.1.0a3/docs/evidence-chain.md +29 -0
- agentrust_telemetry-0.1.0a3/docs/otel-genai-compatibility.md +48 -0
- agentrust_telemetry-0.1.0a3/docs/otel-projection.md +79 -0
- agentrust_telemetry-0.1.0a3/docs/trace-finalization.md +32 -0
- agentrust_telemetry-0.1.0a3/docs/usage-attribution.md +17 -0
- agentrust_telemetry-0.1.0a3/examples/governed_workflow.py +287 -0
- agentrust_telemetry-0.1.0a3/examples/manual_governance.py +33 -0
- agentrust_telemetry-0.1.0a3/pyproject.toml +47 -0
- agentrust_telemetry-0.1.0a3/setup.cfg +4 -0
- agentrust_telemetry-0.1.0a3/spec/VERSION +1 -0
- agentrust_telemetry-0.1.0a3/spec/schema/action.schema.json +39 -0
- agentrust_telemetry-0.1.0a3/spec/schema/approval.schema.json +27 -0
- agentrust_telemetry-0.1.0a3/spec/schema/common.schema.json +36 -0
- agentrust_telemetry-0.1.0a3/spec/schema/data-flow.schema.json +46 -0
- agentrust_telemetry-0.1.0a3/spec/schema/envelope.schema.json +21 -0
- agentrust_telemetry-0.1.0a3/spec/schema/evidence.schema.json +20 -0
- agentrust_telemetry-0.1.0a3/spec/schema/policy-decision.schema.json +33 -0
- agentrust_telemetry-0.1.0a3/spec/schema/usage.schema.json +80 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/__init__.py +80 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/__init__.py +28 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/agt.py +207 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/agt_approval.py +235 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/agt_audit.py +177 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/agt_data.py +105 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/base.py +90 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/cedar.py +66 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/adapters/opa.py +102 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/client.py +113 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/context.py +30 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/data_flow.py +112 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/errors.py +26 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/evidence.py +204 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/otel.py +135 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/projection.py +49 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/propagation.py +102 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/py.typed +1 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/action.schema.json +39 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/approval.schema.json +27 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/common.schema.json +36 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/data-flow.schema.json +46 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/envelope.schema.json +21 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/evidence.schema.json +20 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/policy-decision.schema.json +33 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/schemas/usage.schema.json +80 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/trace_adapter.py +263 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/usage.py +190 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry/validation.py +102 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry.egg-info/PKG-INFO +180 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry.egg-info/SOURCES.txt +114 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry.egg-info/dependency_links.txt +1 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry.egg-info/requires.txt +20 -0
- agentrust_telemetry-0.1.0a3/src/agentrust_telemetry.egg-info/top_level.txt +1 -0
- agentrust_telemetry-0.1.0a3/tests/test_adapters.py +213 -0
- agentrust_telemetry-0.1.0a3/tests/test_agt_adapter.py +145 -0
- agentrust_telemetry-0.1.0a3/tests/test_agt_approval.py +203 -0
- agentrust_telemetry-0.1.0a3/tests/test_agt_audit.py +126 -0
- agentrust_telemetry-0.1.0a3/tests/test_conformance.py +61 -0
- agentrust_telemetry-0.1.0a3/tests/test_data_flow.py +146 -0
- agentrust_telemetry-0.1.0a3/tests/test_evidence.py +255 -0
- agentrust_telemetry-0.1.0a3/tests/test_otel_projectors.py +164 -0
- agentrust_telemetry-0.1.0a3/tests/test_propagation.py +86 -0
- agentrust_telemetry-0.1.0a3/tests/test_reference_scenario.py +32 -0
- agentrust_telemetry-0.1.0a3/tests/test_repository_gates.py +169 -0
- agentrust_telemetry-0.1.0a3/tests/test_sdk.py +174 -0
- agentrust_telemetry-0.1.0a3/tests/test_trace_adapter.py +244 -0
- agentrust_telemetry-0.1.0a3/tests/test_trace_adapter_refusals.py +215 -0
- agentrust_telemetry-0.1.0a3/tests/test_usage.py +122 -0
- agentrust_telemetry-0.1.0a3/tools/check_otel_compatibility.py +101 -0
- agentrust_telemetry-0.1.0a3/tools/check_release_tag.py +40 -0
- agentrust_telemetry-0.1.0a3/tools/check_schemas.py +31 -0
- agentrust_telemetry-0.1.0a3/tools/check_typescript_schemas.py +31 -0
- agentrust_telemetry-0.1.0a3/tools/check_versions.py +76 -0
- agentrust_telemetry-0.1.0a3/tools/npm_dist_tag.py +51 -0
- agentrust_telemetry-0.1.0a3/tools/smoke_wheel.py +35 -0
- agentrust_telemetry-0.1.0a3/tools/sync_schemas.py +24 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 0.1.0-alpha.3 - 2026-09-07
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- The Python `EvidenceAccumulator` deadlocked forever if `append` or `seal` was
|
|
10
|
+
called reentrantly on the same thread, for example from inside a
|
|
11
|
+
`durable_append` callback. Both now raise `EvidenceError`, matching the
|
|
12
|
+
TypeScript SDK's existing protection. `snapshot` remains safely callable
|
|
13
|
+
reentrantly.
|
|
14
|
+
- Patch four `fast-uri` advisories in the TypeScript lockfile and stop tag
|
|
15
|
+
interpolation in `release.yml`.
|
|
16
|
+
- `test_trace_adapter_refusals` used a duck-typed signer double, which
|
|
17
|
+
`agentrust-trace` 0.10.0 rejects. It now builds a real `Ed25519PrivateKey`, so
|
|
18
|
+
a clean install of this release runs the full suite against either 0.9 or
|
|
19
|
+
0.10.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Install CI dependencies from hash-pinned lock files, and add `actionlint`
|
|
24
|
+
plus a test-environment guard to the workflow gates.
|
|
25
|
+
|
|
26
|
+
## 0.1.0-alpha.2 - 2026-09-02
|
|
27
|
+
|
|
28
|
+
- Align the wire `spec_version` with `spec/VERSION`; the schema previously
|
|
29
|
+
pinned a const that appeared nowhere in the packaging.
|
|
30
|
+
- Move the schema `$id` off `agentrust.io`, a domain we do not own, to
|
|
31
|
+
`agentrust-io.com`.
|
|
32
|
+
- Derive the npm dist-tag from `spec/VERSION` so a prerelease can never publish
|
|
33
|
+
under `latest`.
|
|
34
|
+
|
|
35
|
+
## 0.1.0-alpha.1 - 2026-08-19
|
|
36
|
+
|
|
37
|
+
- Add TypeScript TRACE finalization through a caller-supplied official codec and
|
|
38
|
+
standardize tool-transcript hashing on RFC 8785 JCS across both SDKs.
|
|
39
|
+
- Add TypeScript metadata-only data-flow primitives plus AGT data-access,
|
|
40
|
+
audit-policy, and completed-action adapters.
|
|
41
|
+
- Enforce the documented no-URL metadata identifier boundary in both SDKs.
|
|
42
|
+
- Add TypeScript action-bound AGT policy, approval-request, and terminal
|
|
43
|
+
approval-resolution adapters with deterministic cross-language linkage.
|
|
44
|
+
- Require every AGT approval binding field to be present before comparing it,
|
|
45
|
+
preventing two absent values from being treated as a valid binding.
|
|
46
|
+
- Add TypeScript OPA, Cedar, and generic AGT policy-decision adapters plus an
|
|
47
|
+
AGT-compatible fail-closed batch sink.
|
|
48
|
+
- Add TypeScript usage/cost construction, coverage-labelled rollups, and
|
|
49
|
+
bounded-cardinality OpenTelemetry metric projection.
|
|
50
|
+
- Add a TypeScript evidence accumulator and adopt RFC 8785 JCS for reproducible
|
|
51
|
+
evidence digests across Python and TypeScript.
|
|
52
|
+
- Encode nanosecond Unix timestamps as canonical decimal strings for exact
|
|
53
|
+
cross-language JSON behavior.
|
|
54
|
+
- Add the pre-alpha TypeScript reference SDK and shared conformance gates.
|
|
55
|
+
|
|
56
|
+
- Initial `0.1.0-alpha.1` event contract and conformance fixtures.
|
|
57
|
+
- Initial Python reference SDK with schema/privacy validation and OTel span-event projection.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Contract changes require:
|
|
4
|
+
|
|
5
|
+
1. a documented semantic reason;
|
|
6
|
+
2. a schema update;
|
|
7
|
+
3. at least one valid fixture;
|
|
8
|
+
4. an invalid or boundary fixture that would catch a plausible defect;
|
|
9
|
+
5. conformance tests;
|
|
10
|
+
6. migration notes for wire-incompatible changes.
|
|
11
|
+
|
|
12
|
+
No attribute may be added without identifying the signal that carries it and how an instrumentor obtains it at runtime. New content-bearing fields require security and privacy review.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Governance
|
|
2
|
+
|
|
3
|
+
AgentTrust Telemetry is governed under the AgentTrust organization. Maintainers approve releases, normative contract changes, security-sensitive changes, and compatibility claims.
|
|
4
|
+
|
|
5
|
+
## Decision process
|
|
6
|
+
|
|
7
|
+
- Routine fixes require maintainer review and passing required checks.
|
|
8
|
+
- Contract changes require an ADR or equivalent design record, valid and invalid fixtures, and conformance coverage.
|
|
9
|
+
- Breaking changes require migration notes and a major contract version change, including during pre-1.0 development when practical.
|
|
10
|
+
- Security and privacy defaults require explicit maintainer approval.
|
|
11
|
+
- Widely applicable telemetry conventions should be proposed upstream to OpenTelemetry rather than permanently duplicated here.
|
|
12
|
+
|
|
13
|
+
Consensus is preferred. If consensus cannot be reached, maintainers record the decision and dissent in the relevant issue or ADR.
|
|
14
|
+
|
|
15
|
+
## Releases
|
|
16
|
+
|
|
17
|
+
Releases are cut from protected `main`, use signed tags where available, and publish provenance and an SBOM. Publishing credentials must use GitHub trusted publishing or another short-lived identity mechanism; long-lived package tokens are prohibited.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AgentTrust contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Limitations
|
|
2
|
+
|
|
3
|
+
Current `0.1.0-alpha.3` limitations:
|
|
4
|
+
|
|
5
|
+
- The contract and SDK are experimental and may change incompatibly.
|
|
6
|
+
- A Python reference SDK and a TypeScript reference SDK (`packages/typescript/`)
|
|
7
|
+
exist, with shared-schema and golden-event parity; no other language binding
|
|
8
|
+
exists yet.
|
|
9
|
+
- OTel span events, Logs, and basic metrics are implemented against caller-owned
|
|
10
|
+
providers; collector/backend interoperability is not yet exercised.
|
|
11
|
+
- No factory helper emits `approval.cancelled`, the `approval.execution_*`
|
|
12
|
+
outcomes, or the `evidence.*` lifecycle events; these event types exist in
|
|
13
|
+
the schema but nothing in either SDK produces them yet.
|
|
14
|
+
- TRACE finalization is software-only and requires explicitly complete evidence
|
|
15
|
+
plus trusted caller configuration.
|
|
16
|
+
- Action telemetry records resolved attempts only; it does not expose in-flight
|
|
17
|
+
lifecycle transitions.
|
|
18
|
+
- Evidence memory mode is not durable. Callback mode defines acknowledgement and
|
|
19
|
+
retry behavior but the adopter owns storage, idempotency, and recovery.
|
|
20
|
+
- Propagation currently supports mutable string mappings; framework-specific HTTP,
|
|
21
|
+
RPC, and messaging carrier adapters are not yet included.
|
|
22
|
+
- The SDK validates declared metadata but cannot prove a producer's policy decision, identity, classification, token count, or cost is truthful.
|
|
23
|
+
- Operational OTel delivery may be sampled or dropped and is not durable audit evidence.
|
|
24
|
+
- The current schemas do not provide a general content-capture profile.
|
|
25
|
+
- Interoperability has been exercised locally with OpenTelemetry Python, not across collectors, backends, or languages.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
include CHANGELOG.md
|
|
2
|
+
include CODE_OF_CONDUCT.md
|
|
3
|
+
include CONTRIBUTING.md
|
|
4
|
+
include GOVERNANCE.md
|
|
5
|
+
include LIMITATIONS.md
|
|
6
|
+
include MAINTAINERS.md
|
|
7
|
+
include NOTICE
|
|
8
|
+
include PRIVACY.md
|
|
9
|
+
include RELEASING.md
|
|
10
|
+
include REPOSITORY-SETUP.md
|
|
11
|
+
include ROADMAP.md
|
|
12
|
+
include SECURITY.md
|
|
13
|
+
include SUPPORT.md
|
|
14
|
+
include VERSIONING.md
|
|
15
|
+
recursive-include compatibility *.json
|
|
16
|
+
recursive-include conformance *.json *.py *.txt
|
|
17
|
+
recursive-include docs *.md
|
|
18
|
+
recursive-include examples *.py
|
|
19
|
+
recursive-include spec VERSION *.json
|
|
20
|
+
recursive-include tools *.py
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agentrust-telemetry
|
|
3
|
+
Version: 0.1.0a3
|
|
4
|
+
Summary: Backend-neutral governance telemetry for AI-agent runtimes
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://github.com/agentrust-io/agentrust-telemetry
|
|
7
|
+
Project-URL: Repository, https://github.com/agentrust-io/agentrust-telemetry
|
|
8
|
+
Project-URL: Issues, https://github.com/agentrust-io/agentrust-telemetry/issues
|
|
9
|
+
Project-URL: Security, https://github.com/agentrust-io/agentrust-telemetry/security/policy
|
|
10
|
+
Keywords: ai-agents,governance,opentelemetry,observability,telemetry
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Typing :: Typed
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
License-File: NOTICE
|
|
22
|
+
Requires-Dist: jsonschema[format]<5,>=4.23
|
|
23
|
+
Requires-Dist: referencing<1,>=0.35
|
|
24
|
+
Requires-Dist: rfc8785<1,>=0.1.4
|
|
25
|
+
Provides-Extra: otel
|
|
26
|
+
Requires-Dist: opentelemetry-api<2,>=1.30; extra == "otel"
|
|
27
|
+
Provides-Extra: trace
|
|
28
|
+
Requires-Dist: agentrust-trace<1,>=0.9; python_version >= "3.11" and extra == "trace"
|
|
29
|
+
Provides-Extra: test
|
|
30
|
+
Requires-Dist: opentelemetry-sdk<2,>=1.30; extra == "test"
|
|
31
|
+
Requires-Dist: agentrust-trace<1,>=0.9; python_version >= "3.11" and extra == "test"
|
|
32
|
+
Requires-Dist: tomli<3,>=2; python_version < "3.11" and extra == "test"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# AgentTrust Telemetry
|
|
36
|
+
|
|
37
|
+
Portable governance telemetry and verifiable evidence for AI-agent runtimes.
|
|
38
|
+
|
|
39
|
+
This repository defines a backend-neutral contract for policy decisions, approval lifecycles, usage, classified data flows, and evidence lifecycle events. It composes with OpenTelemetry; it is not a tracing backend, policy engine, agent framework, or dashboard.
|
|
40
|
+
|
|
41
|
+
> **Status:** alpha contract `0.1.0-alpha.3`. No stable SDK API or compatibility guarantee exists yet.
|
|
42
|
+
|
|
43
|
+
## Why
|
|
44
|
+
|
|
45
|
+
Agent applications can already emit model and tool traces, but governance facts are often trapped in policy-engine logs, approval databases, cost modules, and proprietary dashboards. AgentTrust Telemetry gives those facts one privacy-conscious contract and correlates them with the OpenTelemetry trace already produced by the application.
|
|
46
|
+
|
|
47
|
+
The application keeps its collector, backend, policy engine, workflow framework, and UI.
|
|
48
|
+
|
|
49
|
+
## Event families
|
|
50
|
+
|
|
51
|
+
| Family | Purpose |
|
|
52
|
+
|---|---|
|
|
53
|
+
| Policy decision | Allow, deny, challenge, error, enforcement mode, policy identity and timing |
|
|
54
|
+
| Approval lifecycle | Requested through terminal decision and execution outcome, bound to an action digest |
|
|
55
|
+
| Usage | Per-call/run token and cost facts with explicit cost provenance |
|
|
56
|
+
| Data flow | Classified source-to-destination metadata without payload capture |
|
|
57
|
+
| Action execution | Resolved tool, MCP, A2A, file, HTTP, and database attempts |
|
|
58
|
+
| Evidence lifecycle | Run checkpoints, completeness, and optional TRACE finalization status |
|
|
59
|
+
|
|
60
|
+
## Current contents
|
|
61
|
+
|
|
62
|
+
- JSON Schema 2020-12 event contracts in `spec/schema/`.
|
|
63
|
+
- Valid and invalid conformance fixtures in `conformance/fixtures/`.
|
|
64
|
+
- An independent Python conformance runner in `conformance/runner/`.
|
|
65
|
+
- Contract tests in `tests/`.
|
|
66
|
+
|
|
67
|
+
## Validate fixtures
|
|
68
|
+
|
|
69
|
+
```shell
|
|
70
|
+
python -m pip install -r conformance/requirements.txt
|
|
71
|
+
python conformance/runner/validate.py
|
|
72
|
+
python -m unittest discover -s tests -v
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The validator checks schema conformance and the metadata-only privacy invariant. It does not yet validate OTLP projection or TRACE mapping.
|
|
76
|
+
|
|
77
|
+
## Python reference SDK
|
|
78
|
+
|
|
79
|
+
Install from a checkout while the project is pre-release:
|
|
80
|
+
|
|
81
|
+
```shell
|
|
82
|
+
python -m pip install -e ".[otel]"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from agentrust_telemetry import SchemaValidator, TelemetryClient
|
|
87
|
+
|
|
88
|
+
client = TelemetryClient(SchemaValidator.bundled())
|
|
89
|
+
result = client.emit(normalized_event)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The SDK uses the caller's current OpenTelemetry span when `opentelemetry-api` is installed. It never installs a provider or exporter. A caller may additionally supply a structured-log emitter.
|
|
93
|
+
|
|
94
|
+
For synchronous cross-process agent calls, propagate the caller's W3C context and
|
|
95
|
+
durable AgenTrust identifiers, then use the extracted context as the receiving
|
|
96
|
+
span's remote parent:
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from agentrust_telemetry import extract_context, inject_context
|
|
100
|
+
|
|
101
|
+
carrier = {}
|
|
102
|
+
inject_context(carrier, run_id="run-123", agent_id="planner")
|
|
103
|
+
|
|
104
|
+
remote = extract_context(carrier)
|
|
105
|
+
with tracer.start_as_current_span("worker", context=remote.otel_context):
|
|
106
|
+
event.update(remote.event_fields(agent_id="worker"))
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
For asynchronous queue handoffs, start a new trace with
|
|
110
|
+
`links=[remote.link()]`. This preserves causality without representing queued
|
|
111
|
+
work as a synchronous child span. Propagated metadata is untrusted input and
|
|
112
|
+
does not establish agent identity or authorization.
|
|
113
|
+
|
|
114
|
+
Run the synthetic example:
|
|
115
|
+
|
|
116
|
+
```shell
|
|
117
|
+
python examples/manual_governance.py
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## TypeScript reference SDK
|
|
121
|
+
|
|
122
|
+
The pre-alpha Node package lives in `packages/typescript`:
|
|
123
|
+
|
|
124
|
+
```shell
|
|
125
|
+
cd packages/typescript
|
|
126
|
+
npm ci
|
|
127
|
+
npm run check
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
It validates the same fixtures and privacy profile as Python and preserves
|
|
131
|
+
nanosecond wire timestamps as decimal strings. It does not install an OTel
|
|
132
|
+
provider, exporter, or global propagator.
|
|
133
|
+
|
|
134
|
+
Run the complete AGT-compatible governance, OTel, durable-evidence, and TRACE
|
|
135
|
+
reference workflow (Python 3.11+ with test extras installed):
|
|
136
|
+
|
|
137
|
+
```shell
|
|
138
|
+
python -m pip install -e ".[test]"
|
|
139
|
+
python examples/governed_workflow.py
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Contract principles
|
|
143
|
+
|
|
144
|
+
- `run_id` is durable execution correlation; `trace_id` is an optional W3C operational trace context.
|
|
145
|
+
- Standard OpenTelemetry fields take precedence over AgentTrust extensions.
|
|
146
|
+
- Raw prompts, output, source code, tool arguments/results, credentials, and authorization tokens are prohibited in the metadata-only profile.
|
|
147
|
+
- Operational telemetry can be lossy; evidence completeness must never be overstated.
|
|
148
|
+
- An event reports a fact observed elsewhere. This project does not make authorization decisions.
|
|
149
|
+
|
|
150
|
+
## Architecture and project policy
|
|
151
|
+
|
|
152
|
+
- [Architecture](docs/architecture.md)
|
|
153
|
+
- [OpenTelemetry projection](docs/otel-projection.md)
|
|
154
|
+
- [OpenTelemetry GenAI compatibility](docs/otel-genai-compatibility.md)
|
|
155
|
+
- [Action execution events](docs/action-events.md)
|
|
156
|
+
- [Data-flow classification](docs/data-flow-classification.md)
|
|
157
|
+
- [Usage and cost attribution](docs/usage-attribution.md)
|
|
158
|
+
- [Event factories and policy adapters](docs/adapters.md)
|
|
159
|
+
- [Evidence chain profile](docs/evidence-chain.md)
|
|
160
|
+
- [TRACE finalization](docs/trace-finalization.md)
|
|
161
|
+
- [Privacy](PRIVACY.md)
|
|
162
|
+
- [Limitations](LIMITATIONS.md)
|
|
163
|
+
- [Roadmap](ROADMAP.md)
|
|
164
|
+
- [Security](SECURITY.md)
|
|
165
|
+
- [Governance](GOVERNANCE.md)
|
|
166
|
+
- [Sponsors](SPONSORS.md)
|
|
167
|
+
- [Releasing](RELEASING.md)
|
|
168
|
+
- [Contributing](CONTRIBUTING.md)
|
|
169
|
+
|
|
170
|
+
## What this project does not provide
|
|
171
|
+
|
|
172
|
+
- A telemetry collector, storage service, dashboard, or SaaS backend.
|
|
173
|
+
- Agent/model auto-instrumentation that duplicates OpenTelemetry GenAI or OpenInference.
|
|
174
|
+
- Policy evaluation or human-approval workflow execution.
|
|
175
|
+
- A model pricing catalog.
|
|
176
|
+
- A claim that sampled operational telemetry is durable audit evidence.
|
|
177
|
+
|
|
178
|
+
## License
|
|
179
|
+
|
|
180
|
+
MIT. See `LICENSE`.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Privacy
|
|
2
|
+
|
|
3
|
+
## Default profile
|
|
4
|
+
|
|
5
|
+
`metadata_only` is the mandatory default. The SDK rejects known content-bearing fields and rejects extension attributes unless the application explicitly allowlists each key.
|
|
6
|
+
|
|
7
|
+
The default prohibits prompts, completions, source code, tool arguments/results, credentials, secrets, and authorization tokens. Content digests are identifiers and may still be sensitive; operators must treat them according to their threat model.
|
|
8
|
+
|
|
9
|
+
## Responsibilities
|
|
10
|
+
|
|
11
|
+
Instrumentation authors must supply pseudonymous identities, accurate classification labels, and minimal metadata. Operators remain responsible for collector transport security, access control, retention, deletion, residency, and compliance obligations.
|
|
12
|
+
|
|
13
|
+
The SDK records classification supplied by another component. It does not establish that the classification is correct.
|
|
14
|
+
|
|
15
|
+
## Opt-in extensions
|
|
16
|
+
|
|
17
|
+
Extension attributes require an explicit allowlist in `SchemaValidator`. Allowlisting a key is a deployment decision, not proof that every value under that key is safe. Broad wildcards are intentionally unsupported.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# AgentTrust Telemetry
|
|
2
|
+
|
|
3
|
+
Portable governance telemetry and verifiable evidence for AI-agent runtimes.
|
|
4
|
+
|
|
5
|
+
This repository defines a backend-neutral contract for policy decisions, approval lifecycles, usage, classified data flows, and evidence lifecycle events. It composes with OpenTelemetry; it is not a tracing backend, policy engine, agent framework, or dashboard.
|
|
6
|
+
|
|
7
|
+
> **Status:** alpha contract `0.1.0-alpha.3`. No stable SDK API or compatibility guarantee exists yet.
|
|
8
|
+
|
|
9
|
+
## Why
|
|
10
|
+
|
|
11
|
+
Agent applications can already emit model and tool traces, but governance facts are often trapped in policy-engine logs, approval databases, cost modules, and proprietary dashboards. AgentTrust Telemetry gives those facts one privacy-conscious contract and correlates them with the OpenTelemetry trace already produced by the application.
|
|
12
|
+
|
|
13
|
+
The application keeps its collector, backend, policy engine, workflow framework, and UI.
|
|
14
|
+
|
|
15
|
+
## Event families
|
|
16
|
+
|
|
17
|
+
| Family | Purpose |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Policy decision | Allow, deny, challenge, error, enforcement mode, policy identity and timing |
|
|
20
|
+
| Approval lifecycle | Requested through terminal decision and execution outcome, bound to an action digest |
|
|
21
|
+
| Usage | Per-call/run token and cost facts with explicit cost provenance |
|
|
22
|
+
| Data flow | Classified source-to-destination metadata without payload capture |
|
|
23
|
+
| Action execution | Resolved tool, MCP, A2A, file, HTTP, and database attempts |
|
|
24
|
+
| Evidence lifecycle | Run checkpoints, completeness, and optional TRACE finalization status |
|
|
25
|
+
|
|
26
|
+
## Current contents
|
|
27
|
+
|
|
28
|
+
- JSON Schema 2020-12 event contracts in `spec/schema/`.
|
|
29
|
+
- Valid and invalid conformance fixtures in `conformance/fixtures/`.
|
|
30
|
+
- An independent Python conformance runner in `conformance/runner/`.
|
|
31
|
+
- Contract tests in `tests/`.
|
|
32
|
+
|
|
33
|
+
## Validate fixtures
|
|
34
|
+
|
|
35
|
+
```shell
|
|
36
|
+
python -m pip install -r conformance/requirements.txt
|
|
37
|
+
python conformance/runner/validate.py
|
|
38
|
+
python -m unittest discover -s tests -v
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The validator checks schema conformance and the metadata-only privacy invariant. It does not yet validate OTLP projection or TRACE mapping.
|
|
42
|
+
|
|
43
|
+
## Python reference SDK
|
|
44
|
+
|
|
45
|
+
Install from a checkout while the project is pre-release:
|
|
46
|
+
|
|
47
|
+
```shell
|
|
48
|
+
python -m pip install -e ".[otel]"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
from agentrust_telemetry import SchemaValidator, TelemetryClient
|
|
53
|
+
|
|
54
|
+
client = TelemetryClient(SchemaValidator.bundled())
|
|
55
|
+
result = client.emit(normalized_event)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The SDK uses the caller's current OpenTelemetry span when `opentelemetry-api` is installed. It never installs a provider or exporter. A caller may additionally supply a structured-log emitter.
|
|
59
|
+
|
|
60
|
+
For synchronous cross-process agent calls, propagate the caller's W3C context and
|
|
61
|
+
durable AgenTrust identifiers, then use the extracted context as the receiving
|
|
62
|
+
span's remote parent:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
from agentrust_telemetry import extract_context, inject_context
|
|
66
|
+
|
|
67
|
+
carrier = {}
|
|
68
|
+
inject_context(carrier, run_id="run-123", agent_id="planner")
|
|
69
|
+
|
|
70
|
+
remote = extract_context(carrier)
|
|
71
|
+
with tracer.start_as_current_span("worker", context=remote.otel_context):
|
|
72
|
+
event.update(remote.event_fields(agent_id="worker"))
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
For asynchronous queue handoffs, start a new trace with
|
|
76
|
+
`links=[remote.link()]`. This preserves causality without representing queued
|
|
77
|
+
work as a synchronous child span. Propagated metadata is untrusted input and
|
|
78
|
+
does not establish agent identity or authorization.
|
|
79
|
+
|
|
80
|
+
Run the synthetic example:
|
|
81
|
+
|
|
82
|
+
```shell
|
|
83
|
+
python examples/manual_governance.py
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## TypeScript reference SDK
|
|
87
|
+
|
|
88
|
+
The pre-alpha Node package lives in `packages/typescript`:
|
|
89
|
+
|
|
90
|
+
```shell
|
|
91
|
+
cd packages/typescript
|
|
92
|
+
npm ci
|
|
93
|
+
npm run check
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
It validates the same fixtures and privacy profile as Python and preserves
|
|
97
|
+
nanosecond wire timestamps as decimal strings. It does not install an OTel
|
|
98
|
+
provider, exporter, or global propagator.
|
|
99
|
+
|
|
100
|
+
Run the complete AGT-compatible governance, OTel, durable-evidence, and TRACE
|
|
101
|
+
reference workflow (Python 3.11+ with test extras installed):
|
|
102
|
+
|
|
103
|
+
```shell
|
|
104
|
+
python -m pip install -e ".[test]"
|
|
105
|
+
python examples/governed_workflow.py
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Contract principles
|
|
109
|
+
|
|
110
|
+
- `run_id` is durable execution correlation; `trace_id` is an optional W3C operational trace context.
|
|
111
|
+
- Standard OpenTelemetry fields take precedence over AgentTrust extensions.
|
|
112
|
+
- Raw prompts, output, source code, tool arguments/results, credentials, and authorization tokens are prohibited in the metadata-only profile.
|
|
113
|
+
- Operational telemetry can be lossy; evidence completeness must never be overstated.
|
|
114
|
+
- An event reports a fact observed elsewhere. This project does not make authorization decisions.
|
|
115
|
+
|
|
116
|
+
## Architecture and project policy
|
|
117
|
+
|
|
118
|
+
- [Architecture](docs/architecture.md)
|
|
119
|
+
- [OpenTelemetry projection](docs/otel-projection.md)
|
|
120
|
+
- [OpenTelemetry GenAI compatibility](docs/otel-genai-compatibility.md)
|
|
121
|
+
- [Action execution events](docs/action-events.md)
|
|
122
|
+
- [Data-flow classification](docs/data-flow-classification.md)
|
|
123
|
+
- [Usage and cost attribution](docs/usage-attribution.md)
|
|
124
|
+
- [Event factories and policy adapters](docs/adapters.md)
|
|
125
|
+
- [Evidence chain profile](docs/evidence-chain.md)
|
|
126
|
+
- [TRACE finalization](docs/trace-finalization.md)
|
|
127
|
+
- [Privacy](PRIVACY.md)
|
|
128
|
+
- [Limitations](LIMITATIONS.md)
|
|
129
|
+
- [Roadmap](ROADMAP.md)
|
|
130
|
+
- [Security](SECURITY.md)
|
|
131
|
+
- [Governance](GOVERNANCE.md)
|
|
132
|
+
- [Sponsors](SPONSORS.md)
|
|
133
|
+
- [Releasing](RELEASING.md)
|
|
134
|
+
- [Contributing](CONTRIBUTING.md)
|
|
135
|
+
|
|
136
|
+
## What this project does not provide
|
|
137
|
+
|
|
138
|
+
- A telemetry collector, storage service, dashboard, or SaaS backend.
|
|
139
|
+
- Agent/model auto-instrumentation that duplicates OpenTelemetry GenAI or OpenInference.
|
|
140
|
+
- Policy evaluation or human-approval workflow execution.
|
|
141
|
+
- A model pricing catalog.
|
|
142
|
+
- A claim that sampled operational telemetry is durable audit evidence.
|
|
143
|
+
|
|
144
|
+
## License
|
|
145
|
+
|
|
146
|
+
MIT. See `LICENSE`.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Releasing
|
|
2
|
+
|
|
3
|
+
Releases publish the Python and TypeScript SDKs from one GitHub release event.
|
|
4
|
+
Do not build or upload either package from a maintainer workstation.
|
|
5
|
+
|
|
6
|
+
## One-time registry setup
|
|
7
|
+
|
|
8
|
+
Create protected GitHub environments named `pypi` and `npm`, each with a
|
|
9
|
+
required maintainer review and deployment restricted to protected tags.
|
|
10
|
+
|
|
11
|
+
Configure PyPI pending trusted publishing with:
|
|
12
|
+
|
|
13
|
+
- project: `agentrust-telemetry`
|
|
14
|
+
- owner/repository: `agentrust-io/agentrust-telemetry`
|
|
15
|
+
- workflow: `release.yml`
|
|
16
|
+
- environment: `pypi`
|
|
17
|
+
|
|
18
|
+
Configure the npm trusted publisher for `@agentrust-io/telemetry` with:
|
|
19
|
+
|
|
20
|
+
- organization/repository: `agentrust-io/agentrust-telemetry`
|
|
21
|
+
- workflow: `release.yml`
|
|
22
|
+
- environment: `npm`
|
|
23
|
+
- allowed action: `npm publish`
|
|
24
|
+
|
|
25
|
+
The npm package must be owned by the `agentrust-io` npm organization before its
|
|
26
|
+
trusted publisher can be configured. If npm does not expose publisher settings
|
|
27
|
+
until the first version exists, bootstrap only that first package ownership
|
|
28
|
+
using npm's interactive 2FA flow, then configure trusted publishing before any
|
|
29
|
+
subsequent release. Never store an npm publish token in GitHub.
|
|
30
|
+
|
|
31
|
+
## Release procedure
|
|
32
|
+
|
|
33
|
+
1. Move the changelog entries from `Unreleased` into the new dated version.
|
|
34
|
+
2. Update `spec/VERSION`; the Python and npm spellings are checked by
|
|
35
|
+
`tools/check_versions.py`.
|
|
36
|
+
3. Run the complete CI and artifact smoke tests through a pull request.
|
|
37
|
+
4. Merge the release-preparation pull request to `main`.
|
|
38
|
+
5. Create a GitHub prerelease or release targeting `main`, with tag
|
|
39
|
+
`v<contract-version>`.
|
|
40
|
+
6. Approve the `pypi` and `npm` deployment jobs after inspecting their exact
|
|
41
|
+
source commit and built artifacts.
|
|
42
|
+
7. Confirm both registry versions, GitHub release assets, and provenance before
|
|
43
|
+
announcing the release.
|
|
44
|
+
|
|
45
|
+
The workflow fails closed if the tag differs from the contract version. It
|
|
46
|
+
builds each distribution once, sends the same artifacts to the registries, and
|
|
47
|
+
attaches them to the GitHub release.
|
|
48
|
+
|
|
49
|
+
The npm dist-tag is derived from `spec/VERSION` by `tools/npm_dist_tag.py`, so a
|
|
50
|
+
prerelease publishes under `alpha`, `beta`, `rc` or `dev` and only a stable
|
|
51
|
+
version publishes under `latest`. npm refuses an untagged prerelease publish
|
|
52
|
+
outright, and an untagged stable publish would move `latest`, so nothing here is
|
|
53
|
+
left to the person running the release. If you ever must publish by hand, pass
|
|
54
|
+
the same tag: `npm publish --tag "$(python tools/npm_dist_tag.py)"`.
|
|
55
|
+
|
|
56
|
+
Note that npm sets `latest` on a package's very first published version whatever
|
|
57
|
+
`--tag` says. That is expected on a bootstrap publish and corrects itself when
|
|
58
|
+
the first stable version ships. PyPI and npm create registry provenance
|
|
59
|
+
through trusted publishing; GitHub also attests the downloadable release assets.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# GitHub repository creation checklist
|
|
2
|
+
|
|
3
|
+
Verified on 2026-08-18: `agentrust-io/agentrust-telemetry` does not exist and the name is available.
|
|
4
|
+
|
|
5
|
+
PyPI also returned no matching distribution for `agentrust-telemetry` on 2026-08-18. Availability is not reservation; re-check immediately before the first publish.
|
|
6
|
+
|
|
7
|
+
## Creation parameters
|
|
8
|
+
|
|
9
|
+
- Owner: `agentrust-io`
|
|
10
|
+
- Name: `agentrust-telemetry`
|
|
11
|
+
- Visibility: public
|
|
12
|
+
- Default branch: `main`
|
|
13
|
+
- Description: `Backend-neutral governance telemetry and verifiable evidence for AI-agent runtimes.`
|
|
14
|
+
- Topics: `ai-agents`, `governance`, `opentelemetry`, `observability`, `telemetry`, `trace`
|
|
15
|
+
- Initialize remotely: no README, license, or gitignore; this repository already supplies them.
|
|
16
|
+
|
|
17
|
+
## Settings immediately after first push
|
|
18
|
+
|
|
19
|
+
- Enable private vulnerability reporting.
|
|
20
|
+
- Enable secret scanning and push protection where available.
|
|
21
|
+
- Enable Dependabot security updates.
|
|
22
|
+
- Enable automatic branch deletion after merge.
|
|
23
|
+
- Disable merge commits; allow squash merge with PR title as the default message.
|
|
24
|
+
- Protect `main` with pull requests, one approving review, CODEOWNER review, dismissal of stale approvals, conversation resolution, and required status checks.
|
|
25
|
+
- Required checks after their first run: all CI matrix jobs, CodeQL, and OpenSSF Scorecard where GitHub permits it.
|
|
26
|
+
- Prevent force pushes and branch deletion.
|
|
27
|
+
- Require signed commits if that matches organization-wide practice; do not enable until maintainers can comply.
|
|
28
|
+
- Configure the `pypi` environment and trusted publishing only when the package name and first release are approved.
|
|
29
|
+
|
|
30
|
+
## First push sequence
|
|
31
|
+
|
|
32
|
+
1. Review the complete staged diff and generated schema copies.
|
|
33
|
+
2. Run `python tools/check_versions.py`.
|
|
34
|
+
3. Run `python tools/check_schemas.py`.
|
|
35
|
+
4. Run `python conformance/runner/validate.py`.
|
|
36
|
+
5. Run `python -m unittest discover -s tests -v`.
|
|
37
|
+
6. Run `python -m build` and `python tools/smoke_wheel.py <wheel>`.
|
|
38
|
+
7. Create one DCO-signed initial commit.
|
|
39
|
+
8. Create the empty GitHub repository with the parameters above.
|
|
40
|
+
9. Add `origin`, push `main`, then apply the settings above.
|
|
41
|
+
|
|
42
|
+
Repository creation, initial commit, push, package-name reservation, and publishing are intentionally not performed by readiness work.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Roadmap
|
|
2
|
+
|
|
3
|
+
## v0.1 contract and Python reference
|
|
4
|
+
|
|
5
|
+
- Normalized event schemas and conformance fixtures.
|
|
6
|
+
- Metadata-only privacy enforcement.
|
|
7
|
+
- Caller-owned OTel span-event projection.
|
|
8
|
+
- Structured-log projection contract.
|
|
9
|
+
- Reproducible package and CI gates.
|
|
10
|
+
- Per-call usage facts and coverage-labelled per-agent/workflow cost rollups.
|
|
11
|
+
- Executable OpenTelemetry GenAI compatibility matrix pinned to upstream source.
|
|
12
|
+
- TypeScript reference primitives with shared-schema and golden-event parity.
|
|
13
|
+
|
|
14
|
+
## Next
|
|
15
|
+
|
|
16
|
+
- Additional metric views and collector interoperability fixtures.
|
|
17
|
+
- Additional end-to-end scenarios for failure, asynchronous handoff, and incomplete evidence.
|
|
18
|
+
- Additional classifier adapters and organization taxonomy profiles.
|
|
19
|
+
- Additional W3C propagation carrier adapters beyond mutable string mappings.
|
|
20
|
+
- Action lifecycle expansion if adopters need in-flight attempt telemetry.
|
|
21
|
+
- Framework integrations and future consolidated-core native event surfaces.
|
|
22
|
+
- Additional TypeScript adapters and .NET, Rust, and Go reference primitives.
|
|
23
|
+
|
|
24
|
+
Roadmap items are intentions, not shipped behavior or compatibility commitments.
|