execweave 0.6.4__tar.gz → 0.6.5__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.6.5/PKG-INFO +358 -0
- execweave-0.6.5/README.de.md +298 -0
- execweave-0.6.5/README.fr.md +298 -0
- execweave-0.6.5/README.ja.md +298 -0
- execweave-0.6.5/README.ko.md +298 -0
- execweave-0.6.5/README.md +302 -0
- execweave-0.6.5/README.ru.md +298 -0
- execweave-0.6.5/README.zh-CN.md +302 -0
- execweave-0.6.5/README.zh-TW.md +302 -0
- execweave-0.6.5/docs/claude-code-hooks.de.md +157 -0
- execweave-0.6.5/docs/claude-code-hooks.fr.md +157 -0
- execweave-0.6.5/docs/claude-code-hooks.ja.md +157 -0
- execweave-0.6.5/docs/claude-code-hooks.ko.md +157 -0
- execweave-0.6.5/docs/claude-code-hooks.md +157 -0
- execweave-0.6.5/docs/claude-code-hooks.ru.md +157 -0
- execweave-0.6.5/docs/claude-code-hooks.zh-CN.md +157 -0
- execweave-0.6.5/docs/claude-code-hooks.zh-TW.md +157 -0
- execweave-0.6.5/docs/codex-hooks.de.md +71 -0
- execweave-0.6.5/docs/codex-hooks.fr.md +71 -0
- execweave-0.6.5/docs/codex-hooks.ja.md +71 -0
- execweave-0.6.5/docs/codex-hooks.ko.md +71 -0
- execweave-0.6.5/docs/codex-hooks.md +71 -0
- execweave-0.6.5/docs/codex-hooks.ru.md +71 -0
- execweave-0.6.5/docs/codex-hooks.zh-CN.md +71 -0
- execweave-0.6.5/docs/codex-hooks.zh-TW.md +71 -0
- execweave-0.6.5/docs/cursor-hooks.de.md +58 -0
- execweave-0.6.5/docs/cursor-hooks.fr.md +58 -0
- execweave-0.6.5/docs/cursor-hooks.ja.md +58 -0
- execweave-0.6.5/docs/cursor-hooks.ko.md +58 -0
- execweave-0.6.5/docs/cursor-hooks.md +58 -0
- execweave-0.6.5/docs/cursor-hooks.ru.md +58 -0
- execweave-0.6.5/docs/cursor-hooks.zh-CN.md +58 -0
- execweave-0.6.5/docs/cursor-hooks.zh-TW.md +58 -0
- execweave-0.6.5/docs/evidence-grades.de.md +61 -0
- execweave-0.6.5/docs/evidence-grades.fr.md +61 -0
- execweave-0.6.5/docs/evidence-grades.ja.md +61 -0
- execweave-0.6.5/docs/evidence-grades.ko.md +61 -0
- execweave-0.6.5/docs/evidence-grades.md +61 -0
- execweave-0.6.5/docs/evidence-grades.ru.md +61 -0
- execweave-0.6.5/docs/evidence-grades.zh-CN.md +61 -0
- execweave-0.6.5/docs/evidence-grades.zh-TW.md +61 -0
- execweave-0.6.5/docs/gemini-hooks.de.md +68 -0
- execweave-0.6.5/docs/gemini-hooks.fr.md +68 -0
- execweave-0.6.5/docs/gemini-hooks.ja.md +68 -0
- execweave-0.6.5/docs/gemini-hooks.ko.md +68 -0
- execweave-0.6.5/docs/gemini-hooks.md +68 -0
- execweave-0.6.5/docs/gemini-hooks.ru.md +68 -0
- execweave-0.6.5/docs/gemini-hooks.zh-CN.md +68 -0
- execweave-0.6.5/docs/gemini-hooks.zh-TW.md +68 -0
- execweave-0.6.5/docs/inference-gateway.de.md +74 -0
- execweave-0.6.5/docs/inference-gateway.fr.md +74 -0
- execweave-0.6.5/docs/inference-gateway.ja.md +74 -0
- execweave-0.6.5/docs/inference-gateway.ko.md +74 -0
- execweave-0.6.5/docs/inference-gateway.md +74 -0
- execweave-0.6.5/docs/inference-gateway.ru.md +74 -0
- execweave-0.6.5/docs/inference-gateway.zh-CN.md +74 -0
- execweave-0.6.5/docs/inference-gateway.zh-TW.md +74 -0
- execweave-0.6.5/docs/model-runtime.de.md +61 -0
- execweave-0.6.5/docs/model-runtime.fr.md +61 -0
- execweave-0.6.5/docs/model-runtime.ja.md +61 -0
- execweave-0.6.5/docs/model-runtime.ko.md +61 -0
- execweave-0.6.5/docs/model-runtime.md +61 -0
- execweave-0.6.5/docs/model-runtime.ru.md +61 -0
- execweave-0.6.5/docs/model-runtime.zh-CN.md +61 -0
- execweave-0.6.5/docs/model-runtime.zh-TW.md +61 -0
- execweave-0.6.5/docs/opencode-plugin.de.md +54 -0
- execweave-0.6.5/docs/opencode-plugin.fr.md +54 -0
- execweave-0.6.5/docs/opencode-plugin.ja.md +54 -0
- execweave-0.6.5/docs/opencode-plugin.ko.md +54 -0
- execweave-0.6.5/docs/opencode-plugin.md +54 -0
- execweave-0.6.5/docs/opencode-plugin.ru.md +54 -0
- execweave-0.6.5/docs/opencode-plugin.zh-CN.md +54 -0
- execweave-0.6.5/docs/opencode-plugin.zh-TW.md +54 -0
- execweave-0.6.5/docs/rule-packs.de.md +77 -0
- execweave-0.6.5/docs/rule-packs.fr.md +77 -0
- execweave-0.6.5/docs/rule-packs.ja.md +77 -0
- execweave-0.6.5/docs/rule-packs.ko.md +77 -0
- execweave-0.6.5/docs/rule-packs.md +77 -0
- execweave-0.6.5/docs/rule-packs.ru.md +77 -0
- execweave-0.6.5/docs/rule-packs.zh-CN.md +77 -0
- execweave-0.6.5/docs/rule-packs.zh-TW.md +77 -0
- execweave-0.6.5/docs/run-integrity.de.md +52 -0
- execweave-0.6.5/docs/run-integrity.fr.md +52 -0
- execweave-0.6.5/docs/run-integrity.ja.md +52 -0
- execweave-0.6.5/docs/run-integrity.ko.md +52 -0
- execweave-0.6.5/docs/run-integrity.md +52 -0
- execweave-0.6.5/docs/run-integrity.ru.md +52 -0
- execweave-0.6.5/docs/run-integrity.zh-CN.md +52 -0
- execweave-0.6.5/docs/run-integrity.zh-TW.md +52 -0
- execweave-0.6.5/docs/runtime-threat-model.de.md +60 -0
- execweave-0.6.5/docs/runtime-threat-model.fr.md +60 -0
- execweave-0.6.5/docs/runtime-threat-model.ja.md +60 -0
- execweave-0.6.5/docs/runtime-threat-model.ko.md +60 -0
- execweave-0.6.5/docs/runtime-threat-model.md +60 -0
- execweave-0.6.5/docs/runtime-threat-model.ru.md +60 -0
- execweave-0.6.5/docs/runtime-threat-model.zh-CN.md +60 -0
- execweave-0.6.5/docs/runtime-threat-model.zh-TW.md +60 -0
- execweave-0.6.5/docs/semantic-telemetry.de.md +63 -0
- execweave-0.6.5/docs/semantic-telemetry.fr.md +63 -0
- execweave-0.6.5/docs/semantic-telemetry.ja.md +63 -0
- execweave-0.6.5/docs/semantic-telemetry.ko.md +63 -0
- execweave-0.6.5/docs/semantic-telemetry.md +63 -0
- execweave-0.6.5/docs/semantic-telemetry.ru.md +63 -0
- execweave-0.6.5/docs/semantic-telemetry.zh-CN.md +63 -0
- execweave-0.6.5/docs/semantic-telemetry.zh-TW.md +63 -0
- execweave-0.6.5/docs/v0.6.5-hardening-decisions.md +47 -0
- {execweave-0.6.4 → execweave-0.6.5}/pyproject.toml +7 -2
- {execweave-0.6.4 → execweave-0.6.5}/scripts/audit_i18n_parity.py +9 -1
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_claude_hook.py +20 -3
- execweave-0.6.5/scripts/check_codex_hook.py +93 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_correlation_graph.py +29 -5
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_inference_gateway_cli.py +6 -1
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_model_runtime_cli.py +31 -5
- execweave-0.6.5/scripts/check_openai_compatible_cli.py +152 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_wheel_install.py +3 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/sync_i18n_nav.py +3 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/__init__.py +1 -1
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/analysis.py +23 -2
- execweave-0.6.5/src/execweave/anthropic.py +204 -0
- execweave-0.6.5/src/execweave/anthropic_cli.py +168 -0
- execweave-0.6.5/src/execweave/anthropic_full_fidelity.py +382 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/backends.py +35 -3
- execweave-0.6.5/src/execweave/claude_full_fidelity.py +387 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/claude_hook_cli.py +24 -2
- execweave-0.6.5/src/execweave/codex_full_fidelity.py +252 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/codex_hook_cli.py +36 -6
- execweave-0.6.5/src/execweave/content_evidence.py +101 -0
- execweave-0.6.5/src/execweave/content_store.py +150 -0
- execweave-0.6.5/src/execweave/cursor_full_fidelity.py +203 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/cursor_hook_cli.py +37 -22
- execweave-0.6.5/src/execweave/evidence_grade.py +138 -0
- execweave-0.6.5/src/execweave/fidelity.py +289 -0
- execweave-0.6.5/src/execweave/gemini_full_fidelity.py +313 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/gemini_hook_cli.py +49 -8
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/graph.py +8 -1
- execweave-0.6.5/src/execweave/http_proxy.py +437 -0
- execweave-0.6.5/src/execweave/http_proxy_cli.py +84 -0
- execweave-0.6.5/src/execweave/inference_gateway_cli.py +208 -0
- execweave-0.6.5/src/execweave/inference_gateway_full_fidelity.py +613 -0
- execweave-0.6.5/src/execweave/integrity.py +253 -0
- execweave-0.6.5/src/execweave/integrity_cli.py +52 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/litellm_callback.py +40 -15
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/live.py +49 -7
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/model_runtime_cli.py +119 -11
- execweave-0.6.5/src/execweave/model_runtime_full_fidelity.py +516 -0
- execweave-0.6.5/src/execweave/openai_compatible.py +212 -0
- execweave-0.6.5/src/execweave/openai_compatible_cli.py +186 -0
- execweave-0.6.5/src/execweave/openai_compatible_full_fidelity.py +437 -0
- execweave-0.6.5/src/execweave/opencode_full_fidelity.py +187 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/opencode_hook_cli.py +22 -13
- execweave-0.6.5/src/execweave/opencode_plugin_cli.py +147 -0
- execweave-0.6.5/src/execweave/rule_pack.py +359 -0
- execweave-0.6.5/src/execweave/rule_pack_cli.py +57 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/top.py +82 -5
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/top_cli.py +6 -1
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/workflow.py +7 -1
- execweave-0.6.5/tests/fixtures/hooks/README.md +33 -0
- execweave-0.6.5/tests/fixtures/hooks/claude.json +35 -0
- execweave-0.6.5/tests/fixtures/hooks/codex.json +40 -0
- execweave-0.6.5/tests/fixtures/hooks/cursor.json +51 -0
- execweave-0.6.5/tests/fixtures/hooks/gemini.json +33 -0
- execweave-0.6.5/tests/fixtures/hooks/manifest.json +57 -0
- execweave-0.6.5/tests/fixtures/hooks/opencode.json +30 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_analysis.py +25 -1
- execweave-0.6.5/tests/test_anthropic.py +248 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_claude_adapter.py +15 -0
- execweave-0.6.5/tests/test_claude_full_fidelity.py +163 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_codex_adapter.py +20 -5
- execweave-0.6.5/tests/test_codex_full_fidelity.py +193 -0
- execweave-0.6.5/tests/test_correlation_checker.py +75 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_cursor_adapter.py +16 -0
- execweave-0.6.5/tests/test_cursor_full_fidelity.py +136 -0
- execweave-0.6.5/tests/test_evidence_grade.py +72 -0
- execweave-0.6.5/tests/test_fidelity.py +335 -0
- execweave-0.6.5/tests/test_full_fidelity.py +91 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_gemini_adapter.py +62 -12
- execweave-0.6.5/tests/test_gemini_full_fidelity.py +182 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_graph.py +1 -1
- execweave-0.6.5/tests/test_hook_fixture_corpus.py +156 -0
- execweave-0.6.5/tests/test_http_proxy.py +261 -0
- execweave-0.6.5/tests/test_inference_gateway_full_fidelity.py +411 -0
- execweave-0.6.5/tests/test_integrity.py +112 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_live.py +13 -3
- execweave-0.6.5/tests/test_live_auth.py +121 -0
- execweave-0.6.5/tests/test_model_runtime_full_fidelity.py +218 -0
- execweave-0.6.5/tests/test_openai_compatible.py +307 -0
- execweave-0.6.5/tests/test_opencode_full_fidelity.py +137 -0
- execweave-0.6.5/tests/test_opencode_plugin.py +41 -0
- execweave-0.6.5/tests/test_rule_pack.py +153 -0
- execweave-0.6.5/tests/test_threat_model.py +200 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_top_detached.py +82 -6
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_workflow.py +15 -0
- execweave-0.6.4/PKG-INFO +0 -463
- execweave-0.6.4/README.de.md +0 -410
- execweave-0.6.4/README.fr.md +0 -410
- execweave-0.6.4/README.ja.md +0 -260
- execweave-0.6.4/README.ko.md +0 -260
- execweave-0.6.4/README.md +0 -407
- execweave-0.6.4/README.ru.md +0 -410
- execweave-0.6.4/README.zh-CN.md +0 -260
- execweave-0.6.4/README.zh-TW.md +0 -314
- execweave-0.6.4/docs/claude-code-hooks.de.md +0 -275
- execweave-0.6.4/docs/claude-code-hooks.fr.md +0 -275
- execweave-0.6.4/docs/claude-code-hooks.ja.md +0 -107
- execweave-0.6.4/docs/claude-code-hooks.ko.md +0 -107
- execweave-0.6.4/docs/claude-code-hooks.md +0 -275
- execweave-0.6.4/docs/claude-code-hooks.ru.md +0 -275
- execweave-0.6.4/docs/claude-code-hooks.zh-CN.md +0 -221
- execweave-0.6.4/docs/claude-code-hooks.zh-TW.md +0 -273
- execweave-0.6.4/docs/codex-hooks.de.md +0 -182
- execweave-0.6.4/docs/codex-hooks.fr.md +0 -182
- execweave-0.6.4/docs/codex-hooks.ja.md +0 -182
- execweave-0.6.4/docs/codex-hooks.ko.md +0 -180
- execweave-0.6.4/docs/codex-hooks.md +0 -182
- execweave-0.6.4/docs/codex-hooks.ru.md +0 -182
- execweave-0.6.4/docs/codex-hooks.zh-CN.md +0 -178
- execweave-0.6.4/docs/codex-hooks.zh-TW.md +0 -178
- execweave-0.6.4/docs/cursor-hooks.de.md +0 -85
- execweave-0.6.4/docs/cursor-hooks.fr.md +0 -85
- execweave-0.6.4/docs/cursor-hooks.ja.md +0 -85
- execweave-0.6.4/docs/cursor-hooks.ko.md +0 -85
- execweave-0.6.4/docs/cursor-hooks.md +0 -85
- execweave-0.6.4/docs/cursor-hooks.ru.md +0 -85
- execweave-0.6.4/docs/cursor-hooks.zh-CN.md +0 -85
- execweave-0.6.4/docs/cursor-hooks.zh-TW.md +0 -85
- execweave-0.6.4/docs/gemini-hooks.de.md +0 -189
- execweave-0.6.4/docs/gemini-hooks.fr.md +0 -189
- execweave-0.6.4/docs/gemini-hooks.ja.md +0 -164
- execweave-0.6.4/docs/gemini-hooks.ko.md +0 -164
- execweave-0.6.4/docs/gemini-hooks.md +0 -189
- execweave-0.6.4/docs/gemini-hooks.ru.md +0 -189
- execweave-0.6.4/docs/gemini-hooks.zh-CN.md +0 -166
- execweave-0.6.4/docs/gemini-hooks.zh-TW.md +0 -187
- execweave-0.6.4/docs/inference-gateway.de.md +0 -152
- execweave-0.6.4/docs/inference-gateway.fr.md +0 -152
- execweave-0.6.4/docs/inference-gateway.ja.md +0 -152
- execweave-0.6.4/docs/inference-gateway.ko.md +0 -152
- execweave-0.6.4/docs/inference-gateway.md +0 -152
- execweave-0.6.4/docs/inference-gateway.ru.md +0 -152
- execweave-0.6.4/docs/inference-gateway.zh-CN.md +0 -152
- execweave-0.6.4/docs/inference-gateway.zh-TW.md +0 -152
- execweave-0.6.4/docs/model-runtime.de.md +0 -109
- execweave-0.6.4/docs/model-runtime.fr.md +0 -109
- execweave-0.6.4/docs/model-runtime.ja.md +0 -105
- execweave-0.6.4/docs/model-runtime.ko.md +0 -105
- execweave-0.6.4/docs/model-runtime.md +0 -109
- execweave-0.6.4/docs/model-runtime.ru.md +0 -109
- execweave-0.6.4/docs/model-runtime.zh-CN.md +0 -105
- execweave-0.6.4/docs/model-runtime.zh-TW.md +0 -105
- execweave-0.6.4/docs/opencode-plugin.de.md +0 -81
- execweave-0.6.4/docs/opencode-plugin.fr.md +0 -81
- execweave-0.6.4/docs/opencode-plugin.ja.md +0 -81
- execweave-0.6.4/docs/opencode-plugin.ko.md +0 -81
- execweave-0.6.4/docs/opencode-plugin.md +0 -81
- execweave-0.6.4/docs/opencode-plugin.ru.md +0 -81
- execweave-0.6.4/docs/opencode-plugin.zh-CN.md +0 -81
- execweave-0.6.4/docs/opencode-plugin.zh-TW.md +0 -81
- execweave-0.6.4/docs/semantic-telemetry.de.md +0 -160
- execweave-0.6.4/docs/semantic-telemetry.fr.md +0 -160
- execweave-0.6.4/docs/semantic-telemetry.ja.md +0 -160
- execweave-0.6.4/docs/semantic-telemetry.ko.md +0 -160
- execweave-0.6.4/docs/semantic-telemetry.md +0 -160
- execweave-0.6.4/docs/semantic-telemetry.ru.md +0 -160
- execweave-0.6.4/docs/semantic-telemetry.zh-CN.md +0 -177
- execweave-0.6.4/docs/semantic-telemetry.zh-TW.md +0 -177
- execweave-0.6.4/src/execweave/inference_gateway_cli.py +0 -106
- execweave-0.6.4/src/execweave/opencode_plugin_cli.py +0 -110
- execweave-0.6.4/tests/test_opencode_plugin.py +0 -27
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/ci.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/i18n.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/package-benchmark.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/package-smoke.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/publish.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/scalability.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/wheel-smoke.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.github/workflows/windows-launcher.yml +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/.gitignore +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/LICENSE +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/benchmarks/phase1_overhead.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/assets/execweave-launch-demo-v5-x.gif +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/benchmarks/README.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.de.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.fr.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.ja.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.ko.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.ru.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.zh-CN.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/live-graph.zh-TW.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.de.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.fr.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.ja.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.ko.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.ru.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.zh-CN.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-1-runtime-collection.zh-TW.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.de.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.fr.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.ja.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.ko.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.ru.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.zh-CN.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/phase-2-execution-graph.zh-TW.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.de.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.fr.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.ja.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.ko.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.ru.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.zh-CN.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/docs/security-analysis.zh-TW.md +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_claude_record_graph.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_semantic_graph.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_viewer_js.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/check_windows_launchers.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/emit_claude_hook_smoke.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/emit_cursor_hook_smoke.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/emit_gemini_hook_smoke.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/emit_opencode_plugin_smoke.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/scripts/make_semantic_smoke.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/__main__.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/auto_specialized.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/benchmark.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/claude_adapter.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/claude_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/cli.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/codex_adapter.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/codex_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/collector.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/command.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/correlation.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/cursor_adapter.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/cursor_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/entry.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/filesystem.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/focus.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/gemini_adapter.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/gemini_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/graph_ops.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/inference_gateway.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/inference_identity.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/inference_identity_cli.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/litellm_callback_cli.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/live_view.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/model_runtime.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/opencode_adapter.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/opencode_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/overhead_benchmark.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/provider_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/scalability_benchmark.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/schema.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/scope.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/semantic.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/sink.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/strace_backend.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/theme.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/validate.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/view_cli.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/src/execweave/viewer.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_auto_specialized.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_backends.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_claude_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_codex_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_collector.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_command.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_condense.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_correlation.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_correlation_canonical_path.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_correlation_process_exe.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_cursor_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_filesystem_resilience.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_focus.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_gemini_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_graph_ops.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_inference_gateway.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_inference_identity.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_litellm_callback.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_live_delta.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_live_theme.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_lmstudio_auto_specialized.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_model_runtime.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_opencode_adapter.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_opencode_record.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_overhead_benchmark.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_schema.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_scope.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_semantic.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_strace_backend.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_v063_features.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_v064_live_auto_integrations.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_v064_live_evidence.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_validate.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_version.py +0 -0
- {execweave-0.6.4 → execweave-0.6.5}/tests/test_viewer.py +0 -0
execweave-0.6.5/PKG-INFO
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: execweave
|
|
3
|
+
Version: 0.6.5
|
|
4
|
+
Summary: Turn AI-agent runtime behavior into a local interactive execution graph.
|
|
5
|
+
Project-URL: Homepage, https://github.com/Irish-kw/ExecWeave
|
|
6
|
+
Project-URL: Repository, https://github.com/Irish-kw/ExecWeave
|
|
7
|
+
Project-URL: Documentation, https://github.com/Irish-kw/ExecWeave#documentation
|
|
8
|
+
Project-URL: Issues, https://github.com/Irish-kw/ExecWeave/issues
|
|
9
|
+
Author: ExecWeave contributors
|
|
10
|
+
License: MIT License
|
|
11
|
+
|
|
12
|
+
Copyright (c) 2026 GWW
|
|
13
|
+
|
|
14
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
15
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
16
|
+
in the Software without restriction, including without limitation the rights
|
|
17
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
18
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
19
|
+
furnished to do so, subject to the following conditions:
|
|
20
|
+
|
|
21
|
+
The above copyright notice and this permission notice shall be included in all
|
|
22
|
+
copies or substantial portions of the Software.
|
|
23
|
+
|
|
24
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
25
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
26
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
27
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
28
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
29
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
30
|
+
SOFTWARE.
|
|
31
|
+
License-File: LICENSE
|
|
32
|
+
Keywords: ai-agents,execution-graph,observability,provenance,runtime,security
|
|
33
|
+
Classifier: Development Status :: 4 - Beta
|
|
34
|
+
Classifier: Environment :: Console
|
|
35
|
+
Classifier: Intended Audience :: Developers
|
|
36
|
+
Classifier: Intended Audience :: Information Technology
|
|
37
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
38
|
+
Classifier: Operating System :: OS Independent
|
|
39
|
+
Classifier: Programming Language :: Python :: 3
|
|
40
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
41
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
42
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
43
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
44
|
+
Classifier: Topic :: Software Development :: Debuggers
|
|
45
|
+
Classifier: Topic :: System :: Monitoring
|
|
46
|
+
Requires-Python: >=3.10
|
|
47
|
+
Requires-Dist: psutil>=5.9
|
|
48
|
+
Requires-Dist: watchdog>=4.0
|
|
49
|
+
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
51
|
+
Requires-Dist: ruff<0.17,>=0.16; extra == 'dev'
|
|
52
|
+
Provides-Extra: release
|
|
53
|
+
Requires-Dist: build>=1.2; extra == 'release'
|
|
54
|
+
Requires-Dist: twine>=6.0; extra == 'release'
|
|
55
|
+
Description-Content-Type: text/markdown
|
|
56
|
+
|
|
57
|
+
# ExecWeave
|
|
58
|
+
|
|
59
|
+
<!-- i18n-nav:start -->
|
|
60
|
+
<p align="center">
|
|
61
|
+
<strong>English</strong> |
|
|
62
|
+
<a href="README.zh-TW.md">繁體中文</a> |
|
|
63
|
+
<a href="README.zh-CN.md">简体中文</a> |
|
|
64
|
+
<a href="README.ja.md">日本語</a> |
|
|
65
|
+
<a href="README.ko.md">한국어</a> |
|
|
66
|
+
<a href="README.fr.md">Français</a> |
|
|
67
|
+
<a href="README.de.md">Deutsch</a> |
|
|
68
|
+
<a href="README.ru.md">Русский</a>
|
|
69
|
+
</p>
|
|
70
|
+
<!-- i18n-nav:end -->
|
|
71
|
+
|
|
72
|
+
**See what AI agents actually do on your machine.**
|
|
73
|
+
|
|
74
|
+
ExecWeave is an open-source, local-first observability project that turns AI-agent activity into an interactive execution graph while keeping observed evidence, provider content, and derived inference explicitly separated.
|
|
75
|
+
|
|
76
|
+
> **Event is ground truth. The graph is a materialized view.**
|
|
77
|
+
|
|
78
|
+
<p align="center">
|
|
79
|
+
<img src="docs/assets/execweave-launch-demo-v5-x.gif" alt="ExecWeave animated live demo" width="100%">
|
|
80
|
+
</p>
|
|
81
|
+
|
|
82
|
+
## Install
|
|
83
|
+
|
|
84
|
+
Install the latest published wheel/sdist from PyPI:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
python -m pip install -U execweave
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The package version on `main` is currently **v0.6.5**. The published release may lag main; test the exact mainline build with:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For development:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
git clone https://github.com/Irish-kw/ExecWeave.git
|
|
100
|
+
cd ExecWeave
|
|
101
|
+
python -m pip install -e ".[dev]"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Quick start
|
|
105
|
+
|
|
106
|
+
Live OS-runtime telemetry works with **any local command**. Agent/runtime names are examples, not a whitelist.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
execweave live --open -- claude
|
|
110
|
+
execweave live --open -- codex
|
|
111
|
+
execweave live --open -- gemini
|
|
112
|
+
execweave live --open -- cursor
|
|
113
|
+
execweave live --open -- opencode
|
|
114
|
+
execweave live --open -- ollama serve
|
|
115
|
+
execweave live --open -- python my_agent.py
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Or build the finalized artifact pipeline:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
execweave record --open -- python my_agent.py
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
`execweave top -- codex` keeps the Agent interactive in the launch terminal while opening/attaching the detached Top dashboard according to the host environment.
|
|
125
|
+
|
|
126
|
+
## v0.6.5: full-fidelity observability with explicit evidence boundaries
|
|
127
|
+
|
|
128
|
+
v0.6.5 extends provider/runtime observability beyond compact metadata. When a supported integration point explicitly supplies content, ExecWeave can preserve the **complete supplied value** in a local SHA-256 content-addressed store while keeping only a reference in the semantic event stream.
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
<run-root>/content/sha256/<sha256>.<json|txt|bin>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Depending on the adapter and upstream hook/API surface, preserved content can include prompts/messages, model request/response objects, tool inputs/results, assistant responses, reasoning/thinking text when explicitly exposed, shell/MCP output, and file content supplied by provider hooks.
|
|
135
|
+
|
|
136
|
+
`complete_from_source: true` means ExecWeave stored the complete value delivered by that integration point. It does **not** mean ExecWeave observed hidden model state, provider-side stages that were never exposed, an unseen final wire request, or bytes it did not intercept.
|
|
137
|
+
|
|
138
|
+
Full fidelity also changes the privacy boundary: application-level secrets embedded inside content are preserved. Known transport credentials are filtered from selected provider-metadata projections where the adapter defines that behavior, but ExecWeave is **not** a general secret scanner or content redactor.
|
|
139
|
+
|
|
140
|
+
### Supported semantic / inference surfaces
|
|
141
|
+
|
|
142
|
+
| Integration | OS-runtime observation when launched under ExecWeave | Specialized evidence |
|
|
143
|
+
| --- | --- | --- |
|
|
144
|
+
| Claude Code | Yes | native hooks + full-fidelity supplied hook content |
|
|
145
|
+
| OpenAI Codex | Yes | lifecycle hooks + full-fidelity supplied hook content |
|
|
146
|
+
| Gemini CLI | Yes | native hooks + full-fidelity supplied hook content |
|
|
147
|
+
| Cursor | Yes | native hooks + full-fidelity supplied hook content |
|
|
148
|
+
| OpenCode | Yes | project plugin + full-fidelity supplied plugin content |
|
|
149
|
+
| Ollama | Yes | `execweave-model-runtime event/exchange/probe --runtime ollama` |
|
|
150
|
+
| llama.cpp | Yes | `execweave-model-runtime event/exchange/probe --runtime llamacpp` |
|
|
151
|
+
| vLLM | Yes | `execweave-model-runtime event/exchange/probe --runtime vllm` |
|
|
152
|
+
| LM Studio | Only when the local process is launched under ExecWeave | `execweave-model-runtime event/exchange/probe --runtime lmstudio` |
|
|
153
|
+
| LiteLLM Proxy | Yes when the configured proxy is launched under ExecWeave | metadata-oriented gateway callback/event integration |
|
|
154
|
+
| OpenRouter | Observe the local client, not the remote service process | `execweave-inference-gateway event/exchange/generation --gateway openrouter` |
|
|
155
|
+
|
|
156
|
+
OpenRouter `exchange` is caller-supplied request+response evidence, not transparent wire interception. LiteLLM Proxy remains a narrower metadata-oriented integration in the current baseline.
|
|
157
|
+
|
|
158
|
+
## Evidence layers
|
|
159
|
+
|
|
160
|
+
ExecWeave keeps evidence layers separate instead of flattening them into one trace:
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
Agent / IDE semantic + supplied content evidence
|
|
164
|
+
↓
|
|
165
|
+
Inference gateway / routing evidence
|
|
166
|
+
↓
|
|
167
|
+
Model runtime / inference-server evidence
|
|
168
|
+
↓
|
|
169
|
+
OS runtime evidence: process / file / network
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
A relationship is causal only when the underlying telemetry supports that claim. Tool → Process bridges remain conservative derived evidence:
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
inferred: true
|
|
176
|
+
causal: false
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Ambiguity produces no edge. Exact shared request identity across Gateway and Model Runtime remains identity evidence rather than causal evidence:
|
|
180
|
+
|
|
181
|
+
```text
|
|
182
|
+
identity_exact: true
|
|
183
|
+
inferred: false
|
|
184
|
+
causal: false
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Agent / IDE integrations
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
execweave-claude-hook --print-config
|
|
191
|
+
execweave-claude-record --open -- claude
|
|
192
|
+
|
|
193
|
+
execweave-codex-hook --print-config
|
|
194
|
+
execweave-codex-record --open -- codex
|
|
195
|
+
|
|
196
|
+
execweave-gemini-hook --print-config
|
|
197
|
+
execweave-gemini-record --open -- gemini
|
|
198
|
+
|
|
199
|
+
execweave-cursor-hook --print-config
|
|
200
|
+
execweave-cursor-record --open -- cursor
|
|
201
|
+
|
|
202
|
+
execweave-opencode-plugin --install
|
|
203
|
+
execweave-opencode-record --open -- opencode
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Provider-integrated recorders keep raw runtime, semantic, and correlated artifacts separate. Stable provider identifiers such as Cursor `tool_use_id` or OpenCode `sessionID + callID` prove logical provider identity; they are not OS PIDs.
|
|
207
|
+
|
|
208
|
+
## Inference gateways and model runtimes
|
|
209
|
+
|
|
210
|
+
Capture OpenRouter or LiteLLM gateway evidence:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
execweave-inference-gateway event --gateway openrouter --sidecar gateway.jsonl
|
|
214
|
+
execweave-inference-gateway event --gateway litellm --sidecar gateway.jsonl
|
|
215
|
+
execweave-inference-gateway exchange --gateway openrouter --sidecar gateway.jsonl
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Capture model-runtime evidence for Ollama, llama.cpp, vLLM, or LM Studio:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
execweave-model-runtime event --runtime ollama --sidecar model-runtime.jsonl
|
|
222
|
+
execweave-model-runtime exchange --runtime ollama --sidecar model-runtime.jsonl
|
|
223
|
+
execweave-model-runtime probe --runtime ollama --sidecar model-runtime.jsonl
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
`event` is response-only evidence; `exchange` stores a caller-supplied request+response object and does not assert transparent interception. Runtime catalog relations retain their source-specific meaning: `LOADED_MODEL`, `SERVES_MODEL`, and `ADVERTISES_MODEL` are not interchangeable. LM Studio catalog visibility remains `ADVERTISES_MODEL`, not proof that weights were resident in memory.
|
|
227
|
+
|
|
228
|
+
## Security analysis, evidence grades, and bounded rule packs
|
|
229
|
+
|
|
230
|
+
Run the built-in analysis:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
execweave analyze run.graph.json --output analysis.json
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Findings expose an evidence grade independent from severity. Current grades are `A`, `B`, `C`, `D`, and `U`, from direct syscall attribution through inferred/unknown provenance. Grades are evidence-strength categories, **not probabilities or trust scores**.
|
|
237
|
+
|
|
238
|
+
Local rule packs add bounded, explainable **single-edge observation** policies without executing third-party code:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
execweave-rule-pack graph.json --rule-pack local-policy.json --output report.json
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Rule packs cannot execute code, define regex/path programs, or assert byte-level data flow/exfiltration. Rule-pack findings remain observation-only.
|
|
245
|
+
|
|
246
|
+
Security findings continue to make stronger non-claims explicit:
|
|
247
|
+
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"data_flow_proven": false,
|
|
251
|
+
"exfiltration_proven": false
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Run integrity
|
|
256
|
+
|
|
257
|
+
Seal a completed run and later verify that its regular-file inventory has not changed relative to the seal:
|
|
258
|
+
|
|
259
|
+
```text
|
|
260
|
+
execweave-integrity seal .execweave/runs/<run-id>
|
|
261
|
+
execweave-integrity verify .execweave/runs/<run-id>
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
The deterministic manifest records file size/SHA-256 and rejects symbolic links. It detects missing, modified, replaced, or newly added regular files after sealing.
|
|
265
|
+
|
|
266
|
+
This local seal is deliberately **not** described as adversary-resistant tamper evidence when both evidence and manifest remain inside the same writable trust boundary. The manifest records `malicious_writer_resistance: false` and `external_trust_anchor: false`; copy/protect the manifest digest outside that boundary when a stronger trust anchor is required.
|
|
267
|
+
|
|
268
|
+
## Runtime evidence and graph operations
|
|
269
|
+
|
|
270
|
+
The portable collector runs on Linux, macOS, and Windows. Linux also has a syscall-backed `strace` reference backend.
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
execweave doctor
|
|
274
|
+
execweave run --backend portable -- your-command
|
|
275
|
+
execweave run --backend strace -- your-command
|
|
276
|
+
execweave graph-summary run.graph.json
|
|
277
|
+
execweave graph-focus run.graph.json NODE_ID --hops 2 --output focused.graph.json
|
|
278
|
+
execweave path run.graph.json SOURCE TARGET --causal-only
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Portable filesystem observation is session-correlated rather than process-causal, and polling can miss sufficiently short-lived activity. Linux `strace` provides stronger process-attributed syscall evidence for supported executions. Future native collectors remain planned for Linux eBPF, Windows ETW, and macOS Endpoint Security.
|
|
282
|
+
|
|
283
|
+
## Performance and large-run safety
|
|
284
|
+
|
|
285
|
+
v0.6.3 added bounded filesystem/viewer protections, incremental Live JSONL tailing, and large-graph safety guards. v0.6.4 added detached Top and unified provisional live sidecars for configured provider integrations. These remain in v0.6.5; the project has **not** migrated Live to SSE, artifact storage to SQLite, the renderer to Canvas/WebGL, or collectors to Rust solely for this release.
|
|
286
|
+
|
|
287
|
+
The reproducible incremental `GraphAccumulator` reference result reaches **164,273 ev/s** at 1M synthetic events on the documented GitHub Actions workload. This is a graph-accumulation benchmark, not end-to-end collector/browser throughput.
|
|
288
|
+
|
|
289
|
+
Run the package-level overhead benchmark on a representative host/workload:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
execweave-overhead --iterations 7 --strace auto --output-json benchmark-results.json
|
|
293
|
+
execweave-scalability
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
See [`docs/benchmarks/`](docs/benchmarks/) for reference data and methodology.
|
|
297
|
+
|
|
298
|
+
## Layered artifacts
|
|
299
|
+
|
|
300
|
+
A provider-integrated run may contain:
|
|
301
|
+
|
|
302
|
+
```text
|
|
303
|
+
.execweave/runs/<run-id>/
|
|
304
|
+
├── events.jsonl
|
|
305
|
+
├── graph.json
|
|
306
|
+
├── viewer.html
|
|
307
|
+
├── semantic.jsonl
|
|
308
|
+
├── content/sha256/...
|
|
309
|
+
├── events.semantic.jsonl
|
|
310
|
+
├── graph.semantic.json
|
|
311
|
+
├── viewer.semantic.html
|
|
312
|
+
├── events.correlated.jsonl
|
|
313
|
+
├── graph.correlated.json
|
|
314
|
+
├── viewer.correlated.html
|
|
315
|
+
└── integrity.json # after an explicit seal
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Derived correlation never rewrites the raw runtime or provider sidecar evidence.
|
|
319
|
+
|
|
320
|
+
## Privacy
|
|
321
|
+
|
|
322
|
+
ExecWeave is local-first: captures, content blobs, graphs, reports, and viewers remain local by default. The **OS runtime collector** does not intentionally capture file contents or raw read/write byte buffers. That boundary must not be confused with the v0.6.5 **provider full-fidelity content store**: supported hooks/APIs can explicitly supply prompts, tool arguments/results, model responses, reasoning/thinking text, shell output, file content, or other sensitive values, and ExecWeave can preserve those values completely.
|
|
323
|
+
|
|
324
|
+
Do not assume content has been secret-redacted. Commands, paths, endpoint metadata, identifiers, model metadata, prompts, tool values, and content blobs can all be sensitive. Review the entire run directory before sharing it.
|
|
325
|
+
|
|
326
|
+
## Current status
|
|
327
|
+
|
|
328
|
+
ExecWeave `main` is currently **v0.6.5** and under active release hardening. The latest published package/release can lag main until a GitHub Release is explicitly published; the publish workflow verifies that the release tag exactly matches the package version before PyPI upload.
|
|
329
|
+
|
|
330
|
+
v0.6.5 combines cross-platform runtime collection, materialized execution graphs, standalone/live viewing, conservative provider↔runtime correlation, full-fidelity content-addressed provider evidence, evidence grades, bounded rule packs, an explicit runtime threat/fidelity contract, and honest local run-integrity sealing. Observed evidence and inference remain separate by design.
|
|
331
|
+
|
|
332
|
+
## Documentation
|
|
333
|
+
|
|
334
|
+
- [`Phase 1 — Runtime Collection`](docs/phase-1-runtime-collection.md)
|
|
335
|
+
- [`Phase 2 — Execution Graph`](docs/phase-2-execution-graph.md)
|
|
336
|
+
- [`Live Graph`](docs/live-graph.md)
|
|
337
|
+
- [`Semantic Telemetry`](docs/semantic-telemetry.md)
|
|
338
|
+
- [`Claude Code Hooks`](docs/claude-code-hooks.md)
|
|
339
|
+
- [`OpenAI Codex Hooks`](docs/codex-hooks.md)
|
|
340
|
+
- [`Gemini CLI Hooks`](docs/gemini-hooks.md)
|
|
341
|
+
- [`Cursor Hooks`](docs/cursor-hooks.md)
|
|
342
|
+
- [`OpenCode Plugin`](docs/opencode-plugin.md)
|
|
343
|
+
- [`Inference Gateway / OpenRouter / LiteLLM`](docs/inference-gateway.md)
|
|
344
|
+
- [`Model Runtime / Ollama / llama.cpp / vLLM / LM Studio`](docs/model-runtime.md)
|
|
345
|
+
- [`Runtime Threat Model`](docs/runtime-threat-model.md)
|
|
346
|
+
- [`Evidence Grades`](docs/evidence-grades.md)
|
|
347
|
+
- [`Rule Packs`](docs/rule-packs.md)
|
|
348
|
+
- [`Run Integrity`](docs/run-integrity.md)
|
|
349
|
+
- [`Security Analysis`](docs/security-analysis.md)
|
|
350
|
+
- [`Performance Benchmarks`](docs/benchmarks/README.md)
|
|
351
|
+
|
|
352
|
+
## Contributing
|
|
353
|
+
|
|
354
|
+
Contributions are welcome, especially around native OS collectors, Agent/IDE adapters, inference gateways, model runtimes, evidence/correlation methods, privacy/redaction, graph UX, and performance evaluation.
|
|
355
|
+
|
|
356
|
+
## License
|
|
357
|
+
|
|
358
|
+
See [`LICENSE`](LICENSE).
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# ExecWeave
|
|
2
|
+
|
|
3
|
+
<!-- i18n-nav:start -->
|
|
4
|
+
<p align="center">
|
|
5
|
+
<a href="README.md">English</a> |
|
|
6
|
+
<a href="README.zh-TW.md">繁體中文</a> |
|
|
7
|
+
<a href="README.zh-CN.md">简体中文</a> |
|
|
8
|
+
<a href="README.ja.md">日本語</a> |
|
|
9
|
+
<a href="README.ko.md">한국어</a> |
|
|
10
|
+
<a href="README.fr.md">Français</a> |
|
|
11
|
+
<strong>Deutsch</strong> |
|
|
12
|
+
<a href="README.ru.md">Русский</a>
|
|
13
|
+
</p>
|
|
14
|
+
<!-- i18n-nav:end -->
|
|
15
|
+
|
|
16
|
+
**Sehen Sie, was KI-Agenten auf Ihrem Rechner tatsächlich tun.**
|
|
17
|
+
|
|
18
|
+
ExecWeave ist ein Open-Source-, local-first-Observability-Projekt, das Aktivitäten von KI-Agenten in einen interaktiven Execution Graph überführt und dabei observed evidence, provider content und derived inference ausdrücklich getrennt hält.
|
|
19
|
+
|
|
20
|
+
> **Das Event ist die Ground Truth. Der Graph ist eine materialized view.**
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<img src="docs/assets/execweave-launch-demo-v5-x.gif" alt="ExecWeave animated live demo" width="100%">
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
Installieren Sie das neueste veröffentlichte wheel/sdist von PyPI:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
python -m pip install -U execweave
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Die Package-Version auf `main` ist derzeit **v0.6.5**. Die veröffentlichte Release kann hinter main zurückliegen. Um exakt den aktuellen Mainline-Build zu testen:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Für die Entwicklung:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
git clone https://github.com/Irish-kw/ExecWeave.git
|
|
44
|
+
cd ExecWeave
|
|
45
|
+
python -m pip install -e ".[dev]"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Schnellstart
|
|
49
|
+
|
|
50
|
+
Live OS-runtime telemetry funktioniert mit **jedem lokalen Befehl**. Die unten genannten Agent-/Runtime-Namen sind Beispiele, keine Whitelist.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
execweave live --open -- claude
|
|
54
|
+
execweave live --open -- codex
|
|
55
|
+
execweave live --open -- gemini
|
|
56
|
+
execweave live --open -- cursor
|
|
57
|
+
execweave live --open -- opencode
|
|
58
|
+
execweave live --open -- ollama serve
|
|
59
|
+
execweave live --open -- python my_agent.py
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Oder erstellen Sie die finalisierte Artifact-Pipeline:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
execweave record --open -- python my_agent.py
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`execweave top -- codex` hält den Agent im Startterminal interaktiv und öffnet beziehungsweise verbindet das detached Top dashboard entsprechend der Host-Umgebung.
|
|
69
|
+
|
|
70
|
+
## v0.6.5: Full-fidelity observability mit expliziten Evidence Boundaries
|
|
71
|
+
|
|
72
|
+
v0.6.5 erweitert die Observability über kompakte Metadaten hinaus. Wenn ein unterstützter Integration Point Inhalte ausdrücklich liefert, kann ExecWeave **den vollständigen von dieser Quelle gelieferten Wert** in einem lokalen SHA-256 content-addressed store bewahren und im semantic event stream nur eine Referenz ablegen.
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
<run-root>/content/sha256/<sha256>.<json|txt|bin>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Je nach Adapter und Upstream-Hook/API-Surface können unter anderem Prompts/ messages, Model-request/response-Objekte, Tool-input/result, explizit exponierter reasoning/thinking text, Shell/MCP-output sowie durch Provider-Hooks gelieferter File Content erhalten bleiben.
|
|
79
|
+
|
|
80
|
+
`complete_from_source: true` bedeutet nur, dass ExecWeave den vollständigen Wert gespeichert hat, den dieser Integration Point geliefert hat. Es bedeutet **nicht**, dass ExecWeave hidden model state, nie exponierte Provider-Stufen, einen ungesehenen finalen Wire Request oder Bytes beobachtet hat, die nicht interceptet wurden.
|
|
81
|
+
|
|
82
|
+
Full fidelity verändert auch die Privacy Boundary: Application-level secrets, die im Content eingebettet sind, werden mitgespeichert. Bekannte transport credentials werden nur aus ausgewählten provider-metadata projections gefiltert, wenn der jeweilige Adapter dieses Verhalten definiert. ExecWeave ist **kein** allgemeiner Secret Scanner oder Content Redactor.
|
|
83
|
+
|
|
84
|
+
### Unterstützte Semantic-/Inference-Surfaces
|
|
85
|
+
|
|
86
|
+
| Integration | OS-runtime observation bei Start unter ExecWeave | Specialized evidence |
|
|
87
|
+
| --- | --- | --- |
|
|
88
|
+
| Claude Code | Yes | native hooks + vom Hook gelieferter full-fidelity content |
|
|
89
|
+
| OpenAI Codex | Yes | lifecycle hooks + vom Hook gelieferter full-fidelity content |
|
|
90
|
+
| Gemini CLI | Yes | native hooks + vom Hook gelieferter full-fidelity content |
|
|
91
|
+
| Cursor | Yes | native hooks + vom Hook gelieferter full-fidelity content |
|
|
92
|
+
| OpenCode | Yes | project plugin + vom Plugin gelieferter full-fidelity content |
|
|
93
|
+
| Ollama | Yes | `execweave-model-runtime event/exchange/probe --runtime ollama` |
|
|
94
|
+
| llama.cpp | Yes | `execweave-model-runtime event/exchange/probe --runtime llamacpp` |
|
|
95
|
+
| vLLM | Yes | `execweave-model-runtime event/exchange/probe --runtime vllm` |
|
|
96
|
+
| LM Studio | nur wenn der lokale Process durch ExecWeave gestartet wird | `execweave-model-runtime event/exchange/probe --runtime lmstudio` |
|
|
97
|
+
| LiteLLM Proxy | Yes, wenn der konfigurierte Proxy unter ExecWeave läuft | derzeit metadata-oriented gateway callback/event integration |
|
|
98
|
+
| OpenRouter | beobachtet den lokalen Client, nicht den Remote-Service-Process | `execweave-inference-gateway event/exchange/generation --gateway openrouter` |
|
|
99
|
+
|
|
100
|
+
OpenRouter `exchange` ist caller-supplied request+response evidence und keine transparente Wire Interception. LiteLLM Proxy bleibt in der aktuellen Baseline eine schmalere, metadata-orientierte Integration.
|
|
101
|
+
|
|
102
|
+
## Evidence Layers
|
|
103
|
+
|
|
104
|
+
ExecWeave hält Evidence Layers getrennt, statt alle Signale in eine einzelne Trace zu glätten:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
Agent / IDE semantic + supplied content evidence
|
|
108
|
+
↓
|
|
109
|
+
Inference gateway / routing evidence
|
|
110
|
+
↓
|
|
111
|
+
Model runtime / inference-server evidence
|
|
112
|
+
↓
|
|
113
|
+
OS runtime evidence: process / file / network
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Eine Relationship ist nur dann causal, wenn die zugrunde liegende Telemetrie diesen Claim unterstützt. Tool → Process Bridges bleiben konservative derived evidence:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
inferred: true
|
|
120
|
+
causal: false
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Bei Ambiguität wird kein Edge erzeugt. Exakte shared request identity zwischen Gateway und Model Runtime bleibt Identity Evidence und keine causal evidence:
|
|
124
|
+
|
|
125
|
+
```text
|
|
126
|
+
identity_exact: true
|
|
127
|
+
inferred: false
|
|
128
|
+
causal: false
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Agent-/IDE-Integrationen
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
execweave-claude-hook --print-config
|
|
135
|
+
execweave-claude-record --open -- claude
|
|
136
|
+
|
|
137
|
+
execweave-codex-hook --print-config
|
|
138
|
+
execweave-codex-record --open -- codex
|
|
139
|
+
|
|
140
|
+
execweave-gemini-hook --print-config
|
|
141
|
+
execweave-gemini-record --open -- gemini
|
|
142
|
+
|
|
143
|
+
execweave-cursor-hook --print-config
|
|
144
|
+
execweave-cursor-record --open -- cursor
|
|
145
|
+
|
|
146
|
+
execweave-opencode-plugin --install
|
|
147
|
+
execweave-opencode-record --open -- opencode
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Provider-integrierte Recorder halten raw runtime, semantic und correlated artifacts getrennt. Stabile Provider-Identifier wie Cursor `tool_use_id` oder OpenCode `sessionID + callID` belegen logische Identität innerhalb des Providers, sind aber keine OS-PIDs.
|
|
151
|
+
|
|
152
|
+
## Inference Gateways und Model Runtimes
|
|
153
|
+
|
|
154
|
+
Erfassen Sie OpenRouter- oder LiteLLM-Gateway-Evidence:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
execweave-inference-gateway event --gateway openrouter --sidecar gateway.jsonl
|
|
158
|
+
execweave-inference-gateway event --gateway litellm --sidecar gateway.jsonl
|
|
159
|
+
execweave-inference-gateway exchange --gateway openrouter --sidecar gateway.jsonl
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Erfassen Sie Model-runtime Evidence für Ollama, llama.cpp, vLLM oder LM Studio:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
execweave-model-runtime event --runtime ollama --sidecar model-runtime.jsonl
|
|
166
|
+
execweave-model-runtime exchange --runtime ollama --sidecar model-runtime.jsonl
|
|
167
|
+
execweave-model-runtime probe --runtime ollama --sidecar model-runtime.jsonl
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
`event` ist response-only evidence. `exchange` speichert ein caller-supplied request+response object und behauptet keine transparente Interception. Runtime-Catalog-Relations behalten ihre source-spezifische Bedeutung: `LOADED_MODEL`, `SERVES_MODEL` und `ADVERTISES_MODEL` sind nicht austauschbar. LM-Studio-Catalog-Visibility bleibt `ADVERTISES_MODEL` und beweist nicht, dass Weights resident im Speicher sind.
|
|
171
|
+
|
|
172
|
+
## Security Analysis, Evidence Grades und begrenzte Rule Packs
|
|
173
|
+
|
|
174
|
+
Führen Sie die eingebaute Analyse aus:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
execweave analyze run.graph.json --output analysis.json
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Findings zeigen einen Evidence Grade unabhängig von der Severity. Die aktuellen Grade sind `A`, `B`, `C`, `D` und `U`, von direkter Syscall-Attribution bis zu inferred/unknown provenance. Diese Grade sind Kategorien der Evidenzstärke, **keine Wahrscheinlichkeiten oder Trust Scores**.
|
|
181
|
+
|
|
182
|
+
Lokale Rule Packs ergänzen begrenzte, erklärbare **Single-edge observation** Policies, ohne Third-party Code auszuführen:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
execweave-rule-pack graph.json --rule-pack local-policy.json --output report.json
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Rule Packs können keinen Code ausführen, keine Regex-/Path-Programme definieren und keinen byte-level data flow oder Exfiltration behaupten. Rule-pack Findings bleiben observation-only.
|
|
189
|
+
|
|
190
|
+
```json
|
|
191
|
+
{
|
|
192
|
+
"data_flow_proven": false,
|
|
193
|
+
"exfiltration_proven": false
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Run Integrity
|
|
198
|
+
|
|
199
|
+
Versiegeln Sie einen abgeschlossenen Run und prüfen Sie später, ob sich sein Regular-file Inventory gegenüber dem Seal verändert hat:
|
|
200
|
+
|
|
201
|
+
```text
|
|
202
|
+
execweave-integrity seal .execweave/runs/<run-id>
|
|
203
|
+
execweave-integrity verify .execweave/runs/<run-id>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Das deterministische Manifest speichert File Size/SHA-256 und lehnt symbolische Links ab. Fehlende, veränderte, ersetzte oder neu hinzugekommene reguläre Dateien nach dem Seal führen zu einem Verification Failure.
|
|
207
|
+
|
|
208
|
+
Dieses lokale Seal wird bewusst **nicht** als adversary-resistant tamper evidence beschrieben, wenn Evidence und Manifest innerhalb derselben writable trust boundary liegen. Das Manifest enthält `malicious_writer_resistance: false` und `external_trust_anchor: false`. Für eine stärkere Garantie muss der Manifest-Digest außerhalb dieser Boundary kopiert oder geschützt werden.
|
|
209
|
+
|
|
210
|
+
## Runtime Evidence und Graph Operations
|
|
211
|
+
|
|
212
|
+
Der portable Collector läuft unter Linux, macOS und Windows. Linux bietet zusätzlich einen syscall-basierten `strace` reference backend.
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
execweave doctor
|
|
216
|
+
execweave run --backend portable -- your-command
|
|
217
|
+
execweave run --backend strace -- your-command
|
|
218
|
+
execweave graph-summary run.graph.json
|
|
219
|
+
execweave graph-focus run.graph.json NODE_ID --hops 2 --output focused.graph.json
|
|
220
|
+
execweave path run.graph.json SOURCE TARGET --causal-only
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Portable Filesystem Observation ist session-correlated und nicht process-causal; Polling kann ausreichend kurzlebige Aktivität verpassen. Linux `strace` liefert für unterstützte Ausführungen stärkere process-attributed syscall evidence. Native Collectors für Linux eBPF, Windows ETW und macOS Endpoint Security bleiben geplant.
|
|
224
|
+
|
|
225
|
+
## Performance und Large-run Safety
|
|
226
|
+
|
|
227
|
+
v0.6.3 brachte begrenzte Filesystem-/Viewer-Schutzmaßnahmen, inkrementelles Live-JSONL-Tailing und Large-graph Safety Guards. v0.6.4 ergänzte detached Top sowie einen gemeinsamen provisional live sidecar für konfigurierte Provider-Integrationen. Diese Fähigkeiten bleiben in v0.6.5 erhalten. Für diese Release wurde Live **nicht** allein aus Architekturgründen auf SSE, Artifact Storage auf SQLite, der Renderer auf Canvas/WebGL oder die Collectors auf Rust migriert.
|
|
228
|
+
|
|
229
|
+
Das reproduzierbare inkrementelle `GraphAccumulator`-Referenzergebnis erreicht bei 1M synthetischen Events auf dem dokumentierten GitHub-Actions-Workload **164,273 ev/s**. Dies ist ein Graph-Accumulation-Benchmark und kein End-to-end Collector-/Browser-Throughput.
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
execweave-overhead --iterations 7 --strace auto --output-json benchmark-results.json
|
|
233
|
+
execweave-scalability
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Referenzdaten und Methodik: [`docs/benchmarks/`](docs/benchmarks/).
|
|
237
|
+
|
|
238
|
+
## Layered Artifacts
|
|
239
|
+
|
|
240
|
+
Ein provider-integrierter Run kann enthalten:
|
|
241
|
+
|
|
242
|
+
```text
|
|
243
|
+
.execweave/runs/<run-id>/
|
|
244
|
+
├── events.jsonl
|
|
245
|
+
├── graph.json
|
|
246
|
+
├── viewer.html
|
|
247
|
+
├── semantic.jsonl
|
|
248
|
+
├── content/sha256/...
|
|
249
|
+
├── events.semantic.jsonl
|
|
250
|
+
├── graph.semantic.json
|
|
251
|
+
├── viewer.semantic.html
|
|
252
|
+
├── events.correlated.jsonl
|
|
253
|
+
├── graph.correlated.json
|
|
254
|
+
├── viewer.correlated.html
|
|
255
|
+
└── integrity.json # nach einem expliziten Seal
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Derived correlation schreibt die rohe Runtime- oder Provider-Sidecar-Evidence niemals um.
|
|
259
|
+
|
|
260
|
+
## Privacy
|
|
261
|
+
|
|
262
|
+
ExecWeave ist local-first: Captures, Content Blobs, Graphen, Reports und Viewer bleiben standardmäßig lokal. Der **OS runtime collector** erfasst File Content oder rohe Read/write Byte Buffers nicht absichtlich. Diese Boundary darf nicht mit dem **provider full-fidelity content store** aus v0.6.5 verwechselt werden: Wenn ein unterstützter Hook/API ausdrücklich Prompt, Tool-Argumente/-Ergebnisse, Model Response, reasoning/thinking text, Shell Output, File Content oder andere sensitive Werte liefert, kann ExecWeave diese vollständig bewahren.
|
|
263
|
+
|
|
264
|
+
Gehen Sie nicht davon aus, dass Content secret-redacted ist. Commands, Paths, Endpoint Metadata, Identifier, Model Metadata, Prompts, Tool Values und Content Blobs können alle sensitiv sein. Prüfen Sie das gesamte Run Directory vor dem Teilen.
|
|
265
|
+
|
|
266
|
+
## Aktueller Status
|
|
267
|
+
|
|
268
|
+
ExecWeave `main` ist derzeit **v0.6.5** und befindet sich im Release Hardening. Das neueste öffentliche Package/Release kann hinter main liegen, bis eine GitHub Release ausdrücklich veröffentlicht wird. Der Publish Workflow prüft vor dem PyPI Upload, dass Release Tag und Package Version exakt übereinstimmen.
|
|
269
|
+
|
|
270
|
+
v0.6.5 kombiniert cross-platform runtime collection, materialisierte Execution Graphs, standalone/live Viewing, konservative Provider↔Runtime-Korrelation, content-addressed full-fidelity Provider Evidence, Evidence Grades, begrenzte Rule Packs, einen expliziten Runtime Threat/Fidelity Contract und ehrliches lokales Run-integrity Sealing. Observed evidence und inference bleiben per Design getrennt.
|
|
271
|
+
|
|
272
|
+
## Dokumentation
|
|
273
|
+
|
|
274
|
+
- [`Phase 1 — Runtime Collection`](docs/phase-1-runtime-collection.de.md)
|
|
275
|
+
- [`Phase 2 — Execution Graph`](docs/phase-2-execution-graph.de.md)
|
|
276
|
+
- [`Live Graph`](docs/live-graph.de.md)
|
|
277
|
+
- [`Semantic Telemetry`](docs/semantic-telemetry.de.md)
|
|
278
|
+
- [`Claude Code Hooks`](docs/claude-code-hooks.de.md)
|
|
279
|
+
- [`OpenAI Codex Hooks`](docs/codex-hooks.de.md)
|
|
280
|
+
- [`Gemini CLI Hooks`](docs/gemini-hooks.de.md)
|
|
281
|
+
- [`Cursor Hooks`](docs/cursor-hooks.de.md)
|
|
282
|
+
- [`OpenCode Plugin`](docs/opencode-plugin.de.md)
|
|
283
|
+
- [`Inference Gateway / OpenRouter / LiteLLM`](docs/inference-gateway.de.md)
|
|
284
|
+
- [`Model Runtime / Ollama / llama.cpp / vLLM / LM Studio`](docs/model-runtime.de.md)
|
|
285
|
+
- [`Runtime Threat Model`](docs/runtime-threat-model.de.md)
|
|
286
|
+
- [`Evidence Grades`](docs/evidence-grades.de.md)
|
|
287
|
+
- [`Rule Packs`](docs/rule-packs.de.md)
|
|
288
|
+
- [`Run Integrity`](docs/run-integrity.de.md)
|
|
289
|
+
- [`Security Analysis`](docs/security-analysis.de.md)
|
|
290
|
+
- [`Performance Benchmarks`](docs/benchmarks/README.md)
|
|
291
|
+
|
|
292
|
+
## Mitwirken
|
|
293
|
+
|
|
294
|
+
Beiträge sind willkommen, besonders zu nativen OS Collectors, Agent-/IDE-Adaptern, Inference Gateways, Model Runtimes, Evidence-/Correlation-Methoden, Privacy/Redaction, Graph UX und Performance Evaluation.
|
|
295
|
+
|
|
296
|
+
## License
|
|
297
|
+
|
|
298
|
+
Siehe [`LICENSE`](LICENSE).
|