execweave 0.8.3__tar.gz → 0.8.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {execweave-0.8.3 → execweave-0.8.4}/PKG-INFO +2 -2
- {execweave-0.8.3 → execweave-0.8.4}/README.de.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/README.fr.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/README.ja.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/README.ko.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/README.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/README.ru.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/README.zh-CN.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/README.zh-TW.md +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/pyproject.toml +2 -2
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/__init__.py +1 -1
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_full_fidelity.py +9 -3
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/dashboard_shell.py +7 -29
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_agent_panel.py +41 -14
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_dashboard_focus.py +12 -6
- execweave-0.8.4/tests/test_antigravity_multi_conversation_isolation.py +316 -0
- execweave-0.8.4/tests/test_conversation_root_authority.py +40 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_v069_dashboard_release.py +3 -3
- execweave-0.8.4/tests/test_viewer_child_authority.py +22 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/ci.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/cleanup-workflow-history.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/i18n.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/package-benchmark.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/package-smoke.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/provider-capability-stage-integrity.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/publish.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/scalability.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/viewer-agent-isolation.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/wheel-smoke.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.github/workflows/windows-launcher.yml +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/.gitignore +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/LICENSE +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/RELEASE-PLAN-0.8.0.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/benchmarks/phase1_overhead.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/antigravity-hooks.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/assets/codex.gif +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/benchmarks/README.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/claude-code-hooks.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/codex-hooks.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/cursor-hooks.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/evidence-grades.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/gemini-hooks.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/inference-gateway.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/internal/provider-capability-matrix.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/live-graph.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/model-runtime.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/opencode-plugin.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-1-runtime-collection.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/phase-2-execution-graph.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/rule-packs.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/run-integrity.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/runtime-threat-model.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/security-analysis.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.de.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.fr.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.ja.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.ko.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.ru.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.zh-CN.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/semantic-telemetry.zh-TW.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/v0.6.5-hardening-decisions.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/docs/v0.8.3-graph-ergonomics.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/audit_i18n_parity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_claude_hook.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_claude_record_graph.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_codex_hook.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_conversation_records.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_correlation_graph.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_inference_gateway_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_model_runtime_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_openai_compatible_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_release_stage_integrity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_semantic_graph.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_viewer_js.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_wheel_install.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/check_windows_launchers.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/emit_claude_hook_smoke.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/emit_codex_hook_smoke.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/emit_cursor_hook_smoke.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/emit_gemini_hook_smoke.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/emit_opencode_plugin_smoke.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/make_semantic_smoke.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/probe_provider_capability.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/scripts/sync_i18n_nav.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/__main__.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/_conversation_records_core.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/agent_bootstrap.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/agent_topology.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/agent_trace.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/analysis.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/anthropic.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/anthropic_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/anthropic_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_adapter_base.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_full_fidelity_base.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_full_fidelity_collaboration_base.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_hook_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_subagent_linkage.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/antigravity_trace_capability.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/auto_specialized.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/backends.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/benchmark.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/claude_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/claude_delegation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/claude_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/claude_hook_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/claude_hook_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/claude_model_observer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/claude_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_conversation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_hook_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_hook_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_message_diagnostics.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_message_transport_diagnostics.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_rollout_structures.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_rollout_trace.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/codex_rollout_trace_base.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/collector.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/command.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/content_evidence.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/content_store.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/conversation_archive.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/conversation_message_identity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/conversation_preview.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/conversation_records.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/correlation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cursor_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cursor_delegation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cursor_delegation_base.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cursor_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cursor_hook_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cursor_hook_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/cursor_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/entry.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/evidence_availability.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/evidence_grade.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/filesystem.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/focus.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/gemini_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/gemini_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/gemini_hook_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/gemini_hook_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/gemini_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/graph.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/graph_ops.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/http_proxy.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/http_proxy_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/inference_gateway.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/inference_gateway_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/inference_gateway_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/inference_identity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/inference_identity_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/integrity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/integrity_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/litellm_callback.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/litellm_callback_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_core.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_extra_style.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_markup.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_readability.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_script_a.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_script_b.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_script_c.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_script_d.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/live_view_style.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/model_runtime.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/model_runtime_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/model_runtime_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/openai_compatible.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/openai_compatible_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/openai_compatible_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/opencode_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/opencode_event_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/opencode_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/opencode_hook_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/opencode_plugin_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/opencode_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/opencode_task_linkage.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/overhead_benchmark.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/provider_capability.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/provider_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/provider_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/rule_pack.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/rule_pack_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/scalability_benchmark.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/schema.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/scope.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/semantic.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/sink.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/strace_backend.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/stream_assembly.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/theme.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/top.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/top_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/validate.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/view_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_content_inspector.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_dashboard_clean.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_dashboard_hardening.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_dashboard_hardening_v2.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_live_layout.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_projection.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/viewer_projection_base.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/src/execweave/workflow.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/dashboard_readability_fixture.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/codex_multi_agent/PROVENANCE.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/codex_multi_agent/hook-payloads.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/codex_multi_agent/rollout-main.jsonl +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/hooks/README.md +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/hooks/claude.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/hooks/codex.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/hooks/cursor.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/hooks/gemini.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/hooks/manifest.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/fixtures/hooks/opencode.json +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/multi_agent_run_fixture.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_agent_bootstrap.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_agent_message_viewer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_agent_node_labels.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_agent_said_panel.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_agent_topology_evidence.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_agent_trace_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_agent_trace_viewer_visibility.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_analysis.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_anthropic.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_agent_collaboration.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_cursor_launch.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_history_replay.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_identity_topology.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_linkage_projection.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_official_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_subagent_transcript_linkage.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_antigravity_trace_capability_cli.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_auto_specialized.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_backends.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_delegation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_hook_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_hook_metadata.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_hook_viewer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_model_observer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_claude_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_archive_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_conversation_isolation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_hook_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_hook_partial_capture.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_message_diagnostics.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_message_transport_diagnostics.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_plain_routed_agent_message.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_real_multi_agent_conversation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_reducer_command.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_rollout_structures.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_rollout_trace.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_codex_routing_native_identity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_collector.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_command.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_condense.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_conversation_access.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_conversation_agent_focus.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_conversation_agent_isolation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_conversation_identity_merge.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_conversation_message_observation_dedupe.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_conversation_provider_parity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_correlation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_correlation_canonical_path.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_correlation_checker.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_correlation_process_exe.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cross_provider_agent_trace.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cursor_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cursor_delegation.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cursor_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cursor_hook_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cursor_hook_fail_open.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cursor_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_cursor_task_linkage.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_dashboard_information_architecture.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_dashboard_readability_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_dashboard_round_fold_state_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_dashboard_simplification.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_dashboard_ux_and_hook_projection.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_delegation_viewer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_evidence_grade.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_execution_viewer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_filesystem_resilience.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_focus.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_fold_budget_setting.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_gemini_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_gemini_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_gemini_hook_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_gemini_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_gemini_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_graph.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_graph_clear_focus_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_graph_edge_routing_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_graph_lane_separation_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_graph_node_sizing_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_graph_ops.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_hook_fixture_corpus.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_http_proxy.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_inference_endpoint_identity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_inference_gateway.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_inference_gateway_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_inference_identity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_integrity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_litellm_callback.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_live.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_live_auth.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_live_dashboard.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_live_dashboard_js.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_live_delta.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_live_logs_export.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_live_theme.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_lmstudio_auto_specialized.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_local_runtime_live_capture.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_model_runtime.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_model_runtime_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_openai_compatible.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_adapter.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_event_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_event_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_full_fidelity.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_identity_unification.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_plugin.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_record.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_opencode_task_session_linkage.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_overhead_benchmark.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_per_agent_conversation_default.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_pr25_premerge_hardening_contract.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_pr25_premerge_hardening_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_provider_capability.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_provider_conversation_evidence.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_provider_lifecycle.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_release_stage_integrity_version_guard.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_rule_pack.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_schema.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_scope.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_semantic.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_shared_injected_context_scope.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_strace_backend.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_stream_assembly.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_threat_model.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_tool_traffic_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_top_detached.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_v063_features.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_v064_live_auto_integrations.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_v064_live_evidence.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_v079_review_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_v079_review_regressions.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_v083_release_gate_p2.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_validate.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_version.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_viewer.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_viewer_agent_isolation_e2e.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_viewer_content_inspector.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_viewer_projection.py +0 -0
- {execweave-0.8.3 → execweave-0.8.4}/tests/test_workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: execweave
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.4
|
|
4
4
|
Summary: Turn AI-agent runtime behavior into a local interactive execution graph.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Irish-kw/ExecWeave
|
|
6
6
|
Project-URL: Repository, https://github.com/Irish-kw/ExecWeave
|
|
@@ -83,7 +83,7 @@ ExecWeave is a source-available, local-first observability project that turns AI
|
|
|
83
83
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
84
84
|
</p>
|
|
85
85
|
|
|
86
|
-
This README documents **v0.8.
|
|
86
|
+
This README documents **v0.8.4**.
|
|
87
87
|
|
|
88
88
|
## Why ExecWeave
|
|
89
89
|
|
|
@@ -30,7 +30,7 @@ ExecWeave ist ein source-available, local-first Observability-Projekt, das Aktiv
|
|
|
30
30
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
31
|
</p>
|
|
32
32
|
|
|
33
|
-
Dieses README dokumentiert **v0.8.
|
|
33
|
+
Dieses README dokumentiert **v0.8.4**.
|
|
34
34
|
|
|
35
35
|
## Warum ExecWeave
|
|
36
36
|
|
|
@@ -30,7 +30,7 @@ ExecWeave est un projet d’observabilité source-available et local-first qui t
|
|
|
30
30
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
31
|
</p>
|
|
32
32
|
|
|
33
|
-
Ce README décrit **v0.8.
|
|
33
|
+
Ce README décrit **v0.8.4**.
|
|
34
34
|
|
|
35
35
|
## Pourquoi ExecWeave
|
|
36
36
|
|
|
@@ -30,7 +30,7 @@ ExecWeave is a source-available, local-first observability project that turns AI
|
|
|
30
30
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
31
|
</p>
|
|
32
32
|
|
|
33
|
-
This README documents **v0.8.
|
|
33
|
+
This README documents **v0.8.4**.
|
|
34
34
|
|
|
35
35
|
## Why ExecWeave
|
|
36
36
|
|
|
@@ -4,8 +4,8 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "execweave"
|
|
7
|
-
# ExecWeave v0.8.
|
|
8
|
-
version = "0.8.
|
|
7
|
+
# ExecWeave v0.8.4 release metadata
|
|
8
|
+
version = "0.8.4"
|
|
9
9
|
description = "Turn AI-agent runtime behavior into a local interactive execution graph."
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.10"
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
5
|
from . import antigravity_full_fidelity_collaboration_base as _base
|
|
6
|
+
from .agent_topology import EVIDENCE_VALIDATED_CHILD_TRANSCRIPT, subagent_topology
|
|
6
7
|
from .antigravity_subagent_linkage import validated_subagent_links
|
|
7
8
|
from .content_evidence import content_observation_event
|
|
8
9
|
from .content_store import FullFidelityContentStore
|
|
@@ -51,18 +52,23 @@ def _assignment_event(
|
|
|
51
52
|
"identity_semantics": "provider_invoke_subagent_spec_index",
|
|
52
53
|
},
|
|
53
54
|
)
|
|
55
|
+
child_label = role or type_name or "Antigravity subagent"
|
|
54
56
|
child = _entity(
|
|
55
57
|
"agent",
|
|
56
58
|
f"agent:antigravity:conversation:{child_id}",
|
|
57
|
-
name=
|
|
59
|
+
name=child_label,
|
|
58
60
|
attributes={
|
|
59
61
|
"provider": "antigravity",
|
|
60
62
|
"conversation_id": child_id,
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
+
"agent_type": child_label,
|
|
64
|
+
"agent_nickname": role or type_name,
|
|
63
65
|
"identity_semantics": "provider_transcript_result_conversation_id",
|
|
64
66
|
"execution_observed": False,
|
|
65
67
|
"lifecycle_authority": "child_provider_hooks",
|
|
68
|
+
**subagent_topology(
|
|
69
|
+
evidence=EVIDENCE_VALIDATED_CHILD_TRANSCRIPT,
|
|
70
|
+
parent_scope_id=conversation_id,
|
|
71
|
+
),
|
|
66
72
|
},
|
|
67
73
|
)
|
|
68
74
|
return {
|
|
@@ -9,39 +9,17 @@ from .viewer_dashboard_clean import fold_budget_bootstrap, inject_live_dashboard
|
|
|
9
9
|
from .viewer_dashboard_focus import inject_live_dashboard_focus
|
|
10
10
|
from .viewer_live_layout import inject_live_dashboard_layout
|
|
11
11
|
|
|
12
|
-
_AGENT_PANEL_TOPOLOGY_OLD = (
|
|
13
|
-
"const path=nodePath(node),preview=recordFor(node)?.conversation_preview||{},"
|
|
14
|
-
"messages=Array.isArray(preview.messages)?preview.messages:[];\n"
|
|
15
|
-
" const isRoot=path==='/root'||attrs(node).agent_role==='root'||"
|
|
16
|
-
"attrs(node).root_agent_path==='/root';"
|
|
17
|
-
)
|
|
18
|
-
_AGENT_PANEL_TOPOLOGY_NEW = (
|
|
19
|
-
"const preview=recordFor(node)?.conversation_preview||{},"
|
|
20
|
-
"previewPath=String(preview.agent_path||'').trim();\n"
|
|
21
|
-
" const path=previewPath||nodePath(node),"
|
|
22
|
-
"messages=Array.isArray(preview.messages)?preview.messages:[];\n"
|
|
23
|
-
" const isRoot=preview.is_root===true||path==='/root'||"
|
|
24
|
-
"attrs(node).agent_role==='root'||attrs(node).root_agent_path==='/root';"
|
|
25
|
-
)
|
|
26
|
-
|
|
27
12
|
|
|
28
13
|
def _align_agent_panel_topology(html: str) -> str:
|
|
29
|
-
"""
|
|
14
|
+
"""Keep the agent panel's identity/topology authority intact.
|
|
30
15
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
untouched.
|
|
16
|
+
The panel owns the provider-neutral rule: exact conversation identity selects
|
|
17
|
+
content, while only explicit/root-provenance evidence selects the root renderer.
|
|
18
|
+
Rewriting that code here used to promote every derived ``/root`` preview back into
|
|
19
|
+
a canonical root and reintroduced cross-conversation aggregation. The shared shell
|
|
20
|
+
therefore no longer carries a second topology policy.
|
|
37
21
|
"""
|
|
38
|
-
|
|
39
|
-
raise RuntimeError("agent panel topology seam changed")
|
|
40
|
-
return html.replace(
|
|
41
|
-
_AGENT_PANEL_TOPOLOGY_OLD,
|
|
42
|
-
_AGENT_PANEL_TOPOLOGY_NEW,
|
|
43
|
-
1,
|
|
44
|
-
)
|
|
22
|
+
return html
|
|
45
23
|
|
|
46
24
|
|
|
47
25
|
def _build_dashboard_html() -> str:
|
|
@@ -29,16 +29,23 @@ if(!details||!detailsEmpty)return;
|
|
|
29
29
|
let entries=Array.isArray(window.__execweaveStaticConversations)?window.__execweaveStaticConversations:[];
|
|
30
30
|
let selectedNode=null,refreshing=false,selectedConversationSignature='';
|
|
31
31
|
const foldStateByAgent=new Map();
|
|
32
|
+
const ROOT_NODE_IDS=new Set(['agent:Claude Code','agent:OpenAI Codex','agent:Codex','agent:Cursor','agent:OpenCode','agent:Gemini CLI','agent:Antigravity']);
|
|
32
33
|
const ENCRYPTED_NOTICE='Observed — plaintext not exposed by provider.';
|
|
33
34
|
const attrs=node=>node&&typeof node.attributes==='object'&&node.attributes?node.attributes:{};
|
|
34
35
|
const nodePath=node=>String(attrs(node).agent_path||attrs(node).child_agent_path||attrs(node).root_agent_path||node?.name||'').trim();
|
|
35
|
-
const agentKey=node=>
|
|
36
|
+
const agentKey=node=>String(node?.id||'')||nodePath(node);
|
|
36
37
|
const messageText=message=>typeof message?.text==='string'?message.text.trim():'';
|
|
37
38
|
const isEncrypted=message=>String(message?.content_state||'')==='provider_encrypted';
|
|
38
39
|
const isObserved=message=>!!message&&(isEncrypted(message)||!!messageText(message));
|
|
39
40
|
const displayText=message=>isEncrypted(message)?ENCRYPTED_NOTICE:messageText(message);
|
|
40
41
|
const isInjected=message=>String(message?.content_role||'')==='shared_injected_context';
|
|
41
42
|
const own=(message,path)=>!message?.sender||String(message.sender)===path;
|
|
43
|
+
const previewHasRootAuthority=preview=>!!preview&&preview.is_root===true&&String(preview.topology_state||'')!=='derived'&&String(preview.topology_evidence||'')!=='no_parent_evidence_observed';
|
|
44
|
+
const previewUsesRootRenderer=preview=>!!preview&&preview.is_root===true&&String(preview.agent_path||'')==='/root';
|
|
45
|
+
const nodeHasChildAuthority=node=>!!String(attrs(node).parent_agent_path||'').trim();
|
|
46
|
+
const legacyRootSignal=(node,path)=>path==='/root'||attrs(node).agent_role==='root'||attrs(node).root_agent_path==='/root';
|
|
47
|
+
const nodeHasRootAuthority=node=>!nodeHasChildAuthority(node)&&(legacyRootSignal(node,nodePath(node))||ROOT_NODE_IDS.has(String(node?.id||'')));
|
|
48
|
+
const entryHasRootAuthority=entry=>ROOT_NODE_IDS.has(String(entry?.source_id||''))||previewHasRootAuthority(entry?.conversation_preview);
|
|
42
49
|
function messageKey(message){return JSON.stringify([message?.timestamp??null,message?.ordinal??null,message?.sender??null,message?.recipient??null,message?.kind??null,message?.phase??null,message?.content_state??null,message?.content_role??null,messageText(message)])}
|
|
43
50
|
function messageOrder(message,index){const stamp=String(message?.timestamp||''),ordinal=Number.isInteger(message?.ordinal)?message.ordinal:Number.MAX_SAFE_INTEGER;return{message,index,stamp,ordinal}}
|
|
44
51
|
function aggregate(matches){
|
|
@@ -52,11 +59,30 @@ function aggregate(matches){
|
|
|
52
59
|
return{...base,conversation_preview:{...preview,messages:ordered.map(item=>item.message)}};
|
|
53
60
|
}
|
|
54
61
|
function recordFor(node){
|
|
55
|
-
const
|
|
56
|
-
|
|
62
|
+
const nodeId=String(node?.id||'');
|
|
63
|
+
const exact=nodeId?entries.filter(entry=>String(entry?.source_id||'')===nodeId):[];
|
|
64
|
+
if(exact.length)return aggregate(exact);
|
|
65
|
+
const path=nodePath(node);if(!path)return null;
|
|
66
|
+
return aggregate(entries.filter(entry=>{
|
|
67
|
+
const preview=entry?.conversation_preview;
|
|
68
|
+
if(!preview||!(String(entry?.conversation_preview?.agent_path||'')===path))return false;
|
|
69
|
+
if(String(preview.topology_state||'')==='derived')return false;
|
|
70
|
+
if(path==='/root'&&!entryHasRootAuthority(entry))return false;
|
|
71
|
+
return true;
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
function canonicalRootRecord(){
|
|
75
|
+
const roots=entries.filter(entryHasRootAuthority);
|
|
76
|
+
const sourceIds=[...new Set(roots.map(entry=>String(entry?.source_id||'')).filter(Boolean))];
|
|
77
|
+
if(sourceIds.length!==1)return null;
|
|
78
|
+
return aggregate(roots.filter(entry=>String(entry?.source_id||'')===sourceIds[0]));
|
|
57
79
|
}
|
|
58
80
|
function recordForPath(path){
|
|
59
|
-
|
|
81
|
+
if(String(path)==='/root')return canonicalRootRecord();
|
|
82
|
+
return aggregate(entries.filter(entry=>{
|
|
83
|
+
const preview=entry?.conversation_preview;
|
|
84
|
+
return !!preview&&String(entry?.conversation_preview?.agent_path||'')===String(path)&&String(preview.topology_state||'')!=='derived';
|
|
85
|
+
}));
|
|
60
86
|
}
|
|
61
87
|
function conversationSignature(node){
|
|
62
88
|
if(!node||String(node.type||'')!=='agent')return '';
|
|
@@ -81,13 +107,14 @@ function summarise(text){const line=String(text||'').split('\n').map(part=>part.
|
|
|
81
107
|
// The root's rounds are the boundaries: a round opens on a user message and runs until
|
|
82
108
|
// the next one. A subagent's round is attributed to the root round whose interval
|
|
83
109
|
// contains its assignment, so the two panels fold on the same moment and can be read
|
|
84
|
-
// side by side.
|
|
110
|
+
// side by side. Root boundaries come from one exact root identity, never every record
|
|
111
|
+
// whose presentation path happens to be /root.
|
|
85
112
|
function rootPrompts(messages,path){return messages.filter(message=>isObserved(message)&&!isInjected(message)&&(String(message?.kind||'')==='user_message'||String(message?.sender||'')==='user')&&(!message?.recipient||String(message.recipient)===path))}
|
|
86
|
-
function runRounds(){
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
return rootPrompts(messages,
|
|
113
|
+
function runRounds(rootRecord=null){
|
|
114
|
+
const record=rootRecord||recordForPath('/root'),preview=record?.conversation_preview||{};
|
|
115
|
+
const messages=Array.isArray(preview.messages)?preview.messages:[];
|
|
116
|
+
const path=String(preview.agent_path||'/root');
|
|
117
|
+
return rootPrompts(messages,path).map(message=>({key:messageKey(message),start:stampOf(message),label:summarise(messageText(message))}));
|
|
91
118
|
}
|
|
92
119
|
function roundOf(stamp,rounds){let found=null;for(const round of rounds){if(round.start&&stamp&&round.start<=stamp)found=round}return found||rounds[0]||null}
|
|
93
120
|
function sameDayRun(rounds){const days=new Set(rounds.map(round=>String(round.start||'').slice(0,10)).filter(Boolean));return days.size<=1}
|
|
@@ -315,14 +342,14 @@ function render(node){
|
|
|
315
342
|
if(!node)return false;
|
|
316
343
|
if(String(node.type||'')!=='agent')return renderNode(node);
|
|
317
344
|
selectedNode=node;selectedConversationSignature=conversationSignature(node);detailsEmpty.hidden=true;details.replaceChildren();
|
|
318
|
-
const
|
|
319
|
-
const isRoot=
|
|
345
|
+
const record=recordFor(node),preview=record?.conversation_preview||{},path=String(preview.agent_path||nodePath(node)||'').trim(),messages=Array.isArray(preview.messages)?preview.messages:[];
|
|
346
|
+
const isRoot=nodeHasRootAuthority(node)||previewUsesRootRenderer(preview);
|
|
320
347
|
const rounds=isRoot?rootRounds(messages,path||'/root'):childRounds(messages,path);
|
|
321
348
|
const tools=toolCallsFor(String(node.id||''));
|
|
322
349
|
const appendTools=()=>{if(tools)details.appendChild(card('Tools',tools))};
|
|
323
350
|
if(rounds.length<2){details.appendChild(roundView(rounds[0]||{cards:isRoot?[['Prompt',''],['Final response','']]:[['Task',''],['Thinking',''],['Response','']]}));appendTools();return true}
|
|
324
|
-
// A subagent borrows the moment and the wording of the root round
|
|
325
|
-
//
|
|
351
|
+
// A subagent borrows the moment and the wording of the unique canonical root round
|
|
352
|
+
// it belongs to. If root identity is ambiguous, the child keeps its own timestamp.
|
|
326
353
|
const runs=isRoot?rounds:runRounds();
|
|
327
354
|
const sameDay=sameDayRun(runs.length?runs:rounds);
|
|
328
355
|
const naming=round=>isRoot?round:(roundOf(round.start,runs)||{start:round.start,label:''});
|
|
@@ -12,19 +12,25 @@ execweaveDashboardGraph=function(data){
|
|
|
12
12
|
const attrs=node.attributes||{};
|
|
13
13
|
let name=node.name;
|
|
14
14
|
if(node.type==='agent'){
|
|
15
|
-
|
|
16
|
-
// child_agent_path and a root carries root_agent_path. Reading agent_path
|
|
17
|
-
// alone finds nothing and falls through to an id fragment.
|
|
15
|
+
const provider=String(attrs.provider||'').toLowerCase();
|
|
18
16
|
const agentPath=String(attrs.agent_path||attrs.child_agent_path||attrs.root_agent_path||'').trim();
|
|
19
17
|
const agentId=String(attrs.agent_id||attrs.subagent_id||'');
|
|
18
|
+
const conversationId=String(attrs.conversation_id||'').trim();
|
|
20
19
|
const nickname=String(attrs.agent_nickname||'').trim();
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const nativeLabel=String(nickname||attrs.agent_type||attrs.subagent_type||attrs.native_agent_name||'').trim();
|
|
21
|
+
const explicitChild=!!String(attrs.parent_agent_path||'').trim();
|
|
22
|
+
const explicitRoot=!explicitChild&&(attrs.agent_role==='root'||String(attrs.root_agent_path||'')==='/root'||providerRootIds.has(String(node.id||'')));
|
|
23
|
+
if(explicitRoot)name='/root';
|
|
24
|
+
else if(provider==='antigravity'&&nativeLabel&&!['default','agent','subagent','antigravity subagent'].includes(nativeLabel.toLowerCase()))name=nativeLabel;
|
|
25
|
+
else if(agentPath)name=agentPath;
|
|
26
|
+
else if(provider==='antigravity'&&conversationId)name=`conversation · ${conversationId.slice(0,8)}`;
|
|
27
|
+
else if(['default','agent','subagent','antigravity conversation'].includes(String(node.name||'').toLowerCase())){
|
|
24
28
|
// Never label by a timestamp-ordered id prefix: siblings spawned in the
|
|
25
29
|
// same millisecond share it and render as the same node.
|
|
26
30
|
if(nickname)name=`subagent · ${nickname}`;
|
|
31
|
+
else if(nativeLabel)name=`subagent · ${nativeLabel}`;
|
|
27
32
|
else if(agentId)name=`subagent · ${agentId.slice(0,13)}`;
|
|
33
|
+
else name=`agent · ${String(node.id||'').split(':').at(-1).slice(0,13)}`;
|
|
28
34
|
}
|
|
29
35
|
}
|
|
30
36
|
const occurrenceCount=Number(attrs.viewer_occurrence_count||0);
|