execweave 0.8.6__tar.gz → 0.8.7__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.6 → execweave-0.8.7}/.github/workflows/provider-capability-stage-integrity.yml +34 -18
- {execweave-0.8.6 → execweave-0.8.7}/PKG-INFO +4 -2
- {execweave-0.8.6 → execweave-0.8.7}/README.de.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/README.fr.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/README.ja.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/README.ko.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/README.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/README.ru.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/README.zh-CN.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/README.zh-TW.md +3 -1
- {execweave-0.8.6 → execweave-0.8.7}/pyproject.toml +2 -2
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/__init__.py +1 -1
- execweave-0.8.7/src/execweave/agy_preview_sanitize.py +102 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_adapter_base.py +3 -0
- execweave-0.8.7/src/execweave/antigravity_full_fidelity.py +495 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_full_fidelity_base.py +6 -1
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_hook_cli.py +45 -5
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_subagent_linkage.py +116 -3
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_adapter.py +82 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_conversation.py +31 -4
- execweave-0.8.7/src/execweave/conversation_preview.py +66 -0
- execweave-0.8.7/src/execweave/conversation_preview_antigravity.py +32 -0
- execweave-0.8.7/src/execweave/conversation_preview_claude.py +31 -0
- execweave-0.8.7/src/execweave/conversation_preview_codex.py +107 -0
- execweave-0.8.7/src/execweave/conversation_preview_common.py +156 -0
- execweave-0.8.7/src/execweave/conversation_preview_generic.py +166 -0
- execweave-0.8.7/src/execweave/conversation_preview_lines.py +116 -0
- execweave-0.8.7/src/execweave/conversation_preview_transcript.py +121 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/conversation_records.py +21 -260
- execweave-0.8.7/src/execweave/conversation_records_antigravity.py +369 -0
- execweave-0.8.7/src/execweave/conversation_records_codex.py +59 -0
- execweave-0.8.7/src/execweave/conversation_records_common.py +16 -0
- execweave-0.8.7/src/execweave/conversation_records_ollama.py +39 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/dashboard_shell.py +14 -1
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view.py +5 -4
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_markup.py +1 -1
- execweave-0.8.7/src/execweave/live_view_process_layout.py +349 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_readability.py +54 -1
- execweave-0.8.7/src/execweave/vendor/dagre.min.js +815 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_agent_panel.py +88 -32
- execweave-0.8.7/src/execweave/viewer_agent_panel_antigravity.py +31 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_claude.py +9 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_codex.py +50 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_cursor.py +9 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_default.py +36 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_gemini.py +9 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_ollama.py +20 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_opencode.py +9 -0
- execweave-0.8.7/src/execweave/viewer_agent_panel_registry.py +21 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_dashboard_clean.py +101 -52
- execweave-0.8.7/src/execweave/viewer_external_endpoints.py +199 -0
- execweave-0.8.7/src/execweave/viewer_projection.py +198 -0
- execweave-0.8.7/tests/test_agy_windows_wire_acceptance.py +302 -0
- execweave-0.8.7/tests/test_antigravity_child_panel_policy.py +166 -0
- execweave-0.8.7/tests/test_antigravity_child_transcript_tools.py +135 -0
- execweave-0.8.7/tests/test_antigravity_invocation_archive.py +123 -0
- execweave-0.8.7/tests/test_antigravity_role_path_fallback.py +249 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_adapter.py +66 -0
- execweave-0.8.7/tests/test_codex_child_panel_policy.py +375 -0
- execweave-0.8.7/tests/test_codex_nickname_path_fallback.py +134 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_dashboard_readability_e2e.py +2 -2
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_dashboard_simplification.py +6 -1
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_dashboard_ux_and_hook_projection.py +2 -1
- execweave-0.8.7/tests/test_external_endpoints_all_providers.py +148 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_live.py +3 -1
- execweave-0.8.7/tests/test_ollama_panel_policy.py +89 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_per_agent_conversation_default.py +4 -2
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_pr25_premerge_hardening_e2e.py +16 -6
- execweave-0.8.7/tests/test_process_tree_layout.py +156 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_v069_dashboard_release.py +3 -3
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_viewer_agent_isolation_e2e.py +1 -1
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_viewer_projection.py +18 -1
- execweave-0.8.7/tests/test_windows_codex_agy_display_repair.py +220 -0
- execweave-0.8.6/src/execweave/antigravity_full_fidelity.py +0 -220
- execweave-0.8.6/src/execweave/conversation_preview.py +0 -793
- execweave-0.8.6/src/execweave/viewer_projection.py +0 -90
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/ci.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/cleanup-workflow-history.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/i18n.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/package-benchmark.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/package-smoke.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/publish.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/scalability.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/viewer-agent-isolation.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/wheel-smoke.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.github/workflows/windows-launcher.yml +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/.gitignore +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/LICENSE +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/RELEASE-PLAN-0.8.0.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/benchmarks/phase1_overhead.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/antigravity-hooks.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/assets/codex.gif +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/benchmarks/README.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/claude-code-hooks.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/codex-hooks.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/cursor-hooks.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/evidence-grades.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/gemini-hooks.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/inference-gateway.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/internal/provider-capability-matrix.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/live-graph.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/model-runtime.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/opencode-plugin.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-1-runtime-collection.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/phase-2-execution-graph.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/rule-packs.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/run-integrity.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/runtime-threat-model.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/security-analysis.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.de.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.fr.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.ja.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.ko.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.ru.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.zh-CN.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/semantic-telemetry.zh-TW.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/v0.6.5-hardening-decisions.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/docs/v0.8.3-graph-ergonomics.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/audit_i18n_parity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_claude_hook.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_claude_record_graph.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_codex_hook.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_conversation_records.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_correlation_graph.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_inference_gateway_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_model_runtime_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_openai_compatible_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_release_stage_integrity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_semantic_graph.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_viewer_js.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_wheel_install.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/check_windows_launchers.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/emit_claude_hook_smoke.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/emit_codex_hook_smoke.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/emit_cursor_hook_smoke.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/emit_gemini_hook_smoke.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/emit_opencode_plugin_smoke.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/make_semantic_smoke.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/probe_provider_capability.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/scripts/sync_i18n_nav.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/__main__.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/_conversation_records_core.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/agent_bootstrap.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/agent_topology.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/agent_trace.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/analysis.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/anthropic.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/anthropic_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/anthropic_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_full_fidelity_collaboration_base.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/antigravity_trace_capability.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/auto_specialized.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/backends.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/benchmark.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/claude_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/claude_delegation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/claude_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/claude_hook_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/claude_hook_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/claude_model_observer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/claude_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_hook_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_hook_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_message_diagnostics.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_message_transport_diagnostics.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_rollout_structures.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_rollout_trace.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/codex_rollout_trace_base.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/collector.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/command.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/content_evidence.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/content_store.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/conversation_archive.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/conversation_message_identity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/correlation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cursor_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cursor_delegation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cursor_delegation_base.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cursor_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cursor_hook_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cursor_hook_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/cursor_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/entry.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/evidence_availability.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/evidence_grade.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/filesystem.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/focus.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/gemini_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/gemini_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/gemini_hook_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/gemini_hook_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/gemini_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/graph.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/graph_ops.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/http_proxy.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/http_proxy_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/inference_gateway.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/inference_gateway_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/inference_gateway_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/inference_identity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/inference_identity_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/integrity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/integrity_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/litellm_callback.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/litellm_callback_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_core.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_extra_style.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_script_a.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_script_b.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_script_c.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_script_d.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/live_view_style.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/model_runtime.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/model_runtime_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/model_runtime_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/openai_compatible.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/openai_compatible_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/openai_compatible_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/opencode_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/opencode_event_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/opencode_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/opencode_hook_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/opencode_plugin_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/opencode_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/opencode_task_linkage.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/overhead_benchmark.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/provider_capability.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/provider_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/provider_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/rule_pack.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/rule_pack_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/scalability_benchmark.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/schema.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/scope.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/semantic.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/sink.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/strace_backend.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/stream_assembly.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/theme.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/top.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/top_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/validate.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/view_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_content_inspector.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_dashboard_focus.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_dashboard_hardening.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_dashboard_hardening_v2.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_live_layout.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/viewer_projection_base.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/src/execweave/workflow.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/dashboard_readability_fixture.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/codex_multi_agent/PROVENANCE.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/codex_multi_agent/hook-payloads.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/codex_multi_agent/rollout-main.jsonl +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/hooks/README.md +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/hooks/claude.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/hooks/codex.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/hooks/cursor.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/hooks/gemini.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/hooks/manifest.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/fixtures/hooks/opencode.json +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/multi_agent_run_fixture.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_agent_bootstrap.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_agent_message_viewer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_agent_node_labels.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_agent_said_panel.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_agent_topology_evidence.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_agent_trace_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_agent_trace_viewer_visibility.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_analysis.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_anthropic.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_agent_collaboration.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_cursor_launch.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_history_replay.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_identity_topology.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_linkage_projection.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_multi_conversation_isolation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_official_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_root_child_history_v2.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_subagent_transcript_linkage.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_antigravity_trace_capability_cli.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_auto_specialized.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_backends.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_delegation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_hook_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_hook_metadata.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_hook_viewer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_model_observer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_claude_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_archive_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_conversation_isolation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_hook_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_hook_partial_capture.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_message_diagnostics.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_message_transport_diagnostics.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_plain_routed_agent_message.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_real_multi_agent_conversation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_reducer_command.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_rollout_structures.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_rollout_trace.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_codex_routing_native_identity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_collector.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_command.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_condense.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_conversation_access.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_conversation_agent_focus.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_conversation_agent_isolation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_conversation_identity_merge.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_conversation_message_observation_dedupe.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_conversation_provider_parity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_conversation_root_authority.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_correlation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_correlation_canonical_path.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_correlation_checker.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_correlation_process_exe.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cross_provider_agent_trace.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cursor_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cursor_delegation.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cursor_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cursor_hook_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cursor_hook_fail_open.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cursor_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_cursor_task_linkage.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_dashboard_information_architecture.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_dashboard_round_fold_state_e2e.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_delegation_viewer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_evidence_grade.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_execution_viewer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_filesystem_resilience.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_focus.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_fold_budget_setting.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_gemini_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_gemini_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_gemini_hook_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_gemini_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_gemini_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_graph.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_graph_clear_focus_e2e.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_graph_edge_routing_e2e.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_graph_lane_separation_e2e.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_graph_node_sizing_e2e.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_graph_ops.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_hook_fixture_corpus.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_http_proxy.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_inference_endpoint_identity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_inference_gateway.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_inference_gateway_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_inference_identity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_integrity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_litellm_callback.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_live_auth.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_live_dashboard.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_live_dashboard_js.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_live_delta.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_live_logs_export.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_live_theme.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_lmstudio_auto_specialized.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_local_runtime_live_capture.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_model_runtime.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_model_runtime_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_openai_compatible.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_adapter.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_event_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_event_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_full_fidelity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_identity_unification.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_plugin.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_record.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_opencode_task_session_linkage.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_overhead_benchmark.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_pr25_premerge_hardening_contract.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_provider_capability.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_provider_conversation_evidence.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_provider_conversation_history_integrity.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_provider_lifecycle.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_release_stage_integrity_version_guard.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_rule_pack.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_schema.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_scope.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_semantic.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_shared_injected_context_scope.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_strace_backend.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_stream_assembly.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_threat_model.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_tool_traffic_e2e.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_top_detached.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_v063_features.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_v064_live_auto_integrations.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_v064_live_evidence.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_v079_review_e2e.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_v079_review_regressions.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_v083_release_gate_p2.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_validate.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_version.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_viewer.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_viewer_child_authority.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_viewer_content_inspector.py +0 -0
- {execweave-0.8.6 → execweave-0.8.7}/tests/test_workflow.py +0 -0
{execweave-0.8.6 → execweave-0.8.7}/.github/workflows/provider-capability-stage-integrity.yml
RENAMED
|
@@ -43,10 +43,6 @@ jobs:
|
|
|
43
43
|
HEAD_REF: "${{ github.head_ref }}"
|
|
44
44
|
run: |
|
|
45
45
|
args=(--baseline-ref "$BASELINE_REF")
|
|
46
|
-
# A release/* branch may advance the release metadata assertions, but the
|
|
47
|
-
# branch name alone is not the grant: the whole 0.8.x series of feature work
|
|
48
|
-
# lives under release/*, and an allowance those branches never use is an open
|
|
49
|
-
# allowance, which the checker refuses. The file has to actually change.
|
|
50
46
|
release_metadata_changed=""
|
|
51
47
|
if git diff --name-only "$BASELINE_REF...HEAD" \
|
|
52
48
|
| grep -qx 'tests/test_v069_dashboard_release.py'; then
|
|
@@ -55,11 +51,6 @@ jobs:
|
|
|
55
51
|
if [[ "$HEAD_REF" == release/* && -n "$release_metadata_changed" ]]; then
|
|
56
52
|
args+=(--allow-test-change "tests/test_v069_dashboard_release.py=release metadata assertions may advance only on a release/* pull request; the historical test name remains stable because the node-ID floor refuses renames")
|
|
57
53
|
fi
|
|
58
|
-
# PR #25 changes one historical source assertion only because tool traffic is
|
|
59
|
-
# appended inside the same render pass. Grant that exact exception only to the
|
|
60
|
-
# exact PR #25 branch and only while the file actually differs from the base.
|
|
61
|
-
# Once PR #25 lands, future branches cannot inherit this allowance merely by
|
|
62
|
-
# changing the same test file.
|
|
63
54
|
conversation_focus_changed=""
|
|
64
55
|
if git diff --name-only "$BASELINE_REF...HEAD" \
|
|
65
56
|
| grep -qx 'tests/test_conversation_agent_focus.py'; then
|
|
@@ -68,11 +59,6 @@ jobs:
|
|
|
68
59
|
if [[ "$HEAD_REF" == "release/0.8.3-graph-ergonomics" && -n "$conversation_focus_changed" ]]; then
|
|
69
60
|
args+=(--allow-test-change "tests/test_conversation_agent_focus.py=PR #25 only: surfacing tool traffic appends one more card inside the same render pass, so the source assertion that pinned the final line names the new line. The test ID and subject are unchanged")
|
|
70
61
|
fi
|
|
71
|
-
# AUD-001 repairs a historical assertion that deliberately characterized the
|
|
72
|
-
# cross-session root merge as a known limitation. Keep the node ID stable, and
|
|
73
|
-
# grant the assertion change only on the dedicated R1 branch or the exact PR #25
|
|
74
|
-
# integration branch that may absorb it. The file must actually differ, so this
|
|
75
|
-
# cannot become a standing exemption for unrelated work or future release lines.
|
|
76
62
|
conversation_identity_changed=""
|
|
77
63
|
if git diff --name-only "$BASELINE_REF...HEAD" \
|
|
78
64
|
| grep -qx 'tests/test_conversation_identity_merge.py'; then
|
|
@@ -83,9 +69,6 @@ jobs:
|
|
|
83
69
|
|| [[ "$HEAD_REF" == "release/0.8.3-graph-ergonomics" ]]; }; then
|
|
84
70
|
args+=(--allow-test-change "tests/test_conversation_identity_merge.py=AUD-001 only: the historical root-collision assertion is no longer correct after derived presentation thread ids stop acting as cross-execution identity; the original test node ID is retained and the assertion now requires isolation")
|
|
85
71
|
fi
|
|
86
|
-
# R2 changes the historical llama.cpp request-ID assertion because native
|
|
87
|
-
# request IDs are no longer globally authoritative: the endpoint scope is now
|
|
88
|
-
# part of the graph request identity. Grant only this branch/file combination.
|
|
89
72
|
model_runtime_identity_changed=""
|
|
90
73
|
if git diff --name-only "$BASELINE_REF...HEAD" \
|
|
91
74
|
| grep -qx 'tests/test_model_runtime.py'; then
|
|
@@ -95,4 +78,37 @@ jobs:
|
|
|
95
78
|
&& -n "$model_runtime_identity_changed" ]]; then
|
|
96
79
|
args+=(--allow-test-change "tests/test_model_runtime.py=AUD-002 only: the historical llama.cpp request ID assertion now includes the sanitized endpoint scope; the test node ID and runtime privacy contract are unchanged")
|
|
97
80
|
fi
|
|
98
|
-
|
|
81
|
+
if [[ "$HEAD_REF" == "fix/provider-isolation" ]]; then
|
|
82
|
+
while IFS= read -r path; do
|
|
83
|
+
case "$path" in
|
|
84
|
+
tests/test_viewer_projection.py)
|
|
85
|
+
args+=(--allow-test-change "tests/test_viewer_projection.py=non-loopback endpoints now fold into viewer-cluster:external; loopback stays separate. Test node ID is unchanged")
|
|
86
|
+
;;
|
|
87
|
+
tests/test_live.py)
|
|
88
|
+
args+=(--allow-test-change "tests/test_live.py=process-tree layout spreads a small depth Map into Math.max; coordinate arrays still must not be spread")
|
|
89
|
+
;;
|
|
90
|
+
tests/test_dashboard_simplification.py)
|
|
91
|
+
args+=(--allow-test-change "tests/test_dashboard_simplification.py=projected node set now contains External instead of the raw outbound IP")
|
|
92
|
+
;;
|
|
93
|
+
tests/test_codex_adapter.py)
|
|
94
|
+
args+=(--allow-test-change "tests/test_codex_adapter.py=apply_patch now declares explicit file targets so the graph preserves the tool-call-to-file relationship; existing test node IDs remain unchanged")
|
|
95
|
+
;;
|
|
96
|
+
tests/test_dashboard_ux_and_hook_projection.py)
|
|
97
|
+
args+=(--allow-test-change "tests/test_dashboard_ux_and_hook_projection.py=live graph projection folds the public endpoint; hook process remains hidden")
|
|
98
|
+
;;
|
|
99
|
+
tests/test_viewer_agent_isolation_e2e.py)
|
|
100
|
+
args+=(--allow-test-change "tests/test_viewer_agent_isolation_e2e.py=non-agent click target is External after IP collapse")
|
|
101
|
+
;;
|
|
102
|
+
tests/test_dashboard_readability_e2e.py)
|
|
103
|
+
args+=(--allow-test-change "tests/test_dashboard_readability_e2e.py=Dagre reflows existing nodes when a live node is added; identity of those nodes is unchanged")
|
|
104
|
+
;;
|
|
105
|
+
tests/test_pr25_premerge_hardening_e2e.py)
|
|
106
|
+
args+=(--allow-test-change "tests/test_pr25_premerge_hardening_e2e.py=Dagre LR placement replaces the old barycentre Y order; files stay to the right of owners and do not overlap")
|
|
107
|
+
;;
|
|
108
|
+
tests/test_per_agent_conversation_default.py)
|
|
109
|
+
args+=(--allow-test-change "tests/test_per_agent_conversation_default.py=isTask recipient/sender checks moved from viewer_agent_panel.py into viewer_agent_panel_default.py; historical test names are unchanged")
|
|
110
|
+
;;
|
|
111
|
+
esac
|
|
112
|
+
done < <(git diff --name-only "$BASELINE_REF...HEAD" -- tests)
|
|
113
|
+
fi
|
|
114
|
+
python scripts/check_release_stage_integrity.py "${args[@]}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: execweave
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.7
|
|
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
|
|
@@ -51,6 +51,8 @@ Requires-Dist: build>=1.2; extra == 'release'
|
|
|
51
51
|
Requires-Dist: twine>=6.0; extra == 'release'
|
|
52
52
|
Description-Content-Type: text/markdown
|
|
53
53
|
|
|
54
|
+
> Codex + AGY are now fully reworked; the remaining providers are not yet fully fixed.
|
|
55
|
+
|
|
54
56
|
# ExecWeave
|
|
55
57
|
|
|
56
58
|
<!-- i18n-nav:start -->
|
|
@@ -83,7 +85,7 @@ ExecWeave is a source-available, local-first observability project that turns AI
|
|
|
83
85
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
84
86
|
</p>
|
|
85
87
|
|
|
86
|
-
This README documents **v0.8.
|
|
88
|
+
This README documents **v0.8.7**.
|
|
87
89
|
|
|
88
90
|
## Why ExecWeave
|
|
89
91
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY wurden vollständig überarbeitet; die übrigen Provider sind noch nicht vollständig korrigiert.
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave ist ein source-available, local-first Observability-Projekt, das Aktiv
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
Dieses README dokumentiert **v0.8.
|
|
35
|
+
Dieses README dokumentiert **v0.8.7**.
|
|
34
36
|
|
|
35
37
|
## Warum ExecWeave
|
|
36
38
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY ont maintenant été entièrement remaniés ; les autres providers ne sont pas encore complètement corrigés.
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave est un projet d’observabilité source-available et local-first qui t
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
Ce README décrit **v0.8.
|
|
35
|
+
Ce README décrit **v0.8.7**.
|
|
34
36
|
|
|
35
37
|
## Pourquoi ExecWeave
|
|
36
38
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY は完全な再構成が完了しました。残りの provider はまだ修正完了していません。
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave は source-available / local-first の observability プロジェク
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
この README は **v0.8.
|
|
35
|
+
この README は **v0.8.7** を説明します。
|
|
34
36
|
|
|
35
37
|
## ExecWeave を使う理由
|
|
36
38
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY는 전체 재정비가 완료되었습니다. 나머지 provider는 아직 수정이 완료되지 않았습니다.
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave는 source-available, local-first observability 프로젝트입니다.
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
이 README는 **v0.8.
|
|
35
|
+
이 README는 **v0.8.7**을 설명합니다.
|
|
34
36
|
|
|
35
37
|
## 왜 ExecWeave인가
|
|
36
38
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY are now fully reworked; the remaining providers are not yet fully fixed.
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave is a source-available, local-first observability project that turns AI
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
This README documents **v0.8.
|
|
35
|
+
This README documents **v0.8.7**.
|
|
34
36
|
|
|
35
37
|
## Why ExecWeave
|
|
36
38
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY полностью переработаны; остальные провайдеры ещё не исправлены полностью.
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave — source-available, local-first проект наблюдаемос
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
Этот README описывает **v0.8.
|
|
35
|
+
Этот README описывает **v0.8.7**.
|
|
34
36
|
|
|
35
37
|
## Почему ExecWeave
|
|
36
38
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY 已完成完整重整;其余 provider 尚未修正完毕。
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave 是一个 source-available、local-first 的可观测性项目,把 A
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
本 README 对应 **v0.8.
|
|
35
|
+
本 README 对应 **v0.8.7**。
|
|
34
36
|
|
|
35
37
|
## 为什么是 ExecWeave
|
|
36
38
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
> Codex + AGY 已完成完整重整;其餘 provider 尚未修正完畢。
|
|
2
|
+
|
|
1
3
|
# ExecWeave
|
|
2
4
|
|
|
3
5
|
<!-- i18n-nav:start -->
|
|
@@ -30,7 +32,7 @@ ExecWeave 是一個 source-available、local-first 的可觀測性專案,會
|
|
|
30
32
|
<img src="docs/assets/codex.gif" alt="ExecWeave animated live demo" width="100%">
|
|
31
33
|
</p>
|
|
32
34
|
|
|
33
|
-
本 README 對應 **v0.8.
|
|
35
|
+
本 README 對應 **v0.8.7**。
|
|
34
36
|
|
|
35
37
|
## 為什麼是 ExecWeave
|
|
36
38
|
|
|
@@ -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.7 release metadata
|
|
8
|
+
version = "0.8.7"
|
|
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"
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
from .agent_topology import ROOT_PATH
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _normalized_preview_text(value: object) -> str:
|
|
9
|
+
return " ".join(str(value or "").split())
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _parent_agent_path(path: str) -> str:
|
|
13
|
+
parent = path.rsplit("/", 1)[0] if "/" in path else ""
|
|
14
|
+
return parent or ROOT_PATH
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _is_antigravity_addressed_task(message: dict[str, Any], path: str) -> bool:
|
|
18
|
+
if str(message.get("recipient") or "") != path:
|
|
19
|
+
return False
|
|
20
|
+
kind = str(message.get("kind") or "")
|
|
21
|
+
role = str(message.get("content_role") or "")
|
|
22
|
+
return kind == "subagent_task" or role == "antigravity_addressed_task"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def sanitize_antigravity_preview_messages(entries: list[dict[str, Any]]) -> None:
|
|
26
|
+
"""Canonicalize child assignments and drop copies pasted onto /root."""
|
|
27
|
+
child_replies: set[str] = set()
|
|
28
|
+
child_assignments: set[str] = set()
|
|
29
|
+
for entry in entries:
|
|
30
|
+
if str(entry.get("provider") or "").lower() != "antigravity":
|
|
31
|
+
continue
|
|
32
|
+
preview = entry.get("conversation_preview")
|
|
33
|
+
if not isinstance(preview, dict) or preview.get("is_root") is not False:
|
|
34
|
+
continue
|
|
35
|
+
path = str(preview.get("agent_path") or "")
|
|
36
|
+
for message in preview.get("messages") or []:
|
|
37
|
+
if not isinstance(message, dict):
|
|
38
|
+
continue
|
|
39
|
+
kind = str(message.get("kind") or "")
|
|
40
|
+
sender = str(message.get("sender") or "")
|
|
41
|
+
text = _normalized_preview_text(message.get("text"))
|
|
42
|
+
if _is_antigravity_addressed_task(message, path) and text:
|
|
43
|
+
child_assignments.add(text)
|
|
44
|
+
if kind not in {"assistant_message", "subagent_final_response"}:
|
|
45
|
+
continue
|
|
46
|
+
if path and sender and sender != path:
|
|
47
|
+
continue
|
|
48
|
+
if text:
|
|
49
|
+
child_replies.add(text)
|
|
50
|
+
|
|
51
|
+
for entry in entries:
|
|
52
|
+
if str(entry.get("provider") or "").lower() != "antigravity":
|
|
53
|
+
continue
|
|
54
|
+
preview = entry.get("conversation_preview")
|
|
55
|
+
if not isinstance(preview, dict):
|
|
56
|
+
continue
|
|
57
|
+
messages = [message for message in preview.get("messages") or [] if isinstance(message, dict)]
|
|
58
|
+
path = str(preview.get("agent_path") or "")
|
|
59
|
+
is_root = preview.get("is_root") is True or path == ROOT_PATH
|
|
60
|
+
kept: list[dict[str, Any]] = []
|
|
61
|
+
assignment_texts: set[str] = set()
|
|
62
|
+
if not is_root:
|
|
63
|
+
for message in messages:
|
|
64
|
+
kind = str(message.get("kind") or "")
|
|
65
|
+
if kind in {"task", "subagent_task"} or str(
|
|
66
|
+
message.get("content_role") or ""
|
|
67
|
+
) == "antigravity_addressed_task":
|
|
68
|
+
text = _normalized_preview_text(message.get("text"))
|
|
69
|
+
if text:
|
|
70
|
+
assignment_texts.add(text)
|
|
71
|
+
for original in messages:
|
|
72
|
+
message = original
|
|
73
|
+
kind = str(message.get("kind") or "")
|
|
74
|
+
recipient = str(message.get("recipient") or "")
|
|
75
|
+
text = _normalized_preview_text(message.get("text"))
|
|
76
|
+
if is_root:
|
|
77
|
+
if kind == "subagent_task" and recipient in {"", ROOT_PATH, "/root"}:
|
|
78
|
+
continue
|
|
79
|
+
if kind == "assistant_message" and text and text in child_assignments:
|
|
80
|
+
continue
|
|
81
|
+
if text and text in child_replies and kind != "assistant_message":
|
|
82
|
+
continue
|
|
83
|
+
else:
|
|
84
|
+
if _is_antigravity_addressed_task(message, path):
|
|
85
|
+
sender = str(message.get("sender") or "")
|
|
86
|
+
message = dict(message)
|
|
87
|
+
message["kind"] = "task"
|
|
88
|
+
message["phase"] = "assignment"
|
|
89
|
+
message["content_role"] = "antigravity_addressed_task"
|
|
90
|
+
if sender in {"", "user"}:
|
|
91
|
+
message["sender"] = _parent_agent_path(path)
|
|
92
|
+
kind = "task"
|
|
93
|
+
if (
|
|
94
|
+
kind == "user_message"
|
|
95
|
+
and text
|
|
96
|
+
and text in assignment_texts
|
|
97
|
+
and recipient == path
|
|
98
|
+
):
|
|
99
|
+
continue
|
|
100
|
+
kept.append(message)
|
|
101
|
+
preview["messages"] = kept
|
|
102
|
+
preview["message_count"] = len(kept)
|
|
@@ -165,7 +165,10 @@ def _tool_call(payload: dict[str, Any]) -> tuple[dict[str, Any], dict[str, Any],
|
|
|
165
165
|
attributes={
|
|
166
166
|
"provider": "antigravity",
|
|
167
167
|
"tool_name": name,
|
|
168
|
+
"conversation_id": conversation_id,
|
|
168
169
|
"step_index": step,
|
|
170
|
+
"arguments": canonical_args,
|
|
171
|
+
"arguments_observed": isinstance(args, dict),
|
|
169
172
|
},
|
|
170
173
|
)
|
|
171
174
|
tool = _entity(
|