Skip to content

Commit 194b3ab

Browse files
committed
Harden local-machine open task gates
1 parent c96bf2c commit 194b3ab

59 files changed

Lines changed: 9560 additions & 152 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎PACKAGE_MANIFEST.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Included:
1010
- `planner/`
1111
- `decision/`
1212
- `modules/`
13+
- `modules/control_plane/`
1314
- `evolution/`
1415
- `self_model/`
1516
- `integrations/arc_agi3/`
@@ -22,6 +23,7 @@ Included:
2223
- `scripts/run_local_machine.py`
2324
- `scripts/run_webarena.py`
2425
- `scripts/eval_metrics_panel.py`
26+
- `scripts/cognitive_loop_ablation.py`
2527
- `scripts/check_conos_repo_layout.py`
2628
- `scripts/check_runtime_preflight.py`
2729
- `tests/test_public_repo_smoke.py`
@@ -54,6 +56,24 @@ The runtime marks execution isolation as best-effort. Execution tickets carry a
5456
credential/secret-lease signals, but this package does not claim OS-level
5557
filesystem or network sandboxing.
5658

59+
Action authority note:
60+
61+
Action governance lives in `modules/control_plane/action_governance.py`.
62+
Tool calls are not automatically trusted: mirror writes require evidence refs,
63+
code source sync requires passing validation, source sync requires an approved
64+
plan, and repeated action failures can downgrade an agent's write/exec
65+
authority.
66+
67+
Failure learning note:
68+
69+
Failure learning lives in `core/runtime/failure_learning.py` and the
70+
`failure_learning_objects` SQLite table. Failed runs can now persist a formal
71+
failure mode, violated assumption, evidence refs, missing tool or bad policy,
72+
suggested regression test, suggested governance rule, and a future retrieval
73+
object. The local-machine runner keeps these objects in the object layer and
74+
exposes them as JSON, rather than expanding raw failure records into prompt
75+
text.
76+
5777
Minimal setup:
5878

5979
```bash
@@ -80,10 +100,12 @@ conos mirror exec --mirror-root runtime/mirrors/session-1 --backend docker --all
80100
conos mirror plan --mirror-root runtime/mirrors/session-1
81101
conos mirror apply --mirror-root runtime/mirrors/session-1 --plan-id <plan_id> --approved-by machine
82102
conos mirror rollback --mirror-root runtime/mirrors/session-1 --plan-id <plan_id>
103+
conos llm control-plane --route structured_answer --required-capability structured_output --permission generate_text
83104
conos ui runtime reports audit
84105
conos eval runtime reports audit
85106
conos dashboard runtime reports audit
86107
python scripts/build_macos_app.py --output-dir dist
108+
python scripts/cognitive_loop_ablation.py --task-count 25 --seed 17
87109
python scripts/local_mirror.py init --mirror-root runtime/mirrors/session-1
88110
python scripts/run_arc_agi3.py
89111
python scripts/run_local_machine.py --instruction "inspect README" --candidate README.md

‎README.md‎

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,54 @@ conos ui runtime reports audit
5454
conos ui runtime reports audit --output runtime/ui/dashboard.html
5555
conos eval runtime reports audit --output runtime/evals/eval_metrics_panel.json
5656
conos dashboard runtime reports audit
57+
conos llm control-plane --route structured_answer --required-capability structured_output --permission generate_text
5758
conos preflight --strict-dev
5859
conos layout
5960
```
6061

62+
## Model-agnostic agent control plane
63+
64+
Con OS treats models and agents as governed execution resources, not as one
65+
hard-coded coding assistant. Profile-backed LLM route policies can be combined
66+
with a generic agent registry for coding agents, browsers, CI runners, VM
67+
backends, or other tool executors:
68+
69+
```bash
70+
conos llm profile \
71+
--base-url http://127.0.0.1:11434 \
72+
--route-policy-output runtime/models/llm_route_policies.json
73+
conos llm control-plane \
74+
--route-policy-file runtime/models/llm_route_policies.json \
75+
--agent-registry runtime/models/agent_registry.json \
76+
--task-type code_review \
77+
--route coding \
78+
--required-capability coding \
79+
--permission propose_patch \
80+
--risk-level medium
81+
```
82+
83+
The control decision records selected agent id, capability match, permission
84+
gate, approval-required permissions, blocked candidates, and an audit event id.
85+
86+
## Action capability governance
87+
88+
Con OS separates tool availability from action authority. `modules/control_plane/action_governance.py`
89+
checks whether the selected agent may read, propose a patch, write the mirror,
90+
run validation, or sync back to source. The local-machine adapter now enforces
91+
that mirror writes have evidence references first, code syncs have passing
92+
validation first, source syncs carry an approved plan, and repeatedly failing
93+
agents are downgraded away from write/exec authority.
94+
95+
## Failure learning ledger
96+
97+
Failures are stored as structured runtime objects, not chat memory. `core/runtime/failure_learning.py`
98+
normalizes failed actions into failure mode, violated assumption, evidence refs,
99+
missing tool or bad policy, suggested regression test, suggested governance
100+
rule, and a future retrieval object. These objects are persisted in SQLite by
101+
`RuntimeStateStore` and are injected into later unified context as object-layer
102+
evidence; the local-machine runner exposes them as JSON artifacts instead of
103+
dumping raw failure objects into the prompt.
104+
61105
## Desktop app
62106

63107
The local desktop app is the non-terminal product shell for this alpha. It
@@ -166,6 +210,25 @@ The panel reports:
166210
- `recovery_rate`: recovery-attempted runs that resolved or later succeeded.
167211
- `verifier_coverage`: success, completion, or verification-required runs covered by verifier authority or verifier-result evidence.
168212

213+
## Cognitive loop anti-cheat benchmark
214+
215+
The controlled cognitive-loop benchmark is a negative-control suite, not a
216+
success demo. It compares the full loop against component ablations and
217+
anti-cheat controls:
218+
219+
```bash
220+
python scripts/cognitive_loop_ablation.py --task-count 25 --seed 17
221+
```
222+
223+
Core controls include `NoPosteriorUpdate`, `NoDiscriminatingExperiment`,
224+
`NoHypothesisCompetition`, `NoSemanticStrictness`, `RandomProbe`, and
225+
`BaselineLLM`. Anti-cheat controls include `NoMemory`, `NoEvidence`, `NoStep9`,
226+
`NoStep10`, `ShuffledEvidence`, `WrongBinding`, and `FreshBaseline`.
227+
228+
The report fails unless `Full` clears the hard thresholds for success margin,
229+
wrong commits, false rejections, posterior accuracy, semantic mismatch, evidence
230+
binding integrity, and formal commit completeness.
231+
169232
## What this repo contains
170233

171234
### Stable-enough public surface

0 commit comments

Comments
 (0)