Skip to content

feat: add built-in ACPX agent plugin#647

Open
sisutuulenisa wants to merge 6 commits intoComposioHQ:mainfrom
sisutuulenisa:feat/c6-acpx-agent-plugin
Open

feat: add built-in ACPX agent plugin#647
sisutuulenisa wants to merge 6 commits intoComposioHQ:mainfrom
sisutuulenisa:feat/c6-acpx-agent-plugin

Conversation

@sisutuulenisa
Copy link
Collaborator

Summary

Adds a built-in agent plugin for ACPX (ACP-based agents), enabling AO to orchestrate ACPX sessions natively alongside Claude Code, Codex, and other agent types.

Changes

  • New packages/plugins/agent-acpx/ package with bridge and plugin implementation
  • Core type extensions: acpxAgent config field in types.ts + config.ts schema
  • Plugin registration in CLI (plugins.ts, detect-agent.ts, config-instruction.ts)
  • Web dashboard awareness (services.ts, next.config.js)
  • Example config (examples/acpx-pi.yaml)
  • Comprehensive test coverage (bridge + plugin unit tests, config validation, session-manager integration)
  • Documentation updates (README, DEVELOPMENT.md, core README)

Key features

  • Session-aware ACPX bridge with proper lifecycle management
  • Support for multiple additional ACPX agents via config
  • Scoped config type (acpxAgent only exposed on ACPX config entries)

Consolidation note

This is a clean rebased replacement for #618, as part of PR consolidation. Supersedes #618.

@sisutuulenisa
Copy link
Collaborator Author

Addressed the ACPX CLI parser issue from Bugbot:

  • parser now validates values only for recognized flags
  • unknown args are skipped cleanly instead of triggering false Missing value for ... errors

Validation:

  • pnpm --filter @composio/ao-core build
  • pnpm --filter @composio/ao-plugin-agent-acpx test src/bridge.test.ts ✅ (9/9)

New commit: 216e25b.

Copy link

@cursor cursor bot left a comment

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 1 potential issue.

Fix All in Cursor

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


export const DEFAULT_ACPX_AGENT = "pi";
export const DEFAULT_PROMPT_FLUSH_DELAY_MS = 150;
export const SUPPORTED_ACPX_AGENTS = [DEFAULT_ACPX_AGENT, "codex", "claude", "gemini"] as const;
Copy link

Choose a reason for hiding this comment

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

ACPX agent names defined in three disconnected locations

Medium Severity

The supported ACPX agent names ("pi", "codex", "claude", "gemini") are independently declared in three places: SUPPORTED_ACPX_AGENTS in bridge.ts, AcpxAgentName in types.ts, and z.enum(…) in config.ts. A future change to one list that misses the others will silently allow config values the bridge rejects, or vice versa. The rule flags type re-declarations that could import from core.

Additional Locations (2)
Fix in Cursor Fix in Web

Triggered by project rule: BugBot Configuration

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