wafer-cli 0.2.62__tar.gz → 0.2.64__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 (96) hide show
  1. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/PKG-INFO +1 -1
  2. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/pyproject.toml +1 -1
  3. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_direct_streaming.py +24 -0
  4. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/wevin_cli.py +11 -0
  5. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/PKG-INFO +1 -1
  6. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/README.md +0 -0
  7. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/setup.cfg +0 -0
  8. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_agent_template_discovery.py +0 -0
  9. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_analytics.py +0 -0
  10. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_auth.py +0 -0
  11. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_billing.py +0 -0
  12. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_cli_coverage.py +0 -0
  13. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_cli_parity_integration.py +0 -0
  14. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_config_show.py +0 -0
  15. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_corpus_lockdown.py +0 -0
  16. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_deps.py +0 -0
  17. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_distributed_traces_cli.py +0 -0
  18. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_docker_progress.py +0 -0
  19. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_evaluate_ux.py +0 -0
  20. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_file_operations_integration.py +0 -0
  21. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_first_run.py +0 -0
  22. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_inference.py +0 -0
  23. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_json_output.py +0 -0
  24. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_kernel_scope_cli.py +0 -0
  25. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ncu_run.py +0 -0
  26. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ncu_run_e2e.py +0 -0
  27. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ncu_run_local_e2e.py +0 -0
  28. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_nsys_analyze.py +0 -0
  29. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_nsys_profile.py +0 -0
  30. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_output.py +0 -0
  31. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_rocprof_compute_integration.py +0 -0
  32. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_skill_commands.py +0 -0
  33. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ssh_integration.py +0 -0
  34. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_status.py +0 -0
  35. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_targets_ops.py +0 -0
  36. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_token_waste.py +0 -0
  37. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ux_improvements.py +0 -0
  38. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_wevin_cli.py +0 -0
  39. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/GUIDE.md +0 -0
  40. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/__init__.py +0 -0
  41. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/agent_defaults.py +0 -0
  42. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/analytics.py +0 -0
  43. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/api_client.py +0 -0
  44. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/auth.py +0 -0
  45. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/autotuner.py +0 -0
  46. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/baseline.py +0 -0
  47. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/billing.py +0 -0
  48. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/cli.py +0 -0
  49. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/cli_instructions.py +0 -0
  50. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/deps.py +0 -0
  51. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/distributed_traces.py +0 -0
  52. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/evaluate.py +0 -0
  53. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/global_config.py +0 -0
  54. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/gpu_run.py +0 -0
  55. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/inference.py +0 -0
  56. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/kernel_scope.py +0 -0
  57. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/ncu_analyze.py +0 -0
  58. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/ncu_run.py +0 -0
  59. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/nsys_analyze.py +0 -0
  60. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/nsys_profile.py +0 -0
  61. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/output.py +0 -0
  62. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/problems.py +0 -0
  63. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/rocprof_compute.py +0 -0
  64. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/rocprof_sdk.py +0 -0
  65. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/rocprof_systems.py +0 -0
  66. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/packed-ops-guide/SKILL.md +0 -0
  67. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/SKILL.md +0 -0
  68. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/commands.md +0 -0
  69. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/evaluate.md +0 -0
  70. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/pitfalls.md +0 -0
  71. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/profiling.md +0 -0
  72. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/workspaces.md +0 -0
  73. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/specs_cli.py +0 -0
  74. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/ssh_keys.py +0 -0
  75. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/target_lock.py +0 -0
  76. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/targets.py +0 -0
  77. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/targets_cli.py +0 -0
  78. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/targets_ops.py +0 -0
  79. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/__init__.py +0 -0
  80. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/aiter_optimize.py +0 -0
  81. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/ask_docs.py +0 -0
  82. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/audit.py +0 -0
  83. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_flashinfer.py +0 -0
  84. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_kernel.py +0 -0
  85. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_kernelbench.py +0 -0
  86. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_vllm.py +0 -0
  87. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/trace_analyze.py +0 -0
  88. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/tests/test_eval_cli_parity.py +0 -0
  89. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/trace_compare.py +0 -0
  90. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/tracelens.py +0 -0
  91. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/workspaces.py +0 -0
  92. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/SOURCES.txt +0 -0
  93. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/dependency_links.txt +0 -0
  94. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/entry_points.txt +0 -0
  95. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/requires.txt +0 -0
  96. {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wafer-cli
3
- Version: 0.2.62
3
+ Version: 0.2.64
4
4
  Summary: CLI for running GPU workloads, managing remote workspaces, and evaluating/optimizing kernels
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wafer-cli"
3
- version = "0.2.62"
3
+ version = "0.2.64"
4
4
  description = "CLI for running GPU workloads, managing remote workspaces, and evaluating/optimizing kernels"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -354,6 +354,30 @@ class TestStreamDirectEndpoint:
354
354
  assert "reading" in stderr_text
355
355
  assert any("Final answer." in s for s in stdout)
356
356
 
357
+ def test_sources_event_renders_to_stderr(self) -> None:
358
+ events = [
359
+ {"type": "text", "content": "Answer here."},
360
+ {"type": "sources", "files": ["./memory.md", "./guide.md"]},
361
+ {"type": "done"},
362
+ ]
363
+ _, _, stderr = self._run(events)
364
+ stderr_text = " ".join(stderr)
365
+ assert "Sources" in stderr_text
366
+ assert "./memory.md" in stderr_text
367
+ assert "./guide.md" in stderr_text
368
+
369
+ def test_json_mode_sources_event(self) -> None:
370
+ events = [
371
+ {"type": "text", "content": "Answer"},
372
+ {"type": "sources", "files": ["./memory.md"]},
373
+ {"type": "done"},
374
+ ]
375
+ _, stdout, _ = self._run(events, json_output=True)
376
+ json_events = [json.loads(line) for line in stdout if line.strip()]
377
+ sources_events = [e for e in json_events if e.get("type") == "sources"]
378
+ assert len(sources_events) == 1
379
+ assert sources_events[0]["files"] == ["./memory.md"]
380
+
357
381
  def test_turn_start_renders_to_stderr(self) -> None:
358
382
  """turn_start event should print turn number to stderr."""
359
383
  events = [
@@ -550,6 +550,17 @@ async def _stream_direct_endpoint(
550
550
  else:
551
551
  print(f"\033[2m Executing {tool_name} ({index}/{total})...\033[0m", file=sys.stderr)
552
552
 
553
+ elif event_type == "sources":
554
+ files = event.get("files", [])
555
+ if json_output:
556
+ assert frontend is not None
557
+ frontend._emit({"type": "sources", "files": files})
558
+ else:
559
+ if files:
560
+ print(f"\033[2m Sources:\033[0m", file=sys.stderr)
561
+ for f in files:
562
+ print(f"\033[2m {f}\033[0m", file=sys.stderr)
563
+
553
564
  elif event_type == "done":
554
565
  break
555
566
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wafer-cli
3
- Version: 0.2.62
3
+ Version: 0.2.64
4
4
  Summary: CLI for running GPU workloads, managing remote workspaces, and evaluating/optimizing kernels
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes