lean_ctx/core/
contracts.rs1use std::collections::BTreeMap;
2
3pub const MCP_MANIFEST_SCHEMA_VERSION: u32 = 1;
5pub const CONTEXT_PROOF_V1_SCHEMA_VERSION: u32 = 1;
6pub const CONTEXT_IR_V1_SCHEMA_VERSION: u32 = 1;
7pub const INTENT_ROUTE_V1_SCHEMA_VERSION: u32 = 1;
8pub const DEGRADATION_POLICY_V1_SCHEMA_VERSION: u32 = 1;
9pub const WORKFLOW_EVIDENCE_LEDGER_V1_SCHEMA_VERSION: u32 = 1;
10pub const AUTONOMY_DRIVERS_V1_SCHEMA_VERSION: u32 = 1;
11pub const TOKENIZER_TRANSLATION_DRIVER_V1_SCHEMA_VERSION: u32 = 1;
12pub const ATTENTION_LAYOUT_DRIVER_V1_SCHEMA_VERSION: u32 = 1;
13pub const VERIFICATION_OBSERVABILITY_V1_SCHEMA_VERSION: u32 = 1;
14pub const HANDOFF_LEDGER_V1_SCHEMA_VERSION: u32 = 1;
15pub const HANDOFF_TRANSFER_BUNDLE_V1_SCHEMA_VERSION: u32 = 1;
16pub const CCP_SESSION_BUNDLE_V1_SCHEMA_VERSION: u32 = 1;
17pub const KNOWLEDGE_POLICY_V1_SCHEMA_VERSION: u32 = 1;
18pub const GRAPH_REPRODUCIBILITY_V1_SCHEMA_VERSION: u32 = 1;
19pub const A2A_SNAPSHOT_V1_SCHEMA_VERSION: u32 = 1;
20pub const MEMORY_BOUNDARY_V1_SCHEMA_VERSION: u32 = 1;
21pub const GOTCHAS_REMINDERS_V1_SCHEMA_VERSION: u32 = 1;
22pub const PROVIDER_FRAMEWORK_V1_SCHEMA_VERSION: u32 = 1;
23pub const CONTEXT_PACKAGE_V1_SCHEMA_VERSION: u32 = 1;
24pub const CONTEXT_PACKAGE_V2_SCHEMA_VERSION: u32 = 2;
25
26pub const PACKAGE_EXTENSION: &str = "ctxpkg";
27pub const LEGACY_PACKAGE_EXTENSION: &str = "lctxpkg";
28pub const MAX_PACKAGE_FILE_BYTES: u64 = 10 * 1024 * 1024; pub fn is_package_file(path: &std::path::Path) -> bool {
31 path.extension()
32 .and_then(|e| e.to_str())
33 .is_some_and(|ext| ext == PACKAGE_EXTENSION || ext == LEGACY_PACKAGE_EXTENSION)
34}
35
36pub fn default_package_filename(name: &str, version: &str) -> String {
37 format!("{name}-{version}.{PACKAGE_EXTENSION}")
38}
39
40pub const HTTP_MCP_CONTRACT_VERSION: u32 = 1;
42pub const TEAM_SERVER_CONTRACT_VERSION: u32 = 1;
43
44pub fn versions_kv() -> BTreeMap<&'static str, u32> {
45 BTreeMap::from([
46 (
47 "leanctx.contract.mcp_manifest.schema_version",
48 MCP_MANIFEST_SCHEMA_VERSION,
49 ),
50 (
51 "leanctx.contract.context_proof_v1.schema_version",
52 CONTEXT_PROOF_V1_SCHEMA_VERSION,
53 ),
54 (
55 "leanctx.contract.context_ir_v1.schema_version",
56 CONTEXT_IR_V1_SCHEMA_VERSION,
57 ),
58 (
59 "leanctx.contract.intent_route_v1.schema_version",
60 INTENT_ROUTE_V1_SCHEMA_VERSION,
61 ),
62 (
63 "leanctx.contract.degradation_policy_v1.schema_version",
64 DEGRADATION_POLICY_V1_SCHEMA_VERSION,
65 ),
66 (
67 "leanctx.contract.workflow_evidence_ledger_v1.schema_version",
68 WORKFLOW_EVIDENCE_LEDGER_V1_SCHEMA_VERSION,
69 ),
70 (
71 "leanctx.contract.autonomy_drivers_v1.schema_version",
72 AUTONOMY_DRIVERS_V1_SCHEMA_VERSION,
73 ),
74 (
75 "leanctx.contract.tokenizer_translation_driver_v1.schema_version",
76 TOKENIZER_TRANSLATION_DRIVER_V1_SCHEMA_VERSION,
77 ),
78 (
79 "leanctx.contract.attention_layout_driver_v1.schema_version",
80 ATTENTION_LAYOUT_DRIVER_V1_SCHEMA_VERSION,
81 ),
82 (
83 "leanctx.contract.verification_observability_v1.schema_version",
84 VERIFICATION_OBSERVABILITY_V1_SCHEMA_VERSION,
85 ),
86 (
87 "leanctx.contract.handoff_ledger_v1.schema_version",
88 HANDOFF_LEDGER_V1_SCHEMA_VERSION,
89 ),
90 (
91 "leanctx.contract.handoff_transfer_bundle_v1.schema_version",
92 HANDOFF_TRANSFER_BUNDLE_V1_SCHEMA_VERSION,
93 ),
94 (
95 "leanctx.contract.ccp_session_bundle_v1.schema_version",
96 CCP_SESSION_BUNDLE_V1_SCHEMA_VERSION,
97 ),
98 (
99 "leanctx.contract.knowledge_policy_v1.schema_version",
100 KNOWLEDGE_POLICY_V1_SCHEMA_VERSION,
101 ),
102 (
103 "leanctx.contract.graph_reproducibility_v1.schema_version",
104 GRAPH_REPRODUCIBILITY_V1_SCHEMA_VERSION,
105 ),
106 (
107 "leanctx.contract.a2a_snapshot_v1.schema_version",
108 A2A_SNAPSHOT_V1_SCHEMA_VERSION,
109 ),
110 (
111 "leanctx.contract.memory_boundary_v1.schema_version",
112 MEMORY_BOUNDARY_V1_SCHEMA_VERSION,
113 ),
114 (
115 "leanctx.contract.gotchas_reminders_v1.schema_version",
116 GOTCHAS_REMINDERS_V1_SCHEMA_VERSION,
117 ),
118 (
119 "leanctx.contract.provider_framework_v1.schema_version",
120 PROVIDER_FRAMEWORK_V1_SCHEMA_VERSION,
121 ),
122 (
123 "leanctx.contract.context_package_v1.schema_version",
124 CONTEXT_PACKAGE_V1_SCHEMA_VERSION,
125 ),
126 (
127 "leanctx.contract.context_package_v2.schema_version",
128 CONTEXT_PACKAGE_V2_SCHEMA_VERSION,
129 ),
130 (
131 "leanctx.contract.http_mcp.contract_version",
132 HTTP_MCP_CONTRACT_VERSION,
133 ),
134 (
135 "leanctx.contract.team_server.contract_version",
136 TEAM_SERVER_CONTRACT_VERSION,
137 ),
138 ])
139}