clm-kernel 0.0.0__py3-none-any.whl
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.
- clm/__init__.py +230 -0
- clm/__main__.py +25 -0
- clm/cross_cutting/__init__.py +50 -0
- clm/cross_cutting/_test_runner.py +36 -0
- clm/cross_cutting/async_utils.py +25 -0
- clm/cross_cutting/cel_builder.py +123 -0
- clm/cross_cutting/cel_converter.py +697 -0
- clm/cross_cutting/cel_engine.py +252 -0
- clm/cross_cutting/cel_ops.py +72 -0
- clm/cross_cutting/cel_ops_db.py +157 -0
- clm/cross_cutting/cel_ops_files.py +99 -0
- clm/cross_cutting/cel_ops_state.py +71 -0
- clm/cross_cutting/cel_ops_strings.py +64 -0
- clm/cross_cutting/cel_resolver.py +63 -0
- clm/cross_cutting/cel_slices.py +56 -0
- clm/cross_cutting/cel_store.py +330 -0
- clm/cross_cutting/clm_logger.py +140 -0
- clm/cross_cutting/config/__init__.py +155 -0
- clm/cross_cutting/config/config_constants.py +392 -0
- clm/cross_cutting/config/env_parameters.py +90 -0
- clm/cross_cutting/config/logging.py +378 -0
- clm/cross_cutting/config/settings.py +504 -0
- clm/cross_cutting/context.py +5 -0
- clm/cross_cutting/domain_models.py +55 -0
- clm/cross_cutting/domain_types.py +61 -0
- clm/cross_cutting/effects.py +67 -0
- clm/cross_cutting/errors.py +153 -0
- clm/cross_cutting/governance.py +331 -0
- clm/cross_cutting/guards.py +41 -0
- clm/cross_cutting/mcard.py +321 -0
- clm/cross_cutting/native.py +185 -0
- clm/cross_cutting/observability.py +289 -0
- clm/cross_cutting/pcard.py +434 -0
- clm/cross_cutting/registry.py +71 -0
- clm/cross_cutting/resources.py +84 -0
- clm/cross_cutting/secrets.py +44 -0
- clm/cross_cutting/subprocess_utils.py +118 -0
- clm/cross_cutting/telemetry.py +164 -0
- clm/cross_cutting/testing/__init__.py +8 -0
- clm/cross_cutting/testing/comparator.py +187 -0
- clm/cross_cutting/testing/datasets.py +87 -0
- clm/cross_cutting/timeutil.py +20 -0
- clm/cross_cutting/types/new_type_check.py +0 -0
- clm/cross_cutting/utils/__init__.py +1 -0
- clm/cross_cutting/utils/url_safety.py +50 -0
- clm/cross_cutting/vcard.py +560 -0
- clm/cross_cutting/writer.py +118 -0
- clm/layer0/README.md +50 -0
- clm/layer0/__init__.py +223 -0
- clm/layer0/algebra.py +60 -0
- clm/layer0/algebra_baldwin.py +133 -0
- clm/layer0/algebra_baldwin_generators.py +36 -0
- clm/layer0/algebra_equivalence.py +262 -0
- clm/layer0/algebra_ingest.py +306 -0
- clm/layer0/algebra_manifest_io.py +156 -0
- clm/layer0/assembler.py +481 -0
- clm/layer0/cel/__init__.py +23 -0
- clm/layer0/cel_eval.py +491 -0
- clm/layer0/codec.py +106 -0
- clm/layer0/context.py +122 -0
- clm/layer0/db.py +160 -0
- clm/layer0/exceptions.py +73 -0
- clm/layer0/fibration.py +106 -0
- clm/layer0/gates.py +50 -0
- clm/layer0/hash.py +80 -0
- clm/layer0/loader.py +826 -0
- clm/layer0/math_utils.py +163 -0
- clm/layer0/mcard.py +96 -0
- clm/layer0/model/__init__.py +0 -0
- clm/layer0/model/action.py +223 -0
- clm/layer0/model/card.py +280 -0
- clm/layer0/model/card_triad.py +427 -0
- clm/layer0/model/compatibility.py +60 -0
- clm/layer0/model/dictionary.py +46 -0
- clm/layer0/model/dots.py +331 -0
- clm/layer0/model/event_producer.py +88 -0
- clm/layer0/model/g_time.py +89 -0
- clm/layer0/model/handle.py +163 -0
- clm/layer0/model/hash/__init__.py +6 -0
- clm/layer0/model/hash/algorithms/__init__.py +3 -0
- clm/layer0/model/hash/algorithms/custom_hash.py +7 -0
- clm/layer0/model/hash/algorithms/local_sha256.py +178 -0
- clm/layer0/model/hash/constants.py +53 -0
- clm/layer0/model/hash/enums.py +60 -0
- clm/layer0/model/hash/validator.py +307 -0
- clm/layer0/model/interpreter.py +275 -0
- clm/layer0/model/pagination.py +45 -0
- clm/layer0/model/pcard.py +716 -0
- clm/layer0/model/schema.py +44 -0
- clm/layer0/model/utils/__init__.py +1 -0
- clm/layer0/model/utils/content_analyzer.py +152 -0
- clm/layer0/model/validators/__init__.py +1 -0
- clm/layer0/model/validators/base_validator.py +44 -0
- clm/layer0/model/validators/binary_validator.py +66 -0
- clm/layer0/model/validators/text_validator.py +82 -0
- clm/layer0/model/validators/validation_registry.py +49 -0
- clm/layer0/model/vcard.py +823 -0
- clm/layer0/model/vcard_ext/__init__.py +39 -0
- clm/layer0/model/vcard_ext/core.py +60 -0
- clm/layer0/model/vcard_ext/network.py +23 -0
- clm/layer0/model/vcard_ext/observability.py +63 -0
- clm/layer0/model/vcard_ext/storage.py +60 -0
- clm/layer0/model/vcard_ext/vendors.py +211 -0
- clm/layer0/model/vcard_sandwich.py +119 -0
- clm/layer0/model/vcard_vocabulary.py +463 -0
- clm/layer0/model/workflow.py +274 -0
- clm/layer0/narrative.py +431 -0
- clm/layer0/ontology/collection.py +125 -0
- clm/layer0/parser.py +429 -0
- clm/layer0/relations.py +73 -0
- clm/layer0/rule_evaluator.py +251 -0
- clm/layer0/schema/__init__.py +38 -0
- clm/layer0/schema/ddl.py +97 -0
- clm/layer0/templates/abstract.yaml +99 -0
- clm/layer0/templates/balanced.yaml +253 -0
- clm/layer0/templates/concrete.yaml +172 -0
- clm/layer0/type_registry.py +223 -0
- clm/layer0/types.py +204 -0
- clm/layer0/utils.py +886 -0
- clm/layer0/verifier_core.py +262 -0
- clm/layer1/__init__.py +31 -0
- clm/layer1/action_dispatcher.py +275 -0
- clm/layer1/adapter_registry.py +233 -0
- clm/layer1/algebra_baldwin_generators.py +192 -0
- clm/layer1/arrow_compiler.py +525 -0
- clm/layer1/batch_processor.py +152 -0
- clm/layer1/cel/__init__.py +27 -0
- clm/layer1/cel/builder.py +173 -0
- clm/layer1/engine.py +759 -0
- clm/layer1/engine_async.py +89 -0
- clm/layer1/eval_callback.py +49 -0
- clm/layer1/gate_composer.py +229 -0
- clm/layer1/hoare_sandwich.py +298 -0
- clm/layer1/identity_guard.py +348 -0
- clm/layer1/matrix.py +138 -0
- clm/layer1/neural_runtime.py +221 -0
- clm/layer1/operations/__init__.py +123 -0
- clm/layer1/operations/augment.py +156 -0
- clm/layer1/operations/base.py +109 -0
- clm/layer1/operations/builtins.py +338 -0
- clm/layer1/operations/dispatch.py +144 -0
- clm/layer1/operations/exclude.py +107 -0
- clm/layer1/operations/handle.py +197 -0
- clm/layer1/operations/identity.py +139 -0
- clm/layer1/operations/invert.py +66 -0
- clm/layer1/operations/loader.py +116 -0
- clm/layer1/operations/manipulators/__init__.py +23 -0
- clm/layer1/operations/manipulators/document.py +211 -0
- clm/layer1/operations/manipulators/media.py +134 -0
- clm/layer1/operations/manipulators/structured.py +159 -0
- clm/layer1/operations/manipulators/tabular.py +334 -0
- clm/layer1/operations/port.py +65 -0
- clm/layer1/operations/services.py +529 -0
- clm/layer1/operations/split.py +117 -0
- clm/layer1/operations/substitute.py +75 -0
- clm/layer1/petri.py +1052 -0
- clm/layer1/pocketflow_orchestrator.py +408 -0
- clm/layer1/pocketflow_scheduler.py +519 -0
- clm/layer1/protocols.py +197 -0
- clm/layer1/runtime_adapter.py +718 -0
- clm/layer1/runtimes/__init__.py +71 -0
- clm/layer1/runtimes/_generated_assertions.py +125 -0
- clm/layer1/runtimes/_generated_types.py +42 -0
- clm/layer1/runtimes/base.py +265 -0
- clm/layer1/runtimes/binary.py +101 -0
- clm/layer1/runtimes/factory.py +203 -0
- clm/layer1/runtimes/javascript.py +321 -0
- clm/layer1/runtimes/javascript_runtime.js +33 -0
- clm/layer1/runtimes/js_scripts/isomorphism.mjs +22 -0
- clm/layer1/runtimes/js_scripts/loader.mjs +52 -0
- clm/layer1/runtimes/lambda_calc.py +126 -0
- clm/layer1/runtimes/python.py +288 -0
- clm/layer1/runtimes/python_runtime.py +41 -0
- clm/layer1/runtimes/script.py +114 -0
- clm/layer1/sandbox.py +334 -0
- clm/layer1/savepoint_guard.py +136 -0
- clm/layer1/sparse_net.py +122 -0
- clm/layer1/spec_tester.py +165 -0
- clm/layer1/store.py +295 -0
- clm/layer1/test_runner.py +498 -0
- clm/layer1/type_inspector.py +166 -0
- clm/layer1/verifier.py +772 -0
- clm/layer1/vm.py +91 -0
- clm/layer2/__init__.py +78 -0
- clm/layer2/card_collection.py +678 -0
- clm/layer2/classifier.py +479 -0
- clm/layer2/engine/__init__.py +1 -0
- clm/layer2/engine/abstract_sql_engine.py +320 -0
- clm/layer2/engine/base.py +193 -0
- clm/layer2/engine/duckdb_engine.py +576 -0
- clm/layer2/engine/sqlite_engine.py +518 -0
- clm/layer2/fiber/__init__.py +31 -0
- clm/layer2/fiber/context.py +89 -0
- clm/layer2/fiber/disposable.py +163 -0
- clm/layer2/fiber/fiber.py +125 -0
- clm/layer2/fiber/hoare.py +191 -0
- clm/layer2/file_io.py +376 -0
- clm/layer2/file_registrar.py +77 -0
- clm/layer2/ingest.py +202 -0
- clm/layer2/lineage.py +322 -0
- clm/layer2/mcard_fs.py +262 -0
- clm/layer2/merkle.py +11 -0
- clm/layer2/mime.py +244 -0
- clm/layer2/mime_detector.py +245 -0
- clm/layer2/private_collection.py +118 -0
- clm/layer2/shared_store.py +11 -0
- clm/layer2/storage/__init__.py +190 -0
- clm/layer2/storage/db_bitemporal.py +141 -0
- clm/layer2/storage/db_driver.py +331 -0
- clm/layer2/storage/db_hyperlinks.py +214 -0
- clm/layer2/storage/db_pool.py +139 -0
- clm/layer2/storage/db_repository.py +229 -0
- clm/layer2/storage/savepoint.py +78 -0
- clm/layer2/storage/sqlite_wal.py +74 -0
- clm/layer2/tridb.py +245 -0
- clm/layer2/vcard_receipt.py +71 -0
- clm/layer2/vfs.py +17 -0
- clm/layer3/__init__.py +141 -0
- clm/layer3/agency/__init__.py +19 -0
- clm/layer3/agency/config.py +220 -0
- clm/layer3/agency/providers/__init__.py +15 -0
- clm/layer3/agency/providers/base.py +91 -0
- clm/layer3/agency/providers/mlc_llm.py +169 -0
- clm/layer3/agency/providers/ollama.py +203 -0
- clm/layer3/agency/router.py +71 -0
- clm/layer3/agency/runtime.py +524 -0
- clm/layer3/gateway.py +353 -0
- clm/layer3/open_interpreter_adapter.py +159 -0
- clm/layer3/rag/__init__.py +70 -0
- clm/layer3/rag/cli.py +228 -0
- clm/layer3/rag/config.py +153 -0
- clm/layer3/rag/embeddings/__init__.py +16 -0
- clm/layer3/rag/embeddings/base.py +79 -0
- clm/layer3/rag/embeddings/ollama.py +211 -0
- clm/layer3/rag/embeddings/vision.py +290 -0
- clm/layer3/rag/engine.py +276 -0
- clm/layer3/rag/graph/__init__.py +22 -0
- clm/layer3/rag/graph/community.py +198 -0
- clm/layer3/rag/graph/engine.py +433 -0
- clm/layer3/rag/graph/extractor.py +255 -0
- clm/layer3/rag/graph/schema.py +115 -0
- clm/layer3/rag/graph/store.py +641 -0
- clm/layer3/rag/indexer.py +333 -0
- clm/layer3/rag/llm_providers.json +52 -0
- clm/layer3/rag/semantic_versioning.py +313 -0
- clm/layer3/rag/vector/__init__.py +28 -0
- clm/layer3/rag/vector/handle_vector_store.py +749 -0
- clm/layer3/rag/vector/schema.py +151 -0
- clm/layer3/rag/vector/store.py +632 -0
- clm/layer3/reticulum/__init__.py +55 -0
- clm/layer3/reticulum/bridge.py +74 -0
- clm/layer3/reticulum/daemon.py +88 -0
- clm/layer3/reticulum/discovery.py +164 -0
- clm/layer3/reticulum/identity.py +107 -0
- clm/layer3/reticulum/media.py +148 -0
- clm/layer3/reticulum/transport.py +133 -0
- clm/layer3/satori/__init__.py +209 -0
- clm/layer3/satori/alpha_conversion.py +168 -0
- clm/layer3/satori/beta_reduction.py +359 -0
- clm/layer3/satori/continuation.py +38 -0
- clm/layer3/satori/eta_conversion.py +205 -0
- clm/layer3/satori/free_variables.py +163 -0
- clm/layer3/satori/io_effects.py +370 -0
- clm/layer3/satori/lambda_runtime.py +726 -0
- clm/layer3/satori/lambda_term.py +230 -0
- clm/layer3/satori/sheaf_audit.py +261 -0
- clm/layer3/satori/speech_act.py +279 -0
- clm/layer4/README.md +9 -0
- clm/layer4/__init__.py +67 -0
- clm/layer4/_sovereign_executor.py +580 -0
- clm/layer4/action_commands.py +719 -0
- clm/layer4/api.py +236 -0
- clm/layer4/bootstrap/__init__.py +13 -0
- clm/layer4/bootstrap/bootstrapper.py +118 -0
- clm/layer4/bootstrap/cleanup.py +44 -0
- clm/layer4/bootstrap/clm_hooks.py +49 -0
- clm/layer4/bootstrap/genesis.py +77 -0
- clm/layer4/bootstrap/injection.py +125 -0
- clm/layer4/cli.py +549 -0
- clm/layer4/collection_manager.py +553 -0
- clm/layer4/commands/__init__.py +81 -0
- clm/layer4/commands/action_cmd.py +42 -0
- clm/layer4/commands/check_cmd.py +82 -0
- clm/layer4/commands/envelope.py +73 -0
- clm/layer4/commands/evaluate_cmd.py +224 -0
- clm/layer4/commands/mcard_cmd.py +24 -0
- clm/layer4/commands/petri_cmd.py +92 -0
- clm/layer4/commands/tridb_cmd.py +319 -0
- clm/layer4/commands/version_cmd.py +27 -0
- clm/layer4/diff_commands.py +167 -0
- clm/layer4/eoa_sponsor.py +232 -0
- clm/layer4/events.py +69 -0
- clm/layer4/flux_gateway.py +133 -0
- clm/layer4/gateway.py +91 -0
- clm/layer4/loader.py +307 -0
- clm/layer4/mcard_commands.py +166 -0
- clm/layer4/membrane.py +273 -0
- clm/layer4/navigation.py +50 -0
- clm/layer4/protocol/protocol_entry_python.py +108 -0
- clm/layer4/protocol/python_sync.py +126 -0
- clm/layer4/runner.py +150 -0
- clm/layer4/satori.py +262 -0
- clm/layer4/server/python_sync_client.py +150 -0
- clm/layer4/server/python_sync_server.py +139 -0
- clm/layer4/server/service_api.py +315 -0
- clm/layer4/server/start_servers.py +107 -0
- clm/layer4/server/stop_servers.py +24 -0
- clm/layer4/simulated_optimization_fix.py +0 -0
- clm/layer4/storage.py +463 -0
- clm/layer4/tridb_admin.py +268 -0
- clm/layer4/websocket/test_ws_client.py +104 -0
- clm/layer4/websocket/test_ws_server.py +138 -0
- clm/layer4/websocket/ws_server_local.py +160 -0
- clm/layer5/__init__.py +51 -0
- clm/layer5/async_batch_writer.py +133 -0
- clm/layer5/learning.py +276 -0
- clm/layer5/telemetry_hook.py +107 -0
- clm/layer5/type_lattice.py +238 -0
- clm/py.typed +0 -0
- clm/schemas/__init__.py +652 -0
- clm/schemas/abstract_face_schema.yaml +77 -0
- clm/schemas/cel_schema.yaml +416 -0
- clm/schemas/lifecycle/__init__.py +45 -0
- clm/schemas/lifecycle/models.py +123 -0
- clm/schemas/lifecycle/service.py +364 -0
- clm/schemas/mcard_schema.sql +192 -0
- clm/schemas/mcard_vector_schema.sql +283 -0
- clm/schemas/mlp-context-v1.json +91 -0
- clm_kernel-0.0.0.dist-info/METADATA +121 -0
- clm_kernel-0.0.0.dist-info/RECORD +333 -0
- clm_kernel-0.0.0.dist-info/WHEEL +4 -0
- clm_kernel-0.0.0.dist-info/entry_points.txt +3 -0
- clm_kernel-0.0.0.dist-info/licenses/LICENSE +21 -0
clm/layer0/types.py
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"""Common types and data structures for CLM Layer 0.
|
|
2
|
+
|
|
3
|
+
Canonical Path: clm/kernel/scripts/clm/layer0/types.py
|
|
4
|
+
Kenotic core type definitions including PrimeHash, PolynomialTerm, SafetyViolation,
|
|
5
|
+
LivenessMetric, VerificationStatus, ExecutionResult, CHL Temporal Isomorphism dimensions,
|
|
6
|
+
and VCard Sandwich boundary exceptions.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from dataclasses import dataclass, field
|
|
10
|
+
from datetime import datetime, timezone
|
|
11
|
+
from enum import Enum
|
|
12
|
+
from typing import Any, NewType
|
|
13
|
+
|
|
14
|
+
# MCard as Prime Number (Atomic Identity)
|
|
15
|
+
PrimeHash = NewType("PrimeHash", str)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@dataclass
|
|
19
|
+
class PolynomialTerm:
|
|
20
|
+
"""Represents a term in the PCard Polynomial: A_i * X^{B_i}
|
|
21
|
+
|
|
22
|
+
Where:
|
|
23
|
+
- A_i (coefficient): Abstract Specification Hash (PrimeHash)
|
|
24
|
+
- B_i (exponent): Balanced Expectation Hash (PrimeHash)
|
|
25
|
+
- X: The Operator/Function being evaluated
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
coefficient: PrimeHash # Abstract Spec
|
|
29
|
+
exponent: PrimeHash # Balanced Expectation
|
|
30
|
+
weight: float = 1.0 # Optional weighting for semantic embedding
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@dataclass
|
|
34
|
+
class SafetyViolation:
|
|
35
|
+
"""Records safety property violations"""
|
|
36
|
+
|
|
37
|
+
property: str
|
|
38
|
+
violation_type: str
|
|
39
|
+
details: str
|
|
40
|
+
timestamp: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@dataclass
|
|
44
|
+
class LivenessMetric:
|
|
45
|
+
"""Tracks liveness properties (progress toward goals)"""
|
|
46
|
+
|
|
47
|
+
goal: str
|
|
48
|
+
progress: float # 0.0 to 1.0
|
|
49
|
+
timestamp: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class VerificationStatus(Enum):
|
|
53
|
+
"""Status of CLM verification tracking temporal progression"""
|
|
54
|
+
|
|
55
|
+
PENDING = "pending"
|
|
56
|
+
VERIFIED = "verified"
|
|
57
|
+
FAILED = "failed"
|
|
58
|
+
SKIPPED = "skipped"
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@dataclass
|
|
62
|
+
class ExecutionResult:
|
|
63
|
+
"""Result of a PCard execution with correctness measures
|
|
64
|
+
|
|
65
|
+
Implements Computable Certificate pattern:
|
|
66
|
+
- success/output: Generator's complex computation result
|
|
67
|
+
- verification_vcard: Certificate (immutable audit evidence)
|
|
68
|
+
- alignment_score: Directional alignment measure (cosine similarity)
|
|
69
|
+
- invariants_preserved: Jacobian check (transformation verifiability)
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
success: bool
|
|
73
|
+
output: Any
|
|
74
|
+
verification_vcard: str | None # Hash of the verification VCard
|
|
75
|
+
execution_time_ms: int
|
|
76
|
+
|
|
77
|
+
# Correctness Measures (from MVP+CLM Integration)
|
|
78
|
+
alignment_score: float | None = None # cos(actual, spec) - should be ≥ 0.85
|
|
79
|
+
invariants_preserved: bool = True # |J| ≠ 0 check
|
|
80
|
+
|
|
81
|
+
# Safety and Liveness Tracking
|
|
82
|
+
safety_violations: list[SafetyViolation] = field(default_factory=list)
|
|
83
|
+
liveness_metrics: list[LivenessMetric] = field(default_factory=list)
|
|
84
|
+
|
|
85
|
+
error_message: str | None = None
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
89
|
+
# CHL Temporal Metadata (Curry-Howard-Lambek Isomorphism)
|
|
90
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class CHLDimension(Enum):
|
|
94
|
+
"""The three temporal dimensions of the CHL Isomorphism.
|
|
95
|
+
|
|
96
|
+
Curry-Howard-Lambek maps execution to three temporal planes:
|
|
97
|
+
- CURRY (Past): Logic — Execution evidence, historical proof
|
|
98
|
+
- HOWARD (Present): Type Theory — Compile-time dependency mappings
|
|
99
|
+
- LAMBEK (Future): Category Theory — Design-time structural intent
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
CURRY = "curry" # Past — Logic — Execution evidence
|
|
103
|
+
HOWARD = "howard" # Present — Type Theory — Compile-time mappings
|
|
104
|
+
LAMBEK = "lambek" # Future — Category Theory — Design-time intent
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class TemporalPhase(Enum):
|
|
108
|
+
"""Fine-grained temporal phase within a CHL dimension."""
|
|
109
|
+
|
|
110
|
+
DESIGN_TIME = "design_time" # Lambek: morphisms projecting intent
|
|
111
|
+
COMPILE_TIME = "compile_time" # Howard: interactive dependency mapping
|
|
112
|
+
EXECUTION_TIME = "execution_time" # Curry: deployed process harvesting
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
@dataclass
|
|
116
|
+
class CHLTemporal:
|
|
117
|
+
"""CHL temporal metadata for a VCard proof or execution trace."""
|
|
118
|
+
|
|
119
|
+
dimension: CHLDimension
|
|
120
|
+
phase: TemporalPhase
|
|
121
|
+
timestamp: str = field(
|
|
122
|
+
default_factory=lambda: datetime.now(timezone.utc).isoformat()
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
def to_dict(self) -> dict[str, str]:
|
|
126
|
+
"""Serialize to a flat dictionary for VCard content embedding."""
|
|
127
|
+
return {
|
|
128
|
+
"dimension": self.dimension.value,
|
|
129
|
+
"phase": self.phase.value,
|
|
130
|
+
"timestamp": self.timestamp,
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@classmethod
|
|
134
|
+
def for_execution(cls) -> "CHLTemporal":
|
|
135
|
+
"""Factory for execution-time evidence (Curry dimension)."""
|
|
136
|
+
return cls(
|
|
137
|
+
dimension=CHLDimension.CURRY,
|
|
138
|
+
phase=TemporalPhase.EXECUTION_TIME,
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
@classmethod
|
|
142
|
+
def for_compilation(cls) -> "CHLTemporal":
|
|
143
|
+
"""Factory for compile-time mapping (Howard dimension)."""
|
|
144
|
+
return cls(
|
|
145
|
+
dimension=CHLDimension.HOWARD,
|
|
146
|
+
phase=TemporalPhase.COMPILE_TIME,
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
@classmethod
|
|
150
|
+
def for_design(cls) -> "CHLTemporal":
|
|
151
|
+
"""Factory for design-time intent (Lambek dimension)."""
|
|
152
|
+
return cls(
|
|
153
|
+
dimension=CHLDimension.LAMBEK,
|
|
154
|
+
phase=TemporalPhase.DESIGN_TIME,
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
159
|
+
# Three-Plane Sovereign Architecture Markers
|
|
160
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
class ArchitecturalPlane(Enum):
|
|
164
|
+
"""The three rigorous mathematical planes of the Sovereign Architecture.
|
|
165
|
+
|
|
166
|
+
1. DATA_PLANE: Bits-to-hash guarantees, byte-identical cross-runtime
|
|
167
|
+
2. CONTROL_PLANE: PTR prep → exec → post, Petri Net firing
|
|
168
|
+
3. APPLICATION_PLANE: VCard cryptographic boundaries, zero-trust workflows
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
DATA_PLANE = "data_plane"
|
|
172
|
+
CONTROL_PLANE = "control_plane"
|
|
173
|
+
APPLICATION_PLANE = "application_plane"
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
177
|
+
# VCard Sandwich Boundary Exceptions
|
|
178
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class PreconditionViolation(RuntimeError):
|
|
182
|
+
"""Raised when a PCard's precondition VCard check fails."""
|
|
183
|
+
|
|
184
|
+
def __init__(self, pcard_hash: str, input_hash: str, detail: str = ""):
|
|
185
|
+
self.pcard_hash = pcard_hash
|
|
186
|
+
self.input_hash = input_hash
|
|
187
|
+
msg = f"Precondition violation: PCard {pcard_hash[:16]} rejected input {input_hash[:16]}"
|
|
188
|
+
if detail:
|
|
189
|
+
msg += f" — {detail}"
|
|
190
|
+
super().__init__(msg)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class PostconditionViolation(RuntimeError):
|
|
194
|
+
"""Raised when a PCard's postcondition VCard check fails."""
|
|
195
|
+
|
|
196
|
+
def __init__(self, pcard_hash: str, output_repr: str = "", detail: str = ""):
|
|
197
|
+
self.pcard_hash = pcard_hash
|
|
198
|
+
self.output_repr = output_repr
|
|
199
|
+
msg = (
|
|
200
|
+
f"Postcondition violation: PCard {pcard_hash[:16]} produced invalid output"
|
|
201
|
+
)
|
|
202
|
+
if detail:
|
|
203
|
+
msg += f" — {detail}"
|
|
204
|
+
super().__init__(msg)
|