xoonya 2.0.0 → 2.2.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/CARRIED_HANDOFF_DEMO.md +60 -0
- package/EXAMPLE_PATHS.md +53 -0
- package/FINAL_CONTRACT.md +6 -6
- package/OPERATIONS_RUNBOOK.md +50 -0
- package/OPERATOR_START_HERE.md +67 -0
- package/PARTNER_READY_PATH.md +67 -0
- package/PROGRAM_COMPLETE_RELEASE.md +52 -0
- package/PROGRAM_STATUS.md +57 -0
- package/PUBLIC_DEMO_SCRIPT.md +79 -0
- package/PUBLISH_PLAN.md +14 -0
- package/README.md +86 -2
- package/RELEASE_CHECKLIST.md +16 -0
- package/RELEASE_NOTES.md +28 -0
- package/START_HERE.md +28 -0
- package/WHY_XYTARA_XOONYA.md +43 -0
- package/bin/xoonya-release.js +1349 -0
- package/bin/xoonya-review.js +70 -0
- package/examples/integration_boundary_walkthrough.js +37 -0
- package/examples/package_quickstart.js +1007 -0
- package/examples/partner_proof_walkthrough.js +68 -0
- package/examples/proof_review_walkthrough.js +66 -0
- package/examples/review_carried_handoff.js +72 -0
- package/index.js +11 -1
- package/lib/announcement_pack.js +61 -0
- package/lib/ecosystem_entry.js +64 -0
- package/lib/launch_narrative.js +53 -0
- package/lib/outreach_proof.js +71 -0
- package/lib/phase_10_closeout_pack.js +45 -0
- package/lib/phase_10_completion_pack.js +76 -0
- package/lib/phase_10_decision_record_pack.js +54 -0
- package/lib/phase_10_decision_resolution_pack.js +53 -0
- package/lib/phase_10_demand_signal_adapters_proof_pack.js +74 -0
- package/lib/phase_10_ecosystem_backlog_triage_proof_pack.js +74 -0
- package/lib/phase_10_freeze_baseline_pack.js +67 -0
- package/lib/phase_10_freeze_review_pack.js +64 -0
- package/lib/phase_10_gate_pack.js +57 -0
- package/lib/phase_10_long_tail_continuity_pack.js +80 -0
- package/lib/phase_10_long_tail_ecosystem_pack.js +68 -0
- package/lib/phase_10_niche_extension_registry_proof_pack.js +74 -0
- package/lib/phase_1_claude_mcp_pack.js +60 -0
- package/lib/phase_1_claude_mcp_proof_pack.js +57 -0
- package/lib/phase_1_ecosystem_pack.js +51 -0
- package/lib/phase_1_openai_codex_pack.js +60 -0
- package/lib/phase_1_openai_codex_proof_pack.js +57 -0
- package/lib/phase_2_base_proof_pack.js +71 -0
- package/lib/phase_2_base_usdc_proof_pack.js +72 -0
- package/lib/phase_2_closeout_pack.js +65 -0
- package/lib/phase_2_completion_pack.js +113 -0
- package/lib/phase_2_decision_record_pack.js +66 -0
- package/lib/phase_2_decision_resolution_pack.js +69 -0
- package/lib/phase_2_eth_proof_pack.js +70 -0
- package/lib/phase_2_evm_base_proof_pack.js +73 -0
- package/lib/phase_2_evm_proof_pack.js +71 -0
- package/lib/phase_2_flip_preview_pack.js +60 -0
- package/lib/phase_2_freeze_review_pack.js +99 -0
- package/lib/phase_2_gate_pack.js +77 -0
- package/lib/phase_2_payment_rails_pack.js +71 -0
- package/lib/phase_2_usdc_proof_pack.js +71 -0
- package/lib/phase_3_brc_proof_pack.js +81 -0
- package/lib/phase_3_bsv_teranode_proof_pack.js +81 -0
- package/lib/phase_3_closeout_pack.js +62 -0
- package/lib/phase_3_completion_pack.js +92 -0
- package/lib/phase_3_decision_record_pack.js +64 -0
- package/lib/phase_3_decision_resolution_pack.js +69 -0
- package/lib/phase_3_freeze_baseline_pack.js +67 -0
- package/lib/phase_3_freeze_review_pack.js +80 -0
- package/lib/phase_3_gate_pack.js +76 -0
- package/lib/phase_3_metanet_proof_pack.js +81 -0
- package/lib/phase_3_native_bsv_pack.js +89 -0
- package/lib/phase_3_native_continuity_pack.js +82 -0
- package/lib/phase_4_attestation_proof_pack.js +75 -0
- package/lib/phase_4_closeout_pack.js +45 -0
- package/lib/phase_4_completion_pack.js +82 -0
- package/lib/phase_4_decision_record_pack.js +54 -0
- package/lib/phase_4_decision_resolution_pack.js +45 -0
- package/lib/phase_4_erc8004_proof_pack.js +76 -0
- package/lib/phase_4_freeze_baseline_pack.js +67 -0
- package/lib/phase_4_freeze_review_pack.js +68 -0
- package/lib/phase_4_gate_pack.js +58 -0
- package/lib/phase_4_identity_registry_proof_pack.js +75 -0
- package/lib/phase_4_identity_trust_pack.js +73 -0
- package/lib/phase_4_trust_continuity_pack.js +86 -0
- package/lib/phase_5_antelope_proof_pack.js +76 -0
- package/lib/phase_5_closeout_pack.js +44 -0
- package/lib/phase_5_completion_pack.js +82 -0
- package/lib/phase_5_decision_record_pack.js +54 -0
- package/lib/phase_5_decision_resolution_pack.js +45 -0
- package/lib/phase_5_freeze_baseline_pack.js +67 -0
- package/lib/phase_5_freeze_review_pack.js +68 -0
- package/lib/phase_5_gate_pack.js +58 -0
- package/lib/phase_5_major_rails_continuity_pack.js +86 -0
- package/lib/phase_5_major_rails_pack.js +74 -0
- package/lib/phase_5_proton_xpr_proof_pack.js +76 -0
- package/lib/phase_5_solana_proof_pack.js +76 -0
- package/lib/phase_6_autogen_proof_pack.js +74 -0
- package/lib/phase_6_closeout_pack.js +46 -0
- package/lib/phase_6_completion_pack.js +77 -0
- package/lib/phase_6_decision_record_pack.js +54 -0
- package/lib/phase_6_decision_resolution_pack.js +53 -0
- package/lib/phase_6_framework_continuity_pack.js +81 -0
- package/lib/phase_6_framework_runtime_pack.js +68 -0
- package/lib/phase_6_freeze_baseline_pack.js +68 -0
- package/lib/phase_6_freeze_review_pack.js +65 -0
- package/lib/phase_6_gate_pack.js +59 -0
- package/lib/phase_6_langchain_proof_pack.js +74 -0
- package/lib/phase_6_langgraph_proof_pack.js +74 -0
- package/lib/phase_6_semantic_kernel_proof_pack.js +74 -0
- package/lib/phase_7_closeout_pack.js +45 -0
- package/lib/phase_7_completion_pack.js +85 -0
- package/lib/phase_7_decision_record_pack.js +53 -0
- package/lib/phase_7_decision_resolution_pack.js +53 -0
- package/lib/phase_7_event_system_continuity_pack.js +89 -0
- package/lib/phase_7_event_system_pack.js +76 -0
- package/lib/phase_7_freeze_baseline_pack.js +74 -0
- package/lib/phase_7_freeze_review_pack.js +65 -0
- package/lib/phase_7_gate_pack.js +58 -0
- package/lib/phase_7_kafka_proof_pack.js +76 -0
- package/lib/phase_7_mqtt_proof_pack.js +76 -0
- package/lib/phase_7_nats_proof_pack.js +76 -0
- package/lib/phase_7_webhook_event_bus_proof_pack.js +76 -0
- package/lib/phase_8_closeout_pack.js +46 -0
- package/lib/phase_8_completion_pack.js +82 -0
- package/lib/phase_8_decision_record_pack.js +54 -0
- package/lib/phase_8_decision_resolution_pack.js +53 -0
- package/lib/phase_8_external_receipt_import_proof_pack.js +74 -0
- package/lib/phase_8_external_result_import_proof_pack.js +74 -0
- package/lib/phase_8_freeze_baseline_pack.js +71 -0
- package/lib/phase_8_freeze_review_pack.js +64 -0
- package/lib/phase_8_gate_pack.js +58 -0
- package/lib/phase_8_proof_bridge_continuity_pack.js +86 -0
- package/lib/phase_8_proof_bridges_pack.js +72 -0
- package/lib/phase_8_proof_bundle_normalization_proof_pack.js +74 -0
- package/lib/phase_9_closeout_pack.js +46 -0
- package/lib/phase_9_completion_pack.js +82 -0
- package/lib/phase_9_custody_refs_proof_pack.js +74 -0
- package/lib/phase_9_decision_record_pack.js +54 -0
- package/lib/phase_9_decision_resolution_pack.js +53 -0
- package/lib/phase_9_freeze_baseline_pack.js +71 -0
- package/lib/phase_9_freeze_review_pack.js +64 -0
- package/lib/phase_9_gate_pack.js +58 -0
- package/lib/phase_9_operator_accounting_bridges_proof_pack.js +74 -0
- package/lib/phase_9_treasury_connectivity_pack.js +72 -0
- package/lib/phase_9_treasury_continuity_pack.js +86 -0
- package/lib/phase_9_treasury_destinations_proof_pack.js +74 -0
- package/lib/phase_program_pack.js +47 -0
- package/lib/publish_plan.js +51 -0
- package/lib/release_candidate.js +50 -0
- package/lib/release_center.js +1037 -0
- package/lib/release_history.js +72 -0
- package/lib/release_manifest.js +114 -0
- package/lib/release_pack.js +391 -0
- package/package.json +26 -2
- package/proof_sdk.js +43 -2
- package/server.js +1852 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10DecisionResolutionPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-decision-resolution-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
posture: "decision_resolution",
|
|
12
|
+
transitions: [
|
|
13
|
+
{
|
|
14
|
+
ref: "freeze_decision",
|
|
15
|
+
from: "pending_record",
|
|
16
|
+
to: "recorded"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
ref: "program_closeout_review",
|
|
20
|
+
from: "pending_record",
|
|
21
|
+
to: "recorded"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
resolution_steps: [
|
|
25
|
+
"confirm the long-tail proof lane family is the intended final Phase 10 shape",
|
|
26
|
+
"record the freeze decision outcome",
|
|
27
|
+
"record the terminal program closeout review outcome",
|
|
28
|
+
"recheck phase-10 completion and freeze-review summaries",
|
|
29
|
+
"confirm phase-10 gate resolves to ready_for_program_closeout"
|
|
30
|
+
],
|
|
31
|
+
target_gate_decision: "ready_for_program_closeout",
|
|
32
|
+
target_ready_for_next_phase: false
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function summarizePhase10DecisionResolutionPack() {
|
|
37
|
+
const pack = buildPhase10DecisionResolutionPack();
|
|
38
|
+
return {
|
|
39
|
+
ok: true,
|
|
40
|
+
product: pack.product,
|
|
41
|
+
category: pack.category,
|
|
42
|
+
phase_ref: pack.phase_ref,
|
|
43
|
+
transition_count: pack.transitions.length,
|
|
44
|
+
resolution_step_count: pack.resolution_steps.length,
|
|
45
|
+
target_gate_decision: pack.target_gate_decision,
|
|
46
|
+
target_ready_for_next_phase: pack.target_ready_for_next_phase
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
module.exports = {
|
|
51
|
+
buildPhase10DecisionResolutionPack,
|
|
52
|
+
summarizePhase10DecisionResolutionPack
|
|
53
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10DemandSignalAdaptersProofPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-demand-signal-adapters-proof-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
posture: "proof_path",
|
|
12
|
+
ecosystems: ["demand_signal_adapters"],
|
|
13
|
+
proof_shape: {
|
|
14
|
+
proof_modes: ["demand_signal_capture", "extension_registry_mapping", "backlog_triage"],
|
|
15
|
+
demand_modes: ["partner_signal_flow", "extension_fit_flow", "queue_handoff_flow"],
|
|
16
|
+
proof_artifacts: ["signal_bundle", "fit_bundle", "triage_bundle"],
|
|
17
|
+
proof_surfaces: [
|
|
18
|
+
"/v1/proof-center/bridge/summary",
|
|
19
|
+
"/v1/release-center/summary",
|
|
20
|
+
"/v1/phases/phase-10/summary"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
first_path: {
|
|
24
|
+
purpose: "show the first Phase 10 proof path from partner demand signals into extension-fit and triage continuity",
|
|
25
|
+
first_http_sequence: [
|
|
26
|
+
"/v1/phases/phase-10/summary",
|
|
27
|
+
"/v1/phases/phase-10/demand-signal-adapters/proof/summary",
|
|
28
|
+
"/v1/release-center/summary"
|
|
29
|
+
],
|
|
30
|
+
first_cli_sequence: [
|
|
31
|
+
"xoonya-release --phase-10-demand-signal-adapters-proof --summary",
|
|
32
|
+
"xoonya-release --phase-10 --summary"
|
|
33
|
+
],
|
|
34
|
+
expected_signals: [
|
|
35
|
+
"demand signal adapters is a public Phase 10 proof lane",
|
|
36
|
+
"proof artifacts are explicit at the lane level",
|
|
37
|
+
"long-tail ecosystem posture is visible before broader Phase 10 expansion"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
completion: {
|
|
41
|
+
completion_checks: [
|
|
42
|
+
"demand-signal-adapters proof lane is public and inspectable",
|
|
43
|
+
"proof artifacts are visible at lane level",
|
|
44
|
+
"proof surfaces remain attached to the extension lane",
|
|
45
|
+
"the lane is ready to anchor broader long-tail ecosystem breadth"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function summarizePhase10DemandSignalAdaptersProofPack() {
|
|
52
|
+
const pack = buildPhase10DemandSignalAdaptersProofPack();
|
|
53
|
+
return {
|
|
54
|
+
ok: true,
|
|
55
|
+
product: pack.product,
|
|
56
|
+
category: pack.category,
|
|
57
|
+
phase_ref: pack.phase_ref,
|
|
58
|
+
ecosystem_count: pack.ecosystems.length,
|
|
59
|
+
proof_mode_count: pack.proof_shape.proof_modes.length,
|
|
60
|
+
demand_mode_count: pack.proof_shape.demand_modes.length,
|
|
61
|
+
proof_artifact_count: pack.proof_shape.proof_artifacts.length,
|
|
62
|
+
completion_check_count: pack.completion.completion_checks.length,
|
|
63
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
64
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
65
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
66
|
+
proof_surface_count: pack.proof_shape.proof_surfaces.length,
|
|
67
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
module.exports = {
|
|
72
|
+
buildPhase10DemandSignalAdaptersProofPack,
|
|
73
|
+
summarizePhase10DemandSignalAdaptersProofPack
|
|
74
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10EcosystemBacklogTriageProofPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-ecosystem-backlog-triage-proof-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
posture: "proof_path",
|
|
12
|
+
ecosystems: ["ecosystem_backlog_triage"],
|
|
13
|
+
proof_shape: {
|
|
14
|
+
proof_modes: ["demand_signal_capture", "extension_registry_mapping", "backlog_triage"],
|
|
15
|
+
demand_modes: ["partner_signal_flow", "extension_fit_flow", "queue_handoff_flow"],
|
|
16
|
+
proof_artifacts: ["signal_bundle", "registry_bundle", "queue_bundle"],
|
|
17
|
+
proof_surfaces: [
|
|
18
|
+
"/v1/proof-center/bridge/summary",
|
|
19
|
+
"/v1/release-center/summary",
|
|
20
|
+
"/v1/phases/phase-10/summary"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
first_path: {
|
|
24
|
+
purpose: "show the Phase 10 proof path that carries long-tail demand into explicit backlog triage continuity",
|
|
25
|
+
first_http_sequence: [
|
|
26
|
+
"/v1/phases/phase-10/summary",
|
|
27
|
+
"/v1/phases/phase-10/ecosystem-backlog-triage/proof/summary",
|
|
28
|
+
"/v1/release-center/summary"
|
|
29
|
+
],
|
|
30
|
+
first_cli_sequence: [
|
|
31
|
+
"xoonya-release --phase-10-ecosystem-backlog-triage-proof --summary",
|
|
32
|
+
"xoonya-release --phase-10 --summary"
|
|
33
|
+
],
|
|
34
|
+
expected_signals: [
|
|
35
|
+
"ecosystem backlog triage is a public Phase 10 proof lane",
|
|
36
|
+
"queue proof artifacts are explicit at the lane level",
|
|
37
|
+
"triage posture is visible before Phase 10 closure discipline"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
completion: {
|
|
41
|
+
completion_checks: [
|
|
42
|
+
"ecosystem backlog triage proof lane is public and inspectable",
|
|
43
|
+
"proof artifacts are visible at lane level",
|
|
44
|
+
"proof surfaces remain attached to the triage lane",
|
|
45
|
+
"the lane is ready to support broader long-tail ecosystem breadth"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function summarizePhase10EcosystemBacklogTriageProofPack() {
|
|
52
|
+
const pack = buildPhase10EcosystemBacklogTriageProofPack();
|
|
53
|
+
return {
|
|
54
|
+
ok: true,
|
|
55
|
+
product: pack.product,
|
|
56
|
+
category: pack.category,
|
|
57
|
+
phase_ref: pack.phase_ref,
|
|
58
|
+
ecosystem_count: pack.ecosystems.length,
|
|
59
|
+
proof_mode_count: pack.proof_shape.proof_modes.length,
|
|
60
|
+
demand_mode_count: pack.proof_shape.demand_modes.length,
|
|
61
|
+
proof_artifact_count: pack.proof_shape.proof_artifacts.length,
|
|
62
|
+
completion_check_count: pack.completion.completion_checks.length,
|
|
63
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
64
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
65
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
66
|
+
proof_surface_count: pack.proof_shape.proof_surfaces.length,
|
|
67
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
module.exports = {
|
|
72
|
+
buildPhase10EcosystemBacklogTriageProofPack,
|
|
73
|
+
summarizePhase10EcosystemBacklogTriageProofPack
|
|
74
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10FreezeBaselinePack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-freeze-baseline-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
posture: "frozen_baseline",
|
|
12
|
+
baseline: {
|
|
13
|
+
lane_refs: [
|
|
14
|
+
"/v1/phases/phase-10/demand-signal-adapters/proof/summary",
|
|
15
|
+
"/v1/phases/phase-10/niche-extension-registry/proof/summary",
|
|
16
|
+
"/v1/phases/phase-10/ecosystem-backlog-triage/proof/summary"
|
|
17
|
+
],
|
|
18
|
+
proof_modes: ["demand_signal_capture", "extension_registry_mapping", "backlog_triage"],
|
|
19
|
+
demand_modes: ["partner_signal_flow", "extension_fit_flow", "queue_handoff_flow"],
|
|
20
|
+
baseline_status: "recorded",
|
|
21
|
+
frozen_outputs: [
|
|
22
|
+
"current long-tail proof lane family is the recorded Phase 10 baseline",
|
|
23
|
+
"Phase 10 can now be judged against a stable final proof shape rather than an open expansion set",
|
|
24
|
+
"only the final program closeout review remains before terminal closeout"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
first_path: {
|
|
28
|
+
purpose: "show that the Phase 10 long-tail proof family is now treated as a frozen terminal baseline",
|
|
29
|
+
first_http_sequence: [
|
|
30
|
+
"/v1/phases/phase-10/summary",
|
|
31
|
+
"/v1/phases/phase-10/freeze-baseline/summary",
|
|
32
|
+
"/v1/phases/phase-10/gate/summary"
|
|
33
|
+
],
|
|
34
|
+
first_cli_sequence: [
|
|
35
|
+
"xoonya-release --phase-10-freeze-baseline --summary",
|
|
36
|
+
"xoonya-release --phase-10 --summary"
|
|
37
|
+
],
|
|
38
|
+
expected_signals: [
|
|
39
|
+
"the Phase 10 long-tail proof family is explicitly frozen",
|
|
40
|
+
"shape freeze is no longer part of the remaining Phase 10 uncertainty",
|
|
41
|
+
"the only remaining terminal work is the final program closeout review"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function summarizePhase10FreezeBaselinePack() {
|
|
48
|
+
const pack = buildPhase10FreezeBaselinePack();
|
|
49
|
+
return {
|
|
50
|
+
ok: true,
|
|
51
|
+
product: pack.product,
|
|
52
|
+
category: pack.category,
|
|
53
|
+
phase_ref: pack.phase_ref,
|
|
54
|
+
lane_count: pack.baseline.lane_refs.length,
|
|
55
|
+
proof_mode_count: pack.baseline.proof_modes.length,
|
|
56
|
+
demand_mode_count: pack.baseline.demand_modes.length,
|
|
57
|
+
baseline_status: pack.baseline.baseline_status,
|
|
58
|
+
frozen_output_count: pack.baseline.frozen_outputs.length,
|
|
59
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
60
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
module.exports = {
|
|
65
|
+
buildPhase10FreezeBaselinePack,
|
|
66
|
+
summarizePhase10FreezeBaselinePack
|
|
67
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10FreezeReviewPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-freeze-review-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
posture: "freeze_review",
|
|
12
|
+
freeze_review: {
|
|
13
|
+
lane_refs: [
|
|
14
|
+
"/v1/phases/phase-10/demand-signal-adapters/proof/summary",
|
|
15
|
+
"/v1/phases/phase-10/niche-extension-registry/proof/summary",
|
|
16
|
+
"/v1/phases/phase-10/ecosystem-backlog-triage/proof/summary"
|
|
17
|
+
],
|
|
18
|
+
proof_modes: ["demand_signal_capture", "extension_registry_mapping", "backlog_triage"],
|
|
19
|
+
review_questions: [
|
|
20
|
+
"Is the current long-tail proof lane family the intended final Phase 10 breadth?",
|
|
21
|
+
"Are demand capture, extension registry, and backlog triage coherent across the proof family?",
|
|
22
|
+
"Do proof surfaces expose enough review posture for the long-tail family?",
|
|
23
|
+
"Is the final program slice ready to freeze before program closeout?"
|
|
24
|
+
],
|
|
25
|
+
resolution_criteria: [
|
|
26
|
+
{ ref: "criterion.long_tail_breadth_confirmed", label: "The final long-tail proof lane breadth is confirmed", satisfied: true },
|
|
27
|
+
{ ref: "criterion.long_tail_roles_confirmed", label: "Demand, registry, and backlog roles are coherent across the proof family", satisfied: true },
|
|
28
|
+
{ ref: "criterion.freeze_decision_recorded", label: "The freeze decision is explicitly recorded", satisfied: true },
|
|
29
|
+
{ ref: "criterion.program_closeout_review_recorded", label: "The program closeout review is explicitly recorded", satisfied: true }
|
|
30
|
+
],
|
|
31
|
+
blockers: [],
|
|
32
|
+
outputs: [
|
|
33
|
+
"the final Phase 10 long-tail proof lane shape is frozen",
|
|
34
|
+
"the remaining terminal gate blockers are explicit and inspectable",
|
|
35
|
+
"Phase 10 can be closed deliberately rather than implicitly"
|
|
36
|
+
],
|
|
37
|
+
decision_posture: "terminal_closeout_recorded"
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function summarizePhase10FreezeReviewPack() {
|
|
43
|
+
const pack = buildPhase10FreezeReviewPack();
|
|
44
|
+
return {
|
|
45
|
+
ok: true,
|
|
46
|
+
product: pack.product,
|
|
47
|
+
category: pack.category,
|
|
48
|
+
phase_ref: pack.phase_ref,
|
|
49
|
+
lane_count: pack.freeze_review.lane_refs.length,
|
|
50
|
+
proof_mode_count: pack.freeze_review.proof_modes.length,
|
|
51
|
+
review_question_count: pack.freeze_review.review_questions.length,
|
|
52
|
+
resolution_criteria_count: pack.freeze_review.resolution_criteria.length,
|
|
53
|
+
satisfied_resolution_count: pack.freeze_review.resolution_criteria.filter((criterion) => criterion.satisfied === true).length,
|
|
54
|
+
unsatisfied_resolution_count: pack.freeze_review.resolution_criteria.filter((criterion) => criterion.satisfied !== true).length,
|
|
55
|
+
blocker_count: pack.freeze_review.blockers.length,
|
|
56
|
+
freeze_output_count: pack.freeze_review.outputs.length,
|
|
57
|
+
decision_posture: pack.freeze_review.decision_posture
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
module.exports = {
|
|
62
|
+
buildPhase10FreezeReviewPack,
|
|
63
|
+
summarizePhase10FreezeReviewPack
|
|
64
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
const { summarizePhase10CompletionPack } = require("./phase_10_completion_pack");
|
|
5
|
+
const { summarizePhase10FreezeReviewPack } = require("./phase_10_freeze_review_pack");
|
|
6
|
+
|
|
7
|
+
function buildPhase10GatePack() {
|
|
8
|
+
const completion = summarizePhase10CompletionPack();
|
|
9
|
+
const freezeReview = summarizePhase10FreezeReviewPack();
|
|
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-10-gate-pack",
|
|
18
|
+
phase_ref: "phase_10",
|
|
19
|
+
posture: "phase_gate",
|
|
20
|
+
gate: {
|
|
21
|
+
decision: unsatisfiedGateCount === 0 ? "ready_for_program_closeout" : "hold_phase_10",
|
|
22
|
+
ready_for_next_phase: false,
|
|
23
|
+
satisfied_gate_count:
|
|
24
|
+
completion.satisfied_criteria_count +
|
|
25
|
+
freezeReview.satisfied_resolution_count,
|
|
26
|
+
unsatisfied_gate_count: unsatisfiedGateCount,
|
|
27
|
+
blockers: unsatisfiedGateCount === 0 ? [] : [
|
|
28
|
+
"program closeout review has not been explicitly recorded"
|
|
29
|
+
],
|
|
30
|
+
advance_when: [
|
|
31
|
+
"program closeout review is explicitly recorded",
|
|
32
|
+
"completion and freeze-review surfaces both show no unsatisfied terminal gate criteria"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function summarizePhase10GatePack() {
|
|
39
|
+
const pack = buildPhase10GatePack();
|
|
40
|
+
return {
|
|
41
|
+
ok: true,
|
|
42
|
+
product: pack.product,
|
|
43
|
+
category: pack.category,
|
|
44
|
+
phase_ref: pack.phase_ref,
|
|
45
|
+
satisfied_gate_count: pack.gate.satisfied_gate_count,
|
|
46
|
+
unsatisfied_gate_count: pack.gate.unsatisfied_gate_count,
|
|
47
|
+
blocker_count: pack.gate.blockers.length,
|
|
48
|
+
advance_when_count: pack.gate.advance_when.length,
|
|
49
|
+
decision: pack.gate.decision,
|
|
50
|
+
ready_for_next_phase: pack.gate.ready_for_next_phase
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
module.exports = {
|
|
55
|
+
buildPhase10GatePack,
|
|
56
|
+
summarizePhase10GatePack
|
|
57
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10LongTailContinuityPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-long-tail-continuity-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
posture: "continuity_review",
|
|
12
|
+
continuity: {
|
|
13
|
+
lane_refs: [
|
|
14
|
+
"/v1/phases/phase-10/demand-signal-adapters/proof/summary",
|
|
15
|
+
"/v1/phases/phase-10/niche-extension-registry/proof/summary",
|
|
16
|
+
"/v1/phases/phase-10/ecosystem-backlog-triage/proof/summary"
|
|
17
|
+
],
|
|
18
|
+
continuity_refs: ["/v1/phases/phase-10/summary"],
|
|
19
|
+
proof_modes: ["demand_signal_capture", "extension_registry_mapping", "backlog_triage"],
|
|
20
|
+
demand_modes: ["partner_signal_flow", "extension_fit_flow", "queue_handoff_flow"],
|
|
21
|
+
proof_surfaces: [
|
|
22
|
+
"/v1/proof-center/bridge/summary",
|
|
23
|
+
"/v1/release-center/summary",
|
|
24
|
+
"/v1/phases/phase-10/summary"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
completion_shape: {
|
|
28
|
+
completion_checks: [
|
|
29
|
+
"all current long-tail proof lanes are public and inspectable",
|
|
30
|
+
"extension backlog posture is visible at phase level",
|
|
31
|
+
"cross-lane continuity is explicit across demand capture, registry mapping, and backlog triage",
|
|
32
|
+
"release-center summary reflects the long-tail proof family as one coherent final-program slice"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
first_path: {
|
|
36
|
+
purpose: "show that the final-phase long-tail proof family reads as one coherent extension program rather than isolated proof summaries",
|
|
37
|
+
first_http_sequence: [
|
|
38
|
+
"/v1/phases/phase-10/summary",
|
|
39
|
+
"/v1/phases/phase-10/long-tail-continuity/summary",
|
|
40
|
+
"/v1/release-center/summary",
|
|
41
|
+
"/v1/proof-center/bridge/summary"
|
|
42
|
+
],
|
|
43
|
+
first_cli_sequence: [
|
|
44
|
+
"xoonya-release --phase-10-long-tail-continuity --summary",
|
|
45
|
+
"xoonya-release --phase-10 --summary"
|
|
46
|
+
],
|
|
47
|
+
expected_signals: [
|
|
48
|
+
"demand signal adapters, niche extension registry, and ecosystem backlog triage are linked as one long-tail proof family",
|
|
49
|
+
"demand capture and backlog handling stay legible without collapsing into one proof lane",
|
|
50
|
+
"proof surfaces remain attached to the Phase 10 family",
|
|
51
|
+
"Phase 10 reads as one coherent terminal proof-program slice"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function summarizePhase10LongTailContinuityPack() {
|
|
58
|
+
const pack = buildPhase10LongTailContinuityPack();
|
|
59
|
+
return {
|
|
60
|
+
ok: true,
|
|
61
|
+
product: pack.product,
|
|
62
|
+
category: pack.category,
|
|
63
|
+
phase_ref: pack.phase_ref,
|
|
64
|
+
lane_count: pack.continuity.lane_refs.length,
|
|
65
|
+
continuity_ref_count: pack.continuity.continuity_refs.length,
|
|
66
|
+
proof_mode_count: pack.continuity.proof_modes.length,
|
|
67
|
+
demand_mode_count: pack.continuity.demand_modes.length,
|
|
68
|
+
proof_surface_count: pack.continuity.proof_surfaces.length,
|
|
69
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
70
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
71
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
72
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
73
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
module.exports = {
|
|
78
|
+
buildPhase10LongTailContinuityPack,
|
|
79
|
+
summarizePhase10LongTailContinuityPack
|
|
80
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10LongTailEcosystemPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-long-tail-ecosystem-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
status: "active",
|
|
12
|
+
ecosystems: ["demand_signal_adapters", "niche_extension_registry", "ecosystem_backlog_triage"],
|
|
13
|
+
lane_refs: [
|
|
14
|
+
"/v1/phases/phase-10/demand-signal-adapters/proof/summary",
|
|
15
|
+
"/v1/phases/phase-10/niche-extension-registry/proof/summary",
|
|
16
|
+
"/v1/phases/phase-10/ecosystem-backlog-triage/proof/summary"
|
|
17
|
+
],
|
|
18
|
+
extension_shape: {
|
|
19
|
+
proof_modes: ["demand_signal_capture", "extension_registry_mapping", "backlog_triage"],
|
|
20
|
+
demand_modes: ["partner_signal_flow", "extension_fit_flow", "queue_handoff_flow"],
|
|
21
|
+
proof_surfaces: [
|
|
22
|
+
"/v1/proof-center/bridge/summary",
|
|
23
|
+
"/v1/release-center/summary",
|
|
24
|
+
"/v1/phases/phase-10/demand-signal-adapters/proof/summary",
|
|
25
|
+
"/v1/phases/phase-10/niche-extension-registry/proof/summary",
|
|
26
|
+
"/v1/phases/phase-10/ecosystem-backlog-triage/proof/summary"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
completion_shape: {
|
|
30
|
+
completion_checks: [
|
|
31
|
+
"broad Phase 10 long-tail ecosystem pack is public and inspectable",
|
|
32
|
+
"all current Phase 10 long-tail proof lanes are public and inspectable",
|
|
33
|
+
"extension backlog posture is visible at phase level",
|
|
34
|
+
"proof surfaces stay attached to the current Phase 10 family",
|
|
35
|
+
"release-center summary reflects Phase 10 activation and first-lane breadth"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
done_means: [
|
|
39
|
+
"Phase 9 is no longer the active proof-side program slice",
|
|
40
|
+
"Phase 10 has a public long-tail ecosystem entry path",
|
|
41
|
+
"multiple long-tail entry lanes are visible as explicit proof lanes",
|
|
42
|
+
"the long-tail family feels operational rather than like a placeholder"
|
|
43
|
+
]
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function summarizePhase10LongTailEcosystemPack() {
|
|
48
|
+
const pack = buildPhase10LongTailEcosystemPack();
|
|
49
|
+
return {
|
|
50
|
+
ok: true,
|
|
51
|
+
product: pack.product,
|
|
52
|
+
category: pack.category,
|
|
53
|
+
phase_ref: pack.phase_ref,
|
|
54
|
+
ecosystem_count: pack.ecosystems.length,
|
|
55
|
+
lane_count: pack.lane_refs.length,
|
|
56
|
+
proof_mode_count: pack.extension_shape.proof_modes.length,
|
|
57
|
+
demand_mode_count: pack.extension_shape.demand_modes.length,
|
|
58
|
+
proof_surface_count: pack.extension_shape.proof_surfaces.length,
|
|
59
|
+
completion_check_count: pack.completion_shape.completion_checks.length,
|
|
60
|
+
done_mean_count: pack.done_means.length,
|
|
61
|
+
first_ecosystem: pack.ecosystems[0] || null
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = {
|
|
66
|
+
buildPhase10LongTailEcosystemPack,
|
|
67
|
+
summarizePhase10LongTailEcosystemPack
|
|
68
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase10NicheExtensionRegistryProofPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-10-niche-extension-registry-proof-pack",
|
|
10
|
+
phase_ref: "phase_10",
|
|
11
|
+
posture: "proof_path",
|
|
12
|
+
ecosystems: ["niche_extension_registry"],
|
|
13
|
+
proof_shape: {
|
|
14
|
+
proof_modes: ["demand_signal_capture", "extension_registry_mapping", "backlog_triage"],
|
|
15
|
+
demand_modes: ["partner_signal_flow", "extension_fit_flow", "queue_handoff_flow"],
|
|
16
|
+
proof_artifacts: ["registry_bundle", "fit_bundle", "triage_bundle"],
|
|
17
|
+
proof_surfaces: [
|
|
18
|
+
"/v1/proof-center/bridge/summary",
|
|
19
|
+
"/v1/release-center/summary",
|
|
20
|
+
"/v1/phases/phase-10/summary"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
first_path: {
|
|
24
|
+
purpose: "show the Phase 10 proof path that carries candidate extension demand into governed registry continuity",
|
|
25
|
+
first_http_sequence: [
|
|
26
|
+
"/v1/phases/phase-10/summary",
|
|
27
|
+
"/v1/phases/phase-10/niche-extension-registry/proof/summary",
|
|
28
|
+
"/v1/release-center/summary"
|
|
29
|
+
],
|
|
30
|
+
first_cli_sequence: [
|
|
31
|
+
"xoonya-release --phase-10-niche-extension-registry-proof --summary",
|
|
32
|
+
"xoonya-release --phase-10 --summary"
|
|
33
|
+
],
|
|
34
|
+
expected_signals: [
|
|
35
|
+
"niche extension registry is a public Phase 10 proof lane",
|
|
36
|
+
"registry proof artifacts are explicit at the lane level",
|
|
37
|
+
"registry posture is visible before Phase 10 closure discipline"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
completion: {
|
|
41
|
+
completion_checks: [
|
|
42
|
+
"niche extension registry proof lane is public and inspectable",
|
|
43
|
+
"proof artifacts are visible at lane level",
|
|
44
|
+
"proof surfaces remain attached to the registry lane",
|
|
45
|
+
"the lane is ready to support broader long-tail ecosystem breadth"
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function summarizePhase10NicheExtensionRegistryProofPack() {
|
|
52
|
+
const pack = buildPhase10NicheExtensionRegistryProofPack();
|
|
53
|
+
return {
|
|
54
|
+
ok: true,
|
|
55
|
+
product: pack.product,
|
|
56
|
+
category: pack.category,
|
|
57
|
+
phase_ref: pack.phase_ref,
|
|
58
|
+
ecosystem_count: pack.ecosystems.length,
|
|
59
|
+
proof_mode_count: pack.proof_shape.proof_modes.length,
|
|
60
|
+
demand_mode_count: pack.proof_shape.demand_modes.length,
|
|
61
|
+
proof_artifact_count: pack.proof_shape.proof_artifacts.length,
|
|
62
|
+
completion_check_count: pack.completion.completion_checks.length,
|
|
63
|
+
http_step_count: pack.first_path.first_http_sequence.length,
|
|
64
|
+
cli_step_count: pack.first_path.first_cli_sequence.length,
|
|
65
|
+
signal_count: pack.first_path.expected_signals.length,
|
|
66
|
+
proof_surface_count: pack.proof_shape.proof_surfaces.length,
|
|
67
|
+
first_http_step: pack.first_path.first_http_sequence[0] || null
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
module.exports = {
|
|
72
|
+
buildPhase10NicheExtensionRegistryProofPack,
|
|
73
|
+
summarizePhase10NicheExtensionRegistryProofPack
|
|
74
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const packageJson = require("../package.json");
|
|
4
|
+
|
|
5
|
+
function buildPhase1ClaudeMcpPack() {
|
|
6
|
+
return {
|
|
7
|
+
ok: true,
|
|
8
|
+
product: packageJson.name,
|
|
9
|
+
category: "proof-phase-1-claude-mcp-pack",
|
|
10
|
+
phase_ref: "phase_1",
|
|
11
|
+
ecosystem_ref: "claude_anthropic_mcp",
|
|
12
|
+
status: "active",
|
|
13
|
+
adoption_wedge: "carried proof review for MCP-style adapter-origin runs",
|
|
14
|
+
main_repo_weight: "xoonya_medium",
|
|
15
|
+
scope: {
|
|
16
|
+
proof_posture: [
|
|
17
|
+
"carried handoff review",
|
|
18
|
+
"adapter-origin run verification",
|
|
19
|
+
"bridge-aware continuation",
|
|
20
|
+
"review artifacts for weak-trust tool use"
|
|
21
|
+
],
|
|
22
|
+
first_surfaces: [
|
|
23
|
+
"/v1/outreach-proof/summary",
|
|
24
|
+
"/v1/release-pack/scenarios/summary",
|
|
25
|
+
"/v1/proof-center/bridge/summary",
|
|
26
|
+
"/v1/release-center/summary"
|
|
27
|
+
],
|
|
28
|
+
first_commands: [
|
|
29
|
+
"xoonya-release --outreach-proof --summary",
|
|
30
|
+
"xoonya-release --phase-1-claude-mcp --summary",
|
|
31
|
+
"xoonya-review --file ./handoff.json --summary"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
done_means: [
|
|
35
|
+
"outside builders can see how xoonya reviews MCP-style adapter-origin runs without relying on private context",
|
|
36
|
+
"the proof-side Claude/MCP path is clear enough to try from one review CLI and one proof surface",
|
|
37
|
+
"Phase 1 proof posture for MCP-style runs is explicit in public product surfaces"
|
|
38
|
+
]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function summarizePhase1ClaudeMcpPack() {
|
|
43
|
+
const pack = buildPhase1ClaudeMcpPack();
|
|
44
|
+
return {
|
|
45
|
+
ok: true,
|
|
46
|
+
product: pack.product,
|
|
47
|
+
category: pack.category,
|
|
48
|
+
phase_ref: pack.phase_ref,
|
|
49
|
+
ecosystem_ref: pack.ecosystem_ref,
|
|
50
|
+
surface_count: pack.scope.first_surfaces.length,
|
|
51
|
+
command_count: pack.scope.first_commands.length,
|
|
52
|
+
done_mean_count: pack.done_means.length,
|
|
53
|
+
first_surface: pack.scope.first_surfaces[0] || null
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
module.exports = {
|
|
58
|
+
buildPhase1ClaudeMcpPack,
|
|
59
|
+
summarizePhase1ClaudeMcpPack
|
|
60
|
+
};
|