xoonya 2.14.0 → 2.15.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 +30 -0
- package/RELEASE_NOTES.md +5 -4
- package/START_HERE.md +22 -1
- package/XOONYA_DEFAULT_PATH_MODEL.md +63 -0
- package/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md +63 -0
- package/XOONYA_PROOF_TRUTH_MODEL.md +58 -0
- package/index.js +3 -0
- package/lib/default_path_contract.js +380 -0
- package/lib/followthrough_truth_contract.js +214 -0
- package/lib/proof_truth_contract.js +224 -0
- package/lib/release_history.js +13 -0
- package/package.json +4 -1
- package/scripts/verify_service.js +59 -0
- package/server.js +99 -0
package/README.md
CHANGED
|
@@ -43,6 +43,36 @@ The shortest public proof loop is:
|
|
|
43
43
|
- emit a durable proof bundle
|
|
44
44
|
- preserve governance and continuity context when needed
|
|
45
45
|
|
|
46
|
+
The frozen proof-side fact model for `3.0.0` closeout is documented in:
|
|
47
|
+
|
|
48
|
+
- [XOONYA_PROOF_TRUTH_MODEL.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xoonya/XOONYA_PROOF_TRUTH_MODEL.md)
|
|
49
|
+
|
|
50
|
+
Machine-readable proof-truth surfaces:
|
|
51
|
+
|
|
52
|
+
- `GET /v1/proof-truth`
|
|
53
|
+
- `GET /v1/proof-truth/summary`
|
|
54
|
+
- `GET /v1/proof-truth/:object_id`
|
|
55
|
+
|
|
56
|
+
The frozen multi-surface proof default-path model for `3.0.0` closeout is documented in:
|
|
57
|
+
|
|
58
|
+
- [XOONYA_DEFAULT_PATH_MODEL.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xoonya/XOONYA_DEFAULT_PATH_MODEL.md)
|
|
59
|
+
|
|
60
|
+
Machine-readable proof default-path surfaces:
|
|
61
|
+
|
|
62
|
+
- `GET /v1/default-path`
|
|
63
|
+
- `GET /v1/default-path/summary`
|
|
64
|
+
- `GET /v1/default-path/:surface_id`
|
|
65
|
+
|
|
66
|
+
The frozen bridge, governance, trust-portability, and verification followthrough boundary for `3.0.0` closeout is documented in:
|
|
67
|
+
|
|
68
|
+
- [XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/xoonya/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md)
|
|
69
|
+
|
|
70
|
+
Machine-readable followthrough-truth surfaces:
|
|
71
|
+
|
|
72
|
+
- `GET /v1/followthrough-truth`
|
|
73
|
+
- `GET /v1/followthrough-truth/summary`
|
|
74
|
+
- `GET /v1/followthrough-truth/:profile_id`
|
|
75
|
+
|
|
46
76
|
The current proof breadth already includes:
|
|
47
77
|
|
|
48
78
|
- canonical events, receipts, and proof bundles
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
`xoonya` 2.
|
|
1
|
+
`xoonya` 2.15.0 is the final intermediary closeout release for frozen proof truth surfaces and clearer proof-side first contact before the final major closeout.
|
|
2
2
|
|
|
3
|
-
This release keeps the synchronized public-release bundle intact while
|
|
3
|
+
This release keeps the synchronized public-release bundle intact while freezing the proof-side truth models, tightening umbrella first-contact alignment, and turning the proof-side story into one coherent final intermediary step before the final major closeout.
|
|
4
4
|
|
|
5
5
|
Highlights:
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
7
|
+
- freezes `/v1/proof-truth` and `/v1/proof-truth/summary` as the named proof object boundary
|
|
8
|
+
- freezes `/v1/default-path` and `/v1/default-path/summary` as the named proof-side multi-surface entry boundary
|
|
9
|
+
- freezes `/v1/followthrough-truth` and `/v1/followthrough-truth/summary` as the named bridge, governance, portability, and verification claim boundary
|
|
9
10
|
- keeps verification services, trust-portability surfaces, governance/dispute visibility, and reference-implementation posture aligned with the same synchronized public release line
|
|
10
11
|
- preserves XNYA-compatible conformance, native reference implementation boundaries, external proof import boundaries, and the PQ/hybrid design gate
|
|
11
12
|
- strengthens the native-standard, payload-profile, line-rate-frame, and conformance-mark story as one discoverable proof stack
|
package/START_HERE.md
CHANGED
|
@@ -4,7 +4,7 @@ This is the shortest reliable path for understanding and using the public `xoony
|
|
|
4
4
|
|
|
5
5
|
The phase program is now complete, so this file is the right starting point for a closed and release-shaped proof system rather than an in-flight milestone build.
|
|
6
6
|
|
|
7
|
-
The next public release path is intentionally intermediary and is now centered on the paired `2.
|
|
7
|
+
The next public release path is intentionally intermediary and is now centered on the paired `2.15.0` final intermediary closeout milestone documented in [RELEASE_2_15_0_FINAL_INTERMEDIARY_CLOSEOUT_PLAN.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_naxytra/naxytra/docs/release/RELEASE_2_15_0_FINAL_INTERMEDIARY_CLOSEOUT_PLAN.md) and [PUBLISH_PLAN.md](C:/Users/Yoga/Desktop/workspace/vscode_workspace_public/naxytra/xoonya/PUBLISH_PLAN.md). That release is meant to freeze the proof-side public truth surfaces before the final `3.0.0` consolidation.
|
|
8
8
|
|
|
9
9
|
## 1. Understand The Role
|
|
10
10
|
|
|
@@ -29,6 +29,27 @@ Then run the local proof followthrough:
|
|
|
29
29
|
xoonya first-run --verify-native --pretty
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
If you want the frozen machine-readable proof-truth contract behind that flow, inspect:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
GET /v1/proof-truth
|
|
36
|
+
GET /v1/proof-truth/summary
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
If you want the frozen machine-readable proof default-path contract behind that flow, inspect:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
GET /v1/default-path
|
|
43
|
+
GET /v1/default-path/summary
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If you want the frozen machine-readable followthrough claim boundary behind that flow, inspect:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
GET /v1/followthrough-truth
|
|
50
|
+
GET /v1/followthrough-truth/summary
|
|
51
|
+
```
|
|
52
|
+
|
|
32
53
|
## 2. Run The Fastest Real Example
|
|
33
54
|
|
|
34
55
|
Run:
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# xoonya Default Path Model
|
|
2
|
+
|
|
3
|
+
`xoonya` should feel immediate from the surface the caller already uses.
|
|
4
|
+
|
|
5
|
+
For `3.0.0`, the public proof story cannot only live across scattered review routes and helper commands.
|
|
6
|
+
|
|
7
|
+
It needs one frozen answer to:
|
|
8
|
+
|
|
9
|
+
- how a caller brings proof-side input in
|
|
10
|
+
- how they review it
|
|
11
|
+
- how they verify or run proof followthrough
|
|
12
|
+
- how they emit durable proof artifacts
|
|
13
|
+
- how bridge and governance followthrough remain attached
|
|
14
|
+
|
|
15
|
+
## Core Rule
|
|
16
|
+
|
|
17
|
+
All supported proof entry surfaces must converge on one spine:
|
|
18
|
+
|
|
19
|
+
`receive -> review -> run/emit -> verify -> inspect/governance`
|
|
20
|
+
|
|
21
|
+
Surface-specific ergonomics are allowed.
|
|
22
|
+
Surface-specific proof truth models are not.
|
|
23
|
+
|
|
24
|
+
## Supported Surface Families
|
|
25
|
+
|
|
26
|
+
The frozen `3.0.0` default-path model covers:
|
|
27
|
+
|
|
28
|
+
- CLI and terminal
|
|
29
|
+
- direct API
|
|
30
|
+
- carried handoff review
|
|
31
|
+
- native proof loop
|
|
32
|
+
- service-to-service and embedded review
|
|
33
|
+
|
|
34
|
+
## What Changes Across Surfaces
|
|
35
|
+
|
|
36
|
+
What may change:
|
|
37
|
+
|
|
38
|
+
- the first entrypoint
|
|
39
|
+
- whether the caller starts from a handoff review, a proof loop, or a verification command
|
|
40
|
+
- whether output is returned as CLI JSON, API JSON, or embedded review state
|
|
41
|
+
|
|
42
|
+
What must not change:
|
|
43
|
+
|
|
44
|
+
- proof truth
|
|
45
|
+
- review posture
|
|
46
|
+
- verification posture
|
|
47
|
+
- bridge carry
|
|
48
|
+
- governance followthrough
|
|
49
|
+
|
|
50
|
+
## Machine-Readable Surfaces
|
|
51
|
+
|
|
52
|
+
- `GET /v1/default-path`
|
|
53
|
+
- `GET /v1/default-path/summary`
|
|
54
|
+
- `GET /v1/default-path/:surface_id`
|
|
55
|
+
|
|
56
|
+
## Launch Standard
|
|
57
|
+
|
|
58
|
+
For `3.0.0`, this model is considered real only if:
|
|
59
|
+
|
|
60
|
+
- each listed surface has a callable first path
|
|
61
|
+
- each listed surface can review or verify before claiming completion
|
|
62
|
+
- each listed surface converges into the shared proof truth model
|
|
63
|
+
- each listed surface can preserve bridge and governance followthrough where needed
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# xoonya Followthrough Truth Model
|
|
2
|
+
|
|
3
|
+
`xoonya` cannot reach a truthful `3.0.0` if its followthrough story is left as scattered bridge, governance, trust-portability, and verification endpoints.
|
|
4
|
+
|
|
5
|
+
For the public launch line, it needs one frozen answer to:
|
|
6
|
+
|
|
7
|
+
- what proof-side followthrough is publicly claimable
|
|
8
|
+
- what trust portability is real and bounded
|
|
9
|
+
- what bridge carry is real and bounded
|
|
10
|
+
- what governance and dispute posture is real and bounded
|
|
11
|
+
- what must remain outside the public `xoonya` claim boundary
|
|
12
|
+
|
|
13
|
+
## Core Rule
|
|
14
|
+
|
|
15
|
+
All public followthrough claims must stay inside one bounded proof-side truth:
|
|
16
|
+
|
|
17
|
+
`verify -> carry -> review -> govern -> preserve continuity`
|
|
18
|
+
|
|
19
|
+
`xoonya` may expose many helper routes.
|
|
20
|
+
It may not imply unbounded scope.
|
|
21
|
+
|
|
22
|
+
## Covered Followthrough Families
|
|
23
|
+
|
|
24
|
+
The frozen `3.0.0` followthrough truth model covers:
|
|
25
|
+
|
|
26
|
+
- verification services
|
|
27
|
+
- trust portability
|
|
28
|
+
- bridge followthrough
|
|
29
|
+
- governance followthrough
|
|
30
|
+
|
|
31
|
+
## What This Model Allows Us To Claim
|
|
32
|
+
|
|
33
|
+
We can publicly claim:
|
|
34
|
+
|
|
35
|
+
- proof bundles, receipts, and handoffs can be verified and replayed through real public surfaces
|
|
36
|
+
- trust can remain portable across the listed identity, delegation, delivery, and settlement-linked review lanes
|
|
37
|
+
- bridge carry can preserve operator and compatibility review without becoming the runtime owner
|
|
38
|
+
- governance can preserve disputes, signoff, interpretation, and handoff continuity without pretending to be universal legal truth
|
|
39
|
+
|
|
40
|
+
## What This Model Does Not Allow Us To Claim
|
|
41
|
+
|
|
42
|
+
We do not publicly claim:
|
|
43
|
+
|
|
44
|
+
- unbounded runtime execution truth
|
|
45
|
+
- universal external chain truth
|
|
46
|
+
- universal custody truth
|
|
47
|
+
- universal identity truth
|
|
48
|
+
- universal legal or regulatory judgment truth
|
|
49
|
+
|
|
50
|
+
## Machine-Readable Surfaces
|
|
51
|
+
|
|
52
|
+
- `GET /v1/followthrough-truth`
|
|
53
|
+
- `GET /v1/followthrough-truth/summary`
|
|
54
|
+
- `GET /v1/followthrough-truth/:profile_id`
|
|
55
|
+
|
|
56
|
+
## Launch Standard
|
|
57
|
+
|
|
58
|
+
For `3.0.0`, this model is considered real only if:
|
|
59
|
+
|
|
60
|
+
- each listed profile has callable first-party surfaces
|
|
61
|
+
- each listed profile stays attached to proof truth and proof review
|
|
62
|
+
- each listed profile has an explicit claim boundary
|
|
63
|
+
- no launch copy overstates `xoonya` beyond these frozen followthrough profiles
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# xoonya Proof Truth Model
|
|
2
|
+
|
|
3
|
+
`xoonya` is the proof-side truth layer for the public stack.
|
|
4
|
+
|
|
5
|
+
For `3.0.0`, that has to be explicit, not implied from many helper surfaces.
|
|
6
|
+
|
|
7
|
+
## Core Rule
|
|
8
|
+
|
|
9
|
+
The proof-side spine is:
|
|
10
|
+
|
|
11
|
+
`canonical event -> receipt -> proof bundle -> reviewable handoff -> verification -> bridge/governance followthrough`
|
|
12
|
+
|
|
13
|
+
`xoonya` may expose many routes, but they all need to converge on that same truth model.
|
|
14
|
+
|
|
15
|
+
## What xoonya Owns
|
|
16
|
+
|
|
17
|
+
`xoonya` owns:
|
|
18
|
+
|
|
19
|
+
- deterministic proof construction
|
|
20
|
+
- canonical proof verification
|
|
21
|
+
- native `XNYA` compact evidence artifacts
|
|
22
|
+
- reviewable runtime-to-proof handoff continuation
|
|
23
|
+
- bridge carry and proof-adjacent operator review
|
|
24
|
+
- governance and dispute followthrough
|
|
25
|
+
|
|
26
|
+
It does not own:
|
|
27
|
+
|
|
28
|
+
- runtime pricing
|
|
29
|
+
- runtime execution truth
|
|
30
|
+
- treasury or payment control planes
|
|
31
|
+
- universal external chain, identity, or legal judgment truth
|
|
32
|
+
|
|
33
|
+
## Canonical Objects
|
|
34
|
+
|
|
35
|
+
The frozen `3.0.0` proof truth model centers on:
|
|
36
|
+
|
|
37
|
+
- `canonical_event_bundle`
|
|
38
|
+
- `receipt`
|
|
39
|
+
- `proof_bundle`
|
|
40
|
+
- `xnya_native_artifact`
|
|
41
|
+
- `proof_handoff_review`
|
|
42
|
+
- `bridge_and_governance_followthrough`
|
|
43
|
+
|
|
44
|
+
## Machine-Readable Surfaces
|
|
45
|
+
|
|
46
|
+
- `GET /v1/proof-truth`
|
|
47
|
+
- `GET /v1/proof-truth/summary`
|
|
48
|
+
- `GET /v1/proof-truth/:object_id`
|
|
49
|
+
|
|
50
|
+
## Launch Standard
|
|
51
|
+
|
|
52
|
+
For `3.0.0`, this model is real only if:
|
|
53
|
+
|
|
54
|
+
- the proof core is deterministic and replayable
|
|
55
|
+
- `XNYA` remains a first-class native evidence family
|
|
56
|
+
- runtime handoffs can continue into review and proof without dead-end loss
|
|
57
|
+
- verification services are visible and callable
|
|
58
|
+
- bridge and governance followthrough remain bounded, reviewable, and explicit
|
package/index.js
CHANGED
|
@@ -5,6 +5,9 @@ module.exports = {
|
|
|
5
5
|
...require("./integrations/registry"),
|
|
6
6
|
...require("./lib/verification_service_pack"),
|
|
7
7
|
...require("./lib/trust_portability_pack"),
|
|
8
|
+
...require("./lib/proof_truth_contract"),
|
|
9
|
+
...require("./lib/default_path_contract"),
|
|
10
|
+
...require("./lib/followthrough_truth_contract"),
|
|
8
11
|
...require("./lib/governance_disputes_summary"),
|
|
9
12
|
...require("./lib/release_pack"),
|
|
10
13
|
...require("./lib/release_manifest"),
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
const proofSdk = require("../proof_sdk");
|
|
5
|
+
const { summarizeProofTruthModelPack } = require("./proof_truth_contract");
|
|
6
|
+
const { summarizeVerificationServicesPack } = require("./verification_service_pack");
|
|
7
|
+
const { summarizeTrustPortabilityPack } = require("./trust_portability_pack");
|
|
8
|
+
|
|
9
|
+
function uniqueSorted(values) {
|
|
10
|
+
return Array.from(new Set((Array.isArray(values) ? values : []).filter(Boolean))).sort();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function buildStages(stageEntries) {
|
|
14
|
+
return (Array.isArray(stageEntries) ? stageEntries : []).map((entry, index) => ({
|
|
15
|
+
stage_index: index + 1,
|
|
16
|
+
...entry
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function buildSurface(entry) {
|
|
21
|
+
const stages = buildStages(entry.stages);
|
|
22
|
+
return {
|
|
23
|
+
surface_id: entry.surface_id,
|
|
24
|
+
surface_label: entry.surface_label,
|
|
25
|
+
surface_kind: entry.surface_kind,
|
|
26
|
+
interaction_modes: uniqueSorted(entry.interaction_modes),
|
|
27
|
+
actor_classes: uniqueSorted(entry.actor_classes),
|
|
28
|
+
real_time_ready: true,
|
|
29
|
+
review_ready: stages.some((stage) => stage.stage_id === "review"),
|
|
30
|
+
verify_ready: stages.some((stage) => stage.stage_id === "verify"),
|
|
31
|
+
proof_emit_ready: stages.some((stage) => stage.stage_id === "emit" || stage.stage_id === "run"),
|
|
32
|
+
governance_followthrough_ready: stages.some((stage) => stage.stage_id === "governance" || stage.stage_id === "inspect"),
|
|
33
|
+
stage_count: stages.length,
|
|
34
|
+
primary_entrypoints: uniqueSorted(entry.primary_entrypoints),
|
|
35
|
+
primary_output_posture: entry.primary_output_posture,
|
|
36
|
+
default_loop_or_followthrough_ref: entry.default_loop_or_followthrough_ref,
|
|
37
|
+
stages,
|
|
38
|
+
supporting_surfaces: uniqueSorted(entry.supporting_surfaces),
|
|
39
|
+
claim_boundary: entry.claim_boundary
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function buildDefaultPathPack() {
|
|
44
|
+
const proofTruthSummary = summarizeProofTruthModelPack();
|
|
45
|
+
const proofCenterSummary = proofSdk.summarizeDefaultProofCenter();
|
|
46
|
+
const proofLoopSummary = proofSdk.summarizeDefaultProofLoops();
|
|
47
|
+
const resultPackageHandoffSummary = proofSdk.summarizeInteractionResultPackageHandoffCenter();
|
|
48
|
+
const bridgeSummary = proofSdk.summarizeBridgeCenter();
|
|
49
|
+
const governanceSummary = proofSdk.summarizeGovernanceCenter();
|
|
50
|
+
const verificationServicesSummary = summarizeVerificationServicesPack();
|
|
51
|
+
const trustPortabilitySummary = summarizeTrustPortabilityPack();
|
|
52
|
+
|
|
53
|
+
const surfaces = [
|
|
54
|
+
buildSurface({
|
|
55
|
+
surface_id: "cli_terminal",
|
|
56
|
+
surface_label: "CLI and terminal",
|
|
57
|
+
surface_kind: "human_or_operator_shell_surface",
|
|
58
|
+
interaction_modes: ["cli", "terminal"],
|
|
59
|
+
actor_classes: ["human", "operator", "developer", "agent"],
|
|
60
|
+
primary_entrypoints: [
|
|
61
|
+
"xoonya start-here",
|
|
62
|
+
"xoonya first-run --verify-native --pretty",
|
|
63
|
+
"xoonya-review --file ./handoff.json --summary",
|
|
64
|
+
"xoonya conformance --json"
|
|
65
|
+
],
|
|
66
|
+
primary_output_posture: "stdout_json_review_and_local_verification_summary",
|
|
67
|
+
default_loop_or_followthrough_ref: "default.proof.bundle.loop",
|
|
68
|
+
stages: [
|
|
69
|
+
{
|
|
70
|
+
stage_id: "receive",
|
|
71
|
+
surface_ref: "xoonya start-here",
|
|
72
|
+
expected_outcome: "outside builder or operator discovers the proof-side default path immediately after install"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
stage_id: "review",
|
|
76
|
+
surface_ref: "xoonya-review --file ./handoff.json --summary",
|
|
77
|
+
expected_outcome: "carried runtime handoff becomes a concise reviewable proof-side intake"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
stage_id: "verify",
|
|
81
|
+
surface_ref: "xoonya first-run --verify-native --pretty",
|
|
82
|
+
expected_outcome: "local native verification confirms xoonya proof binding and conformance posture"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
stage_id: "emit",
|
|
86
|
+
surface_ref: "xoonya conformance --json",
|
|
87
|
+
expected_outcome: "operator can confirm proof bundle and native artifact posture from the same shell surface"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
stage_id: "inspect",
|
|
91
|
+
surface_ref: "/v1/proof-center/governance/summary",
|
|
92
|
+
expected_outcome: "governance and continuity posture remain inspectable after proof review and verification"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
supporting_surfaces: [
|
|
96
|
+
"https://www.naxytra.com/v1/first-run-kit",
|
|
97
|
+
"/v1/proof-center/summary",
|
|
98
|
+
"/v1/proof-center/native-standard/summary",
|
|
99
|
+
"/v1/proof-center/result-package-handoff/review/summary"
|
|
100
|
+
],
|
|
101
|
+
claim_boundary: "claim_cli_terminal_default_path_only_for_the_listed_review_verify_emit_and_inspection_surfaces_not_as_unbounded_external_chain_or_identity_truth"
|
|
102
|
+
}),
|
|
103
|
+
buildSurface({
|
|
104
|
+
surface_id: "direct_api",
|
|
105
|
+
surface_label: "Direct API",
|
|
106
|
+
surface_kind: "http_api_surface",
|
|
107
|
+
interaction_modes: ["api", "http"],
|
|
108
|
+
actor_classes: ["agent", "machine", "developer", "enterprise"],
|
|
109
|
+
primary_entrypoints: [
|
|
110
|
+
"/v1/proof-center",
|
|
111
|
+
"/v1/proof-bundles/build",
|
|
112
|
+
"/v1/proof-bundles/verify"
|
|
113
|
+
],
|
|
114
|
+
primary_output_posture: "json_proof_bundle_and_verification_result",
|
|
115
|
+
default_loop_or_followthrough_ref: "/v1/proof-center/default-loops/run",
|
|
116
|
+
stages: [
|
|
117
|
+
{
|
|
118
|
+
stage_id: "receive",
|
|
119
|
+
surface_ref: "/v1/proof-center/summary",
|
|
120
|
+
expected_outcome: "caller discovers the canonical proof center and proof model through machine-readable HTTP surfaces"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
stage_id: "review",
|
|
124
|
+
surface_ref: "/v1/proof-center/result-package-handoff/review/summary",
|
|
125
|
+
expected_outcome: "runtime handoff becomes reviewable before proof emission"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
stage_id: "run",
|
|
129
|
+
surface_ref: "/v1/proof-center/default-loops/run",
|
|
130
|
+
expected_outcome: "application can emit and verify the canonical proof-native loop in one API path"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
stage_id: "verify",
|
|
134
|
+
surface_ref: "/v1/proof-bundles/verify",
|
|
135
|
+
expected_outcome: "proof output is verified through the same public API spine"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
stage_id: "inspect",
|
|
139
|
+
surface_ref: "/v1/proof-center/verification-services/summary",
|
|
140
|
+
expected_outcome: "verification service and followthrough posture remain externally inspectable"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
supporting_surfaces: [
|
|
144
|
+
"/openapi.json",
|
|
145
|
+
"/v1/proof-center/default-loops/summary",
|
|
146
|
+
"/v1/proof-center/native-standard/summary",
|
|
147
|
+
"/v1/proof-center/trust-portability/summary"
|
|
148
|
+
],
|
|
149
|
+
claim_boundary: "claim_direct_api_default_path_only_for_the_listed_proof_core_review_run_verify_and_inspection_surfaces_not_as_unbounded_external_verifier_or_judgment_truth"
|
|
150
|
+
}),
|
|
151
|
+
buildSurface({
|
|
152
|
+
surface_id: "carried_handoff_review",
|
|
153
|
+
surface_label: "Carried handoff review",
|
|
154
|
+
surface_kind: "runtime_to_proof_continuation_surface",
|
|
155
|
+
interaction_modes: ["handoff", "review", "continuation"],
|
|
156
|
+
actor_classes: ["agent", "machine", "human", "enterprise", "operator"],
|
|
157
|
+
primary_entrypoints: [
|
|
158
|
+
"/v1/proof-center/result-package-handoff",
|
|
159
|
+
"/v1/proof-center/result-package-handoff/review/summary",
|
|
160
|
+
"/v1/proof-center/result-package-handoff/run"
|
|
161
|
+
],
|
|
162
|
+
primary_output_posture: "review_summary_then_proof_continuation_bundle",
|
|
163
|
+
default_loop_or_followthrough_ref: "/v1/proof-center/result-package-handoff/run",
|
|
164
|
+
stages: [
|
|
165
|
+
{
|
|
166
|
+
stage_id: "receive",
|
|
167
|
+
surface_ref: "/v1/proof-center/result-package-handoff/summary",
|
|
168
|
+
expected_outcome: "caller discovers the stable runtime-to-proof continuation boundary"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
stage_id: "review",
|
|
172
|
+
surface_ref: "/v1/proof-center/result-package-handoff/review/summary",
|
|
173
|
+
expected_outcome: "handoff bundle is reviewed for carry, boundary, and proof readiness"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
stage_id: "run",
|
|
177
|
+
surface_ref: "/v1/proof-center/result-package-handoff/run",
|
|
178
|
+
expected_outcome: "reviewed handoff continues into canonical proof-side completion"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
stage_id: "verify",
|
|
182
|
+
surface_ref: "/v1/proof-center/verification-services/summary",
|
|
183
|
+
expected_outcome: "verification posture for the carried handoff remains first-class and inspectable"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
stage_id: "governance",
|
|
187
|
+
surface_ref: "/v1/proof-center/bridge/summary",
|
|
188
|
+
expected_outcome: "bridge carry and operator review posture remain attached to the continuation path"
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
supporting_surfaces: [
|
|
192
|
+
"/v1/proof-center/result-package-handoff/review/bridge-summary",
|
|
193
|
+
"/v1/proof-center/governance/summary",
|
|
194
|
+
"/v1/proof-center/trust-portability/summary"
|
|
195
|
+
],
|
|
196
|
+
claim_boundary: "claim_carried_handoff_review_only_for_the_listed_review_run_bridge_and_governance_surfaces_not_as_generic_runtime_execution_truth"
|
|
197
|
+
}),
|
|
198
|
+
buildSurface({
|
|
199
|
+
surface_id: "native_proof_loop",
|
|
200
|
+
surface_label: "Native proof loop",
|
|
201
|
+
surface_kind: "proof_native_surface",
|
|
202
|
+
interaction_modes: ["proof_native", "xnya", "bundle"],
|
|
203
|
+
actor_classes: ["developer", "agent", "machine", "human"],
|
|
204
|
+
primary_entrypoints: [
|
|
205
|
+
"/v1/proof-center/default-loops",
|
|
206
|
+
"/v1/proof-center/default-loops/run",
|
|
207
|
+
"/v1/proof-center/native-standard/summary"
|
|
208
|
+
],
|
|
209
|
+
primary_output_posture: "deterministic_proof_bundle_or_receipt_loop_output",
|
|
210
|
+
default_loop_or_followthrough_ref: "default.proof.bundle.loop",
|
|
211
|
+
stages: [
|
|
212
|
+
{
|
|
213
|
+
stage_id: "receive",
|
|
214
|
+
surface_ref: "/v1/proof-center/default-loops/summary",
|
|
215
|
+
expected_outcome: "builder sees the default proof-native loops and their canonical stages"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
stage_id: "review",
|
|
219
|
+
surface_ref: "/v1/proof-center/native-standard/summary",
|
|
220
|
+
expected_outcome: "native XNYA and proof-standard posture is inspected before emitting proof artifacts"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
stage_id: "run",
|
|
224
|
+
surface_ref: "/v1/proof-center/default-loops/run",
|
|
225
|
+
expected_outcome: "proof bundle loop executes through the canonical proof center"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
stage_id: "verify",
|
|
229
|
+
surface_ref: "/v1/proof-bundles/verify",
|
|
230
|
+
expected_outcome: "proof output is verified through the canonical bundle contract"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
stage_id: "inspect",
|
|
234
|
+
surface_ref: "/v1/proof-center/native-anchor-profile/summary",
|
|
235
|
+
expected_outcome: "native anchor-binding and followthrough posture remain visible after proof emission"
|
|
236
|
+
}
|
|
237
|
+
],
|
|
238
|
+
supporting_surfaces: [
|
|
239
|
+
"/v1/proof-center/native-atom-spec/summary",
|
|
240
|
+
"/v1/proof-center/native-payload-profile/summary",
|
|
241
|
+
"/v1/proof-center/native-conformance-mark/summary"
|
|
242
|
+
],
|
|
243
|
+
claim_boundary: "claim_native_proof_loop_only_for_the_listed_xnya_and_bundle_surfaces_not_as_forced_identity_or_auth_replacement"
|
|
244
|
+
}),
|
|
245
|
+
buildSurface({
|
|
246
|
+
surface_id: "service_to_service",
|
|
247
|
+
surface_label: "Service-to-service and embedded review",
|
|
248
|
+
surface_kind: "backend_review_surface",
|
|
249
|
+
interaction_modes: ["service_to_service", "embedded_review", "callback"],
|
|
250
|
+
actor_classes: ["machine", "enterprise", "operator", "agent"],
|
|
251
|
+
primary_entrypoints: [
|
|
252
|
+
"/v1/proof-center/result-package-handoff/review/summary",
|
|
253
|
+
"/v1/proof-center/result-package-handoff/review/handoff-run",
|
|
254
|
+
"/v1/proof-center/governance/review-link"
|
|
255
|
+
],
|
|
256
|
+
primary_output_posture: "embedded_review_summary_then_proof_followthrough_and_governance_linkage",
|
|
257
|
+
default_loop_or_followthrough_ref: "/v1/proof-center/result-package-handoff/review/handoff-run",
|
|
258
|
+
stages: [
|
|
259
|
+
{
|
|
260
|
+
stage_id: "receive",
|
|
261
|
+
surface_ref: "/v1/proof-center/result-package-handoff/review/handoff-intake",
|
|
262
|
+
expected_outcome: "backend caller receives and normalizes a runtime handoff into the proof review boundary"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
stage_id: "review",
|
|
266
|
+
surface_ref: "/v1/proof-center/result-package-handoff/review/summary",
|
|
267
|
+
expected_outcome: "embedded service gets a compact proof-readiness and carry summary"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
stage_id: "run",
|
|
271
|
+
surface_ref: "/v1/proof-center/result-package-handoff/review/handoff-run",
|
|
272
|
+
expected_outcome: "service advances the handoff into proof-side continuation from the same embedded path"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
stage_id: "verify",
|
|
276
|
+
surface_ref: "/v1/proof-center/verification-services/summary",
|
|
277
|
+
expected_outcome: "verification posture remains callable and inspectable for the embedded review path"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
stage_id: "governance",
|
|
281
|
+
surface_ref: "/v1/proof-center/governance/review-link",
|
|
282
|
+
expected_outcome: "follow-up review and governance remain linkable for downstream systems"
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
supporting_surfaces: [
|
|
286
|
+
"/v1/proof-center/bridge/operator-review-pack",
|
|
287
|
+
"/v1/proof-center/governance/summary",
|
|
288
|
+
"/asyncapi.json",
|
|
289
|
+
"/cloudevents.json"
|
|
290
|
+
],
|
|
291
|
+
claim_boundary: "claim_service_to_service_default_path_only_for_the_listed_embedded_review_run_verify_and_governance_surfaces_not_as_generic_external_case_management_truth"
|
|
292
|
+
})
|
|
293
|
+
];
|
|
294
|
+
|
|
295
|
+
return {
|
|
296
|
+
ok: true,
|
|
297
|
+
product: packageJson.name,
|
|
298
|
+
category: "xoonya-default-path-model",
|
|
299
|
+
pack_version: "xoonya-default-path-model-v1",
|
|
300
|
+
posture: "multi_surface_proof_followthrough_default_path",
|
|
301
|
+
model_state: "frozen_for_3_0_0_closeout",
|
|
302
|
+
doctrine: "every_supported_proof_surface_should_converge_on_one_receive_review_verify_emit_followthrough_spine_so_the_public_proof_story_stays_true_across_cli_api_handoff_and_embedded_review_entrypoints",
|
|
303
|
+
core_claim: "xoonya can meet callers where they already are while keeping one proof, review, verification, bridge, and governance truth model",
|
|
304
|
+
default_path_order: [
|
|
305
|
+
"receive",
|
|
306
|
+
"review",
|
|
307
|
+
"run",
|
|
308
|
+
"verify",
|
|
309
|
+
"emit",
|
|
310
|
+
"inspect",
|
|
311
|
+
"governance"
|
|
312
|
+
],
|
|
313
|
+
supported_surface_count: surfaces.length,
|
|
314
|
+
real_time_ready_surface_count: surfaces.filter((entry) => entry.real_time_ready).length,
|
|
315
|
+
review_ready_surface_count: surfaces.filter((entry) => entry.review_ready).length,
|
|
316
|
+
verify_ready_surface_count: surfaces.filter((entry) => entry.verify_ready).length,
|
|
317
|
+
proof_emit_ready_surface_count: surfaces.filter((entry) => entry.proof_emit_ready).length,
|
|
318
|
+
governance_followthrough_ready_surface_count: surfaces.filter((entry) => entry.governance_followthrough_ready).length,
|
|
319
|
+
surfaces,
|
|
320
|
+
universal_invariants: [
|
|
321
|
+
"every_default_path_must_begin_with_public_intake_or_start_here_guidance",
|
|
322
|
+
"every_default_path_must_make_review_or_verification_possible_before_claiming_completion",
|
|
323
|
+
"every_default_path_must_converge_back_into_the_same_proof_truth_model",
|
|
324
|
+
"every_default_path_must_preserve_xnya_and_proof_bundle_posture_without_redefining_runtime_truth",
|
|
325
|
+
"every_default_path_must_keep_bridge_and_governance_followthrough_available_when_needed"
|
|
326
|
+
],
|
|
327
|
+
linked_summaries: {
|
|
328
|
+
proof_truth_summary: proofTruthSummary,
|
|
329
|
+
proof_center_summary: proofCenterSummary,
|
|
330
|
+
proof_loop_summary: proofLoopSummary,
|
|
331
|
+
result_package_handoff_summary: resultPackageHandoffSummary,
|
|
332
|
+
bridge_summary: bridgeSummary,
|
|
333
|
+
governance_summary: governanceSummary,
|
|
334
|
+
verification_services_summary: verificationServicesSummary,
|
|
335
|
+
trust_portability_summary: trustPortabilitySummary
|
|
336
|
+
},
|
|
337
|
+
linked_surfaces: {
|
|
338
|
+
start_here_ref: "START_HERE.md",
|
|
339
|
+
first_run_kit_ref: "https://www.naxytra.com/v1/first-run-kit",
|
|
340
|
+
proof_center_ref: "/v1/proof-center",
|
|
341
|
+
proof_center_summary_ref: "/v1/proof-center/summary",
|
|
342
|
+
proof_truth_ref: "/v1/proof-truth",
|
|
343
|
+
proof_loops_ref: "/v1/proof-center/default-loops",
|
|
344
|
+
result_package_handoff_ref: "/v1/proof-center/result-package-handoff",
|
|
345
|
+
bridge_summary_ref: "/v1/proof-center/bridge/summary",
|
|
346
|
+
governance_summary_ref: "/v1/proof-center/governance/summary"
|
|
347
|
+
},
|
|
348
|
+
claim_boundary: "claim_only_the_listed_multi_surface_proof_default_paths_and_their_shared_proof_review_verification_and_governance_spine_without_implying_unbounded_runtime_or_external_judgment_truth"
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
function summarizeDefaultPathPack() {
|
|
353
|
+
const pack = buildDefaultPathPack();
|
|
354
|
+
return {
|
|
355
|
+
ok: true,
|
|
356
|
+
product: pack.product,
|
|
357
|
+
category: pack.category,
|
|
358
|
+
summary_version: "xoonya-default-path-model-summary-v1",
|
|
359
|
+
pack_version: pack.pack_version,
|
|
360
|
+
model_state: pack.model_state,
|
|
361
|
+
supported_surface_count: pack.supported_surface_count,
|
|
362
|
+
review_ready_surface_count: pack.review_ready_surface_count,
|
|
363
|
+
verify_ready_surface_count: pack.verify_ready_surface_count,
|
|
364
|
+
proof_emit_ready_surface_count: pack.proof_emit_ready_surface_count,
|
|
365
|
+
governance_followthrough_ready_surface_count: pack.governance_followthrough_ready_surface_count,
|
|
366
|
+
default_path_stage_count: pack.default_path_order.length,
|
|
367
|
+
linked_surfaces: pack.linked_surfaces
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
function getDefaultPathSurfaceDetail(surfaceId) {
|
|
372
|
+
const normalized = String(surfaceId || "").trim().toLowerCase();
|
|
373
|
+
return (buildDefaultPathPack().surfaces || []).find((entry) => entry.surface_id === normalized) || null;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
module.exports = {
|
|
377
|
+
buildDefaultPathPack,
|
|
378
|
+
summarizeDefaultPathPack,
|
|
379
|
+
getDefaultPathSurfaceDetail
|
|
380
|
+
};
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
const proofSdk = require("../proof_sdk");
|
|
5
|
+
const { summarizeProofTruthModelPack } = require("./proof_truth_contract");
|
|
6
|
+
const { summarizeDefaultPathPack } = require("./default_path_contract");
|
|
7
|
+
const { summarizeVerificationServicesPack } = require("./verification_service_pack");
|
|
8
|
+
const { summarizeTrustPortabilityPack } = require("./trust_portability_pack");
|
|
9
|
+
|
|
10
|
+
function uniqueSorted(values) {
|
|
11
|
+
return Array.from(new Set((Array.isArray(values) ? values : []).filter(Boolean))).sort();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function buildProfile(entry) {
|
|
15
|
+
return {
|
|
16
|
+
profile_id: entry.profile_id,
|
|
17
|
+
profile_label: entry.profile_label,
|
|
18
|
+
followthrough_axis: entry.followthrough_axis,
|
|
19
|
+
claim_status: entry.claim_status,
|
|
20
|
+
public_claim_allowed: entry.public_claim_allowed !== false,
|
|
21
|
+
real_time_ready: true,
|
|
22
|
+
primary_surfaces: uniqueSorted(entry.primary_surfaces),
|
|
23
|
+
supporting_surfaces: uniqueSorted(entry.supporting_surfaces),
|
|
24
|
+
actor_classes: uniqueSorted(entry.actor_classes),
|
|
25
|
+
continuity_outputs: uniqueSorted(entry.continuity_outputs),
|
|
26
|
+
expected_launch_outcome: entry.expected_launch_outcome,
|
|
27
|
+
claim_boundary: entry.claim_boundary
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function buildFollowthroughTruthPack() {
|
|
32
|
+
const proofTruthSummary = summarizeProofTruthModelPack();
|
|
33
|
+
const defaultPathSummary = summarizeDefaultPathPack();
|
|
34
|
+
const verificationServicesSummary = summarizeVerificationServicesPack();
|
|
35
|
+
const trustPortabilitySummary = summarizeTrustPortabilityPack();
|
|
36
|
+
const bridgeSummary = proofSdk.summarizeBridgeCenter();
|
|
37
|
+
const governanceSummary = proofSdk.summarizeGovernanceCenter();
|
|
38
|
+
|
|
39
|
+
const profiles = [
|
|
40
|
+
buildProfile({
|
|
41
|
+
profile_id: "verification_services",
|
|
42
|
+
profile_label: "Verification services",
|
|
43
|
+
followthrough_axis: "verification_and_replay",
|
|
44
|
+
claim_status: "live",
|
|
45
|
+
primary_surfaces: [
|
|
46
|
+
"/v1/proof-center/verification-services",
|
|
47
|
+
"/v1/proof-center/verification-services/summary",
|
|
48
|
+
"/v1/proof-bundles/verify",
|
|
49
|
+
"/v1/receipts/verify"
|
|
50
|
+
],
|
|
51
|
+
supporting_surfaces: [
|
|
52
|
+
"/v1/proof-truth/summary",
|
|
53
|
+
"/v1/default-path/summary",
|
|
54
|
+
"/v1/proof-center/result-package-handoff/summary"
|
|
55
|
+
],
|
|
56
|
+
actor_classes: ["agent", "developer", "enterprise", "human", "machine", "operator"],
|
|
57
|
+
continuity_outputs: ["bundle_verify", "delivery_verify", "identity_link_verify", "settlement_verify"],
|
|
58
|
+
expected_launch_outcome: "proof outputs can be verified, replayed, and inspected from the same public proof spine",
|
|
59
|
+
claim_boundary: "verification_services_claim_only_the_listed_bundle_delivery_identity_and_settlement_binding_surfaces_not_external_chain_identity_or_legal_judgment_truth"
|
|
60
|
+
}),
|
|
61
|
+
buildProfile({
|
|
62
|
+
profile_id: "trust_portability",
|
|
63
|
+
profile_label: "Trust portability",
|
|
64
|
+
followthrough_axis: "cross_venue_portability",
|
|
65
|
+
claim_status: "bounded_live",
|
|
66
|
+
primary_surfaces: [
|
|
67
|
+
"/v1/proof-center/trust-portability",
|
|
68
|
+
"/v1/proof-center/trust-portability/summary",
|
|
69
|
+
"/v1/identity-interop",
|
|
70
|
+
"/v1/result-package-trust"
|
|
71
|
+
],
|
|
72
|
+
supporting_surfaces: [
|
|
73
|
+
"/v1/auth-profiles/summary",
|
|
74
|
+
"/v1/proof-center/verification-services/summary",
|
|
75
|
+
"/v1/phases/phase-4/trust-continuity/summary"
|
|
76
|
+
],
|
|
77
|
+
actor_classes: ["agent", "developer", "enterprise", "human", "machine", "operator"],
|
|
78
|
+
continuity_outputs: [
|
|
79
|
+
"agent_identity_portability",
|
|
80
|
+
"delegation_capability_portability",
|
|
81
|
+
"delivery_history_portability",
|
|
82
|
+
"settlement_linked_trust_portability"
|
|
83
|
+
],
|
|
84
|
+
expected_launch_outcome: "identity, delegation, delivery, and settlement-linked trust remain portable without redefining runtime or custody truth",
|
|
85
|
+
claim_boundary: "trust_portability_claim_only_the_listed_identity_delegation_delivery_and_settlement_linked_review_surfaces_not_global_identity_session_or_custody_truth"
|
|
86
|
+
}),
|
|
87
|
+
buildProfile({
|
|
88
|
+
profile_id: "bridge_followthrough",
|
|
89
|
+
profile_label: "Bridge followthrough",
|
|
90
|
+
followthrough_axis: "bridge_and_compatibility_carry",
|
|
91
|
+
claim_status: "bounded_live",
|
|
92
|
+
primary_surfaces: [
|
|
93
|
+
"/v1/proof-center/bridge",
|
|
94
|
+
"/v1/proof-center/bridge/summary",
|
|
95
|
+
"/v1/proof-center/bridge/economic-handoff",
|
|
96
|
+
"/v1/proof-center/bridge/operator-review-pack",
|
|
97
|
+
"/v1/proof-center/bridge/compatibility-pack"
|
|
98
|
+
],
|
|
99
|
+
supporting_surfaces: [
|
|
100
|
+
"/v1/proof-center/result-package-handoff/review/bridge-summary",
|
|
101
|
+
"/v1/proof-center/result-package-handoff/review/bridge-run",
|
|
102
|
+
"/v1/proof-center/governance/review-link"
|
|
103
|
+
],
|
|
104
|
+
actor_classes: ["agent", "enterprise", "machine", "operator"],
|
|
105
|
+
continuity_outputs: [
|
|
106
|
+
"receipt_ledger_handoff",
|
|
107
|
+
"economic_consequence_handoff",
|
|
108
|
+
"compatibility_packaging",
|
|
109
|
+
"operator_review_packaging"
|
|
110
|
+
],
|
|
111
|
+
expected_launch_outcome: "bridge-facing review and carry stay attached to the proof center without widening xoonya into runtime execution ownership",
|
|
112
|
+
claim_boundary: "bridge_followthrough_claim_only_the_listed_receipt_ledger_economic_carry_operator_and_compatibility_surfaces_not_generic_runtime_or_external_validator_truth"
|
|
113
|
+
}),
|
|
114
|
+
buildProfile({
|
|
115
|
+
profile_id: "governance_followthrough",
|
|
116
|
+
profile_label: "Governance followthrough",
|
|
117
|
+
followthrough_axis: "governance_dispute_and_signoff",
|
|
118
|
+
claim_status: "bounded_live",
|
|
119
|
+
primary_surfaces: [
|
|
120
|
+
"/v1/proof-center/governance",
|
|
121
|
+
"/v1/proof-center/governance/summary",
|
|
122
|
+
"/v1/proof-center/governance/disputes/summary",
|
|
123
|
+
"/v1/proof-center/governance/review-link",
|
|
124
|
+
"/v1/proof-center/governance/handoff-bundle"
|
|
125
|
+
],
|
|
126
|
+
supporting_surfaces: [
|
|
127
|
+
"/v1/proof-center/result-package-handoff/review/summary",
|
|
128
|
+
"/v1/proof-center/bridge/summary",
|
|
129
|
+
"/v1/proof-center/verification-services/summary"
|
|
130
|
+
],
|
|
131
|
+
actor_classes: ["enterprise", "human", "operator"],
|
|
132
|
+
continuity_outputs: [
|
|
133
|
+
"interpretation_validation",
|
|
134
|
+
"governance_coordination",
|
|
135
|
+
"dispute_review",
|
|
136
|
+
"signoff_packaging",
|
|
137
|
+
"operator_handoff_bundle"
|
|
138
|
+
],
|
|
139
|
+
expected_launch_outcome: "operators can interpret, escalate, sign off, and preserve review linkage without breaking the canonical proof story",
|
|
140
|
+
claim_boundary: "governance_followthrough_claim_only_the_listed_interpretation_coordination_dispute_signoff_and_review_link_surfaces_not_external_legal_or_regulatory_judgment_truth"
|
|
141
|
+
})
|
|
142
|
+
];
|
|
143
|
+
|
|
144
|
+
return {
|
|
145
|
+
ok: true,
|
|
146
|
+
product: packageJson.name,
|
|
147
|
+
category: "xoonya-followthrough-truth-model",
|
|
148
|
+
pack_version: "xoonya-followthrough-truth-model-v1",
|
|
149
|
+
posture: "bridge_governance_and_trust_followthrough_claim_boundary",
|
|
150
|
+
model_state: "frozen_for_3_0_0_closeout",
|
|
151
|
+
doctrine: "xoonya_should_make_verification_trust_portability_bridge_carry_and_governance_followthrough_publicly_claimable_only_where_the_proof_center_exposes_a_real_bounded_callable_surface",
|
|
152
|
+
core_claim: "xoonya keeps proof-side followthrough real and multi-surface without overclaiming runtime, external chain, custody, identity, or legal judgment truth",
|
|
153
|
+
profile_count: profiles.length,
|
|
154
|
+
live_profile_count: profiles.filter((entry) => entry.claim_status === "live").length,
|
|
155
|
+
bounded_live_profile_count: profiles.filter((entry) => entry.claim_status === "bounded_live").length,
|
|
156
|
+
public_claim_allowed_profile_count: profiles.filter((entry) => entry.public_claim_allowed).length,
|
|
157
|
+
profiles,
|
|
158
|
+
universal_invariants: [
|
|
159
|
+
"followthrough_truth_must_converge_back_into_the_same_proof_truth_model",
|
|
160
|
+
"bridge_and_governance_surfaces_must_stay_reviewable_before_claiming_completion",
|
|
161
|
+
"trust_portability_must_remain_bounded_to_the_listed_surfaces_and_profiles",
|
|
162
|
+
"verification_services_must_not_overclaim_external_chain_identity_or_legal_truth",
|
|
163
|
+
"operator_exports_must_preserve_review_linkage_without_mutating_proof_semantics"
|
|
164
|
+
],
|
|
165
|
+
linked_summaries: {
|
|
166
|
+
proof_truth_summary: proofTruthSummary,
|
|
167
|
+
default_path_summary: defaultPathSummary,
|
|
168
|
+
verification_services_summary: verificationServicesSummary,
|
|
169
|
+
trust_portability_summary: trustPortabilitySummary,
|
|
170
|
+
bridge_summary: bridgeSummary,
|
|
171
|
+
governance_summary: governanceSummary
|
|
172
|
+
},
|
|
173
|
+
linked_surfaces: {
|
|
174
|
+
proof_truth_ref: "/v1/proof-truth",
|
|
175
|
+
default_path_ref: "/v1/default-path",
|
|
176
|
+
verification_services_ref: "/v1/proof-center/verification-services",
|
|
177
|
+
trust_portability_ref: "/v1/proof-center/trust-portability",
|
|
178
|
+
bridge_ref: "/v1/proof-center/bridge",
|
|
179
|
+
bridge_summary_ref: "/v1/proof-center/bridge/summary",
|
|
180
|
+
governance_ref: "/v1/proof-center/governance",
|
|
181
|
+
governance_summary_ref: "/v1/proof-center/governance/summary",
|
|
182
|
+
governance_review_link_ref: "/v1/proof-center/governance/review-link"
|
|
183
|
+
},
|
|
184
|
+
claim_boundary: "claim_only_the_listed_followthrough_profiles_and_surfaces_as_public_xoonya_truth_without_implying_unbounded_runtime_external_chain_identity_custody_or_legal_judgment_scope"
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
function summarizeFollowthroughTruthPack() {
|
|
189
|
+
const pack = buildFollowthroughTruthPack();
|
|
190
|
+
return {
|
|
191
|
+
ok: true,
|
|
192
|
+
product: pack.product,
|
|
193
|
+
category: pack.category,
|
|
194
|
+
summary_version: "xoonya-followthrough-truth-model-summary-v1",
|
|
195
|
+
pack_version: pack.pack_version,
|
|
196
|
+
model_state: pack.model_state,
|
|
197
|
+
profile_count: pack.profile_count,
|
|
198
|
+
live_profile_count: pack.live_profile_count,
|
|
199
|
+
bounded_live_profile_count: pack.bounded_live_profile_count,
|
|
200
|
+
public_claim_allowed_profile_count: pack.public_claim_allowed_profile_count,
|
|
201
|
+
linked_surfaces: pack.linked_surfaces
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
function getFollowthroughTruthProfileDetail(profileId) {
|
|
206
|
+
const normalized = String(profileId || "").trim().toLowerCase();
|
|
207
|
+
return (buildFollowthroughTruthPack().profiles || []).find((entry) => entry.profile_id === normalized) || null;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
module.exports = {
|
|
211
|
+
buildFollowthroughTruthPack,
|
|
212
|
+
summarizeFollowthroughTruthPack,
|
|
213
|
+
getFollowthroughTruthProfileDetail
|
|
214
|
+
};
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
const proofSdk = require("../proof_sdk");
|
|
5
|
+
const { summarizeVerificationServicesPack } = require("./verification_service_pack");
|
|
6
|
+
const { summarizeTrustPortabilityPack } = require("./trust_portability_pack");
|
|
7
|
+
|
|
8
|
+
function buildProofTruthModelPack() {
|
|
9
|
+
const proofCenter = proofSdk.summarizeDefaultProofCenter();
|
|
10
|
+
const nativeStandard = proofSdk.summarizexoonyaNativeProofStandard();
|
|
11
|
+
const nativeAtom = proofSdk.summarizexoonyaNativeAtomSpec();
|
|
12
|
+
const nativePayloadProfile = proofSdk.summarizexoonyaNativePayloadProfilePack();
|
|
13
|
+
const nativeAnchorProfile = proofSdk.summarizexoonyaNativeAnchorProfile();
|
|
14
|
+
const verificationServices = summarizeVerificationServicesPack();
|
|
15
|
+
const trustPortability = summarizeTrustPortabilityPack();
|
|
16
|
+
const transactionHandoff = proofSdk.summarizeTransactionProofHandoffCenter();
|
|
17
|
+
const interactionHandoff = proofSdk.summarizeInteractionSpineProofHandoffCenter();
|
|
18
|
+
const resultPackageHandoff = proofSdk.summarizeInteractionResultPackageHandoffCenter();
|
|
19
|
+
const bridge = proofSdk.summarizeBridgeCenter();
|
|
20
|
+
const governance = proofSdk.summarizeGovernanceCenter();
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
ok: true,
|
|
24
|
+
product: packageJson.name,
|
|
25
|
+
category: "xoonya-proof-truth-model",
|
|
26
|
+
pack_version: "xoonya-proof-truth-model-v1",
|
|
27
|
+
posture: "deterministic_proof_truth_plus_reviewable_followthrough",
|
|
28
|
+
model_state: "frozen_for_3_0_0_closeout",
|
|
29
|
+
doctrine: "xoonya_owns_proof_truth_verification_reviewable_handoff_followthrough_and_governance_without_reabsorbing_runtime_commerce_semantics",
|
|
30
|
+
core_claim: "xoonya is the canonical proof-side fact model linking canonical events, receipts, proof bundles, native XNYA artifacts, verification services, handoff continuation, bridge carry, and governance followthrough",
|
|
31
|
+
canonical_objects: [
|
|
32
|
+
{
|
|
33
|
+
object_id: "canonical_event_bundle",
|
|
34
|
+
role: "deterministic_hot_input_for_proof_construction",
|
|
35
|
+
required_fields: [
|
|
36
|
+
"event",
|
|
37
|
+
"event_hash_sha256"
|
|
38
|
+
],
|
|
39
|
+
primary_surfaces: [
|
|
40
|
+
"/v1/events/canonicalize",
|
|
41
|
+
"/v1/events/hash"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
object_id: "receipt",
|
|
46
|
+
role: "canonical_intermediate_statement_of_what_is_being_proved",
|
|
47
|
+
required_fields: [
|
|
48
|
+
"receipt_id",
|
|
49
|
+
"event_hash_sha256",
|
|
50
|
+
"verification_method"
|
|
51
|
+
],
|
|
52
|
+
primary_surfaces: [
|
|
53
|
+
"/v1/receipts/emit",
|
|
54
|
+
"/v1/receipts/verify"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
object_id: "proof_bundle",
|
|
59
|
+
role: "portable_replayable_verifiable_proof_output",
|
|
60
|
+
required_fields: [
|
|
61
|
+
"version",
|
|
62
|
+
"ceb",
|
|
63
|
+
"receipt",
|
|
64
|
+
"proof"
|
|
65
|
+
],
|
|
66
|
+
primary_surfaces: [
|
|
67
|
+
"/v1/proof-bundles/build",
|
|
68
|
+
"/v1/proof-bundles/verify"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
object_id: "xnya_native_artifact",
|
|
73
|
+
role: "native_compact_machine_evidence_artifact",
|
|
74
|
+
required_fields: [
|
|
75
|
+
"method",
|
|
76
|
+
"native_atom_magic",
|
|
77
|
+
"payload_hash_or_binding"
|
|
78
|
+
],
|
|
79
|
+
primary_surfaces: [
|
|
80
|
+
"/v1/proof-center/native-standard",
|
|
81
|
+
"/v1/proof-center/native-atom-spec",
|
|
82
|
+
"/v1/proof-center/native-payload-profile",
|
|
83
|
+
"/v1/proof-center/native-anchor-profile"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
object_id: "proof_handoff_review",
|
|
88
|
+
role: "reviewable_runtime_to_proof_continuation_boundary",
|
|
89
|
+
required_fields: [
|
|
90
|
+
"source_ref",
|
|
91
|
+
"proof_ref",
|
|
92
|
+
"review_summary"
|
|
93
|
+
],
|
|
94
|
+
primary_surfaces: [
|
|
95
|
+
"/v1/proof-center/transaction-handoff/summary",
|
|
96
|
+
"/v1/proof-center/interaction-spine-handoff/summary",
|
|
97
|
+
"/v1/proof-center/result-package-handoff/review/summary"
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
object_id: "bridge_and_governance_followthrough",
|
|
102
|
+
role: "operator_review_bridge_and_dispute_followthrough_bundle",
|
|
103
|
+
required_fields: [
|
|
104
|
+
"bridge_ref_or_bundle",
|
|
105
|
+
"governance_review_ref_or_case"
|
|
106
|
+
],
|
|
107
|
+
primary_surfaces: [
|
|
108
|
+
"/v1/proof-center/bridge/summary",
|
|
109
|
+
"/v1/proof-center/governance/summary",
|
|
110
|
+
"/v1/proof-center/governance/disputes/summary"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
layer_model: [
|
|
115
|
+
{
|
|
116
|
+
layer_id: "proof_core",
|
|
117
|
+
order_index: 1,
|
|
118
|
+
objects: ["canonical_event_bundle", "receipt", "proof_bundle"],
|
|
119
|
+
invariants: [
|
|
120
|
+
"proof_core_stays_deterministic_portable_and_replayable",
|
|
121
|
+
"proof_bundle_verification_is_canonical_xoonya_truth"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
layer_id: "native_xnya",
|
|
126
|
+
order_index: 2,
|
|
127
|
+
objects: ["xnya_native_artifact"],
|
|
128
|
+
invariants: [
|
|
129
|
+
"xnya_is_the_native_compact_machine_evidence_family",
|
|
130
|
+
"native_artifacts_do_not_replace_runtime_or_identity_control_planes"
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
layer_id: "verification_services",
|
|
135
|
+
order_index: 3,
|
|
136
|
+
objects: ["proof_bundle", "proof_handoff_review"],
|
|
137
|
+
invariants: [
|
|
138
|
+
"verification_surfaces_stay_first_class_services",
|
|
139
|
+
"external_signature_or_chain_truth_requires_bounded_claim_language"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
layer_id: "handoff_and_bridge_continuity",
|
|
144
|
+
order_index: 4,
|
|
145
|
+
objects: ["proof_handoff_review", "bridge_and_governance_followthrough"],
|
|
146
|
+
invariants: [
|
|
147
|
+
"runtime_outputs_can_continue_into_proof_without_dead_end_loss",
|
|
148
|
+
"bridge_carry_preserves_reviewable_context_without_becoming_runtime_truth"
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
layer_id: "governance_followthrough",
|
|
153
|
+
order_index: 5,
|
|
154
|
+
objects: ["bridge_and_governance_followthrough"],
|
|
155
|
+
invariants: [
|
|
156
|
+
"governance_preserves_reviewable_dispute_and_resolution_posture",
|
|
157
|
+
"xoonya_does_not_claim_universal_external_judgment_truth"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
proof_truth_invariants: [
|
|
162
|
+
"canonical_event_bundle_precedes_receipt_and_bundle_verification",
|
|
163
|
+
"receipt_is_a_canonical_proof_intermediate_not_runtime_commerce_truth",
|
|
164
|
+
"proof_bundle_is_the_portable_verifiable_output",
|
|
165
|
+
"xnya_is_the_native_compact_evidence_family",
|
|
166
|
+
"handoff_review_is_first_class_not_optional_afterthought",
|
|
167
|
+
"bridge_and_governance_surfaces_extend_proof_followthrough_without_redefining_runtime_truth"
|
|
168
|
+
],
|
|
169
|
+
linked_summaries: {
|
|
170
|
+
proof_center_summary: proofCenter,
|
|
171
|
+
native_standard_summary: nativeStandard,
|
|
172
|
+
native_atom_summary: nativeAtom,
|
|
173
|
+
native_payload_profile_summary: nativePayloadProfile,
|
|
174
|
+
native_anchor_profile_summary: nativeAnchorProfile,
|
|
175
|
+
verification_services_summary: verificationServices,
|
|
176
|
+
trust_portability_summary: trustPortability,
|
|
177
|
+
transaction_handoff_summary: transactionHandoff,
|
|
178
|
+
interaction_handoff_summary: interactionHandoff,
|
|
179
|
+
result_package_handoff_summary: resultPackageHandoff,
|
|
180
|
+
bridge_summary: bridge,
|
|
181
|
+
governance_summary: governance
|
|
182
|
+
},
|
|
183
|
+
linked_surfaces: {
|
|
184
|
+
proof_center_ref: "/v1/proof-center",
|
|
185
|
+
proof_center_summary_ref: "/v1/proof-center/summary",
|
|
186
|
+
native_standard_summary_ref: "/v1/proof-center/native-standard/summary",
|
|
187
|
+
verification_services_summary_ref: "/v1/proof-center/verification-services/summary",
|
|
188
|
+
trust_portability_summary_ref: "/v1/proof-center/trust-portability/summary",
|
|
189
|
+
transaction_handoff_summary_ref: "/v1/proof-center/transaction-handoff/summary",
|
|
190
|
+
interaction_handoff_summary_ref: "/v1/proof-center/interaction-spine-handoff/summary",
|
|
191
|
+
result_package_handoff_review_summary_ref: "/v1/proof-center/result-package-handoff/review/summary",
|
|
192
|
+
bridge_summary_ref: "/v1/proof-center/bridge/summary",
|
|
193
|
+
governance_summary_ref: "/v1/proof-center/governance/summary"
|
|
194
|
+
},
|
|
195
|
+
claim_boundary: "claim_the_proof_side_fact_model_verification_and_reviewable_followthrough_only_without_reclaiming_runtime_commerce_truth_or_unbounded_external_chain_identity_or_judgment_truth"
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function summarizeProofTruthModelPack() {
|
|
200
|
+
const pack = buildProofTruthModelPack();
|
|
201
|
+
return {
|
|
202
|
+
ok: true,
|
|
203
|
+
product: pack.product,
|
|
204
|
+
category: pack.category,
|
|
205
|
+
summary_version: "xoonya-proof-truth-model-summary-v1",
|
|
206
|
+
pack_version: pack.pack_version,
|
|
207
|
+
model_state: pack.model_state,
|
|
208
|
+
canonical_object_count: pack.canonical_objects.length,
|
|
209
|
+
layer_count: pack.layer_model.length,
|
|
210
|
+
invariant_count: pack.proof_truth_invariants.length,
|
|
211
|
+
linked_surfaces: pack.linked_surfaces
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function getProofTruthObjectDetail(objectId) {
|
|
216
|
+
const normalized = String(objectId || "").trim().toLowerCase();
|
|
217
|
+
return (buildProofTruthModelPack().canonical_objects || []).find((entry) => entry.object_id === normalized) || null;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
module.exports = {
|
|
221
|
+
buildProofTruthModelPack,
|
|
222
|
+
summarizeProofTruthModelPack,
|
|
223
|
+
getProofTruthObjectDetail
|
|
224
|
+
};
|
package/lib/release_history.js
CHANGED
|
@@ -10,6 +10,19 @@ function buildReleaseHistory() {
|
|
|
10
10
|
current_version: packageJson.version,
|
|
11
11
|
release_track: "public_release",
|
|
12
12
|
history: [
|
|
13
|
+
{
|
|
14
|
+
version: "2.15.0",
|
|
15
|
+
channel: "public_release",
|
|
16
|
+
maturity_posture: "final_intermediary_closeout",
|
|
17
|
+
headline: "final intermediary closeout release with frozen proof truth, default-path, and followthrough surfaces plus an explicit 3.0.0 claim boundary",
|
|
18
|
+
milestone_refs: [
|
|
19
|
+
"proof_truth_model",
|
|
20
|
+
"default_path_model",
|
|
21
|
+
"followthrough_truth_model",
|
|
22
|
+
"umbrella_first_contact_alignment",
|
|
23
|
+
"synchronized_2_15_release_prep"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
13
26
|
{
|
|
14
27
|
version: "2.14.0",
|
|
15
28
|
channel: "public_release",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xoonya",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.15.0",
|
|
4
4
|
"description": "Deterministic proof and review engine for receipts, handoffs, governance, and verification.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -31,6 +31,9 @@
|
|
|
31
31
|
"RELEASE_NOTES.md",
|
|
32
32
|
".env.example",
|
|
33
33
|
"README.md",
|
|
34
|
+
"XOONYA_PROOF_TRUTH_MODEL.md",
|
|
35
|
+
"XOONYA_DEFAULT_PATH_MODEL.md",
|
|
36
|
+
"XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md",
|
|
34
37
|
"XOONYA_NATIVE_PROOF_FORMAT.md",
|
|
35
38
|
"XOONYA_NATIVE_ATOM_SPEC.md",
|
|
36
39
|
"XOONYA_NATIVE_STANDARD_GOVERNANCE.md",
|
|
@@ -127,6 +127,65 @@ async function main() {
|
|
|
127
127
|
assert.strictEqual(trustPortabilityDetailResponse.status, 200, 'trust portability detail route failed');
|
|
128
128
|
assert.strictEqual(trustPortabilityDetailResponse.json.profile.profile_id, 'agent_identity_portability', 'trust portability detail profile missing');
|
|
129
129
|
|
|
130
|
+
const proofTruthResponse = await getJson(baseUrl, '/v1/proof-truth');
|
|
131
|
+
assert.strictEqual(proofTruthResponse.status, 200, 'proof truth route failed');
|
|
132
|
+
assert.strictEqual(proofTruthResponse.json.category, 'xoonya-proof-truth-model', 'proof truth category missing');
|
|
133
|
+
assert.strictEqual(proofTruthResponse.json.pack_version, 'xoonya-proof-truth-model-v1', 'proof truth version missing');
|
|
134
|
+
assert.strictEqual(proofTruthResponse.json.canonical_objects.length >= 6, true, 'proof truth object count missing');
|
|
135
|
+
|
|
136
|
+
const proofTruthSummaryResponse = await getJson(baseUrl, '/v1/proof-truth/summary');
|
|
137
|
+
assert.strictEqual(proofTruthSummaryResponse.status, 200, 'proof truth summary route failed');
|
|
138
|
+
assert.strictEqual(proofTruthSummaryResponse.json.category, 'xoonya-proof-truth-model', 'proof truth summary category missing');
|
|
139
|
+
assert.strictEqual(proofTruthSummaryResponse.json.pack_version, 'xoonya-proof-truth-model-v1', 'proof truth summary version missing');
|
|
140
|
+
|
|
141
|
+
const proofBundleTruthDetailResponse = await getJson(baseUrl, '/v1/proof-truth/proof_bundle');
|
|
142
|
+
assert.strictEqual(proofBundleTruthDetailResponse.status, 200, 'proof truth proof_bundle detail route failed');
|
|
143
|
+
assert.strictEqual(proofBundleTruthDetailResponse.json.object.object_id, 'proof_bundle', 'proof truth proof_bundle detail missing');
|
|
144
|
+
|
|
145
|
+
const xnyaTruthDetailResponse = await getJson(baseUrl, '/v1/proof-truth/xnya_native_artifact');
|
|
146
|
+
assert.strictEqual(xnyaTruthDetailResponse.status, 200, 'proof truth xnya detail route failed');
|
|
147
|
+
assert.strictEqual(xnyaTruthDetailResponse.json.object.object_id, 'xnya_native_artifact', 'proof truth xnya detail missing');
|
|
148
|
+
|
|
149
|
+
const defaultPathResponse = await getJson(baseUrl, '/v1/default-path');
|
|
150
|
+
assert.strictEqual(defaultPathResponse.status, 200, 'default path route failed');
|
|
151
|
+
assert.strictEqual(defaultPathResponse.json.category, 'xoonya-default-path-model', 'default path category missing');
|
|
152
|
+
assert.strictEqual(defaultPathResponse.json.pack_version, 'xoonya-default-path-model-v1', 'default path version missing');
|
|
153
|
+
assert.strictEqual(defaultPathResponse.json.supported_surface_count >= 5, true, 'default path surface count missing');
|
|
154
|
+
|
|
155
|
+
const defaultPathSummaryResponse = await getJson(baseUrl, '/v1/default-path/summary');
|
|
156
|
+
assert.strictEqual(defaultPathSummaryResponse.status, 200, 'default path summary route failed');
|
|
157
|
+
assert.strictEqual(defaultPathSummaryResponse.json.category, 'xoonya-default-path-model', 'default path summary category missing');
|
|
158
|
+
assert.strictEqual(defaultPathSummaryResponse.json.pack_version, 'xoonya-default-path-model-v1', 'default path summary version missing');
|
|
159
|
+
assert.strictEqual(defaultPathSummaryResponse.json.default_path_stage_count, 7, 'default path stage count missing');
|
|
160
|
+
|
|
161
|
+
const cliDefaultPathDetailResponse = await getJson(baseUrl, '/v1/default-path/cli_terminal');
|
|
162
|
+
assert.strictEqual(cliDefaultPathDetailResponse.status, 200, 'cli default path detail route failed');
|
|
163
|
+
assert.strictEqual(cliDefaultPathDetailResponse.json.surface.surface_id, 'cli_terminal', 'cli default path detail missing');
|
|
164
|
+
|
|
165
|
+
const handoffDefaultPathDetailResponse = await getJson(baseUrl, '/v1/default-path/carried_handoff_review');
|
|
166
|
+
assert.strictEqual(handoffDefaultPathDetailResponse.status, 200, 'carried handoff default path detail route failed');
|
|
167
|
+
assert.strictEqual(handoffDefaultPathDetailResponse.json.surface.surface_id, 'carried_handoff_review', 'carried handoff default path detail missing');
|
|
168
|
+
|
|
169
|
+
const followthroughTruthResponse = await getJson(baseUrl, '/v1/followthrough-truth');
|
|
170
|
+
assert.strictEqual(followthroughTruthResponse.status, 200, 'followthrough truth route failed');
|
|
171
|
+
assert.strictEqual(followthroughTruthResponse.json.category, 'xoonya-followthrough-truth-model', 'followthrough truth category missing');
|
|
172
|
+
assert.strictEqual(followthroughTruthResponse.json.pack_version, 'xoonya-followthrough-truth-model-v1', 'followthrough truth version missing');
|
|
173
|
+
assert.strictEqual(followthroughTruthResponse.json.profile_count >= 4, true, 'followthrough truth profile count missing');
|
|
174
|
+
|
|
175
|
+
const followthroughTruthSummaryResponse = await getJson(baseUrl, '/v1/followthrough-truth/summary');
|
|
176
|
+
assert.strictEqual(followthroughTruthSummaryResponse.status, 200, 'followthrough truth summary route failed');
|
|
177
|
+
assert.strictEqual(followthroughTruthSummaryResponse.json.category, 'xoonya-followthrough-truth-model', 'followthrough truth summary category missing');
|
|
178
|
+
assert.strictEqual(followthroughTruthSummaryResponse.json.pack_version, 'xoonya-followthrough-truth-model-v1', 'followthrough truth summary version missing');
|
|
179
|
+
assert.strictEqual(followthroughTruthSummaryResponse.json.bounded_live_profile_count >= 3, true, 'followthrough truth bounded live count missing');
|
|
180
|
+
|
|
181
|
+
const bridgeFollowthroughDetailResponse = await getJson(baseUrl, '/v1/followthrough-truth/bridge_followthrough');
|
|
182
|
+
assert.strictEqual(bridgeFollowthroughDetailResponse.status, 200, 'bridge followthrough detail route failed');
|
|
183
|
+
assert.strictEqual(bridgeFollowthroughDetailResponse.json.profile.profile_id, 'bridge_followthrough', 'bridge followthrough detail missing');
|
|
184
|
+
|
|
185
|
+
const governanceFollowthroughDetailResponse = await getJson(baseUrl, '/v1/followthrough-truth/governance_followthrough');
|
|
186
|
+
assert.strictEqual(governanceFollowthroughDetailResponse.status, 200, 'governance followthrough detail route failed');
|
|
187
|
+
assert.strictEqual(governanceFollowthroughDetailResponse.json.profile.profile_id, 'governance_followthrough', 'governance followthrough detail missing');
|
|
188
|
+
|
|
130
189
|
const providerLaneResponse = await getJson(baseUrl, '/v1/providers');
|
|
131
190
|
assert.strictEqual(providerLaneResponse.status, 200, 'provider lane route failed');
|
|
132
191
|
assert.strictEqual(providerLaneResponse.json.product, 'xoonya', 'provider lane product missing');
|
package/server.js
CHANGED
|
@@ -85,6 +85,21 @@ const {
|
|
|
85
85
|
getTrustPortabilityProfile,
|
|
86
86
|
summarizeTrustPortabilityPack
|
|
87
87
|
} = require('./lib/trust_portability_pack');
|
|
88
|
+
const {
|
|
89
|
+
buildProofTruthModelPack,
|
|
90
|
+
summarizeProofTruthModelPack,
|
|
91
|
+
getProofTruthObjectDetail
|
|
92
|
+
} = require('./lib/proof_truth_contract');
|
|
93
|
+
const {
|
|
94
|
+
buildDefaultPathPack,
|
|
95
|
+
summarizeDefaultPathPack,
|
|
96
|
+
getDefaultPathSurfaceDetail
|
|
97
|
+
} = require('./lib/default_path_contract');
|
|
98
|
+
const {
|
|
99
|
+
buildFollowthroughTruthPack,
|
|
100
|
+
summarizeFollowthroughTruthPack,
|
|
101
|
+
getFollowthroughTruthProfileDetail
|
|
102
|
+
} = require('./lib/followthrough_truth_contract');
|
|
88
103
|
const {
|
|
89
104
|
buildOpenApiDocument,
|
|
90
105
|
summarizeOpenApiDocument,
|
|
@@ -796,6 +811,90 @@ async function routeRequest(req, res) {
|
|
|
796
811
|
return;
|
|
797
812
|
}
|
|
798
813
|
|
|
814
|
+
if (req.method === 'GET' && url.pathname === '/v1/proof-truth') {
|
|
815
|
+
sendJson(res, 200, buildProofTruthModelPack());
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
if (req.method === 'GET' && url.pathname === '/v1/proof-truth/summary') {
|
|
820
|
+
sendJson(res, 200, summarizeProofTruthModelPack());
|
|
821
|
+
return;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
if (req.method === 'GET' && url.pathname.startsWith('/v1/proof-truth/')) {
|
|
825
|
+
const suffix = decodeURIComponent(url.pathname.slice('/v1/proof-truth/'.length));
|
|
826
|
+
if (suffix && suffix !== 'summary') {
|
|
827
|
+
const objectDetail = getProofTruthObjectDetail(suffix);
|
|
828
|
+
if (!objectDetail) {
|
|
829
|
+
sendJson(res, 404, { ok: false, error: 'proof_truth_object_not_found' });
|
|
830
|
+
return;
|
|
831
|
+
}
|
|
832
|
+
sendJson(res, 200, {
|
|
833
|
+
ok: true,
|
|
834
|
+
product: 'xoonya',
|
|
835
|
+
category: 'xoonya-proof-truth-detail',
|
|
836
|
+
object: objectDetail
|
|
837
|
+
});
|
|
838
|
+
return;
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
if (req.method === 'GET' && url.pathname === '/v1/default-path') {
|
|
843
|
+
sendJson(res, 200, buildDefaultPathPack());
|
|
844
|
+
return;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
if (req.method === 'GET' && url.pathname === '/v1/default-path/summary') {
|
|
848
|
+
sendJson(res, 200, summarizeDefaultPathPack());
|
|
849
|
+
return;
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
if (req.method === 'GET' && url.pathname.startsWith('/v1/default-path/')) {
|
|
853
|
+
const suffix = decodeURIComponent(url.pathname.slice('/v1/default-path/'.length));
|
|
854
|
+
if (suffix && suffix !== 'summary') {
|
|
855
|
+
const surface = getDefaultPathSurfaceDetail(suffix);
|
|
856
|
+
if (!surface) {
|
|
857
|
+
sendJson(res, 404, { ok: false, error: 'default_path_surface_not_found' });
|
|
858
|
+
return;
|
|
859
|
+
}
|
|
860
|
+
sendJson(res, 200, {
|
|
861
|
+
ok: true,
|
|
862
|
+
product: 'xoonya',
|
|
863
|
+
category: 'xoonya-default-path-surface-detail',
|
|
864
|
+
surface
|
|
865
|
+
});
|
|
866
|
+
return;
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
if (req.method === 'GET' && url.pathname === '/v1/followthrough-truth') {
|
|
871
|
+
sendJson(res, 200, buildFollowthroughTruthPack());
|
|
872
|
+
return;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
if (req.method === 'GET' && url.pathname === '/v1/followthrough-truth/summary') {
|
|
876
|
+
sendJson(res, 200, summarizeFollowthroughTruthPack());
|
|
877
|
+
return;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
if (req.method === 'GET' && url.pathname.startsWith('/v1/followthrough-truth/')) {
|
|
881
|
+
const suffix = decodeURIComponent(url.pathname.slice('/v1/followthrough-truth/'.length));
|
|
882
|
+
if (suffix && suffix !== 'summary') {
|
|
883
|
+
const profile = getFollowthroughTruthProfileDetail(suffix);
|
|
884
|
+
if (!profile) {
|
|
885
|
+
sendJson(res, 404, { ok: false, error: 'followthrough_truth_profile_not_found' });
|
|
886
|
+
return;
|
|
887
|
+
}
|
|
888
|
+
sendJson(res, 200, {
|
|
889
|
+
ok: true,
|
|
890
|
+
product: 'xoonya',
|
|
891
|
+
category: 'xoonya-followthrough-truth-profile-detail',
|
|
892
|
+
profile
|
|
893
|
+
});
|
|
894
|
+
return;
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
|
|
799
898
|
if (req.method === 'GET' && url.pathname === '/v1/providers') {
|
|
800
899
|
sendJson(res, 200, buildProviderLanePack());
|
|
801
900
|
return;
|