Add Foundry MaaS provider backend - #49
Merged
Merged
Conversation
This clean-room slice ports the official NanoClaw v2 destination-aware message contract into the Rust runtime without importing the dirty TypeScript checkout or changing the provider/deployment posture. Constraint: Keep Azure as the current provider lane and avoid Cloudflare deploys Tested: cargo test nanoclaw::router --lib; cargo test runtime_ --lib; cargo check --bin nanoclaw; rustfmt --check src/nanoclaw/router.rs src/nanoclaw/runtime.rs src/nanoclaw/slack_runtime.rs; git diff --check -- src/nanoclaw/router.rs src/nanoclaw/runtime.rs src/nanoclaw/slack_runtime.rs Co-authored-by: OmX <omx@oh-my-codex.dev>
The migration notes now pin the official upstream reference and separate the delivered destination-routing slice from the remaining upstream parity work. Constraint: Document the Azure/provider boundary without changing deployment behavior Tested: documentation-only change after Rust validation completed for the code slice Co-authored-by: OmX <omx@oh-my-codex.dev>
…nroom-nanoclaw-v2 Port NanoClaw v2 destination routing into Rust runtime
This clean-room slice maps upstream NanoClaw container config semantics onto the Rust registered-group boundary so provider, model, effort, and assistant overrides flow through existing execution evidence paths. Constraint: Keep Azure as a provider lane inside the runtime contract and avoid deployment changes Tested: cargo test nanoclaw::group_runtime_config --lib Tested: cargo test stores_and_reads_group_runtime_config --lib Tested: cargo test --lib Tested: cargo check --bin nanoclaw Tested: temp-directory nanoclaw group-runtime CLI smoke Tested: git diff --check Co-authored-by: OmX <omx@oh-my-codex.dev>
…nroom-runtime-config Add DB-backed group runtime config for Rust NanoClaw
Record runtime serve preflight failures and startup lifecycle transitions into data/runtime/startup-events.jsonl, then surface recent entries through runtime state. Tested: cargo test --all-targets runtime_serve_preflight -- --nocapture Tested: cargo test --all-targets runtime_state_reports_startup_event_ledger -- --nocapture Tested: NANOCLAW_OPENCLAW_GATEWAY_PORT=8788 NANOCLAW_OPENCLAW_GATEWAY_TOKEN= cargo run --quiet --bin nanoclaw -- runtime serve --profile gateway Tested: cargo run --quiet --bin nanoclaw -- runtime state --limit 1 Tested: make verify Tested: cargo fmt --all --check && git diff --check Confidence: high Co-authored-by: OmX <omx@oh-my-codex.dev>
…ime-startup-evidence Persist runtime startup evidence
Evaluate the runtime startup event ledger inside runtime health so recent startup/preflight failures degrade health and repeated failures fail health with local operator notification evidence. Tested: cargo test --all-targets runtime_health_warns_on_recent_startup_failure -- --nocapture Tested: cargo test --all-targets runtime_health_fails_on_repeated_startup_failures_and_notifies -- --nocapture Tested: cargo test --all-targets runtime_serve_preflight -- --nocapture Tested: live repeated gateway preflight failure plus runtime health --limit 5 --notify-local ops Tested: make verify Tested: cargo fmt --all --check && git diff --check Confidence: high Co-authored-by: OmX <omx@oh-my-codex.dev>
…ime-startup-alerts Alert on runtime startup failures
Derive deterministic recovery suggestions from startup failure missing-config evidence and include them in runtime health and local operator alerts. Tested: cargo test --all-targets runtime_health_warns_on_recent_startup_failure -- --nocapture Tested: cargo test --all-targets runtime_health_fails_on_repeated_startup_failures_and_notifies -- --nocapture Tested: cargo test --all-targets runtime_serve_preflight -- --nocapture Tested: live repeated gateway preflight failure plus runtime health --limit 5 --notify-local ops Tested: make verify Tested: cargo fmt --all --check && git diff --check Confidence: high Co-authored-by: OmX <omx@oh-my-codex.dev>
…ime-startup-recovery-suggestions Suggest runtime startup recovery actions
Add runtime repair plan/apply commands that normalize health recovery suggestions into deterministic repair items classified as auto_applyable, operator_required, or blocked. Apply mode refuses secret writes, operator config choices, legacy lane enablement, and long-running profile restarts unless an explicit deterministic handler exists. Tested: cargo test --all-targets runtime_repair -- --nocapture Tested: cargo test --all-targets runtime_health_warns_on_recent_startup_failure -- --nocapture Tested: cargo test --all-targets runtime_health_fails_on_repeated_startup_failures_and_notifies -- --nocapture Tested: live gateway token failure plus runtime repair --plan/--apply --limit 5 Tested: make verify Tested: cargo fmt --all --check && git diff --check Confidence: high Co-authored-by: OmX <omx@oh-my-codex.dev>
…ime-repair-plan Add guarded runtime repair planning
Add runtime state-action planning and confirmed apply support for legacy runtime residue. The apply registry is intentionally non-destructive: it archives eligible legacy state with receipts and refuses source-reference mutation. Verification: - cargo test --all-targets runtime_state_action -- --nocapture - cargo test --all-targets runtime_state_residue_inventory_is_report_only -- --nocapture - cargo build --bin nanoclaw - disposable runtime state-action CLI probe - cargo fmt --all --check - git diff --check - make verify Co-authored-by: OmX <omx@oh-my-codex.dev>
…e-residue-actions Add guarded state residue actions
Add a deterministic report-only runtime source-disposition command for legacy Agency source material. The report fingerprints parked source directories, maps each path to its Rust NanoClaw descendant role, and keeps movement/deletion disabled until a specific clean-room contract exists. Verification: - cargo test --all-targets source_disposition -- --nocapture - cargo run --quiet --bin nanoclaw -- runtime source-disposition --limit 3 - cargo fmt --all --check - git diff --check Co-authored-by: OmX <omx@oh-my-codex.dev>
…ce-disposition-actions Add source disposition reporting
Add a deterministic legacy source gate to keep old Agency modules, tests, root binaries, and Cargo targets out of the active Rust NanoClaw surface. Wire the guard into make verify and GitHub Actions alongside the source-disposition report. Verification: - scripts/check-legacy-source-gates.sh - make runtime-source-disposition - make verify - git diff --check Co-authored-by: OmX <omx@oh-my-codex.dev>
…cy-source-guard Enforce legacy source collapse gates
Park the old ONNX bundling helper under the Agency graveyard and keep the root script as a compatibility guard. Extend legacy source gates so the helper cannot point operators back to the inactive proof_of_life target. Verification: - scripts/check-legacy-source-gates.sh - scripts/bundle_onnx.sh guard probe - make verify - git diff --check Co-authored-by: OmX <omx@oh-my-codex.dev>
…apse-status-finalize Guard legacy ONNX helper
Update the collapse audit so completed build, source, script, documentation, runtime, evidence, and state milestones are recorded as active guarded surfaces. Replace the old recommended order with completed milestones and the remaining bounded collapse work. Verification: - scripts/check-legacy-source-gates.sh - git diff --check Co-authored-by: OmX <omx@oh-my-codex.dev>
…apse-audit-status Finalize collapse audit status
Route Azure AI Foundry marketplace models through the existing NanoClaw/OpenClaw provider contract so DeepSeek, Kimi, Mistral, and similar models can be benchmarked without bypassing execution evidence or cost metadata. Constraint: Keep Foundry MaaS behind explicit backend/env selection so current Azure OpenAI defaults do not change. Tested: cargo fmt; git diff --check; cargo test --lib model_router --locked; cargo test --lib foundry --locked; cargo test --lib maps_foundry_maas_model_to_provider_env --locked; cargo check --locked Co-authored-by: OmX <omx@oh-my-codex.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
foundry-maasas a first-class NanoClaw/OpenClaw backend distinct fromazure-openaiValidation
cargo fmtgit diff --checkcargo test --lib model_router --lockedcargo test --lib foundry --lockedcargo test --lib maps_foundry_maas_model_to_provider_env --lockedcargo check --lockedNotes
foundry-maas.