@nxuss/lemma 1.1.0 β†’ 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +148 -9
  2. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  3. package/dist/cjs/cli/lemma-proxy.js +2 -0
  4. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  5. package/dist/cjs/infra/analyzers/DriftDetector.d.ts +4 -0
  6. package/dist/cjs/infra/analyzers/DriftDetector.d.ts.map +1 -0
  7. package/dist/cjs/infra/analyzers/DriftDetector.js +88 -0
  8. package/dist/cjs/infra/analyzers/DriftDetector.js.map +1 -0
  9. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts +3 -0
  10. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts.map +1 -0
  11. package/dist/cjs/infra/analyzers/InfraAnalyzer.js +73 -0
  12. package/dist/cjs/infra/analyzers/InfraAnalyzer.js.map +1 -0
  13. package/dist/cjs/infra/analyzers/MonolithAnalyzer.d.ts +3 -0
  14. package/dist/cjs/infra/analyzers/MonolithAnalyzer.d.ts.map +1 -0
  15. package/dist/cjs/infra/analyzers/MonolithAnalyzer.js +180 -0
  16. package/dist/cjs/infra/analyzers/MonolithAnalyzer.js.map +1 -0
  17. package/dist/cjs/infra/analyzers/index.d.ts +4 -0
  18. package/dist/cjs/infra/analyzers/index.d.ts.map +1 -0
  19. package/dist/cjs/infra/analyzers/index.js +11 -0
  20. package/dist/cjs/infra/analyzers/index.js.map +1 -0
  21. package/dist/cjs/infra/cli.d.ts +2 -0
  22. package/dist/cjs/infra/cli.d.ts.map +1 -0
  23. package/dist/cjs/infra/cli.js +221 -0
  24. package/dist/cjs/infra/cli.js.map +1 -0
  25. package/dist/cjs/infra/config.d.ts +17 -0
  26. package/dist/cjs/infra/config.d.ts.map +1 -0
  27. package/dist/cjs/infra/config.js +111 -0
  28. package/dist/cjs/infra/config.js.map +1 -0
  29. package/dist/cjs/infra/index.d.ts +8 -0
  30. package/dist/cjs/infra/index.d.ts.map +1 -0
  31. package/dist/cjs/infra/index.js +28 -0
  32. package/dist/cjs/infra/index.js.map +1 -0
  33. package/dist/cjs/infra/mcp-tools.d.ts +16 -0
  34. package/dist/cjs/infra/mcp-tools.d.ts.map +1 -0
  35. package/dist/cjs/infra/mcp-tools.js +456 -0
  36. package/dist/cjs/infra/mcp-tools.js.map +1 -0
  37. package/dist/cjs/infra/providers/InfraProvider.d.ts +9 -0
  38. package/dist/cjs/infra/providers/InfraProvider.d.ts.map +1 -0
  39. package/dist/cjs/infra/providers/InfraProvider.js +3 -0
  40. package/dist/cjs/infra/providers/InfraProvider.js.map +1 -0
  41. package/dist/cjs/infra/providers/JenkinsProvider.d.ts +16 -0
  42. package/dist/cjs/infra/providers/JenkinsProvider.d.ts.map +1 -0
  43. package/dist/cjs/infra/providers/JenkinsProvider.js +188 -0
  44. package/dist/cjs/infra/providers/JenkinsProvider.js.map +1 -0
  45. package/dist/cjs/infra/providers/OKDProvider.d.ts +24 -0
  46. package/dist/cjs/infra/providers/OKDProvider.d.ts.map +1 -0
  47. package/dist/cjs/infra/providers/OKDProvider.js +292 -0
  48. package/dist/cjs/infra/providers/OKDProvider.js.map +1 -0
  49. package/dist/cjs/infra/providers/TerraformProvider.d.ts +17 -0
  50. package/dist/cjs/infra/providers/TerraformProvider.d.ts.map +1 -0
  51. package/dist/cjs/infra/providers/TerraformProvider.js +109 -0
  52. package/dist/cjs/infra/providers/TerraformProvider.js.map +1 -0
  53. package/dist/cjs/infra/providers/index.d.ts +9 -0
  54. package/dist/cjs/infra/providers/index.d.ts.map +1 -0
  55. package/dist/cjs/infra/providers/index.js +34 -0
  56. package/dist/cjs/infra/providers/index.js.map +1 -0
  57. package/dist/cjs/infra/templates/jenkins/index.d.ts +15 -0
  58. package/dist/cjs/infra/templates/jenkins/index.d.ts.map +1 -0
  59. package/dist/cjs/infra/templates/jenkins/index.js +124 -0
  60. package/dist/cjs/infra/templates/jenkins/index.js.map +1 -0
  61. package/dist/cjs/infra/templates/okd/index.d.ts +31 -0
  62. package/dist/cjs/infra/templates/okd/index.d.ts.map +1 -0
  63. package/dist/cjs/infra/templates/okd/index.js +149 -0
  64. package/dist/cjs/infra/templates/okd/index.js.map +1 -0
  65. package/dist/cjs/infra/types.d.ts +128 -0
  66. package/dist/cjs/infra/types.d.ts.map +1 -0
  67. package/dist/cjs/infra/types.js +4 -0
  68. package/dist/cjs/infra/types.js.map +1 -0
  69. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  70. package/dist/cjs/mcp/tools.js +9 -1
  71. package/dist/cjs/mcp/tools.js.map +1 -1
  72. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  73. package/dist/esm/cli/lemma-proxy.js +2 -0
  74. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  75. package/dist/esm/infra/analyzers/DriftDetector.d.ts +4 -0
  76. package/dist/esm/infra/analyzers/DriftDetector.d.ts.map +1 -0
  77. package/dist/esm/infra/analyzers/DriftDetector.js +84 -0
  78. package/dist/esm/infra/analyzers/DriftDetector.js.map +1 -0
  79. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +3 -0
  80. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts.map +1 -0
  81. package/dist/esm/infra/analyzers/InfraAnalyzer.js +70 -0
  82. package/dist/esm/infra/analyzers/InfraAnalyzer.js.map +1 -0
  83. package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts +3 -0
  84. package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts.map +1 -0
  85. package/dist/esm/infra/analyzers/MonolithAnalyzer.js +174 -0
  86. package/dist/esm/infra/analyzers/MonolithAnalyzer.js.map +1 -0
  87. package/dist/esm/infra/analyzers/index.d.ts +4 -0
  88. package/dist/esm/infra/analyzers/index.d.ts.map +1 -0
  89. package/dist/esm/infra/analyzers/index.js +4 -0
  90. package/dist/esm/infra/analyzers/index.js.map +1 -0
  91. package/dist/esm/infra/cli.d.ts +2 -0
  92. package/dist/esm/infra/cli.d.ts.map +1 -0
  93. package/dist/esm/infra/cli.js +218 -0
  94. package/dist/esm/infra/cli.js.map +1 -0
  95. package/dist/esm/infra/config.d.ts +17 -0
  96. package/dist/esm/infra/config.d.ts.map +1 -0
  97. package/dist/esm/infra/config.js +101 -0
  98. package/dist/esm/infra/config.js.map +1 -0
  99. package/dist/esm/infra/index.d.ts +8 -0
  100. package/dist/esm/infra/index.d.ts.map +1 -0
  101. package/dist/esm/infra/index.js +9 -0
  102. package/dist/esm/infra/index.js.map +1 -0
  103. package/dist/esm/infra/mcp-tools.d.ts +16 -0
  104. package/dist/esm/infra/mcp-tools.d.ts.map +1 -0
  105. package/dist/esm/infra/mcp-tools.js +451 -0
  106. package/dist/esm/infra/mcp-tools.js.map +1 -0
  107. package/dist/esm/infra/providers/InfraProvider.d.ts +9 -0
  108. package/dist/esm/infra/providers/InfraProvider.d.ts.map +1 -0
  109. package/dist/esm/infra/providers/InfraProvider.js +2 -0
  110. package/dist/esm/infra/providers/InfraProvider.js.map +1 -0
  111. package/dist/esm/infra/providers/JenkinsProvider.d.ts +16 -0
  112. package/dist/esm/infra/providers/JenkinsProvider.d.ts.map +1 -0
  113. package/dist/esm/infra/providers/JenkinsProvider.js +181 -0
  114. package/dist/esm/infra/providers/JenkinsProvider.js.map +1 -0
  115. package/dist/esm/infra/providers/OKDProvider.d.ts +24 -0
  116. package/dist/esm/infra/providers/OKDProvider.d.ts.map +1 -0
  117. package/dist/esm/infra/providers/OKDProvider.js +288 -0
  118. package/dist/esm/infra/providers/OKDProvider.js.map +1 -0
  119. package/dist/esm/infra/providers/TerraformProvider.d.ts +17 -0
  120. package/dist/esm/infra/providers/TerraformProvider.d.ts.map +1 -0
  121. package/dist/esm/infra/providers/TerraformProvider.js +105 -0
  122. package/dist/esm/infra/providers/TerraformProvider.js.map +1 -0
  123. package/dist/esm/infra/providers/index.d.ts +9 -0
  124. package/dist/esm/infra/providers/index.d.ts.map +1 -0
  125. package/dist/esm/infra/providers/index.js +27 -0
  126. package/dist/esm/infra/providers/index.js.map +1 -0
  127. package/dist/esm/infra/templates/jenkins/index.d.ts +15 -0
  128. package/dist/esm/infra/templates/jenkins/index.d.ts.map +1 -0
  129. package/dist/esm/infra/templates/jenkins/index.js +120 -0
  130. package/dist/esm/infra/templates/jenkins/index.js.map +1 -0
  131. package/dist/esm/infra/templates/okd/index.d.ts +31 -0
  132. package/dist/esm/infra/templates/okd/index.d.ts.map +1 -0
  133. package/dist/esm/infra/templates/okd/index.js +142 -0
  134. package/dist/esm/infra/templates/okd/index.js.map +1 -0
  135. package/dist/esm/infra/types.d.ts +128 -0
  136. package/dist/esm/infra/types.d.ts.map +1 -0
  137. package/dist/esm/infra/types.js +3 -0
  138. package/dist/esm/infra/types.js.map +1 -0
  139. package/dist/esm/mcp/tools.d.ts.map +1 -1
  140. package/dist/esm/mcp/tools.js +9 -1
  141. package/dist/esm/mcp/tools.js.map +1 -1
  142. package/package.json +3 -2
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
- # 🧠 Lemma v1.1.0
1
+ # 🧠 Lemma v1.2.0
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@nxuss/lemma.svg?color=orange&style=flat-square)](https://www.npmjs.com/package/@nxuss/lemma)
4
4
  [![License](https://img.shields.io/npm/l/@nxuss/lemma.svg?color=blue&style=flat-square)](https://github.com/Nxusbets/lemma/blob/main/LICENSE)
5
- [![MCP Tools](https://img.shields.io/badge/MCP%20tools-62-ff69b4?style=flat-square)](https://github.com/Nxusbets/lemma)
5
+ [![MCP Tools](https://img.shields.io/badge/MCP%20tools-84-ff69b4?style=flat-square)](https://github.com/Nxusbets/lemma)
6
6
  [![Security](https://img.shields.io/badge/privacy-firewall%20active-blueviolet?style=flat-square)](https://github.com/Nxusbets/lemma)
7
7
  [![Caching](https://img.shields.io/badge/semantic%20memory-enabled-success?style=flat-square)](https://github.com/Nxusbets/lemma)
8
- [![Tests](https://img.shields.io/badge/tests-199%20passing-00c853?style=flat-square)](https://github.com/Nxusbets/lemma)
8
+ [![Tests](https://img.shields.io/badge/tests-206%20passing-00c853?style=flat-square)](https://github.com/Nxusbets/lemma)
9
9
 
10
10
  ```text
11
11
  __
@@ -15,15 +15,93 @@
15
15
  /_____/\___/_/ /_/ /_/_/ /_/ /_/\__,_/
16
16
  ```
17
17
 
18
- > **The Intelligent local-first AI Gateway β€” Privacy, Performance, and Static Code Intelligence for the Agentic Era.**
18
+ > **The Intelligent local-first AI Gateway β€” Privacy, Performance, Static Code Intelligence, and Infrastructure Command Center for the Agentic Era.**
19
19
 
20
- Lemma is a high-performance orchestration layer that sits between your development environment and LLM providers. It transforms the way you build with AI by providing **Shared Semantic Memory**, **Autonomous Cost Optimization**, **Privacy Guardrails**, and a suite of **62 MCP tools** β€” including zero-token static code intelligence that runs entirely on your machine with no LLM calls required.
20
+ Lemma is a high-performance orchestration layer that sits between your development environment and LLM providers. It transforms the way you build with AI by providing **Shared Semantic Memory**, **Autonomous Cost Optimization**, **Privacy Guardrails**, **22 Infrastructure Management Tools**, and a suite of **84 MCP tools** β€” including zero-token static code intelligence that runs entirely on your machine with no LLM calls required.
21
21
 
22
22
  ---
23
23
 
24
24
  ## πŸ“‹ Changelog
25
25
 
26
- ### v1.1.0 β€” Token Avalanche *(NEW)*
26
+ ### v1.2.0 β€” Infrastructure Command Center *(NEW)*
27
+
28
+ **22 new tools, all FREE**, for managing Jenkins, OKD/OpenShift, and Terraform deployments:
29
+
30
+ #### πŸ†“ Infrastructure Tools Added in v1.2.0
31
+
32
+ | Tool | Category | Description |
33
+ | :--- | :--- | :--- |
34
+ | `infra_discover` | Discovery | Auto-detect Jenkins, OKD, and Terraform in the environment |
35
+ | `infra_connect` | Discovery | Connect to an infrastructure provider with credentials |
36
+ | `infra_status` | Monitoring | Consolidated status of all connected providers |
37
+ | `infra_health_check` | Monitoring | Detailed health check with latency and version info |
38
+ | `infra_diagnose` | Troubleshooting | Analyze issues and suggest fixes (caches solutions in TheBrain) |
39
+ | `infra_analyze_monolith` | Migration | Analyze monolith codebase for microservice migration |
40
+ | `infra_suggest_split` | Migration | Suggest microservice split points based on coupling analysis |
41
+ | `jenkins_generate_pipeline` | CI/CD | Generate Jenkinsfile (standard or multibranch) |
42
+ | `jenkins_trigger_build` | CI/CD | Trigger Jenkins build (semi-automated) |
43
+ | `jenkins_build_status` | Monitoring | Get Jenkins build status, duration, and URL |
44
+ | `jenkins_logs` | Troubleshooting | Get last 80 lines of Jenkins build console output |
45
+ | `okd_generate_manifests` | Deploy | Generate OKD manifests (DC, BC, IS, Route, Service) |
46
+ | `okd_apply` | Deploy | Apply OKD manifests (semi-automated with dry-run) |
47
+ | `okd_status` | Monitoring | Compact pod/build/route status summary |
48
+ | `okd_logs` | Troubleshooting | Get pod logs filtered by severity |
49
+ | `okd_events` | Troubleshooting | Recent cluster events for debugging |
50
+ | `okd_describe` | Troubleshooting | Describe any OKD resource |
51
+ | `okd_route_url` | Deploy | Get external URL for an OKD route |
52
+ | `terraform_plan` | IaC | Run terraform plan (returns only changes) |
53
+ | `terraform_apply` | IaC | Run terraform apply (semi-automated) |
54
+ | `terraform_state_list` | Monitoring | List resources in Terraform state |
55
+ | `terraform_drift` | Troubleshooting | Detect configuration drift |
56
+
57
+ #### CLI Commands
58
+
59
+ ```bash
60
+ lemma infra discover # Auto-detect providers
61
+ lemma infra connect <provider> # Connect with credentials
62
+ lemma infra status # Dashboard of all providers
63
+ lemma infra health # Detailed health check
64
+ lemma infra deploy jenkins --project <name> # Deploy via Jenkins
65
+ lemma infra deploy okd --project <ns> # Deploy via OKD
66
+ lemma infra logs <provider> <target> # Get logs
67
+ lemma infra diagnose # General diagnosis
68
+ lemma infra terraform plan # Terraform plan
69
+ lemma infra terraform apply # Terraform apply
70
+ lemma infra analyze monolith # Analyze monolith for migration
71
+ ```
72
+
73
+ #### Configuration
74
+
75
+ Add to `lemma.config.json`:
76
+
77
+ ```json
78
+ {
79
+ "infra": {
80
+ "jenkins": {
81
+ "url": "https://jenkins.example.com",
82
+ "credentialsId": "github-creds"
83
+ },
84
+ "okd": {
85
+ "server": "https://api.okd.example.com:6443",
86
+ "project": "my-namespace",
87
+ "route": { "tls": true, "hostname": "app.example.com" }
88
+ },
89
+ "terraform": {
90
+ "backend": "s3",
91
+ "bucket": "my-terraform-state",
92
+ "region": "us-east-1"
93
+ }
94
+ }
95
+ }
96
+ ```
97
+
98
+ Or use environment variables: `JENKINS_URL`, `JENKINS_USERNAME`, `JENKINS_API_TOKEN`, `OKD_SERVER`, `OKD_TOKEN`, `OKD_PROJECT`, `TF_BACKEND`, `TF_BUCKET`, `TF_REGION`.
99
+
100
+ **Optimized for token savings**: Infrastructure tools use TheBrain caching, compressed responses, lazy loading, and semantic dedup to minimize context usage.
101
+
102
+ ---
103
+
104
+ ### v1.1.0 β€” Token Avalanche
27
105
 
28
106
  **11 new tools, all FREE**, focused on maximizing token savings without requiring Pro:
29
107
 
@@ -54,7 +132,7 @@ Lemma is a high-performance orchestration layer that sits between your developme
54
132
 
55
133
  ## πŸ’Ž Free vs Pro
56
134
 
57
- ### πŸ†“ Free (11 Tools)
135
+ ### πŸ†“ Free (33 Tools)
58
136
 
59
137
  These tools work **without a Pro license**. Activate them with just `lemma init`:
60
138
 
@@ -71,6 +149,28 @@ These tools work **without a Pro license**. Activate them with just `lemma init`
71
149
  | `conversation_checkpoint` | Session state save/load |
72
150
  | `test_autofix_interceptor` | Test failure β†’ Brain auto-fix |
73
151
  | `prompt_pattern_cache` | Reusable prompt templates |
152
+ | `infra_discover` | Auto-detect Jenkins, OKD, Terraform |
153
+ | `infra_connect` | Connect to infrastructure providers |
154
+ | `infra_status` | Consolidated infrastructure status |
155
+ | `infra_health_check` | Detailed provider health check |
156
+ | `infra_diagnose` | Analyze and fix infrastructure issues |
157
+ | `infra_analyze_monolith` | Analyze monolith for microservice migration |
158
+ | `infra_suggest_split` | Suggest microservice split points |
159
+ | `jenkins_generate_pipeline` | Generate Jenkinsfile |
160
+ | `jenkins_trigger_build` | Trigger Jenkins builds |
161
+ | `jenkins_build_status` | Jenkins build status |
162
+ | `jenkins_logs` | Jenkins build logs |
163
+ | `okd_generate_manifests` | Generate OKD manifests |
164
+ | `okd_apply` | Apply OKD manifests |
165
+ | `okd_status` | OKD pod/build/route status |
166
+ | `okd_logs` | OKD pod logs |
167
+ | `okd_events` | OKD cluster events |
168
+ | `okd_describe` | Describe OKD resources |
169
+ | `okd_route_url` | Get OKD route URL |
170
+ | `terraform_plan` | Terraform plan |
171
+ | `terraform_apply` | Terraform apply |
172
+ | `terraform_state_list` | List Terraform state resources |
173
+ | `terraform_drift` | Detect Terraform drift |
74
174
 
75
175
  ### πŸ’Ž Pro (51 Tools)
76
176
 
@@ -90,12 +190,29 @@ All remaining tools require a Pro license. Activate with `lemma activate <key>`
90
190
  | **Session** | test_oracle, schema_extract, changelog_auto, env_snapshot, migration_tracer |
91
191
  | **Automation** | AutoPilot, Auto-Heal, Silent Patch Watcher |
92
192
 
93
- > **The MCP server is Pro.** All 51 Pro tools β€” The Brain, PreCrime, AST Hologram, `depgraph`, `refactor`, and every optimization tool β€” require a Pro license. The 11 Free tools listed above are accessible without activation.
193
+ > **The MCP server is Pro.** All 51 Pro tools β€” The Brain, PreCrime, AST Hologram, `depgraph`, `refactor`, and every optimization tool β€” require a Pro license. The 33 Free tools listed above (including all 22 Infrastructure tools) are accessible without activation.
94
194
 
95
195
  ---
96
196
 
97
197
  ## ⚑ What's in the Pro MCP
98
198
 
199
+ ### πŸ—οΈ Infrastructure Command Center *(NEW in v1.2.0)*
200
+ **Lemma is now your single pane of glass for Jenkins, OKD/OpenShift, and Terraform.** All 22 infrastructure tools are FREE and integrate with TheBrain for intelligent caching of deploy patterns and troubleshooting solutions.
201
+
202
+ - **Jenkins**: Generate Jenkinsfiles, trigger builds, check status, get logs β€” all via MCP
203
+ - **OKD/OpenShift**: Generate DeploymentConfig, BuildConfig, ImageStream, Route manifests. Apply with dry-run. Monitor pods, builds, events
204
+ - **Terraform**: Plan, apply, list state resources, detect configuration drift
205
+ - **Monolith Analysis**: Analyze your codebase for microservice migration β€” identifies modules, coupling, and suggests split points
206
+ - **Token-Optimized**: TheBrain caches successful deploys and troubleshooting patterns. Compressed responses. Lazy provider loading
207
+
208
+ ```bash
209
+ # Quick start
210
+ lemma infra connect jenkins -u https://jenkins.example.com
211
+ lemma infra connect okd -u https://api.okd.example.com:6443 -t $OKD_TOKEN
212
+ lemma infra status
213
+ lemma infra deploy okd -n my-app -i my-image:latest
214
+ ```
215
+
99
216
  ### 🧠 Shared Semantic Memory β€” The Brain (Zero-Dependency)
100
217
  Lemma maintains a persistent semantic cache index (`TheBrainV2`) using Okapi BM25 + Jaccard re-ranking and Bloom Filters that runs entirely on your local machine with NO external ML dependencies (no ChromaDB, no Ollama required). Every solution, bug fix, and architecture decision you work through gets stored and semantically indexed globally across all your projects. Future sessions can retrieve this knowledge in milliseconds (<10ms) β€” saving you thousands of tokens.
101
218
 
@@ -112,7 +229,7 @@ Builds a full import/export dependency graph of your codebase using the TypeScri
112
229
  Mathematical chaos score (0-100) per file using the TS Compiler API. Measures cyclomatic complexity, nesting depth, `any` ratio, and average function size. Tells you exactly where refactor debt is accumulating.
113
230
 
114
231
  ### πŸ—ΊοΈ AST Hologram β€” Zero Tokens
115
- Scans the entire workspace and returns a dense JSON index of all exported symbols (classes, functions, interfaces, types, consts) with file paths and line numbers. Use this instead of reading individual files β€” saves up to 90% tokens when navigating large codebases.
232
+ Scans the workspace and returns a dense JSON index of exported symbols with file paths and line numbers. Lemma now routes this through an internal language adapter layer: TypeScript keeps full compiler-backed behavior, `.NET` uses a native adapter path, and unsupported languages return an explicit fallback index instead of pretending semantic parity.
116
233
 
117
234
  ### πŸ“‘ `depgraph` β€” Real-Time Dependency Graph
118
235
  **Architecture-aware blast radius analysis.** Builds a real-time, bidirectional dependency graph for any file in the workspace using the TypeScript Compiler API β€” zero LLM calls, zero tokens. Shows exactly what a file imports, what imports it (reverse dependencies), and what symbols it exports.
@@ -156,6 +273,28 @@ lemma refactor --operation move \
156
273
 
157
274
  Supports `--dryRun` (unified diff preview), `--tscCheck` (post-refactor type verification), and `--backup` (`.bak` files).
158
275
 
276
+ ## 🌐 Multi-Language Semantic Runtime
277
+
278
+ Lemma now separates universal MCP tools from language-specific semantic tooling.
279
+
280
+ | Capability Tier | Meaning |
281
+ | :--- | :--- |
282
+ | `full` | Native semantic adapter with language-aware guarantees. |
283
+ | `partial` | Some language awareness exists, but not full semantic parity. |
284
+ | `fallback` | Safe read-only or heuristic response. No semantic safety claim. |
285
+ | `unsupported` | Mutation is refused until a real adapter exists. |
286
+
287
+ ### Current semantic support
288
+
289
+ | Tool | TypeScript / JavaScript | .NET | Python / Go / Java (today) |
290
+ | :--- | :--- | :--- | :--- |
291
+ | `get_ast_hologram` | `full` | `full` | `fallback` |
292
+ | `validate_patch_sandbox` | `full` via `tsc` | `full` via `dotnet build` when CLI is available | `fallback` |
293
+ | `depgraph` | `full` | `full` | `fallback` |
294
+ | `refactor` | `full` | `unsupported` | `unsupported` |
295
+
296
+ Universal tools such as file reads, workspace search, memory, onboarding, prompt compression, and privacy scrubbing remain language-agnostic. Semantic tools keep the same MCP names, but are now routed through adapter and runtime registries internally.
297
+
159
298
  ### 🚦 Complexity Router
160
299
  Intelligently evaluates each prompt and routes it to the most cost-effective model. Reserves premium models for complex reasoning, uses smaller models for simple tasks. Slashes your AI bill without sacrificing quality.
161
300
 
@@ -1 +1 @@
1
- {"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AA2cA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA4DvF;AAijED,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6KhL"}
1
+ {"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AA4cA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA4DvF;AAijED,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6KhL"}
@@ -44,6 +44,7 @@ const ComplexityRouter_1 = __importDefault(require("../proxy/ComplexityRouter"))
44
44
  const SemanticScrubber_1 = __importDefault(require("../security/SemanticScrubber"));
45
45
  const CloudSyncClient_1 = __importDefault(require("../cloud/CloudSyncClient"));
46
46
  const reviewRunner_1 = require("../pr-review/reviewRunner");
47
+ const cli_1 = require("../infra/cli");
47
48
  const ContextSqueezer_1 = require("../utils/ContextSqueezer");
48
49
  const AgentMultiplexer_1 = require("../proxy/AgentMultiplexer");
49
50
  const SseRelay_1 = require("../proxy/SseRelay");
@@ -2784,6 +2785,7 @@ commander_1.program.command('pr-review')
2784
2785
  process.exit(1);
2785
2786
  }
2786
2787
  });
2788
+ (0, cli_1.registerInfraCommands)();
2787
2789
  if (process.argv[1] && (process.argv[1].includes('lemma') || process.argv[1].endsWith('.cjs') || process.argv[1].endsWith('.js'))) {
2788
2790
  // Bare `lemma` with no args β†’ show welcome screen
2789
2791
  if (process.argv.length <= 2) {