gauss-ai 4.0.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 (232) hide show
  1. package/CHANGELOG.md +489 -0
  2. package/LICENSE +21 -0
  3. package/README.md +269 -0
  4. package/dist/a2a/index.cjs +7 -0
  5. package/dist/a2a/index.cjs.map +1 -0
  6. package/dist/a2a/index.d.cts +30 -0
  7. package/dist/a2a/index.d.ts +30 -0
  8. package/dist/a2a/index.js +7 -0
  9. package/dist/a2a/index.js.map +1 -0
  10. package/dist/agent-UIQDSYCE.js +16 -0
  11. package/dist/agent-UIQDSYCE.js.map +1 -0
  12. package/dist/agent-builder-8W3mBR-N.d.ts +1075 -0
  13. package/dist/agent-builder-GEMYdb1p.d.cts +1075 -0
  14. package/dist/agent-graph-AMQYAWNF.js +1422 -0
  15. package/dist/agent-graph-AMQYAWNF.js.map +1 -0
  16. package/dist/ai-sdk-mcp.adapter-SEN6KHNU.js +124 -0
  17. package/dist/ai-sdk-mcp.adapter-SEN6KHNU.js.map +1 -0
  18. package/dist/browser/index.js +10 -0
  19. package/dist/browser/index.js.map +1 -0
  20. package/dist/bun-runtime.adapter-MQDAJLQM.js +8 -0
  21. package/dist/bun-runtime.adapter-MQDAJLQM.js.map +1 -0
  22. package/dist/bun-runtime.adapter-XKOUXVAK.cjs +8 -0
  23. package/dist/bun-runtime.adapter-XKOUXVAK.cjs.map +1 -0
  24. package/dist/chat-A3XMRPJL.js +129 -0
  25. package/dist/chat-A3XMRPJL.js.map +1 -0
  26. package/dist/chunk-2ZRU47NC.js +91 -0
  27. package/dist/chunk-2ZRU47NC.js.map +1 -0
  28. package/dist/chunk-3LD3JTH4.cjs +18 -0
  29. package/dist/chunk-3LD3JTH4.cjs.map +1 -0
  30. package/dist/chunk-5FE5TG2W.cjs +16 -0
  31. package/dist/chunk-5FE5TG2W.cjs.map +1 -0
  32. package/dist/chunk-6XF673YC.cjs +436 -0
  33. package/dist/chunk-6XF673YC.cjs.map +1 -0
  34. package/dist/chunk-7CKWZJNS.js +230 -0
  35. package/dist/chunk-7CKWZJNS.js.map +1 -0
  36. package/dist/chunk-BI2G665F.js +4588 -0
  37. package/dist/chunk-BI2G665F.js.map +1 -0
  38. package/dist/chunk-C5NLWJS2.js +139 -0
  39. package/dist/chunk-C5NLWJS2.js.map +1 -0
  40. package/dist/chunk-CJZ66SU3.cjs +4321 -0
  41. package/dist/chunk-CJZ66SU3.cjs.map +1 -0
  42. package/dist/chunk-DAMT2CXW.cjs +91 -0
  43. package/dist/chunk-DAMT2CXW.cjs.map +1 -0
  44. package/dist/chunk-E7WG3MO5.js +18 -0
  45. package/dist/chunk-E7WG3MO5.js.map +1 -0
  46. package/dist/chunk-EFDM6R4J.js +99 -0
  47. package/dist/chunk-EFDM6R4J.js.map +1 -0
  48. package/dist/chunk-F7WIPPEO.js +256 -0
  49. package/dist/chunk-F7WIPPEO.js.map +1 -0
  50. package/dist/chunk-FAYDE67N.js +6927 -0
  51. package/dist/chunk-FAYDE67N.js.map +1 -0
  52. package/dist/chunk-GAE2KKCM.js +21 -0
  53. package/dist/chunk-GAE2KKCM.js.map +1 -0
  54. package/dist/chunk-INLNGRXM.cjs +130 -0
  55. package/dist/chunk-INLNGRXM.cjs.map +1 -0
  56. package/dist/chunk-JKXKXB5O.js +130 -0
  57. package/dist/chunk-JKXKXB5O.js.map +1 -0
  58. package/dist/chunk-K6SAETGP.js +375 -0
  59. package/dist/chunk-K6SAETGP.js.map +1 -0
  60. package/dist/chunk-KEASLAYR.js +157 -0
  61. package/dist/chunk-KEASLAYR.js.map +1 -0
  62. package/dist/chunk-KKJVNM6O.js +436 -0
  63. package/dist/chunk-KKJVNM6O.js.map +1 -0
  64. package/dist/chunk-KYIMVRIM.js +16 -0
  65. package/dist/chunk-KYIMVRIM.js.map +1 -0
  66. package/dist/chunk-MB7NXIZD.js +4321 -0
  67. package/dist/chunk-MB7NXIZD.js.map +1 -0
  68. package/dist/chunk-MHHDXPGE.js +209 -0
  69. package/dist/chunk-MHHDXPGE.js.map +1 -0
  70. package/dist/chunk-NE6JJA5W.js +401 -0
  71. package/dist/chunk-NE6JJA5W.js.map +1 -0
  72. package/dist/chunk-PF46XZBF.cjs +6927 -0
  73. package/dist/chunk-PF46XZBF.cjs.map +1 -0
  74. package/dist/chunk-PSJIAGDE.cjs +375 -0
  75. package/dist/chunk-PSJIAGDE.cjs.map +1 -0
  76. package/dist/chunk-PWOQDXNQ.js +16 -0
  77. package/dist/chunk-PWOQDXNQ.js.map +1 -0
  78. package/dist/chunk-QYOMQBBZ.cjs +230 -0
  79. package/dist/chunk-QYOMQBBZ.cjs.map +1 -0
  80. package/dist/chunk-UDFXLC4J.cjs +16 -0
  81. package/dist/chunk-UDFXLC4J.cjs.map +1 -0
  82. package/dist/chunk-UO4NGXRT.cjs +259 -0
  83. package/dist/chunk-UO4NGXRT.cjs.map +1 -0
  84. package/dist/chunk-UPFDFLEW.js +40 -0
  85. package/dist/chunk-UPFDFLEW.js.map +1 -0
  86. package/dist/chunk-V55JSQS7.cjs +16 -0
  87. package/dist/chunk-V55JSQS7.cjs.map +1 -0
  88. package/dist/chunk-VJADHXZL.cjs +16 -0
  89. package/dist/chunk-VJADHXZL.cjs.map +1 -0
  90. package/dist/chunk-VRWD7LCI.js +59 -0
  91. package/dist/chunk-VRWD7LCI.js.map +1 -0
  92. package/dist/chunk-WKKQ443C.js +487 -0
  93. package/dist/chunk-WKKQ443C.js.map +1 -0
  94. package/dist/chunk-X2GHUHAF.js +436 -0
  95. package/dist/chunk-X2GHUHAF.js.map +1 -0
  96. package/dist/chunk-XLGW3XNI.cjs +256 -0
  97. package/dist/chunk-XLGW3XNI.cjs.map +1 -0
  98. package/dist/chunk-ZFJKX4DP.js +16 -0
  99. package/dist/chunk-ZFJKX4DP.js.map +1 -0
  100. package/dist/chunk-ZM2OEWM2.js +259 -0
  101. package/dist/chunk-ZM2OEWM2.js.map +1 -0
  102. package/dist/chunk-ZNAIP2XV.js +16 -0
  103. package/dist/chunk-ZNAIP2XV.js.map +1 -0
  104. package/dist/chunk-ZYFAZYSL.js +42 -0
  105. package/dist/chunk-ZYFAZYSL.js.map +1 -0
  106. package/dist/cli/index.js +421 -0
  107. package/dist/cli/index.js.map +1 -0
  108. package/dist/config-4MHT6TQW.js +153 -0
  109. package/dist/config-4MHT6TQW.js.map +1 -0
  110. package/dist/config-REERQFK4.cjs +153 -0
  111. package/dist/config-REERQFK4.cjs.map +1 -0
  112. package/dist/cost-tracker-JLOU7IZJ.js +7 -0
  113. package/dist/cost-tracker-JLOU7IZJ.js.map +1 -0
  114. package/dist/demo-C52GMSYH.js +188 -0
  115. package/dist/demo-C52GMSYH.js.map +1 -0
  116. package/dist/deno/index.js +306 -0
  117. package/dist/deno/index.js.map +1 -0
  118. package/dist/deno-runtime.adapter-F744HY7K.js +8 -0
  119. package/dist/deno-runtime.adapter-F744HY7K.js.map +1 -0
  120. package/dist/deno-runtime.adapter-RFEVNSCV.cjs +8 -0
  121. package/dist/deno-runtime.adapter-RFEVNSCV.cjs.map +1 -0
  122. package/dist/dev-D7DDVDA4.js +218 -0
  123. package/dist/dev-D7DDVDA4.js.map +1 -0
  124. package/dist/edge/index.js +10 -0
  125. package/dist/edge/index.js.map +1 -0
  126. package/dist/edge-runtime.adapter-UQCW2F7X.js +8 -0
  127. package/dist/edge-runtime.adapter-UQCW2F7X.js.map +1 -0
  128. package/dist/edge-runtime.adapter-YED6F3AY.cjs +8 -0
  129. package/dist/edge-runtime.adapter-YED6F3AY.cjs.map +1 -0
  130. package/dist/graph-MGFAQZ5W.js +50 -0
  131. package/dist/graph-MGFAQZ5W.js.map +1 -0
  132. package/dist/graph-visualization-HBSVQXJK.js +9 -0
  133. package/dist/graph-visualization-HBSVQXJK.js.map +1 -0
  134. package/dist/index-BRgqNnh3.d.cts +982 -0
  135. package/dist/index-CZxpYUxZ.d.ts +982 -0
  136. package/dist/index.cjs +14789 -0
  137. package/dist/index.cjs.map +1 -0
  138. package/dist/index.d.cts +10275 -0
  139. package/dist/index.d.ts +10275 -0
  140. package/dist/index.js +14789 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/init-CFWXTQ35.js +133 -0
  143. package/dist/init-CFWXTQ35.js.map +1 -0
  144. package/dist/llm-VWO4MC7J.cjs +17 -0
  145. package/dist/llm-VWO4MC7J.cjs.map +1 -0
  146. package/dist/llm-XLXVSPBI.js +17 -0
  147. package/dist/llm-XLXVSPBI.js.map +1 -0
  148. package/dist/logging-WRAK5ZXT.js +33 -0
  149. package/dist/logging-WRAK5ZXT.js.map +1 -0
  150. package/dist/metrics-FAHZVVD4.js +47 -0
  151. package/dist/metrics-FAHZVVD4.js.map +1 -0
  152. package/dist/node/index.cjs +280 -0
  153. package/dist/node/index.cjs.map +1 -0
  154. package/dist/node/index.d.cts +51 -0
  155. package/dist/node/index.d.ts +51 -0
  156. package/dist/node/index.js +280 -0
  157. package/dist/node/index.js.map +1 -0
  158. package/dist/node-runtime.adapter-5L7PJ6W2.js +8 -0
  159. package/dist/node-runtime.adapter-5L7PJ6W2.js.map +1 -0
  160. package/dist/node-runtime.adapter-CCRZVGHB.cjs +8 -0
  161. package/dist/node-runtime.adapter-CCRZVGHB.cjs.map +1 -0
  162. package/dist/persist-usage-WTBTCWEF.js +7 -0
  163. package/dist/persist-usage-WTBTCWEF.js.map +1 -0
  164. package/dist/plugin-RCPBWUUA.js +207 -0
  165. package/dist/plugin-RCPBWUUA.js.map +1 -0
  166. package/dist/plugins/index.cjs +75 -0
  167. package/dist/plugins/index.cjs.map +1 -0
  168. package/dist/plugins/index.d.cts +8 -0
  169. package/dist/plugins/index.d.ts +8 -0
  170. package/dist/plugins/index.js +75 -0
  171. package/dist/plugins/index.js.map +1 -0
  172. package/dist/plugins-L4ING3CX.js +4625 -0
  173. package/dist/plugins-L4ING3CX.js.map +1 -0
  174. package/dist/providers/index.cjs +189 -0
  175. package/dist/providers/index.cjs.map +1 -0
  176. package/dist/providers/index.d.cts +168 -0
  177. package/dist/providers/index.d.ts +168 -0
  178. package/dist/providers/index.js +189 -0
  179. package/dist/providers/index.js.map +1 -0
  180. package/dist/providers-3RNQ5CKZ.js +59 -0
  181. package/dist/providers-3RNQ5CKZ.js.map +1 -0
  182. package/dist/providers-66GPXUGQ.cjs +59 -0
  183. package/dist/providers-66GPXUGQ.cjs.map +1 -0
  184. package/dist/repl-K6QN4I2S.js +678 -0
  185. package/dist/repl-K6QN4I2S.js.map +1 -0
  186. package/dist/rest/index.cjs +17 -0
  187. package/dist/rest/index.cjs.map +1 -0
  188. package/dist/rest/index.d.cts +102 -0
  189. package/dist/rest/index.d.ts +102 -0
  190. package/dist/rest/index.js +17 -0
  191. package/dist/rest/index.js.map +1 -0
  192. package/dist/runtime-deno.js +15 -0
  193. package/dist/runtime-deno.js.map +1 -0
  194. package/dist/runtime-edge.js +15 -0
  195. package/dist/runtime-edge.js.map +1 -0
  196. package/dist/runtime-node.js +15 -0
  197. package/dist/runtime-node.js.map +1 -0
  198. package/dist/scraping/index.cjs +11 -0
  199. package/dist/scraping/index.cjs.map +1 -0
  200. package/dist/scraping/index.d.cts +17 -0
  201. package/dist/scraping/index.d.ts +17 -0
  202. package/dist/scraping/index.js +11 -0
  203. package/dist/scraping/index.js.map +1 -0
  204. package/dist/semantic-scraping.port-CZWUea88.d.cts +54 -0
  205. package/dist/semantic-scraping.port-CZWUea88.d.ts +54 -0
  206. package/dist/server/index.js +166 -0
  207. package/dist/server/index.js.map +1 -0
  208. package/dist/testing/index.cjs +25 -0
  209. package/dist/testing/index.cjs.map +1 -0
  210. package/dist/testing/index.d.cts +63 -0
  211. package/dist/testing/index.d.ts +63 -0
  212. package/dist/testing/index.js +25 -0
  213. package/dist/testing/index.js.map +1 -0
  214. package/dist/token-counter.port-CRgxZZGe.d.ts +334 -0
  215. package/dist/token-counter.port-D7BHMCRR.d.cts +334 -0
  216. package/dist/tools-BZM33OBZ.js +10 -0
  217. package/dist/tools-BZM33OBZ.js.map +1 -0
  218. package/dist/tracing-XA3TEWP4.js +48 -0
  219. package/dist/tracing-XA3TEWP4.js.map +1 -0
  220. package/dist/types-CVsP7gFI.d.cts +235 -0
  221. package/dist/types-CVsP7gFI.d.ts +235 -0
  222. package/dist/virtual-fs.adapter-BBLS-3AY.d.ts +26 -0
  223. package/dist/virtual-fs.adapter-nb0CTYOj.d.cts +26 -0
  224. package/dist/workflow/index.cjs +9 -0
  225. package/dist/workflow/index.cjs.map +1 -0
  226. package/dist/workflow/index.d.cts +62 -0
  227. package/dist/workflow/index.d.ts +62 -0
  228. package/dist/workflow/index.js +9 -0
  229. package/dist/workflow/index.js.map +1 -0
  230. package/dist/workflow.port-BaCttxrw.d.cts +153 -0
  231. package/dist/workflow.port-BaCttxrw.d.ts +153 -0
  232. package/package.json +230 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/edge/opfs-fs.adapter.ts","../src/edge/indexeddb-memory.adapter.ts"],"sourcesContent":["// =============================================================================\n// OpfsFilesystem — FilesystemPort via Origin Private File System API\n// =============================================================================\n\nimport type { FilesystemPort } from \"../ports/filesystem.port.js\";\nimport type {\n FileEntry,\n FileStat,\n FilesystemZone,\n ListOptions,\n SearchOptions,\n SearchResult,\n} from \"../types.js\";\nimport { globToRegex } from \"../adapters/filesystem/glob-utils.js\";\n\n// Minimal OPFS type declarations for cross-compilation\ninterface OPFSFileHandle {\n kind: \"file\";\n name: string;\n getFile(): Promise<File>;\n createWritable(): Promise<{ write(data: string): Promise<void>; close(): Promise<void> }>;\n}\n\ninterface OPFSDirectoryHandle {\n kind: \"directory\";\n name: string;\n getFileHandle(name: string, options?: { create?: boolean }): Promise<OPFSFileHandle>;\n getDirectoryHandle(name: string, options?: { create?: boolean }): Promise<OPFSDirectoryHandle>;\n removeEntry(name: string, options?: { recursive?: boolean }): Promise<void>;\n values(): AsyncIterable<OPFSFileHandle | OPFSDirectoryHandle>;\n}\n\ninterface OpfsFilesystemOptions {\n rootName?: string;\n}\n\nasync function getOpfsRoot(): Promise<OPFSDirectoryHandle> {\n const nav = globalThis.navigator as\n | { storage?: { getDirectory?: () => Promise<OPFSDirectoryHandle> } }\n | undefined;\n if (!nav?.storage?.getDirectory) {\n throw new Error(\"OPFS is not available in this environment\");\n }\n return nav.storage.getDirectory();\n}\n\nexport class OpfsFilesystem implements FilesystemPort {\n private readonly rootName: string;\n\n constructor(options: OpfsFilesystemOptions = {}) {\n this.rootName = options.rootName ?? \"gauss\";\n }\n\n // ---------------------------------------------------------------------------\n // Private helpers\n // ---------------------------------------------------------------------------\n\n private async getZoneDir(zone: FilesystemZone): Promise<OPFSDirectoryHandle> {\n const root = await getOpfsRoot();\n const appDir = await root.getDirectoryHandle(this.rootName, { create: true });\n return appDir.getDirectoryHandle(zone, { create: true });\n }\n\n private async traverseToParent(\n dir: OPFSDirectoryHandle,\n segments: string[],\n create: boolean,\n ): Promise<{ parent: OPFSDirectoryHandle; name: string }> {\n let current = dir;\n for (let i = 0; i < segments.length - 1; i++) {\n current = await current.getDirectoryHandle(segments[i]!, { create });\n }\n return { parent: current, name: segments[segments.length - 1]! };\n }\n\n private parsePath(path: string): string[] {\n const segments = path\n .split(\"/\")\n .filter((s) => s !== \"\" && s !== \".\");\n if (segments.length === 0) {\n throw new Error(\"Path cannot be empty\");\n }\n return segments;\n }\n\n private async collectFiles(\n dir: OPFSDirectoryHandle,\n prefix: string,\n ): Promise<Array<{ path: string; handle: OPFSFileHandle }>> {\n const results: Array<{ path: string; handle: OPFSFileHandle }> = [];\n for await (const entry of dir.values()) {\n const entryPath = prefix ? `${prefix}/${entry.name}` : entry.name;\n if (entry.kind === \"file\") {\n results.push({ path: entryPath, handle: entry as OPFSFileHandle });\n } else {\n const children = await this.collectFiles(\n entry as OPFSDirectoryHandle,\n entryPath,\n );\n results.push(...children);\n }\n }\n return results;\n }\n\n // ---------------------------------------------------------------------------\n // FilesystemPort implementation\n // ---------------------------------------------------------------------------\n\n async read(path: string, zone: FilesystemZone = \"transient\"): Promise<string> {\n const zoneDir = await this.getZoneDir(zone);\n const segments = this.parsePath(path);\n const { parent, name } = await this.traverseToParent(zoneDir, segments, false);\n const fileHandle = await parent.getFileHandle(name);\n const file = await fileHandle.getFile();\n return file.text();\n }\n\n async write(\n path: string,\n content: string,\n zone: FilesystemZone = \"transient\",\n ): Promise<void> {\n const zoneDir = await this.getZoneDir(zone);\n const segments = this.parsePath(path);\n const { parent, name } = await this.traverseToParent(zoneDir, segments, true);\n const fileHandle = await parent.getFileHandle(name, { create: true });\n const writable = await fileHandle.createWritable();\n await writable.write(content);\n await writable.close();\n }\n\n async exists(path: string, zone: FilesystemZone = \"transient\"): Promise<boolean> {\n try {\n const zoneDir = await this.getZoneDir(zone);\n const segments = this.parsePath(path);\n const { parent, name } = await this.traverseToParent(zoneDir, segments, false);\n try {\n await parent.getFileHandle(name);\n return true;\n } catch {\n await parent.getDirectoryHandle(name);\n return true;\n }\n } catch {\n return false;\n }\n }\n\n async delete(path: string, zone: FilesystemZone = \"transient\"): Promise<void> {\n try {\n const zoneDir = await this.getZoneDir(zone);\n const segments = this.parsePath(path);\n const { parent, name } = await this.traverseToParent(zoneDir, segments, false);\n await parent.removeEntry(name, { recursive: true });\n } catch {\n // Ignore if not found\n }\n }\n\n async list(\n path: string,\n options: ListOptions = {},\n zone: FilesystemZone = \"transient\",\n ): Promise<FileEntry[]> {\n const zoneDir = await this.getZoneDir(zone);\n const segments = this.parsePath(path);\n let targetDir = zoneDir;\n for (const seg of segments) {\n targetDir = await targetDir.getDirectoryHandle(seg);\n }\n\n const maxDepth = options.maxDepth ?? (options.recursive ? Infinity : 1);\n return this.listEntries(targetDir, \"\", maxDepth, 1, options.includeHidden ?? false);\n }\n\n private async listEntries(\n dir: OPFSDirectoryHandle,\n prefix: string,\n maxDepth: number,\n currentDepth: number,\n includeHidden: boolean,\n ): Promise<FileEntry[]> {\n if (currentDepth > maxDepth) return [];\n const results: FileEntry[] = [];\n for await (const entry of dir.values()) {\n if (!includeHidden && entry.name.startsWith(\".\")) continue;\n const entryPath = prefix ? `${prefix}/${entry.name}` : entry.name;\n if (entry.kind === \"file\") {\n const file = await (entry as OPFSFileHandle).getFile();\n results.push({\n name: entry.name,\n path: entryPath,\n isDirectory: false,\n size: file.size,\n modifiedAt: file.lastModified,\n });\n } else {\n results.push({\n name: entry.name,\n path: entryPath,\n isDirectory: true,\n size: 0,\n modifiedAt: Date.now(),\n });\n const children = await this.listEntries(\n entry as OPFSDirectoryHandle,\n entryPath,\n maxDepth,\n currentDepth + 1,\n includeHidden,\n );\n results.push(...children);\n }\n }\n return results;\n }\n\n async stat(path: string, zone: FilesystemZone = \"transient\"): Promise<FileStat> {\n const zoneDir = await this.getZoneDir(zone);\n const segments = this.parsePath(path);\n const { parent, name } = await this.traverseToParent(zoneDir, segments, false);\n\n try {\n const fileHandle = await parent.getFileHandle(name);\n const file = await fileHandle.getFile();\n return {\n size: file.size,\n isDirectory: false,\n isFile: true,\n createdAt: file.lastModified,\n modifiedAt: file.lastModified,\n };\n } catch {\n // Try as directory\n await parent.getDirectoryHandle(name);\n return {\n size: 0,\n isDirectory: true,\n isFile: false,\n createdAt: Date.now(),\n modifiedAt: Date.now(),\n };\n }\n }\n\n async glob(pattern: string, zone: FilesystemZone = \"transient\"): Promise<string[]> {\n const zoneDir = await this.getZoneDir(zone);\n const allFiles = await this.collectFiles(zoneDir, \"\");\n const regex = globToRegex(pattern);\n return allFiles.map((f) => f.path).filter((p) => regex.test(p));\n }\n\n async search(\n pattern: string,\n options: SearchOptions = {},\n zone: FilesystemZone = \"transient\",\n ): Promise<SearchResult[]> {\n const zoneDir = await this.getZoneDir(zone);\n const allFiles = await this.collectFiles(zoneDir, \"\");\n const flags = options.caseSensitive === false ? \"gi\" : \"g\";\n const regex = new RegExp(pattern, flags);\n const fileRegex = options.filePattern ? globToRegex(options.filePattern) : null;\n const max = options.maxResults ?? Infinity;\n const results: SearchResult[] = [];\n\n for (const { path: filePath, handle } of allFiles) {\n if (fileRegex && !fileRegex.test(filePath)) continue;\n const file = await handle.getFile();\n const content = await file.text();\n const lines = content.split(\"\\n\");\n for (let i = 0; i < lines.length && results.length < max; i++) {\n regex.lastIndex = 0;\n const match = regex.exec(lines[i]!);\n if (match) {\n results.push({\n filePath,\n lineNumber: i + 1,\n lineContent: lines[i]!,\n matchStart: match.index,\n matchEnd: match.index + match[0].length,\n });\n }\n }\n if (results.length >= max) break;\n }\n return results;\n }\n\n async syncToPersistent(): Promise<void> {\n // OPFS is already persistent — no-op\n }\n\n async clearTransient(): Promise<void> {\n const root = await getOpfsRoot();\n const appDir = await root.getDirectoryHandle(this.rootName, { create: true });\n try {\n await appDir.removeEntry(\"transient\", { recursive: true });\n } catch {\n // Ignore if not found\n }\n await appDir.getDirectoryHandle(\"transient\", { create: true });\n }\n}\n","// =============================================================================\n// IndexedDbMemoryAdapter — MemoryPort via IndexedDB\n// =============================================================================\n\nimport type { MemoryPort } from \"../ports/memory.port.js\";\nimport type { Todo } from \"../domain/todo.schema.js\";\nimport type { Checkpoint } from \"../domain/checkpoint.schema.js\";\nimport type { Message } from \"../types.js\";\n\n// Minimal IndexedDB type declarations for cross-compilation\ninterface IDB {\n open(name: string, version?: number): IDBOpenReq;\n}\ninterface IDBOpenReq {\n result: IDBDb;\n error: Error | null;\n onupgradeneeded: (() => void) | null;\n onsuccess: (() => void) | null;\n onerror: (() => void) | null;\n}\ninterface IDBDb {\n transaction(stores: string[], mode?: string): IDBTx;\n close(): void;\n createObjectStore(name: string): IDBStore;\n objectStoreNames: { contains(name: string): boolean };\n}\ninterface IDBTx {\n objectStore(name: string): IDBStore;\n error: Error | null;\n onerror: (() => void) | null;\n}\ninterface IDBStore {\n get(key: string): IDBReq<unknown>;\n put(value: unknown, key?: string): IDBReq<unknown>;\n delete(key: string): IDBReq<undefined>;\n getAllKeys(): IDBReq<string[]>;\n}\ninterface IDBReq<T> {\n result: T;\n error: Error | null;\n onsuccess: (() => void) | null;\n onerror: (() => void) | null;\n}\n\nconst DB_VERSION = 1;\nconst STORE_TODOS = \"todos\";\nconst STORE_CHECKPOINTS = \"checkpoints\";\nconst STORE_CONVERSATIONS = \"conversations\";\nconst STORE_METADATA = \"metadata\";\n\nfunction getIDB(): IDB {\n const idb = (globalThis as Record<string, unknown>).indexedDB as\n | IDB\n | undefined;\n if (!idb) {\n throw new Error(\"IndexedDB is not available in this environment\");\n }\n return idb;\n}\n\nfunction idbRequest<T>(request: IDBReq<T>): Promise<T> {\n return new Promise((resolve, reject) => {\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n}\n\nfunction idbTransaction(\n db: IDBDb,\n stores: string[],\n mode: string,\n): IDBTx {\n return db.transaction(stores, mode);\n}\n\ninterface IndexedDbMemoryOptions {\n dbName?: string;\n}\n\nexport class IndexedDbMemoryAdapter implements MemoryPort {\n private readonly dbName: string;\n private db: IDBDb | null = null;\n private dbPromise: Promise<IDBDb> | null = null;\n\n constructor(options: IndexedDbMemoryOptions = {}) {\n this.dbName = options.dbName ?? \"gauss-memory\";\n }\n\n // ---------------------------------------------------------------------------\n // DB lifecycle\n // ---------------------------------------------------------------------------\n\n private async getDb(): Promise<IDBDb> {\n if (this.db) return this.db;\n if (!this.dbPromise) {\n this.dbPromise = this.openDb();\n }\n return this.dbPromise;\n }\n\n private openDb(): Promise<IDBDb> {\n const idb = getIDB();\n return new Promise((resolve, reject) => {\n const request = idb.open(this.dbName, DB_VERSION);\n request.onupgradeneeded = () => {\n const db = request.result;\n if (!db.objectStoreNames.contains(STORE_TODOS)) {\n db.createObjectStore(STORE_TODOS);\n }\n if (!db.objectStoreNames.contains(STORE_CHECKPOINTS)) {\n db.createObjectStore(STORE_CHECKPOINTS);\n }\n if (!db.objectStoreNames.contains(STORE_CONVERSATIONS)) {\n db.createObjectStore(STORE_CONVERSATIONS);\n }\n if (!db.objectStoreNames.contains(STORE_METADATA)) {\n db.createObjectStore(STORE_METADATA);\n }\n };\n request.onsuccess = () => {\n this.db = request.result;\n resolve(this.db!);\n };\n request.onerror = () => {\n this.dbPromise = null;\n reject(request.error);\n };\n });\n }\n\n // ---------------------------------------------------------------------------\n // Todos\n // ---------------------------------------------------------------------------\n\n async saveTodos(sessionId: string, todos: Todo[]): Promise<void> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_TODOS], \"readwrite\");\n await idbRequest(tx.objectStore(STORE_TODOS).put(todos, sessionId));\n }\n\n async loadTodos(sessionId: string): Promise<Todo[]> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_TODOS], \"readonly\");\n const result = await idbRequest(tx.objectStore(STORE_TODOS).get(sessionId));\n return (result as Todo[] | undefined) ?? [];\n }\n\n // ---------------------------------------------------------------------------\n // Checkpoints\n // ---------------------------------------------------------------------------\n\n async saveCheckpoint(\n sessionId: string,\n checkpoint: Checkpoint,\n ): Promise<void> {\n const db = await this.getDb();\n const key = `${sessionId}:${checkpoint.id}`;\n const tx = idbTransaction(db, [STORE_CHECKPOINTS], \"readwrite\");\n await idbRequest(tx.objectStore(STORE_CHECKPOINTS).put(checkpoint, key));\n }\n\n async loadLatestCheckpoint(sessionId: string): Promise<Checkpoint | null> {\n const checkpoints = await this.listCheckpoints(sessionId);\n if (checkpoints.length === 0) return null;\n return checkpoints[checkpoints.length - 1] ?? null;\n }\n\n async listCheckpoints(sessionId: string): Promise<Checkpoint[]> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_CHECKPOINTS], \"readonly\");\n const store = tx.objectStore(STORE_CHECKPOINTS);\n const allKeys = await idbRequest(store.getAllKeys());\n const prefix = `${sessionId}:`;\n const matchingKeys = (allKeys as string[]).filter((k) =>\n k.startsWith(prefix),\n );\n const results: Checkpoint[] = [];\n for (const key of matchingKeys) {\n const cp = await idbRequest(store.get(key));\n if (cp) results.push(cp as Checkpoint);\n }\n results.sort((a, b) => a.createdAt - b.createdAt);\n return results;\n }\n\n async deleteOldCheckpoints(\n sessionId: string,\n keepCount: number,\n ): Promise<void> {\n const checkpoints = await this.listCheckpoints(sessionId);\n if (checkpoints.length <= keepCount) return;\n const toDelete = checkpoints.slice(0, checkpoints.length - keepCount);\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_CHECKPOINTS], \"readwrite\");\n const store = tx.objectStore(STORE_CHECKPOINTS);\n for (const cp of toDelete) {\n await idbRequest(store.delete(`${sessionId}:${cp.id}`));\n }\n }\n\n // ---------------------------------------------------------------------------\n // Conversations\n // ---------------------------------------------------------------------------\n\n async saveConversation(\n sessionId: string,\n messages: Message[],\n ): Promise<void> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_CONVERSATIONS], \"readwrite\");\n await idbRequest(\n tx.objectStore(STORE_CONVERSATIONS).put(messages, sessionId),\n );\n }\n\n async loadConversation(sessionId: string): Promise<Message[]> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_CONVERSATIONS], \"readonly\");\n const result = await idbRequest(\n tx.objectStore(STORE_CONVERSATIONS).get(sessionId),\n );\n return (result as Message[] | undefined) ?? [];\n }\n\n // ---------------------------------------------------------------------------\n // Metadata\n // ---------------------------------------------------------------------------\n\n async saveMetadata(\n sessionId: string,\n key: string,\n value: unknown,\n ): Promise<void> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_METADATA], \"readwrite\");\n await idbRequest(\n tx.objectStore(STORE_METADATA).put(value, `${sessionId}:${key}`),\n );\n }\n\n async loadMetadata<T = unknown>(\n sessionId: string,\n key: string,\n ): Promise<T | null> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_METADATA], \"readonly\");\n const result = await idbRequest(\n tx.objectStore(STORE_METADATA).get(`${sessionId}:${key}`),\n );\n return (result as T | undefined) ?? null;\n }\n\n async deleteMetadata(sessionId: string, key: string): Promise<void> {\n const db = await this.getDb();\n const tx = idbTransaction(db, [STORE_METADATA], \"readwrite\");\n await idbRequest(\n tx.objectStore(STORE_METADATA).delete(`${sessionId}:${key}`),\n );\n }\n\n // ---------------------------------------------------------------------------\n // Cleanup\n // ---------------------------------------------------------------------------\n\n close(): void {\n this.db?.close();\n this.db = null;\n this.dbPromise = null;\n }\n}\n"],"mappings":"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","names":[]}