cks-runtime 0.4.2__tar.gz → 0.4.4__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.
Files changed (55) hide show
  1. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/PKG-INFO +3 -3
  2. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/README.md +1 -1
  3. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/config.py +1 -1
  4. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/core_api/validation_result.py +12 -3
  5. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/pipeline/execution_pipeline.py +24 -2
  6. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime.egg-info/PKG-INFO +3 -3
  7. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime.egg-info/requires.txt +1 -1
  8. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/pyproject.toml +2 -2
  9. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/LICENSE +0 -0
  10. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/__init__.py +0 -0
  11. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/__init__.py +0 -0
  12. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/mcp/__init__.py +0 -0
  13. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/mcp/adapter.py +0 -0
  14. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/mcp/contracts.py +0 -0
  15. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/mcp/errors.py +0 -0
  16. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/mcp/handlers.py +0 -0
  17. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/mcp/serializers.py +0 -0
  18. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/adapters/mcp/tool_registry.py +0 -0
  19. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/core_api/__init__.py +0 -0
  20. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/core_api/bridge.py +0 -0
  21. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/core_api/interfaces.py +0 -0
  22. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/diagnostics/__init__.py +0 -0
  23. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/diagnostics/aggregator.py +0 -0
  24. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/diagnostics/diagnostic.py +0 -0
  25. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/dispatcher/dispatcher.py +0 -0
  26. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/events/event_bus.py +0 -0
  27. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/events/runtime_event.py +0 -0
  28. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/execution/__init__.py +0 -0
  29. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/execution/execution_context.py +0 -0
  30. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/execution/operation_executor.py +0 -0
  31. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/explainability/__init__.py +0 -0
  32. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/explainability/explainability_manager.py +0 -0
  33. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/operations/operation_registry.py +0 -0
  34. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/operations/operation_types.py +0 -0
  35. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/pipeline/__init__.py +0 -0
  36. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/runtime.py +0 -0
  37. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/session/__init__.py +0 -0
  38. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/session/session.py +0 -0
  39. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/session/session_manager.py +0 -0
  40. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/storage/__init__.py +0 -0
  41. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/storage/memory_storage.py +0 -0
  42. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/storage/storage.py +0 -0
  43. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/transaction/__init__.py +0 -0
  44. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/transaction/transaction.py +0 -0
  45. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/transaction/transaction_manager.py +0 -0
  46. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/versioning/__init__.py +0 -0
  47. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/versioning/version.py +0 -0
  48. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime/versioning/version_manager.py +0 -0
  49. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime.egg-info/SOURCES.txt +0 -0
  50. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime.egg-info/dependency_links.txt +0 -0
  51. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime.egg-info/top_level.txt +0 -0
  52. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime_plugins/__init__.py +0 -0
  53. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime_plugins/cks_core/__init__.py +0 -0
  54. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/cks_runtime_plugins/cks_core/adapter.py +0 -0
  55. {cks_runtime-0.4.2 → cks_runtime-0.4.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cks-runtime
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: Canonical Runtime for the Canonical Knowledge Structure ecosystem
5
5
  Author: Vladyslav Hruznov
6
6
  License: MIT
@@ -17,7 +17,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
17
  Requires-Python: >=3.12
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: cks-core>=1.2.0
20
+ Requires-Dist: cks-core>=1.2.1
21
21
  Provides-Extra: dev
22
22
  Requires-Dist: pytest>=8.0; extra == "dev"
23
23
  Requires-Dist: mypy>=1.0; extra == "dev"
@@ -29,7 +29,7 @@ Dynamic: license-file
29
29
 
30
30
  ![Python](https://img.shields.io/badge/python-3.11%2B-blue)
31
31
  ![License](https://img.shields.io/badge/license-MIT-green)
32
- ![Tests](https://img.shields.io/badge/tests-156%20passing-brightgreen)
32
+ ![Tests](https://img.shields.io/badge/tests-158%20passing-brightgreen)
33
33
  ![Status](https://img.shields.io/badge/status-beta-blue)
34
34
 
35
35
  CKS Runtime is the canonical execution environment for
@@ -4,7 +4,7 @@
4
4
 
5
5
  ![Python](https://img.shields.io/badge/python-3.11%2B-blue)
6
6
  ![License](https://img.shields.io/badge/license-MIT-green)
7
- ![Tests](https://img.shields.io/badge/tests-156%20passing-brightgreen)
7
+ ![Tests](https://img.shields.io/badge/tests-158%20passing-brightgreen)
8
8
  ![Status](https://img.shields.io/badge/status-beta-blue)
9
9
 
10
10
  CKS Runtime is the canonical execution environment for
@@ -28,7 +28,7 @@ def _runtime_version() -> str:
28
28
  try:
29
29
  return version("cks-runtime")
30
30
  except PackageNotFoundError:
31
- return "0.4.2"
31
+ return "0.4.4"
32
32
 
33
33
 
34
34
  @dataclass(slots=True)
@@ -18,12 +18,21 @@ class RuntimeValidationResult:
18
18
  metadata: Mapping[str, Any] = field(default_factory=dict)
19
19
 
20
20
  def __post_init__(self) -> None:
21
- # diagnostics всегда должен быть кортежем
22
21
  object.__setattr__(self, "diagnostics", tuple(self.diagnostics))
23
- # metadata замораживаем через MappingProxyType – теперь это безопасно,
24
- # так как cks-core >=1.2.0 поддерживает deepcopy для иммутабельных объектов.
25
22
  object.__setattr__(self, "metadata", MappingProxyType(dict(self.metadata)))
26
23
 
24
+ # ------------------------------------------------------------------
25
+ # Copy semantics
26
+ # ------------------------------------------------------------------
27
+ # RuntimeValidationResult is immutable, so it can safely return self
28
+ # on copy/deepcopy, avoiding issues with MappingProxyType.
29
+ def __copy__(self) -> "RuntimeValidationResult":
30
+ return self
31
+
32
+ def __deepcopy__(self, memo: dict[int, Any]) -> "RuntimeValidationResult":
33
+ memo[id(self)] = self
34
+ return self
35
+
27
36
  @property
28
37
  def has_diagnostics(self) -> bool:
29
38
  return bool(self.diagnostics)
@@ -15,7 +15,7 @@ from cks_runtime.core_api.validation_result import RuntimeValidationResult
15
15
  from cks_runtime.transaction.transaction import RuntimeTransaction
16
16
  from cks_runtime.versioning.version import RuntimeVersion
17
17
  from cks_runtime.execution.operation_executor import OperationStatus
18
- from cks_runtime.operations.operation_types import ValidateOperation
18
+ from cks_runtime.operations.operation_types import ValidateOperation, EvolveOperation
19
19
  from cks_runtime.execution.execution_context import ExecutionContext
20
20
 
21
21
 
@@ -192,6 +192,7 @@ class ExecutionPipeline:
192
192
  for op in transaction.operations:
193
193
  result = executor.execute(op, session)
194
194
  self._handle_result(result, op.operation_id, transaction)
195
+ self._apply_state_mutation(op, result, session)
195
196
 
196
197
  # 2. DispatchRequest (новый путь)
197
198
  if dispatcher is not None and transaction.requests:
@@ -205,4 +206,25 @@ class ExecutionPipeline:
205
206
  self.rollback(transaction)
206
207
  raise RuntimeError(f"Operation {operation_id} failed: {result.error}")
207
208
  if result.diagnostics:
208
- self._runtime.diagnostics.extend(result.diagnostics)
209
+ self._runtime.diagnostics.extend(result.diagnostics)
210
+
211
+ def _apply_state_mutation(self, operation, result, session) -> None:
212
+ """
213
+ Write operation results that change the canonical Knowledge
214
+ Structure back onto the owning session.
215
+
216
+ Most operations (Validate, Serialize, Explain) are read-only
217
+ with respect to session state. EvolveOperation is the
218
+ exception: it produces a *new* KnowledgeStructure via
219
+ CKS Core's Genesis/Decay operators, and that result must
220
+ become the session's tracked state before a RuntimeVersion
221
+ snapshot is taken — otherwise the committed version silently
222
+ reflects the pre-evolution structure instead of the outcome
223
+ of the transaction.
224
+ """
225
+
226
+ if (
227
+ isinstance(operation, EvolveOperation)
228
+ and result.status == OperationStatus.COMPLETED
229
+ ):
230
+ session.knowledge_structure = result.payload
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cks-runtime
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: Canonical Runtime for the Canonical Knowledge Structure ecosystem
5
5
  Author: Vladyslav Hruznov
6
6
  License: MIT
@@ -17,7 +17,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
17
  Requires-Python: >=3.12
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: cks-core>=1.2.0
20
+ Requires-Dist: cks-core>=1.2.1
21
21
  Provides-Extra: dev
22
22
  Requires-Dist: pytest>=8.0; extra == "dev"
23
23
  Requires-Dist: mypy>=1.0; extra == "dev"
@@ -29,7 +29,7 @@ Dynamic: license-file
29
29
 
30
30
  ![Python](https://img.shields.io/badge/python-3.11%2B-blue)
31
31
  ![License](https://img.shields.io/badge/license-MIT-green)
32
- ![Tests](https://img.shields.io/badge/tests-156%20passing-brightgreen)
32
+ ![Tests](https://img.shields.io/badge/tests-158%20passing-brightgreen)
33
33
  ![Status](https://img.shields.io/badge/status-beta-blue)
34
34
 
35
35
  CKS Runtime is the canonical execution environment for
@@ -1,4 +1,4 @@
1
- cks-core>=1.2.0
1
+ cks-core>=1.2.1
2
2
 
3
3
  [dev]
4
4
  pytest>=8.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cks-runtime"
7
- version = "0.4.2"
7
+ version = "0.4.4"
8
8
 
9
9
  description = "Canonical Runtime for the Canonical Knowledge Structure ecosystem"
10
10
 
@@ -19,7 +19,7 @@ license = { text = "MIT" }
19
19
  requires-python = ">=3.12"
20
20
 
21
21
  dependencies = [
22
- "cks-core>=1.2.0",
22
+ "cks-core>=1.2.1",
23
23
  ]
24
24
 
25
25
  keywords = [
File without changes
File without changes