wafer-core 0.1.22__tar.gz → 0.1.24__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 (705) hide show
  1. {wafer_core-0.1.22 → wafer_core-0.1.24}/PKG-INFO +1 -1
  2. {wafer_core-0.1.22 → wafer_core-0.1.24}/pyproject.toml +1 -1
  3. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/environments/coding.py +4 -0
  4. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/targets/runpod.py +154 -15
  5. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/__init__.py +7 -0
  6. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/file_tools/grep_tool.py +56 -29
  7. wafer_core-0.1.24/wafer_core/tools/search_docs_tool.py +196 -0
  8. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/static_checker.py +175 -3
  9. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/targets/config.py +17 -3
  10. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/modal_execution/modal_app.py +14 -27
  11. {wafer_core-0.1.22 → wafer_core-0.1.24}/.gitignore +0 -0
  12. {wafer_core-0.1.22 → wafer_core-0.1.24}/README.md +0 -0
  13. {wafer_core-0.1.22 → wafer_core-0.1.24}/pyproject.toml.bak +0 -0
  14. {wafer_core-0.1.22 → wafer_core-0.1.24}/run_cuda_grep.py +0 -0
  15. {wafer_core-0.1.22 → wafer_core-0.1.24}/test_gpu_e2e.py +0 -0
  16. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/__init__.py +0 -0
  17. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/perfetto/README.md +0 -0
  18. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/perfetto/__init__.py +0 -0
  19. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/perfetto/test_perfetto_integration.py +0 -0
  20. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/perfetto/test_perfetto_tool.py +0 -0
  21. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/perfetto/test_trace_manager.py +0 -0
  22. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/perfetto/test_trace_processor.py +0 -0
  23. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_async_ssh_upload.py +0 -0
  24. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_capture_tool.py +0 -0
  25. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_config.py +0 -0
  26. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_eval_interrupt_resume.py +0 -0
  27. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_isa_analysis_tools.py +0 -0
  28. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_kernel_scope.py +0 -0
  29. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_nested_progress.py +0 -0
  30. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_rocprof_tools.py +0 -0
  31. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_rocprofiler_compute.py +0 -0
  32. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_roofline.py +0 -0
  33. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_sandbox.py +0 -0
  34. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/test_tracelens_tools.py +0 -0
  35. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/tracelens/__init__.py +0 -0
  36. {wafer_core-0.1.22 → wafer_core-0.1.24}/tests/tracelens/test_finder.py +0 -0
  37. {wafer_core-0.1.22 → wafer_core-0.1.24}/uv.lock +0 -0
  38. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/__init__.py +0 -0
  39. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/async_ssh.py +0 -0
  40. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/auth.py +0 -0
  41. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/config/__init__.py +0 -0
  42. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/config/loader.py +0 -0
  43. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/config/schema.py +0 -0
  44. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/environments/__init__.py +0 -0
  45. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/environments/gpumode.py +0 -0
  46. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/gpu.py +0 -0
  47. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/gpu_detect.py +0 -0
  48. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/__init__.py +0 -0
  49. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/__init__.py +0 -0
  50. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/amdgcn/__init__.py +0 -0
  51. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/amdgcn/analyzer.py +0 -0
  52. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/amdgcn/instruction_db.py +0 -0
  53. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/amdgcn/parser.py +0 -0
  54. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/amdgcn/types.py +0 -0
  55. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/api.py +0 -0
  56. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/correlation/__init__.py +0 -0
  57. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/correlation/mapper.py +0 -0
  58. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/llvm_ir/__init__.py +0 -0
  59. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/llvm_ir/analyzer.py +0 -0
  60. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/llvm_ir/parser.py +0 -0
  61. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/llvm_ir/types.py +0 -0
  62. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/metrics/__init__.py +0 -0
  63. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/metrics/occupancy.py +0 -0
  64. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/targets/__init__.py +0 -0
  65. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/targets/specs.py +0 -0
  66. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/ttgir/__init__.py +0 -0
  67. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/ttgir/analyzer.py +0 -0
  68. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/ttgir/parser.py +0 -0
  69. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/kernel_scope/ttgir/types.py +0 -0
  70. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/nsys/__init__.py +0 -0
  71. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/nsys/analysis.py +0 -0
  72. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/nsys/discovery.py +0 -0
  73. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/nsys/export.py +0 -0
  74. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/nsys/extraction.py +0 -0
  75. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/nsys/main.py +0 -0
  76. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/nsys/parsing.py +0 -0
  77. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/perfetto/__init__.py +0 -0
  78. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/perfetto/build_trace_processor.py +0 -0
  79. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/perfetto/perfetto_tool.py +0 -0
  80. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/perfetto/trace_manager.py +0 -0
  81. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/perfetto/trace_processor.py +0 -0
  82. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/__init__.py +0 -0
  83. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/__init__.py +0 -0
  84. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/analyzer.py +0 -0
  85. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/finder.py +0 -0
  86. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/VERSION +0 -0
  87. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/__init__.py +0 -0
  88. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/__main__.py +0 -0
  89. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/analysis_base.py +0 -0
  90. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/analysis_webui.py +0 -0
  91. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/default.css +0 -0
  92. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/favicon.ico +0 -0
  93. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/css/font-awesome.css +0 -0
  94. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/css/font-awesome.min.css +0 -0
  95. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  96. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  97. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -0
  98. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  99. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  100. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/bordered-pulled.less +0 -0
  101. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/core.less +0 -0
  102. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/fixed-width.less +0 -0
  103. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/font-awesome.less +0 -0
  104. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/icons.less +0 -0
  105. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/larger.less +0 -0
  106. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/list.less +0 -0
  107. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/mixins.less +0 -0
  108. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/path.less +0 -0
  109. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/rotated-flipped.less +0 -0
  110. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/spinning.less +0 -0
  111. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/stacked.less +0 -0
  112. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/less/variables.less +0 -0
  113. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_bordered-pulled.scss +0 -0
  114. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_core.scss +0 -0
  115. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_fixed-width.scss +0 -0
  116. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_icons.scss +0 -0
  117. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_larger.scss +0 -0
  118. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_list.scss +0 -0
  119. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_mixins.scss +0 -0
  120. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_path.scss +0 -0
  121. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_rotated-flipped.scss +0 -0
  122. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_spinning.scss +0 -0
  123. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_stacked.scss +0 -0
  124. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/_variables.scss +0 -0
  125. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/font-awesome/scss/font-awesome.scss +0 -0
  126. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/animation.css +0 -0
  127. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-codes.css +0 -0
  128. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-embedded.css +0 -0
  129. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-ie7-codes.css +0 -0
  130. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello-ie7.css +0 -0
  131. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/css/fontello.css +0 -0
  132. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.eot +0 -0
  133. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.svg +0 -0
  134. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.ttf +0 -0
  135. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fontello/font/fontello.woff +0 -0
  136. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.eot +0 -0
  137. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.svg +0 -0
  138. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.ttf +0 -0
  139. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-bold-webfont.woff +0 -0
  140. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.eot +0 -0
  141. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.svg +0 -0
  142. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.ttf +0 -0
  143. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-italic-webfont.woff +0 -0
  144. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.eot +0 -0
  145. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.svg +0 -0
  146. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.ttf +0 -0
  147. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/librebaskerville/librebaskerville-regular-webfont.woff +0 -0
  148. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.eot +0 -0
  149. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.svg +0 -0
  150. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.ttf +0 -0
  151. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Bold-webfont.woff +0 -0
  152. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.eot +0 -0
  153. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.svg +0 -0
  154. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.ttf +0 -0
  155. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-BoldItalic-webfont.woff +0 -0
  156. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.eot +0 -0
  157. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.svg +0 -0
  158. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.ttf +0 -0
  159. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBold-webfont.woff +0 -0
  160. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.eot +0 -0
  161. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.svg +0 -0
  162. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.ttf +0 -0
  163. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-ExtraBoldItalic-webfont.woff +0 -0
  164. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.eot +0 -0
  165. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.svg +0 -0
  166. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.ttf +0 -0
  167. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Italic-webfont.woff +0 -0
  168. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.eot +0 -0
  169. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.svg +0 -0
  170. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.ttf +0 -0
  171. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Light-webfont.woff +0 -0
  172. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.eot +0 -0
  173. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.svg +0 -0
  174. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.ttf +0 -0
  175. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-LightItalic-webfont.woff +0 -0
  176. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.eot +0 -0
  177. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.svg +0 -0
  178. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.ttf +0 -0
  179. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Regular-webfont.woff +0 -0
  180. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.eot +0 -0
  181. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.svg +0 -0
  182. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.ttf +0 -0
  183. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-Semibold-webfont.woff +0 -0
  184. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.eot +0 -0
  185. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.svg +0 -0
  186. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  187. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts/opensans/OpenSans-SemiboldItalic-webfont.woff +0 -0
  188. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/fonts.css +0 -0
  189. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/layout.css +0 -0
  190. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/magnific-popup.css +0 -0
  191. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/assets/media-queries.css +0 -0
  192. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/config.py +0 -0
  193. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/launcher.py +0 -0
  194. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0000_top_stats.yaml +0 -0
  195. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0100_system_info.yaml +0 -0
  196. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0200_system-speed-of-light.yaml +0 -0
  197. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0300_mem_chart.yaml +0 -0
  198. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0500_command-processor.yaml +0 -0
  199. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0600_shader-processor-input.yaml +0 -0
  200. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/0700_wavefront-launch.yaml +0 -0
  201. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1000_compute-unit-instruction-mix.yaml +0 -0
  202. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1100_compute-unit-compute-pipeline.yaml +0 -0
  203. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1200_lds.yaml +0 -0
  204. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1300_instruction-cache.yaml +0 -0
  205. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1400_constant-cache.yaml +0 -0
  206. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1500_TA_and_TD.yaml +0 -0
  207. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1600_L1_cache.yaml +0 -0
  208. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1700_L2_cache.yaml +0 -0
  209. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/1800_L2_cache_per_channel.yaml +0 -0
  210. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx908/2100_pc_sampling.yaml +0 -0
  211. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0000_top_stats.yaml +0 -0
  212. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0100_system_info.yaml +0 -0
  213. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0200_system-speed-of-light.yaml +0 -0
  214. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0300_mem_chart.yaml +0 -0
  215. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0400_roofline_info.yaml +0 -0
  216. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0500_command-processor.yaml +0 -0
  217. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0600_shader-processor-input.yaml +0 -0
  218. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/0700_wavefront-launch.yaml +0 -0
  219. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1000_compute-unit-instruction-mix.yaml +0 -0
  220. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1100_compute-unit-compute-pipeline.yaml +0 -0
  221. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1200_lds.yaml +0 -0
  222. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1300_instruction-cache.yaml +0 -0
  223. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1400_constant-cache.yaml +0 -0
  224. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1500_TA_and_TD.yaml +0 -0
  225. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1600_L1_cache.yaml +0 -0
  226. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1700_L2_cache.yaml +0 -0
  227. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/1800_L2_cache_per_channel.yaml +0 -0
  228. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx90a/2100_pc_sampling.yaml +0 -0
  229. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0000_top_stats.yaml +0 -0
  230. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0100_system_info.yaml +0 -0
  231. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0200_system-speed-of-light.yaml +0 -0
  232. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0300_mem_chart.yaml +0 -0
  233. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0400_roofline_info.yaml +0 -0
  234. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0500_command-processor.yaml +0 -0
  235. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0600_shader-processor-input.yaml +0 -0
  236. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/0700_wavefront-launch.yaml +0 -0
  237. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1000_compute-unit-instruction-mix.yaml +0 -0
  238. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1100_compute-unit-compute-pipeline.yaml +0 -0
  239. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1200_lds.yaml +0 -0
  240. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1300_instruction-cache.yaml +0 -0
  241. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1400_constant-cache.yaml +0 -0
  242. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1500_TA_and_TD.yaml +0 -0
  243. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1600_L1_cache.yaml +0 -0
  244. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1700_L2_cache.yaml +0 -0
  245. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/1800_L2_cache_per_channel.yaml +0 -0
  246. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx940/2100_pc_sampling.yaml +0 -0
  247. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0000_top_stats.yaml +0 -0
  248. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0100_system_info.yaml +0 -0
  249. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0200_system-speed-of-light.yaml +0 -0
  250. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0300_mem_chart.yaml +0 -0
  251. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0400_roofline_info.yaml +0 -0
  252. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0500_command-processor.yaml +0 -0
  253. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0600_shader-processor-input.yaml +0 -0
  254. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/0700_wavefront-launch.yaml +0 -0
  255. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1000_compute-unit-instruction-mix.yaml +0 -0
  256. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1100_compute-unit-compute-pipeline.yaml +0 -0
  257. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1200_lds.yaml +0 -0
  258. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1300_instruction-cache.yaml +0 -0
  259. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1400_constant-cache.yaml +0 -0
  260. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1500_TA_and_TD.yaml +0 -0
  261. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1600_L1_cache.yaml +0 -0
  262. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1700_L2_cache.yaml +0 -0
  263. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/1800_L2_cache_per_channel.yaml +0 -0
  264. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx941/2100_pc_sampling.yaml +0 -0
  265. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0000_top_stats.yaml +0 -0
  266. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0100_system_info.yaml +0 -0
  267. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml +0 -0
  268. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0300_mem_chart.yaml +0 -0
  269. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0400_roofline_info.yaml +0 -0
  270. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0500_command-processor.yaml +0 -0
  271. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0600_shader-processor-input.yaml +0 -0
  272. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/0700_wavefront-launch.yaml +0 -0
  273. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1000_compute-unit-instruction-mix.yaml +0 -0
  274. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1100_compute-unit-compute-pipeline.yaml +0 -0
  275. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1200_lds.yaml +0 -0
  276. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1300_instruction-cache.yaml +0 -0
  277. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1400_constant-cache.yaml +0 -0
  278. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1500_TA_and_TD.yaml +0 -0
  279. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1600_L1_cache.yaml +0 -0
  280. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1700_L2_cache.yaml +0 -0
  281. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/1800_L2_cache_per_channel.yaml +0 -0
  282. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx942/2100_pc_sampling.yaml +0 -0
  283. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0000_top_stats.yaml +0 -0
  284. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0100_system_info.yaml +0 -0
  285. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0200_system-speed-of-light.yaml +0 -0
  286. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0300_mem_chart.yaml +0 -0
  287. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0400_roofline_info.yaml +0 -0
  288. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0500_command-processor.yaml +0 -0
  289. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0600_shader-processor-input.yaml +0 -0
  290. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/0700_wavefront-launch.yaml +0 -0
  291. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1000_compute-unit-instruction-mix.yaml +0 -0
  292. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1100_compute-unit-compute-pipeline.yaml +0 -0
  293. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1200_lds.yaml +0 -0
  294. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1300_instruction-cache.yaml +0 -0
  295. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1400_constant-cache.yaml +0 -0
  296. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1500_TA_and_TD.yaml +0 -0
  297. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1600_L1_cache.yaml +0 -0
  298. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1700_L2_cache.yaml +0 -0
  299. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/1800_L2_cache_per_channel.yaml +0 -0
  300. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/gfx950/2100_pc_sampling.yaml +0 -0
  301. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/analysis_configs/panel_config_template.yaml +0 -0
  302. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_base.py +0 -0
  303. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx908.py +0 -0
  304. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx90a.py +0 -0
  305. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx940.py +0 -0
  306. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx941.py +0 -0
  307. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx942.py +0 -0
  308. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/rocprof_compute_soc/soc_gfx950.py +0 -0
  309. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/__init__.py +0 -0
  310. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/db_connector.py +0 -0
  311. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/file_io.py +0 -0
  312. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/gui.py +0 -0
  313. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/gui_components/__init__.py +0 -0
  314. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/gui_components/header.py +0 -0
  315. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/gui_components/memchart.py +0 -0
  316. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/kernel_name_shortener.py +0 -0
  317. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/logger.py +0 -0
  318. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/mem_chart.py +0 -0
  319. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/mi_gpu_spec.py +0 -0
  320. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/mi_gpu_spec.yaml +0 -0
  321. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/parser.py +0 -0
  322. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/roofline.py +0 -0
  323. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/roofline_calc.py +0 -0
  324. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/schema.py +0 -0
  325. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/specs.py +0 -0
  326. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/tty.py +0 -0
  327. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui/utils/utils.py +0 -0
  328. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/gui_server.py +0 -0
  329. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/profiler.py +0 -0
  330. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/compute/types.py +0 -0
  331. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/sdk/__init__.py +0 -0
  332. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/sdk/analyzer.py +0 -0
  333. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/sdk/finder.py +0 -0
  334. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/sdk/parser.py +0 -0
  335. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/sdk/profiler.py +0 -0
  336. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/sdk/types.py +0 -0
  337. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/__init__.py +0 -0
  338. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/avail/__init__.py +0 -0
  339. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/avail/query.py +0 -0
  340. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/finder.py +0 -0
  341. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/instrument/__init__.py +0 -0
  342. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/instrument/profiler.py +0 -0
  343. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/parsers/__init__.py +0 -0
  344. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/parsers/json_parser.py +0 -0
  345. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/parsers/text_parser.py +0 -0
  346. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/run/__init__.py +0 -0
  347. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/run/analyzer.py +0 -0
  348. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/run/profiler.py +0 -0
  349. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/sample/__init__.py +0 -0
  350. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/sample/profiler.py +0 -0
  351. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/rocprofiler/systems/types.py +0 -0
  352. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/tracelens/__init__.py +0 -0
  353. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/tracelens/comparator.py +0 -0
  354. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/tracelens/finder.py +0 -0
  355. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/tracelens/report_generator.py +0 -0
  356. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/lib/tracelens/types.py +0 -0
  357. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/logging/__init__.py +0 -0
  358. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/logging/bridge.py +0 -0
  359. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/logging/color_formatter.py +0 -0
  360. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/logging/json_formatter.py +0 -0
  361. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/logging/logging_config.py +0 -0
  362. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/problem_config.py +0 -0
  363. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/remote_env.py +0 -0
  364. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/remote_jobs.py +0 -0
  365. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/retry.py +0 -0
  366. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/__init__.py +0 -0
  367. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/__main__.py +0 -0
  368. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/_logging/__init__.py +0 -0
  369. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/_logging/color_formatter.py +0 -0
  370. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/_logging/json_formatter.py +0 -0
  371. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/_logging/logging_config.py +0 -0
  372. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/_rate_limit.py +0 -0
  373. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/_retry.py +0 -0
  374. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/README.md +0 -0
  375. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/__init__.py +0 -0
  376. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/base_preset.py +0 -0
  377. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/gpt_5_1_codex_04_04.py +0 -0
  378. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/gpt_5_2_03_03.py +0 -0
  379. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/loader.py +0 -0
  380. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/opus_4_01_01.py +0 -0
  381. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/rlm_01_01.py +0 -0
  382. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/sonnet_4_02_02.py +0 -0
  383. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agent_presets/sonnet_4_subagent_03_02.py +0 -0
  384. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/agents.py +0 -0
  385. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/cli.py +0 -0
  386. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/cli_agents.py +0 -0
  387. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/config/README.md +0 -0
  388. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/config/__init__.py +0 -0
  389. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/config/base.py +0 -0
  390. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/config/loader.py +0 -0
  391. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/config/protocols.py +0 -0
  392. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/datasets/__init__.py +0 -0
  393. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/datasets/lichess_puzzles.py +0 -0
  394. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/deploy.py +0 -0
  395. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/docs/ASYNC_RUNTIME.md +0 -0
  396. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/dtypes.py +0 -0
  397. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/__init__.py +0 -0
  398. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/_formatting.py +0 -0
  399. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/_subprocess.py +0 -0
  400. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/ask_user.py +0 -0
  401. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/base.py +0 -0
  402. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/binary_search.py +0 -0
  403. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/browsing.py +0 -0
  404. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/calculator.py +0 -0
  405. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/chess_puzzle.py +0 -0
  406. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/compose.py +0 -0
  407. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/cuda_grep.py +0 -0
  408. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/git_worktree.py +0 -0
  409. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/handoff.py +0 -0
  410. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/localfs.py +0 -0
  411. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/no_tools.py +0 -0
  412. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/oracle.py +0 -0
  413. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/repl.py +0 -0
  414. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/screenspot.py +0 -0
  415. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/swe_grep.py +0 -0
  416. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/environments/terminal_bench.py +0 -0
  417. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/eval_helpers.py +0 -0
  418. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/evaluation.py +0 -0
  419. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/events.py +0 -0
  420. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/examples/eval/cuda_grep/__init__.py +0 -0
  421. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/examples/eval/cuda_grep/config_all_tools.py +0 -0
  422. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/examples/eval/cuda_grep/config_grep_glob.py +0 -0
  423. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/examples/eval/cuda_grep/config_search_only.py +0 -0
  424. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/examples/eval/cuda_grep/cuda_questions.jsonl +0 -0
  425. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/examples/eval/cuda_grep/eval_cuda_grep.py +0 -0
  426. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/examples/eval/cuda_grep/scoring.py +0 -0
  427. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/export.py +0 -0
  428. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/feedback.py +0 -0
  429. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/fingerprint.py +0 -0
  430. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/DESIGN.md +0 -0
  431. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/README.md +0 -0
  432. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/REFACTOR_PLAN.md +0 -0
  433. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/UI_IMPROVEMENTS.md +0 -0
  434. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/__init__.py +0 -0
  435. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/__main__.py +0 -0
  436. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/dev.sh +0 -0
  437. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/index.html +0 -0
  438. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/index_old.html +0 -0
  439. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/run.py +0 -0
  440. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontend/server.py +0 -0
  441. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/__init__.py +0 -0
  442. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/headless_json.py +0 -0
  443. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/json_frontend.py +0 -0
  444. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/none.py +0 -0
  445. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/protocol.py +0 -0
  446. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/runner.py +0 -0
  447. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/textual_frontend.py +0 -0
  448. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/INTEGRATION.md +0 -0
  449. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/README.md +0 -0
  450. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/REFACTOR_DESIGN.md +0 -0
  451. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/TUI_TODO.md +0 -0
  452. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/__init__.py +0 -0
  453. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/agent_renderer.py +0 -0
  454. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/__init__.py +0 -0
  455. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/assistant_message.py +0 -0
  456. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/error_display.py +0 -0
  457. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/input.py +0 -0
  458. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/loader.py +0 -0
  459. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/loader_container.py +0 -0
  460. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/markdown.py +0 -0
  461. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/question_selector.py +0 -0
  462. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/spacer.py +0 -0
  463. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/status_line.py +0 -0
  464. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/system_message.py +0 -0
  465. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/text.py +0 -0
  466. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/tool_execution.py +0 -0
  467. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/components/user_message.py +0 -0
  468. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/control_flow_types.py +0 -0
  469. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/demo.py +0 -0
  470. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/example_usage.py +0 -0
  471. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/interactive_agent.py +0 -0
  472. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/oauth.py +0 -0
  473. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/slash_commands.py +0 -0
  474. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/terminal.py +0 -0
  475. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/test_rendering.py +0 -0
  476. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/theme.py +0 -0
  477. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/tui.py +0 -0
  478. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui/utils.py +0 -0
  479. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/frontends/tui_frontend.py +0 -0
  480. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/import_cc.py +0 -0
  481. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/__init__.py +0 -0
  482. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/attention/__init__.py +0 -0
  483. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/attention/config.py +0 -0
  484. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/attention/example.py +0 -0
  485. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/attention/flex_backend.py +0 -0
  486. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/attention/layer.py +0 -0
  487. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/attention/mask.py +0 -0
  488. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/attention/protocol.py +0 -0
  489. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/backends/__init__.py +0 -0
  490. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/backends/generate.py +0 -0
  491. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/backends/tokenize.py +0 -0
  492. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/cache/__init__.py +0 -0
  493. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/cache/paged.py +0 -0
  494. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/cache/protocol.py +0 -0
  495. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/cache/radix.py +0 -0
  496. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/context.py +0 -0
  497. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/engine.py +0 -0
  498. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/sampling.py +0 -0
  499. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/scheduler.py +0 -0
  500. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/testing.py +0 -0
  501. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/inference/types.py +0 -0
  502. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/integrations/__init__.py +0 -0
  503. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/logging_utils.py +0 -0
  504. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/models.py +0 -0
  505. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/paths.py +0 -0
  506. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/pipeline.py +0 -0
  507. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/progress.py +0 -0
  508. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/progress_display.py +0 -0
  509. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt.py +0 -0
  510. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/__init__.py +0 -0
  511. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/adapter.py +0 -0
  512. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/adapters/__init__.py +0 -0
  513. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/adapters/system_prompt.py +0 -0
  514. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/adapters/system_user_prompt.py +0 -0
  515. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/adapters/terminal_bench.py +0 -0
  516. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/evaluation.py +0 -0
  517. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/evolutionary.py +0 -0
  518. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/formatting.py +0 -0
  519. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/operations.py +0 -0
  520. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/reflective.py +0 -0
  521. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/state.py +0 -0
  522. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/prompt_optimization/types.py +0 -0
  523. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers/__init__.py +0 -0
  524. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers/anthropic.py +0 -0
  525. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers/base.py +0 -0
  526. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers/google.py +0 -0
  527. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers/openai_completions.py +0 -0
  528. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers/openai_responses.py +0 -0
  529. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers/sglang.py +0 -0
  530. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/providers.py +0 -0
  531. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/remote.py +0 -0
  532. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/scoring.py +0 -0
  533. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/search.py +0 -0
  534. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/skills.py +0 -0
  535. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/slice.py +0 -0
  536. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/store.py +0 -0
  537. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/templates/__init__.py +0 -0
  538. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/templates/base.py +0 -0
  539. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/templates/loader.py +0 -0
  540. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tests/test_slice.py +0 -0
  541. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/__init__.py +0 -0
  542. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/decorator.py +0 -0
  543. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/__init__.py +0 -0
  544. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/analysis_tools.py +0 -0
  545. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/config.py +0 -0
  546. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/configs/__init__.py +0 -0
  547. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/configs/qwen3_0_6b.py +0 -0
  548. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/configs/qwen3_next_80b.py +0 -0
  549. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/debug_mask.py +0 -0
  550. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/debug_qwen.py +0 -0
  551. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/debug_qwen3_next.py +0 -0
  552. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/debug_sdpa.py +0 -0
  553. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/debug_swa.py +0 -0
  554. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/debug_toolkit.py +0 -0
  555. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/debug_with_tools.py +0 -0
  556. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/explore_gemma.py +0 -0
  557. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/explore_qwen.py +0 -0
  558. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/explore_qwen3_dense.py +0 -0
  559. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/explore_qwen3_next.py +0 -0
  560. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/llama_functional.py +0 -0
  561. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/qwen3_next_functional.py +0 -0
  562. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/qwen_functional.py +0 -0
  563. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/test_llama.py +0 -0
  564. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/test_qwen.py +0 -0
  565. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/test_template.py +0 -0
  566. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/tools.py +0 -0
  567. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/trace_hf.py +0 -0
  568. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/functional_extractor/verify.py +0 -0
  569. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tools/oracle.py +0 -0
  570. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/__init__.py +0 -0
  571. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/agent_integration.py +0 -0
  572. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/__init__.py +0 -0
  573. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/fsdp.py +0 -0
  574. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/jax_backend.py +0 -0
  575. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/protocol.py +0 -0
  576. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/pytorch.py +0 -0
  577. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/pytorch_factory.py +0 -0
  578. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/torch_func.py +0 -0
  579. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/backends/torchax_backend.py +0 -0
  580. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/datasets/__init__.py +0 -0
  581. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/datasets/data_buffer.py +0 -0
  582. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/datasets/dataset_loaders.py +0 -0
  583. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/datasets/sft.py +0 -0
  584. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/distributed_utils.py +0 -0
  585. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/filters.py +0 -0
  586. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/grpo.py +0 -0
  587. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/loops/__init__.py +0 -0
  588. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/loops/rl_loop.py +0 -0
  589. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/loops/sft_loop.py +0 -0
  590. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/losses.py +0 -0
  591. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/metrics.py +0 -0
  592. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/rollout_gen/__init__.py +0 -0
  593. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/rollout_gen/async_rollout_manager.py +0 -0
  594. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/rollout_gen/rollout_generation.py +0 -0
  595. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/rollout_gen/rollout_manager.py +0 -0
  596. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/types.py +0 -0
  597. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/weight_sync.py +0 -0
  598. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/training/worker.py +0 -0
  599. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/transform_messages.py +0 -0
  600. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/DESIGN.md +0 -0
  601. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/__init__.py +0 -0
  602. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/__main__.py +0 -0
  603. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/demo.py +0 -0
  604. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/monitor.py +0 -0
  605. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/remote_runner.py +0 -0
  606. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/terminal.py +0 -0
  607. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/tui/traces.py +0 -0
  608. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/rollouts/upload.py +0 -0
  609. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/roofline/__init__.py +0 -0
  610. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/roofline/analysis.py +0 -0
  611. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/roofline/gpu_specs.py +0 -0
  612. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sandbox/__init__.py +0 -0
  613. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sandbox/executor.py +0 -0
  614. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sandbox/landlock.py +0 -0
  615. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sandbox/policy.py +0 -0
  616. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sandbox/seatbelt.py +0 -0
  617. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sessions/__init__.py +0 -0
  618. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sessions/agent.py +0 -0
  619. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sessions/dtypes.py +0 -0
  620. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/sessions/hooks.py +0 -0
  621. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/ssh.py +0 -0
  622. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/targets/__init__.py +0 -0
  623. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/targets/digitalocean.py +0 -0
  624. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/BENCHMARKING.md +0 -0
  625. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/__init__.py +0 -0
  626. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/aggregation.py +0 -0
  627. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/core.py +0 -0
  628. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/dtypes.py +0 -0
  629. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/metrics.py +0 -0
  630. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/scoring.py +0 -0
  631. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/search.py +0 -0
  632. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/storage.py +0 -0
  633. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/streaming.py +0 -0
  634. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/tests/__init__.py +0 -0
  635. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/autotuner/tests/test_autotuner.py +0 -0
  636. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/bash_tool.py +0 -0
  637. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/capture_tool/__init__.py +0 -0
  638. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/capture_tool/artifacts.py +0 -0
  639. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/capture_tool/context.py +0 -0
  640. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/capture_tool/core.py +0 -0
  641. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/capture_tool/dtypes.py +0 -0
  642. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/capture_tool/executor.py +0 -0
  643. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/capture_tool/metrics.py +0 -0
  644. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/file_tools/__init__.py +0 -0
  645. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/file_tools/edit_tool.py +0 -0
  646. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/file_tools/glob_tool.py +0 -0
  647. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/file_tools/read_tool.py +0 -0
  648. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/file_tools/utils.py +0 -0
  649. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/file_tools/write_tool.py +0 -0
  650. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/glob_tool.py +0 -0
  651. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/grep_tool.py +0 -0
  652. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/isa_analysis_tools/__init__.py +0 -0
  653. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/isa_analysis_tools/isa_analysis_tool.py +0 -0
  654. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/isa_analysis_tools/types.py +0 -0
  655. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/nsys_tools/__init__.py +0 -0
  656. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/nsys_tools/discovery.py +0 -0
  657. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/nsys_tools/models.py +0 -0
  658. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/nsys_tools/parser.py +0 -0
  659. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_compute_tools/__init__.py +0 -0
  660. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_compute_tools/rocprof_compute_analyze_tool.py +0 -0
  661. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_compute_tools/rocprof_compute_profile_tool.py +0 -0
  662. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_sdk_tools/__init__.py +0 -0
  663. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_sdk_tools/rocprof_sdk_analyze_tool.py +0 -0
  664. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_sdk_tools/rocprof_sdk_profile_tool.py +0 -0
  665. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_systems_tools/__init__.py +0 -0
  666. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_instrument_tool.py +0 -0
  667. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_profile_tool.py +0 -0
  668. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_query_tool.py +0 -0
  669. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/rocprof_systems_tools/rocprof_systems_sample_tool.py +0 -0
  670. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/skill_tool.py +0 -0
  671. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/tracelens_tools/__init__.py +0 -0
  672. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/tracelens_tools/tracelens_collective_tool.py +0 -0
  673. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/tracelens_tools/tracelens_compare_tool.py +0 -0
  674. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/tracelens_tools/tracelens_report_tool.py +0 -0
  675. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/wafer_tool.py +0 -0
  676. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/tools/write_kernel_tool.py +0 -0
  677. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/__init__.py +0 -0
  678. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/backend.py +0 -0
  679. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/code_validation.py +0 -0
  680. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/environment_serialization.py +0 -0
  681. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/event_streaming.py +0 -0
  682. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/exceptions.py +0 -0
  683. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/execution_types.py +0 -0
  684. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/gpu_environment_utils.py +0 -0
  685. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/__init__.py +0 -0
  686. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/backends.py +0 -0
  687. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/defense.py +0 -0
  688. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/deployment.py +0 -0
  689. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/evaluate.py +0 -0
  690. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/gpu_validation.py +0 -0
  691. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/reference_cache.py +0 -0
  692. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/results.py +0 -0
  693. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/targets/__init__.py +0 -0
  694. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/targets/execution.py +0 -0
  695. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/targets/selection.py +0 -0
  696. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/task.py +0 -0
  697. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/kernel_utils/utils.py +0 -0
  698. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/modal_execution/__init__.py +0 -0
  699. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/modal_execution/modal_config.py +0 -0
  700. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/modal_execution/modal_execution.py +0 -0
  701. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/modal_execution/test_modal.py +0 -0
  702. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/ncu_profile_tools.py +0 -0
  703. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/path_utils.py +0 -0
  704. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/remote_execution.py +0 -0
  705. {wafer_core-0.1.22 → wafer_core-0.1.24}/wafer_core/utils/submission_selection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wafer-core
3
- Version: 0.1.22
3
+ Version: 0.1.24
4
4
  Summary: Core utilities and environments for Wafer GPU kernel optimization
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: aiohttp>=3.9.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wafer-core"
3
- version = "0.1.22"
3
+ version = "0.1.24"
4
4
  description = "Core utilities and environments for Wafer GPU kernel optimization"
5
5
  requires-python = ">=3.10"
6
6
  dependencies = [
@@ -34,6 +34,7 @@ from wafer_core.tools import (
34
34
  GLOB_TOOL,
35
35
  GREP_TOOL,
36
36
  READ_TOOL,
37
+ SEARCH_DOCS_TOOL,
37
38
  SKILL_TOOL,
38
39
  WRITE_TOOL,
39
40
  ApprovalCallback,
@@ -42,6 +43,7 @@ from wafer_core.tools import (
42
43
  exec_glob,
43
44
  exec_grep,
44
45
  exec_read,
46
+ exec_search_docs,
45
47
  exec_skill,
46
48
  exec_write,
47
49
  )
@@ -63,6 +65,7 @@ ALL_TOOLS = {
63
65
  "glob": GLOB_TOOL,
64
66
  "grep": GREP_TOOL,
65
67
  "bash": BASH_TOOL,
68
+ "search_docs": SEARCH_DOCS_TOOL,
66
69
  "skill": SKILL_TOOL,
67
70
  # TODO(wafer-tool): "wafer": WAFER_TOOL,
68
71
  }
@@ -211,6 +214,7 @@ class CodingEnvironment:
211
214
  self.bash_approval_callback,
212
215
  self._sandbox_policy,
213
216
  ),
217
+ "search_docs": lambda tc: exec_search_docs(tc),
214
218
  "skill": lambda tc: exec_skill(tc),
215
219
  # TODO(wafer-tool): "wafer": lambda tc: exec_wafer(
216
220
  # tc, self.working_dir, self.enabled_tools, self.allow_spawn, cancel_scope
@@ -14,7 +14,6 @@ from __future__ import annotations
14
14
 
15
15
  import json
16
16
  import logging
17
- import os
18
17
  import time
19
18
  from contextlib import asynccontextmanager
20
19
  from dataclasses import dataclass
@@ -250,10 +249,17 @@ async def provision_pod(target: RunPodTarget) -> tuple[str, str, int, str]:
250
249
  "ports": "22/tcp",
251
250
  "startSsh": True,
252
251
  "startJupyter": False,
253
- "imageName": target.image,
254
252
  "env": [],
255
253
  }
256
254
 
255
+ if target.template_id:
256
+ # Template defines image, dockerArgs (sshd setup), and ports.
257
+ # Required for non-RunPod images (e.g. rocm/pytorch) that don't
258
+ # have RunPod's built-in SSH handler.
259
+ pod_input["templateId"] = target.template_id
260
+ else:
261
+ pod_input["imageName"] = target.image
262
+
257
263
  variables = {"input": pod_input}
258
264
 
259
265
  logger.info(f"Provisioning RunPod pod: {pod_name}")
@@ -334,7 +340,8 @@ async def _wait_for_ssh(pod_id: str, timeout_seconds: int) -> tuple[str, int, st
334
340
  # Check for SSH port
335
341
  runtime = pod.get("runtime")
336
342
  if runtime and status == "running":
337
- for port in runtime.get("ports", []):
343
+ # ports can be null in JSON response, so use 'or []' instead of default
344
+ for port in runtime.get("ports") or []:
338
345
  if (
339
346
  port.get("privatePort") == 22
340
347
  and port.get("isIpPublic")
@@ -378,6 +385,55 @@ async def terminate_pod(pod_id: str) -> bool:
378
385
  return False
379
386
 
380
387
 
388
+ # =============================================================================
389
+ # Template Management (not yet implemented)
390
+ # =============================================================================
391
+ #
392
+ # The saveTemplate mutation allows creating reusable pod templates with custom
393
+ # configurations. Templates can specify docker images, environment setup,
394
+ # container disk size, and other pod settings.
395
+ #
396
+ # Example mutation:
397
+ #
398
+ # mutation saveTemplate($input: SaveTemplateInput) {
399
+ # saveTemplate(input: $input) {
400
+ # id
401
+ # name
402
+ # imageName
403
+ # containerDiskInGb
404
+ # ports
405
+ # dockerArgs
406
+ # startSsh
407
+ # startJupyter
408
+ # }
409
+ # }
410
+ #
411
+ # Example variables:
412
+ #
413
+ # {
414
+ # "input": {
415
+ # "containerDiskInGb": 50,
416
+ # "dockerArgs": "bash -c \"apt-get update && apt-get install -y openssh-server && ...\"",
417
+ # "env": [],
418
+ # "isPublic": false,
419
+ # "isServerless": false,
420
+ # "name": "template-name",
421
+ # "ports": "22/tcp",
422
+ # "portsConfig": [{"name": "SSH", "port": "22"}],
423
+ # "readme": "",
424
+ # "volumeInGb": 0,
425
+ # "volumeMountPath": "",
426
+ # "config": {},
427
+ # "category": "AMD",
428
+ # "imageName": "rocm/pytorch:rocm7.0.2_ubuntu24.04_py3.12_pytorch_release_2.7.1"
429
+ # }
430
+ # }
431
+ #
432
+ # Note: Template creation is not currently implemented in this module.
433
+ # If needed, implement a save_template() function following the pattern of
434
+ # provision_pod() and terminate_pod() above.
435
+
436
+
381
437
  # =============================================================================
382
438
  # Context Manager
383
439
  # =============================================================================
@@ -482,20 +538,103 @@ async def cleanup_target(target_name: str) -> bool:
482
538
  return success
483
539
 
484
540
 
541
+ async def sync_pods_from_api() -> list[PodState]:
542
+ """Query RunPod API for all running pods and update local state.
543
+
544
+ This discovers pods that exist on the account but aren't in our state file
545
+ (e.g., created manually or by another machine). Updates the state file with
546
+ any wafer-created pods found.
547
+
548
+ Returns list of all running pods with SSH info.
549
+ """
550
+ query = """
551
+ query {
552
+ myself {
553
+ pods {
554
+ id
555
+ name
556
+ desiredStatus
557
+ runtime {
558
+ ports {
559
+ ip
560
+ isIpPublic
561
+ privatePort
562
+ publicPort
563
+ }
564
+ }
565
+ }
566
+ }
567
+ }
568
+ """
569
+
570
+ try:
571
+ data = await _graphql_request_async(query)
572
+ except Exception as e:
573
+ logger.warning(f"Failed to query pods from API: {e}")
574
+ return []
575
+
576
+ pods = data.get("myself", {}).get("pods", [])
577
+ running_pods = []
578
+
579
+ for pod in pods:
580
+ status = pod.get("desiredStatus", "").lower()
581
+ if status != "running":
582
+ continue
583
+
584
+ pod_id = pod["id"]
585
+ pod_name = pod.get("name", "")
586
+
587
+ # Extract SSH info
588
+ runtime = pod.get("runtime")
589
+ if not runtime:
590
+ continue
591
+
592
+ public_ip = None
593
+ ssh_port = None
594
+ for port in runtime.get("ports") or []:
595
+ if port.get("privatePort") == 22 and port.get("isIpPublic"):
596
+ public_ip = port.get("ip")
597
+ ssh_port = port.get("publicPort")
598
+ break
599
+
600
+ if not public_ip or not ssh_port:
601
+ continue
602
+
603
+ # Extract target name from pod name (wafer-{target_name}-{timestamp})
604
+ target_name = None
605
+ if pod_name.startswith("wafer-"):
606
+ parts = pod_name.split("-")
607
+ if len(parts) >= 3:
608
+ # Handle target names with hyphens: wafer-runpod-mi300x-1234567
609
+ target_name = "-".join(parts[1:-1])
610
+
611
+ pod_state = PodState(
612
+ pod_id=pod_id,
613
+ target_name=target_name or pod_name,
614
+ public_ip=public_ip,
615
+ ssh_port=ssh_port,
616
+ ssh_username="root",
617
+ created_at=datetime.now(timezone.utc).isoformat(),
618
+ )
619
+ running_pods.append(pod_state)
620
+
621
+ # Update state file if this is a wafer-created pod
622
+ if target_name:
623
+ existing = get_pod_state(target_name)
624
+ if not existing or existing.pod_id != pod_id:
625
+ logger.info(f"Syncing pod {pod_id} to state for target {target_name}")
626
+ _add_pod_to_state(target_name, pod_id, public_ip, ssh_port, "root")
627
+
628
+ return running_pods
629
+
630
+
485
631
  async def list_running_pods() -> list[PodState]:
486
- """List all pods in state file that are still running."""
487
- state = _load_state()
488
- running = []
632
+ """List all running pods by querying the RunPod API.
489
633
 
490
- for name, pod_state in state.items():
491
- if await check_pod_running(pod_state.pod_id):
492
- running.append(pod_state)
493
- else:
494
- # Clean up stale entry
495
- logger.info(f"Removing stale state for {name} (pod {pod_state.pod_id})")
496
- _remove_pod_from_state(name)
497
-
498
- return running
634
+ Syncs state file with API to discover pods not in local state.
635
+ Returns list of running pods with SSH info.
636
+ """
637
+ return await sync_pods_from_api()
499
638
 
500
639
 
501
640
  async def cleanup_all_pods() -> int:
@@ -72,6 +72,10 @@ from wafer_core.tools.write_kernel_tool import (
72
72
  KernelSubmission,
73
73
  exec_write_kernel,
74
74
  )
75
+ from wafer_core.tools.search_docs_tool import (
76
+ SEARCH_DOCS_TOOL,
77
+ exec_search_docs,
78
+ )
75
79
 
76
80
  __all__ = [
77
81
  # File tools
@@ -133,4 +137,7 @@ __all__ = [
133
137
  "exec_tracelens_report",
134
138
  "exec_tracelens_compare",
135
139
  "exec_tracelens_collective",
140
+ # Search docs tool
141
+ "SEARCH_DOCS_TOOL",
142
+ "exec_search_docs",
136
143
  ]
@@ -1,4 +1,4 @@
1
- """Grep tool using ripgrep for fast content search."""
1
+ """Grep tool using ripgrep (with fallback to standard grep)."""
2
2
 
3
3
  from pathlib import Path
4
4
 
@@ -15,7 +15,7 @@ GREP_TOOL = Tool(
15
15
  function=ToolFunction(
16
16
  name="grep",
17
17
  description=(
18
- "Search for a pattern in files using ripgrep. "
18
+ "Search for a pattern in files. "
19
19
  "Returns matching lines with file paths and line numbers. "
20
20
  "Supports regex patterns by default."
21
21
  ),
@@ -54,7 +54,7 @@ GREP_TOOL = Tool(
54
54
 
55
55
 
56
56
  async def exec_grep(tool_call: ToolCall, working_dir: Path) -> ToolResult:
57
- """Execute grep using ripgrep."""
57
+ """Execute grep using ripgrep (preferred) or standard grep (fallback)."""
58
58
  import shutil
59
59
  import subprocess
60
60
 
@@ -74,35 +74,55 @@ async def exec_grep(tool_call: ToolCall, working_dir: Path) -> ToolResult:
74
74
  error="'pattern' is required",
75
75
  )
76
76
 
77
- # Find ripgrep
77
+ # Try ripgrep first, fall back to standard grep
78
78
  rg_path = shutil.which("rg")
79
- if not rg_path:
79
+ grep_path = shutil.which("grep")
80
+
81
+ if rg_path:
82
+ # Use ripgrep (faster, better defaults)
83
+ cmd = [rg_path, "--line-number", "--no-heading", "--color=never"]
84
+
85
+ if case_insensitive:
86
+ cmd.append("--ignore-case")
87
+
88
+ if context_lines:
89
+ cmd.extend(["--context", str(context_lines)])
90
+
91
+ if glob_pattern:
92
+ cmd.extend(["--glob", glob_pattern])
93
+
94
+ # Limit results
95
+ cmd.extend(["--max-count", str(max_results)])
96
+
97
+ cmd.append(pattern)
98
+ cmd.append(search_path)
99
+ use_ripgrep = True
100
+ elif grep_path:
101
+ # Fallback to standard grep
102
+ cmd = [grep_path, "-r", "-n", "--color=never"]
103
+
104
+ if case_insensitive:
105
+ cmd.append("-i")
106
+
107
+ if context_lines:
108
+ cmd.extend(["-C", str(context_lines)])
109
+
110
+ if glob_pattern:
111
+ # Standard grep uses --include for glob patterns
112
+ cmd.extend(["--include", glob_pattern])
113
+
114
+ cmd.append(pattern)
115
+ cmd.append(search_path)
116
+ use_ripgrep = False
117
+ else:
80
118
  return ToolResult(
81
119
  tool_call_id=tool_call.id,
82
120
  is_error=True,
83
121
  content="",
84
- error="ripgrep (rg) not found. Please install it: brew install ripgrep",
122
+ error="Neither ripgrep (rg) nor grep found. Please install one.",
85
123
  )
86
124
 
87
- # Build command
88
- cmd = [rg_path, "--line-number", "--no-heading", "--color=never"]
89
-
90
- if case_insensitive:
91
- cmd.append("--ignore-case")
92
-
93
- if context_lines:
94
- cmd.extend(["--context", str(context_lines)])
95
-
96
- if glob_pattern:
97
- cmd.extend(["--glob", glob_pattern])
98
-
99
- # Limit results
100
- cmd.extend(["--max-count", str(max_results)])
101
-
102
- cmd.append(pattern)
103
- cmd.append(search_path)
104
-
105
- # Run ripgrep
125
+ # Run the search
106
126
  try:
107
127
  result = subprocess.run(
108
128
  cmd,
@@ -126,13 +146,14 @@ async def exec_grep(tool_call: ToolCall, working_dir: Path) -> ToolResult:
126
146
  error=f"Search failed: {e}",
127
147
  )
128
148
 
129
- # ripgrep returns exit code 1 for no matches (not an error)
149
+ # Both ripgrep and grep return exit code 1 for no matches (not an error)
130
150
  if result.returncode not in (0, 1):
151
+ tool_name = "ripgrep" if use_ripgrep else "grep"
131
152
  return ToolResult(
132
153
  tool_call_id=tool_call.id,
133
154
  is_error=True,
134
155
  content="",
135
- error=result.stderr or f"ripgrep exited with code {result.returncode}",
156
+ error=result.stderr or f"{tool_name} exited with code {result.returncode}",
136
157
  )
137
158
 
138
159
  output = result.stdout.strip()
@@ -143,8 +164,14 @@ async def exec_grep(tool_call: ToolCall, working_dir: Path) -> ToolResult:
143
164
  content=f"No matches found for pattern: {pattern}",
144
165
  )
145
166
 
146
- # Count matches
147
- match_count = len(output.split("\n"))
167
+ # Count matches and limit output for standard grep
168
+ lines = output.split("\n")
169
+ if not use_ripgrep and len(lines) > max_results:
170
+ lines = lines[:max_results]
171
+ output = "\n".join(lines)
172
+ output += f"\n... (truncated to {max_results} results)"
173
+
174
+ match_count = min(len(lines), max_results)
148
175
  header = f"Found {match_count} matches:\n\n"
149
176
 
150
177
  return ToolResult(
@@ -0,0 +1,196 @@
1
+ """Search documentation tool for GPU programming corpora.
2
+
3
+ Provides semantic and keyword search over documentation for CuTeDSL, CUDA, etc.
4
+
5
+ Corpora are downloaded via `wafer corpus download <name>` and stored in ~/.cache/wafer/corpora/.
6
+ """
7
+
8
+ import re
9
+ from pathlib import Path
10
+
11
+ from wafer_core.rollouts.dtypes import Tool, ToolCall, ToolFunction, ToolFunctionParameter, ToolResult
12
+
13
+ # Cache directory where wafer corpus download stores files
14
+ CACHE_DIR = Path.home() / ".cache" / "wafer" / "corpora"
15
+
16
+ # Available corpora (names match wafer corpus download)
17
+ AVAILABLE_CORPORA = ["cutlass", "cutedsl", "cuda", "hip", "amd"]
18
+
19
+ SEARCH_DOCS_TOOL = Tool(
20
+ type="function",
21
+ function=ToolFunction(
22
+ name="search_docs",
23
+ description="""Search GPU programming documentation for relevant information.
24
+
25
+ Use this tool to find documentation about:
26
+ - CUTLASS C++ (cute:: namespace, gemm tutorials, tensor cores, TMA, Blackwell)
27
+ - CuTeDSL Python API (@cute.kernel, @cute.jit, cute.arch functions)
28
+ - CUDA programming concepts
29
+ - GPU kernel optimization techniques
30
+ - Code examples and patterns
31
+
32
+ Available corpora:
33
+ - 'cutlass' - NVIDIA CUTLASS C++ docs + GitHub examples (gemm, hopper, blackwell)
34
+ - 'cutedsl' - CuTeDSL Python documentation
35
+ - 'cuda' - General CUDA programming docs
36
+ - 'hip' - AMD HIP programming docs
37
+ - 'amd' - AMD GPU kernel development (rocWMMA, CK, etc.)
38
+
39
+ Note: Corpora must be downloaded first with `wafer corpus download <name>`.
40
+ Returns relevant documentation snippets with file paths.""",
41
+ parameters=ToolFunctionParameter(
42
+ type="object",
43
+ properties={
44
+ "query": {
45
+ "type": "string",
46
+ "description": "Search query - describe what you're looking for",
47
+ },
48
+ "corpus": {
49
+ "type": "string",
50
+ "description": "Which docs to search: 'cutlass', 'cutedsl', 'cuda', 'hip', 'amd' (default: cutlass)",
51
+ },
52
+ "max_results": {
53
+ "type": "integer",
54
+ "description": "Maximum number of results to return (default: 5)",
55
+ },
56
+ },
57
+ ),
58
+ required=["query"],
59
+ )
60
+ )
61
+
62
+
63
+ def _get_corpus_path(corpus_name: str) -> Path | None:
64
+ """Get the path to a corpus in the cache directory.
65
+
66
+ Corpora are stored at ~/.cache/wafer/corpora/<corpus_name>/
67
+ """
68
+ if corpus_name not in AVAILABLE_CORPORA:
69
+ return None
70
+
71
+ corpus_path = CACHE_DIR / corpus_name
72
+ if corpus_path.exists():
73
+ return corpus_path
74
+
75
+ return None
76
+
77
+
78
+ def _search_files(corpus_path: Path, query: str, max_results: int = 5) -> list[dict]:
79
+ """Simple keyword search through documentation files."""
80
+ results = []
81
+ query_terms = query.lower().split()
82
+
83
+ # Search .md, .py, .cu, .hpp, and .h files (for CUTLASS examples)
84
+ for pattern in ["**/*.md", "**/*.py", "**/*.cu", "**/*.hpp", "**/*.h", "**/*.cuh"]:
85
+ for file_path in corpus_path.glob(pattern):
86
+ if file_path.is_file():
87
+ try:
88
+ content = file_path.read_text(encoding="utf-8", errors="ignore")
89
+ content_lower = content.lower()
90
+
91
+ # Score based on term matches
92
+ score = sum(content_lower.count(term) for term in query_terms)
93
+
94
+ if score > 0:
95
+ # Extract relevant snippets
96
+ snippets = _extract_snippets(content, query_terms)
97
+ results.append({
98
+ "file": str(file_path), # Return absolute path so read tool can access it
99
+ "score": score,
100
+ "snippets": snippets[:3], # Top 3 snippets
101
+ })
102
+ except Exception:
103
+ continue
104
+
105
+ # Sort by score and return top results
106
+ results.sort(key=lambda x: x["score"], reverse=True)
107
+ return results[:max_results]
108
+
109
+
110
+ def _extract_snippets(content: str, terms: list[str], context_lines: int = 5) -> list[str]:
111
+ """Extract snippets containing search terms."""
112
+ snippets = []
113
+ lines = content.split("\n")
114
+
115
+ for i, line in enumerate(lines):
116
+ line_lower = line.lower()
117
+ if any(term in line_lower for term in terms):
118
+ # Get context around the match
119
+ start = max(0, i - context_lines)
120
+ end = min(len(lines), i + context_lines + 1)
121
+ snippet = "\n".join(lines[start:end])
122
+
123
+ # Skip very short snippets
124
+ if len(snippet.strip()) > 50:
125
+ snippets.append(snippet)
126
+
127
+ return snippets
128
+
129
+
130
+ async def exec_search_docs(
131
+ tool_call: ToolCall,
132
+ corpus_override: str | None = None,
133
+ ) -> ToolResult:
134
+ """Execute search_docs tool.
135
+
136
+ Args:
137
+ tool_call: The tool call with query and optional corpus
138
+ corpus_override: Override corpus path (for testing)
139
+ """
140
+ query = tool_call.args.get("query", "")
141
+ corpus_name = tool_call.args.get("corpus", "cutlass")
142
+ max_results = tool_call.args.get("max_results", 5)
143
+
144
+ if not query:
145
+ return ToolResult(
146
+ tool_call_id=tool_call.id,
147
+ content="",
148
+ error="query parameter is required",
149
+ )
150
+
151
+ # Find corpus path
152
+ if corpus_override:
153
+ corpus_path = Path(corpus_override)
154
+ else:
155
+ corpus_path = _get_corpus_path(corpus_name)
156
+ if corpus_path is None:
157
+ return ToolResult(
158
+ tool_call_id=tool_call.id,
159
+ content="",
160
+ error=f"Unknown corpus: {corpus_name}. Available: {AVAILABLE_CORPORA}",
161
+ )
162
+
163
+ if not corpus_path.exists():
164
+ return ToolResult(
165
+ tool_call_id=tool_call.id,
166
+ content="",
167
+ error=f"Corpus '{corpus_name}' not downloaded. Run: wafer corpus download {corpus_name}",
168
+ )
169
+
170
+ # Search
171
+ results = _search_files(corpus_path, query, max_results)
172
+
173
+ if not results:
174
+ return ToolResult(
175
+ tool_call_id=tool_call.id,
176
+ content=f"No results found for query: {query}",
177
+ error=None,
178
+ )
179
+
180
+ # Format output
181
+ output_parts = [f"Found {len(results)} results for: {query}\n"]
182
+
183
+ for i, result in enumerate(results, 1):
184
+ output_parts.append(f"\n{'='*60}")
185
+ output_parts.append(f"[{i}] {result['file']} (score: {result['score']})")
186
+ output_parts.append("=" * 60)
187
+
188
+ for snippet in result["snippets"]:
189
+ output_parts.append(snippet)
190
+ output_parts.append("-" * 40)
191
+
192
+ return ToolResult(
193
+ tool_call_id=tool_call.id,
194
+ content="\n".join(output_parts),
195
+ error=None,
196
+ )