Skip to content

Add integrations.remove to core tools - #1600

Merged
RhysSullivan merged 1 commit into
mainfrom
core-tools-integrations-remove
Aug 16, 2026
Merged

Add integrations.remove to core tools#1600
RhysSullivan merged 1 commit into
mainfrom
core-tools-integrations-remove

Conversation

@RhysSullivan

Copy link
Copy Markdown
Collaborator

integrations.list reports canRemove per integration, but nothing on the agent surface could act on it. Removal lived only on the HTTP API and the web console, so an agent that could add an integration could never take one back out — cleaning up a catalog meant clicking through the UI once per integration.

The core-tools plugin now contributes integrations.remove. It takes the slug that integrations.list already returns and delegates to the existing executor.integrations.remove, which cascades to every connection under the integration and the tools those produced.

Two details worth reviewing:

  • Approval-gated. Strictly more destructive than connections.remove (already gated): this drops the catalog row too, so re-adding means re-importing the definition, not just reconnecting an account.
  • removed is honest, not always-true. The underlying remove silently no-ops on a slug it can't find, and built-in static namespaces like executor have no catalog row at all. The tool checks core.integrations.get first and returns removed: false in those cases, so "nothing matched" is distinguishable from a real removal. An integration pinned with canRemove: false still fails with IntegrationRemovalNotAllowedError rather than quietly surviving.

Verification

  • New unit test covers all four paths through the real executor.execute address: cascade removal, absent slug, built-in namespace, pinned refusal (asserting the ToolInvocationErrorIntegrationRemovalNotAllowedError cause chain).
  • format:check, lint, repo-wide typecheck clean; packages/core/sdk suite 595/595.
  • No e2e scenario added or run — this adds no UI and no new HTTP surface, and the unit test drives the same tool address MCP resolves. Live confirmation on the deployed workspace after merge.

integrations.list reports canRemove per integration but the agent surface had no way to act on it; removal existed only on the HTTP API and the console. The tool takes the slug from integrations.list, is approval-gated, and reports removed: false when no catalog row matched so an absent slug or built-in namespace is distinguishable from a real removal.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing c70f605 Commit Preview URL

Branch Preview URL
Aug 16 2026, 10:26 AM

@github-actions

github-actions Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Torn down — the PR is closed.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud c70f605 Aug 16 2026, 10:27 AM

@pkg-pr-new

pkg-pr-new Bot commented Aug 16, 2026

Copy link
Copy Markdown

Open in StackBlitz

@executor-js/cli

npm i https://pkg.pr.new/@executor-js/cli@1600

@executor-js/config

npm i https://pkg.pr.new/@executor-js/config@1600

@executor-js/execution

npm i https://pkg.pr.new/@executor-js/execution@1600

@executor-js/sdk

npm i https://pkg.pr.new/@executor-js/sdk@1600

@executor-js/plugin-file-secrets

npm i https://pkg.pr.new/@executor-js/plugin-file-secrets@1600

@executor-js/plugin-graphql

npm i https://pkg.pr.new/@executor-js/plugin-graphql@1600

@executor-js/plugin-keychain

npm i https://pkg.pr.new/@executor-js/plugin-keychain@1600

@executor-js/plugin-mcp

npm i https://pkg.pr.new/@executor-js/plugin-mcp@1600

@executor-js/plugin-onepassword

npm i https://pkg.pr.new/@executor-js/plugin-onepassword@1600

@executor-js/plugin-openapi

npm i https://pkg.pr.new/@executor-js/plugin-openapi@1600

@executor-js/codemode-core

npm i https://pkg.pr.new/@executor-js/codemode-core@1600

@executor-js/runtime-quickjs

npm i https://pkg.pr.new/@executor-js/runtime-quickjs@1600

executor

npm i https://pkg.pr.new/executor@1600

commit: c70f605

@RhysSullivan
RhysSullivan marked this pull request as ready for review August 16, 2026 10:39
@RhysSullivan
RhysSullivan merged commit 1b5f931 into main Aug 16, 2026
21 checks passed
@RhysSullivan
RhysSullivan deleted the core-tools-integrations-remove branch August 16, 2026 10:39
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