@nxuss/lemma 1.18.0 → 1.18.2

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 (356) 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 +543 -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 +418 -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 +675 -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 +636 -6388
  63. package/dist/cjs/mcp/tools.js.map +1 -1
  64. package/dist/cjs/mcp/utils.d.ts +55 -2
  65. package/dist/cjs/mcp/utils.d.ts.map +1 -1
  66. package/dist/cjs/mcp/utils.js +194 -10
  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/cjs/utils/ExecAuditLog.d.ts +27 -0
  74. package/dist/cjs/utils/ExecAuditLog.d.ts.map +1 -0
  75. package/dist/cjs/utils/ExecAuditLog.js +53 -0
  76. package/dist/cjs/utils/ExecAuditLog.js.map +1 -0
  77. package/dist/esm/api/dashboardRoutes.d.ts +3 -3
  78. package/dist/esm/api/dashboardRoutes.js +1 -1
  79. package/dist/esm/api/server.d.ts +4 -4
  80. package/dist/esm/api/server.js +3 -3
  81. package/dist/esm/autopilot/AutopilotWatcher.js +3 -3
  82. package/dist/esm/autopilot/Notifier.d.ts +1 -1
  83. package/dist/esm/cli/lemma-proxy.js +15 -15
  84. package/dist/esm/cli/stack.d.ts +4 -4
  85. package/dist/esm/cli/stack.js +5 -5
  86. package/dist/esm/cloud/KeyManager.d.ts +1 -1
  87. package/dist/esm/cloud/KeyManager.js +1 -1
  88. package/dist/esm/cloud/TenantCache.d.ts +1 -1
  89. package/dist/esm/cloud/identity/ApiKey.d.ts +1 -1
  90. package/dist/esm/cloud/identity/TenantResolver.d.ts +1 -1
  91. package/dist/esm/cloud/identity/TenantResolver.js +1 -1
  92. package/dist/esm/cloud/identity/authenticateV2.d.ts +3 -3
  93. package/dist/esm/cloud/identity/authenticateV2.js +3 -3
  94. package/dist/esm/cloud/identity/identityStore.d.ts +2 -2
  95. package/dist/esm/cloud/identity/index.d.ts +6 -6
  96. package/dist/esm/cloud/identity/index.js +6 -6
  97. package/dist/esm/cloud/index.d.ts +3 -3
  98. package/dist/esm/cloud/index.js +3 -3
  99. package/dist/esm/cloud/metering/UsageLedger.d.ts +1 -1
  100. package/dist/esm/cloud/metering/index.d.ts +2 -2
  101. package/dist/esm/cloud/metering/index.js +2 -2
  102. package/dist/esm/cloud/scrub/StatelessScrubber.d.ts +1 -1
  103. package/dist/esm/cloud/scrub/index.d.ts +1 -1
  104. package/dist/esm/cloud/scrub/index.js +1 -1
  105. package/dist/esm/cloud/server.d.ts +3 -3
  106. package/dist/esm/cloud/server.js +5 -5
  107. package/dist/esm/cloud/store/FileBrainStore.d.ts +1 -1
  108. package/dist/esm/cloud/store/FileBrainStore.js +1 -1
  109. package/dist/esm/cloud/store/PostgresBrainStore.d.ts +1 -1
  110. package/dist/esm/cloud/store/PostgresBrainStore.js +2 -2
  111. package/dist/esm/cloud/store/index.d.ts +2 -2
  112. package/dist/esm/cloud/store/index.js +2 -2
  113. package/dist/esm/cloud/v2/app.d.ts +1 -1
  114. package/dist/esm/cloud/v2/app.js +3 -3
  115. package/dist/esm/cloud/v2/routes/index.d.ts +5 -5
  116. package/dist/esm/cloud/v2/routes/index.js +7 -7
  117. package/dist/esm/cloud/v2/routes/memories.d.ts +4 -4
  118. package/dist/esm/cloud/v2/routes/memories.js +2 -2
  119. package/dist/esm/cloud/v2/routes/recall.d.ts +1 -1
  120. package/dist/esm/cloud/v2/routes/recall.js +1 -1
  121. package/dist/esm/cloud/v2/routes/scrub.d.ts +2 -2
  122. package/dist/esm/cloud/v2/routes/scrub.js +2 -2
  123. package/dist/esm/cloud/v2/routes/usage.d.ts +1 -1
  124. package/dist/esm/cloud/v2/routes/verify.d.ts +1 -1
  125. package/dist/esm/cloud/v2/routes/verify.js +1 -1
  126. package/dist/esm/cloud/v2/server.js +4 -4
  127. package/dist/esm/config/index.d.ts +1 -1
  128. package/dist/esm/config/index.js +1 -1
  129. package/dist/esm/consensus/index.d.ts +2 -2
  130. package/dist/esm/consensus/index.js +2 -2
  131. package/dist/esm/contracts/api-v2.types.d.ts +1 -1
  132. package/dist/esm/contracts/index.d.ts +4 -4
  133. package/dist/esm/contracts/index.js +4 -4
  134. package/dist/esm/core/AgentRegistry.d.ts +1 -1
  135. package/dist/esm/core/AgentRegistry.js +1 -1
  136. package/dist/esm/core/DashboardBroadcaster.d.ts +3 -3
  137. package/dist/esm/core/DashboardBroadcaster.js +2 -2
  138. package/dist/esm/core/DashboardWebSocketServer.d.ts +1 -1
  139. package/dist/esm/core/DashboardWebSocketServer.js +1 -1
  140. package/dist/esm/core/GhostAlchemist.js +1 -1
  141. package/dist/esm/core/GhostListener.js +2 -2
  142. package/dist/esm/core/OrchestrationEngine.d.ts +3 -3
  143. package/dist/esm/core/OrchestrationEngine.js +2 -2
  144. package/dist/esm/core/SubconsciousEngine.d.ts +1 -1
  145. package/dist/esm/core/SubconsciousEngine.js +2 -2
  146. package/dist/esm/core/WebSocketServer.d.ts +2 -2
  147. package/dist/esm/core/WebSocketServer.js +1 -1
  148. package/dist/esm/core/index.d.ts +6 -6
  149. package/dist/esm/core/index.js +6 -6
  150. package/dist/esm/core/router.d.ts +3 -3
  151. package/dist/esm/core/router.js +1 -1
  152. package/dist/esm/db/database.js +1 -1
  153. package/dist/esm/embed.d.ts +2 -2
  154. package/dist/esm/embed.js +2 -2
  155. package/dist/esm/examples/basic-usage.js +1 -1
  156. package/dist/esm/index.d.ts +14 -14
  157. package/dist/esm/index.js +14 -14
  158. package/dist/esm/infra/analyzers/DriftDetector.d.ts +1 -1
  159. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +1 -1
  160. package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts +1 -1
  161. package/dist/esm/infra/analyzers/index.d.ts +3 -3
  162. package/dist/esm/infra/analyzers/index.js +3 -3
  163. package/dist/esm/infra/cli.js +2 -2
  164. package/dist/esm/infra/config.d.ts +1 -1
  165. package/dist/esm/infra/index.d.ts +5 -5
  166. package/dist/esm/infra/index.js +5 -5
  167. package/dist/esm/infra/mcp-tools.js +5 -5
  168. package/dist/esm/infra/providers/InfraProvider.d.ts +1 -1
  169. package/dist/esm/infra/providers/JenkinsProvider.d.ts +2 -2
  170. package/dist/esm/infra/providers/OKDProvider.d.ts +2 -2
  171. package/dist/esm/infra/providers/TerraformProvider.d.ts +2 -2
  172. package/dist/esm/infra/providers/index.d.ts +5 -5
  173. package/dist/esm/infra/providers/index.js +3 -3
  174. package/dist/esm/mcp/cognitiveMap.d.ts +27 -0
  175. package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -0
  176. package/dist/esm/mcp/cognitiveMap.js +40 -0
  177. package/dist/esm/mcp/cognitiveMap.js.map +1 -0
  178. package/dist/esm/mcp/index.js +5 -5
  179. package/dist/esm/mcp/prompts.js +1 -1
  180. package/dist/esm/mcp/resources.js +2 -2
  181. package/dist/esm/mcp/tasks.js +1 -1
  182. package/dist/esm/mcp/tool-profiles.js +1 -1
  183. package/dist/esm/mcp/toolTypes.d.ts +39 -0
  184. package/dist/esm/mcp/toolTypes.d.ts.map +1 -0
  185. package/dist/esm/mcp/toolTypes.js +7 -0
  186. package/dist/esm/mcp/toolTypes.js.map +1 -0
  187. package/dist/esm/mcp/tools/analysis.d.ts +11 -0
  188. package/dist/esm/mcp/tools/analysis.d.ts.map +1 -0
  189. package/dist/esm/mcp/tools/analysis.js +894 -0
  190. package/dist/esm/mcp/tools/analysis.js.map +1 -0
  191. package/dist/esm/mcp/tools/codenav.d.ts +9 -0
  192. package/dist/esm/mcp/tools/codenav.d.ts.map +1 -0
  193. package/dist/esm/mcp/tools/codenav.js +485 -0
  194. package/dist/esm/mcp/tools/codenav.js.map +1 -0
  195. package/dist/esm/mcp/tools/context-tools.d.ts +20 -0
  196. package/dist/esm/mcp/tools/context-tools.d.ts.map +1 -0
  197. package/dist/esm/mcp/tools/context-tools.js +503 -0
  198. package/dist/esm/mcp/tools/context-tools.js.map +1 -0
  199. package/dist/esm/mcp/tools/depgraph.d.ts +8 -0
  200. package/dist/esm/mcp/tools/depgraph.d.ts.map +1 -0
  201. package/dist/esm/mcp/tools/depgraph.js +315 -0
  202. package/dist/esm/mcp/tools/depgraph.js.map +1 -0
  203. package/dist/esm/mcp/tools/dev-utils.d.ts +11 -0
  204. package/dist/esm/mcp/tools/dev-utils.d.ts.map +1 -0
  205. package/dist/esm/mcp/tools/dev-utils.js +516 -0
  206. package/dist/esm/mcp/tools/dev-utils.js.map +1 -0
  207. package/dist/esm/mcp/tools/devtools.d.ts +9 -0
  208. package/dist/esm/mcp/tools/devtools.d.ts.map +1 -0
  209. package/dist/esm/mcp/tools/devtools.js +406 -0
  210. package/dist/esm/mcp/tools/devtools.js.map +1 -0
  211. package/dist/esm/mcp/tools/memory.d.ts +10 -0
  212. package/dist/esm/mcp/tools/memory.d.ts.map +1 -0
  213. package/dist/esm/mcp/tools/memory.js +533 -0
  214. package/dist/esm/mcp/tools/memory.js.map +1 -0
  215. package/dist/esm/mcp/tools/misc.d.ts +10 -0
  216. package/dist/esm/mcp/tools/misc.d.ts.map +1 -0
  217. package/dist/esm/mcp/tools/misc.js +417 -0
  218. package/dist/esm/mcp/tools/misc.js.map +1 -0
  219. package/dist/esm/mcp/tools/refactor.d.ts +8 -0
  220. package/dist/esm/mcp/tools/refactor.d.ts.map +1 -0
  221. package/dist/esm/mcp/tools/refactor.js +296 -0
  222. package/dist/esm/mcp/tools/refactor.js.map +1 -0
  223. package/dist/esm/mcp/tools/review.d.ts +10 -0
  224. package/dist/esm/mcp/tools/review.d.ts.map +1 -0
  225. package/dist/esm/mcp/tools/review.js +277 -0
  226. package/dist/esm/mcp/tools/review.js.map +1 -0
  227. package/dist/esm/mcp/tools/squeeze-cache.d.ts +14 -0
  228. package/dist/esm/mcp/tools/squeeze-cache.d.ts.map +1 -0
  229. package/dist/esm/mcp/tools/squeeze-cache.js +382 -0
  230. package/dist/esm/mcp/tools/squeeze-cache.js.map +1 -0
  231. package/dist/esm/mcp/tools/text-ops.d.ts +14 -0
  232. package/dist/esm/mcp/tools/text-ops.d.ts.map +1 -0
  233. package/dist/esm/mcp/tools/text-ops.js +152 -0
  234. package/dist/esm/mcp/tools/text-ops.js.map +1 -0
  235. package/dist/esm/mcp/tools/workspace.d.ts +10 -0
  236. package/dist/esm/mcp/tools/workspace.d.ts.map +1 -0
  237. package/dist/esm/mcp/tools/workspace.js +669 -0
  238. package/dist/esm/mcp/tools/workspace.js.map +1 -0
  239. package/dist/esm/mcp/tools.d.ts +1 -1
  240. package/dist/esm/mcp/tools.d.ts.map +1 -1
  241. package/dist/esm/mcp/tools.js +652 -6404
  242. package/dist/esm/mcp/tools.js.map +1 -1
  243. package/dist/esm/mcp/utils.d.ts +55 -2
  244. package/dist/esm/mcp/utils.d.ts.map +1 -1
  245. package/dist/esm/mcp/utils.js +189 -10
  246. package/dist/esm/mcp/utils.js.map +1 -1
  247. package/dist/esm/mcp/workspaceShared.d.ts +19 -0
  248. package/dist/esm/mcp/workspaceShared.d.ts.map +1 -0
  249. package/dist/esm/mcp/workspaceShared.js +93 -0
  250. package/dist/esm/mcp/workspaceShared.js.map +1 -0
  251. package/dist/esm/observability/IdeContextSync.d.ts +1 -1
  252. package/dist/esm/observability/IdeContextSync.js +5 -5
  253. package/dist/esm/package.json +3 -0
  254. package/dist/esm/pr-review/PRReviewEngine.d.ts +1 -1
  255. package/dist/esm/pr-review/PRReviewEngine.js +4 -4
  256. package/dist/esm/pr-review/ReviewStore.d.ts +1 -1
  257. package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts +2 -2
  258. package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js +1 -1
  259. package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts +2 -2
  260. package/dist/esm/pr-review/adapters/GitHubAdapter.js +1 -1
  261. package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts +2 -2
  262. package/dist/esm/pr-review/adapters/GitLabAdapter.js +1 -1
  263. package/dist/esm/pr-review/adapters/GitPlatformAdapter.d.ts +1 -1
  264. package/dist/esm/pr-review/adapters/index.d.ts +4 -4
  265. package/dist/esm/pr-review/adapters/index.js +3 -3
  266. package/dist/esm/pr-review/analyzers/QualityGrader.d.ts +1 -1
  267. package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts +1 -1
  268. package/dist/esm/pr-review/analyzers/SecurityScanner.d.ts +1 -1
  269. package/dist/esm/pr-review/analyzers/StaticAnalyzer.d.ts +1 -1
  270. package/dist/esm/pr-review/analyzers/index.d.ts +8 -8
  271. package/dist/esm/pr-review/analyzers/index.js +4 -4
  272. package/dist/esm/pr-review/bridge/BrainBridge.d.ts +1 -1
  273. package/dist/esm/pr-review/bridge/BrainBridge.js +1 -1
  274. package/dist/esm/pr-review/bridge/index.d.ts +1 -1
  275. package/dist/esm/pr-review/bridge/index.js +1 -1
  276. package/dist/esm/pr-review/index.d.ts +4 -4
  277. package/dist/esm/pr-review/index.js +2 -2
  278. package/dist/esm/pr-review/reviewRunner.d.ts +2 -2
  279. package/dist/esm/pr-review/reviewRunner.js +6 -6
  280. package/dist/esm/pr-review/webhook/WebhookServer.js +1 -1
  281. package/dist/esm/pr-review/webhook/index.d.ts +1 -1
  282. package/dist/esm/pr-review/webhook/index.js +1 -1
  283. package/dist/esm/protocol/flows.d.ts +1 -1
  284. package/dist/esm/protocol/flows.js +1 -1
  285. package/dist/esm/protocol/index.d.ts +4 -4
  286. package/dist/esm/protocol/index.js +4 -4
  287. package/dist/esm/protocol/utils.d.ts +1 -1
  288. package/dist/esm/protocol/utils.js +2 -2
  289. package/dist/esm/protocol/validators.d.ts +1 -1
  290. package/dist/esm/protocol/validators.js +1 -1
  291. package/dist/esm/proxy/ContextInjector.d.ts +1 -1
  292. package/dist/esm/proxy/Gatekeeper.d.ts +1 -1
  293. package/dist/esm/security/SecurityMiddleware.d.ts +1 -1
  294. package/dist/esm/security/SecurityMiddleware.js +3 -3
  295. package/dist/esm/security/index.d.ts +4 -4
  296. package/dist/esm/security/index.js +4 -4
  297. package/dist/esm/speculative/SpeculativeCache.d.ts +2 -2
  298. package/dist/esm/speculative/SpeculativeEngine.d.ts +2 -2
  299. package/dist/esm/speculative/SpeculativeEngine.js +3 -3
  300. package/dist/esm/speculative/WorkerPool.d.ts +1 -1
  301. package/dist/esm/speculative/index.d.ts +4 -4
  302. package/dist/esm/speculative/index.js +4 -4
  303. package/dist/esm/subconscious/GitIngest.d.ts +1 -1
  304. package/dist/esm/subconscious/GitIngest.js +1 -1
  305. package/dist/esm/subconscious/SemanticCache.d.ts +2 -2
  306. package/dist/esm/subconscious/SemanticCache.js +2 -2
  307. package/dist/esm/subconscious/SubconsciousEngine.d.ts +1 -1
  308. package/dist/esm/subconscious/SubconsciousEngine.js +3 -3
  309. package/dist/esm/subconscious/TheBrainV2.d.ts +1 -1
  310. package/dist/esm/subconscious/TheBrainV2.js +2 -2
  311. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts +1 -1
  312. package/dist/esm/subconscious/freshness/LocalFsResolver.js +1 -1
  313. package/dist/esm/subconscious/freshness/SuppliedEvidenceResolver.d.ts +1 -1
  314. package/dist/esm/subconscious/freshness/index.d.ts +2 -2
  315. package/dist/esm/subconscious/freshness/index.js +2 -2
  316. package/dist/esm/subconscious/index.d.ts +4 -4
  317. package/dist/esm/subconscious/index.js +4 -4
  318. package/dist/esm/utils/AffectedTests.js +1 -1
  319. package/dist/esm/utils/AutoContextBundle.d.ts +1 -1
  320. package/dist/esm/utils/AutoContextBundle.js +4 -4
  321. package/dist/esm/utils/BulkFileDigest.js +2 -2
  322. package/dist/esm/utils/ClipboardWatcher.js +2 -2
  323. package/dist/esm/utils/ContextCollapser.js +1 -1
  324. package/dist/esm/utils/ConversationCheckpoint.js +1 -1
  325. package/dist/esm/utils/ExecAuditLog.d.ts +27 -0
  326. package/dist/esm/utils/ExecAuditLog.d.ts.map +1 -0
  327. package/dist/esm/utils/ExecAuditLog.js +45 -0
  328. package/dist/esm/utils/ExecAuditLog.js.map +1 -0
  329. package/dist/esm/utils/ExecutiveReport.js +1 -1
  330. package/dist/esm/utils/OutputLedger.js +2 -2
  331. package/dist/esm/utils/ReadWorkspaceCache.js +1 -1
  332. package/dist/esm/utils/SpeculativeWarmer.d.ts +1 -1
  333. package/dist/esm/utils/SpeculativeWarmer.js +2 -2
  334. package/dist/esm/utils/StateHashCache.js +1 -1
  335. package/dist/esm/utils/StructuralSearch.d.ts +1 -1
  336. package/dist/esm/utils/SurgicalASTInsert.js +1 -1
  337. package/dist/esm/utils/SymbolSurgicalContext.js +1 -1
  338. package/dist/esm/utils/TestAutofixInterceptor.js +1 -1
  339. package/dist/esm/utils/WorkspaceSearch.js +0 -0
  340. package/dist/esm/utils/logger.js +1 -1
  341. package/dist/esm/utils/reportSavings.js +1 -1
  342. package/package.json +3 -1
  343. package/sdks/crewai/dist/crewai/src/index.d.ts +131 -0
  344. package/sdks/crewai/dist/crewai/src/index.js +325 -0
  345. package/sdks/crewai/dist/crewai/src/memory.d.ts +36 -0
  346. package/sdks/crewai/dist/crewai/src/memory.js +61 -0
  347. package/sdks/crewai/dist/ts/src/client.d.ts +39 -0
  348. package/sdks/crewai/dist/ts/src/client.js +124 -0
  349. package/sdks/crewai/dist/ts/src/errors.d.ts +19 -0
  350. package/sdks/crewai/dist/ts/src/errors.js +18 -0
  351. package/sdks/crewai/dist/ts/src/evidence.d.ts +30 -0
  352. package/sdks/crewai/dist/ts/src/evidence.js +175 -0
  353. package/sdks/crewai/dist/ts/src/index.d.ts +4 -0
  354. package/sdks/crewai/dist/ts/src/index.js +27 -0
  355. package/sdks/crewai/dist/ts/src/types.d.ts +112 -0
  356. package/sdks/crewai/dist/ts/src/types.js +11 -0
@@ -0,0 +1,382 @@
1
+ /**
2
+ * Squeeze/cache primitives: turbosqueeze, compress_context, smarter_cache,
3
+ * state_hash_cache, token_receipt. Split out of ../tools.ts (see that file's history
4
+ * for why) — pure relocation, no behavior change.
5
+ *
6
+ * token_budget stayed behind in tools.ts on purpose: it reads getToolSchemaChars()/
7
+ * getToolSurfaceSummary(), which inspect tools.ts's own module-scope tool registry.
8
+ * Moving it here would form the same kind of import cycle batch_tool_calls avoids by
9
+ * staying put.
10
+ */
11
+ import { stripComments, stripImports, compactWhitespace } from "../../utils/ContextSqueezer.js";
12
+ import { collapseContext } from "../../utils/ContextCollapser.js";
13
+ import { getBrain, deriveProjectId } from "../../subconscious/TheBrainV2.js";
14
+ import { lookupStateHash, storeStateHash } from "../../utils/StateHashCache.js";
15
+ import { recordReceiptEvent, getReceiptSummary } from "../../utils/TokenReceipt.js";
16
+ import { reportSavings } from "../../utils/reportSavings.js";
17
+ import { logError, getConnectedClientInfo, DEFAULT_MEMORY_SIMILARITY_FLOOR } from "../utils.js";
18
+ export const SQUEEZE_CACHE_TOOL_DEFINITIONS = [
19
+ {
20
+ name: "turbosqueeze",
21
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
22
+ description: "COMPRIME prompts hasta 90%. Elimina comentarios, imports redundantes, whitespace excesivo, y compacta JSON. Usar ANTES de enviar código largo al LLM para maximizar ahorro de tokens.",
23
+ inputSchema: {
24
+ type: "object",
25
+ properties: {
26
+ text: { type: "string", description: "El texto/prompt a comprimir" },
27
+ stripComments: { type: "boolean", description: "Eliminar comentarios del código", default: true },
28
+ stripImports: { type: "boolean", description: "Eliminar imports/requires", default: true },
29
+ compactJson: { type: "boolean", description: "Compactar JSON a 1 línea", default: true },
30
+ },
31
+ required: ["text"],
32
+ },
33
+ },
34
+ {
35
+ name: "compress_context",
36
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
37
+ description: "Comprime el historial de conversación: resume turns antiguos vía Ollama, mantiene solo los últimos N intactos. Reduce contexto 70-80%. USAR antes de cada turno extendido.",
38
+ inputSchema: {
39
+ type: "object",
40
+ properties: {
41
+ messages: {
42
+ type: "array",
43
+ items: { type: "object" },
44
+ description: "Array de mensajes del historial con role + content",
45
+ },
46
+ keepRecent: { type: "number", description: "Número de turns recientes a mantener intactos", default: 3 },
47
+ },
48
+ required: ["messages"],
49
+ },
50
+ },
51
+ {
52
+ name: "smarter_cache",
53
+ annotations: { readOnlyHint: true, openWorldHint: false },
54
+ description: "Cache predictivo con threshold bajo (75%). Busca en The Brain antes de cualquier razonamiento. Si hay hit >= 75%, devuelve respuesta instantánea sin gastar tokens en LLM.",
55
+ inputSchema: {
56
+ type: "object",
57
+ properties: {
58
+ query: { type: "string", description: "La pregunta o task description" },
59
+ context: { type: "string", description: "Contexto adicional opcional" },
60
+ threshold: { type: "number", description: "Threshold de similitud (0.0-1.0, default: 0.75)", default: 0.75 },
61
+ },
62
+ required: ["query"],
63
+ },
64
+ outputSchema: {
65
+ type: "object",
66
+ properties: {
67
+ hit: { type: "boolean", description: "true si hubo un hit por encima del threshold" },
68
+ source: { type: "string", enum: ["lemma-brain", "llm-call-required", "cache-unavailable"], description: "De dónde salió (o no) la respuesta" },
69
+ similarity: { type: "number", description: "Similitud del mejor match (0.0-1.0). Ausente en la rama de error." },
70
+ threshold: { type: "number", description: "Threshold usado. Ausente en la rama de error." },
71
+ answer: { type: ["string", "null"], description: "Respuesta cacheada si hit=true; null si no. Ausente en la rama de error." },
72
+ tokensSaved: { type: "number", description: "Solo presente cuando hit=true" },
73
+ tokensSavedFormatted: { type: "string", description: "Solo presente cuando hit=true" },
74
+ hint: { type: "string", description: "Sugerencia de siguiente paso; presente en miss y en error" },
75
+ error: { type: "string", description: "Mensaje de error; solo presente si el brain local falló" },
76
+ },
77
+ required: ["hit", "source"],
78
+ },
79
+ },
80
+ {
81
+ name: "state_hash_cache",
82
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
83
+ description: "Cache de razonamiento con invalidación EXACTA (no probabilística): la respuesta queda atada al sha256 del contenido de los archivos de los que depende. Si esos archivos no cambiaron, el hit es matemáticamente válido, no una adivinanza por similitud. Usa action='lookup' antes de razonar sobre una pregunta que dependa de archivos específicos, y action='store' después de responder para cachearla.",
84
+ inputSchema: {
85
+ type: "object",
86
+ properties: {
87
+ action: { type: "string", enum: ["lookup", "store"], description: "lookup = buscar antes de razonar; store = guardar después de responder" },
88
+ query: { type: "string", description: "La pregunta o task, texto exacto" },
89
+ filePaths: { type: "array", items: { type: "string" }, description: "Archivos (relativos al workspace root) de los que depende la respuesta" },
90
+ answer: { type: "string", description: "Requerido solo para action='store': la respuesta a cachear" },
91
+ },
92
+ required: ["action", "query", "filePaths"],
93
+ },
94
+ outputSchema: {
95
+ type: "object",
96
+ properties: {
97
+ status: { type: "string", enum: ["hit", "miss", "stored"], description: "Resultado de lookup (hit/miss) o de store (stored)" },
98
+ answer: { type: "string", description: "Solo presente cuando status='hit'" },
99
+ note: { type: "string", description: "Solo presente cuando status='hit'" },
100
+ tokensSaved: { type: "number", description: "Solo presente cuando status='hit'" },
101
+ reason: { type: "string", description: "Solo presente cuando status='miss'" },
102
+ hint: { type: "string", description: "Solo presente cuando status='miss'" },
103
+ id: { type: "string", description: "Solo presente cuando status='stored'" },
104
+ filesTracked: { type: "array", items: { type: "string" }, description: "Solo presente cuando status='stored'" },
105
+ },
106
+ required: ["status"],
107
+ },
108
+ },
109
+ {
110
+ name: "token_receipt",
111
+ annotations: { readOnlyHint: true, openWorldHint: false },
112
+ description: "Recibo auditable de la sesión: de dónde vino cada respuesta (cache exacto, cache semántico, lectura de archivo, o razonamiento fresco). No es una estadística de 'ahorro' — es una bitácora verificable para que el usuario pueda comprobar que no se le está mintiendo con un cache hit inventado. Llamar con action='summary' para ver el reporte.",
113
+ inputSchema: {
114
+ type: "object",
115
+ properties: {
116
+ action: { type: "string", enum: ["summary"], default: "summary" },
117
+ limit: { type: "number", description: "Cuántos eventos recientes incluir en el detalle", default: 20 },
118
+ },
119
+ },
120
+ outputSchema: {
121
+ type: "object",
122
+ properties: {
123
+ totalEvents: { type: "number", description: "Total de eventos registrados en la sesión" },
124
+ byType: {
125
+ type: "object",
126
+ properties: {
127
+ exact_cache_hit: { type: "number" },
128
+ semantic_cache_hit: { type: "number" },
129
+ file_read: { type: "number" },
130
+ reasoning: { type: "number" },
131
+ tool_call: { type: "number" },
132
+ },
133
+ description: "Conteo de eventos por tipo de origen",
134
+ },
135
+ recentEvents: {
136
+ type: "array",
137
+ items: {
138
+ type: "object",
139
+ properties: {
140
+ type: { type: "string" },
141
+ label: { type: "string" },
142
+ timestamp: { type: "number" },
143
+ meta: { type: "object" },
144
+ },
145
+ },
146
+ description: "Últimos `limit` eventos, en orden cronológico",
147
+ },
148
+ note: { type: "string" },
149
+ },
150
+ required: ["totalEvents", "byType", "recentEvents"],
151
+ },
152
+ },
153
+ ];
154
+ // ── TurboSqueeze ─────────────────────────────────────────────────
155
+ async function handleTurboSqueeze(args) {
156
+ const text = args?.text;
157
+ const wantStripComments = args?.stripComments !== false;
158
+ const wantStripImports = args?.stripImports !== false;
159
+ const compactJson = args?.compactJson !== false;
160
+ if (!text)
161
+ throw new Error("text is required");
162
+ // Delegates to the same stripComments/stripImports/compactWhitespace primitives
163
+ // squeeze_prompt and the proxy's own cache-miss path use — this used to be a second,
164
+ // independent regex implementation of the same job that had drifted out of sync: its
165
+ // naive `//.*$` comment strip mangled any line containing a URL (http://, https://),
166
+ // a case the shared stripComments already guards against. One implementation now.
167
+ let squeezed = text;
168
+ if (wantStripComments)
169
+ squeezed = stripComments(squeezed);
170
+ if (wantStripImports)
171
+ squeezed = stripImports(squeezed);
172
+ squeezed = compactWhitespace(squeezed);
173
+ // Compact JSON — the one genuinely turbosqueeze-specific step, kept as-is, but only when
174
+ // the input actually looks like JSON. Pre-existing bug found while consolidating this
175
+ // function: these regexes ran unconditionally whenever compactJson wasn't explicitly
176
+ // false, so ordinary code went through them too — `{ foo }` in an import statement came
177
+ // out as `{foo}`, and the same regexes would just as happily squash braces in real
178
+ // control-flow code. Gate on the input's own shape instead of trusting the caller only
179
+ // ever sets compactJson for genuine JSON.
180
+ const looksLikeJson = /^\s*[[{]/.test(squeezed);
181
+ if (compactJson && looksLikeJson) {
182
+ squeezed = squeezed.replace(/"\s*:\s*/g, '":');
183
+ squeezed = squeezed.replace(/,\s*"/g, ',"');
184
+ squeezed = squeezed.replace(/\[\s+/g, '[');
185
+ squeezed = squeezed.replace(/\s+\]/g, ']');
186
+ squeezed = squeezed.replace(/\{\s+/g, '{');
187
+ squeezed = squeezed.replace(/\s+\}/g, '}');
188
+ }
189
+ // Compact consecutive blank lines
190
+ squeezed = squeezed.replace(/\n{3,}/g, '\n\n').trim();
191
+ const ratio = text.length > 0 ? ((1 - squeezed.length / text.length) * 100).toFixed(1) : "0";
192
+ const saved = Math.max(0, text.length - squeezed.length);
193
+ try {
194
+ const { reportSavings } = await import("../../utils/reportSavings.js");
195
+ reportSavings({ source: "contextSqueeze", charsBefore: text.length, charsAfter: squeezed.length, toolName: "turbosqueeze" });
196
+ }
197
+ catch { }
198
+ return {
199
+ content: [{
200
+ type: "text",
201
+ text: `[TurboSqueeze: ${ratio}% reduction (${saved} chars / ~${Math.floor(saved / 4)} tokens saved)]\n\n${squeezed}`,
202
+ }],
203
+ };
204
+ }
205
+ // ── Compress Context ─────────────────────────────────────────────
206
+ async function handleCompressContext(args) {
207
+ const messages = args?.messages;
208
+ const keepRecent = args?.keepRecent || 3;
209
+ if (!messages || !Array.isArray(messages))
210
+ throw new Error("messages array is required");
211
+ if (messages.length <= keepRecent + 1) {
212
+ return {
213
+ content: [{
214
+ type: "text",
215
+ text: JSON.stringify({ messages, tokensSavedEstimate: 0, note: "Historial muy corto — no se necesita compresión." }, null, 2),
216
+ }],
217
+ };
218
+ }
219
+ const recent = messages.slice(-keepRecent);
220
+ const old = messages.slice(0, -keepRecent);
221
+ let summary = "";
222
+ let summaryMethod = "local-collapser";
223
+ try {
224
+ const oldText = old.map((m, i) => `[Turn ${i + 1} / ${m.role}]: ${typeof m.content === 'string' ? m.content : '...'}`).join('\n');
225
+ summary = collapseContext(oldText, { maxLength: 800 });
226
+ }
227
+ catch (err) {
228
+ summary = old.map((m, i) => `[Turn ${i + 1} / ${m.role}]: ${typeof m.content === 'string' ? m.content.substring(0, 150).replace(/\n/g, ' ') : '...'}`).join('\n').substring(0, 2000);
229
+ summaryMethod = "truncate-fallback";
230
+ }
231
+ const oldLength = JSON.stringify(old).length;
232
+ const summaryLength = summary.length;
233
+ const tokensSaved = Math.floor(Math.max(0, oldLength - summaryLength) / 4);
234
+ const compressed = [
235
+ { role: "user", content: `[Historial comprimido vía ${summaryMethod} — turns anteriores resumidos a ~${Math.floor(summaryLength / 4)} tokens]:\n${summary}` },
236
+ ...recent,
237
+ ];
238
+ try {
239
+ const { reportSavings } = await import("../../utils/reportSavings.js");
240
+ reportSavings({ source: "historyPrune", tokens: tokensSaved, toolName: "compress_context" });
241
+ }
242
+ catch { }
243
+ return {
244
+ content: [{
245
+ type: "text",
246
+ text: JSON.stringify({ messages: compressed, tokensSavedEstimate: tokensSaved, summaryMethod }, null, 2),
247
+ }],
248
+ };
249
+ }
250
+ // ── Smarter Cache ────────────────────────────────────────────────
251
+ async function handleSmarterCache(args) {
252
+ const query = args?.query;
253
+ const context = args?.context || "";
254
+ const threshold = typeof args?.threshold === "number" ? args.threshold : DEFAULT_MEMORY_SIMILARITY_FLOOR;
255
+ if (!query)
256
+ throw new Error("query is required");
257
+ const fullQuery = context ? `${query}\n\nContext: ${context}` : query;
258
+ try {
259
+ const brain = getBrain();
260
+ const results = brain.search(fullQuery, 5, 0, { projectId: deriveProjectId() });
261
+ const topHit = results[0];
262
+ if (topHit && topHit.similarity >= threshold) {
263
+ const responseText = topHit.response;
264
+ const tokensSaved = Math.floor(responseText.length / 4);
265
+ try {
266
+ const { reportSavings } = await import("../../utils/reportSavings.js");
267
+ reportSavings({ source: "cache", tokens: tokensSaved, toolName: "smarter_cache", query: query.substring(0, 100) });
268
+ }
269
+ catch { }
270
+ const structured = {
271
+ hit: true,
272
+ similarity: topHit.similarity,
273
+ threshold,
274
+ answer: responseText,
275
+ source: "lemma-brain",
276
+ tokensSaved,
277
+ tokensSavedFormatted: `~${tokensSaved.toLocaleString()} tokens`,
278
+ };
279
+ return {
280
+ content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
281
+ structuredContent: structured,
282
+ };
283
+ }
284
+ const structured = {
285
+ hit: false,
286
+ similarity: topHit?.similarity || 0,
287
+ threshold,
288
+ answer: null,
289
+ source: "llm-call-required",
290
+ hint: "Después de resolver, llama store_memory para cachear y no gastar tokens en esto otra vez.",
291
+ };
292
+ return {
293
+ content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
294
+ structuredContent: structured,
295
+ };
296
+ }
297
+ catch (e) {
298
+ logError("smarter_cache", e);
299
+ const structured = {
300
+ hit: false,
301
+ error: e.message,
302
+ source: "cache-unavailable",
303
+ hint: "El cache local del brain falló. El LLM funcionará normalmente sin cache.",
304
+ };
305
+ return {
306
+ content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
307
+ structuredContent: structured,
308
+ };
309
+ }
310
+ }
311
+ // ── State Hash Cache (exact, non-probabilistic reasoning cache) ────
312
+ async function handleStateHashCache(args) {
313
+ const action = args?.action;
314
+ const query = args?.query;
315
+ const filePaths = Array.isArray(args?.filePaths) ? args.filePaths : [];
316
+ if (!action || !query)
317
+ throw new Error("action and query are required");
318
+ const workspaceRoot = process.cwd();
319
+ if (action === "lookup") {
320
+ const result = lookupStateHash(workspaceRoot, query, filePaths);
321
+ recordReceiptEvent(result.status === "hit" ? "exact_cache_hit" : "reasoning", query.substring(0, 100), { tool: "state_hash_cache", filePaths, reason: result.reason });
322
+ if (result.status === "hit" && result.entry) {
323
+ const tokensSaved = Math.floor(result.entry.answer.length / 4);
324
+ try {
325
+ reportSavings({ source: "cache", tokens: tokensSaved, toolName: "state_hash_cache", query: query.substring(0, 100) });
326
+ }
327
+ catch { }
328
+ const structured = {
329
+ status: "hit",
330
+ answer: result.entry.answer,
331
+ note: "Respuesta desde caché exacto (hash de archivos sin cambios) — no necesita re-razonar.",
332
+ tokensSaved,
333
+ };
334
+ return {
335
+ content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
336
+ structuredContent: structured,
337
+ };
338
+ }
339
+ const structured = { status: "miss", reason: result.reason, hint: "Razona normalmente y luego llama action='store' con la respuesta." };
340
+ return {
341
+ content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
342
+ structuredContent: structured,
343
+ };
344
+ }
345
+ if (action === "store") {
346
+ const answer = args?.answer;
347
+ if (!answer)
348
+ throw new Error("answer is required for action='store'");
349
+ const entry = storeStateHash(workspaceRoot, query, answer, filePaths);
350
+ const structured = { status: "stored", id: entry.id, filesTracked: Object.keys(entry.fileHashes) };
351
+ return {
352
+ content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
353
+ structuredContent: structured,
354
+ };
355
+ }
356
+ throw new Error(`Unknown action: ${action}. Use 'lookup' or 'store'.`);
357
+ }
358
+ // ── Token Receipt (auditable ledger, not a marketing stat) ─────────
359
+ async function handleTokenReceipt(args) {
360
+ const limit = typeof args?.limit === "number" ? args.limit : 20;
361
+ const summary = getReceiptSummary(limit);
362
+ const client = getConnectedClientInfo();
363
+ const structured = {
364
+ totalEvents: summary.totalEvents,
365
+ byType: summary.byType,
366
+ recentEvents: summary.recent,
367
+ measuredUnder: client ? `${client.name} ${client.version}` : "unknown host (client did not report clientInfo)",
368
+ note: "Esto es una bitácora real de esta sesión, no una proyección de ahorro. Si byType.reasoning es alto, no hubo mucho cache — y está bien, es honesto.",
369
+ };
370
+ return {
371
+ content: [{ type: "text", text: JSON.stringify(structured, null, 2) }],
372
+ structuredContent: structured,
373
+ };
374
+ }
375
+ export const SQUEEZE_CACHE_TOOL_HANDLERS = {
376
+ turbosqueeze: handleTurboSqueeze,
377
+ compress_context: handleCompressContext,
378
+ smarter_cache: handleSmarterCache,
379
+ state_hash_cache: handleStateHashCache,
380
+ token_receipt: handleTokenReceipt,
381
+ };
382
+ //# sourceMappingURL=squeeze-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"squeeze-cache.js","sourceRoot":"","sources":["../../../../src/mcp/tools/squeeze-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Small text/history-shaping tools: summarize_long_text, prune_conversation_history,
3
+ * diff_only. Split out of ../tools.ts (see that file's history for why) — pure
4
+ * relocation, no behavior change.
5
+ *
6
+ * batch_tool_calls stayed behind in tools.ts on purpose: it dispatches through the
7
+ * full toolHandlers registry, so moving it here would form a real import cycle
8
+ * (tools.ts -> this module for its handler, this module -> tools.ts for the registry)
9
+ * instead of the one-directional imports every other split module has.
10
+ */
11
+ import type { ToolDefinition, ToolHandler } from "../toolTypes.js";
12
+ export declare const TEXT_OPS_TOOL_DEFINITIONS: ToolDefinition[];
13
+ export declare const TEXT_OPS_TOOL_HANDLERS: Record<string, ToolHandler>;
14
+ //# sourceMappingURL=text-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-ops.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/text-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE,eAAO,MAAM,yBAAyB,EAAE,cAAc,EAgDrD,CAAC;AA+FF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAI9D,CAAC"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Small text/history-shaping tools: summarize_long_text, prune_conversation_history,
3
+ * diff_only. Split out of ../tools.ts (see that file's history for why) — pure
4
+ * relocation, no behavior change.
5
+ *
6
+ * batch_tool_calls stayed behind in tools.ts on purpose: it dispatches through the
7
+ * full toolHandlers registry, so moving it here would form a real import cycle
8
+ * (tools.ts -> this module for its handler, this module -> tools.ts for the registry)
9
+ * instead of the one-directional imports every other split module has.
10
+ */
11
+ import { collapseContext } from "../../utils/ContextCollapser.js";
12
+ import { pruneHistoryMessages, generateAstDiff } from "../../utils/ContextSqueezer.js";
13
+ import { reportSavings } from "../../utils/reportSavings.js";
14
+ import { logError } from "../utils.js";
15
+ export const TEXT_OPS_TOOL_DEFINITIONS = [
16
+ {
17
+ name: "summarize_long_text",
18
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
19
+ description: "Summarize long text locally using Ollama. Compresses verbose content into concise summaries, saving context window for subsequent turns.",
20
+ inputSchema: {
21
+ type: "object",
22
+ properties: {
23
+ text: { type: "string", description: "The long text to summarize" },
24
+ maxLength: { type: "number", description: "Maximum summary length in characters", default: 500 },
25
+ },
26
+ required: ["text"],
27
+ },
28
+ },
29
+ {
30
+ name: "prune_conversation_history",
31
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
32
+ description: "Compress conversation history by decimating old turns and compacting large code blocks in historical messages. Keeps recent context intact. Refuses to mutate anything by default because pruning invalidates the prompt-cache prefix, which is usually a net loss — pass force:true to actually apply it, or call without force to just get the estimated cache-invalidation cost back.",
33
+ inputSchema: {
34
+ type: "object",
35
+ properties: {
36
+ messages: {
37
+ type: "array",
38
+ items: { type: "object" },
39
+ description: "Array of conversation messages with role + content",
40
+ },
41
+ force: {
42
+ type: "boolean",
43
+ description: "Actually apply the prune despite the prompt-cache-invalidation cost. Default false — the call is a dry run that reports cacheInvalidationEstimate instead.",
44
+ default: false,
45
+ },
46
+ },
47
+ required: ["messages"],
48
+ },
49
+ },
50
+ {
51
+ name: "diff_only",
52
+ annotations: { readOnlyHint: true, idempotentHint: false, openWorldHint: false },
53
+ description: "Compute a compact line-by-line diff between the last known state of a file and its current content. Tracks file state in memory per session.",
54
+ inputSchema: {
55
+ type: "object",
56
+ properties: {
57
+ filePath: { type: "string", description: "File path identifier for state tracking and diff display" },
58
+ currentCode: { type: "string", description: "The new/current file content to diff against the stored previous state" },
59
+ },
60
+ required: ["filePath", "currentCode"],
61
+ },
62
+ },
63
+ ];
64
+ // ── Summarize Long Text ──────────────────────────────────────────────
65
+ async function handleSummarizeLongText(args) {
66
+ const text = args?.text;
67
+ const maxLength = args?.maxLength || 500;
68
+ if (!text)
69
+ throw new Error("text is required");
70
+ try {
71
+ const summary = collapseContext(text, { maxLength });
72
+ reportSavings({
73
+ source: "contextSqueeze",
74
+ charsBefore: text.length,
75
+ charsAfter: summary.length,
76
+ toolName: "summarize_long_text",
77
+ });
78
+ return { content: [{ type: "text", text: summary }] };
79
+ }
80
+ catch (e) {
81
+ logError("summarize_long_text", e);
82
+ return { content: [{ type: "text", text: `Summarization failed: ${e.message}` }] };
83
+ }
84
+ }
85
+ // ── Prune Conversation History ──────────────────────────────────────
86
+ async function handlePruneConversationHistory(args) {
87
+ const messages = args?.messages;
88
+ if (!messages)
89
+ throw new Error("messages is required");
90
+ const force = !!args?.force;
91
+ try {
92
+ const result = pruneHistoryMessages(messages, { force });
93
+ if (result.applied) {
94
+ reportSavings({
95
+ source: "historyPrune",
96
+ tokens: result.tokensSavedEstimate,
97
+ toolName: "prune_conversation_history",
98
+ });
99
+ }
100
+ return {
101
+ content: [
102
+ {
103
+ type: "text",
104
+ text: JSON.stringify({
105
+ messages: result.messages,
106
+ tokensSavedEstimate: result.tokensSavedEstimate,
107
+ cacheInvalidationEstimate: result.cacheInvalidationEstimate,
108
+ applied: result.applied,
109
+ ...(result.reason ? { reason: result.reason } : {}),
110
+ }, null, 2),
111
+ },
112
+ ],
113
+ };
114
+ }
115
+ catch (e) {
116
+ logError("prune_conversation_history", e);
117
+ return { content: [{ type: "text", text: `Pruning failed: ${e.message}` }] };
118
+ }
119
+ }
120
+ // ── Diff Only ───────────────────────────────────────────────────────
121
+ const fileStateCache = new Map();
122
+ async function handleDiffOnly(args) {
123
+ const filePath = args?.filePath;
124
+ const currentCode = args?.currentCode;
125
+ if (!filePath || currentCode === undefined)
126
+ throw new Error("filePath and currentCode are required");
127
+ const oldCode = fileStateCache.get(filePath);
128
+ if (oldCode === undefined) {
129
+ fileStateCache.set(filePath, currentCode);
130
+ return {
131
+ content: [{ type: "text", text: `No previous state recorded for "${filePath}". Current state stored for future diffs.` }],
132
+ };
133
+ }
134
+ const diff = generateAstDiff(oldCode, currentCode);
135
+ fileStateCache.set(filePath, currentCode);
136
+ return {
137
+ content: [
138
+ {
139
+ type: "text",
140
+ text: diff.length > 0
141
+ ? `Diff for "${filePath}":\n\n${diff}`
142
+ : `No changes detected in "${filePath}".`,
143
+ },
144
+ ],
145
+ };
146
+ }
147
+ export const TEXT_OPS_TOOL_HANDLERS = {
148
+ summarize_long_text: handleSummarizeLongText,
149
+ prune_conversation_history: handlePruneConversationHistory,
150
+ diff_only: handleDiffOnly,
151
+ };
152
+ //# sourceMappingURL=text-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-ops.js","sourceRoot":"","sources":["../../../../src/mcp/tools/text-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Workspace file/dir CRUD and command execution: read_workspace_file,
3
+ * write_workspace_file, create_workspace_file, apply_workspace_patch,
4
+ * run_workspace_command, output_region, list_workspace_dir. Split out of ../tools.ts
5
+ * (see that file's history for why) — pure relocation, no behavior change.
6
+ */
7
+ import type { ToolDefinition, ToolHandler } from "../toolTypes.js";
8
+ export declare const WORKSPACE_TOOL_DEFINITIONS: ToolDefinition[];
9
+ export declare const WORKSPACE_TOOL_HANDLERS: Record<string, ToolHandler>;
10
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8BH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhE,eAAO,MAAM,0BAA0B,EAAE,cAAc,EA+GtD,CAAC;AAikBF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAQ/D,CAAC"}