execweave 0.6.6__tar.gz → 0.6.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. {execweave-0.6.6 → execweave-0.6.7}/PKG-INFO +14 -9
  2. {execweave-0.6.6 → execweave-0.6.7}/README.md +13 -8
  3. execweave-0.6.7/docs/antigravity-hooks.md +55 -0
  4. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.md +4 -0
  5. {execweave-0.6.6 → execweave-0.6.7}/pyproject.toml +4 -1
  6. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/__init__.py +1 -1
  7. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/agent_bootstrap.py +56 -4
  8. execweave-0.6.7/src/execweave/antigravity_adapter.py +359 -0
  9. execweave-0.6.7/src/execweave/antigravity_full_fidelity.py +99 -0
  10. execweave-0.6.7/src/execweave/antigravity_hook_cli.py +117 -0
  11. execweave-0.6.7/src/execweave/antigravity_record.py +96 -0
  12. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/collector.py +2 -0
  13. execweave-0.6.7/src/execweave/command.py +113 -0
  14. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live.py +72 -0
  15. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view_extra_style.py +2 -1
  16. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view_script_b.py +1 -1
  17. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view_script_c.py +3 -1
  18. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/provider_record.py +7 -3
  19. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/viewer_projection.py +223 -16
  20. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/workflow.py +2 -2
  21. execweave-0.6.7/tests/test_antigravity_cursor_launch.py +142 -0
  22. execweave-0.6.7/tests/test_dashboard_ux_and_hook_projection.py +381 -0
  23. execweave-0.6.6/src/execweave/command.py +0 -70
  24. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/ci.yml +0 -0
  25. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/i18n.yml +0 -0
  26. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/package-benchmark.yml +0 -0
  27. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/package-smoke.yml +0 -0
  28. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/publish.yml +0 -0
  29. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/scalability.yml +0 -0
  30. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/wheel-smoke.yml +0 -0
  31. {execweave-0.6.6 → execweave-0.6.7}/.github/workflows/windows-launcher.yml +0 -0
  32. {execweave-0.6.6 → execweave-0.6.7}/.gitignore +0 -0
  33. {execweave-0.6.6 → execweave-0.6.7}/LICENSE +0 -0
  34. {execweave-0.6.6 → execweave-0.6.7}/README.de.md +0 -0
  35. {execweave-0.6.6 → execweave-0.6.7}/README.fr.md +0 -0
  36. {execweave-0.6.6 → execweave-0.6.7}/README.ja.md +0 -0
  37. {execweave-0.6.6 → execweave-0.6.7}/README.ko.md +0 -0
  38. {execweave-0.6.6 → execweave-0.6.7}/README.ru.md +0 -0
  39. {execweave-0.6.6 → execweave-0.6.7}/README.zh-CN.md +0 -0
  40. {execweave-0.6.6 → execweave-0.6.7}/README.zh-TW.md +0 -0
  41. {execweave-0.6.6 → execweave-0.6.7}/benchmarks/phase1_overhead.py +0 -0
  42. {execweave-0.6.6 → execweave-0.6.7}/docs/assets/execweave-launch-demo-v5-x.gif +0 -0
  43. {execweave-0.6.6 → execweave-0.6.7}/docs/benchmarks/README.md +0 -0
  44. {execweave-0.6.6 → execweave-0.6.7}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
  45. {execweave-0.6.6 → execweave-0.6.7}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
  46. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.de.md +0 -0
  47. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.fr.md +0 -0
  48. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.ja.md +0 -0
  49. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.ko.md +0 -0
  50. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.md +0 -0
  51. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.ru.md +0 -0
  52. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.zh-CN.md +0 -0
  53. {execweave-0.6.6 → execweave-0.6.7}/docs/claude-code-hooks.zh-TW.md +0 -0
  54. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.de.md +0 -0
  55. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.fr.md +0 -0
  56. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.ja.md +0 -0
  57. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.ko.md +0 -0
  58. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.md +0 -0
  59. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.ru.md +0 -0
  60. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.zh-CN.md +0 -0
  61. {execweave-0.6.6 → execweave-0.6.7}/docs/codex-hooks.zh-TW.md +0 -0
  62. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.de.md +0 -0
  63. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.fr.md +0 -0
  64. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.ja.md +0 -0
  65. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.ko.md +0 -0
  66. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.ru.md +0 -0
  67. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.zh-CN.md +0 -0
  68. {execweave-0.6.6 → execweave-0.6.7}/docs/cursor-hooks.zh-TW.md +0 -0
  69. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.de.md +0 -0
  70. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.fr.md +0 -0
  71. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.ja.md +0 -0
  72. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.ko.md +0 -0
  73. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.md +0 -0
  74. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.ru.md +0 -0
  75. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.zh-CN.md +0 -0
  76. {execweave-0.6.6 → execweave-0.6.7}/docs/evidence-grades.zh-TW.md +0 -0
  77. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.de.md +0 -0
  78. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.fr.md +0 -0
  79. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.ja.md +0 -0
  80. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.ko.md +0 -0
  81. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.md +0 -0
  82. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.ru.md +0 -0
  83. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.zh-CN.md +0 -0
  84. {execweave-0.6.6 → execweave-0.6.7}/docs/gemini-hooks.zh-TW.md +0 -0
  85. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.de.md +0 -0
  86. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.fr.md +0 -0
  87. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.ja.md +0 -0
  88. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.ko.md +0 -0
  89. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.md +0 -0
  90. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.ru.md +0 -0
  91. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.zh-CN.md +0 -0
  92. {execweave-0.6.6 → execweave-0.6.7}/docs/inference-gateway.zh-TW.md +0 -0
  93. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.de.md +0 -0
  94. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.fr.md +0 -0
  95. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.ja.md +0 -0
  96. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.ko.md +0 -0
  97. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.md +0 -0
  98. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.ru.md +0 -0
  99. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.zh-CN.md +0 -0
  100. {execweave-0.6.6 → execweave-0.6.7}/docs/live-graph.zh-TW.md +0 -0
  101. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.de.md +0 -0
  102. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.fr.md +0 -0
  103. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.ja.md +0 -0
  104. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.ko.md +0 -0
  105. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.md +0 -0
  106. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.ru.md +0 -0
  107. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.zh-CN.md +0 -0
  108. {execweave-0.6.6 → execweave-0.6.7}/docs/model-runtime.zh-TW.md +0 -0
  109. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.de.md +0 -0
  110. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.fr.md +0 -0
  111. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.ja.md +0 -0
  112. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.ko.md +0 -0
  113. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.md +0 -0
  114. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.ru.md +0 -0
  115. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.zh-CN.md +0 -0
  116. {execweave-0.6.6 → execweave-0.6.7}/docs/opencode-plugin.zh-TW.md +0 -0
  117. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.de.md +0 -0
  118. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.fr.md +0 -0
  119. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.ja.md +0 -0
  120. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.ko.md +0 -0
  121. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.md +0 -0
  122. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.ru.md +0 -0
  123. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.zh-CN.md +0 -0
  124. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-1-runtime-collection.zh-TW.md +0 -0
  125. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.de.md +0 -0
  126. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.fr.md +0 -0
  127. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.ja.md +0 -0
  128. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.ko.md +0 -0
  129. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.md +0 -0
  130. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.ru.md +0 -0
  131. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.zh-CN.md +0 -0
  132. {execweave-0.6.6 → execweave-0.6.7}/docs/phase-2-execution-graph.zh-TW.md +0 -0
  133. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.de.md +0 -0
  134. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.fr.md +0 -0
  135. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.ja.md +0 -0
  136. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.ko.md +0 -0
  137. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.md +0 -0
  138. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.ru.md +0 -0
  139. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.zh-CN.md +0 -0
  140. {execweave-0.6.6 → execweave-0.6.7}/docs/rule-packs.zh-TW.md +0 -0
  141. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.de.md +0 -0
  142. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.fr.md +0 -0
  143. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.ja.md +0 -0
  144. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.ko.md +0 -0
  145. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.md +0 -0
  146. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.ru.md +0 -0
  147. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.zh-CN.md +0 -0
  148. {execweave-0.6.6 → execweave-0.6.7}/docs/run-integrity.zh-TW.md +0 -0
  149. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.de.md +0 -0
  150. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.fr.md +0 -0
  151. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.ja.md +0 -0
  152. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.ko.md +0 -0
  153. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.md +0 -0
  154. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.ru.md +0 -0
  155. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.zh-CN.md +0 -0
  156. {execweave-0.6.6 → execweave-0.6.7}/docs/runtime-threat-model.zh-TW.md +0 -0
  157. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.de.md +0 -0
  158. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.fr.md +0 -0
  159. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.ja.md +0 -0
  160. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.ko.md +0 -0
  161. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.md +0 -0
  162. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.ru.md +0 -0
  163. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.zh-CN.md +0 -0
  164. {execweave-0.6.6 → execweave-0.6.7}/docs/security-analysis.zh-TW.md +0 -0
  165. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.de.md +0 -0
  166. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.fr.md +0 -0
  167. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.ja.md +0 -0
  168. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.ko.md +0 -0
  169. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.md +0 -0
  170. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.ru.md +0 -0
  171. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.zh-CN.md +0 -0
  172. {execweave-0.6.6 → execweave-0.6.7}/docs/semantic-telemetry.zh-TW.md +0 -0
  173. {execweave-0.6.6 → execweave-0.6.7}/docs/v0.6.5-hardening-decisions.md +0 -0
  174. {execweave-0.6.6 → execweave-0.6.7}/scripts/audit_i18n_parity.py +0 -0
  175. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_claude_hook.py +0 -0
  176. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_claude_record_graph.py +0 -0
  177. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_codex_hook.py +0 -0
  178. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_correlation_graph.py +0 -0
  179. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_inference_gateway_cli.py +0 -0
  180. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_model_runtime_cli.py +0 -0
  181. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_openai_compatible_cli.py +0 -0
  182. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_semantic_graph.py +0 -0
  183. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_viewer_js.py +0 -0
  184. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_wheel_install.py +0 -0
  185. {execweave-0.6.6 → execweave-0.6.7}/scripts/check_windows_launchers.py +0 -0
  186. {execweave-0.6.6 → execweave-0.6.7}/scripts/emit_claude_hook_smoke.py +0 -0
  187. {execweave-0.6.6 → execweave-0.6.7}/scripts/emit_cursor_hook_smoke.py +0 -0
  188. {execweave-0.6.6 → execweave-0.6.7}/scripts/emit_gemini_hook_smoke.py +0 -0
  189. {execweave-0.6.6 → execweave-0.6.7}/scripts/emit_opencode_plugin_smoke.py +0 -0
  190. {execweave-0.6.6 → execweave-0.6.7}/scripts/make_semantic_smoke.py +0 -0
  191. {execweave-0.6.6 → execweave-0.6.7}/scripts/sync_i18n_nav.py +0 -0
  192. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/__main__.py +0 -0
  193. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/analysis.py +0 -0
  194. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/anthropic.py +0 -0
  195. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/anthropic_cli.py +0 -0
  196. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/anthropic_full_fidelity.py +0 -0
  197. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/auto_specialized.py +0 -0
  198. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/backends.py +0 -0
  199. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/benchmark.py +0 -0
  200. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/claude_adapter.py +0 -0
  201. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/claude_full_fidelity.py +0 -0
  202. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/claude_hook_cli.py +0 -0
  203. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/claude_model_observer.py +0 -0
  204. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/claude_record.py +0 -0
  205. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/cli.py +0 -0
  206. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/codex_adapter.py +0 -0
  207. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/codex_full_fidelity.py +0 -0
  208. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/codex_hook_cli.py +0 -0
  209. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/codex_record.py +0 -0
  210. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/content_evidence.py +0 -0
  211. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/content_store.py +0 -0
  212. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/correlation.py +0 -0
  213. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/cursor_adapter.py +0 -0
  214. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/cursor_full_fidelity.py +0 -0
  215. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/cursor_hook_cli.py +0 -0
  216. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/cursor_record.py +0 -0
  217. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/entry.py +0 -0
  218. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/evidence_grade.py +0 -0
  219. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/fidelity.py +0 -0
  220. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/filesystem.py +0 -0
  221. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/focus.py +0 -0
  222. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/gemini_adapter.py +0 -0
  223. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/gemini_full_fidelity.py +0 -0
  224. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/gemini_hook_cli.py +0 -0
  225. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/gemini_record.py +0 -0
  226. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/graph.py +0 -0
  227. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/graph_ops.py +0 -0
  228. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/http_proxy.py +0 -0
  229. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/http_proxy_cli.py +0 -0
  230. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/inference_gateway.py +0 -0
  231. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/inference_gateway_cli.py +0 -0
  232. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/inference_gateway_full_fidelity.py +0 -0
  233. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/inference_identity.py +0 -0
  234. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/inference_identity_cli.py +0 -0
  235. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/integrity.py +0 -0
  236. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/integrity_cli.py +0 -0
  237. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/litellm_callback.py +0 -0
  238. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/litellm_callback_cli.py +0 -0
  239. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_core.py +0 -0
  240. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view.py +0 -0
  241. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view_markup.py +0 -0
  242. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view_script_a.py +0 -0
  243. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view_script_d.py +0 -0
  244. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/live_view_style.py +0 -0
  245. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/model_runtime.py +0 -0
  246. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/model_runtime_cli.py +0 -0
  247. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/model_runtime_full_fidelity.py +0 -0
  248. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/openai_compatible.py +0 -0
  249. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/openai_compatible_cli.py +0 -0
  250. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/openai_compatible_full_fidelity.py +0 -0
  251. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/opencode_adapter.py +0 -0
  252. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/opencode_full_fidelity.py +0 -0
  253. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/opencode_hook_cli.py +0 -0
  254. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/opencode_plugin_cli.py +0 -0
  255. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/opencode_record.py +0 -0
  256. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/overhead_benchmark.py +0 -0
  257. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/provider_lifecycle.py +0 -0
  258. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/rule_pack.py +0 -0
  259. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/rule_pack_cli.py +0 -0
  260. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/scalability_benchmark.py +0 -0
  261. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/schema.py +0 -0
  262. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/scope.py +0 -0
  263. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/semantic.py +0 -0
  264. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/sink.py +0 -0
  265. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/strace_backend.py +0 -0
  266. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/theme.py +0 -0
  267. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/top.py +0 -0
  268. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/top_cli.py +0 -0
  269. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/validate.py +0 -0
  270. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/view_cli.py +0 -0
  271. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/viewer.py +0 -0
  272. {execweave-0.6.6 → execweave-0.6.7}/src/execweave/viewer_content_inspector.py +0 -0
  273. {execweave-0.6.6 → execweave-0.6.7}/tests/fixtures/hooks/README.md +0 -0
  274. {execweave-0.6.6 → execweave-0.6.7}/tests/fixtures/hooks/claude.json +0 -0
  275. {execweave-0.6.6 → execweave-0.6.7}/tests/fixtures/hooks/codex.json +0 -0
  276. {execweave-0.6.6 → execweave-0.6.7}/tests/fixtures/hooks/cursor.json +0 -0
  277. {execweave-0.6.6 → execweave-0.6.7}/tests/fixtures/hooks/gemini.json +0 -0
  278. {execweave-0.6.6 → execweave-0.6.7}/tests/fixtures/hooks/manifest.json +0 -0
  279. {execweave-0.6.6 → execweave-0.6.7}/tests/fixtures/hooks/opencode.json +0 -0
  280. {execweave-0.6.6 → execweave-0.6.7}/tests/test_agent_bootstrap.py +0 -0
  281. {execweave-0.6.6 → execweave-0.6.7}/tests/test_analysis.py +0 -0
  282. {execweave-0.6.6 → execweave-0.6.7}/tests/test_anthropic.py +0 -0
  283. {execweave-0.6.6 → execweave-0.6.7}/tests/test_auto_specialized.py +0 -0
  284. {execweave-0.6.6 → execweave-0.6.7}/tests/test_backends.py +0 -0
  285. {execweave-0.6.6 → execweave-0.6.7}/tests/test_claude_adapter.py +0 -0
  286. {execweave-0.6.6 → execweave-0.6.7}/tests/test_claude_full_fidelity.py +0 -0
  287. {execweave-0.6.6 → execweave-0.6.7}/tests/test_claude_model_observer.py +0 -0
  288. {execweave-0.6.6 → execweave-0.6.7}/tests/test_claude_record.py +0 -0
  289. {execweave-0.6.6 → execweave-0.6.7}/tests/test_codex_adapter.py +0 -0
  290. {execweave-0.6.6 → execweave-0.6.7}/tests/test_codex_full_fidelity.py +0 -0
  291. {execweave-0.6.6 → execweave-0.6.7}/tests/test_codex_record.py +0 -0
  292. {execweave-0.6.6 → execweave-0.6.7}/tests/test_collector.py +0 -0
  293. {execweave-0.6.6 → execweave-0.6.7}/tests/test_command.py +0 -0
  294. {execweave-0.6.6 → execweave-0.6.7}/tests/test_condense.py +0 -0
  295. {execweave-0.6.6 → execweave-0.6.7}/tests/test_correlation.py +0 -0
  296. {execweave-0.6.6 → execweave-0.6.7}/tests/test_correlation_canonical_path.py +0 -0
  297. {execweave-0.6.6 → execweave-0.6.7}/tests/test_correlation_checker.py +0 -0
  298. {execweave-0.6.6 → execweave-0.6.7}/tests/test_correlation_process_exe.py +0 -0
  299. {execweave-0.6.6 → execweave-0.6.7}/tests/test_cursor_adapter.py +0 -0
  300. {execweave-0.6.6 → execweave-0.6.7}/tests/test_cursor_full_fidelity.py +0 -0
  301. {execweave-0.6.6 → execweave-0.6.7}/tests/test_cursor_record.py +0 -0
  302. {execweave-0.6.6 → execweave-0.6.7}/tests/test_evidence_grade.py +0 -0
  303. {execweave-0.6.6 → execweave-0.6.7}/tests/test_fidelity.py +0 -0
  304. {execweave-0.6.6 → execweave-0.6.7}/tests/test_filesystem_resilience.py +0 -0
  305. {execweave-0.6.6 → execweave-0.6.7}/tests/test_focus.py +0 -0
  306. {execweave-0.6.6 → execweave-0.6.7}/tests/test_full_fidelity.py +0 -0
  307. {execweave-0.6.6 → execweave-0.6.7}/tests/test_gemini_adapter.py +0 -0
  308. {execweave-0.6.6 → execweave-0.6.7}/tests/test_gemini_full_fidelity.py +0 -0
  309. {execweave-0.6.6 → execweave-0.6.7}/tests/test_gemini_record.py +0 -0
  310. {execweave-0.6.6 → execweave-0.6.7}/tests/test_graph.py +0 -0
  311. {execweave-0.6.6 → execweave-0.6.7}/tests/test_graph_ops.py +0 -0
  312. {execweave-0.6.6 → execweave-0.6.7}/tests/test_hook_fixture_corpus.py +0 -0
  313. {execweave-0.6.6 → execweave-0.6.7}/tests/test_http_proxy.py +0 -0
  314. {execweave-0.6.6 → execweave-0.6.7}/tests/test_inference_gateway.py +0 -0
  315. {execweave-0.6.6 → execweave-0.6.7}/tests/test_inference_gateway_full_fidelity.py +0 -0
  316. {execweave-0.6.6 → execweave-0.6.7}/tests/test_inference_identity.py +0 -0
  317. {execweave-0.6.6 → execweave-0.6.7}/tests/test_integrity.py +0 -0
  318. {execweave-0.6.6 → execweave-0.6.7}/tests/test_litellm_callback.py +0 -0
  319. {execweave-0.6.6 → execweave-0.6.7}/tests/test_live.py +0 -0
  320. {execweave-0.6.6 → execweave-0.6.7}/tests/test_live_auth.py +0 -0
  321. {execweave-0.6.6 → execweave-0.6.7}/tests/test_live_dashboard.py +0 -0
  322. {execweave-0.6.6 → execweave-0.6.7}/tests/test_live_dashboard_js.py +0 -0
  323. {execweave-0.6.6 → execweave-0.6.7}/tests/test_live_delta.py +0 -0
  324. {execweave-0.6.6 → execweave-0.6.7}/tests/test_live_logs_export.py +0 -0
  325. {execweave-0.6.6 → execweave-0.6.7}/tests/test_live_theme.py +0 -0
  326. {execweave-0.6.6 → execweave-0.6.7}/tests/test_lmstudio_auto_specialized.py +0 -0
  327. {execweave-0.6.6 → execweave-0.6.7}/tests/test_model_runtime.py +0 -0
  328. {execweave-0.6.6 → execweave-0.6.7}/tests/test_model_runtime_full_fidelity.py +0 -0
  329. {execweave-0.6.6 → execweave-0.6.7}/tests/test_openai_compatible.py +0 -0
  330. {execweave-0.6.6 → execweave-0.6.7}/tests/test_opencode_adapter.py +0 -0
  331. {execweave-0.6.6 → execweave-0.6.7}/tests/test_opencode_full_fidelity.py +0 -0
  332. {execweave-0.6.6 → execweave-0.6.7}/tests/test_opencode_plugin.py +0 -0
  333. {execweave-0.6.6 → execweave-0.6.7}/tests/test_opencode_record.py +0 -0
  334. {execweave-0.6.6 → execweave-0.6.7}/tests/test_overhead_benchmark.py +0 -0
  335. {execweave-0.6.6 → execweave-0.6.7}/tests/test_provider_lifecycle.py +0 -0
  336. {execweave-0.6.6 → execweave-0.6.7}/tests/test_rule_pack.py +0 -0
  337. {execweave-0.6.6 → execweave-0.6.7}/tests/test_schema.py +0 -0
  338. {execweave-0.6.6 → execweave-0.6.7}/tests/test_scope.py +0 -0
  339. {execweave-0.6.6 → execweave-0.6.7}/tests/test_semantic.py +0 -0
  340. {execweave-0.6.6 → execweave-0.6.7}/tests/test_strace_backend.py +0 -0
  341. {execweave-0.6.6 → execweave-0.6.7}/tests/test_threat_model.py +0 -0
  342. {execweave-0.6.6 → execweave-0.6.7}/tests/test_top_detached.py +0 -0
  343. {execweave-0.6.6 → execweave-0.6.7}/tests/test_v063_features.py +0 -0
  344. {execweave-0.6.6 → execweave-0.6.7}/tests/test_v064_live_auto_integrations.py +0 -0
  345. {execweave-0.6.6 → execweave-0.6.7}/tests/test_v064_live_evidence.py +0 -0
  346. {execweave-0.6.6 → execweave-0.6.7}/tests/test_validate.py +0 -0
  347. {execweave-0.6.6 → execweave-0.6.7}/tests/test_version.py +0 -0
  348. {execweave-0.6.6 → execweave-0.6.7}/tests/test_viewer.py +0 -0
  349. {execweave-0.6.6 → execweave-0.6.7}/tests/test_viewer_content_inspector.py +0 -0
  350. {execweave-0.6.6 → execweave-0.6.7}/tests/test_viewer_projection.py +0 -0
  351. {execweave-0.6.6 → execweave-0.6.7}/tests/test_workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: execweave
3
- Version: 0.6.6
3
+ Version: 0.6.7
4
4
  Summary: Turn AI-agent runtime behavior into a local interactive execution graph.
5
5
  Project-URL: Homepage, https://github.com/Irish-kw/ExecWeave
6
6
  Project-URL: Repository, https://github.com/Irish-kw/ExecWeave
@@ -87,7 +87,7 @@ Install the latest published wheel/sdist from PyPI:
87
87
  python -m pip install -U execweave
88
88
  ```
89
89
 
90
- The package version on `main` is currently **v0.6.5**. The published release may lag main; test the exact mainline build with:
90
+ The package version on `main` is currently **v0.6.6**. The published release may lag main; test the exact mainline build with:
91
91
 
92
92
  ```bash
93
93
  python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
@@ -108,13 +108,17 @@ Live OS-runtime telemetry works with **any local command**. Agent/runtime names
108
108
  ```bash
109
109
  execweave live --open -- claude
110
110
  execweave live --open -- codex
111
- execweave live --open -- gemini
111
+ execweave live --open -- antigravity
112
112
  execweave live --open -- cursor
113
113
  execweave live --open -- opencode
114
114
  execweave live --open -- ollama serve
115
115
  execweave live --open -- python my_agent.py
116
116
  ```
117
117
 
118
+ > **Approve the hook when prompted.** On the first provider-integrated run, the Agent/IDE may ask whether ExecWeave is allowed to enable its local hook integration. Choose **Allow / Yes**. If the hook is not approved, OS-runtime telemetry can still work, but provider-level tool, model, and supplied-content observability will be reduced or unavailable.
119
+
120
+ Google Antigravity uses the current `agy` CLI command; ExecWeave also accepts `antigravity` as a friendly alias and resolves it to `agy`. For Cursor, `execweave live --open -- cursor` first uses a normal PATH launcher when one exists, then falls back to the standard Cursor desktop application binary on macOS and Windows.
121
+
118
122
  Or build the finalized artifact pipeline:
119
123
 
120
124
  ```bash
@@ -143,7 +147,7 @@ Full fidelity also changes the privacy boundary: application-level secrets embed
143
147
  | --- | --- | --- |
144
148
  | Claude Code | Yes | native hooks + full-fidelity supplied hook content |
145
149
  | OpenAI Codex | Yes | lifecycle hooks + full-fidelity supplied hook content |
146
- | Gemini CLI | Yes | native hooks + full-fidelity supplied hook content |
150
+ | Google Antigravity / Antigravity CLI | Yes | passive native hooks for invocation/tool evidence + full-fidelity values explicitly supplied to those hooks |
147
151
  | Cursor | Yes | native hooks + full-fidelity supplied hook content |
148
152
  | OpenCode | Yes | project plugin + full-fidelity supplied plugin content |
149
153
  | Ollama | Yes | `execweave-model-runtime event/exchange/probe --runtime ollama` |
@@ -193,8 +197,8 @@ execweave-claude-record --open -- claude
193
197
  execweave-codex-hook --print-config
194
198
  execweave-codex-record --open -- codex
195
199
 
196
- execweave-gemini-hook --print-config
197
- execweave-gemini-record --open -- gemini
200
+ execweave-antigravity-hook --print-config
201
+ execweave-antigravity-record --open -- antigravity
198
202
 
199
203
  execweave-cursor-hook --print-config
200
204
  execweave-cursor-record --open -- cursor
@@ -203,7 +207,7 @@ execweave-opencode-plugin --install
203
207
  execweave-opencode-record --open -- opencode
204
208
  ```
205
209
 
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.
210
+ 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`).
207
211
 
208
212
  ## Inference gateways and model runtimes
209
213
 
@@ -274,6 +278,7 @@ execweave doctor
274
278
  execweave run --backend portable -- your-command
275
279
  execweave run --backend strace -- your-command
276
280
  execweave graph-summary run.graph.json
281
+ execweave graph-filter run.graph.json --causal-only --output causal.graph.json
277
282
  execweave graph-focus run.graph.json NODE_ID --hops 2 --output focused.graph.json
278
283
  execweave path run.graph.json SOURCE TARGET --causal-only
279
284
  ```
@@ -325,7 +330,7 @@ Do not assume content has been secret-redacted. Commands, paths, endpoint metada
325
330
 
326
331
  ## Current status
327
332
 
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.
333
+ ExecWeave `main` is currently **v0.6.6** 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
334
 
330
335
  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
336
 
@@ -337,7 +342,7 @@ v0.6.5 combines cross-platform runtime collection, materialized execution graphs
337
342
  - [`Semantic Telemetry`](docs/semantic-telemetry.md)
338
343
  - [`Claude Code Hooks`](docs/claude-code-hooks.md)
339
344
  - [`OpenAI Codex Hooks`](docs/codex-hooks.md)
340
- - [`Gemini CLI Hooks`](docs/gemini-hooks.md)
345
+ - [`Google Antigravity Hooks`](docs/antigravity-hooks.md)
341
346
  - [`Cursor Hooks`](docs/cursor-hooks.md)
342
347
  - [`OpenCode Plugin`](docs/opencode-plugin.md)
343
348
  - [`Inference Gateway / OpenRouter / LiteLLM`](docs/inference-gateway.md)
@@ -31,7 +31,7 @@ Install the latest published wheel/sdist from PyPI:
31
31
  python -m pip install -U execweave
32
32
  ```
33
33
 
34
- The package version on `main` is currently **v0.6.5**. The published release may lag main; test the exact mainline build with:
34
+ The package version on `main` is currently **v0.6.6**. The published release may lag main; test the exact mainline build with:
35
35
 
36
36
  ```bash
37
37
  python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
@@ -52,13 +52,17 @@ Live OS-runtime telemetry works with **any local command**. Agent/runtime names
52
52
  ```bash
53
53
  execweave live --open -- claude
54
54
  execweave live --open -- codex
55
- execweave live --open -- gemini
55
+ execweave live --open -- antigravity
56
56
  execweave live --open -- cursor
57
57
  execweave live --open -- opencode
58
58
  execweave live --open -- ollama serve
59
59
  execweave live --open -- python my_agent.py
60
60
  ```
61
61
 
62
+ > **Approve the hook when prompted.** On the first provider-integrated run, the Agent/IDE may ask whether ExecWeave is allowed to enable its local hook integration. Choose **Allow / Yes**. If the hook is not approved, OS-runtime telemetry can still work, but provider-level tool, model, and supplied-content observability will be reduced or unavailable.
63
+
64
+ Google Antigravity uses the current `agy` CLI command; ExecWeave also accepts `antigravity` as a friendly alias and resolves it to `agy`. For Cursor, `execweave live --open -- cursor` first uses a normal PATH launcher when one exists, then falls back to the standard Cursor desktop application binary on macOS and Windows.
65
+
62
66
  Or build the finalized artifact pipeline:
63
67
 
64
68
  ```bash
@@ -87,7 +91,7 @@ Full fidelity also changes the privacy boundary: application-level secrets embed
87
91
  | --- | --- | --- |
88
92
  | Claude Code | Yes | native hooks + full-fidelity supplied hook content |
89
93
  | OpenAI Codex | Yes | lifecycle hooks + full-fidelity supplied hook content |
90
- | Gemini CLI | Yes | native hooks + full-fidelity supplied hook content |
94
+ | Google Antigravity / Antigravity CLI | Yes | passive native hooks for invocation/tool evidence + full-fidelity values explicitly supplied to those hooks |
91
95
  | Cursor | Yes | native hooks + full-fidelity supplied hook content |
92
96
  | OpenCode | Yes | project plugin + full-fidelity supplied plugin content |
93
97
  | Ollama | Yes | `execweave-model-runtime event/exchange/probe --runtime ollama` |
@@ -137,8 +141,8 @@ execweave-claude-record --open -- claude
137
141
  execweave-codex-hook --print-config
138
142
  execweave-codex-record --open -- codex
139
143
 
140
- execweave-gemini-hook --print-config
141
- execweave-gemini-record --open -- gemini
144
+ execweave-antigravity-hook --print-config
145
+ execweave-antigravity-record --open -- antigravity
142
146
 
143
147
  execweave-cursor-hook --print-config
144
148
  execweave-cursor-record --open -- cursor
@@ -147,7 +151,7 @@ execweave-opencode-plugin --install
147
151
  execweave-opencode-record --open -- opencode
148
152
  ```
149
153
 
150
- 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.
154
+ 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`).
151
155
 
152
156
  ## Inference gateways and model runtimes
153
157
 
@@ -218,6 +222,7 @@ execweave doctor
218
222
  execweave run --backend portable -- your-command
219
223
  execweave run --backend strace -- your-command
220
224
  execweave graph-summary run.graph.json
225
+ execweave graph-filter run.graph.json --causal-only --output causal.graph.json
221
226
  execweave graph-focus run.graph.json NODE_ID --hops 2 --output focused.graph.json
222
227
  execweave path run.graph.json SOURCE TARGET --causal-only
223
228
  ```
@@ -269,7 +274,7 @@ Do not assume content has been secret-redacted. Commands, paths, endpoint metada
269
274
 
270
275
  ## Current status
271
276
 
272
- 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.
277
+ ExecWeave `main` is currently **v0.6.6** 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.
273
278
 
274
279
  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.
275
280
 
@@ -281,7 +286,7 @@ v0.6.5 combines cross-platform runtime collection, materialized execution graphs
281
286
  - [`Semantic Telemetry`](docs/semantic-telemetry.md)
282
287
  - [`Claude Code Hooks`](docs/claude-code-hooks.md)
283
288
  - [`OpenAI Codex Hooks`](docs/codex-hooks.md)
284
- - [`Gemini CLI Hooks`](docs/gemini-hooks.md)
289
+ - [`Google Antigravity Hooks`](docs/antigravity-hooks.md)
285
290
  - [`Cursor Hooks`](docs/cursor-hooks.md)
286
291
  - [`OpenCode Plugin`](docs/opencode-plugin.md)
287
292
  - [`Inference Gateway / OpenRouter / LiteLLM`](docs/inference-gateway.md)
@@ -0,0 +1,55 @@
1
+ # Google Antigravity hooks
2
+
3
+ ExecWeave supports the current Google Antigravity CLI through its native hooks and OS-runtime collection. The Antigravity CLI executable is `agy`.
4
+
5
+ ```bash
6
+ execweave live --open -- antigravity
7
+ # ExecWeave resolves this friendly name to the official `agy` CLI binary.
8
+ ```
9
+
10
+ On the first provider-integrated run, Antigravity may ask whether the ExecWeave hook should be allowed. Choose **Allow / Yes** if you want provider-level tool and invocation evidence in addition to OS-runtime telemetry.
11
+
12
+ ## Automatic bootstrap
13
+
14
+ For `agy` / `antigravity`, ExecWeave conservatively merges one named hook definition into:
15
+
16
+ ```text
17
+ ~/.gemini/config/hooks.json
18
+ ```
19
+
20
+ The generated configuration can be inspected without writing it:
21
+
22
+ ```bash
23
+ execweave-antigravity-hook --print-config
24
+ ```
25
+
26
+ ExecWeave deliberately uses passive observation points:
27
+
28
+ - `PostToolUse` for tool-call/result evidence.
29
+ - `PreInvocation` and `PostInvocation` for invocation lifecycle metadata.
30
+ - **No `PreToolUse` hook is installed**, because that hook participates in Antigravity's permission decision and ExecWeave must not approve, deny, or alter a user's tool permission flow.
31
+
32
+ Existing unrelated named hooks are preserved. ExecWeave refuses to replace an existing hook definition with the same name rather than silently overwriting it.
33
+
34
+ ## Layered recorder
35
+
36
+ ```bash
37
+ execweave-antigravity-record --open -- antigravity
38
+ ```
39
+
40
+ The recorder keeps runtime evidence, Antigravity semantic evidence, and derived correlation artifacts separate. Normal `execweave live --open -- antigravity` also auto-bootstraps the hook integration and exposes the live graph.
41
+
42
+ ## Evidence scope
43
+
44
+ Current Antigravity hook evidence is intentionally bounded to values actually supplied by the hook contract. ExecWeave can record:
45
+
46
+ - invocation lifecycle metadata exposed by `PreInvocation` / `PostInvocation`;
47
+ - tool identity, arguments, result/error status exposed by `PostToolUse`;
48
+ - declared command or file targets when those fields are present in the supplied tool arguments;
49
+ - complete hook-supplied values in the local content-addressed store where supported.
50
+
51
+ This does **not** claim access to hidden model state, private chain-of-thought, an unseen provider-side request, or any content not delivered to the hook. OS-runtime evidence remains a separate layer.
52
+
53
+ ## Legacy Gemini CLI
54
+
55
+ The older `execweave-gemini-*` entry points remain available for compatibility with existing installations and archived workflows. They are not the current Google CLI path documented by ExecWeave; new usage should target Antigravity with `agy`.
@@ -22,6 +22,10 @@ execweave-cursor-hook --print-config
22
22
  execweave-cursor-record --open -- cursor
23
23
  ```
24
24
 
25
+ `cursor` does not have to be a shell-installed CLI launcher. ExecWeave first uses a normal PATH launcher when one exists; if it does not, macOS and Windows fall back to the standard Cursor desktop application binary. This also applies to `execweave live --open -- cursor`.
26
+
27
+ If Cursor asks whether to allow the ExecWeave hook integration, choose **Allow / Yes** to enable provider-level tool/content evidence. OS-runtime observation can still operate without provider hook approval, but specialized evidence will be reduced or unavailable.
28
+
25
29
  The run-bound recorder keeps runtime, semantic, and correlated artifacts separate.
26
30
 
27
31
  ## Observation surface
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "execweave"
7
- version = "0.6.6"
7
+ version = "0.6.7"
8
8
  description = "Turn AI-agent runtime behavior into a local interactive execution graph."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -63,6 +63,9 @@ execweave-claude-hook = "execweave.claude_hook_cli:main"
63
63
  execweave-claude-record = "execweave.claude_record:main"
64
64
  execweave-codex-hook = "execweave.codex_hook_cli:main"
65
65
  execweave-codex-record = "execweave.codex_record:main"
66
+ execweave-antigravity-hook = "execweave.antigravity_hook_cli:main"
67
+ execweave-antigravity-record = "execweave.antigravity_record:main"
68
+ # Legacy Gemini CLI entry points remain for compatibility with existing installs.
66
69
  execweave-gemini-hook = "execweave.gemini_hook_cli:main"
67
70
  execweave-gemini-record = "execweave.gemini_record:main"
68
71
  execweave-cursor-hook = "execweave.cursor_hook_cli:main"
@@ -1,3 +1,3 @@
1
1
  """ExecWeave runtime graph package."""
2
2
 
3
- __version__ = "0.6.6"
3
+ __version__ = "0.6.7"
@@ -10,7 +10,16 @@ from typing import Any, Mapping
10
10
 
11
11
  _AUTO_FLAG = "--auto"
12
12
  _CONFIG_RETRIES = 3
13
- _SUPPORTED_AGENTS = {"claude", "codex", "gemini", "cursor", "opencode"}
13
+ _SUPPORTED_AGENTS = {
14
+ "claude": "claude",
15
+ "codex": "codex",
16
+ "agy": "antigravity",
17
+ "antigravity": "antigravity",
18
+ "cursor": "cursor",
19
+ "opencode": "opencode",
20
+ # Legacy compatibility only. Gemini CLI is no longer advertised as current.
21
+ "gemini": "gemini",
22
+ }
14
23
 
15
24
 
16
25
  @dataclass(frozen=True)
@@ -36,8 +45,7 @@ def _command_name(value: str) -> str:
36
45
  def supported_agent(command: list[str]) -> str | None:
37
46
  if not command:
38
47
  return None
39
- name = _command_name(command[0])
40
- return name if name in _SUPPORTED_AGENTS else None
48
+ return _SUPPORTED_AGENTS.get(_command_name(command[0]))
41
49
 
42
50
 
43
51
  def _bounded_detail(value: object, limit: int = 240) -> str:
@@ -121,6 +129,25 @@ def _merge_hook_fragment(
121
129
  return merged, changed
122
130
 
123
131
 
132
+ def _merge_named_hook_fragment(
133
+ current: dict[str, Any],
134
+ fragment: dict[str, Any],
135
+ *,
136
+ marker: str,
137
+ ) -> tuple[dict[str, Any], bool]:
138
+ """Merge Antigravity's named-hook ``hooks.json`` schema conservatively."""
139
+ merged = deepcopy(current)
140
+ if _contains_execweave_command(merged, marker):
141
+ return merged, False
142
+ for name, definition in fragment.items():
143
+ if name in merged:
144
+ raise FileExistsError(
145
+ f"refusing to replace existing Antigravity hook definition: {name}"
146
+ )
147
+ merged[name] = deepcopy(definition)
148
+ return merged, bool(fragment)
149
+
150
+
124
151
  def _write_bytes_optimistic(path: Path, original: bytes | None, payload: bytes) -> bool:
125
152
  path.parent.mkdir(parents=True, exist_ok=True)
126
153
  current = _read_bytes(path)
@@ -166,6 +193,21 @@ def _merge_json_file(path: Path, fragment: dict[str, Any], *, marker: str) -> bo
166
193
  raise RuntimeError(f"configuration changed concurrently while updating {path}")
167
194
 
168
195
 
196
+ def _merge_named_hook_file(path: Path, fragment: dict[str, Any], *, marker: str) -> bool:
197
+ for _ in range(_CONFIG_RETRIES):
198
+ original = _read_bytes(path)
199
+ current = _load_json_object(original or b"", path=path)
200
+ merged, changed = _merge_named_hook_fragment(current, fragment, marker=marker)
201
+ if not changed:
202
+ return False
203
+ encoded = (
204
+ json.dumps(merged, ensure_ascii=False, indent=2, sort_keys=True) + "\n"
205
+ ).encode("utf-8")
206
+ if _write_bytes_optimistic(path, original, encoded):
207
+ return True
208
+ raise RuntimeError(f"configuration changed concurrently while updating {path}")
209
+
210
+
169
211
  def _write_plugin_file(path: Path, content: str, *, marker: str) -> bool:
170
212
  encoded = content.encode("utf-8")
171
213
  for _ in range(_CONFIG_RETRIES):
@@ -200,6 +242,8 @@ def _provider_target(
200
242
  if provider == "codex":
201
243
  root = _config_dir_from_env(environment, "CODEX_HOME") or home / ".codex"
202
244
  return root / "hooks.json"
245
+ if provider == "antigravity":
246
+ return home / ".gemini" / "config" / "hooks.json"
203
247
  if provider == "gemini":
204
248
  return home / ".gemini" / "settings.json"
205
249
  if provider == "cursor":
@@ -219,6 +263,10 @@ def _provider_fragment(provider: str) -> tuple[dict[str, Any], str]:
219
263
  from .codex_hook_cli import codex_hook_config
220
264
 
221
265
  return codex_hook_config(f"execweave-codex-hook {_AUTO_FLAG}"), "execweave-codex-hook"
266
+ if provider == "antigravity":
267
+ from .antigravity_hook_cli import antigravity_hook_config
268
+
269
+ return antigravity_hook_config(), "execweave-antigravity-hook"
222
270
  if provider == "gemini":
223
271
  from .gemini_hook_cli import gemini_hook_config
224
272
 
@@ -257,7 +305,11 @@ def bootstrap_supported_agent(
257
305
  changed = _write_plugin_file(target, content, marker="execweave-opencode-hook")
258
306
  else:
259
307
  fragment, marker = _provider_fragment(provider)
260
- changed = _merge_json_file(target, fragment, marker=marker)
308
+ changed = (
309
+ _merge_named_hook_file(target, fragment, marker=marker)
310
+ if provider == "antigravity"
311
+ else _merge_json_file(target, fragment, marker=marker)
312
+ )
261
313
 
262
314
  if provider == "claude":
263
315
  raw = _read_bytes(target)