xoonya 3.1.0 → 3.1.1
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/.env.example +10 -2
- package/CARRIED_HANDOFF_DEMO.md +60 -60
- package/COMPATIBILITY_NOTE.md +27 -27
- package/CROSS_RUNTIME_POSTURE.md +77 -77
- package/EXAMPLE_PATHS.md +53 -53
- package/FINAL_CONTRACT.md +445 -445
- package/LICENSE +201 -201
- package/NOTICE +3 -3
- package/PARTNER_READY_PATH.md +67 -67
- package/PUBLIC_DEMO_SCRIPT.md +79 -79
- package/README.md +839 -808
- package/RELEASE_NOTES.md +18 -15
- package/SERVICE_CONTRACT.md +207 -207
- package/START_HERE.md +159 -159
- package/TERMINOLOGY.md +55 -55
- package/WHY_XYTARA_XOONYA.md +43 -43
- package/XNYA_CONFORMANCE_MARK.md +78 -78
- package/XNYA_REFERENCE_IMPLEMENTATIONS.md +157 -157
- package/XOONYA_DEFAULT_PATH_MODEL.md +63 -63
- package/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md +63 -63
- package/XOONYA_NATIVE_ATOM_SPEC.md +184 -184
- package/XOONYA_NATIVE_PROOF_FORMAT.md +570 -527
- package/XOONYA_NATIVE_STANDARD_GOVERNANCE.md +119 -119
- package/XOONYA_PROOF_TRUTH_MODEL.md +58 -58
- package/bin/xoonya-first-run.js +184 -184
- package/bin/xoonya-release.js +1367 -1367
- package/bin/xoonya-review.js +70 -70
- package/bin/xoonya.js +82 -82
- package/examples/integration_boundary_walkthrough.js +37 -37
- package/examples/package_quickstart.js +1007 -1007
- package/examples/partner_proof_walkthrough.js +68 -68
- package/examples/proof_review_walkthrough.js +66 -66
- package/examples/review_carried_handoff.js +72 -72
- package/index.js +31 -31
- package/integrations/PROOF_INTEGRATION_PROCESS.md +45 -45
- package/integrations/examples/example-third-party-verifier-registration.record.json +22 -22
- package/integrations/registration-record.schema.json +99 -99
- package/integrations/registry-snapshot.schema.json +36 -36
- package/integrations/registry.js +636 -636
- package/integrations/views.js +36 -36
- package/lib/adapter_certification_contract.js +90 -90
- package/lib/announcement_pack.js +61 -61
- package/lib/artifact_distribution_lane_contract.js +54 -54
- package/lib/asyncapi_contract.js +135 -135
- package/lib/auth_interop_contract.js +69 -69
- package/lib/authority_binding_lifecycle_contract.js +182 -182
- package/lib/bridge_intelligence.js +102 -102
- package/lib/cloudevents_contract.js +79 -79
- package/lib/crypto_agility_matrix.js +125 -125
- package/lib/default_path_contract.js +380 -380
- package/lib/ecosystem_entry.js +64 -64
- package/lib/erc8004_proof_lane_contract.js +64 -64
- package/lib/event_system_lane_contract.js +76 -76
- package/lib/external_proof_import_lane_contract.js +87 -87
- package/lib/feature_control_lane_contract.js +54 -54
- package/lib/followthrough_truth_contract.js +214 -214
- package/lib/framework_lane_contract.js +76 -76
- package/lib/governance_disputes_summary.js +36 -36
- package/lib/governance_intelligence.js +108 -108
- package/lib/identity_interop_contract.js +83 -83
- package/lib/integration_matrix_contract.js +81 -81
- package/lib/launch_narrative.js +53 -53
- package/lib/machine_identity_registry_contract.js +199 -199
- package/lib/major_rails_proof_lane_contract.js +87 -87
- package/lib/offline_verifiability_recovery_contract.js +155 -155
- package/lib/openapi_contract.js +227 -227
- package/lib/operational_receipt_contract.js +165 -165
- package/lib/outreach_proof.js +71 -71
- package/lib/phase_10_closeout_pack.js +45 -45
- package/lib/phase_10_completion_pack.js +76 -76
- package/lib/phase_10_decision_record_pack.js +54 -54
- package/lib/phase_10_decision_resolution_pack.js +53 -53
- package/lib/phase_10_demand_signal_adapters_proof_pack.js +74 -74
- package/lib/phase_10_ecosystem_backlog_triage_proof_pack.js +74 -74
- package/lib/phase_10_freeze_baseline_pack.js +67 -67
- package/lib/phase_10_freeze_review_pack.js +64 -64
- package/lib/phase_10_gate_pack.js +57 -57
- package/lib/phase_10_long_tail_continuity_pack.js +80 -80
- package/lib/phase_10_long_tail_ecosystem_pack.js +68 -68
- package/lib/phase_10_niche_extension_registry_proof_pack.js +74 -74
- package/lib/phase_1_claude_mcp_pack.js +60 -60
- package/lib/phase_1_claude_mcp_proof_pack.js +57 -57
- package/lib/phase_1_ecosystem_pack.js +51 -51
- package/lib/phase_1_openai_codex_pack.js +60 -60
- package/lib/phase_1_openai_codex_proof_pack.js +57 -57
- package/lib/phase_2_base_proof_pack.js +71 -71
- package/lib/phase_2_base_usdc_proof_pack.js +72 -72
- package/lib/phase_2_closeout_pack.js +65 -65
- package/lib/phase_2_completion_pack.js +113 -113
- package/lib/phase_2_decision_record_pack.js +66 -66
- package/lib/phase_2_decision_resolution_pack.js +69 -69
- package/lib/phase_2_eth_proof_pack.js +70 -70
- package/lib/phase_2_evm_base_proof_pack.js +73 -73
- package/lib/phase_2_evm_proof_pack.js +71 -71
- package/lib/phase_2_flip_preview_pack.js +60 -60
- package/lib/phase_2_freeze_review_pack.js +99 -99
- package/lib/phase_2_gate_pack.js +77 -77
- package/lib/phase_2_payment_rails_pack.js +71 -71
- package/lib/phase_2_usdc_proof_pack.js +71 -71
- package/lib/phase_3_brc_proof_pack.js +81 -81
- package/lib/phase_3_bsv_teranode_proof_pack.js +81 -81
- package/lib/phase_3_closeout_pack.js +62 -62
- package/lib/phase_3_completion_pack.js +92 -92
- package/lib/phase_3_decision_record_pack.js +64 -64
- package/lib/phase_3_decision_resolution_pack.js +69 -69
- package/lib/phase_3_freeze_baseline_pack.js +67 -67
- package/lib/phase_3_freeze_review_pack.js +80 -80
- package/lib/phase_3_gate_pack.js +76 -76
- package/lib/phase_3_metanet_proof_pack.js +81 -81
- package/lib/phase_3_native_bsv_pack.js +89 -89
- package/lib/phase_3_native_continuity_pack.js +82 -82
- package/lib/phase_4_attestation_proof_pack.js +75 -75
- package/lib/phase_4_closeout_pack.js +45 -45
- package/lib/phase_4_completion_pack.js +82 -82
- package/lib/phase_4_decision_record_pack.js +54 -54
- package/lib/phase_4_decision_resolution_pack.js +45 -45
- package/lib/phase_4_erc8004_proof_pack.js +76 -76
- package/lib/phase_4_freeze_baseline_pack.js +67 -67
- package/lib/phase_4_freeze_review_pack.js +68 -68
- package/lib/phase_4_gate_pack.js +58 -58
- package/lib/phase_4_identity_registry_proof_pack.js +75 -75
- package/lib/phase_4_identity_trust_pack.js +73 -73
- package/lib/phase_4_trust_continuity_pack.js +86 -86
- package/lib/phase_5_antelope_proof_pack.js +76 -76
- package/lib/phase_5_closeout_pack.js +44 -44
- package/lib/phase_5_completion_pack.js +82 -82
- package/lib/phase_5_decision_record_pack.js +54 -54
- package/lib/phase_5_decision_resolution_pack.js +45 -45
- package/lib/phase_5_freeze_baseline_pack.js +67 -67
- package/lib/phase_5_freeze_review_pack.js +68 -68
- package/lib/phase_5_gate_pack.js +58 -58
- package/lib/phase_5_major_rails_continuity_pack.js +86 -86
- package/lib/phase_5_major_rails_pack.js +74 -74
- package/lib/phase_5_proton_xpr_proof_pack.js +76 -76
- package/lib/phase_5_solana_proof_pack.js +76 -76
- package/lib/phase_6_autogen_proof_pack.js +74 -74
- package/lib/phase_6_closeout_pack.js +46 -46
- package/lib/phase_6_completion_pack.js +77 -77
- package/lib/phase_6_decision_record_pack.js +54 -54
- package/lib/phase_6_decision_resolution_pack.js +53 -53
- package/lib/phase_6_framework_continuity_pack.js +81 -81
- package/lib/phase_6_framework_runtime_pack.js +68 -68
- package/lib/phase_6_freeze_baseline_pack.js +68 -68
- package/lib/phase_6_freeze_review_pack.js +65 -65
- package/lib/phase_6_gate_pack.js +59 -59
- package/lib/phase_6_langchain_proof_pack.js +74 -74
- package/lib/phase_6_langgraph_proof_pack.js +74 -74
- package/lib/phase_6_semantic_kernel_proof_pack.js +74 -74
- package/lib/phase_7_closeout_pack.js +45 -45
- package/lib/phase_7_completion_pack.js +85 -85
- package/lib/phase_7_decision_record_pack.js +53 -53
- package/lib/phase_7_decision_resolution_pack.js +53 -53
- package/lib/phase_7_event_system_continuity_pack.js +89 -89
- package/lib/phase_7_event_system_pack.js +76 -76
- package/lib/phase_7_freeze_baseline_pack.js +74 -74
- package/lib/phase_7_freeze_review_pack.js +65 -65
- package/lib/phase_7_gate_pack.js +58 -58
- package/lib/phase_7_kafka_proof_pack.js +76 -76
- package/lib/phase_7_mqtt_proof_pack.js +76 -76
- package/lib/phase_7_nats_proof_pack.js +76 -76
- package/lib/phase_7_webhook_event_bus_proof_pack.js +76 -76
- package/lib/phase_8_closeout_pack.js +46 -46
- package/lib/phase_8_completion_pack.js +82 -82
- package/lib/phase_8_decision_record_pack.js +54 -54
- package/lib/phase_8_decision_resolution_pack.js +53 -53
- package/lib/phase_8_external_receipt_import_proof_pack.js +74 -74
- package/lib/phase_8_external_result_import_proof_pack.js +74 -74
- package/lib/phase_8_freeze_baseline_pack.js +71 -71
- package/lib/phase_8_freeze_review_pack.js +64 -64
- package/lib/phase_8_gate_pack.js +58 -58
- package/lib/phase_8_proof_bridge_continuity_pack.js +86 -86
- package/lib/phase_8_proof_bridges_pack.js +72 -72
- package/lib/phase_8_proof_bundle_normalization_proof_pack.js +74 -74
- package/lib/phase_9_closeout_pack.js +46 -46
- package/lib/phase_9_completion_pack.js +82 -82
- package/lib/phase_9_custody_refs_proof_pack.js +74 -74
- package/lib/phase_9_decision_record_pack.js +54 -54
- package/lib/phase_9_decision_resolution_pack.js +53 -53
- package/lib/phase_9_freeze_baseline_pack.js +71 -71
- package/lib/phase_9_freeze_review_pack.js +64 -64
- package/lib/phase_9_gate_pack.js +58 -58
- package/lib/phase_9_operator_accounting_bridges_proof_pack.js +74 -74
- package/lib/phase_9_treasury_connectivity_pack.js +72 -72
- package/lib/phase_9_treasury_continuity_pack.js +86 -86
- package/lib/phase_9_treasury_destinations_proof_pack.js +74 -74
- package/lib/phase_program_pack.js +47 -47
- package/lib/proof_bridge_lane_contract.js +82 -82
- package/lib/proof_truth_contract.js +224 -224
- package/lib/provenance_lane_contract.js +54 -54
- package/lib/provider_lane_contract.js +67 -67
- package/lib/public_surface_policy_contract.js +111 -111
- package/lib/publish_plan.js +51 -51
- package/lib/release_candidate.js +50 -50
- package/lib/release_center.js +1037 -1037
- package/lib/release_history.js +206 -206
- package/lib/release_manifest.js +114 -114
- package/lib/release_pack.js +391 -391
- package/lib/result_package_trust_lane_contract.js +74 -74
- package/lib/review_intelligence.js +100 -100
- package/lib/role_freeze.js +436 -436
- package/lib/shared_signals_lane_contract.js +54 -54
- package/lib/signed_audit_provenance_contract.js +93 -93
- package/lib/telemetry_lane_contract.js +54 -54
- package/lib/treasury_proof_lane_contract.js +83 -83
- package/lib/trust_intelligence.js +106 -106
- package/lib/trust_portability_boundary_contract.js +66 -66
- package/lib/trust_portability_pack.js +224 -224
- package/lib/verification_service_pack.js +149 -149
- package/package.json +98 -97
- package/proof_sdk.js +6561 -6265
- package/reference/python/README.md +35 -35
- package/reference/python/__pycache__/xnya_reference.cpython-314.pyc +0 -0
- package/reference/python/requirements-optional.txt +1 -1
- package/reference/python/verify_vectors.py +223 -223
- package/reference/python/xnya_reference.py +810 -810
- package/reference/rust/Cargo.toml +11 -11
- package/reference/rust/README.md +28 -28
- package/reference/rust/src/lib.rs +87 -87
- package/scripts/registry_cli.js +157 -157
- package/scripts/verify_all.js +603 -603
- package/scripts/verify_control_plane_contracts.js +34 -34
- package/scripts/verify_control_plane_routes.js +70 -70
- package/scripts/verify_examples.js +19 -19
- package/scripts/verify_external_proof_import_gate.js +84 -84
- package/scripts/verify_forgery_resistance.js +281 -0
- package/scripts/verify_integrations.js +170 -170
- package/scripts/verify_native_hybrid_design_gate.js +114 -114
- package/scripts/verify_reference_promotion_gate.js +74 -74
- package/scripts/verify_reference_python.js +49 -49
- package/scripts/verify_reference_python_crypto.js +87 -87
- package/scripts/verify_reference_rust_scaffold.js +50 -50
- package/scripts/verify_release_candidate.js +131 -131
- package/scripts/verify_service.js +3038 -2940
- package/scripts/verify_tooling.js +1251 -1251
- package/scripts/verify_trust_portability.js +56 -56
- package/scripts/verify_vectors.js +192 -192
- package/scripts/verify_verification_services.js +56 -56
- package/server.js +4223 -4099
- package/vectors/adversarial-vectors.json +552 -552
- package/vectors/conformance-vectors.json +446 -446
- package/vectors/native-atom-vectors.json +101 -101
- package/vectors/native-payload-profile-vectors.json +50 -50
- package/OPERATIONS_RUNBOOK.md +0 -50
- package/OPERATOR_START_HERE.md +0 -67
- package/PROGRAM_COMPLETE_RELEASE.md +0 -52
- package/PROGRAM_STATUS.md +0 -57
- package/PUBLISH_PLAN.md +0 -25
- package/RELEASE_CHECKLIST.md +0 -16
package/lib/phase_4_gate_pack.js
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const packageJson = require("../package.json");
|
|
4
|
-
const { summarizePhase4CompletionPack } = require("./phase_4_completion_pack");
|
|
5
|
-
const { summarizePhase4FreezeReviewPack } = require("./phase_4_freeze_review_pack");
|
|
6
|
-
|
|
7
|
-
function buildPhase4GatePack() {
|
|
8
|
-
const completion = summarizePhase4CompletionPack();
|
|
9
|
-
const freezeReview = summarizePhase4FreezeReviewPack();
|
|
10
|
-
const unsatisfiedGateCount =
|
|
11
|
-
completion.unsatisfied_criteria_count +
|
|
12
|
-
freezeReview.unsatisfied_resolution_count;
|
|
13
|
-
|
|
14
|
-
return {
|
|
15
|
-
ok: true,
|
|
16
|
-
product: packageJson.name,
|
|
17
|
-
category: "proof-phase-4-gate-pack",
|
|
18
|
-
phase_ref: "phase_4",
|
|
19
|
-
posture: "phase_gate",
|
|
20
|
-
gate: {
|
|
21
|
-
decision: unsatisfiedGateCount === 0 ? "ready_for_phase_5" : "hold_phase_4",
|
|
22
|
-
ready_for_next_phase: unsatisfiedGateCount === 0,
|
|
23
|
-
satisfied_gate_count:
|
|
24
|
-
completion.satisfied_criteria_count +
|
|
25
|
-
freezeReview.satisfied_resolution_count,
|
|
26
|
-
unsatisfied_gate_count: unsatisfiedGateCount,
|
|
27
|
-
blockers: unsatisfiedGateCount === 0 ? [] : [
|
|
28
|
-
"next-phase gate review has not been explicitly recorded"
|
|
29
|
-
],
|
|
30
|
-
advance_when: [
|
|
31
|
-
"freeze decision is explicitly recorded",
|
|
32
|
-
"gate review is explicitly recorded",
|
|
33
|
-
"completion and freeze-review surfaces both show no unsatisfied gate criteria"
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function summarizePhase4GatePack() {
|
|
40
|
-
const pack = buildPhase4GatePack();
|
|
41
|
-
return {
|
|
42
|
-
ok: true,
|
|
43
|
-
product: pack.product,
|
|
44
|
-
category: pack.category,
|
|
45
|
-
phase_ref: pack.phase_ref,
|
|
46
|
-
satisfied_gate_count: pack.gate.satisfied_gate_count,
|
|
47
|
-
unsatisfied_gate_count: pack.gate.unsatisfied_gate_count,
|
|
48
|
-
blocker_count: pack.gate.blockers.length,
|
|
49
|
-
advance_when_count: pack.gate.advance_when.length,
|
|
50
|
-
decision: pack.gate.decision,
|
|
51
|
-
ready_for_next_phase: pack.gate.ready_for_next_phase
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
module.exports = {
|
|
56
|
-
buildPhase4GatePack,
|
|
57
|
-
summarizePhase4GatePack
|
|
58
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
const { summarizePhase4CompletionPack } = require("./phase_4_completion_pack");
|
|
5
|
+
const { summarizePhase4FreezeReviewPack } = require("./phase_4_freeze_review_pack");
|
|
6
|
+
|
|
7
|
+
function buildPhase4GatePack() {
|
|
8
|
+
const completion = summarizePhase4CompletionPack();
|
|
9
|
+
const freezeReview = summarizePhase4FreezeReviewPack();
|
|
10
|
+
const unsatisfiedGateCount =
|
|
11
|
+
completion.unsatisfied_criteria_count +
|
|
12
|
+
freezeReview.unsatisfied_resolution_count;
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
ok: true,
|
|
16
|
+
product: packageJson.name,
|
|
17
|
+
category: "proof-phase-4-gate-pack",
|
|
18
|
+
phase_ref: "phase_4",
|
|
19
|
+
posture: "phase_gate",
|
|
20
|
+
gate: {
|
|
21
|
+
decision: unsatisfiedGateCount === 0 ? "ready_for_phase_5" : "hold_phase_4",
|
|
22
|
+
ready_for_next_phase: unsatisfiedGateCount === 0,
|
|
23
|
+
satisfied_gate_count:
|
|
24
|
+
completion.satisfied_criteria_count +
|
|
25
|
+
freezeReview.satisfied_resolution_count,
|
|
26
|
+
unsatisfied_gate_count: unsatisfiedGateCount,
|
|
27
|
+
blockers: unsatisfiedGateCount === 0 ? [] : [
|
|
28
|
+
"next-phase gate review has not been explicitly recorded"
|
|
29
|
+
],
|
|
30
|
+
advance_when: [
|
|
31
|
+
"freeze decision is explicitly recorded",
|
|
32
|
+
"gate review is explicitly recorded",
|
|
33
|
+
"completion and freeze-review surfaces both show no unsatisfied gate criteria"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function summarizePhase4GatePack() {
|
|
40
|
+
const pack = buildPhase4GatePack();
|
|
41
|
+
return {
|
|
42
|
+
ok: true,
|
|
43
|
+
product: pack.product,
|
|
44
|
+
category: pack.category,
|
|
45
|
+
phase_ref: pack.phase_ref,
|
|
46
|
+
satisfied_gate_count: pack.gate.satisfied_gate_count,
|
|
47
|
+
unsatisfied_gate_count: pack.gate.unsatisfied_gate_count,
|
|
48
|
+
blocker_count: pack.gate.blockers.length,
|
|
49
|
+
advance_when_count: pack.gate.advance_when.length,
|
|
50
|
+
decision: pack.gate.decision,
|
|
51
|
+
ready_for_next_phase: pack.gate.ready_for_next_phase
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
module.exports = {
|
|
56
|
+
buildPhase4GatePack,
|
|
57
|
+
summarizePhase4GatePack
|
|
58
|
+
};
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const packageJson = require("../package.json");
|
|
4
|
-
|
|
5
|
-
function buildPhase4IdentityRegistryProofPack() {
|
|
6
|
-
return {
|
|
7
|
-
ok: true,
|
|
8
|
-
product: packageJson.name,
|
|
9
|
-
category: "proof-phase-4-identity-registry-proof-pack",
|
|
10
|
-
phase_ref: "phase_4",
|
|
11
|
-
ecosystem_ref: "identity_registry",
|
|
12
|
-
status: "active",
|
|
13
|
-
trust_shape: {
|
|
14
|
-
identity_layers: ["identity_registry"],
|
|
15
|
-
attestation_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
16
|
-
resolution_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
17
|
-
proof_artifacts: ["registry_subject_bundle", "registry_binding_receipt", "resolution_receipt"],
|
|
18
|
-
proof_surfaces: [
|
|
19
|
-
"/v1/proof-center/bridge/summary",
|
|
20
|
-
"/v1/release-center/summary",
|
|
21
|
-
"/v1/phases/phase-4/summary"
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
first_steps: {
|
|
25
|
-
http: [
|
|
26
|
-
"/v1/phases/phase-4/summary",
|
|
27
|
-
"/v1/phases/phase-4/identity-registry/proof/summary",
|
|
28
|
-
"/v1/release-center/summary"
|
|
29
|
-
],
|
|
30
|
-
cli: [
|
|
31
|
-
"xoonya-release --phase-4 --summary",
|
|
32
|
-
"xoonya-release --phase-4-identity-registry-proof --summary"
|
|
33
|
-
]
|
|
34
|
-
},
|
|
35
|
-
success_signals: [
|
|
36
|
-
"identity registry proof lane is public and inspectable",
|
|
37
|
-
"registry proof posture is visible",
|
|
38
|
-
"proof surfaces stay attached to the registry lane"
|
|
39
|
-
],
|
|
40
|
-
completion_shape: {
|
|
41
|
-
completion_checks: [
|
|
42
|
-
"identity registry proof lane is public and inspectable",
|
|
43
|
-
"registry binding and resolution modes are visible",
|
|
44
|
-
"proof artifacts are explicit at lane level",
|
|
45
|
-
"proof surfaces stay attached to the lane"
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function summarizePhase4IdentityRegistryProofPack() {
|
|
52
|
-
const pack = buildPhase4IdentityRegistryProofPack();
|
|
53
|
-
return {
|
|
54
|
-
ok: true,
|
|
55
|
-
product: pack.product,
|
|
56
|
-
category: pack.category,
|
|
57
|
-
phase_ref: pack.phase_ref,
|
|
58
|
-
ecosystem_count: pack.trust_shape.identity_layers.length,
|
|
59
|
-
identity_layer_count: pack.trust_shape.identity_layers.length,
|
|
60
|
-
attestation_mode_count: pack.trust_shape.attestation_modes.length,
|
|
61
|
-
resolution_mode_count: pack.trust_shape.resolution_modes.length,
|
|
62
|
-
proof_artifact_count: pack.trust_shape.proof_artifacts.length,
|
|
63
|
-
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
64
|
-
http_step_count: pack.first_steps.http.length,
|
|
65
|
-
cli_step_count: pack.first_steps.cli.length,
|
|
66
|
-
signal_count: pack.success_signals.length,
|
|
67
|
-
proof_surface_count: pack.trust_shape.proof_surfaces.length,
|
|
68
|
-
first_http_step: pack.first_steps.http[0] || null
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
module.exports = {
|
|
73
|
-
buildPhase4IdentityRegistryProofPack,
|
|
74
|
-
summarizePhase4IdentityRegistryProofPack
|
|
75
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase4IdentityRegistryProofPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-4-identity-registry-proof-pack",
|
|
10
|
+
phase_ref: "phase_4",
|
|
11
|
+
ecosystem_ref: "identity_registry",
|
|
12
|
+
status: "active",
|
|
13
|
+
trust_shape: {
|
|
14
|
+
identity_layers: ["identity_registry"],
|
|
15
|
+
attestation_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
16
|
+
resolution_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
17
|
+
proof_artifacts: ["registry_subject_bundle", "registry_binding_receipt", "resolution_receipt"],
|
|
18
|
+
proof_surfaces: [
|
|
19
|
+
"/v1/proof-center/bridge/summary",
|
|
20
|
+
"/v1/release-center/summary",
|
|
21
|
+
"/v1/phases/phase-4/summary"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
first_steps: {
|
|
25
|
+
http: [
|
|
26
|
+
"/v1/phases/phase-4/summary",
|
|
27
|
+
"/v1/phases/phase-4/identity-registry/proof/summary",
|
|
28
|
+
"/v1/release-center/summary"
|
|
29
|
+
],
|
|
30
|
+
cli: [
|
|
31
|
+
"xoonya-release --phase-4 --summary",
|
|
32
|
+
"xoonya-release --phase-4-identity-registry-proof --summary"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
success_signals: [
|
|
36
|
+
"identity registry proof lane is public and inspectable",
|
|
37
|
+
"registry proof posture is visible",
|
|
38
|
+
"proof surfaces stay attached to the registry lane"
|
|
39
|
+
],
|
|
40
|
+
completion_shape: {
|
|
41
|
+
completion_checks: [
|
|
42
|
+
"identity registry proof lane is public and inspectable",
|
|
43
|
+
"registry binding and resolution modes are visible",
|
|
44
|
+
"proof artifacts are explicit at lane level",
|
|
45
|
+
"proof surfaces stay attached to the lane"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function summarizePhase4IdentityRegistryProofPack() {
|
|
52
|
+
const pack = buildPhase4IdentityRegistryProofPack();
|
|
53
|
+
return {
|
|
54
|
+
ok: true,
|
|
55
|
+
product: pack.product,
|
|
56
|
+
category: pack.category,
|
|
57
|
+
phase_ref: pack.phase_ref,
|
|
58
|
+
ecosystem_count: pack.trust_shape.identity_layers.length,
|
|
59
|
+
identity_layer_count: pack.trust_shape.identity_layers.length,
|
|
60
|
+
attestation_mode_count: pack.trust_shape.attestation_modes.length,
|
|
61
|
+
resolution_mode_count: pack.trust_shape.resolution_modes.length,
|
|
62
|
+
proof_artifact_count: pack.trust_shape.proof_artifacts.length,
|
|
63
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
64
|
+
http_step_count: pack.first_steps.http.length,
|
|
65
|
+
cli_step_count: pack.first_steps.cli.length,
|
|
66
|
+
signal_count: pack.success_signals.length,
|
|
67
|
+
proof_surface_count: pack.trust_shape.proof_surfaces.length,
|
|
68
|
+
first_http_step: pack.first_steps.http[0] || null
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
module.exports = {
|
|
73
|
+
buildPhase4IdentityRegistryProofPack,
|
|
74
|
+
summarizePhase4IdentityRegistryProofPack
|
|
75
|
+
};
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const packageJson = require("../package.json");
|
|
4
|
-
|
|
5
|
-
function buildPhase4IdentityTrustPack() {
|
|
6
|
-
return {
|
|
7
|
-
ok: true,
|
|
8
|
-
product: packageJson.name,
|
|
9
|
-
category: "proof-phase-4-identity-trust-pack",
|
|
10
|
-
phase_ref: "phase_4",
|
|
11
|
-
status: "active",
|
|
12
|
-
ecosystems: ["erc8004", "identity_registry", "attestation"],
|
|
13
|
-
lane_refs: [
|
|
14
|
-
"/v1/phases/phase-4/erc8004/proof/summary",
|
|
15
|
-
"/v1/phases/phase-4/identity-registry/proof/summary",
|
|
16
|
-
"/v1/phases/phase-4/attestation/proof/summary"
|
|
17
|
-
],
|
|
18
|
-
trust_shape: {
|
|
19
|
-
identity_layers: ["erc8004", "identity_registry"],
|
|
20
|
-
attestation_modes: ["subject_attestation", "registry_binding", "trust_resolution"],
|
|
21
|
-
erc8004_modes: ["subject_binding", "policy_carry", "wallet_resolution"],
|
|
22
|
-
registry_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
23
|
-
review_modes: ["attester_resolution", "review_carry", "trust_resolution"],
|
|
24
|
-
proof_surfaces: [
|
|
25
|
-
"/v1/proof-center/bridge/summary",
|
|
26
|
-
"/v1/release-center/summary",
|
|
27
|
-
"/v1/phases/phase-4/erc8004/proof/summary"
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
completion_shape: {
|
|
31
|
-
completion_checks: [
|
|
32
|
-
"broad Phase 4 identity and trust proof pack is public and inspectable",
|
|
33
|
-
"Phase 4 trust proof lanes are public and inspectable",
|
|
34
|
-
"identity and attestation proof posture are visible at phase level",
|
|
35
|
-
"proof surfaces stay attached to the Phase 4 trust family",
|
|
36
|
-
"release-center summary reflects Phase 4 activation and the trust proof lane family"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
goal: "deepen identity, registry, and attestation proof posture as the next active program slice",
|
|
40
|
-
done_means: [
|
|
41
|
-
"Phase 3 is no longer the active proof-side program slice",
|
|
42
|
-
"Phase 4 has a public proof-facing entry path",
|
|
43
|
-
"ERC8004 and trust-facing identity posture are visible as an explicit phase family",
|
|
44
|
-
"the trust proof lane family feels operational rather than like a placeholder"
|
|
45
|
-
]
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function summarizePhase4IdentityTrustPack() {
|
|
50
|
-
const pack = buildPhase4IdentityTrustPack();
|
|
51
|
-
return {
|
|
52
|
-
ok: true,
|
|
53
|
-
product: pack.product,
|
|
54
|
-
category: pack.category,
|
|
55
|
-
phase_ref: pack.phase_ref,
|
|
56
|
-
ecosystem_count: pack.ecosystems.length,
|
|
57
|
-
lane_count: pack.lane_refs.length,
|
|
58
|
-
identity_layer_count: pack.trust_shape.identity_layers.length,
|
|
59
|
-
attestation_mode_count: pack.trust_shape.attestation_modes.length,
|
|
60
|
-
erc8004_mode_count: pack.trust_shape.erc8004_modes.length,
|
|
61
|
-
registry_mode_count: pack.trust_shape.registry_modes.length,
|
|
62
|
-
review_mode_count: pack.trust_shape.review_modes.length,
|
|
63
|
-
proof_surface_count: pack.trust_shape.proof_surfaces.length,
|
|
64
|
-
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
65
|
-
done_mean_count: pack.done_means.length,
|
|
66
|
-
first_ecosystem: pack.ecosystems[0] || null
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
module.exports = {
|
|
71
|
-
buildPhase4IdentityTrustPack,
|
|
72
|
-
summarizePhase4IdentityTrustPack
|
|
73
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase4IdentityTrustPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-4-identity-trust-pack",
|
|
10
|
+
phase_ref: "phase_4",
|
|
11
|
+
status: "active",
|
|
12
|
+
ecosystems: ["erc8004", "identity_registry", "attestation"],
|
|
13
|
+
lane_refs: [
|
|
14
|
+
"/v1/phases/phase-4/erc8004/proof/summary",
|
|
15
|
+
"/v1/phases/phase-4/identity-registry/proof/summary",
|
|
16
|
+
"/v1/phases/phase-4/attestation/proof/summary"
|
|
17
|
+
],
|
|
18
|
+
trust_shape: {
|
|
19
|
+
identity_layers: ["erc8004", "identity_registry"],
|
|
20
|
+
attestation_modes: ["subject_attestation", "registry_binding", "trust_resolution"],
|
|
21
|
+
erc8004_modes: ["subject_binding", "policy_carry", "wallet_resolution"],
|
|
22
|
+
registry_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
23
|
+
review_modes: ["attester_resolution", "review_carry", "trust_resolution"],
|
|
24
|
+
proof_surfaces: [
|
|
25
|
+
"/v1/proof-center/bridge/summary",
|
|
26
|
+
"/v1/release-center/summary",
|
|
27
|
+
"/v1/phases/phase-4/erc8004/proof/summary"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
completion_shape: {
|
|
31
|
+
completion_checks: [
|
|
32
|
+
"broad Phase 4 identity and trust proof pack is public and inspectable",
|
|
33
|
+
"Phase 4 trust proof lanes are public and inspectable",
|
|
34
|
+
"identity and attestation proof posture are visible at phase level",
|
|
35
|
+
"proof surfaces stay attached to the Phase 4 trust family",
|
|
36
|
+
"release-center summary reflects Phase 4 activation and the trust proof lane family"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
goal: "deepen identity, registry, and attestation proof posture as the next active program slice",
|
|
40
|
+
done_means: [
|
|
41
|
+
"Phase 3 is no longer the active proof-side program slice",
|
|
42
|
+
"Phase 4 has a public proof-facing entry path",
|
|
43
|
+
"ERC8004 and trust-facing identity posture are visible as an explicit phase family",
|
|
44
|
+
"the trust proof lane family feels operational rather than like a placeholder"
|
|
45
|
+
]
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function summarizePhase4IdentityTrustPack() {
|
|
50
|
+
const pack = buildPhase4IdentityTrustPack();
|
|
51
|
+
return {
|
|
52
|
+
ok: true,
|
|
53
|
+
product: pack.product,
|
|
54
|
+
category: pack.category,
|
|
55
|
+
phase_ref: pack.phase_ref,
|
|
56
|
+
ecosystem_count: pack.ecosystems.length,
|
|
57
|
+
lane_count: pack.lane_refs.length,
|
|
58
|
+
identity_layer_count: pack.trust_shape.identity_layers.length,
|
|
59
|
+
attestation_mode_count: pack.trust_shape.attestation_modes.length,
|
|
60
|
+
erc8004_mode_count: pack.trust_shape.erc8004_modes.length,
|
|
61
|
+
registry_mode_count: pack.trust_shape.registry_modes.length,
|
|
62
|
+
review_mode_count: pack.trust_shape.review_modes.length,
|
|
63
|
+
proof_surface_count: pack.trust_shape.proof_surfaces.length,
|
|
64
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
65
|
+
done_mean_count: pack.done_means.length,
|
|
66
|
+
first_ecosystem: pack.ecosystems[0] || null
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module.exports = {
|
|
71
|
+
buildPhase4IdentityTrustPack,
|
|
72
|
+
summarizePhase4IdentityTrustPack
|
|
73
|
+
};
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const packageJson = require("../package.json");
|
|
4
|
-
|
|
5
|
-
function buildPhase4TrustContinuityPack() {
|
|
6
|
-
return {
|
|
7
|
-
ok: true,
|
|
8
|
-
product: packageJson.name,
|
|
9
|
-
category: "proof-phase-4-trust-continuity-pack",
|
|
10
|
-
phase_ref: "phase_4",
|
|
11
|
-
posture: "continuity_review",
|
|
12
|
-
continuity: {
|
|
13
|
-
lane_refs: [
|
|
14
|
-
"/v1/phases/phase-4/erc8004/proof/summary",
|
|
15
|
-
"/v1/phases/phase-4/identity-registry/proof/summary",
|
|
16
|
-
"/v1/phases/phase-4/attestation/proof/summary"
|
|
17
|
-
],
|
|
18
|
-
continuity_refs: ["/v1/phases/phase-4/summary"],
|
|
19
|
-
identity_layers: ["erc8004", "identity_registry"],
|
|
20
|
-
attestation_modes: ["subject_attestation", "registry_binding", "trust_resolution"],
|
|
21
|
-
erc8004_modes: ["subject_binding", "policy_carry", "wallet_resolution"],
|
|
22
|
-
registry_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
23
|
-
review_modes: ["attester_resolution", "review_carry", "trust_resolution"],
|
|
24
|
-
proof_surfaces: [
|
|
25
|
-
"/v1/proof-center/bridge/summary",
|
|
26
|
-
"/v1/release-center/summary",
|
|
27
|
-
"/v1/phases/phase-4/summary"
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
completion_shape: {
|
|
31
|
-
completion_checks: [
|
|
32
|
-
"all current trust proof lanes are public and inspectable",
|
|
33
|
-
"identity and attestation proof posture are visible at phase level",
|
|
34
|
-
"trust continuity is explicit across the Phase 4 proof lane family",
|
|
35
|
-
"release-center summary reflects the trust proof family as one coherent slice"
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
first_path: {
|
|
39
|
-
purpose: "show that the trust family is coherent across proof lanes rather than isolated summaries",
|
|
40
|
-
first_http_sequence: [
|
|
41
|
-
"/v1/phases/phase-4/summary",
|
|
42
|
-
"/v1/phases/phase-4/trust-continuity/summary",
|
|
43
|
-
"/v1/release-center/summary",
|
|
44
|
-
"/v1/proof-center/bridge/summary"
|
|
45
|
-
],
|
|
46
|
-
first_cli_sequence: [
|
|
47
|
-
"xoonya-release --phase-4-trust-continuity --summary",
|
|
48
|
-
"xoonya-release --phase-4 --summary"
|
|
49
|
-
],
|
|
50
|
-
expected_signals: [
|
|
51
|
-
"ERC8004, registry, and attestation proof lanes are linked as one trust family",
|
|
52
|
-
"identity and attestation roles are legible without collapsing into one lane",
|
|
53
|
-
"proof surfaces stay attached to the Phase 4 trust family",
|
|
54
|
-
"Phase 4 reads as one coherent proof-side trust slice"
|
|
55
|
-
]
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function summarizePhase4TrustContinuityPack() {
|
|
61
|
-
const pack = buildPhase4TrustContinuityPack();
|
|
62
|
-
return {
|
|
63
|
-
ok: true,
|
|
64
|
-
product: pack.product,
|
|
65
|
-
category: pack.category,
|
|
66
|
-
phase_ref: pack.phase_ref,
|
|
67
|
-
lane_count: pack.continuity.lane_refs.length,
|
|
68
|
-
continuity_ref_count: pack.continuity.continuity_refs.length,
|
|
69
|
-
identity_layer_count: pack.continuity.identity_layers.length,
|
|
70
|
-
attestation_mode_count: pack.continuity.attestation_modes.length,
|
|
71
|
-
erc8004_mode_count: pack.continuity.erc8004_modes.length,
|
|
72
|
-
registry_mode_count: pack.continuity.registry_modes.length,
|
|
73
|
-
review_mode_count: pack.continuity.review_modes.length,
|
|
74
|
-
proof_surface_count: pack.continuity.proof_surfaces.length,
|
|
75
|
-
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
76
|
-
http_step_count: pack.first_path.first_http_sequence.length,
|
|
77
|
-
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
78
|
-
signal_count: pack.first_path.expected_signals.length,
|
|
79
|
-
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
module.exports = {
|
|
84
|
-
buildPhase4TrustContinuityPack,
|
|
85
|
-
summarizePhase4TrustContinuityPack
|
|
86
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase4TrustContinuityPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-4-trust-continuity-pack",
|
|
10
|
+
phase_ref: "phase_4",
|
|
11
|
+
posture: "continuity_review",
|
|
12
|
+
continuity: {
|
|
13
|
+
lane_refs: [
|
|
14
|
+
"/v1/phases/phase-4/erc8004/proof/summary",
|
|
15
|
+
"/v1/phases/phase-4/identity-registry/proof/summary",
|
|
16
|
+
"/v1/phases/phase-4/attestation/proof/summary"
|
|
17
|
+
],
|
|
18
|
+
continuity_refs: ["/v1/phases/phase-4/summary"],
|
|
19
|
+
identity_layers: ["erc8004", "identity_registry"],
|
|
20
|
+
attestation_modes: ["subject_attestation", "registry_binding", "trust_resolution"],
|
|
21
|
+
erc8004_modes: ["subject_binding", "policy_carry", "wallet_resolution"],
|
|
22
|
+
registry_modes: ["registry_binding", "subject_resolution", "registry_lookup"],
|
|
23
|
+
review_modes: ["attester_resolution", "review_carry", "trust_resolution"],
|
|
24
|
+
proof_surfaces: [
|
|
25
|
+
"/v1/proof-center/bridge/summary",
|
|
26
|
+
"/v1/release-center/summary",
|
|
27
|
+
"/v1/phases/phase-4/summary"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
completion_shape: {
|
|
31
|
+
completion_checks: [
|
|
32
|
+
"all current trust proof lanes are public and inspectable",
|
|
33
|
+
"identity and attestation proof posture are visible at phase level",
|
|
34
|
+
"trust continuity is explicit across the Phase 4 proof lane family",
|
|
35
|
+
"release-center summary reflects the trust proof family as one coherent slice"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
first_path: {
|
|
39
|
+
purpose: "show that the trust family is coherent across proof lanes rather than isolated summaries",
|
|
40
|
+
first_http_sequence: [
|
|
41
|
+
"/v1/phases/phase-4/summary",
|
|
42
|
+
"/v1/phases/phase-4/trust-continuity/summary",
|
|
43
|
+
"/v1/release-center/summary",
|
|
44
|
+
"/v1/proof-center/bridge/summary"
|
|
45
|
+
],
|
|
46
|
+
first_cli_sequence: [
|
|
47
|
+
"xoonya-release --phase-4-trust-continuity --summary",
|
|
48
|
+
"xoonya-release --phase-4 --summary"
|
|
49
|
+
],
|
|
50
|
+
expected_signals: [
|
|
51
|
+
"ERC8004, registry, and attestation proof lanes are linked as one trust family",
|
|
52
|
+
"identity and attestation roles are legible without collapsing into one lane",
|
|
53
|
+
"proof surfaces stay attached to the Phase 4 trust family",
|
|
54
|
+
"Phase 4 reads as one coherent proof-side trust slice"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function summarizePhase4TrustContinuityPack() {
|
|
61
|
+
const pack = buildPhase4TrustContinuityPack();
|
|
62
|
+
return {
|
|
63
|
+
ok: true,
|
|
64
|
+
product: pack.product,
|
|
65
|
+
category: pack.category,
|
|
66
|
+
phase_ref: pack.phase_ref,
|
|
67
|
+
lane_count: pack.continuity.lane_refs.length,
|
|
68
|
+
continuity_ref_count: pack.continuity.continuity_refs.length,
|
|
69
|
+
identity_layer_count: pack.continuity.identity_layers.length,
|
|
70
|
+
attestation_mode_count: pack.continuity.attestation_modes.length,
|
|
71
|
+
erc8004_mode_count: pack.continuity.erc8004_modes.length,
|
|
72
|
+
registry_mode_count: pack.continuity.registry_modes.length,
|
|
73
|
+
review_mode_count: pack.continuity.review_modes.length,
|
|
74
|
+
proof_surface_count: pack.continuity.proof_surfaces.length,
|
|
75
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
76
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
77
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
78
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
79
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
module.exports = {
|
|
84
|
+
buildPhase4TrustContinuityPack,
|
|
85
|
+
summarizePhase4TrustContinuityPack
|
|
86
|
+
};
|