execweave 0.6.1__tar.gz → 0.6.3__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 (249) hide show
  1. execweave-0.6.3/.github/workflows/i18n.yml +34 -0
  2. execweave-0.6.3/.github/workflows/package-smoke.yml +42 -0
  3. {execweave-0.6.1 → execweave-0.6.3}/.github/workflows/publish.yml +1 -1
  4. execweave-0.6.3/.github/workflows/scalability.yml +54 -0
  5. execweave-0.6.3/.github/workflows/wheel-smoke.yml +34 -0
  6. {execweave-0.6.1 → execweave-0.6.3}/PKG-INFO +94 -12
  7. execweave-0.6.3/README.de.md +388 -0
  8. execweave-0.6.3/README.fr.md +388 -0
  9. execweave-0.6.3/README.ja.md +238 -0
  10. execweave-0.6.3/README.ko.md +238 -0
  11. {execweave-0.6.1 → execweave-0.6.3}/README.md +93 -11
  12. execweave-0.6.3/README.ru.md +388 -0
  13. execweave-0.6.3/README.zh-CN.md +238 -0
  14. execweave-0.6.3/README.zh-TW.md +292 -0
  15. execweave-0.6.3/docs/assets/execweave-viewer.png +0 -0
  16. execweave-0.6.3/docs/claude-code-hooks.de.md +275 -0
  17. execweave-0.6.3/docs/claude-code-hooks.fr.md +275 -0
  18. {execweave-0.6.1 → execweave-0.6.3}/docs/claude-code-hooks.ja.md +4 -1
  19. {execweave-0.6.1 → execweave-0.6.3}/docs/claude-code-hooks.ko.md +4 -1
  20. {execweave-0.6.1 → execweave-0.6.3}/docs/claude-code-hooks.md +4 -1
  21. execweave-0.6.3/docs/claude-code-hooks.ru.md +275 -0
  22. {execweave-0.6.1 → execweave-0.6.3}/docs/claude-code-hooks.zh-CN.md +4 -1
  23. execweave-0.6.3/docs/claude-code-hooks.zh-TW.md +273 -0
  24. execweave-0.6.3/docs/codex-hooks.de.md +182 -0
  25. execweave-0.6.3/docs/codex-hooks.fr.md +182 -0
  26. execweave-0.6.3/docs/codex-hooks.ja.md +182 -0
  27. execweave-0.6.3/docs/codex-hooks.ko.md +180 -0
  28. {execweave-0.6.1 → execweave-0.6.3}/docs/codex-hooks.md +4 -1
  29. execweave-0.6.3/docs/codex-hooks.ru.md +182 -0
  30. {execweave-0.6.1 → execweave-0.6.3}/docs/codex-hooks.zh-CN.md +4 -1
  31. {execweave-0.6.1 → execweave-0.6.3}/docs/codex-hooks.zh-TW.md +4 -1
  32. execweave-0.6.3/docs/cursor-hooks.de.md +85 -0
  33. execweave-0.6.3/docs/cursor-hooks.fr.md +85 -0
  34. {execweave-0.6.1 → execweave-0.6.3}/docs/cursor-hooks.ja.md +6 -1
  35. {execweave-0.6.1 → execweave-0.6.3}/docs/cursor-hooks.ko.md +6 -1
  36. {execweave-0.6.1 → execweave-0.6.3}/docs/cursor-hooks.md +6 -1
  37. execweave-0.6.3/docs/cursor-hooks.ru.md +85 -0
  38. {execweave-0.6.1 → execweave-0.6.3}/docs/cursor-hooks.zh-CN.md +6 -1
  39. {execweave-0.6.1 → execweave-0.6.3}/docs/cursor-hooks.zh-TW.md +6 -1
  40. execweave-0.6.3/docs/gemini-hooks.de.md +189 -0
  41. execweave-0.6.3/docs/gemini-hooks.fr.md +189 -0
  42. {execweave-0.6.1 → execweave-0.6.3}/docs/gemini-hooks.ja.md +36 -11
  43. {execweave-0.6.1 → execweave-0.6.3}/docs/gemini-hooks.ko.md +36 -11
  44. {execweave-0.6.1 → execweave-0.6.3}/docs/gemini-hooks.md +4 -1
  45. execweave-0.6.3/docs/gemini-hooks.ru.md +189 -0
  46. {execweave-0.6.1 → execweave-0.6.3}/docs/gemini-hooks.zh-CN.md +24 -3
  47. {execweave-0.6.1 → execweave-0.6.3}/docs/gemini-hooks.zh-TW.md +4 -1
  48. execweave-0.6.3/docs/inference-gateway.de.md +130 -0
  49. execweave-0.6.3/docs/inference-gateway.fr.md +130 -0
  50. {execweave-0.6.1 → execweave-0.6.3}/docs/inference-gateway.ja.md +6 -1
  51. {execweave-0.6.1 → execweave-0.6.3}/docs/inference-gateway.ko.md +6 -1
  52. {execweave-0.6.1 → execweave-0.6.3}/docs/inference-gateway.md +6 -1
  53. execweave-0.6.3/docs/inference-gateway.ru.md +130 -0
  54. {execweave-0.6.1 → execweave-0.6.3}/docs/inference-gateway.zh-CN.md +6 -1
  55. {execweave-0.6.1 → execweave-0.6.3}/docs/inference-gateway.zh-TW.md +6 -1
  56. execweave-0.6.3/docs/live-graph.de.md +138 -0
  57. execweave-0.6.3/docs/live-graph.fr.md +138 -0
  58. execweave-0.6.3/docs/live-graph.ja.md +138 -0
  59. execweave-0.6.3/docs/live-graph.ko.md +138 -0
  60. {execweave-0.6.1 → execweave-0.6.3}/docs/live-graph.md +4 -1
  61. execweave-0.6.3/docs/live-graph.ru.md +138 -0
  62. {execweave-0.6.1 → execweave-0.6.3}/docs/live-graph.zh-CN.md +4 -1
  63. {execweave-0.6.1 → execweave-0.6.3}/docs/live-graph.zh-TW.md +4 -1
  64. execweave-0.6.3/docs/model-runtime.de.md +106 -0
  65. execweave-0.6.3/docs/model-runtime.fr.md +106 -0
  66. {execweave-0.6.1 → execweave-0.6.3}/docs/model-runtime.ja.md +6 -1
  67. {execweave-0.6.1 → execweave-0.6.3}/docs/model-runtime.ko.md +6 -1
  68. {execweave-0.6.1 → execweave-0.6.3}/docs/model-runtime.md +6 -1
  69. execweave-0.6.3/docs/model-runtime.ru.md +106 -0
  70. {execweave-0.6.1 → execweave-0.6.3}/docs/model-runtime.zh-CN.md +6 -1
  71. {execweave-0.6.1 → execweave-0.6.3}/docs/model-runtime.zh-TW.md +6 -1
  72. execweave-0.6.3/docs/opencode-plugin.de.md +81 -0
  73. execweave-0.6.3/docs/opencode-plugin.fr.md +81 -0
  74. {execweave-0.6.1 → execweave-0.6.3}/docs/opencode-plugin.ja.md +6 -1
  75. {execweave-0.6.1 → execweave-0.6.3}/docs/opencode-plugin.ko.md +6 -1
  76. {execweave-0.6.1 → execweave-0.6.3}/docs/opencode-plugin.md +6 -1
  77. execweave-0.6.3/docs/opencode-plugin.ru.md +81 -0
  78. {execweave-0.6.1 → execweave-0.6.3}/docs/opencode-plugin.zh-CN.md +6 -1
  79. {execweave-0.6.1 → execweave-0.6.3}/docs/opencode-plugin.zh-TW.md +6 -1
  80. execweave-0.6.3/docs/phase-1-runtime-collection.de.md +322 -0
  81. execweave-0.6.3/docs/phase-1-runtime-collection.fr.md +322 -0
  82. execweave-0.6.3/docs/phase-1-runtime-collection.ja.md +322 -0
  83. execweave-0.6.3/docs/phase-1-runtime-collection.ko.md +322 -0
  84. {execweave-0.6.1 → execweave-0.6.3}/docs/phase-1-runtime-collection.md +4 -1
  85. execweave-0.6.3/docs/phase-1-runtime-collection.ru.md +322 -0
  86. {execweave-0.6.1 → execweave-0.6.3}/docs/phase-1-runtime-collection.zh-CN.md +4 -1
  87. {execweave-0.6.1 → execweave-0.6.3}/docs/phase-1-runtime-collection.zh-TW.md +4 -1
  88. execweave-0.6.3/docs/phase-2-execution-graph.de.md +286 -0
  89. execweave-0.6.3/docs/phase-2-execution-graph.fr.md +286 -0
  90. execweave-0.6.3/docs/phase-2-execution-graph.ja.md +286 -0
  91. execweave-0.6.3/docs/phase-2-execution-graph.ko.md +286 -0
  92. {execweave-0.6.1 → execweave-0.6.3}/docs/phase-2-execution-graph.md +4 -1
  93. execweave-0.6.3/docs/phase-2-execution-graph.ru.md +286 -0
  94. {execweave-0.6.1 → execweave-0.6.3}/docs/phase-2-execution-graph.zh-CN.md +4 -1
  95. {execweave-0.6.1 → execweave-0.6.3}/docs/phase-2-execution-graph.zh-TW.md +4 -1
  96. execweave-0.6.3/docs/security-analysis.de.md +178 -0
  97. execweave-0.6.3/docs/security-analysis.fr.md +178 -0
  98. execweave-0.6.3/docs/security-analysis.ja.md +178 -0
  99. execweave-0.6.3/docs/security-analysis.ko.md +178 -0
  100. {execweave-0.6.1 → execweave-0.6.3}/docs/security-analysis.md +4 -1
  101. execweave-0.6.3/docs/security-analysis.ru.md +178 -0
  102. {execweave-0.6.1 → execweave-0.6.3}/docs/security-analysis.zh-CN.md +4 -1
  103. {execweave-0.6.1 → execweave-0.6.3}/docs/security-analysis.zh-TW.md +4 -1
  104. execweave-0.6.3/docs/semantic-telemetry.de.md +160 -0
  105. execweave-0.6.3/docs/semantic-telemetry.fr.md +160 -0
  106. execweave-0.6.3/docs/semantic-telemetry.ja.md +160 -0
  107. execweave-0.6.3/docs/semantic-telemetry.ko.md +160 -0
  108. {execweave-0.6.1 → execweave-0.6.3}/docs/semantic-telemetry.md +4 -1
  109. execweave-0.6.3/docs/semantic-telemetry.ru.md +160 -0
  110. {execweave-0.6.1 → execweave-0.6.3}/docs/semantic-telemetry.zh-CN.md +4 -1
  111. {execweave-0.6.1 → execweave-0.6.3}/docs/semantic-telemetry.zh-TW.md +4 -1
  112. {execweave-0.6.1 → execweave-0.6.3}/pyproject.toml +4 -2
  113. execweave-0.6.3/scripts/audit_i18n_parity.py +166 -0
  114. execweave-0.6.3/scripts/check_wheel_install.py +74 -0
  115. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_windows_launchers.py +25 -1
  116. execweave-0.6.3/scripts/sync_i18n_nav.py +143 -0
  117. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/__init__.py +1 -1
  118. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/__main__.py +1 -1
  119. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/backends.py +11 -4
  120. execweave-0.6.3/src/execweave/entry.py +18 -0
  121. execweave-0.6.3/src/execweave/filesystem.py +240 -0
  122. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/graph.py +103 -2
  123. execweave-0.6.3/src/execweave/live.py +553 -0
  124. execweave-0.6.3/src/execweave/live_view.py +78 -0
  125. execweave-0.6.3/src/execweave/scalability_benchmark.py +195 -0
  126. execweave-0.6.3/src/execweave/scope.py +85 -0
  127. execweave-0.6.3/src/execweave/theme.py +33 -0
  128. execweave-0.6.3/src/execweave/top.py +361 -0
  129. execweave-0.6.3/src/execweave/top_cli.py +91 -0
  130. execweave-0.6.3/src/execweave/view_cli.py +46 -0
  131. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/viewer.py +89 -6
  132. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/workflow.py +7 -1
  133. execweave-0.6.3/tests/test_filesystem_resilience.py +235 -0
  134. {execweave-0.6.1 → execweave-0.6.3}/tests/test_graph.py +56 -1
  135. execweave-0.6.3/tests/test_live.py +208 -0
  136. execweave-0.6.3/tests/test_live_delta.py +193 -0
  137. execweave-0.6.3/tests/test_live_theme.py +11 -0
  138. execweave-0.6.3/tests/test_scope.py +54 -0
  139. execweave-0.6.3/tests/test_v063_features.py +132 -0
  140. {execweave-0.6.1 → execweave-0.6.3}/tests/test_viewer.py +70 -1
  141. execweave-0.6.1/README.ja.md +0 -150
  142. execweave-0.6.1/README.ko.md +0 -150
  143. execweave-0.6.1/README.zh-CN.md +0 -150
  144. execweave-0.6.1/README.zh-TW.md +0 -210
  145. execweave-0.6.1/docs/claude-code-hooks.zh-TW.md +0 -218
  146. execweave-0.6.1/docs/codex-hooks.ja.md +0 -84
  147. execweave-0.6.1/docs/codex-hooks.ko.md +0 -77
  148. execweave-0.6.1/docs/live-graph.ja.md +0 -93
  149. execweave-0.6.1/docs/live-graph.ko.md +0 -93
  150. execweave-0.6.1/docs/phase-1-runtime-collection.ja.md +0 -153
  151. execweave-0.6.1/docs/phase-1-runtime-collection.ko.md +0 -151
  152. execweave-0.6.1/docs/phase-2-execution-graph.ja.md +0 -110
  153. execweave-0.6.1/docs/phase-2-execution-graph.ko.md +0 -110
  154. execweave-0.6.1/docs/security-analysis.ja.md +0 -95
  155. execweave-0.6.1/docs/security-analysis.ko.md +0 -93
  156. execweave-0.6.1/docs/semantic-telemetry.ja.md +0 -82
  157. execweave-0.6.1/docs/semantic-telemetry.ko.md +0 -77
  158. execweave-0.6.1/src/execweave/filesystem.py +0 -103
  159. execweave-0.6.1/src/execweave/live.py +0 -275
  160. execweave-0.6.1/tests/test_live.py +0 -96
  161. {execweave-0.6.1 → execweave-0.6.3}/.github/workflows/ci.yml +0 -0
  162. {execweave-0.6.1 → execweave-0.6.3}/.github/workflows/package-benchmark.yml +0 -0
  163. {execweave-0.6.1 → execweave-0.6.3}/.github/workflows/windows-launcher.yml +0 -0
  164. {execweave-0.6.1 → execweave-0.6.3}/.gitignore +0 -0
  165. {execweave-0.6.1 → execweave-0.6.3}/LICENSE +0 -0
  166. {execweave-0.6.1 → execweave-0.6.3}/benchmarks/phase1_overhead.py +0 -0
  167. {execweave-0.6.1 → execweave-0.6.3}/docs/benchmarks/README.md +0 -0
  168. {execweave-0.6.1 → execweave-0.6.3}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
  169. {execweave-0.6.1 → execweave-0.6.3}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
  170. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_claude_hook.py +0 -0
  171. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_claude_record_graph.py +0 -0
  172. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_correlation_graph.py +0 -0
  173. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_inference_gateway_cli.py +0 -0
  174. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_model_runtime_cli.py +0 -0
  175. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_semantic_graph.py +0 -0
  176. {execweave-0.6.1 → execweave-0.6.3}/scripts/check_viewer_js.py +0 -0
  177. {execweave-0.6.1 → execweave-0.6.3}/scripts/emit_claude_hook_smoke.py +0 -0
  178. {execweave-0.6.1 → execweave-0.6.3}/scripts/emit_cursor_hook_smoke.py +0 -0
  179. {execweave-0.6.1 → execweave-0.6.3}/scripts/emit_gemini_hook_smoke.py +0 -0
  180. {execweave-0.6.1 → execweave-0.6.3}/scripts/emit_opencode_plugin_smoke.py +0 -0
  181. {execweave-0.6.1 → execweave-0.6.3}/scripts/make_semantic_smoke.py +0 -0
  182. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/analysis.py +0 -0
  183. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/benchmark.py +0 -0
  184. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/claude_adapter.py +0 -0
  185. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/claude_hook_cli.py +0 -0
  186. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/claude_record.py +0 -0
  187. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/cli.py +0 -0
  188. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/codex_adapter.py +0 -0
  189. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/codex_hook_cli.py +0 -0
  190. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/codex_record.py +0 -0
  191. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/collector.py +0 -0
  192. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/command.py +0 -0
  193. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/correlation.py +0 -0
  194. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/cursor_adapter.py +0 -0
  195. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/cursor_hook_cli.py +0 -0
  196. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/cursor_record.py +0 -0
  197. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/focus.py +0 -0
  198. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/gemini_adapter.py +0 -0
  199. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/gemini_hook_cli.py +0 -0
  200. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/gemini_record.py +0 -0
  201. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/graph_ops.py +0 -0
  202. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/inference_gateway.py +0 -0
  203. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/inference_gateway_cli.py +0 -0
  204. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/inference_identity.py +0 -0
  205. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/inference_identity_cli.py +0 -0
  206. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/model_runtime.py +0 -0
  207. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/model_runtime_cli.py +0 -0
  208. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/opencode_adapter.py +0 -0
  209. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/opencode_hook_cli.py +0 -0
  210. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/opencode_plugin_cli.py +0 -0
  211. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/opencode_record.py +0 -0
  212. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/overhead_benchmark.py +0 -0
  213. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/provider_record.py +0 -0
  214. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/schema.py +0 -0
  215. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/semantic.py +0 -0
  216. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/sink.py +0 -0
  217. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/strace_backend.py +0 -0
  218. {execweave-0.6.1 → execweave-0.6.3}/src/execweave/validate.py +0 -0
  219. {execweave-0.6.1 → execweave-0.6.3}/tests/test_analysis.py +0 -0
  220. {execweave-0.6.1 → execweave-0.6.3}/tests/test_backends.py +0 -0
  221. {execweave-0.6.1 → execweave-0.6.3}/tests/test_claude_adapter.py +0 -0
  222. {execweave-0.6.1 → execweave-0.6.3}/tests/test_claude_record.py +0 -0
  223. {execweave-0.6.1 → execweave-0.6.3}/tests/test_codex_adapter.py +0 -0
  224. {execweave-0.6.1 → execweave-0.6.3}/tests/test_codex_record.py +0 -0
  225. {execweave-0.6.1 → execweave-0.6.3}/tests/test_collector.py +0 -0
  226. {execweave-0.6.1 → execweave-0.6.3}/tests/test_command.py +0 -0
  227. {execweave-0.6.1 → execweave-0.6.3}/tests/test_condense.py +0 -0
  228. {execweave-0.6.1 → execweave-0.6.3}/tests/test_correlation.py +0 -0
  229. {execweave-0.6.1 → execweave-0.6.3}/tests/test_correlation_canonical_path.py +0 -0
  230. {execweave-0.6.1 → execweave-0.6.3}/tests/test_correlation_process_exe.py +0 -0
  231. {execweave-0.6.1 → execweave-0.6.3}/tests/test_cursor_adapter.py +0 -0
  232. {execweave-0.6.1 → execweave-0.6.3}/tests/test_cursor_record.py +0 -0
  233. {execweave-0.6.1 → execweave-0.6.3}/tests/test_focus.py +0 -0
  234. {execweave-0.6.1 → execweave-0.6.3}/tests/test_gemini_adapter.py +0 -0
  235. {execweave-0.6.1 → execweave-0.6.3}/tests/test_gemini_record.py +0 -0
  236. {execweave-0.6.1 → execweave-0.6.3}/tests/test_graph_ops.py +0 -0
  237. {execweave-0.6.1 → execweave-0.6.3}/tests/test_inference_gateway.py +0 -0
  238. {execweave-0.6.1 → execweave-0.6.3}/tests/test_inference_identity.py +0 -0
  239. {execweave-0.6.1 → execweave-0.6.3}/tests/test_model_runtime.py +0 -0
  240. {execweave-0.6.1 → execweave-0.6.3}/tests/test_opencode_adapter.py +0 -0
  241. {execweave-0.6.1 → execweave-0.6.3}/tests/test_opencode_plugin.py +0 -0
  242. {execweave-0.6.1 → execweave-0.6.3}/tests/test_opencode_record.py +0 -0
  243. {execweave-0.6.1 → execweave-0.6.3}/tests/test_overhead_benchmark.py +0 -0
  244. {execweave-0.6.1 → execweave-0.6.3}/tests/test_schema.py +0 -0
  245. {execweave-0.6.1 → execweave-0.6.3}/tests/test_semantic.py +0 -0
  246. {execweave-0.6.1 → execweave-0.6.3}/tests/test_strace_backend.py +0 -0
  247. {execweave-0.6.1 → execweave-0.6.3}/tests/test_validate.py +0 -0
  248. {execweave-0.6.1 → execweave-0.6.3}/tests/test_version.py +0 -0
  249. {execweave-0.6.1 → execweave-0.6.3}/tests/test_workflow.py +0 -0
@@ -0,0 +1,34 @@
1
+ name: Documentation i18n
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "README*.md"
8
+ - "docs/*.md"
9
+ - "scripts/audit_i18n_parity.py"
10
+ - "scripts/sync_i18n_nav.py"
11
+ - ".github/workflows/i18n.yml"
12
+ pull_request:
13
+ paths:
14
+ - "README*.md"
15
+ - "docs/*.md"
16
+ - "scripts/audit_i18n_parity.py"
17
+ - "scripts/sync_i18n_nav.py"
18
+ - ".github/workflows/i18n.yml"
19
+
20
+ permissions:
21
+ contents: read
22
+
23
+ jobs:
24
+ audit:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - uses: actions/setup-python@v5
29
+ with:
30
+ python-version: "3.12"
31
+ - name: Check eight-language navigation and coverage
32
+ run: python scripts/sync_i18n_nav.py --check
33
+ - name: Check German, French, and Russian structural parity
34
+ run: python scripts/audit_i18n_parity.py --languages fr de ru
@@ -0,0 +1,42 @@
1
+ name: Package Smoke
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "pyproject.toml"
8
+ - "src/**"
9
+ - ".github/workflows/package-smoke.yml"
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ wheel:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - uses: actions/setup-python@v5
21
+ with:
22
+ python-version: "3.12"
23
+ - name: Build wheel and sdist
24
+ run: |
25
+ python -m pip install --upgrade pip
26
+ python -m pip install build twine
27
+ python -m build
28
+ python -m twine check dist/*
29
+ - name: Install clean wheel
30
+ shell: bash
31
+ run: |
32
+ wheel="$(ls dist/*.whl)"
33
+ python -m venv .wheel-smoke
34
+ .wheel-smoke/bin/python -m pip install --upgrade pip
35
+ .wheel-smoke/bin/python -m pip install "$wheel"
36
+ - name: Smoke installed entry points
37
+ shell: bash
38
+ run: |
39
+ .wheel-smoke/bin/execweave --help
40
+ .wheel-smoke/bin/execweave top --help
41
+ .wheel-smoke/bin/execweave-top --help
42
+ .wheel-smoke/bin/execweave-scalability --help
@@ -74,4 +74,4 @@ jobs:
74
74
  env:
75
75
  GH_TOKEN: ${{ github.token }}
76
76
  RELEASE_TAG: ${{ github.event.release.tag_name }}
77
- run: gh release upload "$RELEASE_TAG" dist/* --clobber
77
+ run: gh release upload "$RELEASE_TAG" dist/* --clobber --repo "$GITHUB_REPOSITORY"
@@ -0,0 +1,54 @@
1
+ name: Scalability Benchmark
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "src/execweave/graph.py"
8
+ - "src/execweave/live.py"
9
+ - "src/execweave/scalability_benchmark.py"
10
+ - "pyproject.toml"
11
+ - ".github/workflows/scalability.yml"
12
+ workflow_dispatch:
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ benchmark:
19
+ runs-on: ubuntu-latest
20
+ timeout-minutes: 15
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.12"
26
+ - name: Install package
27
+ run: python -m pip install -e .
28
+ - name: Run 10k / 100k / 1M benchmark
29
+ run: |
30
+ execweave-scalability \
31
+ --sizes 10000,100000,1000000 \
32
+ --resources 10000 \
33
+ --output-json scalability-results.json
34
+ - name: Validate benchmark invariants
35
+ run: |
36
+ python - <<'PY'
37
+ import json
38
+ from pathlib import Path
39
+
40
+ payload = json.loads(Path("scalability-results.json").read_text(encoding="utf-8"))
41
+ points = payload["points"]
42
+ assert [p["event_count"] for p in points] == [10_000, 100_000, 1_000_000]
43
+ assert all(p["retained_event_ids"] == 0 for p in points)
44
+ assert all(p["events_per_second"] > 0 for p in points)
45
+ assert all(p["snapshot_bytes"] > 0 for p in points)
46
+ assert points[-1]["node_count"] == 10_001
47
+ assert points[-1]["edge_count"] == 10_000
48
+ print(json.dumps(points, indent=2))
49
+ PY
50
+ - uses: actions/upload-artifact@v4
51
+ with:
52
+ name: execweave-scalability
53
+ path: scalability-results.json
54
+ if-no-files-found: error
@@ -0,0 +1,34 @@
1
+ name: Wheel Install Smoke
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "pyproject.toml"
8
+ - "src/execweave/**"
9
+ - "scripts/check_wheel_install.py"
10
+ - ".github/workflows/wheel-smoke.yml"
11
+ workflow_dispatch:
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ wheel-smoke:
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ os: [ubuntu-latest, windows-latest, macos-latest]
22
+ runs-on: ${{ matrix.os }}
23
+ timeout-minutes: 15
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: actions/setup-python@v5
27
+ with:
28
+ python-version: "3.12"
29
+ - name: Build wheel
30
+ run: |
31
+ python -m pip install --upgrade build
32
+ python -m build --wheel
33
+ - name: Clean wheel install smoke
34
+ run: python scripts/check_wheel_install.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: execweave
3
- Version: 0.6.1
3
+ Version: 0.6.3
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
@@ -56,13 +56,18 @@ Description-Content-Type: text/markdown
56
56
 
57
57
  # ExecWeave
58
58
 
59
+ <!-- i18n-nav:start -->
59
60
  <p align="center">
60
61
  <strong>English</strong> |
61
62
  <a href="README.zh-TW.md">繁體中文</a> |
62
63
  <a href="README.zh-CN.md">简体中文</a> |
63
64
  <a href="README.ja.md">日本語</a> |
64
- <a href="README.ko.md">한국어</a>
65
+ <a href="README.ko.md">한국어</a> |
66
+ <a href="README.fr.md">Français</a> |
67
+ <a href="README.de.md">Deutsch</a> |
68
+ <a href="README.ru.md">Русский</a>
65
69
  </p>
70
+ <!-- i18n-nav:end -->
66
71
 
67
72
  **See what AI agents actually do on your machine.**
68
73
 
@@ -70,12 +75,22 @@ ExecWeave is an open-source, local-first observability project that turns AI-age
70
75
 
71
76
  > **Event is ground truth. The graph is a materialized view.**
72
77
 
78
+ <p align="center">
79
+ <img src="docs/assets/execweave-viewer.png" alt="ExecWeave Live execution graph" width="100%">
80
+ </p>
81
+
73
82
  ## Install
74
83
 
75
- ExecWeave v0.6.0 is packaged as a standard Python wheel/sdist. The repository is PyPI-ready; until the first Trusted Publisher release is made, install the package directly from GitHub:
84
+ ExecWeave is published on PyPI as a standard Python wheel/sdist. Install the latest published release with:
85
+
86
+ ```bash
87
+ python -m pip install -U execweave
88
+ ```
89
+
90
+ The `main` branch may contain a newer patch than the current PyPI release. To test the latest mainline build directly:
76
91
 
77
92
  ```bash
78
- python -m pip install "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
93
+ python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
79
94
  ```
80
95
 
81
96
  For development:
@@ -86,18 +101,71 @@ cd ExecWeave
86
101
  python -m pip install -e ".[dev]"
87
102
  ```
88
103
 
89
- Once the first PyPI release is published, installation becomes:
104
+ Live OS-runtime telemetry works with **any local command**. The names below are examples, not a whitelist:
90
105
 
91
106
  ```bash
92
- python -m pip install execweave
107
+ # Agent / IDE CLIs
108
+ execweave live --open -- claude
109
+ execweave live --open -- codex
110
+ execweave live --open -- gemini
111
+ execweave live --open -- cursor
112
+ execweave live --open -- opencode
113
+
114
+ # Any local program
115
+ execweave live --open -- python my_agent.py
116
+
117
+ # A local model runtime launched under ExecWeave
118
+ execweave live --open -- ollama serve
93
119
  ```
94
120
 
95
- Watch any command live:
121
+ `execweave live` streams process, file, and network evidence for the command tree it launches. It does **not** automatically inject Agent semantic hooks, model-runtime API metadata, or inference-gateway routing metadata into the Live Viewer.
122
+
123
+ #### Live capability matrix
124
+
125
+ | Integration | Direct OS-runtime live | Specialized metadata | Automatically in Live Viewer |
126
+ | --- | --- | --- | --- |
127
+ | Claude Code | Yes | `execweave-claude-record` / hooks | No |
128
+ | OpenAI Codex | Yes | `execweave-codex-record` / hooks | No |
129
+ | Gemini CLI | Yes | `execweave-gemini-record` / hooks | No |
130
+ | Cursor | Yes | `execweave-cursor-record` / hooks | No |
131
+ | OpenCode | Yes | `execweave-opencode-record` / plugin | No |
132
+ | Ollama | Yes, when launched under ExecWeave (for example `ollama serve`) | `execweave-model-runtime event/probe --runtime ollama` | No |
133
+ | llama.cpp | Yes, when its local server is launched under ExecWeave | `execweave-model-runtime event/probe --runtime llamacpp` | No |
134
+ | vLLM | Yes, when its local server is launched under ExecWeave | `execweave-model-runtime event/probe --runtime vllm` | No |
135
+ | LM Studio | Yes only for a local process launched under ExecWeave; an already-running server is not attached | `execweave-model-runtime event/probe --runtime lmstudio` | No |
136
+ | LiteLLM Proxy | Yes, when the local proxy is launched under ExecWeave | `execweave-inference-gateway event --gateway litellm` | No |
137
+ | OpenRouter | No direct remote-service process; run the local client/Agent under `live` instead | `execweave-inference-gateway event/generation --gateway openrouter` | No |
138
+
139
+ For an already-running Ollama server, use `execweave-model-runtime probe --runtime ollama` to snapshot loaded-model state. For OpenRouter, `live` can observe the local client and its network activity, while gateway routing/usage metadata remains a separate evidence layer.
140
+
141
+ <!-- v0.6.3-live -->
142
+ ### v0.6.3 live observability
143
+
144
+ Use the same live session in either the browser or terminal:
96
145
 
97
146
  ```bash
98
- execweave live --open -- claude
147
+ execweave top -- codex # Terminal dashboard
148
+ execweave top --open -- codex # Terminal + Web Viewer
99
149
  ```
100
150
 
151
+ Live updates use incremental snapshots/deltas with bounded history instead of repeatedly rebuilding and transferring the full graph. Live and standalone viewers support a persistent Dark/Light theme switch. On Linux, very large recursive filesystem scopes are preflighted and automatically fall back from inotify to polling when needed, so an exhausted inotify watch pool does not abort the session.
152
+
153
+ `live` is a generic OS-runtime view rather than an integration whitelist. Specialized Agent semantic, model-runtime, and gateway metadata remain separate evidence layers and are not automatically injected into the Live Viewer in v0.6.3.
154
+
155
+ Run the reproducible graph scalability benchmark with `execweave-scalability`; CI covers 10k, 100k, and 1M synthetic events.
156
+
157
+ #### Scalability benchmark
158
+
159
+ Reference GitHub Actions result for the incremental `GraphAccumulator` synthetic workload (`retain_event_ids=False`):
160
+
161
+ | Events | Apply time | Throughput | Nodes | Edges | Apply RSS Δ | Snapshot |
162
+ | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
163
+ | 10k | 0.114 s | 87,681 ev/s | 10,001 | 10,000 | 35.9 MiB | 8.5 MiB |
164
+ | 100k | 0.654 s | 152,816 ev/s | 10,001 | 10,000 | 25.8 MiB | 8.6 MiB |
165
+ | **1M** | **6.087 s** | **164,273 ev/s** | **10,001** | **10,000** | **23.5 MiB** | **8.6 MiB** |
166
+
167
+ At **1,000,000 events**, the incremental in-memory graph did not duplicate raw event IDs; raw evidence remains separate from the materialized graph. This benchmark measures graph accumulation and snapshot materialization, not end-to-end collector or browser throughput.
168
+
101
169
  Or build the full artifact pipeline:
102
170
 
103
171
  ```bash
@@ -266,10 +334,24 @@ execweave run --backend portable -- your-command
266
334
  execweave run --backend strace -- your-command
267
335
  ```
268
336
 
337
+ Since v0.6.1, child commands are resolved through a shared cross-platform launcher before execution. Linux and macOS retain normal PATH executable behavior. Windows resolves `.exe`, `.cmd`, and `.bat` launchers through PATH/PATHEXT, while an explicit `.ps1` launcher is invoked through PowerShell. Dedicated Windows CI exercises Codex and Cursor recorders from both `cmd.exe` and Windows PowerShell; the full Cursor semantic/correlation integration remains covered by the normal Windows, macOS, and Ubuntu matrix.
338
+
269
339
  Portable filesystem watching is session-correlated rather than process-causal, and short-lived processes can be missed between polling intervals. The Linux `strace` path captures process-attributed syscall evidence after the command exits.
270
340
 
271
341
  Future native collectors remain planned for Linux eBPF, Windows ETW, and macOS Endpoint Security.
272
342
 
343
+ ## v0.6.3 safety patch
344
+
345
+ v0.6.3 hardens long-running and high-cardinality sessions without changing evidence semantics or graph schema 0.1:
346
+
347
+ - Broad recursive filesystem scopes such as a filesystem root, user home, or users-home parent are no longer recursively observed as-is; process, network, and semantic collection can continue.
348
+ - Standalone and Live Viewers stop SVG materialization above the safety budget (1,500 nodes, 4,000 edges, or an estimated 5,000 SVG elements) instead of exhausting browser memory. The canonical `graph.json` evidence artifact remains complete.
349
+ - Viewer layout/fit no longer spreads arbitrarily large arrays into `Math.min` / `Math.max`, and edge redraw during node dragging is animation-frame throttled.
350
+ - The Live server tails only newly appended `events.jsonl` bytes from a byte offset and incrementally updates an in-memory `GraphAccumulator`. `/graph.json` polling no longer replays the full event history; an incomplete trailing JSONL line is buffered until its newline arrives.
351
+ - Event-count or aggregate-count-only changes refresh Live stats/edge labels without a full topology redraw. After the Viewer budget is exceeded, live `/graph.json` switches to a counts-only compact payload while collection and the final canonical validation/full `graph.json` continue unchanged.
352
+
353
+ This is a polling + incremental-ingestion safety patch, not an SSE, SQLite, Rust, or Canvas architecture migration.
354
+
273
355
  ## Layered artifacts
274
356
 
275
357
  A provider-integrated run can produce:
@@ -321,9 +403,9 @@ Security findings remain explicit about evidence limits. A possible sensitive-fi
321
403
 
322
404
  ## Current status
323
405
 
324
- ExecWeave is currently **v0.6.0** and under active development.
406
+ ExecWeave `main` is currently **v0.6.3** and under active development.
325
407
 
326
- The baseline includes runtime collection, graph materialization/querying, standalone/live Viewer, Claude/Codex/Gemini/Cursor/OpenCode semantic integrations, conservative Tool → Process correlation, OpenRouter/LiteLLM gateway metadata, Ollama/llama.cpp/vLLM/LM Studio runtime metadata, exact Gateway ↔ Model Runtime request identity, PyPI-ready wheel/sdist packaging, reproducible overhead benchmarking, and cross-platform CI on Python 3.10/3.12.
408
+ The baseline includes runtime collection, graph materialization/querying, standalone/live Viewer, Claude/Codex/Gemini/Cursor/OpenCode semantic integrations, conservative Tool → Process correlation, OpenRouter/LiteLLM gateway metadata, Ollama/llama.cpp/vLLM/LM Studio runtime metadata, exact Gateway ↔ Model Runtime request identity, published PyPI wheel/sdist packaging, reproducible overhead benchmarking, cross-platform command-launcher compatibility, large-graph browser safety guards, incremental Live JSONL tail/cache, and cross-platform CI on Python 3.10/3.12.
327
409
 
328
410
  ## Privacy
329
411
 
@@ -337,7 +419,7 @@ Review artifacts before sharing them.
337
419
  - [`Phase 2 — Execution Graph`](docs/phase-2-execution-graph.md)
338
420
  - [`Live Graph`](docs/live-graph.md)
339
421
  - [`Semantic Telemetry`](docs/semantic-telemetry.md)
340
- - [`Claude Code Hooks`](docs/claude-code-hooks.md)
422
+ - [`Claude Code Hooks`](docs/claude-hooks.md)
341
423
  - [`OpenAI Codex Hooks`](docs/codex-hooks.md)
342
424
  - [`Gemini CLI Hooks`](docs/gemini-hooks.md)
343
425
  - [`Cursor Hooks`](docs/cursor-hooks.md)
@@ -353,4 +435,4 @@ Contributions are welcome, especially around native OS collectors, additional Ag
353
435
 
354
436
  ## License
355
437
 
356
- See [`LICENSE`](LICENSE).
438
+ See [`LICENSE`](LICENSE).