@jcode.labs/ragmir 2.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 (142) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +102 -0
  3. package/dist/access-log.d.ts +11 -0
  4. package/dist/access-log.d.ts.map +1 -0
  5. package/dist/access-log.js +145 -0
  6. package/dist/access-log.js.map +1 -0
  7. package/dist/chunking.d.ts +3 -0
  8. package/dist/chunking.d.ts.map +1 -0
  9. package/dist/chunking.js +58 -0
  10. package/dist/chunking.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +944 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config.d.ts +11 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +224 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/defaults.d.ts +17 -0
  20. package/dist/defaults.d.ts.map +1 -0
  21. package/dist/defaults.js +59 -0
  22. package/dist/defaults.js.map +1 -0
  23. package/dist/destroy.d.ts +3 -0
  24. package/dist/destroy.d.ts.map +1 -0
  25. package/dist/destroy.js +16 -0
  26. package/dist/destroy.js.map +1 -0
  27. package/dist/doctor.d.ts +3 -0
  28. package/dist/doctor.d.ts.map +1 -0
  29. package/dist/doctor.js +117 -0
  30. package/dist/doctor.js.map +1 -0
  31. package/dist/embeddings.d.ts +9 -0
  32. package/dist/embeddings.d.ts.map +1 -0
  33. package/dist/embeddings.js +110 -0
  34. package/dist/embeddings.js.map +1 -0
  35. package/dist/evaluate.d.ts +3 -0
  36. package/dist/evaluate.d.ts.map +1 -0
  37. package/dist/evaluate.js +97 -0
  38. package/dist/evaluate.js.map +1 -0
  39. package/dist/files.d.ts +16 -0
  40. package/dist/files.d.ts.map +1 -0
  41. package/dist/files.js +388 -0
  42. package/dist/files.js.map +1 -0
  43. package/dist/gitignore.d.ts +3 -0
  44. package/dist/gitignore.d.ts.map +1 -0
  45. package/dist/gitignore.js +27 -0
  46. package/dist/gitignore.js.map +1 -0
  47. package/dist/guards.d.ts +2 -0
  48. package/dist/guards.d.ts.map +1 -0
  49. package/dist/guards.js +4 -0
  50. package/dist/guards.js.map +1 -0
  51. package/dist/index.d.ts +25 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +20 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/ingest.d.ts +4 -0
  56. package/dist/ingest.d.ts.map +1 -0
  57. package/dist/ingest.js +268 -0
  58. package/dist/ingest.js.map +1 -0
  59. package/dist/init.d.ts +2 -0
  60. package/dist/init.d.ts.map +1 -0
  61. package/dist/init.js +33 -0
  62. package/dist/init.js.map +1 -0
  63. package/dist/mcp.d.ts +8 -0
  64. package/dist/mcp.d.ts.map +1 -0
  65. package/dist/mcp.js +189 -0
  66. package/dist/mcp.js.map +1 -0
  67. package/dist/package-manager.d.ts +11 -0
  68. package/dist/package-manager.d.ts.map +1 -0
  69. package/dist/package-manager.js +93 -0
  70. package/dist/package-manager.js.map +1 -0
  71. package/dist/parsing.d.ts +12 -0
  72. package/dist/parsing.d.ts.map +1 -0
  73. package/dist/parsing.js +307 -0
  74. package/dist/parsing.js.map +1 -0
  75. package/dist/query.d.ts +5 -0
  76. package/dist/query.d.ts.map +1 -0
  77. package/dist/query.js +180 -0
  78. package/dist/query.js.map +1 -0
  79. package/dist/redaction.d.ts +7 -0
  80. package/dist/redaction.d.ts.map +1 -0
  81. package/dist/redaction.js +93 -0
  82. package/dist/redaction.js.map +1 -0
  83. package/dist/research.d.ts +9 -0
  84. package/dist/research.d.ts.map +1 -0
  85. package/dist/research.js +335 -0
  86. package/dist/research.js.map +1 -0
  87. package/dist/security.d.ts +3 -0
  88. package/dist/security.d.ts.map +1 -0
  89. package/dist/security.js +106 -0
  90. package/dist/security.js.map +1 -0
  91. package/dist/semantic-config.d.ts +9 -0
  92. package/dist/semantic-config.d.ts.map +1 -0
  93. package/dist/semantic-config.js +35 -0
  94. package/dist/semantic-config.js.map +1 -0
  95. package/dist/setup.d.ts +32 -0
  96. package/dist/setup.d.ts.map +1 -0
  97. package/dist/setup.js +74 -0
  98. package/dist/setup.js.map +1 -0
  99. package/dist/skill.d.ts +66 -0
  100. package/dist/skill.d.ts.map +1 -0
  101. package/dist/skill.js +652 -0
  102. package/dist/skill.js.map +1 -0
  103. package/dist/sources.d.ts +16 -0
  104. package/dist/sources.d.ts.map +1 -0
  105. package/dist/sources.js +71 -0
  106. package/dist/sources.js.map +1 -0
  107. package/dist/store.d.ts +13 -0
  108. package/dist/store.d.ts.map +1 -0
  109. package/dist/store.js +94 -0
  110. package/dist/store.js.map +1 -0
  111. package/dist/text.d.ts +3 -0
  112. package/dist/text.d.ts.map +1 -0
  113. package/dist/text.js +10 -0
  114. package/dist/text.js.map +1 -0
  115. package/dist/types.d.ts +322 -0
  116. package/dist/types.d.ts.map +1 -0
  117. package/dist/types.js +2 -0
  118. package/dist/types.js.map +1 -0
  119. package/dist/version.d.ts +2 -0
  120. package/dist/version.d.ts.map +1 -0
  121. package/dist/version.js +2 -0
  122. package/dist/version.js.map +1 -0
  123. package/examples/library-api-demo/README.md +42 -0
  124. package/examples/library-api-demo/run.mjs +61 -0
  125. package/examples/sovereign-rag-demo/.ragmir/config.json +22 -0
  126. package/examples/sovereign-rag-demo/.ragmir/sources.txt +2 -0
  127. package/examples/sovereign-rag-demo/README.md +95 -0
  128. package/examples/sovereign-rag-demo/golden-queries.json +29 -0
  129. package/examples/sovereign-rag-demo/raw/dataset-inventory.csv +5 -0
  130. package/examples/sovereign-rag-demo/raw/facility-scan.heic +3 -0
  131. package/examples/sovereign-rag-demo/raw/incident-timeline.jsonl +4 -0
  132. package/examples/sovereign-rag-demo/raw/operations-brief.md +16 -0
  133. package/examples/sovereign-rag-demo/raw/review-notes.evidence +11 -0
  134. package/examples/sovereign-rag-demo/raw/security-policy.yaml +14 -0
  135. package/package.json +87 -0
  136. package/skills/ragmir/SKILL.md +366 -0
  137. package/skills/ragmir-audio-summary/SKILL.md +150 -0
  138. package/skills/ragmir-audio-summary/forge-voice.sh +150 -0
  139. package/skills/ragmir-audio-summary/split-lines.py +13 -0
  140. package/skills/ragmir-audio-summary/xtts-voice.py +46 -0
  141. package/skills/ragmir-legal-dossier/SKILL.md +143 -0
  142. package/skills/ragmir-markdown-report/SKILL.md +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../src/gitignore.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,UAA2B,CAAA;AAEhE,wBAAsB,qBAAqB,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBjF"}
@@ -0,0 +1,27 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readFile, writeFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { RAGMIR_GITIGNORE_ENTRY } from "./defaults.js";
5
+ export const RAGMIR_GITIGNORE_ENTRIES = [RAGMIR_GITIGNORE_ENTRY];
6
+ export async function ensureRagmirGitignore(cwd = process.cwd()) {
7
+ const root = path.resolve(cwd);
8
+ const gitignorePath = path.join(root, ".gitignore");
9
+ const current = existsSync(gitignorePath) ? await readFile(gitignorePath, "utf8") : "";
10
+ const currentLines = new Set(current
11
+ .split(/\r?\n/)
12
+ .map((line) => line.trim())
13
+ .filter(Boolean));
14
+ const missingEntries = RAGMIR_GITIGNORE_ENTRIES.filter((entry) => !currentLines.has(entry));
15
+ if (missingEntries.length === 0) {
16
+ return false;
17
+ }
18
+ const hasRagmirHeader = currentLines.has("# Ragmir") || currentLines.has("# JCode Ragmir");
19
+ const block = [hasRagmirHeader ? undefined : "# Ragmir", ...missingEntries]
20
+ .filter((line) => line !== undefined)
21
+ .join("\n");
22
+ const prefix = current.trimEnd();
23
+ const next = `${prefix ? `${prefix}\n\n` : ""}${block}\n`;
24
+ await writeFile(gitignorePath, next, "utf8");
25
+ return true;
26
+ }
27
+ //# sourceMappingURL=gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../src/gitignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAEhE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,OAAO;SACJ,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CACnB,CAAA;IACD,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAE3F,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC1F,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,cAAc,CAAC;SACxE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;SACpC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IAEzD,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5C,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
2
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE"}
package/dist/guards.js ADDED
@@ -0,0 +1,4 @@
1
+ export function isRecord(value) {
2
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3
+ }
4
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
@@ -0,0 +1,25 @@
1
+ export { accessLogUsageReport } from "./access-log.js";
2
+ export { loadConfig } from "./config.js";
3
+ export { destroyIndex } from "./destroy.js";
4
+ export { doctor } from "./doctor.js";
5
+ export { pullEmbeddingModel } from "./embeddings.js";
6
+ export { evaluateGoldenQueries } from "./evaluate.js";
7
+ export { audit, ingest } from "./ingest.js";
8
+ export { initProject } from "./init.js";
9
+ export { serveMcp } from "./mcp.js";
10
+ export type { PackageManager, RagmirCommand } from "./package-manager.js";
11
+ export { detectPackageManager, kbCommand, ragmirCommand } from "./package-manager.js";
12
+ export { ask, search } from "./query.js";
13
+ export { redactText } from "./redaction.js";
14
+ export { compactResearchReport, compactSearchResults, research } from "./research.js";
15
+ export { securityAudit } from "./security.js";
16
+ export { enableSemanticEmbeddings } from "./semantic-config.js";
17
+ export type { SetupOptions, SetupResult, SetupSemanticResult } from "./setup.js";
18
+ export { setupProject } from "./setup.js";
19
+ export type { AgentHelperFile, AgentInstallMode, AgentInstallScope, AgentSkillInstallation, AgentTarget, InstallAgentSkillsOptions, InstallAgentSkillsResult, InstallSkillOptions, InstallSkillResult, } from "./skill.js";
20
+ export { bundledSkillPath, installAgentSkills, installSkill, parseAgentTargets, SUPPORTED_AGENT_TARGETS, } from "./skill.js";
21
+ export type { AddSourceEntriesOptions, AddSourceEntriesResult, SourceEntriesResult, } from "./sources.js";
22
+ export { addSourceEntries, listSourceEntries } from "./sources.js";
23
+ export type { AccessLogAction, AccessLogUsageOptions, AccessLogUsageReport, AskResult, AuditReport, CodeEvidence, CompactSearchResult, Config, DestroyIndexResult, DoctorReport, EvaluationCaseResult, EvaluationOptions, EvaluationResult, GoldenQuery, IngestResult, ResearchEvidence, ResearchOptions, ResearchReport, SearchResult, SecurityAuditReport, SourceDiagnostics, SourceDuplicateCandidate, SourcePathCandidate, } from "./types.js";
24
+ export { VERSION } from "./version.js";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAClE,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ export { accessLogUsageReport } from "./access-log.js";
2
+ export { loadConfig } from "./config.js";
3
+ export { destroyIndex } from "./destroy.js";
4
+ export { doctor } from "./doctor.js";
5
+ export { pullEmbeddingModel } from "./embeddings.js";
6
+ export { evaluateGoldenQueries } from "./evaluate.js";
7
+ export { audit, ingest } from "./ingest.js";
8
+ export { initProject } from "./init.js";
9
+ export { serveMcp } from "./mcp.js";
10
+ export { detectPackageManager, kbCommand, ragmirCommand } from "./package-manager.js";
11
+ export { ask, search } from "./query.js";
12
+ export { redactText } from "./redaction.js";
13
+ export { compactResearchReport, compactSearchResults, research } from "./research.js";
14
+ export { securityAudit } from "./security.js";
15
+ export { enableSemanticEmbeddings } from "./semantic-config.js";
16
+ export { setupProject } from "./setup.js";
17
+ export { bundledSkillPath, installAgentSkills, installSkill, parseAgentTargets, SUPPORTED_AGENT_TARGETS, } from "./skill.js";
18
+ export { addSourceEntries, listSourceEntries } from "./sources.js";
19
+ export { VERSION } from "./version.js";
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAYzC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAA;AAMnB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AA0BlE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { AuditReport, IngestOptions, IngestResult } from "./types.js";
2
+ export declare function ingest(options?: IngestOptions): Promise<IngestResult>;
3
+ export declare function audit(cwd?: string): Promise<AuditReport>;
4
+ //# sourceMappingURL=ingest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,YAAY,EAMb,MAAM,YAAY,CAAA;AAmBnB,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAuG/E;AAkCD,wBAAsB,KAAK,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAiErE"}
package/dist/ingest.js ADDED
@@ -0,0 +1,268 @@
1
+ import path from "node:path";
2
+ import { recordAccess } from "./access-log.js";
3
+ import { chunkDocument } from "./chunking.js";
4
+ import { loadConfig } from "./config.js";
5
+ import { embedTexts } from "./embeddings.js";
6
+ import { countSkippedByReason, inventorySourceFiles, summarizeUnsupportedExtensions, } from "./files.js";
7
+ import { parseFile } from "./parsing.js";
8
+ import { redactText, totalRedactions } from "./redaction.js";
9
+ import { openRowsTable, readEmptyTextFiles, readRows, writeEmptyTextFiles, writeRows, } from "./store.js";
10
+ import { normalizeForMatch } from "./text.js";
11
+ const MAX_AUDIT_ROWS = 100_000;
12
+ const MAX_SOURCE_DIAGNOSTIC_ITEMS = 20;
13
+ const ARCHIVE_PATH_PATTERNS = [
14
+ /(^|[/_-])archive(s)?([/_-]|$)/iu,
15
+ /(^|[/_-])backup(s)?([/_-]|$)/iu,
16
+ /(^|[/_-])legacy([/_-]|$)/iu,
17
+ /(^|[/_-])old([/_-]|$)/iu,
18
+ /(^|[/_-])obsolete([/_-]|$)/iu,
19
+ /(^|[/_-])poc([/_-]|$)/iu,
20
+ ];
21
+ const MIRROR_PATH_PATTERNS = [
22
+ /(^|[/_-])raw[_-]?files([/_-]|$)/iu,
23
+ /(^|[/_-])google[_-]?drive([/_-]|$)/iu,
24
+ /(^|[/_-])drive[_-]?mirror([/_-]|$)/iu,
25
+ /(^|[/_-])export(s)?([/_-]|$)/iu,
26
+ ];
27
+ export async function ingest(options = {}) {
28
+ const config = await loadConfig(String(options.cwd ?? process.cwd()));
29
+ const inventory = await inventorySourceFiles(config);
30
+ const files = inventory.supportedFiles;
31
+ const currentFiles = new Map(files.map((file) => [file.relativePath, file]));
32
+ const existingRows = options.rebuild ? [] : await readRows(config);
33
+ const reusableRows = options.rebuild ? [] : reusableIndexRows(existingRows, currentFiles, config);
34
+ const reusableFiles = new Set(reusableRows.map((row) => row.relativePath));
35
+ const filesToIndex = options.rebuild
36
+ ? files
37
+ : files.filter((file) => !reusableFiles.has(file.relativePath));
38
+ const allChunks = [];
39
+ const errors = [];
40
+ const redactionCounts = [];
41
+ const emptyTextFiles = [];
42
+ const results = await mapLimit(filesToIndex, config.ingestConcurrency, async (file) => {
43
+ try {
44
+ const parsed = await parseFile(file, config);
45
+ const redacted = redactText(parsed.text, config);
46
+ const chunks = chunkDocument({ ...parsed, text: redacted.text }, config.chunkSize, config.chunkOverlap);
47
+ return { path: file.relativePath, chunks, redactions: redacted.counts, error: null };
48
+ }
49
+ catch (error) {
50
+ return {
51
+ path: file.relativePath,
52
+ chunks: [],
53
+ redactions: [],
54
+ error: {
55
+ path: file.relativePath,
56
+ message: error instanceof Error ? error.message : String(error),
57
+ },
58
+ };
59
+ }
60
+ });
61
+ for (const result of results) {
62
+ if (result.error) {
63
+ errors.push(result.error);
64
+ continue;
65
+ }
66
+ redactionCounts.push(...result.redactions);
67
+ if (result.chunks.length === 0) {
68
+ emptyTextFiles.push(result.path);
69
+ }
70
+ allChunks.push(...result.chunks);
71
+ }
72
+ const rows = [];
73
+ for (let i = 0; i < allChunks.length; i += config.embeddingBatchSize) {
74
+ const batch = allChunks.slice(i, i + config.embeddingBatchSize);
75
+ const embeddings = await embedTexts(batch.map((chunk) => chunk.text), config);
76
+ for (const [index, chunk] of batch.entries()) {
77
+ const vector = embeddings[index];
78
+ if (!vector) {
79
+ throw new Error(`Missing embedding for chunk ${chunk.relativePath}#${chunk.chunkIndex}.`);
80
+ }
81
+ rows.push({
82
+ ...chunk,
83
+ vector,
84
+ embeddingProvider: config.embeddingProvider,
85
+ embeddingModel: config.embeddingModel,
86
+ });
87
+ }
88
+ }
89
+ const indexRows = [...reusableRows, ...rows];
90
+ await writeRows(indexRows, config);
91
+ await writeEmptyTextFiles(emptyTextFiles.flatMap((relativePath) => {
92
+ const file = currentFiles.get(relativePath);
93
+ return file ? [{ relativePath, checksum: file.checksum }] : [];
94
+ }), config);
95
+ await recordAccess(config, {
96
+ action: "ingest",
97
+ resultCount: indexRows.length,
98
+ redactions: totalRedactions(redactionCounts),
99
+ });
100
+ return {
101
+ indexedFiles: new Set(indexRows.map((row) => row.relativePath)).size,
102
+ rebuiltFiles: new Set(rows.map((row) => row.relativePath)).size,
103
+ reusedFiles: reusableFiles.size,
104
+ chunks: indexRows.length,
105
+ discoveredFiles: inventory.discoveredFiles,
106
+ supportedFiles: files.length,
107
+ skippedFiles: inventory.skippedFiles.length + emptyTextFiles.length,
108
+ unsupportedFiles: countSkippedByReason(inventory.skippedFiles, "unsupported-extension"),
109
+ oversizedFiles: countSkippedByReason(inventory.skippedFiles, "oversized"),
110
+ sensitiveFiles: countSkippedByReason(inventory.skippedFiles, "sensitive-name"),
111
+ emptyTextFiles,
112
+ unsupportedExtensions: summarizeUnsupportedExtensions(inventory.skippedFiles),
113
+ redactions: totalRedactions(redactionCounts),
114
+ errors,
115
+ };
116
+ }
117
+ function reusableIndexRows(rows, currentFiles, config) {
118
+ const rowsByFile = new Map();
119
+ for (const row of rows) {
120
+ const fileRows = rowsByFile.get(row.relativePath) ?? [];
121
+ fileRows.push(row);
122
+ rowsByFile.set(row.relativePath, fileRows);
123
+ }
124
+ const reusableRows = [];
125
+ for (const [relativePath, fileRows] of rowsByFile) {
126
+ const file = currentFiles.get(relativePath);
127
+ if (!file) {
128
+ continue;
129
+ }
130
+ if (fileRows.every((row) => row.checksum === file.checksum &&
131
+ row.embeddingProvider === config.embeddingProvider &&
132
+ row.embeddingModel === config.embeddingModel)) {
133
+ reusableRows.push(...fileRows);
134
+ }
135
+ }
136
+ return reusableRows;
137
+ }
138
+ export async function audit(cwd = process.cwd()) {
139
+ const config = await loadConfig(cwd);
140
+ const inventory = await inventorySourceFiles(config);
141
+ const files = inventory.supportedFiles;
142
+ const supportedFiles = files.map((file) => file.relativePath);
143
+ const table = await openRowsTable(config);
144
+ const emptyTextFiles = await currentEmptyTextFiles(config, files);
145
+ if (!table) {
146
+ return {
147
+ indexedFiles: [],
148
+ supportedFiles,
149
+ skippedFiles: inventory.skippedFiles,
150
+ emptyTextFiles: [...emptyTextFiles],
151
+ unsupportedExtensions: summarizeUnsupportedExtensions(inventory.skippedFiles),
152
+ sourceDiagnostics: sourceDiagnostics(files, inventory.skippedFiles),
153
+ missingFromIndex: supportedFiles.filter((file) => !emptyTextFiles.has(file)),
154
+ staleInIndex: [],
155
+ totalChunks: 0,
156
+ };
157
+ }
158
+ const rows = (await table.query().limit(MAX_AUDIT_ROWS).toArray());
159
+ const counts = new Map();
160
+ const checksums = new Map();
161
+ for (const row of rows) {
162
+ counts.set(row.relativePath, (counts.get(row.relativePath) ?? 0) + 1);
163
+ if (row.checksum) {
164
+ const fileChecksums = checksums.get(row.relativePath) ?? new Set();
165
+ fileChecksums.add(row.checksum);
166
+ checksums.set(row.relativePath, fileChecksums);
167
+ }
168
+ }
169
+ const supportedSet = new Set(supportedFiles);
170
+ const indexedSet = new Set(counts.keys());
171
+ const currentChecksums = new Map(files.map((file) => [file.relativePath, file.checksum]));
172
+ return {
173
+ indexedFiles: [...counts.entries()]
174
+ .sort(([a], [b]) => a.localeCompare(b))
175
+ .map(([source, chunks]) => ({ source, chunks })),
176
+ supportedFiles,
177
+ skippedFiles: inventory.skippedFiles,
178
+ emptyTextFiles: [...emptyTextFiles].sort(),
179
+ unsupportedExtensions: summarizeUnsupportedExtensions(inventory.skippedFiles),
180
+ sourceDiagnostics: sourceDiagnostics(files, inventory.skippedFiles),
181
+ missingFromIndex: supportedFiles.filter((file) => !indexedSet.has(file) && !emptyTextFiles.has(file)),
182
+ staleInIndex: [...indexedSet]
183
+ .filter((file) => {
184
+ if (!supportedSet.has(file)) {
185
+ return true;
186
+ }
187
+ const currentChecksum = currentChecksums.get(file);
188
+ const indexedChecksums = checksums.get(file);
189
+ return !currentChecksum || !indexedChecksums?.has(currentChecksum);
190
+ })
191
+ .sort(),
192
+ totalChunks: rows.length,
193
+ };
194
+ }
195
+ function sourceDiagnostics(supportedFiles, skippedFiles) {
196
+ const relativePaths = [
197
+ ...supportedFiles.map((file) => file.relativePath),
198
+ ...skippedFiles.map((file) => file.relativePath),
199
+ ];
200
+ return {
201
+ duplicateCandidates: duplicateCandidates(supportedFiles),
202
+ archiveCandidates: pathCandidates(relativePaths, ARCHIVE_PATH_PATTERNS, "archive-like path"),
203
+ mirrorCandidates: pathCandidates(relativePaths, MIRROR_PATH_PATTERNS, "mirror-like path"),
204
+ };
205
+ }
206
+ function duplicateCandidates(files) {
207
+ const byChecksum = new Map();
208
+ const byLogicalName = new Map();
209
+ for (const file of files) {
210
+ appendGrouped(byChecksum, `sha256:${file.checksum.slice(0, 12)}`, file.relativePath);
211
+ const logicalName = normalizedLogicalName(file.relativePath);
212
+ if (logicalName.length >= 6) {
213
+ appendGrouped(byLogicalName, `name:${logicalName}`, file.relativePath);
214
+ }
215
+ }
216
+ const exact = groupedDuplicates(byChecksum);
217
+ const logical = groupedDuplicates(byLogicalName).filter((candidate) => !exact.some((exactCandidate) => candidate.files.every((file) => exactCandidate.files.includes(file))));
218
+ return [...exact, ...logical]
219
+ .sort((a, b) => b.files.length - a.files.length || a.key.localeCompare(b.key))
220
+ .slice(0, MAX_SOURCE_DIAGNOSTIC_ITEMS);
221
+ }
222
+ function pathCandidates(relativePaths, patterns, reason) {
223
+ return relativePaths
224
+ .filter((relativePath) => patterns.some((pattern) => pattern.test(relativePath)))
225
+ .sort((a, b) => a.localeCompare(b))
226
+ .slice(0, MAX_SOURCE_DIAGNOSTIC_ITEMS)
227
+ .map((relativePath) => ({ relativePath, reason }));
228
+ }
229
+ function appendGrouped(groups, key, relativePath) {
230
+ const paths = groups.get(key) ?? [];
231
+ paths.push(relativePath);
232
+ groups.set(key, paths);
233
+ }
234
+ function groupedDuplicates(groups) {
235
+ return [...groups.entries()]
236
+ .filter(([, files]) => files.length > 1)
237
+ .map(([key, files]) => ({ key, files: [...new Set(files)].sort() }));
238
+ }
239
+ function normalizedLogicalName(relativePath) {
240
+ return normalizeForMatch(path.basename(relativePath, path.extname(relativePath))).replace(/[^a-z0-9]+/gu, "");
241
+ }
242
+ async function currentEmptyTextFiles(config, files) {
243
+ const currentChecksums = new Map(files.map((file) => [file.relativePath, file.checksum]));
244
+ const emptyTextFiles = new Set();
245
+ for (const record of await readEmptyTextFiles(config)) {
246
+ if (currentChecksums.get(record.relativePath) === record.checksum) {
247
+ emptyTextFiles.add(record.relativePath);
248
+ }
249
+ }
250
+ return emptyTextFiles;
251
+ }
252
+ async function mapLimit(items, concurrency, worker) {
253
+ const results = new Array(items.length);
254
+ let nextIndex = 0;
255
+ async function run() {
256
+ while (nextIndex < items.length) {
257
+ const index = nextIndex;
258
+ nextIndex += 1;
259
+ const item = items[index];
260
+ if (item !== undefined) {
261
+ results[index] = await worker(item);
262
+ }
263
+ }
264
+ }
265
+ await Promise.all(Array.from({ length: Math.min(concurrency, items.length) }, () => run()));
266
+ return results;
267
+ }
268
+ //# sourceMappingURL=ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../src/ingest.ts"],"names":[],"mappings":"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"}
package/dist/init.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function initProject(cwd?: string): Promise<string[]>;
2
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmCxE"}
package/dist/init.js ADDED
@@ -0,0 +1,33 @@
1
+ import { existsSync } from "node:fs";
2
+ import { mkdir, writeFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { CONFIG_PATH, DEFAULT_CONFIG, LEGACY_CONFIG_PATH, RAGMIR_DIR } from "./defaults.js";
5
+ import { ensureRagmirGitignore } from "./gitignore.js";
6
+ export async function initProject(cwd = process.cwd()) {
7
+ const root = path.resolve(cwd);
8
+ const ragmirDir = path.join(root, RAGMIR_DIR);
9
+ const rawDir = path.join(root, DEFAULT_CONFIG.rawDir);
10
+ const created = [];
11
+ await mkdir(ragmirDir, { recursive: true });
12
+ const configPath = path.join(root, CONFIG_PATH);
13
+ const legacyConfigPath = path.join(root, LEGACY_CONFIG_PATH);
14
+ const hasConfig = existsSync(configPath);
15
+ const hasLegacyConfig = existsSync(legacyConfigPath);
16
+ if (!hasConfig && !hasLegacyConfig) {
17
+ await mkdir(rawDir, { recursive: true });
18
+ await writeFile(configPath, `${JSON.stringify(DEFAULT_CONFIG, null, 2)}\n`, "utf8");
19
+ created.push(path.relative(root, configPath));
20
+ }
21
+ if (!hasConfig && !hasLegacyConfig) {
22
+ const readmePath = path.join(rawDir, "README.md");
23
+ if (!existsSync(readmePath)) {
24
+ await writeFile(readmePath, "# Ragmir raw documents\n\nPut local documents to ingest here. Keep this folder ignored by Git.\n", "utf8");
25
+ created.push(path.relative(root, readmePath));
26
+ }
27
+ }
28
+ if (await ensureRagmirGitignore(root)) {
29
+ created.push(".gitignore");
30
+ }
31
+ return created;
32
+ }
33
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACpD,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxC,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACnF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,CACb,UAAU,EACV,kGAAkG,EAClG,MAAM,CACP,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ export declare function serveMcp(cwd?: string): Promise<void>;
2
+ export declare function resolveMcpProjectRoot(env?: NodeJS.ProcessEnv, fallback?: string): string;
3
+ export declare function searchOptions(cwd: string, topK: number | undefined): Promise<{
4
+ cwd: string;
5
+ topK?: number;
6
+ }>;
7
+ export declare function projectRelativeGoldenPath(cwd: string, goldenPath: string): string;
8
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAwCA,wBAAsB,QAAQ,CAAC,GAAG,SAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgJ3E;AAED,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,SAAgB,GACvB,MAAM,CAYR;AAaD,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAIzC;AAmBD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAQjF"}