feat(lsp): implement LspToolAdapter handlers and auto-context enrichment via ACMS hot context #7431

Open
opened 2026-04-10 19:14:13 +00:00 by HAL9000 · 0 comments
Owner

Metadata

  • Commit Message: feat(lsp): implement LspToolAdapter handlers and auto-context enrichment via ACMS hot context
  • Branch: feature/m6-lsp-tool-adapter
  • Milestone: v3.5.0
  • Parent Epic: #934

Background and Context

The LspToolAdapter generates tool specs for LSP capabilities but all handlers raise LspNotAvailableError. This issue wires the handlers to LspRuntime methods and implements auto-context enrichment (injecting LSP diagnostics into ACMS hot context).

Expected Behavior

  1. LspToolAdapter handlers execute real LSP requests via LspRuntime
  2. LSP diagnostics are automatically injected into ACMS hot context when actors are active
  3. Type annotations from hover info are injected into context for relevant code symbols

Acceptance Criteria

  • LspToolAdapter handlers for all 6 capabilities wired to LspRuntime methods
  • Auto-context enrichment: LSP diagnostics injected into ACMS hot context on file open/change
  • Type annotation enrichment: hover info for symbols injected into context
  • Per-node LSP bindings: actor graph nodes can specify which LSP servers to use
  • Automatic language detection: LSP server selected based on file extension
  • BDD scenarios cover tool adapter functionality and context enrichment
  • Coverage >= 97%

Dependencies

  • Must be done after: #7427 (LspRuntime core lifecycle)
  • Must be done after: #7429 (LspRuntime capability methods)

Subtasks

  • Wire LspToolAdapter._handle_get_diagnostics() to LspRuntime.get_diagnostics()
  • Wire LspToolAdapter._handle_get_hover() to LspRuntime.get_hover()
  • Wire LspToolAdapter._handle_get_definition() to LspRuntime.get_definition()
  • Wire LspToolAdapter._handle_get_completions() to LspRuntime.get_completions()
  • Wire LspToolAdapter._handle_get_references() to LspRuntime.get_references()
  • Wire LspToolAdapter._handle_get_rename() to LspRuntime.get_rename()
  • Implement auto-context enrichment: inject diagnostics into ACMS hot context
  • Implement per-node LSP binding orchestration in actor graph activation
  • Implement automatic LSP server selection based on detected resource languages
  • Tests (Behave): Add scenarios for tool adapter functionality
  • Tests (Behave): Add scenarios for auto-context enrichment
  • Tests (Robot): Add integration test with real LSP server (pyright)
  • 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.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.

Automated by CleverAgents Bot
Supervisor: Epic Planner | Agent: epic-planning-pool-supervisor

## Metadata - **Commit Message**: `feat(lsp): implement LspToolAdapter handlers and auto-context enrichment via ACMS hot context` - **Branch**: `feature/m6-lsp-tool-adapter` - **Milestone**: v3.5.0 - **Parent Epic**: #934 ## Background and Context The `LspToolAdapter` generates tool specs for LSP capabilities but all handlers raise `LspNotAvailableError`. This issue wires the handlers to `LspRuntime` methods and implements auto-context enrichment (injecting LSP diagnostics into ACMS hot context). ## Expected Behavior 1. `LspToolAdapter` handlers execute real LSP requests via `LspRuntime` 2. LSP diagnostics are automatically injected into ACMS hot context when actors are active 3. Type annotations from hover info are injected into context for relevant code symbols ## Acceptance Criteria - [ ] `LspToolAdapter` handlers for all 6 capabilities wired to `LspRuntime` methods - [ ] Auto-context enrichment: LSP diagnostics injected into ACMS hot context on file open/change - [ ] Type annotation enrichment: hover info for symbols injected into context - [ ] Per-node LSP bindings: actor graph nodes can specify which LSP servers to use - [ ] Automatic language detection: LSP server selected based on file extension - [ ] BDD scenarios cover tool adapter functionality and context enrichment - [ ] Coverage >= 97% ## Dependencies - [ ] Must be done after: #7427 (LspRuntime core lifecycle) - [ ] Must be done after: #7429 (LspRuntime capability methods) ## Subtasks - [ ] Wire `LspToolAdapter._handle_get_diagnostics()` to `LspRuntime.get_diagnostics()` - [ ] Wire `LspToolAdapter._handle_get_hover()` to `LspRuntime.get_hover()` - [ ] Wire `LspToolAdapter._handle_get_definition()` to `LspRuntime.get_definition()` - [ ] Wire `LspToolAdapter._handle_get_completions()` to `LspRuntime.get_completions()` - [ ] Wire `LspToolAdapter._handle_get_references()` to `LspRuntime.get_references()` - [ ] Wire `LspToolAdapter._handle_get_rename()` to `LspRuntime.get_rename()` - [ ] Implement auto-context enrichment: inject diagnostics into ACMS hot context - [ ] Implement per-node LSP binding orchestration in actor graph activation - [ ] Implement automatic LSP server selection based on detected resource languages - [ ] Tests (Behave): Add scenarios for tool adapter functionality - [ ] Tests (Behave): Add scenarios for auto-context enrichment - [ ] Tests (Robot): Add integration test with real LSP server (pyright) - [ ] 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. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. --- **Automated by CleverAgents Bot** Supervisor: Epic Planner | Agent: epic-planning-pool-supervisor
HAL9000 added this to the v3.5.0 milestone 2026-04-10 19:14:57 +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#7431
No description provided.