@jcode.labs/ragmir 6.1.6 → 6.2.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 (137) hide show
  1. package/README.md +43 -49
  2. package/dist/cli.js +194 -24
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config.d.ts +24 -2
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +127 -24
  7. package/dist/config.js.map +1 -1
  8. package/dist/context-resources.d.ts.map +1 -1
  9. package/dist/context-resources.js +19 -8
  10. package/dist/context-resources.js.map +1 -1
  11. package/dist/defaults.d.ts +5 -0
  12. package/dist/defaults.d.ts.map +1 -1
  13. package/dist/defaults.js +16 -0
  14. package/dist/defaults.js.map +1 -1
  15. package/dist/doctor.d.ts.map +1 -1
  16. package/dist/doctor.js +37 -5
  17. package/dist/doctor.js.map +1 -1
  18. package/dist/evaluate.d.ts.map +1 -1
  19. package/dist/evaluate.js +11 -6
  20. package/dist/evaluate.js.map +1 -1
  21. package/dist/files.d.ts +27 -1
  22. package/dist/files.d.ts.map +1 -1
  23. package/dist/files.js +344 -100
  24. package/dist/files.js.map +1 -1
  25. package/dist/freshness.d.ts +16 -0
  26. package/dist/freshness.d.ts.map +1 -0
  27. package/dist/freshness.js +97 -0
  28. package/dist/freshness.js.map +1 -0
  29. package/dist/generation-retention.d.ts +12 -0
  30. package/dist/generation-retention.d.ts.map +1 -1
  31. package/dist/generation-retention.js +13 -2
  32. package/dist/generation-retention.js.map +1 -1
  33. package/dist/git-hooks.d.ts +25 -0
  34. package/dist/git-hooks.d.ts.map +1 -0
  35. package/dist/git-hooks.js +173 -0
  36. package/dist/git-hooks.js.map +1 -0
  37. package/dist/index-diagnostics.d.ts +9 -1
  38. package/dist/index-diagnostics.d.ts.map +1 -1
  39. package/dist/index-diagnostics.js +35 -0
  40. package/dist/index-diagnostics.js.map +1 -1
  41. package/dist/index-policy.d.ts.map +1 -1
  42. package/dist/index-policy.js +4 -0
  43. package/dist/index-policy.js.map +1 -1
  44. package/dist/ingest.d.ts +6 -0
  45. package/dist/ingest.d.ts.map +1 -1
  46. package/dist/ingest.js +44 -21
  47. package/dist/ingest.js.map +1 -1
  48. package/dist/init.d.ts.map +1 -1
  49. package/dist/init.js +19 -4
  50. package/dist/init.js.map +1 -1
  51. package/dist/knowledge-bases.d.ts +18 -1
  52. package/dist/knowledge-bases.d.ts.map +1 -1
  53. package/dist/knowledge-bases.js +73 -4
  54. package/dist/knowledge-bases.js.map +1 -1
  55. package/dist/mcp-output.d.ts +14 -3
  56. package/dist/mcp-output.d.ts.map +1 -1
  57. package/dist/mcp-output.js +37 -0
  58. package/dist/mcp-output.js.map +1 -1
  59. package/dist/mcp-registrations.d.ts +9 -0
  60. package/dist/mcp-registrations.d.ts.map +1 -0
  61. package/dist/mcp-registrations.js +247 -0
  62. package/dist/mcp-registrations.js.map +1 -0
  63. package/dist/mcp-scope.d.ts +32 -0
  64. package/dist/mcp-scope.d.ts.map +1 -0
  65. package/dist/mcp-scope.js +114 -0
  66. package/dist/mcp-scope.js.map +1 -0
  67. package/dist/mcp-session.d.ts +37 -0
  68. package/dist/mcp-session.d.ts.map +1 -0
  69. package/dist/mcp-session.js +53 -0
  70. package/dist/mcp-session.js.map +1 -0
  71. package/dist/mcp-summaries.d.ts +5 -0
  72. package/dist/mcp-summaries.d.ts.map +1 -1
  73. package/dist/mcp-summaries.js +30 -0
  74. package/dist/mcp-summaries.js.map +1 -1
  75. package/dist/mcp.d.ts +6 -0
  76. package/dist/mcp.d.ts.map +1 -1
  77. package/dist/mcp.js +410 -103
  78. package/dist/mcp.js.map +1 -1
  79. package/dist/ocr.d.ts +51 -0
  80. package/dist/ocr.d.ts.map +1 -1
  81. package/dist/ocr.js +210 -4
  82. package/dist/ocr.js.map +1 -1
  83. package/dist/package-manager.d.ts.map +1 -1
  84. package/dist/package-manager.js +2 -1
  85. package/dist/package-manager.js.map +1 -1
  86. package/dist/preview.d.ts.map +1 -1
  87. package/dist/preview.js +3 -7
  88. package/dist/preview.js.map +1 -1
  89. package/dist/quality-report.d.ts.map +1 -1
  90. package/dist/quality-report.js +1 -1
  91. package/dist/quality-report.js.map +1 -1
  92. package/dist/query.d.ts.map +1 -1
  93. package/dist/query.js +235 -34
  94. package/dist/query.js.map +1 -1
  95. package/dist/ranking.d.ts +56 -6
  96. package/dist/ranking.d.ts.map +1 -1
  97. package/dist/ranking.js +187 -16
  98. package/dist/ranking.js.map +1 -1
  99. package/dist/retrieval-diversity.d.ts +5 -0
  100. package/dist/retrieval-diversity.d.ts.map +1 -1
  101. package/dist/retrieval-diversity.js +4 -2
  102. package/dist/retrieval-diversity.js.map +1 -1
  103. package/dist/search-output.d.ts.map +1 -1
  104. package/dist/search-output.js +2 -0
  105. package/dist/search-output.js.map +1 -1
  106. package/dist/security.js +1 -1
  107. package/dist/security.js.map +1 -1
  108. package/dist/setup-prompt.d.ts +1 -1
  109. package/dist/setup-prompt.d.ts.map +1 -1
  110. package/dist/setup-prompt.js +3 -3
  111. package/dist/setup.js +1 -1
  112. package/dist/setup.js.map +1 -1
  113. package/dist/skill.d.ts +2 -0
  114. package/dist/skill.d.ts.map +1 -1
  115. package/dist/skill.js +122 -14
  116. package/dist/skill.js.map +1 -1
  117. package/dist/source-paths.d.ts +36 -0
  118. package/dist/source-paths.d.ts.map +1 -0
  119. package/dist/source-paths.js +157 -0
  120. package/dist/source-paths.js.map +1 -0
  121. package/dist/source-weights.d.ts +28 -0
  122. package/dist/source-weights.d.ts.map +1 -0
  123. package/dist/source-weights.js +241 -0
  124. package/dist/source-weights.js.map +1 -0
  125. package/dist/storage-maintenance.d.ts +3 -1
  126. package/dist/storage-maintenance.d.ts.map +1 -1
  127. package/dist/storage-maintenance.js +21 -2
  128. package/dist/storage-maintenance.js.map +1 -1
  129. package/dist/storage-usage.d.ts +21 -0
  130. package/dist/storage-usage.d.ts.map +1 -0
  131. package/dist/storage-usage.js +118 -0
  132. package/dist/storage-usage.js.map +1 -0
  133. package/dist/types.d.ts +127 -3
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/version.d.ts +1 -1
  136. package/dist/version.js +1 -1
  137. package/package.json +3 -1
@@ -0,0 +1,114 @@
1
+ import { realpathSync } from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { RootsListChangedNotificationSchema } from "@modelcontextprotocol/sdk/types.js";
6
+ import { isCaseInsensitiveFileSystem } from "./source-paths.js";
7
+ /** Working directory of the agent that launched the server, recorded by the runner and the CLI. */
8
+ export const RAGMIR_CLIENT_CWD_ENV = "RAGMIR_CLIENT_CWD";
9
+ const ROOTS_TIMEOUT_MS = 2_000;
10
+ /**
11
+ * Track which workspace the connected agent works in: MCP roots when the client shares them (Claude
12
+ * Code), its CLAUDE_PROJECT_DIR otherwise, and the directory the agent launched the server from
13
+ * (Codex shares neither). A server registered for every project (user scope) would otherwise answer
14
+ * an unrelated project with this base's documents as if they were its own.
15
+ */
16
+ export class WorkspaceScope {
17
+ server;
18
+ roots = null;
19
+ source = null;
20
+ pending = null;
21
+ constructor(server, env = process.env) {
22
+ this.server = server;
23
+ const clientProject = env.CLAUDE_PROJECT_DIR;
24
+ const launchDirectory = env[RAGMIR_CLIENT_CWD_ENV];
25
+ if (clientProject) {
26
+ this.roots = [path.resolve(clientProject)];
27
+ this.source = "client-environment";
28
+ }
29
+ else if (launchDirectory) {
30
+ this.roots = [path.resolve(launchDirectory)];
31
+ this.source = "launch-directory";
32
+ }
33
+ }
34
+ attach() {
35
+ const previous = this.server.oninitialized;
36
+ this.server.oninitialized = () => {
37
+ previous?.();
38
+ this.refresh();
39
+ };
40
+ this.server.setNotificationHandler(RootsListChangedNotificationSchema, () => {
41
+ this.refresh();
42
+ });
43
+ }
44
+ refresh() {
45
+ if (!this.server.getClientCapabilities()?.roots) {
46
+ return;
47
+ }
48
+ this.pending = (async () => {
49
+ try {
50
+ const { roots } = await this.server.listRoots(undefined, { timeout: ROOTS_TIMEOUT_MS });
51
+ const paths = roots.flatMap((root) => root.uri.startsWith("file:") ? [fileURLToPath(root.uri)] : []);
52
+ if (paths.length > 0) {
53
+ this.roots = paths;
54
+ this.source = "mcp-roots";
55
+ }
56
+ }
57
+ catch {
58
+ // Clients may declare roots and still fail to list them; keep the previous evidence.
59
+ }
60
+ })();
61
+ }
62
+ async verdict(config) {
63
+ await this.pending;
64
+ const enforced = config.mcpAllowedRoots.length > 0;
65
+ const allowedRoots = enforced
66
+ ? config.mcpAllowedRoots.map((root) => resolveAllowedRoot(config.projectRoot, root))
67
+ : [config.projectRoot];
68
+ if (this.roots === null) {
69
+ return { relation: "unknown", enforced, allowed: true, workspaceRoots: [], source: null };
70
+ }
71
+ const caseInsensitive = isCaseInsensitiveFileSystem(config.projectRoot);
72
+ const related = this.roots.some((workspaceRoot) => allowedRoots.some((allowedRoot) => isWithin(workspaceRoot, allowedRoot, caseInsensitive) ||
73
+ isWithin(allowedRoot, workspaceRoot, caseInsensitive)));
74
+ return {
75
+ relation: related ? "related" : "unrelated",
76
+ enforced,
77
+ allowed: related || !enforced,
78
+ workspaceRoots: [...this.roots],
79
+ source: this.source,
80
+ };
81
+ }
82
+ }
83
+ export function workspaceScopeNotice(verdict, name, projectRoot) {
84
+ if (verdict.relation !== "unrelated") {
85
+ return null;
86
+ }
87
+ return `Scope notice: this Ragmir server answers from the "${name}" knowledge base (${projectRoot}), not from your workspace (${verdict.workspaceRoots.join(", ")}). Use these passages only for questions about ${name}. Register Ragmir per project, or set mcpAllowedRoots, to keep each workspace on its own base.`;
88
+ }
89
+ export function workspaceScopeRefusal(verdict, name, config) {
90
+ return `This Ragmir server serves the "${name}" knowledge base only to workspaces under ${config.mcpAllowedRoots.join(", ")} (mcpAllowedRoots). Your workspace is ${verdict.workspaceRoots.join(", ")}. Register a project-scoped Ragmir server for this workspace instead.`;
91
+ }
92
+ function resolveAllowedRoot(projectRoot, value) {
93
+ const expanded = value === "~" || value.startsWith("~/") || value.startsWith("~\\")
94
+ ? path.join(os.homedir(), value.slice(1))
95
+ : value;
96
+ return path.resolve(projectRoot, expanded);
97
+ }
98
+ function isWithin(child, parent, caseInsensitive) {
99
+ const normalize = (value) => {
100
+ const real = realPath(value).normalize("NFC");
101
+ return caseInsensitive ? real.toLowerCase() : real;
102
+ };
103
+ const relative = path.relative(normalize(parent), normalize(child));
104
+ return relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);
105
+ }
106
+ function realPath(value) {
107
+ try {
108
+ return realpathSync.native(value);
109
+ }
110
+ catch {
111
+ return path.resolve(value);
112
+ }
113
+ }
114
+ //# sourceMappingURL=mcp-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-scope.js","sourceRoot":"","sources":["../src/mcp-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { McpSeenResults } from "./types.js";
2
+ /** A passage already returned in this MCP session: enough to recognize it, not to re-read it. */
3
+ export interface SeenCitationStub {
4
+ citation: string;
5
+ relativePath: string;
6
+ seen: true;
7
+ evidence?: {
8
+ id: string;
9
+ };
10
+ }
11
+ interface CitedResult {
12
+ citation: string;
13
+ relativePath: string;
14
+ evidence?: {
15
+ id: string;
16
+ };
17
+ }
18
+ /**
19
+ * Citations returned during one MCP connection. Agents fan out related searches and receive the
20
+ * same passages again; a quarter of returned citations were repeats in real sessions, so repeats
21
+ * come back as short stubs (or not at all) and the budget goes to new evidence.
22
+ */
23
+ export declare class McpSessionMemory {
24
+ private readonly citations;
25
+ get size(): number;
26
+ has(citation: string): boolean;
27
+ remember(citations: Iterable<string>): void;
28
+ }
29
+ /**
30
+ * Keep up to `topK` unseen results in rank order. Seen results ranked above the last kept one become
31
+ * stubs in `collapse` mode, disappear in `exclude` mode, and stay whole in `include` mode.
32
+ * `alsoSeen` holds citations returned earlier in the same batch.
33
+ */
34
+ export declare function applySeenResults<Result extends CitedResult>(results: readonly Result[], memory: McpSessionMemory, mode: McpSeenResults, topK: number, alsoSeen?: ReadonlySet<string>): Array<Result | SeenCitationStub>;
35
+ export declare function isSeenCitationStub(value: unknown): value is SeenCitationStub;
36
+ export {};
37
+ //# sourceMappingURL=mcp-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-session.d.ts","sourceRoot":"","sources":["../src/mcp-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,iGAAiG;AACjG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1B;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1B;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAE9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7B;IAED,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAI1C;CACF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,WAAW,EACzD,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACxC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAuBlC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Citations returned during one MCP connection. Agents fan out related searches and receive the
3
+ * same passages again; a quarter of returned citations were repeats in real sessions, so repeats
4
+ * come back as short stubs (or not at all) and the budget goes to new evidence.
5
+ */
6
+ export class McpSessionMemory {
7
+ citations = new Set();
8
+ get size() {
9
+ return this.citations.size;
10
+ }
11
+ has(citation) {
12
+ return this.citations.has(citation);
13
+ }
14
+ remember(citations) {
15
+ for (const citation of citations) {
16
+ this.citations.add(citation);
17
+ }
18
+ }
19
+ }
20
+ /**
21
+ * Keep up to `topK` unseen results in rank order. Seen results ranked above the last kept one become
22
+ * stubs in `collapse` mode, disappear in `exclude` mode, and stay whole in `include` mode.
23
+ * `alsoSeen` holds citations returned earlier in the same batch.
24
+ */
25
+ export function applySeenResults(results, memory, mode, topK, alsoSeen = new Set()) {
26
+ if (mode === "include") {
27
+ return results.slice(0, topK);
28
+ }
29
+ const selected = [];
30
+ let fresh = 0;
31
+ for (const result of results) {
32
+ if (fresh >= topK) {
33
+ break;
34
+ }
35
+ if (!memory.has(result.citation) && !alsoSeen.has(result.citation)) {
36
+ selected.push(result);
37
+ fresh += 1;
38
+ }
39
+ else if (mode === "collapse") {
40
+ selected.push({
41
+ citation: result.citation,
42
+ relativePath: result.relativePath,
43
+ seen: true,
44
+ ...(result.evidence === undefined ? {} : { evidence: { id: result.evidence.id } }),
45
+ });
46
+ }
47
+ }
48
+ return selected;
49
+ }
50
+ export function isSeenCitationStub(value) {
51
+ return typeof value === "object" && value !== null && "seen" in value && value.seen === true;
52
+ }
53
+ //# sourceMappingURL=mcp-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-session.js","sourceRoot":"","sources":["../src/mcp-session.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9C,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,QAAQ,CAAC,SAA2B;QAClC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA0B,EAC1B,MAAwB,EACxB,IAAoB,EACpB,IAAY,EACZ,QAAQ,GAAwB,IAAI,GAAG,EAAE;IAEzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IACD,MAAM,QAAQ,GAAqC,EAAE,CAAA;IACrD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAK;QACP,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACrB,KAAK,IAAI,CAAC,CAAA;QACZ,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,IAAI;gBACV,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;aACnF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAA;AAC9F,CAAC"}
@@ -16,6 +16,11 @@ export declare function compactStatusOutput(value: McpStatusOutput): CompactJson
16
16
  export declare function compactContextOutput(value: KnowledgeBaseContextReport): CompactJsonValue;
17
17
  export declare function compactSourcesOutput(value: KnowledgeBaseSourceCatalog): CompactJsonValue;
18
18
  export declare function compactAuditOutput(value: AuditReport): CompactJsonValue;
19
+ /**
20
+ * Default MCP audit answer: counts, the first drifted files, and the diagnostics an agent can act
21
+ * on, instead of every path in the corpus.
22
+ */
23
+ export declare function summarizeAuditForMcp(report: AuditReport): Record<string, unknown>;
19
24
  export declare function mcpPreviewLimit(maxBytes: number): number;
20
25
  export {};
21
26
  //# sourceMappingURL=mcp-summaries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-summaries.d.ts","sourceRoot":"","sources":["../src/mcp-summaries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,YAAY,CAAA;AAEnB,UAAU,eAAe;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC5C,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC9C,sBAAsB,EAAE,MAAM,CAAA;IAC9B,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAkB5E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,GAAG,gBAAgB,CAsBxF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,GAAG,gBAAgB,CAuBxF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAiCvE;AAgBD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"mcp-summaries.d.ts","sourceRoot":"","sources":["../src/mcp-summaries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,YAAY,CAAA;AAEnB,UAAU,eAAe;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC5C,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC9C,sBAAsB,EAAE,MAAM,CAAA;IAC9B,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAkB5E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,GAAG,gBAAgB,CAsBxF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,GAAG,gBAAgB,CAuBxF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAiCvE;AAkBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwBjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -109,6 +109,36 @@ function emptyAuditOmissions() {
109
109
  staleInIndex: 0,
110
110
  };
111
111
  }
112
+ const AUDIT_SUMMARY_PREVIEWS = 10;
113
+ /**
114
+ * Default MCP audit answer: counts, the first drifted files, and the diagnostics an agent can act
115
+ * on, instead of every path in the corpus.
116
+ */
117
+ export function summarizeAuditForMcp(report) {
118
+ const omitted = report.omitted ?? emptyAuditOmissions();
119
+ return {
120
+ mode: report.mode,
121
+ inventoryVerified: report.inventoryVerified,
122
+ discoveredFiles: report.discoveredFiles,
123
+ totalChunks: report.totalChunks,
124
+ counts: {
125
+ indexedFiles: report.indexedFiles.length + omitted.indexedFiles,
126
+ supportedFiles: report.supportedFiles.length + omitted.supportedFiles,
127
+ skippedFiles: report.skippedFiles.length + omitted.skippedFiles,
128
+ emptyTextFiles: report.emptyTextFiles.length + omitted.emptyTextFiles,
129
+ missingFromIndex: report.missingFromIndex.length + omitted.missingFromIndex,
130
+ staleInIndex: report.staleInIndex.length + omitted.staleInIndex,
131
+ },
132
+ previews: {
133
+ missingFromIndex: report.missingFromIndex.slice(0, AUDIT_SUMMARY_PREVIEWS),
134
+ staleInIndex: report.staleInIndex.slice(0, AUDIT_SUMMARY_PREVIEWS),
135
+ emptyTextFiles: report.emptyTextFiles.slice(0, AUDIT_SUMMARY_PREVIEWS),
136
+ },
137
+ ...(report.sourceRules === undefined ? {} : { sourceRules: report.sourceRules }),
138
+ ...(report.concentration === undefined ? {} : { concentration: report.concentration }),
139
+ detail: "Call ragmir_audit with detail:true for every path.",
140
+ };
141
+ }
112
142
  export function mcpPreviewLimit(maxBytes) {
113
143
  return Math.max(1, Math.min(200, Math.floor(maxBytes / 512)));
114
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-summaries.js","sourceRoot":"","sources":["../src/mcp-summaries.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,mBAAmB,CAAC,KAAsB;IACxD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IACjE,OAAO;QACL,KAAK,EAAE;YACL,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,aAAa;SACd;QACD,YAAY,EAAE,aAAa;KAC5B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAiC;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7C,OAAO;QACL,KAAK,EAAE;YACL,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,EAAE,SAAS,EAAE;YACvB,OAAO,EAAE;gBACP,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;gBACpD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;aAClC;SACF;QACD,YAAY,EACV,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM;KAC1F,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAiC;IACpE,MAAM,OAAO,GAAG;QACd,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM;QACpE,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM;QAChF,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM;QACpE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM;KAC3E,CAAA;IACD,OAAO;QACL,KAAK,EAAE;YACL,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE;gBACR,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,EAAE;gBACpB,YAAY,EAAE,EAAE;gBAChB,cAAc,EAAE,EAAE;aACnB;YACD,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM;YAC7D,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB;QACD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;KAChF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAA;IACtD,MAAM,MAAM,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY;QAC9D,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc;QACpE,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY;QAC9D,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc;QACpE,mBAAmB,EACjB,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,GAAG,OAAO,CAAC,mBAAmB;QAClF,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB;QAC/F,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB;QAC5F,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB;QAC1E,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY;KAC/D,CAAA;IACD,OAAO;QACL,KAAK,EAAE;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM;YACN,QAAQ,EAAE;gBACR,gBAAgB,EAAE,EAAE;gBACpB,YAAY,EAAE,EAAE;aACjB;YACD,OAAO,EAAE,MAAM;SAChB;QACD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;KAC/E,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;QACL,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,mBAAmB,EAAE,CAAC;QACtB,iBAAiB,EAAE,CAAC;QACpB,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,CAAC;KAChB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"mcp-summaries.js","sourceRoot":"","sources":["../src/mcp-summaries.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts CHANGED
@@ -1,11 +1,17 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
3
3
  import { RagmirClient } from "./client.js";
4
+ import { type KnowledgeBaseProfile } from "./knowledge-bases.js";
4
5
  import type { Config } from "./types.js";
5
6
  interface McpClientLifecycle {
6
7
  getClient(config?: Config): Promise<RagmirClient>;
7
8
  close(): Promise<void>;
8
9
  }
10
+ /**
11
+ * Instructions name the base and its root: one generic text for every Ragmir server let agents in
12
+ * unrelated projects treat another project's documents as their own.
13
+ */
14
+ export declare function mcpServerInstructions(profile: KnowledgeBaseProfile): string;
9
15
  export declare function createMcpClientLifecycle(cwd: string): McpClientLifecycle;
10
16
  export declare function createMcpServer(cwd?: string): McpServer;
11
17
  export declare function connectMcpServer(transport: Transport, cwd?: string): Promise<McpServer>;
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA6B1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAyDxC,UAAU,kBAAkB;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAwBD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAmExE;AAED,wBAAgB,eAAe,CAAC,GAAG,SAA0B,GAAG,SAAS,CA4NxE;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,GAAG,SAA0B,GAC5B,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED,wBAAsB,QAAQ,CAAC,GAAG,SAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E;AAED,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,SAAgB,GACvB,MAAM,CAYR;AAiFD,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,EAC7B,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,GACxC,OAAO,CAAC;IACT,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAC,CAYD"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK1C,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,sBAAsB,CAAA;AAkC7B,OAAO,KAAK,EAAE,MAAM,EAAgC,MAAM,YAAY,CAAA;AAmGtE,UAAU,kBAAkB;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AA8BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAkB3E;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAmExE;AAsCD,wBAAgB,eAAe,CAAC,GAAG,SAA0B,GAAG,SAAS,CAgYxE;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,GAAG,SAA0B,GAC5B,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED,wBAAsB,QAAQ,CAAC,GAAG,SAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E;AAED,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,SAAgB,GACvB,MAAM,CAYR;AAqQD,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EACnC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,EAC7B,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,GACxC,OAAO,CAAC;IACT,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAC,CAYD"}