@nxuss/lemma 1.18.0 → 1.18.1

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 (334) hide show
  1. package/dist/cjs/mcp/cognitiveMap.d.ts +27 -0
  2. package/dist/cjs/mcp/cognitiveMap.d.ts.map +1 -0
  3. package/dist/cjs/mcp/cognitiveMap.js +47 -0
  4. package/dist/cjs/mcp/cognitiveMap.js.map +1 -0
  5. package/dist/cjs/mcp/toolTypes.d.ts +39 -0
  6. package/dist/cjs/mcp/toolTypes.d.ts.map +1 -0
  7. package/dist/cjs/mcp/toolTypes.js +8 -0
  8. package/dist/cjs/mcp/toolTypes.js.map +1 -0
  9. package/dist/cjs/mcp/tools/analysis.d.ts +11 -0
  10. package/dist/cjs/mcp/tools/analysis.d.ts.map +1 -0
  11. package/dist/cjs/mcp/tools/analysis.js +933 -0
  12. package/dist/cjs/mcp/tools/analysis.js.map +1 -0
  13. package/dist/cjs/mcp/tools/codenav.d.ts +9 -0
  14. package/dist/cjs/mcp/tools/codenav.d.ts.map +1 -0
  15. package/dist/cjs/mcp/tools/codenav.js +524 -0
  16. package/dist/cjs/mcp/tools/codenav.js.map +1 -0
  17. package/dist/cjs/mcp/tools/context-tools.d.ts +20 -0
  18. package/dist/cjs/mcp/tools/context-tools.d.ts.map +1 -0
  19. package/dist/cjs/mcp/tools/context-tools.js +534 -0
  20. package/dist/cjs/mcp/tools/context-tools.js.map +1 -0
  21. package/dist/cjs/mcp/tools/depgraph.d.ts +8 -0
  22. package/dist/cjs/mcp/tools/depgraph.d.ts.map +1 -0
  23. package/dist/cjs/mcp/tools/depgraph.js +321 -0
  24. package/dist/cjs/mcp/tools/depgraph.js.map +1 -0
  25. package/dist/cjs/mcp/tools/dev-utils.d.ts +11 -0
  26. package/dist/cjs/mcp/tools/dev-utils.d.ts.map +1 -0
  27. package/dist/cjs/mcp/tools/dev-utils.js +519 -0
  28. package/dist/cjs/mcp/tools/dev-utils.js.map +1 -0
  29. package/dist/cjs/mcp/tools/devtools.d.ts +9 -0
  30. package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -0
  31. package/dist/cjs/mcp/tools/devtools.js +445 -0
  32. package/dist/cjs/mcp/tools/devtools.js.map +1 -0
  33. package/dist/cjs/mcp/tools/memory.d.ts +10 -0
  34. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -0
  35. package/dist/cjs/mcp/tools/memory.js +539 -0
  36. package/dist/cjs/mcp/tools/memory.js.map +1 -0
  37. package/dist/cjs/mcp/tools/misc.d.ts +10 -0
  38. package/dist/cjs/mcp/tools/misc.d.ts.map +1 -0
  39. package/dist/cjs/mcp/tools/misc.js +423 -0
  40. package/dist/cjs/mcp/tools/misc.js.map +1 -0
  41. package/dist/cjs/mcp/tools/refactor.d.ts +8 -0
  42. package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -0
  43. package/dist/cjs/mcp/tools/refactor.js +335 -0
  44. package/dist/cjs/mcp/tools/refactor.js.map +1 -0
  45. package/dist/cjs/mcp/tools/review.d.ts +10 -0
  46. package/dist/cjs/mcp/tools/review.d.ts.map +1 -0
  47. package/dist/cjs/mcp/tools/review.js +283 -0
  48. package/dist/cjs/mcp/tools/review.js.map +1 -0
  49. package/dist/cjs/mcp/tools/squeeze-cache.d.ts +14 -0
  50. package/dist/cjs/mcp/tools/squeeze-cache.d.ts.map +1 -0
  51. package/dist/cjs/mcp/tools/squeeze-cache.js +416 -0
  52. package/dist/cjs/mcp/tools/squeeze-cache.js.map +1 -0
  53. package/dist/cjs/mcp/tools/text-ops.d.ts +14 -0
  54. package/dist/cjs/mcp/tools/text-ops.d.ts.map +1 -0
  55. package/dist/cjs/mcp/tools/text-ops.js +155 -0
  56. package/dist/cjs/mcp/tools/text-ops.js.map +1 -0
  57. package/dist/cjs/mcp/tools/workspace.d.ts +10 -0
  58. package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -0
  59. package/dist/cjs/mcp/tools/workspace.js +663 -0
  60. package/dist/cjs/mcp/tools/workspace.js.map +1 -0
  61. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  62. package/dist/cjs/mcp/tools.js +626 -6388
  63. package/dist/cjs/mcp/tools.js.map +1 -1
  64. package/dist/cjs/mcp/utils.d.ts +33 -0
  65. package/dist/cjs/mcp/utils.d.ts.map +1 -1
  66. package/dist/cjs/mcp/utils.js +96 -0
  67. package/dist/cjs/mcp/utils.js.map +1 -1
  68. package/dist/cjs/mcp/workspaceShared.d.ts +19 -0
  69. package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -0
  70. package/dist/cjs/mcp/workspaceShared.js +101 -0
  71. package/dist/cjs/mcp/workspaceShared.js.map +1 -0
  72. package/dist/cjs/package.json +3 -0
  73. package/dist/esm/api/dashboardRoutes.d.ts +3 -3
  74. package/dist/esm/api/dashboardRoutes.js +1 -1
  75. package/dist/esm/api/server.d.ts +4 -4
  76. package/dist/esm/api/server.js +3 -3
  77. package/dist/esm/autopilot/AutopilotWatcher.js +3 -3
  78. package/dist/esm/autopilot/Notifier.d.ts +1 -1
  79. package/dist/esm/cli/lemma-proxy.js +15 -15
  80. package/dist/esm/cli/stack.d.ts +4 -4
  81. package/dist/esm/cli/stack.js +5 -5
  82. package/dist/esm/cloud/KeyManager.d.ts +1 -1
  83. package/dist/esm/cloud/KeyManager.js +1 -1
  84. package/dist/esm/cloud/TenantCache.d.ts +1 -1
  85. package/dist/esm/cloud/identity/ApiKey.d.ts +1 -1
  86. package/dist/esm/cloud/identity/TenantResolver.d.ts +1 -1
  87. package/dist/esm/cloud/identity/TenantResolver.js +1 -1
  88. package/dist/esm/cloud/identity/authenticateV2.d.ts +3 -3
  89. package/dist/esm/cloud/identity/authenticateV2.js +3 -3
  90. package/dist/esm/cloud/identity/identityStore.d.ts +2 -2
  91. package/dist/esm/cloud/identity/index.d.ts +6 -6
  92. package/dist/esm/cloud/identity/index.js +6 -6
  93. package/dist/esm/cloud/index.d.ts +3 -3
  94. package/dist/esm/cloud/index.js +3 -3
  95. package/dist/esm/cloud/metering/UsageLedger.d.ts +1 -1
  96. package/dist/esm/cloud/metering/index.d.ts +2 -2
  97. package/dist/esm/cloud/metering/index.js +2 -2
  98. package/dist/esm/cloud/scrub/StatelessScrubber.d.ts +1 -1
  99. package/dist/esm/cloud/scrub/index.d.ts +1 -1
  100. package/dist/esm/cloud/scrub/index.js +1 -1
  101. package/dist/esm/cloud/server.d.ts +3 -3
  102. package/dist/esm/cloud/server.js +5 -5
  103. package/dist/esm/cloud/store/FileBrainStore.d.ts +1 -1
  104. package/dist/esm/cloud/store/FileBrainStore.js +1 -1
  105. package/dist/esm/cloud/store/PostgresBrainStore.d.ts +1 -1
  106. package/dist/esm/cloud/store/PostgresBrainStore.js +2 -2
  107. package/dist/esm/cloud/store/index.d.ts +2 -2
  108. package/dist/esm/cloud/store/index.js +2 -2
  109. package/dist/esm/cloud/v2/app.d.ts +1 -1
  110. package/dist/esm/cloud/v2/app.js +3 -3
  111. package/dist/esm/cloud/v2/routes/index.d.ts +5 -5
  112. package/dist/esm/cloud/v2/routes/index.js +7 -7
  113. package/dist/esm/cloud/v2/routes/memories.d.ts +4 -4
  114. package/dist/esm/cloud/v2/routes/memories.js +2 -2
  115. package/dist/esm/cloud/v2/routes/recall.d.ts +1 -1
  116. package/dist/esm/cloud/v2/routes/recall.js +1 -1
  117. package/dist/esm/cloud/v2/routes/scrub.d.ts +2 -2
  118. package/dist/esm/cloud/v2/routes/scrub.js +2 -2
  119. package/dist/esm/cloud/v2/routes/usage.d.ts +1 -1
  120. package/dist/esm/cloud/v2/routes/verify.d.ts +1 -1
  121. package/dist/esm/cloud/v2/routes/verify.js +1 -1
  122. package/dist/esm/cloud/v2/server.js +4 -4
  123. package/dist/esm/config/index.d.ts +1 -1
  124. package/dist/esm/config/index.js +1 -1
  125. package/dist/esm/consensus/index.d.ts +2 -2
  126. package/dist/esm/consensus/index.js +2 -2
  127. package/dist/esm/contracts/api-v2.types.d.ts +1 -1
  128. package/dist/esm/contracts/index.d.ts +4 -4
  129. package/dist/esm/contracts/index.js +4 -4
  130. package/dist/esm/core/AgentRegistry.d.ts +1 -1
  131. package/dist/esm/core/AgentRegistry.js +1 -1
  132. package/dist/esm/core/DashboardBroadcaster.d.ts +3 -3
  133. package/dist/esm/core/DashboardBroadcaster.js +2 -2
  134. package/dist/esm/core/DashboardWebSocketServer.d.ts +1 -1
  135. package/dist/esm/core/DashboardWebSocketServer.js +1 -1
  136. package/dist/esm/core/GhostAlchemist.js +1 -1
  137. package/dist/esm/core/GhostListener.js +2 -2
  138. package/dist/esm/core/OrchestrationEngine.d.ts +3 -3
  139. package/dist/esm/core/OrchestrationEngine.js +2 -2
  140. package/dist/esm/core/SubconsciousEngine.d.ts +1 -1
  141. package/dist/esm/core/SubconsciousEngine.js +2 -2
  142. package/dist/esm/core/WebSocketServer.d.ts +2 -2
  143. package/dist/esm/core/WebSocketServer.js +1 -1
  144. package/dist/esm/core/index.d.ts +6 -6
  145. package/dist/esm/core/index.js +6 -6
  146. package/dist/esm/core/router.d.ts +3 -3
  147. package/dist/esm/core/router.js +1 -1
  148. package/dist/esm/db/database.js +1 -1
  149. package/dist/esm/embed.d.ts +2 -2
  150. package/dist/esm/embed.js +2 -2
  151. package/dist/esm/examples/basic-usage.js +1 -1
  152. package/dist/esm/index.d.ts +14 -14
  153. package/dist/esm/index.js +14 -14
  154. package/dist/esm/infra/analyzers/DriftDetector.d.ts +1 -1
  155. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +1 -1
  156. package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts +1 -1
  157. package/dist/esm/infra/analyzers/index.d.ts +3 -3
  158. package/dist/esm/infra/analyzers/index.js +3 -3
  159. package/dist/esm/infra/cli.js +2 -2
  160. package/dist/esm/infra/config.d.ts +1 -1
  161. package/dist/esm/infra/index.d.ts +5 -5
  162. package/dist/esm/infra/index.js +5 -5
  163. package/dist/esm/infra/mcp-tools.js +5 -5
  164. package/dist/esm/infra/providers/InfraProvider.d.ts +1 -1
  165. package/dist/esm/infra/providers/JenkinsProvider.d.ts +2 -2
  166. package/dist/esm/infra/providers/OKDProvider.d.ts +2 -2
  167. package/dist/esm/infra/providers/TerraformProvider.d.ts +2 -2
  168. package/dist/esm/infra/providers/index.d.ts +5 -5
  169. package/dist/esm/infra/providers/index.js +3 -3
  170. package/dist/esm/mcp/cognitiveMap.d.ts +27 -0
  171. package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -0
  172. package/dist/esm/mcp/cognitiveMap.js +40 -0
  173. package/dist/esm/mcp/cognitiveMap.js.map +1 -0
  174. package/dist/esm/mcp/index.js +5 -5
  175. package/dist/esm/mcp/prompts.js +1 -1
  176. package/dist/esm/mcp/resources.js +2 -2
  177. package/dist/esm/mcp/tasks.js +1 -1
  178. package/dist/esm/mcp/tool-profiles.js +1 -1
  179. package/dist/esm/mcp/toolTypes.d.ts +39 -0
  180. package/dist/esm/mcp/toolTypes.d.ts.map +1 -0
  181. package/dist/esm/mcp/toolTypes.js +7 -0
  182. package/dist/esm/mcp/toolTypes.js.map +1 -0
  183. package/dist/esm/mcp/tools/analysis.d.ts +11 -0
  184. package/dist/esm/mcp/tools/analysis.d.ts.map +1 -0
  185. package/dist/esm/mcp/tools/analysis.js +894 -0
  186. package/dist/esm/mcp/tools/analysis.js.map +1 -0
  187. package/dist/esm/mcp/tools/codenav.d.ts +9 -0
  188. package/dist/esm/mcp/tools/codenav.d.ts.map +1 -0
  189. package/dist/esm/mcp/tools/codenav.js +485 -0
  190. package/dist/esm/mcp/tools/codenav.js.map +1 -0
  191. package/dist/esm/mcp/tools/context-tools.d.ts +20 -0
  192. package/dist/esm/mcp/tools/context-tools.d.ts.map +1 -0
  193. package/dist/esm/mcp/tools/context-tools.js +494 -0
  194. package/dist/esm/mcp/tools/context-tools.js.map +1 -0
  195. package/dist/esm/mcp/tools/depgraph.d.ts +8 -0
  196. package/dist/esm/mcp/tools/depgraph.d.ts.map +1 -0
  197. package/dist/esm/mcp/tools/depgraph.js +315 -0
  198. package/dist/esm/mcp/tools/depgraph.js.map +1 -0
  199. package/dist/esm/mcp/tools/dev-utils.d.ts +11 -0
  200. package/dist/esm/mcp/tools/dev-utils.d.ts.map +1 -0
  201. package/dist/esm/mcp/tools/dev-utils.js +516 -0
  202. package/dist/esm/mcp/tools/dev-utils.js.map +1 -0
  203. package/dist/esm/mcp/tools/devtools.d.ts +9 -0
  204. package/dist/esm/mcp/tools/devtools.d.ts.map +1 -0
  205. package/dist/esm/mcp/tools/devtools.js +406 -0
  206. package/dist/esm/mcp/tools/devtools.js.map +1 -0
  207. package/dist/esm/mcp/tools/memory.d.ts +10 -0
  208. package/dist/esm/mcp/tools/memory.d.ts.map +1 -0
  209. package/dist/esm/mcp/tools/memory.js +533 -0
  210. package/dist/esm/mcp/tools/memory.js.map +1 -0
  211. package/dist/esm/mcp/tools/misc.d.ts +10 -0
  212. package/dist/esm/mcp/tools/misc.d.ts.map +1 -0
  213. package/dist/esm/mcp/tools/misc.js +417 -0
  214. package/dist/esm/mcp/tools/misc.js.map +1 -0
  215. package/dist/esm/mcp/tools/refactor.d.ts +8 -0
  216. package/dist/esm/mcp/tools/refactor.d.ts.map +1 -0
  217. package/dist/esm/mcp/tools/refactor.js +296 -0
  218. package/dist/esm/mcp/tools/refactor.js.map +1 -0
  219. package/dist/esm/mcp/tools/review.d.ts +10 -0
  220. package/dist/esm/mcp/tools/review.d.ts.map +1 -0
  221. package/dist/esm/mcp/tools/review.js +277 -0
  222. package/dist/esm/mcp/tools/review.js.map +1 -0
  223. package/dist/esm/mcp/tools/squeeze-cache.d.ts +14 -0
  224. package/dist/esm/mcp/tools/squeeze-cache.d.ts.map +1 -0
  225. package/dist/esm/mcp/tools/squeeze-cache.js +380 -0
  226. package/dist/esm/mcp/tools/squeeze-cache.js.map +1 -0
  227. package/dist/esm/mcp/tools/text-ops.d.ts +14 -0
  228. package/dist/esm/mcp/tools/text-ops.d.ts.map +1 -0
  229. package/dist/esm/mcp/tools/text-ops.js +152 -0
  230. package/dist/esm/mcp/tools/text-ops.js.map +1 -0
  231. package/dist/esm/mcp/tools/workspace.d.ts +10 -0
  232. package/dist/esm/mcp/tools/workspace.d.ts.map +1 -0
  233. package/dist/esm/mcp/tools/workspace.js +657 -0
  234. package/dist/esm/mcp/tools/workspace.js.map +1 -0
  235. package/dist/esm/mcp/tools.d.ts +1 -1
  236. package/dist/esm/mcp/tools.d.ts.map +1 -1
  237. package/dist/esm/mcp/tools.js +642 -6404
  238. package/dist/esm/mcp/tools.js.map +1 -1
  239. package/dist/esm/mcp/utils.d.ts +33 -0
  240. package/dist/esm/mcp/utils.d.ts.map +1 -1
  241. package/dist/esm/mcp/utils.js +92 -0
  242. package/dist/esm/mcp/utils.js.map +1 -1
  243. package/dist/esm/mcp/workspaceShared.d.ts +19 -0
  244. package/dist/esm/mcp/workspaceShared.d.ts.map +1 -0
  245. package/dist/esm/mcp/workspaceShared.js +93 -0
  246. package/dist/esm/mcp/workspaceShared.js.map +1 -0
  247. package/dist/esm/observability/IdeContextSync.d.ts +1 -1
  248. package/dist/esm/observability/IdeContextSync.js +5 -5
  249. package/dist/esm/package.json +3 -0
  250. package/dist/esm/pr-review/PRReviewEngine.d.ts +1 -1
  251. package/dist/esm/pr-review/PRReviewEngine.js +4 -4
  252. package/dist/esm/pr-review/ReviewStore.d.ts +1 -1
  253. package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts +2 -2
  254. package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js +1 -1
  255. package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts +2 -2
  256. package/dist/esm/pr-review/adapters/GitHubAdapter.js +1 -1
  257. package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts +2 -2
  258. package/dist/esm/pr-review/adapters/GitLabAdapter.js +1 -1
  259. package/dist/esm/pr-review/adapters/GitPlatformAdapter.d.ts +1 -1
  260. package/dist/esm/pr-review/adapters/index.d.ts +4 -4
  261. package/dist/esm/pr-review/adapters/index.js +3 -3
  262. package/dist/esm/pr-review/analyzers/QualityGrader.d.ts +1 -1
  263. package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts +1 -1
  264. package/dist/esm/pr-review/analyzers/SecurityScanner.d.ts +1 -1
  265. package/dist/esm/pr-review/analyzers/StaticAnalyzer.d.ts +1 -1
  266. package/dist/esm/pr-review/analyzers/index.d.ts +8 -8
  267. package/dist/esm/pr-review/analyzers/index.js +4 -4
  268. package/dist/esm/pr-review/bridge/BrainBridge.d.ts +1 -1
  269. package/dist/esm/pr-review/bridge/BrainBridge.js +1 -1
  270. package/dist/esm/pr-review/bridge/index.d.ts +1 -1
  271. package/dist/esm/pr-review/bridge/index.js +1 -1
  272. package/dist/esm/pr-review/index.d.ts +4 -4
  273. package/dist/esm/pr-review/index.js +2 -2
  274. package/dist/esm/pr-review/reviewRunner.d.ts +2 -2
  275. package/dist/esm/pr-review/reviewRunner.js +6 -6
  276. package/dist/esm/pr-review/webhook/WebhookServer.js +1 -1
  277. package/dist/esm/pr-review/webhook/index.d.ts +1 -1
  278. package/dist/esm/pr-review/webhook/index.js +1 -1
  279. package/dist/esm/protocol/flows.d.ts +1 -1
  280. package/dist/esm/protocol/flows.js +1 -1
  281. package/dist/esm/protocol/index.d.ts +4 -4
  282. package/dist/esm/protocol/index.js +4 -4
  283. package/dist/esm/protocol/utils.d.ts +1 -1
  284. package/dist/esm/protocol/utils.js +2 -2
  285. package/dist/esm/protocol/validators.d.ts +1 -1
  286. package/dist/esm/protocol/validators.js +1 -1
  287. package/dist/esm/proxy/ContextInjector.d.ts +1 -1
  288. package/dist/esm/proxy/Gatekeeper.d.ts +1 -1
  289. package/dist/esm/security/SecurityMiddleware.d.ts +1 -1
  290. package/dist/esm/security/SecurityMiddleware.js +3 -3
  291. package/dist/esm/security/index.d.ts +4 -4
  292. package/dist/esm/security/index.js +4 -4
  293. package/dist/esm/speculative/SpeculativeCache.d.ts +2 -2
  294. package/dist/esm/speculative/SpeculativeEngine.d.ts +2 -2
  295. package/dist/esm/speculative/SpeculativeEngine.js +3 -3
  296. package/dist/esm/speculative/WorkerPool.d.ts +1 -1
  297. package/dist/esm/speculative/index.d.ts +4 -4
  298. package/dist/esm/speculative/index.js +4 -4
  299. package/dist/esm/subconscious/GitIngest.d.ts +1 -1
  300. package/dist/esm/subconscious/GitIngest.js +1 -1
  301. package/dist/esm/subconscious/SemanticCache.d.ts +2 -2
  302. package/dist/esm/subconscious/SemanticCache.js +2 -2
  303. package/dist/esm/subconscious/SubconsciousEngine.d.ts +1 -1
  304. package/dist/esm/subconscious/SubconsciousEngine.js +3 -3
  305. package/dist/esm/subconscious/TheBrainV2.d.ts +1 -1
  306. package/dist/esm/subconscious/TheBrainV2.js +2 -2
  307. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts +1 -1
  308. package/dist/esm/subconscious/freshness/LocalFsResolver.js +1 -1
  309. package/dist/esm/subconscious/freshness/SuppliedEvidenceResolver.d.ts +1 -1
  310. package/dist/esm/subconscious/freshness/index.d.ts +2 -2
  311. package/dist/esm/subconscious/freshness/index.js +2 -2
  312. package/dist/esm/subconscious/index.d.ts +4 -4
  313. package/dist/esm/subconscious/index.js +4 -4
  314. package/dist/esm/utils/AffectedTests.js +1 -1
  315. package/dist/esm/utils/AutoContextBundle.d.ts +1 -1
  316. package/dist/esm/utils/AutoContextBundle.js +4 -4
  317. package/dist/esm/utils/BulkFileDigest.js +2 -2
  318. package/dist/esm/utils/ClipboardWatcher.js +2 -2
  319. package/dist/esm/utils/ContextCollapser.js +1 -1
  320. package/dist/esm/utils/ConversationCheckpoint.js +1 -1
  321. package/dist/esm/utils/ExecutiveReport.js +1 -1
  322. package/dist/esm/utils/OutputLedger.js +2 -2
  323. package/dist/esm/utils/ReadWorkspaceCache.js +1 -1
  324. package/dist/esm/utils/SpeculativeWarmer.d.ts +1 -1
  325. package/dist/esm/utils/SpeculativeWarmer.js +2 -2
  326. package/dist/esm/utils/StateHashCache.js +1 -1
  327. package/dist/esm/utils/StructuralSearch.d.ts +1 -1
  328. package/dist/esm/utils/SurgicalASTInsert.js +1 -1
  329. package/dist/esm/utils/SymbolSurgicalContext.js +1 -1
  330. package/dist/esm/utils/TestAutofixInterceptor.js +1 -1
  331. package/dist/esm/utils/WorkspaceSearch.js +0 -0
  332. package/dist/esm/utils/logger.js +1 -1
  333. package/dist/esm/utils/reportSavings.js +1 -1
  334. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
1
2
  export declare function getProxyPort(): string;
2
3
  export declare function clearProxyPortCache(): void;
3
4
  export declare function safeResolvePath(workspaceRoot: string, filePath: string): {
@@ -8,6 +9,38 @@ export declare function sanitizeArgsForLogging(args: Record<string, any>): Recor
8
9
  export declare function estimateTokensFromResult(result: any): number;
9
10
  export declare function logError(context: string, error: unknown): void;
10
11
  export declare function logWarn(context: string, message: string): void;
12
+ export declare function setMcpServerRef(server: Server): void;
13
+ /**
14
+ * The default similarity floor a memory must clear before search_memory/smarter_cache
15
+ * treat it as a real hit rather than noise. Shared so both paths agree on what counts.
16
+ */
17
+ export declare const DEFAULT_MEMORY_SIMILARITY_FLOOR = 0.75;
18
+ /**
19
+ * Ask the client to confirm a destructive action before it happens.
20
+ *
21
+ * Mirrors the defensive shape of trySamplingContext() in src/mcp/index.ts: most clients
22
+ * today don't support elicitation, so any failure (unsupported capability, timeout,
23
+ * malformed response) must fall back to "proceed without confirmation" rather than block
24
+ * or error out the tool. This is a courtesy prompt for clients that support it, not a
25
+ * security boundary — the allowlist/path-safety checks each handler already does are that.
26
+ */
27
+ export declare function tryElicitConfirmation(summary: string): Promise<{
28
+ supported: boolean;
29
+ confirmed: boolean;
30
+ }>;
31
+ /**
32
+ * Ask the client to pick one of several candidates via a typed (oneOf) elicitation form,
33
+ * instead of the plain confirm/deny shape tryElicitConfirmation uses. Same defensive
34
+ * contract: no support, a decline, or a malformed response all just mean "couldn't
35
+ * resolve it this way" — the caller falls back to its own error/default behavior, never
36
+ * blocks or throws.
37
+ */
38
+ export declare function tryElicitChoice(message: string, options: Array<{
39
+ title: string;
40
+ }>): Promise<{
41
+ supported: boolean;
42
+ index: number | null;
43
+ }>;
11
44
  /**
12
45
  * Loads allowed command prefixes by merging the hardcoded defaults with
13
46
  * any user-defined extensions in lemma.config.json under `mcp.allowedCommandPrefixes`.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,IAAI,MAAM,CAYrC;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAmCnH;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAcrF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAK5D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAG9D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9D;AAuCD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAgB9C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAUvF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,wBAAgB,YAAY,IAAI,MAAM,CAYrC;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAmCnH;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAcrF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAK5D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAG9D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9D;AASD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CA2BhH;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA6B/I;AAuCD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAgB9C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAUvF"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULT_MEMORY_SIMILARITY_FLOOR = void 0;
6
7
  exports.getProxyPort = getProxyPort;
7
8
  exports.clearProxyPortCache = clearProxyPortCache;
8
9
  exports.safeResolvePath = safeResolvePath;
@@ -10,6 +11,9 @@ exports.sanitizeArgsForLogging = sanitizeArgsForLogging;
10
11
  exports.estimateTokensFromResult = estimateTokensFromResult;
11
12
  exports.logError = logError;
12
13
  exports.logWarn = logWarn;
14
+ exports.setMcpServerRef = setMcpServerRef;
15
+ exports.tryElicitConfirmation = tryElicitConfirmation;
16
+ exports.tryElicitChoice = tryElicitChoice;
13
17
  exports.loadAllowedCommands = loadAllowedCommands;
14
18
  exports.isCommandAllowed = isCommandAllowed;
15
19
  const fs_1 = __importDefault(require("fs"));
@@ -103,6 +107,98 @@ function logError(context, error) {
103
107
  function logWarn(context, message) {
104
108
  console.warn(`[Lemma MCP:${context}] ${message}`);
105
109
  }
110
+ // ── Elicitation (spec 2026-07-28's recommended pattern for destructive actions) ────
111
+ //
112
+ // Set once by setupToolsHandlers so the standalone handler functions in tools.ts — which
113
+ // don't otherwise see the Server instance — can ask the connected client to confirm before
114
+ // a mutating tool runs.
115
+ let mcpServerRef = null;
116
+ function setMcpServerRef(server) {
117
+ mcpServerRef = server;
118
+ }
119
+ /**
120
+ * The default similarity floor a memory must clear before search_memory/smarter_cache
121
+ * treat it as a real hit rather than noise. Shared so both paths agree on what counts.
122
+ */
123
+ exports.DEFAULT_MEMORY_SIMILARITY_FLOOR = 0.75;
124
+ /**
125
+ * Ask the client to confirm a destructive action before it happens.
126
+ *
127
+ * Mirrors the defensive shape of trySamplingContext() in src/mcp/index.ts: most clients
128
+ * today don't support elicitation, so any failure (unsupported capability, timeout,
129
+ * malformed response) must fall back to "proceed without confirmation" rather than block
130
+ * or error out the tool. This is a courtesy prompt for clients that support it, not a
131
+ * security boundary — the allowlist/path-safety checks each handler already does are that.
132
+ */
133
+ async function tryElicitConfirmation(summary) {
134
+ if (!mcpServerRef)
135
+ return { supported: false, confirmed: true };
136
+ try {
137
+ const result = await mcpServerRef.elicitInput({
138
+ message: summary,
139
+ requestedSchema: {
140
+ type: "object",
141
+ properties: {
142
+ confirm: {
143
+ type: "boolean",
144
+ title: "Proceed?",
145
+ description: "Confirm this action should be applied.",
146
+ },
147
+ },
148
+ required: ["confirm"],
149
+ },
150
+ });
151
+ if (result.action !== "accept") {
152
+ // "decline" or "cancel" — the user (or client policy) said no.
153
+ return { supported: true, confirmed: false };
154
+ }
155
+ const confirmed = result.content?.confirm !== false;
156
+ return { supported: true, confirmed };
157
+ }
158
+ catch (err) {
159
+ logWarn("elicitation", "Client does not support elicitation (or the request failed) — proceeding without confirmation");
160
+ return { supported: false, confirmed: true };
161
+ }
162
+ }
163
+ /**
164
+ * Ask the client to pick one of several candidates via a typed (oneOf) elicitation form,
165
+ * instead of the plain confirm/deny shape tryElicitConfirmation uses. Same defensive
166
+ * contract: no support, a decline, or a malformed response all just mean "couldn't
167
+ * resolve it this way" — the caller falls back to its own error/default behavior, never
168
+ * blocks or throws.
169
+ */
170
+ async function tryElicitChoice(message, options) {
171
+ if (!mcpServerRef || options.length === 0)
172
+ return { supported: false, index: null };
173
+ try {
174
+ const result = await mcpServerRef.elicitInput({
175
+ message,
176
+ requestedSchema: {
177
+ type: "object",
178
+ properties: {
179
+ choice: {
180
+ type: "string",
181
+ title: "Which one?",
182
+ oneOf: options.map((opt, i) => ({ const: String(i), title: opt.title })),
183
+ },
184
+ },
185
+ required: ["choice"],
186
+ },
187
+ });
188
+ if (result.action !== "accept" || !result.content) {
189
+ return { supported: true, index: null };
190
+ }
191
+ const idx = Number(result.content.choice);
192
+ if (!Number.isInteger(idx) || idx < 0 || idx >= options.length) {
193
+ return { supported: true, index: null };
194
+ }
195
+ return { supported: true, index: idx };
196
+ }
197
+ catch (err) {
198
+ logWarn("elicitation", "Client does not support elicitation (or the request failed) — no choice made");
199
+ return { supported: false, index: null };
200
+ }
201
+ }
106
202
  // ─── Command Allowlist ────────────────────────────────────────────────────────
107
203
  /**
108
204
  * Safe command prefixes allowed by run_workspace_command by default.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shared workspace-navigation helpers used by both the workspace CRUD tools
3
+ * (./tools/workspace.ts) and several other tools elsewhere in tools.ts
4
+ * (get_symbol_surgical_context, smart_file_slice, get_ast_hologram, ...). Split out
5
+ * to avoid duplicating them (or a tools.ts <-> tools/workspace.ts import cycle).
6
+ */
7
+ import { type BlastRadiusResult } from "../subconscious/TheBrainV2";
8
+ export declare function listDirRecursive(currentDir: string, relativePath: string, depth: number, maxDepth: number): string[];
9
+ /**
10
+ * Fase E — blast radius. Purely advisory text appended to a write tool's success response:
11
+ * which Brain memories (direct or derived via Fase B's derivedFrom) depend on the
12
+ * file/symbol just written, and which of those document a documented FAILED attempt. Never
13
+ * blocks the write and never mutates anything — the next search_memory/verify_memory call
14
+ * already re-checks freshness lazily; this only surfaces the same signal earlier, at the
15
+ * moment it's cheapest to act on.
16
+ */
17
+ export declare function formatBlastRadiusNote(result: BlastRadiusResult): string;
18
+ export declare function formatRecallNote(filePath: string, symbolName?: string): string;
19
+ //# sourceMappingURL=workspaceShared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceShared.d.ts","sourceRoot":"","sources":["../../../src/mcp/workspaceShared.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE9E,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CAoBV;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAOvE;AAmBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB9E"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /**
3
+ * Shared workspace-navigation helpers used by both the workspace CRUD tools
4
+ * (./tools/workspace.ts) and several other tools elsewhere in tools.ts
5
+ * (get_symbol_surgical_context, smart_file_slice, get_ast_hologram, ...). Split out
6
+ * to avoid duplicating them (or a tools.ts <-> tools/workspace.ts import cycle).
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.listDirRecursive = listDirRecursive;
13
+ exports.formatBlastRadiusNote = formatBlastRadiusNote;
14
+ exports.formatRecallNote = formatRecallNote;
15
+ const fs_1 = __importDefault(require("fs"));
16
+ const path_1 = __importDefault(require("path"));
17
+ const TheBrainV2_1 = require("../subconscious/TheBrainV2");
18
+ function listDirRecursive(currentDir, relativePath, depth, maxDepth) {
19
+ if (depth > maxDepth)
20
+ return [];
21
+ try {
22
+ const entries = fs_1.default.readdirSync(currentDir, { withFileTypes: true });
23
+ let result = [];
24
+ for (const entry of entries) {
25
+ if (["node_modules", ".git", "dist", "chroma_data", ".lemma"].includes(entry.name))
26
+ continue;
27
+ const rel = relativePath ? path_1.default.join(relativePath, entry.name) : entry.name;
28
+ const full = path_1.default.join(currentDir, entry.name);
29
+ if (entry.isDirectory()) {
30
+ result.push(`${rel}/`);
31
+ result.push(...listDirRecursive(full, rel, depth + 1, maxDepth));
32
+ }
33
+ else {
34
+ result.push(rel);
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+ catch {
40
+ return [];
41
+ }
42
+ }
43
+ /**
44
+ * Fase E — blast radius. Purely advisory text appended to a write tool's success response:
45
+ * which Brain memories (direct or derived via Fase B's derivedFrom) depend on the
46
+ * file/symbol just written, and which of those document a documented FAILED attempt. Never
47
+ * blocks the write and never mutates anything — the next search_memory/verify_memory call
48
+ * already re-checks freshness lazily; this only surfaces the same signal earlier, at the
49
+ * moment it's cheapest to act on.
50
+ */
51
+ function formatBlastRadiusNote(result) {
52
+ if (result.hits.length === 0)
53
+ return "";
54
+ const ids = result.hits.map((h) => h.id).join(", ");
55
+ const base = `\n📎 ${result.hits.length} memor${result.hits.length === 1 ? "y" : "ies"} in the Brain depend on this and will go stale: ${ids}. They'll re-verify next time they're searched.`;
56
+ if (result.failedHits.length === 0)
57
+ return base;
58
+ const failedIds = result.failedHits.map((h) => h.id).join(", ");
59
+ return `${base}\n⚠️ ${result.failedHits.length} of those document a PRIOR ATTEMPT THAT FAILED on related code: ${failedIds}. Review before continuing down this path.`;
60
+ }
61
+ /**
62
+ * The read-side counterpart to formatBlastRadiusNote.
63
+ *
64
+ * Fase E made the write path proactive: a tool that stales memories says so on the spot.
65
+ * The read path stayed entirely opt-in — the Brain only spoke when the agent remembered to
66
+ * call search_memory, which is exactly the moment an agent that doesn't know a memory exists
67
+ * has no reason to. This closes that asymmetry: reading code the Brain already has notes on
68
+ * surfaces them, including any documented dead end, before the investigation restarts from
69
+ * scratch.
70
+ *
71
+ * Same rules as the write-side note: advisory only, never blocks, never mutates, and adds no
72
+ * tool schema (it enriches an existing response), so it costs nothing per turn. It reports
73
+ * ids rather than content — pulling whole memories into every file read would spend far more
74
+ * context than it saves; search_memory or verify_memory fetches the ones that matter.
75
+ */
76
+ const _recallNoted = new Set();
77
+ function formatRecallNote(filePath, symbolName) {
78
+ try {
79
+ const result = (0, TheBrainV2_1.getBrain)().findBlastRadius(filePath, symbolName);
80
+ if (result.hits.length === 0)
81
+ return "";
82
+ // Repeating the identical note on every read of the same file is nagging, not signal.
83
+ // Keyed by the memory set, so a note reappears when the set genuinely changes.
84
+ const ids = result.hits.map((h) => h.id).sort();
85
+ const key = `${path_1.default.resolve(filePath)}::${symbolName || ""}::${ids.join(",")}`;
86
+ if (_recallNoted.has(key))
87
+ return "";
88
+ _recallNoted.add(key);
89
+ const subject = symbolName ? `\`${symbolName}\`` : "this file";
90
+ const base = `\n\n🧠 The Brain already has ${result.hits.length} memor${result.hits.length === 1 ? "y" : "ies"} about ${subject}: ${ids.join(", ")}. Call verify_memory on them before investigating from scratch.`;
91
+ if (result.failedHits.length === 0)
92
+ return base;
93
+ const failedIds = result.failedHits.map((h) => h.id).join(", ");
94
+ return `${base}\n⚠️ ${result.failedHits.length} of those document an approach that was tried here and FAILED: ${failedIds}. Read those first so you don't repeat it.`;
95
+ }
96
+ catch {
97
+ // A recall note must never be the reason a file read fails.
98
+ return "";
99
+ }
100
+ }
101
+ //# sourceMappingURL=workspaceShared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceShared.js","sourceRoot":"","sources":["../../../src/mcp/workspaceShared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -13,9 +13,9 @@
13
13
  * POST /api/debugger/rewind - Rewind to event state
14
14
  */
15
15
  import { Router } from 'express';
16
- import { OrchestrationEngine } from '../core/OrchestrationEngine';
17
- import { AgentRegistry } from '../core/AgentRegistry';
18
- import { SubconsciousEngine } from '../core/SubconsciousEngine';
16
+ import { OrchestrationEngine } from '../core/OrchestrationEngine.js';
17
+ import { AgentRegistry } from '../core/AgentRegistry.js';
18
+ import { SubconsciousEngine } from '../core/SubconsciousEngine.js';
19
19
  interface DashboardAPIContext {
20
20
  eventLog: any[];
21
21
  orchestrationEngine: OrchestrationEngine;
@@ -13,7 +13,7 @@
13
13
  * POST /api/debugger/rewind - Rewind to event state
14
14
  */
15
15
  import { Router } from 'express';
16
- import { createLogger } from '../utils/logger';
16
+ import { createLogger } from '../utils/logger.js';
17
17
  const logger = createLogger('DashboardAPI');
18
18
  export function createDashboardRouter(context) {
19
19
  const router = Router();
@@ -3,10 +3,10 @@
3
3
  * Express server for dashboard metrics and analytics endpoints
4
4
  * Runs on port 3001 by default
5
5
  */
6
- import { DashboardWebSocketServer } from '../core/DashboardWebSocketServer';
7
- import { OrchestrationEngine } from '../core/OrchestrationEngine';
8
- import { AgentRegistry } from '../core/AgentRegistry';
9
- import { SubconsciousEngine } from '../core/SubconsciousEngine';
6
+ import { DashboardWebSocketServer } from '../core/DashboardWebSocketServer.js';
7
+ import { OrchestrationEngine } from '../core/OrchestrationEngine.js';
8
+ import { AgentRegistry } from '../core/AgentRegistry.js';
9
+ import { SubconsciousEngine } from '../core/SubconsciousEngine.js';
10
10
  export interface ServerConfig {
11
11
  port?: number;
12
12
  host?: string;
@@ -6,9 +6,9 @@
6
6
  import express from 'express';
7
7
  import cors from 'cors';
8
8
  import http from 'http';
9
- import { createDashboardRouter } from './dashboardRoutes';
10
- import { DashboardWebSocketServer } from '../core/DashboardWebSocketServer';
11
- import { createLogger } from '../utils/logger';
9
+ import { createDashboardRouter } from './dashboardRoutes.js';
10
+ import { DashboardWebSocketServer } from '../core/DashboardWebSocketServer.js';
11
+ import { createLogger } from '../utils/logger.js';
12
12
  const logger = createLogger('DashboardServer');
13
13
  export class DashboardAPIServer {
14
14
  constructor(config = {}) {
@@ -1,9 +1,9 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { exec } from 'child_process';
4
- import { performAutoHeal } from '../cli/lemma-proxy';
5
- import { savePatch, countPending } from './PatchStore';
6
- import { notifyPatch } from './Notifier';
4
+ import { performAutoHeal } from '../cli/lemma-proxy.js';
5
+ import { savePatch, countPending } from './PatchStore.js';
6
+ import { notifyPatch } from './Notifier.js';
7
7
  export class AutopilotWatcher {
8
8
  constructor(watchDir = 'src', nonInvasive = true) {
9
9
  this.isRunning = false;
@@ -1,4 +1,4 @@
1
- import type { Patch } from './PatchStore';
1
+ import type { Patch } from './PatchStore.js';
2
2
  export declare function sendNotification(title: string, subtitle: string, message: string): void;
3
3
  export declare function notifyPatch(patch: Patch): void;
4
4
  export declare function notifyClear(): void;
@@ -33,21 +33,21 @@ function ask(query) {
33
33
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
34
34
  return new Promise(resolve => rl.question(query, ans => { rl.close(); resolve(ans); }));
35
35
  }
36
- import ComplexityRouter from '../proxy/ComplexityRouter';
37
- import SemanticScrubber from '../security/SemanticScrubber';
38
- import CloudSyncClient from '../cloud/CloudSyncClient';
39
- import { runPRReview } from '../pr-review/reviewRunner';
40
- import { registerInfraCommands } from '../infra/cli';
41
- import { pruneHistoryMessages, squeezePrompt } from '../utils/ContextSqueezer';
42
- import { AgentMultiplexer } from '../proxy/AgentMultiplexer';
43
- import { SseRelay } from '../proxy/SseRelay';
44
- import { KeyManager } from '../proxy/KeyManager';
45
- import { Gatekeeper } from '../proxy/Gatekeeper';
46
- import { detectProjectName, isProjectMismatch } from '../utils/ProjectIdentity';
47
- import { ProjectRegistry } from '../proxy/ProjectRegistry';
48
- import { shouldInject, buildMinimalContext, buildDeepContext, sniffProjectFromMessages } from '../proxy/ContextInjector';
49
- import { savingsLedger } from '../utils/SavingsLedger';
50
- import { CACHE_DIR, PID_FILE, PORT_FILE, STATS_FILE, USAGE_FILE, LICENSE_FILE, CLIPBOARD_PID_FILE, FREE_TIER_LIMIT } from '../proxy/ProjectStore';
36
+ import ComplexityRouter from '../proxy/ComplexityRouter.js';
37
+ import SemanticScrubber from '../security/SemanticScrubber.js';
38
+ import CloudSyncClient from '../cloud/CloudSyncClient.js';
39
+ import { runPRReview } from '../pr-review/reviewRunner.js';
40
+ import { registerInfraCommands } from '../infra/cli.js';
41
+ import { pruneHistoryMessages, squeezePrompt } from '../utils/ContextSqueezer.js';
42
+ import { AgentMultiplexer } from '../proxy/AgentMultiplexer.js';
43
+ import { SseRelay } from '../proxy/SseRelay.js';
44
+ import { KeyManager } from '../proxy/KeyManager.js';
45
+ import { Gatekeeper } from '../proxy/Gatekeeper.js';
46
+ import { detectProjectName, isProjectMismatch } from '../utils/ProjectIdentity.js';
47
+ import { ProjectRegistry } from '../proxy/ProjectRegistry.js';
48
+ import { shouldInject, buildMinimalContext, buildDeepContext, sniffProjectFromMessages } from '../proxy/ContextInjector.js';
49
+ import { savingsLedger } from '../utils/SavingsLedger.js';
50
+ import { CACHE_DIR, PID_FILE, PORT_FILE, STATS_FILE, USAGE_FILE, LICENSE_FILE, CLIPBOARD_PID_FILE, FREE_TIER_LIMIT } from '../proxy/ProjectStore.js';
51
51
  const chroma = new ChromaClient({ host: 'localhost', port: 8000 });
52
52
  const dummyEmbeddingFunction = { generate: (texts) => Promise.resolve([]) };
53
53
  const complexityRouter = new ComplexityRouter();
@@ -1,7 +1,7 @@
1
- import { WebSocketServer } from '../core/WebSocketServer';
2
- import { OrchestrationEngine } from '../core/OrchestrationEngine';
3
- import { SubconsciousEngine } from '../core/SubconsciousEngine';
4
- import { DashboardAPIServer } from '../api/server';
1
+ import { WebSocketServer } from '../core/WebSocketServer.js';
2
+ import { OrchestrationEngine } from '../core/OrchestrationEngine.js';
3
+ import { SubconsciousEngine } from '../core/SubconsciousEngine.js';
4
+ import { DashboardAPIServer } from '../api/server.js';
5
5
  /**
6
6
  * Lemma Stack Orchestrator
7
7
  * Starts the Router, Subconscious Engine, and Dashboard API
@@ -1,8 +1,8 @@
1
- import { WebSocketServer } from '../core/WebSocketServer';
2
- import { OrchestrationEngine } from '../core/OrchestrationEngine';
3
- import { SubconsciousEngine } from '../core/SubconsciousEngine';
4
- import { DashboardBroadcaster } from '../core/DashboardBroadcaster';
5
- import { DashboardAPIServer } from '../api/server';
1
+ import { WebSocketServer } from '../core/WebSocketServer.js';
2
+ import { OrchestrationEngine } from '../core/OrchestrationEngine.js';
3
+ import { SubconsciousEngine } from '../core/SubconsciousEngine.js';
4
+ import { DashboardBroadcaster } from '../core/DashboardBroadcaster.js';
5
+ import { DashboardAPIServer } from '../api/server.js';
6
6
  /**
7
7
  * Lemma Stack Orchestrator
8
8
  * Starts the Router, Subconscious Engine, and Dashboard API
@@ -4,7 +4,7 @@
4
4
  * Handles key generation, validation, usage tracking, and plan enforcement.
5
5
  * Uses a JSON file as storage (swap for Redis/Postgres in production).
6
6
  */
7
- import { ApiKey } from './types';
7
+ import { ApiKey } from './types.js';
8
8
  export declare class KeyManager {
9
9
  private keys;
10
10
  private storePath;
@@ -7,7 +7,7 @@
7
7
  import crypto from 'crypto';
8
8
  import fs from 'fs';
9
9
  import path from 'path';
10
- import { PLAN_LIMITS } from './types';
10
+ import { PLAN_LIMITS } from './types.js';
11
11
  export class KeyManager {
12
12
  constructor(storePath = './data/keys.json') {
13
13
  this.keys = new Map();
@@ -4,7 +4,7 @@
4
4
  * Each tenant gets an isolated ChromaDB collection + usage stats.
5
5
  * Handles semantic search via Ollama embeddings.
6
6
  */
7
- import { TenantStats } from './types';
7
+ import { TenantStats } from './types.js';
8
8
  export declare class TenantCache {
9
9
  private tenantId;
10
10
  private chromaUrl;
@@ -1,4 +1,4 @@
1
- import type { IdentityStore, NewKeyInput } from './identityStore';
1
+ import type { IdentityStore, NewKeyInput } from './identityStore.js';
2
2
  export type KeyPrefix = 'lk_live_' | 'lk_test_';
3
3
  export declare const KEY_PREFIX_LIVE: KeyPrefix;
4
4
  export declare const KEY_PREFIX_TEST: KeyPrefix;
@@ -1,4 +1,4 @@
1
- import type { IdentityStore } from './identityStore';
1
+ import type { IdentityStore } from './identityStore.js';
2
2
  export interface Tenant {
3
3
  id: string;
4
4
  plan: 'free' | 'pro' | 'scale';
@@ -7,7 +7,7 @@
7
7
  * request hashes the presented token and hits the store, so a revoked key fails
8
8
  * on the very next request — there is no 24h (or any) positive cache.
9
9
  */
10
- import { isWellFormedKey, hashApiKey } from './ApiKey';
10
+ import { isWellFormedKey, hashApiKey } from './ApiKey.js';
11
11
  export class TenantResolver {
12
12
  constructor(store) {
13
13
  this.store = store;
@@ -13,9 +13,9 @@
13
13
  * `Retry-After` header and an actionable body.
14
14
  */
15
15
  import type { Request, RequestHandler } from 'express';
16
- import { PlanPolicy, RATE_LIMIT_WINDOW_MS } from './PlanPolicy';
17
- import type { RateLimiter } from './RateLimiter';
18
- import type { Tenant, TenantResolver } from './TenantResolver';
16
+ import { PlanPolicy, RATE_LIMIT_WINDOW_MS } from './PlanPolicy.js';
17
+ import type { RateLimiter } from './RateLimiter.js';
18
+ import type { Tenant, TenantResolver } from './TenantResolver.js';
19
19
  declare global {
20
20
  namespace Express {
21
21
  interface Request {
@@ -1,6 +1,6 @@
1
- import { LemmaApiError } from '../../contracts/errors';
2
- import { PlanPolicy, RATE_LIMIT_WINDOW_MS } from './PlanPolicy';
3
- import { rateLimitErrorBody } from './RateLimiter';
1
+ import { LemmaApiError } from '../../contracts/errors.js';
2
+ import { PlanPolicy, RATE_LIMIT_WINDOW_MS } from './PlanPolicy.js';
3
+ import { rateLimitErrorBody } from './RateLimiter.js';
4
4
  function parseBearer(header) {
5
5
  if (!header)
6
6
  return null;
@@ -9,8 +9,8 @@
9
9
  * `PostgresIdentityStore` is the production implementation over `pg`.
10
10
  */
11
11
  import type { Pool } from 'pg';
12
- import type { KeyPrefix } from './ApiKey';
13
- import type { PlanId } from './PlanPolicy';
12
+ import type { KeyPrefix } from './ApiKey.js';
13
+ import type { PlanId } from './PlanPolicy.js';
14
14
  export interface NewKeyInput {
15
15
  tenantId: string;
16
16
  name: string;
@@ -5,10 +5,10 @@
5
5
  * per-plan ceilings without Infinity, and per-tenant rate limiting with
6
6
  * Retry-After.
7
7
  */
8
- export * from './ApiKey';
9
- export * from './identityStore';
10
- export * from './PlanPolicy';
11
- export * from './RateLimiter';
12
- export * from './TenantResolver';
13
- export * from './authenticateV2';
8
+ export * from './ApiKey.js';
9
+ export * from './identityStore.js';
10
+ export * from './PlanPolicy.js';
11
+ export * from './RateLimiter.js';
12
+ export * from './TenantResolver.js';
13
+ export * from './authenticateV2.js';
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -5,10 +5,10 @@
5
5
  * per-plan ceilings without Infinity, and per-tenant rate limiting with
6
6
  * Retry-After.
7
7
  */
8
- export * from './ApiKey';
9
- export * from './identityStore';
10
- export * from './PlanPolicy';
11
- export * from './RateLimiter';
12
- export * from './TenantResolver';
13
- export * from './authenticateV2';
8
+ export * from './ApiKey.js';
9
+ export * from './identityStore.js';
10
+ export * from './PlanPolicy.js';
11
+ export * from './RateLimiter.js';
12
+ export * from './TenantResolver.js';
13
+ export * from './authenticateV2.js';
14
14
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { KeyManager } from './KeyManager';
2
- export { TenantCache } from './TenantCache';
3
- export * from './types';
1
+ export { KeyManager } from './KeyManager.js';
2
+ export { TenantCache } from './TenantCache.js';
3
+ export * from './types.js';
4
4
  //# sourceMappingURL=index.d.ts.map