eawf 0.6.8__tar.gz → 0.7.0.dev1__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.
- eawf-0.7.0.dev1/.ea/artifacts/audits/2026-09-07-A-P31-backlog-reconciliation.md +57 -0
- eawf-0.7.0.dev1/.ea/artifacts/audits/2026-09-07-A-P31-closeout.md +47 -0
- eawf-0.7.0.dev1/.ea/artifacts/research/2026-09-03-v07-finalization-brief.md +128 -0
- eawf-0.7.0.dev1/.ea/artifacts/research/2026-09-04-dev1-config-defaults-benchmark.md +86 -0
- eawf-0.7.0.dev1/.ea/artifacts/research/2026-09-04-dev1-turn-cost-baseline.md +175 -0
- eawf-0.7.0.dev1/.ea/artifacts/research/2026-09-04-epoch2-state-tree-shape.md +105 -0
- eawf-0.7.0.dev1/.ea/state.json +172818 -0
- eawf-0.7.0.dev1/.ea/store/audit.jsonl +105 -0
- eawf-0.7.0.dev1/.ea/store/auditor_report.jsonl +24 -0
- eawf-0.7.0.dev1/.ea/store/decision.jsonl +81 -0
- eawf-0.7.0.dev1/.ea/store/evidence.jsonl +734 -0
- eawf-0.7.0.dev1/.ea/store/executor_report.jsonl +2 -0
- eawf-0.7.0.dev1/.ea/store/gate_receipt.jsonl +32 -0
- eawf-0.7.0.dev1/.ea/store/incident.jsonl +35 -0
- eawf-0.7.0.dev1/.github/workflows/ci.yaml +373 -0
- eawf-0.7.0.dev1/.github/workflows/phase-release.yaml +136 -0
- eawf-0.7.0.dev1/.github/workflows/plugin-release.yaml +706 -0
- eawf-0.7.0.dev1/.github/workflows/release.yaml +381 -0
- eawf-0.7.0.dev1/.pre-commit-config.yaml +387 -0
- eawf-0.7.0.dev1/.vale/styles/config/vocabularies/eawf/accept.txt +156 -0
- eawf-0.7.0.dev1/.vale.ini +70 -0
- eawf-0.7.0.dev1/AGENTS.md +341 -0
- eawf-0.7.0.dev1/CHANGELOG.md +312 -0
- eawf-0.7.0.dev1/PKG-INFO +120 -0
- eawf-0.7.0.dev1/README.md +78 -0
- eawf-0.7.0.dev1/docs/README.md +40 -0
- eawf-0.7.0.dev1/docs/reference/autogen/cli.md +678 -0
- eawf-0.7.0.dev1/docs/reference/autogen/enums.md +65 -0
- eawf-0.7.0.dev1/docs/reference/autogen/error-codes.md +39 -0
- eawf-0.7.0.dev1/docs/reference/autogen/exit-codes.md +12 -0
- eawf-0.7.0.dev1/docs/reference/autogen/index.md +10 -0
- eawf-0.7.0.dev1/docs/reference/autogen/schema.md +71 -0
- eawf-0.7.0.dev1/docs/reference/autogen/skills.md +33 -0
- eawf-0.7.0.dev1/docs/reference/autogen/state.schema.json +5404 -0
- eawf-0.7.0.dev1/docs/rules/comment-economy.md +27 -0
- eawf-0.7.0.dev1/docs/rules/commit-granularity.md +27 -0
- eawf-0.7.0.dev1/docs/rules/commit-prefix.md +35 -0
- eawf-0.7.0.dev1/docs/tutorial/first-workflow.md +93 -0
- eawf-0.7.0.dev1/docs/tutorial/install.md +81 -0
- eawf-0.7.0.dev1/docs/tutorial/quickstart.md +56 -0
- eawf-0.7.0.dev1/justfile +100 -0
- eawf-0.7.0.dev1/mkdocs.yml +104 -0
- eawf-0.7.0.dev1/pyproject.toml +653 -0
- eawf-0.7.0.dev1/src/eawf/_version.py +22 -0
- eawf-0.7.0.dev1/src/eawf/kernel/config/defaults.py +464 -0
- eawf-0.7.0.dev1/src/eawf/kernel/config/layered.py +672 -0
- eawf-0.7.0.dev1/src/eawf/kernel/config/registry/config_keys.py +715 -0
- eawf-0.7.0.dev1/src/eawf/kernel/config/registry/leaf_catalog.py +1775 -0
- eawf-0.7.0.dev1/src/eawf/kernel/config/schema.py +426 -0
- eawf-0.7.0.dev1/src/eawf/kernel/release/__init__.py +15 -0
- eawf-0.7.0.dev1/src/eawf/kernel/release/gate_binding.py +602 -0
- eawf-0.7.0.dev1/src/eawf/kernel/release/signals.py +234 -0
- eawf-0.7.0.dev1/src/eawf/kernel/release/waiver.py +124 -0
- eawf-0.7.0.dev1/src/eawf/kernel/spec/common.py +1250 -0
- eawf-0.7.0.dev1/src/eawf/kernel/spec/measured_contract.py +264 -0
- eawf-0.7.0.dev1/src/eawf/kernel/spec/promotion.py +167 -0
- eawf-0.7.0.dev1/src/eawf/kernel/spec/publication.py +450 -0
- eawf-0.7.0.dev1/src/eawf/kernel/spec/release.py +697 -0
- eawf-0.7.0.dev1/src/eawf/kernel/spec/release_config.py +581 -0
- eawf-0.7.0.dev1/src/eawf/kernel/spec/writer.py +290 -0
- eawf-0.7.0.dev1/src/eawf/kernel/state/enums.py +769 -0
- eawf-0.7.0.dev1/src/eawf/kernel/state/models.py +2194 -0
- eawf-0.7.0.dev1/src/eawf/kernel/store/kinds/__init__.py +65 -0
- eawf-0.7.0.dev1/src/eawf/observability/bench/__init__.py +91 -0
- eawf-0.7.0.dev1/src/eawf/observability/bench/turn_cost.py +613 -0
- eawf-0.7.0.dev1/src/eawf/observability/doctor/checks.py +1400 -0
- eawf-0.7.0.dev1/src/eawf/observability/telemetry/aggregator.py +425 -0
- eawf-0.7.0.dev1/src/eawf/observability/telemetry/cost_class.py +86 -0
- eawf-0.7.0.dev1/src/eawf/observability/telemetry/exporter.py +478 -0
- eawf-0.7.0.dev1/src/eawf/observability/telemetry/metrics_projection.py +562 -0
- eawf-0.7.0.dev1/src/eawf/observability/telemetry/sources/codex_session.py +242 -0
- eawf-0.7.0.dev1/src/eawf/observability/telemetry/turn_cost.py +353 -0
- eawf-0.7.0.dev1/src/eawf/platform/artifacts/__init__.py +41 -0
- eawf-0.7.0.dev1/src/eawf/platform/artifacts/config_defaults_benchmark.py +382 -0
- eawf-0.7.0.dev1/src/eawf/platform/docs/autogen.py +570 -0
- eawf-0.7.0.dev1/src/eawf/platform/install/dist_tag.py +137 -0
- eawf-0.7.0.dev1/src/eawf/platform/lint/__init__.py +178 -0
- eawf-0.7.0.dev1/src/eawf/platform/lint/eawf025_test_placement.py +201 -0
- eawf-0.7.0.dev1/src/eawf/platform/lint/exclusion_expiry.py +361 -0
- eawf-0.7.0.dev1/src/eawf/platform/lint/kind_taxonomy.py +407 -0
- eawf-0.7.0.dev1/src/eawf/platform/profiles/data/core.yaml +599 -0
- eawf-0.7.0.dev1/src/eawf/platform/subprocess_detach.py +105 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/gate_execution.py +536 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/limits.py +138 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/main.py +1019 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/close.py +1371 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/close_evidence.py +492 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/config.py +884 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/fleet.py +4582 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/integration.py +223 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/release.py +1127 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/research.py +2783 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/spec.py +1318 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/spec_convert.py +670 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state.py +1392 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_apply.py +673 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_close.py +991 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_codex.py +385 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_context.py +235 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_events.py +359 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_jury.py +522 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_models.py +310 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_runtime.py +670 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/methods/state_worktree.py +439 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/server.py +662 -0
- eawf-0.7.0.dev1/src/eawf/runtime/daemon/spawn.py +662 -0
- eawf-0.7.0.dev1/src/eawf/runtime/hooks/runner.py +742 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/adapter.py +732 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/claude/adapter.py +851 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/claude/plugin_conflict.py +131 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/claude/plugin_doctor.py +339 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/claude/plugin_install.py +700 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/claude/plugin_package.py +601 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/claude/statusline_modules/git.py +107 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/codex/adapter.py +1102 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/opencode/adapter.py +886 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/opencode/plugin_install.py +876 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/probes/sdk_baseline.py +397 -0
- eawf-0.7.0.dev1/src/eawf/runtime/runtimes/stream_json.py +471 -0
- eawf-0.7.0.dev1/src/eawf/runtime/sandbox/env_scrub.py +295 -0
- eawf-0.7.0.dev1/src/eawf/runtime/sandbox/jail.py +544 -0
- eawf-0.7.0.dev1/src/eawf/runtime/session/store.py +638 -0
- eawf-0.7.0.dev1/src/eawf/runtime/vcs/__init__.py +29 -0
- eawf-0.7.0.dev1/src/eawf/runtime/vcs/checkpoint.py +164 -0
- eawf-0.7.0.dev1/src/eawf/runtime/worktree/git.py +546 -0
- eawf-0.7.0.dev1/src/eawf/schemas/state.schema.json +5405 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/bench.py +594 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/config.py +1096 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/evidence_artifact.py +418 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/hook.py +2215 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/lifecycle.py +847 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/lifecycle_iter.py +808 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/lifecycle_phase.py +891 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/lifecycle_wave.py +1712 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/plugin.py +405 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/plugin_verbs.py +787 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/release.py +697 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/snapshot.py +327 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/cli/commands/spec.py +706 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/render/agents.py +834 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/render/skills/registry.py +2013 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/render/skills/render.py +191 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/render/unwrap.py +127 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/tui/modes/autopilot.py +2328 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/tui/theme.py +594 -0
- eawf-0.7.0.dev1/src/eawf/surfaces/tui/theme.tcss +209 -0
- eawf-0.7.0.dev1/src/eawf/workflow/dispatch/renderer.py +1199 -0
- eawf-0.7.0.dev1/src/eawf/workflow/dispatch/retry.py +719 -0
- eawf-0.7.0.dev1/src/eawf/workflow/evidence/measured_contract.py +591 -0
- eawf-0.7.0.dev1/src/eawf/workflow/lifecycle/_errors.py +367 -0
- eawf-0.7.0.dev1/src/eawf/workflow/lifecycle/iter_.py +812 -0
- eawf-0.7.0.dev1/src/eawf/workflow/lifecycle/phase.py +1145 -0
- eawf-0.7.0.dev1/src/eawf/workflow/lifecycle/wave.py +1399 -0
- eawf-0.7.0.dev1/src/eawf/workflow/lifecycle/wave_sha.py +1341 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/__init__.py +13 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/adapters.py +636 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/admission.py +156 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/advance.py +616 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/boundaries.py +405 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/dependencies.py +743 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/ledger.py +336 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/lifecycle.py +417 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/observation.py +597 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/observe.py +280 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/preflight.py +146 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/produce.py +336 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/producers.py +286 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/publication.py +574 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/publication_receipt.py +193 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/receipts.py +162 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/reproducibility.py +575 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/source_host_assets.py +80 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/target_machine.py +540 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/train.py +304 -0
- eawf-0.7.0.dev1/src/eawf/workflow/release/vulnerability.py +403 -0
- eawf-0.7.0.dev1/src/eawf/workflow/verify/oracle.py +660 -0
- eawf-0.7.0.dev1/src/eawf/workflow/verify/readiness.py +1777 -0
- eawf-0.7.0.dev1/src/eawf/workflow/verify/release_probes.py +484 -0
- eawf-0.7.0.dev1/src/eawf/workflow/verify/release_readiness.py +734 -0
- eawf-0.7.0.dev1/tests/conftest.py +430 -0
- eawf-0.7.0.dev1/tests/contract/test_jsonrpc_contract.py +543 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/manifest.json +52 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/npm_registry-default-channel.json +22 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/npm_registry-match.json +22 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/npm_registry-mismatch.json +22 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/npm_registry-missing.json +4 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/npm_registry-unknown.json +4 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/package_index-match.json +25 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/package_index-mismatch.json +25 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/package_index-missing.json +4 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/package_index-unknown.json +4 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/source_host_release-default-channel.json +23 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/source_host_release-match.json +23 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/source_host_release-mismatch.json +23 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/source_host_release-missing.json +4 -0
- eawf-0.7.0.dev1/tests/fixtures/release/observations/source_host_release-unknown.json +4 -0
- eawf-0.7.0.dev1/tests/fixtures/release/pip-audit-acknowledged.json +17 -0
- eawf-0.7.0.dev1/tests/fixtures/release/pip-audit-blocking.json +22 -0
- eawf-0.7.0.dev1/tests/fixtures/release/v07/publication-operation-complete.yaml +56 -0
- eawf-0.7.0.dev1/tests/fixtures/telemetry/codex/rollout-2026-05-14T00-00-00-placeholder-cccc.jsonl +7 -0
- eawf-0.7.0.dev1/tests/fixtures/telemetry/codex/rollout-2026-05-15T00-00-00-placeholder-dddd.jsonl +4 -0
- eawf-0.7.0.dev1/tests/golden/agents_md/core_only.md +289 -0
- eawf-0.7.0.dev1/tests/golden/agents_md/core_python_research.md +317 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/cc_audit.txt +123 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/cc_flow.txt +131 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/cc_prep.txt +134 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/cc_research.txt +125 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/cc_seam_wave.txt +148 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/cc_ship.txt +114 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/codex_audit.txt +123 -0
- eawf-0.7.0.dev1/tests/golden/dispatch/codex_research.txt +125 -0
- eawf-0.7.0.dev1/tests/golden/metrics_export/fixture.csv +20 -0
- eawf-0.7.0.dev1/tests/golden/metrics_export/fixture.json +191 -0
- eawf-0.7.0.dev1/tests/golden/metrics_export/fixture.prom +39 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/auditor.md +70 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/domain-specialist.md +52 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/executor.md +78 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/operator.md +69 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/planner.md +86 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/polisher.md +58 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/researcher.md +71 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/agents/reviewer.md +61 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/settings.json +170 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/skills/audit/SKILL.md +57 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/skills/flow/SKILL.md +37 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/skills/polish/SKILL.md +44 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/skills/prep/SKILL.md +54 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/skills/review/SKILL.md +45 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/claude/skills/ship/SKILL.md +48 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/agents/domain-specialist.md.golden +63 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/agents/operator.md.golden +90 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/agents/researcher.md.golden +87 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/commands/audit.md.golden +102 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/commands/flow.md.golden +73 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/commands/polish.md.golden +59 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/commands/prep.md.golden +121 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/commands/review.md.golden +58 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/commands/ship.md.golden +90 -0
- eawf-0.7.0.dev1/tests/golden/plugin_install/opencode/plugins/eawf.js.golden +48 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/domain-specialist.claude-code.md +31 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/domain-specialist.codex.md +31 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/domain-specialist.opencode.md +31 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/operator.claude-code.md +43 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/operator.codex.md +43 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/operator.opencode.md +43 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/researcher.claude-code.md +47 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/researcher.codex.md +47 -0
- eawf-0.7.0.dev1/tests/golden/subagent_spec/roles/researcher.opencode.md +47 -0
- eawf-0.7.0.dev1/tests/golden/surfaces/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/golden/surfaces/cli/conftest.py +225 -0
- eawf-0.7.0.dev1/tests/golden/surfaces/cli/scenarios/fresh_repo/agents.golden.json +84 -0
- eawf-0.7.0.dev1/tests/golden/surfaces/render/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/golden/surfaces/render/test_golden_plan_view.py +246 -0
- eawf-0.7.0.dev1/tests/golden/test_plugin_install_claude.py +155 -0
- eawf-0.7.0.dev1/tests/integration/conftest.py +74 -0
- eawf-0.7.0.dev1/tests/integration/kernel/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/kernel/spec/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/runtime/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/conftest.py +258 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_ambiguous_outcome.py +418 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_boundary_totality.py +262 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_crash_boundaries.py +481 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_existing_artifact.py +271 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_observe_cli.py +568 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_pipeline_live.py +150 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_publish_rpc.py +587 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_reconcile_receipts.py +444 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_reproducible_build.py +387 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/methods/test_waiver_params.py +333 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_close_fault_matrix.py +1208 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_close_lock_split.py +489 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_disconnect_shield.py +282 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_durable_close.py +1168 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_fleet_ladders_wired.py +676 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_fleet_watcher_liveness.py +796 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_integration_methods.py +147 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_live_spawn_dispatch.py +1829 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_loop_occupancy.py +285 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_readiness_under_load.py +221 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_scaffolding.py +404 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_spawn_cost_binding.py +658 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_spec_convert_legacy.py +510 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_spec_sync_floor.py +257 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_state_clobber_regression.py +83 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_wal_admin_cli.py +234 -0
- eawf-0.7.0.dev1/tests/integration/runtime/daemon/test_wave_spec_jury_gate.py +661 -0
- eawf-0.7.0.dev1/tests/integration/runtime/hooks/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/runtime/sandbox/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/runtime/sandbox/test_jail.py +962 -0
- eawf-0.7.0.dev1/tests/integration/runtime/vcs/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_close_timeout_terminal.py +341 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_completion_runtime.py +236 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_daemon_escalation.py +518 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_daemon_service_lifecycle.py +297 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_daemonless_close_teeth.py +535 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_daemonless_close_waiver_e2e.py +266 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_evidence_attest.py +327 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_jury_label.py +196 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_lifecycle_daemon_routing.py +825 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_reclaim.py +228 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_spec_convert_legacy.py +159 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_spec_sync_cli.py +127 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_streaming.py +388 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_wal_admin_cli.py +279 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_wave_waivers_cli.py +267 -0
- eawf-0.7.0.dev1/tests/integration/surfaces/cli/test_windows_w04_policy.py +158 -0
- eawf-0.7.0.dev1/tests/integration/test_bench_harness.py +829 -0
- eawf-0.7.0.dev1/tests/integration/test_cli_backfill_wave_intents.py +114 -0
- eawf-0.7.0.dev1/tests/integration/test_cli_dispatch.py +81 -0
- eawf-0.7.0.dev1/tests/integration/test_cli_estimation.py +562 -0
- eawf-0.7.0.dev1/tests/integration/test_cli_init_no_input.py +438 -0
- eawf-0.7.0.dev1/tests/integration/test_cli_release_tag.py +450 -0
- eawf-0.7.0.dev1/tests/integration/test_cli_roadmap.py +2236 -0
- eawf-0.7.0.dev1/tests/integration/test_cli_wave_integration.py +244 -0
- eawf-0.7.0.dev1/tests/integration/test_cross_vendor_parity.py +650 -0
- eawf-0.7.0.dev1/tests/integration/test_daemon_cross_repo_anchor.py +299 -0
- eawf-0.7.0.dev1/tests/integration/test_dispatch_renderer.py +1137 -0
- eawf-0.7.0.dev1/tests/integration/test_docs_autogen.py +365 -0
- eawf-0.7.0.dev1/tests/integration/test_eu_capture_e2e.py +274 -0
- eawf-0.7.0.dev1/tests/integration/test_lint_hooks.py +813 -0
- eawf-0.7.0.dev1/tests/integration/test_metrics_cli.py +338 -0
- eawf-0.7.0.dev1/tests/integration/test_packaging.py +703 -0
- eawf-0.7.0.dev1/tests/integration/test_plugin_install_conflict_gate.py +357 -0
- eawf-0.7.0.dev1/tests/integration/test_snapshot_update.py +670 -0
- eawf-0.7.0.dev1/tests/integration/test_spawn_safety_wiring.py +611 -0
- eawf-0.7.0.dev1/tests/integration/test_statusline_e2e.py +175 -0
- eawf-0.7.0.dev1/tests/integration/workflow/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/workflow/audit_dsl/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/workflow/estimation/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/workflow/evidence/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/workflow/evidence/test_measured_contract_promotion.py +385 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/conftest.py +16 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/test_ceremony.py +489 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/test_commit_pin_scan.py +661 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/test_waivers.py +1166 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/test_wave_claim.py +843 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/test_wave_plan_floor.py +466 -0
- eawf-0.7.0.dev1/tests/integration/workflow/lifecycle/test_wave_sha_fold.py +217 -0
- eawf-0.7.0.dev1/tests/integration/workflow/release/test_checkpoint_cut.py +459 -0
- eawf-0.7.0.dev1/tests/integration/workflow/release/test_measured_before_build.py +252 -0
- eawf-0.7.0.dev1/tests/integration/workflow/release/test_state_tree_brief_verified.py +167 -0
- eawf-0.7.0.dev1/tests/integration/workflow/release/test_state_tree_decision.py +130 -0
- eawf-0.7.0.dev1/tests/integration/workflow/release/test_train_ladder_surface.py +184 -0
- eawf-0.7.0.dev1/tests/integration/workflow/release/test_waiver_count.py +389 -0
- eawf-0.7.0.dev1/tests/integration/workflow/test_i09_jury_bindings_wired.py +313 -0
- eawf-0.7.0.dev1/tests/integration/workflow/test_i11_track_bindings_wired.py +137 -0
- eawf-0.7.0.dev1/tests/integration/workflow/test_resolve_routing_wired.py +437 -0
- eawf-0.7.0.dev1/tests/integration/workflow/verify/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/integration/workflow/verify/test_dispatch_close.py +384 -0
- eawf-0.7.0.dev1/tests/integration/workflow/verify/test_readiness.py +1506 -0
- eawf-0.7.0.dev1/tests/integration/workflow/verify/test_release_exclusion_expiry.py +220 -0
- eawf-0.7.0.dev1/tests/integration/workflow/verify/test_release_readiness.py +338 -0
- eawf-0.7.0.dev1/tests/lint/test_generated_prose_unwrapped.py +95 -0
- eawf-0.7.0.dev1/tests/lint/test_phase_ci_gates.py +1137 -0
- eawf-0.7.0.dev1/tests/lint/test_prose_gate_clean.py +138 -0
- eawf-0.7.0.dev1/tests/lint/test_pyright_config.py +147 -0
- eawf-0.7.0.dev1/tests/lint/test_reclose_staging.py +244 -0
- eawf-0.7.0.dev1/tests/lint/test_skill_bodies_name_rules.py +95 -0
- eawf-0.7.0.dev1/tests/lint/test_test_tier_contract.py +405 -0
- eawf-0.7.0.dev1/tests/perf/surfaces/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/perf/surfaces/cli/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/perf/surfaces/cli/test_import_budget.py +192 -0
- eawf-0.7.0.dev1/tests/perf/surfaces/tui/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/perf/surfaces/tui/test_perf_budget.py +132 -0
- eawf-0.7.0.dev1/tests/perf/test_dev1_baseline_artifact.py +173 -0
- eawf-0.7.0.dev1/tests/perf/test_turn_cost_harness.py +141 -0
- eawf-0.7.0.dev1/tests/perf/test_turn_cost_producer.py +223 -0
- eawf-0.7.0.dev1/tests/platform/lint/test_exclusion_expiry.py +327 -0
- eawf-0.7.0.dev1/tests/platform/lint/test_kind_taxonomy.py +279 -0
- eawf-0.7.0.dev1/tests/platform/lint/test_test_placement.py +334 -0
- eawf-0.7.0.dev1/tests/property/test_five_consecutive_runs.py +135 -0
- eawf-0.7.0.dev1/tests/property/workflow/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/property/workflow/lifecycle/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/property/workflow/lifecycle/test_transition_tables.py +625 -0
- eawf-0.7.0.dev1/tests/tui/_contrast.py +63 -0
- eawf-0.7.0.dev1/tests/tui/test_autopilot_repair_budget.py +265 -0
- eawf-0.7.0.dev1/tests/tui/test_config_coverage_gap.py +170 -0
- eawf-0.7.0.dev1/tests/tui/test_dispatch_tui.py +155 -0
- eawf-0.7.0.dev1/tests/tui/test_fleet_affordance.py +569 -0
- eawf-0.7.0.dev1/tests/tui/test_modes_doctor.py +879 -0
- eawf-0.7.0.dev1/tests/tui/test_palette_theme.py +294 -0
- eawf-0.7.0.dev1/tests/tui/test_status_tint_baseline.py +85 -0
- eawf-0.7.0.dev1/tests/tui/test_theme_focus_ring_capture.py +196 -0
- eawf-0.7.0.dev1/tests/tui/test_theme_muted_contrast.py +135 -0
- eawf-0.7.0.dev1/tests/unit/kernel/config/test_agents_config.py +134 -0
- eawf-0.7.0.dev1/tests/unit/kernel/config/test_subject_style_default.py +156 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/conftest.py +146 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_dependency_inventory.py +617 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_distinct_checkpoint.py +189 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_gate_binding.py +370 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_import_resolution.py +95 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_observe_adapters.py +449 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_observer_only.py +395 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_platform_signal.py +203 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_prerelease_channel.py +222 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_prerequisite_receipts.py +252 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_publication_records.py +347 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_publish_edges.py +459 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_readiness_gate_block.py +259 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_required_signals.py +286 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_target_status_machine.py +460 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_train_advance.py +284 -0
- eawf-0.7.0.dev1/tests/unit/kernel/release/test_vulnerability_report.py +353 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_assign_oracle_tier.py +225 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_common.py +758 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_criterion_schema.py +403 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_measured_contract.py +258 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_promotion.py +225 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_release_config_loader.py +283 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_release_models.py +396 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_response_from_gate.py +169 -0
- eawf-0.7.0.dev1/tests/unit/kernel/spec/test_validate_criterion_gate_refs_oracle_tier.py +268 -0
- eawf-0.7.0.dev1/tests/unit/kernel/state/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/kernel/state/test_estimates_field.py +152 -0
- eawf-0.7.0.dev1/tests/unit/kernel/state/test_session_models.py +295 -0
- eawf-0.7.0.dev1/tests/unit/kernel/state/test_v1_20_contracts.py +425 -0
- eawf-0.7.0.dev1/tests/unit/kernel/store/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/observability/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/observability/metrics/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/observability/telemetry/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/observability/telemetry/test_cost_class.py +152 -0
- eawf-0.7.0.dev1/tests/unit/observability/telemetry/test_metrics_projection.py +536 -0
- eawf-0.7.0.dev1/tests/unit/observability/telemetry/test_turn_cost_pricing.py +193 -0
- eawf-0.7.0.dev1/tests/unit/observability/telemetry/test_turn_cost_record.py +273 -0
- eawf-0.7.0.dev1/tests/unit/platform/artifacts/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/platform/artifacts/test_dev1_config_defaults_benchmark.py +321 -0
- eawf-0.7.0.dev1/tests/unit/platform/profiles/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/platform/test_daemon_child_spawn_sites.py +204 -0
- eawf-0.7.0.dev1/tests/unit/platform/test_subprocess_detach.py +120 -0
- eawf-0.7.0.dev1/tests/unit/runtime/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_agent_methods.py +1168 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_campaign_run_bindings_wired.py +260 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_close_budget_resolver.py +238 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_config_methods.py +776 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_fleet_dependency_barriers.py +82 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_gate_execution_claim.py +492 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_recovery.py +487 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_research_campaign_acceptance.py +624 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_research_methods.py +488 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_research_operator_channel.py +260 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_research_round_runner.py +270 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_research_run_rpc.py +1022 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_state_collaborators.py +363 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_state_methods.py +2901 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_state_methods_import_graph.py +235 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_wave_land_batch_async.py +131 -0
- eawf-0.7.0.dev1/tests/unit/runtime/daemon/test_windows_pipe_design_only.py +331 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/claude/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/claude/test_spawn_session.py +702 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/codex/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/codex/test_spawn_session.py +1002 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/opencode/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/test_error_classification.py +217 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/test_error_reachability.py +234 -0
- eawf-0.7.0.dev1/tests/unit/runtime/runtimes/test_headless_token_capture_w29.py +203 -0
- eawf-0.7.0.dev1/tests/unit/runtime/sandbox/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/sandbox/test_env_scrub.py +454 -0
- eawf-0.7.0.dev1/tests/unit/runtime/sandbox/test_jail_expiry.py +100 -0
- eawf-0.7.0.dev1/tests/unit/runtime/session/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/runtime/session/test_session_ended_at_stamp.py +255 -0
- eawf-0.7.0.dev1/tests/unit/surfaces/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/surfaces/cli/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/surfaces/cli/test_mutation_proxy.py +659 -0
- eawf-0.7.0.dev1/tests/unit/surfaces/cli/test_registry_proxy.py +221 -0
- eawf-0.7.0.dev1/tests/unit/surfaces/cli/test_version_display.py +339 -0
- eawf-0.7.0.dev1/tests/unit/surfaces/render/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/surfaces/tui/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/test_codex_rollout_counters.py +205 -0
- eawf-0.7.0.dev1/tests/unit/test_commit_prefix_lint.py +1573 -0
- eawf-0.7.0.dev1/tests/unit/test_config_layered.py +449 -0
- eawf-0.7.0.dev1/tests/unit/test_eawf_loc_cap.py +383 -0
- eawf-0.7.0.dev1/tests/unit/test_enums.py +530 -0
- eawf-0.7.0.dev1/tests/unit/test_evidence_cmd_inventory.py +100 -0
- eawf-0.7.0.dev1/tests/unit/test_html_probe.py +327 -0
- eawf-0.7.0.dev1/tests/unit/test_idle_surface_report.py +212 -0
- eawf-0.7.0.dev1/tests/unit/test_layered_config.py +690 -0
- eawf-0.7.0.dev1/tests/unit/test_metrics_dispatch_cost.py +150 -0
- eawf-0.7.0.dev1/tests/unit/test_plan_show.py +811 -0
- eawf-0.7.0.dev1/tests/unit/test_plugin_conflict_detect.py +119 -0
- eawf-0.7.0.dev1/tests/unit/test_render_claude_agents.py +388 -0
- eawf-0.7.0.dev1/tests/unit/test_runtime_capture_hook.py +302 -0
- eawf-0.7.0.dev1/tests/unit/test_sources_codex_opencode.py +550 -0
- eawf-0.7.0.dev1/tests/unit/test_transcript_counters.py +641 -0
- eawf-0.7.0.dev1/tests/unit/test_vcs_coauthor.py +92 -0
- eawf-0.7.0.dev1/tests/unit/test_wave_close_actuals.py +767 -0
- eawf-0.7.0.dev1/tests/unit/workflow/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/agents/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/agents/specs/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/audit_dsl/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/dispatch/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/dispatch/test_retry.py +685 -0
- eawf-0.7.0.dev1/tests/unit/workflow/dispatch/test_verdict.py +1496 -0
- eawf-0.7.0.dev1/tests/unit/workflow/estimation/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/estimation/test_metrics_empty_estimates.py +241 -0
- eawf-0.7.0.dev1/tests/unit/workflow/evidence/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/evidence/test_incident_fold.py +153 -0
- eawf-0.7.0.dev1/tests/unit/workflow/lifecycle/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/lifecycle/test_integration_barriers.py +260 -0
- eawf-0.7.0.dev1/tests/unit/workflow/propose/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/skills/__init__.py +1 -0
- eawf-0.7.0.dev1/tests/unit/workflow/test_outcome_comparator.py +293 -0
- eawf-0.7.0.dev1/tests/unit/workflow/test_qa_gate_register.py +148 -0
- eawf-0.7.0.dev1/tests/unit/workflow/test_runtime_capture_present.py +51 -0
- eawf-0.7.0.dev1/tests/unit/workflow/verify/__init__.py +1 -0
- eawf-0.7.0.dev1/tools/commit_prefix_lint.py +1075 -0
- eawf-0.7.0.dev1/tools/html_probe.py +404 -0
- eawf-0.7.0.dev1/tools/idle_surface_report.py +132 -0
- eawf-0.7.0.dev1/uv.lock +1317 -0
- eawf-0.6.8/.ea/state.json +0 -150382
- eawf-0.6.8/.ea/store/audit.jsonl +0 -101
- eawf-0.6.8/.ea/store/auditor_report.jsonl +0 -23
- eawf-0.6.8/.ea/store/decision.jsonl +0 -60
- eawf-0.6.8/.ea/store/evidence.jsonl +0 -685
- eawf-0.6.8/.ea/store/incident.jsonl +0 -24
- eawf-0.6.8/.github/workflows/ci.yaml +0 -269
- eawf-0.6.8/.github/workflows/phase-release.yaml +0 -109
- eawf-0.6.8/.github/workflows/plugin-release.yaml +0 -422
- eawf-0.6.8/.github/workflows/release.yaml +0 -203
- eawf-0.6.8/.pre-commit-config.yaml +0 -369
- eawf-0.6.8/.vale/styles/config/vocabularies/eawf/accept.txt +0 -49
- eawf-0.6.8/.vale.ini +0 -29
- eawf-0.6.8/AGENTS.md +0 -340
- eawf-0.6.8/CHANGELOG.md +0 -363
- eawf-0.6.8/PKG-INFO +0 -91
- eawf-0.6.8/README.md +0 -61
- eawf-0.6.8/docs/README.md +0 -69
- eawf-0.6.8/docs/reference/autogen/cli.md +0 -674
- eawf-0.6.8/docs/reference/autogen/enums.md +0 -65
- eawf-0.6.8/docs/reference/autogen/error-codes.md +0 -41
- eawf-0.6.8/docs/reference/autogen/exit-codes.md +0 -13
- eawf-0.6.8/docs/reference/autogen/index.md +0 -11
- eawf-0.6.8/docs/reference/autogen/schema.md +0 -73
- eawf-0.6.8/docs/reference/autogen/skills.md +0 -34
- eawf-0.6.8/docs/reference/autogen/state.schema.json +0 -5389
- eawf-0.6.8/docs/rules/comment-economy.md +0 -21
- eawf-0.6.8/docs/rules/commit-granularity.md +0 -23
- eawf-0.6.8/docs/rules/commit-prefix.md +0 -30
- eawf-0.6.8/docs/tutorial/quickstart.md +0 -104
- eawf-0.6.8/justfile +0 -91
- eawf-0.6.8/mkdocs.yml +0 -102
- eawf-0.6.8/pyproject.toml +0 -621
- eawf-0.6.8/src/eawf/_version.py +0 -22
- eawf-0.6.8/src/eawf/kernel/config/defaults.py +0 -454
- eawf-0.6.8/src/eawf/kernel/config/layered.py +0 -635
- eawf-0.6.8/src/eawf/kernel/config/registry/config_keys.py +0 -715
- eawf-0.6.8/src/eawf/kernel/config/registry/leaf_catalog.py +0 -1747
- eawf-0.6.8/src/eawf/kernel/config/schema.py +0 -376
- eawf-0.6.8/src/eawf/kernel/spec/common.py +0 -993
- eawf-0.6.8/src/eawf/kernel/spec/promotion.py +0 -156
- eawf-0.6.8/src/eawf/kernel/spec/writer.py +0 -288
- eawf-0.6.8/src/eawf/kernel/state/enums.py +0 -742
- eawf-0.6.8/src/eawf/kernel/state/models.py +0 -2038
- eawf-0.6.8/src/eawf/kernel/store/kinds/__init__.py +0 -61
- eawf-0.6.8/src/eawf/observability/bench/__init__.py +0 -52
- eawf-0.6.8/src/eawf/observability/doctor/checks.py +0 -1395
- eawf-0.6.8/src/eawf/observability/telemetry/aggregator.py +0 -365
- eawf-0.6.8/src/eawf/observability/telemetry/exporter.py +0 -445
- eawf-0.6.8/src/eawf/observability/telemetry/metrics_projection.py +0 -528
- eawf-0.6.8/src/eawf/observability/telemetry/sources/codex_session.py +0 -236
- eawf-0.6.8/src/eawf/platform/artifacts/__init__.py +0 -19
- eawf-0.6.8/src/eawf/platform/docs/autogen.py +0 -570
- eawf-0.6.8/src/eawf/platform/lint/__init__.py +0 -158
- eawf-0.6.8/src/eawf/platform/profiles/data/core.yaml +0 -583
- eawf-0.6.8/src/eawf/platform/subprocess_detach.py +0 -58
- eawf-0.6.8/src/eawf/runtime/daemon/gate_execution.py +0 -293
- eawf-0.6.8/src/eawf/runtime/daemon/limits.py +0 -115
- eawf-0.6.8/src/eawf/runtime/daemon/main.py +0 -943
- eawf-0.6.8/src/eawf/runtime/daemon/methods/close.py +0 -1138
- eawf-0.6.8/src/eawf/runtime/daemon/methods/close_evidence.py +0 -492
- eawf-0.6.8/src/eawf/runtime/daemon/methods/config.py +0 -884
- eawf-0.6.8/src/eawf/runtime/daemon/methods/fleet.py +0 -4582
- eawf-0.6.8/src/eawf/runtime/daemon/methods/integration.py +0 -223
- eawf-0.6.8/src/eawf/runtime/daemon/methods/research.py +0 -2777
- eawf-0.6.8/src/eawf/runtime/daemon/methods/spec.py +0 -1307
- eawf-0.6.8/src/eawf/runtime/daemon/methods/spec_convert.py +0 -554
- eawf-0.6.8/src/eawf/runtime/daemon/methods/state.py +0 -5286
- eawf-0.6.8/src/eawf/runtime/daemon/server.py +0 -551
- eawf-0.6.8/src/eawf/runtime/daemon/spawn.py +0 -619
- eawf-0.6.8/src/eawf/runtime/hooks/runner.py +0 -676
- eawf-0.6.8/src/eawf/runtime/runtimes/adapter.py +0 -536
- eawf-0.6.8/src/eawf/runtime/runtimes/claude/adapter.py +0 -889
- eawf-0.6.8/src/eawf/runtime/runtimes/claude/plugin_conflict.py +0 -72
- eawf-0.6.8/src/eawf/runtime/runtimes/claude/plugin_doctor.py +0 -331
- eawf-0.6.8/src/eawf/runtime/runtimes/claude/plugin_install.py +0 -675
- eawf-0.6.8/src/eawf/runtime/runtimes/claude/plugin_package.py +0 -592
- eawf-0.6.8/src/eawf/runtime/runtimes/claude/statusline_modules/git.py +0 -102
- eawf-0.6.8/src/eawf/runtime/runtimes/codex/adapter.py +0 -1148
- eawf-0.6.8/src/eawf/runtime/runtimes/opencode/adapter.py +0 -932
- eawf-0.6.8/src/eawf/runtime/runtimes/opencode/plugin_install.py +0 -866
- eawf-0.6.8/src/eawf/runtime/runtimes/probes/sdk_baseline.py +0 -394
- eawf-0.6.8/src/eawf/runtime/runtimes/stream_json.py +0 -284
- eawf-0.6.8/src/eawf/runtime/sandbox/env_scrub.py +0 -254
- eawf-0.6.8/src/eawf/runtime/sandbox/jail.py +0 -491
- eawf-0.6.8/src/eawf/runtime/session/store.py +0 -522
- eawf-0.6.8/src/eawf/runtime/vcs/__init__.py +0 -19
- eawf-0.6.8/src/eawf/runtime/worktree/git.py +0 -544
- eawf-0.6.8/src/eawf/schemas/state.schema.json +0 -5390
- eawf-0.6.8/src/eawf/surfaces/cli/commands/bench.py +0 -309
- eawf-0.6.8/src/eawf/surfaces/cli/commands/config.py +0 -1092
- eawf-0.6.8/src/eawf/surfaces/cli/commands/evidence_artifact.py +0 -332
- eawf-0.6.8/src/eawf/surfaces/cli/commands/hook.py +0 -2138
- eawf-0.6.8/src/eawf/surfaces/cli/commands/lifecycle.py +0 -817
- eawf-0.6.8/src/eawf/surfaces/cli/commands/lifecycle_iter.py +0 -779
- eawf-0.6.8/src/eawf/surfaces/cli/commands/lifecycle_phase.py +0 -887
- eawf-0.6.8/src/eawf/surfaces/cli/commands/lifecycle_wave.py +0 -1490
- eawf-0.6.8/src/eawf/surfaces/cli/commands/plugin.py +0 -395
- eawf-0.6.8/src/eawf/surfaces/cli/commands/plugin_verbs.py +0 -745
- eawf-0.6.8/src/eawf/surfaces/cli/commands/release.py +0 -230
- eawf-0.6.8/src/eawf/surfaces/cli/commands/snapshot.py +0 -327
- eawf-0.6.8/src/eawf/surfaces/cli/commands/spec.py +0 -703
- eawf-0.6.8/src/eawf/surfaces/render/agents.py +0 -770
- eawf-0.6.8/src/eawf/surfaces/render/skills/registry.py +0 -1959
- eawf-0.6.8/src/eawf/surfaces/render/skills/render.py +0 -260
- eawf-0.6.8/src/eawf/surfaces/tui/modes/autopilot.py +0 -2280
- eawf-0.6.8/src/eawf/surfaces/tui/theme.py +0 -555
- eawf-0.6.8/src/eawf/surfaces/tui/theme.tcss +0 -205
- eawf-0.6.8/src/eawf/workflow/dispatch/renderer.py +0 -1089
- eawf-0.6.8/src/eawf/workflow/dispatch/retry.py +0 -661
- eawf-0.6.8/src/eawf/workflow/lifecycle/_errors.py +0 -270
- eawf-0.6.8/src/eawf/workflow/lifecycle/iter_.py +0 -790
- eawf-0.6.8/src/eawf/workflow/lifecycle/phase.py +0 -1120
- eawf-0.6.8/src/eawf/workflow/lifecycle/wave.py +0 -1390
- eawf-0.6.8/src/eawf/workflow/lifecycle/wave_sha.py +0 -1328
- eawf-0.6.8/src/eawf/workflow/verify/oracle.py +0 -633
- eawf-0.6.8/src/eawf/workflow/verify/readiness.py +0 -1690
- eawf-0.6.8/tests/cli/test_close_timeout_terminal.py +0 -300
- eawf-0.6.8/tests/cli/test_completion_runtime.py +0 -236
- eawf-0.6.8/tests/cli/test_daemon_escalation.py +0 -518
- eawf-0.6.8/tests/cli/test_daemon_service_lifecycle.py +0 -297
- eawf-0.6.8/tests/cli/test_daemonless_close_teeth.py +0 -414
- eawf-0.6.8/tests/cli/test_daemonless_close_waiver_e2e.py +0 -266
- eawf-0.6.8/tests/cli/test_evidence_attest.py +0 -327
- eawf-0.6.8/tests/cli/test_jury_label.py +0 -196
- eawf-0.6.8/tests/cli/test_lifecycle_daemon_routing.py +0 -718
- eawf-0.6.8/tests/cli/test_mutation_proxy.py +0 -659
- eawf-0.6.8/tests/cli/test_reclaim.py +0 -228
- eawf-0.6.8/tests/cli/test_registry_proxy.py +0 -221
- eawf-0.6.8/tests/cli/test_spec_convert_legacy.py +0 -159
- eawf-0.6.8/tests/cli/test_spec_sync_cli.py +0 -127
- eawf-0.6.8/tests/cli/test_streaming.py +0 -388
- eawf-0.6.8/tests/cli/test_wal_admin_cli.py +0 -279
- eawf-0.6.8/tests/cli/test_windows_w04_policy.py +0 -155
- eawf-0.6.8/tests/conftest.py +0 -227
- eawf-0.6.8/tests/contract/test_jsonrpc_contract.py +0 -543
- eawf-0.6.8/tests/daemon/test_agent_methods.py +0 -1168
- eawf-0.6.8/tests/daemon/test_campaign_run_bindings_wired.py +0 -259
- eawf-0.6.8/tests/daemon/test_close_fault_matrix.py +0 -850
- eawf-0.6.8/tests/daemon/test_close_lock_split.py +0 -403
- eawf-0.6.8/tests/daemon/test_config_methods.py +0 -776
- eawf-0.6.8/tests/daemon/test_disconnect_shield.py +0 -144
- eawf-0.6.8/tests/daemon/test_durable_close.py +0 -952
- eawf-0.6.8/tests/daemon/test_fleet_dependency_barriers.py +0 -82
- eawf-0.6.8/tests/daemon/test_fleet_ladders_wired.py +0 -676
- eawf-0.6.8/tests/daemon/test_fleet_watcher_liveness.py +0 -796
- eawf-0.6.8/tests/daemon/test_gate_execution_claim.py +0 -332
- eawf-0.6.8/tests/daemon/test_integration_methods.py +0 -147
- eawf-0.6.8/tests/daemon/test_live_spawn_dispatch.py +0 -1829
- eawf-0.6.8/tests/daemon/test_recovery.py +0 -411
- eawf-0.6.8/tests/daemon/test_research_campaign_acceptance.py +0 -624
- eawf-0.6.8/tests/daemon/test_research_methods.py +0 -488
- eawf-0.6.8/tests/daemon/test_research_operator_channel.py +0 -260
- eawf-0.6.8/tests/daemon/test_research_round_runner.py +0 -270
- eawf-0.6.8/tests/daemon/test_research_run_rpc.py +0 -1022
- eawf-0.6.8/tests/daemon/test_scaffolding.py +0 -404
- eawf-0.6.8/tests/daemon/test_spawn_cost_binding.py +0 -658
- eawf-0.6.8/tests/daemon/test_spec_convert_legacy.py +0 -385
- eawf-0.6.8/tests/daemon/test_state_clobber_regression.py +0 -83
- eawf-0.6.8/tests/daemon/test_state_methods.py +0 -2901
- eawf-0.6.8/tests/daemon/test_wal_admin_cli.py +0 -234
- eawf-0.6.8/tests/daemon/test_wave_land_batch_async.py +0 -131
- eawf-0.6.8/tests/daemon/test_wave_spec_jury_gate.py +0 -661
- eawf-0.6.8/tests/daemon/test_windows_pipe_design_only.py +0 -331
- eawf-0.6.8/tests/fixtures/telemetry/codex/rollout-2026-05-14T00-00-00-placeholder-cccc.jsonl +0 -7
- eawf-0.6.8/tests/fixtures/telemetry/codex/rollout-2026-05-15T00-00-00-placeholder-dddd.jsonl +0 -4
- eawf-0.6.8/tests/golden/agents_md/core_only.md +0 -288
- eawf-0.6.8/tests/golden/agents_md/core_python_research.md +0 -316
- eawf-0.6.8/tests/golden/dispatch/cc_audit.txt +0 -113
- eawf-0.6.8/tests/golden/dispatch/cc_flow.txt +0 -121
- eawf-0.6.8/tests/golden/dispatch/cc_prep.txt +0 -124
- eawf-0.6.8/tests/golden/dispatch/cc_research.txt +0 -114
- eawf-0.6.8/tests/golden/dispatch/cc_ship.txt +0 -104
- eawf-0.6.8/tests/golden/dispatch/codex_audit.txt +0 -113
- eawf-0.6.8/tests/golden/dispatch/codex_research.txt +0 -114
- eawf-0.6.8/tests/golden/metrics_export/fixture.csv +0 -18
- eawf-0.6.8/tests/golden/metrics_export/fixture.json +0 -170
- eawf-0.6.8/tests/golden/metrics_export/fixture.prom +0 -34
- eawf-0.6.8/tests/golden/plan_view/test_golden_plan_view.py +0 -243
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/auditor.md +0 -83
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/domain-specialist.md +0 -60
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/executor.md +0 -96
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/operator.md +0 -85
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/planner.md +0 -101
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/polisher.md +0 -64
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/researcher.md +0 -82
- eawf-0.6.8/tests/golden/plugin_install/claude/agents/reviewer.md +0 -68
- eawf-0.6.8/tests/golden/plugin_install/claude/settings.json +0 -170
- eawf-0.6.8/tests/golden/plugin_install/claude/skills/audit/SKILL.md +0 -48
- eawf-0.6.8/tests/golden/plugin_install/claude/skills/flow/SKILL.md +0 -37
- eawf-0.6.8/tests/golden/plugin_install/claude/skills/polish/SKILL.md +0 -35
- eawf-0.6.8/tests/golden/plugin_install/claude/skills/prep/SKILL.md +0 -54
- eawf-0.6.8/tests/golden/plugin_install/claude/skills/review/SKILL.md +0 -36
- eawf-0.6.8/tests/golden/plugin_install/claude/skills/ship/SKILL.md +0 -48
- eawf-0.6.8/tests/golden/plugin_install/opencode/agents/domain-specialist.md.golden +0 -63
- eawf-0.6.8/tests/golden/plugin_install/opencode/agents/operator.md.golden +0 -90
- eawf-0.6.8/tests/golden/plugin_install/opencode/agents/researcher.md.golden +0 -82
- eawf-0.6.8/tests/golden/plugin_install/opencode/commands/audit.md.golden +0 -89
- eawf-0.6.8/tests/golden/plugin_install/opencode/commands/flow.md.golden +0 -73
- eawf-0.6.8/tests/golden/plugin_install/opencode/commands/polish.md.golden +0 -46
- eawf-0.6.8/tests/golden/plugin_install/opencode/commands/prep.md.golden +0 -111
- eawf-0.6.8/tests/golden/plugin_install/opencode/commands/review.md.golden +0 -45
- eawf-0.6.8/tests/golden/plugin_install/opencode/commands/ship.md.golden +0 -90
- eawf-0.6.8/tests/golden/plugin_install/opencode/plugins/eawf.js.golden +0 -48
- eawf-0.6.8/tests/golden/scenarios/conftest.py +0 -225
- eawf-0.6.8/tests/golden/scenarios/fresh_repo/agents.golden.json +0 -84
- eawf-0.6.8/tests/golden/subagent_spec/roles/domain-specialist.claude-code.md +0 -31
- eawf-0.6.8/tests/golden/subagent_spec/roles/domain-specialist.codex.md +0 -31
- eawf-0.6.8/tests/golden/subagent_spec/roles/domain-specialist.opencode.md +0 -31
- eawf-0.6.8/tests/golden/subagent_spec/roles/operator.claude-code.md +0 -43
- eawf-0.6.8/tests/golden/subagent_spec/roles/operator.codex.md +0 -43
- eawf-0.6.8/tests/golden/subagent_spec/roles/operator.opencode.md +0 -43
- eawf-0.6.8/tests/golden/subagent_spec/roles/researcher.claude-code.md +0 -46
- eawf-0.6.8/tests/golden/subagent_spec/roles/researcher.codex.md +0 -46
- eawf-0.6.8/tests/golden/subagent_spec/roles/researcher.opencode.md +0 -46
- eawf-0.6.8/tests/golden/test_plugin_install_claude.py +0 -149
- eawf-0.6.8/tests/integration/conftest.py +0 -53
- eawf-0.6.8/tests/integration/test_bench_harness.py +0 -315
- eawf-0.6.8/tests/integration/test_cli_backfill_wave_intents.py +0 -114
- eawf-0.6.8/tests/integration/test_cli_dispatch.py +0 -78
- eawf-0.6.8/tests/integration/test_cli_estimation.py +0 -485
- eawf-0.6.8/tests/integration/test_cli_init_no_input.py +0 -301
- eawf-0.6.8/tests/integration/test_cli_release_tag.py +0 -87
- eawf-0.6.8/tests/integration/test_cli_roadmap.py +0 -2163
- eawf-0.6.8/tests/integration/test_cli_wave_integration.py +0 -244
- eawf-0.6.8/tests/integration/test_cross_vendor_parity.py +0 -649
- eawf-0.6.8/tests/integration/test_daemon_cross_repo_anchor.py +0 -300
- eawf-0.6.8/tests/integration/test_dispatch_renderer.py +0 -781
- eawf-0.6.8/tests/integration/test_docs_autogen.py +0 -190
- eawf-0.6.8/tests/integration/test_eu_capture_e2e.py +0 -274
- eawf-0.6.8/tests/integration/test_lint_hooks.py +0 -772
- eawf-0.6.8/tests/integration/test_metrics_cli.py +0 -225
- eawf-0.6.8/tests/integration/test_packaging.py +0 -346
- eawf-0.6.8/tests/integration/test_plugin_install_conflict_gate.py +0 -269
- eawf-0.6.8/tests/integration/test_snapshot_update.py +0 -666
- eawf-0.6.8/tests/integration/test_spawn_safety_wiring.py +0 -608
- eawf-0.6.8/tests/integration/test_statusline_e2e.py +0 -173
- eawf-0.6.8/tests/kernel/spec/test_common.py +0 -636
- eawf-0.6.8/tests/kernel/spec/test_promotion.py +0 -212
- eawf-0.6.8/tests/lint/test_phase_ci_gates.py +0 -58
- eawf-0.6.8/tests/lint/test_reclose_staging.py +0 -155
- eawf-0.6.8/tests/lint/test_test_tier_contract.py +0 -118
- eawf-0.6.8/tests/observability/telemetry/test_metrics_projection.py +0 -440
- eawf-0.6.8/tests/perf/cli/test_import_budget.py +0 -192
- eawf-0.6.8/tests/perf/tui/test_perf_budget.py +0 -132
- eawf-0.6.8/tests/runtime/daemon/__init__.py +0 -0
- eawf-0.6.8/tests/runtime/hooks/__init__.py +0 -0
- eawf-0.6.8/tests/runtime/sandbox/__init__.py +0 -0
- eawf-0.6.8/tests/runtime/sandbox/test_env_scrub.py +0 -369
- eawf-0.6.8/tests/runtime/sandbox/test_jail.py +0 -724
- eawf-0.6.8/tests/runtime/test_headless_token_capture_w29.py +0 -203
- eawf-0.6.8/tests/runtimes/__init__.py +0 -0
- eawf-0.6.8/tests/runtimes/claude/__init__.py +0 -0
- eawf-0.6.8/tests/runtimes/claude/test_spawn_session.py +0 -702
- eawf-0.6.8/tests/runtimes/codex/__init__.py +0 -0
- eawf-0.6.8/tests/runtimes/codex/test_spawn_session.py +0 -1002
- eawf-0.6.8/tests/runtimes/opencode/__init__.py +0 -0
- eawf-0.6.8/tests/snapshots/statusline/__init__.py +0 -0
- eawf-0.6.8/tests/snapshots/svg/__init__.py +0 -0
- eawf-0.6.8/tests/snapshots/tui/__init__.py +0 -0
- eawf-0.6.8/tests/state/__init__.py +0 -0
- eawf-0.6.8/tests/state/test_session_models.py +0 -228
- eawf-0.6.8/tests/tui/__init__.py +0 -0
- eawf-0.6.8/tests/tui/test_config_coverage_gap.py +0 -170
- eawf-0.6.8/tests/tui/test_dispatch_tui.py +0 -139
- eawf-0.6.8/tests/tui/test_fleet_affordance.py +0 -568
- eawf-0.6.8/tests/tui/test_modes_doctor.py +0 -872
- eawf-0.6.8/tests/tui/test_palette_theme.py +0 -292
- eawf-0.6.8/tests/tui/test_status_tint_baseline.py +0 -83
- eawf-0.6.8/tests/unit/__init__.py +0 -0
- eawf-0.6.8/tests/unit/audit_dsl/__init__.py +0 -0
- eawf-0.6.8/tests/unit/cli/__init__.py +0 -0
- eawf-0.6.8/tests/unit/cli/test_version_display.py +0 -331
- eawf-0.6.8/tests/unit/daemon/__init__.py +0 -0
- eawf-0.6.8/tests/unit/lifecycle/__init__.py +0 -0
- eawf-0.6.8/tests/unit/lifecycle/test_integration_barriers.py +0 -260
- eawf-0.6.8/tests/unit/lifecycle/test_transition_tables.py +0 -290
- eawf-0.6.8/tests/unit/metrics/__init__.py +0 -0
- eawf-0.6.8/tests/unit/propose/__init__.py +0 -0
- eawf-0.6.8/tests/unit/render/__init__.py +0 -0
- eawf-0.6.8/tests/unit/spec/__init__.py +0 -0
- eawf-0.6.8/tests/unit/spec/test_assign_oracle_tier.py +0 -149
- eawf-0.6.8/tests/unit/spec/test_criterion_schema.py +0 -272
- eawf-0.6.8/tests/unit/spec/test_validate_criterion_gate_refs_oracle_tier.py +0 -178
- eawf-0.6.8/tests/unit/state/__init__.py +0 -0
- eawf-0.6.8/tests/unit/state/test_v1_20_contracts.py +0 -425
- eawf-0.6.8/tests/unit/test_codex_rollout_counters.py +0 -165
- eawf-0.6.8/tests/unit/test_commit_prefix_lint.py +0 -976
- eawf-0.6.8/tests/unit/test_config_layered.py +0 -449
- eawf-0.6.8/tests/unit/test_eawf_loc_cap.py +0 -381
- eawf-0.6.8/tests/unit/test_enums.py +0 -528
- eawf-0.6.8/tests/unit/test_evidence_cmd_inventory.py +0 -93
- eawf-0.6.8/tests/unit/test_idle_surface_report.py +0 -91
- eawf-0.6.8/tests/unit/test_layered_config.py +0 -688
- eawf-0.6.8/tests/unit/test_metrics_dispatch_cost.py +0 -144
- eawf-0.6.8/tests/unit/test_plan_show.py +0 -809
- eawf-0.6.8/tests/unit/test_plugin_conflict_detect.py +0 -54
- eawf-0.6.8/tests/unit/test_render_claude_agents.py +0 -220
- eawf-0.6.8/tests/unit/test_runtime_capture_hook.py +0 -289
- eawf-0.6.8/tests/unit/test_sources_codex_opencode.py +0 -475
- eawf-0.6.8/tests/unit/test_transcript_counters.py +0 -635
- eawf-0.6.8/tests/unit/test_vcs_coauthor.py +0 -92
- eawf-0.6.8/tests/unit/test_wave_close_actuals.py +0 -759
- eawf-0.6.8/tests/unit/tui/__init__.py +0 -0
- eawf-0.6.8/tests/unit/verify/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/agents/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/agents/specs/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/audit_dsl/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/dispatch/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/dispatch/test_retry.py +0 -526
- eawf-0.6.8/tests/workflow/dispatch/test_verdict.py +0 -1496
- eawf-0.6.8/tests/workflow/evidence/test_incident_fold.py +0 -153
- eawf-0.6.8/tests/workflow/lifecycle/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/lifecycle/conftest.py +0 -16
- eawf-0.6.8/tests/workflow/lifecycle/test_ceremony.py +0 -165
- eawf-0.6.8/tests/workflow/lifecycle/test_commit_pin_scan.py +0 -545
- eawf-0.6.8/tests/workflow/lifecycle/test_waivers.py +0 -1166
- eawf-0.6.8/tests/workflow/lifecycle/test_wave_claim.py +0 -707
- eawf-0.6.8/tests/workflow/lifecycle/test_wave_plan_floor.py +0 -306
- eawf-0.6.8/tests/workflow/skills/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/test_i09_jury_bindings_wired.py +0 -313
- eawf-0.6.8/tests/workflow/test_i11_track_bindings_wired.py +0 -137
- eawf-0.6.8/tests/workflow/test_outcome_comparator.py +0 -293
- eawf-0.6.8/tests/workflow/test_qa_gate_register.py +0 -148
- eawf-0.6.8/tests/workflow/test_resolve_routing_wired.py +0 -437
- eawf-0.6.8/tests/workflow/test_runtime_capture_present.py +0 -51
- eawf-0.6.8/tests/workflow/verify/__init__.py +0 -0
- eawf-0.6.8/tests/workflow/verify/test_dispatch_close.py +0 -384
- eawf-0.6.8/tests/workflow/verify/test_readiness.py +0 -1506
- eawf-0.6.8/tools/commit_prefix_lint.py +0 -806
- eawf-0.6.8/tools/idle_surface_report.py +0 -109
- eawf-0.6.8/uv.lock +0 -1317
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.agents/plugins/marketplace.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.claude-plugin/marketplace.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-20-p26-i01-surfaces.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-21-p26-i01-tui-fixes.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-22-p26-i02-tui-qol.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-23-p27-i02-review-fixes.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-23-p27-i03-closure.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-24-p27-i04-closure.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-25-p27-i05-backlog-closeout.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-26-p27-i06-cleanup-closeout.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-05-27-p28-i01-verify-spine-closeout.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-01-A44-P29-i01-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-01-A45-P29-i02-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-02-A46-P29-i03-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-02-A47-P29-i04-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-03-A48-P29-i05-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-03-A49-P29-i06-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-03-A50-P29-i07-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-03-A51-P29-i08-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-04-A52-P29-i09-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-06-A53-P29-i10-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-06-A54-P29-i11-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-07-A55-P29-i12-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-07-A56-P29-i13-closeout.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-10-A59-P30-i02-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-10-A60-P30-i03-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-10-A61-P30-i04-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-10-A62-P30-i05-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-10-A63-P30-i06-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-12-A-P30-i16-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-12-A-P30-i17-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-12-A-P30-i18-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-12-A-P30-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-06-13-A-P30-I20-W21-repair.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-07-02-A-P30-I20-iter-close.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-07-02-A-P30-I22-flow-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-07-04-A-P30-I24-iter-close.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-07-14-A-P30-I21-iter-close.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/2026-07-14-A-P30-I25-iter-close.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A09-P08-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A10-P09-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A11-P10-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A12-P11-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A13-P12-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A14-P13-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A15-P14-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A16-P14-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A17-P14-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A18-P14-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A19-P14-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A20-P15-p15-skills-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A21-P16-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A22-P17-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A23-P18-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A24-P19-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A25-P19-I02-W16-backlog-bulk-close.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A26-P19-I02-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A27-P20-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A28-P22-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A29-P23-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A30-P24-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/A31-P25-ship-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/audit-2026-05-28-p28-i03-deep-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/audits/v0.1-closeout.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-i23-live-drive/2026-07-03-attestation.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-i23-live-drive/close_gates.log +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-i23-live-drive/dispatch_cost.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-i23-live-drive/events.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-i23-live-drive/jail_smoke.log +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-i23-live-drive/summary.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-i23-live-drive/watch_tail.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-03-v060-reval/2026-07-03-attestation.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-13-eu-capture/2026-07-13-attestation.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-13-eu-capture/state-rows.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/evidence/2026-07-13-eu-capture/stop-payload-keys.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/incidents/2026-06-02-tui-brief-criteria-drift.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/plans/2026-07-03-v0.6.0-reclose-runbook.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/2026-06-10-P30-I05-W10-wall-clock-fallback.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c00-spec-index.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c01-foundations.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c02-daemon-topology.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c03-spec-infrastructure.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c04-workflow-skills.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c05-cli-surface.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c07a-runtime-skill-dispatch.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c07b-vcs-worktree-events.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-16-c08-configurability-profiles.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-17-c06-operator-surface.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-17-c09-quality-observability.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-17-c10-operations.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-17-c11-external-integrations.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-17-spec-series-combined-audit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-18-authority-map.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-18-c12-implementation-rollup.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-18-future-ideas.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-18-migration-dag.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/2026-05-19-sdk-prerelease-probe.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/c04a-workflow.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/c04b-skills.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/c04c-agent.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/long-term/c04d-runtime.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/research-2026-05-24-python-package-structure.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/research/research-2026-05-30-tui-chassis.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/reviews/2026-07-03-i22-preship-review.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/artifacts/reviews/2026-08-07-v07-packet-round3-verification.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/bench/thresholds.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/config.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/profiles/researchcfg.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/store/commit_repin.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/store/flow.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/store/gold_label.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/store/legacy_audit_disposition.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.ea/store/reviewer_report.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.eawf/drift-acks.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.gitattributes +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.github/workflows/reviewdog.yml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.gitignore +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.python-version +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.secrets.baseline +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.vale/styles/eawf/InternalCode.yml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/.vale/styles/eawf/Readability.yml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/CONTRIBUTING.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/LICENSE +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/benches/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/benches/daemon_cold_spawn.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/benches/validate_invariants.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/_static/tutorial/profile-picker.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/_static/tutorial/tui-command-palette.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/_static/tutorial/tui-repo-dashboard.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/_static/tutorial/tui-status-fallback.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/agent-reports.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/audit-checks.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/cli-surface.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/coauthor.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/envelope.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/installation.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/memory.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/overview.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/plugins.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/profiles.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/source-map.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/state-model.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/statusline.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/tui.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/windows-named-pipe-threat-model.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/architecture/workflow.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/concepts.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/conventions.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/help/daemon.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/help/exit-codes.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/help/migration.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/help/profiles.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/help/streaming.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/help/urns.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/policy/agents-claude-md.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/policy/fixed-decisions.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/policy/no-plan-md.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/autogen/event.schema.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/autogen/output-envelope.schema.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/coverage-gates.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/doctor.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/enums.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/error-codes.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/exit-codes.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/hook-events.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/index.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/lockfile-semantics.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/mutation-testing.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/qa-gate-register.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/snapshot-gate.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/reference/urn-namespace.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/agent-driven-cadence-adr-pointer.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/agent-driven-large-phase-pr.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/agent-driven-phase-equals-release.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/artifact-chassis.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/clarity-contract.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/code-craft-dry.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/code-craft-explicit-over-implicit.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/code-craft-fail-fast.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/code-craft-single-responsibility.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/engineering-practice.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/engineering-principles.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/entity-title-naming.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/gate-fire-proof-sunset.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/lean-wave-verification.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/memory-hygiene.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/naming-conventions.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/orchestrator-decision-surface.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/planned-scope-revisability.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/release-process.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/ship-process.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/spike-workflow.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/rules/workflow-lifecycle.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/tutorial/profile-picker.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/tutorial/research-campaigns.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/tutorial/troubleshooting.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/docs/tutorial/tui-tour.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/__main__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/config/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/config/loader.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/config/migration.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/config/profile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/config/registry/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/config/registry/coercion.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/config/registry/leaf_keys.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/fsync.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/_base.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_0_to_v1_1.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_10_to_v1_11.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_11_to_v1_12.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_12_to_v1_13.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_13_to_v1_14.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_14_to_v1_15.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_15_to_v1_16.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_16_to_v1_17.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_17_to_v1_18.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_18_to_v1_19.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_19_to_v1_20.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_1_to_v1_2.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_2_to_v1_3.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_3_to_v1_4.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_4_to_v1_5.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_5_to_v1_6.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_6_to_v1_7.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_7_to_v1_8.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_8_to_v1_9.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/migrations/v1_9_to_v1_10.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/auq_bridge.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/cache.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/campaign_driver.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/eval_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/heuristics.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/intent.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/iter.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/live_rounds.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/math.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/operator_input.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/phase.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/pruning.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/research_campaign.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/roadmap_plan.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/round_loop.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/rubric.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/saturation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/validators.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/visual.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/wave.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/spec/wave_body.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/ids.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/io.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/migration.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/mutations.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/resolve.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/types.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/urn.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/wave_graph.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/state/writer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/append.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/compact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/envelope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/actual.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/agent_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/commit_repin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/config_updated.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/decision.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/estimate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/event.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/agent_output_chunk.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/base.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/cache_mislayer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/dispatch_cost.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/runtime_switched.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/session_continued.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/events/session_failover.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/flow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/gate_receipt.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/incident.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/jury_ballot.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/legacy_audit_disposition.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/memory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/operator_input.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/registry_updated.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/research_campaign.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/research_round.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/spec_updated.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/kinds/subscription_lag.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/store/paths.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/validate/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/validate/invariants.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/kernel/validate/strict.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/bench/harness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/bench/seed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/doctor/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/doctor/daemon_checks.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/doctor/doc_verify.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/doctor/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/doctor/repair.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/doctor/report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/doctor/workflow_health.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/cross_vendor_jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/experiments/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/experiments/rule_adherence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/jury_validation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/reputation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/rule_adherence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/score.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/eval/self_eval.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/logging/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/logging/scrub.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/metrics/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/metrics/odr.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/_VENDOR_PROVENANCE.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/join.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/otel.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/pricing.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/projector.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/sources/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/sources/base.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/sources/claude_session.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/sources/dispatch_cost.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/sources/event_jsonl.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/sources/opencode_session.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/store/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/store/base.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/store/duckdb_store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/observability/telemetry/store/sqlite_store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/artifacts/references.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/artifacts/validation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/backup/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/backup/service.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/backup/store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/docs/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/install/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/install/gitignore_writer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/install/instrument_probe.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/install/steps.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/install/wizard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/_conditional.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/clarity_anchors.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf001.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf002.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf003.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf010.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf011.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf012_design_provenance.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf013_bracket_position.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf014_no_manual_wrap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf015_ears_advisory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf016_title_clarity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf017_inline_reference.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf018_structure_smell.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf019_math_facets.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf021_measurable_criterion.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf022_propose_coverage.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf023_artifact_placement.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/eawf024_test_tier_contract.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/sigil_totality.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/tools/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/tools/agents_md_budget.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/tools/astgrep_floor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/tools/eawf020_laconic_bullet.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/tools/title_backfill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/lint/validate_prose.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/digest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/gc.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/markdown_view.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/promotion.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/prune.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/render_context.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/staleness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/memory/store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/clarity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/compose.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/a11y.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/agent_driven.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/apps.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/docs.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/game.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/infra.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/ml.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/python.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/quality.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/quant.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/re.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/research.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/data/robotics.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/discovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/loader.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/selection.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/profiles/trust.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/registry/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/registry/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/registry/staleness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/render_block.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/scrub/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/scrub/scan.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/AGENTS.md.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/CLAUDE.md.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/SKILL.md.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/agent.md.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/hook.sh.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/marketplace.json.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/plugin-readme.md.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/plugin.json.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/claude/settings.json.fragment.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/init/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/init/engineering.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/init/research.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/init/reverse-engineering.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/platform/templates/themes.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/py.typed +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/budget/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/budget/policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/budget/service.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/ci_loop/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/ci_loop/parser.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/ci_loop/policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/auth.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/budget_interlock.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/bus.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/close_workspace.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/dispatch_runner.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/gate_receipt_hygiene.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/idle.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/lifecycle.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/agent.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/daemon.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/event.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/needs_user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/registry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/spec_sync_lints.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/state_subscribe.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/methods/wal_admin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/recovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/runtime_dir.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/service_install.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/session.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/session_ttl.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/singleton.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/stale_wave.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/wal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/win_service.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/windows_pipe.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/daemon/windows_security.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/hooks/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/hooks/event.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/lock/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/lock/portalock.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/lock/sibling.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/lock/stale.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/mcp/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/mcp/catalog.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/mcp/env_ref.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/mcp/installer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtime_counter_sidecar.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/cache_control.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/cancel.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/capabilities.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/capabilities.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/hook_map.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/hooks_router.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/plugin_update.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/runtime_counters.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_install.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/context_tokens.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/hooks_plugins.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/mcp_health.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/memory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/model_session_cwd.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/state.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/statusline_modules/token_saving.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/claude/transcript_counters.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/hook_map.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/plugin_conflict.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/plugin_doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/plugin_install.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/plugin_package.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/rollout_counters.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/codex/skills.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/dispatch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/fallback.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/helpers/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/helpers/fs.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/helpers/json_canonical.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/helpers/sidecar.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/manifest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/metering.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/opencode/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/opencode/plugin_conflict.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/opencode/plugin_doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/opencode/templates/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/opencode/templates/plugin.js +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/plugin_doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/plugin_manifest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/plugin_sync.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/probes/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/runtimes/selector.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/sandbox/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/sandbox/argv_policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/sandbox/cwd_guard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/sandbox/egress.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/sandbox/egress_proxy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/sandbox/policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/session/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/session/recovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/statusline_cache.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/vcs/coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/worktree/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/worktree/autoland.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/worktree/cleanup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/worktree/create.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/worktree/locks.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/worktree/merge_back.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/runtime/worktree/wave_land.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/schemas/config.schema.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/schemas/plan-view.schema.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/schemas/skill-output.schema.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/_daemon_client.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/_dispatch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/_mutation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/_stdin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/_version_display.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/app.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/agent_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/backfill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/backup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/calibrate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/cc.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/clone_repo.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/close.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/completion.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/daemon.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/dispatch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/doc.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/draft.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/estimation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/evidence_backlog.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/evidence_hypothesis.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/evidence_incident.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/flow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/help.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/impact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/init.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/lifecycle_wave_read.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/mcp.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/memory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/memory_read.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/memory_write.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/metrics.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/migrate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/plan.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/plugin_render.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/pr.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/pr_review.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/profile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/render_output.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/repo.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/repo_link.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/repo_registry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/roadmap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/schema.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/session.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/skill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/state.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/status.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/statusline.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/sync.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/telemetry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/track.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/validate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/vfl.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/wal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/wave_ci.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/wave_policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/why.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/wiki.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/workspace.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/commands/worktree.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/error_codes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/errors.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/exit_codes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/flags.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/help_panels.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/output.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/registry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/scope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/cli/streaming.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/doctor_repair.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/_atomic.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/agent_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/agents_md.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/artifact_chassis.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/assets/ea-seal.svg +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/audit_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/bars.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/brand.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/changelog.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/claude_shim.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/decision_graph.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/drift.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/envelope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/eu.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/frontmatter.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/hooks.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/impact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/link_wrap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/manifest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/metrics_view.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/mode.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/narrative.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/plan_view.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/pr_body.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/regions.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/release_notes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/skills/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/snapshot_normalize.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/spinner.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/statusline.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/units.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/render/wiki.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/app.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/attention.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/calibration_drill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/evidence_drill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/evidence_reader.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/report_detail.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/tour.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/tour_cards.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modals/verifier_drill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/agent_watch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/brief_viewer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/feed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/nav.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/placeholder.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/registry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/research_board.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/sandbox_events.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/modes/trust.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/offline.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/palette/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/palette/command_palette.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/palette/verbs.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/poc_defects.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/scopes/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/scopes/_zoom.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/scopes/repo.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/scopes/user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/scopes/workspace.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/help.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/arm.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/audit_failed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/audit_running.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/config_modal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/config_modal_logic.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/confirm.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/cross_repo_pr.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/detail.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/detail_attempts.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/detail_cost.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/detail_incident.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/edit_field.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/events.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/fork_inbox.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/init_wizard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/init_wizard_render.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/metrics.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/multichoice_checklist.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/needs_user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/needs_user_inbox.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/plan_preview.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/pr_list.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/reference.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/screens/overlays/run_summary.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/snapshot/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/snapshot/asciinema.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/snapshot/behaviour_probe.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/snapshot/pilot_harness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/state_binding.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/toast_emitter.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/attention_feed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/backlog_table.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/calibration_table.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/cvd.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/empty_state.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/eu_bar.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/footer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/git_pane.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/header.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/heartbeat.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/markup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/output_tail.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/progress.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/registry_pane.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/roadmap_tree.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/seal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/sigils.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/status_pane.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/status_tint.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/variance_tile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/surfaces/tui/widgets/workspace_table.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/agent_report/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/agent_report/rollup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/agent_report/store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/agents/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/agents/specs/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/agents/specs/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/agents/specs/roles.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/affordance_parity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/backlog_resolution.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/criterion_in_diff.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/journal_chain.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/jury_calibrated.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/mockup_image_diff.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/schema_validate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/svg_pixel_diff.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/svg_well_formed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/transition_coverage.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/tui_flow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/kinds/verify_implements.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/register_lint.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/registry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/audit_dsl/runner.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/clarity_judge.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/cost_ab.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/llm_assist.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/routing.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/seed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/spec_jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/dispatch/verdict.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/buckets.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/eu.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/metrics.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/recovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/segments.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/thresholds.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/estimation/trust_scorecard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/_io.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/artifact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/backlog.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/chain.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/decision.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/evibound.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/goal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/guards.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/hypothesis.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/incident.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/outcome.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/resolve.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/rung2.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/rung3.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/evidence/rung4.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/_audit_acceptance.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/_capacity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/_claim_guards.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/_claim_session.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/allocator.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/ceremony.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/criterion_drift.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/integration.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/legacy_audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/project.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/repin_provenance.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/spec.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/spec_archive.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/track.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/transitions.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/lifecycle/waivers.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/pr_review/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/pr_review/parser.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/pr_review/policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/propose/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/propose/coverage.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/propose/generator.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/_bootstrap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/_common.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/agent_dispatch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/blitz.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/agent_dispatch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/blitz.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/compress.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/differentiate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/flow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/init.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/memory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/mockup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/polish.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/prep.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/review.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/roadmap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/security_review.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/ship.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/user_question.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/bodies/wave_spec.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/clarify.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/compress.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/differentiate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/discovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/engine.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/flow/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/flow/store_io.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/init.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/memory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/needs_user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/polish.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/prep.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/registry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/review.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/roadmap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/security_review.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/ship.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/skills/wave_spec.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/verify/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/verify/compile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/verify/dispatch_close.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/verify/models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/src/eawf/workflow/verify/preflight.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/templates/dev.eawf.eawfd.plist.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/templates/eawfd.service.j2 +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/_criteria_helpers.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/_session_helpers.py +0 -0
- {eawf-0.6.8/tests/cli → eawf-0.7.0.dev1/tests/contract}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/contract/test_runtime_resolution_contract.py +0 -0
- {eawf-0.6.8/tests/contract → eawf-0.7.0.dev1/tests/e2e}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/e2e/conftest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/e2e/test_agent_dispatch_e2e.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/e2e/test_daemon_e2e.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/e2e/test_lifecycle_consistency.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/e2e/test_spec_jury_poc.py +0 -0
- {eawf-0.6.8/tests/daemon → eawf-0.7.0.dev1/tests/eval}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/conftest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/experiments/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/experiments/golden/rule_adherence_experiments.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/experiments/test_rule_adherence_experiments.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/golden/audit.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/golden/polish.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/golden/prep.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/golden/research.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/golden/review.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/golden/ship.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/binary-blocked-veto.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/binary-minority-veto.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/binary-split-no-veto.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/binary-unanimous-pass.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/graded-consensus-fail.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/graded-consensus-pass.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/graded-high-variance.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/graded-midband-split.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/mixed-both-pass.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/mixed-veto-dominates.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/single-binary-pass.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/fixtures/single-binary-veto.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/test_aggregate_jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/test_cross_vendor_jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/test_jury_reliability.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/test_jury_reliability_wiring.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/jury/test_per_item_jury.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_gold_label_seed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_jury_block_authority.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_jury_stores.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_jury_validation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_jury_validation_probes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_jury_validation_reducer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_reputation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_rule_adherence_corpus.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_self_eval.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/test_skill_eval.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/waves/recorded/bare-python.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/waves/recorded/baseline.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/waves/recorded/clean.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/waves/recorded/destructive-git.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/waves/recorded/direct-state-edit.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/waves/recorded/missing-rtk.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/eval/waves/recorded/pydantic-extra-open.json +0 -0
- {eawf-0.6.8/tests/e2e → eawf-0.7.0.dev1/tests/fixtures}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/bench/small-event.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/bench/small.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/conftest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/VIS1_gate_spec.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/evidence_mode_reference.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/init_wizard_j1_actual_tui_screenshot.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/init_wizard_j1_redesign_mockup.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/init_wizard_j1_redesign_mockup.svg +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/mockup_round_1col.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/roadmap_board_reference.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/tui_round_1col_faithful.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/tui_round_2col_divergent.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/mockup_image_diff/tui_square_1col_divergent.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/01-extra-field.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/02-iter-references-missing-phase.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/03-wave-id-parent-mismatch.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/04-current-points-to-closed-phase.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/05-closed-phase-with-open-iter.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/06-outcome-met-no-audit.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/07-hypothesis-verdict-no-audit.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/08-bad-urn.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/09-active-wave-not-claimed.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/10-mcp-non-eawf-owner.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/11-plugin-non-claude.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/12-scope-repo-no-project.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/13-scope-workspace-no-index.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/14-current-iter-phase-mismatch.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/15-plugin-non-eawf-owner.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/16-closed-phase-no-closed-at.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/17-closed-wave-no-closed-at.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/invalid/18-stale-session-no-ended-at.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/01-empty-repo.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/02-single-phase-active.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/03-phase-iter-wave-active.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/04-research-profile-materialized.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/05-workspace-state.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/06-multi-subproject.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/07-decisions-and-backlog.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/08-incident-open.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/09-estimates-and-actuals.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/states/valid/10-memory-and-mcp.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/store/incident_sample.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/telemetry/claude/sess-placeholder-aaaa.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/telemetry/claude/sess-placeholder-bbbb.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/telemetry/store/audit.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/telemetry/store/event.jsonl +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/fixtures/telemetry/store/executor_report.jsonl +0 -0
- {eawf-0.6.8/tests/eval → eawf-0.7.0.dev1/tests/golden}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/auditor.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/domain-specialist.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/executor.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/operator.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/planner.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/polisher.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/researcher.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/agent_report/reviewer.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/audit_dsl/sample.yaml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/cli/help_panels.golden.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/envelope/blocked.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/envelope/failed.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/envelope/needs_user.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/envelope/ok.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/envelope/partial.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/mcp/claude_mcp.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/mcp/claude_settings.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/mcp/codex_config.toml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/mcp/opencode_config.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/migrations/v1_19_to_v1_20.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/narrative/wave_first.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/narrative/wave_second.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/hooks/session_end.sh +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/add-property-test/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/agent-dispatch/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/blitz/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/coauthor/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/compress/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/design/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/differentiate/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/extract-function/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/extract-module/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/graduate-research-code/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/init/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/math-explainer/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/memory/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/mockup/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/refactor-god-class/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/research/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/roadmap/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/security-review/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/spike/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/wave-spec/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude/skills/write-adr/SKILL.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/claude.mcp.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/codex/agents/executor.toml +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/agents/auditor.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/agents/executor.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/agents/planner.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/agents/polisher.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/agents/reviewer.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/agent-dispatch.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/blitz.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/coauthor.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/compress.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/design.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/differentiate.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/init.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/math-explainer.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/memory.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/mockup.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/research.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/roadmap.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/security-review.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/spike.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/commands/wave-spec.md.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/plugin_install/opencode/opencode.json.golden +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/full_wave.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/role_surface_parity/executor.system_prompt.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/auditor.claude-code.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/auditor.codex.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/auditor.opencode.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/executor.claude-code.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/executor.codex.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/executor.opencode.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/planner.claude-code.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/planner.codex.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/planner.opencode.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/polisher.claude-code.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/polisher.codex.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/polisher.opencode.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/reviewer.claude-code.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/reviewer.codex.md +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/subagent_spec/roles/reviewer.opencode.md +0 -0
- {eawf-0.6.8/tests/fixtures → eawf-0.7.0.dev1/tests/golden/surfaces/cli}/__init__.py +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/cli}/scenarios/enrich_existing/state.golden.json +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/cli}/scenarios/flow_full/state.golden.json +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/cli}/scenarios/fresh_repo/state.golden.json +0 -0
- {eawf-0.6.8/tests/golden/scenarios → eawf-0.7.0.dev1/tests/golden/surfaces/cli}/test_scenarios.py +0 -0
- {eawf-0.6.8/tests/golden/plan_view → eawf-0.7.0.dev1/tests/golden/surfaces/render}/conftest.py +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_only/expected.json +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_only/expected.md +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_only/state.json +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_python/expected.json +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_python/expected.md +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_python/state.json +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_python_research/expected.json +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_python_research/expected.md +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/golden/surfaces/render}/plan_view/core_python_research/state.json +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/test_envelope_fixtures.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/test_golden_agents_md.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/test_golden_subagent_spec.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/test_plugin_install_opencode.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/tui_config_modal/modal_default.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/tui_config_modal/modal_editing.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/tui_config_modal/modal_saved_toast.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/golden/tui_config_modal/modal_ui_tab.txt +0 -0
- {eawf-0.6.8/tests/golden → eawf-0.7.0.dev1/tests/integration}/__init__.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/kernel/spec/test_research_campaign.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/kernel/spec/test_round_loop.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_agent_output_chunk_producer.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_agent_output_producer.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_arm_caps_halt.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_close_workspace.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_cross_vendor_spawn_integ.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/runtime/daemon/test_dispatch_close_gate.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_dispatch_cost_accrual.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_drive_loop_failure_bounds.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_executor_report_authority.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_autopilot_acceptance.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_budget.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_close_gates.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_control_rpcs.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_dispatch_error_accounting.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_drive.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_drive_background.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_fork.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_frontier_recompute.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_needs_user_and_authority.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_pause.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_reattach.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_repair_exhaustion.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_risk_tier.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_fleet_summary.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_spawn_deny_list.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_spawn_executor_report_binding.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_wave_cross_vendor_jury_gate.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/runtime}/daemon/test_wave_verdict_gate.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/runtime/hooks/fixtures/claude_session_end_stdin.json +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/runtime/hooks/fixtures/claude_session_transcript.jsonl +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/runtime/hooks/test_session_end_stdin.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/integration/runtime/vcs}/test_spec_archive_force.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/surfaces}/cli/test_campaign_dryrun_cancel_w34.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/surfaces}/cli/test_close_status_render.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/surfaces}/cli/test_iter_close_archive_specs.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration/surfaces}/cli/test_statusline_install_wizard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_backup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_backup_ts_traversal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_agent_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_artifact_chassis.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_artifact_verify.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_backfill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_clone_repo.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_close_async.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_config.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_config_menu.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_dispatch_pause.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_dispatch_wave.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_doctor_full.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_errors.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_flags.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_help_groups.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_help_panels.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_hook_dispatch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_hook_run.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_hook_vale_prose.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_hook_validate_prose.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_init_idempotence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_init_interactive.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_iter_audit_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_lifecycle.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_mcp.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_mcp_grant.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_memory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_memory_digest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_metrics.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_output.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_render_output.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_repo.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_repo_add.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_repo_link.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_repo_prune.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_repo_remove.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_research_campaign.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_research_question_status.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_session.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_skill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_skill_reconcile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_skill_render.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_skill_resume.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_state_resolve.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_status.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_store_compact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_sync.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_sync_re_renders_idempotently.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_wave_close_commit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_wave_close_commit_plumbing.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_wave_dag.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_wave_policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_wave_policy_cmd.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_workspace.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_cli_workspace_subcommands.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_close_gate_affordance_parity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_close_gate_evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_close_gate_mockup_golden_diff.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_close_gate_oracle.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_coauthor_verification.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_config_migration_1_0.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_daemon_event_emit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_dispatch_runner_agent_end.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_dispatch_runner_budget_halt.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_dispatch_runner_in_progress.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_dispatch_runner_role_routing.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_doctor_branch_currency.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_doctor_doc_verify.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_doctor_drift_reconciler.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_doctor_stdin_isolation_w29.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_doctor_user_scope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_dual_runtime_envelope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_error_codes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_flow_e2e.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_flow_kill_resume.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_flow_resume.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_init_multi_profile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_inloop_cross_vendor_deny_parity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_install_gitignore.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_lifecycle_ordering.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_mcp_install_existing_user_entry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_mcp_owner_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_memory_sync_roundtrip.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_metrics_jury_validation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_migrate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_p30_i20_w17.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_phase2_acceptance.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_phase_04_acceptance.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_plan_show_e2e.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_plugin_doctor_strict.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_plugin_install_full.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_plugin_package.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_plugin_sync_three_runtimes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_pricing.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_profile_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_profile_composition_loader.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_roadmap_dry_run.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_runtime_event_emission.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_scope_dispatch_ladder.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_sdk_probe_baseline.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_skill_research_brief.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_skill_run_research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_snapshot_pairing_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_spec_rpc.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_spec_sync.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_spec_three_layer_enforcement.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_spec_writer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_status_render.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_statusline_git.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_stdin_guard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_store_paths_consistency.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_surfaces_smoke.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_validate_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_variance_calibrate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_verdict_enforced.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_verify_implements_cadence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_vfl_approve.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_ack_drift_cmd.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_autoland.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_autoland_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_budget_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_dispatch_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_dispatch_runtime.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_fix_ci_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_land.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_land_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_review_cli.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_wave_verify_commits_cmd.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_windows_atomic_floor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_cleanup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_cli_cleanup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_cli_create.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_cli_merge_back.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_create.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_git.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_git_w01.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/integration/test_worktree_merge_back.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/audit_dsl/test_registry_timeouts.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/estimation/test_trust_scorecard.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_iter_audit_gate.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_iter_candidate_tag.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_iter_odr_gate.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_phase_close_stub_audit.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_phase_plan_release.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_phase_ship_gate_drift_audit.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_phase_track_stamp.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_transitions.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_wave_sha_diff_base.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/lifecycle/test_wave_sha_index.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/test_sync_track_outcomes.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/verify/conftest.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/verify/test_backlog_resolution_view.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/verify/test_compile.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/verify/test_floor_pack_integration.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/verify/test_preflight.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/integration}/workflow/verify/test_seams.py +0 -0
- {eawf-0.6.8/tests/golden/scenarios → eawf-0.7.0.dev1/tests/lint}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_artifact_placement.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_branch_backup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_fresh_deterministic_evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_i20_i21_legacy_drain.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_i22_ledger_reconcile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_i22_review_artifact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_i23_drive_recording.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/lint/test_visual_gate_census.py +0 -0
- {eawf-0.6.8/tests/integration → eawf-0.7.0.dev1/tests/perf}/__init__.py +0 -0
- {eawf-0.6.8/tests/kernel/state → eawf-0.7.0.dev1/tests/platform}/__init__.py +0 -0
- {eawf-0.6.8/tests/kernel/store → eawf-0.7.0.dev1/tests/platform/lint}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_agents_md_budget.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_astgrep_floor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_conditional_reuse.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_eawf012_015_clarity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_eawf016_title_clarity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_eawf017_inline_reference.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_eawf018_structure_smell.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_eawf019_math_facets.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_eawf020_laconic_bullet.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_eawf021_022.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/lint/test_validate_prose.py +0 -0
- {eawf-0.6.8/tests/lint → eawf-0.7.0.dev1/tests/platform/profiles}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/profiles/test_verify_block.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/test_artifact_uri_rewrite.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/test_kind_subdir.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/platform/test_output_style.py +0 -0
- {eawf-0.6.8/tests/perf → eawf-0.7.0.dev1/tests/property}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_envelope_roundtrip_typed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_estimation_property.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_evidence_concurrent_property.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_flow_random_kill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_hook_event_idempotence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_lifecycle_stateful.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_mcp_env_ref_roundtrip.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_memory_compaction_idempotence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_profiles_compose.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_reference_history_ring.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_render_envelope_roundtrip.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_render_regions_roundtrip.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_wave_claim_property.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_worktree_concurrent.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/property/test_writer_property.py +0 -0
- {eawf-0.6.8/tests/perf/cli → eawf-0.7.0.dev1/tests/snapshots/statusline}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/statusline/golden/bars.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/statusline/golden/three_rows.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/statusline/test_statusline_bars.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/statusline/test_statusline_rows.py +0 -0
- {eawf-0.6.8/tests/perf/tui → eawf-0.7.0.dev1/tests/snapshots/svg}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/bar_swap.svg +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/fixtures/block_eighths_bar.svg +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/fixtures/fenced_malformed.svg +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/fixtures/status_legend.svg +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/fixtures/well_formed.svg +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/fonts/EawfTestMono-Regular.ttf +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/golden/status_legend.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/golden/well_formed.png +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/test_status_legend_golden.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/svg/test_svg_oracle.py +0 -0
- {eawf-0.6.8/tests/platform → eawf-0.7.0.dev1/tests/snapshots/tui}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/conftest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/agent_watch_lane_grid_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/agent_watch_lane_grid_four_states.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/agent_watch_reskin_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/agent_watch_reskin_running.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/arm_overlay_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/arm_overlay_populated.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/arm_overlay_populated_w40.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/arm_overlay_populated_w48.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/autopilot_empty_frontier.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/autopilot_split.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/calibration_drill.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/calibration_drill_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/command_palette_sections.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_audit.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_dirty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_discard_prompt.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_flow.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_inline_int.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_planning.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_preferences.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_research.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_reskin_flow_w20.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_runtime.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/config_modal_runtime_lock.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/confirm_overlay.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/cross_repo_pr_overlay.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/detail_overlay.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/detail_overlay_iter_metrics.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/detail_overlay_wave_size.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/doctor_mode.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/doctor_mode_grouped.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/edit_field_int.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/events_overlay.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/evidence_drill.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/evidence_header.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/evidence_ledger.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/evidence_rollup.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/evidence_rollup_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/feed_mode_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/feed_mode_populated.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/feed_mode_sigils.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/footer_strip_repo_w120.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/footer_strip_repo_w80.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/footer_strip_user_w120.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/footer_strip_user_w80.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/footer_strip_workspace_w120.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/footer_strip_workspace_w80.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/help_active_mode.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/help_overlay.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j1_hero.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j1_hero_narrow.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j2_configure.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j2_configure_invalid.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j2_configure_narrow.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j2_error.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j2_execute.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j2_preview.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j3_select.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j3_select_narrow.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j4_done.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j4_done_narrow.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/init_wizard_j4_done_warn.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/metrics_overlay.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/overlay_audit_failed_evidence.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/overlay_audit_running_sigils.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/overlay_plan_preview_frontier.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/overlay_reference_chassis.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/repo_screen.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/research_board_bindings.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/research_board_claims.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/research_board_fa8_autorun.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/research_board_reskin_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/research_board_reskin_populated.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/research_board_unresolved.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/roadmap_scrolled_long_iter.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/run_summary_budget.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/run_summary_budget_w40.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/run_summary_budget_w48.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/run_summary_drained.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/sandbox_events_empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/sandbox_events_populated.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/stale_schema_banner.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/status_pane_awaiting.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/status_pane_selective.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/tour_modal.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/trust_calibration_readiness.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/trust_determinism.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/trust_escape_ledger.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/trust_jury_authority.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/trust_pane_data_starved.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/trust_pane_populated.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/user_screen.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/verifier_drill.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/workspace_chips.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/workspace_pr_count.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/golden/workspace_screen.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_affordance_matrix.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_affordance_parity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_agent_watch_lane_grid.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_agent_watch_reskin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_arm_overlay.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_asciinema.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_autopilot_split.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_bar_swap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_behaviour_probe.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_calibration_drill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_cold_launch_cast.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_command_palette_sections.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_config_modal_lock.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_config_modal_reskin_w20.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_evidence_drill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_evidence_header.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_evidence_ledger.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_evidence_rollup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_footer_width_stress.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_help_active_mode.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_metrics_overlay.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_overlays_reskin_w21.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_pilot_harness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_pilot_harness_quiesce_w11.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_progress_widget.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_render_mode_flip.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_research_board_bindings.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_research_board_claims.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_research_board_reskin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_research_board_unresolved.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_run_summary_overlay.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_sandbox_events_mode.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_screen_snapshots.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_state_binding.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_status_pane_reskin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_tour_modal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_trust_determinism.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_trust_escape_ledger.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_trust_jury_authority.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_trust_tile_calibration.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_tui_flow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_variance_tile_widget.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_verifier_drill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_workspace_chips.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/snapshots/tui/test_workspace_pr_count.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/test_smoke.py +0 -0
- {eawf-0.6.8/tests/platform/lint → eawf-0.7.0.dev1/tests/tui}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/_palette_harness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/conftest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/fork_inbox_w05/empty.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/fork_inbox_w05/populated_w40.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/fork_inbox_w05/populated_w48.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/offline_brand/dashboard_missing_registry.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/offline_brand/status_frame_none.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/reskin_w22/confirm_overlay_reskin.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/reskin_w22/multichoice_checklist.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/reskin_w22/pr_list_grid.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/scope_switch_w06/user_scope_switch.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/golden/scope_switch_w06/workspace_scope_switch.txt +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_app_scaffold.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_arm_spec_transmit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_attention_feed_cold_mount.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_attention_feed_hero.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_attention_feed_pane.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_attention_reducer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_attention_row_selected_contrast.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_blended_token_render_w32.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_brief_viewer_reskin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_calibration_set_from_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_cvd_distinctness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_daemonless_ux_w25.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_degraded_banner_header_w24.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_digit_misroute_w23.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_doctor_probe_leak_w29.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_empty_state_seal_hero.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_evidence_pane_w27.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_fleet_flows.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_fleet_live.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_footer_heartbeat_green_accent_capture.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_header_wordmark_two_tone.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_home_narrow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_init_wizard_snapshots.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_interaction_liveness_selection_w07.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_interaction_liveness_w28.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modals_evidence_reader.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_agent_watch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_agent_watch_grid.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_agent_watch_lane_grid.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_agent_watch_parity.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_agent_watch_rollup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_autopilot.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_chassis.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_evidence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_feed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_research_board.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_sandbox_events.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_modes_trust.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_nav_state.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_needs_user_closed_wave_filter.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_offline.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_offline_brand.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_output_tail.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlay_arm.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlay_fork_inbox.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlay_run_summary.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_audit_failed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_audit_running.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_config_modal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_confirm.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_cross_repo_pr.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_detail.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_detail_cost.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_detail_incident.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_edit_field.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_events.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_help.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_init_wizard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_metrics.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_modal_stack.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_multichoice_checklist.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_needs_user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_needs_user_autoopen.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_needs_user_inbox.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_needs_user_reskin_w19.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_plan_preview.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_pr_list.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_reskin_w22.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_overlays_verb_wiring.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_palette_audit_id.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_palette_command.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_palette_filter_sort.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_palette_find.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_palette_verbs.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_pane_error_boundary.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_pilot_harness_live_probes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_placeholder_reskin.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_poc_defects.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_reference_links.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_research_board_ia_w26.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_research_round_progress.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_scope_grids_narrow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_scope_repo.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_scope_switch_strip.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_scope_user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_scope_user_switch.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_scope_workspace.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_startup_probe_help_guard_w27.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_state_binding_subscription.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_theme_auto.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_theme_green_accent_capture.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_toast_emitter.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_topic_tree_scope_questions_w35.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_tour_cards.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_watch_correctness_w24.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_watch_ux_w33.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_backlog_table.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_eu_bar.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_footer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_footer_needs_user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_git_pane.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_header.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_heartbeat.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_markup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_registry_pane.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_roadmap_tree.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_seal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_sigils.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_status_pane.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_status_tint.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_widgets_workspace_table.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/tui/test_zoom_regression.py +0 -0
- {eawf-0.6.8/tests/platform/profiles → eawf-0.7.0.dev1/tests/unit}/__init__.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/conftest.py +0 -0
- {eawf-0.6.8/tests/property → eawf-0.7.0.dev1/tests/unit/kernel}/__init__.py +0 -0
- {eawf-0.6.8/tests/regression → eawf-0.7.0.dev1/tests/unit/kernel/config}/__init__.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/kernel}/config/test_migration_legacy_shape.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/kernel}/config/test_preferences_config.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/kernel}/config/test_prose_config.py +0 -0
- {eawf-0.6.8/tests/regression → eawf-0.7.0.dev1/tests/unit/kernel/config}/test_proxy_default_flip.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_auq_bridge.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_campaign_driver.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/spec/test_legacy_criterion_converter.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_live_rounds.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_math.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_operator_input.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_pruning.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_research.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/spec/test_saturation.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/spec/test_visual_contract.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/spec/test_wave_body_extractor.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/spec/test_wave_body_schema.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/state/test_gates_migration.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/state/test_iter_wave_ids_normalize.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/state/test_mutations.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/state/test_runtime_baseline.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/state/test_success_criteria_migration.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/kernel}/state/test_wave_intent_backfill.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/store/test_evidence.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/store/test_gate_receipt.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/test_fallback_wal_gc.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/kernel/test_pause_urgency.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/observability}/metrics/test_odr.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/observability/telemetry/test_metrics_projection_helpers.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/observability/telemetry/test_otel.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/unit/platform}/__init__.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/platform/profiles}/test_profiles_compose.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_bus.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_close_gate_auditor_jury_routing.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_daemon_client.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/unit/runtime/daemon}/test_daemon_log_rotation.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_dispatch_cost_labels.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_dispatch_runtime_fallback.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_event_methods.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_evidence_methods.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_gate_receipt_hygiene.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_idle.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/unit/runtime/daemon}/test_idle_watchdog_interlock_w31.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_jury_block_authority_resolve.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_lifecycle.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_main_boot.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_mutation_watchdog.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_needs_user_methods.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_peer_cred.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/runtime/daemon/test_reassert_dispatch_state.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_registry_methods.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_research_question_writer.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_runtime_capture.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_service_install.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_session.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_spawn.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_spec_jury_ballot_fn.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_stale_wave.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_state_root_guard.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_wal.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/unit/runtime/daemon}/test_wal_gc_loop.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_win_service.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_windows_pipe.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/daemon/test_windows_pipe_poc_scenarios.py +0 -0
- /eawf-0.6.8/tests/unit/test_plugin_install_claude.py → /eawf-0.7.0.dev1/tests/unit/runtime/runtimes/claude/test_plugin_install.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/unit/runtime/runtimes/claude}/test_statusline_cache.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/unit/runtime/runtimes/claude}/test_statusline_install.py +0 -0
- /eawf-0.6.8/tests/unit/test_plugin_install_opencode.py → /eawf-0.7.0.dev1/tests/unit/runtime/runtimes/opencode/test_plugin_install.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/runtimes/opencode/test_spawn_session.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/runtimes/test_cache_control.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/runtimes/test_cancel_process_group.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/runtime/runtimes/test_claude_adapter.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/runtimes/test_metering.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/runtimes/test_open_session_role_contract.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/runtimes/test_plugin_manifest.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/runtime}/runtimes/test_skill_adapter_handshake.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/runtime/runtimes/test_stream_json.py +0 -0
- {eawf-0.6.8/tests/runtime → eawf-0.7.0.dev1/tests/unit/runtime/runtimes}/test_stream_json_default_w30.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/runtime/sandbox/test_argv_policy.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/runtime/sandbox/test_cwd_guard.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/runtime/sandbox/test_egress.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/runtime/sandbox/test_egress_proxy.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit/surfaces}/cli/test_config_proxy.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/cli/test_daemonless_close_waiver.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/render/test_bars.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/render/test_eu.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/render/test_spinner.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/render/test_statusline_modes.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/render/test_units.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/render/test_workspace_offline.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/tui/test_evidence_export.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/tui/test_evidence_join.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/surfaces}/tui/test_portfolio_totals.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_agent_report_payload.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_agent_report_rollup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_agent_report_store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_agents_md_decisions_sync.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_aggregator.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_artifact_evibound_promotion.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_artifact_kind_enum.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_artifact_references.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_artifact_sha256_helper.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_audit_dsl.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_backup_restore_atomic.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_blitz_recursion_guard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_brand_glyph_fallback.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_budget_enforce.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_budget_interlock.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_budget_policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_budget_service.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_campaign_synthesis_and_pruning_wire.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_capability_matrix.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_changed_scope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_ci_loop_parser.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_ci_loop_policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_claim_open_question_models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_clarity_contract.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_cli_exit_codes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_cli_scope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_cli_skill_list_payload.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_coauthor_w01.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_compact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_config_layering.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_config_loader.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_config_profile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_config_registry.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_coverage_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_criterion_drift.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_decision_supersede.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_decision_supersede_verb.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_description_floor_and_title_boundary.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_dispatch_envelope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_dispatch_role_tier.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_dispatch_routing.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_doctor_agents_md_byte_cap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_doctor_checks.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_doctor_mcp_drift.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_doctor_repair.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_drift_acks.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_drift_reconciler.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_ea_seal_asset.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_eawf001_rule.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_eawf011_cognitive.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_eawf021_backfill_tool.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_envelope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_envelope_header_footer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_estimation_eu.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_estimation_metrics.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_estimation_recovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_estimation_segments.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_eval_score.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_event_canonical_model.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_event_payload_union.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_event_store_layout.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_artifact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_backlog.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_decision.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_evibound.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_goal.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_hypothesis.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_incident.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_outcome.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_provenance_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_resolve.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_rung2.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_evidence_rung4.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_hook_event.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_hook_router_claude.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_hook_runner.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_idle_contract_binding_probe.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_idle_contract_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_ids.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_incident_payload.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_init_templates.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_insert_coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_install_instrument_probe.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_install_wizard.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_install_wizard_steps.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_intent_brief.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_invariant_mcp_grant_ref.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_invariants.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_iter_bump_hint.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_jury_discrimination_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_kinds.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lifecycle_allocator.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lifecycle_cmd_inventory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lifecycle_phase_prepare_close.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lifecycle_spec.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lifecycle_transitions.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lock_portalock.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lock_sibling.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_lock_stale.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_log_scrub.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_marketplace_catalog_pointers.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_mcp_catalog.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_mcp_env_ref.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_mcp_installer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_mcp_installer_goldens.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_digest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_gc.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_markdown_view.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_promotion.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_prune.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_render_context.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_skill_cli_reconcile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_staleness.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_memory_store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_metrics_export.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_metrics_store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_mkdocs_nav.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_mockup_golden_capture.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_normalize_coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_p30_i16_w14.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_package_layering.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_pause_resolution_model.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_phase_release_workflow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_phase_retro_digest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_doctor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_doctor_claude.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_install_codex.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_install_manifest_persistence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_manifest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_package_codex.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_update_claude.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_version_clean_base.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_plugin_version_sync_060.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_pr_review_parser.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_pr_review_policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_profile_agent_driven.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_profile_body_v2.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_profile_quality.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_profile_track_kind_defaults.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_profile_trust.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_profiles_discovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_profiles_loader.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_projector.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_prompt_rule_clauses.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_recount_build_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_registry_explicit_growth.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_agent_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_agents_md.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_atomic.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_changelog.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_claude_shim.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_decision_graph.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_drift.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_envelope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_hooks_sh.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_impact.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_link_wrap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_manifest.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_narrative.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_pr_body.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_regions.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_release_notes.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_skills_md.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_render_wiki.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_role_contract_projection.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_rule_adherence.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_runtime_adapter.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_runtime_baseline_capture.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_runtime_counter_sidecar.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_runtime_counters.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_runtime_dir_isolation.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_runtime_label_canon.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_runtime_session_rebase.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_schema.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_session_recovery.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_session_store.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_settings_json_managed.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_sigil_totality_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_audit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_bodies.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_design_spike.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_differentiate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_flow.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_init.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_math_explainer.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_mockup.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_polish.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_prep.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_prose_symbol_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_reconcile.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_registry_c04b.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_registry_p11.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_registry_user_catalogue.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_research.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_review.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_roadmap.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skill_ship.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skills_clarify.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skills_common_w01.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skills_engine.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_skills_needs_user.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_snapshot_normalize.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_sources_dispatch_cost.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_sources_jsonl_claude.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_spec_schemas.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_spec_validators.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_state_io.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_state_mcp_grant_model.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_state_memory_tier.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_state_migration.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_state_models.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_state_resolve.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_state_sandbox_policy_model.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_status_project_fallback.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_cache_path.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_config_keys.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_context_tokens.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_hooks_plugins.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_mcp_health.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_memory.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_model_session_cwd.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_render.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_state.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_statusline_token_saving.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_subagent_roles.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_subagent_spec_model.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_telemetry_join.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_title_backfill.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_urn.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_validate_agent_report_invariants.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_validate_invariant_sandbox_scope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_validation_index.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_verify_implements.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_version_coupling.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_wave_dag.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_worktree_home.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_worktree_path_fix.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tests/unit/test_writer.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/agents/specs/test_models_workflow_prefix.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/audit_dsl/test_backlog_resolution.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/audit_dsl/test_journal_chain.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/audit_dsl/test_jury_calibrated.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/audit_dsl/test_mockup_golden_diff.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/audit_dsl/test_registry_kinds.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/workflow}/audit_dsl/test_schema_validate.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/dispatch/test_clarity_judge.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/dispatch/test_cost_ab.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/dispatch/test_llm_assist.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/dispatch/test_renderer_codex.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/dispatch/test_repair_dispatch.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/dispatch/test_spec_jury.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/estimation/test_buckets.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/evidence/test_chain.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/evidence/test_researcher.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/evidence/test_rung3.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/workflow}/propose/fixtures/tui_drift_brief.md +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/workflow}/propose/test_generator_coverage.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/skills/test_research.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/skills/test_ship_argv_policy.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/test_clarify_bridge.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/test_depth_vocab.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/test_prep_body_validators.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/test_skill_body_registry.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/test_skill_emit_prose_check.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/test_skill_engine_body_validation.py +0 -0
- {eawf-0.6.8/tests → eawf-0.7.0.dev1/tests/unit}/workflow/test_track_promotion_gate.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/workflow}/verify/test_risk_tier.py +0 -0
- {eawf-0.6.8/tests/unit → eawf-0.7.0.dev1/tests/unit/workflow}/verify/test_run_oracle.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/bundle_data.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/changed_scope.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/coauthor_policy.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/coverage_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/dead_modules.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/eawf021_measurable_criterion.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/evidence_provenance_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/idle_contract_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/insert_coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/jury_discrimination_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/migrate_drop_wave_commit.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/normalize_coauthor.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/pre_commit_spec_paths.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/rasterize_svg.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/recount_build_report.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/sigil_totality_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/skill_prose_symbol_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/snapshot_pairing_gate.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/validate_drive_recording.py +0 -0
- {eawf-0.6.8 → eawf-0.7.0.dev1}/tools/version_bump.py +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# P31 backlog reconciliation audit
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Sixty backlog rows stood open at the close of phase P31. A read-only investigation verified each against the tree at branch `feature/eawf-v0.7` rather than against wave descriptions. Fourteen rows are satisfied by code that ships on this branch and passes its own tests, so they can be closed. Four are covered by a planned P32 wave, three of them only partially. Forty-two are orphaned: no planned wave covers them and nothing in the roadmap references them.
|
|
6
|
+
|
|
7
|
+
The dominant finding is not any individual row. It is that **the backlog and the roadmap are separate structures in the same state file with no linkage between them**, so delivering what a row asks for does not close the row. P32's thirty-one waves were authored from the P31 incident rows and the epoch-2 migration specification; the backlog was never consulted. The two ledgers have never met.
|
|
8
|
+
|
|
9
|
+
## Attribution
|
|
10
|
+
|
|
11
|
+
Of the fourteen closeable rows, exactly one is a P31 achievement:
|
|
12
|
+
|
|
13
|
+
- **B120** — the Linux sandbox TMPDIR pin and the bubblewrap mask fix, delivered by P31-W16 and gated by the `linux-jail` CI job that wave added.
|
|
14
|
+
|
|
15
|
+
The other thirteen were satisfied by earlier phases and left open:
|
|
16
|
+
|
|
17
|
+
| Row | Satisfied by |
|
|
18
|
+
|---|---|
|
|
19
|
+
| B001 | `[P00-W01]` — the ubuntu matrix has been in CI since the bootstrap phase |
|
|
20
|
+
| B009 | `[P13-W02]`, 2026-05-11 — the commit subject names the row it closes |
|
|
21
|
+
| B002 | `[P30-I19-W07]` — P31-W42 added only the console-suppression flag |
|
|
22
|
+
| B057, B058 | P14-W04 / P14-W05 |
|
|
23
|
+
| B062 | `[P28-I03-W09]` |
|
|
24
|
+
| B071 | `[P27-I05-W33]` |
|
|
25
|
+
| B094 | `[P30-I26-W03]` |
|
|
26
|
+
| B095 | `[P29-I12-W02]` |
|
|
27
|
+
| B097 | P29-I12-W07 |
|
|
28
|
+
| B117 | 2026-07-23 |
|
|
29
|
+
| B124 | 2026-08-11 |
|
|
30
|
+
| B133 | v0.6.5 hotfix |
|
|
31
|
+
|
|
32
|
+
B009 is the clearest case: its own commit subject reads `test: end-to-end golden scenarios (B009)` and the row stayed open for four months.
|
|
33
|
+
|
|
34
|
+
## Why the debt accumulates
|
|
35
|
+
|
|
36
|
+
`eawf backlog close` requires a resolution, a resolving commit, and an audit id referencing a complete audit. That is a sound evidence chain, and it is also why rows persist: landing the fix costs one commit, while recording the closure costs an audit. The friction is structural rather than a lapse of diligence, and it will keep producing this drift until closing is cheaper or until wave close reconciles the rows it satisfies.
|
|
37
|
+
|
|
38
|
+
## Verified security finding
|
|
39
|
+
|
|
40
|
+
Backlog row **B121** is accurate and its exposure widened during this phase. `_check_command_exit_zero` builds its child environment as the full parent environment and passes it to the subprocess without calling either `validate_gate_argv` or `build_child_env`, though both already exist in the tree. The argv reaches that call from `CheckSpec.args`, shape-validated only, and the `/audit` skill constructs its `CheckSpec` from a free-form agent-supplied argument. P31 did not introduce this, but it widened the reach: the out-of-process close child added by P31-W10 routes through the same runner.
|
|
41
|
+
|
|
42
|
+
Recorded as incident INC-P31-12 and scheduled as P32-W32. Backlog row B049 duplicates it with a weaker framing and should be dropped rather than worked.
|
|
43
|
+
|
|
44
|
+
## References
|
|
45
|
+
|
|
46
|
+
| Ref | Location | What it establishes |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| R1 | `src/eawf/runtime/sandbox/env_scrub.py:68` | the pinned TMPDIR split that satisfies B120 |
|
|
49
|
+
| R2 | `src/eawf/runtime/sandbox/jail.py:381` | the entry-type branch for bubblewrap masks |
|
|
50
|
+
| R3 | `.github/workflows/ci.yaml:166` | the `linux-jail` job executing the real-bwrap tests |
|
|
51
|
+
| R4 | `tests/golden/surfaces/cli/test_scenarios.py:81` | the three golden scenarios that satisfy B009 |
|
|
52
|
+
| R5 | `src/eawf/workflow/audit_dsl/registry.py:685` | the unscrubbed child environment behind B121 |
|
|
53
|
+
| R6 | `src/eawf/runtime/daemon/gate_execution.py:478` | the close path that reaches that runner |
|
|
54
|
+
|
|
55
|
+
## Provenance
|
|
56
|
+
|
|
57
|
+
Compiled 2026-09-07 at the close of P31-I01 on branch `feature/eawf-v0.7`. Every closeable verdict was verified against the working tree; the attribution column was derived from `git log` on the satisfying commits. No row was proposed for closure on the strength of a wave description alone.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# P31 closeout audit
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Phase P31 delivered the 0.7.0.dev1 stabilization floor across fifty waves in one iter. Every wave is closed with a pinned commit that is an ancestor of the phase head. The suite stands at 16,070 passing with a single local-only failure that skips in continuous integration. The strict prose gate, the snapshot pairing gate, mypy and the dependency check are all clean.
|
|
6
|
+
|
|
7
|
+
This phase was executed by harness-dispatched worktree agents rather than by the daemon's own dispatch engine, so no wave carries a captured runtime and every close records an explained runtime waiver. Verification was therefore held outside the close gate: each wave's declared gates were re-run on the integrated branch head before its close, and a fresh-context auditor independently re-ran a sample plus every unique gate argv in the phase.
|
|
8
|
+
|
|
9
|
+
## What did not land
|
|
10
|
+
|
|
11
|
+
Two criteria closed unmet, both disclosed in their wave outcomes rather than waived.
|
|
12
|
+
|
|
13
|
+
**W26 CR-01** required the 0.7.0.dev1 checkpoint to reach APPROVED after a preflight where all eight dev1 gates pass. It did not. Three required readiness signals cannot be satisfied before the merge: ancestry passes only once the head is an ancestor of the publishing branch, the artifact and dependency signals read receipts only the release workflow produces, and the credentials signal has no producer anywhere in the phase. **No Release record was persisted**, so the checkpoint named in the wave title was not cut. The wave did land the version bump and the changelog section, which moved two required signals from failing to passing.
|
|
14
|
+
|
|
15
|
+
**W25 CR-02** required the full suite to exit zero. It does not, for the single environmental reason above.
|
|
16
|
+
|
|
17
|
+
Both gaps are scheduled: P32-W23 adds the credentials producer, and P32-W24 cuts the checkpoint to APPROVED on merged main, with P32-W01 now depending on W24. Before this phase, P32-W01 had no dependencies and opened by moving a Release record from APPROVED to PUBLISHING that did not exist.
|
|
18
|
+
|
|
19
|
+
## What the audit corrected
|
|
20
|
+
|
|
21
|
+
An independent fresh-context audit contradicted this session's own account on several points, and each correction was verified before acceptance. Eight of the ten failures standing at audit time were introduced by this phase rather than inherited: a workflow reflow that outran the literal its test greps, a module split that moved a symbol without updating its test, and a renderer change whose goldens were never refreshed. The idle-surface ceiling had also been breached by this phase rather than drifting into it. All were repaired.
|
|
22
|
+
|
|
23
|
+
The audit further found that fifty of the phase's recorded gate arguments no longer resolve, because a late wave collapsed the test tree beneath waves that had already closed. Every one passes once aimed at its new home, so the work is verified; the record is not re-runnable as written. No wave-level reopen verb exists to repair them in place, so a translation map was written instead and the repair is scheduled as P32-W25.
|
|
24
|
+
|
|
25
|
+
## Verification integrity
|
|
26
|
+
|
|
27
|
+
The store cannot reconstruct this phase's verification history. Nineteen close-attempt rows exist for fifty closed waves, and the five affordance-parity gates that were re-run persisted no receipt. Two gates are required and blocking yet cannot fail on any tree. Both facts are scheduled as P32-W26 rather than left implicit.
|
|
28
|
+
|
|
29
|
+
## References
|
|
30
|
+
|
|
31
|
+
| Ref | Location | What it establishes |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| R1 | `.ea/artifacts/audits/2026-09-07-A-P31-backlog-reconciliation.md` | the backlog reconciliation and its attribution |
|
|
34
|
+
| R2 | `src/eawf/workflow/release/` | the release subsystem this phase built |
|
|
35
|
+
| R3 | `src/eawf/runtime/daemon/methods/state.py` | the split facade, reduced from 5,286 lines to 1,392 |
|
|
36
|
+
| R4 | `tools/idle_surface_report.py` | the corrected idle metric, counting call sites |
|
|
37
|
+
| R5 | `.vale/styles/config/vocabularies/eawf/accept.txt` | the curated vocabulary, grown from 49 to 156 entries |
|
|
38
|
+
|
|
39
|
+
## Provenance
|
|
40
|
+
|
|
41
|
+
Compiled 2026-09-07 at the close of P31-I01 on branch `feature/eawf-v0.7`, from a fresh-context audit, an independent code review, and the session's own gate runs. Every claim of a passing gate was re-run on the integrated head. Claims the audit contradicted were re-verified before being recorded either way.
|
|
42
|
+
|
|
43
|
+
## Scrub
|
|
44
|
+
|
|
45
|
+
- status: clean
|
|
46
|
+
- references: repo-relative
|
|
47
|
+
- credentials, PII, machine-specific paths: none
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# v0.7 finalization: ratified decisions, repaired roadmap, next command
|
|
2
|
+
|
|
3
|
+
> Status: research brief · Scope: the v0.7.0 proposal packet, the ten spikes under `.ea/local/spikes/`, the 2026-08-25 rules-delivery design, and the live roadmap · Baseline at start: checkout `ae04a5c1`, package `0.6.8`, state schema `1.19`, P31 ACTIVE with no iter open · Baseline at end: checkout `05f0394a` · Date: 2026-09-03
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
The v0.7.0 packet was consistent as a specification but not executable as a plan: no P31 wave could close (78 criteria referenced gate ids that resolved to no `GateSpec`, and the daemon rejects that unconditionally), dev1 ended at APPROVED while dev2 opens only from BAKED, the effort ladder had no discriminating power, and none of the 2026-08-28 and 2026-09-03 spike findings or the 2026-08-25 rules-delivery design had reached the packet [1][2][3]. Eight read-only researchers audited the packet against the spikes and the design, verified every load-bearing claim at HEAD, designed the missing seam, drafted the dev2 plan and the dev3-to-stable outlines, and produced a decision register [4][5][6][7][8][9][10][11]. Four AskUserQuestion rounds then ratified sixteen decisions, every one on the long-term-correct option [12].
|
|
8
|
+
|
|
9
|
+
The roadmap is repaired and the specifications are finalized. P31 carries 38 waves with 130 typed gates and zero dangling references (26 original, 8 seam, 4 repair; W36 closed against `231656bf`); P32 (0.7.0.dev2) is PLANNED and applied with 22 waves and 71 gates; P33 to P37 are PLANNED shells with their outlines attached; decisions D34 to D48 are recorded; the packet carries 1,168 requirement identifiers with the spike, rules and hygiene amendments folded in under AUTH-039 to AUTH-058 [13][14][15]. The next command is `/flow`, whose `/prep P31` step is a no-op on the already-active phase and proceeds to claims.
|
|
10
|
+
|
|
11
|
+
## What was wrong, verified at HEAD
|
|
12
|
+
|
|
13
|
+
| Finding | Evidence | Disposition |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| No P31 wave could close: `_validate_wave_close_gate_refs` runs on every `WAVE_CLOSE` regardless of `verify.enforce`; 78 of 80 criteria carried `gate_ids` resolving to no gate; the blanket `criteria_floor_waiver` tested reference presence, never resolution | `src/eawf/runtime/daemon/methods/state.py` validator chain; `src/eawf/workflow/lifecycle/_errors.py` floor; state census 78 dangling refs [4][6] | Repaired by spec sync (D34, D38); floor tightening scheduled as P31-W37 |
|
|
16
|
+
| Eight criteria needed an `eawf` or `just` argv head the L0 allowlist rejected at `GateSpec` construction | `src/eawf/kernel/spec/promotion.py` allowlist; `src/eawf/kernel/spec/common.py` validator [6] | Widened as P31-W36 (`231656bf`), interim until the epoch-2 command-family contract (D34) |
|
|
17
|
+
| dev1 ended at APPROVED; the train opens dev2 from BAKED; `ReleaseTrain` and `ReleaseReadiness` absent; ten publication tokens in zero waves; the 8-gate profile had no function to the 12-signal table; three gates had no producer; `phase-release.yaml`'s tag regex never matched `v0.7.0.dev1` | seam spike; `13-seam-waves-notes.md` [3][7] | Eight seam waves W27 to W31 and W33 to W35 appended to P31; publish-to-BAKED is P32-I01-W01 post-merge (D35, D37, D40) |
|
|
18
|
+
| The XS..XL ladder spans 14x declared against 1.3x measured, non-monotonic, rho +0.048; fifteen size proxies separate nothing; MEAS-021's eight-times figure was the open-to-close clock | effort-size-proxy and measurement-reality spikes [3][5] | Ladder retired for a flat 0.8 EU per wave with dispersion (D36) |
|
|
19
|
+
| 0 of 36 measurement producers exist; only 28 of 849 actuals carry a real price; codex sums reasoning tokens into output against MEAS-055 | measurement-reality spike; `src/eawf/observability/telemetry/sources/codex_session.py` [5][6] | W17 split into W17 and W34; W18 declares its 28-row sample and freezes threshold 0.20 (D41) |
|
|
20
|
+
| The packet's steering surface (one committed root carrying every unscoped `must` rule) is incompatible with the ratified single generated policy projection; zero of ten measured repairs applied; `agents.extra_tools` shipped empty so the next plugin install strips Serena from six roles | rules-harness audit [8] | Packet amendments A1 to A15 applied; repair wave P31-W38 (D46) |
|
|
21
|
+
| The shipped TUI's pane focus ring is invisible on all three themes (`$primary == $accent`) and `$muted` sits at 2.47:1 across 13,037 cells; the design pack's `stage.css` is an unbound colour oracle | colour-conformance spike; `src/eawf/surfaces/tui/theme.py` [6] | Oracle bound at dev3 (P33); XS fix now as P31-W39 (D47) |
|
|
22
|
+
| dev3 to stable existed as prose; rc2 had no `REL` row; `PRX-050`/`PRX-064` circular; `LINT-038` reds on every merge; `REL-031` and `REL-032` name different windows | dev4-to-stable outline; decision register [10][11] | Shells P33 to P37 proposed; eleven hygiene fixes and seven defaults applied (D48) |
|
|
23
|
+
|
|
24
|
+
## The ratified decisions
|
|
25
|
+
|
|
26
|
+
| Decision | Ruling | Round |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| D34 | `eawf` and `just` admitted as gate argv heads (interim); the plan-time criteria floor must require every `gate_ids` entry to resolve | 1 |
|
|
29
|
+
| D35 | Eight seam waves join P31-I01 before the test-tree collapse; publish-to-BAKED opens P32 post-merge | 1 |
|
|
30
|
+
| D36 | Effort ladder retired: one constant of 0.8 EU per wave with dispersion; bucket labels are narrative only; no re-fit before 100 waves carry positive elapsed effort | 1 |
|
|
31
|
+
| D37 | All three producerless dev1 gates get producers at dev1 (W30); `security_review` is the supply-chain vulnerability component of the `dependencies` row | 1 |
|
|
32
|
+
| D38 | Minted gates use `scope: all` and `timeout_class: quick`; a repetition count is one looping test; residual halves live inside the named test; CI-only halves are cadence-ship gates | 2 |
|
|
33
|
+
| D39 | REL-025 "explained" is the waiver event itself; `waiver_count` is a readiness field; a non-zero count blocks APPROVED until acknowledged | 2 |
|
|
34
|
+
| D40 | A declared function binds each dev1 gate name to a readiness row, a row component or a proof command; required signals derive from `gates.required` plus the existing tree, ancestry and credential flags; `platform` computes at dev1 | 2 |
|
|
35
|
+
| D41 | Turn-cost producer split (W17 record and provenance, W34 CLI and check); dev1 baseline over the 28 priced rows at threshold 0.20; codex rows excluded until MEAS-055 is settled | 2 |
|
|
36
|
+
| D42 | REL-027: compact native tree with a separate legacy store; a legacy reference is a string on a native envelope, a legacy record an envelope in the legacy ledger | 3 |
|
|
37
|
+
| D43 | DOM-018 is an enumerated deletion list bound to the DOM-015 allowlist; `archived` maps to CANCELLED; `priority` and `intent` take annotated defaults | 3 |
|
|
38
|
+
| D44 | The workspace registry ships before importer apply mode; the packet's workspace verbs are canonical; the largest supported state is the live corpus frozen at band `thousands` | 3 |
|
|
39
|
+
| D45 | P32 proposed now with 22 waves; dev2 gate profile is the dev1 eight plus `migration`, `hosted_gate_runner`, `schema_strictness`, `waiver_count`; REL-037 legs importer/dev2, cross-provider/dev3, daemon-RPC/dev3 | 3 |
|
|
40
|
+
| D46 | The single generated policy projection design is adopted with packet amendments A1 to A15; the steering-surface migration rides dev4; P31-W38 repairs the symbol-tool plumbing now | 4 |
|
|
41
|
+
| D47 | The `stage.css` chrome is the colour oracle bound at dev3 with every console route; P31-W39 fixes the focus ring and muted contrast now | 4 |
|
|
42
|
+
| D48 | P33 to P37 proposed as PLANNED shells; eleven hygiene fixes and seven defaults applied to the packet | 4 |
|
|
43
|
+
|
|
44
|
+
Also ratified in round 4: the allowlist repair rides a dedicated wave (W36) rather than a widened commit lint, and the floor tightening is its own wave (W37).
|
|
45
|
+
|
|
46
|
+
## What changed in the repository
|
|
47
|
+
|
|
48
|
+
| Commit | Subject | Content |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| `e82b6d99` | `[P31] state: activate iter P31-I01 and record decisions D34-D48` | iter activation; fourteen decisions |
|
|
51
|
+
| `684566f5` | `[P31] state: append seam and repair waves W27-W39 and claim W36` | eight seam waves, four repair waves, W17/W18/W26 rewrites, W25/W26 dependency lists, W19 scope append |
|
|
52
|
+
| `231656bf` | `[P31-I01-W36] fix: admit eawf and just as gate argv heads` | `DEFAULT_GATE_ARGV_ALLOWLIST` plus five pinning tests; a pre-existing pyright invariance defect fixed at the call site |
|
|
53
|
+
| `192c755a` | `[P31] state: sync typed gates onto 38 waves and close W36` | 130 gate rows synced; W36 closed under an explained missing-runtime waiver with its integration revision adopted |
|
|
54
|
+
| `05f0394a` | `[P31] state: propose and apply P32 and stage the P33-P37 shells` | P32 with 71 synced gates; D45; five shells |
|
|
55
|
+
|
|
56
|
+
Spec bodies are not committed (D27 deprecated committed per-wave specs); they live under the gitignored finalization directory and were fed to `eawf spec sync` through `--spec-path` [13]. The plan file `2026-08-25-p31-dev1-roadmap-plan.yaml` in the packet directory is superseded by the live state; `eawf roadmap show --phase P31 --md` is authoritative.
|
|
57
|
+
|
|
58
|
+
## The roadmap after this pass
|
|
59
|
+
|
|
60
|
+
| Phase | Status | Waves | Gates | Checkpoint |
|
|
61
|
+
|---|---|---:|---:|---|
|
|
62
|
+
| P31 | active (iter P31-I01 active; W36 closed, 37 pending) | 38 | 130 | 0.7.0.dev1 to APPROVED |
|
|
63
|
+
| P32 | planned, applied | 22 | 71 | 0.7.0.dev2 to BAKED (W01 bakes dev1 post-merge) |
|
|
64
|
+
| P33 | planned shell | 0 | 0 | 0.7.0.dev3 native canary + console |
|
|
65
|
+
| P34 | planned shell | 0 | 0 | 0.7.0.dev4 planning + steering surfaces |
|
|
66
|
+
| P35 | planned shell | 0 | 0 | 0.7.0rc1 flag day |
|
|
67
|
+
| P36 | planned shell | 0 | 0 | 0.7.0rc2 evidence |
|
|
68
|
+
| P37 | planned shell | 0 | 0 | 0.7.0 stable |
|
|
69
|
+
|
|
70
|
+
P31 at the flat rate is 30.4 EU over 38 waves (47.75 EU on the retired ladder, quoted only for comparison); its critical path is eight waves. P32 is 17.6 EU flat over 22 waves with a twelve-wave critical path. The outlines for P33 to P37 live in the finalization directory [10][11].
|
|
71
|
+
|
|
72
|
+
## Next command
|
|
73
|
+
|
|
74
|
+
`/flow` — its `/research` step may cite this brief; its `/prep P31` step is an idempotent no-op on the ACTIVE phase and proceeds to claims. Before the first claim batch run `uv run eawf dispatch resume`; claim reactive or parallel-frontier waves with `--out-of-order` (W33 to W35 are numbered above W30 while earlier in the DAG). W37 to W39 are dispatchable on day one; W36 is closed.
|
|
75
|
+
|
|
76
|
+
## Known limits
|
|
77
|
+
|
|
78
|
+
- W36 was closed under a `--no-runtime` waiver because its executor ran inline with no captured runtime, so the close recorded 0 of 2 gate receipts; both gate commands were run directly afterwards and pass (7 and 4 tests). The waiver is counted and explained on the dev1 readiness receipt per D39.
|
|
79
|
+
- Two seam gates may exceed the 60 s `quick` class at close (W30 double clean build, W26 preflight reruns); a `slow` override at sync is the remedy if they time out.
|
|
80
|
+
- The measurement spike's MEAS-055 question (codex reasoning tokens summed into output) is settled only against a vendor rollout outside this repository; W17 marks codex rows and W18 excludes them until then.
|
|
81
|
+
- Two agents read `security_review` differently (existing skill vs supply-chain component); the supply-chain reading was ratified (D37) and the packet says so.
|
|
82
|
+
- The finalization directory holds the working artifacts of eight researchers and three executors; it is gitignored and is the provenance for every number in this brief.
|
|
83
|
+
|
|
84
|
+
## References
|
|
85
|
+
|
|
86
|
+
[1] `.ea/local/research/2026-09-02-v07-preflight-consistency.md` — the seven breaks, the eight decisions to sweep, the 2026-09-02 rulings.
|
|
87
|
+
|
|
88
|
+
[2] `.ea/local/research/2026-08-04-v07-proposal/README.md` and files `00` to `90` — the packet, amended 2026-09-03 (AUTH-039 to AUTH-058, REL-040 to REL-044, DOM-041/043/044/045, PLAN-051, DEL-034 to DEL-036, RULE-127 to RULE-131, SKILL-041/042, SURF-174).
|
|
89
|
+
|
|
90
|
+
[3] `.ea/local/spikes/2026-09-03-v07-spike-consolidated-report.md` — six spike verdicts and the eight decisions owed.
|
|
91
|
+
|
|
92
|
+
[4] `.ea/local/research/2026-09-03-v07-finalization/12-p31-closability-repair.md` — the spec sync mechanism proven on a copy; `12-gate-mint.py`.
|
|
93
|
+
|
|
94
|
+
[5] `.ea/local/research/2026-09-03-v07-finalization/11-spike-packet-amendment-audit.md` — 46 findings, 31 amendments, the 16-row binding table.
|
|
95
|
+
|
|
96
|
+
[6] `.ea/local/research/2026-09-03-v07-finalization/16-claim-verification-at-head.md` — C1 to C15 verdicts at `ae04a5c1`.
|
|
97
|
+
|
|
98
|
+
[7] `.ea/local/research/2026-09-03-v07-finalization/13-seam-waves-notes.md`, `13-seam-waves-final.yaml`, `13-seam-apply-commands.sh` — the seam design and its apply record.
|
|
99
|
+
|
|
100
|
+
[8] `.ea/local/research/2026-09-03-v07-finalization/10-rules-harness-amendment-audit.md` — amendments A1 to A15 and the status of the ten repairs.
|
|
101
|
+
|
|
102
|
+
[9] `.ea/local/research/2026-09-03-v07-finalization/14-p32-dev2-roadmap-plan-final.yaml`, `14-planning-notes.md` — the dev2 plan and its blocking decisions.
|
|
103
|
+
|
|
104
|
+
[10] `.ea/local/research/2026-09-03-v07-finalization/14-p33-dev3-outline.md` — the dev3 cluster outline and console decisions.
|
|
105
|
+
|
|
106
|
+
[11] `.ea/local/research/2026-09-03-v07-finalization/14-checkpoint-outline-p34-p37.md` — dev4 to stable outlines and eleven packet defects.
|
|
107
|
+
|
|
108
|
+
[12] `.ea/local/research/2026-09-03-v07-finalization/15-decision-register.md` — the 46-row decision register the AskUserQuestion rounds were built from.
|
|
109
|
+
|
|
110
|
+
[13] `.ea/local/research/2026-09-03-v07-finalization/specs/` and `minted/` — the spec bodies fed to `eawf spec sync`; `20-decisions.sh`, `21-shells.sh` — the recorded mutation scripts.
|
|
111
|
+
|
|
112
|
+
[14] `.ea/state.json` at `05f0394a` — phases P31 to P37, decisions D34 to D48.
|
|
113
|
+
|
|
114
|
+
[15] `.ea/local/research/2026-09-03-v07-finalization/13-repair-waves-w36-w39.yaml` — the four repair waves.
|
|
115
|
+
|
|
116
|
+
## Provenance
|
|
117
|
+
|
|
118
|
+
- kind: research
|
|
119
|
+
- slug: 2026-09-03-v07-finalization-brief
|
|
120
|
+
- method: eight read-only researcher and planner agents over disjoint scopes (Opus 5 and Fable 5.1), one docs-lookup agent, three executor agents (allowlist commit, two packet amendment passes), four AskUserQuestion rounds of four questions each, and direct daemon-backed state mutations by the lead
|
|
121
|
+
- state mutations: iter activation, twelve roadmap wave additions, three rewrites, three dependency-list edits, one scope append, 60 spec syncs, one claim, one integration adoption, one close, one phase proposal with apply, five shell proposals, fifteen decisions
|
|
122
|
+
- roadmap mutations: P31 26 to 38 waves; P32 proposed and applied; P33 to P37 proposed as shells
|
|
123
|
+
|
|
124
|
+
## Scrub
|
|
125
|
+
|
|
126
|
+
- status: clean
|
|
127
|
+
- references: repo-relative only
|
|
128
|
+
- credentials, PII, machine-specific paths, hostnames: none
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Dev1 configuration defaults: four measured, seven carried unmeasured
|
|
2
|
+
|
|
3
|
+
> Status: benchmark artifact · Scope: the eleven numeric defaults of the v0.7 configuration contract · Method: measurement over repository state, agent-session records, CI release-run history, and one instrumented probe of the shipped heartbeat ticker · `verified_at_commit`: `2f523398` · Date: 2026-09-04
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
The v0.7 configuration contract fixes eleven numeric defaults and holds each one as a *proposal* default until it is remeasured, with a recorded benchmark required before any of them changes [7]. Four of the eleven are read by a dev1 gate and are measured here; the other seven are read by no dev1 gate and are recorded as unmeasured at their proposal value rather than carried as though somebody had checked them.
|
|
8
|
+
|
|
9
|
+
All four measured defaults hold. The release-train timeout of 1800 seconds sits above a measured p90 of 1123.0 seconds over 46 publication runs and above the slowest run observed, 1190.0 seconds [2][3][4]. The retry limit of 2 is the tightest value that would not have burned a release: of those same 46 runs, 41 finished on the first attempt, 3 needed a second and 2 needed a third, so a limit of 1 would have failed two publications outright. The runtime wall default of 2400 seconds is an order of magnitude above the p90 agent-session wall of 208.6 seconds [1]. The lost-grace default of 30 seconds is 2.0 refresh intervals of the shipped lock heartbeat, whose observed cadence has a p90 gap of 15.007 seconds [5], and it is half the 60-second staleness threshold the same runtime already enforces [6], so it tolerates exactly one missed beat.
|
|
10
|
+
|
|
11
|
+
The measured and unmeasured sets partition the eleven exactly. That partition is not left to review: the loader rejects any parse whose two sets are not disjoint and do not cover the contract keys [8], and the gate exercises both the real artifact and the rejection paths [9].
|
|
12
|
+
|
|
13
|
+
## Measured defaults
|
|
14
|
+
|
|
15
|
+
Sample size, p50 and p90 for the four defaults a dev1 gate reads. Timeout figures are wall seconds per run; the retry figure is a count of attempts; the grace figure is seconds between successive heartbeat writes.
|
|
16
|
+
|
|
17
|
+
| Configuration key | Proposal default | Source | Sample size | p50 | p90 | Verdict |
|
|
18
|
+
|---|---|---|---|---|---|---|
|
|
19
|
+
| `release.target_timeout_seconds` | 1800 | wall seconds per publication run across the three release-train workflows [2][3][4] | 46 | 45.5 | 1123.0 | holds; p90 is 62 percent of the default and the slowest run seen, 1190.0 s, is 66 percent of it |
|
|
20
|
+
| `release.target_retry_limit` | 2 | attempts needed per publication run across the same 46 runs [2][3][4] | 46 | 1.0 | 2.0 | holds exactly; 41 runs took 1 attempt, 3 took 2 and 2 took 3, so a limit of 1 would have burned two releases |
|
|
21
|
+
| `runtime.default_wall_seconds` | 2400 | wall seconds of closed agent sessions recorded in repository state [1] | 12 | 40.2 | 208.6 | holds with wide headroom; p90 is 8.7 percent of the default and the longest session ran 625.3 s |
|
|
22
|
+
| `runtime.lost_grace_seconds` | 30 | seconds between successive heartbeat writes of the shipped lock ticker under an instrumented hold [5] | 12 | 15.005 | 15.007 | holds; 30 s is 2.0 observed refresh intervals, one missed beat, against the 60 s staleness threshold already enforced [6] |
|
|
23
|
+
|
|
24
|
+
Three caveats belong with these numbers rather than under them. The timeout sample is whole-run wall time, which is a wider quantity than the publication step it bounds, so it is a conservative upper bound rather than a tight one. The wall sample counts only the 12 agent sessions recorded as closed; 46 of the 68 session rows are stale, and their end timestamp records a daemon restart orphaning the session rather than the run ending, so including them would measure the restart and not the work [1]. The grace sample is a probe of the shipped ticker at its default cadence, not history, because no heartbeat history is retained; the cadence it measures is the constant the grace has to clear [5].
|
|
25
|
+
|
|
26
|
+
## Unmeasured defaults
|
|
27
|
+
|
|
28
|
+
The seven defaults no dev1 gate reads, carried at their proposal value. Each is a number the contract still asserts; none is a number this benchmark checked.
|
|
29
|
+
|
|
30
|
+
| Configuration key | Proposal default | Status | Reason |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| `planning.max_revision_attempts` | 3 | unmeasured | bounds plan revision loops; no dev1 gate reads it and no revision-loop history is recorded to measure |
|
|
33
|
+
| `runtime.global_capacity` | 8 | unmeasured | bounds concurrent dispatch; no dev1 gate reads it and dispatch concurrency is not exercised at dev1 |
|
|
34
|
+
| `runtime.per_provider_capacity` | 4 | unmeasured | per-provider slice of the same concurrency bound; no dev1 gate reads it |
|
|
35
|
+
| `runtime.max_task_attempts` | 3 | unmeasured | bounds task retries; no dev1 gate reads it and no task-attempt history is recorded |
|
|
36
|
+
| `delivery.max_repair_tasks` | 2 | unmeasured | bounds repair tasks per integration boundary; no dev1 gate reads it |
|
|
37
|
+
| `delivery.max_audit_cycles` | 2 | unmeasured | bounds audit cycles per integration boundary; no dev1 gate reads it |
|
|
38
|
+
| `activity.query_page_size` | 100 | unmeasured | pages the activity query surface; no dev1 gate reads it and the surface carries no measured query load |
|
|
39
|
+
|
|
40
|
+
## Packet annotation
|
|
41
|
+
|
|
42
|
+
The configuration contract preamble in packet file 00 currently reads that exact numeric defaults remain proposal defaults until remeasured at dev1 and that changing them requires an amendment and a recorded benchmark [7]. The amendment this benchmark obliges is one added sentence, offered here verbatim so the packet edit is a transcription rather than a judgement:
|
|
43
|
+
|
|
44
|
+
> Four of these defaults are read by a dev1 gate and were remeasured against this artifact: `release.target_timeout_seconds`, `release.target_retry_limit`, `runtime.default_wall_seconds` and `runtime.lost_grace_seconds`, each holding at its proposal value. The remaining seven are read by no dev1 gate and stay unmeasured proposal defaults; the obligation to remeasure them travels to the checkpoint whose gates first read them.
|
|
45
|
+
|
|
46
|
+
The packet lives outside this wave's file scopes, so applying that sentence is a separate edit; the sentence is fixed here so that edit carries no discretion.
|
|
47
|
+
|
|
48
|
+
## Method
|
|
49
|
+
|
|
50
|
+
Release figures come from the run history of the three workflows that publish a release target: the tag-and-notes workflow [2], the package publication workflow [3] and the plugin publication workflow [4]. Every run each workflow has ever recorded was taken, with no filtering by conclusion, so failed and cancelled publications are in the sample; duration is the interval between a run starting and its final update, and attempts is the run's final attempt number. Wall figures come from the agent-session rows of repository state, restricted to sessions carrying both a start and an end timestamp and a closed status [1]. Grace figures come from holding the shipped lock for 185 seconds at the default refresh cadence and recording the interval between successive heartbeat writes [5]. The p50 is the median and the p90 the nearest-rank value throughout.
|
|
51
|
+
|
|
52
|
+
## References
|
|
53
|
+
|
|
54
|
+
[1] `.ea/state.json` — the `agent_sessions` rows: 68 sessions, 12 closed with both timestamps, 46 stale, 10 active.
|
|
55
|
+
|
|
56
|
+
[2] `.github/workflows/phase-release.yaml` — the tag-and-notes publication workflow; 12 recorded runs.
|
|
57
|
+
|
|
58
|
+
[3] `.github/workflows/release.yaml` — the package publication workflow; 18 recorded runs.
|
|
59
|
+
|
|
60
|
+
[4] `.github/workflows/plugin-release.yaml` — the plugin publication workflow; 16 recorded runs.
|
|
61
|
+
|
|
62
|
+
[5] `src/eawf/runtime/lock/portalock.py` — the heartbeat ticker and its 15-second default refresh cadence, the subject of the grace probe.
|
|
63
|
+
|
|
64
|
+
[6] `src/eawf/runtime/lock/stale.py` — the 60-second staleness threshold the runtime already enforces against that cadence.
|
|
65
|
+
|
|
66
|
+
[7] `.ea/local/research/2026-08-04-v07-proposal/00-authority-scope-and-decisions.md` — the configuration contract carrying the eleven numeric proposal defaults and the remeasurement obligation.
|
|
67
|
+
|
|
68
|
+
[8] `src/eawf/platform/artifacts/config_defaults_benchmark.py` — the loader that parses these two tables into typed rows and enforces the partition.
|
|
69
|
+
|
|
70
|
+
[9] `tests/unit/platform/artifacts/test_dev1_config_defaults_benchmark.py` — the gate over this artifact and over the loader's rejection paths.
|
|
71
|
+
|
|
72
|
+
## Provenance
|
|
73
|
+
|
|
74
|
+
- kind: research
|
|
75
|
+
- slug: 2026-09-04-dev1-config-defaults-benchmark
|
|
76
|
+
- wave: P31-I01-W40
|
|
77
|
+
- `verified_at_commit`: `2f523398`
|
|
78
|
+
- method: CI run history over three release workflows, repository-state agent-session records, and one instrumented probe of the shipped heartbeat ticker; no state mutation was performed by this wave
|
|
79
|
+
- p50 is the median; p90 is the nearest-rank value
|
|
80
|
+
- gates: the two selections named in reference 9
|
|
81
|
+
|
|
82
|
+
## Scrub
|
|
83
|
+
|
|
84
|
+
- status: clean
|
|
85
|
+
- references: repo-relative only
|
|
86
|
+
- credentials, PII, machine-specific paths, hostnames: none
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Dev1 turn cost: 25 completed units, verification a fifth of the spend
|
|
2
|
+
|
|
3
|
+
> Status: baseline artifact · Scope: the first turn-cost measurement of this repository and the tolerance it is frozen under · Method: the completed-unit producer run over the priced rows of `state.actuals` · `verified_at_commit`: `7db9c303` · Date: 2026-09-04
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
This is the first turn-cost measurement this repository has taken, and the regression tolerance it will be checked against was fixed at `0.20` before it was taken, not after [8][9]. Everything else here follows from one decision about the sample: the corpus is 25 completed units, and the artifact says so in the same breath as it reports the numbers, because a percentile stated without its sample invites the reading that it covers the whole project [9].
|
|
8
|
+
|
|
9
|
+
Over those 25 units the median unit costs 3.007518 USD and the ninetieth-percentile unit costs 8.924265 USD; the median unit runs 346.67 seconds of agent runtime and the ninetieth-percentile unit runs 3157.581 seconds. The verification-cost question this measurement exists to answer has a number: 23.307666 USD of the 112.546178 USD spent across the corpus was verification-class work, or 20.71 percent, against 89.238512 USD of execution-class work. Two of the 25 units were verification runs and 23 were execution runs, so the split is carried by a small tail and should be read as a first observation rather than a rate.
|
|
10
|
+
|
|
11
|
+
The sample is smaller than the row count of the collection it comes from, and every step of the narrowing is stated below rather than folded away. `state.actuals` holds 878 rows. 850 of them carry a cost of exactly zero along with no harness and no model, so they name no runtime/model tuple to be measured under and are not summable as zero either — an unpriced row and a zero-cost row are different facts [3]. Of the 28 rows that do carry a cost, three carry no agent role, and the producer refuses an unlabelled run rather than charging it to execution [4]. That leaves 25.
|
|
12
|
+
|
|
13
|
+
The count of rows excluded for unsettled reasoning-token accounting is **zero, and it is zero for two independent reasons**. The exclusion set is empty: no supported runtime is listed in it today [5]. And the collection contains no row that could be listed — every harness value in `state.actuals` is either absent or `claude-code`, so there is no codex row anywhere in it to exclude. Reporting a nonzero exclusion here would be reporting a filter that never ran.
|
|
14
|
+
|
|
15
|
+
## Sample
|
|
16
|
+
|
|
17
|
+
Every narrowing between the collection and the corpus, with where it happened. The producer's own exclusion counters are all zero because each exclusion here happened at corpus selection, before the producer saw a row; the two columns are kept apart so a zero on the record is never mistaken for "nothing was dropped".
|
|
18
|
+
|
|
19
|
+
| Bucket | Rows | Where it was dropped | Why |
|
|
20
|
+
|---|---:|---|---|
|
|
21
|
+
| `state.actuals` rows | 878 | — | the whole collection [1] |
|
|
22
|
+
| carrying no cost | 850 | corpus selection | cost is exactly zero with no harness and no model, so the row declares no runtime/model tuple; never summed as zero [3] |
|
|
23
|
+
| priced | 28 | — | `actual_cost_usd` greater than zero; harness `claude-code` throughout |
|
|
24
|
+
| priced but unlabelled | 3 | corpus selection | the wave carries no `agent_role`, and an unlabelled run raises rather than landing in either cost sum [4]; these are also the only `claude-fable-5` rows |
|
|
25
|
+
| **completed units measured** | **25** | — | closed waves on the single tuple `claude` / `claude-opus-4-8`, one run each |
|
|
26
|
+
| excluded `reasoning_summand_unsettled` | 0 | — | the exclusion set is empty [5] and no codex row exists in the collection to populate it |
|
|
27
|
+
|
|
28
|
+
The 25 units are 23 executor runs, one auditor run (`P30-I25-W29`) and one polisher run (`P30-I25-W38`). Auditor and polisher are the verification classes; executor is an execution class [4].
|
|
29
|
+
|
|
30
|
+
The roster below is the corpus, named row by row, so the measurement can be re-run over exactly these rows rather than over whatever the collection holds later. The gate reads it and rebuilds the record from it [11].
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"fixture_id": "dev1-actuals-2026-09-04",
|
|
35
|
+
"runtime": "claude",
|
|
36
|
+
"model": "claude-opus-4-8",
|
|
37
|
+
"state_row_count": 878,
|
|
38
|
+
"priced_row_count": 28,
|
|
39
|
+
"unpriced_row_count": 850,
|
|
40
|
+
"unlabelled_priced_row_count": 3,
|
|
41
|
+
"reasoning_summand_unsettled_row_count": 0,
|
|
42
|
+
"unlabelled_priced_scope_ids": ["P30-I23-W28", "P30-I23-W45", "P30-I23-W46"],
|
|
43
|
+
"corpus_scope_ids": [
|
|
44
|
+
"P30-I25-W26", "P30-I25-W27", "P30-I25-W28", "P30-I25-W29", "P30-I25-W30",
|
|
45
|
+
"P30-I25-W31", "P30-I25-W32", "P30-I25-W33", "P30-I25-W35", "P30-I25-W36",
|
|
46
|
+
"P30-I25-W37", "P30-I25-W38", "P30-I25-W39", "P30-I25-W40", "P30-I25-W41",
|
|
47
|
+
"P30-I25-W42", "P30-I25-W43", "P30-I25-W44", "P30-I25-W45", "P30-I25-W46",
|
|
48
|
+
"P30-I25-W47", "P30-I25-W48", "P30-I25-W50", "P30-I25-W51", "P30-I25-W52"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Record
|
|
54
|
+
|
|
55
|
+
The measurement itself, as a `TurnCostRecord` [2]. The model forbids unknown fields, so this block cannot be extended by hand without the gate rejecting it, and it deliberately carries no combined cost total: a consumer that wants verification plus execution has to add the two and can never mistake one for the whole.
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"execution_cost_usd": "89.238512",
|
|
60
|
+
"fixture_id": "dev1-actuals-2026-09-04",
|
|
61
|
+
"harness_revision": "turn-cost-1",
|
|
62
|
+
"model": "claude-opus-4-8",
|
|
63
|
+
"p50_cost_usd": "3.007518",
|
|
64
|
+
"p50_wall_clock_ms": 346670,
|
|
65
|
+
"p90_cost_usd": "8.924265",
|
|
66
|
+
"p90_wall_clock_ms": 3157581,
|
|
67
|
+
"reasoning_summand_unsettled": false,
|
|
68
|
+
"reasoning_summand_unsettled_run_count": 0,
|
|
69
|
+
"runtime": "claude",
|
|
70
|
+
"token_total": 35870107,
|
|
71
|
+
"unattributed_run_count": 0,
|
|
72
|
+
"unit_count": 25,
|
|
73
|
+
"unpriced_run_count": 0,
|
|
74
|
+
"verification_cost_usd": "23.307666"
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Three fields need a caveat rather than a footnote.
|
|
79
|
+
|
|
80
|
+
`token_total` is a three-class total, not the four-class total the field is defined as. `state.actuals` records new tokens only — input plus output plus cache writes, with cache reads deliberately left out because a cache read tracks how deep into a session a wave sits rather than how much work it did [6]. The reads were still billed, so `p50_cost_usd`, `p90_cost_usd` and both cost sums include them; only the token figure is a floor.
|
|
81
|
+
|
|
82
|
+
`p50_wall_clock_ms` and `p90_wall_clock_ms` are agent runtime, not elapsed calendar time. The state row records effort units on the api-duration basis, so the millisecond figure here is that effort reconstructed at the 30-minute-per-unit default [7]. A unit that waited an hour for review does not show that hour.
|
|
83
|
+
|
|
84
|
+
Both cost sums are quantised to micro-USD before summing. The state row holds a binary float, and `10.079999999999984` is not a cost anybody incurred; rounding to the millionth of a dollar once, at the boundary, keeps every downstream percentile an exact `Decimal` and keeps a re-run byte-identical.
|
|
85
|
+
|
|
86
|
+
## Threshold
|
|
87
|
+
|
|
88
|
+
The tolerance was fixed at the packet default of `0.20` before this measurement was taken, and it is written here rather than passed at check time so the tolerance travels with the number it guards [2]. It is not derived from the spread observed above; deriving it would make every future result tolerable by construction, which is the failure `MEAS-034` exists to prevent [8][9].
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"fixture_id": "dev1-actuals-2026-09-04",
|
|
93
|
+
"harness_revision": "turn-cost-1",
|
|
94
|
+
"model": "claude-opus-4-8",
|
|
95
|
+
"p90_cost_usd": "8.924265",
|
|
96
|
+
"p90_wall_clock_ms": 3157581,
|
|
97
|
+
"runtime": "claude",
|
|
98
|
+
"threshold": "0.20"
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Checked against the record it was taken from, this baseline passes: no percentile rose, so neither can have crossed the tolerance [11]. The gate also inflates the record's p90 cost by 21 percent and asserts the comparison reds, so the tolerance is demonstrably able to fire rather than merely present [11].
|
|
103
|
+
|
|
104
|
+
## Why the corpus is `state.actuals` and not the live command path
|
|
105
|
+
|
|
106
|
+
`eawf bench turn-cost --fixture live` sources its corpus from the projected telemetry cache: it reads `telemetry_sessions` out of `.ea/telemetry.db` and joins those rows onto the closed waves in state [12]. That table holds zero rows in this repository, and the join therefore returns nothing to measure. Under `--check` that is a refusal and not a pass — a check that succeeds because there was nothing to measure is a false green — so the live path exits 1 before any comparison happens [13]. Driving the first baseline through it would have produced no baseline at all.
|
|
107
|
+
|
|
108
|
+
The measured cost of agent work is nevertheless recorded, just in the other collection: the daemon writes a per-wave rollup of tokens and priced spend into `state.actuals` at wave close [1][6]. The producer takes its runs as an argument rather than fetching them, so the caller chooses the corpus [2]; this artifact exercises that seam directly with the `state.actuals` rows and the gate rebuilds the record the same way [11].
|
|
109
|
+
|
|
110
|
+
That is a deliberate substitution and it has a cost worth naming. The baseline is stamped `dev1-actuals-2026-09-04` rather than `live`, and the comparability rule refuses to compare records across fixture ids [2], so a later `--fixture live` measurement will report `comparison_invalid` against this baseline rather than a phantom regression. That is the correct outcome: once telemetry rows exist they will describe a different quantity — per-session rows rather than per-wave rollups — and the live corpus deserves its own first measurement and its own frozen tolerance.
|
|
111
|
+
|
|
112
|
+
## Proposal numeric defaults this measurement touches
|
|
113
|
+
|
|
114
|
+
The configuration contract holds its numeric defaults as *proposal* defaults until a dev1 gate remeasures them [10][14]. This wave's producer reads the turn-cost block, and its record is the first evidence available against the runtime wall, the gate-tier budgets and the unit ceiling. Every row below carries the command that reproduces its measured value, so a reader can disagree by re-running rather than by argument. A row measured by the sibling configuration-defaults benchmark points at that artifact rather than restating its number [14].
|
|
115
|
+
|
|
116
|
+
`unmeasured` is a status, not a failure: it means no dev1 gate reads the default, so nothing at this checkpoint produces a sample, and the obligation to remeasure travels to the checkpoint whose gates first read it.
|
|
117
|
+
|
|
118
|
+
| Configuration key | Proposal default | Measured at dev1 | Sample | Re-runnable command | Verdict |
|
|
119
|
+
|---|---|---|---:|---|---|
|
|
120
|
+
| `measurement.turn_cost.regression_threshold` | 0.20 | 0.20, fixed before the measurement | 25 units | `uv run pytest tests/perf/test_dev1_baseline_artifact.py -k threshold_frozen` | held frozen by construction; deriving it from this spread is what `MEAS-034` forbids [9] |
|
|
121
|
+
| `measurement.turn_cost.percentiles` | [50, 90] | both emitted, nearest-rank | 25 units | `uv run pytest tests/perf/test_dev1_baseline_artifact.py -k record_and_sample_sizes` | holds; nearest rank returns an observed value, so the percentiles are exact `Decimal` |
|
|
122
|
+
| `measurement.turn_cost.unit` | completed_task | 25 completed units from 25 closed waves, one run each | 25 units | `uv run pytest tests/perf/test_dev1_baseline_artifact.py -k record_and_sample_sizes` | holds, but untested where it matters: no unit in this corpus carries more than one run, so the split-invariance the unit exists for is exercised only by the seeded fixture |
|
|
123
|
+
| `runtime.default_wall_seconds` | 2400 | p90 per-unit agent runtime 3157.6 s; p50 346.7 s | 25 units | `uv run pytest tests/perf/test_dev1_baseline_artifact.py -k record_and_sample_sizes` | different quantity, reported not ruled: the default bounds one run, this figure aggregates a whole wave. The per-session quantity the default actually bounds measured 208.6 s at p90 and holds [14] |
|
|
124
|
+
| `runtime.lost_grace_seconds` | 30 | 15.007 s p90 heartbeat gap | 12 gaps | `uv run pytest tests/unit/platform/artifacts/test_dev1_config_defaults_benchmark.py` | holds, measured by the sibling benchmark [14] |
|
|
125
|
+
| `runtime.global_capacity` | 8 | unmeasured | — | none exists | no dev1 gate reads it and dispatch concurrency is not exercised at dev1 [14] |
|
|
126
|
+
| `runtime.per_provider_capacity` | 4 | unmeasured | — | none exists | per-provider slice of the same unexercised bound [14] |
|
|
127
|
+
| `runtime.max_task_attempts` | 3 | unmeasured | — | none exists | no task-attempt history is recorded to measure [14] |
|
|
128
|
+
| `quality.gates.T0.deadline_seconds` | 30 | 0.62 s cold, 0.08 s warm, 0.08 s warm | 3 runs | `uv run pytest tests/perf/test_dev1_baseline_artifact.py` | holds for this wave's changed scope with three orders of magnitude of headroom; a whole-repository T0 selection is not measurable, see below |
|
|
129
|
+
| `quality.gates.T1.deadline_seconds` | 180 | unmeasured | — | none exists | no invocation selects T1 by tier; see below |
|
|
130
|
+
| `quality.gates.T2.deadline_seconds` | 600 | unmeasured | — | none exists | no invocation selects T2 by tier; see below |
|
|
131
|
+
| `quality.unit_test_seconds_ceiling` | 0.5 | slowest added test 0.03 s call, 0.09 s including setup | 3 tests | `uv run pytest tests/perf/test_dev1_baseline_artifact.py --durations=0` | holds for the tests this wave adds; the ceiling is unmeasured across the existing suite because no budget artifact records per-test durations |
|
|
132
|
+
|
|
133
|
+
The three tier budgets are unmeasurable at dev1 for a structural reason rather than a scheduling one. A tier budget is a claim about a tier, and measuring one requires an invocation that runs *that tier and only that tier*. No such invocation exists: the recipes that run tests select by path and by marker, not by declared tier, so timing any of them measures a directory rather than T1 or T2 [15]. There is also no budget artifact recording per-test durations, so the unit ceiling cannot be evaluated across the existing suite either — `tests/.budgets.json` is absent. Both gaps are the same missing deliverable, and until it lands a number recorded against these budgets would be a number about something else.
|
|
134
|
+
|
|
135
|
+
The T0 figure above is honest about the same limit: it is a genuine changed-scope selection, but the changed scope is two files. It says the tier's budget is not at risk from this wave, and it does not say the repository's T0 selection fits in 30 seconds.
|
|
136
|
+
|
|
137
|
+
## Method
|
|
138
|
+
|
|
139
|
+
The corpus is every row of `state.actuals` whose `actual_cost_usd` is greater than zero and whose wave carries an `agent_role`, which is 25 rows on the single tuple `claude` / `claude-opus-4-8` [1]. Each row becomes one run of one completed unit: the wave supplies the role and the closed status, `elapsed_eu` supplies agent runtime at the 30-minute-per-unit api-duration default [7], `actual_tokens` supplies the three-class token figure [6], and `actual_cost_usd` supplies the cost quantised to micro-USD. Runs are handed to the producer, which groups them by closed wave, folds each unit, and takes nearest-rank percentiles over the per-unit aggregates rather than over individual runs [3].
|
|
140
|
+
|
|
141
|
+
Rows are not filtered by date, by phase or by outcome; every priced, labelled row in the collection is in. The single-tuple restriction is the producer's own rule and not a choice made here: a percentile taken across models measures the model mix rather than the work, so a corpus spanning two tuples is refused [2]. The three rows that fall outside the tuple are also the three that carry no role, so the two restrictions happen to select the same 25 rows.
|
|
142
|
+
|
|
143
|
+
The gate re-runs all of this. It parses the roster, the record and the baseline out of this file, rebuilds the record from the named state rows, and asserts the rebuilt record equals the recorded one field for field [11]. A baseline that agrees only with itself proves nothing; this one has to agree with a re-run.
|
|
144
|
+
|
|
145
|
+
## References
|
|
146
|
+
|
|
147
|
+
[1] `.ea/state.json` — the `actuals` collection: 878 rows, 28 with a non-zero `actual_cost_usd` and 850 without; every `harness` value is `claude-code` or absent.
|
|
148
|
+
|
|
149
|
+
[2] `src/eawf/observability/bench/turn_cost.py` — the baseline model carrying its own threshold, the comparability refusal across fixture ids, and the single-tuple rule on a corpus.
|
|
150
|
+
|
|
151
|
+
[3] `src/eawf/observability/telemetry/turn_cost.py` — the record model, the completed-unit producer that takes its runs injected, and the rule that an unpriced run is counted rather than summed as zero.
|
|
152
|
+
|
|
153
|
+
[4] `src/eawf/observability/telemetry/cost_class.py` — the total role-to-cost-class map, and the refusal to attribute a run that carries no role.
|
|
154
|
+
|
|
155
|
+
[5] `src/eawf/observability/telemetry/turn_cost.py` — `REASONING_UNSETTLED_RUNTIMES`, empty: every supported runtime reports reasoning tokens as a subset of output.
|
|
156
|
+
|
|
157
|
+
[6] `src/eawf/workflow/lifecycle/wave.py` — the close-time runtime delta: `actual_tokens` excludes prompt-cache reads while `actual_cost_usd` bills them.
|
|
158
|
+
|
|
159
|
+
[7] `src/eawf/observability/telemetry/join.py` — the 30-minute effort-unit default the api-duration basis converts against.
|
|
160
|
+
|
|
161
|
+
[8] `.ea/local/research/2026-08-04-v07-proposal/00-authority-scope-and-decisions.md` — the ruling that the turn-cost producer is two deliverables and that its first baseline declares its sample and freezes its threshold before the second measurement.
|
|
162
|
+
|
|
163
|
+
[9] `.ea/local/research/2026-08-04-v07-proposal/67-measurement-and-instrumentation.md` — the rule that the regression threshold is recorded before the second measurement is taken, and the `measurement.turn_cost` block carrying `regression_threshold: 0.20`.
|
|
164
|
+
|
|
165
|
+
[10] `.ea/local/research/2026-08-04-v07-proposal/00-authority-scope-and-decisions.md` — the configuration contract preamble holding exact numeric defaults as proposal defaults until remeasured at dev1, and the `runtime` block of five defaults.
|
|
166
|
+
|
|
167
|
+
[11] `tests/perf/test_dev1_baseline_artifact.py` — the gate over this artifact: it validates the embedded record, rebuilds it from the roster, asserts the frozen tolerance and the passing check, and asserts an inflated p90 reds.
|
|
168
|
+
|
|
169
|
+
[12] `src/eawf/surfaces/cli/commands/bench.py` — the live corpus path, which reads `telemetry_sessions` out of the projected telemetry cache and joins them onto closed waves, and the `--check` branch that delegates to the comparison.
|
|
170
|
+
|
|
171
|
+
[13] `src/eawf/surfaces/cli/commands/bench.py` — the empty-corpus branch: under `--check` an unmeasurable corpus is a refusal that exits 1, never a pass. The cache at `.ea/telemetry.db` holds zero `telemetry_sessions` rows.
|
|
172
|
+
|
|
173
|
+
[14] `.ea/artifacts/research/2026-09-04-dev1-config-defaults-benchmark.md` — the sibling dev1 benchmark measuring four configuration defaults and recording seven as unmeasured.
|
|
174
|
+
|
|
175
|
+
[15] `justfile` — the test recipes, which select by path and by marker rather than by declared tier.
|