125 lines
6.4 KiB
Makefile
125 lines
6.4 KiB
Makefile
PYTHON ?= uv run python
|
|
OLLAMA_BASE_URL ?= http://localhost:11434/v1
|
|
OLLAMA_MODEL ?= llama3.2:3b
|
|
OLLAMA_DEMO_FLAGS ?=
|
|
RUNTIME_PLATFORM ?= linux-x86_64
|
|
RUNTIME_SOURCE_DIR ?= runtime_sources
|
|
RUNTIME_BUILD_DIR ?= build/runtime_bundle
|
|
RUNTIME_BUNDLE_DIR ?= src/pyro_mcp/runtime_bundle
|
|
RUNTIME_MATERIALIZED_DIR ?= build/runtime_sources
|
|
|
|
.PHONY: help setup lint format typecheck test check demo network-demo doctor ollama ollama-demo run-server install-hooks runtime-bundle runtime-binaries runtime-kernel runtime-rootfs runtime-agent runtime-validate runtime-manifest runtime-sync runtime-clean runtime-fetch-binaries runtime-build-kernel-real runtime-build-rootfs-real runtime-materialize runtime-boot-check runtime-network-check
|
|
|
|
help:
|
|
@printf '%s\n' \
|
|
'Available targets:' \
|
|
' help Show this help message' \
|
|
' setup Install project dependencies' \
|
|
' lint Run Ruff lint checks' \
|
|
' format Run Ruff formatter' \
|
|
' typecheck Run mypy' \
|
|
' test Run pytest' \
|
|
' check Run lint, typecheck, and tests' \
|
|
' demo Run the deterministic VM demo' \
|
|
' network-demo Run the deterministic VM demo with guest networking enabled' \
|
|
' doctor Show runtime and host diagnostics' \
|
|
' ollama-demo Run the network-enabled Ollama lifecycle demo' \
|
|
' run-server Run the MCP server' \
|
|
' install-hooks Install pre-commit hooks' \
|
|
' runtime-bundle Rebuild and sync the packaged runtime bundle' \
|
|
' runtime-binaries Stage runtime binaries into the build bundle' \
|
|
' runtime-kernel Stage kernel artifacts into the build bundle' \
|
|
' runtime-rootfs Stage rootfs artifacts into the build bundle' \
|
|
' runtime-agent Stage guest agent artifacts into the build bundle' \
|
|
' runtime-validate Validate runtime sources against the lockfile' \
|
|
' runtime-manifest Regenerate the runtime manifest in the build bundle' \
|
|
' runtime-sync Sync the built runtime bundle into src/' \
|
|
' runtime-fetch-binaries Materialize pinned upstream Firecracker binaries' \
|
|
' runtime-build-kernel-real Materialize the real guest kernel' \
|
|
' runtime-build-rootfs-real Materialize the real guest rootfs images' \
|
|
' runtime-materialize Run all real-source materialization steps' \
|
|
' runtime-boot-check Validate direct Firecracker boot from the bundled runtime' \
|
|
' runtime-network-check Validate outbound guest networking from the bundled runtime' \
|
|
' runtime-clean Remove generated runtime build artifacts'
|
|
|
|
setup:
|
|
uv sync --dev
|
|
|
|
lint:
|
|
uv run ruff check .
|
|
|
|
format:
|
|
uv run ruff format .
|
|
|
|
typecheck:
|
|
uv run mypy
|
|
|
|
test:
|
|
uv run pytest
|
|
|
|
check: lint typecheck test
|
|
|
|
demo:
|
|
uv run python examples/static_tool_demo.py
|
|
|
|
network-demo:
|
|
PYRO_VM_ENABLE_NETWORK=1 uv run python examples/static_tool_demo.py
|
|
|
|
doctor:
|
|
uv run pyro-mcp-doctor
|
|
|
|
ollama: ollama-demo
|
|
|
|
ollama-demo:
|
|
PYRO_VM_ENABLE_NETWORK=1 uv run pyro-mcp-ollama-demo --base-url "$(OLLAMA_BASE_URL)" --model "$(OLLAMA_MODEL)" $(OLLAMA_DEMO_FLAGS)
|
|
|
|
run-server:
|
|
uv run pyro-mcp-server
|
|
|
|
install-hooks:
|
|
uv run pre-commit install
|
|
|
|
runtime-binaries:
|
|
uv run pyro-mcp-runtime-build stage-binaries --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-kernel:
|
|
uv run pyro-mcp-runtime-build stage-kernel --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-rootfs:
|
|
uv run pyro-mcp-runtime-build stage-rootfs --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-agent:
|
|
uv run pyro-mcp-runtime-build stage-agent --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-validate:
|
|
uv run pyro-mcp-runtime-build validate --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-manifest:
|
|
uv run pyro-mcp-runtime-build manifest --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-sync:
|
|
uv run pyro-mcp-runtime-build sync --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-bundle:
|
|
uv run pyro-mcp-runtime-build bundle --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-fetch-binaries:
|
|
uv run pyro-mcp-runtime-build fetch-binaries --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-build-kernel-real:
|
|
uv run pyro-mcp-runtime-build build-kernel --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-build-rootfs-real:
|
|
uv run pyro-mcp-runtime-build build-rootfs --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-materialize:
|
|
uv run pyro-mcp-runtime-build materialize --platform "$(RUNTIME_PLATFORM)" --source-dir "$(RUNTIME_SOURCE_DIR)" --build-dir "$(RUNTIME_BUILD_DIR)" --bundle-dir "$(RUNTIME_BUNDLE_DIR)" --materialized-dir "$(RUNTIME_MATERIALIZED_DIR)"
|
|
|
|
runtime-boot-check:
|
|
uv run pyro-mcp-runtime-boot-check
|
|
|
|
runtime-network-check:
|
|
uv run pyro-mcp-runtime-network-check
|
|
|
|
runtime-clean:
|
|
rm -rf "$(RUNTIME_BUILD_DIR)" "$(RUNTIME_MATERIALIZED_DIR)"
|