Skip to content

feat(plugins): Add universal plugin support#113

Draft
dcramer wants to merge 5 commits into
mainfrom
codex/add-plugin-support
Draft

feat(plugins): Add universal plugin support#113
dcramer wants to merge 5 commits into
mainfrom
codex/add-plugin-support

Conversation

@dcramer

@dcramer dcramer commented Jun 12, 2026

Copy link
Copy Markdown
Member

This adds first-class plugin support using .agents/plugins as the canonical local layout while treating the Codex plugin manifest and marketplace shape as the generalized input model. Plugin declarations now flow through config loading, lockfiles, install, sync, list, doctor, gitignore handling, and docs/specs, with deterministic runtime outputs for Cursor, Codex, Claude Code, Grok Build, and OpenCode where each tool needs its own artifact shape.

The implementation rejects same-project plugin sources that resolve inside the current project’s .agents/plugins tree, keeps source marketplace metadata distinct from generated runtime marketplace output, and only overwrites managed runtime artifacts. It also preserves plugin gitignore entries across remove/sync paths, separates registry-backed agents from plugin-only targets like Grok, and tightens plugin manifest and marketplace validation while still allowing extension fields.

Validation: pnpm check; pnpm smoke:examples; pnpm --filter @sentry/dotagents exec tsx src/cli/index.ts --help; Docker QA in /private/tmp/dotagents-iterate-qa.WAvF7c covering plugin install/list/remove/sync fixtures.

@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dotagents Ready Ready Preview, Comment Jun 13, 2026 4:36am

Request Review

Comment thread packages/dotagents/src/agents/plugin-writer.ts
Comment thread packages/dotagents/src/cli/commands/sync.ts
Comment thread packages/dotagents/src/agents/plugin-writer.ts
Comment thread packages/dotagents/src/cli/commands/doctor.ts
Comment thread packages/dotagents/src/agents/plugin-store.ts
Add a canonical .agents/plugins plugin model based on the Codex manifest shape and generate deterministic runtime outputs for supported agent tools.

Wire plugin declarations through config loading, lockfiles, install, sync, list, doctor, gitignore handling, and documentation. Reject same-project plugin installs that would overwrite their own source and cover the new behavior with regression tests.

Co-Authored-By: Codex <codex@openai.com>
Comment thread packages/dotagents/src/cli/commands/install.ts Outdated
Comment thread packages/dotagents/src/cli/commands/sync.ts
Comment thread packages/dotagents/src/agents/plugin-store.ts Outdated
Keep plugin lock entries after bundle installation so later syncs can repair runtime projection failures.

Validate same-project plugin declarations in doctor, emit a single conventional OpenCode module, escape generated OpenCode imports, and preserve empty resolved paths for root git plugins.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Comment thread packages/dotagents/src/agents/plugin-store.ts
Comment thread packages/dotagents/src/cli/commands/install.ts
Use a manifest-shaped marketplace overlay so marketplace source and policy metadata do not leak into installed plugin manifests or generated Codex manifests.

Reject same-project plugin declarations during frozen installs so frozen mode matches normal install, sync, and doctor behavior.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Comment thread packages/dotagents/src/cli/commands/sync.ts
Comment thread packages/dotagents/src/agents/plugin-writer.ts
Comment thread packages/dotagents/src/cli/commands/install.ts
Report missing plugin bundles as errors, avoid OpenCode stubs for absent explicit modules, and reject user-scope plugin declarations until user-scope projections are defined.

Document the project-scope-only plugin behavior in the public docs and specs.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
Comment thread packages/dotagents/src/cli/commands/sync.ts
Comment thread packages/dotagents/src/agents/plugin-store.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 7b2c0fe. Configure here.

Comment thread packages/dotagents/src/cli/commands/sync.ts
Comment thread packages/dotagents/src/cli/commands/doctor.ts
Comment thread packages/dotagents/src/agents/plugin-store.ts
Keep .agents/plugins/marketplace.json as authored canonical input instead of a generated or pruned runtime artifact. Tighten marketplace selector resolution and avoid treating unsupported source objects or URL-like paths as local filesystem paths.

Preserve manifest-declared plugin names through validation, reject explicit path name mismatches, prefer directory-name plugin matches over root manifest matches, and keep same-project plugin aliases out of managed .agents/.gitignore entries.

Report plugin sync issues from the repaired state, surface user-scope plugins as unsupported in doctor, and export public plugin config and lockfile types from the host package barrels.

Add regression coverage for git plugin lock metadata, explicit plugin path installs, manifest mismatches, plugin discovery precedence, public plugin type exports, and the reviewed sync and doctor plugin edge cases.

Co-Authored-By: GPT-5 Codex <codex@openai.com>
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