xoonya 2.3.0 → 2.5.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 +16 -0
- package/RELEASE_NOTES.md +17 -13
- package/SERVICE_CONTRACT.md +64 -0
- package/START_HERE.md +27 -0
- package/bin/xoonya.js +55 -0
- package/lib/artifact_distribution_lane_contract.js +54 -0
- package/lib/asyncapi_contract.js +135 -0
- package/lib/auth_interop_contract.js +69 -0
- package/lib/cloudevents_contract.js +79 -0
- package/lib/erc8004_proof_lane_contract.js +64 -0
- package/lib/event_system_lane_contract.js +76 -0
- package/lib/external_proof_import_lane_contract.js +87 -0
- package/lib/feature_control_lane_contract.js +54 -0
- package/lib/framework_lane_contract.js +76 -0
- package/lib/identity_interop_contract.js +83 -0
- package/lib/integration_matrix_contract.js +81 -0
- package/lib/major_rails_proof_lane_contract.js +87 -0
- package/lib/openapi_contract.js +227 -0
- package/lib/proof_bridge_lane_contract.js +82 -0
- package/lib/provenance_lane_contract.js +54 -0
- package/lib/provider_lane_contract.js +67 -0
- package/lib/release_history.js +16 -0
- package/lib/result_package_trust_lane_contract.js +74 -0
- package/lib/role_freeze.js +436 -0
- package/lib/shared_signals_lane_contract.js +54 -0
- package/lib/telemetry_lane_contract.js +54 -0
- package/lib/treasury_proof_lane_contract.js +83 -0
- package/package.json +4 -3
- package/server.js +504 -0
package/README.md
CHANGED
|
@@ -14,6 +14,22 @@ This repo is the proof-side half of the final two-repo public stack. It focuses
|
|
|
14
14
|
|
|
15
15
|
The 10-phase public program is now complete. `xoonya` is in terminal closeout posture rather than active milestone build posture.
|
|
16
16
|
|
|
17
|
+
## One-Line After Install
|
|
18
|
+
|
|
19
|
+
If you only run two commands after install, use:
|
|
20
|
+
|
|
21
|
+
- `xoonya start-here`
|
|
22
|
+
- `xoonya release --summary`
|
|
23
|
+
|
|
24
|
+
If you want the shortest machine-readable discovery path, inspect:
|
|
25
|
+
|
|
26
|
+
- `GET /v1/providers`
|
|
27
|
+
- `GET /v1/frameworks`
|
|
28
|
+
- `GET /v1/integration-matrix`
|
|
29
|
+
- `GET /v1/proof-bridge`
|
|
30
|
+
- `GET /v1/telemetry`
|
|
31
|
+
- `GET /v1/provenance`
|
|
32
|
+
|
|
17
33
|
## Start Here
|
|
18
34
|
|
|
19
35
|
If you are new to the proof-side package, use this order:
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,29 +1,33 @@
|
|
|
1
|
-
# xoonya 2.
|
|
1
|
+
# xoonya 2.5.0 Release Notes
|
|
2
2
|
|
|
3
|
-
`xoonya` 2.
|
|
3
|
+
`xoonya` 2.5.0 is the adoption-surface proof line for contracts, provider and framework discovery, bridge trust, observability, provenance, artifact distribution, shared signals, and rollout portability.
|
|
4
4
|
|
|
5
5
|
Highlights:
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
7
|
+
- umbrella CLI entrypoint with `xoonya start-here`, plus `xoonya review` and `xoonya release`
|
|
8
|
+
- first-class public contract lanes for `OpenAPI`, `AsyncAPI`, and `CloudEvents`
|
|
9
|
+
- first-class provider, framework, and integration-matrix discovery surfaces for the proof side
|
|
10
|
+
- surfaced proof breadth across `proof-bridge`, `external-proof-import`, `result-package-trust`, major rails, treasury, and registry-backed integrations
|
|
11
|
+
- surfaced observability, provenance, artifact-distribution, shared-signals, and feature-control lanes for proof operations and trust
|
|
12
|
+
- explicit proof-role freeze, role-transition, and capability-registry-home posture remain in place
|
|
13
|
+
- canonical event, receipt, and proof-bundle model remain the proof center while external compatibility stays adapter-friendly
|
|
14
|
+
- clearer install-and-use posture for reviewers, operators, outside builders, and proof-carry integrations
|
|
14
15
|
|
|
15
16
|
Recommended first checks:
|
|
16
17
|
|
|
17
18
|
1. `npm install xoonya`
|
|
18
|
-
2. `xoonya-
|
|
19
|
+
2. `xoonya start-here`
|
|
19
20
|
3. `npm run verify:release-candidate`
|
|
20
21
|
4. `node examples/partner_proof_walkthrough.js`
|
|
21
|
-
5. inspect `/v1/
|
|
22
|
-
6. inspect `/v1/
|
|
23
|
-
7. inspect `/v1/
|
|
22
|
+
5. inspect `/v1/providers`, `/v1/frameworks`, `/v1/integration-matrix`, and `/v1/proof-bridge`
|
|
23
|
+
6. inspect `/v1/telemetry`, `/v1/provenance`, `/v1/artifact-distribution`, `/v1/shared-signals`, and `/v1/feature-control`
|
|
24
|
+
7. inspect `/v1/role-freeze/package`
|
|
25
|
+
8. inspect `/v1/role-transition` and `/v1/capability-registry-home`
|
|
26
|
+
9. inspect `/v1/proof-center/summary` on the deployed service
|
|
24
27
|
|
|
25
28
|
Recommended first docs:
|
|
26
29
|
|
|
27
30
|
- `PROGRAM_COMPLETE_RELEASE.md`
|
|
31
|
+
- `FINAL_CONTRACT.md`
|
|
28
32
|
- `WHY_XYTARA_XOONYA.md`
|
|
29
33
|
- `PARTNER_READY_PATH.md`
|
package/SERVICE_CONTRACT.md
CHANGED
|
@@ -7,6 +7,54 @@ This file freezes the public service contract for `xoonya`.
|
|
|
7
7
|
Primary proof-model routes:
|
|
8
8
|
|
|
9
9
|
- `GET /health`
|
|
10
|
+
- `GET /openapi.json`
|
|
11
|
+
- `GET /v1/openapi`
|
|
12
|
+
- `GET /v1/openapi/summary`
|
|
13
|
+
- `GET /asyncapi.json`
|
|
14
|
+
- `GET /v1/asyncapi`
|
|
15
|
+
- `GET /v1/asyncapi/summary`
|
|
16
|
+
- `GET /cloudevents.json`
|
|
17
|
+
- `GET /v1/cloudevents`
|
|
18
|
+
- `GET /v1/cloudevents/summary`
|
|
19
|
+
- `GET /v1/auth-profiles`
|
|
20
|
+
- `GET /v1/auth-profiles/summary`
|
|
21
|
+
- `GET /v1/identity-interop`
|
|
22
|
+
- `GET /v1/identity-interop/summary`
|
|
23
|
+
- `GET /v1/providers`
|
|
24
|
+
- `GET /v1/providers/summary`
|
|
25
|
+
- `GET /v1/frameworks`
|
|
26
|
+
- `GET /v1/frameworks/summary`
|
|
27
|
+
- `GET /v1/integration-matrix`
|
|
28
|
+
- `GET /v1/integration-matrix/summary`
|
|
29
|
+
- `GET /v1/major-rails`
|
|
30
|
+
- `GET /v1/major-rails/summary`
|
|
31
|
+
- `GET /v1/treasury`
|
|
32
|
+
- `GET /v1/treasury/summary`
|
|
33
|
+
- `GET /v1/erc8004`
|
|
34
|
+
- `GET /v1/erc8004/summary`
|
|
35
|
+
- `GET /v1/proof-bridge`
|
|
36
|
+
- `GET /v1/proof-bridge/summary`
|
|
37
|
+
- `GET /v1/external-proof-import`
|
|
38
|
+
- `GET /v1/external-proof-import/summary`
|
|
39
|
+
- `GET /v1/result-package-trust`
|
|
40
|
+
- `GET /v1/result-package-trust/summary`
|
|
41
|
+
- `GET /v1/event-systems`
|
|
42
|
+
- `GET /v1/event-systems/summary`
|
|
43
|
+
- `GET /v1/telemetry`
|
|
44
|
+
- `GET /v1/telemetry/summary`
|
|
45
|
+
- `GET /v1/provenance`
|
|
46
|
+
- `GET /v1/provenance/summary`
|
|
47
|
+
- `GET /v1/artifact-distribution`
|
|
48
|
+
- `GET /v1/artifact-distribution/summary`
|
|
49
|
+
- `GET /v1/shared-signals`
|
|
50
|
+
- `GET /v1/shared-signals/summary`
|
|
51
|
+
- `GET /v1/feature-control`
|
|
52
|
+
- `GET /v1/feature-control/summary`
|
|
53
|
+
- `GET /v1/integrations`
|
|
54
|
+
- `GET /v1/integrations/summary`
|
|
55
|
+
- `GET /v1/integrations/snapshot`
|
|
56
|
+
- `GET /v1/integrations/promotion-readiness`
|
|
57
|
+
- `GET /v1/integrations/promotion-workflow`
|
|
10
58
|
- `GET /v1/proof-center`
|
|
11
59
|
- `GET /v1/proof-center/summary`
|
|
12
60
|
- `GET /v1/proof-center/governance`
|
|
@@ -73,6 +121,22 @@ Expected error shapes:
|
|
|
73
121
|
|
|
74
122
|
Compatibility routes may return proof/profile-specific verification payloads, but the top-level shape should still remain predictable.
|
|
75
123
|
|
|
124
|
+
Interop note:
|
|
125
|
+
|
|
126
|
+
- `GET /v1/identity-interop` exposes how native proof, attestation, and bridge surfaces map to `JWT`, `DID/VC`, and `SD-JWT VC` interop lanes without replacing canonical proof truth inside `xoonya`
|
|
127
|
+
- `GET /v1/major-rails` exposes the Solana and Antelope/Proton XPR/Metal proof family as one practical settlement-evidence lane
|
|
128
|
+
- `GET /v1/treasury` exposes treasury destination/accounting evidence continuity while keeping DAI/USDC and Monero reserve doctrine clearly internal
|
|
129
|
+
- `GET /v1/external-proof-import` exposes the result, receipt, and proof-bundle import family as one builder-trust lane
|
|
130
|
+
- `GET /v1/result-package-trust` exposes the carried result-package trust continuity posture as a first-class proof-side lane
|
|
131
|
+
- `GET /v1/providers` exposes the OpenAI Codex and Claude/MCP family as first-class provider-origin proof lanes
|
|
132
|
+
- `GET /v1/frameworks` exposes LangGraph, LangChain, AutoGen, and Semantic Kernel as first-class framework followthrough lanes
|
|
133
|
+
- `GET /v1/integration-matrix` exposes the canonical public view across providers, frameworks, proof lanes, and registry-backed proof integrations
|
|
134
|
+
- `GET /v1/telemetry` exposes the OpenTelemetry-aligned proof observability posture across review, verification, bridge, and proof event signals
|
|
135
|
+
- `GET /v1/provenance` exposes the SLSA-aligned provenance posture for proof artifacts, release trust, and bundle followthrough confidence
|
|
136
|
+
- `GET /v1/artifact-distribution` exposes OCI-style artifact distribution posture for proof bundles, handoff bundles, snapshots, and release artifacts
|
|
137
|
+
- `GET /v1/shared-signals` exposes OpenID Shared Signals and CAEP-aligned review, bridge, import, and trust event exchange posture
|
|
138
|
+
- `GET /v1/feature-control` exposes OpenFeature/OFREP-aligned rollout and review portability posture around role freeze, bridge, trust, and release gates
|
|
139
|
+
|
|
76
140
|
## Final-Loop Verification
|
|
77
141
|
|
|
78
142
|
The constitutional proof loop for `xoonya` is:
|
package/START_HERE.md
CHANGED
|
@@ -52,6 +52,27 @@ For long-term product understanding, read:
|
|
|
52
52
|
|
|
53
53
|
- [FINAL_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/FINAL_CONTRACT.md)
|
|
54
54
|
- [SERVICE_CONTRACT.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/SERVICE_CONTRACT.md)
|
|
55
|
+
- `GET /openapi.json`
|
|
56
|
+
- `GET /asyncapi.json`
|
|
57
|
+
- `GET /cloudevents.json`
|
|
58
|
+
- `GET /v1/auth-profiles`
|
|
59
|
+
- `GET /v1/identity-interop`
|
|
60
|
+
- `GET /v1/providers`
|
|
61
|
+
- `GET /v1/frameworks`
|
|
62
|
+
- `GET /v1/integration-matrix`
|
|
63
|
+
- `GET /v1/telemetry`
|
|
64
|
+
- `GET /v1/provenance`
|
|
65
|
+
- `GET /v1/artifact-distribution`
|
|
66
|
+
- `GET /v1/shared-signals`
|
|
67
|
+
- `GET /v1/feature-control`
|
|
68
|
+
- `GET /v1/major-rails`
|
|
69
|
+
- `GET /v1/treasury`
|
|
70
|
+
- `GET /v1/erc8004`
|
|
71
|
+
- `GET /v1/proof-bridge`
|
|
72
|
+
- `GET /v1/external-proof-import`
|
|
73
|
+
- `GET /v1/result-package-trust`
|
|
74
|
+
- `GET /v1/event-systems`
|
|
75
|
+
- `GET /v1/integrations`
|
|
55
76
|
- [PROGRAM_STATUS.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/PROGRAM_STATUS.md)
|
|
56
77
|
- [OPERATOR_START_HERE.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/OPERATOR_START_HERE.md)
|
|
57
78
|
- [OPERATIONS_RUNBOOK.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/OPERATIONS_RUNBOOK.md)
|
|
@@ -80,6 +101,12 @@ It is:
|
|
|
80
101
|
|
|
81
102
|
receive handoff -> inspect review posture -> confirm run posture -> emit and verify proof
|
|
82
103
|
|
|
104
|
+
If you want the shortest CLI-first read of the package after install, use:
|
|
105
|
+
|
|
106
|
+
- `xoonya start-here`
|
|
107
|
+
- `xoonya release --summary`
|
|
108
|
+
- `xoonya review --help`
|
|
109
|
+
|
|
83
110
|
## 7. If You Are Operating The Closed Program
|
|
84
111
|
|
|
85
112
|
Use:
|
package/bin/xoonya.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const { spawnSync } = require("child_process");
|
|
6
|
+
|
|
7
|
+
function printUsage() {
|
|
8
|
+
process.stdout.write([
|
|
9
|
+
"Usage: xoonya <command> [options]",
|
|
10
|
+
"",
|
|
11
|
+
"Commands:",
|
|
12
|
+
" release [args] Open the release/adoption/reporting surface",
|
|
13
|
+
" review [args] Review a carried handoff or proof input",
|
|
14
|
+
" start-here Print the shortest first-run path",
|
|
15
|
+
" help Show this help message",
|
|
16
|
+
"",
|
|
17
|
+
"Fastest first run:",
|
|
18
|
+
" xoonya start-here",
|
|
19
|
+
" xoonya release --summary",
|
|
20
|
+
" xoonya review --help"
|
|
21
|
+
].join("\n"));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function printStartHere() {
|
|
25
|
+
process.stdout.write([
|
|
26
|
+
"xoonya start-here",
|
|
27
|
+
"",
|
|
28
|
+
"1. xoonya release --summary",
|
|
29
|
+
"2. node examples/package_quickstart.js",
|
|
30
|
+
"3. npm run verify:all",
|
|
31
|
+
"4. Inspect /v1/providers, /v1/frameworks, /v1/integration-matrix, /v1/proof-bridge",
|
|
32
|
+
"5. Continue into proof review, bridge, and import lanes as needed"
|
|
33
|
+
].join("\n"));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function delegate(scriptName, args) {
|
|
37
|
+
const scriptPath = path.join(__dirname, scriptName);
|
|
38
|
+
const result = spawnSync(process.execPath, [scriptPath, ...args], { stdio: "inherit" });
|
|
39
|
+
process.exitCode = typeof result.status === "number" ? result.status : 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const [command, ...rest] = process.argv.slice(2);
|
|
43
|
+
|
|
44
|
+
if (!command || command === "help" || command === "--help" || command === "-h") {
|
|
45
|
+
printUsage();
|
|
46
|
+
} else if (command === "start-here" || command === "--start-here") {
|
|
47
|
+
printStartHere();
|
|
48
|
+
} else if (command === "release") {
|
|
49
|
+
delegate("xoonya-release.js", rest);
|
|
50
|
+
} else if (command === "review") {
|
|
51
|
+
delegate("xoonya-review.js", rest);
|
|
52
|
+
} else {
|
|
53
|
+
printUsage();
|
|
54
|
+
process.exitCode = 1;
|
|
55
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function buildArtifactDistributionLanePack() {
|
|
4
|
+
return {
|
|
5
|
+
product: "xoonya",
|
|
6
|
+
category: "proof-artifact-distribution-lane-pack",
|
|
7
|
+
pack_version: "xoonya-artifact-distribution-lane-pack-v1",
|
|
8
|
+
lane_state: "first_party_artifact_distribution_lane_present",
|
|
9
|
+
posture: "oci_style_distribution_for_proof_bundles_and_integration_artifacts",
|
|
10
|
+
standards: ["oci_artifacts", "oras_style_distribution"],
|
|
11
|
+
artifact_families: ["proof_bundles", "handoff_bundles", "integration_snapshots", "release_artifacts"],
|
|
12
|
+
supported_surfaces: {
|
|
13
|
+
integrations_ref: "/v1/integrations",
|
|
14
|
+
integrations_snapshot_ref: "/v1/integrations/snapshot",
|
|
15
|
+
proof_bridge_ref: "/v1/proof-bridge",
|
|
16
|
+
result_package_trust_ref: "/v1/result-package-trust",
|
|
17
|
+
release_center_ref: "/v1/release-center"
|
|
18
|
+
},
|
|
19
|
+
first_run_flows: [
|
|
20
|
+
{
|
|
21
|
+
flow_ref: "proof_artifact_distribution_alignment",
|
|
22
|
+
recommended_reason: "best path for teams that want portable proof and integration artifacts rather than custom export conventions",
|
|
23
|
+
sequence: [
|
|
24
|
+
"inspect_artifact_distribution_lane_summary",
|
|
25
|
+
"inspect proof_bridge and import surfaces",
|
|
26
|
+
"treat proof bundles and integration snapshots as distribution-ready artifacts",
|
|
27
|
+
"publish or transfer them later through standard artifact registries without changing proof semantics"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
guardrails: [
|
|
32
|
+
"artifact portability should preserve canonical proof bundle and handoff shapes",
|
|
33
|
+
"distribution posture must not create a second proof model"
|
|
34
|
+
]
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function summarizeArtifactDistributionLanePack() {
|
|
39
|
+
const pack = buildArtifactDistributionLanePack();
|
|
40
|
+
return {
|
|
41
|
+
product: "xoonya",
|
|
42
|
+
category: "proof-artifact-distribution-lane-pack-summary",
|
|
43
|
+
summary_version: "xoonya-artifact-distribution-lane-pack-summary-v1",
|
|
44
|
+
lane_state: pack.lane_state,
|
|
45
|
+
standard_count: pack.standards.length,
|
|
46
|
+
artifact_family_count: pack.artifact_families.length,
|
|
47
|
+
linked_surfaces: pack.supported_surfaces
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
module.exports = {
|
|
52
|
+
buildArtifactDistributionLanePack,
|
|
53
|
+
summarizeArtifactDistributionLanePack
|
|
54
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const pkg = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildAsyncApiDocument() {
|
|
6
|
+
return {
|
|
7
|
+
asyncapi: "3.0.0",
|
|
8
|
+
info: {
|
|
9
|
+
title: "xoonya Event Contract",
|
|
10
|
+
version: pkg.version,
|
|
11
|
+
summary: "Proof and review event contract.",
|
|
12
|
+
description: "This AsyncAPI document describes the stable proof-side canonicalization, receipt, proof-bundle, and bridge event surfaces."
|
|
13
|
+
},
|
|
14
|
+
servers: {
|
|
15
|
+
httpProof: {
|
|
16
|
+
host: "127.0.0.1:4340",
|
|
17
|
+
protocol: "http",
|
|
18
|
+
description: "Local xoonya HTTP proof event entrypoint"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
channels: {
|
|
22
|
+
"proof/events/canonicalize": {
|
|
23
|
+
address: "/v1/events/canonicalize",
|
|
24
|
+
messages: {
|
|
25
|
+
canonicalizeEventRequest: {
|
|
26
|
+
name: "canonicalizeEventRequest",
|
|
27
|
+
title: "Canonicalize event request",
|
|
28
|
+
summary: "Canonicalize inbound event data before proof construction."
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"proof/events/hash": {
|
|
33
|
+
address: "/v1/events/hash",
|
|
34
|
+
messages: {
|
|
35
|
+
hashEventRequest: {
|
|
36
|
+
name: "hashEventRequest",
|
|
37
|
+
title: "Hash event request",
|
|
38
|
+
summary: "Hash canonical event data."
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"proof/receipts/emit": {
|
|
43
|
+
address: "/v1/receipts/emit",
|
|
44
|
+
messages: {
|
|
45
|
+
emitReceiptRequest: {
|
|
46
|
+
name: "emitReceiptRequest",
|
|
47
|
+
title: "Emit receipt request",
|
|
48
|
+
summary: "Emit proof receipt data."
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"proof/bundles/build": {
|
|
53
|
+
address: "/v1/proof-bundles/build",
|
|
54
|
+
messages: {
|
|
55
|
+
buildProofBundleRequest: {
|
|
56
|
+
name: "buildProofBundleRequest",
|
|
57
|
+
title: "Build proof bundle request",
|
|
58
|
+
summary: "Build a proof bundle from canonical proof inputs."
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"proof/bridge/economic-handoff": {
|
|
63
|
+
address: "/v1/proof-center/bridge/economic-handoff",
|
|
64
|
+
messages: {
|
|
65
|
+
economicHandoffRequest: {
|
|
66
|
+
name: "economicHandoffRequest",
|
|
67
|
+
title: "Economic handoff bridge request",
|
|
68
|
+
summary: "Bridge bounded economic consequence data into proof review."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
operations: {
|
|
74
|
+
canonicalizeProofEvent: {
|
|
75
|
+
action: "send",
|
|
76
|
+
channel: { $ref: "#/channels/proof/events/canonicalize" },
|
|
77
|
+
summary: "Send canonicalization input into the proof loop."
|
|
78
|
+
},
|
|
79
|
+
hashProofEvent: {
|
|
80
|
+
action: "send",
|
|
81
|
+
channel: { $ref: "#/channels/proof/events/hash" },
|
|
82
|
+
summary: "Send event data for proof hash generation."
|
|
83
|
+
},
|
|
84
|
+
emitProofReceipt: {
|
|
85
|
+
action: "send",
|
|
86
|
+
channel: { $ref: "#/channels/proof/receipts/emit" },
|
|
87
|
+
summary: "Send receipt emission input into the proof loop."
|
|
88
|
+
},
|
|
89
|
+
buildProofBundle: {
|
|
90
|
+
action: "send",
|
|
91
|
+
channel: { $ref: "#/channels/proof/bundles/build" },
|
|
92
|
+
summary: "Send proof-bundle build input into the proof loop."
|
|
93
|
+
},
|
|
94
|
+
bridgeEconomicHandoff: {
|
|
95
|
+
action: "send",
|
|
96
|
+
channel: { $ref: "#/channels/proof/bridge/economic-handoff" },
|
|
97
|
+
summary: "Send runtime economic handoff data into proof review."
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"x-naxytra-contract": {
|
|
101
|
+
product: "xoonya",
|
|
102
|
+
stability: "stable_public_event_layer",
|
|
103
|
+
channel_count: 5,
|
|
104
|
+
linked_docs: [
|
|
105
|
+
"SERVICE_CONTRACT.md",
|
|
106
|
+
"FINAL_CONTRACT.md",
|
|
107
|
+
"START_HERE.md"
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function summarizeAsyncApiDocument() {
|
|
114
|
+
const document = buildAsyncApiDocument();
|
|
115
|
+
return {
|
|
116
|
+
product: "xoonya",
|
|
117
|
+
category: "proof-asyncapi-contract-summary",
|
|
118
|
+
summary_version: "xoonya-asyncapi-contract-summary-v1",
|
|
119
|
+
asyncapi_version: document.asyncapi,
|
|
120
|
+
info_version: document.info.version,
|
|
121
|
+
channel_count: Object.keys(document.channels).length,
|
|
122
|
+
operation_count: Object.keys(document.operations).length,
|
|
123
|
+
primary_event_lanes: ["canonicalization", "receipts", "proof_bundles", "bridge"],
|
|
124
|
+
linked_surfaces: {
|
|
125
|
+
asyncapi_ref: "/asyncapi.json",
|
|
126
|
+
service_contract_ref: "SERVICE_CONTRACT.md",
|
|
127
|
+
openapi_ref: "/openapi.json"
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
module.exports = {
|
|
133
|
+
buildAsyncApiDocument,
|
|
134
|
+
summarizeAsyncApiDocument
|
|
135
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const pkg = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildAuthInteropContract() {
|
|
6
|
+
return {
|
|
7
|
+
product: "xoonya",
|
|
8
|
+
category: "proof-auth-interop-contract",
|
|
9
|
+
contract_version: "xoonya-auth-interop-contract-v1",
|
|
10
|
+
service_version: pkg.version,
|
|
11
|
+
primary_posture: "proof_verification_with_oauth_oidc_and_token_exchange_interop",
|
|
12
|
+
supported_interop_profiles: [
|
|
13
|
+
{
|
|
14
|
+
profile_id: "proof_verifier_client_credentials",
|
|
15
|
+
standards: ["oauth_2_0", "oidc_optional"],
|
|
16
|
+
intended_use: "machine verifier access to proof verification surfaces",
|
|
17
|
+
primary_routes: ["/v1/receipts/verify", "/v1/proof-bundles/verify"]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
profile_id: "runtime_to_proof_handoff_token_exchange",
|
|
21
|
+
standards: ["oauth_2_0_token_exchange", "jwt_bearer_optional"],
|
|
22
|
+
intended_use: "map runtime-side bearer posture into bounded proof-side review and bridge intake",
|
|
23
|
+
primary_routes: ["/v1/proof-center/bridge/economic-handoff"]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
profile_id: "proof_role_governance_interop",
|
|
27
|
+
standards: ["oauth_2_0", "oidc"],
|
|
28
|
+
intended_use: "operator and reviewer access to frozen proof-role and governance surfaces",
|
|
29
|
+
primary_routes: ["/v1/role-freeze", "/v1/role-freeze/package"]
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
native_proof_mapping: {
|
|
33
|
+
proof_verify: "/v1/proof-bundles/verify",
|
|
34
|
+
receipt_verify: "/v1/receipts/verify",
|
|
35
|
+
bridge_economic_handoff: "/v1/proof-center/bridge/economic-handoff",
|
|
36
|
+
role_freeze_package: "/v1/role-freeze/package"
|
|
37
|
+
},
|
|
38
|
+
guardrails: [
|
|
39
|
+
"proof verification semantics remain canonical inside xoonya rather than inside bearer tokens",
|
|
40
|
+
"token exchange may convey bounded review posture but must not redefine proof truth",
|
|
41
|
+
"bridge intake auth must remain subordinate to proof-side review and governance checks"
|
|
42
|
+
],
|
|
43
|
+
linked_surfaces: {
|
|
44
|
+
openapi_ref: "/openapi.json",
|
|
45
|
+
asyncapi_ref: "/asyncapi.json",
|
|
46
|
+
cloudevents_ref: "/cloudevents.json",
|
|
47
|
+
service_contract_ref: "SERVICE_CONTRACT.md"
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function summarizeAuthInteropContract() {
|
|
53
|
+
const contract = buildAuthInteropContract();
|
|
54
|
+
return {
|
|
55
|
+
product: "xoonya",
|
|
56
|
+
category: "proof-auth-interop-contract-summary",
|
|
57
|
+
summary_version: "xoonya-auth-interop-contract-summary-v1",
|
|
58
|
+
contract_version: contract.contract_version,
|
|
59
|
+
profile_count: contract.supported_interop_profiles.length,
|
|
60
|
+
primary_posture: contract.primary_posture,
|
|
61
|
+
primary_protocol_lanes: ["proof_verify", "receipt_verify", "bridge"],
|
|
62
|
+
linked_surfaces: contract.linked_surfaces
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
module.exports = {
|
|
67
|
+
buildAuthInteropContract,
|
|
68
|
+
summarizeAuthInteropContract
|
|
69
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const pkg = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildCloudEventsContract() {
|
|
6
|
+
return {
|
|
7
|
+
product: "xoonya",
|
|
8
|
+
category: "proof-cloudevents-contract",
|
|
9
|
+
contract_version: "xoonya-cloudevents-contract-v1",
|
|
10
|
+
specversion: "1.0",
|
|
11
|
+
service_version: pkg.version,
|
|
12
|
+
envelope: {
|
|
13
|
+
required_attributes: ["specversion", "id", "source", "type", "time", "subject", "datacontenttype", "data"],
|
|
14
|
+
datacontenttype_default: "application/json",
|
|
15
|
+
source_prefix: "urn:naxytra:xoonya",
|
|
16
|
+
id_shape: "evt_<opaque_id>",
|
|
17
|
+
time_format: "RFC3339"
|
|
18
|
+
},
|
|
19
|
+
event_families: [
|
|
20
|
+
{
|
|
21
|
+
type: "io.naxytra.xoonya.event.canonicalized",
|
|
22
|
+
source: "urn:naxytra:xoonya:events",
|
|
23
|
+
subject: "event.canonicalized"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
type: "io.naxytra.xoonya.event.hashed",
|
|
27
|
+
source: "urn:naxytra:xoonya:events",
|
|
28
|
+
subject: "event.hashed"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: "io.naxytra.xoonya.receipt.emitted",
|
|
32
|
+
source: "urn:naxytra:xoonya:receipts",
|
|
33
|
+
subject: "receipt.emitted"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: "io.naxytra.xoonya.proof_bundle.built",
|
|
37
|
+
source: "urn:naxytra:xoonya:proof_bundles",
|
|
38
|
+
subject: "proof_bundle.built"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: "io.naxytra.xoonya.bridge.economic_handoff.accepted",
|
|
42
|
+
source: "urn:naxytra:xoonya:bridge",
|
|
43
|
+
subject: "bridge.economic_handoff"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
stable_http_surfaces: [
|
|
47
|
+
"/v1/events/canonicalize",
|
|
48
|
+
"/v1/events/hash",
|
|
49
|
+
"/v1/receipts/emit",
|
|
50
|
+
"/v1/proof-bundles/build",
|
|
51
|
+
"/v1/proof-center/bridge/economic-handoff"
|
|
52
|
+
],
|
|
53
|
+
linked_surfaces: {
|
|
54
|
+
openapi_ref: "/openapi.json",
|
|
55
|
+
asyncapi_ref: "/asyncapi.json",
|
|
56
|
+
service_contract_ref: "SERVICE_CONTRACT.md"
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function summarizeCloudEventsContract() {
|
|
62
|
+
const contract = buildCloudEventsContract();
|
|
63
|
+
return {
|
|
64
|
+
product: "xoonya",
|
|
65
|
+
category: "proof-cloudevents-contract-summary",
|
|
66
|
+
summary_version: "xoonya-cloudevents-contract-summary-v1",
|
|
67
|
+
specversion: contract.specversion,
|
|
68
|
+
contract_version: contract.contract_version,
|
|
69
|
+
event_family_count: contract.event_families.length,
|
|
70
|
+
stable_surface_count: contract.stable_http_surfaces.length,
|
|
71
|
+
primary_event_lanes: ["canonicalization", "proof_bundle", "bridge"],
|
|
72
|
+
linked_surfaces: contract.linked_surfaces
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
module.exports = {
|
|
77
|
+
buildCloudEventsContract,
|
|
78
|
+
summarizeCloudEventsContract
|
|
79
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const {
|
|
4
|
+
buildPhase4Erc8004ProofPack,
|
|
5
|
+
summarizePhase4Erc8004ProofPack
|
|
6
|
+
} = require("./phase_4_erc8004_proof_pack");
|
|
7
|
+
|
|
8
|
+
function buildErc8004ProofLanePack() {
|
|
9
|
+
const phasePack = buildPhase4Erc8004ProofPack();
|
|
10
|
+
return {
|
|
11
|
+
product: "xoonya",
|
|
12
|
+
category: "proof-erc8004-lane-pack",
|
|
13
|
+
pack_version: "xoonya-erc8004-lane-pack-v1",
|
|
14
|
+
lane_state: "first_party_erc8004_proof_present",
|
|
15
|
+
posture: "identity_and_attestation_proof_interop_lane",
|
|
16
|
+
phase_alignment: {
|
|
17
|
+
phase_ref: phasePack.phase_ref,
|
|
18
|
+
phase_proof_pack: phasePack,
|
|
19
|
+
phase_proof_summary: summarizePhase4Erc8004ProofPack()
|
|
20
|
+
},
|
|
21
|
+
supported_surfaces: {
|
|
22
|
+
phase_proof_ref: "/v1/phases/phase-4/erc8004/proof",
|
|
23
|
+
phase_proof_summary_ref: "/v1/phases/phase-4/erc8004/proof/summary",
|
|
24
|
+
identity_interop_ref: "/v1/identity-interop",
|
|
25
|
+
bridge_summary_ref: "/v1/proof-center/bridge/summary",
|
|
26
|
+
trust_intelligence_ref: "/v1/trust-intelligence/summary"
|
|
27
|
+
},
|
|
28
|
+
first_run_flows: [
|
|
29
|
+
{
|
|
30
|
+
flow_ref: "erc8004.attestation_proof_view",
|
|
31
|
+
recommended_reason: "best first proof-facing trust lane for attestation, subject binding, and policy carry review",
|
|
32
|
+
sequence: [
|
|
33
|
+
"inspect_erc8004_proof_lane_summary",
|
|
34
|
+
"inspect_identity_interop_contract",
|
|
35
|
+
"inspect_bridge_summary",
|
|
36
|
+
"inspect_trust_intelligence_summary"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
guardrails: [
|
|
41
|
+
"erc8004 is an interop lane rather than the canonical source of proof truth",
|
|
42
|
+
"native proof review and attestation semantics remain canonical inside xoonya",
|
|
43
|
+
"erc8004 posture should improve external verifier trust without turning xoonya into a generic credential wallet"
|
|
44
|
+
]
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function summarizeErc8004ProofLanePack() {
|
|
49
|
+
const pack = buildErc8004ProofLanePack();
|
|
50
|
+
return {
|
|
51
|
+
product: "xoonya",
|
|
52
|
+
category: "proof-erc8004-lane-pack-summary",
|
|
53
|
+
summary_version: "xoonya-erc8004-lane-pack-summary-v1",
|
|
54
|
+
lane_state: pack.lane_state,
|
|
55
|
+
posture: pack.posture,
|
|
56
|
+
first_run_flow_count: pack.first_run_flows.length,
|
|
57
|
+
linked_surfaces: pack.supported_surfaces
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
module.exports = {
|
|
62
|
+
buildErc8004ProofLanePack,
|
|
63
|
+
summarizeErc8004ProofLanePack
|
|
64
|
+
};
|