Skip to content

feat(providers): add Meta Model API - muse-spark-1.1 - #102873

Merged
jalehman merged 8 commits into
openclaw:mainfrom
HamidShojanazeri:feat/meta-model-api-muse-spark
Jul 9, 2026
Merged

jalehman merged 8 commits into
openclaw:mainfrom
HamidShojanazeri:feat/meta-model-api-muse-spark

Conversation

@HamidShojanazeri

@HamidShojanazeri HamidShojanazeri commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Adds meta-model-api provider via bundled extension:

  • extensions/meta-model-api/ (provider, catalog, stream, thinking, onboarding)
  • docs/providers/meta-model-api.md
  • core wiring: env-api-keys, zod-schema, provider-display-names, dotenv, provider-env-vars

Model: meta-model-api/muse-spark-1.1 (Responses API at https://api.ai.meta.com/v1)


What Problem This Solves

OpenClaw needs a selectable Meta Model API provider path so operators can configure MODEL_API_KEY and route agent traffic to meta-model-api/muse-spark-1.1 through the Responses API.

Why This Change Was Made

This adds the bundled meta-model-api provider surface, static Muse Spark catalog entry, onboarding/config wiring, provider display metadata, and docs needed for local gateway setup and model selection.

User Impact

Operators can set a Meta Model API key, select meta-model-api/muse-spark-1.1, and run OpenClaw traffic through Meta's Responses-compatible endpoint without manually patching provider internals.

Evidence

Maintainer local proof was collected against PR head 7975616acab10c1b9c27bdfe646af0a9bbbe551a with the API key redacted. No request body, response body, prompt text, or message text is included below.

Gateway: PR dist running on port 18789, RPC OK, serverVersion=2026.6.11
Default model: meta-model-api/muse-spark-1.1
Provider config: baseUrl=https://api.ai.meta.com/v1, api=openai-responses, auth=api-key, apiKey=__OPENCLAW_REDACTED__
Model list: meta-model-api/muse-spark-1.1 text+image 1049k Auth yes default,configured,alias:Muse Spark 1.1

Redacted transport proof from the local gateway logs:

2026-07-09T11:25:36.588-04:00 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:25:38.272-04:00 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=1684 contentType=text/event-stream
2026-07-09T11:26:29.775-04:00 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:26:30.409-04:00 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=633 contentType=text/event-stream
2026-07-09T11:26:58.673-04:00 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:26:59.187-04:00 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=513 contentType=text/event-stream
2026-07-09T11:27:37.255-04:00 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:27:37.795-04:00 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=540 contentType=text/event-stream

Image proof

{AB407D9E-0EDC-4F9F-A75F-5C6CF257C3B9} Meta Model API local proof screenshot

Source comment: #102873 (comment)

Adds meta-model-api provider via bundled extension:
- extensions/meta-model-api/ (provider, catalog, stream, thinking, onboarding)
- docs/providers/meta-model-api.md
- core wiring: env-api-keys, zod-schema, provider-display-names, dotenv, provider-env-vars

Model: meta-model-api/muse-spark-1.1 (Responses API at https://api.ai.meta.com/v1)
Auth: MODEL_API_KEY (Bearer)
Default reasoning: high, maps --thinking off -> minimal (model rejects none)

Fix: bump live test maxTokens 200->4000 (high reasoning uses ~300 tokens for reasoning alone)

Co-authored-by: Meta
@HamidShojanazeri
HamidShojanazeri requested a review from a team as a code owner July 9, 2026 14:01
@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation agents Agent runtime and tooling size: L labels Jul 9, 2026
@github-actions github-actions Bot added the dependencies-changed PR changes dependency-related files label Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Dependency Guard

This PR changes dependency-related files. Maintainers should confirm these changes are intentional.

Changed files:

  • extensions/meta-model-api/package.json
  • pnpm-lock.yaml

Maintainer follow-up:

  • Review whether the dependency changes are intentional.
  • Inspect resolved package deltas when lockfile, shrinkwrap, or workspace dependency policy changes are present.
  • Treat package-lock.json and npm-shrinkwrap.json diffs as security-review surfaces.
  • Run pnpm deps:changes:report -- --base-ref origin/main --markdown /tmp/dependency-changes.md --json /tmp/dependency-changes.json locally for detailed release-style evidence.

@openclaw-barnacle openclaw-barnacle Bot added triage: external-plugin-candidate Candidate: plugin/capability may belong on ClawHub. triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. labels Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Dependency graph changes are blocked

OpenClaw does not accept dependency graph changes through PRs unless a repository admin or security explicitly authorizes the current head SHA. Dependency updates are generated internally by maintainers so external PRs cannot change the resolved graph.

Detected dependency graph changes:

  • pnpm-lock.yaml changed.
  • extensions/meta-model-api/package.json changed devDependencies, name, version.

Auto-scrub was not attempted because this PR changes package manifest dependency graph fields:

  • extensions/meta-model-api/package.json changed devDependencies, name, version.

Dependency graph changes must be reviewed by security or handled by maintainers internally. Please remove lockfile changes manually if they are not needed.

To remove lockfile changes, restore them from the target branch:

git fetch origin
git checkout 'origin/main' -- 'pnpm-lock.yaml'
git commit -m 'chore: remove dependency lockfile change'
git push

If this PR intentionally needs a dependency graph change, ask a repository admin or member of @openclaw/openclaw-secops to comment:

/allow-dependencies-change

The action will approve the current head SHA (cc9cc98c87c0eb0978ed34e1337ded128fa0425f) when it reruns. A later push requires a fresh approval.

@clawsweeper

clawsweeper Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Codex review: found issues before merge. Reviewed July 9, 2026, 1:15 PM ET / 17:15 UTC.

Summary
Adds a bundled Meta Model API provider plugin for muse-spark-1.1 with manifest/catalog/onboarding/docs/live tests plus core auth, config, display-name, dotenv, and lockfile wiring.

PR surface: Source +302, Tests +161, Docs +205, Config +31, Other +6. Total +705 across 22 files.

Reproducibility: not applicable. this is a new provider feature PR rather than a reported bug. The PR includes redacted local gateway and transport proof, but there is no current-main failure to reproduce.

Review metrics: 2 noteworthy metrics.

  • Provider setup surfaces: 1 provider id, 1 auth env var, 1 CLI auth flag added. New provider setup/auth surfaces are compatibility-sensitive and need maintainer intent before merge.
  • Dependency graph surfaces: 1 package manifest and 1 lockfile changed. External PR dependency graph changes require security/admin review under the live dependency guard.

Merge readiness
Overall: 🦪 silver shellfish
Proof: 🐚 platinum hermit
Patch quality: 🦪 silver shellfish
Result: blocked by patch quality or review findings.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Get maintainer direction on bundled core provider versus external ClawHub/npm provider.
  • [P2] If bundled inclusion is sponsored, remove duplicate core env fallbacks or document the approved exception, add docs navigation/labeler metadata, and obtain dependency authorization.
  • Refresh PR checks after the docs and dependency/security blockers are resolved.

Risk before merge

  • [P1] Bundling this optional provider into core conflicts with the default plugin/ClawHub boundary unless a maintainer explicitly sponsors the exception.
  • [P1] The PR adds provider auth, env-var, CLI auth-choice, dotenv-blocking, config-overlay, and dependency graph surfaces that affect setup and credential handling beyond the plugin folder.
  • [P1] The dependency guard still requires repository admin or secops authorization for the package manifest and lockfile changes before merge.
  • [P1] The new provider docs page is not in docs/docs.json navigation and check-docs is currently failing on the PR run.

Maintainer options:

  1. Move the provider out of core (recommended)
    Use the existing plugin SDK and ClawHub/npm distribution path so OpenClaw core does not gain a new optional provider, auth flag, env var, and lockfile surface.
  2. Fix and sponsor the bundled path
    Before merge, get maintainer sponsorship, remove duplicate core env fallbacks where manifest metadata already works, add docs navigation and labeler metadata, and obtain dependency/security authorization.
  3. Accept the bundled-provider risk
    Maintainers can intentionally land the provider as a core exception, but should own the upgrade, auth-provider, and dependency-review implications explicitly.

Next step before merge

  • [P2] This needs maintainer product/security direction, not an automated repair lane, because the main blocker is whether to sponsor bundled-core provider inclusion and authorize dependency/credential-surface changes.

Maintainer decision needed

  • Question: Should OpenClaw sponsor Meta Model API as a bundled core provider, or should this be moved to an external ClawHub/npm provider package?
  • Rationale: The code is plausible and has live proof, but the repository policy and VISION.md default to external plugin distribution for optional providers, while the PR adds compatibility- and security-sensitive core auth/config/dependency surfaces.
  • Likely owner: jalehman — jalehman is the current assignee and latest PR committer, so he is the best visible owner for the product-direction choice.
  • Options:
    • Move to external provider package (recommended): Ask the contributor to publish the provider through ClawHub/npm and close or pause this bundled-core PR unless a maintainer later sponsors official inclusion.
    • Sponsor bundled inclusion after cleanup: Keep the PR open but require maintainer ownership, duplicate-core-env cleanup, docs/labeler updates, dependency authorization, and fresh checks before merge.
    • Accept the core exception as-is: A maintainer may intentionally accept the extra bundled provider and credential surface, but that should be explicit because it increases core surface area.

Security
Needs attention: Security review needs attention because the PR changes provider credential handling and the dependency graph from an external contributor branch.

Review findings

  • [P1] Keep provider env metadata plugin-owned — src/secrets/provider-env-vars.ts:27
  • [P2] Add the provider page to docs navigation — docs/providers/meta-model-api.md:1
Review details

Best possible solution:

Either publish this as an external ClawHub/npm provider plugin, or have the assigned maintainer explicitly sponsor bundled inclusion after removing duplicate core env fallbacks, updating docs navigation/labeler metadata, and clearing dependency/security authorization.

Do we have a high-confidence way to reproduce the issue?

Not applicable: this is a new provider feature PR rather than a reported bug. The PR includes redacted local gateway and transport proof, but there is no current-main failure to reproduce.

Is this the best way to solve the issue?

No: the branch proves a plausible provider path, but the best solution is either external ClawHub/npm packaging or an explicit maintainer-sponsored bundled-provider exception with the core-env duplication and docs/navigation blockers fixed.

Full review comments:

  • [P1] Keep provider env metadata plugin-owned — src/secrets/provider-env-vars.ts:27
    Late discovery: this line was visible in the earlier reviewed head, but the prior review only surfaced it as security context. The new manifest already declares MODEL_API_KEY under setup.providers[].envVars, and current code/docs say bundled provider envs come from manifest metadata; adding a core fallback creates a second source of truth that can outlive plugin trust, disablement, or externalization.
    Confidence: 0.88
    Late finding: first raised on code an earlier review cycle already covered.
  • [P2] Add the provider page to docs navigation — docs/providers/meta-model-api.md:1
    Late discovery: the new page existed in the earlier reviewed head, but this line-level docs blocker was not raised then. The branch adds docs/providers/meta-model-api.md and updates docs_map, but docs/docs.json does not include providers/meta-model-api in the Providers list, leaving the public page out of Mintlify navigation and matching the currently failing docs check.
    Confidence: 0.82
    Late finding: first raised on code an earlier review cycle already covered.

Overall correctness: patch is incorrect
Overall confidence: 0.86

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against f1e7081b4d36.

Label changes

Label changes:

  • add merge-risk: 🚨 compatibility: The PR adds a new provider id, config overlay allowance, provider docs, and onboarding/auth-choice surfaces that can affect setup and upgrades.
  • add merge-risk: 🚨 auth-provider: The PR changes provider credential discovery, dotenv blocking, API-key env lookup, and provider auth-choice behavior for MODEL_API_KEY.
  • add merge-risk: 🚨 security-boundary: The PR touches secret-handling surfaces and dependency graph files, both of which require security-sensitive review before merge.
  • add proof: sufficient: Contributor real behavior proof is sufficient. The PR body/comment includes redacted local gateway status plus model-fetch logs showing repeated meta-model-api/muse-spark-1.1 Responses API requests returning HTTP 200 text/event-stream; private keys and payloads were redacted.
  • add rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🐚 platinum hermit and patch quality is 🦪 silver shellfish.
  • add status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (logs): The PR body/comment includes redacted local gateway status plus model-fetch logs showing repeated meta-model-api/muse-spark-1.1 Responses API requests returning HTTP 200 text/event-stream; private keys and payloads were redacted.

Label justifications:

  • P2: This is a normal-priority new provider feature with bounded surface area but real setup/auth and dependency-review impact.
  • merge-risk: 🚨 compatibility: The PR adds a new provider id, config overlay allowance, provider docs, and onboarding/auth-choice surfaces that can affect setup and upgrades.
  • merge-risk: 🚨 auth-provider: The PR changes provider credential discovery, dotenv blocking, API-key env lookup, and provider auth-choice behavior for MODEL_API_KEY.
  • merge-risk: 🚨 security-boundary: The PR touches secret-handling surfaces and dependency graph files, both of which require security-sensitive review before merge.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🐚 platinum hermit and patch quality is 🦪 silver shellfish.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (logs): The PR body/comment includes redacted local gateway status plus model-fetch logs showing repeated meta-model-api/muse-spark-1.1 Responses API requests returning HTTP 200 text/event-stream; private keys and payloads were redacted.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body/comment includes redacted local gateway status plus model-fetch logs showing repeated meta-model-api/muse-spark-1.1 Responses API requests returning HTTP 200 text/event-stream; private keys and payloads were redacted.
Evidence reviewed

PR surface:

Source +302, Tests +161, Docs +205, Config +31, Other +6. Total +705 across 22 files.

View PR surface stats
Area Files Added Removed Net
Source 13 302 0 +302
Tests 3 161 0 +161
Docs 3 205 0 +205
Config 2 31 0 +31
Generated 0 0 0 0
Other 1 18 12 +6
Total 22 717 12 +705

Security concerns:

  • [medium] Dependency graph change needs authorization — extensions/meta-model-api/package.json:7
    The new plugin package manifest and pnpm-lock.yaml change dependency graph state, and the live dependency guard says external PR dependency graph changes require repository admin or secops authorization for the current head.
    Confidence: 0.95
  • [medium] Core credential lookup bypasses plugin ownership — src/secrets/provider-env-vars.ts:27
    Adding meta-model-api to core provider env-var candidates makes MODEL_API_KEY visible through core auth lookup even though the provider manifest already owns the credential metadata and plugin trust/activation should decide availability.
    Confidence: 0.88

What I checked:

  • Repository policy routes optional providers out of core by default: Root review policy says optional integrations and providers should route to plugins, ClawHub, or owner repos when current seams suffice, and treats provider/config/auth additions as compatibility-sensitive. (AGENTS.md:30, f1e7081b4d36)
  • VISION.md sets a high bar for bundled optional plugins: VISION.md says core stays lean, optional capabilities should usually ship as plugins, and plugin promotion belongs in ClawHub. (VISION.md:64, f1e7081b4d36)
  • Current plugin SDK already covers the proposed provider shape: defineSingleProviderPluginEntry registers provider auth, env vars, catalogs, docs paths, stream hooks, and model catalog rows through the public plugin SDK boundary. (src/plugin-sdk/provider-entry.ts:221, f1e7081b4d36)
  • Manifest env-var metadata is the current supported path: Current provider env-var code says bundled provider auth envs come from plugin manifests, while docs say new plugins should put setup/status env metadata on setup.providers[].envVars. (src/secrets/provider-env-vars.ts:418, f1e7081b4d36)
  • PR duplicates manifest env metadata into core auth fallback: The PR manifest declares MODEL_API_KEY under setup.providers, but the branch also adds meta-model-api to CORE_PROVIDER_AUTH_ENV_VAR_CANDIDATES. (src/secrets/provider-env-vars.ts:27, 398b03399e66)
  • Docs navigation is not updated for the new provider page: The PR adds docs/providers/meta-model-api.md, but docs/docs.json still jumps from providers/longcat to providers/minimax in the Providers navigation list. Public docs: docs/docs.json. (docs/docs.json:1487, 398b03399e66)

Likely related people:

  • steipete: Current blame and recent history for VISION.md plugin-boundary text, provider-entry, provider env-var ownership, and provider SDK refactors point to Peter Steinberger. (role: provider/plugin architecture contributor; confidence: high; commits: b8cdb93f6ffa, 956fe72b39e6, 5c120cb36ca3; files: VISION.md, src/plugin-sdk/provider-entry.ts, src/secrets/provider-env-vars.ts)
  • jalehman: Live PR timeline assigns this PR to jalehman after the close/reopen cycle, and the latest PR commit is his docs wording update. (role: current assigned follow-up owner; confidence: high; commits: 398b03399e66, adc329b26b; files: docs/providers/meta-model-api.md, extensions/meta-model-api/package.json)
  • vincentkoc: Recent history includes plugin package-boundary and provider docs work by Vincent Koc around the same extension/package surfaces. (role: adjacent plugin/package boundary contributor; confidence: medium; commits: fb64ba7bf7, d5ed6d26e9, 647aade27a; files: extensions/*/tsconfig.json, docs/providers/qianfan.md, docs/providers/xiaomi.md)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. labels Jul 9, 2026
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jul 9, 2026
@Solvely-Colin

Copy link
Copy Markdown
Contributor

Adding Local Proof to help Clear CI

{601CA4F9-B213-40D1-821E-E92FA38D01CA}

Meta Model API Local Proof (redacted)

Generated: 2026-07-09T11:28:22-04:00
Scope: local PR gateway, redacted provider/model transport proof only.
Redaction: no API key, no request body, no response body, no prompt/message text. Absolute home paths are shortened.

Gateway Status

{
  "port": 18789,
  "pid": 71290,
  "commandLine": "/opt/homebrew/opt/node/bin/node ~/Projects/ai-agents/openclaw/.worktrees/pr-102873-local-gateway-install/dist/index.js gateway --port 18789",
  "rpcOk": true,
  "rpcUrl": "ws://127.0.0.1:18789",
  "serverVersion": "2026.6.11",
  "authCapability": "admin_capable"
}

Default Model

{
  "primary": "meta-model-api/muse-spark-1.1",
  "fallbacks": [
    "openai/gpt-5.4",
    "openai/gpt-5.4-mini"
  ]
}

Meta Provider Config Presence

{
  "baseUrl": "https://api.ai.meta.com/v1",
  "apiKey": "__OPENCLAW_REDACTED__",
  "auth": "api-key",
  "api": "openai-responses",
  "models": [
    {
      "id": "muse-spark-1.1",
      "name": "Muse Spark 1.1",
      "reasoning": true,
      "input": [
        "text",
        "image"
      ],
      "contextWindow": 1048576,
      "maxTokens": 128000,
      "api": "openai-responses"
    }
  ]
}

Model List

Model                                      Input      Ctx         Local Auth  Tags
meta-model-api/muse-spark-1.1              text+image 1049k       no    yes   default,configured,alias:Muse Spark 1.1

Available via promotion:
  Tencent Hy3 is free on OpenRouter — OpenRouter (ends 7/21/2026)
    · openrouter/tencent/hy3:free (hy3-free)
    Claim: openclaw promos claim tencent-hy3-openrouter-free

Recent Model Transport Events

2026-07-09T11:25:36.588-04:00 line=2087 trace=5e03f4ca1a2019a0167bebd33d22ae4d span=5a4d48450a3ac595 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:25:38.272-04:00 line=2088 trace=5e03f4ca1a2019a0167bebd33d22ae4d span=5a4d48450a3ac595 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=1684 contentType=text/event-stream
2026-07-09T11:26:29.775-04:00 line=2178 trace=b5b1b22deaf2c13dbfd640674df12d16 span=f0368cc558d0e33e [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:26:30.409-04:00 line=2179 trace=b5b1b22deaf2c13dbfd640674df12d16 span=f0368cc558d0e33e [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=633 contentType=text/event-stream
2026-07-09T11:26:32.150-04:00 line=2180 trace=b5b1b22deaf2c13dbfd640674df12d16 span=f0368cc558d0e33e [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:26:33.468-04:00 line=2181 trace=b5b1b22deaf2c13dbfd640674df12d16 span=f0368cc558d0e33e [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=1318 contentType=text/event-stream
2026-07-09T11:26:49.130-04:00 line=2188 trace=9cad03199ec90da0897e257be0d565a6 span=4524fa270e30cc81 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:26:49.775-04:00 line=2189 trace=9cad03199ec90da0897e257be0d565a6 span=4524fa270e30cc81 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=645 contentType=text/event-stream
2026-07-09T11:26:50.736-04:00 line=2191 trace=b5b1b22deaf2c13dbfd640674df12d16 span=5a2527767947bdd8 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:26:51.290-04:00 line=2194 trace=b5b1b22deaf2c13dbfd640674df12d16 span=5a2527767947bdd8 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=554 contentType=text/event-stream
2026-07-09T11:26:58.673-04:00 line=2200 trace=9b7259f09e98453d30df31a88a9e3ae3 span=a5c64fee32b75ea2 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:26:59.187-04:00 line=2201 trace=9b7259f09e98453d30df31a88a9e3ae3 span=a5c64fee32b75ea2 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=513 contentType=text/event-stream
2026-07-09T11:27:07.962-04:00 line=2206 trace=9cad03199ec90da0897e257be0d565a6 span=15164c8ca3e38102 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:27:08.533-04:00 line=2208 trace=9cad03199ec90da0897e257be0d565a6 span=15164c8ca3e38102 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=571 contentType=text/event-stream
2026-07-09T11:27:18.145-04:00 line=2212 trace=5e177059fac216f2b86f3e7426ec4e87 span=15d22e26cb6559cf [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:27:19.400-04:00 line=2213 trace=5e177059fac216f2b86f3e7426ec4e87 span=15d22e26cb6559cf [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=1255 contentType=text/event-stream
2026-07-09T11:27:37.255-04:00 line=2219 trace=5e177059fac216f2b86f3e7426ec4e87 span=474368e7ed1872f3 [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
2026-07-09T11:27:37.795-04:00 line=2221 trace=5e177059fac216f2b86f3e7426ec4e87 span=474368e7ed1872f3 [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=540 contentType=text/event-stream

Launchd Console Excerpt

5843:2026-07-09T11:24:30.861-04:00 [gateway] agent model: meta-model-api/muse-spark-1.1 (thinking=medium, fast=off)
8759:2026-07-09T11:25:19.617-04:00 [gateway] agent model: meta-model-api/muse-spark-1.1 (thinking=medium, fast=off)
8797:2026-07-09T11:25:35.569-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
8799:2026-07-09T11:25:36.555-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=991 contentType=text/event-stream
8800:2026-07-09T11:25:36.589-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
8801:2026-07-09T11:25:38.274-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=1684 contentType=text/event-stream
11672:2026-07-09T11:25:50.132-04:00 [gateway] agent model: meta-model-api/muse-spark-1.1 (thinking=medium, fast=off)
11713:2026-07-09T11:26:29.776-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11714:2026-07-09T11:26:30.410-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=633 contentType=text/event-stream
11715:2026-07-09T11:26:32.151-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11716:2026-07-09T11:26:33.470-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=1318 contentType=text/event-stream
11722:2026-07-09T11:26:49.131-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11723:2026-07-09T11:26:49.778-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=645 contentType=text/event-stream
11724:2026-07-09T11:26:50.737-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11727:2026-07-09T11:26:51.292-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=554 contentType=text/event-stream
11733:2026-07-09T11:26:58.674-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11734:2026-07-09T11:26:59.189-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=513 contentType=text/event-stream
11737:2026-07-09T11:27:07.963-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11739:2026-07-09T11:27:08.535-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=571 contentType=text/event-stream
11743:2026-07-09T11:27:18.145-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11744:2026-07-09T11:27:19.402-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=1255 contentType=text/event-stream
11749:2026-07-09T11:27:37.256-04:00 [provider-transport-fetch] [model-fetch] start provider=meta-model-api api=openai-responses model=muse-spark-1.1 method=POST url=<provider-responses-endpoint> timeoutMs=<redacted> proxy=none policy=custom
11751:2026-07-09T11:27:37.797-04:00 [provider-transport-fetch] [model-fetch] response provider=meta-model-api api=openai-responses model=muse-spark-1.1 status=200 elapsedMs=540 contentType=text/event-stream

@clawsweeper re-review here is logs for proof.

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jul 9, 2026
@clawsweeper

clawsweeper Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper applied the proposed close for this PR.

@clawsweeper clawsweeper Bot closed this Jul 9, 2026
@Solvely-Colin Solvely-Colin reopened this Jul 9, 2026
@clawsweeper clawsweeper Bot removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jul 9, 2026
@jalehman jalehman self-assigned this Jul 9, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. labels Jul 9, 2026
@jalehman
jalehman merged commit 08a957e into openclaw:main Jul 9, 2026
95 of 96 checks passed
vincentkoc pushed a commit that referenced this pull request Jul 10, 2026
* feat(providers): add Meta Model API - muse-spark-1.1

Adds meta-model-api provider via bundled extension:
- extensions/meta-model-api/ (provider, catalog, stream, thinking, onboarding)
- docs/providers/meta-model-api.md
- core wiring: env-api-keys, zod-schema, provider-display-names, dotenv, provider-env-vars

Model: meta-model-api/muse-spark-1.1 (Responses API at https://api.ai.meta.com/v1)
Auth: MODEL_API_KEY (Bearer)
Default reasoning: high, maps --thinking off -> minimal (model rejects none)

Fix: bump live test maxTokens 200->4000 (high reasoning uses ~300 tokens for reasoning alone)

Co-authored-by: Meta

* fix(meta-model-api): clean reasoning lint

* test(meta-model-api): align live proof checks

* chore(meta-model-api): bundle provider metadata

* docs: fix Meta Model API setup wording

* docs: format Meta Model API provider page

---------

Co-authored-by: Dave Morin <dave@morin.com>
Co-authored-by: Colin <colin@solvely.net>
Co-authored-by: Josh Lehman <josh@martian.engineering>
(cherry picked from commit 08a957e)
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 10, 2026
* feat(providers): add Meta Model API - muse-spark-1.1

Adds meta-model-api provider via bundled extension:
- extensions/meta-model-api/ (provider, catalog, stream, thinking, onboarding)
- docs/providers/meta-model-api.md
- core wiring: env-api-keys, zod-schema, provider-display-names, dotenv, provider-env-vars

Model: meta-model-api/muse-spark-1.1 (Responses API at https://api.ai.meta.com/v1)
Auth: MODEL_API_KEY (Bearer)
Default reasoning: high, maps --thinking off -> minimal (model rejects none)

Fix: bump live test maxTokens 200->4000 (high reasoning uses ~300 tokens for reasoning alone)

Co-authored-by: Meta

* fix(meta-model-api): clean reasoning lint

* test(meta-model-api): align live proof checks

* chore(meta-model-api): bundle provider metadata

* docs: fix Meta Model API setup wording

* docs: format Meta Model API provider page

---------

Co-authored-by: Dave Morin <dave@morin.com>
Co-authored-by: Colin <colin@solvely.net>
Co-authored-by: Josh Lehman <josh@martian.engineering>
zooqueen pushed a commit to zooqueen/openclaw that referenced this pull request Sep 11, 2026
* feat(providers): add Meta Model API - muse-spark-1.1

Adds meta-model-api provider via bundled extension:
- extensions/meta-model-api/ (provider, catalog, stream, thinking, onboarding)
- docs/providers/meta-model-api.md
- core wiring: env-api-keys, zod-schema, provider-display-names, dotenv, provider-env-vars

Model: meta-model-api/muse-spark-1.1 (Responses API at https://api.ai.meta.com/v1)
Auth: MODEL_API_KEY (Bearer)
Default reasoning: high, maps --thinking off -> minimal (model rejects none)

Fix: bump live test maxTokens 200->4000 (high reasoning uses ~300 tokens for reasoning alone)

Co-authored-by: Meta

* fix(meta-model-api): clean reasoning lint

* test(meta-model-api): align live proof checks

* chore(meta-model-api): bundle provider metadata

* docs: fix Meta Model API setup wording

* docs: format Meta Model API provider page

---------

Co-authored-by: Dave Morin <dave@morin.com>
Co-authored-by: Colin <colin@solvely.net>
Co-authored-by: Josh Lehman <josh@martian.engineering>
(cherry picked from commit 08a957e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling dependencies-changed PR changes dependency-related files docs Improvements or additions to documentation merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. size: L status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. triage: external-plugin-candidate Candidate: plugin/capability may belong on ClawHub.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants