Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 26 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ OmniBioAI’s Tool Execution Service (TES) to run individual tools across **mult
* Local Docker execution
* AWS Batch
* Azure Batch
* GCP Batch (`gs://` results upload)
* Kubernetes Jobs
* Slurm / HPC via TES adapters

Expand Down Expand Up @@ -78,14 +79,22 @@ omnibioai-tool-runtime/
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ omni_tool_runtime/
β”‚ β”œβ”€β”€ __init__.py
β”‚ β”œβ”€β”€ contract.py # ToolContract + read_contract_from_env() β€”
β”‚ β”‚ # the code implementing "Execution Contract" below
β”‚ β”œβ”€β”€ run.py # Generic entrypoint: resolves TOOL_ID ->
β”‚ β”‚ # tools.{tool_id}.run and calls its main()
β”‚ β”œβ”€β”€ result_uri.py # URI parsing & dispatch
β”‚ β”œβ”€β”€ upload_result.py # Unified upload logic
β”‚ └── uploaders/
β”‚ β”œβ”€β”€ s3_uploader.py
β”‚ └── azureblob_uploader.py
β”œβ”€β”€ tools/
β”‚ └── echo_test/
β”‚ β”œβ”€β”€ __init__.py
β”‚ β”œβ”€β”€ echo_test/ # Minimal reference implementation β€” see below
β”‚ β”‚ β”œβ”€β”€ __init__.py
β”‚ β”‚ └── run.py
β”‚ β”œβ”€β”€ generic_sif_runner/ # The real, production tool β€” embedded in every
β”‚ β”‚ └── run.py # ECR/ACR/GCR image (see omnibioai-tes's README)
β”‚ └── workflow_runner/
β”‚ └── run.py
└── tests/
```
Expand All @@ -98,16 +107,21 @@ omnibioai-tool-runtime/
cd ~/Desktop/machine/omnibioai-tool-runtime
pytest tests/ -v --cov=.

# 100% coverage
# 99% coverage (verified 2026-08-07; 371 tests. Two lines in
# generic_sif_runner/run.py are the only gap)
# Covers: upload_result, S3 uploader, Azure uploader,
# echo_test tool, run lifecycle
# echo_test/generic_sif_runner/workflow_runner tools, run lifecycle
```

---

## Example Tool: `echo_test`

This is the **reference implementation** for all future tools.
This is a **minimal reference implementation** β€” small enough to read
end-to-end as a template for a new tool. The real, production tool
embedded in every ECR/ACR/GCR image is `tools/generic_sif_runner/` (see
[omnibioai-tes's README](../omnibioai-tes#generic_sif_runner)); a third,
`tools/workflow_runner/`, also ships here.

### Behavior

Expand Down Expand Up @@ -154,6 +168,7 @@ if __name__ == "__main__":
| ------- | ------------------------------------------------- |
| AWS | `s3://bucket/prefix/run_id/results.json` |
| Azure | `azureblob://account/container/path/results.json` |
| GCP | `gs://bucket/prefix/run_id/results.json` (via `google.cloud.storage`) |

The runtime:

Expand Down Expand Up @@ -304,10 +319,13 @@ tools:
- Unified runtime image embedded in all tool Docker images
- AWS Batch support (S3 result upload)
- Azure Batch support (Azure Blob result upload)
- Kubernetes Job support
- GCP Batch support (GCS result upload)
- Kubernetes Job support β€” the same image runs unmodified as a K8s Job's
container; no Kubernetes-specific code lives in this repo
- Deterministic execution contract
- Reference `echo_test` tool
- 100% test coverage
- Reference `echo_test` tool, plus the production `generic_sif_runner`
and `workflow_runner` tools
- 99% test coverage

### Intentionally not included (by design)
- No workflow orchestration
Expand Down
Loading