UAT: _cleveragents/fs/* and _cleveragents/terminal/* extension method namespaces missing from A2aLocalFacade — spec requires these for agent-client file and terminal interaction #2928

Open
opened 2026-04-05 02:51:00 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: feat/a2a-fs-terminal-extension-methods
  • Commit Message: feat(a2a): add _cleveragents/fs/* and _cleveragents/terminal/* extension method stubs to A2aLocalFacade
  • Milestone: v3.4.0
  • Parent Epic: #933

Description

The specification (§Server and Client Architecture, §A2A Extension Methods table) defines two required extension method namespaces that are completely absent from the A2aLocalFacade implementation.

_cleveragents/fs/* (file system operations)

  • _cleveragents/fs/read_text_file — Agent reads a file on the client machine (local project resources)
  • _cleveragents/fs/write_text_file — Agent writes a file on the client machine

_cleveragents/terminal/* (terminal operations)

  • _cleveragents/terminal/create — Agent requests a terminal on the client machine (sandbox execution)
  • _cleveragents/terminal/output — Terminal output streaming
  • _cleveragents/terminal/release / wait_for_exit / kill — Terminal lifecycle management

What Was Tested

Code-level analysis of /app/src/cleveragents/a2a/facade.py.

Expected Behavior (from spec)

The A2aLocalFacade should support _cleveragents/fs/* and _cleveragents/terminal/* extension methods. The spec states: "Extension methods (_cleveragents/fs/*, _cleveragents/terminal/*) allow the agent to interact with the IDE's workspace and integrated terminal." These are also listed in the Epic #933 acceptance criteria.

Actual Behavior

The _EXTENSION_OPERATIONS list in facade.py contains only plan, registry, context, health, sync, and namespace namespaces. The _cleveragents/fs/* and _cleveragents/terminal/* namespaces are entirely absent. Dispatching any _cleveragents/fs/ or _cleveragents/terminal/ method raises A2aOperationNotFoundError.

Code Location

/app/src/cleveragents/a2a/facade.py_EXTENSION_OPERATIONS list (lines ~60–100), _handlers() method.

Steps to Reproduce

  1. Open /app/src/cleveragents/a2a/facade.py
  2. Search for _cleveragents/fs — not found
  3. Search for _cleveragents/terminal — not found
  4. Attempt to dispatch _cleveragents/fs/read_text_file — raises A2aOperationNotFoundError

Impact

Agents cannot read or write files on the client machine through the A2A protocol. Terminal interaction (required for sandbox execution) is not accessible via the A2A extension method interface. This blocks IDE plugin integration and multi-turn agent-client interactions where the server-hosted agent needs to access client-local resources.

Subtasks

  • Add _cleveragents/fs/read_text_file operation stub to _EXTENSION_OPERATIONS in facade.py
  • Add _cleveragents/fs/write_text_file operation stub to _EXTENSION_OPERATIONS in facade.py
  • Add _cleveragents/terminal/create operation stub to _EXTENSION_OPERATIONS in facade.py
  • Add _cleveragents/terminal/output operation stub to _EXTENSION_OPERATIONS in facade.py
  • Add _cleveragents/terminal/release operation stub to _EXTENSION_OPERATIONS in facade.py
  • Add _cleveragents/terminal/wait_for_exit operation stub to _EXTENSION_OPERATIONS in facade.py
  • Add _cleveragents/terminal/kill operation stub to _EXTENSION_OPERATIONS in facade.py
  • Implement handler dispatch entries in _handlers() for all _cleveragents/fs/* methods
  • Implement handler dispatch entries in _handlers() for all _cleveragents/terminal/* methods
  • Implement FsReadTextFileHandler (or equivalent) with full static typing
  • Implement FsWriteTextFileHandler (or equivalent) with full static typing
  • Implement TerminalCreateHandler, TerminalOutputHandler, TerminalReleaseHandler, TerminalWaitForExitHandler, TerminalKillHandler with full static typing
  • Tests (Behave): Add scenarios for _cleveragents/fs/read_text_file dispatch and response
  • Tests (Behave): Add scenarios for _cleveragents/fs/write_text_file dispatch and response
  • Tests (Behave): Add scenarios for each _cleveragents/terminal/* method dispatch
  • Tests (Robot): Add integration tests for fs and terminal extension method routing
  • Verify coverage >=97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • _cleveragents/fs/read_text_file, _cleveragents/fs/write_text_file, and all _cleveragents/terminal/* methods are registered in _EXTENSION_OPERATIONS and routed through _handlers() in A2aLocalFacade.
  • Dispatching any of the above methods no longer raises A2aOperationNotFoundError.
  • All handler implementations are fully statically typed and pass nox -e typecheck (Pyright) with zero errors.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly: feat(a2a): add _cleveragents/fs/* and _cleveragents/terminal/* extension method stubs to A2aLocalFacade
  • The commit footer includes ISSUES CLOSED: #<this issue number>.
  • The commit is pushed to the remote on the branch feat/a2a-fs-terminal-extension-methods.
  • The commit is submitted as a pull request to master, reviewed, and merged.
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `feat/a2a-fs-terminal-extension-methods` - **Commit Message**: `feat(a2a): add _cleveragents/fs/* and _cleveragents/terminal/* extension method stubs to A2aLocalFacade` - **Milestone**: v3.4.0 - **Parent Epic**: #933 ## Description The specification (§Server and Client Architecture, §A2A Extension Methods table) defines two required extension method namespaces that are completely absent from the `A2aLocalFacade` implementation. ### `_cleveragents/fs/*` (file system operations) - `_cleveragents/fs/read_text_file` — Agent reads a file on the client machine (local project resources) - `_cleveragents/fs/write_text_file` — Agent writes a file on the client machine ### `_cleveragents/terminal/*` (terminal operations) - `_cleveragents/terminal/create` — Agent requests a terminal on the client machine (sandbox execution) - `_cleveragents/terminal/output` — Terminal output streaming - `_cleveragents/terminal/release` / `wait_for_exit` / `kill` — Terminal lifecycle management ### What Was Tested Code-level analysis of `/app/src/cleveragents/a2a/facade.py`. ### Expected Behavior (from spec) The `A2aLocalFacade` should support `_cleveragents/fs/*` and `_cleveragents/terminal/*` extension methods. The spec states: "Extension methods (`_cleveragents/fs/*`, `_cleveragents/terminal/*`) allow the agent to interact with the IDE's workspace and integrated terminal." These are also listed in the Epic #933 acceptance criteria. ### Actual Behavior The `_EXTENSION_OPERATIONS` list in `facade.py` contains only plan, registry, context, health, sync, and namespace namespaces. The `_cleveragents/fs/*` and `_cleveragents/terminal/*` namespaces are entirely absent. Dispatching any `_cleveragents/fs/` or `_cleveragents/terminal/` method raises `A2aOperationNotFoundError`. ### Code Location `/app/src/cleveragents/a2a/facade.py` — `_EXTENSION_OPERATIONS` list (lines ~60–100), `_handlers()` method. ### Steps to Reproduce 1. Open `/app/src/cleveragents/a2a/facade.py` 2. Search for `_cleveragents/fs` — not found 3. Search for `_cleveragents/terminal` — not found 4. Attempt to dispatch `_cleveragents/fs/read_text_file` — raises `A2aOperationNotFoundError` ### Impact Agents cannot read or write files on the client machine through the A2A protocol. Terminal interaction (required for sandbox execution) is not accessible via the A2A extension method interface. This blocks IDE plugin integration and multi-turn agent-client interactions where the server-hosted agent needs to access client-local resources. ## Subtasks - [ ] Add `_cleveragents/fs/read_text_file` operation stub to `_EXTENSION_OPERATIONS` in `facade.py` - [ ] Add `_cleveragents/fs/write_text_file` operation stub to `_EXTENSION_OPERATIONS` in `facade.py` - [ ] Add `_cleveragents/terminal/create` operation stub to `_EXTENSION_OPERATIONS` in `facade.py` - [ ] Add `_cleveragents/terminal/output` operation stub to `_EXTENSION_OPERATIONS` in `facade.py` - [ ] Add `_cleveragents/terminal/release` operation stub to `_EXTENSION_OPERATIONS` in `facade.py` - [ ] Add `_cleveragents/terminal/wait_for_exit` operation stub to `_EXTENSION_OPERATIONS` in `facade.py` - [ ] Add `_cleveragents/terminal/kill` operation stub to `_EXTENSION_OPERATIONS` in `facade.py` - [ ] Implement handler dispatch entries in `_handlers()` for all `_cleveragents/fs/*` methods - [ ] Implement handler dispatch entries in `_handlers()` for all `_cleveragents/terminal/*` methods - [ ] Implement `FsReadTextFileHandler` (or equivalent) with full static typing - [ ] Implement `FsWriteTextFileHandler` (or equivalent) with full static typing - [ ] Implement `TerminalCreateHandler`, `TerminalOutputHandler`, `TerminalReleaseHandler`, `TerminalWaitForExitHandler`, `TerminalKillHandler` with full static typing - [ ] Tests (Behave): Add scenarios for `_cleveragents/fs/read_text_file` dispatch and response - [ ] Tests (Behave): Add scenarios for `_cleveragents/fs/write_text_file` dispatch and response - [ ] Tests (Behave): Add scenarios for each `_cleveragents/terminal/*` method dispatch - [ ] Tests (Robot): Add integration tests for fs and terminal extension method routing - [ ] Verify coverage >=97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - `_cleveragents/fs/read_text_file`, `_cleveragents/fs/write_text_file`, and all `_cleveragents/terminal/*` methods are registered in `_EXTENSION_OPERATIONS` and routed through `_handlers()` in `A2aLocalFacade`. - Dispatching any of the above methods no longer raises `A2aOperationNotFoundError`. - All handler implementations are fully statically typed and pass `nox -e typecheck` (Pyright) with zero errors. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly: `feat(a2a): add _cleveragents/fs/* and _cleveragents/terminal/* extension method stubs to A2aLocalFacade` - The commit footer includes `ISSUES CLOSED: #<this issue number>`. - The commit is pushed to the remote on the branch `feat/a2a-fs-terminal-extension-methods`. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged**. - All nox stages pass - Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.4.0 milestone 2026-04-05 02:51:06 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Confirmed
  • MoSCoW: Should Have

Valid finding verified during batch triage.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Confirmed - **MoSCoW**: Should Have Valid finding verified during batch triage. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
freemo removed this from the v3.4.0 milestone 2026-04-06 21:01:54 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#2928
No description provided.