@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.
- package/LICENSE +21 -0
- package/README.md +102 -0
- package/dist/access-log.d.ts +11 -0
- package/dist/access-log.d.ts.map +1 -0
- package/dist/access-log.js +145 -0
- package/dist/access-log.js.map +1 -0
- package/dist/chunking.d.ts +3 -0
- package/dist/chunking.d.ts.map +1 -0
- package/dist/chunking.js +58 -0
- package/dist/chunking.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +944 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +224 -0
- package/dist/config.js.map +1 -0
- package/dist/defaults.d.ts +17 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +59 -0
- package/dist/defaults.js.map +1 -0
- package/dist/destroy.d.ts +3 -0
- package/dist/destroy.d.ts.map +1 -0
- package/dist/destroy.js +16 -0
- package/dist/destroy.js.map +1 -0
- package/dist/doctor.d.ts +3 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +117 -0
- package/dist/doctor.js.map +1 -0
- package/dist/embeddings.d.ts +9 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +110 -0
- package/dist/embeddings.js.map +1 -0
- package/dist/evaluate.d.ts +3 -0
- package/dist/evaluate.d.ts.map +1 -0
- package/dist/evaluate.js +97 -0
- package/dist/evaluate.js.map +1 -0
- package/dist/files.d.ts +16 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +388 -0
- package/dist/files.js.map +1 -0
- package/dist/gitignore.d.ts +3 -0
- package/dist/gitignore.d.ts.map +1 -0
- package/dist/gitignore.js +27 -0
- package/dist/gitignore.js.map +1 -0
- package/dist/guards.d.ts +2 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +4 -0
- package/dist/guards.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest.d.ts +4 -0
- package/dist/ingest.d.ts.map +1 -0
- package/dist/ingest.js +268 -0
- package/dist/ingest.js.map +1 -0
- package/dist/init.d.ts +2 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +33 -0
- package/dist/init.js.map +1 -0
- package/dist/mcp.d.ts +8 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +189 -0
- package/dist/mcp.js.map +1 -0
- package/dist/package-manager.d.ts +11 -0
- package/dist/package-manager.d.ts.map +1 -0
- package/dist/package-manager.js +93 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/parsing.d.ts +12 -0
- package/dist/parsing.d.ts.map +1 -0
- package/dist/parsing.js +307 -0
- package/dist/parsing.js.map +1 -0
- package/dist/query.d.ts +5 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +180 -0
- package/dist/query.js.map +1 -0
- package/dist/redaction.d.ts +7 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +93 -0
- package/dist/redaction.js.map +1 -0
- package/dist/research.d.ts +9 -0
- package/dist/research.d.ts.map +1 -0
- package/dist/research.js +335 -0
- package/dist/research.js.map +1 -0
- package/dist/security.d.ts +3 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +106 -0
- package/dist/security.js.map +1 -0
- package/dist/semantic-config.d.ts +9 -0
- package/dist/semantic-config.d.ts.map +1 -0
- package/dist/semantic-config.js +35 -0
- package/dist/semantic-config.js.map +1 -0
- package/dist/setup.d.ts +32 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +74 -0
- package/dist/setup.js.map +1 -0
- package/dist/skill.d.ts +66 -0
- package/dist/skill.d.ts.map +1 -0
- package/dist/skill.js +652 -0
- package/dist/skill.js.map +1 -0
- package/dist/sources.d.ts +16 -0
- package/dist/sources.d.ts.map +1 -0
- package/dist/sources.js +71 -0
- package/dist/sources.js.map +1 -0
- package/dist/store.d.ts +13 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +94 -0
- package/dist/store.js.map +1 -0
- package/dist/text.d.ts +3 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +10 -0
- package/dist/text.js.map +1 -0
- package/dist/types.d.ts +322 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/examples/library-api-demo/README.md +42 -0
- package/examples/library-api-demo/run.mjs +61 -0
- package/examples/sovereign-rag-demo/.ragmir/config.json +22 -0
- package/examples/sovereign-rag-demo/.ragmir/sources.txt +2 -0
- package/examples/sovereign-rag-demo/README.md +95 -0
- package/examples/sovereign-rag-demo/golden-queries.json +29 -0
- package/examples/sovereign-rag-demo/raw/dataset-inventory.csv +5 -0
- package/examples/sovereign-rag-demo/raw/facility-scan.heic +3 -0
- package/examples/sovereign-rag-demo/raw/incident-timeline.jsonl +4 -0
- package/examples/sovereign-rag-demo/raw/operations-brief.md +16 -0
- package/examples/sovereign-rag-demo/raw/review-notes.evidence +11 -0
- package/examples/sovereign-rag-demo/raw/security-policy.yaml +14 -0
- package/package.json +87 -0
- package/skills/ragmir/SKILL.md +366 -0
- package/skills/ragmir-audio-summary/SKILL.md +150 -0
- package/skills/ragmir-audio-summary/forge-voice.sh +150 -0
- package/skills/ragmir-audio-summary/split-lines.py +13 -0
- package/skills/ragmir-audio-summary/xtts-voice.py +46 -0
- package/skills/ragmir-legal-dossier/SKILL.md +143 -0
- 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"}
|
package/dist/guards.d.ts
ADDED
|
@@ -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 @@
|
|
|
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|
package/dist/ingest.d.ts
ADDED
|
@@ -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 @@
|
|
|
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
|
package/dist/init.js.map
ADDED
|
@@ -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"}
|