@nxuss/lemma 1.44.0 → 1.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +25 -7
  2. package/bin/brain-ingest.js +30 -13
  3. package/dist/cjs/cli/hostHooks.d.ts +38 -7
  4. package/dist/cjs/cli/hostHooks.d.ts.map +1 -1
  5. package/dist/cjs/cli/hostHooks.js +189 -9
  6. package/dist/cjs/cli/hostHooks.js.map +1 -1
  7. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  8. package/dist/cjs/cli/lemma-proxy.js +13 -16
  9. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  10. package/dist/cjs/cloud/billing/stripeApi.d.ts.map +1 -1
  11. package/dist/cjs/cloud/billing/stripeApi.js +6 -1
  12. package/dist/cjs/cloud/billing/stripeApi.js.map +1 -1
  13. package/dist/cjs/cloud/billing/stripeWebhook.d.ts.map +1 -1
  14. package/dist/cjs/cloud/billing/stripeWebhook.js +5 -0
  15. package/dist/cjs/cloud/billing/stripeWebhook.js.map +1 -1
  16. package/dist/cjs/cloud/console/consoleRouter.d.ts +2 -2
  17. package/dist/cjs/cloud/console/consoleRouter.d.ts.map +1 -1
  18. package/dist/cjs/cloud/console/consoleRouter.js +39 -1
  19. package/dist/cjs/cloud/console/consoleRouter.js.map +1 -1
  20. package/dist/cjs/cloud/identity/PlanPolicy.d.ts +26 -5
  21. package/dist/cjs/cloud/identity/PlanPolicy.d.ts.map +1 -1
  22. package/dist/cjs/cloud/identity/PlanPolicy.js +56 -16
  23. package/dist/cjs/cloud/identity/PlanPolicy.js.map +1 -1
  24. package/dist/cjs/cloud/identity/TenantResolver.d.ts +2 -0
  25. package/dist/cjs/cloud/identity/TenantResolver.d.ts.map +1 -1
  26. package/dist/cjs/cloud/identity/TenantResolver.js +1 -1
  27. package/dist/cjs/cloud/identity/TenantResolver.js.map +1 -1
  28. package/dist/cjs/cloud/identity/authenticateV2.js +1 -1
  29. package/dist/cjs/cloud/identity/authenticateV2.js.map +1 -1
  30. package/dist/cjs/cloud/identity/identityStore.d.ts +11 -0
  31. package/dist/cjs/cloud/identity/identityStore.d.ts.map +1 -1
  32. package/dist/cjs/cloud/identity/identityStore.js +26 -9
  33. package/dist/cjs/cloud/identity/identityStore.js.map +1 -1
  34. package/dist/cjs/cloud/metering/PostgresLedgerStore.d.ts +3 -1
  35. package/dist/cjs/cloud/metering/PostgresLedgerStore.d.ts.map +1 -1
  36. package/dist/cjs/cloud/metering/PostgresLedgerStore.js +12 -0
  37. package/dist/cjs/cloud/metering/PostgresLedgerStore.js.map +1 -1
  38. package/dist/cjs/cloud/metering/UsageLedger.d.ts +37 -0
  39. package/dist/cjs/cloud/metering/UsageLedger.d.ts.map +1 -1
  40. package/dist/cjs/cloud/metering/UsageLedger.js +42 -0
  41. package/dist/cjs/cloud/metering/UsageLedger.js.map +1 -1
  42. package/dist/cjs/cloud/store/FileBrainStore.d.ts +5 -1
  43. package/dist/cjs/cloud/store/FileBrainStore.d.ts.map +1 -1
  44. package/dist/cjs/cloud/store/FileBrainStore.js +5 -0
  45. package/dist/cjs/cloud/store/FileBrainStore.js.map +1 -1
  46. package/dist/cjs/cloud/store/PostgresBrainStore.d.ts +10 -1
  47. package/dist/cjs/cloud/store/PostgresBrainStore.d.ts.map +1 -1
  48. package/dist/cjs/cloud/store/PostgresBrainStore.js +28 -0
  49. package/dist/cjs/cloud/store/PostgresBrainStore.js.map +1 -1
  50. package/dist/cjs/cloud/store/memorySummary.d.ts +29 -0
  51. package/dist/cjs/cloud/store/memorySummary.d.ts.map +1 -0
  52. package/dist/cjs/cloud/store/memorySummary.js +66 -0
  53. package/dist/cjs/cloud/store/memorySummary.js.map +1 -0
  54. package/dist/cjs/cloud/v2/routes/admin.d.ts.map +1 -1
  55. package/dist/cjs/cloud/v2/routes/admin.js +20 -5
  56. package/dist/cjs/cloud/v2/routes/admin.js.map +1 -1
  57. package/dist/cjs/cloud/v2/routes/memories.js +1 -1
  58. package/dist/cjs/cloud/v2/routes/memories.js.map +1 -1
  59. package/dist/cjs/cloud/v2/routes/tenant.d.ts +1 -0
  60. package/dist/cjs/cloud/v2/routes/tenant.d.ts.map +1 -1
  61. package/dist/cjs/cloud/v2/routes/tenant.js +4 -1
  62. package/dist/cjs/cloud/v2/routes/tenant.js.map +1 -1
  63. package/dist/cjs/contracts/api-v2.types.d.ts +2 -0
  64. package/dist/cjs/contracts/api-v2.types.d.ts.map +1 -1
  65. package/dist/cjs/contracts/store.d.ts +35 -0
  66. package/dist/cjs/contracts/store.d.ts.map +1 -1
  67. package/dist/cjs/mcp/index.js +4 -1
  68. package/dist/cjs/mcp/index.js.map +1 -1
  69. package/dist/cjs/mcp/tools/misc.d.ts.map +1 -1
  70. package/dist/cjs/mcp/tools/misc.js +2 -1
  71. package/dist/cjs/mcp/tools/misc.js.map +1 -1
  72. package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
  73. package/dist/cjs/mcp/tools/workspace.js +4 -1
  74. package/dist/cjs/mcp/tools/workspace.js.map +1 -1
  75. package/dist/cjs/mcp/tools.d.ts +10 -0
  76. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  77. package/dist/cjs/mcp/tools.js +47 -12
  78. package/dist/cjs/mcp/tools.js.map +1 -1
  79. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
  80. package/dist/cjs/subconscious/HostRecall.js +11 -4
  81. package/dist/cjs/subconscious/HostRecall.js.map +1 -1
  82. package/dist/cjs/utils/FixCapture.d.ts +7 -5
  83. package/dist/cjs/utils/FixCapture.d.ts.map +1 -1
  84. package/dist/cjs/utils/FixCapture.js +64 -32
  85. package/dist/cjs/utils/FixCapture.js.map +1 -1
  86. package/dist/cjs/utils/NoTerminal.d.ts +27 -0
  87. package/dist/cjs/utils/NoTerminal.d.ts.map +1 -0
  88. package/dist/cjs/utils/NoTerminal.js +37 -0
  89. package/dist/cjs/utils/NoTerminal.js.map +1 -0
  90. package/dist/cjs/utils/OpenCodeSession.d.ts +70 -0
  91. package/dist/cjs/utils/OpenCodeSession.d.ts.map +1 -0
  92. package/dist/cjs/utils/OpenCodeSession.js +154 -0
  93. package/dist/cjs/utils/OpenCodeSession.js.map +1 -0
  94. package/dist/cjs/utils/SessionCapture.d.ts +29 -7
  95. package/dist/cjs/utils/SessionCapture.d.ts.map +1 -1
  96. package/dist/cjs/utils/SessionCapture.js +180 -32
  97. package/dist/cjs/utils/SessionCapture.js.map +1 -1
  98. package/dist/cjs/utils/TestAutofixInterceptor.d.ts.map +1 -1
  99. package/dist/cjs/utils/TestAutofixInterceptor.js +2 -0
  100. package/dist/cjs/utils/TestAutofixInterceptor.js.map +1 -1
  101. package/dist/esm/cli/hostHooks.d.ts +38 -7
  102. package/dist/esm/cli/hostHooks.d.ts.map +1 -1
  103. package/dist/esm/cli/hostHooks.js +187 -8
  104. package/dist/esm/cli/hostHooks.js.map +1 -1
  105. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  106. package/dist/esm/cli/lemma-proxy.js +14 -17
  107. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  108. package/dist/esm/cloud/billing/stripeApi.d.ts.map +1 -1
  109. package/dist/esm/cloud/billing/stripeApi.js +6 -1
  110. package/dist/esm/cloud/billing/stripeApi.js.map +1 -1
  111. package/dist/esm/cloud/billing/stripeWebhook.d.ts.map +1 -1
  112. package/dist/esm/cloud/billing/stripeWebhook.js +5 -0
  113. package/dist/esm/cloud/billing/stripeWebhook.js.map +1 -1
  114. package/dist/esm/cloud/console/consoleRouter.d.ts +2 -2
  115. package/dist/esm/cloud/console/consoleRouter.d.ts.map +1 -1
  116. package/dist/esm/cloud/console/consoleRouter.js +39 -1
  117. package/dist/esm/cloud/console/consoleRouter.js.map +1 -1
  118. package/dist/esm/cloud/identity/PlanPolicy.d.ts +26 -5
  119. package/dist/esm/cloud/identity/PlanPolicy.d.ts.map +1 -1
  120. package/dist/esm/cloud/identity/PlanPolicy.js +54 -15
  121. package/dist/esm/cloud/identity/PlanPolicy.js.map +1 -1
  122. package/dist/esm/cloud/identity/TenantResolver.d.ts +2 -0
  123. package/dist/esm/cloud/identity/TenantResolver.d.ts.map +1 -1
  124. package/dist/esm/cloud/identity/TenantResolver.js +1 -1
  125. package/dist/esm/cloud/identity/TenantResolver.js.map +1 -1
  126. package/dist/esm/cloud/identity/authenticateV2.js +1 -1
  127. package/dist/esm/cloud/identity/authenticateV2.js.map +1 -1
  128. package/dist/esm/cloud/identity/identityStore.d.ts +11 -0
  129. package/dist/esm/cloud/identity/identityStore.d.ts.map +1 -1
  130. package/dist/esm/cloud/identity/identityStore.js +26 -9
  131. package/dist/esm/cloud/identity/identityStore.js.map +1 -1
  132. package/dist/esm/cloud/metering/PostgresLedgerStore.d.ts +3 -1
  133. package/dist/esm/cloud/metering/PostgresLedgerStore.d.ts.map +1 -1
  134. package/dist/esm/cloud/metering/PostgresLedgerStore.js +12 -0
  135. package/dist/esm/cloud/metering/PostgresLedgerStore.js.map +1 -1
  136. package/dist/esm/cloud/metering/UsageLedger.d.ts +37 -0
  137. package/dist/esm/cloud/metering/UsageLedger.d.ts.map +1 -1
  138. package/dist/esm/cloud/metering/UsageLedger.js +41 -0
  139. package/dist/esm/cloud/metering/UsageLedger.js.map +1 -1
  140. package/dist/esm/cloud/store/FileBrainStore.d.ts +5 -1
  141. package/dist/esm/cloud/store/FileBrainStore.d.ts.map +1 -1
  142. package/dist/esm/cloud/store/FileBrainStore.js +5 -0
  143. package/dist/esm/cloud/store/FileBrainStore.js.map +1 -1
  144. package/dist/esm/cloud/store/PostgresBrainStore.d.ts +10 -1
  145. package/dist/esm/cloud/store/PostgresBrainStore.d.ts.map +1 -1
  146. package/dist/esm/cloud/store/PostgresBrainStore.js +28 -0
  147. package/dist/esm/cloud/store/PostgresBrainStore.js.map +1 -1
  148. package/dist/esm/cloud/store/memorySummary.d.ts +29 -0
  149. package/dist/esm/cloud/store/memorySummary.d.ts.map +1 -0
  150. package/dist/esm/cloud/store/memorySummary.js +60 -0
  151. package/dist/esm/cloud/store/memorySummary.js.map +1 -0
  152. package/dist/esm/cloud/v2/routes/admin.d.ts.map +1 -1
  153. package/dist/esm/cloud/v2/routes/admin.js +20 -5
  154. package/dist/esm/cloud/v2/routes/admin.js.map +1 -1
  155. package/dist/esm/cloud/v2/routes/memories.js +1 -1
  156. package/dist/esm/cloud/v2/routes/memories.js.map +1 -1
  157. package/dist/esm/cloud/v2/routes/tenant.d.ts +1 -0
  158. package/dist/esm/cloud/v2/routes/tenant.d.ts.map +1 -1
  159. package/dist/esm/cloud/v2/routes/tenant.js +4 -1
  160. package/dist/esm/cloud/v2/routes/tenant.js.map +1 -1
  161. package/dist/esm/contracts/api-v2.types.d.ts +2 -0
  162. package/dist/esm/contracts/api-v2.types.d.ts.map +1 -1
  163. package/dist/esm/contracts/store.d.ts +35 -0
  164. package/dist/esm/contracts/store.d.ts.map +1 -1
  165. package/dist/esm/mcp/index.js +5 -2
  166. package/dist/esm/mcp/index.js.map +1 -1
  167. package/dist/esm/mcp/tools/misc.d.ts.map +1 -1
  168. package/dist/esm/mcp/tools/misc.js +2 -1
  169. package/dist/esm/mcp/tools/misc.js.map +1 -1
  170. package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
  171. package/dist/esm/mcp/tools/workspace.js +4 -1
  172. package/dist/esm/mcp/tools/workspace.js.map +1 -1
  173. package/dist/esm/mcp/tools.d.ts +10 -0
  174. package/dist/esm/mcp/tools.d.ts.map +1 -1
  175. package/dist/esm/mcp/tools.js +46 -12
  176. package/dist/esm/mcp/tools.js.map +1 -1
  177. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
  178. package/dist/esm/subconscious/HostRecall.js +11 -4
  179. package/dist/esm/subconscious/HostRecall.js.map +1 -1
  180. package/dist/esm/utils/FixCapture.d.ts +7 -5
  181. package/dist/esm/utils/FixCapture.d.ts.map +1 -1
  182. package/dist/esm/utils/FixCapture.js +64 -33
  183. package/dist/esm/utils/FixCapture.js.map +1 -1
  184. package/dist/esm/utils/NoTerminal.d.ts +27 -0
  185. package/dist/esm/utils/NoTerminal.d.ts.map +1 -0
  186. package/dist/esm/utils/NoTerminal.js +33 -0
  187. package/dist/esm/utils/NoTerminal.js.map +1 -0
  188. package/dist/esm/utils/OpenCodeSession.d.ts +70 -0
  189. package/dist/esm/utils/OpenCodeSession.d.ts.map +1 -0
  190. package/dist/esm/utils/OpenCodeSession.js +146 -0
  191. package/dist/esm/utils/OpenCodeSession.js.map +1 -0
  192. package/dist/esm/utils/SessionCapture.d.ts +29 -7
  193. package/dist/esm/utils/SessionCapture.d.ts.map +1 -1
  194. package/dist/esm/utils/SessionCapture.js +180 -32
  195. package/dist/esm/utils/SessionCapture.js.map +1 -1
  196. package/dist/esm/utils/TestAutofixInterceptor.d.ts.map +1 -1
  197. package/dist/esm/utils/TestAutofixInterceptor.js +2 -0
  198. package/dist/esm/utils/TestAutofixInterceptor.js.map +1 -1
  199. package/package.json +1 -1
@@ -52,6 +52,7 @@ const AgentMultiplexer_1 = require("../proxy/AgentMultiplexer");
52
52
  const SseRelay_1 = require("../proxy/SseRelay");
53
53
  const KeyManager_1 = require("../proxy/KeyManager");
54
54
  const Gatekeeper_1 = require("../proxy/Gatekeeper");
55
+ const CloudEntitlement_1 = require("../cloud/CloudEntitlement");
55
56
  const ProjectIdentity_1 = require("../utils/ProjectIdentity");
56
57
  const ProjectRegistry_1 = require("../proxy/ProjectRegistry");
57
58
  const ContextInjector_1 = require("../proxy/ContextInjector");
@@ -376,23 +377,14 @@ enabled = true
376
377
  }
377
378
  }
378
379
  catch { }
379
- // Register lemma MCP server in OpenCode user config (~/.opencode.json)
380
- const openCodeMcpFile = path_1.default.join(os_1.default.homedir(), '.opencode.json');
380
+ // Register lemma MCP server where OpenCode reads it (~/.config/opencode/opencode.json); see registerOpenCodeMcp.
381
381
  try {
382
- let openCodeConfig = {};
383
- if (fs_1.default.existsSync(openCodeMcpFile)) {
384
- openCodeConfig = JSON.parse(fs_1.default.readFileSync(openCodeMcpFile, 'utf8'));
385
- }
386
- if (!openCodeConfig.mcp)
387
- openCodeConfig.mcp = {};
388
- if (!openCodeConfig.mcp.lemma) {
389
- openCodeConfig.mcp.lemma = {
390
- command: "npx",
391
- args: ["-y", "@nxuss/lemma", "mcp"],
392
- enabled: true
393
- };
394
- fs_1.default.writeFileSync(openCodeMcpFile, JSON.stringify(openCodeConfig, null, 2));
395
- console.log('✅ [OpenCode] Registered lemma MCP server in ~/.opencode.json');
382
+ if (fs_1.default.existsSync(path_1.default.join(os_1.default.homedir(), '.config', 'opencode')) || fs_1.default.existsSync(path_1.default.join(os_1.default.homedir(), '.opencode'))) {
383
+ const r = (0, hostHooks_1.registerOpenCodeMcp)();
384
+ if (r.status === 'installed' || r.status === 'updated')
385
+ console.log(`✅ [OpenCode] Registered lemma MCP server in ${r.file}`);
386
+ else if (r.status === 'manual')
387
+ console.log(`⚠️ [OpenCode] ${r.file} is not plain JSON; add this to it by hand:\n${r.snippet}`);
396
388
  }
397
389
  }
398
390
  catch { }
@@ -2324,9 +2316,13 @@ Adjusted Answer:`;
2324
2316
  throw e;
2325
2317
  });
2326
2318
  const BIND_HOST = process.env.LEMMA_BIND_HOST || '127.0.0.1';
2319
+ // Without this a machine that only runs the proxy keeps its Cloud seat's Pro answer until the
2320
+ // 7-day grace runs out: the MCP server is the only other process that refreshes it.
2321
+ let stopEntitlementRefresh = () => { };
2327
2322
  server.listen(this.port, BIND_HOST, async () => {
2328
2323
  fs_1.default.writeFileSync(ProjectStore_1.PID_FILE, String(process.pid));
2329
2324
  fs_1.default.writeFileSync(ProjectStore_1.PORT_FILE, String(this.port));
2325
+ stopEntitlementRefresh = (0, CloudEntitlement_1.startEntitlementRefresh)();
2330
2326
  // Security warning if binding to all interfaces without auth
2331
2327
  if (BIND_HOST !== '127.0.0.1' && BIND_HOST !== 'localhost') {
2332
2328
  const authEnabled = process.env.AUTH_ENABLED === 'true';
@@ -2388,6 +2384,7 @@ Adjusted Answer:`;
2388
2384
  // `lemma stop` used to leave a daemon with no port that never exited. Flush the Brain's
2389
2385
  // debounced write (same reason as the MCP bootstrap), close, and exit — with a hard cap.
2390
2386
  const shutdown = () => {
2387
+ stopEntitlementRefresh();
2391
2388
  try {
2392
2389
  (0, TheBrainV2_1.getBrain)().flushSync();
2393
2390
  }