Files
hamza.khyari 65a2e4db76 feat(resource): add LSP resource types
Add 4 LSP-related built-in resource types to the resource registry:

- executable: system binary/interpreter/LSP server binary with
  auto-discovery from container-exec-env and fs-directory (lazy)
- lsp-server: LSP server definition with command, language-ids,
  transport, args, port, initialization-options config;
  children: lsp-workspace
- lsp-workspace: workspace root tracked by LSP server, auto-discovered
  from lsp-server; children: lsp-document; not user-addable
- lsp-document: text document tracked by LSP server, auto-discovered
  from lsp-workspace; read+write capabilities; not user-addable

Type definitions extracted to _resource_registry_lsp.py for consistency
with existing type modules. Parent/child hierarchy: lsp-server ->
lsp-workspace -> lsp-document. YAML configs with ADR references
(ADR-039, ADR-040). All 7 lsp-server CLI args per ADR-040.

Behave tests (21 scenarios): YAML loading, user-addable flags,
capabilities, parent/child hierarchy, auto-discovery for all 3
discoverable types, BUILTIN_NAMES, DB bootstrap roundtrip, negative
tests for manual registration rejection.

Robot tests (6 tests): import, BUILTIN_NAMES, DB roundtrip, hierarchy,
auto-discovery, user-addable guard.

ISSUES CLOSED: #832
2026-03-24 13:21:12 +00:00

21 lines
601 B
YAML

# Spec reference: docs/adr/ADR-040-lsp-resource-types.md lines 109-131
schema_version: "1.0"
name: lsp-document
description: "Text document tracked by an LSP server. Provides semantic access: types, diagnostics, completions, references, symbols."
resource_kind: physical
sandbox_strategy: none
user_addable: false
built_in: true
cli_args: []
parent_types: ["lsp-workspace"]
child_types: []
handler: "cleveragents.resource.handlers.lsp:LSPDocumentHandler"
auto_discovery:
trigger_types: ["lsp-workspace"]
scan_paths: []
capabilities:
read: true
write: true
sandbox: false
checkpoint: false