Skip to content

Update SDK for Content Telemetry v1 and SPUR stewardship - #3

Merged
jalexspringer merged 2 commits into
mainfrom
v1-wire
Sep 15, 2026
Merged

jalexspringer merged 2 commits into
mainfrom
v1-wire

Conversation

@jalexspringer

@jalexspringer jalexspringer commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

The published SDK emits the older 0.1 wire format. This update prepares 1.0.0 for Content Telemetry v1, including citation/presentation/engagement correlation, governing terms_ref preservation and agent/session envelope context.

Adds transport-independent document builders so applications can report to their agreed service. The existing OpenAttribution HTTP client remains available as an optional adapter. Examples await required reporting, distinguish local event ids from receipts, and explain the application's remaining duties. Repository metadata reflects SPUR stewardship while preserving the npm name and original attribution; no npm release is published by this PR.

SPUR is described as a technical standards organisation and convener of content market interoperability pilots. Independent participants operate services and agree commercial terms; installing this SDK does not confer accreditation.

Validation: 52 tests, TypeScript checks, ESM/CJS builds, and 10 generated wire documents checked against the pinned standard schemas and application rules. Existing CI runs unit tests, typecheck and build on Node 20 and 22; the standalone wire validation command is documented for local use. Development dependencies refreshed; npm audit reports no known vulnerabilities.

Move the SDK to the v1.0 wire format per the standard's migration notes
(spec 12.1). Wire documents declare schema_version "1.0".

- content_displayed -> content_presented, with required
  presentation_kind/presentation_type and new Presentation* types.
- content_cited carries id, output_id and required data.citation_type;
  CitationData gains excerpt_chars, excerpt_hash, media_type,
  url_verified.
- content_engaged binds to presentation_id; TelemetryEvent gains
  outputId, outputElementId, citationId, presentationId, ctxToken.
- Edge/origin profiles: bot_category -> purpose (open AccessPurpose
  enum, adds advertising); ip_hash withdrawn.
- recordEvent accepts the full event field set and returns the event id
  it assigned, so citation and presentation ids can be chained.
- New recordStandaloneEvent for the spec 7.1 standalone envelope
  (session-less origin/edge retrievals, ctx_token click-outs).
- MCPSessionTracker: trackCited always emits citation_type/output_id and
  returns url->id; new trackPresented; trackEngaged takes
  presentationIds.
- TelemetrySession.data extension container (spec 5.1.3).

Wire output for all three delivery formats validates against the
standard repository's v1 JSON Schemas and application-layer reference
validator. 46 tests pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019pcWWZA7Z4L34kG4dSw4Rf
@jalexspringer jalexspringer changed the title Content Telemetry v1.0: schema 1.0 wire, presentation lifecycle, 1.0.0 Update SDK for Content Telemetry v1 and SPUR stewardship Sep 15, 2026
@jalexspringer
jalexspringer merged commit e694119 into main Sep 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant