cortex-runtime 0.2.1__tar.gz → 0.3.0__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 (96) hide show
  1. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/.gitignore +6 -0
  2. cortex_runtime-0.3.0/PKG-INFO +212 -0
  3. cortex_runtime-0.3.0/README.md +171 -0
  4. cortex_runtime-0.3.0/cortex/_research/__init__.py +8 -0
  5. cortex_runtime-0.3.0/cortex/_research/architecture_gate.py +141 -0
  6. cortex_runtime-0.3.0/cortex/_research/crash_semantics.py +388 -0
  7. cortex_runtime-0.3.0/cortex/_research/recovery.py +291 -0
  8. cortex_runtime-0.3.0/cortex/_research/timeout_cancellation.py +365 -0
  9. cortex_runtime-0.3.0/cortex/_telemetry/__init__.py +8 -0
  10. cortex_runtime-0.3.0/cortex/_telemetry/benchmark.py +327 -0
  11. cortex_runtime-0.3.0/cortex/_telemetry/collector.py +80 -0
  12. cortex_runtime-0.3.0/cortex/_telemetry/models.py +92 -0
  13. cortex_runtime-0.3.0/cortex/cbe/__init__.py +104 -0
  14. cortex_runtime-0.3.0/cortex/cbe/decoder.py +171 -0
  15. cortex_runtime-0.3.0/cortex/cbe/encoder.py +97 -0
  16. cortex_runtime-0.3.0/cortex/cbe/errors.py +68 -0
  17. cortex_runtime-0.3.0/cortex/cbe/normalization.py +46 -0
  18. cortex_runtime-0.3.0/cortex/cbe/streaming.py +234 -0
  19. cortex_runtime-0.3.0/cortex/cbe/types.py +278 -0
  20. cortex_runtime-0.3.0/cortex/cbe/vectors.py +81 -0
  21. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/client.py +10 -8
  22. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/exceptions.py +0 -1
  23. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/plugin.py +7 -1
  24. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/cli/main.py +16 -4
  25. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/cli/runner.py +6 -2
  26. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/gen_test_bin.py +11 -6
  27. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/drivers/rtl_verilator.py +2 -2
  28. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/graph/analyzer.py +2 -1
  29. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/graph/execution_graph.py +2 -0
  30. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/plugin/loader.py +3 -0
  31. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/registry.py +2 -0
  32. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/schema/contract.py +1 -0
  33. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/schema/event.py +10 -0
  34. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/services/event_store.py +1 -0
  35. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/services/execution_intelligence.py +3 -8
  36. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/services/replay.py +2 -3
  37. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/transport.py +3 -1
  38. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/adapters/coq.py +24 -23
  39. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/adapters/rtl.py +15 -22
  40. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/adapters/rust.py +24 -23
  41. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/archive.py +11 -13
  42. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/bus.py +1 -0
  43. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/contract.py +1 -1
  44. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/engine.py +11 -25
  45. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/generator/composer.py +1 -5
  46. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/generator/program.py +3 -6
  47. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/generator/state.py +10 -18
  48. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/invariants/capability.py +4 -0
  49. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/metrics/opcode.py +1 -4
  50. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/metrics/state_space.py +1 -3
  51. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/metrics/trap.py +1 -4
  52. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/mutation.py +1 -1
  53. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/oracle.py +14 -14
  54. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/schema/__init__.py +2 -0
  55. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/schema/event.py +3 -1
  56. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/shrink.py +1 -1
  57. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verify.py +1 -0
  58. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/pyproject.toml +1 -1
  59. cortex_runtime-0.2.1/PKG-INFO +0 -222
  60. cortex_runtime-0.2.1/README.md +0 -181
  61. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/LICENSE +0 -0
  62. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/NOTICE +0 -0
  63. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/__init__.py +0 -0
  64. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/__main__.py +0 -0
  65. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/compat.py +1 -1
  66. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/py.typed +0 -0
  67. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/schema/__init__.py +0 -0
  68. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/schema/events.py +0 -0
  69. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/__init__.py +0 -0
  70. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/cli/__init__.py +0 -0
  71. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/cli/scaffolder.py +0 -0
  72. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/__init__.py +0 -0
  73. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/actors/__init__.py +0 -0
  74. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/actors/executor.py +0 -0
  75. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/actors/planner.py +0 -0
  76. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/context.py +0 -0
  77. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/drivers/__init__.py +0 -0
  78. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/drivers/mock_robot.py +0 -0
  79. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/graph/__init__.py +0 -0
  80. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/mailbox.py +0 -0
  81. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/plugin/__init__.py +0 -0
  82. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/plugin/manifest.py +1 -1
  83. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/schema/__init__.py +0 -0
  84. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/schema/message.py +0 -0
  85. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/schema/workflow.py +0 -0
  86. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/services/__init__.py +0 -0
  87. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/services/graph_builder.py +0 -0
  88. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/kernel/services/verification.py +0 -0
  89. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/run_phase2_verification.sh +0 -0
  90. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/__init__.py +0 -0
  91. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/adapters/__init__.py +0 -0
  92. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/adapters/base.py +0 -0
  93. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/generator/__init__.py +0 -0
  94. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/invariants/__init__.py +0 -0
  95. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/metrics/__init__.py +0 -0
  96. {cortex_runtime-0.2.1 → cortex_runtime-0.3.0}/cortex/tools/verification/metrics/base.py +0 -0
@@ -33,3 +33,9 @@ venv/
33
33
  .idea/
34
34
  .clangd
35
35
  .ruff_cache/
36
+
37
+ # Private isolated workspace runtime and generated dirs
38
+ .runtime/
39
+ .generated/
40
+ .cache/
41
+ .artifacts/
@@ -0,0 +1,212 @@
1
+ Metadata-Version: 2.5
2
+ Name: cortex-runtime
3
+ Version: 0.3.0
4
+ Summary: Spatiotemporal authority and semantic verification framework for autonomous workflows
5
+ Project-URL: Homepage, https://github.com/Iradukunda-Fils/Cortex
6
+ Project-URL: Documentation, https://github.com/Iradukunda-Fils/Cortex#readme
7
+ Project-URL: Repository, https://github.com/Iradukunda-Fils/Cortex.git
8
+ Project-URL: Issues, https://github.com/Iradukunda-Fils/Cortex/issues
9
+ Author: Iradukunda Fils
10
+ License: Apache-2.0
11
+ License-File: LICENSE
12
+ License-File: NOTICE
13
+ Keywords: agents,architecture,capability-security,sandbox,spatiotemporal,verification,workflow
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: Apache Software License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Topic :: Security
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Classifier: Topic :: System :: Distributed Computing
27
+ Requires-Python: >=3.10
28
+ Requires-Dist: pydantic<3.0.0,>=2.0.0
29
+ Requires-Dist: pyyaml<7.0.0,>=6.0.0
30
+ Requires-Dist: typing-extensions>=4.5.0
31
+ Provides-Extra: dev
32
+ Requires-Dist: build>=1.0.0; extra == 'dev'
33
+ Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
34
+ Requires-Dist: pyright>=1.1.0; extra == 'dev'
35
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
36
+ Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
37
+ Provides-Extra: docs
38
+ Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
39
+ Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
40
+ Description-Content-Type: text/markdown
41
+
42
+ <p align="left">
43
+ <img src="docs/assets/images/cortex-logo.png" alt="Cortex Logo" width="95" align="left" style="margin-right: 18px; margin-bottom: 10px;" />
44
+ <h1 style="border: none; margin: 0; padding: 0;">Cortex Platform</h1>
45
+ <h3 style="border: none; margin: 4px 0 10px 0; font-weight: 600; font-size: 1.15em;">Spatiotemporal Authority & Semantic Verification Framework</h3>
46
+ <a href="https://pypi.org/project/cortex-runtime/"><img src="https://img.shields.io/pypi/v/cortex-runtime.svg" alt="PyPI Version"></a> <a href="https://python.org"><img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python Version"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a> <a href="https://github.com/microsoft/pyright"><img src="https://img.shields.io/badge/type--checking-pyright-brightgreen.svg" alt="Type Checked: Pyright"></a> <a href="tests/conformance/run_certification.py"><img src="https://img.shields.io/badge/Certification-136%2F136%20PASS-brightgreen.svg" alt="Certification: 136/136 PASS"></a>
47
+ </p>
48
+ <br clear="left"/>
49
+
50
+ > **Cortex** is a spatiotemporal authority and semantic verification framework designed to enforce execution integrity, capability-negotiated sandboxing, and post-facto deterministic verification across autonomous software runtimes and AI agent architectures.
51
+
52
+
53
+
54
+
55
+ ---
56
+
57
+ ## 📖 System Architecture & Design Overview
58
+
59
+ Traditional security architectures rely on static user identity roles (POSIX permissions, IAM roles, cgroups) which fail under non-deterministic AI agent workloads and dynamic plugin executions:
60
+ * **Ambient Authority Leakage**: Agents executing inside shell environments inherit full ambient process permissions, allowing unmediated filesystem or network access.
61
+ * **Subshell Script Bypasses**: Malicious or miscalibrated plugins invoke shell scripts (`.sh`), subprocesses, or eval blocks to bypass application-level checks.
62
+ * **Trace Non-Repudiation**: Without cryptographic trace verification, auditing *why* an autonomous agent performed a destructive side-effect is impossible.
63
+
64
+ Cortex replaces ambient authority with a **Hardware/Kernel-Enforced 4-Layer Security Boundary**:
65
+
66
+ ```text
67
+ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
68
+ │ 1. STATIC CAPABILITY NEGOTIATION & STCR MAPPING (Gate K / ADR-008) │
69
+ │ Manifests declare required permissions before plugins access the kernel bus. │
70
+ └──────────────────────────────────────────────┬──────────────────────────────────────────────┘
71
+ │ SignedIntent Payload (CBE Format)
72
+
73
+ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
74
+ │ 2. EXECUTION TOKEN INTENT PARITY & ACTUATION GATE (Gate H / P2) │
75
+ │ Single-use ExecutionTokens bind tokens strictly to intent hashes: D3 == D2 │
76
+ └──────────────────────────────────────────────┬──────────────────────────────────────────────┘
77
+ │ Governed Side-Effect Execution
78
+
79
+ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
80
+ │ 3. ROLLING CAUSAL WITNESS JOURNALING (Gate I / P3) │
81
+ │ Emits tamper-evident rolling hash commitments: W_{t+1} = SHA256(W_t || D_E || D_I) │
82
+ └──────────────────────────────────────────────┬──────────────────────────────────────────────┘
83
+ │ Raw Evidence Traces (R, E)
84
+
85
+ ┌───────────────────────────────────────────────────────────────────────────────────────────────┐
86
+ │ 4. ZERO-DEPENDENCY INDEPENDENT UNTRUSTED VERIFIER (Gate J / P4) │
87
+ │ Standalone CLI tools/cortex-verifier evaluates traces ➔ VALID (0), INVALID (1), INDETERMINATE │
88
+ └───────────────────────────────────────────────────────────────────────────────────────────────┘
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 🗺️ Repository Map & Documentation Architecture
94
+
95
+ For open-source contributors and systems architects, the codebase is structured logically across normative specifications, architecture records, polyglot engines, and verification suites:
96
+
97
+ ```text
98
+ Cortex Platform Architecture Map
99
+ ├── docs/ # Master Technical & Specification Portal
100
+ │ ├── architecture/ # Architectural Audits & Verification Matrices
101
+ │ │ ├── verification_closure_matrix.md # Master Phase 13 Assurance Status Matrix
102
+ │ │ ├── gate_g_complete_mediation_inventory.md # Complete Mediation Path Analysis
103
+ │ │ └── threat_model.md # Threat Vectors & Mitigation Catalog
104
+ │ ├── spec/ # Normative Protocol & Security Specifications
105
+ │ │ ├── gate_g_remediation_specification.md # Worker Sandbox & Narrow IPC Architecture
106
+ │ │ ├── gate_h_execution_token_specification.md # ExecutionToken & Intent Parity Spec (P2)
107
+ │ │ ├── gate_i_causal_witness_specification.md # Rolling Witness Chain Specification (P3)
108
+ │ │ ├── gate_j_independent_verifier_specification.md # Untrusted Verifier Engine Spec (P4)
109
+ │ │ └── v03_layer2_streaming_spec.md # Layer 2 Streaming Protocol Framing
110
+ │ └── adrs/ # Architectural Decision Records
111
+ │ └── ADR-008-identity-specification-supersession.md # Identity Supersession (UUIDv5/v7)
112
+
113
+ ├── tools/ # Standalone Tooling & Verification Engines
114
+ │ └── cortex_verifier.py # Zero-dependency Independent Verifier CLI (Gate J)
115
+
116
+ ├── tests/conformance/ # Conformance & Adversarial Certification Suite
117
+ │ ├── run_certification.py # Master 74-Check Conformance Test Runner
118
+ │ ├── test_gate_h_adversarial.py # Gate H Parity & Replay Protection Tests (21/21)
119
+ │ ├── test_gate_i_causal_witness.py # Gate I Tamper-Evident Witness Chain Tests (7/7)
120
+ │ └── test_gate_j_independent_verifier.py # Gate J Verifier Engine Adversarial Tests (12/12)
121
+
122
+ ├── cortex/ # Python Control Plane & Reference Runtime
123
+ ├── cortex-emulator/ # Rust STCR Hardware State Machine Emulator
124
+ ├── cortex-go/ # Go Layer 2 High-Concurrency Transport Adapter
125
+ └── rtl/ # SystemVerilog STCR Hardware Pipeline
126
+ ```
127
+
128
+ ---
129
+
130
+ ## 🛡️ The Safety Invariants Matrix ($P1$–$P4$)
131
+
132
+ | Security Invariant | Mathematical / Normative Definition | Status | Empirical Verification & Test Harness |
133
+ | :--- | :--- | :---: | :--- |
134
+ | **$P1$: Authority Attenuation** | $\Lambda_{t+1} \subseteq \Lambda_t \land w_1 \sqsubseteq w_2$ | **PARTIAL** | Python `PluginContext` & Rust `cortex-emulator` STCR. |
135
+ | **$P2$: Execution Parity** | $D_3 \equiv D_2 \equiv \text{SHA256}(\text{CBE}(\text{SignedIntent}))$ | **CERTIFIED** | 21/21 Gate H Scenarios PASS (`test_gate_h_adversarial.py`). |
136
+ | **$P3$: Causal Witness** | $W_{t+1} = \text{SHA256}(W_t \parallel \text{CBE}(E_{t+1}) \parallel \text{CBE}(I_{t+1}))$ | **CERTIFIED** | 7/7 Gate I Scenarios PASS (`test_gate_i_causal_witness.py`). |
137
+ | **$P4$: Independent Verifier** | $\text{Verify}(R, E) \to \{\text{VALID, INVALID, INDETERMINATE}\}$ | **CERTIFIED** | 12/12 Gate J Scenarios PASS (`tools/cortex_verifier.py`). |
138
+ | **Complete Mediation (Gate G)** | $\forall \text{eff} \in \text{Effects}, \text{eff} \text{ passes through } \text{ExecutionToken}$ | **SPECIFIED** | Sandbox & Narrow IPC Architecture (`gate_g_remediation_specification.md`). |
139
+
140
+ ---
141
+
142
+ ## ⚡ Contributor Quickstart & Test Commands
143
+
144
+ ### 1. Prerequisites & Environment Setup
145
+ Clone the repository and install dependencies via `uv` or standard Python 3.10+:
146
+
147
+ ```bash
148
+ git clone https://github.com/Iradukunda-Fils/Cortex.git
149
+ cd Cortex
150
+ uv venv && source .venv/bin/activate
151
+ uv pip install -e .
152
+ ```
153
+
154
+ ### 2. Run Static Analysis & Type Checking
155
+ Ensure 0 type errors across the codebase:
156
+ ```bash
157
+ pyright
158
+ ```
159
+
160
+ ### 3. Run Master Certification Pipeline
161
+ Execute the full 74-check conformance suite covering golden corpus vectors, Coq/Rust/RTL cycle assertions, Gate H parity, Gate I witness, and Gate J verification:
162
+ ```bash
163
+ python3 tests/conformance/run_certification.py
164
+ ```
165
+
166
+ ### 4. Run Independent Verifier Engine CLI
167
+ Verify raw untrusted evidence bundles out-of-band without importing runtime modules:
168
+ ```bash
169
+ python3 tools/cortex_verifier.py tests/conformance/fixtures/evidence_bundle_valid.json
170
+ # Output: VERDICT: VALID (0) - EVIDENCE_VERIFIED_VALID
171
+ ```
172
+
173
+ ---
174
+
175
+ ## 💻 Developer Code Example: End-to-End Governed Execution
176
+
177
+ Here is how an application mints an intent, acquires an `ExecutionToken`, and enforces $D_3 \equiv D_2$ parity:
178
+
179
+ ```python
180
+ import hashlib
181
+ from cortex.cbe import encode_cbe
182
+
183
+ # 1. Define SignedIntent
184
+ intent_payload = {
185
+ "body": {
186
+ "intent_type": "STORAGE_WRITE",
187
+ "target_resource": "/data/export.csv",
188
+ "payload": {"bytes": 1024},
189
+ "timestamp_ns": 1776274200000000000
190
+ },
191
+ "authority_pubkey": "PUBKEY_NODE_01",
192
+ "signature": "a3f890b..."
193
+ }
194
+
195
+ # 2. Mint ExecutionToken (D2 = SHA256(CBE(SignedIntent)))
196
+ signed_intent_cbe = encode_cbe(intent_payload)
197
+ intent_hash_d2 = hashlib.sha256(signed_intent_cbe).hexdigest()
198
+ token = {"intent_hash": intent_hash_d2, "epoch": 1, "nonce": "abc123nonce"}
199
+
200
+ # 3. Actuation Boundary Assertion (D3 == D2)
201
+ d3_hash = hashlib.sha256(encode_cbe(intent_payload)).hexdigest()
202
+ if d3_hash != token["intent_hash"]:
203
+ raise PermissionError(f"TRAP_INTENT_PARITY_MISMATCH: {d3_hash} != {token['intent_hash']}")
204
+
205
+ print("✅ Governed Side-Effect Actuated Successfully!")
206
+ ```
207
+
208
+ ---
209
+
210
+ ## 📄 License & Governance
211
+
212
+ Licensed under the **Apache License, Version 2.0**. See [LICENSE](LICENSE) for details.
@@ -0,0 +1,171 @@
1
+ <p align="left">
2
+ <img src="docs/assets/images/cortex-logo.png" alt="Cortex Logo" width="95" align="left" style="margin-right: 18px; margin-bottom: 10px;" />
3
+ <h1 style="border: none; margin: 0; padding: 0;">Cortex Platform</h1>
4
+ <h3 style="border: none; margin: 4px 0 10px 0; font-weight: 600; font-size: 1.15em;">Spatiotemporal Authority & Semantic Verification Framework</h3>
5
+ <a href="https://pypi.org/project/cortex-runtime/"><img src="https://img.shields.io/pypi/v/cortex-runtime.svg" alt="PyPI Version"></a> <a href="https://python.org"><img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python Version"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a> <a href="https://github.com/microsoft/pyright"><img src="https://img.shields.io/badge/type--checking-pyright-brightgreen.svg" alt="Type Checked: Pyright"></a> <a href="tests/conformance/run_certification.py"><img src="https://img.shields.io/badge/Certification-136%2F136%20PASS-brightgreen.svg" alt="Certification: 136/136 PASS"></a>
6
+ </p>
7
+ <br clear="left"/>
8
+
9
+ > **Cortex** is a spatiotemporal authority and semantic verification framework designed to enforce execution integrity, capability-negotiated sandboxing, and post-facto deterministic verification across autonomous software runtimes and AI agent architectures.
10
+
11
+
12
+
13
+
14
+ ---
15
+
16
+ ## 📖 System Architecture & Design Overview
17
+
18
+ Traditional security architectures rely on static user identity roles (POSIX permissions, IAM roles, cgroups) which fail under non-deterministic AI agent workloads and dynamic plugin executions:
19
+ * **Ambient Authority Leakage**: Agents executing inside shell environments inherit full ambient process permissions, allowing unmediated filesystem or network access.
20
+ * **Subshell Script Bypasses**: Malicious or miscalibrated plugins invoke shell scripts (`.sh`), subprocesses, or eval blocks to bypass application-level checks.
21
+ * **Trace Non-Repudiation**: Without cryptographic trace verification, auditing *why* an autonomous agent performed a destructive side-effect is impossible.
22
+
23
+ Cortex replaces ambient authority with a **Hardware/Kernel-Enforced 4-Layer Security Boundary**:
24
+
25
+ ```text
26
+ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
27
+ │ 1. STATIC CAPABILITY NEGOTIATION & STCR MAPPING (Gate K / ADR-008) │
28
+ │ Manifests declare required permissions before plugins access the kernel bus. │
29
+ └──────────────────────────────────────────────┬──────────────────────────────────────────────┘
30
+ │ SignedIntent Payload (CBE Format)
31
+
32
+ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
33
+ │ 2. EXECUTION TOKEN INTENT PARITY & ACTUATION GATE (Gate H / P2) │
34
+ │ Single-use ExecutionTokens bind tokens strictly to intent hashes: D3 == D2 │
35
+ └──────────────────────────────────────────────┬──────────────────────────────────────────────┘
36
+ │ Governed Side-Effect Execution
37
+
38
+ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
39
+ │ 3. ROLLING CAUSAL WITNESS JOURNALING (Gate I / P3) │
40
+ │ Emits tamper-evident rolling hash commitments: W_{t+1} = SHA256(W_t || D_E || D_I) │
41
+ └──────────────────────────────────────────────┬──────────────────────────────────────────────┘
42
+ │ Raw Evidence Traces (R, E)
43
+
44
+ ┌───────────────────────────────────────────────────────────────────────────────────────────────┐
45
+ │ 4. ZERO-DEPENDENCY INDEPENDENT UNTRUSTED VERIFIER (Gate J / P4) │
46
+ │ Standalone CLI tools/cortex-verifier evaluates traces ➔ VALID (0), INVALID (1), INDETERMINATE │
47
+ └───────────────────────────────────────────────────────────────────────────────────────────────┘
48
+ ```
49
+
50
+ ---
51
+
52
+ ## 🗺️ Repository Map & Documentation Architecture
53
+
54
+ For open-source contributors and systems architects, the codebase is structured logically across normative specifications, architecture records, polyglot engines, and verification suites:
55
+
56
+ ```text
57
+ Cortex Platform Architecture Map
58
+ ├── docs/ # Master Technical & Specification Portal
59
+ │ ├── architecture/ # Architectural Audits & Verification Matrices
60
+ │ │ ├── verification_closure_matrix.md # Master Phase 13 Assurance Status Matrix
61
+ │ │ ├── gate_g_complete_mediation_inventory.md # Complete Mediation Path Analysis
62
+ │ │ └── threat_model.md # Threat Vectors & Mitigation Catalog
63
+ │ ├── spec/ # Normative Protocol & Security Specifications
64
+ │ │ ├── gate_g_remediation_specification.md # Worker Sandbox & Narrow IPC Architecture
65
+ │ │ ├── gate_h_execution_token_specification.md # ExecutionToken & Intent Parity Spec (P2)
66
+ │ │ ├── gate_i_causal_witness_specification.md # Rolling Witness Chain Specification (P3)
67
+ │ │ ├── gate_j_independent_verifier_specification.md # Untrusted Verifier Engine Spec (P4)
68
+ │ │ └── v03_layer2_streaming_spec.md # Layer 2 Streaming Protocol Framing
69
+ │ └── adrs/ # Architectural Decision Records
70
+ │ └── ADR-008-identity-specification-supersession.md # Identity Supersession (UUIDv5/v7)
71
+
72
+ ├── tools/ # Standalone Tooling & Verification Engines
73
+ │ └── cortex_verifier.py # Zero-dependency Independent Verifier CLI (Gate J)
74
+
75
+ ├── tests/conformance/ # Conformance & Adversarial Certification Suite
76
+ │ ├── run_certification.py # Master 74-Check Conformance Test Runner
77
+ │ ├── test_gate_h_adversarial.py # Gate H Parity & Replay Protection Tests (21/21)
78
+ │ ├── test_gate_i_causal_witness.py # Gate I Tamper-Evident Witness Chain Tests (7/7)
79
+ │ └── test_gate_j_independent_verifier.py # Gate J Verifier Engine Adversarial Tests (12/12)
80
+
81
+ ├── cortex/ # Python Control Plane & Reference Runtime
82
+ ├── cortex-emulator/ # Rust STCR Hardware State Machine Emulator
83
+ ├── cortex-go/ # Go Layer 2 High-Concurrency Transport Adapter
84
+ └── rtl/ # SystemVerilog STCR Hardware Pipeline
85
+ ```
86
+
87
+ ---
88
+
89
+ ## 🛡️ The Safety Invariants Matrix ($P1$–$P4$)
90
+
91
+ | Security Invariant | Mathematical / Normative Definition | Status | Empirical Verification & Test Harness |
92
+ | :--- | :--- | :---: | :--- |
93
+ | **$P1$: Authority Attenuation** | $\Lambda_{t+1} \subseteq \Lambda_t \land w_1 \sqsubseteq w_2$ | **PARTIAL** | Python `PluginContext` & Rust `cortex-emulator` STCR. |
94
+ | **$P2$: Execution Parity** | $D_3 \equiv D_2 \equiv \text{SHA256}(\text{CBE}(\text{SignedIntent}))$ | **CERTIFIED** | 21/21 Gate H Scenarios PASS (`test_gate_h_adversarial.py`). |
95
+ | **$P3$: Causal Witness** | $W_{t+1} = \text{SHA256}(W_t \parallel \text{CBE}(E_{t+1}) \parallel \text{CBE}(I_{t+1}))$ | **CERTIFIED** | 7/7 Gate I Scenarios PASS (`test_gate_i_causal_witness.py`). |
96
+ | **$P4$: Independent Verifier** | $\text{Verify}(R, E) \to \{\text{VALID, INVALID, INDETERMINATE}\}$ | **CERTIFIED** | 12/12 Gate J Scenarios PASS (`tools/cortex_verifier.py`). |
97
+ | **Complete Mediation (Gate G)** | $\forall \text{eff} \in \text{Effects}, \text{eff} \text{ passes through } \text{ExecutionToken}$ | **SPECIFIED** | Sandbox & Narrow IPC Architecture (`gate_g_remediation_specification.md`). |
98
+
99
+ ---
100
+
101
+ ## ⚡ Contributor Quickstart & Test Commands
102
+
103
+ ### 1. Prerequisites & Environment Setup
104
+ Clone the repository and install dependencies via `uv` or standard Python 3.10+:
105
+
106
+ ```bash
107
+ git clone https://github.com/Iradukunda-Fils/Cortex.git
108
+ cd Cortex
109
+ uv venv && source .venv/bin/activate
110
+ uv pip install -e .
111
+ ```
112
+
113
+ ### 2. Run Static Analysis & Type Checking
114
+ Ensure 0 type errors across the codebase:
115
+ ```bash
116
+ pyright
117
+ ```
118
+
119
+ ### 3. Run Master Certification Pipeline
120
+ Execute the full 74-check conformance suite covering golden corpus vectors, Coq/Rust/RTL cycle assertions, Gate H parity, Gate I witness, and Gate J verification:
121
+ ```bash
122
+ python3 tests/conformance/run_certification.py
123
+ ```
124
+
125
+ ### 4. Run Independent Verifier Engine CLI
126
+ Verify raw untrusted evidence bundles out-of-band without importing runtime modules:
127
+ ```bash
128
+ python3 tools/cortex_verifier.py tests/conformance/fixtures/evidence_bundle_valid.json
129
+ # Output: VERDICT: VALID (0) - EVIDENCE_VERIFIED_VALID
130
+ ```
131
+
132
+ ---
133
+
134
+ ## 💻 Developer Code Example: End-to-End Governed Execution
135
+
136
+ Here is how an application mints an intent, acquires an `ExecutionToken`, and enforces $D_3 \equiv D_2$ parity:
137
+
138
+ ```python
139
+ import hashlib
140
+ from cortex.cbe import encode_cbe
141
+
142
+ # 1. Define SignedIntent
143
+ intent_payload = {
144
+ "body": {
145
+ "intent_type": "STORAGE_WRITE",
146
+ "target_resource": "/data/export.csv",
147
+ "payload": {"bytes": 1024},
148
+ "timestamp_ns": 1776274200000000000
149
+ },
150
+ "authority_pubkey": "PUBKEY_NODE_01",
151
+ "signature": "a3f890b..."
152
+ }
153
+
154
+ # 2. Mint ExecutionToken (D2 = SHA256(CBE(SignedIntent)))
155
+ signed_intent_cbe = encode_cbe(intent_payload)
156
+ intent_hash_d2 = hashlib.sha256(signed_intent_cbe).hexdigest()
157
+ token = {"intent_hash": intent_hash_d2, "epoch": 1, "nonce": "abc123nonce"}
158
+
159
+ # 3. Actuation Boundary Assertion (D3 == D2)
160
+ d3_hash = hashlib.sha256(encode_cbe(intent_payload)).hexdigest()
161
+ if d3_hash != token["intent_hash"]:
162
+ raise PermissionError(f"TRAP_INTENT_PARITY_MISMATCH: {d3_hash} != {token['intent_hash']}")
163
+
164
+ print("✅ Governed Side-Effect Actuated Successfully!")
165
+ ```
166
+
167
+ ---
168
+
169
+ ## 📄 License & Governance
170
+
171
+ Licensed under the **Apache License, Version 2.0**. See [LICENSE](LICENSE) for details.
@@ -0,0 +1,8 @@
1
+ """
2
+ Cortex Internal Research Package (_research)
3
+
4
+ Private internal research modules for empirical fault boundary research.
5
+ Strictly non-public: NOT exported in cortex.__all__.
6
+ """
7
+
8
+ __all__: list[str] = []
@@ -0,0 +1,141 @@
1
+ """
2
+ Architecture Research Gate & Synthesis Module (Post Issue #12)
3
+
4
+ Synthesizes empirical findings from Issues #10, #11, and #12 to evaluate:
5
+ 1. State recovery & EventStore guarantees
6
+ 2. Side-effect semantics & IN_DOUBT state contracts
7
+ 3. Recovery contract specification
8
+ 4. Comparative topology analysis (Tiered Hybrid Isolation vs Process-per-Plugin)
9
+ """
10
+
11
+ import json
12
+ import os
13
+ import platform
14
+ import sys
15
+ import time
16
+ from typing import Any
17
+
18
+
19
+ def generate_architecture_gate_synthesis() -> dict[str, Any]:
20
+ """Generates the structured Architecture Gate research synthesis data."""
21
+ env_metadata = {
22
+ "python_version": sys.version.split()[0],
23
+ "os": platform.system(),
24
+ "arch": platform.machine(),
25
+ }
26
+
27
+ empirical_evidence = {
28
+ "issue_10_telemetry": {
29
+ "baseline_p50_ms": 0.2265,
30
+ "multistage_p50_ms": 0.5014,
31
+ "tail_p99_ms": 4.0892,
32
+ "event_propagation_scaling": "Observed approximately linear growth over tested workload range",
33
+ "public_api_symbols": 21,
34
+ },
35
+ "issue_11_crash_semantics": {
36
+ "ordinary_python_exception_trapped": True,
37
+ "cortex_error_classification_preserved": True,
38
+ "capability_rejection_security_intact": True,
39
+ "chained_execution_prior_events_preserved": True,
40
+ "subsequent_workflow_isolated": True,
41
+ "single_process_limit": "Low-level process crashes (SIGSEGV, sys.exit) escape single-process boundary",
42
+ },
43
+ "issue_12_timeout_cancellation": {
44
+ "pre_execution_cancellation_clean": True,
45
+ "mid_workflow_cooperative_halt": True,
46
+ "event_journal_lineage_post_cancellation_intact": True,
47
+ "subsequent_workflow_healthy": True,
48
+ "deterministic_cancellation": True,
49
+ "single_process_limitation": "Non-cooperative thread blocking (time.sleep, GIL loops) stalls main event thread",
50
+ },
51
+ }
52
+
53
+ five_architectural_questions = {
54
+ "q1_recovery_targets": {
55
+ "authoritative_source": "EventStore append-only journal log",
56
+ "volatile_components": ["In-memory event queues", "Active plugin handler frames", "Transient client state"],
57
+ "persistent_components": ["EventStore journal log", "Workflow dataclass state", "PluginManifest records"],
58
+ "state_reconstruction_method": "Replaying event journal from t=0 to crash point t_crash",
59
+ },
60
+ "q2_eventstore_guarantees": {
61
+ "persistence_model": "Synchronous append upon context.publish()",
62
+ "lineage_integrity": "Strict DAG ordering via event_id -> causation_id -> correlation_id",
63
+ "replay_determinism": "Replaying log against clean client reproduces identical state machine sequence",
64
+ "crash_point_semantics": {
65
+ "pre_side_effect_crash": "Operation unexecuted; safe to re-run on restart",
66
+ "mid_side_effect_crash": "Operation partially performed; event missing -> requires IN_DOUBT state",
67
+ "post_side_effect_crash": "Operation complete; event committed -> safe replay",
68
+ },
69
+ },
70
+ "q3_side_effect_semantics": {
71
+ "unconfirmed_side_effect_problem": "Runtime crashes after external side effect but before completion event is persisted",
72
+ "chosen_contract_option": "Option B (IN_DOUBT state) + Option C (Required Idempotency Keys)",
73
+ "rationale": "Prevents catastrophic double-execution of non-idempotent external operations while giving operators explicit CLI resolution tools.",
74
+ },
75
+ "q4_recovery_contract_spec": {
76
+ "event_delivery": "At-least-once with deduplication by event_id",
77
+ "plugin_execution": "At-most-once per event emission",
78
+ "workflow_recovery": "Deterministic EventStore journal replay",
79
+ "side_effects": "Idempotency keys required for side-effect capabilities",
80
+ "crash_point": "Arbitrary instruction / signal boundary",
81
+ "state_reconstruction": "Pure function of EventStore log: S_t = f(S_0, E_1, ..., E_t)",
82
+ "unknown_operation": "Explicit IN_DOUBT workflow state",
83
+ "cancellation": "Cooperative (in-process) / Forced (SIGKILL worker process)",
84
+ "recovery_control": "Automatic for deterministic events; Operator-assisted for IN_DOUBT operations",
85
+ },
86
+ "q5_architectural_topology_comparison": {
87
+ "topologies_evaluated": [
88
+ {
89
+ "name": "Topology 1: Process-per-Plugin",
90
+ "pros": "Maximum isolation; crashed plugin cannot kill host or peer plugins",
91
+ "cons": "High process creation & IPC latency overhead",
92
+ "cortex_fit": "Suitable for untrusted / high-risk plugins only",
93
+ },
94
+ {
95
+ "name": "Topology 2: Shared Worker Pool",
96
+ "pros": "Lower process overhead than 1:1",
97
+ "cons": "Crash in worker process affects all plugins assigned to worker",
98
+ "cortex_fit": "Suitable for medium-risk plugin groups",
99
+ },
100
+ {
101
+ "name": "Topology 3: Tiered / Hybrid Isolation (RECOMMENDED)",
102
+ "pros": "Sub-millisecond performance (P50 = 0.226ms) for trusted plugins in-process; SIGKILL preemption and fault containment for untrusted / heavy plugins in worker processes",
103
+ "cons": "Requires trust/isolation metadata in capability manifests",
104
+ "cortex_fit": "PERFECT FIT with Cortex capability security model",
105
+ },
106
+ ],
107
+ "recommended_architecture": "Topology 3: Tiered Hybrid Isolation Model",
108
+ },
109
+ }
110
+
111
+ readiness_decision = {
112
+ "architecture_gate_passed": True,
113
+ "recommendation": "Proceed to Issue #13 (Runtime Restart & Workflow Recovery Semantics) with IN_DOUBT state contracts and Tiered Hybrid Architecture principles established.",
114
+ "issue_13_authorized": True,
115
+ }
116
+
117
+ return {
118
+ "timestamp_utc": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
119
+ "environment": env_metadata,
120
+ "empirical_evidence": empirical_evidence,
121
+ "synthesis": five_architectural_questions,
122
+ "gate_decision": readiness_decision,
123
+ }
124
+
125
+
126
+ def generate_architecture_gate_artifacts(json_output_path: str) -> dict[str, Any]:
127
+ """Generates and writes research/synthesis/architecture_gate_synthesis.json."""
128
+ data = generate_architecture_gate_synthesis()
129
+ os.makedirs(os.path.dirname(os.path.abspath(json_output_path)), exist_ok=True)
130
+ with open(json_output_path, "w", encoding="utf-8") as f:
131
+ json.dump(data, f, indent=2)
132
+ return data
133
+
134
+
135
+ if __name__ == "__main__":
136
+ report_file = os.path.join("research", "synthesis", "architecture_gate_synthesis.json")
137
+ res = generate_architecture_gate_artifacts(report_file)
138
+ print(f"Architecture Gate Decision: Passed={res['gate_decision']['architecture_gate_passed']}")
139
+ print(
140
+ f"Recommended v0.3 Topology: {res['synthesis']['q5_architectural_topology_comparison']['recommended_architecture']}"
141
+ )