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