@jcode.labs/ragmir 2.17.1 → 2.18.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/README.md +53 -6
- package/dist/access-log.d.ts +10 -0
- package/dist/access-log.d.ts.map +1 -1
- package/dist/access-log.js +119 -49
- package/dist/access-log.js.map +1 -1
- package/dist/chunking.d.ts +5 -1
- package/dist/chunking.d.ts.map +1 -1
- package/dist/chunking.js +102 -16
- package/dist/chunking.js.map +1 -1
- package/dist/citation.d.ts +18 -0
- package/dist/citation.d.ts.map +1 -0
- package/dist/citation.js +54 -0
- package/dist/citation.js.map +1 -0
- package/dist/cli-entry.d.ts +3 -0
- package/dist/cli-entry.d.ts.map +1 -0
- package/dist/cli-entry.js +16 -0
- package/dist/cli-entry.js.map +1 -0
- package/dist/cli-fast.d.ts +13 -0
- package/dist/cli-fast.d.ts.map +1 -0
- package/dist/cli-fast.js +145 -0
- package/dist/cli-fast.js.map +1 -0
- package/dist/cli-options.d.ts +3 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +7 -0
- package/dist/cli-options.js.map +1 -1
- package/dist/cli-stdin.d.ts +3 -0
- package/dist/cli-stdin.d.ts.map +1 -0
- package/dist/cli-stdin.js +15 -0
- package/dist/cli-stdin.js.map +1 -0
- package/dist/cli.js +254 -47
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +13 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +155 -10
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +227 -49
- package/dist/config.js.map +1 -1
- package/dist/context-resources.d.ts +4 -2
- package/dist/context-resources.d.ts.map +1 -1
- package/dist/context-resources.js +55 -24
- package/dist/context-resources.js.map +1 -1
- package/dist/defaults.d.ts +27 -0
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +42 -2
- package/dist/defaults.js.map +1 -1
- package/dist/destroy.d.ts +2 -2
- package/dist/destroy.d.ts.map +1 -1
- package/dist/destroy.js +34 -20
- package/dist/destroy.js.map +1 -1
- package/dist/doctor.d.ts +3 -2
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +86 -41
- package/dist/doctor.js.map +1 -1
- package/dist/durable-file.d.ts +13 -0
- package/dist/durable-file.d.ts.map +1 -0
- package/dist/durable-file.js +56 -0
- package/dist/durable-file.js.map +1 -0
- package/dist/embeddings.d.ts +14 -3
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +233 -95
- package/dist/embeddings.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/evaluate.d.ts +4 -3
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +611 -110
- package/dist/evaluate.js.map +1 -1
- package/dist/files.d.ts +4 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +119 -33
- package/dist/files.js.map +1 -1
- package/dist/generation-retention.d.ts +52 -0
- package/dist/generation-retention.d.ts.map +1 -0
- package/dist/generation-retention.js +318 -0
- package/dist/generation-retention.js.map +1 -0
- package/dist/index-diagnostics.d.ts +3 -2
- package/dist/index-diagnostics.d.ts.map +1 -1
- package/dist/index-diagnostics.js +32 -3
- package/dist/index-diagnostics.js.map +1 -1
- package/dist/index-policy.d.ts.map +1 -1
- package/dist/index-policy.js +3 -0
- package/dist/index-policy.js.map +1 -1
- package/dist/index-write-lock.d.ts +16 -1
- package/dist/index-write-lock.d.ts.map +1 -1
- package/dist/index-write-lock.js +392 -13
- package/dist/index-write-lock.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/ingest.d.ts +11 -2
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +680 -165
- package/dist/ingest.js.map +1 -1
- package/dist/ingestion-metrics.d.ts +58 -0
- package/dist/ingestion-metrics.d.ts.map +1 -0
- package/dist/ingestion-metrics.js +216 -0
- package/dist/ingestion-metrics.js.map +1 -0
- package/dist/ingestion-state.d.ts +11 -2
- package/dist/ingestion-state.d.ts.map +1 -1
- package/dist/ingestion-state.js +480 -49
- package/dist/ingestion-state.js.map +1 -1
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +11 -1
- package/dist/limits.js.map +1 -1
- package/dist/mcp-output.d.ts +44 -4
- package/dist/mcp-output.d.ts.map +1 -1
- package/dist/mcp-output.js +132 -159
- package/dist/mcp-output.js.map +1 -1
- package/dist/mcp-summaries.d.ts +32 -0
- package/dist/mcp-summaries.d.ts.map +1 -0
- package/dist/mcp-summaries.js +227 -0
- package/dist/mcp-summaries.js.map +1 -0
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +85 -46
- package/dist/mcp.js.map +1 -1
- package/dist/ocr-cache.d.ts +15 -0
- package/dist/ocr-cache.d.ts.map +1 -0
- package/dist/ocr-cache.js +90 -0
- package/dist/ocr-cache.js.map +1 -0
- package/dist/ocr.d.ts +31 -0
- package/dist/ocr.d.ts.map +1 -1
- package/dist/ocr.js +193 -17
- package/dist/ocr.js.map +1 -1
- package/dist/parsing.d.ts.map +1 -1
- package/dist/parsing.js +482 -85
- package/dist/parsing.js.map +1 -1
- package/dist/permissions.js +2 -2
- package/dist/permissions.js.map +1 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +10 -11
- package/dist/preview.js.map +1 -1
- package/dist/quality-report.d.ts +12 -0
- package/dist/quality-report.d.ts.map +1 -0
- package/dist/quality-report.js +146 -0
- package/dist/quality-report.js.map +1 -0
- package/dist/query.d.ts +7 -4
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +371 -284
- package/dist/query.js.map +1 -1
- package/dist/ranking.d.ts +38 -0
- package/dist/ranking.d.ts.map +1 -0
- package/dist/ranking.js +278 -0
- package/dist/ranking.js.map +1 -0
- package/dist/redaction.d.ts +6 -1
- package/dist/redaction.d.ts.map +1 -1
- package/dist/redaction.js +118 -4
- package/dist/redaction.js.map +1 -1
- package/dist/research.d.ts +6 -1
- package/dist/research.d.ts.map +1 -1
- package/dist/research.js +330 -130
- package/dist/research.js.map +1 -1
- package/dist/runtime-info.d.ts +3 -0
- package/dist/runtime-info.d.ts.map +1 -0
- package/dist/runtime-info.js +81 -0
- package/dist/runtime-info.js.map +1 -0
- package/dist/security.d.ts +3 -2
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +242 -45
- package/dist/security.js.map +1 -1
- package/dist/semantic-config.d.ts +7 -1
- package/dist/semantic-config.d.ts.map +1 -1
- package/dist/semantic-config.js +30 -4
- package/dist/semantic-config.js.map +1 -1
- package/dist/setup.js +6 -3
- package/dist/setup.js.map +1 -1
- package/dist/skill.js +34 -12
- package/dist/skill.js.map +1 -1
- package/dist/source-fingerprint-cache.d.ts +20 -0
- package/dist/source-fingerprint-cache.d.ts.map +1 -0
- package/dist/source-fingerprint-cache.js +133 -0
- package/dist/source-fingerprint-cache.js.map +1 -0
- package/dist/storage-maintenance.d.ts +46 -0
- package/dist/storage-maintenance.d.ts.map +1 -0
- package/dist/storage-maintenance.js +329 -0
- package/dist/storage-maintenance.js.map +1 -0
- package/dist/store.d.ts +39 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +559 -24
- package/dist/store.js.map +1 -1
- package/dist/text.d.ts +1 -1
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +12 -2
- package/dist/text.js.map +1 -1
- package/dist/types.d.ts +414 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/vector-index.d.ts +42 -0
- package/dist/vector-index.d.ts.map +1 -0
- package/dist/vector-index.js +249 -0
- package/dist/vector-index.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workload.d.ts +22 -0
- package/dist/workload.d.ts.map +1 -0
- package/dist/workload.js +181 -0
- package/dist/workload.js.map +1 -0
- package/examples/document-evidence-benchmark/README.md +3 -2
- package/examples/document-evidence-benchmark/golden-queries.json +1 -1
- 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 {
|
|
7
|
-
import {
|
|
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 {
|
|
11
|
-
import {
|
|
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 {
|
|
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(
|
|
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
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
414
|
-
|
|
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
|
|
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(
|
|
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
|
-
|
|
468
|
+
legacyRecallPassed,
|
|
469
|
+
passed: result.passed && legacyRecallPassed,
|
|
434
470
|
};
|
|
435
|
-
return boundedJsonResult(output,
|
|
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(
|
|
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(
|
|
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
|