-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
SDK hook: generic OAuth-backed structured extraction provider for plugins #79321
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.Issue quality rating does not apply to this item.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.Issue quality rating does not apply to this item.
Type
Fields
Priority
None yet
Summary
Downstream plugins need a generic OpenClaw SDK/runtime hook for bounded, OAuth-backed structured extraction.
The immediate motivation came from a downstream GBrain/OpenClaw integration that originally added a GBrain-specific route inside the Codex extension. That route worked as a bridge, but it is the wrong long-term boundary: OpenClaw should expose a generic host capability, and product plugins should own their own schemas/routes.
OpenClaw
mainalready has a good Codex media-understanding provider for image description via the app-server/OAuth path. The remaining gap is a host-agnostic structured extraction surface that plugins can call for text/image JSON extraction without taking a dependency on user API keys or embedding product-specific route names in core.Desired SDK shape
One of these would work:
StructuredExtractionProvidercontract, orThe exact API can be bikeshed, but the capability should let a plugin request:
Non-goals
This should not add GBrain-specific routes or schema names to OpenClaw core.
For example, a downstream plugin may expose
/plugins/gbrain/extractand returngbrain.media-extraction.v1, but OpenClaw should only provide the generic OAuth-backed extraction capability that the plugin consumes.Why this matters
Many plugins need enrichment/extraction, but should not require users to configure separate model API keys when OpenClaw already has a logged-in Codex/OpenAI runtime.
A generic hook keeps the platform clean:
Acceptance criteria
OPENAI_API_KEYor another user model API key.Prior art
OpenClaw already has a Codex media-understanding provider on
main, which is close to the desired runtime posture for images. This issue is about making the structured extraction use case available as a generic plugin-consumable SDK capability rather than a product-specific route in the Codex extension.