@nxuss/lemma 1.40.0 → 1.42.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 (242) hide show
  1. package/README.md +63 -14
  2. package/bin/brain-ingest.js +83 -6
  3. package/bin/doctor.js +2 -1
  4. package/bin/init.js +92 -92
  5. package/bin/postinstall.js +58 -4
  6. package/dashboard/dist/assets/index-Ca05LJvs.js +453 -0
  7. package/dashboard/dist/assets/{index-DNTQXLER.css → index-DdEVyDRj.css} +1 -1
  8. package/dashboard/dist/index.html +2 -2
  9. package/dist/cjs/cli/hostHooks.d.ts +27 -2
  10. package/dist/cjs/cli/hostHooks.d.ts.map +1 -1
  11. package/dist/cjs/cli/hostHooks.js +74 -7
  12. package/dist/cjs/cli/hostHooks.js.map +1 -1
  13. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  14. package/dist/cjs/cli/lemma-proxy.js +29 -10
  15. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  16. package/dist/cjs/contracts/evidence.d.ts +8 -1
  17. package/dist/cjs/contracts/evidence.d.ts.map +1 -1
  18. package/dist/cjs/mcp/index.js +19 -0
  19. package/dist/cjs/mcp/index.js.map +1 -1
  20. package/dist/cjs/mcp/prompts.d.ts +1 -1
  21. package/dist/cjs/mcp/prompts.d.ts.map +1 -1
  22. package/dist/cjs/mcp/prompts.js +6 -16
  23. package/dist/cjs/mcp/prompts.js.map +1 -1
  24. package/dist/cjs/mcp/tool-profiles.d.ts.map +1 -1
  25. package/dist/cjs/mcp/tool-profiles.js +8 -4
  26. package/dist/cjs/mcp/tool-profiles.js.map +1 -1
  27. package/dist/cjs/mcp/tools/context-tools.d.ts.map +1 -1
  28. package/dist/cjs/mcp/tools/context-tools.js +21 -17
  29. package/dist/cjs/mcp/tools/context-tools.js.map +1 -1
  30. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  31. package/dist/cjs/mcp/tools/memory.js +25 -4
  32. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  33. package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
  34. package/dist/cjs/mcp/tools/workspace.js +97 -54
  35. package/dist/cjs/mcp/tools/workspace.js.map +1 -1
  36. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  37. package/dist/cjs/mcp/tools.js +95 -34
  38. package/dist/cjs/mcp/tools.js.map +1 -1
  39. package/dist/cjs/mcp/utils.d.ts.map +1 -1
  40. package/dist/cjs/mcp/utils.js +6 -1
  41. package/dist/cjs/mcp/utils.js.map +1 -1
  42. package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -1
  43. package/dist/cjs/mcp/workspaceShared.js +14 -9
  44. package/dist/cjs/mcp/workspaceShared.js.map +1 -1
  45. package/dist/cjs/proxy/KeyManager.d.ts +10 -0
  46. package/dist/cjs/proxy/KeyManager.d.ts.map +1 -1
  47. package/dist/cjs/proxy/KeyManager.js +45 -8
  48. package/dist/cjs/proxy/KeyManager.js.map +1 -1
  49. package/dist/cjs/security/SemanticScrubber.d.ts +6 -0
  50. package/dist/cjs/security/SemanticScrubber.d.ts.map +1 -1
  51. package/dist/cjs/security/SemanticScrubber.js +39 -13
  52. package/dist/cjs/security/SemanticScrubber.js.map +1 -1
  53. package/dist/cjs/subconscious/HostRecall.d.ts +21 -5
  54. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
  55. package/dist/cjs/subconscious/HostRecall.js +147 -13
  56. package/dist/cjs/subconscious/HostRecall.js.map +1 -1
  57. package/dist/cjs/subconscious/LeakWatch.d.ts +21 -0
  58. package/dist/cjs/subconscious/LeakWatch.d.ts.map +1 -0
  59. package/dist/cjs/subconscious/LeakWatch.js +93 -0
  60. package/dist/cjs/subconscious/LeakWatch.js.map +1 -0
  61. package/dist/cjs/subconscious/TheBrainV2.d.ts +6 -1
  62. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  63. package/dist/cjs/subconscious/TheBrainV2.js +21 -9
  64. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  65. package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts +3 -0
  66. package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  67. package/dist/cjs/subconscious/freshness/LocalFsResolver.js +32 -14
  68. package/dist/cjs/subconscious/freshness/LocalFsResolver.js.map +1 -1
  69. package/dist/cjs/utils/CommandOutputDistiller.d.ts +10 -0
  70. package/dist/cjs/utils/CommandOutputDistiller.d.ts.map +1 -1
  71. package/dist/cjs/utils/CommandOutputDistiller.js +40 -2
  72. package/dist/cjs/utils/CommandOutputDistiller.js.map +1 -1
  73. package/dist/cjs/utils/ContextSqueezer.d.ts +13 -1
  74. package/dist/cjs/utils/ContextSqueezer.d.ts.map +1 -1
  75. package/dist/cjs/utils/ContextSqueezer.js +176 -3
  76. package/dist/cjs/utils/ContextSqueezer.js.map +1 -1
  77. package/dist/cjs/utils/FixCapture.d.ts.map +1 -1
  78. package/dist/cjs/utils/FixCapture.js +56 -0
  79. package/dist/cjs/utils/FixCapture.js.map +1 -1
  80. package/dist/cjs/utils/LineNumberMap.d.ts.map +1 -1
  81. package/dist/cjs/utils/LineNumberMap.js +27 -0
  82. package/dist/cjs/utils/LineNumberMap.js.map +1 -1
  83. package/dist/cjs/utils/PatchMatcher.d.ts.map +1 -1
  84. package/dist/cjs/utils/PatchMatcher.js +26 -0
  85. package/dist/cjs/utils/PatchMatcher.js.map +1 -1
  86. package/dist/cjs/utils/ProLicense.d.ts +2 -0
  87. package/dist/cjs/utils/ProLicense.d.ts.map +1 -0
  88. package/dist/cjs/utils/ProLicense.js +31 -0
  89. package/dist/cjs/utils/ProLicense.js.map +1 -0
  90. package/dist/cjs/utils/RevivalThrottle.d.ts +9 -0
  91. package/dist/cjs/utils/RevivalThrottle.d.ts.map +1 -0
  92. package/dist/cjs/utils/RevivalThrottle.js +25 -0
  93. package/dist/cjs/utils/RevivalThrottle.js.map +1 -0
  94. package/dist/cjs/utils/SavingsLedger.d.ts +58 -18
  95. package/dist/cjs/utils/SavingsLedger.d.ts.map +1 -1
  96. package/dist/cjs/utils/SavingsLedger.js +332 -179
  97. package/dist/cjs/utils/SavingsLedger.js.map +1 -1
  98. package/dist/cjs/utils/SearchCache.d.ts +2 -2
  99. package/dist/cjs/utils/SearchCache.d.ts.map +1 -1
  100. package/dist/cjs/utils/SearchCache.js +8 -6
  101. package/dist/cjs/utils/SearchCache.js.map +1 -1
  102. package/dist/cjs/utils/SessionCapture.d.ts +76 -0
  103. package/dist/cjs/utils/SessionCapture.d.ts.map +1 -0
  104. package/dist/cjs/utils/SessionCapture.js +400 -0
  105. package/dist/cjs/utils/SessionCapture.js.map +1 -0
  106. package/dist/cjs/utils/StaleDelta.d.ts +2 -0
  107. package/dist/cjs/utils/StaleDelta.d.ts.map +1 -0
  108. package/dist/cjs/utils/StaleDelta.js +60 -0
  109. package/dist/cjs/utils/StaleDelta.js.map +1 -0
  110. package/dist/cjs/utils/TokenBudgetedReader.d.ts.map +1 -1
  111. package/dist/cjs/utils/TokenBudgetedReader.js +56 -15
  112. package/dist/cjs/utils/TokenBudgetedReader.js.map +1 -1
  113. package/dist/cjs/utils/WorkspaceSearch.d.ts +8 -1
  114. package/dist/cjs/utils/WorkspaceSearch.d.ts.map +1 -1
  115. package/dist/cjs/utils/WorkspaceSearch.js +75 -5
  116. package/dist/cjs/utils/WorkspaceSearch.js.map +1 -1
  117. package/dist/cjs/utils/reportSavings.d.ts +3 -0
  118. package/dist/cjs/utils/reportSavings.d.ts.map +1 -1
  119. package/dist/cjs/utils/reportSavings.js +44 -5
  120. package/dist/cjs/utils/reportSavings.js.map +1 -1
  121. package/dist/esm/cli/hostHooks.d.ts +27 -2
  122. package/dist/esm/cli/hostHooks.d.ts.map +1 -1
  123. package/dist/esm/cli/hostHooks.js +73 -6
  124. package/dist/esm/cli/hostHooks.js.map +1 -1
  125. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  126. package/dist/esm/cli/lemma-proxy.js +30 -11
  127. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  128. package/dist/esm/contracts/evidence.d.ts +8 -1
  129. package/dist/esm/contracts/evidence.d.ts.map +1 -1
  130. package/dist/esm/mcp/index.js +20 -1
  131. package/dist/esm/mcp/index.js.map +1 -1
  132. package/dist/esm/mcp/prompts.d.ts +1 -1
  133. package/dist/esm/mcp/prompts.d.ts.map +1 -1
  134. package/dist/esm/mcp/prompts.js +6 -16
  135. package/dist/esm/mcp/prompts.js.map +1 -1
  136. package/dist/esm/mcp/tool-profiles.d.ts.map +1 -1
  137. package/dist/esm/mcp/tool-profiles.js +8 -4
  138. package/dist/esm/mcp/tool-profiles.js.map +1 -1
  139. package/dist/esm/mcp/tools/context-tools.d.ts.map +1 -1
  140. package/dist/esm/mcp/tools/context-tools.js +21 -17
  141. package/dist/esm/mcp/tools/context-tools.js.map +1 -1
  142. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  143. package/dist/esm/mcp/tools/memory.js +26 -5
  144. package/dist/esm/mcp/tools/memory.js.map +1 -1
  145. package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
  146. package/dist/esm/mcp/tools/workspace.js +98 -55
  147. package/dist/esm/mcp/tools/workspace.js.map +1 -1
  148. package/dist/esm/mcp/tools.d.ts.map +1 -1
  149. package/dist/esm/mcp/tools.js +94 -33
  150. package/dist/esm/mcp/tools.js.map +1 -1
  151. package/dist/esm/mcp/utils.d.ts.map +1 -1
  152. package/dist/esm/mcp/utils.js +6 -1
  153. package/dist/esm/mcp/utils.js.map +1 -1
  154. package/dist/esm/mcp/workspaceShared.d.ts.map +1 -1
  155. package/dist/esm/mcp/workspaceShared.js +14 -9
  156. package/dist/esm/mcp/workspaceShared.js.map +1 -1
  157. package/dist/esm/proxy/KeyManager.d.ts +10 -0
  158. package/dist/esm/proxy/KeyManager.d.ts.map +1 -1
  159. package/dist/esm/proxy/KeyManager.js +43 -6
  160. package/dist/esm/proxy/KeyManager.js.map +1 -1
  161. package/dist/esm/security/SemanticScrubber.d.ts +6 -0
  162. package/dist/esm/security/SemanticScrubber.d.ts.map +1 -1
  163. package/dist/esm/security/SemanticScrubber.js +38 -12
  164. package/dist/esm/security/SemanticScrubber.js.map +1 -1
  165. package/dist/esm/subconscious/HostRecall.d.ts +21 -5
  166. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
  167. package/dist/esm/subconscious/HostRecall.js +146 -16
  168. package/dist/esm/subconscious/HostRecall.js.map +1 -1
  169. package/dist/esm/subconscious/LeakWatch.d.ts +21 -0
  170. package/dist/esm/subconscious/LeakWatch.d.ts.map +1 -0
  171. package/dist/esm/subconscious/LeakWatch.js +86 -0
  172. package/dist/esm/subconscious/LeakWatch.js.map +1 -0
  173. package/dist/esm/subconscious/TheBrainV2.d.ts +6 -1
  174. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  175. package/dist/esm/subconscious/TheBrainV2.js +21 -9
  176. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  177. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts +3 -0
  178. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  179. package/dist/esm/subconscious/freshness/LocalFsResolver.js +32 -14
  180. package/dist/esm/subconscious/freshness/LocalFsResolver.js.map +1 -1
  181. package/dist/esm/utils/CommandOutputDistiller.d.ts +10 -0
  182. package/dist/esm/utils/CommandOutputDistiller.d.ts.map +1 -1
  183. package/dist/esm/utils/CommandOutputDistiller.js +39 -2
  184. package/dist/esm/utils/CommandOutputDistiller.js.map +1 -1
  185. package/dist/esm/utils/ContextSqueezer.d.ts +13 -1
  186. package/dist/esm/utils/ContextSqueezer.d.ts.map +1 -1
  187. package/dist/esm/utils/ContextSqueezer.js +175 -3
  188. package/dist/esm/utils/ContextSqueezer.js.map +1 -1
  189. package/dist/esm/utils/FixCapture.d.ts.map +1 -1
  190. package/dist/esm/utils/FixCapture.js +56 -0
  191. package/dist/esm/utils/FixCapture.js.map +1 -1
  192. package/dist/esm/utils/LineNumberMap.d.ts.map +1 -1
  193. package/dist/esm/utils/LineNumberMap.js +27 -0
  194. package/dist/esm/utils/LineNumberMap.js.map +1 -1
  195. package/dist/esm/utils/PatchMatcher.d.ts.map +1 -1
  196. package/dist/esm/utils/PatchMatcher.js +26 -0
  197. package/dist/esm/utils/PatchMatcher.js.map +1 -1
  198. package/dist/esm/utils/ProLicense.d.ts +2 -0
  199. package/dist/esm/utils/ProLicense.d.ts.map +1 -0
  200. package/dist/esm/utils/ProLicense.js +25 -0
  201. package/dist/esm/utils/ProLicense.js.map +1 -0
  202. package/dist/esm/utils/RevivalThrottle.d.ts +9 -0
  203. package/dist/esm/utils/RevivalThrottle.d.ts.map +1 -0
  204. package/dist/esm/utils/RevivalThrottle.js +22 -0
  205. package/dist/esm/utils/RevivalThrottle.js.map +1 -0
  206. package/dist/esm/utils/SavingsLedger.d.ts +58 -18
  207. package/dist/esm/utils/SavingsLedger.d.ts.map +1 -1
  208. package/dist/esm/utils/SavingsLedger.js +332 -179
  209. package/dist/esm/utils/SavingsLedger.js.map +1 -1
  210. package/dist/esm/utils/SearchCache.d.ts +2 -2
  211. package/dist/esm/utils/SearchCache.d.ts.map +1 -1
  212. package/dist/esm/utils/SearchCache.js +8 -6
  213. package/dist/esm/utils/SearchCache.js.map +1 -1
  214. package/dist/esm/utils/SessionCapture.d.ts +76 -0
  215. package/dist/esm/utils/SessionCapture.d.ts.map +1 -0
  216. package/dist/esm/utils/SessionCapture.js +388 -0
  217. package/dist/esm/utils/SessionCapture.js.map +1 -0
  218. package/dist/esm/utils/StaleDelta.d.ts +2 -0
  219. package/dist/esm/utils/StaleDelta.d.ts.map +1 -0
  220. package/dist/esm/utils/StaleDelta.js +54 -0
  221. package/dist/esm/utils/StaleDelta.js.map +1 -0
  222. package/dist/esm/utils/TokenBudgetedReader.d.ts.map +1 -1
  223. package/dist/esm/utils/TokenBudgetedReader.js +56 -15
  224. package/dist/esm/utils/TokenBudgetedReader.js.map +1 -1
  225. package/dist/esm/utils/WorkspaceSearch.d.ts +8 -1
  226. package/dist/esm/utils/WorkspaceSearch.d.ts.map +1 -1
  227. package/dist/esm/utils/WorkspaceSearch.js +74 -5
  228. package/dist/esm/utils/WorkspaceSearch.js.map +1 -1
  229. package/dist/esm/utils/reportSavings.d.ts +3 -0
  230. package/dist/esm/utils/reportSavings.d.ts.map +1 -1
  231. package/dist/esm/utils/reportSavings.js +42 -5
  232. package/dist/esm/utils/reportSavings.js.map +1 -1
  233. package/package.json +4 -4
  234. package/dashboard/dist/assets/index-DzL_Zu3m.js +0 -452
  235. package/dist/cjs/examples/basic-usage.d.ts +0 -12
  236. package/dist/cjs/examples/basic-usage.d.ts.map +0 -1
  237. package/dist/cjs/examples/basic-usage.js +0 -128
  238. package/dist/cjs/examples/basic-usage.js.map +0 -1
  239. package/dist/esm/examples/basic-usage.d.ts +0 -12
  240. package/dist/esm/examples/basic-usage.d.ts.map +0 -1
  241. package/dist/esm/examples/basic-usage.js +0 -126
  242. package/dist/esm/examples/basic-usage.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LocalFsResolver.d.ts","sourceRoot":"","sources":["../../../../src/subconscious/freshness/LocalFsResolver.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,OAAO;IACpB,OAAO,CAAC,OAAO,CAAS;IAMxB,OAAO,CAAC,SAAS,CAAqC;gBAE1C,OAAO,GAAE,MAAsB;IAI3C,gGAAgG;IAChG,OAAO,CAAC,WAAW;IAInB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBxC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAsC5F;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"LocalFsResolver.d.ts","sourceRoot":"","sources":["../../../../src/subconscious/freshness/LocalFsResolver.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AASjE,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,IAAI,OAAO;IACpB,OAAO,CAAC,OAAO,CAAS;IAMxB,OAAO,CAAC,SAAS,CAAqC;gBAE1C,OAAO,GAAE,MAAsB;IAI3C,gGAAgG;IAChG,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAqBjB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIxC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI9C,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAyChH;AAED,eAAe,eAAe,CAAC"}
@@ -19,6 +19,10 @@ import crypto from 'crypto';
19
19
  import { getSymbolSurgicalContext, normalizeForFreshness } from '../../utils/SymbolSurgicalContext.js';
20
20
  import { findOtherLanguageSymbol, normalizeOtherLanguage, supportsOtherLanguage } from '../../utils/OtherLanguageSymbols.js';
21
21
  import { isJsonFile, jsonKeyText } from '../../utils/JsonKeys.js';
22
+ const sha256 = (text) => crypto.createHash('sha256').update(text).digest('hex');
23
+ // A checkout with core.autocrlf=true turns every \n into \r\n, so hashing the text as read would
24
+ // give the same code another hash on Windows and mark a team memory stale. Hash the LF form.
25
+ const toLf = (text) => text.replace(/\r\n/g, '\n');
22
26
  export class LocalFsResolver {
23
27
  constructor(rootDir = process.cwd()) {
24
28
  this.lane = 'A';
@@ -34,23 +38,34 @@ export class LocalFsResolver {
34
38
  resolvePath(p) {
35
39
  return path.isAbsolute(p) ? p : path.resolve(this.rootDir, p);
36
40
  }
37
- hashFile(pathStr) {
38
- const abs = this.resolvePath(pathStr);
41
+ hashEntry(abs) {
39
42
  try {
40
43
  const stat = fs.statSync(abs);
41
44
  const cached = this.hashCache.get(abs);
42
- if (cached && cached.mtimeMs === stat.mtimeMs && cached.size === stat.size) {
43
- return cached.hash;
44
- }
45
- const hash = crypto.createHash('sha256').update(fs.readFileSync(abs, 'utf8')).digest('hex');
46
- this.hashCache.set(abs, { mtimeMs: stat.mtimeMs, size: stat.size, hash });
47
- return hash;
45
+ if (cached && cached.mtimeMs === stat.mtimeMs && cached.size === stat.size)
46
+ return cached;
47
+ const text = fs.readFileSync(abs, 'utf8');
48
+ const lf = toLf(text);
49
+ const entry = {
50
+ mtimeMs: stat.mtimeMs,
51
+ size: stat.size,
52
+ hash: sha256(lf),
53
+ ...(lf !== text ? { legacy: sha256(text) } : {}),
54
+ };
55
+ this.hashCache.set(abs, entry);
56
+ return entry;
48
57
  }
49
58
  catch {
50
59
  this.hashCache.delete(abs);
51
- return 'MISSING';
60
+ return null;
52
61
  }
53
62
  }
63
+ hashFile(pathStr) {
64
+ return this.hashEntry(this.resolvePath(pathStr))?.hash ?? 'MISSING';
65
+ }
66
+ hashFileLegacy(pathStr) {
67
+ return this.hashEntry(this.resolvePath(pathStr))?.legacy ?? null;
68
+ }
54
69
  hashSymbol(pathStr, symbolName) {
55
70
  const abs = this.resolvePath(pathStr);
56
71
  if (isJsonFile(abs)) {
@@ -60,7 +75,7 @@ export class LocalFsResolver {
60
75
  const text = jsonKeyText(abs, fs.readFileSync(abs, 'utf8'), symbolName);
61
76
  if (text === null)
62
77
  return { raw: 'MISSING', normalized: 'MISSING' };
63
- const hash = crypto.createHash('sha256').update(text).digest('hex');
78
+ const hash = sha256(toLf(text));
64
79
  return { raw: hash, normalized: hash };
65
80
  }
66
81
  catch {
@@ -75,8 +90,9 @@ export class LocalFsResolver {
75
90
  if (text === null)
76
91
  return { raw: 'MISSING', normalized: 'MISSING' };
77
92
  return {
78
- raw: crypto.createHash('sha256').update(text).digest('hex'),
79
- normalized: crypto.createHash('sha256').update(normalizeOtherLanguage(abs, text)).digest('hex'),
93
+ raw: sha256(toLf(text)),
94
+ normalized: sha256(normalizeOtherLanguage(abs, text)),
95
+ ...(text.includes('\r\n') ? { rawLegacy: sha256(text) } : {}),
80
96
  };
81
97
  }
82
98
  catch {
@@ -85,9 +101,11 @@ export class LocalFsResolver {
85
101
  }
86
102
  try {
87
103
  const ctx = getSymbolSurgicalContext(path.dirname(abs), path.basename(abs), symbolName);
104
+ const impl = ctx.implementation;
88
105
  return {
89
- raw: crypto.createHash('sha256').update(ctx.implementation).digest('hex'),
90
- normalized: crypto.createHash('sha256').update(normalizeForFreshness(ctx.implementation)).digest('hex'),
106
+ raw: sha256(toLf(impl)),
107
+ normalized: sha256(normalizeForFreshness(impl)),
108
+ ...(impl.includes('\r\n') ? { rawLegacy: sha256(impl) } : {}),
91
109
  };
92
110
  }
93
111
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"LocalFsResolver.js","sourceRoot":"","sources":["../../../../src/subconscious/freshness/LocalFsResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalFsResolver.js","sourceRoot":"","sources":["../../../../src/subconscious/freshness/LocalFsResolver.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,16 @@
16
16
  * distilled view carries a handle back to it, so anything trimmed can be retrieved
17
17
  * verbatim (see `readRegion`). Nothing is silently dropped.
18
18
  */
19
+ /**
20
+ * Terminal colour and cursor sequences (CSI `ESC [ … letter`, OSC `ESC ] … BEL|ST`).
21
+ *
22
+ * A host that gives the command a colour-capable environment gets every `FAIL`, `Tests 2 failed` and
23
+ * file name wrapped in them. They carry nothing for a model, cost tokens, and broke format detection:
24
+ * vitest's `Test Files 2 failed` has an escape between the label and the number, so the detector
25
+ * answered "generic" and the reply was a 10k-character head/tail instead of ~1.4k (measured on real
26
+ * sessions: 215k-character raw runs, 9.9k vs 2.4k distilled once the escapes are gone).
27
+ */
28
+ export declare function stripAnsi(text: string): string;
19
29
  export type OutputFormat = "jest" | "vitest" | "tsc" | "eslint" | "generic";
20
30
  /** A named, retrievable slice of the raw output (1-indexed, inclusive). */
21
31
  export interface OutputSection {
@@ -1 +1 @@
1
- {"version":3,"file":"CommandOutputDistiller.d.ts","sourceRoot":"","sources":["../../../src/utils/CommandOutputDistiller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAwBH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAoDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAepH;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,+GAA+G;IAC/G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,CAyD3D;AAWD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAUtD;AAgYD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,eAAe,CAgEhG;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAc7D"}
1
+ {"version":3,"file":"CommandOutputDistiller.d.ts","sourceRoot":"","sources":["../../../src/utils/CommandOutputDistiller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AA4BD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAoDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAepH;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,+GAA+G;IAC/G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,CAyD3D;AAWD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAUtD;AAyYD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,eAAe,CAkEhG;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAkB7D"}
@@ -20,8 +20,30 @@ import fs from "fs";
20
20
  import path from "path";
21
21
  import os from "os";
22
22
  import crypto from "crypto";
23
+ /**
24
+ * Terminal colour and cursor sequences (CSI `ESC [ … letter`, OSC `ESC ] … BEL|ST`).
25
+ *
26
+ * A host that gives the command a colour-capable environment gets every `FAIL`, `Tests 2 failed` and
27
+ * file name wrapped in them. They carry nothing for a model, cost tokens, and broke format detection:
28
+ * vitest's `Test Files 2 failed` has an escape between the label and the number, so the detector
29
+ * answered "generic" and the reply was a 10k-character head/tail instead of ~1.4k (measured on real
30
+ * sessions: 215k-character raw runs, 9.9k vs 2.4k distilled once the escapes are gone).
31
+ */
32
+ export function stripAnsi(text) {
33
+ // eslint-disable-next-line no-control-regex -- matching ESC is the point
34
+ return text.replace(/\u001b\[[0-?]*[ -/]*[@-~]|\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/g, "");
35
+ }
23
36
  /** Outputs at or under this size are returned untouched — distilling them saves nothing. */
24
37
  const DISTILL_THRESHOLD_CHARS = 3000;
38
+ /**
39
+ * For a format with a parser (jest, vitest, tsc, eslint) the distilled view is the failures or the
40
+ * summary line, a few hundred chars at most, so distilling pays off much earlier. Measured: a green
41
+ * jest run of 2,130 chars (mostly expected console.error blocks) is 105 chars of summary; it used to
42
+ * come back whole because it was under 3,000. The complete output is stored either way.
43
+ */
44
+ const PARSED_FORMAT_THRESHOLD_CHARS = 1000;
45
+ /** What the footer adds to a distilled reply, so a view barely shorter than the original is not worth it. */
46
+ const FOOTER_COST_ESTIMATE_CHARS = 200;
25
47
  /** Max failing-test blocks rendered inline before we point at the handle for the rest. */
26
48
  const MAX_FAILURES_INLINE = 20;
27
49
  /** Max lines kept from a single failure's reason/diff body. */
@@ -214,6 +236,15 @@ function collectJestFailures(lines) {
214
236
  current = { title: m[1].trim(), startLine: i + 1, endLine: lines.length, body: [] };
215
237
  continue;
216
238
  }
239
+ // The result line of the next suite (`PASS path`, `FAIL path`, at column 0) closes the block too.
240
+ // Without it everything jest prints between two suites, the PASS lines and their `● Console`
241
+ // blocks, was swallowed into the last failure's body and shown as if it were part of the reason.
242
+ if (current && /^(PASS|FAIL)\s+\S/.test(lines[i])) {
243
+ current.endLine = i;
244
+ blocks.push(current);
245
+ current = null;
246
+ continue;
247
+ }
217
248
  // A summary line closes the last failure block.
218
249
  if (current && /^(Test Suites|Tests|Snapshots|Time|Ran all test suites):/.test(lines[i])) {
219
250
  current.endLine = i;
@@ -512,8 +543,8 @@ export function distillCommandOutput(rawOutput, options) {
512
543
  const raw = rawOutput ?? "";
513
544
  const originalChars = raw.length;
514
545
  const originalLines = raw === "" ? 0 : raw.split("\n").length;
515
- const threshold = options.thresholdChars ?? DISTILL_THRESHOLD_CHARS;
516
546
  const format = detectFormat(raw);
547
+ const threshold = options.thresholdChars ?? (format === "generic" ? DISTILL_THRESHOLD_CHARS : PARSED_FORMAT_THRESHOLD_CHARS);
517
548
  // Small outputs: distilling costs more than it saves, and the raw text is already
518
549
  // the most faithful thing we can hand back.
519
550
  if (options.raw || originalChars <= threshold) {
@@ -546,7 +577,9 @@ export function distillCommandOutput(rawOutput, options) {
546
577
  }
547
578
  // If a parser somehow produced something no smaller than the original, the honest move
548
579
  // is to hand back the original rather than a lossy view that saved nothing.
549
- if (result.text.length >= originalChars) {
580
+ // The reply also carries the footer (~200 chars even in its one-line form), so a view that is only
581
+ // marginally shorter than the original would cost more than it saves.
582
+ if (result.text.length + FOOTER_COST_ESTIMATE_CHARS >= originalChars) {
550
583
  return {
551
584
  format,
552
585
  text: raw,
@@ -573,6 +606,10 @@ export function buildDistillFooter(d) {
573
606
  if (!d.handle)
574
607
  return "";
575
608
  const pct = Math.round((1 - d.distilledChars / d.originalChars) * 100);
609
+ // With no named sections there is nothing to list: one line says what this is and how to get the rest.
610
+ if (!d.sections.length) {
611
+ return `\n── distilled (${d.format}): ${d.distilledChars} of ${d.originalChars} chars (${pct}% withheld, ${d.originalLines} lines) — full output: output_region({ handle: "${d.handle}", all: true }), or startLine/endLine for a range ──`;
612
+ }
576
613
  const lines = [
577
614
  "",
578
615
  `── distilled (${d.format}) — showing ${d.distilledChars} of ${d.originalChars} chars (${pct}% withheld, ${d.originalLines} lines total) ──`,
@@ -1 +1 @@
1
- {"version":3,"file":"CommandOutputDistiller.js","sourceRoot":"","sources":["../../../src/utils/CommandOutputDistiller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandOutputDistiller.js","sourceRoot":"","sources":["../../../src/utils/CommandOutputDistiller.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,19 @@ export interface CommentOptions {
28
28
  }
29
29
  export declare function stripComments(code: string, options?: CommentOptions): string;
30
30
  /**
31
- * Compress code structure by removing redundant whitespace and blank lines
31
+ * [start, end) ranges of the string, template and Python triple-quoted literals in `code`.
32
+ *
33
+ * Whitespace compaction and import stripping work on lines and runs of spaces, so without this they
34
+ * rewrote the inside of a SQL string, a prompt template or a doc string (measured: 54 of 246 files in
35
+ * this repo changed that way) and removed an `import` line that lived inside a template literal.
36
+ * Comments and regex literals are stepped over so a quote or backtick inside one does not open a
37
+ * literal; a quoted string that does not close ends at its line, a template at the end of the input.
38
+ */
39
+ export declare function findStringLiterals(code: string): Array<[number, number]>;
40
+ /**
41
+ * Compress code structure by removing redundant whitespace and blank lines.
42
+ *
43
+ * Indentation and runs of spaces collapse; what sits inside a string or template literal does not.
32
44
  */
33
45
  export declare function compactWhitespace(code: string): string;
34
46
  export declare function detectFunctionDeclaration(context: string): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextSqueezer.d.ts","sourceRoot":"","sources":["../../../src/utils/ContextSqueezer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextSqueezer.d.ts","sourceRoot":"","sources":["../../../src/utils/ContextSqueezer.ts"],"names":[],"mappings":"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"}
@@ -146,15 +146,169 @@ export function stripComments(code, options = {}) {
146
146
  return out;
147
147
  }
148
148
  /**
149
- * Compress code structure by removing redundant whitespace and blank lines
149
+ * [start, end) ranges of the string, template and Python triple-quoted literals in `code`.
150
+ *
151
+ * Whitespace compaction and import stripping work on lines and runs of spaces, so without this they
152
+ * rewrote the inside of a SQL string, a prompt template or a doc string (measured: 54 of 246 files in
153
+ * this repo changed that way) and removed an `import` line that lived inside a template literal.
154
+ * Comments and regex literals are stepped over so a quote or backtick inside one does not open a
155
+ * literal; a quoted string that does not close ends at its line, a template at the end of the input.
156
+ */
157
+ export function findStringLiterals(code) {
158
+ const n = code.length;
159
+ const ranges = [];
160
+ let i = 0;
161
+ let last = ''; // last significant (non-space) char outside literals and comments, for the regex test
162
+ const scanQuoted = (quote) => {
163
+ i++;
164
+ while (i < n) {
165
+ const ch = code[i];
166
+ if (ch === '\\') {
167
+ i += 2;
168
+ continue;
169
+ }
170
+ if (ch === '\n')
171
+ return;
172
+ i++;
173
+ if (ch === quote)
174
+ return;
175
+ }
176
+ };
177
+ const scanTemplate = () => {
178
+ i++; // opening backtick
179
+ while (i < n) {
180
+ const ch = code[i];
181
+ if (ch === '\\') {
182
+ i += 2;
183
+ continue;
184
+ }
185
+ if (ch === '`') {
186
+ i++;
187
+ return;
188
+ }
189
+ if (ch === '$' && code[i + 1] === '{') {
190
+ i += 2;
191
+ let depth = 1;
192
+ while (i < n && depth > 0) {
193
+ const e = code[i];
194
+ if (e === '`') {
195
+ scanTemplate();
196
+ continue;
197
+ }
198
+ if (e === '"' || e === "'") {
199
+ scanQuoted(e);
200
+ continue;
201
+ }
202
+ if (e === '{')
203
+ depth++;
204
+ else if (e === '}')
205
+ depth--;
206
+ i++;
207
+ }
208
+ continue;
209
+ }
210
+ i++;
211
+ }
212
+ };
213
+ const regexAllowed = () => last === '' || '(,=:[!&|?{};+-*%<>~^'.includes(last);
214
+ while (i < n) {
215
+ const c = code[i];
216
+ const d = code[i + 1];
217
+ const start = i;
218
+ if (c === '"' || c === "'") {
219
+ if (code.startsWith(c.repeat(3), i)) {
220
+ const close = code.indexOf(c.repeat(3), i + 3);
221
+ i = close === -1 ? n : close + 3;
222
+ }
223
+ else {
224
+ scanQuoted(c);
225
+ }
226
+ ranges.push([start, i]);
227
+ last = c;
228
+ }
229
+ else if (c === '`') {
230
+ scanTemplate();
231
+ ranges.push([start, i]);
232
+ last = c;
233
+ }
234
+ else if (c === '/' && d === '*') {
235
+ const end = code.indexOf('*/', i + 2);
236
+ i = end === -1 ? n : end + 2;
237
+ }
238
+ else if (c === '/' && d === '/' && code[i - 1] !== ':') {
239
+ while (i < n && code[i] !== '\n')
240
+ i++;
241
+ }
242
+ else if (c === '/' && regexAllowed()) {
243
+ // A regex literal closes on its own line; if it does not, the '/' was a division.
244
+ let j = i + 1;
245
+ let inClass = false;
246
+ let closed = false;
247
+ while (j < n && code[j] !== '\n') {
248
+ const ch = code[j];
249
+ if (ch === '\\') {
250
+ j += 2;
251
+ continue;
252
+ }
253
+ if (ch === '[')
254
+ inClass = true;
255
+ else if (ch === ']')
256
+ inClass = false;
257
+ else if (ch === '/' && !inClass) {
258
+ closed = true;
259
+ break;
260
+ }
261
+ j++;
262
+ }
263
+ if (closed) {
264
+ i = j + 1;
265
+ last = '/';
266
+ }
267
+ else {
268
+ i++;
269
+ last = c;
270
+ }
271
+ }
272
+ else {
273
+ if (!/\s/.test(c))
274
+ last = c;
275
+ i++;
276
+ }
277
+ }
278
+ return ranges;
279
+ }
280
+ const LITERAL_OPEN = '';
281
+ const LITERAL_CLOSE = '';
282
+ /**
283
+ * Compress code structure by removing redundant whitespace and blank lines.
284
+ *
285
+ * Indentation and runs of spaces collapse; what sits inside a string or template literal does not.
150
286
  */
151
287
  export function compactWhitespace(code) {
152
- return code
288
+ const compact = (text) => text
153
289
  .split('\n')
154
290
  .map(line => line.trimEnd()) // Trim trailing spaces
155
291
  .filter(line => line.trim().length > 0) // Remove empty lines
156
292
  .join('\n')
157
293
  .replace(/[ \t]+/g, ' '); // Collapse multiple spaces/tabs into a single space
294
+ // Only literals that compaction would actually change need protecting.
295
+ const fragile = findStringLiterals(code).filter(([s, e]) => /[ \t]{2}|\t|\n/.test(code.slice(s, e)));
296
+ if (fragile.length === 0)
297
+ return compact(code);
298
+ // The placeholder alphabet must be free in the input, or restoring could rewrite real text.
299
+ if (code.includes(LITERAL_OPEN) || code.includes(LITERAL_CLOSE)) {
300
+ return code.split('\n').map(line => line.trimEnd()).filter(line => line.trim().length > 0).join('\n');
301
+ }
302
+ const kept = [];
303
+ let masked = '';
304
+ let at = 0;
305
+ for (const [s, e] of fragile) {
306
+ masked += code.slice(at, s) + LITERAL_OPEN + kept.length + LITERAL_CLOSE;
307
+ kept.push(code.slice(s, e));
308
+ at = e;
309
+ }
310
+ masked += code.slice(at);
311
+ return compact(masked).replace(new RegExp(`${LITERAL_OPEN}(\\d+)${LITERAL_CLOSE}`, 'g'), (_m, idx) => kept[Number(idx)]);
158
312
  }
159
313
  export function detectFunctionDeclaration(context) {
160
314
  // Normalize whitespaces
@@ -609,9 +763,27 @@ export function stripImports(code, markerPrefix = '//') {
609
763
  // understand, so keep the line rather than risk deleting real code.
610
764
  const MAX_IMPORT_LINES = 40;
611
765
  const processedLines = [];
766
+ // Lines that begin inside a multi-line template or docstring are text, not statements.
767
+ const insideLiteral = new Set();
768
+ if (code.includes('`') || code.includes('"""') || code.includes("'''")) {
769
+ const lineStarts = [];
770
+ let off = 0;
771
+ for (const l of lines) {
772
+ lineStarts.push(off);
773
+ off += l.length + 1;
774
+ }
775
+ for (const [s, e] of findStringLiterals(code)) {
776
+ for (let k = 0; k < lineStarts.length; k++) {
777
+ if (lineStarts[k] > s && lineStarts[k] <= e)
778
+ insideLiteral.add(k);
779
+ }
780
+ }
781
+ }
612
782
  for (let i = 0; i < lines.length; i++) {
613
783
  const trimmed = lines[i].trim();
614
- if (!isImportLine(trimmed)) {
784
+ // Only a statement at the start of its line is a module import. An indented `require(...)` is a
785
+ // lazy one inside a function, and listing away its binding hid what the function depends on.
786
+ if (insideLiteral.has(i) || /^\s/.test(lines[i]) || !isImportLine(trimmed)) {
615
787
  processedLines.push(lines[i]);
616
788
  continue;
617
789
  }