execweave 0.6.2__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 (244) 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.2 → 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.2 → execweave-0.6.3}/PKG-INFO +73 -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.2 → execweave-0.6.3}/README.ja.md +71 -10
  10. {execweave-0.6.2 → execweave-0.6.3}/README.ko.md +71 -10
  11. {execweave-0.6.2 → execweave-0.6.3}/README.md +72 -11
  12. execweave-0.6.3/README.ru.md +388 -0
  13. {execweave-0.6.2 → execweave-0.6.3}/README.zh-CN.md +71 -10
  14. {execweave-0.6.2 → execweave-0.6.3}/README.zh-TW.md +72 -11
  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.2 → execweave-0.6.3}/docs/claude-code-hooks.ja.md +4 -1
  19. {execweave-0.6.2 → execweave-0.6.3}/docs/claude-code-hooks.ko.md +4 -1
  20. {execweave-0.6.2 → 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.2 → 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.2 → 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.2 → execweave-0.6.3}/docs/codex-hooks.zh-CN.md +4 -1
  31. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/cursor-hooks.ja.md +6 -1
  35. {execweave-0.6.2 → execweave-0.6.3}/docs/cursor-hooks.ko.md +6 -1
  36. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/cursor-hooks.zh-CN.md +6 -1
  39. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/gemini-hooks.ja.md +36 -11
  43. {execweave-0.6.2 → execweave-0.6.3}/docs/gemini-hooks.ko.md +36 -11
  44. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/gemini-hooks.zh-CN.md +24 -3
  47. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/inference-gateway.ja.md +6 -1
  51. {execweave-0.6.2 → execweave-0.6.3}/docs/inference-gateway.ko.md +6 -1
  52. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/inference-gateway.zh-CN.md +6 -1
  55. {execweave-0.6.2 → 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.2 → 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.2 → execweave-0.6.3}/docs/live-graph.zh-CN.md +4 -1
  63. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/model-runtime.ja.md +6 -1
  67. {execweave-0.6.2 → execweave-0.6.3}/docs/model-runtime.ko.md +6 -1
  68. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/model-runtime.zh-CN.md +6 -1
  71. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/opencode-plugin.ja.md +6 -1
  75. {execweave-0.6.2 → execweave-0.6.3}/docs/opencode-plugin.ko.md +6 -1
  76. {execweave-0.6.2 → 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.2 → execweave-0.6.3}/docs/opencode-plugin.zh-CN.md +6 -1
  79. {execweave-0.6.2 → 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.2 → 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.2 → execweave-0.6.3}/docs/phase-1-runtime-collection.zh-CN.md +4 -1
  87. {execweave-0.6.2 → 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.2 → 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.2 → execweave-0.6.3}/docs/phase-2-execution-graph.zh-CN.md +4 -1
  95. {execweave-0.6.2 → 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.2 → 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.2 → execweave-0.6.3}/docs/security-analysis.zh-CN.md +4 -1
  103. {execweave-0.6.2 → 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.2 → 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.2 → execweave-0.6.3}/docs/semantic-telemetry.zh-CN.md +4 -1
  111. {execweave-0.6.2 → execweave-0.6.3}/docs/semantic-telemetry.zh-TW.md +4 -1
  112. {execweave-0.6.2 → 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.2 → 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.2 → execweave-0.6.3}/src/execweave/__init__.py +1 -1
  118. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/__main__.py +1 -1
  119. execweave-0.6.3/src/execweave/entry.py +18 -0
  120. execweave-0.6.3/src/execweave/filesystem.py +240 -0
  121. execweave-0.6.3/src/execweave/live.py +553 -0
  122. execweave-0.6.3/src/execweave/live_view.py +78 -0
  123. execweave-0.6.3/src/execweave/scalability_benchmark.py +195 -0
  124. execweave-0.6.3/src/execweave/theme.py +33 -0
  125. execweave-0.6.3/src/execweave/top.py +361 -0
  126. execweave-0.6.3/src/execweave/top_cli.py +91 -0
  127. execweave-0.6.3/src/execweave/view_cli.py +46 -0
  128. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/workflow.py +7 -1
  129. execweave-0.6.3/tests/test_filesystem_resilience.py +235 -0
  130. execweave-0.6.3/tests/test_live_delta.py +193 -0
  131. execweave-0.6.3/tests/test_live_theme.py +11 -0
  132. execweave-0.6.3/tests/test_v063_features.py +132 -0
  133. execweave-0.6.2/docs/claude-code-hooks.zh-TW.md +0 -218
  134. execweave-0.6.2/docs/codex-hooks.ja.md +0 -84
  135. execweave-0.6.2/docs/codex-hooks.ko.md +0 -77
  136. execweave-0.6.2/docs/live-graph.ja.md +0 -93
  137. execweave-0.6.2/docs/live-graph.ko.md +0 -93
  138. execweave-0.6.2/docs/phase-1-runtime-collection.ja.md +0 -153
  139. execweave-0.6.2/docs/phase-1-runtime-collection.ko.md +0 -151
  140. execweave-0.6.2/docs/phase-2-execution-graph.ja.md +0 -110
  141. execweave-0.6.2/docs/phase-2-execution-graph.ko.md +0 -110
  142. execweave-0.6.2/docs/security-analysis.ja.md +0 -95
  143. execweave-0.6.2/docs/security-analysis.ko.md +0 -93
  144. execweave-0.6.2/docs/semantic-telemetry.ja.md +0 -82
  145. execweave-0.6.2/docs/semantic-telemetry.ko.md +0 -77
  146. execweave-0.6.2/src/execweave/filesystem.py +0 -103
  147. execweave-0.6.2/src/execweave/live.py +0 -387
  148. {execweave-0.6.2 → execweave-0.6.3}/.github/workflows/ci.yml +0 -0
  149. {execweave-0.6.2 → execweave-0.6.3}/.github/workflows/package-benchmark.yml +0 -0
  150. {execweave-0.6.2 → execweave-0.6.3}/.github/workflows/windows-launcher.yml +0 -0
  151. {execweave-0.6.2 → execweave-0.6.3}/.gitignore +0 -0
  152. {execweave-0.6.2 → execweave-0.6.3}/LICENSE +0 -0
  153. {execweave-0.6.2 → execweave-0.6.3}/benchmarks/phase1_overhead.py +0 -0
  154. {execweave-0.6.2 → execweave-0.6.3}/docs/benchmarks/README.md +0 -0
  155. {execweave-0.6.2 → execweave-0.6.3}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
  156. {execweave-0.6.2 → execweave-0.6.3}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
  157. {execweave-0.6.2 → execweave-0.6.3}/scripts/check_claude_hook.py +0 -0
  158. {execweave-0.6.2 → execweave-0.6.3}/scripts/check_claude_record_graph.py +0 -0
  159. {execweave-0.6.2 → execweave-0.6.3}/scripts/check_correlation_graph.py +0 -0
  160. {execweave-0.6.2 → execweave-0.6.3}/scripts/check_inference_gateway_cli.py +0 -0
  161. {execweave-0.6.2 → execweave-0.6.3}/scripts/check_model_runtime_cli.py +0 -0
  162. {execweave-0.6.2 → execweave-0.6.3}/scripts/check_semantic_graph.py +0 -0
  163. {execweave-0.6.2 → execweave-0.6.3}/scripts/check_viewer_js.py +0 -0
  164. {execweave-0.6.2 → execweave-0.6.3}/scripts/emit_claude_hook_smoke.py +0 -0
  165. {execweave-0.6.2 → execweave-0.6.3}/scripts/emit_cursor_hook_smoke.py +0 -0
  166. {execweave-0.6.2 → execweave-0.6.3}/scripts/emit_gemini_hook_smoke.py +0 -0
  167. {execweave-0.6.2 → execweave-0.6.3}/scripts/emit_opencode_plugin_smoke.py +0 -0
  168. {execweave-0.6.2 → execweave-0.6.3}/scripts/make_semantic_smoke.py +0 -0
  169. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/analysis.py +0 -0
  170. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/backends.py +0 -0
  171. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/benchmark.py +0 -0
  172. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/claude_adapter.py +0 -0
  173. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/claude_hook_cli.py +0 -0
  174. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/claude_record.py +0 -0
  175. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/cli.py +0 -0
  176. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/codex_adapter.py +0 -0
  177. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/codex_hook_cli.py +0 -0
  178. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/codex_record.py +0 -0
  179. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/collector.py +0 -0
  180. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/command.py +0 -0
  181. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/correlation.py +0 -0
  182. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/cursor_adapter.py +0 -0
  183. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/cursor_hook_cli.py +0 -0
  184. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/cursor_record.py +0 -0
  185. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/focus.py +0 -0
  186. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/gemini_adapter.py +0 -0
  187. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/gemini_hook_cli.py +0 -0
  188. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/gemini_record.py +0 -0
  189. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/graph.py +0 -0
  190. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/graph_ops.py +0 -0
  191. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/inference_gateway.py +0 -0
  192. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/inference_gateway_cli.py +0 -0
  193. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/inference_identity.py +0 -0
  194. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/inference_identity_cli.py +0 -0
  195. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/model_runtime.py +0 -0
  196. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/model_runtime_cli.py +0 -0
  197. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/opencode_adapter.py +0 -0
  198. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/opencode_hook_cli.py +0 -0
  199. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/opencode_plugin_cli.py +0 -0
  200. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/opencode_record.py +0 -0
  201. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/overhead_benchmark.py +0 -0
  202. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/provider_record.py +0 -0
  203. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/schema.py +0 -0
  204. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/scope.py +0 -0
  205. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/semantic.py +0 -0
  206. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/sink.py +0 -0
  207. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/strace_backend.py +0 -0
  208. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/validate.py +0 -0
  209. {execweave-0.6.2 → execweave-0.6.3}/src/execweave/viewer.py +0 -0
  210. {execweave-0.6.2 → execweave-0.6.3}/tests/test_analysis.py +0 -0
  211. {execweave-0.6.2 → execweave-0.6.3}/tests/test_backends.py +0 -0
  212. {execweave-0.6.2 → execweave-0.6.3}/tests/test_claude_adapter.py +0 -0
  213. {execweave-0.6.2 → execweave-0.6.3}/tests/test_claude_record.py +0 -0
  214. {execweave-0.6.2 → execweave-0.6.3}/tests/test_codex_adapter.py +0 -0
  215. {execweave-0.6.2 → execweave-0.6.3}/tests/test_codex_record.py +0 -0
  216. {execweave-0.6.2 → execweave-0.6.3}/tests/test_collector.py +0 -0
  217. {execweave-0.6.2 → execweave-0.6.3}/tests/test_command.py +0 -0
  218. {execweave-0.6.2 → execweave-0.6.3}/tests/test_condense.py +0 -0
  219. {execweave-0.6.2 → execweave-0.6.3}/tests/test_correlation.py +0 -0
  220. {execweave-0.6.2 → execweave-0.6.3}/tests/test_correlation_canonical_path.py +0 -0
  221. {execweave-0.6.2 → execweave-0.6.3}/tests/test_correlation_process_exe.py +0 -0
  222. {execweave-0.6.2 → execweave-0.6.3}/tests/test_cursor_adapter.py +0 -0
  223. {execweave-0.6.2 → execweave-0.6.3}/tests/test_cursor_record.py +0 -0
  224. {execweave-0.6.2 → execweave-0.6.3}/tests/test_focus.py +0 -0
  225. {execweave-0.6.2 → execweave-0.6.3}/tests/test_gemini_adapter.py +0 -0
  226. {execweave-0.6.2 → execweave-0.6.3}/tests/test_gemini_record.py +0 -0
  227. {execweave-0.6.2 → execweave-0.6.3}/tests/test_graph.py +0 -0
  228. {execweave-0.6.2 → execweave-0.6.3}/tests/test_graph_ops.py +0 -0
  229. {execweave-0.6.2 → execweave-0.6.3}/tests/test_inference_gateway.py +0 -0
  230. {execweave-0.6.2 → execweave-0.6.3}/tests/test_inference_identity.py +0 -0
  231. {execweave-0.6.2 → execweave-0.6.3}/tests/test_live.py +0 -0
  232. {execweave-0.6.2 → execweave-0.6.3}/tests/test_model_runtime.py +0 -0
  233. {execweave-0.6.2 → execweave-0.6.3}/tests/test_opencode_adapter.py +0 -0
  234. {execweave-0.6.2 → execweave-0.6.3}/tests/test_opencode_plugin.py +0 -0
  235. {execweave-0.6.2 → execweave-0.6.3}/tests/test_opencode_record.py +0 -0
  236. {execweave-0.6.2 → execweave-0.6.3}/tests/test_overhead_benchmark.py +0 -0
  237. {execweave-0.6.2 → execweave-0.6.3}/tests/test_schema.py +0 -0
  238. {execweave-0.6.2 → execweave-0.6.3}/tests/test_scope.py +0 -0
  239. {execweave-0.6.2 → execweave-0.6.3}/tests/test_semantic.py +0 -0
  240. {execweave-0.6.2 → execweave-0.6.3}/tests/test_strace_backend.py +0 -0
  241. {execweave-0.6.2 → execweave-0.6.3}/tests/test_validate.py +0 -0
  242. {execweave-0.6.2 → execweave-0.6.3}/tests/test_version.py +0 -0
  243. {execweave-0.6.2 → execweave-0.6.3}/tests/test_viewer.py +0 -0
  244. {execweave-0.6.2 → 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.2
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,6 +75,10 @@ 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
84
  ExecWeave is published on PyPI as a standard Python wheel/sdist. Install the latest published release with:
@@ -92,19 +101,71 @@ cd ExecWeave
92
101
  python -m pip install -e ".[dev]"
93
102
  ```
94
103
 
95
- Watch Claude Code, OpenAI Codex, or Gemini CLI live:
104
+ Live OS-runtime telemetry works with **any local command**. The names below are examples, not a whitelist:
96
105
 
97
106
  ```bash
98
- # Claude Code
107
+ # Agent / IDE CLIs
99
108
  execweave live --open -- claude
100
-
101
- # OpenAI Codex
102
109
  execweave live --open -- codex
103
-
104
- # Gemini CLI
105
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
106
119
  ```
107
120
 
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:
145
+
146
+ ```bash
147
+ execweave top -- codex # Terminal dashboard
148
+ execweave top --open -- codex # Terminal + Web Viewer
149
+ ```
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
+
108
169
  Or build the full artifact pipeline:
109
170
 
110
171
  ```bash
@@ -279,9 +340,9 @@ Portable filesystem watching is session-correlated rather than process-causal, a
279
340
 
280
341
  Future native collectors remain planned for Linux eBPF, Windows ETW, and macOS Endpoint Security.
281
342
 
282
- ## v0.6.2 safety patch
343
+ ## v0.6.3 safety patch
283
344
 
284
- v0.6.2 hardens long-running and high-cardinality sessions without changing evidence semantics or graph schema 0.1:
345
+ v0.6.3 hardens long-running and high-cardinality sessions without changing evidence semantics or graph schema 0.1:
285
346
 
286
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.
287
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.
@@ -342,7 +403,7 @@ Security findings remain explicit about evidence limits. A possible sensitive-fi
342
403
 
343
404
  ## Current status
344
405
 
345
- ExecWeave `main` is currently **v0.6.2** and under active development.
406
+ ExecWeave `main` is currently **v0.6.3** and under active development.
346
407
 
347
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.
348
409
 
@@ -358,7 +419,7 @@ Review artifacts before sharing them.
358
419
  - [`Phase 2 — Execution Graph`](docs/phase-2-execution-graph.md)
359
420
  - [`Live Graph`](docs/live-graph.md)
360
421
  - [`Semantic Telemetry`](docs/semantic-telemetry.md)
361
- - [`Claude Code Hooks`](docs/claude-code-hooks.md)
422
+ - [`Claude Code Hooks`](docs/claude-hooks.md)
362
423
  - [`OpenAI Codex Hooks`](docs/codex-hooks.md)
363
424
  - [`Gemini CLI Hooks`](docs/gemini-hooks.md)
364
425
  - [`Cursor Hooks`](docs/cursor-hooks.md)