clm-kernel 0.0.2__tar.gz → 0.0.3__tar.gz
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_kernel-0.0.2 → clm_kernel-0.0.3}/PKG-INFO +1 -1
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/handle_kind.py +9 -2
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/pcard.py +4 -1
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/telemetry.py +13 -12
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/algebra_equivalence.py +1 -1
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/algebra_ingest.py +2 -2
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/action.py +7 -7
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/workflow.py +5 -5
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/schema/ddl.py +3 -6
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/petri.py +29 -23
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/test_runner.py +1 -1
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/engine/abstract_sql_engine.py +78 -18
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/engine/duckdb_engine.py +146 -72
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/engine/sqlite_engine.py +55 -60
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/mcard_fs.py +8 -10
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/db_bitemporal.py +5 -6
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/db_repository.py +4 -4
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/action_commands.py +1 -2
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/check_cmd.py +3 -17
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/evaluate_cmd.py +10 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/mcard_cmd.py +14 -2
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/petri_cmd.py +0 -2
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/eoa_sponsor.py +2 -2
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/__init__.py +0 -4
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/pyproject.toml +1 -1
- clm_kernel-0.0.3/types/schemas/mcard_schema.sql +1 -0
- clm_kernel-0.0.2/kernel/clm_py_core/clm/schemas/mcard_schema.sql +0 -192
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/.gitignore +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/LICENSE +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/assets/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/assets/clm/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/assets/personal/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/assets/webapps/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/computable_knowledge/Concrete/layer5_system/bootstrap/layer4_interface/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/computable_knowledge/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/architecture/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/architecture/archive/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/bmad/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/changelog/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/guides/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/spec/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/spec/archive/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/spec/reports/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/01_foundation/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/02_petri-net/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/03_sovereign-identity/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/04_storage-network/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/05_runtime-interfaces/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/06_kernel-reorganization/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/07_test-infrastructure/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/08_rust-native/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/09_executable-evaluator/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/10_knowledge-facets/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/11_cel-monadic-architecture/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/12_language-specifications/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/_active/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/sprints/_index/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/docs/theory/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_js_core/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/__main__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/_test_runner.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/async_utils.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_builder.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_converter.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_engine.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_ops.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_ops_db.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_ops_files.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_ops_state.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_ops_strings.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_resolver.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_slices.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/cel_store.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/clm_logger.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/config/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/config/config_constants.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/config/env_parameters.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/config/logging.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/config/settings.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/context.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/domain_models.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/domain_types.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/effects.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/errors.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/governance.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/guards.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/mcard.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/native.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/observability.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/registry.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/resources.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/secrets.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/subprocess_utils.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/testing/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/testing/comparator.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/testing/datasets.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/timeutil.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/types/new_type_check.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/utils/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/utils/url_safety.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/vcard.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/cross_cutting/writer.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/algebra.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/algebra_baldwin.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/algebra_baldwin_generators.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/algebra_manifest_io.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/assembler.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/cel/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/cel_eval.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/codec.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/context.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/db.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/exceptions.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/fibration.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/gates.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/hash.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/loader.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/math_utils.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/mcard.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/card.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/card_triad.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/compatibility.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/dictionary.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/dots.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/event_producer.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/g_time.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/handle.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/hash/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/hash/algorithms/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/hash/algorithms/custom_hash.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/hash/algorithms/local_sha256.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/hash/constants.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/hash/enums.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/hash/validator.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/interpreter.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/pagination.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/pcard.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/schema.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/utils/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/utils/content_analyzer.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/validators/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/validators/base_validator.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/validators/binary_validator.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/validators/text_validator.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/validators/validation_registry.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_ext/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_ext/core.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_ext/network.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_ext/observability.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_ext/storage.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_ext/vendors.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_sandwich.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/model/vcard_vocabulary.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/narrative.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/ontology/collection.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/parser.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/relations.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/rule_evaluator.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/schema/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/schema/type_dictionary.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/storage/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/storage/tape.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/templates/abstract.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/templates/balanced.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/templates/concrete.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/type_interpreter.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/type_registry.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/typed_value.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/types.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/utils.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer0/verifier_core.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/action_dispatcher.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/adapter_registry.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/algebra_baldwin_generators.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/arrow_compiler.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/batch_processor.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/cel/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/cel/builder.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/engine.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/engine_async.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/eval_callback.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/gate_composer.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/hoare_sandwich.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/identity_guard.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/matrix.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/neural_runtime.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/augment.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/base.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/builtins.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/dispatch.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/exclude.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/handle.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/identity.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/invert.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/loader.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/manipulators/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/manipulators/document.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/manipulators/media.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/manipulators/structured.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/manipulators/tabular.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/port.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/services.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/split.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/operations/substitute.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/pocketflow_orchestrator.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/pocketflow_scheduler.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/protocols.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtime_adapter.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/_generated_assertions.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/_generated_types.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/base.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/binary.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/factory.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/javascript.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/javascript_runtime.js +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/js_scripts/isomorphism.mjs +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/js_scripts/loader.mjs +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/lambda_calc.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/python.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/python_runtime.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/runtimes/script.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/sandbox.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/savepoint_guard.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/sparse_net.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/spec_tester.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/store.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/type_inspector.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/verifier.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer1/vm.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/card_collection.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/classifier.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/engine/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/engine/base.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/fiber/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/fiber/context.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/fiber/disposable.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/fiber/fiber.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/fiber/hoare.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/fiber_context.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/file_io.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/file_registrar.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/ingest.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/lineage.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/merkle.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/mime.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/mime_detector.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/private_collection.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/shared_store.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/db_driver.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/db_hyperlinks.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/db_pool.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/savepoint.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/storage/sqlite_wal.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/tridb.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/typed_channel.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/vcard_receipt.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/vfs.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/config.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/providers/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/providers/base.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/providers/mlc_llm.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/providers/ollama.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/router.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/agency/runtime.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/gateway.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/open_interpreter_adapter.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/cli.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/config.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/embeddings/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/embeddings/base.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/embeddings/ollama.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/embeddings/vision.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/engine.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/graph/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/graph/community.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/graph/engine.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/graph/extractor.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/graph/schema.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/graph/store.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/indexer.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/llm_providers.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/semantic_versioning.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/vector/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/vector/handle_vector_store.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/vector/schema.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/rag/vector/store.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/reticulum/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/reticulum/bridge.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/reticulum/daemon.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/reticulum/discovery.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/reticulum/identity.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/reticulum/media.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/reticulum/transport.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/alpha_conversion.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/beta_reduction.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/continuation.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/eta_conversion.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/free_variables.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/io_effects.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/lambda_runtime.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/lambda_term.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/sheaf_audit.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer3/satori/speech_act.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/_sovereign_executor.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/api.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/bootstrap/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/bootstrap/bootstrapper.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/bootstrap/cleanup.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/bootstrap/clm_hooks.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/bootstrap/genesis.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/bootstrap/injection.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/cli.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/collection_manager.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/action_cmd.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/envelope.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/tridb_cmd.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/commands/version_cmd.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/diff_commands.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/events.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/flux_gateway.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/gateway.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/loader.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/mcard_commands.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/membrane.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/navigation.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/protocol/protocol_entry_python.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/protocol/python_sync.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/runner.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/satori.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/server/python_sync_client.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/server/python_sync_server.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/server/service_api.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/server/start_servers.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/server/stop_servers.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/simulated_optimization_fix.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/storage.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/tridb_admin.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/websocket/test_ws_client.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/websocket/test_ws_server.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer4/websocket/ws_server_local.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer5/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer5/async_batch_writer.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer5/learning.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer5/telemetry_hook.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer5/type_lattice.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/py.typed +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/abstract_face_schema.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/cel_schema.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/lifecycle/__init__.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/lifecycle/models.py +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/lifecycle/service.py +0 -0
- {clm_kernel-0.0.2/types → clm_kernel-0.0.3/kernel/clm_py_core/clm}/schemas/mcard_schema.sql +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/mcard_vector_schema.sql +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/schemas/mlp-context-v1.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_rust_core/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_rust_core/pkg/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_rust_core/types/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/sample_pcards/actions/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/schema/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/04_interface/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/chapter_00_prologue/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/chapter_01_arithmetic/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/chapter_01_arithmetic/sine/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/chapter_03_llm/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/chapter_07_network/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/chapter_09_DSL/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/chapters/chapter_10_service/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tests/corpus/canonical/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/tools/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/README.md +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/abstract_face_schema.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/action_schema.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/cel_schema.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/lifecycle_mcard.schema.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/mlp-context-v1.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/turn.exemplar.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/turn.schema.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/turn_binding.yaml +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/turn_ledger_entry.schema.json +0 -0
- {clm_kernel-0.0.2 → clm_kernel-0.0.3}/types/schemas/workflow_schema.json +0 -0
|
@@ -32,10 +32,17 @@ HANDLE_GRAMMAR = re.compile(r"^urn:mcard:(?P<sector>[a-z_]+):(?P<kind>[a-z_]+)(?
|
|
|
32
32
|
# Must equal the hub's registry/handle_taxonomy.yaml; the drift check enforces it.
|
|
33
33
|
KIND_SECTORS: dict[str, tuple[str, ...]] = {
|
|
34
34
|
# Content Memory (content_memory.db)
|
|
35
|
-
"mcard": (
|
|
35
|
+
"mcard": (
|
|
36
|
+
"content", "knowledge", "schema", "contract", "registry", "record", "projection",
|
|
37
|
+
"derived", "lifecycle",
|
|
38
|
+
# ORC-24: the nine archetypes (`clm/schema/archetypes/`) as kinds — an
|
|
39
|
+
# archetype is `<kind>_<sector>`, so the kind is derived, not hand-mapped.
|
|
40
|
+
"artifact", "commit", "design_decision", "feedback", "specification",
|
|
41
|
+
"sprint_status", "telemetry", "test_result",
|
|
42
|
+
),
|
|
36
43
|
"doc": ("vault", "document"),
|
|
37
44
|
"pcard": ("program", "sprint"),
|
|
38
|
-
"vcard": ("seal", "execution"),
|
|
45
|
+
"vcard": ("seal", "execution", "contract"),
|
|
39
46
|
# Agent Identities (agent_identities.db)
|
|
40
47
|
"agent": ("root", "actor"),
|
|
41
48
|
"node": ("did", "peer"),
|
|
@@ -93,7 +93,10 @@ def serialize_pcard(
|
|
|
93
93
|
|
|
94
94
|
pcard_hash = hash_string(pcard_yaml)
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
# ORC-24: the grammar names the KIND — `urn:mcard:pcard:program:<hash>`. This wrote
|
|
97
|
+
# `pcard:{operation}:{hash}`, the last legacy handle form in the kernel, and the reason the
|
|
98
|
+
# hub's declared consumption of `urn:mcard:pcard:*` had no tape to satisfy it.
|
|
99
|
+
handle_name = f"urn:mcard:pcard:program:{pcard_hash}"
|
|
97
100
|
ctx.repo.save_card_and_handle(
|
|
98
101
|
handle_name, pcard_hash, pcard_yaml, "execution_log",
|
|
99
102
|
timestamp=timestamp, replace=False,
|
|
@@ -135,19 +135,20 @@ def jsonl_emit(event_type: str, data: dict[str, Any] | list[str], clm_root: str)
|
|
|
135
135
|
_LAST_RUN_ID = run_id
|
|
136
136
|
|
|
137
137
|
repo = _get_cached_repo(clm_root)
|
|
138
|
-
|
|
138
|
+
# ONE EVENT, ONE CARD — the SEQUENCE lives in `handle_history`, which is what a
|
|
139
|
+
# revision record is for (ORC-29). The handle NAMES the kind (INV-TAPE-03): one
|
|
140
|
+
# handle per (run, event type), so the number of events of a type is the length of
|
|
141
|
+
# that handle's history.
|
|
142
|
+
#
|
|
143
|
+
# THIS PREVIOUSLY ACCUMULATED. It read the whole log back, concatenated one line, and
|
|
144
|
+
# registered the WHOLE THING as a new card. `card` is content-addressed, so every
|
|
145
|
+
# distinct accumulation became a NEW ROW — N events, N cards, averaging N/2 lines,
|
|
146
|
+
# i.e. O(n²) bytes. The Rust emitter carried the identical defect; together they cost
|
|
147
|
+
# 114 GB for the 20.9 MB of events in the append-only file beside them.
|
|
148
|
+
handle_name = f"run:{run_id}:event:{event_type}"
|
|
149
|
+
new_hash = clm_hash_string(json_line)
|
|
139
150
|
try:
|
|
140
|
-
|
|
141
|
-
_logger.debug(f"jsonl_emit: current_content len={len(current_content) if current_content else 0}")
|
|
142
|
-
except Exception as e:
|
|
143
|
-
_logger.error(f"jsonl_emit: resolve failed: {e}")
|
|
144
|
-
current_content = None
|
|
145
|
-
|
|
146
|
-
new_content = f"{current_content}\n{json_line}" if current_content else json_line
|
|
147
|
-
|
|
148
|
-
new_hash = clm_hash_string(new_content)
|
|
149
|
-
try:
|
|
150
|
-
repo.save_card_and_handle(handle_name, new_hash, new_content, "execution_log", replace=True)
|
|
151
|
+
repo.save_card_and_handle(handle_name, new_hash, json_line, "execution_log", replace=True)
|
|
151
152
|
except Exception as e:
|
|
152
153
|
_logger.error(f"jsonl_emit: DB registration failed: {e}")
|
|
153
154
|
|
|
@@ -243,7 +243,7 @@ def assess_equivalence_py(clm_root: str, clm_file: str) -> tuple[int, str]:
|
|
|
243
243
|
try:
|
|
244
244
|
db.execute("content_memory", "INSERT OR IGNORE INTO card (hash, content, g_time) VALUES (?, ?, ?);", [vcard_hash, vcard_yaml, timestamp])
|
|
245
245
|
handle_name = f"vcard:equivalence:{vcard_hash}"
|
|
246
|
-
db.execute("content_memory", "INSERT OR IGNORE INTO handle_registry (handle, current_hash,
|
|
246
|
+
db.execute("content_memory", "INSERT OR IGNORE INTO handle_registry (handle, current_hash, updated_at) VALUES (?, ?, ?);", [handle_name, vcard_hash, timestamp])
|
|
247
247
|
except Exception:
|
|
248
248
|
pass
|
|
249
249
|
|
|
@@ -252,7 +252,7 @@ def directory_to_db_py(clm_root: str, spec_file: str) -> str:
|
|
|
252
252
|
cursor.executescript(schema_content)
|
|
253
253
|
except Exception:
|
|
254
254
|
cursor.execute("CREATE TABLE IF NOT EXISTS card (hash TEXT PRIMARY KEY, content BLOB NOT NULL, g_time TEXT NOT NULL);")
|
|
255
|
-
cursor.execute("CREATE TABLE IF NOT EXISTS handle_registry (handle TEXT PRIMARY KEY, current_hash TEXT NOT NULL,
|
|
255
|
+
cursor.execute("CREATE TABLE IF NOT EXISTS handle_registry (handle TEXT PRIMARY KEY, current_hash TEXT NOT NULL, updated_at TEXT NOT NULL);")
|
|
256
256
|
cursor.execute("CREATE TABLE IF NOT EXISTS handle_history (handle TEXT NOT NULL, previous_hash TEXT NOT NULL, changed_at TEXT NOT NULL);")
|
|
257
257
|
conn.commit()
|
|
258
258
|
|
|
@@ -281,7 +281,7 @@ def directory_to_db_py(clm_root: str, spec_file: str) -> str:
|
|
|
281
281
|
handle = f"{storage_type}://{top_dir_name}/{rel_path}"
|
|
282
282
|
|
|
283
283
|
cursor.execute("INSERT OR IGNORE INTO card (hash, content, g_time) VALUES (?, ?, ?);", [h, sqlite3.Binary(content_bytes), now])
|
|
284
|
-
cursor.execute("INSERT OR IGNORE INTO handle_registry (handle, current_hash,
|
|
284
|
+
cursor.execute("INSERT OR IGNORE INTO handle_registry (handle, current_hash, updated_at) VALUES (?, ?, ?);", [handle, h, now])
|
|
285
285
|
|
|
286
286
|
conn.commit()
|
|
287
287
|
|
|
@@ -51,7 +51,7 @@ ActionRuntime = Literal[
|
|
|
51
51
|
class ActionMetadata(BaseModel):
|
|
52
52
|
"""Metadata block identifying the Action and its algebraic role in CLM."""
|
|
53
53
|
|
|
54
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
54
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
55
55
|
|
|
56
56
|
type: Literal["action", "pcard_action"] = "action"
|
|
57
57
|
name: str = Field(..., pattern=r"^[a-z0-9_\-]+$")
|
|
@@ -64,7 +64,7 @@ class ActionMetadata(BaseModel):
|
|
|
64
64
|
class ActionInput(BaseModel):
|
|
65
65
|
"""Specification of an input MCard bound to the Action."""
|
|
66
66
|
|
|
67
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
67
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
68
68
|
|
|
69
69
|
name: str
|
|
70
70
|
uri: str | None = None
|
|
@@ -76,7 +76,7 @@ class ActionInput(BaseModel):
|
|
|
76
76
|
class ActionPrecondition(BaseModel):
|
|
77
77
|
"""Precondition invariant rule (V_pre Gate) verified before Action execution."""
|
|
78
78
|
|
|
79
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
79
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
80
80
|
|
|
81
81
|
invariant: str
|
|
82
82
|
rule: str
|
|
@@ -87,7 +87,7 @@ class ActionPrecondition(BaseModel):
|
|
|
87
87
|
class ActionOperation(BaseModel):
|
|
88
88
|
"""Algebraic operation definition specifying the Baldwin operator and parameters."""
|
|
89
89
|
|
|
90
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
90
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
91
91
|
|
|
92
92
|
operator: BaldwinOperator
|
|
93
93
|
strategy: str | None = None
|
|
@@ -98,7 +98,7 @@ class ActionOperation(BaseModel):
|
|
|
98
98
|
class ActionPostcondition(BaseModel):
|
|
99
99
|
"""Postcondition invariant rule (V_post Witness) verified before committing output."""
|
|
100
100
|
|
|
101
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
101
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
102
102
|
|
|
103
103
|
invariant: str
|
|
104
104
|
rule: str
|
|
@@ -109,7 +109,7 @@ class ActionPostcondition(BaseModel):
|
|
|
109
109
|
class ActionOutput(BaseModel):
|
|
110
110
|
"""Specification of an output MCard emitted by the Action."""
|
|
111
111
|
|
|
112
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
112
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
113
113
|
|
|
114
114
|
name: str
|
|
115
115
|
handle: str | None = None
|
|
@@ -124,7 +124,7 @@ class ActionManifest(BaseModel):
|
|
|
124
124
|
Hoare postconditions (V_post), and outputs.
|
|
125
125
|
"""
|
|
126
126
|
|
|
127
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
127
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
128
128
|
|
|
129
129
|
version: Literal["1.0", "1.0.0"] = "1.0"
|
|
130
130
|
clm: ActionMetadata
|
|
@@ -33,7 +33,7 @@ class WorkflowValidationError(CLMError):
|
|
|
33
33
|
class WorkflowMetadata(BaseModel):
|
|
34
34
|
"""Metadata block identifying the workflow and its role in CLM."""
|
|
35
35
|
|
|
36
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
36
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
37
37
|
|
|
38
38
|
type: Literal["workflow", "pocketflow_dag"] = "workflow"
|
|
39
39
|
name: str = Field(..., pattern=r"^[a-z0-9_\-]+$")
|
|
@@ -44,7 +44,7 @@ class WorkflowMetadata(BaseModel):
|
|
|
44
44
|
class WorkflowInput(BaseModel):
|
|
45
45
|
"""Specification of an input parameter to the workflow."""
|
|
46
46
|
|
|
47
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
47
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
48
48
|
|
|
49
49
|
name: str
|
|
50
50
|
format: str | None = None
|
|
@@ -54,7 +54,7 @@ class WorkflowInput(BaseModel):
|
|
|
54
54
|
class WorkflowStep(BaseModel):
|
|
55
55
|
"""A discrete Action step in the workflow DAG."""
|
|
56
56
|
|
|
57
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
57
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
58
58
|
|
|
59
59
|
id: str = Field(..., pattern=r"^[a-z0-9_\-]+$")
|
|
60
60
|
action: str
|
|
@@ -82,7 +82,7 @@ class WorkflowStep(BaseModel):
|
|
|
82
82
|
class WorkflowOutput(BaseModel):
|
|
83
83
|
"""Specification of an output produced by the workflow."""
|
|
84
84
|
|
|
85
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
85
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
86
86
|
|
|
87
87
|
name: str
|
|
88
88
|
source: str
|
|
@@ -98,7 +98,7 @@ class WorkflowManifest(BaseModel):
|
|
|
98
98
|
and Merkle causal lineage.
|
|
99
99
|
"""
|
|
100
100
|
|
|
101
|
-
model_config = ConfigDict(frozen=True, extra="
|
|
101
|
+
model_config = ConfigDict(frozen=True, extra="ignore")
|
|
102
102
|
|
|
103
103
|
version: Literal["1.0", "1.0.0"] = "1.0"
|
|
104
104
|
clm: WorkflowMetadata
|
|
@@ -35,15 +35,15 @@ CARD_TABLE_SPEC = TableSpec(
|
|
|
35
35
|
|
|
36
36
|
HANDLE_REGISTRY_SPEC = TableSpec(
|
|
37
37
|
name=TABLE_HANDLE_REGISTRY,
|
|
38
|
-
columns=("handle", "current_hash", "
|
|
38
|
+
columns=("handle", "current_hash", "updated_at"),
|
|
39
39
|
primary_key=("handle",),
|
|
40
40
|
description="Semantic handle mapping mutable names to immutable CAS hashes (Sum/Appetition).",
|
|
41
41
|
)
|
|
42
42
|
|
|
43
43
|
HANDLE_HISTORY_SPEC = TableSpec(
|
|
44
44
|
name=TABLE_HANDLE_HISTORY,
|
|
45
|
-
columns=("
|
|
46
|
-
primary_key=(
|
|
45
|
+
columns=("handle", "previous_hash", "changed_at"),
|
|
46
|
+
primary_key=(),
|
|
47
47
|
description="Append-only audit trail witnessing all handle transitions (η-conversion).",
|
|
48
48
|
)
|
|
49
49
|
|
|
@@ -60,7 +60,6 @@ SQL_CREATE_HANDLE_REGISTRY: Final[str] = """\
|
|
|
60
60
|
CREATE TABLE IF NOT EXISTS handle_registry (
|
|
61
61
|
handle TEXT PRIMARY KEY,
|
|
62
62
|
current_hash TEXT NOT NULL,
|
|
63
|
-
created_at TEXT NOT NULL,
|
|
64
63
|
updated_at TEXT NOT NULL,
|
|
65
64
|
FOREIGN KEY (current_hash) REFERENCES card(hash)
|
|
66
65
|
);
|
|
@@ -69,11 +68,9 @@ CREATE INDEX IF NOT EXISTS idx_handle_current_hash ON handle_registry(current_ha
|
|
|
69
68
|
|
|
70
69
|
SQL_CREATE_HANDLE_HISTORY: Final[str] = """\
|
|
71
70
|
CREATE TABLE IF NOT EXISTS handle_history (
|
|
72
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
73
71
|
handle TEXT NOT NULL,
|
|
74
72
|
previous_hash TEXT NOT NULL,
|
|
75
73
|
changed_at TEXT NOT NULL,
|
|
76
|
-
change_type TEXT DEFAULT 'UPDATE',
|
|
77
74
|
FOREIGN KEY (handle) REFERENCES handle_registry(handle),
|
|
78
75
|
FOREIGN KEY (previous_hash) REFERENCES card(hash)
|
|
79
76
|
);
|
|
@@ -922,37 +922,43 @@ class ColoredPetriVM:
|
|
|
922
922
|
else:
|
|
923
923
|
out_buf.append(" ✅ Temporal idempotency proven (zero state drift)")
|
|
924
924
|
|
|
925
|
-
events_handle = f"run:{run_id}:events"
|
|
926
|
-
_logger.debug(f"--- PETRI DEBUG: events_handle={events_handle}, clm_root={clm_root} ---")
|
|
927
|
-
try:
|
|
928
|
-
h_res = ctx.repo.get_all_handles("execution_log")
|
|
929
|
-
_logger.debug(f"--- PETRI DEBUG: handle registry={repr(h_res)} ---")
|
|
930
|
-
except Exception as e:
|
|
931
|
-
_logger.error(f"--- PETRI DEBUG: db query failed: {e} ---")
|
|
932
|
-
|
|
933
|
-
events_content = ""
|
|
934
|
-
try:
|
|
935
|
-
events_content = resolve_handle_content(clm_root, events_handle, "execution_log") or ""
|
|
936
|
-
except Exception as e:
|
|
937
|
-
_logger.info(f"[PETRI] ERROR resolving events: {e}")
|
|
938
|
-
_logger.error("Exception in Petri net execution", exc_info=True)
|
|
939
|
-
|
|
940
925
|
assert_pass = 0
|
|
941
926
|
assert_fail = 0
|
|
942
927
|
|
|
943
928
|
if assertions:
|
|
944
929
|
for key, expected in assertions.get("event_counts", {}).items():
|
|
930
|
+
# The count is the LENGTH OF THE HANDLE'S REVISION RECORD (`ORC-29`): the
|
|
931
|
+
# handle `run:<id>:event:<type>` carries one version per event. Nothing here
|
|
932
|
+
# reads a blob, because the emitter no longer writes one — counting lines in
|
|
933
|
+
# an accumulated snapshot is what made the emitter accumulate, and that is
|
|
934
|
+
# what cost 114 GB.
|
|
945
935
|
actual = 0
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
936
|
+
try:
|
|
937
|
+
actual = len(
|
|
938
|
+
ctx.repo.get_handle_versions(
|
|
939
|
+
f"run:{run_id}:event:{key}", "execution_log"
|
|
940
|
+
)
|
|
941
|
+
)
|
|
942
|
+
except Exception:
|
|
943
|
+
actual = 0
|
|
944
|
+
if actual == 0:
|
|
945
|
+
# LEGACY: a run recorded before the emitter stopped accumulating holds
|
|
946
|
+
# its events as one blob under `run:<id>:events`.
|
|
949
947
|
try:
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
948
|
+
legacy = (
|
|
949
|
+
resolve_handle_content(
|
|
950
|
+
clm_root, f"run:{run_id}:events", "execution_log"
|
|
951
|
+
)
|
|
952
|
+
or ""
|
|
953
|
+
)
|
|
954
|
+
for line in legacy.splitlines():
|
|
955
|
+
if (
|
|
956
|
+
f"\"event\":\"{key}\"" in line
|
|
957
|
+
or f"\"event\": \"{key}\"" in line
|
|
958
|
+
):
|
|
959
|
+
actual += 1
|
|
953
960
|
except Exception:
|
|
954
|
-
|
|
955
|
-
actual += 1
|
|
961
|
+
pass
|
|
956
962
|
if actual == expected:
|
|
957
963
|
out_buf.append(f" ✅ {key}: {actual} (expected {expected})")
|
|
958
964
|
assert_pass += 1
|
|
@@ -389,7 +389,7 @@ process:
|
|
|
389
389
|
post_excl_history = int(res) if res else 0
|
|
390
390
|
_assert("exclude creates handle_history entry for version tracking", post_excl_history > pre_excl_history)
|
|
391
391
|
|
|
392
|
-
prev_hash = db.execute("content_memory", "SELECT previous_hash FROM handle_history WHERE handle = 'test:baldwin_exclude' ORDER BY
|
|
392
|
+
prev_hash = db.execute("content_memory", "SELECT previous_hash FROM handle_history WHERE handle = 'test:baldwin_exclude' ORDER BY rowid DESC LIMIT 1;")
|
|
393
393
|
prev_hash = prev_hash.strip() if prev_hash else None
|
|
394
394
|
if prev_hash:
|
|
395
395
|
prev_content = db.execute("content_memory", f"SELECT content FROM card WHERE hash = '{prev_hash}';")
|
{clm_kernel-0.0.2 → clm_kernel-0.0.3}/kernel/clm_py_core/clm/layer2/engine/abstract_sql_engine.py
RENAMED
|
@@ -83,20 +83,81 @@ class AbstractSqlEngine(StorageEngine):
|
|
|
83
83
|
return MCardFromData(content_bytes, hash_value, g_time)
|
|
84
84
|
|
|
85
85
|
# =====================================================================
|
|
86
|
-
# Shared: get_all_cards, get_page delegate, clear
|
|
86
|
+
# Shared: _get_tombstoned_hashes, get_all_cards, get_page delegate, clear
|
|
87
87
|
# =====================================================================
|
|
88
88
|
|
|
89
|
+
def _get_tombstoned_hashes(self) -> set[str]:
|
|
90
|
+
"""Resolve tombstoned card hashes.
|
|
91
|
+
|
|
92
|
+
Follows INV-TAPE-04 (Lifecycle is External):
|
|
93
|
+
1. If the tape has no lifecycle sidecar file, returns set() (the common case; no-op).
|
|
94
|
+
2. If the sidecar exists, reads tombstoned hashes from it.
|
|
95
|
+
3. During migration transition, also checks if a legacy `card_tombstone` table
|
|
96
|
+
exists on the connection and includes any hashes recorded there.
|
|
97
|
+
"""
|
|
98
|
+
tombstoned: set[str] = set()
|
|
99
|
+
|
|
100
|
+
# 1. Check legacy card_tombstone table if it exists on connection (safe transition)
|
|
101
|
+
try:
|
|
102
|
+
rows = self._query_rows("SELECT hash FROM card_tombstone")
|
|
103
|
+
for r in rows:
|
|
104
|
+
if r.get("hash"):
|
|
105
|
+
tombstoned.add(str(r["hash"]))
|
|
106
|
+
except Exception:
|
|
107
|
+
pass
|
|
108
|
+
|
|
109
|
+
# 2. Check lifecycle sidecar tape if tape is file-backed
|
|
110
|
+
db_path = getattr(self.connection, "db_path", None)
|
|
111
|
+
if db_path and db_path != ":memory:":
|
|
112
|
+
try:
|
|
113
|
+
from pathlib import Path
|
|
114
|
+
p = Path(db_path)
|
|
115
|
+
candidates = [
|
|
116
|
+
p.parent / "lifecycle" / f"{p.stem}.lifecycle.db",
|
|
117
|
+
p.parent / f"{p.stem}.lifecycle.db",
|
|
118
|
+
]
|
|
119
|
+
for sc_path in candidates:
|
|
120
|
+
if sc_path.exists():
|
|
121
|
+
import sqlite3
|
|
122
|
+
conn = sqlite3.connect(sc_path)
|
|
123
|
+
try:
|
|
124
|
+
c_rows = conn.execute(
|
|
125
|
+
"SELECT c.content FROM handle_registry r "
|
|
126
|
+
"JOIN card c ON c.hash = r.current_hash "
|
|
127
|
+
"WHERE r.handle LIKE 'urn:mcard:mcard:lifecycle:%'"
|
|
128
|
+
).fetchall()
|
|
129
|
+
import json
|
|
130
|
+
for (content,) in c_rows:
|
|
131
|
+
try:
|
|
132
|
+
d = json.loads(content)
|
|
133
|
+
if d.get("kind") == "TOMBSTONE":
|
|
134
|
+
sh = d.get("subject_hash")
|
|
135
|
+
if sh:
|
|
136
|
+
tombstoned.add(str(sh))
|
|
137
|
+
handle_sub = d.get("subject_handle")
|
|
138
|
+
if handle_sub and not handle_sub.startswith("urn:"):
|
|
139
|
+
tombstoned.add(str(handle_sub))
|
|
140
|
+
except Exception:
|
|
141
|
+
pass
|
|
142
|
+
finally:
|
|
143
|
+
conn.close()
|
|
144
|
+
break
|
|
145
|
+
except Exception:
|
|
146
|
+
pass
|
|
147
|
+
|
|
148
|
+
return tombstoned
|
|
149
|
+
|
|
89
150
|
def get_all_cards(self) -> Page:
|
|
90
151
|
"""Get all non-tombstoned cards in a single page."""
|
|
91
|
-
self.
|
|
92
|
-
|
|
93
|
-
""
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
152
|
+
tombstoned = self._get_tombstoned_hashes()
|
|
153
|
+
if not tombstoned:
|
|
154
|
+
rows = self._query_rows("SELECT content, hash, g_time FROM card")
|
|
155
|
+
else:
|
|
156
|
+
placeholders = ", ".join("?" for _ in tombstoned)
|
|
157
|
+
rows = self._query_rows(
|
|
158
|
+
f"SELECT content, hash, g_time FROM card WHERE hash NOT IN ({placeholders})",
|
|
159
|
+
tuple(tombstoned),
|
|
160
|
+
)
|
|
100
161
|
items = [self._row_to_card(r["content"], r["hash"], r["g_time"]) for r in rows]
|
|
101
162
|
return Page.create(
|
|
102
163
|
items=items,
|
|
@@ -154,9 +215,9 @@ class AbstractSqlEngine(StorageEngine):
|
|
|
154
215
|
raise ValueError(f"Handle '{validated}' already exists.")
|
|
155
216
|
|
|
156
217
|
self._exec_sql(
|
|
157
|
-
"INSERT INTO handle_registry (handle, current_hash,
|
|
158
|
-
"VALUES (?, ?,
|
|
159
|
-
(validated, hash_value, now
|
|
218
|
+
"INSERT INTO handle_registry (handle, current_hash, updated_at) "
|
|
219
|
+
"VALUES (?, ?, ?)",
|
|
220
|
+
(validated, hash_value, now),
|
|
160
221
|
)
|
|
161
222
|
logger.info(f"Registered handle '{validated}' -> {hash_value[:8]}...")
|
|
162
223
|
return True
|
|
@@ -223,7 +284,7 @@ class AbstractSqlEngine(StorageEngine):
|
|
|
223
284
|
validated = validate_handle(handle)
|
|
224
285
|
rows = self._query_rows(
|
|
225
286
|
"SELECT previous_hash, changed_at FROM handle_history "
|
|
226
|
-
"WHERE handle = ? ORDER BY
|
|
287
|
+
"WHERE handle = ? ORDER BY rowid DESC",
|
|
227
288
|
(validated,),
|
|
228
289
|
)
|
|
229
290
|
return [
|
|
@@ -280,7 +341,7 @@ class AbstractSqlEngine(StorageEngine):
|
|
|
280
341
|
|
|
281
342
|
# Check old exists
|
|
282
343
|
old_rows = self._query_rows(
|
|
283
|
-
"SELECT handle, current_hash,
|
|
344
|
+
"SELECT handle, current_hash, updated_at "
|
|
284
345
|
"FROM handle_registry WHERE handle = ?",
|
|
285
346
|
(old_validated,),
|
|
286
347
|
)
|
|
@@ -300,12 +361,11 @@ class AbstractSqlEngine(StorageEngine):
|
|
|
300
361
|
# cannot simply UPDATE either table first without violating the constraint.
|
|
301
362
|
old_row = old_rows[0]
|
|
302
363
|
self._exec_sql(
|
|
303
|
-
"INSERT INTO handle_registry (handle, current_hash,
|
|
304
|
-
"VALUES (?, ?,
|
|
364
|
+
"INSERT INTO handle_registry (handle, current_hash, updated_at) "
|
|
365
|
+
"VALUES (?, ?, ?)",
|
|
305
366
|
(
|
|
306
367
|
new_validated,
|
|
307
368
|
old_row["current_hash"],
|
|
308
|
-
old_row["created_at"],
|
|
309
369
|
old_row["updated_at"],
|
|
310
370
|
),
|
|
311
371
|
)
|