Skip to content

Support workspace dependency tool calls - #366

Open
josephtesfaye wants to merge 1 commit into
agentclientprotocol:mainfrom
josephtesfaye:agent/support-workspace-dependencies
Open

Support workspace dependency tool calls#366
josephtesfaye wants to merge 1 commit into
agentclientprotocol:mainfrom
josephtesfaye:agent/support-workspace-dependencies

Conversation

@josephtesfaye

Copy link
Copy Markdown

Introduction

Codex plugins that create or manipulate artifacts—such as spreadsheets, documents, presentations, PDFs, and images—may depend on the managed workspace runtime distributed with Codex. They use the load_workspace_dependencies dynamic tool to discover the bundled Node.js, Python, Git, pnpm, and package paths.

When Codex runs through codex-acp, the app server can send this request as an item/tool/call. Previously, the adapter did not register a handler for that request. As a result, workflows requiring workspace dependencies could fail or stall even though the required runtime was already installed locally.

This pull request adds the missing bridge. It handles load_workspace_dependencies, validates the installed runtime, and returns the paths needed by artifact-oriented plugins. It also returns a useful failure response when the runtime is incomplete or unavailable.

Summary

  • handle load_workspace_dependencies dynamic tool calls from Codex app-server
  • resolve and validate bundled Git, Node.js, pnpm, and Python paths
  • support bundle format versions 1 and 2 on Unix and Windows
  • return useful failures for invalid runtimes, arguments, and unsupported tools
  • add behavior-focused tests and a success snapshot

User impact

After this change, Codex sessions launched through ACP clients can use plugins that depend on the managed workspace runtime without requiring users to locate or configure the bundled dependencies manually.

Existing sessions that do not use load_workspace_dependencies are unaffected. If the managed runtime is unavailable, the adapter reports the missing runtime information instead of leaving the dynamic tool request unhandled.

Validation

  • npm run typecheck
  • npm test — 345 passed, 28 skipped
  • npm run bundle:all
  • real Codex smoke test
  • fresh-process JSON-RPC smoke test

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