@weavelogic/knowledge-graph-agent 0.2.0 → 0.3.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 (585) hide show
  1. package/README.md +686 -304
  2. package/dist/_virtual/_commonjsHelpers.js +7 -0
  3. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/_virtual/additionalItems.js +5 -0
  5. package/dist/_virtual/additionalItems.js.map +1 -0
  6. package/dist/_virtual/additionalProperties.js +5 -0
  7. package/dist/_virtual/additionalProperties.js.map +1 -0
  8. package/dist/_virtual/ajv.js +6 -0
  9. package/dist/_virtual/ajv.js.map +1 -0
  10. package/dist/_virtual/ajv2.js +5 -0
  11. package/dist/_virtual/ajv2.js.map +1 -0
  12. package/dist/_virtual/allOf.js +5 -0
  13. package/dist/_virtual/allOf.js.map +1 -0
  14. package/dist/_virtual/anyOf.js +5 -0
  15. package/dist/_virtual/anyOf.js.map +1 -0
  16. package/dist/_virtual/applicability.js +5 -0
  17. package/dist/_virtual/applicability.js.map +1 -0
  18. package/dist/_virtual/boolSchema.js +5 -0
  19. package/dist/_virtual/boolSchema.js.map +1 -0
  20. package/dist/_virtual/code.js +5 -0
  21. package/dist/_virtual/code.js.map +1 -0
  22. package/dist/_virtual/code2.js +5 -0
  23. package/dist/_virtual/code2.js.map +1 -0
  24. package/dist/_virtual/const.js +5 -0
  25. package/dist/_virtual/const.js.map +1 -0
  26. package/dist/_virtual/contains.js +5 -0
  27. package/dist/_virtual/contains.js.map +1 -0
  28. package/dist/_virtual/core.js +5 -0
  29. package/dist/_virtual/core.js.map +1 -0
  30. package/dist/_virtual/dataType.js +5 -0
  31. package/dist/_virtual/dataType.js.map +1 -0
  32. package/dist/_virtual/defaults.js +5 -0
  33. package/dist/_virtual/defaults.js.map +1 -0
  34. package/dist/_virtual/dependencies.js +5 -0
  35. package/dist/_virtual/dependencies.js.map +1 -0
  36. package/dist/_virtual/draft7.js +5 -0
  37. package/dist/_virtual/draft7.js.map +1 -0
  38. package/dist/_virtual/enum.js +5 -0
  39. package/dist/_virtual/enum.js.map +1 -0
  40. package/dist/_virtual/equal.js +5 -0
  41. package/dist/_virtual/equal.js.map +1 -0
  42. package/dist/_virtual/errors.js +5 -0
  43. package/dist/_virtual/errors.js.map +1 -0
  44. package/dist/_virtual/format.js +5 -0
  45. package/dist/_virtual/format.js.map +1 -0
  46. package/dist/_virtual/formats.js +5 -0
  47. package/dist/_virtual/formats.js.map +1 -0
  48. package/dist/_virtual/id.js +5 -0
  49. package/dist/_virtual/id.js.map +1 -0
  50. package/dist/_virtual/if.js +5 -0
  51. package/dist/_virtual/if.js.map +1 -0
  52. package/dist/_virtual/index.js +8 -0
  53. package/dist/_virtual/index.js.map +1 -0
  54. package/dist/_virtual/index10.js +5 -0
  55. package/dist/_virtual/index10.js.map +1 -0
  56. package/dist/_virtual/index11.js +5 -0
  57. package/dist/_virtual/index11.js.map +1 -0
  58. package/dist/_virtual/index12.js +5 -0
  59. package/dist/_virtual/index12.js.map +1 -0
  60. package/dist/_virtual/index2.js +5 -0
  61. package/dist/_virtual/index2.js.map +1 -0
  62. package/dist/_virtual/index3.js +5 -0
  63. package/dist/_virtual/index3.js.map +1 -0
  64. package/dist/_virtual/index4.js +5 -0
  65. package/dist/_virtual/index4.js.map +1 -0
  66. package/dist/_virtual/index5.js +5 -0
  67. package/dist/_virtual/index5.js.map +1 -0
  68. package/dist/_virtual/index6.js +5 -0
  69. package/dist/_virtual/index6.js.map +1 -0
  70. package/dist/_virtual/index7.js +5 -0
  71. package/dist/_virtual/index7.js.map +1 -0
  72. package/dist/_virtual/index8.js +5 -0
  73. package/dist/_virtual/index8.js.map +1 -0
  74. package/dist/_virtual/index9.js +5 -0
  75. package/dist/_virtual/index9.js.map +1 -0
  76. package/dist/_virtual/items.js +5 -0
  77. package/dist/_virtual/items.js.map +1 -0
  78. package/dist/_virtual/items2020.js +5 -0
  79. package/dist/_virtual/items2020.js.map +1 -0
  80. package/dist/_virtual/keyword.js +5 -0
  81. package/dist/_virtual/keyword.js.map +1 -0
  82. package/dist/_virtual/limit.js +5 -0
  83. package/dist/_virtual/limit.js.map +1 -0
  84. package/dist/_virtual/limitItems.js +5 -0
  85. package/dist/_virtual/limitItems.js.map +1 -0
  86. package/dist/_virtual/limitLength.js +5 -0
  87. package/dist/_virtual/limitLength.js.map +1 -0
  88. package/dist/_virtual/limitNumber.js +5 -0
  89. package/dist/_virtual/limitNumber.js.map +1 -0
  90. package/dist/_virtual/limitProperties.js +5 -0
  91. package/dist/_virtual/limitProperties.js.map +1 -0
  92. package/dist/_virtual/metadata.js +5 -0
  93. package/dist/_virtual/metadata.js.map +1 -0
  94. package/dist/_virtual/multipleOf.js +5 -0
  95. package/dist/_virtual/multipleOf.js.map +1 -0
  96. package/dist/_virtual/names.js +5 -0
  97. package/dist/_virtual/names.js.map +1 -0
  98. package/dist/_virtual/not.js +5 -0
  99. package/dist/_virtual/not.js.map +1 -0
  100. package/dist/_virtual/oneOf.js +5 -0
  101. package/dist/_virtual/oneOf.js.map +1 -0
  102. package/dist/_virtual/pattern.js +5 -0
  103. package/dist/_virtual/pattern.js.map +1 -0
  104. package/dist/_virtual/patternProperties.js +5 -0
  105. package/dist/_virtual/patternProperties.js.map +1 -0
  106. package/dist/_virtual/prefixItems.js +5 -0
  107. package/dist/_virtual/prefixItems.js.map +1 -0
  108. package/dist/_virtual/properties.js +5 -0
  109. package/dist/_virtual/properties.js.map +1 -0
  110. package/dist/_virtual/propertyNames.js +5 -0
  111. package/dist/_virtual/propertyNames.js.map +1 -0
  112. package/dist/_virtual/ref.js +5 -0
  113. package/dist/_virtual/ref.js.map +1 -0
  114. package/dist/_virtual/ref_error.js +5 -0
  115. package/dist/_virtual/ref_error.js.map +1 -0
  116. package/dist/_virtual/required.js +5 -0
  117. package/dist/_virtual/required.js.map +1 -0
  118. package/dist/_virtual/resolve.js +5 -0
  119. package/dist/_virtual/resolve.js.map +1 -0
  120. package/dist/_virtual/rules.js +5 -0
  121. package/dist/_virtual/rules.js.map +1 -0
  122. package/dist/_virtual/scope.js +5 -0
  123. package/dist/_virtual/scope.js.map +1 -0
  124. package/dist/_virtual/subschema.js +5 -0
  125. package/dist/_virtual/subschema.js.map +1 -0
  126. package/dist/_virtual/thenElse.js +5 -0
  127. package/dist/_virtual/thenElse.js.map +1 -0
  128. package/dist/_virtual/types.js +5 -0
  129. package/dist/_virtual/types.js.map +1 -0
  130. package/dist/_virtual/ucs2length.js +5 -0
  131. package/dist/_virtual/ucs2length.js.map +1 -0
  132. package/dist/_virtual/uniqueItems.js +5 -0
  133. package/dist/_virtual/uniqueItems.js.map +1 -0
  134. package/dist/_virtual/uri.js +5 -0
  135. package/dist/_virtual/uri.js.map +1 -0
  136. package/dist/_virtual/util.js +5 -0
  137. package/dist/_virtual/util.js.map +1 -0
  138. package/dist/_virtual/validation_error.js +5 -0
  139. package/dist/_virtual/validation_error.js.map +1 -0
  140. package/dist/agents/analyst-agent.d.ts +230 -0
  141. package/dist/agents/analyst-agent.d.ts.map +1 -0
  142. package/dist/agents/analyst-agent.js +793 -0
  143. package/dist/agents/analyst-agent.js.map +1 -0
  144. package/dist/agents/architect-agent.d.ts +248 -0
  145. package/dist/agents/architect-agent.d.ts.map +1 -0
  146. package/dist/agents/architect-agent.js +685 -0
  147. package/dist/agents/architect-agent.js.map +1 -0
  148. package/dist/agents/base-agent.d.ts +169 -0
  149. package/dist/agents/base-agent.d.ts.map +1 -0
  150. package/dist/agents/base-agent.js +441 -0
  151. package/dist/agents/base-agent.js.map +1 -0
  152. package/dist/agents/coder-agent.d.ts +191 -0
  153. package/dist/agents/coder-agent.d.ts.map +1 -0
  154. package/dist/agents/coder-agent.js +1008 -0
  155. package/dist/agents/coder-agent.js.map +1 -0
  156. package/dist/agents/index.d.ts +18 -0
  157. package/dist/agents/index.d.ts.map +1 -0
  158. package/dist/agents/index.js +40 -0
  159. package/dist/agents/index.js.map +1 -0
  160. package/dist/agents/registry.d.ts +213 -0
  161. package/dist/agents/registry.d.ts.map +1 -0
  162. package/dist/agents/registry.js +419 -0
  163. package/dist/agents/registry.js.map +1 -0
  164. package/dist/agents/researcher-agent.d.ts +226 -0
  165. package/dist/agents/researcher-agent.d.ts.map +1 -0
  166. package/dist/agents/researcher-agent.js +572 -0
  167. package/dist/agents/researcher-agent.js.map +1 -0
  168. package/dist/agents/rules-engine.d.ts +320 -0
  169. package/dist/agents/rules-engine.d.ts.map +1 -0
  170. package/dist/agents/rules-engine.js +552 -0
  171. package/dist/agents/rules-engine.js.map +1 -0
  172. package/dist/agents/tester-agent.d.ts +219 -0
  173. package/dist/agents/tester-agent.d.ts.map +1 -0
  174. package/dist/agents/tester-agent.js +683 -0
  175. package/dist/agents/tester-agent.js.map +1 -0
  176. package/dist/agents/types.d.ts +425 -0
  177. package/dist/agents/types.d.ts.map +1 -0
  178. package/dist/agents/types.js +57 -0
  179. package/dist/agents/types.js.map +1 -0
  180. package/dist/caching/index.d.ts +55 -0
  181. package/dist/caching/index.d.ts.map +1 -0
  182. package/dist/caching/index.js +206 -0
  183. package/dist/caching/index.js.map +1 -0
  184. package/dist/caching/lru-cache.d.ts +254 -0
  185. package/dist/caching/lru-cache.d.ts.map +1 -0
  186. package/dist/caching/types.d.ts +95 -0
  187. package/dist/caching/types.d.ts.map +1 -0
  188. package/dist/chunking/chunker.d.ts +94 -0
  189. package/dist/chunking/chunker.d.ts.map +1 -0
  190. package/dist/chunking/index.d.ts +125 -0
  191. package/dist/chunking/index.d.ts.map +1 -0
  192. package/dist/chunking/index.js +283 -0
  193. package/dist/chunking/index.js.map +1 -0
  194. package/dist/chunking/types.d.ts +92 -0
  195. package/dist/chunking/types.d.ts.map +1 -0
  196. package/dist/cli/commands/commit.d.ts +11 -0
  197. package/dist/cli/commands/commit.d.ts.map +1 -0
  198. package/dist/cli/commands/commit.js +379 -0
  199. package/dist/cli/commands/commit.js.map +1 -0
  200. package/dist/cli/commands/config.d.ts +8 -0
  201. package/dist/cli/commands/config.d.ts.map +1 -0
  202. package/dist/cli/commands/config.js +107 -0
  203. package/dist/cli/commands/config.js.map +1 -0
  204. package/dist/cli/commands/cultivate.d.ts +16 -0
  205. package/dist/cli/commands/cultivate.d.ts.map +1 -0
  206. package/dist/cli/commands/cultivate.js +254 -0
  207. package/dist/cli/commands/cultivate.js.map +1 -0
  208. package/dist/cli/commands/diagnostics.d.ts +8 -0
  209. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  210. package/dist/cli/commands/diagnostics.js +140 -0
  211. package/dist/cli/commands/diagnostics.js.map +1 -0
  212. package/dist/cli/commands/generate.d.ts +13 -0
  213. package/dist/cli/commands/generate.d.ts.map +1 -0
  214. package/dist/cli/commands/init-primitives.d.ts +19 -0
  215. package/dist/cli/commands/init-primitives.d.ts.map +1 -0
  216. package/dist/cli/commands/init-primitives.js +208 -0
  217. package/dist/cli/commands/init-primitives.js.map +1 -0
  218. package/dist/cli/commands/sop.d.ts +14 -0
  219. package/dist/cli/commands/sop.d.ts.map +1 -0
  220. package/dist/cli/commands/sop.js +598 -0
  221. package/dist/cli/commands/sop.js.map +1 -0
  222. package/dist/cli/index.d.ts.map +1 -1
  223. package/dist/cli/index.js +40 -1
  224. package/dist/cli/index.js.map +1 -1
  225. package/dist/config/index.d.ts +153 -0
  226. package/dist/config/index.d.ts.map +1 -0
  227. package/dist/config/index.js +141 -0
  228. package/dist/config/index.js.map +1 -0
  229. package/dist/config/manager.d.ts +136 -0
  230. package/dist/config/manager.d.ts.map +1 -0
  231. package/dist/config/types.d.ts +127 -0
  232. package/dist/config/types.d.ts.map +1 -0
  233. package/dist/core/cache.d.ts +185 -0
  234. package/dist/core/cache.d.ts.map +1 -0
  235. package/dist/core/cache.js +435 -0
  236. package/dist/core/cache.js.map +1 -0
  237. package/dist/cultivation/deep-analyzer.d.ts +129 -0
  238. package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
  239. package/dist/cultivation/deep-analyzer.js +322 -0
  240. package/dist/cultivation/deep-analyzer.js.map +1 -0
  241. package/dist/cultivation/index.d.ts +13 -0
  242. package/dist/cultivation/index.d.ts.map +1 -0
  243. package/dist/cultivation/seed-generator.d.ts +92 -0
  244. package/dist/cultivation/seed-generator.d.ts.map +1 -0
  245. package/dist/cultivation/seed-generator.js +1033 -0
  246. package/dist/cultivation/seed-generator.js.map +1 -0
  247. package/dist/cultivation/types.d.ts +230 -0
  248. package/dist/cultivation/types.d.ts.map +1 -0
  249. package/dist/generators/claude-md.d.ts +7 -0
  250. package/dist/generators/claude-md.d.ts.map +1 -1
  251. package/dist/generators/claude-md.js.map +1 -1
  252. package/dist/generators/docs-init.d.ts +6 -0
  253. package/dist/generators/docs-init.d.ts.map +1 -1
  254. package/dist/generators/docs-init.js.map +1 -1
  255. package/dist/health/checks.d.ts +135 -0
  256. package/dist/health/checks.d.ts.map +1 -0
  257. package/dist/health/index.d.ts +119 -0
  258. package/dist/health/index.d.ts.map +1 -0
  259. package/dist/health/index.js +191 -0
  260. package/dist/health/index.js.map +1 -0
  261. package/dist/health/monitor.d.ts +146 -0
  262. package/dist/health/monitor.d.ts.map +1 -0
  263. package/dist/health/types.d.ts +135 -0
  264. package/dist/health/types.d.ts.map +1 -0
  265. package/dist/index.d.ts +30 -0
  266. package/dist/index.d.ts.map +1 -1
  267. package/dist/index.js +173 -1
  268. package/dist/index.js.map +1 -1
  269. package/dist/integrations/auto-commit.d.ts +175 -0
  270. package/dist/integrations/auto-commit.d.ts.map +1 -0
  271. package/dist/integrations/auto-commit.js +399 -0
  272. package/dist/integrations/auto-commit.js.map +1 -0
  273. package/dist/integrations/git.d.ts +299 -0
  274. package/dist/integrations/git.d.ts.map +1 -0
  275. package/dist/integrations/git.js +465 -0
  276. package/dist/integrations/git.js.map +1 -0
  277. package/dist/mcp-server/bin.d.ts +11 -0
  278. package/dist/mcp-server/bin.d.ts.map +1 -0
  279. package/dist/mcp-server/handlers/index.d.ts +57 -0
  280. package/dist/mcp-server/handlers/index.d.ts.map +1 -0
  281. package/dist/mcp-server/handlers/index.js +235 -0
  282. package/dist/mcp-server/handlers/index.js.map +1 -0
  283. package/dist/mcp-server/index.d.ts +28 -0
  284. package/dist/mcp-server/index.d.ts.map +1 -0
  285. package/dist/mcp-server/server.d.ts +133 -0
  286. package/dist/mcp-server/server.d.ts.map +1 -0
  287. package/dist/mcp-server/server.js +280 -0
  288. package/dist/mcp-server/server.js.map +1 -0
  289. package/dist/mcp-server/tools/agents/index.d.ts +10 -0
  290. package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
  291. package/dist/mcp-server/tools/agents/list.d.ts +19 -0
  292. package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
  293. package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
  294. package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
  295. package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
  296. package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
  297. package/dist/mcp-server/tools/graph/index.d.ts +11 -0
  298. package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
  299. package/dist/mcp-server/tools/graph/query.d.ts +22 -0
  300. package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
  301. package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
  302. package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
  303. package/dist/mcp-server/tools/health.d.ts +21 -0
  304. package/dist/mcp-server/tools/health.d.ts.map +1 -0
  305. package/dist/mcp-server/tools/index.d.ts +13 -0
  306. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  307. package/dist/mcp-server/tools/registry.d.ts +90 -0
  308. package/dist/mcp-server/tools/registry.d.ts.map +1 -0
  309. package/dist/mcp-server/tools/registry.js +663 -0
  310. package/dist/mcp-server/tools/registry.js.map +1 -0
  311. package/dist/mcp-server/tools/search/index.d.ts +10 -0
  312. package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
  313. package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
  314. package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
  315. package/dist/mcp-server/tools/search/tags.d.ts +22 -0
  316. package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
  317. package/dist/mcp-server/types/index.d.ts +286 -0
  318. package/dist/mcp-server/types/index.d.ts.map +1 -0
  319. package/dist/memory/index.d.ts +10 -0
  320. package/dist/memory/index.d.ts.map +1 -0
  321. package/dist/memory/vault-sync.d.ts +212 -0
  322. package/dist/memory/vault-sync.d.ts.map +1 -0
  323. package/dist/memory/vault-sync.js +463 -0
  324. package/dist/memory/vault-sync.js.map +1 -0
  325. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
  326. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  327. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
  328. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  329. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
  330. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  331. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
  332. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  333. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
  334. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  335. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
  336. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  337. package/dist/node_modules/ajv/dist/ajv.js +84 -0
  338. package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
  339. package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
  340. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  341. package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
  342. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  343. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
  344. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  345. package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
  346. package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
  347. package/dist/node_modules/ajv/dist/compile/index.js +234 -0
  348. package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
  349. package/dist/node_modules/ajv/dist/compile/names.js +44 -0
  350. package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
  351. package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
  352. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  353. package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
  354. package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  355. package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
  356. package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
  357. package/dist/node_modules/ajv/dist/compile/util.js +173 -0
  358. package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
  359. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
  360. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  361. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
  362. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  363. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
  364. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  365. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
  366. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  367. package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
  368. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  369. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
  370. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  371. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
  372. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  373. package/dist/node_modules/ajv/dist/core.js +628 -0
  374. package/dist/node_modules/ajv/dist/core.js.map +1 -0
  375. package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
  376. package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  377. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
  378. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  379. package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
  380. package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  381. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
  382. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  383. package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
  384. package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  385. package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
  386. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  387. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
  388. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  389. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
  390. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  391. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
  392. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  393. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
  394. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  395. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
  396. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  397. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
  398. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  399. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
  400. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  401. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
  402. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  403. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
  404. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  405. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
  406. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  407. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
  408. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  409. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
  410. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  411. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
  412. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  413. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
  414. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  415. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
  416. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  417. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
  418. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  419. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
  420. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  421. package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
  422. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  423. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
  424. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  425. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
  426. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  427. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
  428. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  429. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
  430. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  431. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
  432. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  433. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
  434. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  435. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
  436. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  437. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
  438. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  439. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
  440. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  441. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
  442. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  443. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
  444. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  445. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
  446. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  447. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
  448. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  449. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
  450. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  451. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
  452. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  453. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
  454. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  455. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
  456. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  457. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
  458. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  459. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
  460. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  461. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
  462. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  463. package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
  464. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  465. package/dist/node_modules/ajv-formats/dist/index.js +51 -0
  466. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  467. package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
  468. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  469. package/dist/node_modules/fast-deep-equal/index.js +39 -0
  470. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  471. package/dist/node_modules/fast-uri/index.js +261 -0
  472. package/dist/node_modules/fast-uri/index.js.map +1 -0
  473. package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
  474. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  475. package/dist/node_modules/fast-uri/lib/utils.js +261 -0
  476. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  477. package/dist/node_modules/json-schema-traverse/index.js +92 -0
  478. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  479. package/dist/node_modules/zod/v4/classic/errors.js +37 -0
  480. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  481. package/dist/node_modules/zod/v4/classic/iso.js +43 -0
  482. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  483. package/dist/node_modules/zod/v4/classic/parse.js +13 -0
  484. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  485. package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
  486. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  487. package/dist/node_modules/zod/v4/core/api.js +492 -0
  488. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  489. package/dist/node_modules/zod/v4/core/checks.js +405 -0
  490. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  491. package/dist/node_modules/zod/v4/core/core.js +58 -0
  492. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  493. package/dist/node_modules/zod/v4/core/doc.js +38 -0
  494. package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
  495. package/dist/node_modules/zod/v4/core/errors.js +82 -0
  496. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  497. package/dist/node_modules/zod/v4/core/parse.js +60 -0
  498. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  499. package/dist/node_modules/zod/v4/core/regexes.js +87 -0
  500. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  501. package/dist/node_modules/zod/v4/core/registries.js +52 -0
  502. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  503. package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
  504. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  505. package/dist/node_modules/zod/v4/core/util.js +341 -0
  506. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  507. package/dist/node_modules/zod/v4/core/versions.js +9 -0
  508. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  509. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
  510. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  511. package/dist/reasoning/index.d.ts +74 -0
  512. package/dist/reasoning/index.d.ts.map +1 -0
  513. package/dist/reasoning/index.js +124 -0
  514. package/dist/reasoning/index.js.map +1 -0
  515. package/dist/reasoning/tracker.d.ts +210 -0
  516. package/dist/reasoning/tracker.d.ts.map +1 -0
  517. package/dist/reasoning/types.d.ts +146 -0
  518. package/dist/reasoning/types.d.ts.map +1 -0
  519. package/dist/recovery/backup.d.ts +110 -0
  520. package/dist/recovery/backup.d.ts.map +1 -0
  521. package/dist/recovery/index.d.ts +70 -0
  522. package/dist/recovery/index.d.ts.map +1 -0
  523. package/dist/recovery/index.js +186 -0
  524. package/dist/recovery/index.js.map +1 -0
  525. package/dist/recovery/integrity.d.ts +74 -0
  526. package/dist/recovery/integrity.d.ts.map +1 -0
  527. package/dist/recovery/types.d.ts +94 -0
  528. package/dist/recovery/types.d.ts.map +1 -0
  529. package/dist/services/index.d.ts +130 -0
  530. package/dist/services/index.d.ts.map +1 -0
  531. package/dist/services/index.js +134 -0
  532. package/dist/services/index.js.map +1 -0
  533. package/dist/services/manager.d.ts +140 -0
  534. package/dist/services/manager.d.ts.map +1 -0
  535. package/dist/services/types.d.ts +106 -0
  536. package/dist/services/types.d.ts.map +1 -0
  537. package/dist/services/watchers.d.ts +95 -0
  538. package/dist/services/watchers.d.ts.map +1 -0
  539. package/dist/sops/compliance-checker.d.ts +83 -0
  540. package/dist/sops/compliance-checker.d.ts.map +1 -0
  541. package/dist/sops/compliance-checker.js +399 -0
  542. package/dist/sops/compliance-checker.js.map +1 -0
  543. package/dist/sops/gap-analyzer.d.ts +124 -0
  544. package/dist/sops/gap-analyzer.d.ts.map +1 -0
  545. package/dist/sops/gap-analyzer.js +313 -0
  546. package/dist/sops/gap-analyzer.js.map +1 -0
  547. package/dist/sops/index.d.ts +14 -0
  548. package/dist/sops/index.d.ts.map +1 -0
  549. package/dist/sops/overlay-manager.d.ts +115 -0
  550. package/dist/sops/overlay-manager.d.ts.map +1 -0
  551. package/dist/sops/overlay-manager.js +394 -0
  552. package/dist/sops/overlay-manager.js.map +1 -0
  553. package/dist/sops/registry.d.ts +73 -0
  554. package/dist/sops/registry.d.ts.map +1 -0
  555. package/dist/sops/registry.js +919 -0
  556. package/dist/sops/registry.js.map +1 -0
  557. package/dist/sops/types.d.ts +377 -0
  558. package/dist/sops/types.d.ts.map +1 -0
  559. package/dist/sops/types.js +46 -0
  560. package/dist/sops/types.js.map +1 -0
  561. package/dist/utils/error-recovery.d.ts +230 -0
  562. package/dist/utils/error-recovery.d.ts.map +1 -0
  563. package/dist/utils/error-recovery.js +228 -0
  564. package/dist/utils/error-recovery.js.map +1 -0
  565. package/dist/utils/error-taxonomy.d.ts +149 -0
  566. package/dist/utils/error-taxonomy.d.ts.map +1 -0
  567. package/dist/utils/error-taxonomy.js +260 -0
  568. package/dist/utils/error-taxonomy.js.map +1 -0
  569. package/dist/utils/index.d.ts +11 -0
  570. package/dist/utils/index.d.ts.map +1 -0
  571. package/dist/utils/logger.d.ts +139 -0
  572. package/dist/utils/logger.d.ts.map +1 -0
  573. package/dist/utils/logger.js +311 -0
  574. package/dist/utils/logger.js.map +1 -0
  575. package/dist/workflows/index.d.ts +11 -0
  576. package/dist/workflows/index.d.ts.map +1 -0
  577. package/dist/workflows/registry.d.ts +118 -0
  578. package/dist/workflows/registry.d.ts.map +1 -0
  579. package/dist/workflows/registry.js +575 -0
  580. package/dist/workflows/registry.js.map +1 -0
  581. package/dist/workflows/types.d.ts +322 -0
  582. package/dist/workflows/types.d.ts.map +1 -0
  583. package/dist/workflows/types.js +16 -0
  584. package/dist/workflows/types.js.map +1 -0
  585. package/package.json +1 -1
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Text Chunker - Split large documents into manageable chunks
3
+ *
4
+ * Provides multiple chunking strategies for different content types:
5
+ * - Fixed: Simple character-based chunking with overlap
6
+ * - Semantic: Paragraph-based chunking respecting natural boundaries
7
+ * - Markdown: Respects markdown structure (headers, sections)
8
+ * - Code: Preserves code blocks and structure
9
+ * - Adaptive: Auto-selects the best strategy based on content
10
+ *
11
+ * @module chunking/chunker
12
+ */
13
+ import type { ChunkOptions, ChunkResult, ChunkerConfig } from './types.js';
14
+ /**
15
+ * Text Chunker class
16
+ *
17
+ * Splits documents into chunks using various strategies.
18
+ * Maintains document structure and provides metadata for each chunk.
19
+ */
20
+ export declare class Chunker {
21
+ private config;
22
+ private defaultOptions;
23
+ constructor(config?: Partial<ChunkerConfig>);
24
+ /**
25
+ * Chunk content using the specified or default strategy
26
+ *
27
+ * @param content - The content to chunk
28
+ * @param options - Chunking options
29
+ * @returns ChunkResult with all chunks and metadata
30
+ */
31
+ chunk(content: string, options?: Partial<ChunkOptions>): ChunkResult;
32
+ /**
33
+ * Fixed-size chunking with optional overlap
34
+ *
35
+ * Simple character-based chunking. Best for uniform content
36
+ * where structure doesn't matter.
37
+ */
38
+ private chunkFixed;
39
+ /**
40
+ * Semantic chunking based on paragraph boundaries
41
+ *
42
+ * Respects natural paragraph breaks (double newlines).
43
+ * Groups paragraphs until maxSize is reached.
44
+ */
45
+ private chunkSemantic;
46
+ /**
47
+ * Markdown-aware chunking
48
+ *
49
+ * Respects markdown header structure. Each major section
50
+ * becomes its own chunk when possible.
51
+ */
52
+ private chunkMarkdown;
53
+ /**
54
+ * Code-aware chunking
55
+ *
56
+ * Preserves code blocks (fenced with ```) as atomic units.
57
+ * Non-code sections are chunked semantically.
58
+ */
59
+ private chunkCode;
60
+ /**
61
+ * Adaptive chunking - auto-selects best strategy
62
+ *
63
+ * Analyzes content to determine the best chunking strategy:
64
+ * - Code blocks present -> code strategy
65
+ * - Markdown headers present -> markdown strategy
66
+ * - Default -> semantic strategy
67
+ */
68
+ private chunkAdaptive;
69
+ /**
70
+ * Create a chunk object with metadata
71
+ */
72
+ private createChunk;
73
+ /**
74
+ * Detect content type from the content itself
75
+ */
76
+ private detectType;
77
+ /**
78
+ * Get the current configuration
79
+ */
80
+ getConfig(): ChunkerConfig;
81
+ /**
82
+ * Update configuration
83
+ */
84
+ setConfig(config: Partial<ChunkerConfig>): void;
85
+ }
86
+ /**
87
+ * Create a new Chunker instance with optional configuration
88
+ */
89
+ export declare function createChunker(config?: Partial<ChunkerConfig>): Chunker;
90
+ /**
91
+ * Convenience function to chunk a document without creating a Chunker instance
92
+ */
93
+ export declare function chunkDocument(content: string, options?: Partial<ChunkOptions>): ChunkResult;
94
+ //# sourceMappingURL=chunker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../src/chunking/chunker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAapB;;;;;GAKG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAAe;gBAEzB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAW/C;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,WAAW;IAqDpE;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAwBlB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAmCrB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA4CrB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAoDjB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IA+BnB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4BlB;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;CAShD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,WAAW,CAG3F"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Document Chunking Module
3
+ *
4
+ * Provides intelligent document chunking for RAG and vector search.
5
+ */
6
+ /**
7
+ * Chunking strategy
8
+ */
9
+ export type ChunkStrategy = 'fixed' | 'sentence' | 'paragraph' | 'semantic' | 'markdown' | 'code';
10
+ /**
11
+ * Chunking options
12
+ */
13
+ export interface ChunkOptions {
14
+ /** Chunking strategy */
15
+ strategy: ChunkStrategy;
16
+ /** Target chunk size in characters */
17
+ chunkSize?: number;
18
+ /** Overlap between chunks in characters */
19
+ overlap?: number;
20
+ /** Minimum chunk size */
21
+ minChunkSize?: number;
22
+ /** Maximum chunk size */
23
+ maxChunkSize?: number;
24
+ /** Include metadata in chunks */
25
+ includeMetadata?: boolean;
26
+ /** Preserve code blocks */
27
+ preserveCodeBlocks?: boolean;
28
+ }
29
+ /**
30
+ * Chunk metadata
31
+ */
32
+ export interface ChunkMetadata {
33
+ /** Source document path */
34
+ source: string;
35
+ /** Chunk index in document */
36
+ index: number;
37
+ /** Total chunks in document */
38
+ total: number;
39
+ /** Start position in original document */
40
+ startPosition: number;
41
+ /** End position in original document */
42
+ endPosition: number;
43
+ /** Heading hierarchy */
44
+ headings?: string[];
45
+ /** Code language (for code chunks) */
46
+ language?: string;
47
+ }
48
+ /**
49
+ * A single chunk
50
+ */
51
+ export interface Chunk {
52
+ /** Unique chunk ID */
53
+ id: string;
54
+ /** Chunk content */
55
+ content: string;
56
+ /** Chunk metadata */
57
+ metadata: ChunkMetadata;
58
+ /** Token count estimate */
59
+ tokenCount?: number;
60
+ }
61
+ /**
62
+ * Chunking result
63
+ */
64
+ export interface ChunkResult {
65
+ /** Generated chunks */
66
+ chunks: Chunk[];
67
+ /** Original document length */
68
+ originalLength: number;
69
+ /** Strategy used */
70
+ strategy: ChunkStrategy;
71
+ /** Processing time in milliseconds */
72
+ processingTime: number;
73
+ }
74
+ /**
75
+ * Document Chunker for splitting documents into chunks
76
+ */
77
+ export declare class Chunker {
78
+ private defaultOptions;
79
+ constructor(options?: Partial<ChunkOptions>);
80
+ /**
81
+ * Chunk a document
82
+ */
83
+ chunk(content: string, source: string, options?: Partial<ChunkOptions>): ChunkResult;
84
+ /**
85
+ * Fixed-size chunking
86
+ */
87
+ private chunkFixed;
88
+ /**
89
+ * Sentence-based chunking
90
+ */
91
+ private chunkBySentence;
92
+ /**
93
+ * Paragraph-based chunking
94
+ */
95
+ private chunkByParagraph;
96
+ /**
97
+ * Markdown-aware chunking
98
+ */
99
+ private chunkByMarkdown;
100
+ /**
101
+ * Code-aware chunking
102
+ */
103
+ private chunkByCode;
104
+ /**
105
+ * Semantic chunking (placeholder for more advanced implementation)
106
+ */
107
+ private chunkSemantic;
108
+ /**
109
+ * Aggregate small chunks into larger ones
110
+ */
111
+ private aggregateChunks;
112
+ /**
113
+ * Estimate token count
114
+ */
115
+ private estimateTokens;
116
+ }
117
+ /**
118
+ * Create a new Chunker instance
119
+ */
120
+ export declare function createChunker(options?: Partial<ChunkOptions>): Chunker;
121
+ /**
122
+ * Convenience function to chunk a document
123
+ */
124
+ export declare function chunkDocument(content: string, source: string, options?: Partial<ChunkOptions>): ChunkResult;
125
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chunking/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,UAAU,GACV,WAAW,GACX,UAAU,GACV,UAAU,GACV,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,cAAc,CAQpB;gBAEU,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAM3C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,WAAW;IAoCpF;;OAEG;IACH,OAAO,CAAC,UAAU;IAqClB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgDvB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4EnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwDvB;;OAEG;IACH,OAAO,CAAC,cAAc;CAIvB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,WAAW,CAGb"}
@@ -0,0 +1,283 @@
1
+ class Chunker {
2
+ defaultOptions = {
3
+ strategy: "paragraph",
4
+ chunkSize: 1e3,
5
+ overlap: 100,
6
+ minChunkSize: 100,
7
+ maxChunkSize: 2e3,
8
+ includeMetadata: true,
9
+ preserveCodeBlocks: true
10
+ };
11
+ constructor(options) {
12
+ if (options) {
13
+ this.defaultOptions = { ...this.defaultOptions, ...options };
14
+ }
15
+ }
16
+ /**
17
+ * Chunk a document
18
+ */
19
+ chunk(content, source, options) {
20
+ const startTime = Date.now();
21
+ const opts = { ...this.defaultOptions, ...options };
22
+ let chunks;
23
+ switch (opts.strategy) {
24
+ case "fixed":
25
+ chunks = this.chunkFixed(content, source, opts);
26
+ break;
27
+ case "sentence":
28
+ chunks = this.chunkBySentence(content, source, opts);
29
+ break;
30
+ case "paragraph":
31
+ chunks = this.chunkByParagraph(content, source, opts);
32
+ break;
33
+ case "markdown":
34
+ chunks = this.chunkByMarkdown(content, source, opts);
35
+ break;
36
+ case "code":
37
+ chunks = this.chunkByCode(content, source, opts);
38
+ break;
39
+ case "semantic":
40
+ chunks = this.chunkSemantic(content, source, opts);
41
+ break;
42
+ default:
43
+ chunks = this.chunkByParagraph(content, source, opts);
44
+ }
45
+ return {
46
+ chunks,
47
+ originalLength: content.length,
48
+ strategy: opts.strategy,
49
+ processingTime: Date.now() - startTime
50
+ };
51
+ }
52
+ /**
53
+ * Fixed-size chunking
54
+ */
55
+ chunkFixed(content, source, opts) {
56
+ const chunks = [];
57
+ const chunkSize = opts.chunkSize || 1e3;
58
+ const overlap = opts.overlap || 0;
59
+ let position = 0;
60
+ let index = 0;
61
+ while (position < content.length) {
62
+ const end = Math.min(position + chunkSize, content.length);
63
+ const chunkContent = content.slice(position, end);
64
+ chunks.push({
65
+ id: `${source}-${index}`,
66
+ content: chunkContent,
67
+ metadata: {
68
+ source,
69
+ index,
70
+ total: 0,
71
+ // Will be updated after
72
+ startPosition: position,
73
+ endPosition: end
74
+ },
75
+ tokenCount: this.estimateTokens(chunkContent)
76
+ });
77
+ position = end - overlap;
78
+ index++;
79
+ }
80
+ chunks.forEach((chunk) => {
81
+ chunk.metadata.total = chunks.length;
82
+ });
83
+ return chunks;
84
+ }
85
+ /**
86
+ * Sentence-based chunking
87
+ */
88
+ chunkBySentence(content, source, opts) {
89
+ const sentences = content.split(/(?<=[.!?])\s+/);
90
+ return this.aggregateChunks(sentences, source, opts);
91
+ }
92
+ /**
93
+ * Paragraph-based chunking
94
+ */
95
+ chunkByParagraph(content, source, opts) {
96
+ const paragraphs = content.split(/\n\n+/);
97
+ return this.aggregateChunks(paragraphs, source, opts);
98
+ }
99
+ /**
100
+ * Markdown-aware chunking
101
+ */
102
+ chunkByMarkdown(content, source, opts) {
103
+ const sections = [];
104
+ const headings = [];
105
+ const headerRegex = /^(#{1,6})\s+(.+)$/gm;
106
+ let lastIndex = 0;
107
+ let currentHeadings = [];
108
+ let match;
109
+ while ((match = headerRegex.exec(content)) !== null) {
110
+ if (lastIndex < match.index) {
111
+ sections.push(content.slice(lastIndex, match.index).trim());
112
+ headings.push([...currentHeadings]);
113
+ }
114
+ const level = match[1].length;
115
+ const heading = match[2];
116
+ currentHeadings = currentHeadings.slice(0, level - 1);
117
+ currentHeadings[level - 1] = heading;
118
+ lastIndex = match.index;
119
+ }
120
+ if (lastIndex < content.length) {
121
+ sections.push(content.slice(lastIndex).trim());
122
+ headings.push([...currentHeadings]);
123
+ }
124
+ return sections.filter((s) => s.length > 0).map((section, index) => ({
125
+ id: `${source}-${index}`,
126
+ content: section,
127
+ metadata: {
128
+ source,
129
+ index,
130
+ total: sections.length,
131
+ startPosition: 0,
132
+ endPosition: section.length,
133
+ headings: headings[index]
134
+ },
135
+ tokenCount: this.estimateTokens(section)
136
+ }));
137
+ }
138
+ /**
139
+ * Code-aware chunking
140
+ */
141
+ chunkByCode(content, source, opts) {
142
+ const chunks = [];
143
+ const codeBlockRegex = /```(\w+)?\n([\s\S]*?)```/g;
144
+ let lastIndex = 0;
145
+ let index = 0;
146
+ let match;
147
+ while ((match = codeBlockRegex.exec(content)) !== null) {
148
+ if (lastIndex < match.index) {
149
+ const textContent = content.slice(lastIndex, match.index).trim();
150
+ if (textContent) {
151
+ chunks.push({
152
+ id: `${source}-${index}`,
153
+ content: textContent,
154
+ metadata: {
155
+ source,
156
+ index,
157
+ total: 0,
158
+ startPosition: lastIndex,
159
+ endPosition: match.index
160
+ },
161
+ tokenCount: this.estimateTokens(textContent)
162
+ });
163
+ index++;
164
+ }
165
+ }
166
+ const language = match[1] || "unknown";
167
+ const codeContent = match[2].trim();
168
+ chunks.push({
169
+ id: `${source}-${index}`,
170
+ content: codeContent,
171
+ metadata: {
172
+ source,
173
+ index,
174
+ total: 0,
175
+ startPosition: match.index,
176
+ endPosition: match.index + match[0].length,
177
+ language
178
+ },
179
+ tokenCount: this.estimateTokens(codeContent)
180
+ });
181
+ index++;
182
+ lastIndex = match.index + match[0].length;
183
+ }
184
+ if (lastIndex < content.length) {
185
+ const textContent = content.slice(lastIndex).trim();
186
+ if (textContent) {
187
+ chunks.push({
188
+ id: `${source}-${index}`,
189
+ content: textContent,
190
+ metadata: {
191
+ source,
192
+ index,
193
+ total: 0,
194
+ startPosition: lastIndex,
195
+ endPosition: content.length
196
+ },
197
+ tokenCount: this.estimateTokens(textContent)
198
+ });
199
+ }
200
+ }
201
+ chunks.forEach((chunk) => {
202
+ chunk.metadata.total = chunks.length;
203
+ });
204
+ return chunks;
205
+ }
206
+ /**
207
+ * Semantic chunking (placeholder for more advanced implementation)
208
+ */
209
+ chunkSemantic(content, source, opts) {
210
+ return this.chunkByParagraph(content, source, opts);
211
+ }
212
+ /**
213
+ * Aggregate small chunks into larger ones
214
+ */
215
+ aggregateChunks(parts, source, opts) {
216
+ const chunks = [];
217
+ const chunkSize = opts.chunkSize || 1e3;
218
+ const minSize = opts.minChunkSize || 100;
219
+ let currentContent = "";
220
+ let index = 0;
221
+ let startPos = 0;
222
+ for (const part of parts) {
223
+ const trimmedPart = part.trim();
224
+ if (!trimmedPart) continue;
225
+ if (currentContent.length + trimmedPart.length > chunkSize && currentContent.length >= minSize) {
226
+ chunks.push({
227
+ id: `${source}-${index}`,
228
+ content: currentContent.trim(),
229
+ metadata: {
230
+ source,
231
+ index,
232
+ total: 0,
233
+ startPosition: startPos,
234
+ endPosition: startPos + currentContent.length
235
+ },
236
+ tokenCount: this.estimateTokens(currentContent)
237
+ });
238
+ index++;
239
+ startPos += currentContent.length;
240
+ currentContent = trimmedPart;
241
+ } else {
242
+ currentContent += (currentContent ? "\n\n" : "") + trimmedPart;
243
+ }
244
+ }
245
+ if (currentContent.trim()) {
246
+ chunks.push({
247
+ id: `${source}-${index}`,
248
+ content: currentContent.trim(),
249
+ metadata: {
250
+ source,
251
+ index,
252
+ total: 0,
253
+ startPosition: startPos,
254
+ endPosition: startPos + currentContent.length
255
+ },
256
+ tokenCount: this.estimateTokens(currentContent)
257
+ });
258
+ }
259
+ chunks.forEach((chunk) => {
260
+ chunk.metadata.total = chunks.length;
261
+ });
262
+ return chunks;
263
+ }
264
+ /**
265
+ * Estimate token count
266
+ */
267
+ estimateTokens(content) {
268
+ return Math.ceil(content.length / 4);
269
+ }
270
+ }
271
+ function createChunker(options) {
272
+ return new Chunker(options);
273
+ }
274
+ function chunkDocument(content, source, options) {
275
+ const chunker = new Chunker(options);
276
+ return chunker.chunk(content, source, options);
277
+ }
278
+ export {
279
+ Chunker,
280
+ chunkDocument,
281
+ createChunker
282
+ };
283
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/chunking/index.ts"],"sourcesContent":["/**\n * Document Chunking Module\n *\n * Provides intelligent document chunking for RAG and vector search.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Chunking strategy\n */\nexport type ChunkStrategy =\n | 'fixed' // Fixed size chunks\n | 'sentence' // Sentence-based chunks\n | 'paragraph' // Paragraph-based chunks\n | 'semantic' // Semantic-based chunks\n | 'markdown' // Markdown structure-aware chunks\n | 'code'; // Code-aware chunks\n\n/**\n * Chunking options\n */\nexport interface ChunkOptions {\n /** Chunking strategy */\n strategy: ChunkStrategy;\n /** Target chunk size in characters */\n chunkSize?: number;\n /** Overlap between chunks in characters */\n overlap?: number;\n /** Minimum chunk size */\n minChunkSize?: number;\n /** Maximum chunk size */\n maxChunkSize?: number;\n /** Include metadata in chunks */\n includeMetadata?: boolean;\n /** Preserve code blocks */\n preserveCodeBlocks?: boolean;\n}\n\n/**\n * Chunk metadata\n */\nexport interface ChunkMetadata {\n /** Source document path */\n source: string;\n /** Chunk index in document */\n index: number;\n /** Total chunks in document */\n total: number;\n /** Start position in original document */\n startPosition: number;\n /** End position in original document */\n endPosition: number;\n /** Heading hierarchy */\n headings?: string[];\n /** Code language (for code chunks) */\n language?: string;\n}\n\n/**\n * A single chunk\n */\nexport interface Chunk {\n /** Unique chunk ID */\n id: string;\n /** Chunk content */\n content: string;\n /** Chunk metadata */\n metadata: ChunkMetadata;\n /** Token count estimate */\n tokenCount?: number;\n}\n\n/**\n * Chunking result\n */\nexport interface ChunkResult {\n /** Generated chunks */\n chunks: Chunk[];\n /** Original document length */\n originalLength: number;\n /** Strategy used */\n strategy: ChunkStrategy;\n /** Processing time in milliseconds */\n processingTime: number;\n}\n\n// ============================================================================\n// Chunker Implementation\n// ============================================================================\n\n/**\n * Document Chunker for splitting documents into chunks\n */\nexport class Chunker {\n private defaultOptions: ChunkOptions = {\n strategy: 'paragraph',\n chunkSize: 1000,\n overlap: 100,\n minChunkSize: 100,\n maxChunkSize: 2000,\n includeMetadata: true,\n preserveCodeBlocks: true,\n };\n\n constructor(options?: Partial<ChunkOptions>) {\n if (options) {\n this.defaultOptions = { ...this.defaultOptions, ...options };\n }\n }\n\n /**\n * Chunk a document\n */\n chunk(content: string, source: string, options?: Partial<ChunkOptions>): ChunkResult {\n const startTime = Date.now();\n const opts = { ...this.defaultOptions, ...options };\n\n let chunks: Chunk[];\n switch (opts.strategy) {\n case 'fixed':\n chunks = this.chunkFixed(content, source, opts);\n break;\n case 'sentence':\n chunks = this.chunkBySentence(content, source, opts);\n break;\n case 'paragraph':\n chunks = this.chunkByParagraph(content, source, opts);\n break;\n case 'markdown':\n chunks = this.chunkByMarkdown(content, source, opts);\n break;\n case 'code':\n chunks = this.chunkByCode(content, source, opts);\n break;\n case 'semantic':\n chunks = this.chunkSemantic(content, source, opts);\n break;\n default:\n chunks = this.chunkByParagraph(content, source, opts);\n }\n\n return {\n chunks,\n originalLength: content.length,\n strategy: opts.strategy,\n processingTime: Date.now() - startTime,\n };\n }\n\n /**\n * Fixed-size chunking\n */\n private chunkFixed(content: string, source: string, opts: ChunkOptions): Chunk[] {\n const chunks: Chunk[] = [];\n const chunkSize = opts.chunkSize || 1000;\n const overlap = opts.overlap || 0;\n\n let position = 0;\n let index = 0;\n\n while (position < content.length) {\n const end = Math.min(position + chunkSize, content.length);\n const chunkContent = content.slice(position, end);\n\n chunks.push({\n id: `${source}-${index}`,\n content: chunkContent,\n metadata: {\n source,\n index,\n total: 0, // Will be updated after\n startPosition: position,\n endPosition: end,\n },\n tokenCount: this.estimateTokens(chunkContent),\n });\n\n position = end - overlap;\n index++;\n }\n\n // Update total count\n chunks.forEach((chunk) => {\n chunk.metadata.total = chunks.length;\n });\n\n return chunks;\n }\n\n /**\n * Sentence-based chunking\n */\n private chunkBySentence(content: string, source: string, opts: ChunkOptions): Chunk[] {\n const sentences = content.split(/(?<=[.!?])\\s+/);\n return this.aggregateChunks(sentences, source, opts);\n }\n\n /**\n * Paragraph-based chunking\n */\n private chunkByParagraph(content: string, source: string, opts: ChunkOptions): Chunk[] {\n const paragraphs = content.split(/\\n\\n+/);\n return this.aggregateChunks(paragraphs, source, opts);\n }\n\n /**\n * Markdown-aware chunking\n */\n private chunkByMarkdown(content: string, source: string, opts: ChunkOptions): Chunk[] {\n const sections: string[] = [];\n const headings: string[][] = [];\n\n // Split by headers\n const headerRegex = /^(#{1,6})\\s+(.+)$/gm;\n let lastIndex = 0;\n let currentHeadings: string[] = [];\n let match;\n\n while ((match = headerRegex.exec(content)) !== null) {\n if (lastIndex < match.index) {\n sections.push(content.slice(lastIndex, match.index).trim());\n headings.push([...currentHeadings]);\n }\n\n const level = match[1].length;\n const heading = match[2];\n\n // Update heading hierarchy\n currentHeadings = currentHeadings.slice(0, level - 1);\n currentHeadings[level - 1] = heading;\n\n lastIndex = match.index;\n }\n\n if (lastIndex < content.length) {\n sections.push(content.slice(lastIndex).trim());\n headings.push([...currentHeadings]);\n }\n\n return sections\n .filter((s) => s.length > 0)\n .map((section, index) => ({\n id: `${source}-${index}`,\n content: section,\n metadata: {\n source,\n index,\n total: sections.length,\n startPosition: 0,\n endPosition: section.length,\n headings: headings[index],\n },\n tokenCount: this.estimateTokens(section),\n }));\n }\n\n /**\n * Code-aware chunking\n */\n private chunkByCode(content: string, source: string, opts: ChunkOptions): Chunk[] {\n const chunks: Chunk[] = [];\n const codeBlockRegex = /```(\\w+)?\\n([\\s\\S]*?)```/g;\n\n let lastIndex = 0;\n let index = 0;\n let match;\n\n while ((match = codeBlockRegex.exec(content)) !== null) {\n // Add text before code block\n if (lastIndex < match.index) {\n const textContent = content.slice(lastIndex, match.index).trim();\n if (textContent) {\n chunks.push({\n id: `${source}-${index}`,\n content: textContent,\n metadata: {\n source,\n index,\n total: 0,\n startPosition: lastIndex,\n endPosition: match.index,\n },\n tokenCount: this.estimateTokens(textContent),\n });\n index++;\n }\n }\n\n // Add code block\n const language = match[1] || 'unknown';\n const codeContent = match[2].trim();\n chunks.push({\n id: `${source}-${index}`,\n content: codeContent,\n metadata: {\n source,\n index,\n total: 0,\n startPosition: match.index,\n endPosition: match.index + match[0].length,\n language,\n },\n tokenCount: this.estimateTokens(codeContent),\n });\n index++;\n lastIndex = match.index + match[0].length;\n }\n\n // Add remaining text\n if (lastIndex < content.length) {\n const textContent = content.slice(lastIndex).trim();\n if (textContent) {\n chunks.push({\n id: `${source}-${index}`,\n content: textContent,\n metadata: {\n source,\n index,\n total: 0,\n startPosition: lastIndex,\n endPosition: content.length,\n },\n tokenCount: this.estimateTokens(textContent),\n });\n }\n }\n\n // Update totals\n chunks.forEach((chunk) => {\n chunk.metadata.total = chunks.length;\n });\n\n return chunks;\n }\n\n /**\n * Semantic chunking (placeholder for more advanced implementation)\n */\n private chunkSemantic(content: string, source: string, opts: ChunkOptions): Chunk[] {\n // For now, fall back to paragraph chunking\n // Future: Use embeddings to find semantic boundaries\n return this.chunkByParagraph(content, source, opts);\n }\n\n /**\n * Aggregate small chunks into larger ones\n */\n private aggregateChunks(parts: string[], source: string, opts: ChunkOptions): Chunk[] {\n const chunks: Chunk[] = [];\n const chunkSize = opts.chunkSize || 1000;\n const minSize = opts.minChunkSize || 100;\n\n let currentContent = '';\n let index = 0;\n let startPos = 0;\n\n for (const part of parts) {\n const trimmedPart = part.trim();\n if (!trimmedPart) continue;\n\n if (currentContent.length + trimmedPart.length > chunkSize && currentContent.length >= minSize) {\n chunks.push({\n id: `${source}-${index}`,\n content: currentContent.trim(),\n metadata: {\n source,\n index,\n total: 0,\n startPosition: startPos,\n endPosition: startPos + currentContent.length,\n },\n tokenCount: this.estimateTokens(currentContent),\n });\n index++;\n startPos += currentContent.length;\n currentContent = trimmedPart;\n } else {\n currentContent += (currentContent ? '\\n\\n' : '') + trimmedPart;\n }\n }\n\n if (currentContent.trim()) {\n chunks.push({\n id: `${source}-${index}`,\n content: currentContent.trim(),\n metadata: {\n source,\n index,\n total: 0,\n startPosition: startPos,\n endPosition: startPos + currentContent.length,\n },\n tokenCount: this.estimateTokens(currentContent),\n });\n }\n\n chunks.forEach((chunk) => {\n chunk.metadata.total = chunks.length;\n });\n\n return chunks;\n }\n\n /**\n * Estimate token count\n */\n private estimateTokens(content: string): number {\n // Rough estimation: ~4 characters per token for English\n return Math.ceil(content.length / 4);\n }\n}\n\n/**\n * Create a new Chunker instance\n */\nexport function createChunker(options?: Partial<ChunkOptions>): Chunker {\n return new Chunker(options);\n}\n\n/**\n * Convenience function to chunk a document\n */\nexport function chunkDocument(\n content: string,\n source: string,\n options?: Partial<ChunkOptions>\n): ChunkResult {\n const chunker = new Chunker(options);\n return chunker.chunk(content, source, options);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Chunking System Types
3
+ *
4
+ * Type definitions for the document chunking system.
5
+ * Supports multiple chunking strategies for different content types.
6
+ *
7
+ * @module chunking/types
8
+ */
9
+ /**
10
+ * Available chunking strategies
11
+ *
12
+ * - fixed: Fixed-size chunks with optional overlap
13
+ * - semantic: Paragraph-based semantic boundaries
14
+ * - markdown: Respects markdown header structure
15
+ * - code: Preserves code blocks and structure
16
+ * - adaptive: Auto-selects best strategy based on content
17
+ */
18
+ export type ChunkStrategy = 'fixed' | 'semantic' | 'markdown' | 'code' | 'adaptive';
19
+ /**
20
+ * Configuration options for chunking
21
+ */
22
+ export interface ChunkOptions {
23
+ /** Chunking strategy to use */
24
+ strategy: ChunkStrategy;
25
+ /** Maximum chunk size in characters */
26
+ maxSize: number;
27
+ /** Minimum chunk size in characters (chunks smaller than this may be merged) */
28
+ minSize?: number;
29
+ /** Number of characters to overlap between chunks */
30
+ overlap?: number;
31
+ /** Whether to preserve document structure (headers, code blocks, etc.) */
32
+ preserveStructure?: boolean;
33
+ }
34
+ /**
35
+ * A single chunk of content
36
+ */
37
+ export interface Chunk {
38
+ /** Unique identifier for this chunk (hash-based) */
39
+ id: string;
40
+ /** The content of the chunk */
41
+ content: string;
42
+ /** Start offset in the original document */
43
+ startOffset: number;
44
+ /** End offset in the original document */
45
+ endOffset: number;
46
+ /** Metadata about the chunk */
47
+ metadata: ChunkMetadata;
48
+ }
49
+ /**
50
+ * Metadata about a chunk
51
+ */
52
+ export interface ChunkMetadata {
53
+ /** Type of content in the chunk */
54
+ type: 'header' | 'paragraph' | 'code' | 'list' | 'mixed';
55
+ /** Header level (1-6) if type is 'header' */
56
+ level?: number;
57
+ /** Programming language if type is 'code' */
58
+ language?: string;
59
+ /** Word count in the chunk */
60
+ wordCount: number;
61
+ /** Line count in the chunk */
62
+ lineCount: number;
63
+ /** Whether the chunk contains links (wiki-style or markdown) */
64
+ hasLinks: boolean;
65
+ /** Parent chunk ID if this is a sub-chunk */
66
+ parentChunkId?: string;
67
+ }
68
+ /**
69
+ * Result of a chunking operation
70
+ */
71
+ export interface ChunkResult {
72
+ /** Array of generated chunks */
73
+ chunks: Chunk[];
74
+ /** Total size of the original content */
75
+ totalSize: number;
76
+ /** Strategy that was used */
77
+ strategy: ChunkStrategy;
78
+ /** Time taken to process in milliseconds */
79
+ processingTime: number;
80
+ }
81
+ /**
82
+ * Chunker configuration
83
+ */
84
+ export interface ChunkerConfig {
85
+ /** Default strategy to use when none specified */
86
+ defaultStrategy: ChunkStrategy;
87
+ /** Default maximum chunk size */
88
+ defaultMaxSize: number;
89
+ /** Default overlap between chunks */
90
+ defaultOverlap: number;
91
+ }
92
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chunking/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,CAAC;IAExB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAEhB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IAEX,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAEhB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAEzD,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,gEAAgE;IAChE,QAAQ,EAAE,OAAO,CAAC;IAElB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,QAAQ,EAAE,aAAa,CAAC;IAExB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,eAAe,EAAE,aAAa,CAAC;IAE/B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IAEvB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Commit Command
3
+ *
4
+ * CLI command for creating commits with optional AI-powered message generation.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Create commit command
9
+ */
10
+ export declare function createCommitCommand(): Command;
11
+ //# sourceMappingURL=commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsTpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyM7C"}