purecontext-mcp 1.5.2 → 1.11.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 (196) hide show
  1. package/AGENT_INSTRUCTIONS.md +18 -10
  2. package/AGENT_REFERENCE.md +684 -561
  3. package/CHANGELOG.md +567 -445
  4. package/CODE-HISTORY.md +29 -1
  5. package/FRAMEWORK-ADAPTERS.md +368 -351
  6. package/FULL-INSTALLATION-GUIDE.md +351 -341
  7. package/README.md +411 -339
  8. package/REFACTORING-SAFELY.md +338 -279
  9. package/SAFE-CHANGES.md +208 -156
  10. package/USER-GUIDE.md +3 -1
  11. package/WHY-PURECONTEXT.md +103 -73
  12. package/WORKFLOW-PR-REVIEW.md +245 -199
  13. package/dist/adapters/astro-preprocessor.d.ts +25 -0
  14. package/dist/adapters/astro-preprocessor.d.ts.map +1 -0
  15. package/dist/adapters/astro-preprocessor.js +50 -0
  16. package/dist/adapters/astro-preprocessor.js.map +1 -0
  17. package/dist/adapters/astro.d.ts +13 -0
  18. package/dist/adapters/astro.d.ts.map +1 -0
  19. package/dist/adapters/astro.js +83 -0
  20. package/dist/adapters/astro.js.map +1 -0
  21. package/dist/adapters/detect-utils.d.ts +38 -0
  22. package/dist/adapters/detect-utils.d.ts.map +1 -0
  23. package/dist/adapters/detect-utils.js +95 -0
  24. package/dist/adapters/detect-utils.js.map +1 -0
  25. package/dist/adapters/nuxt.d.ts +20 -0
  26. package/dist/adapters/nuxt.d.ts.map +1 -1
  27. package/dist/adapters/nuxt.js +128 -13
  28. package/dist/adapters/nuxt.js.map +1 -1
  29. package/dist/adapters/svelte-preprocessor.d.ts +29 -0
  30. package/dist/adapters/svelte-preprocessor.d.ts.map +1 -0
  31. package/dist/adapters/svelte-preprocessor.js +83 -0
  32. package/dist/adapters/svelte-preprocessor.js.map +1 -0
  33. package/dist/adapters/svelte.d.ts +13 -0
  34. package/dist/adapters/svelte.d.ts.map +1 -0
  35. package/dist/adapters/svelte.js +96 -0
  36. package/dist/adapters/svelte.js.map +1 -0
  37. package/dist/adapters/vue.d.ts.map +1 -1
  38. package/dist/adapters/vue.js +87 -20
  39. package/dist/adapters/vue.js.map +1 -1
  40. package/dist/bin.d.ts +16 -0
  41. package/dist/bin.d.ts.map +1 -0
  42. package/dist/bin.js +21 -0
  43. package/dist/bin.js.map +1 -0
  44. package/dist/cli/hooks.d.ts +2 -2
  45. package/dist/cli/hooks.d.ts.map +1 -1
  46. package/dist/cli/hooks.js +123 -135
  47. package/dist/cli/hooks.js.map +1 -1
  48. package/dist/cli/install-writers.d.ts.map +1 -1
  49. package/dist/cli/install-writers.js +281 -36
  50. package/dist/cli/install-writers.js.map +1 -1
  51. package/dist/cli/resolve-node.d.ts +53 -0
  52. package/dist/cli/resolve-node.d.ts.map +1 -0
  53. package/dist/cli/resolve-node.js +84 -0
  54. package/dist/cli/resolve-node.js.map +1 -0
  55. package/dist/config/config-loader.js +24 -0
  56. package/dist/config/config-loader.js.map +1 -1
  57. package/dist/config/config-schema.d.ts +71 -0
  58. package/dist/config/config-schema.d.ts.map +1 -1
  59. package/dist/config/config-schema.js +102 -0
  60. package/dist/config/config-schema.js.map +1 -1
  61. package/dist/core/db/api-keys.d.ts +1 -1
  62. package/dist/core/db/api-keys.d.ts.map +1 -1
  63. package/dist/core/db/api-keys.js +39 -39
  64. package/dist/core/db/api-keys.js.map +1 -1
  65. package/dist/core/db/co-change-store.d.ts +34 -0
  66. package/dist/core/db/co-change-store.d.ts.map +1 -0
  67. package/dist/core/db/co-change-store.js +78 -0
  68. package/dist/core/db/co-change-store.js.map +1 -0
  69. package/dist/core/db/schema.d.ts +3 -3
  70. package/dist/core/db/schema.d.ts.map +1 -1
  71. package/dist/core/db/schema.js +12 -30
  72. package/dist/core/db/schema.js.map +1 -1
  73. package/dist/core/db/sqlite-loader.d.ts +51 -0
  74. package/dist/core/db/sqlite-loader.d.ts.map +1 -0
  75. package/dist/core/db/sqlite-loader.js +94 -0
  76. package/dist/core/db/sqlite-loader.js.map +1 -0
  77. package/dist/core/db/wasm-sqlite.d.ts +4 -0
  78. package/dist/core/db/wasm-sqlite.d.ts.map +1 -0
  79. package/dist/core/db/wasm-sqlite.js +270 -0
  80. package/dist/core/db/wasm-sqlite.js.map +1 -0
  81. package/dist/core/diff-parser.d.ts.map +1 -1
  82. package/dist/core/diff-parser.js +6 -1
  83. package/dist/core/diff-parser.js.map +1 -1
  84. package/dist/core/git-log-reader.d.ts +28 -0
  85. package/dist/core/git-log-reader.d.ts.map +1 -1
  86. package/dist/core/git-log-reader.js +74 -3
  87. package/dist/core/git-log-reader.js.map +1 -1
  88. package/dist/core/index-manager.d.ts.map +1 -1
  89. package/dist/core/index-manager.js +29 -3
  90. package/dist/core/index-manager.js.map +1 -1
  91. package/dist/core/indexing-worker.d.ts +2 -0
  92. package/dist/core/indexing-worker.d.ts.map +1 -1
  93. package/dist/core/indexing-worker.js +2 -0
  94. package/dist/core/indexing-worker.js.map +1 -1
  95. package/dist/core/watcher/file-watcher.d.ts +6 -0
  96. package/dist/core/watcher/file-watcher.d.ts.map +1 -1
  97. package/dist/core/watcher/file-watcher.js +11 -1
  98. package/dist/core/watcher/file-watcher.js.map +1 -1
  99. package/dist/graph/path-resolver.js +86 -17
  100. package/dist/graph/path-resolver.js.map +1 -1
  101. package/dist/index.d.ts +3 -0
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +11 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/node-guard.d.ts +15 -0
  106. package/dist/node-guard.d.ts.map +1 -0
  107. package/dist/node-guard.js +33 -0
  108. package/dist/node-guard.js.map +1 -0
  109. package/dist/server/admin-api.d.ts +1 -1
  110. package/dist/server/admin-api.d.ts.map +1 -1
  111. package/dist/server/admin-api.js +2 -2
  112. package/dist/server/admin-api.js.map +1 -1
  113. package/dist/server/auth/api-key.d.ts +1 -1
  114. package/dist/server/auth/api-key.d.ts.map +1 -1
  115. package/dist/server/mcp-server.d.ts.map +1 -1
  116. package/dist/server/mcp-server.js +25 -0
  117. package/dist/server/mcp-server.js.map +1 -1
  118. package/dist/server/tools/analyze-diff.d.ts +8 -0
  119. package/dist/server/tools/analyze-diff.d.ts.map +1 -1
  120. package/dist/server/tools/analyze-diff.js +80 -16
  121. package/dist/server/tools/analyze-diff.js.map +1 -1
  122. package/dist/server/tools/change-synthesis.d.ts +90 -0
  123. package/dist/server/tools/change-synthesis.d.ts.map +1 -0
  124. package/dist/server/tools/change-synthesis.js +236 -0
  125. package/dist/server/tools/change-synthesis.js.map +1 -0
  126. package/dist/server/tools/co-change.d.ts +65 -0
  127. package/dist/server/tools/co-change.d.ts.map +1 -0
  128. package/dist/server/tools/co-change.js +146 -0
  129. package/dist/server/tools/co-change.js.map +1 -0
  130. package/dist/server/tools/compare-change-impact.d.ts +58 -0
  131. package/dist/server/tools/compare-change-impact.d.ts.map +1 -0
  132. package/dist/server/tools/compare-change-impact.js +0 -0
  133. package/dist/server/tools/compare-change-impact.js.map +1 -0
  134. package/dist/server/tools/find-refactoring-opportunities.d.ts +1 -1
  135. package/dist/server/tools/get-architecture-snapshot.d.ts.map +1 -1
  136. package/dist/server/tools/get-architecture-snapshot.js +28 -14
  137. package/dist/server/tools/get-architecture-snapshot.js.map +1 -1
  138. package/dist/server/tools/get-churn-metrics.d.ts.map +1 -1
  139. package/dist/server/tools/get-churn-metrics.js +1 -12
  140. package/dist/server/tools/get-churn-metrics.js.map +1 -1
  141. package/dist/server/tools/get-co-change.d.ts +37 -0
  142. package/dist/server/tools/get-co-change.d.ts.map +1 -0
  143. package/dist/server/tools/get-co-change.js +120 -0
  144. package/dist/server/tools/get-co-change.js.map +1 -0
  145. package/dist/server/tools/get-context-bundle.d.ts.map +1 -1
  146. package/dist/server/tools/get-context-bundle.js +56 -3
  147. package/dist/server/tools/get-context-bundle.js.map +1 -1
  148. package/dist/server/tools/get-entry-points.d.ts +1 -1
  149. package/dist/server/tools/get-symbol-risk.d.ts +25 -0
  150. package/dist/server/tools/get-symbol-risk.d.ts.map +1 -0
  151. package/dist/server/tools/get-symbol-risk.js +60 -0
  152. package/dist/server/tools/get-symbol-risk.js.map +1 -0
  153. package/dist/server/tools/get-symbol-source.d.ts +2 -0
  154. package/dist/server/tools/get-symbol-source.d.ts.map +1 -1
  155. package/dist/server/tools/get-symbol-source.js +18 -1
  156. package/dist/server/tools/get-symbol-source.js.map +1 -1
  157. package/dist/server/tools/index-repo.d.ts.map +1 -1
  158. package/dist/server/tools/index-repo.js +8 -2
  159. package/dist/server/tools/index-repo.js.map +1 -1
  160. package/dist/server/tools/prepare-change.d.ts +61 -0
  161. package/dist/server/tools/prepare-change.d.ts.map +1 -0
  162. package/dist/server/tools/prepare-change.js +262 -0
  163. package/dist/server/tools/prepare-change.js.map +1 -0
  164. package/dist/server/tools/search-symbols.d.ts +2 -0
  165. package/dist/server/tools/search-symbols.d.ts.map +1 -1
  166. package/dist/server/tools/search-symbols.js +33 -0
  167. package/dist/server/tools/search-symbols.js.map +1 -1
  168. package/dist/server/tools/symbol-lines.d.ts +25 -0
  169. package/dist/server/tools/symbol-lines.d.ts.map +1 -0
  170. package/dist/server/tools/symbol-lines.js +40 -0
  171. package/dist/server/tools/symbol-lines.js.map +1 -0
  172. package/dist/server/tools/symbol-risk.d.ts +109 -0
  173. package/dist/server/tools/symbol-risk.d.ts.map +1 -0
  174. package/dist/server/tools/symbol-risk.js +251 -0
  175. package/dist/server/tools/symbol-risk.js.map +1 -0
  176. package/dist/server/tools/verify-change.d.ts +40 -0
  177. package/dist/server/tools/verify-change.d.ts.map +1 -0
  178. package/dist/server/tools/verify-change.js +149 -0
  179. package/dist/server/tools/verify-change.js.map +1 -0
  180. package/dist/version.d.ts +1 -1
  181. package/dist/version.d.ts.map +1 -1
  182. package/dist/version.js +1 -1
  183. package/dist/version.js.map +1 -1
  184. package/docs/01-introduction.md +2 -2
  185. package/docs/02-installation.md +97 -89
  186. package/docs/03-quick-start.md +138 -135
  187. package/docs/04-configuration.md +247 -214
  188. package/docs/05-cli-reference.md +236 -219
  189. package/docs/06-tools-reference.md +902 -499
  190. package/docs/14-transport-modes.md +170 -167
  191. package/docs/18-git-history.md +43 -0
  192. package/docs/23-performance.md +123 -121
  193. package/docs/26-troubleshooting.md +249 -234
  194. package/grammars/README.md +88 -0
  195. package/package.json +7 -25
  196. package/AGENT_INSTRUCTIONS_SHORT.md +0 -150
@@ -1,7 +1,7 @@
1
1
  import type { RepoMetadata } from '../types.js';
2
- import type _BetterSqlite3 from 'better-sqlite3';
3
- type DatabaseConstructor = typeof _BetterSqlite3;
4
- export declare const SCHEMA_VERSION = 7;
2
+ import { type SqliteDatabase } from './sqlite-loader.js';
3
+ type DatabaseConstructor = new (filename: string) => SqliteDatabase;
4
+ export declare const SCHEMA_VERSION = 8;
5
5
  export declare function computeRepoId(absolutePath: string): string;
6
6
  export declare function getIndexDir(): string;
7
7
  export declare function openDatabase(repoId: string, indexDir?: string): InstanceType<DatabaseConstructor>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/db/schema.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,OAAO,KAAK,cAAc,MAAM,gBAAgB,CAAC;AACjD,KAAK,mBAAmB,GAAG,OAAO,cAAc,CAAC;AAoBjD,eAAO,MAAM,cAAc,IAAI,CAAC;AA+HhC,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAOjG;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAKxE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAW9E;AA6KD,wBAAgB,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAwB1F;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAKlG;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,GAAG,YAAY,EAAE,CAE/E;AAgCD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EACrC,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAKf"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/db/schema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAO3E,KAAK,mBAAmB,GAAG,KAAK,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;AAEpE,eAAO,MAAM,cAAc,IAAI,CAAC;AA+HhC,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAMjG;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAAC,mBAAmB,CAAC,CAIxE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAY9E;AAoLD,wBAAgB,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAwB1F;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAKlG;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,GAAG,YAAY,EAAE,CAE/E;AAgCD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,CAAC,mBAAmB,CAAC,EACrC,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAKf"}
@@ -1,34 +1,11 @@
1
- import { createRequire } from 'module';
2
1
  import { createHash } from 'crypto';
3
2
  import { mkdirSync } from 'fs';
4
3
  import { homedir } from 'os';
5
4
  import { join } from 'path';
6
5
  import { EMBEDDINGS_DDL } from './embedding-store.js';
7
- import { NativeDependencyError } from '../errors.js';
8
- // ─── Lazy-load better-sqlite3 ─────────────────────────────────────────────────
9
- // We defer the native-addon load so any binary mismatch throws a
10
- // NativeDependencyError (with an actionable user message) rather than an
11
- // opaque module-load crash.
12
- const _require = createRequire(import.meta.url);
13
- let _Database = null;
14
- let _dbLoadError = null;
15
- let _dbLoaded = false;
16
- function getDatabase() {
17
- if (!_dbLoaded) {
18
- try {
19
- _Database = _require('better-sqlite3');
20
- }
21
- catch (err) {
22
- _dbLoadError = err;
23
- }
24
- _dbLoaded = true;
25
- }
26
- if (_dbLoadError !== null || _Database === null) {
27
- throw new NativeDependencyError(_dbLoadError);
28
- }
29
- return _Database;
30
- }
31
- export const SCHEMA_VERSION = 7;
6
+ import { CO_CHANGE_DDL } from './co-change-store.js';
7
+ import { getSqliteFactory } from './sqlite-loader.js';
8
+ export const SCHEMA_VERSION = 8;
32
9
  const DDL = `
33
10
  PRAGMA journal_mode = WAL;
34
11
  PRAGMA foreign_keys = ON;
@@ -162,22 +139,21 @@ export function getIndexDir() {
162
139
  return join(homedir(), '.purecontext', 'indexes');
163
140
  }
164
141
  export function openDatabase(repoId, indexDir) {
165
- const DB = getDatabase();
166
142
  const dir = indexDir ?? getIndexDir();
167
143
  mkdirSync(dir, { recursive: true });
168
- const db = new DB(join(dir, `${repoId}.db`));
144
+ const db = getSqliteFactory().open(join(dir, `${repoId}.db`));
169
145
  initializeDatabase(db);
170
146
  return db;
171
147
  }
172
148
  export function openInMemoryDatabase() {
173
- const DB = getDatabase();
174
- const db = new DB(':memory:');
149
+ const db = getSqliteFactory().open(':memory:');
175
150
  initializeDatabase(db);
176
151
  return db;
177
152
  }
178
153
  export function initializeDatabase(db) {
179
154
  db.exec(DDL);
180
155
  db.exec(EMBEDDINGS_DDL);
156
+ db.exec(CO_CHANGE_DDL);
181
157
  runMigrations(db);
182
158
  // Ensure source column exists — added after v7, using try-catch for existing DBs
183
159
  // (SQLite does not support ALTER TABLE ... ADD COLUMN IF NOT EXISTS)
@@ -336,6 +312,12 @@ function runMigrations(db) {
336
312
  db.exec('ALTER TABLE symbols ADD COLUMN nesting_depth INTEGER');
337
313
  }
338
314
  }
315
+ // Migration v7 → v8: add commit_files table for repo-level co-change capture.
316
+ // Additive — the table is created by CO_CHANGE_DDL (IF NOT EXISTS) in
317
+ // initializeDatabase; old indexes load without re-indexing.
318
+ if (dbVersion < 8) {
319
+ db.exec(CO_CHANGE_DDL);
320
+ }
339
321
  }
340
322
  // ─── Repo operations ──────────────────────────────────────────────────────────
341
323
  export function upsertRepo(db, meta) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/db/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type BetterSqlite3 from 'better-sqlite3';
2
+ /**
3
+ * SQLite backend loader.
4
+ *
5
+ * PureContext stores its index in SQLite. The default engine is the native
6
+ * `better-sqlite3` addon, which is fast but ABI-bound: a prebuilt binary only
7
+ * loads under the Node version (NODE_MODULE_VERSION) it was built for. We ship
8
+ * prebuilds for Node 18/20/22, so on any other Node — or if the prebuild fails
9
+ * to load for any reason — we fall back to a pure-WASM SQLite build that is
10
+ * ABI-independent and runs on any Node >= 18.
11
+ *
12
+ * Tiers (best first):
13
+ * 1. better-sqlite3 — native, fastest, when a matching prebuild loads
14
+ * 2. @sqlite.org/sqlite-wasm — WASM fallback, FTS5-capable, any Node/ABI
15
+ *
16
+ * The WASM engine needs async initialisation, so call `initSqliteBackend()`
17
+ * once during startup (bootstrap). After that, `getSqliteFactory()` is sync and
18
+ * usable from any code path. The returned databases are structurally
19
+ * compatible with the subset of the better-sqlite3 API the codebase uses, so
20
+ * call sites keep their `Database.Database` types unchanged.
21
+ */
22
+ export type SqliteDatabase = BetterSqlite3.Database;
23
+ export type SqliteBackendKind = 'better-sqlite3' | 'wasm';
24
+ export interface SqliteOpenOptions {
25
+ /** Open the database read-only (no writes / no persistence flush). */
26
+ readonly?: boolean;
27
+ }
28
+ export interface SqliteFactory {
29
+ /** Open (or create) a database at `filename`, or an in-memory DB for ':memory:'. */
30
+ open(filename: string, options?: SqliteOpenOptions): SqliteDatabase;
31
+ /** Which engine backs this factory — for diagnostics/telemetry. */
32
+ readonly backend: SqliteBackendKind;
33
+ }
34
+ /**
35
+ * Initialise the SQLite backend, selecting the best available engine. Call once
36
+ * during startup. Safe to call multiple times (memoised). Async because the
37
+ * WASM fallback requires async module init.
38
+ */
39
+ export declare function initSqliteBackend(): Promise<SqliteFactory>;
40
+ /**
41
+ * Get the selected SQLite factory. If `initSqliteBackend()` has not run yet,
42
+ * this performs a synchronous native-only init (back-compat for code paths that
43
+ * open a database before bootstrap). The WASM fallback is only reachable via
44
+ * the async `initSqliteBackend()`.
45
+ */
46
+ export declare function getSqliteFactory(): SqliteFactory;
47
+ /** Test-only: inject a specific factory (e.g. force WASM) without env/global state. */
48
+ export declare function _setSqliteFactoryForTests(factory: SqliteFactory): void;
49
+ /** Test-only: reset memoised state so a different backend can be selected. */
50
+ export declare function _resetSqliteBackendForTests(): void;
51
+ //# sourceMappingURL=sqlite-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-loader.d.ts","sourceRoot":"","sources":["../../../src/core/db/sqlite-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAIhD;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IACpE,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC;AA0CD;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CAsBhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAehD;AAED,uFAAuF;AACvF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAEtE;AAED,8EAA8E;AAC9E,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD"}
@@ -0,0 +1,94 @@
1
+ import { createRequire } from 'module';
2
+ import { NativeDependencyError } from '../errors.js';
3
+ import { logger } from '../logger.js';
4
+ const _require = createRequire(import.meta.url);
5
+ let _factory = null;
6
+ let _lastLoadError = null;
7
+ // ─── Tier 1: native better-sqlite3 ──────────────────────────────────────────
8
+ function tryLoadNative() {
9
+ try {
10
+ const Database = _require('better-sqlite3');
11
+ // require() only loads better-sqlite3's JS wrapper; the native .node addon
12
+ // is loaded lazily on the first `new Database()`, which is where an ABI
13
+ // mismatch (wrong NODE_MODULE_VERSION) actually throws. Force that load now
14
+ // with a throwaway in-memory DB so a mismatch surfaces here and we fall
15
+ // back to WASM — rather than committing to native and crashing at open().
16
+ new Database(':memory:').close();
17
+ return {
18
+ backend: 'better-sqlite3',
19
+ open(filename, options) {
20
+ // better-sqlite3 rejects readonly for ':memory:' — only pass it for files.
21
+ if (options?.readonly && filename !== ':memory:') {
22
+ return new Database(filename, { readonly: true });
23
+ }
24
+ return new Database(filename);
25
+ },
26
+ };
27
+ }
28
+ catch (err) {
29
+ _lastLoadError = err;
30
+ return null;
31
+ }
32
+ }
33
+ /** Returns true when the WASM backend is explicitly requested via env. */
34
+ function wasmForced() {
35
+ const v = process.env['PCTX_SQLITE_BACKEND'];
36
+ return v === 'wasm' || process.env['PCTX_FORCE_WASM'] === '1';
37
+ }
38
+ // ─── Public API ─────────────────────────────────────────────────────────────
39
+ /**
40
+ * Initialise the SQLite backend, selecting the best available engine. Call once
41
+ * during startup. Safe to call multiple times (memoised). Async because the
42
+ * WASM fallback requires async module init.
43
+ */
44
+ export async function initSqliteBackend() {
45
+ if (_factory)
46
+ return _factory;
47
+ // Tier 1 — native (fast path), unless WASM is explicitly forced.
48
+ if (!wasmForced()) {
49
+ const native = tryLoadNative();
50
+ if (native) {
51
+ _factory = native;
52
+ logger.debug('SQLite backend: better-sqlite3 (native)');
53
+ return _factory;
54
+ }
55
+ logger.warn('better-sqlite3 native addon unavailable for this Node version; ' +
56
+ 'falling back to WASM SQLite (slower, but ABI-independent)');
57
+ }
58
+ // Tier 2 — WASM fallback. ABI-independent; runs on any Node >= 18.
59
+ const { createWasmFactory } = await import('./wasm-sqlite.js');
60
+ _factory = await createWasmFactory();
61
+ logger.info('SQLite backend: WASM (@sqlite.org/sqlite-wasm)');
62
+ return _factory;
63
+ }
64
+ /**
65
+ * Get the selected SQLite factory. If `initSqliteBackend()` has not run yet,
66
+ * this performs a synchronous native-only init (back-compat for code paths that
67
+ * open a database before bootstrap). The WASM fallback is only reachable via
68
+ * the async `initSqliteBackend()`.
69
+ */
70
+ export function getSqliteFactory() {
71
+ if (_factory)
72
+ return _factory;
73
+ // Sync path: native only. The WASM backend needs async init, so if it is
74
+ // forced or native is unavailable, the caller must have run
75
+ // `initSqliteBackend()` first.
76
+ if (!wasmForced()) {
77
+ const native = tryLoadNative();
78
+ if (native) {
79
+ _factory = native;
80
+ return _factory;
81
+ }
82
+ }
83
+ throw new NativeDependencyError(_lastLoadError);
84
+ }
85
+ /** Test-only: inject a specific factory (e.g. force WASM) without env/global state. */
86
+ export function _setSqliteFactoryForTests(factory) {
87
+ _factory = factory;
88
+ }
89
+ /** Test-only: reset memoised state so a different backend can be selected. */
90
+ export function _resetSqliteBackendForTests() {
91
+ _factory = null;
92
+ _lastLoadError = null;
93
+ }
94
+ //# sourceMappingURL=sqlite-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-loader.js","sourceRoot":"","sources":["../../../src/core/db/sqlite-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SqliteFactory } from './sqlite-loader.js';
2
+ /** Initialise the wasm module once and return a factory backed by it. */
3
+ export declare function createWasmFactory(): Promise<SqliteFactory>;
4
+ //# sourceMappingURL=wasm-sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-sqlite.d.ts","sourceRoot":"","sources":["../../../src/core/db/wasm-sqlite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAkB,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAmE3F,yEAAyE;AACzE,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CAchE"}
@@ -0,0 +1,270 @@
1
+ import { existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from 'fs';
2
+ import { dirname } from 'path';
3
+ import { Buffer } from 'node:buffer';
4
+ import { logger } from '../logger.js';
5
+ let _sqlite3 = null;
6
+ /** Initialise the wasm module once and return a factory backed by it. */
7
+ export async function createWasmFactory() {
8
+ if (!_sqlite3) {
9
+ const mod = (await import('@sqlite.org/sqlite-wasm'));
10
+ _sqlite3 = await mod.default();
11
+ }
12
+ const sqlite3 = _sqlite3;
13
+ return {
14
+ backend: 'wasm',
15
+ open(filename, options) {
16
+ return new WasmDatabase(sqlite3, filename, options?.readonly ?? false);
17
+ },
18
+ };
19
+ }
20
+ // ─── Value conversion ─────────────────────────────────────────────────────────
21
+ function isNamedBindObject(args) {
22
+ if (args.length !== 1)
23
+ return false;
24
+ const v = args[0];
25
+ return (typeof v === 'object' &&
26
+ v !== null &&
27
+ !Array.isArray(v) &&
28
+ !ArrayBuffer.isView(v) // excludes Buffer / Uint8Array / typed arrays
29
+ );
30
+ }
31
+ /** Normalise a value for binding (mirror better-sqlite3 leniency we rely on). */
32
+ function normIn(value) {
33
+ if (value === undefined)
34
+ return null;
35
+ if (typeof value === 'boolean')
36
+ return value ? 1 : 0;
37
+ // Buffer is a Uint8Array subclass; sqlite-wasm binds Uint8Array as a BLOB.
38
+ return value;
39
+ }
40
+ /** Convert an out value: BLOBs come back as Uint8Array; expose as Buffer. */
41
+ function normOut(value) {
42
+ if (value instanceof Uint8Array)
43
+ return Buffer.from(value);
44
+ return value;
45
+ }
46
+ // ─── Statement wrapper ──────────────────────────────────────────────────────
47
+ class WasmStatement {
48
+ owner;
49
+ sql;
50
+ stmt = null;
51
+ /** Cached 1-based bind index -> object key for named params; null until compiled. */
52
+ namedPlan = null;
53
+ columnNames = null;
54
+ constructor(owner, sql) {
55
+ this.owner = owner;
56
+ this.sql = sql;
57
+ }
58
+ compile() {
59
+ if (!this.stmt) {
60
+ this.stmt = this.owner.rawDb.prepare(this.sql);
61
+ this.owner.trackStatement(this.stmt);
62
+ const capi = this.owner.sqlite3.capi;
63
+ const count = capi.sqlite3_bind_parameter_count(this.stmt.pointer);
64
+ const plan = [];
65
+ for (let i = 1; i <= count; i++) {
66
+ const name = capi.sqlite3_bind_parameter_name(this.stmt.pointer, i);
67
+ // name is like "@id"/":id"/"$id" for named params, null for positional "?"
68
+ if (name)
69
+ plan.push({ index: i, key: name.slice(1) });
70
+ }
71
+ this.namedPlan = plan;
72
+ }
73
+ return this.stmt;
74
+ }
75
+ bindArgs(stmt, args) {
76
+ if (isNamedBindObject(args)) {
77
+ const obj = args[0];
78
+ for (const { index, key } of this.namedPlan ?? []) {
79
+ stmt.bind(index, normIn(obj[key]));
80
+ }
81
+ }
82
+ else {
83
+ for (let i = 0; i < args.length; i++)
84
+ stmt.bind(i + 1, normIn(args[i]));
85
+ }
86
+ }
87
+ readRow(stmt) {
88
+ if (!this.columnNames)
89
+ this.columnNames = stmt.getColumnNames();
90
+ const row = {};
91
+ for (let i = 0; i < this.columnNames.length; i++) {
92
+ row[this.columnNames[i]] = normOut(stmt.get(i));
93
+ }
94
+ return row;
95
+ }
96
+ run(...args) {
97
+ const stmt = this.compile();
98
+ try {
99
+ this.bindArgs(stmt, args);
100
+ stmt.step();
101
+ const changes = this.owner.rawDb.changes();
102
+ const lastInsertRowid = this.owner.sqlite3.capi.sqlite3_last_insert_rowid(this.owner.rawDb.pointer);
103
+ this.owner.markDirty();
104
+ return { changes: Number(changes), lastInsertRowid };
105
+ }
106
+ finally {
107
+ stmt.reset(true);
108
+ }
109
+ }
110
+ get(...args) {
111
+ const stmt = this.compile();
112
+ try {
113
+ this.bindArgs(stmt, args);
114
+ if (!stmt.step())
115
+ return undefined;
116
+ return this.readRow(stmt);
117
+ }
118
+ finally {
119
+ stmt.reset(true);
120
+ }
121
+ }
122
+ all(...args) {
123
+ const stmt = this.compile();
124
+ try {
125
+ this.bindArgs(stmt, args);
126
+ const rows = [];
127
+ while (stmt.step())
128
+ rows.push(this.readRow(stmt));
129
+ return rows;
130
+ }
131
+ finally {
132
+ stmt.reset(true);
133
+ }
134
+ }
135
+ }
136
+ // ─── Database wrapper ─────────────────────────────────────────────────────────
137
+ class WasmDatabase {
138
+ sqlite3;
139
+ filename;
140
+ readonly_;
141
+ rawDb;
142
+ persistent;
143
+ statements = new Set();
144
+ dirty = false;
145
+ txnDepth = 0;
146
+ flushTimer = null;
147
+ closed = false;
148
+ constructor(sqlite3, filename, readonly_) {
149
+ this.sqlite3 = sqlite3;
150
+ this.filename = filename;
151
+ this.readonly_ = readonly_;
152
+ this.persistent = !!filename && filename !== ':memory:';
153
+ this.rawDb = new sqlite3.oo1.DB(':memory:');
154
+ if (this.persistent && existsSync(filename) && statSync(filename).size > 0) {
155
+ this.deserializeFrom(readFileSync(filename));
156
+ }
157
+ }
158
+ deserializeFrom(buf) {
159
+ const { capi, wasm } = this.sqlite3;
160
+ // allocFromTypedArray needs a plain Uint8Array — a Node Buffer (a Uint8Array
161
+ // subclass) trips its element-size detection. Copy into a clean Uint8Array.
162
+ const bytes = Uint8Array.from(buf);
163
+ const ptr = wasm.allocFromTypedArray(bytes);
164
+ const flags = (capi.SQLITE_DESERIALIZE_FREEONCLOSE ?? 1) | (capi.SQLITE_DESERIALIZE_RESIZEABLE ?? 2);
165
+ const rc = capi.sqlite3_deserialize(this.rawDb.pointer, 'main', ptr, bytes.length, bytes.length, flags);
166
+ if (rc !== 0) {
167
+ wasm.dealloc(ptr);
168
+ throw new Error(`sqlite3_deserialize failed (rc=${rc}) for ${this.filename}`);
169
+ }
170
+ }
171
+ prepare(sql) {
172
+ return new WasmStatement(this, sql);
173
+ }
174
+ exec(sql) {
175
+ this.rawDb.exec(sql);
176
+ this.markDirty();
177
+ return this;
178
+ }
179
+ // better-sqlite3-compatible transaction: returns a callable that runs `fn`
180
+ // inside a transaction (savepoints for nesting), passing through args/return.
181
+ transaction(fn) {
182
+ return (...args) => {
183
+ const depth = this.txnDepth;
184
+ const savepoint = `_pc_sp_${depth}`;
185
+ this.rawDb.exec(depth === 0 ? 'BEGIN' : `SAVEPOINT ${savepoint}`);
186
+ this.txnDepth++;
187
+ try {
188
+ const result = fn(...args);
189
+ this.rawDb.exec(depth === 0 ? 'COMMIT' : `RELEASE ${savepoint}`);
190
+ this.markDirty();
191
+ return result;
192
+ }
193
+ catch (err) {
194
+ try {
195
+ this.rawDb.exec(depth === 0 ? 'ROLLBACK' : `ROLLBACK TO ${savepoint}; RELEASE ${savepoint}`);
196
+ }
197
+ catch {
198
+ // best-effort rollback
199
+ }
200
+ throw err;
201
+ }
202
+ finally {
203
+ this.txnDepth--;
204
+ }
205
+ };
206
+ }
207
+ // Pragmas are issued via the DDL strings (exec); provide a minimal method for
208
+ // API compatibility. Returns [] since no caller reads pragma results.
209
+ pragma(source) {
210
+ this.rawDb.exec(`PRAGMA ${source}`);
211
+ return [];
212
+ }
213
+ close() {
214
+ if (this.closed)
215
+ return;
216
+ this.closed = true;
217
+ if (this.flushTimer) {
218
+ clearTimeout(this.flushTimer);
219
+ this.flushTimer = null;
220
+ }
221
+ try {
222
+ this.flush();
223
+ }
224
+ finally {
225
+ for (const stmt of this.statements) {
226
+ try {
227
+ stmt.finalize();
228
+ }
229
+ catch {
230
+ // ignore
231
+ }
232
+ }
233
+ this.statements.clear();
234
+ this.rawDb.close();
235
+ }
236
+ }
237
+ // ── internal ──────────────────────────────────────────────────────────────
238
+ trackStatement(stmt) {
239
+ this.statements.add(stmt);
240
+ }
241
+ markDirty() {
242
+ if (!this.persistent || this.readonly_ || this.closed)
243
+ return;
244
+ this.dirty = true;
245
+ if (!this.flushTimer) {
246
+ this.flushTimer = setTimeout(() => {
247
+ this.flushTimer = null;
248
+ try {
249
+ this.flush();
250
+ }
251
+ catch (err) {
252
+ logger.warn(`WASM SQLite debounced flush failed: ${err.message}`);
253
+ }
254
+ }, 250);
255
+ // Don't keep the event loop alive solely for a pending flush.
256
+ this.flushTimer.unref?.();
257
+ }
258
+ }
259
+ flush() {
260
+ if (!this.dirty || !this.persistent || this.readonly_)
261
+ return;
262
+ const bytes = this.sqlite3.capi.sqlite3_js_db_export(this.rawDb.pointer);
263
+ mkdirSync(dirname(this.filename), { recursive: true });
264
+ const tmp = `${this.filename}.tmp-${process.pid}`;
265
+ writeFileSync(tmp, Buffer.from(bytes));
266
+ renameSync(tmp, this.filename);
267
+ this.dirty = false;
268
+ }
269
+ }
270
+ //# sourceMappingURL=wasm-sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-sqlite.js","sourceRoot":"","sources":["../../../src/core/db/wasm-sqlite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diff-parser.d.ts","sourceRoot":"","sources":["../../src/core/diff-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,QAAQ;IACvB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qDAAqD;IACrD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,yDAAyD;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,mDAAmD;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAYD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAwFlD;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAM/D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EAAE,GAChB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAKvC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAsCnE"}
1
+ {"version":3,"file":"diff-parser.d.ts","sourceRoot":"","sources":["../../src/core/diff-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,QAAQ;IACvB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qDAAqD;IACrD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,yDAAyD;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uDAAuD;IACvD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,mDAAmD;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAYD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA6FlD;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAM/D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EAAE,GAChB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAKvC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAsCnE"}
@@ -18,7 +18,12 @@ const DEV_NULL = '/dev/null';
18
18
  */
19
19
  export function parseDiff(text) {
20
20
  const results = [];
21
- const lines = text.split('\n');
21
+ // Split on CRLF or LF. `git diff` emits LF, but a diff saved to a file (or
22
+ // produced by tooling) on Windows can carry `\r`. Leaving the trailing `\r`
23
+ // on each line breaks the `$`-anchored path regexes below (`.` does not match
24
+ // `\r`, and `$` without the `m` flag does not match the position before it),
25
+ // which would make a CRLF diff parse as zero files.
26
+ const lines = text.split(/\r?\n/);
22
27
  let current = null;
23
28
  let currentHunk = null;
24
29
  // Line cursors that advance as we walk through a hunk.
@@ -1 +1 @@
1
- {"version":3,"file":"diff-parser.js","sourceRoot":"","sources":["../../src/core/diff-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-parser.js","sourceRoot":"","sources":["../../src/core/diff-parser.ts"],"names":[],"mappings":"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"}