openrunner-sdk 2.16.1__tar.gz → 2.16.2__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.
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/PKG-INFO +1 -1
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/__init__.py +1 -1
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/install_commands.py +52 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/pyproject.toml +1 -1
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/.gitignore +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/=6.0 +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/=8.1 +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/README.md +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/api_client.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/artifact.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/buffer.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/cache.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/cli.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/config.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/cost.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/dataset.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/environment.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/evaluation.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/feedback.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/git_info.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/guardrails.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/__init__.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/accelerate.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/anthropic_tracer.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/catboost.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/diffusers.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/fastai.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/forced_alignment.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/gladia.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/gymnasium.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/huggingface.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/hydra.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/ignite.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/jax.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/keras.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/langchain.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/lightgbm.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/lightning.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/llamaindex.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/openai_finetune.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/openai_tracer.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/optuna.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/pytorch.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/sb3.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/sklearn.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/tensorflow.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/trl.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/tts.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/ultralytics.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/voice_agent.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/whisper.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/integration/xgboost.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/launch.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/mcp_server.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/media.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/migrate.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/model.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/offline.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/pii.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/plot.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/prompt.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/query_api.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/redact.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/run.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/scorers.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/sender.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/session.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/settings.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/summary.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/sweep.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/system_metrics.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/tensorboard.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/trace.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/transcript_formatter.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/wal.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/wandb_compat/__init__.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/wandb_compat/_shim.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/openrunner/wer.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/__init__.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/conftest.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_alert.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_aliases.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_api_client.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_artifact.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_buffer.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_cache.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_class_scorers.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_cli.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_config.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_evaluation.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_finish.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_git_info.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_init.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_fastai.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_huggingface.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_keras.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_langchain.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_lightning.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_pytorch.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_sklearn.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_integration_xgboost.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_launch.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_log.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_log_code.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_media.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_migrate.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_offline.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_offline_sync.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_pii.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_plot.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_query_api.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_resume.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_sdk_features.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_sender.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_summary.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_sweep.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_system_metrics.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_trace.py +0 -0
- {openrunner_sdk-2.16.1 → openrunner_sdk-2.16.2}/tests/test_wandb_compat.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrunner-sdk
|
|
3
|
-
Version: 2.16.
|
|
3
|
+
Version: 2.16.2
|
|
4
4
|
Summary: OpenRunner SDK - W&B-compatible ML experiment tracking client
|
|
5
5
|
Project-URL: Homepage, https://github.com/jqueguiner/openrunner
|
|
6
6
|
Project-URL: Repository, https://github.com/jqueguiner/openrunner
|
|
@@ -120,7 +120,7 @@ launch.from_run = _launch_from_run # type: ignore[attr-defined]
|
|
|
120
120
|
# openrunner.trace.patch_openai() syntax
|
|
121
121
|
trace.patch_openai = _patch_openai # type: ignore[attr-defined]
|
|
122
122
|
|
|
123
|
-
__version__ = "2.16.
|
|
123
|
+
__version__ = "2.16.2"
|
|
124
124
|
|
|
125
125
|
logger = logging.getLogger("openrunner")
|
|
126
126
|
|
|
@@ -467,6 +467,56 @@ Report version and installed commands to user. Remind them to enable the MCP plu
|
|
|
467
467
|
"""
|
|
468
468
|
|
|
469
469
|
|
|
470
|
+
MCP_CMD = """---
|
|
471
|
+
name: {prefix}mcp
|
|
472
|
+
description: Install and activate OpenRunner MCP plugin for native tool access
|
|
473
|
+
allowed-tools:
|
|
474
|
+
- Bash
|
|
475
|
+
- AskUserQuestion
|
|
476
|
+
---
|
|
477
|
+
<objective>
|
|
478
|
+
Help user install, activate, and understand the OpenRunner MCP plugin that gives Claude Code native access to search sessions, runs, artifacts, papers, research, metrics, and code.
|
|
479
|
+
</objective>
|
|
480
|
+
|
|
481
|
+
<process>
|
|
482
|
+
1. Install the MCP plugin config file
|
|
483
|
+
2. Explain what tools become available
|
|
484
|
+
3. Tell user to enable plugin and restart session
|
|
485
|
+
</process>
|
|
486
|
+
|
|
487
|
+
Install MCP plugin:
|
|
488
|
+
```bash
|
|
489
|
+
python3 -c "
|
|
490
|
+
import json; from pathlib import Path
|
|
491
|
+
mcp_dir = Path.home() / '.claude' / 'plugins' / 'marketplaces' / 'claude-plugins-official' / 'external_plugins' / 'openrunner'
|
|
492
|
+
mcp_dir.mkdir(parents=True, exist_ok=True)
|
|
493
|
+
mcp_file = mcp_dir / '.mcp.json'
|
|
494
|
+
mcp_file.write_text(json.dumps({{'openrunner': {{'command': 'openrunner', 'args': ['mcp', 'serve']}}}}, indent=2))
|
|
495
|
+
print('MCP plugin installed.')
|
|
496
|
+
print()
|
|
497
|
+
print('10 tools available after activation:')
|
|
498
|
+
print(' openrunner_search_sessions — search AI sessions by keyword')
|
|
499
|
+
print(' openrunner_search_papers — search papers (title, abstract, sections)')
|
|
500
|
+
print(' openrunner_search_research — search research plans (SOTA, gaps, experiments)')
|
|
501
|
+
print(' openrunner_search_runs — search runs by name/tags')
|
|
502
|
+
print(' openrunner_search_code — search code artifacts')
|
|
503
|
+
print(' openrunner_get_session — get full session detail')
|
|
504
|
+
print(' openrunner_list_runs — list recent runs')
|
|
505
|
+
print(' openrunner_get_run_metrics — get metrics for a run')
|
|
506
|
+
print(' openrunner_list_artifacts — list project artifacts')
|
|
507
|
+
print(' openrunner_log_note — log a research note')
|
|
508
|
+
print()
|
|
509
|
+
print('TO ACTIVATE:')
|
|
510
|
+
print(' 1. Run /plugins in Claude Code')
|
|
511
|
+
print(' 2. Enable openrunner')
|
|
512
|
+
print(' 3. Restart this Claude Code session')
|
|
513
|
+
"
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
Tell the user the activation steps clearly.
|
|
517
|
+
"""
|
|
518
|
+
|
|
519
|
+
|
|
470
520
|
def install_claude_code() -> list[str]:
|
|
471
521
|
"""Install commands in ~/.claude/commands/openrunner/."""
|
|
472
522
|
cmd_dir = Path.home() / ".claude" / "commands" / "openrunner"
|
|
@@ -481,6 +531,7 @@ def install_claude_code() -> list[str]:
|
|
|
481
531
|
"login.md": LOGIN_CMD,
|
|
482
532
|
"code-upload.md": CODE_UPLOAD_CMD,
|
|
483
533
|
"update.md": UPDATE_CMD,
|
|
534
|
+
"mcp.md": MCP_CMD,
|
|
484
535
|
}
|
|
485
536
|
|
|
486
537
|
files = []
|
|
@@ -505,6 +556,7 @@ def _install_all_commands_to_dir(cmd_dir: Path, prefix: str = "openrunner:") ->
|
|
|
505
556
|
"login.md": LOGIN_CMD,
|
|
506
557
|
"code-upload.md": CODE_UPLOAD_CMD,
|
|
507
558
|
"update.md": UPDATE_CMD,
|
|
559
|
+
"mcp.md": MCP_CMD,
|
|
508
560
|
}
|
|
509
561
|
|
|
510
562
|
files = []
|
|
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
|
|
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
|