execweave 0.7.0__tar.gz → 0.7.2__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.
Files changed (430) hide show
  1. execweave-0.7.2/.github/workflows/cleanup-workflow-history.yml +98 -0
  2. {execweave-0.7.0 → execweave-0.7.2}/PKG-INFO +14 -14
  3. execweave-0.7.2/README.de.md +307 -0
  4. execweave-0.7.2/README.fr.md +307 -0
  5. execweave-0.7.2/README.ja.md +307 -0
  6. execweave-0.7.2/README.ko.md +307 -0
  7. {execweave-0.7.0 → execweave-0.7.2}/README.md +13 -13
  8. execweave-0.7.2/README.ru.md +307 -0
  9. {execweave-0.7.0 → execweave-0.7.2}/README.zh-CN.md +24 -17
  10. {execweave-0.7.0 → execweave-0.7.2}/README.zh-TW.md +22 -15
  11. {execweave-0.7.0 → execweave-0.7.2}/pyproject.toml +2 -2
  12. {execweave-0.7.0 → execweave-0.7.2}/scripts/audit_i18n_parity.py +3 -2
  13. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/__init__.py +1 -1
  14. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_full_fidelity.py +58 -11
  15. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_full_fidelity_collaboration_base.py +80 -0
  16. execweave-0.7.2/src/execweave/codex_conversation.py +347 -0
  17. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_hook_cli.py +23 -8
  18. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/conversation_archive.py +97 -0
  19. execweave-0.7.2/src/execweave/conversation_preview.py +685 -0
  20. execweave-0.7.2/src/execweave/conversation_records.py +523 -0
  21. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live.py +11 -1
  22. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/opencode_full_fidelity.py +30 -14
  23. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/opencode_hook_cli.py +1 -0
  24. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/opencode_task_linkage.py +73 -3
  25. execweave-0.7.2/src/execweave/viewer_conversation_panel.py +101 -0
  26. execweave-0.7.2/src/execweave/viewer_conversation_tree.py +92 -0
  27. execweave-0.7.2/src/execweave/viewer_dashboard_clean.py +195 -0
  28. execweave-0.7.2/src/execweave/viewer_dashboard_focus.py +71 -0
  29. execweave-0.7.2/src/execweave/viewer_live_layout.py +61 -0
  30. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/viewer_projection.py +28 -9
  31. execweave-0.7.2/tests/test_codex_archive_full_fidelity.py +222 -0
  32. execweave-0.7.2/tests/test_codex_conversation_isolation.py +94 -0
  33. execweave-0.7.2/tests/test_conversation_agent_isolation.py +118 -0
  34. execweave-0.7.2/tests/test_conversation_provider_parity.py +487 -0
  35. execweave-0.7.2/tests/test_dashboard_information_architecture.py +240 -0
  36. execweave-0.7.2/tests/test_dashboard_simplification.py +205 -0
  37. execweave-0.7.2/tests/test_provider_conversation_evidence.py +304 -0
  38. {execweave-0.7.0 → execweave-0.7.2}/tests/test_v069_dashboard_release.py +9 -6
  39. execweave-0.7.0/README.de.md +0 -296
  40. execweave-0.7.0/README.fr.md +0 -296
  41. execweave-0.7.0/README.ja.md +0 -296
  42. execweave-0.7.0/README.ko.md +0 -296
  43. execweave-0.7.0/README.ru.md +0 -296
  44. execweave-0.7.0/src/execweave/conversation_records.py +0 -209
  45. execweave-0.7.0/src/execweave/viewer_conversation_panel.py +0 -65
  46. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/ci.yml +0 -0
  47. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/i18n.yml +0 -0
  48. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/package-benchmark.yml +0 -0
  49. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/package-smoke.yml +0 -0
  50. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/publish.yml +0 -0
  51. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/scalability.yml +0 -0
  52. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/wheel-smoke.yml +0 -0
  53. {execweave-0.7.0 → execweave-0.7.2}/.github/workflows/windows-launcher.yml +0 -0
  54. {execweave-0.7.0 → execweave-0.7.2}/.gitignore +0 -0
  55. {execweave-0.7.0 → execweave-0.7.2}/LICENSE +0 -0
  56. {execweave-0.7.0 → execweave-0.7.2}/benchmarks/phase1_overhead.py +0 -0
  57. {execweave-0.7.0 → execweave-0.7.2}/docs/antigravity-hooks.md +0 -0
  58. {execweave-0.7.0 → execweave-0.7.2}/docs/assets/codex.gif +0 -0
  59. {execweave-0.7.0 → execweave-0.7.2}/docs/benchmarks/README.md +0 -0
  60. {execweave-0.7.0 → execweave-0.7.2}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
  61. {execweave-0.7.0 → execweave-0.7.2}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
  62. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.de.md +0 -0
  63. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.fr.md +0 -0
  64. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.ja.md +0 -0
  65. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.ko.md +0 -0
  66. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.md +0 -0
  67. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.ru.md +0 -0
  68. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.zh-CN.md +0 -0
  69. {execweave-0.7.0 → execweave-0.7.2}/docs/claude-code-hooks.zh-TW.md +0 -0
  70. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.de.md +0 -0
  71. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.fr.md +0 -0
  72. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.ja.md +0 -0
  73. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.ko.md +0 -0
  74. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.md +0 -0
  75. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.ru.md +0 -0
  76. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.zh-CN.md +0 -0
  77. {execweave-0.7.0 → execweave-0.7.2}/docs/codex-hooks.zh-TW.md +0 -0
  78. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.de.md +0 -0
  79. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.fr.md +0 -0
  80. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.ja.md +0 -0
  81. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.ko.md +0 -0
  82. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.md +0 -0
  83. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.ru.md +0 -0
  84. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.zh-CN.md +0 -0
  85. {execweave-0.7.0 → execweave-0.7.2}/docs/cursor-hooks.zh-TW.md +0 -0
  86. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.de.md +0 -0
  87. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.fr.md +0 -0
  88. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.ja.md +0 -0
  89. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.ko.md +0 -0
  90. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.md +0 -0
  91. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.ru.md +0 -0
  92. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.zh-CN.md +0 -0
  93. {execweave-0.7.0 → execweave-0.7.2}/docs/evidence-grades.zh-TW.md +0 -0
  94. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.de.md +0 -0
  95. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.fr.md +0 -0
  96. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.ja.md +0 -0
  97. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.ko.md +0 -0
  98. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.md +0 -0
  99. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.ru.md +0 -0
  100. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.zh-CN.md +0 -0
  101. {execweave-0.7.0 → execweave-0.7.2}/docs/gemini-hooks.zh-TW.md +0 -0
  102. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.de.md +0 -0
  103. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.fr.md +0 -0
  104. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.ja.md +0 -0
  105. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.ko.md +0 -0
  106. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.md +0 -0
  107. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.ru.md +0 -0
  108. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.zh-CN.md +0 -0
  109. {execweave-0.7.0 → execweave-0.7.2}/docs/inference-gateway.zh-TW.md +0 -0
  110. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.de.md +0 -0
  111. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.fr.md +0 -0
  112. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.ja.md +0 -0
  113. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.ko.md +0 -0
  114. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.md +0 -0
  115. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.ru.md +0 -0
  116. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.zh-CN.md +0 -0
  117. {execweave-0.7.0 → execweave-0.7.2}/docs/live-graph.zh-TW.md +0 -0
  118. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.de.md +0 -0
  119. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.fr.md +0 -0
  120. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.ja.md +0 -0
  121. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.ko.md +0 -0
  122. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.md +0 -0
  123. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.ru.md +0 -0
  124. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.zh-CN.md +0 -0
  125. {execweave-0.7.0 → execweave-0.7.2}/docs/model-runtime.zh-TW.md +0 -0
  126. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.de.md +0 -0
  127. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.fr.md +0 -0
  128. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.ja.md +0 -0
  129. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.ko.md +0 -0
  130. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.md +0 -0
  131. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.ru.md +0 -0
  132. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.zh-CN.md +0 -0
  133. {execweave-0.7.0 → execweave-0.7.2}/docs/opencode-plugin.zh-TW.md +0 -0
  134. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.de.md +0 -0
  135. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.fr.md +0 -0
  136. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.ja.md +0 -0
  137. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.ko.md +0 -0
  138. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.md +0 -0
  139. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.ru.md +0 -0
  140. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.zh-CN.md +0 -0
  141. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-1-runtime-collection.zh-TW.md +0 -0
  142. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.de.md +0 -0
  143. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.fr.md +0 -0
  144. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.ja.md +0 -0
  145. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.ko.md +0 -0
  146. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.md +0 -0
  147. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.ru.md +0 -0
  148. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.zh-CN.md +0 -0
  149. {execweave-0.7.0 → execweave-0.7.2}/docs/phase-2-execution-graph.zh-TW.md +0 -0
  150. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.de.md +0 -0
  151. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.fr.md +0 -0
  152. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.ja.md +0 -0
  153. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.ko.md +0 -0
  154. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.md +0 -0
  155. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.ru.md +0 -0
  156. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.zh-CN.md +0 -0
  157. {execweave-0.7.0 → execweave-0.7.2}/docs/rule-packs.zh-TW.md +0 -0
  158. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.de.md +0 -0
  159. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.fr.md +0 -0
  160. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.ja.md +0 -0
  161. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.ko.md +0 -0
  162. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.md +0 -0
  163. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.ru.md +0 -0
  164. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.zh-CN.md +0 -0
  165. {execweave-0.7.0 → execweave-0.7.2}/docs/run-integrity.zh-TW.md +0 -0
  166. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.de.md +0 -0
  167. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.fr.md +0 -0
  168. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.ja.md +0 -0
  169. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.ko.md +0 -0
  170. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.md +0 -0
  171. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.ru.md +0 -0
  172. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.zh-CN.md +0 -0
  173. {execweave-0.7.0 → execweave-0.7.2}/docs/runtime-threat-model.zh-TW.md +0 -0
  174. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.de.md +0 -0
  175. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.fr.md +0 -0
  176. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.ja.md +0 -0
  177. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.ko.md +0 -0
  178. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.md +0 -0
  179. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.ru.md +0 -0
  180. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.zh-CN.md +0 -0
  181. {execweave-0.7.0 → execweave-0.7.2}/docs/security-analysis.zh-TW.md +0 -0
  182. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.de.md +0 -0
  183. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.fr.md +0 -0
  184. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.ja.md +0 -0
  185. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.ko.md +0 -0
  186. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.md +0 -0
  187. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.ru.md +0 -0
  188. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.zh-CN.md +0 -0
  189. {execweave-0.7.0 → execweave-0.7.2}/docs/semantic-telemetry.zh-TW.md +0 -0
  190. {execweave-0.7.0 → execweave-0.7.2}/docs/v0.6.5-hardening-decisions.md +0 -0
  191. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_claude_hook.py +0 -0
  192. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_claude_record_graph.py +0 -0
  193. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_codex_hook.py +0 -0
  194. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_correlation_graph.py +0 -0
  195. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_inference_gateway_cli.py +0 -0
  196. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_model_runtime_cli.py +0 -0
  197. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_openai_compatible_cli.py +0 -0
  198. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_semantic_graph.py +0 -0
  199. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_viewer_js.py +0 -0
  200. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_wheel_install.py +0 -0
  201. {execweave-0.7.0 → execweave-0.7.2}/scripts/check_windows_launchers.py +0 -0
  202. {execweave-0.7.0 → execweave-0.7.2}/scripts/emit_claude_hook_smoke.py +0 -0
  203. {execweave-0.7.0 → execweave-0.7.2}/scripts/emit_cursor_hook_smoke.py +0 -0
  204. {execweave-0.7.0 → execweave-0.7.2}/scripts/emit_gemini_hook_smoke.py +0 -0
  205. {execweave-0.7.0 → execweave-0.7.2}/scripts/emit_opencode_plugin_smoke.py +0 -0
  206. {execweave-0.7.0 → execweave-0.7.2}/scripts/make_semantic_smoke.py +0 -0
  207. {execweave-0.7.0 → execweave-0.7.2}/scripts/sync_i18n_nav.py +0 -0
  208. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/__main__.py +0 -0
  209. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/agent_bootstrap.py +0 -0
  210. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/agent_trace.py +0 -0
  211. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/analysis.py +0 -0
  212. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/anthropic.py +0 -0
  213. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/anthropic_cli.py +0 -0
  214. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/anthropic_full_fidelity.py +0 -0
  215. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_adapter.py +0 -0
  216. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_adapter_base.py +0 -0
  217. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_full_fidelity_base.py +0 -0
  218. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_hook_cli.py +0 -0
  219. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_record.py +0 -0
  220. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_subagent_linkage.py +0 -0
  221. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/antigravity_trace_capability.py +0 -0
  222. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/auto_specialized.py +0 -0
  223. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/backends.py +0 -0
  224. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/benchmark.py +0 -0
  225. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/claude_adapter.py +0 -0
  226. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/claude_delegation.py +0 -0
  227. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/claude_full_fidelity.py +0 -0
  228. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/claude_hook_cli.py +0 -0
  229. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/claude_hook_contract.py +0 -0
  230. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/claude_model_observer.py +0 -0
  231. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/claude_record.py +0 -0
  232. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cli.py +0 -0
  233. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_adapter.py +0 -0
  234. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_full_fidelity.py +0 -0
  235. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_hook_lifecycle.py +0 -0
  236. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_message_diagnostics.py +0 -0
  237. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_message_transport_diagnostics.py +0 -0
  238. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_record.py +0 -0
  239. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_rollout_structures.py +0 -0
  240. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_rollout_trace.py +0 -0
  241. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/codex_rollout_trace_base.py +0 -0
  242. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/collector.py +0 -0
  243. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/command.py +0 -0
  244. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/content_evidence.py +0 -0
  245. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/content_store.py +0 -0
  246. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/correlation.py +0 -0
  247. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cursor_adapter.py +0 -0
  248. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cursor_delegation.py +0 -0
  249. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cursor_delegation_base.py +0 -0
  250. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cursor_full_fidelity.py +0 -0
  251. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cursor_hook_cli.py +0 -0
  252. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cursor_hook_contract.py +0 -0
  253. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/cursor_record.py +0 -0
  254. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/entry.py +0 -0
  255. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/evidence_grade.py +0 -0
  256. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/fidelity.py +0 -0
  257. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/filesystem.py +0 -0
  258. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/focus.py +0 -0
  259. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/gemini_adapter.py +0 -0
  260. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/gemini_full_fidelity.py +0 -0
  261. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/gemini_hook_cli.py +0 -0
  262. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/gemini_hook_contract.py +0 -0
  263. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/gemini_record.py +0 -0
  264. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/graph.py +0 -0
  265. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/graph_ops.py +0 -0
  266. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/http_proxy.py +0 -0
  267. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/http_proxy_cli.py +0 -0
  268. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/inference_gateway.py +0 -0
  269. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/inference_gateway_cli.py +0 -0
  270. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/inference_gateway_full_fidelity.py +0 -0
  271. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/inference_identity.py +0 -0
  272. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/inference_identity_cli.py +0 -0
  273. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/integrity.py +0 -0
  274. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/integrity_cli.py +0 -0
  275. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/litellm_callback.py +0 -0
  276. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/litellm_callback_cli.py +0 -0
  277. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_core.py +0 -0
  278. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view.py +0 -0
  279. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view_extra_style.py +0 -0
  280. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view_markup.py +0 -0
  281. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view_script_a.py +0 -0
  282. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view_script_b.py +0 -0
  283. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view_script_c.py +0 -0
  284. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view_script_d.py +0 -0
  285. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/live_view_style.py +0 -0
  286. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/model_runtime.py +0 -0
  287. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/model_runtime_cli.py +0 -0
  288. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/model_runtime_full_fidelity.py +0 -0
  289. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/openai_compatible.py +0 -0
  290. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/openai_compatible_cli.py +0 -0
  291. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/openai_compatible_full_fidelity.py +0 -0
  292. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/opencode_adapter.py +0 -0
  293. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/opencode_event_contract.py +0 -0
  294. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/opencode_plugin_cli.py +0 -0
  295. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/opencode_record.py +0 -0
  296. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/overhead_benchmark.py +0 -0
  297. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/provider_lifecycle.py +0 -0
  298. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/provider_record.py +0 -0
  299. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/rule_pack.py +0 -0
  300. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/rule_pack_cli.py +0 -0
  301. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/scalability_benchmark.py +0 -0
  302. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/schema.py +0 -0
  303. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/scope.py +0 -0
  304. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/semantic.py +0 -0
  305. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/sink.py +0 -0
  306. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/strace_backend.py +0 -0
  307. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/theme.py +0 -0
  308. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/top.py +0 -0
  309. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/top_cli.py +0 -0
  310. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/validate.py +0 -0
  311. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/view_cli.py +0 -0
  312. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/viewer.py +0 -0
  313. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/viewer_antigravity_linkage_inspector.py +0 -0
  314. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/viewer_content_inspector.py +0 -0
  315. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/viewer_execution_inspector.py +0 -0
  316. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/viewer_projection_base.py +0 -0
  317. {execweave-0.7.0 → execweave-0.7.2}/src/execweave/workflow.py +0 -0
  318. {execweave-0.7.0 → execweave-0.7.2}/tests/fixtures/hooks/README.md +0 -0
  319. {execweave-0.7.0 → execweave-0.7.2}/tests/fixtures/hooks/claude.json +0 -0
  320. {execweave-0.7.0 → execweave-0.7.2}/tests/fixtures/hooks/codex.json +0 -0
  321. {execweave-0.7.0 → execweave-0.7.2}/tests/fixtures/hooks/cursor.json +0 -0
  322. {execweave-0.7.0 → execweave-0.7.2}/tests/fixtures/hooks/gemini.json +0 -0
  323. {execweave-0.7.0 → execweave-0.7.2}/tests/fixtures/hooks/manifest.json +0 -0
  324. {execweave-0.7.0 → execweave-0.7.2}/tests/fixtures/hooks/opencode.json +0 -0
  325. {execweave-0.7.0 → execweave-0.7.2}/tests/test_agent_bootstrap.py +0 -0
  326. {execweave-0.7.0 → execweave-0.7.2}/tests/test_agent_message_viewer.py +0 -0
  327. {execweave-0.7.0 → execweave-0.7.2}/tests/test_agent_trace_lifecycle.py +0 -0
  328. {execweave-0.7.0 → execweave-0.7.2}/tests/test_agent_trace_viewer_visibility.py +0 -0
  329. {execweave-0.7.0 → execweave-0.7.2}/tests/test_analysis.py +0 -0
  330. {execweave-0.7.0 → execweave-0.7.2}/tests/test_anthropic.py +0 -0
  331. {execweave-0.7.0 → execweave-0.7.2}/tests/test_antigravity_agent_collaboration.py +0 -0
  332. {execweave-0.7.0 → execweave-0.7.2}/tests/test_antigravity_cursor_launch.py +0 -0
  333. {execweave-0.7.0 → execweave-0.7.2}/tests/test_antigravity_lifecycle.py +0 -0
  334. {execweave-0.7.0 → execweave-0.7.2}/tests/test_antigravity_linkage_projection.py +0 -0
  335. {execweave-0.7.0 → execweave-0.7.2}/tests/test_antigravity_official_contract.py +0 -0
  336. {execweave-0.7.0 → execweave-0.7.2}/tests/test_antigravity_subagent_transcript_linkage.py +0 -0
  337. {execweave-0.7.0 → execweave-0.7.2}/tests/test_antigravity_trace_capability_cli.py +0 -0
  338. {execweave-0.7.0 → execweave-0.7.2}/tests/test_auto_specialized.py +0 -0
  339. {execweave-0.7.0 → execweave-0.7.2}/tests/test_backends.py +0 -0
  340. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_adapter.py +0 -0
  341. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_delegation.py +0 -0
  342. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_full_fidelity.py +0 -0
  343. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_hook_contract.py +0 -0
  344. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_hook_metadata.py +0 -0
  345. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_hook_viewer.py +0 -0
  346. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_model_observer.py +0 -0
  347. {execweave-0.7.0 → execweave-0.7.2}/tests/test_claude_record.py +0 -0
  348. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_adapter.py +0 -0
  349. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_full_fidelity.py +0 -0
  350. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_hook_lifecycle.py +0 -0
  351. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_message_diagnostics.py +0 -0
  352. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_message_transport_diagnostics.py +0 -0
  353. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_record.py +0 -0
  354. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_reducer_command.py +0 -0
  355. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_rollout_structures.py +0 -0
  356. {execweave-0.7.0 → execweave-0.7.2}/tests/test_codex_rollout_trace.py +0 -0
  357. {execweave-0.7.0 → execweave-0.7.2}/tests/test_collector.py +0 -0
  358. {execweave-0.7.0 → execweave-0.7.2}/tests/test_command.py +0 -0
  359. {execweave-0.7.0 → execweave-0.7.2}/tests/test_condense.py +0 -0
  360. {execweave-0.7.0 → execweave-0.7.2}/tests/test_conversation_access.py +0 -0
  361. {execweave-0.7.0 → execweave-0.7.2}/tests/test_correlation.py +0 -0
  362. {execweave-0.7.0 → execweave-0.7.2}/tests/test_correlation_canonical_path.py +0 -0
  363. {execweave-0.7.0 → execweave-0.7.2}/tests/test_correlation_checker.py +0 -0
  364. {execweave-0.7.0 → execweave-0.7.2}/tests/test_correlation_process_exe.py +0 -0
  365. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cross_provider_agent_trace.py +0 -0
  366. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cursor_adapter.py +0 -0
  367. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cursor_delegation.py +0 -0
  368. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cursor_full_fidelity.py +0 -0
  369. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cursor_hook_contract.py +0 -0
  370. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cursor_hook_fail_open.py +0 -0
  371. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cursor_record.py +0 -0
  372. {execweave-0.7.0 → execweave-0.7.2}/tests/test_cursor_task_linkage.py +0 -0
  373. {execweave-0.7.0 → execweave-0.7.2}/tests/test_dashboard_ux_and_hook_projection.py +0 -0
  374. {execweave-0.7.0 → execweave-0.7.2}/tests/test_delegation_viewer.py +0 -0
  375. {execweave-0.7.0 → execweave-0.7.2}/tests/test_evidence_grade.py +0 -0
  376. {execweave-0.7.0 → execweave-0.7.2}/tests/test_execution_viewer.py +0 -0
  377. {execweave-0.7.0 → execweave-0.7.2}/tests/test_fidelity.py +0 -0
  378. {execweave-0.7.0 → execweave-0.7.2}/tests/test_filesystem_resilience.py +0 -0
  379. {execweave-0.7.0 → execweave-0.7.2}/tests/test_focus.py +0 -0
  380. {execweave-0.7.0 → execweave-0.7.2}/tests/test_full_fidelity.py +0 -0
  381. {execweave-0.7.0 → execweave-0.7.2}/tests/test_gemini_adapter.py +0 -0
  382. {execweave-0.7.0 → execweave-0.7.2}/tests/test_gemini_full_fidelity.py +0 -0
  383. {execweave-0.7.0 → execweave-0.7.2}/tests/test_gemini_hook_contract.py +0 -0
  384. {execweave-0.7.0 → execweave-0.7.2}/tests/test_gemini_lifecycle.py +0 -0
  385. {execweave-0.7.0 → execweave-0.7.2}/tests/test_gemini_record.py +0 -0
  386. {execweave-0.7.0 → execweave-0.7.2}/tests/test_graph.py +0 -0
  387. {execweave-0.7.0 → execweave-0.7.2}/tests/test_graph_ops.py +0 -0
  388. {execweave-0.7.0 → execweave-0.7.2}/tests/test_hook_fixture_corpus.py +0 -0
  389. {execweave-0.7.0 → execweave-0.7.2}/tests/test_http_proxy.py +0 -0
  390. {execweave-0.7.0 → execweave-0.7.2}/tests/test_inference_gateway.py +0 -0
  391. {execweave-0.7.0 → execweave-0.7.2}/tests/test_inference_gateway_full_fidelity.py +0 -0
  392. {execweave-0.7.0 → execweave-0.7.2}/tests/test_inference_identity.py +0 -0
  393. {execweave-0.7.0 → execweave-0.7.2}/tests/test_integrity.py +0 -0
  394. {execweave-0.7.0 → execweave-0.7.2}/tests/test_litellm_callback.py +0 -0
  395. {execweave-0.7.0 → execweave-0.7.2}/tests/test_live.py +0 -0
  396. {execweave-0.7.0 → execweave-0.7.2}/tests/test_live_auth.py +0 -0
  397. {execweave-0.7.0 → execweave-0.7.2}/tests/test_live_dashboard.py +0 -0
  398. {execweave-0.7.0 → execweave-0.7.2}/tests/test_live_dashboard_js.py +0 -0
  399. {execweave-0.7.0 → execweave-0.7.2}/tests/test_live_delta.py +0 -0
  400. {execweave-0.7.0 → execweave-0.7.2}/tests/test_live_logs_export.py +0 -0
  401. {execweave-0.7.0 → execweave-0.7.2}/tests/test_live_theme.py +0 -0
  402. {execweave-0.7.0 → execweave-0.7.2}/tests/test_lmstudio_auto_specialized.py +0 -0
  403. {execweave-0.7.0 → execweave-0.7.2}/tests/test_model_runtime.py +0 -0
  404. {execweave-0.7.0 → execweave-0.7.2}/tests/test_model_runtime_full_fidelity.py +0 -0
  405. {execweave-0.7.0 → execweave-0.7.2}/tests/test_openai_compatible.py +0 -0
  406. {execweave-0.7.0 → execweave-0.7.2}/tests/test_opencode_adapter.py +0 -0
  407. {execweave-0.7.0 → execweave-0.7.2}/tests/test_opencode_event_contract.py +0 -0
  408. {execweave-0.7.0 → execweave-0.7.2}/tests/test_opencode_event_lifecycle.py +0 -0
  409. {execweave-0.7.0 → execweave-0.7.2}/tests/test_opencode_full_fidelity.py +0 -0
  410. {execweave-0.7.0 → execweave-0.7.2}/tests/test_opencode_plugin.py +0 -0
  411. {execweave-0.7.0 → execweave-0.7.2}/tests/test_opencode_record.py +0 -0
  412. {execweave-0.7.0 → execweave-0.7.2}/tests/test_opencode_task_session_linkage.py +0 -0
  413. {execweave-0.7.0 → execweave-0.7.2}/tests/test_overhead_benchmark.py +0 -0
  414. {execweave-0.7.0 → execweave-0.7.2}/tests/test_provider_lifecycle.py +0 -0
  415. {execweave-0.7.0 → execweave-0.7.2}/tests/test_rule_pack.py +0 -0
  416. {execweave-0.7.0 → execweave-0.7.2}/tests/test_schema.py +0 -0
  417. {execweave-0.7.0 → execweave-0.7.2}/tests/test_scope.py +0 -0
  418. {execweave-0.7.0 → execweave-0.7.2}/tests/test_semantic.py +0 -0
  419. {execweave-0.7.0 → execweave-0.7.2}/tests/test_strace_backend.py +0 -0
  420. {execweave-0.7.0 → execweave-0.7.2}/tests/test_threat_model.py +0 -0
  421. {execweave-0.7.0 → execweave-0.7.2}/tests/test_top_detached.py +0 -0
  422. {execweave-0.7.0 → execweave-0.7.2}/tests/test_v063_features.py +0 -0
  423. {execweave-0.7.0 → execweave-0.7.2}/tests/test_v064_live_auto_integrations.py +0 -0
  424. {execweave-0.7.0 → execweave-0.7.2}/tests/test_v064_live_evidence.py +0 -0
  425. {execweave-0.7.0 → execweave-0.7.2}/tests/test_validate.py +0 -0
  426. {execweave-0.7.0 → execweave-0.7.2}/tests/test_version.py +0 -0
  427. {execweave-0.7.0 → execweave-0.7.2}/tests/test_viewer.py +0 -0
  428. {execweave-0.7.0 → execweave-0.7.2}/tests/test_viewer_content_inspector.py +0 -0
  429. {execweave-0.7.0 → execweave-0.7.2}/tests/test_viewer_projection.py +0 -0
  430. {execweave-0.7.0 → execweave-0.7.2}/tests/test_workflow.py +0 -0
@@ -0,0 +1,98 @@
1
+ name: Cleanup workflow history
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - .github/workflows/cleanup-workflow-history.yml
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+ actions: write
13
+
14
+ jobs:
15
+ cleanup:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - name: Delete superseded completed workflow runs
19
+ env:
20
+ GH_TOKEN: ${{ github.token }}
21
+ REPOSITORY: ${{ github.repository }}
22
+ CURRENT_RUN_ID: ${{ github.run_id }}
23
+ V070_PUBLISH_RUN_ID: "33179361863"
24
+ run: |
25
+ python - <<'PY'
26
+ import json
27
+ import os
28
+ import urllib.error
29
+ import urllib.request
30
+
31
+ repo = os.environ["REPOSITORY"]
32
+ token = os.environ["GH_TOKEN"]
33
+ current_run_id = int(os.environ["CURRENT_RUN_ID"])
34
+ protected_publish_run_id = int(os.environ["V070_PUBLISH_RUN_ID"])
35
+ api = f"https://api.github.com/repos/{repo}"
36
+ headers = {
37
+ "Accept": "application/vnd.github+json",
38
+ "Authorization": f"Bearer {token}",
39
+ "X-GitHub-Api-Version": "2022-11-28",
40
+ "User-Agent": "execweave-workflow-history-cleanup",
41
+ }
42
+
43
+ def request_json(url):
44
+ req = urllib.request.Request(url, headers=headers)
45
+ with urllib.request.urlopen(req) as response:
46
+ return json.load(response)
47
+
48
+ runs = []
49
+ page = 1
50
+ while True:
51
+ payload = request_json(f"{api}/actions/runs?per_page=100&page={page}")
52
+ batch = payload.get("workflow_runs", [])
53
+ runs.extend(batch)
54
+ if len(batch) < 100:
55
+ break
56
+ page += 1
57
+
58
+ completed = [run for run in runs if run.get("status") == "completed"]
59
+ completed.sort(key=lambda run: run.get("created_at", ""), reverse=True)
60
+
61
+ keep = {current_run_id, protected_publish_run_id}
62
+ seen_success = set()
63
+ seen_failure = set()
64
+
65
+ for run in completed:
66
+ workflow_id = run.get("workflow_id")
67
+ conclusion = run.get("conclusion")
68
+ if conclusion == "success" and workflow_id not in seen_success:
69
+ keep.add(run["id"])
70
+ seen_success.add(workflow_id)
71
+ elif conclusion != "success" and workflow_id not in seen_failure:
72
+ keep.add(run["id"])
73
+ seen_failure.add(workflow_id)
74
+
75
+ delete_ids = [run["id"] for run in completed if run["id"] not in keep]
76
+ deleted = 0
77
+ failed = []
78
+ for run_id in delete_ids:
79
+ req = urllib.request.Request(
80
+ f"{api}/actions/runs/{run_id}",
81
+ headers=headers,
82
+ method="DELETE",
83
+ )
84
+ try:
85
+ with urllib.request.urlopen(req) as response:
86
+ if response.status == 204:
87
+ deleted += 1
88
+ except urllib.error.HTTPError as exc:
89
+ failed.append((run_id, exc.code))
90
+
91
+ print(f"workflow runs discovered: {len(runs)}")
92
+ print(f"completed runs considered: {len(completed)}")
93
+ print(f"protected runs: {len(keep)}")
94
+ print(f"deleted runs: {deleted}")
95
+ if failed:
96
+ print(f"failed deletions: {failed}")
97
+ raise SystemExit(1)
98
+ PY
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: execweave
3
- Version: 0.7.0
3
+ Version: 0.7.2
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
@@ -82,7 +82,7 @@ Install the latest published wheel/sdist from PyPI:
82
82
  python -m pip install -U execweave
83
83
  ```
84
84
 
85
- The current release is **v0.7.0**.
85
+ The current release is **v0.7.2**.
86
86
 
87
87
  For development:
88
88
 
@@ -118,9 +118,9 @@ execweave record --open -- python my_agent.py
118
118
 
119
119
  `execweave top -- codex` keeps the Agent interactive in the launch terminal while opening/attaching the detached Top dashboard according to the host environment.
120
120
 
121
- v0.7.0 extends ExecWeave from provider/runtime observability into attributable multi-agent execution traces. Where providers expose authoritative identity or lifecycle evidence, ExecWeave records parent/child relationships, delegated tasks, inter-agent messages, waits/results, tool ownership, and provider-supplied reasoning/content without promoting weak timing proximity into causal claims. Current provider coverage includes Claude Code, OpenAI Codex, Cursor, OpenCode, and Google Antigravity; missing or ambiguous evidence causes abstention rather than heuristic linkage.
121
+ **v0.7.2 provider-neutral, agent-local multi-agent conversations.** ExecWeave now projects provider-exposed conversation evidence into agent-scoped dashboard threads instead of duplicating one full transcript across every agent node. Parent → child task assignments, routed inter-agent messages, waits/results, and child parent final responses are preserved when the provider exposes authoritative identity or routing evidence. A child agent keeps only its own visible task and conversation; inherited parent history and sibling-private content are excluded. The common merge layer also scopes by provider, raw thread identity, and agent identity, so even a reused provider thread ID cannot fold Agent 1 into Agent 2.
122
122
 
123
- Conversation evidence is now surfaced directly from each ExecWeave run. Existing provider content is indexed, validated provider transcripts that would otherwise require browsing Agent-specific folders are copied into the run-local SHA-256 content store, and finalized runs generate `conversations.md` plus `conversations.json`. Static and Live dashboards link directly to these run-local records. Live content serving is token-authenticated and restricted to validated run-local conversation indexes and SHA-256 content paths; arbitrary local files and path traversal are not exposed.
123
+ The unified dashboard brings the execution graph, logs, and conversation records into the same inspection flow. Finalized runs generate `conversations.md` and `conversations.json`, while validated provider transcripts are copied into the run-local SHA-256 content store. Claude Code, OpenAI Codex, Cursor, OpenCode, and Google Antigravity use the strongest provider-exposed multi-agent evidence available to each integration. For gateways and local runtimes that expose only root request/response traffic, ExecWeave shows only that root conversation and does not invent subagents or hidden routing.
124
124
 
125
125
  ## v0.6.9: full-fidelity observability with explicit evidence boundaries
126
126
 
@@ -140,11 +140,11 @@ Full fidelity also changes the privacy boundary: application-level secrets embed
140
140
 
141
141
  | Integration | OS-runtime observation when launched under ExecWeave | Specialized evidence |
142
142
  | --- | --- | --- |
143
- | Claude Code | Yes | native hooks + full-fidelity supplied hook content |
144
- | OpenAI Codex | Yes | lifecycle hooks + full-fidelity supplied hook content |
145
- | Google Antigravity / Antigravity CLI | Yes | passive native hooks for invocation/tool evidence + full-fidelity values explicitly supplied to those hooks |
146
- | Cursor | Yes | native hooks + full-fidelity supplied hook content |
147
- | OpenCode | Yes | project plugin + full-fidelity supplied plugin content |
143
+ | Claude Code | Yes | native hooks + full-fidelity supplied hook content + exact subagent results when exposed |
144
+ | OpenAI Codex | Yes | lifecycle hooks + validated rollout transcripts + agent-local task/message/final-response routing |
145
+ | Google Antigravity / Antigravity CLI | Yes | passive native hooks + validated conversation/subagent routing where exposed |
146
+ | Cursor | Yes | native hooks + exact subagent task/summary routing when exposed |
147
+ | OpenCode | Yes | project plugin + session/task routing + full-fidelity supplied plugin content |
148
148
  | Ollama | Yes | `execweave-model-runtime event/exchange/probe --runtime ollama` |
149
149
  | llama.cpp | Yes | `execweave-model-runtime event/exchange/probe --runtime llamacpp` |
150
150
  | vLLM | Yes | `execweave-model-runtime event/exchange/probe --runtime vllm` |
@@ -152,7 +152,7 @@ Full fidelity also changes the privacy boundary: application-level secrets embed
152
152
  | LiteLLM Proxy | Yes when the configured proxy is launched under ExecWeave | metadata-oriented gateway callback/event integration |
153
153
  | OpenRouter | Observe the local client, not the remote service process | `execweave-inference-gateway event/exchange/generation --gateway openrouter` |
154
154
 
155
- OpenRouter `exchange` is caller-supplied request+response evidence, not transparent wire interception. LiteLLM Proxy remains a narrower metadata-oriented integration in the current baseline.
155
+ OpenRouter `exchange` is caller-supplied request+response evidence, not transparent wire interception. LiteLLM Proxy remains a narrower metadata-oriented integration in the current baseline. Provider-neutral conversation projection never upgrades missing provider evidence into a fabricated agent relationship.
156
156
 
157
157
  ## Evidence layers
158
158
 
@@ -202,7 +202,7 @@ execweave-opencode-plugin --install
202
202
  execweave-opencode-record --open -- opencode
203
203
  ```
204
204
 
205
- 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. Legacy Gemini CLI hook entry points remain packaged for existing installations, but Gemini CLI is no longer advertised as a current integration; new Google CLI usage should use Antigravity (`agy`).
205
+ Provider-integrated recorders keep raw runtime, semantic, correlated, and conversation artifacts separate. Stable provider identifiers such as Cursor `tool_use_id`, Codex rollout thread identity, or OpenCode `sessionID + callID` prove logical provider identity; they are not OS PIDs. Cross-agent content is shown only when the provider exposes an explicit route, delegation, or result. Legacy Gemini CLI hook entry points remain packaged for existing installations, but Gemini CLI is no longer advertised as a current integration; new Google CLI usage should use Antigravity (`agy`).
206
206
 
207
207
  ## Inference gateways and model runtimes
208
208
 
@@ -323,11 +323,11 @@ Derived correlation never rewrites the raw runtime or provider sidecar evidence.
323
323
 
324
324
  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 **provider full-fidelity content store introduced in v0.6.9**: 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.
325
325
 
326
- 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.
326
+ Conversation isolation is an attribution/display rule, not a redaction boundary. If a provider explicitly sends Agent 1 content to Agent 2, that routed evidence can legitimately appear at the participating endpoints. 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.
327
327
 
328
328
  ## Current status
329
329
 
330
- v0.7.0 combines cross-platform runtime collection, materialized execution graphs, standalone/live viewing, conservative provider↔runtime correlation, full-fidelity content-addressed provider evidence, attributable multi-agent execution traces, direct run-local conversation access, 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.
330
+ v0.7.2 combines cross-platform runtime collection, materialized execution graphs, standalone/live dashboards, conservative provider↔runtime correlation, full-fidelity content-addressed provider evidence, attributable multi-agent execution traces, direct run-local conversation access, and agent-local conversation isolation across provider-neutral projections. Supported integrations preserve the strongest identity/routing evidence actually exposed by each provider and abstain when that evidence is unavailable. Observed evidence and inference remain separate by design.
331
331
 
332
332
  ## Documentation
333
333
 
@@ -351,7 +351,7 @@ v0.7.0 combines cross-platform runtime collection, materialized execution graphs
351
351
 
352
352
  ## Contributing
353
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.
354
+ Contributions are welcome, especially around native OS collectors, Agent/IDE adapters, inference gateways, model runtimes, evidence/correlation methods, privacy/redaction, graph UX, multi-agent conversation attribution, and performance evaluation.
355
355
 
356
356
  ## License
357
357
 
@@ -0,0 +1,307 @@
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 source-available, local-first Observability-Projekt, das Aktivitäten von KI-Agenten in einen interaktiven execution graph überführt und observed evidence, provider content sowie derived inference ausdrücklich getrennt hält.
19
+
20
+ > **Das Event ist ground truth. Der Graph ist eine materialized view.**
21
+
22
+ <p align="center">
23
+ <img src="docs/assets/codex.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 aktuelle Version ist **v0.7.2**.
35
+
36
+ Für die Entwicklung:
37
+
38
+ ```bash
39
+ git clone https://github.com/Irish-kw/ExecWeave.git
40
+ cd ExecWeave
41
+ python -m pip install -e ".[dev]"
42
+ ```
43
+
44
+ ## Schnellstart
45
+
46
+ Live OS-runtime telemetry funktioniert mit **jedem lokalen Befehl**. Die folgenden Agent/runtime-Namen sind Beispiele und keine whitelist.
47
+
48
+ ```bash
49
+ execweave live --open -- claude
50
+ execweave live --open -- codex
51
+ execweave live --open -- antigravity
52
+ execweave live --open -- cursor
53
+ execweave live --open -- opencode
54
+ execweave live --open -- ollama serve
55
+ execweave live --open -- python my_agent.py
56
+ ```
57
+
58
+ > **Bestätigen Sie den Hook, wenn Sie dazu aufgefordert werden.** Beim ersten provider-integrierten Lauf kann der Agent/die IDE fragen, ob ExecWeave die lokale Hook-Integration aktivieren darf. Wählen Sie **Allow / Yes**. Ohne Freigabe kann OS-runtime telemetry weiterhin funktionieren, provider-level tool-, model- und supplied-content observability ist dann jedoch eingeschränkt oder nicht verfügbar.
59
+
60
+ Google Antigravity verwendet aktuell den CLI-Befehl `agy`. ExecWeave akzeptiert `antigravity` zusätzlich als freundlichen Alias und löst ihn zu `agy` auf. Bei Cursor versucht `execweave live --open -- cursor` zunächst einen normalen PATH launcher und fällt auf macOS/Windows auf das Standard-Binary der Cursor Desktop-Anwendung zurück.
61
+
62
+ Für 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 bzw. verbindet gleichzeitig das detached Top dashboard entsprechend der Host-Umgebung.
69
+
70
+ **v0.7.2 — provider-neutral, agent-local multi-agent conversations.** ExecWeave projiziert die vom Provider tatsächlich offengelegte conversation evidence jetzt in agent-spezifische Dashboard-Threads, statt denselben vollständigen Transcript in jeden agent node zu kopieren. Wenn der Provider authoritative identity / routing evidence bereitstellt, werden parent → child task assignments, inter-agent messages, waits/results und child → parent final responses erhalten. Ein Child Agent enthält nur die Task, die er tatsächlich erhalten hat, sowie seine eigene Conversation; inherited parent history und sibling-private content werden ausgeschlossen. Die gemeinsame Merge-Schicht scoped zusätzlich nach Provider, raw thread identity und agent identity, sodass selbst ein wiederverwendeter Provider-thread-ID Agent 1 und Agent 2 nicht zusammenführen kann.
71
+
72
+ Das vereinheitlichte Dashboard bringt execution graph, logs und conversation records in denselben Inspection-Flow. Finalisierte Runs erzeugen `conversations.md` und `conversations.json`; validierte Provider-Transcripts werden in den run-local SHA-256 content store kopiert. Claude Code, OpenAI Codex, Cursor, OpenCode und Google Antigravity verwenden jeweils die stärkste Multi-Agent-Evidence, die ihre Integration tatsächlich offenlegt. Wenn ein Gateway oder lokaler Runtime nur root request/response sichtbar macht, zeigt ExecWeave nur diese Root-Conversation und erfindet weder Subagents noch hidden routing.
73
+
74
+ ## v0.6.9: Full-Fidelity Observability mit expliziten Evidence Boundaries
75
+
76
+ v0.6.9 erweitert Provider-/Runtime-Observability über kompakte Metadata hinaus. Wenn ein unterstützter Integration Point Inhalte ausdrücklich liefert, kann ExecWeave den **vollständig gelieferten Wert** in einem lokalen SHA-256 content-addressed store speichern und im semantic event stream nur eine Reference behalten.
77
+
78
+ ```text
79
+ <run-root>/content/sha256/<sha256>.<json|txt|bin>
80
+ ```
81
+
82
+ Abhängig vom Adapter und der upstream Hook/API surface können unter anderem prompts/messages, model request/response objects, tool inputs/results, assistant responses, ausdrücklich offengelegter reasoning/thinking text, shell/MCP output und durch Provider-Hooks gelieferter file content gespeichert werden.
83
+
84
+ `complete_from_source: true` bedeutet lediglich, dass ExecWeave den vollständigen Wert gespeichert hat, den dieser Integration Point geliefert hat. Es bedeutet **nicht**, dass ExecWeave hidden model state, nie offengelegte provider-side stages, einen nicht beobachteten finalen wire request oder nicht abgefangene bytes gesehen hat.
85
+
86
+ Full fidelity verändert auch die Privacy Boundary: application-level secrets innerhalb des Contents werden mitgespeichert. Bekannte transport credentials werden nur in ausgewählten provider-metadata projections gefiltert, wenn der Adapter dieses Verhalten ausdrücklich definiert. ExecWeave ist **kein** allgemeiner secret scanner oder content redactor.
87
+
88
+ ### Unterstützte Semantic-/Inference-Surfaces
89
+
90
+ | Integration | OS-runtime observation bei Start unter ExecWeave | Specialized evidence |
91
+ | --- | --- | --- |
92
+ | Claude Code | Yes | native hooks + full-fidelity hook content + vom Provider offengelegte subagent results |
93
+ | OpenAI Codex | Yes | lifecycle hooks + validated rollout transcripts + agent-local task/message/final-response routing |
94
+ | Google Antigravity / Antigravity CLI | Yes | passive native hooks + validierbares conversation/subagent routing |
95
+ | Cursor | Yes | native hooks + exact subagent task/summary routing, wenn verfügbar |
96
+ | OpenCode | Yes | project plugin + session/task routing + full-fidelity plugin content |
97
+ | Ollama | Yes | `execweave-model-runtime event/exchange/probe --runtime ollama` |
98
+ | llama.cpp | Yes | `execweave-model-runtime event/exchange/probe --runtime llamacpp` |
99
+ | vLLM | Yes | `execweave-model-runtime event/exchange/probe --runtime vllm` |
100
+ | LM Studio | Nur wenn der lokale Process unter ExecWeave gestartet wird | `execweave-model-runtime event/exchange/probe --runtime lmstudio` |
101
+ | LiteLLM Proxy | Yes, wenn der konfigurierte Proxy unter ExecWeave gestartet wird | metadata-oriented gateway callback/event integration |
102
+ | OpenRouter | Beobachtet den lokalen Client, nicht den entfernten Service-Process | `execweave-inference-gateway event/exchange/generation --gateway openrouter` |
103
+
104
+ OpenRouter `exchange` ist caller-supplied request+response evidence und keine transparent wire interception. LiteLLM Proxy bleibt im aktuellen Baseline eine engere metadata-oriented integration. Die provider-neutrale Conversation-Projektion erhebt fehlende Provider-Evidence niemals zu einer erfundenen agent relationship.
105
+
106
+ ## Evidence layers
107
+
108
+ ExecWeave hält Evidence Layers getrennt, anstatt alle Signale in eine einzige Trace zu flatten:
109
+
110
+ ```text
111
+ Agent / IDE semantic + supplied content evidence
112
+
113
+ Inference gateway / routing evidence
114
+
115
+ Model runtime / inference-server evidence
116
+
117
+ OS runtime evidence: process / file / network
118
+ ```
119
+
120
+ Eine Relationship ist nur dann causal, wenn die zugrunde liegende Telemetrie diesen Claim unterstützt. Tool → Process bridges bleiben konservative derived evidence:
121
+
122
+ ```text
123
+ inferred: true
124
+ causal: false
125
+ ```
126
+
127
+ Bei Ambiguität wird kein Edge erzeugt. Eine exact shared request identity zwischen Gateway und Model Runtime bleibt identity evidence statt causal evidence:
128
+
129
+ ```text
130
+ identity_exact: true
131
+ inferred: false
132
+ causal: false
133
+ ```
134
+
135
+ ## Agent / IDE integrations
136
+
137
+ ```bash
138
+ execweave-claude-hook --print-config
139
+ execweave-claude-record --open -- claude
140
+
141
+ execweave-codex-hook --print-config
142
+ execweave-codex-record --open -- codex
143
+
144
+ execweave-antigravity-hook --print-config
145
+ execweave-antigravity-record --open -- antigravity
146
+
147
+ execweave-cursor-hook --print-config
148
+ execweave-cursor-record --open -- cursor
149
+
150
+ execweave-opencode-plugin --install
151
+ execweave-opencode-record --open -- opencode
152
+ ```
153
+
154
+ Provider-integrierte Recorder speichern raw runtime, semantic, correlated und conversation artifacts getrennt. Stabile Provider-Identifier wie Cursor `tool_use_id`, Codex rollout thread identity oder OpenCode `sessionID + callID` belegen logische Provider-Identität; sie sind keine OS PIDs. Cross-agent content wird nur angezeigt, wenn der Provider eine Route, Delegation oder ein Result explizit offenlegt. Legacy Gemini CLI Hook Entry Points bleiben für bestehende Installationen paketiert, neue Google-CLI-Nutzung sollte jedoch Antigravity (`agy`) verwenden.
155
+
156
+ ## Inference gateways und model runtimes
157
+
158
+ OpenRouter- oder LiteLLM-Gateway-Evidence erfassen:
159
+
160
+ ```bash
161
+ execweave-inference-gateway event --gateway openrouter --sidecar gateway.jsonl
162
+ execweave-inference-gateway event --gateway litellm --sidecar gateway.jsonl
163
+ execweave-inference-gateway exchange --gateway openrouter --sidecar gateway.jsonl
164
+ ```
165
+
166
+ Model-runtime evidence für Ollama, llama.cpp, vLLM oder LM Studio erfassen:
167
+
168
+ ```bash
169
+ execweave-model-runtime event --runtime ollama --sidecar model-runtime.jsonl
170
+ execweave-model-runtime exchange --runtime ollama --sidecar model-runtime.jsonl
171
+ execweave-model-runtime probe --runtime ollama --sidecar model-runtime.jsonl
172
+ ```
173
+
174
+ `event` ist response-only evidence. `exchange` speichert ein caller-supplied request+response object und behauptet keine transparente Interception. Runtime catalog relations behalten ihre quellenspezifische Bedeutung: `LOADED_MODEL`, `SERVES_MODEL` und `ADVERTISES_MODEL` sind nicht austauschbar. Die Catalog Visibility von LM Studio bleibt `ADVERTISES_MODEL` und ist kein Beweis dafür, dass Weights resident in memory waren.
175
+
176
+ ## Security analysis, evidence grades und bounded rule packs
177
+
178
+ Die integrierte Analyse ausführen:
179
+
180
+ ```bash
181
+ execweave analyze run.graph.json --output analysis.json
182
+ ```
183
+
184
+ Findings enthalten einen von der Severity unabhängigen evidence grade. Aktuelle Grades sind `A`, `B`, `C`, `D` und `U`, von direkter syscall attribution bis inferred/unknown provenance. Diese Grades sind Kategorien der Evidence-Stärke, **keine Wahrscheinlichkeiten oder Trust Scores**.
185
+
186
+ Lokale Rule Packs fügen begrenzte, erklärbare **single-edge observation** policies hinzu, ohne Third-Party-Code auszuführen:
187
+
188
+ ```bash
189
+ execweave-rule-pack graph.json --rule-pack local-policy.json --output report.json
190
+ ```
191
+
192
+ 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.
193
+
194
+ Security Findings machen stärkere Non-Claims weiterhin explizit:
195
+
196
+ ```json
197
+ {
198
+ "data_flow_proven": false,
199
+ "exfiltration_proven": false
200
+ }
201
+ ```
202
+
203
+ ## Run integrity
204
+
205
+ Einen abgeschlossenen Run seal-en und später prüfen, ob sich sein regular-file inventory gegenüber dem Seal verändert hat:
206
+
207
+ ```text
208
+ execweave-integrity seal .execweave/runs/<run-id>
209
+ execweave-integrity verify .execweave/runs/<run-id>
210
+ ```
211
+
212
+ Das deterministische Manifest speichert file size/SHA-256 und verweigert symbolic links. Es erkennt fehlende, geänderte, ersetzte oder neu hinzugefügte regular files nach dem Seal.
213
+
214
+ Dieser local seal wird bewusst **nicht** als adversary-resistant tamper evidence bezeichnet, wenn Evidence und Manifest innerhalb derselben writable trust boundary liegen. Das Manifest vermerkt `malicious_writer_resistance: false` und `external_trust_anchor: false`. Für einen stärkeren Trust Anchor sollte der Manifest-Digest außerhalb dieser Boundary kopiert oder geschützt werden.
215
+
216
+ ## Runtime evidence und graph operations
217
+
218
+ Der portable Collector läuft unter Linux, macOS und Windows. Linux besitzt zusätzlich einen syscall-backed `strace` reference backend.
219
+
220
+ ```bash
221
+ execweave doctor
222
+ execweave run --backend portable -- your-command
223
+ execweave run --backend strace -- your-command
224
+ execweave graph-summary run.graph.json
225
+ execweave graph-filter run.graph.json --causal-only --output causal.graph.json
226
+ execweave graph-focus run.graph.json NODE_ID --hops 2 --output focused.graph.json
227
+ execweave path run.graph.json SOURCE TARGET --causal-only
228
+ ```
229
+
230
+ Portable filesystem observation ist session-correlated statt process-causal; Polling kann ausreichend kurzlebige Aktivität verpassen. Linux `strace` liefert für unterstützte Executions stärker process-attributed syscall evidence. Zukünftige native Collectors sind weiterhin für Linux eBPF, Windows ETW und macOS Endpoint Security geplant.
231
+
232
+ ## Performance und Large-Run-Sicherheit
233
+
234
+ ExecWeave enthält begrenzte filesystem/viewer protections, inkrementelles Live JSONL tailing, large-graph safety guards, detached Top und provisional live sidecars für konfigurierte Provider-Integrationen.
235
+
236
+ Das reproduzierbare inkrementelle `GraphAccumulator`-Referenzergebnis erreicht **164,273 ev/s** bei 1M synthetic events auf dem dokumentierten GitHub-Actions-Workload. Dies ist ein Graph-Accumulation-Benchmark und kein end-to-end collector/browser throughput.
237
+
238
+ Führen Sie den package-level overhead benchmark auf einem repräsentativen Host/Workload aus:
239
+
240
+ ```bash
241
+ execweave-overhead --iterations 7 --strace auto --output-json benchmark-results.json
242
+ execweave-scalability
243
+ ```
244
+
245
+ Referenzdaten und Methodik finden Sie unter [`docs/benchmarks/`](docs/benchmarks/).
246
+
247
+ ## Layered artifacts
248
+
249
+ Ein provider-integrierter Run kann enthalten:
250
+
251
+ ```text
252
+ .execweave/runs/<run-id>/
253
+ ├── events.jsonl
254
+ ├── graph.json
255
+ ├── viewer.html
256
+ ├── semantic.jsonl
257
+ ├── content/sha256/...
258
+ ├── conversations.md
259
+ ├── conversations.json
260
+ ├── events.semantic.jsonl
261
+ ├── graph.semantic.json
262
+ ├── viewer.semantic.html
263
+ ├── events.correlated.jsonl
264
+ ├── graph.correlated.json
265
+ ├── viewer.correlated.html
266
+ └── integrity.json # nach explizitem Seal
267
+ ```
268
+
269
+ Derived correlation schreibt raw runtime oder provider sidecar evidence niemals um.
270
+
271
+ ## Privacy
272
+
273
+ ExecWeave ist local-first: Captures, content blobs, Graphs, Reports und Viewer bleiben standardmäßig lokal. Der **OS runtime collector** erfasst file contents oder raw read/write byte buffers nicht absichtlich. Diese Boundary darf nicht mit dem in v0.6.9 eingeführten **provider full-fidelity content store** verwechselt werden: Unterstützte Hooks/APIs können prompts, tool arguments/results, model responses, reasoning/thinking text, shell output, file content oder andere sensible Werte ausdrücklich liefern, die ExecWeave vollständig speichern kann.
274
+
275
+ Conversation isolation ist eine Attribution-/Display-Regel, keine Redaction Boundary. Wenn ein Provider Inhalt von Agent 1 ausdrücklich an Agent 2 sendet, kann diese routed evidence legitimerweise an den beteiligten Endpoints erscheinen. Gehen Sie nicht davon aus, dass Content secret-redacted wurde. Commands, Paths, endpoint metadata, identifiers, model metadata, prompts, tool values und content blobs können sensibel sein. Prüfen Sie das gesamte Run-Verzeichnis vor dem Teilen.
276
+
277
+ ## Aktueller Stand
278
+
279
+ v0.7.2 kombiniert cross-platform runtime collection, materialized execution graphs, standalone/live dashboards, konservative provider↔runtime correlation, full-fidelity content-addressed provider evidence, attributable multi-agent execution traces, direkten run-local conversation access und agent-local conversation isolation in provider-neutralen Projektionen. Jede Integration bewahrt nur die stärkste identity/routing evidence, die der Provider tatsächlich offenlegt, und enthält sich, wenn diese Evidence fehlt. Observed evidence und inference bleiben konstruktiv getrennt.
280
+
281
+ ## Dokumentation
282
+
283
+ - [`Phase 1 — Runtime Collection`](docs/phase-1-runtime-collection.de.md)
284
+ - [`Phase 2 — Execution Graph`](docs/phase-2-execution-graph.de.md)
285
+ - [`Live Graph`](docs/live-graph.de.md)
286
+ - [`Semantic Telemetry`](docs/semantic-telemetry.de.md)
287
+ - [`Claude Code Hooks`](docs/claude-code-hooks.de.md)
288
+ - [`OpenAI Codex Hooks`](docs/codex-hooks.de.md)
289
+ - [`Google Antigravity Hooks`](docs/antigravity-hooks.md)
290
+ - [`Cursor Hooks`](docs/cursor-hooks.de.md)
291
+ - [`OpenCode Plugin`](docs/opencode-plugin.de.md)
292
+ - [`Inference Gateway / OpenRouter / LiteLLM`](docs/inference-gateway.de.md)
293
+ - [`Model Runtime / Ollama / llama.cpp / vLLM / LM Studio`](docs/model-runtime.de.md)
294
+ - [`Runtime Threat Model`](docs/runtime-threat-model.de.md)
295
+ - [`Evidence Grades`](docs/evidence-grades.de.md)
296
+ - [`Rule Packs`](docs/rule-packs.de.md)
297
+ - [`Run Integrity`](docs/run-integrity.de.md)
298
+ - [`Security Analysis`](docs/security-analysis.de.md)
299
+ - [`Performance Benchmarks`](docs/benchmarks/README.md)
300
+
301
+ ## Mitwirken
302
+
303
+ Beiträge sind willkommen, insbesondere zu native OS collectors, Agent/IDE adapters, inference gateways, model runtimes, evidence/correlation methods, privacy/redaction, graph UX, multi-agent conversation attribution und performance evaluation.
304
+
305
+ ## License
306
+
307
+ Seit v0.6.8 steht ExecWeave unter der **PolyForm Noncommercial License 1.0.0**. Nichtkommerzielle Nutzung, Änderung und Weitergabe sind gemäß ihren Bedingungen zulässig. Kommerzielle Nutzung erfordert eine separate schriftliche commercial license vom Licensor. Siehe [`LICENSE`](LICENSE).