Skip to main content

lsp_max_protocol/
lib.rs

1//! Protocol vocabulary and conformance types for lsp-max.
2//!
3//! Re-exports the generated LSP 3.18 meta-model (`lsp_3_18`), defines `LawAxis`
4//! for typed law identifiers, and houses `ConformanceVector` and capability
5//! negotiation helpers consumed by the runtime and CLI crates.
6
7pub mod lsp_3_18;
8pub use lsp_3_18 as generated_3_18;
9
10pub mod abstractions;
11pub mod base_protocol;
12pub mod conformance;
13pub mod core;
14pub mod custom_methods;
15pub mod diagnostics;
16pub mod explain;
17pub mod hooks;
18pub mod intent;
19pub mod phase;
20pub mod pipeline;
21pub mod policy;
22pub mod repair;
23pub mod stream;
24
25// Re-export all types so they are visible at the crate root level exactly as before.
26
27pub use conformance::{ConformanceGrade, ConformanceVector, LawAxis};
28
29pub use diagnostics::{
30    DocRoute, MaxCodeAction, MaxDiagnostic, Precondition, ReceiptPlan, RepairAction, Repairability,
31    RollbackPlan, SnapshotId, Terminality, TransitionAttempt, ValidationPlan,
32};
33
34pub use explain::{
35    explain_code, explain_method_status, ExplainDiagnosticParams, ExplainDiagnosticResult,
36    ExplainPosition, ExplainReceiptParams, ExplainReceiptResult, ExplainStatusParams,
37    ExplainStatusResult, LawAxisTrace, EXPLAIN_DIAGNOSTIC, EXPLAIN_RECEIPT, EXPLAIN_STATUS,
38};
39
40pub use hooks::{
41    AdmissionDecision, AdmissionResult, AutonomicLoopStatus, ChainDescriptor, HookDescriptor,
42    HookEvent, HookGraphNode, LawfulTransitionResult, ManifoldSnapshot, PropagationResult,
43    RefusalResult, ReleaseActuationResult, ReplayResult,
44};
45
46pub use custom_methods::{
47    MaxRulePackDiff,
48    MaxRulePackStatus,
49    MaxRulePacks,
50    MaxWorkspaceConformance,
51    RulePackDescriptor,
52    RulePackDiffEntry,
53    RulePackStatusResult,
54    METHOD_ADMISSION,
55    METHOD_AUTONOMIC_LOOP,
56    METHOD_CHAIN,
57    METHOD_HOOK,
58    METHOD_HOOK_GRAPH,
59    METHOD_LAWFUL_TRANSITION,
60    METHOD_LSIF_EXPORT,
61    METHOD_MANIFOLD_SNAPSHOT,
62    METHOD_PROPAGATE,
63    METHOD_REFUSAL,
64    METHOD_RELEASE_ACTUATION,
65    METHOD_REPLAY,
66    // Rule-pack protocol methods
67    METHOD_RULE_PACKS,
68    METHOD_RULE_PACK_DIFF,
69    METHOD_RULE_PACK_STATUS,
70    METHOD_WORKSPACE_CONFORMANCE,
71};
72
73pub use policy::PolicyState;
74
75pub use intent::{
76    IntentDeclareParams, IntentDeclareResult, IntentKind, IntentListParams, IntentListResult,
77    IntentOutcome, IntentRegistry, IntentRevokeParams, IntentRevokeResult, IntentSummary,
78    IntentValidateParams, IntentValidateResult, INTENT_DECLARE, INTENT_LIST, INTENT_REVOKE,
79    INTENT_VALIDATE,
80};
81
82pub use core::{
83    AnalysisBundle, CapabilityGap, GateId, InstanceId, LspStateModel, MaxCapabilityVector, Receipt,
84    ReceiptObligation,
85};
86
87pub use stream::{
88    StreamBus, StreamEvent, StreamEventKind, StreamSubscribeParams, StreamSubscribeResult,
89    StreamUnsubscribeParams, StreamUnsubscribeResult, STREAM_EVENT, STREAM_SUBSCRIBE,
90    STREAM_UNSUBSCRIBE,
91};
92
93// LspRequest is implemented for FoldingRangeRefreshRequest and
94// TextDocumentContentRefreshRequest directly in lsp_3_18.rs.
95// The impls are available via `lsp_3_18::LspRequest`.