verdi-bridge 0.3.1__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 (327) hide show
  1. verdi_bridge-0.3.1/.github/ISSUE_TEMPLATE/bug_report.md +23 -0
  2. verdi_bridge-0.3.1/.github/pull_request_template.md +8 -0
  3. verdi_bridge-0.3.1/.github/workflows/publish.yml +76 -0
  4. verdi_bridge-0.3.1/.github/workflows/test.yml +19 -0
  5. verdi_bridge-0.3.1/.gitignore +13 -0
  6. verdi_bridge-0.3.1/AGENTS.md +19 -0
  7. verdi_bridge-0.3.1/CHANGELOG.md +61 -0
  8. verdi_bridge-0.3.1/CONTRIBUTING.md +18 -0
  9. verdi_bridge-0.3.1/LICENSE +21 -0
  10. verdi_bridge-0.3.1/NOTICE +34 -0
  11. verdi_bridge-0.3.1/PKG-INFO +122 -0
  12. verdi_bridge-0.3.1/README.md +100 -0
  13. verdi_bridge-0.3.1/README.zh-CN.md +79 -0
  14. verdi_bridge-0.3.1/SECURITY.md +21 -0
  15. verdi_bridge-0.3.1/assets/agent-demo-en.png +0 -0
  16. verdi_bridge-0.3.1/assets/agent-demo-native-en.png +0 -0
  17. verdi_bridge-0.3.1/assets/agent-demo-poster.png +0 -0
  18. verdi_bridge-0.3.1/assets/agent-demo-zh.png +0 -0
  19. verdi_bridge-0.3.1/assets/banner.svg +33 -0
  20. verdi_bridge-0.3.1/assets/video-poster.png +0 -0
  21. verdi_bridge-0.3.1/docs/agent-demo.md +65 -0
  22. verdi_bridge-0.3.1/docs/architecture.md +73 -0
  23. verdi_bridge-0.3.1/docs/blind-validation.md +70 -0
  24. verdi_bridge-0.3.1/docs/evidence/agent-demo-native-en/answer.md +23 -0
  25. verdi_bridge-0.3.1/docs/evidence/agent-demo-native-en/case-instructions.md +4 -0
  26. verdi_bridge-0.3.1/docs/evidence/agent-demo-native-en/earlier-take-wrong-line.md +19 -0
  27. verdi_bridge-0.3.1/docs/evidence/agent-demo-native-en/events.json +3442 -0
  28. verdi_bridge-0.3.1/docs/evidence/agent-demo-native-en/invocation.json +31 -0
  29. verdi_bridge-0.3.1/docs/evidence/agent-demo-native-en/prompt.txt +1 -0
  30. verdi_bridge-0.3.1/docs/evidence/agent-demo-native-en/recording-info.json +7 -0
  31. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v1/README.md +60 -0
  32. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v1/answer.md +24 -0
  33. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v1/case-instructions.md +1 -0
  34. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v1/events.json +1732 -0
  35. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v1/invocation.json +29 -0
  36. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v1/prompt.txt +1 -0
  37. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v1/recording-info.json +7 -0
  38. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/README.md +71 -0
  39. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/answer.md +26 -0
  40. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/case-instructions.md +3 -0
  41. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/events.json +2953 -0
  42. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/invocation.json +31 -0
  43. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/prompt.txt +1 -0
  44. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/recording-en.json +7 -0
  45. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/recording-zh.json +7 -0
  46. verdi_bridge-0.3.1/docs/evidence/archive/agent-demo-v2/translations-en.json +7 -0
  47. verdi_bridge-0.3.1/docs/evidence/blind-20261013/README.md +1 -0
  48. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/a-01-plan.json +11 -0
  49. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/a-01-trace.json +75 -0
  50. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/a-02-plan.json +67 -0
  51. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/a-02-trace.json +754 -0
  52. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/b-01-plan.json +11 -0
  53. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/b-01-trace.json +65 -0
  54. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/b-02-plan.json +73 -0
  55. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/b-02-trace.json +951 -0
  56. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/c-01-plan.json +11 -0
  57. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/c-01-trace.json +86 -0
  58. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/c-02-plan.json +77 -0
  59. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/c-02-trace.json +1072 -0
  60. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/case_a-repair.patch +11 -0
  61. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/case_b-repair.patch +11 -0
  62. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/case_c-repair.patch +11 -0
  63. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis/diagnosis.json +217 -0
  64. verdi_bridge-0.3.1/docs/evidence/blind-20261013/diagnosis-freeze.json +21 -0
  65. verdi_bridge-0.3.1/docs/evidence/blind-20261013/evaluation.json +251 -0
  66. verdi_bridge-0.3.1/docs/evidence/blind-20261013/ground-truth.json +290 -0
  67. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/baseline/seed-1/sim.log +12 -0
  68. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/baseline/seed-42/sim.log +12 -0
  69. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/baseline/seed-7/sim.log +12 -0
  70. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/mutant/seed-1/sim.log +13 -0
  71. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/mutant/seed-42/sim.log +13 -0
  72. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/mutant/seed-7/sim.log +13 -0
  73. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/repaired/seed-1/sim.log +12 -0
  74. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/repaired/seed-42/sim.log +12 -0
  75. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_a/repaired/seed-7/sim.log +12 -0
  76. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/baseline/seed-1/sim.log +12 -0
  77. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/baseline/seed-42/sim.log +12 -0
  78. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/baseline/seed-7/sim.log +12 -0
  79. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/mutant/seed-1/sim.log +51 -0
  80. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/mutant/seed-42/sim.log +64 -0
  81. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/mutant/seed-7/sim.log +58 -0
  82. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/repaired/seed-1/sim.log +12 -0
  83. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/repaired/seed-42/sim.log +12 -0
  84. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_b/repaired/seed-7/sim.log +12 -0
  85. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/baseline/seed-1/sim.log +12 -0
  86. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/baseline/seed-42/sim.log +12 -0
  87. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/baseline/seed-7/sim.log +12 -0
  88. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/mutant/seed-1/sim.log +13 -0
  89. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/mutant/seed-42/sim.log +13 -0
  90. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/mutant/seed-7/sim.log +13 -0
  91. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/repaired/seed-1/sim.log +12 -0
  92. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/repaired/seed-42/sim.log +12 -0
  93. verdi_bridge-0.3.1/docs/evidence/blind-20261013/logs/case_c/repaired/seed-7/sim.log +12 -0
  94. verdi_bridge-0.3.1/docs/evidence/blind-20261013/protocol.md +26 -0
  95. verdi_bridge-0.3.1/docs/evidence/blind-20261013/repair-audit.json +26 -0
  96. verdi_bridge-0.3.1/docs/evidence/hardening-v0.3/latency.json +759 -0
  97. verdi_bridge-0.3.1/docs/evidence/hardening-v0.3/live-checks.json +727 -0
  98. verdi_bridge-0.3.1/docs/evidence/hardening-v0.3/mcp-smoke.jsonl +7 -0
  99. verdi_bridge-0.3.1/docs/evidence/initial-stalled-read-pointer.json +906 -0
  100. verdi_bridge-0.3.1/docs/evidence/interval-v0.2/live-checks.json +307 -0
  101. verdi_bridge-0.3.1/docs/evidence/interval-v0.2/live-mcp.json +244 -0
  102. verdi_bridge-0.3.1/docs/evidence/interval-v0.2/live-pulse.json +62 -0
  103. verdi_bridge-0.3.1/docs/evidence/interval-v0.2/live.json +386 -0
  104. verdi_bridge-0.3.1/docs/evidence/multidesign/arbiter-mcp.json +1186 -0
  105. verdi_bridge-0.3.1/docs/evidence/multidesign/arbiter-multidesign.png +0 -0
  106. verdi_bridge-0.3.1/docs/evidence/multidesign/arbiter-navigation.json +46 -0
  107. verdi_bridge-0.3.1/docs/evidence/multidesign/axil-mcp.json +1283 -0
  108. verdi_bridge-0.3.1/docs/evidence/multidesign/axil-multidesign.png +0 -0
  109. verdi_bridge-0.3.1/docs/evidence/multidesign/axil-navigation.json +46 -0
  110. verdi_bridge-0.3.1/docs/evidence/multidesign/ground-truth.json +36 -0
  111. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/baseline/seed-1.log +12 -0
  112. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/baseline/seed-42.log +12 -0
  113. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/baseline/seed-7.log +12 -0
  114. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/mutant/seed-1.log +13 -0
  115. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/mutant/seed-42.log +13 -0
  116. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/mutant/seed-7.log +13 -0
  117. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/repaired/seed-1.log +12 -0
  118. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/repaired/seed-42.log +12 -0
  119. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/arbiter/repaired/seed-7.log +12 -0
  120. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/baseline/seed-1.log +12 -0
  121. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/baseline/seed-42.log +12 -0
  122. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/baseline/seed-7.log +12 -0
  123. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/mutant/seed-1.log +13 -0
  124. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/mutant/seed-42.log +13 -0
  125. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/mutant/seed-7.log +13 -0
  126. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/repaired/seed-1.log +12 -0
  127. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/repaired/seed-42.log +12 -0
  128. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/axil/repaired/seed-7.log +12 -0
  129. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/baseline/seed-1.log +12 -0
  130. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/baseline/seed-42.log +12 -0
  131. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/baseline/seed-7.log +12 -0
  132. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/mutant/seed-1.log +43 -0
  133. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/mutant/seed-42.log +44 -0
  134. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/mutant/seed-7.log +45 -0
  135. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/repaired/seed-1.log +12 -0
  136. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/repaired/seed-42.log +12 -0
  137. verdi_bridge-0.3.1/docs/evidence/multidesign/logs/uart/repaired/seed-7.log +12 -0
  138. verdi_bridge-0.3.1/docs/evidence/multidesign/repair-audit.json +24 -0
  139. verdi_bridge-0.3.1/docs/evidence/multidesign/simulation-results.json +245 -0
  140. verdi_bridge-0.3.1/docs/evidence/multidesign/uart-mcp.json +1000 -0
  141. verdi_bridge-0.3.1/docs/evidence/multidesign/uart-multidesign.png +0 -0
  142. verdi_bridge-0.3.1/docs/evidence/multidesign/uart-navigation.json +46 -0
  143. verdi_bridge-0.3.1/docs/evidence/mutation-manifest.json +20 -0
  144. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/answer-schema.json +1 -0
  145. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/answers-freeze.json +21 -0
  146. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/evaluation.json +338 -0
  147. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/exclusions.json +15 -0
  148. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-arbiter/arbiter.v +159 -0
  149. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-arbiter/priority_encoder.v +92 -0
  150. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-arbiter/seed-1/sim.log +12 -0
  151. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-arbiter/seed-42/sim.log +12 -0
  152. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-arbiter/seed-7/sim.log +12 -0
  153. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-arbiter/tb.sv +50 -0
  154. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-axil/axil_reg_if_wr.v +155 -0
  155. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-axil/seed-1/sim.log +12 -0
  156. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-axil/seed-42/sim.log +12 -0
  157. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-axil/seed-7/sim.log +12 -0
  158. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-axil/tb.sv +81 -0
  159. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-uart/seed-1/sim.log +12 -0
  160. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-uart/seed-42/sim.log +12 -0
  161. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-uart/seed-7/sim.log +12 -0
  162. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-uart/tb.sv +67 -0
  163. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/baseline-uart/uart_tx.v +115 -0
  164. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-01/prompt.txt +240 -0
  165. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-01/seed-1/sim.log +51 -0
  166. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-01/seed-42/sim.log +64 -0
  167. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-01/seed-7/sim.log +58 -0
  168. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-01/tb.sv +67 -0
  169. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-01/uart_tx.v +115 -0
  170. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-02/prompt.txt +253 -0
  171. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-02/seed-1/sim.log +64 -0
  172. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-02/seed-42/sim.log +45 -0
  173. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-02/seed-7/sim.log +54 -0
  174. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-02/tb.sv +67 -0
  175. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-02/uart_tx.v +115 -0
  176. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-03/prompt.txt +225 -0
  177. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-03/seed-1/sim.log +36 -0
  178. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-03/seed-42/sim.log +41 -0
  179. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-03/seed-7/sim.log +39 -0
  180. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-03/tb.sv +67 -0
  181. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-03/uart_tx.v +115 -0
  182. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-04/axil_reg_if_wr.v +155 -0
  183. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-04/prompt.txt +256 -0
  184. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-04/seed-1/sim.log +13 -0
  185. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-04/seed-42/sim.log +13 -0
  186. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-04/seed-7/sim.log +13 -0
  187. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-04/tb.sv +81 -0
  188. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-05/axil_reg_if_wr.v +155 -0
  189. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-05/prompt.txt +256 -0
  190. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-05/seed-1/sim.log +13 -0
  191. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-05/seed-42/sim.log +13 -0
  192. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-05/seed-7/sim.log +13 -0
  193. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-05/tb.sv +81 -0
  194. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-06/axil_reg_if_wr.v +155 -0
  195. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-06/prompt.txt +256 -0
  196. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-06/seed-1/sim.log +13 -0
  197. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-06/seed-42/sim.log +13 -0
  198. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-06/seed-7/sim.log +13 -0
  199. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-06/tb.sv +81 -0
  200. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-07/arbiter.v +159 -0
  201. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-07/priority_encoder.v +92 -0
  202. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-07/prompt.txt +323 -0
  203. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-07/seed-1/sim.log +13 -0
  204. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-07/seed-42/sim.log +13 -0
  205. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-07/seed-7/sim.log +13 -0
  206. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-07/tb.sv +50 -0
  207. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-08/arbiter.v +159 -0
  208. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-08/priority_encoder.v +92 -0
  209. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-08/prompt.txt +323 -0
  210. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-08/seed-1/sim.log +13 -0
  211. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-08/seed-42/sim.log +13 -0
  212. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-08/seed-7/sim.log +13 -0
  213. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/case-08/tb.sv +50 -0
  214. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/excluded-start-short/seed-1/sim.log +12 -0
  215. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/excluded-start-short/seed-42/sim.log +12 -0
  216. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/excluded-start-short/seed-7/sim.log +12 -0
  217. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/excluded-start-short/tb.sv +67 -0
  218. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/fixtures/excluded-start-short/uart_tx.v +115 -0
  219. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/freeze.json +237 -0
  220. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/infrastructure-failures.json +114 -0
  221. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/manifest.json +82 -0
  222. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-01-A/answer.json +1 -0
  223. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-01-A/events.jsonl +3 -0
  224. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-01-A/result.json +9 -0
  225. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-01-B/answer.json +1 -0
  226. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-01-B/events.jsonl +3 -0
  227. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-01-B/result.json +9 -0
  228. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-02-A/answer.json +1 -0
  229. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-02-A/events.jsonl +3 -0
  230. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-02-A/result.json +9 -0
  231. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-02-B/answer.json +1 -0
  232. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-02-B/events.jsonl +3 -0
  233. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-02-B/result.json +9 -0
  234. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-03-A/answer.json +1 -0
  235. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-03-A/events.jsonl +3 -0
  236. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-03-A/result.json +9 -0
  237. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-03-B/answer.json +1 -0
  238. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-03-B/events.jsonl +3 -0
  239. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-03-B/result.json +9 -0
  240. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-04-A/answer.json +1 -0
  241. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-04-A/events.jsonl +3 -0
  242. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-04-A/result.json +9 -0
  243. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-04-B/answer.json +1 -0
  244. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-04-B/events.jsonl +3 -0
  245. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-04-B/result.json +9 -0
  246. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-05-A/answer.json +1 -0
  247. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-05-A/events.jsonl +3 -0
  248. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-05-A/result.json +9 -0
  249. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-05-B/answer.json +1 -0
  250. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-05-B/events.jsonl +3 -0
  251. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-05-B/result.json +9 -0
  252. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-06-A/answer.json +1 -0
  253. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-06-A/events.jsonl +3 -0
  254. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-06-A/result.json +9 -0
  255. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-06-B/answer.json +1 -0
  256. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-06-B/events.jsonl +3 -0
  257. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-06-B/result.json +9 -0
  258. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-07-A/answer.json +1 -0
  259. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-07-A/events.jsonl +3 -0
  260. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-07-A/result.json +9 -0
  261. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-07-B/answer.json +1 -0
  262. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-07-B/events.jsonl +3 -0
  263. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-07-B/result.json +9 -0
  264. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-08-A/answer.json +1 -0
  265. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-08-A/events.jsonl +3 -0
  266. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-08-A/result.json +9 -0
  267. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-08-B/answer.json +1 -0
  268. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-08-B/events.jsonl +3 -0
  269. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/runs/case-08-B/result.json +9 -0
  270. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/schedule.json +46 -0
  271. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/settings.json +11 -0
  272. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/simulations.json +233 -0
  273. verdi_bridge-0.3.1/docs/evidence/paired-pilot-v0.3/upstreams.json +33 -0
  274. verdi_bridge-0.3.1/docs/evidence/simulation-results.json +74 -0
  275. verdi_bridge-0.3.1/docs/evidence/stalled-read-pointer.json +898 -0
  276. verdi_bridge-0.3.1/docs/evidence/stalled_read_pointer.png +0 -0
  277. verdi_bridge-0.3.1/docs/evidence/video-walkthrough/mcp-transcript.json +410 -0
  278. verdi_bridge-0.3.1/docs/evidence/video-walkthrough/video-info.json +8 -0
  279. verdi_bridge-0.3.1/docs/evidence/wrong-full-compare.json +766 -0
  280. verdi_bridge-0.3.1/docs/evidence/wrong_full_compare.png +0 -0
  281. verdi_bridge-0.3.1/docs/guide.md +154 -0
  282. verdi_bridge-0.3.1/docs/hardening-validation.md +38 -0
  283. verdi_bridge-0.3.1/docs/interval-validation.md +64 -0
  284. verdi_bridge-0.3.1/docs/multidesign-validation.md +94 -0
  285. verdi_bridge-0.3.1/docs/paired-evaluation.md +57 -0
  286. verdi_bridge-0.3.1/docs/paired-pilot.md +94 -0
  287. verdi_bridge-0.3.1/docs/publishing.md +43 -0
  288. verdi_bridge-0.3.1/docs/tools.md +124 -0
  289. verdi_bridge-0.3.1/docs/validation-index.md +27 -0
  290. verdi_bridge-0.3.1/docs/validation.md +82 -0
  291. verdi_bridge-0.3.1/docs/video-walkthrough.md +53 -0
  292. verdi_bridge-0.3.1/examples/axis_fifo/README.md +77 -0
  293. verdi_bridge-0.3.1/examples/axis_fifo/capture.py +59 -0
  294. verdi_bridge-0.3.1/examples/axis_fifo/check_results.py +28 -0
  295. verdi_bridge-0.3.1/examples/axis_fifo/prepare.py +49 -0
  296. verdi_bridge-0.3.1/examples/axis_fifo/run_vcs.sh +17 -0
  297. verdi_bridge-0.3.1/examples/axis_fifo/tb.sv +67 -0
  298. verdi_bridge-0.3.1/examples/interval_probe/README.md +22 -0
  299. verdi_bridge-0.3.1/examples/interval_probe/make_fixture.py +40 -0
  300. verdi_bridge-0.3.1/examples/multidesign/README.md +66 -0
  301. verdi_bridge-0.3.1/examples/multidesign/apply_repairs.py +34 -0
  302. verdi_bridge-0.3.1/examples/multidesign/arbiter_tb.sv +50 -0
  303. verdi_bridge-0.3.1/examples/multidesign/axil_tb.sv +81 -0
  304. verdi_bridge-0.3.1/examples/multidesign/check_results.py +44 -0
  305. verdi_bridge-0.3.1/examples/multidesign/plans/arbiter.json +85 -0
  306. verdi_bridge-0.3.1/examples/multidesign/plans/axil.json +89 -0
  307. verdi_bridge-0.3.1/examples/multidesign/plans/uart.json +85 -0
  308. verdi_bridge-0.3.1/examples/multidesign/prepare.py +36 -0
  309. verdi_bridge-0.3.1/examples/multidesign/record_mcp.py +43 -0
  310. verdi_bridge-0.3.1/examples/multidesign/repairs.json +20 -0
  311. verdi_bridge-0.3.1/examples/multidesign/run_vcs.sh +20 -0
  312. verdi_bridge-0.3.1/examples/multidesign/specs.json +33 -0
  313. verdi_bridge-0.3.1/examples/multidesign/uart_tb.sv +67 -0
  314. verdi_bridge-0.3.1/examples/paired_pilot/README.md +49 -0
  315. verdi_bridge-0.3.1/examples/paired_pilot/run.py +250 -0
  316. verdi_bridge-0.3.1/pyproject.toml +39 -0
  317. verdi_bridge-0.3.1/server.json +46 -0
  318. verdi_bridge-0.3.1/src/verdi_bridge/__init__.py +2 -0
  319. verdi_bridge-0.3.1/src/verdi_bridge/bridge.tcl +458 -0
  320. verdi_bridge-0.3.1/src/verdi_bridge/cli.py +30 -0
  321. verdi_bridge-0.3.1/src/verdi_bridge/client.py +303 -0
  322. verdi_bridge-0.3.1/src/verdi_bridge/remote_io.py +86 -0
  323. verdi_bridge-0.3.1/src/verdi_bridge/server.py +138 -0
  324. verdi_bridge-0.3.1/tests/fake_verdi.tcl +66 -0
  325. verdi_bridge-0.3.1/tests/test_benchmark_results.py +33 -0
  326. verdi_bridge-0.3.1/tests/test_bridge.py +370 -0
  327. verdi_bridge-0.3.1/uv.lock +875 -0
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report a reproducible bridge or tool problem
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+ ---
8
+
9
+ **Expected and observed behavior**
10
+
11
+ **Environment**
12
+ - Bridge version:
13
+ - Verdi version:
14
+ - Client/host OS and Python versions:
15
+ - Local or SSH connection:
16
+
17
+ **Reproduction**
18
+ Include the tool name, sanitized arguments and error output.
19
+ For timing issues, include the waveform's native time unit.
20
+
21
+ **Minimal public example**
22
+ If possible, use an open-source RTL fixture. Do not attach confidential RTL, FSDB,
23
+ credentials, license configuration or proprietary vendor documentation.
@@ -0,0 +1,8 @@
1
+ ## Change
2
+
3
+ Describe the problem and resulting behavior.
4
+
5
+ ## Validation
6
+
7
+ List the relevant tests. For vendor API changes, include the Verdi version and
8
+ actual observed result. Distinguish fake-GUI tests from real tool runs.
@@ -0,0 +1,76 @@
1
+ name: Publish package and MCP registry
2
+ on:
3
+ release:
4
+ types: [published]
5
+ workflow_dispatch:
6
+ inputs:
7
+ tag:
8
+ description: Existing release tag to publish (e.g. v0.3.1)
9
+ required: true
10
+ type: string
11
+ permissions:
12
+ contents: read
13
+ jobs:
14
+ build:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ ref: ${{ github.event.release.tag_name || inputs.tag }}
20
+ - uses: actions/setup-python@v5
21
+ with:
22
+ python-version: '3.12'
23
+ - run: sudo apt-get update && sudo apt-get install -y tcl8.6
24
+ - run: python -m pip install . build twine pytest ruff
25
+ - name: Verify matching versions
26
+ env:
27
+ RELEASE_TAG: ${{ github.event.release.tag_name || inputs.tag }}
28
+ run: |
29
+ python - <<'PY'
30
+ import json, os, tomllib
31
+ from verdi_bridge import __version__
32
+ project = tomllib.load(open('pyproject.toml', 'rb'))['project']
33
+ server = json.load(open('server.json'))
34
+ assert os.environ['RELEASE_TAG'] == 'v' + project['version']
35
+ assert __version__ == project['version'] == server['version'] == server['packages'][0]['version']
36
+ PY
37
+ - run: ruff check . && pytest -q
38
+ - run: python -m build && python -m twine check --strict dist/*
39
+ - uses: actions/upload-artifact@v4
40
+ with:
41
+ name: python-distributions
42
+ path: dist/
43
+ pypi:
44
+ needs: build
45
+ runs-on: ubuntu-latest
46
+ environment:
47
+ name: pypi
48
+ url: https://pypi.org/p/verdi-bridge
49
+ permissions:
50
+ id-token: write
51
+ steps:
52
+ - uses: actions/download-artifact@v4
53
+ with:
54
+ name: python-distributions
55
+ path: dist/
56
+ - uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ skip-existing: true
59
+ registry:
60
+ needs: pypi
61
+ runs-on: ubuntu-latest
62
+ permissions:
63
+ contents: read
64
+ id-token: write
65
+ steps:
66
+ - uses: actions/checkout@v4
67
+ with:
68
+ ref: ${{ github.event.release.tag_name || inputs.tag }}
69
+ - name: Install pinned MCP publisher
70
+ run: |
71
+ curl -fsSLO https://github.com/modelcontextprotocol/registry/releases/download/v1.8.1/mcp-publisher_linux_amd64.tar.gz
72
+ curl -fsSLO https://github.com/modelcontextprotocol/registry/releases/download/v1.8.1/registry_1.8.1_checksums.txt
73
+ grep ' mcp-publisher_linux_amd64.tar.gz$' registry_1.8.1_checksums.txt | sha256sum --check --strict
74
+ tar xzf mcp-publisher_linux_amd64.tar.gz mcp-publisher
75
+ - run: ./mcp-publisher login github-oidc
76
+ - run: ./mcp-publisher publish
@@ -0,0 +1,19 @@
1
+ name: Tests
2
+ on: [push, pull_request]
3
+ permissions:
4
+ contents: read
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ python: ['3.11', '3.12']
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - uses: actions/setup-python@v5
14
+ with:
15
+ python-version: ${{ matrix.python }}
16
+ - run: sudo apt-get update && sudo apt-get install -y tcl8.6
17
+ - run: python -m pip install . pytest ruff
18
+ - run: ruff check .
19
+ - run: pytest -q
@@ -0,0 +1,13 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.py[cod]
4
+ .pytest_cache/
5
+ .ruff_cache/
6
+ build/
7
+ dist/
8
+ *.egg-info/
9
+ .env
10
+ *.fsdb
11
+ *.vcd
12
+ novas.*
13
+ verdiLog/
@@ -0,0 +1,19 @@
1
+ # Working in this repository
2
+
3
+ Verdi Bridge connects an MCP client to a licensed, live Verdi GUI. Start with
4
+ README.md, docs/architecture.md and docs/tools.md.
5
+
6
+ - Keep tool arguments as data. Do not add arbitrary Tcl or shell evaluation to MCP.
7
+ - Consult installed vendor documentation before introducing Verdi API calls.
8
+ Do not redistribute vendor documentation, binaries or license settings.
9
+ - Preserve request IDs, session checks, source-root boundaries and timeout semantics.
10
+ - Keep core operations independent of any particular RTL module or testbench.
11
+ - Distinguish simulator doubles from real-Verdi validation. Record the vendor version.
12
+ - A driver location is not a fault label. Known injected mutations are not blind accuracy.
13
+ - Keep upstream revision, hash and license notices with benchmark fixtures.
14
+ - Exclude credentials, personal hostnames, runtime directories, FSDB/VCD and proprietary RTL
15
+ from commits. Public benchmark traces and logs are intentionally retained in docs/evidence.
16
+
17
+ Run `uv sync`, `uv run pytest`, `uv run ruff check .`, and `uv build` for code changes.
18
+ Documentation changes need link/example checks; they do not require rerunning licensed
19
+ simulation. Real EDA experiments require an explicitly authorized, licensed environment.
@@ -0,0 +1,61 @@
1
+ # Changelog
2
+
3
+ ## 0.3.1 — 2026-10-13
4
+
5
+ - Prepare PyPI distribution metadata, MCP Registry manifest, and an OIDC publishing workflow.
6
+ - Lead English/Chinese documentation with live waveform observation and GUI navigation.
7
+ - Add pip/uvx installation instructions and a central validation index; all paired-pilot
8
+ outcomes and limitations remain public. No runtime tool behavior changes.
9
+
10
+ ## 0.3.0 — 2026-10-13
11
+
12
+ - Convert physical times exactly to integer native ticks; reject off-grid times and
13
+ ticks beyond 2^53−1. Preserve exact `(start, end]` comparisons and decimal output.
14
+ - **Migration:** Dec is now unsigned (like UDec); request SDec for two’s complement.
15
+ `find_signals` is literal by default; pass `glob=True` for wildcard paths. Bus
16
+ brackets stay literal. Configure `VERDI_BRIDGE_LOG_ROOTS` separately for log reads.
17
+ - Bound interval work with a cooperative 200 ms default budget and resumable
18
+ per-signal partial results. One blocking vendor call cannot be preempted.
19
+ - Default both polling intervals to 10 ms; cache signal listings within a request.
20
+ Clock windows default to a physical 100 ns regardless of requested unit.
21
+ - Remove constant driver type fields; document per-Client and GUI serialization.
22
+ - 42 automated tests plus live Verdi checks. A 2×2 transport experiment measured
23
+ 106 ms to 47 ms persistent median latency after lowering polling.
24
+ - Run and publish an eight-mutation paired pilot: 8/8 exact localization in both
25
+ arms, zero diagnostic tool calls. No accuracy or agent call-count benefit shown.
26
+
27
+ Upgrade Python and the loaded Tcl adapter together in a fresh session directory.
28
+ The wire arguments changed; mixing adapter/package versions is unsupported.
29
+
30
+ ## 0.2.1 — 2026-10-13
31
+
32
+ - Detect an exited SSH process before writing another request, even if a surviving
33
+ descendant still holds a pipe. Never continue or replay through a dead transport.
34
+ - Make the local SSH shim exec its helper consistently on macOS and Linux.
35
+ - The initial v0.2.0 tag failed Linux CI on this disconnect scenario. Its history
36
+ is retained; v0.2.1 is the release build.
37
+
38
+ ## 0.2.0 — 2026-10-13
39
+
40
+ - Add bounded transition/window queries, recursive signal search, clock measurement,
41
+ log reads, and direct source-file reads (16 MCP tools total).
42
+ - Add optional observed-clock edge snapping to `jump_before_error` and signed Dec.
43
+ - Reuse a remote SSH/helper connection; preserve per-request identity, timeout
44
+ semantics and no automatic replay. Add explicit client cleanup and one-shot opt-out.
45
+ - Replace the FIFO-specific MCP prompt with generic `debug_failure`.
46
+ - Preserve raw driver locations and add structured entries with type `unknown`:
47
+ the vendor API does not identify assignment types.
48
+ - Add real-Verdi evidence, synthetic narrow-pulse probe, SSH-branch tests and paired
49
+ evaluation protocol. No new model accuracy or agent call-count claim.
50
+ - Move old agent demo materials under `docs/evidence/archive/` without deleting
51
+ recordings or historical evidence. Current README links retain native EN/ZH demos.
52
+
53
+ Upgrade both the Python package and the loaded Tcl adapter. Restart the adapter in
54
+ an isolated fresh GUI/session directory; upgrading Python alone does not add GUI
55
+ operations. `debug_fifo` prompt clients must switch to `debug_failure`.
56
+
57
+ ## 0.1.1 — 2026-10-13
58
+
59
+ Initial public ten-tool bridge with real-Verdi examples, multi-design injected
60
+ faults, independent-agent blind trial, and native English/Chinese demo recordings.
61
+ Installed from this repository; no PyPI upload.
@@ -0,0 +1,18 @@
1
+ # Contributing
2
+
3
+ Use Python 3.11+ and Tcl 8.6+. Run `uv sync`, `uv run pytest`, and
4
+ `uv run ruff check .`. Package with `uv build`.
5
+
6
+ Add tests for argument escaping, session/race behavior and time units when changing
7
+ the transport. Test vendor API changes on a real licensed Verdi instance and record
8
+ the exact version. The fake GUI tests only our protocol, not Synopsys behavior.
9
+ Do not add generic Tcl evaluation to the MCP surface.
10
+
11
+ Bug reports should include tool name, sanitized arguments, Verdi version, native time
12
+ unit, and expected/observed results. Do not upload proprietary RTL, FSDB files,
13
+ license server settings, credentials, or vendor documentation.
14
+
15
+ Benchmark additions need a pinned source revision, compatible license, passing
16
+ baseline, independent checker, deterministic mutation and honest diagnosis record.
17
+ Report missing evidence and failed cases. Keep mutation ground truth separate from
18
+ future blinded diagnosis inputs. A replay script is not a new LLM evaluation.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Verdi Bridge contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,34 @@
1
+ Verdi Bridge is an independent community project, not a Synopsys product.
2
+ No Synopsys binaries, libraries, or documentation are distributed.
3
+
4
+ External benchmark source excerpts in docs/evidence are derived from:
5
+ https://github.com/alexforencich/verilog-axis
6
+ commit 48ff7a7e2ef782cf778d47910cf85835c64b1bce, rtl/axis_fifo.v
7
+ Copyright (c) 2013-2023 Alex Forencich
8
+
9
+ Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ of this software and associated documentation files (the "Software"), to deal
11
+ in the Software without restriction, including without limitation the rights
12
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ copies of the Software, and to permit persons to whom the Software is
14
+ furnished to do so, subject to the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included in
17
+ all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ THE SOFTWARE.
26
+
27
+ Additional MIT benchmark excerpts (the permission terms above also apply):
28
+ - verilog-uart/rtl/uart_tx.v at 1b867e53af738e4a8bc7c839ca2f1c07f40382dc
29
+ Copyright (c) 2014-2017 Alex Forencich
30
+ - verilog-axi/rtl/axil_reg_if_wr.v at 516bd5dadc3365b7f9e225d2af8fe0b8d804fe53
31
+ Copyright (c) 2021 Alex Forencich
32
+ - verilog-axis/rtl/arbiter.v at 48ff7a7e2ef782cf778d47910cf85835c64b1bce
33
+ Copyright (c) 2014-2021 Alex Forencich
34
+ Their repositories are hosted under https://github.com/alexforencich/.
@@ -0,0 +1,122 @@
1
+ Metadata-Version: 2.5
2
+ Name: verdi-bridge
3
+ Version: 0.3.1
4
+ Summary: Let AI agents inspect waveforms and navigate RTL in a live Synopsys Verdi session
5
+ Project-URL: Repository, https://github.com/RuihongY/verdi_bridge
6
+ Project-URL: Documentation, https://github.com/RuihongY/verdi_bridge/blob/main/docs/guide.md
7
+ Project-URL: Issues, https://github.com/RuihongY/verdi_bridge/issues
8
+ Author: Ruihong Yin
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ License-File: NOTICE
12
+ Keywords: asic,eda,mcp,rtl,verdi,verification,waveform
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
18
+ Classifier: Topic :: Software Development :: Debuggers
19
+ Requires-Python: >=3.11
20
+ Requires-Dist: mcp<2,>=1.28
21
+ Description-Content-Type: text/markdown
22
+
23
+ <!-- mcp-name: io.github.RuihongY/verdi-bridge -->
24
+
25
+ <p align="center">
26
+ <img src="https://raw.githubusercontent.com/RuihongY/verdi_bridge/main/assets/banner.svg" alt="Verdi Bridge — connect AI agents to your live Verdi session" width="100%" />
27
+ </p>
28
+
29
+ <p align="center">
30
+ <a href="https://pypi.org/project/verdi-bridge/"><img src="https://img.shields.io/pypi/v/verdi-bridge" alt="PyPI" /></a>
31
+ <a href="https://github.com/RuihongY/verdi_bridge/actions/workflows/test.yml"><img src="https://github.com/RuihongY/verdi_bridge/actions/workflows/test.yml/badge.svg" alt="Tests" /></a>
32
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT license" /></a>
33
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/pyproject.toml"><img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python 3.11 or newer" /></a>
34
+ </p>
35
+
36
+ <p align="center">
37
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/docs/guide.md"><b>Getting started</b></a> ·
38
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/docs/tools.md">Tool reference</a> ·
39
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/docs/architecture.md">Architecture</a> ·
40
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/README.zh-CN.md">中文</a>
41
+ </p>
42
+
43
+ # Give your RTL debugging agent eyes on the waveform
44
+
45
+ Connect your AI agent to **live Synopsys Verdi**. Let it find signals, inspect
46
+ transitions, move through simulation time, and open the driving RTL—all in the
47
+ same GUI you use to debug.
48
+
49
+ > “Add the FIFO read/write pointers, go 20 cycles before the error, and investigate why full stayed high.”
50
+ >
51
+ > “When did BVALID drop? Show the handshake signals and the code that drives it.”
52
+
53
+ Verdi Bridge turns those requests into observations from your simulation and
54
+ visible actions in nWave and nTrace. The agent reasons; the bridge observes.
55
+ Sixteen typed MCP tools work locally or over SSH with your existing Verdi setup.
56
+
57
+ ## Video walkthrough
58
+
59
+ Ask an agent to investigate a bug, then watch it choose signals, inspect live waveforms and navigate RTL. A 1m38s silent demo: an English prompt and original English agent replies beside synchronized Verdi capture. This is a separate English-language run, not a translation. Tool calls are selected by the agent, not a replay script.
60
+
61
+ https://github.com/user-attachments/assets/b041c1bd-4be5-4040-b281-2f15001b1e35
62
+
63
+ [English video](https://github.com/user-attachments/assets/b041c1bd-4be5-4040-b281-2f15001b1e35) · [中文视频](https://github.com/user-attachments/assets/3294e374-5c43-4b67-8e20-b8a6f319d8f7)
64
+
65
+ [How this was recorded](https://github.com/RuihongY/verdi_bridge/blob/main/docs/agent-demo.md) · [Installation tutorial](https://github.com/RuihongY/verdi_bridge/blob/main/docs/video-walkthrough.md)
66
+
67
+ ## Quick start
68
+
69
+ ```sh
70
+ pip install verdi-bridge
71
+ ```
72
+
73
+ Or run without a checkout using uv:
74
+
75
+ ```sh
76
+ uvx verdi-bridge tcl-path
77
+ ```
78
+
79
+ This prints the bundled Tcl adapter path. [Load it in Verdi and connect your MCP
80
+ client](https://github.com/RuihongY/verdi_bridge/blob/main/docs/guide.md), then use `uvx verdi-bridge serve` as the stdio server.
81
+ A licensed Verdi installation is required. Client: Python 3.11+; remote host:
82
+ Python 3.6+ and Verdi's Tcl 8.6. No vendor software is bundled.
83
+
84
+ ## What you can do
85
+
86
+ | Workflow | Tools |
87
+ |---|---|
88
+ | Find and display signals | `find_signals`, `browse_scope`, `add_signals` |
89
+ | Navigate an error window | `set_cursor`, `set_time_window`, `jump_before_error` |
90
+ | Inspect actual waveform values | `find_transitions`, `get_value_changes`, `sample_signals` |
91
+ | Discover error times and clocks | `read_log`, `measure_clock` |
92
+ | Follow drivers into RTL | `trace_driver`, `read_source`, `read_source_file`, `goto_source` |
93
+
94
+ Waveform queries preserve X/Z values. Time arguments carry explicit units.
95
+ The same interface works with different RTL designs; no FIFO-specific logic is
96
+ built into the bridge. See the [Python and CLI examples](https://github.com/RuihongY/verdi_bridge/blob/main/docs/tools.md).
97
+
98
+ ## See it in a real debugging session
99
+
100
+ Tested with UART TX, AXI-Lite, FIFO and arbiter RTL in licensed VCS/Verdi sessions.
101
+ The agent can put relevant signals on screen, inspect their changes, and navigate
102
+ to source while you follow along.
103
+
104
+ ![UART waveform and source in Verdi](https://raw.githubusercontent.com/RuihongY/verdi_bridge/main/docs/evidence/multidesign/uart-multidesign.png)
105
+
106
+ [Real RTL examples](https://github.com/RuihongY/verdi_bridge/blob/main/docs/multidesign-validation.md) ·
107
+ [Blind debugging trial](https://github.com/RuihongY/verdi_bridge/blob/main/docs/blind-validation.md) ·
108
+ [Validation results and limitations](https://github.com/RuihongY/verdi_bridge/blob/main/docs/validation-index.md)
109
+
110
+ ## Project status
111
+
112
+ Experimental **v0.3.1**. Tested with Verdi T-2022.06-SP2-1 on Linux.
113
+ New-session startup is verified; attachment to an arbitrary existing GUI is not yet
114
+ separately validated. The bridge does not automatically compile, edit or repair RTL.
115
+
116
+ [Contributing](https://github.com/RuihongY/verdi_bridge/blob/main/CONTRIBUTING.md) · [Trust boundary](https://github.com/RuihongY/verdi_bridge/blob/main/SECURITY.md) ·
117
+ [Validation limits](https://github.com/RuihongY/verdi_bridge/blob/main/docs/validation.md) · [Report an issue](https://github.com/RuihongY/verdi_bridge/issues)
118
+
119
+ Inspired by the agent-to-EDA-tool workflow of
120
+ [virtuoso-bridge-lite](https://github.com/Arcadia-1/virtuoso-bridge-lite).
121
+ This is an independent implementation. MIT licensed; see [third-party notices](https://github.com/RuihongY/verdi_bridge/blob/main/NOTICE).
122
+ Not affiliated with Synopsys. Verdi is a Synopsys trademark.
@@ -0,0 +1,100 @@
1
+ <!-- mcp-name: io.github.RuihongY/verdi-bridge -->
2
+
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/RuihongY/verdi_bridge/main/assets/banner.svg" alt="Verdi Bridge — connect AI agents to your live Verdi session" width="100%" />
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://pypi.org/project/verdi-bridge/"><img src="https://img.shields.io/pypi/v/verdi-bridge" alt="PyPI" /></a>
9
+ <a href="https://github.com/RuihongY/verdi_bridge/actions/workflows/test.yml"><img src="https://github.com/RuihongY/verdi_bridge/actions/workflows/test.yml/badge.svg" alt="Tests" /></a>
10
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT license" /></a>
11
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/pyproject.toml"><img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python 3.11 or newer" /></a>
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/docs/guide.md"><b>Getting started</b></a> ·
16
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/docs/tools.md">Tool reference</a> ·
17
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/docs/architecture.md">Architecture</a> ·
18
+ <a href="https://github.com/RuihongY/verdi_bridge/blob/main/README.zh-CN.md">中文</a>
19
+ </p>
20
+
21
+ # Give your RTL debugging agent eyes on the waveform
22
+
23
+ Connect your AI agent to **live Synopsys Verdi**. Let it find signals, inspect
24
+ transitions, move through simulation time, and open the driving RTL—all in the
25
+ same GUI you use to debug.
26
+
27
+ > “Add the FIFO read/write pointers, go 20 cycles before the error, and investigate why full stayed high.”
28
+ >
29
+ > “When did BVALID drop? Show the handshake signals and the code that drives it.”
30
+
31
+ Verdi Bridge turns those requests into observations from your simulation and
32
+ visible actions in nWave and nTrace. The agent reasons; the bridge observes.
33
+ Sixteen typed MCP tools work locally or over SSH with your existing Verdi setup.
34
+
35
+ ## Video walkthrough
36
+
37
+ Ask an agent to investigate a bug, then watch it choose signals, inspect live waveforms and navigate RTL. A 1m38s silent demo: an English prompt and original English agent replies beside synchronized Verdi capture. This is a separate English-language run, not a translation. Tool calls are selected by the agent, not a replay script.
38
+
39
+ https://github.com/user-attachments/assets/b041c1bd-4be5-4040-b281-2f15001b1e35
40
+
41
+ [English video](https://github.com/user-attachments/assets/b041c1bd-4be5-4040-b281-2f15001b1e35) · [中文视频](https://github.com/user-attachments/assets/3294e374-5c43-4b67-8e20-b8a6f319d8f7)
42
+
43
+ [How this was recorded](https://github.com/RuihongY/verdi_bridge/blob/main/docs/agent-demo.md) · [Installation tutorial](https://github.com/RuihongY/verdi_bridge/blob/main/docs/video-walkthrough.md)
44
+
45
+ ## Quick start
46
+
47
+ ```sh
48
+ pip install verdi-bridge
49
+ ```
50
+
51
+ Or run without a checkout using uv:
52
+
53
+ ```sh
54
+ uvx verdi-bridge tcl-path
55
+ ```
56
+
57
+ This prints the bundled Tcl adapter path. [Load it in Verdi and connect your MCP
58
+ client](https://github.com/RuihongY/verdi_bridge/blob/main/docs/guide.md), then use `uvx verdi-bridge serve` as the stdio server.
59
+ A licensed Verdi installation is required. Client: Python 3.11+; remote host:
60
+ Python 3.6+ and Verdi's Tcl 8.6. No vendor software is bundled.
61
+
62
+ ## What you can do
63
+
64
+ | Workflow | Tools |
65
+ |---|---|
66
+ | Find and display signals | `find_signals`, `browse_scope`, `add_signals` |
67
+ | Navigate an error window | `set_cursor`, `set_time_window`, `jump_before_error` |
68
+ | Inspect actual waveform values | `find_transitions`, `get_value_changes`, `sample_signals` |
69
+ | Discover error times and clocks | `read_log`, `measure_clock` |
70
+ | Follow drivers into RTL | `trace_driver`, `read_source`, `read_source_file`, `goto_source` |
71
+
72
+ Waveform queries preserve X/Z values. Time arguments carry explicit units.
73
+ The same interface works with different RTL designs; no FIFO-specific logic is
74
+ built into the bridge. See the [Python and CLI examples](https://github.com/RuihongY/verdi_bridge/blob/main/docs/tools.md).
75
+
76
+ ## See it in a real debugging session
77
+
78
+ Tested with UART TX, AXI-Lite, FIFO and arbiter RTL in licensed VCS/Verdi sessions.
79
+ The agent can put relevant signals on screen, inspect their changes, and navigate
80
+ to source while you follow along.
81
+
82
+ ![UART waveform and source in Verdi](https://raw.githubusercontent.com/RuihongY/verdi_bridge/main/docs/evidence/multidesign/uart-multidesign.png)
83
+
84
+ [Real RTL examples](https://github.com/RuihongY/verdi_bridge/blob/main/docs/multidesign-validation.md) ·
85
+ [Blind debugging trial](https://github.com/RuihongY/verdi_bridge/blob/main/docs/blind-validation.md) ·
86
+ [Validation results and limitations](https://github.com/RuihongY/verdi_bridge/blob/main/docs/validation-index.md)
87
+
88
+ ## Project status
89
+
90
+ Experimental **v0.3.1**. Tested with Verdi T-2022.06-SP2-1 on Linux.
91
+ New-session startup is verified; attachment to an arbitrary existing GUI is not yet
92
+ separately validated. The bridge does not automatically compile, edit or repair RTL.
93
+
94
+ [Contributing](https://github.com/RuihongY/verdi_bridge/blob/main/CONTRIBUTING.md) · [Trust boundary](https://github.com/RuihongY/verdi_bridge/blob/main/SECURITY.md) ·
95
+ [Validation limits](https://github.com/RuihongY/verdi_bridge/blob/main/docs/validation.md) · [Report an issue](https://github.com/RuihongY/verdi_bridge/issues)
96
+
97
+ Inspired by the agent-to-EDA-tool workflow of
98
+ [virtuoso-bridge-lite](https://github.com/Arcadia-1/virtuoso-bridge-lite).
99
+ This is an independent implementation. MIT licensed; see [third-party notices](https://github.com/RuihongY/verdi_bridge/blob/main/NOTICE).
100
+ Not affiliated with Synopsys. Verdi is a Synopsys trademark.
@@ -0,0 +1,79 @@
1
+ <p align="center">
2
+ <img src="assets/banner.svg" alt="Verdi Bridge" width="100%" />
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="README.md">English</a> ·
7
+ <a href="docs/guide.md">安装与连接</a> ·
8
+ <a href="docs/tools.md">工具接口</a> ·
9
+ <a href="docs/multidesign-validation.md">实测报告</a>
10
+ </p>
11
+
12
+ # 让 RTL 调试 agent 看见真实波形
13
+
14
+ 把 AI 助手接入正在运行的 **Synopsys Verdi**:找信号、查跳变、跳转时间、打开驱动源码,
15
+ 直接操作你调试时使用的 nWave 和 nTrace 界面。
16
+
17
+ > “把 FIFO 的读写指针加进波形,跳到报错前 20 个周期,看看 full 为什么没撤。”
18
+ >
19
+ > “BVALID 到底什么时候掉下去了?把握手信号和驱动它的源码展示出来。”
20
+
21
+ Agent 负责推理,bridge 返回实际仿真证据;操作过程在 Verdi 中可见。
22
+ 16 个通用 MCP 工具,支持本机和 SSH 连接。
23
+
24
+ ## 视频教程
25
+
26
+ 输入“现在有个 bug,帮我抓相关信号、分析问题”,看 agent 自己选信号、查波形并定位源码。约 1 分 56 秒,中文原文无声演示:左侧为真实 Codex 会话事件的同步排版,右侧为同次运行的 Verdi 录屏,未预编排工具调用。
27
+
28
+ https://github.com/user-attachments/assets/3294e374-5c43-4b67-8e20-b8a6f319d8f7
29
+
30
+ [English 原生会话](https://github.com/user-attachments/assets/b041c1bd-4be5-4040-b281-2f15001b1e35) · [中文视频](https://github.com/user-attachments/assets/3294e374-5c43-4b67-8e20-b8a6f319d8f7)
31
+
32
+ [录制说明与真实调用记录](docs/agent-demo.md) · [安装教程](docs/video-walkthrough.md)
33
+
34
+ ## 开始使用
35
+
36
+ ```sh
37
+ pip install verdi-bridge
38
+ ```
39
+
40
+ 也可以不 clone 仓库,直接运行:
41
+
42
+ ```sh
43
+ uvx verdi-bridge tcl-path
44
+ ```
45
+
46
+ 按[连接指南](docs/guide.md)在 Verdi 中加载输出路径对应的 Tcl 适配器,
47
+ 再用 `uvx verdi-bridge serve` 配置 MCP 客户端。需要已有的 Verdi 安装与许可证;
48
+ 客户端 Python 3.11+,远程服务器 Python 3.6+ 和 Tcl 8.6。
49
+
50
+ ## 能做什么
51
+
52
+ - 递归搜索信号、浏览设计层级,把信号加入波形。
53
+ - 测量局部时钟周期和相位,向前定位并可选对齐到实际上升沿。
54
+ - 查询指定时刻的值或整个窗口内的变化点,保留 X/Z,支持无符号 Dec 和显式有符号 SDec。
55
+ - 读取错误日志,追踪驱动,按信号或文件读取带行号的源码并跳转。
56
+
57
+ 工具没有写死 FIFO 的信号或诊断规则,同一套接口已用于 UART、AXI-Lite 和仲裁器。
58
+
59
+ ## 真实调试过程
60
+
61
+ 已在 VCS/Verdi 中测试 UART、AXI-Lite、FIFO 和仲裁器 RTL。
62
+ Agent 可以把相关信号加入波形,读取变化点,再跳转到源码;你可以在同一界面跟随检查。
63
+
64
+ ![Verdi 中的 UART 波形和源码](docs/evidence/multidesign/uart-multidesign.png)
65
+
66
+ [实际 RTL 案例](docs/multidesign-validation.md) · [独立盲测](docs/blind-validation.md) ·
67
+ [验证结果与限制(包含 A/B 对照)](docs/validation-index.md)
68
+
69
+ ## 当前状态
70
+
71
+ 实验版 **v0.3.1**,实测版本为 Linux 上的 Verdi T-2022.06-SP2-1。
72
+ 已验证新建 Verdi 会话的连接;接入任意已有 GUI 尚未单独验证。
73
+ 桥接工具本身不会自动编译、修改或修复 RTL。
74
+
75
+ 项目思路参考 [virtuoso-bridge-lite](https://github.com/Arcadia-1/virtuoso-bridge-lite),
76
+ 代码为独立实现,采用 MIT 许可。项目与 Synopsys 无隶属关系。
77
+
78
+ [参与开发](CONTRIBUTING.md) · [安全边界](SECURITY.md) ·
79
+ [提交问题](https://github.com/RuihongY/verdi_bridge/issues)
@@ -0,0 +1,21 @@
1
+ # Trust boundary
2
+
3
+ The bridge is intended for one trusted OS user and a local stdio MCP client, with
4
+ optional SSH to the same user's licensed EDA host. It exposes an operation allowlist,
5
+ not generic code execution. It does not provide isolation from another process
6
+ running as that user. Treat source/log content as untrusted data in LLM prompts.
7
+
8
+ Keep the bridge directory owner-only (0700), use trusted parent directories, and
9
+ allow only intended source and log roots. `VERDI_BRIDGE_SOURCE_ROOTS` governs
10
+ source reads; `VERDI_BRIDGE_LOG_ROOTS` independently governs logs. Both default
11
+ to the GUI working directory. Do not expose the filesystem to another user or
12
+ publish SSH credentials. Tool results contain design data: choose an appropriate
13
+ LLM deployment before connecting confidential designs.
14
+
15
+ A timeout may leave an already running GUI action unresolved. Inspect the GUI and
16
+ status before retrying. Use a new directory on GUI restart. Late results remain
17
+ available for inspection, but UUID/session checks prevent their reuse as new results.
18
+
19
+ For private vulnerability reporting, contact the repository maintainer through the
20
+ hosting platform's private reporting mechanism if enabled. No public endpoint or
21
+ maintainer email is invented by this initial local release.