cks-runtime 0.4.3__tar.gz → 0.4.5__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.
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/PKG-INFO +3 -3
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/README.md +1 -1
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/config.py +1 -1
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/operations/operation_types.py +7 -3
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/pipeline/execution_pipeline.py +24 -2
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime.egg-info/PKG-INFO +3 -3
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime.egg-info/requires.txt +1 -1
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime_plugins/cks_core/adapter.py +38 -1
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/pyproject.toml +2 -2
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/LICENSE +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/mcp/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/mcp/adapter.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/mcp/contracts.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/mcp/errors.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/mcp/handlers.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/mcp/serializers.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/adapters/mcp/tool_registry.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/core_api/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/core_api/bridge.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/core_api/interfaces.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/core_api/validation_result.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/diagnostics/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/diagnostics/aggregator.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/diagnostics/diagnostic.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/dispatcher/dispatcher.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/events/event_bus.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/events/runtime_event.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/execution/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/execution/execution_context.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/execution/operation_executor.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/explainability/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/explainability/explainability_manager.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/operations/operation_registry.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/pipeline/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/runtime.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/session/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/session/session.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/session/session_manager.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/storage/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/storage/memory_storage.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/storage/storage.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/transaction/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/transaction/transaction.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/transaction/transaction_manager.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/versioning/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/versioning/version.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/versioning/version_manager.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime.egg-info/SOURCES.txt +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime.egg-info/dependency_links.txt +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime.egg-info/top_level.txt +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime_plugins/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime_plugins/cks_core/__init__.py +0 -0
- {cks_runtime-0.4.3 → cks_runtime-0.4.5}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cks-runtime
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
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.
|
|
20
|
+
Requires-Dist: cks-core>=1.3.0
|
|
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
|

|
|
31
31
|

|
|
32
|
-

|
|
33
33
|

|
|
34
34
|
|
|
35
35
|
CKS Runtime is the canonical execution environment for
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|

|
|
7
|
-

|
|
8
8
|

|
|
9
9
|
|
|
10
10
|
CKS Runtime is the canonical execution environment for
|
|
@@ -32,13 +32,17 @@ class ValidateOperation(Operation):
|
|
|
32
32
|
executor,
|
|
33
33
|
) -> ExecutionResult:
|
|
34
34
|
result = executor.core.validate(self.knowledge_structure)
|
|
35
|
-
|
|
35
|
+
# Determining that a Knowledge Structure is invalid is a
|
|
36
|
+
# successful outcome of *running* validation, not an
|
|
37
|
+
# operation failure -- it must be reported as diagnostics,
|
|
38
|
+
# never as a raised exception. Only unexpected execution
|
|
39
|
+
# errors (caught by OperationExecutor) are OperationStatus.FAILED.
|
|
36
40
|
return ExecutionResult(
|
|
37
41
|
operation_id=self.operation_id,
|
|
38
|
-
status=OperationStatus.COMPLETED
|
|
42
|
+
status=OperationStatus.COMPLETED,
|
|
39
43
|
payload=result,
|
|
40
44
|
diagnostics=result.diagnostics,
|
|
41
|
-
error=
|
|
45
|
+
error=None,
|
|
42
46
|
)
|
|
43
47
|
|
|
44
48
|
|
|
@@ -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.
|
|
3
|
+
Version: 0.4.5
|
|
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.
|
|
20
|
+
Requires-Dist: cks-core>=1.3.0
|
|
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
|

|
|
31
31
|

|
|
32
|
-

|
|
33
33
|

|
|
34
34
|
|
|
35
35
|
CKS Runtime is the canonical execution environment for
|
|
@@ -13,6 +13,7 @@ from __future__ import annotations
|
|
|
13
13
|
from typing import Any
|
|
14
14
|
|
|
15
15
|
import cks
|
|
16
|
+
from cks.diagnostics import DiagnosticSeverity as CoreSeverity
|
|
16
17
|
from cks.evolution import compose
|
|
17
18
|
from cks.interface import inspect as cks_inspect
|
|
18
19
|
|
|
@@ -20,6 +21,42 @@ from cks_runtime.core_api.interfaces import CoreInterface
|
|
|
20
21
|
from cks_runtime.core_api.validation_result import (
|
|
21
22
|
RuntimeValidationResult,
|
|
22
23
|
)
|
|
24
|
+
from cks_runtime.diagnostics.diagnostic import (
|
|
25
|
+
Diagnostic as RuntimeDiagnostic,
|
|
26
|
+
DiagnosticSeverity as RuntimeSeverity,
|
|
27
|
+
DiagnosticSource,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
_SEVERITY_MAP = {
|
|
31
|
+
CoreSeverity.INFORMATION: RuntimeSeverity.INFO,
|
|
32
|
+
CoreSeverity.WARNING: RuntimeSeverity.WARNING,
|
|
33
|
+
CoreSeverity.ERROR: RuntimeSeverity.ERROR,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _translate_diagnostic(diagnostic: Any) -> RuntimeDiagnostic:
|
|
38
|
+
"""
|
|
39
|
+
Translate a cks-core Diagnostic into a Runtime-native Diagnostic.
|
|
40
|
+
|
|
41
|
+
cks-core diagnostics freeze ``metadata`` into a MappingProxyType,
|
|
42
|
+
which the stdlib ``copy`` module cannot deepcopy. Runtime persists
|
|
43
|
+
Diagnostics via deepcopy (see InMemoryStorage), so foreign
|
|
44
|
+
cks-core Diagnostic instances must never be stored as-is -- they
|
|
45
|
+
are always translated into the Runtime's own, deepcopy-safe
|
|
46
|
+
Diagnostic type at this boundary.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
metadata = dict(diagnostic.metadata)
|
|
50
|
+
if diagnostic.location is not None:
|
|
51
|
+
metadata.setdefault("location", diagnostic.location)
|
|
52
|
+
|
|
53
|
+
return RuntimeDiagnostic(
|
|
54
|
+
message=diagnostic.message,
|
|
55
|
+
source=DiagnosticSource.CORE,
|
|
56
|
+
severity=_SEVERITY_MAP[diagnostic.severity],
|
|
57
|
+
code=diagnostic.identity,
|
|
58
|
+
metadata=metadata,
|
|
59
|
+
)
|
|
23
60
|
|
|
24
61
|
|
|
25
62
|
class CksCoreAdapter(CoreInterface):
|
|
@@ -46,7 +83,7 @@ class CksCoreAdapter(CoreInterface):
|
|
|
46
83
|
return RuntimeValidationResult(
|
|
47
84
|
valid=result.is_valid,
|
|
48
85
|
diagnostics=tuple(
|
|
49
|
-
result.diagnostics
|
|
86
|
+
_translate_diagnostic(d) for d in result.diagnostics
|
|
50
87
|
),
|
|
51
88
|
metadata=dict(
|
|
52
89
|
result.metadata,
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cks-runtime"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.5"
|
|
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.
|
|
22
|
+
"cks-core>=1.3.0",
|
|
23
23
|
]
|
|
24
24
|
|
|
25
25
|
keywords = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cks_runtime-0.4.3 → cks_runtime-0.4.5}/cks_runtime/explainability/explainability_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|