Skip to content

feat: TangleAppsClient — self-service brokered hub-exec client#73

Merged
drewstone merged 1 commit into
developfrom
feat/tangle-apps-client
Jun 3, 2026
Merged

feat: TangleAppsClient — self-service brokered hub-exec client#73
drewstone merged 1 commit into
developfrom
feat/tangle-apps-client

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

Adds TangleAppsClient to the integrations/hub SDK, alongside TangleIntegrationsClient — the natural home for the self-service external-apps / brokered-hub-exec flow (this is the hub SDK).

  • registerApp (one-time, owner bearer) → client_id + once-shown client_secret
  • mintBrokerToken — durable, app-creds-only re-mint of single-use sk-tan-broker- tokens for /v1/hub/exec (no user session per call)
  • exchangeAuthCode — first token from the one-time consent agc_ code
  • listApps / revokeApp

Mirrors TangleIntegrationsClient exactly (endpoint + fetchImpl, createTangle*Client factory, IntegrationRuntimeError surface; BROKER_DISABLEDpassthrough_disabled). 5 tests; typecheck + build clean.

Supersedes agent-runtime #118 (wrong home — that was a stopgap). Pairs with agent-dev-container #1636 (sk-tan-broker- prefix).

Adds the self-service external-apps client to the integrations/hub SDK, next to
TangleIntegrationsClient: register an app (registerApp), mint short-lived
sk-tan-broker- tokens unattended against a durable consented grant
(mintBrokerToken), exchange the one-time consent code (exchangeAuthCode),
list/revoke. The operator-allowlist-free (no TRUSTED_APPS) path any external
developer uses to integrate the hub.

Mirrors TangleIntegrationsClient (endpoint + fetchImpl seam, createTangle*Client
factory, IntegrationRuntimeError surface; BROKER_DISABLED → passthrough_disabled;
flat OAuth token endpoint handled). 5 tests; typecheck + build clean.

This is the canonical home — supersedes the draft in agent-runtime (PR closed).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant