@ancplua/qyl-api-schema 5.0.0 → 5.1.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/README.md CHANGED
@@ -11,7 +11,7 @@ no metric DTOs or routes. Profiles are not supported.
11
11
  ## Contract pipeline
12
12
 
13
13
  ```text
14
- Qyl.OpenTelemetry.SemanticConventions
14
+ Qyl.Telemetry.SemanticConventions
15
15
  |
16
16
  | generated semantic key projection
17
17
  v
@@ -45,6 +45,11 @@ regenerate the artifacts, and map the runtime model to the generated contract.
45
45
 
46
46
  ## Published artifacts
47
47
 
48
+ Both registries carry the same version from one release tag. The contract advances on
49
+ its own major cadence and does not track the qyl product version — it was already at
50
+ `5.0.0` when qyl launched at `1.0.0`. Read the current version from npm or nuget.org
51
+ rather than from prose here; this line moves faster than a README is revised.
52
+
48
53
  | Ecosystem | Artifact | Purpose |
49
54
  | --- | --- | --- |
50
55
  | npm/TypeSpec | `@ancplua/qyl-api-schema` | Authored schema for TypeSpec consumers |
@@ -54,6 +59,16 @@ regenerate the artifacts, and map the runtime model to the generated contract.
54
59
  `main.tsp` is the local compile entry point and includes emitter routing. `index.tsp`
55
60
  is the published TypeSpec entry point and contains only the client-facing contract.
56
61
 
62
+ ## Contract revision
63
+
64
+ `scripts/emit-contract-revision.mjs` stamps a deterministic revision — `sha256:` plus
65
+ the first 16 hex characters of the contract's canonical semantic digest — into both
66
+ generated faces during `npm run compile`. A collector reports the revision it was built
67
+ against on its health response, so a client can detect a peer built from a different
68
+ contract instead of discovering the mismatch one malformed field at a time. Read the
69
+ current value from a running collector or the generated artifacts; it is derived, never
70
+ hand-maintained.
71
+
57
72
  ## Develop
58
73
 
59
74
  Development and CI use Node.js 24 LTS. Published npm artifacts support maintained
@@ -6445,6 +6445,11 @@
6445
6445
  },
6446
6446
  "error": {
6447
6447
  "type": "string"
6448
+ },
6449
+ "occurred_at": {
6450
+ "type": "string",
6451
+ "format": "date-time",
6452
+ "description": "When the reported transition actually occurred at the adapter that executed\nit. The journal event minted for this transition carries this clock — the\noriginating agent's — so control events order and measure consistently with\nthe agent-clocked events around them; omitted, the collector's receipt time\nis the fallback."
6448
6453
  }
6449
6454
  },
6450
6455
  "unevaluatedProperties": {
@@ -21049,6 +21049,11 @@
21049
21049
  },
21050
21050
  "error": {
21051
21051
  "type": "string"
21052
+ },
21053
+ "occurred_at": {
21054
+ "type": "string",
21055
+ "format": "date-time",
21056
+ "description": "When the reported transition actually occurred at the adapter that executed\nit. The journal event minted for this transition carries this clock — the\noriginating agent's — so control events order and measure consistently with\nthe agent-clocked events around them; omitted, the collector's receipt time\nis the fallback."
21052
21057
  }
21053
21058
  },
21054
21059
  "unevaluatedProperties": {
@@ -1506,6 +1506,7 @@ export interface WorkflowControlCommandPage {
1506
1506
  export interface WorkflowControlStatusUpdateRequest {
1507
1507
  "status": WorkflowControlStatus;
1508
1508
  "error"?: string;
1509
+ "occurred_at"?: string;
1509
1510
  }
1510
1511
  export interface WorkflowHeartbeatEvent {
1511
1512
  "type": "heartbeat";
@@ -392,4 +392,4 @@ export const FetchTelemetryViewValues = {
392
392
  };
393
393
  // --- contract revision (scripts/emit-contract-revision.mjs) ---
394
394
  /** Revision of the API contract these types were emitted from; compare against HealthReport.contract_revision. */
395
- export const CONTRACT_REVISION = "sha256:c4b86d761cbd7299";
395
+ export const CONTRACT_REVISION = "sha256:9d94fe8f5c913e4b";
@@ -534,4 +534,14 @@ model WorkflowControlCommandPage {
534
534
  model WorkflowControlStatusUpdateRequest {
535
535
  status: WorkflowControlStatus;
536
536
  error?: string;
537
+
538
+ @doc("""
539
+ When the reported transition actually occurred at the adapter that executed
540
+ it. The journal event minted for this transition carries this clock — the
541
+ originating agent's — so control events order and measure consistently with
542
+ the agent-clocked events around them; omitted, the collector's receipt time
543
+ is the fallback.
544
+ """)
545
+ @encodedName("application/json", "occurred_at")
546
+ occurredAt?: utcDateTime;
537
547
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ancplua/qyl-api-schema",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "TypeSpec source of truth for qyl API contracts. Emits OpenAPI, JSON Schema, Qyl.Api.Contracts DTOs, and TypeScript contract types; not an OpenTelemetry package, storage schema, or server implementation.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {