Skip to content

[Feature]: Load macOS onboarding providers from Gateway catalog #101019

Description

@steipete

Summary

Load the macOS “Connect your AI” API-key picker from the Gateway’s supported text-inference provider registry instead of a three-provider app constant.

Problem to solve

The macOS onboarding UI only offers Anthropic, OpenAI, and Google for manual API-key setup. OpenClaw supports more provider plugins, so users with another supported provider are forced out of the guided first-run flow even though the Gateway already owns the provider/auth contracts.

Proposed solution

Have crestodian.setup.detect return the Gateway’s available text-inference API-key auth choices, including provider-owned labels and hints. Render that list in the macOS picker and have activation resolve the selected provider auth method, live-test its provider-owned starter model, and persist credentials/config only after success.

Alternatives considered

  • Expand the Swift enum: still drifts whenever providers change.
  • Maintain a second core map of provider/model defaults: duplicates plugin ownership and misses provider-specific config.
  • Send users to CLI setup: breaks the guided macOS first-run path.

Impact

  • Affected: new macOS users connecting a supported provider by API key.
  • Severity: onboarding blocker for providers outside the hardcoded three.
  • Frequency: every manual-key onboarding attempt for those providers.
  • Consequence: users must leave onboarding and configure the provider separately.

Evidence/examples

Current macOS onboarding source defines a three-case manual-provider enum while the Gateway already discovers provider-plugin auth choices for CLI onboarding.

Additional information

Keep the Gateway protocol additive and filter the catalog to text-inference API-key methods. Provider-specific auth/default-model behavior remains owned by each provider plugin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Emergency: data loss, security bypass, crash loop, or unusable core runtime.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.enhancementNew feature or requestimpact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:ux-release-blockerA non-technical user is blocked without terminal, logs, config, or support.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.maintainerMaintainer-authored PRmaturity:stableIssue affects a taxonomy feature currently scored M4/M5.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions