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.
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/PKG-INFO +1 -1
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/pyproject.toml +1 -1
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_direct_streaming.py +24 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/wevin_cli.py +11 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/PKG-INFO +1 -1
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/README.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/setup.cfg +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_agent_template_discovery.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_analytics.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_auth.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_billing.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_cli_coverage.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_cli_parity_integration.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_config_show.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_corpus_lockdown.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_deps.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_distributed_traces_cli.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_docker_progress.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_evaluate_ux.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_file_operations_integration.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_first_run.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_inference.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_json_output.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_kernel_scope_cli.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ncu_run.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ncu_run_e2e.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ncu_run_local_e2e.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_nsys_analyze.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_nsys_profile.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_output.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_rocprof_compute_integration.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_skill_commands.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ssh_integration.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_status.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_targets_ops.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_token_waste.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_ux_improvements.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/tests/test_wevin_cli.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/GUIDE.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/__init__.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/agent_defaults.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/analytics.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/api_client.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/auth.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/autotuner.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/baseline.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/billing.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/cli.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/cli_instructions.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/deps.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/distributed_traces.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/evaluate.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/global_config.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/gpu_run.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/inference.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/kernel_scope.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/ncu_analyze.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/ncu_run.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/nsys_analyze.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/nsys_profile.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/output.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/problems.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/rocprof_compute.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/rocprof_sdk.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/rocprof_systems.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/packed-ops-guide/SKILL.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/SKILL.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/commands.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/evaluate.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/pitfalls.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/profiling.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/skills/wafer-guide/workspaces.md +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/specs_cli.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/ssh_keys.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/target_lock.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/targets.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/targets_cli.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/targets_ops.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/__init__.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/aiter_optimize.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/ask_docs.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/audit.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_flashinfer.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_kernel.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_kernelbench.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/optimize_vllm.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/templates/trace_analyze.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/tests/test_eval_cli_parity.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/trace_compare.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/tracelens.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer/workspaces.py +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/SOURCES.txt +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/dependency_links.txt +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/entry_points.txt +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/requires.txt +0 -0
- {wafer_cli-0.2.62 → wafer_cli-0.2.64}/wafer_cli.egg-info/top_level.txt +0 -0
|
@@ -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
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|