@jcode.labs/ragmir 2.17.2 → 2.18.1

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 (205) hide show
  1. package/README.md +53 -43
  2. package/dist/access-log.d.ts +10 -0
  3. package/dist/access-log.d.ts.map +1 -1
  4. package/dist/access-log.js +119 -49
  5. package/dist/access-log.js.map +1 -1
  6. package/dist/chunking.d.ts +5 -1
  7. package/dist/chunking.d.ts.map +1 -1
  8. package/dist/chunking.js +102 -16
  9. package/dist/chunking.js.map +1 -1
  10. package/dist/citation.d.ts +18 -0
  11. package/dist/citation.d.ts.map +1 -0
  12. package/dist/citation.js +54 -0
  13. package/dist/citation.js.map +1 -0
  14. package/dist/cli-entry.d.ts +3 -0
  15. package/dist/cli-entry.d.ts.map +1 -0
  16. package/dist/cli-entry.js +16 -0
  17. package/dist/cli-entry.js.map +1 -0
  18. package/dist/cli-fast.d.ts +13 -0
  19. package/dist/cli-fast.d.ts.map +1 -0
  20. package/dist/cli-fast.js +145 -0
  21. package/dist/cli-fast.js.map +1 -0
  22. package/dist/cli-options.d.ts +3 -0
  23. package/dist/cli-options.d.ts.map +1 -1
  24. package/dist/cli-options.js +7 -0
  25. package/dist/cli-options.js.map +1 -1
  26. package/dist/cli-stdin.d.ts +3 -0
  27. package/dist/cli-stdin.d.ts.map +1 -0
  28. package/dist/cli-stdin.js +15 -0
  29. package/dist/cli-stdin.js.map +1 -0
  30. package/dist/cli.js +251 -44
  31. package/dist/cli.js.map +1 -1
  32. package/dist/client.d.ts +13 -2
  33. package/dist/client.d.ts.map +1 -1
  34. package/dist/client.js +155 -10
  35. package/dist/client.js.map +1 -1
  36. package/dist/config.d.ts +6 -0
  37. package/dist/config.d.ts.map +1 -1
  38. package/dist/config.js +227 -49
  39. package/dist/config.js.map +1 -1
  40. package/dist/context-resources.d.ts +4 -2
  41. package/dist/context-resources.d.ts.map +1 -1
  42. package/dist/context-resources.js +55 -24
  43. package/dist/context-resources.js.map +1 -1
  44. package/dist/defaults.d.ts +27 -0
  45. package/dist/defaults.d.ts.map +1 -1
  46. package/dist/defaults.js +42 -2
  47. package/dist/defaults.js.map +1 -1
  48. package/dist/destroy.d.ts +2 -2
  49. package/dist/destroy.d.ts.map +1 -1
  50. package/dist/destroy.js +34 -20
  51. package/dist/destroy.js.map +1 -1
  52. package/dist/doctor.d.ts +3 -2
  53. package/dist/doctor.d.ts.map +1 -1
  54. package/dist/doctor.js +86 -41
  55. package/dist/doctor.js.map +1 -1
  56. package/dist/durable-file.d.ts +13 -0
  57. package/dist/durable-file.d.ts.map +1 -0
  58. package/dist/durable-file.js +56 -0
  59. package/dist/durable-file.js.map +1 -0
  60. package/dist/embeddings.d.ts +14 -3
  61. package/dist/embeddings.d.ts.map +1 -1
  62. package/dist/embeddings.js +233 -95
  63. package/dist/embeddings.js.map +1 -1
  64. package/dist/errors.d.ts +1 -1
  65. package/dist/errors.d.ts.map +1 -1
  66. package/dist/errors.js.map +1 -1
  67. package/dist/evaluate.d.ts +4 -3
  68. package/dist/evaluate.d.ts.map +1 -1
  69. package/dist/evaluate.js +611 -110
  70. package/dist/evaluate.js.map +1 -1
  71. package/dist/files.d.ts +4 -1
  72. package/dist/files.d.ts.map +1 -1
  73. package/dist/files.js +119 -33
  74. package/dist/files.js.map +1 -1
  75. package/dist/generation-retention.d.ts +52 -0
  76. package/dist/generation-retention.d.ts.map +1 -0
  77. package/dist/generation-retention.js +318 -0
  78. package/dist/generation-retention.js.map +1 -0
  79. package/dist/index-diagnostics.d.ts +3 -2
  80. package/dist/index-diagnostics.d.ts.map +1 -1
  81. package/dist/index-diagnostics.js +32 -3
  82. package/dist/index-diagnostics.js.map +1 -1
  83. package/dist/index-policy.d.ts.map +1 -1
  84. package/dist/index-policy.js +3 -0
  85. package/dist/index-policy.js.map +1 -1
  86. package/dist/index-write-lock.d.ts +16 -1
  87. package/dist/index-write-lock.d.ts.map +1 -1
  88. package/dist/index-write-lock.js +392 -13
  89. package/dist/index-write-lock.js.map +1 -1
  90. package/dist/index.d.ts +12 -4
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +5 -2
  93. package/dist/index.js.map +1 -1
  94. package/dist/ingest.d.ts +11 -2
  95. package/dist/ingest.d.ts.map +1 -1
  96. package/dist/ingest.js +680 -165
  97. package/dist/ingest.js.map +1 -1
  98. package/dist/ingestion-metrics.d.ts +58 -0
  99. package/dist/ingestion-metrics.d.ts.map +1 -0
  100. package/dist/ingestion-metrics.js +216 -0
  101. package/dist/ingestion-metrics.js.map +1 -0
  102. package/dist/ingestion-state.d.ts +11 -2
  103. package/dist/ingestion-state.d.ts.map +1 -1
  104. package/dist/ingestion-state.js +480 -49
  105. package/dist/ingestion-state.js.map +1 -1
  106. package/dist/limits.d.ts.map +1 -1
  107. package/dist/limits.js +11 -1
  108. package/dist/limits.js.map +1 -1
  109. package/dist/mcp-output.d.ts +44 -4
  110. package/dist/mcp-output.d.ts.map +1 -1
  111. package/dist/mcp-output.js +132 -159
  112. package/dist/mcp-output.js.map +1 -1
  113. package/dist/mcp-summaries.d.ts +32 -0
  114. package/dist/mcp-summaries.d.ts.map +1 -0
  115. package/dist/mcp-summaries.js +227 -0
  116. package/dist/mcp-summaries.js.map +1 -0
  117. package/dist/mcp.d.ts +1 -1
  118. package/dist/mcp.d.ts.map +1 -1
  119. package/dist/mcp.js +85 -46
  120. package/dist/mcp.js.map +1 -1
  121. package/dist/ocr-cache.d.ts +15 -0
  122. package/dist/ocr-cache.d.ts.map +1 -0
  123. package/dist/ocr-cache.js +90 -0
  124. package/dist/ocr-cache.js.map +1 -0
  125. package/dist/ocr.d.ts +31 -0
  126. package/dist/ocr.d.ts.map +1 -1
  127. package/dist/ocr.js +193 -17
  128. package/dist/ocr.js.map +1 -1
  129. package/dist/parsing.d.ts.map +1 -1
  130. package/dist/parsing.js +482 -85
  131. package/dist/parsing.js.map +1 -1
  132. package/dist/permissions.js +2 -2
  133. package/dist/permissions.js.map +1 -1
  134. package/dist/preview.d.ts.map +1 -1
  135. package/dist/preview.js +10 -11
  136. package/dist/preview.js.map +1 -1
  137. package/dist/quality-report.d.ts +12 -0
  138. package/dist/quality-report.d.ts.map +1 -0
  139. package/dist/quality-report.js +146 -0
  140. package/dist/quality-report.js.map +1 -0
  141. package/dist/query.d.ts +7 -4
  142. package/dist/query.d.ts.map +1 -1
  143. package/dist/query.js +371 -284
  144. package/dist/query.js.map +1 -1
  145. package/dist/ranking.d.ts +38 -0
  146. package/dist/ranking.d.ts.map +1 -0
  147. package/dist/ranking.js +278 -0
  148. package/dist/ranking.js.map +1 -0
  149. package/dist/redaction.d.ts +6 -1
  150. package/dist/redaction.d.ts.map +1 -1
  151. package/dist/redaction.js +118 -4
  152. package/dist/redaction.js.map +1 -1
  153. package/dist/research.d.ts +6 -1
  154. package/dist/research.d.ts.map +1 -1
  155. package/dist/research.js +330 -130
  156. package/dist/research.js.map +1 -1
  157. package/dist/runtime-info.d.ts +3 -0
  158. package/dist/runtime-info.d.ts.map +1 -0
  159. package/dist/runtime-info.js +81 -0
  160. package/dist/runtime-info.js.map +1 -0
  161. package/dist/security.d.ts +3 -2
  162. package/dist/security.d.ts.map +1 -1
  163. package/dist/security.js +242 -45
  164. package/dist/security.js.map +1 -1
  165. package/dist/semantic-config.d.ts +7 -1
  166. package/dist/semantic-config.d.ts.map +1 -1
  167. package/dist/semantic-config.js +30 -4
  168. package/dist/semantic-config.js.map +1 -1
  169. package/dist/setup.js +6 -3
  170. package/dist/setup.js.map +1 -1
  171. package/dist/skill.js +34 -12
  172. package/dist/skill.js.map +1 -1
  173. package/dist/source-fingerprint-cache.d.ts +20 -0
  174. package/dist/source-fingerprint-cache.d.ts.map +1 -0
  175. package/dist/source-fingerprint-cache.js +133 -0
  176. package/dist/source-fingerprint-cache.js.map +1 -0
  177. package/dist/storage-maintenance.d.ts +46 -0
  178. package/dist/storage-maintenance.d.ts.map +1 -0
  179. package/dist/storage-maintenance.js +329 -0
  180. package/dist/storage-maintenance.js.map +1 -0
  181. package/dist/store.d.ts +39 -2
  182. package/dist/store.d.ts.map +1 -1
  183. package/dist/store.js +559 -24
  184. package/dist/store.js.map +1 -1
  185. package/dist/text.d.ts +1 -1
  186. package/dist/text.d.ts.map +1 -1
  187. package/dist/text.js +12 -2
  188. package/dist/text.js.map +1 -1
  189. package/dist/types.d.ts +414 -5
  190. package/dist/types.d.ts.map +1 -1
  191. package/dist/vector-index.d.ts +42 -0
  192. package/dist/vector-index.d.ts.map +1 -0
  193. package/dist/vector-index.js +249 -0
  194. package/dist/vector-index.js.map +1 -0
  195. package/dist/version.d.ts +1 -1
  196. package/dist/version.js +1 -1
  197. package/dist/workload.d.ts +22 -0
  198. package/dist/workload.d.ts.map +1 -0
  199. package/dist/workload.js +181 -0
  200. package/dist/workload.js.map +1 -0
  201. package/examples/document-evidence-benchmark/README.md +25 -63
  202. package/examples/document-evidence-benchmark/golden-queries.json +1 -1
  203. package/examples/library-api-demo/README.md +17 -57
  204. package/examples/sovereign-rag-demo/README.md +37 -97
  205. package/package.json +36 -11
package/dist/mcp.js CHANGED
@@ -3,22 +3,29 @@ import path from "node:path";
3
3
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
5
  import { z } from "zod";
6
- import { accessLogUsageReport, MAX_USAGE_REPORT_DAYS, recordMcpOutput } from "./access-log.js";
7
- import { createRagmirClient } from "./client.js";
6
+ import { accessLogUsageReportWithConfig, MAX_USAGE_REPORT_DAYS, recordMcpOutput, } from "./access-log.js";
7
+ import { RagmirClient } from "./client.js";
8
8
  import { findProjectConfig, loadConfig } from "./config.js";
9
- import { RAGMIR_PROJECT_ROOT_ENV } from "./defaults.js";
10
- import { evaluateGoldenQueries } from "./evaluate.js";
11
- import { audit } from "./ingest.js";
9
+ import { MAX_SEARCH_TOP_K, RAGMIR_PROJECT_ROOT_ENV } from "./defaults.js";
10
+ import { evaluateGoldenQueriesWithConfig } from "./evaluate.js";
11
+ import { auditWithConfig } from "./ingest.js";
12
12
  import { knowledgeBaseIdentity } from "./knowledge-bases.js";
13
13
  import { ingestionLimits } from "./limits.js";
14
14
  import { budgetMcpJson, fitAskPayload, fitExpandedCitation, fitMcpJsonOutput, fitResearchPayload, fitSearchPayload, MIN_MCP_OUTPUT_BYTES, resolveMcpOutputBudget, } from "./mcp-output.js";
15
+ import { compactAuditOutput, compactContextOutput, compactEvaluationOutput, compactRouteOutput, compactSecurityOutput, compactSourcesOutput, compactStatusOutput, compactUsageOutput, mcpPreviewLimit, } from "./mcp-summaries.js";
15
16
  import { routePrompt } from "./prompt-routing.js";
16
17
  import { compactResearchReport, compactSearchResults } from "./research.js";
17
- import { securityAudit } from "./security.js";
18
+ import { securityAuditWithConfig } from "./security.js";
18
19
  import { VERSION } from "./version.js";
19
20
  const MAX_MCP_INPUT_CHARACTERS = 20_000;
20
21
  const MAX_MCP_PATH_CHARACTERS = 500;
21
22
  const MAX_MCP_OUTPUT_BYTES = 1_048_576;
23
+ const MAX_MCP_OPERATION_TIMEOUT_MS = 2_147_483_647;
24
+ const MAX_MCP_CODE_EVIDENCE = 100;
25
+ const MAX_MCP_CODE_SCAN_FILES = 10_000;
26
+ const MAX_MCP_CODE_SCAN_BYTES = 256 * 1024 * 1024;
27
+ const MAX_MCP_CODE_SCAN_CONCURRENCY = 16;
28
+ const MAX_MCP_CONTEXT_RADIUS = 3;
22
29
  const STRICT_MCP_FRESHNESS_WARNING = "Index freshness requires attention. Run `rgr doctor` locally for detailed diagnostics.";
23
30
  const STRICT_MCP_NEXT_STEP = "Run `rgr doctor` locally for detailed next steps.";
24
31
  const LOCAL_NON_DESTRUCTIVE_TOOL_ANNOTATIONS = {
@@ -39,8 +46,8 @@ const POTENTIALLY_NETWORKED_TOOL_ANNOTATIONS = {
39
46
  const queryToolInputSchema = z
40
47
  .object({
41
48
  query: z.string().trim().min(1).max(MAX_MCP_INPUT_CHARACTERS),
42
- topK: z.number().int().positive().optional(),
43
- contextRadius: z.number().int().min(0).optional(),
49
+ topK: z.number().int().positive().max(MAX_SEARCH_TOP_K).optional(),
50
+ contextRadius: z.number().int().min(0).max(MAX_MCP_CONTEXT_RADIUS).optional(),
44
51
  maxBytes: z.number().int().min(MIN_MCP_OUTPUT_BYTES).max(MAX_MCP_OUTPUT_BYTES).optional(),
45
52
  includePaths: z.array(z.string().min(1).max(MAX_MCP_PATH_CHARACTERS)).max(20).optional(),
46
53
  excludePaths: z.array(z.string().min(1).max(MAX_MCP_PATH_CHARACTERS)).max(20).optional(),
@@ -54,8 +61,14 @@ const askToolInputSchema = queryToolInputSchema.extend({
54
61
  const researchToolInputSchema = z
55
62
  .object({
56
63
  query: z.string().trim().min(1).max(MAX_MCP_INPUT_CHARACTERS),
57
- topK: z.number().int().positive().optional(),
64
+ topK: z.number().int().positive().max(MAX_SEARCH_TOP_K).optional(),
58
65
  includeCode: z.boolean().optional(),
66
+ fullAudit: z.boolean().optional(),
67
+ timeoutMs: z.number().int().positive().max(MAX_MCP_OPERATION_TIMEOUT_MS).optional(),
68
+ codeTopK: z.number().int().positive().max(MAX_MCP_CODE_EVIDENCE).optional(),
69
+ codeScanMaxFiles: z.number().int().positive().max(MAX_MCP_CODE_SCAN_FILES).optional(),
70
+ codeScanMaxBytes: z.number().int().positive().max(MAX_MCP_CODE_SCAN_BYTES).optional(),
71
+ codeScanConcurrency: z.number().int().positive().max(MAX_MCP_CODE_SCAN_CONCURRENCY).optional(),
59
72
  compact: z.boolean().optional(),
60
73
  maxBytes: z.number().int().min(MIN_MCP_OUTPUT_BYTES).max(MAX_MCP_OUTPUT_BYTES).optional(),
61
74
  includePaths: z.array(z.string().min(1).max(MAX_MCP_PATH_CHARACTERS)).max(20).optional(),
@@ -69,7 +82,7 @@ const searchToolInputSchema = queryToolInputSchema.extend({
69
82
  const evaluateToolInputSchema = z
70
83
  .object({
71
84
  goldenPath: z.string().min(1).max(MAX_MCP_PATH_CHARACTERS),
72
- topK: z.number().int().positive().optional(),
85
+ topK: z.number().int().positive().max(MAX_SEARCH_TOP_K).optional(),
73
86
  failUnder: z.number().min(0).max(1).optional(),
74
87
  maxBytes: z.number().int().min(MIN_MCP_OUTPUT_BYTES).max(MAX_MCP_OUTPUT_BYTES).optional(),
75
88
  })
@@ -92,7 +105,7 @@ const promptRouteInputSchema = z
92
105
  const expandToolInputSchema = z
93
106
  .object({
94
107
  citation: z.string().min(1).max(2_000),
95
- contextRadius: z.number().int().min(0).max(3).optional(),
108
+ contextRadius: z.number().int().min(0).max(MAX_MCP_CONTEXT_RADIUS).optional(),
96
109
  maxBytes: z.number().int().min(MIN_MCP_OUTPUT_BYTES).max(MAX_MCP_OUTPUT_BYTES).optional(),
97
110
  })
98
111
  .strict();
@@ -145,7 +158,7 @@ export function createMcpClientLifecycle(cwd) {
145
158
  if (closing) {
146
159
  throw new Error("The MCP server is closed.");
147
160
  }
148
- return createRagmirClient({ cwd });
161
+ return RagmirClient.createWithConfig(effectiveConfig);
149
162
  })();
150
163
  clientPromise = pending;
151
164
  clientConfigSignature = signature;
@@ -206,7 +219,7 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
206
219
  },
207
220
  nextSteps: context.nextSteps.length === 0 ? [] : [STRICT_MCP_NEXT_STEP],
208
221
  };
209
- return jsonResource(uri, output, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir://context");
222
+ return jsonResource(uri, output, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir://context", compactContextOutput(output));
210
223
  });
211
224
  server.registerResource("ragmir-sources", "ragmir://sources", {
212
225
  title: "Ragmir Source Catalog",
@@ -215,13 +228,14 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
215
228
  }, async (uri, { signal }) => {
216
229
  throwIfMcpAborted(signal);
217
230
  const config = await loadConfig(cwd);
231
+ const budget = mcpOutputBudget(config.mcpMaxOutputBytes);
218
232
  const client = await clientLifecycle.getClient(config);
219
- const sources = await abortableMcpOperation(client.sources({ signal }), signal);
220
- return jsonResource(uri, sources, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir://sources");
233
+ const sources = await abortableMcpOperation(client.sources({ signal, limit: mcpPreviewLimit(budget) }), signal);
234
+ return jsonResource(uri, sources, budget, "ragmir://sources", compactSourcesOutput(sources));
221
235
  });
222
236
  server.registerTool("ragmir_status", {
223
237
  title: "Ragmir Status",
224
- description: "Show active Ragmir configuration and indexed chunk count.",
238
+ description: "Show active Ragmir configuration, readiness, corpus fingerprint, and counts.",
225
239
  inputSchema: z.object({}).strict(),
226
240
  annotations: LOCAL_NON_DESTRUCTIVE_TOOL_ANNOTATIONS,
227
241
  }, async (_input, { signal }) => {
@@ -246,6 +260,7 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
246
260
  embeddingProvider: config.embeddingProvider,
247
261
  embeddingModel: strict ? privateMcpPath(config.embeddingModel) : config.embeddingModel,
248
262
  embeddingModelRevision: config.embeddingModelRevision,
263
+ embeddingModelDigest: config.embeddingModelDigest,
249
264
  embeddingModelPath: strict
250
265
  ? privateProjectPath(config.projectRoot, config.embeddingModelPath)
251
266
  : config.embeddingModelPath,
@@ -257,6 +272,7 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
257
272
  maxFileBytes: config.maxFileBytes,
258
273
  ingestConcurrency: config.ingestConcurrency,
259
274
  embeddingBatchSize: config.embeddingBatchSize,
275
+ incrementalFailurePolicy: config.incrementalFailurePolicy,
260
276
  includeExtensions: config.includeExtensions,
261
277
  pdfOcrCommand: config.pdfOcrCommand,
262
278
  pdfOcrTimeoutMs: config.pdfOcrTimeoutMs,
@@ -265,9 +281,11 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
265
281
  legacyWordCommand: config.legacyWordCommand,
266
282
  legacyWordTimeoutMs: config.legacyWordTimeoutMs,
267
283
  ingestionLimits: ingestionLimits(config),
284
+ ready: context.ready,
285
+ corpusFingerprint: context.corpusFingerprint,
268
286
  chunksIndexed: context.coverage.chunksIndexed,
269
287
  };
270
- return boundedJsonResult(output, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_status");
288
+ return boundedJsonResult(output, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_status", compactStatusOutput(output));
271
289
  });
272
290
  server.registerTool("ragmir_route_prompt", {
273
291
  title: "Ragmir Prompt Router",
@@ -277,7 +295,8 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
277
295
  }, async ({ prompt }, { signal }) => {
278
296
  throwIfMcpAborted(signal);
279
297
  const config = await loadConfig(cwd);
280
- return boundedJsonResult(routePrompt(prompt), mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_route_prompt");
298
+ const decision = routePrompt(prompt);
299
+ return boundedJsonResult(decision, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_route_prompt", compactRouteOutput(decision));
281
300
  });
282
301
  server.registerTool("ragmir_search", {
283
302
  title: "Ragmir Search",
@@ -287,7 +306,9 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
287
306
  }, async ({ query, topK, contextRadius, compact, maxBytes, includePaths, excludePaths, contextPaths, explain, }, { signal }) => {
288
307
  throwIfMcpAborted(signal);
289
308
  const config = await loadConfig(cwd);
290
- const options = await searchOptions(cwd, topK, contextRadius, includePaths, excludePaths, contextPaths, explain);
309
+ const budget = mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes);
310
+ const options = searchOptionsWithConfig(config, topK, contextRadius, includePaths, excludePaths, contextPaths, explain);
311
+ options.topK = Math.min(options.topK ?? 1, mcpPreviewLimit(budget));
291
312
  const client = await clientLifecycle.getClient(config);
292
313
  const results = await client.search(query, { ...options, signal });
293
314
  const compactResults = compactSearchResults(results);
@@ -295,7 +316,7 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
295
316
  const preferred = compactOutput ? compactResults : results;
296
317
  const bounded = budgetMcpJson({
297
318
  tool: "ragmir_search",
298
- maxBytes: mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes),
319
+ maxBytes: budget,
299
320
  fullValue: results,
300
321
  preferredValue: preferred,
301
322
  compactValue: compactResults,
@@ -313,7 +334,9 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
313
334
  }, async ({ query, topK, contextRadius, compact, maxBytes, includePaths, excludePaths, contextPaths, explain, }, { signal }) => {
314
335
  throwIfMcpAborted(signal);
315
336
  const config = await loadConfig(cwd);
316
- const options = await searchOptions(cwd, topK, contextRadius, includePaths, excludePaths, contextPaths, explain);
337
+ const budget = mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes);
338
+ const options = searchOptionsWithConfig(config, topK, contextRadius, includePaths, excludePaths, contextPaths, explain);
339
+ options.topK = Math.min(options.topK ?? 1, mcpPreviewLimit(budget));
317
340
  const cancellableOptions = { ...options, signal };
318
341
  const client = await clientLifecycle.getClient(config);
319
342
  let fullPayload;
@@ -336,7 +359,7 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
336
359
  const compactOutput = config.privacyProfile === "strict" || compact === true;
337
360
  const bounded = budgetMcpJson({
338
361
  tool: "ragmir_ask",
339
- maxBytes: mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes),
362
+ maxBytes: budget,
340
363
  fullValue: fullPayload,
341
364
  preferredValue: compactOutput ? compactPayload : fullPayload,
342
365
  compactValue: compactPayload,
@@ -348,16 +371,25 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
348
371
  });
349
372
  server.registerTool("ragmir_research", {
350
373
  title: "Ragmir Research",
351
- description: "Run an audit-backed multi-query research pass with cited evidence and optional code matches.",
374
+ description: "Run a bounded multi-query research pass with cited evidence and optional code matches.",
352
375
  inputSchema: researchToolInputSchema,
353
376
  annotations: POTENTIALLY_NETWORKED_TOOL_ANNOTATIONS,
354
- }, async ({ query, topK, includeCode, compact, maxBytes, includePaths, excludePaths, contextPaths }, { signal }) => {
377
+ }, async ({ query, topK, includeCode, fullAudit, timeoutMs, codeTopK, codeScanMaxFiles, codeScanMaxBytes, codeScanConcurrency, compact, maxBytes, includePaths, excludePaths, contextPaths, }, { signal }) => {
355
378
  throwIfMcpAborted(signal);
356
379
  const config = await loadConfig(cwd);
357
- const options = await searchOptions(cwd, topK, undefined, includePaths, excludePaths, contextPaths);
380
+ const budget = mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes);
381
+ const previewLimit = mcpPreviewLimit(budget);
382
+ const options = searchOptionsWithConfig(config, topK, undefined, includePaths, excludePaths, contextPaths);
383
+ options.topK = Math.min(options.topK ?? 1, previewLimit);
358
384
  const researchOptions = { signal };
359
385
  addOption(researchOptions, "topK", options.topK);
360
386
  addOption(researchOptions, "includeCode", includeCode);
387
+ addOption(researchOptions, "fullAudit", fullAudit);
388
+ addOption(researchOptions, "timeoutMs", timeoutMs);
389
+ addOption(researchOptions, "codeTopK", Math.min(codeTopK ?? previewLimit, previewLimit));
390
+ addOption(researchOptions, "codeScanMaxFiles", codeScanMaxFiles);
391
+ addOption(researchOptions, "codeScanMaxBytes", codeScanMaxBytes);
392
+ addOption(researchOptions, "codeScanConcurrency", codeScanConcurrency);
361
393
  addOption(researchOptions, "includePaths", options.includePaths);
362
394
  addOption(researchOptions, "excludePaths", options.excludePaths);
363
395
  addOption(researchOptions, "contextPaths", options.contextPaths);
@@ -368,7 +400,7 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
368
400
  const preferred = compactOutput ? compactResult : result;
369
401
  const bounded = budgetMcpJson({
370
402
  tool: "ragmir_research",
371
- maxBytes: mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes),
403
+ maxBytes: budget,
372
404
  fullValue: result,
373
405
  preferredValue: preferred,
374
406
  compactValue: compactResult,
@@ -410,29 +442,33 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
410
442
  }, async ({ maxBytes }, { signal }) => {
411
443
  throwIfMcpAborted(signal);
412
444
  const config = await loadConfig(cwd);
413
- const report = await abortableMcpOperation(audit(cwd, { signal }), signal);
414
- return boundedJsonResult(report, mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes), "ragmir_audit");
445
+ const budget = mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes);
446
+ const report = await abortableMcpOperation(auditWithConfig(config, { signal, previewLimit: mcpPreviewLimit(budget) }), signal);
447
+ return boundedJsonResult(report, budget, "ragmir_audit", compactAuditOutput(report));
415
448
  });
416
449
  server.registerTool("ragmir_evaluate", {
417
450
  title: "Ragmir Evaluate",
418
- description: "Measure retrieval recall against a local golden query file.",
451
+ description: "Measure retrieval quality against a local golden query file.",
419
452
  inputSchema: evaluateToolInputSchema,
420
453
  annotations: POTENTIALLY_NETWORKED_TOOL_ANNOTATIONS,
421
454
  }, async ({ goldenPath, topK, failUnder, maxBytes }, { signal }) => {
422
455
  throwIfMcpAborted(signal);
423
456
  const config = await loadConfig(cwd);
424
457
  try {
458
+ const budget = mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes);
425
459
  const options = evaluationOptions(cwd, goldenPath, topK, config.mcpMaxTopK);
426
- const result = await abortableMcpOperation(evaluateGoldenQueries({ ...options, signal }), signal);
460
+ const result = await abortableMcpOperation(evaluateGoldenQueriesWithConfig({ ...options, signal, caseDetailLimit: mcpPreviewLimit(budget) }, config), signal);
427
461
  const safeResult = { ...result, goldenPath: options.goldenPath };
462
+ const legacyRecallPassed = failUnder === undefined || result.recall >= failUnder;
428
463
  const output = failUnder === undefined
429
464
  ? safeResult
430
465
  : {
431
466
  ...safeResult,
432
467
  minimumRecall: failUnder,
433
- passed: result.recall >= failUnder,
468
+ legacyRecallPassed,
469
+ passed: result.passed && legacyRecallPassed,
434
470
  };
435
- return boundedJsonResult(output, mcpOutputBudget(config.mcpMaxOutputBytes, maxBytes), "ragmir_evaluate");
471
+ return boundedJsonResult(output, budget, "ragmir_evaluate", compactEvaluationOutput(output));
436
472
  }
437
473
  catch (error) {
438
474
  if (signal.aborted || config.privacyProfile !== "strict") {
@@ -449,7 +485,7 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
449
485
  }, async (_input, { signal }) => {
450
486
  throwIfMcpAborted(signal);
451
487
  const config = await loadConfig(cwd);
452
- const report = await abortableMcpOperation(securityAudit(cwd, { signal }), signal);
488
+ const report = await abortableMcpOperation(securityAuditWithConfig(config, { signal }), signal);
453
489
  const output = config.privacyProfile !== "strict"
454
490
  ? report
455
491
  : {
@@ -464,12 +500,16 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
464
500
  ...report.accessLog,
465
501
  path: privateProjectPath(config.projectRoot, report.accessLog.path),
466
502
  },
503
+ privatePaths: report.privatePaths.map((entry) => ({
504
+ ...entry,
505
+ path: privateProjectPath(config.projectRoot, entry.path),
506
+ })),
467
507
  storage: {
468
508
  ...report.storage,
469
509
  path: privateProjectPath(config.projectRoot, report.storage.path),
470
510
  },
471
511
  };
472
- return boundedJsonResult(output, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_security_audit");
512
+ return boundedJsonResult(output, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_security_audit", compactSecurityOutput(output));
473
513
  });
474
514
  server.registerTool("ragmir_usage_report", {
475
515
  title: "Ragmir Usage Report",
@@ -478,14 +518,10 @@ export function createMcpServer(cwd = resolveMcpProjectRoot()) {
478
518
  annotations: PURE_LOCAL_TOOL_ANNOTATIONS,
479
519
  }, async ({ days }, { signal }) => {
480
520
  throwIfMcpAborted(signal);
481
- const options = { cwd };
482
- options.signal = signal;
483
- if (days !== undefined) {
484
- options.days = days;
485
- }
521
+ const options = { cwd, signal, ...(days === undefined ? {} : { days }) };
486
522
  const config = await loadConfig(cwd);
487
- const report = await abortableMcpOperation(accessLogUsageReport(options), signal);
488
- return boundedJsonResult(report, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_usage_report");
523
+ const report = await abortableMcpOperation(accessLogUsageReportWithConfig(config, options), signal);
524
+ return boundedJsonResult(report, mcpOutputBudget(config.mcpMaxOutputBytes), "ragmir_usage_report", compactUsageOutput(report));
489
525
  });
490
526
  return server;
491
527
  }
@@ -508,8 +544,8 @@ export function resolveMcpProjectRoot(env = process.env, fallback = process.cwd(
508
544
  }
509
545
  return env.CLAUDE_PROJECT_DIR ?? fallback;
510
546
  }
511
- function jsonResource(uri, value, maxBytes, source) {
512
- const bounded = fitMcpJsonOutput(value, maxBytes, source);
547
+ function jsonResource(uri, value, maxBytes, source, compact) {
548
+ const bounded = fitMcpJsonOutput(value, maxBytes, source, compact);
513
549
  return {
514
550
  contents: [
515
551
  {
@@ -521,8 +557,8 @@ function jsonResource(uri, value, maxBytes, source) {
521
557
  _meta: { "ragmir/output": bounded.metadata },
522
558
  };
523
559
  }
524
- function boundedJsonResult(value, maxBytes, source) {
525
- const bounded = fitMcpJsonOutput(value, maxBytes, source);
560
+ function boundedJsonResult(value, maxBytes, source, compact) {
561
+ const bounded = fitMcpJsonOutput(value, maxBytes, source, compact);
526
562
  return {
527
563
  content: [{ type: "text", text: bounded.text }],
528
564
  _meta: { "ragmir/output": bounded.metadata },
@@ -574,10 +610,13 @@ async function recordBudgetedOutput(config, bounded) {
574
610
  }
575
611
  export async function searchOptions(cwd, topK, contextRadius, includePaths, excludePaths, contextPaths, explain) {
576
612
  const config = await loadConfig(cwd);
613
+ return searchOptionsWithConfig(config, topK, contextRadius, includePaths, excludePaths, contextPaths, explain);
614
+ }
615
+ function searchOptionsWithConfig(config, topK, contextRadius, includePaths, excludePaths, contextPaths, explain) {
577
616
  const boundedTopK = Math.min(topK ?? config.topK, config.mcpMaxTopK);
578
617
  const boundedContextRadius = contextRadius === undefined ? undefined : Math.min(Math.max(0, contextRadius), 3);
579
618
  const result = {
580
- cwd,
619
+ cwd: config.projectRoot,
581
620
  topK: boundedTopK,
582
621
  };
583
622
  addOption(result, "contextRadius", boundedContextRadius);
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare const PDF_OCR_PARSER_POLICY = "pdf-text-v2+ocr-cache-v1";
2
+ export interface PdfOcrCacheIdentity {
3
+ sourceChecksum: string;
4
+ page: number;
5
+ engine: string;
6
+ engineVersion: string;
7
+ language: string;
8
+ dpi: number;
9
+ parserPolicy: string;
10
+ commandFingerprint: string;
11
+ }
12
+ export declare function pdfOcrCacheKey(identity: PdfOcrCacheIdentity): string;
13
+ export declare function readPdfOcrCache(projectRoot: string, identity: PdfOcrCacheIdentity): Promise<string | null>;
14
+ export declare function writePdfOcrCache(projectRoot: string, identity: PdfOcrCacheIdentity, text: string): Promise<void>;
15
+ //# sourceMappingURL=ocr-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocr-cache.d.ts","sourceRoot":"","sources":["../src/ocr-cache.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,qBAAqB,6BAA6B,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAQD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAEpE;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBxB;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAiCf"}
@@ -0,0 +1,90 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { open as openFile, readFile, rename, rm, stat } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { isRecord } from "./guards.js";
5
+ import { MAX_EXTERNAL_TEXT_STDIO_BYTES } from "./limits.js";
6
+ import { ensurePrivateDirectory, hardenPrivateFile } from "./permissions.js";
7
+ const OCR_CACHE_SCHEMA_VERSION = 1;
8
+ const MAX_OCR_CACHE_RECORD_BYTES = MAX_EXTERNAL_TEXT_STDIO_BYTES + 64 * 1_024;
9
+ export const PDF_OCR_PARSER_POLICY = "pdf-text-v2+ocr-cache-v1";
10
+ export function pdfOcrCacheKey(identity) {
11
+ return createHash("sha256").update(JSON.stringify(identity)).digest("hex");
12
+ }
13
+ export async function readPdfOcrCache(projectRoot, identity) {
14
+ const cacheKey = pdfOcrCacheKey(identity);
15
+ try {
16
+ const cachePath = pdfOcrCachePath(projectRoot, cacheKey);
17
+ const metadata = await stat(cachePath);
18
+ if (metadata.size > MAX_OCR_CACHE_RECORD_BYTES) {
19
+ return null;
20
+ }
21
+ const value = JSON.parse(await readFile(cachePath, "utf8"));
22
+ return isPdfOcrCacheRecord(value, cacheKey, identity) ? value.text : null;
23
+ }
24
+ catch (error) {
25
+ if (isNodeError(error) && error.code === "ENOENT") {
26
+ return null;
27
+ }
28
+ if (error instanceof SyntaxError) {
29
+ return null;
30
+ }
31
+ throw error;
32
+ }
33
+ }
34
+ export async function writePdfOcrCache(projectRoot, identity, text) {
35
+ if (Buffer.byteLength(text, "utf8") > MAX_EXTERNAL_TEXT_STDIO_BYTES) {
36
+ throw new Error("OCR cache entry exceeds the external text output limit.");
37
+ }
38
+ const cacheKey = pdfOcrCacheKey(identity);
39
+ const targetPath = pdfOcrCachePath(projectRoot, cacheKey);
40
+ const directory = path.dirname(targetPath);
41
+ const temporaryPath = `${targetPath}.${process.pid}.${randomUUID()}.tmp`;
42
+ const record = {
43
+ schemaVersion: OCR_CACHE_SCHEMA_VERSION,
44
+ cacheKey,
45
+ ...identity,
46
+ text,
47
+ };
48
+ const serialized = `${JSON.stringify(record)}\n`;
49
+ if (Buffer.byteLength(serialized, "utf8") > MAX_OCR_CACHE_RECORD_BYTES) {
50
+ return;
51
+ }
52
+ await ensurePrivateDirectory(directory);
53
+ try {
54
+ const handle = await openFile(temporaryPath, "wx", 0o600);
55
+ try {
56
+ await handle.writeFile(serialized, "utf8");
57
+ await handle.sync();
58
+ }
59
+ finally {
60
+ await handle.close();
61
+ }
62
+ await hardenPrivateFile(temporaryPath);
63
+ await rename(temporaryPath, targetPath);
64
+ }
65
+ finally {
66
+ await rm(temporaryPath, { force: true });
67
+ }
68
+ }
69
+ function pdfOcrCachePath(projectRoot, cacheKey) {
70
+ return path.join(projectRoot, ".ragmir", "ocr-cache", cacheKey.slice(0, 2), `${cacheKey}.json`);
71
+ }
72
+ function isPdfOcrCacheRecord(value, cacheKey, identity) {
73
+ return (isRecord(value) &&
74
+ value.schemaVersion === OCR_CACHE_SCHEMA_VERSION &&
75
+ value.cacheKey === cacheKey &&
76
+ value.sourceChecksum === identity.sourceChecksum &&
77
+ value.page === identity.page &&
78
+ value.engine === identity.engine &&
79
+ value.engineVersion === identity.engineVersion &&
80
+ value.language === identity.language &&
81
+ value.dpi === identity.dpi &&
82
+ value.parserPolicy === identity.parserPolicy &&
83
+ value.commandFingerprint === identity.commandFingerprint &&
84
+ typeof value.text === "string" &&
85
+ Buffer.byteLength(value.text, "utf8") <= MAX_EXTERNAL_TEXT_STDIO_BYTES);
86
+ }
87
+ function isNodeError(error) {
88
+ return error instanceof Error && "code" in error;
89
+ }
90
+ //# sourceMappingURL=ocr-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocr-cache.js","sourceRoot":"","sources":["../src/ocr-cache.ts"],"names":[],"mappings":"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"}
package/dist/ocr.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export declare const OCR_RENDER_DPI = 300;
2
+ export declare const MAX_OCR_BATCH_PAGES = 16;
1
3
  export type PdfOcrEngine = "ocrmypdf" | "tesseract";
2
4
  export type PdfOcrEngineSelection = PdfOcrEngine | "auto";
3
5
  export interface OcrExecutableStatus {
@@ -37,10 +39,39 @@ export interface ExtractPdfPageOptions {
37
39
  language?: string;
38
40
  timeoutMs?: number;
39
41
  }
42
+ export interface ExtractPdfPagesOptions {
43
+ engine: PdfOcrEngine;
44
+ input: string;
45
+ pages: number[];
46
+ language?: string;
47
+ timeoutMs?: number;
48
+ }
49
+ export interface ExtractPdfPagesResult {
50
+ engine: PdfOcrEngine;
51
+ language: string;
52
+ dpi: number;
53
+ subprocesses: number;
54
+ pages: Array<{
55
+ page: number;
56
+ text: string;
57
+ }>;
58
+ }
59
+ export interface PdfOcrCommandIdentity {
60
+ engine: string;
61
+ engineVersion: string;
62
+ language: string;
63
+ dpi: number;
64
+ commandFingerprint: string;
65
+ supportsBatch: boolean;
66
+ subprocesses: number;
67
+ }
40
68
  export declare function parsePdfOcrEngine(value: string | undefined, allowAuto: true): PdfOcrEngineSelection;
41
69
  export declare function parsePdfOcrEngine(value: string | undefined, allowAuto?: false): PdfOcrEngine;
42
70
  export declare function normalizeOcrLanguage(value?: string): string;
71
+ export declare function parsePdfOcrPages(value: string): number[];
43
72
  export declare function inspectPdfOcr(cwd?: string): Promise<PdfOcrStatus>;
44
73
  export declare function configurePdfOcr(options?: ConfigurePdfOcrOptions): Promise<ConfigurePdfOcrResult>;
45
74
  export declare function extractPdfPage(options: ExtractPdfPageOptions): Promise<string>;
75
+ export declare function extractPdfPages(options: ExtractPdfPagesOptions): Promise<ExtractPdfPagesResult>;
76
+ export declare function pdfOcrCommandIdentity(command: string[], cwd?: string): Promise<PdfOcrCommandIdentity>;
46
77
  //# sourceMappingURL=ocr.d.ts.map