@autorag/librarian 2.10.0 → 2.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +195 -21
- package/NOTICE +16 -23
- package/README.md +399 -182
- package/dist/agent/agent.d.ts +163 -20
- package/dist/agent/context-token-guard.d.ts +23 -0
- package/dist/agent/evidence-ledger.d.ts +54 -5
- package/dist/agent/evidence-persistence.d.ts +24 -0
- package/dist/agent/jev-extension.d.ts +7 -4
- package/dist/agent/jikji-find-tool.d.ts +1 -0
- package/dist/agent/pi-session.d.ts +35 -2
- package/dist/agent/request-limits.d.ts +20 -0
- package/dist/agent/search-all-tool.d.ts +1 -0
- package/dist/agent/search-documents.d.ts +1 -1
- package/dist/agent/search-single-datasource-tool.d.ts +1 -0
- package/dist/agent/system-prompt.d.ts +0 -2
- package/dist/agent/tool-burst-guard.d.ts +26 -0
- package/dist/cli/config.d.ts +39 -23
- package/dist/cli/index.js +4195 -1478
- package/dist/cloud/config.d.ts +33 -9
- package/dist/cloud/credential.d.ts +17 -0
- package/dist/cloud/errors.d.ts +6 -6
- package/dist/cloud/index.d.ts +5 -4
- package/dist/cloud/jev-backend.d.ts +92 -0
- package/dist/cloud/models.d.ts +4 -4
- package/dist/cloud/oauth-login.d.ts +3 -3
- package/dist/cloud/provider.d.ts +16 -11
- package/dist/cloud/token.d.ts +2 -2
- package/dist/core.d.ts +2 -1
- package/dist/core.js +4200 -1506
- package/dist/datasource/aliased-skill.d.ts +2 -2
- package/dist/datasource/connector-skill.d.ts +2 -2
- package/dist/datasource/crawler-skill.d.ts +19 -2
- package/dist/datasource/described-skill.d.ts +2 -2
- package/dist/datasource/index.d.ts +1 -1
- package/dist/datasource/retry.d.ts +49 -0
- package/dist/datasource/sidecar/config.d.ts +26 -0
- package/dist/datasource/sidecar/descriptors.d.ts +67 -0
- package/dist/datasource/sidecar/fusion.d.ts +25 -0
- package/dist/datasource/sidecar/index.d.ts +131 -0
- package/dist/datasource/sidecar/methods.d.ts +27 -0
- package/dist/datasource/skills/clawgallery/skill.d.ts +4 -4
- package/dist/datasource/skills/discrawl/skill.d.ts +5 -5
- package/dist/datasource/skills/github-gist/skill.d.ts +2 -2
- package/dist/datasource/skills/lazykatok/skill.d.ts +5 -5
- package/dist/datasource/skills/mailcrawl/skill.d.ts +2 -2
- package/dist/datasource/skills/obsidian/skill.d.ts +5 -5
- package/dist/datasource/types.d.ts +16 -2
- package/dist/embedding-runtime/cache.d.ts +9 -0
- package/dist/embedding-runtime/index.d.ts +6 -6
- package/dist/embedding-runtime/manifest.d.ts +0 -12
- package/dist/embedding-runtime/types.d.ts +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +4454 -1757
- package/dist/jikji/client.d.ts +13 -2
- package/dist/jikji/index.d.ts +1 -1
- package/dist/jikji/path-map.d.ts +9 -0
- package/dist/jikji/prepare-budget.d.ts +18 -0
- package/dist/jikji/serial-queue.d.ts +17 -0
- package/dist/jikji/types.d.ts +17 -0
- package/dist/mcp/index.js +4442 -1748
- package/dist/minsync/client.d.ts +6 -4
- package/dist/minsync/installer.d.ts +1 -1
- package/dist/minsync/method.d.ts +1 -1
- package/dist/minsync/process.d.ts +1 -0
- package/dist/minsync/types.d.ts +2 -2
- package/dist/mirror/atomic-write.d.ts +6 -0
- package/dist/mirror/index-store.d.ts +8 -1
- package/dist/mirror/index.d.ts +2 -2
- package/dist/mirror/sync.d.ts +57 -1
- package/dist/p2p/simplex-server.d.ts +0 -1
- package/dist/parser/defaults.d.ts +14 -4
- package/dist/parser/errors.d.ts +10 -0
- package/dist/parser/isolated.d.ts +77 -0
- package/dist/parser/kordoc.d.ts +1 -0
- package/dist/parser/ocr-engines.d.ts +6 -0
- package/dist/parser/parse-worker.d.ts +1 -0
- package/dist/parser/parse-worker.js +780 -0
- package/dist/parser/types.d.ts +5 -0
- package/dist/process/abort-reason.d.ts +2 -0
- package/dist/retrieval/index.d.ts +1 -1
- package/dist/retrieval/rerank.d.ts +28 -5
- package/licenses/embedding-assets.json +0 -35
- package/package.json +26 -29
- package/skills/autorag/SKILL.md +3 -2
- package/skills/autorag-doctor/SKILL.md +7 -1
- package/skills/autorag-lite-setup/SKILL.md +3 -3
- package/skills/autorag-setup/SKILL.md +43 -18
- package/dist/manifest/index.d.ts +0 -2
- package/dist/manifest/loader.d.ts +0 -3
- package/dist/manifest/types.d.ts +0 -8
- package/licenses/gemma-notice.txt +0 -24
- package/licenses/gemma-section-3.2-flow-down.txt +0 -9
- package/licenses/gemma-terms-of-use.html +0 -4750
- package/licenses/gemma-terms-of-use.txt +0 -158
package/dist/parser/types.d.ts
CHANGED
|
@@ -17,5 +17,10 @@ export interface ParseDiagnostic {
|
|
|
17
17
|
export declare abstract class Parser {
|
|
18
18
|
abstract readonly name: string;
|
|
19
19
|
abstract readonly extensions: readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* Stamp recorded next to a per-file skip. Refresh retries a source a parser failed on exactly
|
|
22
|
+
* once when this changes, so bump it whenever parse behavior changes (including the engine behind it).
|
|
23
|
+
*/
|
|
24
|
+
readonly version: string;
|
|
20
25
|
abstract parse(input: ParseInput): Promise<ParseOutput>;
|
|
21
26
|
}
|
|
@@ -3,7 +3,7 @@ export { RetrievalEngine, type RetrievalEngineOptions } from "./engine.js";
|
|
|
3
3
|
export type { MergeOptions } from "./merger.js";
|
|
4
4
|
export { ParallelRetriever, ResultMerger } from "./merger.js";
|
|
5
5
|
export { RetrievalMethodRegistry } from "./registry.js";
|
|
6
|
-
export { type CreateRerankerOptions, createReranker, DEFAULT_RERANK_API_KEY_ENV, DEFAULT_RERANK_MODEL, DEFAULT_RERANK_PROVIDER, DEFAULT_RERANK_TOP_N, OpenRouterReranker, type OpenRouterRerankerOptions, type Reranker, type RerankerDescriptor, type RerankOptions, SUPPORTED_RERANK_PROVIDERS, } from "./rerank.js";
|
|
6
|
+
export { type CreateRerankerOptions, createReranker, DEFAULT_DAZZI_RERANK_MODEL, DEFAULT_RERANK_API_KEY_ENV, DEFAULT_RERANK_MODEL, DEFAULT_RERANK_PROVIDER, DEFAULT_RERANK_TOP_N, defaultRerankApiKeyEnv, defaultRerankModel, OpenRouterReranker, type OpenRouterRerankerOptions, type Reranker, type RerankerDescriptor, type RerankOptions, SUPPORTED_RERANK_PROVIDERS, } from "./rerank.js";
|
|
7
7
|
export { matchesVirtualPathScope, normalizeVirtualPath, normalizeVirtualPathScope, virtualPathScopeToRegExp, } from "./scope.js";
|
|
8
8
|
export { type DatasourceCatalogEntry, derivedDatasourceIds, type RetrievalSelection, RetrievalSelectionError, type RetrievalSelectionErrorCode, resolveSelectedMethods, } from "./selection.js";
|
|
9
9
|
export { describeRetrievalError, groupUnsearchedSurfaces, MINSYNC_SURFACE, type RetrievalSkip, retrievalSurfaceFor, } from "./skip.js";
|
|
@@ -18,10 +18,23 @@ export declare const DEFAULT_RERANK_MODEL = "voyageai/rerank-3-lite";
|
|
|
18
18
|
export declare const DEFAULT_RERANK_PROVIDER = "openrouter";
|
|
19
19
|
/** Default environment variable holding the OpenRouter API key. */
|
|
20
20
|
export declare const DEFAULT_RERANK_API_KEY_ENV = "OPENROUTER_API_KEY";
|
|
21
|
+
/**
|
|
22
|
+
* Default rerank model for the hosted Dazzi Models provider — the id the
|
|
23
|
+
* server lists under `GET <root>/v1/models?operation=rerank`. Rerankers are not
|
|
24
|
+
* chat LLMs, so the project's 2026+ model rule does not cover them.
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_DAZZI_RERANK_MODEL = "qwen/qwen3-reranker-8b";
|
|
21
27
|
/** Default number of merged chunks kept after reranking. */
|
|
22
28
|
export declare const DEFAULT_RERANK_TOP_N = 25;
|
|
23
29
|
/** Rerank providers {@link createReranker} can build. */
|
|
24
30
|
export declare const SUPPORTED_RERANK_PROVIDERS: readonly string[];
|
|
31
|
+
/** Default wire model for a rerank provider. */
|
|
32
|
+
export declare function defaultRerankModel(provider: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Default API-key environment variable for a rerank provider, or `undefined`
|
|
35
|
+
* for Dazzi Models, which authenticates with the stored `/login` credential.
|
|
36
|
+
*/
|
|
37
|
+
export declare function defaultRerankApiKeyEnv(provider: string): string | undefined;
|
|
25
38
|
/** Static description of a reranker, used for diagnostics and inspection. */
|
|
26
39
|
export interface RerankerDescriptor {
|
|
27
40
|
/** Stable label (e.g. `openrouter`). */
|
|
@@ -76,12 +89,19 @@ export interface RerankResponse {
|
|
|
76
89
|
}
|
|
77
90
|
/** Options for {@link OpenRouterReranker}. */
|
|
78
91
|
export interface OpenRouterRerankerOptions {
|
|
92
|
+
/** Provider id reported by `describe()` and stamped on metadata. @default DEFAULT_RERANK_PROVIDER */
|
|
93
|
+
readonly provider?: string;
|
|
79
94
|
/** Wire model id. @default DEFAULT_RERANK_MODEL */
|
|
80
95
|
readonly model?: string;
|
|
81
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* API key. When omitted, `openrouter` reads `apiKeyEnv` from the environment
|
|
98
|
+
* and `dazzi` uses the stored `/login` credential.
|
|
99
|
+
*/
|
|
82
100
|
readonly apiKey?: string;
|
|
83
|
-
/** Environment variable holding the API key. @default DEFAULT_RERANK_API_KEY_ENV */
|
|
101
|
+
/** Environment variable holding the API key (`openrouter` only). @default DEFAULT_RERANK_API_KEY_ENV */
|
|
84
102
|
readonly apiKeyEnv?: string;
|
|
103
|
+
/** Pi agent home whose `auth.json` holds the Dazzi `/login` credential (`dazzi` only). Default: Pi's agent dir. */
|
|
104
|
+
readonly agentDir?: string;
|
|
85
105
|
/** Override the OpenRouter base URL (e.g. a self-hosted or gateway endpoint). */
|
|
86
106
|
readonly baseUrl?: string;
|
|
87
107
|
/** Per-request timeout in milliseconds. */
|
|
@@ -103,10 +123,13 @@ export interface CreateRerankerOptions extends OpenRouterRerankerOptions {
|
|
|
103
123
|
*/
|
|
104
124
|
export declare function createReranker(config: CreateRerankerOptions | false | undefined): Reranker | undefined;
|
|
105
125
|
/**
|
|
106
|
-
* Reranker backed by OpenRouter
|
|
126
|
+
* Reranker backed by an OpenRouter-compatible rerank router.
|
|
107
127
|
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
128
|
+
* OpenRouter is the default provider; the hosted Dazzi Models plan serves the
|
|
129
|
+
* same wire shape at `<root>/v1/rerank`, so {@link createReranker} reuses this
|
|
130
|
+
* client with that base URL and the stored login token. Documents are sent as their `content`;
|
|
131
|
+
* the original `RetrievalResult` for each returned index is preserved and
|
|
132
|
+
* re-scored with the provider's relevance score.
|
|
110
133
|
*/
|
|
111
134
|
export declare class OpenRouterReranker implements Reranker {
|
|
112
135
|
private readonly model;
|
|
@@ -21,26 +21,6 @@
|
|
|
21
21
|
"unsuitableUse": "Chat or generation, remote embedding of corpus text, shipping weights in the npm package, any GGUF other than the pinned SHA-256.",
|
|
22
22
|
"upstreamCardUrl": "https://huggingface.co/Qwen/Qwen3-Embedding-0.6B",
|
|
23
23
|
"modelCard": "docs/model-cards/qwen3-embedding-0.6b.md"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"profileId": "embeddinggemma-300m",
|
|
27
|
-
"provider": "google",
|
|
28
|
-
"model": "embeddinggemma-300M-Q8_0.gguf",
|
|
29
|
-
"dimension": 768,
|
|
30
|
-
"queryPrefix": "task: search result | query: ",
|
|
31
|
-
"passagePrefix": "title: none | text: ",
|
|
32
|
-
"runtimeBuild": "b10951",
|
|
33
|
-
"modelRevision": "0f741b5a6585bd53aeb15cd1372c56f2a0f65e12",
|
|
34
|
-
"artifactSha256": "b5ce9d77a3fc4b3b39ccb5643c36777911cc4eb46a66962eadfa3f5f60490d63",
|
|
35
|
-
"backend": "auto",
|
|
36
|
-
"modelAssetId": "embeddinggemma-300m",
|
|
37
|
-
"licenseId": "Gemma Terms of Use",
|
|
38
|
-
"noticeFile": "licenses/gemma-notice.txt",
|
|
39
|
-
"noticeReference": "Google EmbeddingGemma model card and Gemma Terms of Use",
|
|
40
|
-
"intendedUse": "Local loopback embedding for AutoRAG MinSync and native-datasource semantic retrieval. Not a generative model.",
|
|
41
|
-
"unsuitableUse": "Chat or generation, remote embedding of corpus text, shipping weights in the npm package, any GGUF other than the pinned SHA-256, uses restricted by the Gemma Prohibited Use Policy.",
|
|
42
|
-
"upstreamCardUrl": "https://ai.google.dev/gemma/docs/embeddinggemma/model_card",
|
|
43
|
-
"modelCard": "docs/model-cards/embeddinggemma-300m.md"
|
|
44
24
|
}
|
|
45
25
|
],
|
|
46
26
|
"assets": [
|
|
@@ -59,21 +39,6 @@
|
|
|
59
39
|
"upstreamCardUrl": "https://huggingface.co/Qwen/Qwen3-Embedding-0.6B",
|
|
60
40
|
"modelCard": "docs/model-cards/qwen3-embedding-0.6b.md"
|
|
61
41
|
},
|
|
62
|
-
{
|
|
63
|
-
"kind": "model",
|
|
64
|
-
"id": "embeddinggemma-300m",
|
|
65
|
-
"filename": "embeddinggemma-300M-Q8_0.gguf",
|
|
66
|
-
"url": "https://huggingface.co/ggml-org/embeddinggemma-300M-GGUF/resolve/0f741b5a6585bd53aeb15cd1372c56f2a0f65e12/embeddinggemma-300M-Q8_0.gguf",
|
|
67
|
-
"revision": "0f741b5a6585bd53aeb15cd1372c56f2a0f65e12",
|
|
68
|
-
"sha256": "b5ce9d77a3fc4b3b39ccb5643c36777911cc4eb46a66962eadfa3f5f60490d63",
|
|
69
|
-
"licenseId": "Gemma Terms of Use",
|
|
70
|
-
"noticeFile": "licenses/gemma-notice.txt",
|
|
71
|
-
"noticeReference": "Google EmbeddingGemma model card and Gemma Terms of Use",
|
|
72
|
-
"intendedUse": "Local loopback embedding for AutoRAG MinSync and native-datasource semantic retrieval. Not a generative model.",
|
|
73
|
-
"unsuitableUse": "Chat or generation, remote embedding of corpus text, shipping weights in the npm package, any GGUF other than the pinned SHA-256, uses restricted by the Gemma Prohibited Use Policy.",
|
|
74
|
-
"upstreamCardUrl": "https://ai.google.dev/gemma/docs/embeddinggemma/model_card",
|
|
75
|
-
"modelCard": "docs/model-cards/embeddinggemma-300m.md"
|
|
76
|
-
},
|
|
77
42
|
{
|
|
78
43
|
"kind": "runtime",
|
|
79
44
|
"id": "llama-macos-arm64",
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autorag/librarian",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.2",
|
|
4
4
|
"description": "Self-evolving librarian agent on Pi framework with pluggable retrieval methods",
|
|
5
|
-
"license": "
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/Marker-Inc-Korea/AutoRAG.git"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
|
-
"build": "bun build src/index.ts src/core.ts src/cli/index.ts src/mcp/index.ts --outdir dist --target node --packages external && tsc -p tsconfig.build.json && node scripts/fixup-dts.mjs",
|
|
39
|
+
"build": "bun build src/index.ts src/core.ts src/cli/index.ts src/mcp/index.ts src/parser/parse-worker.ts --outdir dist --target node --packages external && tsc -p tsconfig.build.json && node scripts/fixup-dts.mjs",
|
|
40
40
|
"prepublishOnly": "bun run typecheck && bun run build",
|
|
41
41
|
"prepare": "bun run build",
|
|
42
42
|
"test": "node scripts/run-test-files.mjs",
|
|
@@ -51,38 +51,35 @@
|
|
|
51
51
|
"node": ">=24.0.0"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@earendil-works/pi-agent-core": "^1.
|
|
55
|
-
"@earendil-works/pi-ai": "^1.
|
|
56
|
-
"@earendil-works/pi-coding-agent": "1.
|
|
57
|
-
"@earendil-works/pi-tui": "1.
|
|
58
|
-
"@modelcontextprotocol/server": "^2.3.
|
|
59
|
-
"@openrouter/sdk": "^1.4.
|
|
54
|
+
"@earendil-works/pi-agent-core": "^1.2.0",
|
|
55
|
+
"@earendil-works/pi-ai": "^1.2.0",
|
|
56
|
+
"@earendil-works/pi-coding-agent": "1.2.0",
|
|
57
|
+
"@earendil-works/pi-tui": "1.2.0",
|
|
58
|
+
"@modelcontextprotocol/server": "^2.3.1",
|
|
59
|
+
"@openrouter/sdk": "^1.4.25",
|
|
60
60
|
"chardet": "^2.2.0",
|
|
61
|
-
"fast-xml-parser": "^5.11.
|
|
61
|
+
"fast-xml-parser": "^5.11.2",
|
|
62
62
|
"iconv-lite": "^0.7.3",
|
|
63
63
|
"jev-use": "^0.8.0",
|
|
64
|
-
"jszip": "^3.10.
|
|
65
|
-
"kordoc": "^4.
|
|
66
|
-
"mailparser": "^3.9.
|
|
67
|
-
"pdfjs-dist": "^6.
|
|
68
|
-
"puppeteer-core": "^25.
|
|
69
|
-
"slides-grab": "^1.5.
|
|
70
|
-
"smol-toml": "1.
|
|
64
|
+
"jszip": "^3.10.2",
|
|
65
|
+
"kordoc": "^4.21.30",
|
|
66
|
+
"mailparser": "^3.9.38",
|
|
67
|
+
"pdfjs-dist": "^6.4.299",
|
|
68
|
+
"puppeteer-core": "^25.13.0",
|
|
69
|
+
"slides-grab": "^1.5.2",
|
|
70
|
+
"smol-toml": "1.9.1",
|
|
71
71
|
"tesseract.js": "^7.0.0",
|
|
72
|
-
"typebox": "^1.3.
|
|
73
|
-
"yaml": "^2.9.0"
|
|
72
|
+
"typebox": "^1.3.37"
|
|
74
73
|
},
|
|
75
74
|
"devDependencies": {
|
|
76
|
-
"@biomejs/biome": "2.5.
|
|
77
|
-
"@modelcontextprotocol/client": "^2.3.
|
|
78
|
-
"@types/mailparser": "^3.
|
|
79
|
-
"@types/node": "^26.
|
|
80
|
-
"@types/ws": "^8.18.
|
|
75
|
+
"@biomejs/biome": "2.5.15",
|
|
76
|
+
"@modelcontextprotocol/client": "^2.3.1",
|
|
77
|
+
"@types/mailparser": "^3.9.0",
|
|
78
|
+
"@types/node": "^26.6.5",
|
|
79
|
+
"@types/ws": "^8.18.2",
|
|
81
80
|
"typescript": "^7.0.2",
|
|
82
|
-
"vitest": "^5.0.
|
|
83
|
-
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
|
|
84
|
-
|
|
85
|
-
"overrides": {
|
|
86
|
-
"zod": "3.25.76"
|
|
81
|
+
"vitest": "^5.0.4",
|
|
82
|
+
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
|
83
|
+
"yaml": "^2.9.1"
|
|
87
84
|
}
|
|
88
85
|
}
|
package/skills/autorag/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: autorag
|
|
3
3
|
description: Search, summarize, compare, and answer questions from an already configured AutoRAG librarian over local documents and configured datasources. Use when the user asks AutoRAG to search PDFs, wikis, notes, or a knowledge base. Use autorag-setup for install, model, roots, indexing, or datasource changes.
|
|
4
|
-
license:
|
|
4
|
+
license: Apache-2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# AutoRAG Librarian Skill
|
|
@@ -16,7 +16,8 @@ sources, judges evidence, and curates the final answer. There is no subagent or
|
|
|
16
16
|
separate model role.
|
|
17
17
|
|
|
18
18
|
AutoRAG reads source documents and writes indexes only under the configured
|
|
19
|
-
workspace `.autorag/` directory and Jikji's
|
|
19
|
+
workspace `.autorag/` directory and Jikji's central store (`<OS data dir>/jikji/`,
|
|
20
|
+
plus a `.jikji_agent_map.md` guide in each indexed root). Never
|
|
20
21
|
move, rename, edit, or delete source files.
|
|
21
22
|
|
|
22
23
|
## Preflight
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: autorag-doctor
|
|
3
3
|
description: Diagnose and repair a broken or half-working AutoRAG install so every configured source is both indexed and searchable. Checks AutoRAG, MinSync, Jikji, the embedding gateway, and every CLI-backed datasource (lazykatok, discrawl, slacrawl, wacrawl, telecrawl, notcrawl, qmd, mailcrawl, rclone, Spotlight), then fixes orphan locks, orphan processes, embedding dimension or identity mismatches, stale indexes, and missing setup. Use when search returns nothing or too little, refresh hangs or fails, a datasource disappeared from results, indexes look stale, the gateway will not start, or the user asks to check, diagnose, verify, or repair AutoRAG.
|
|
4
|
-
license:
|
|
4
|
+
license: Apache-2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# AutoRAG doctor
|
|
@@ -192,6 +192,11 @@ Use `--force` only when incremental refresh does not clear it. For continuous
|
|
|
192
192
|
freshness install an hourly `autorag watch --once` job (cron, launchd, systemd
|
|
193
193
|
timer, or Task Scheduler).
|
|
194
194
|
|
|
195
|
+
A file the parser failed on (corrupt PDF, encrypted HWP) or that was unreadable is not
|
|
196
|
+
re-parsed on every refresh: it is skipped until its mtime, size or parser version changes.
|
|
197
|
+
After fixing the cause (permissions, OCR setup), run `autorag refresh --retry-failed --json`
|
|
198
|
+
to retry those files once without re-indexing healthy ones.
|
|
199
|
+
|
|
195
200
|
### Missing or wrong setup
|
|
196
201
|
|
|
197
202
|
- `unknown-datasource-skill`: the config key is not a builtin template and has
|
|
@@ -216,6 +221,7 @@ timer, or Task Scheduler).
|
|
|
216
221
|
| `stale-index` | Sources changed since last refresh | `autorag refresh --method parsed,minsync` |
|
|
217
222
|
| `index-not-ready` | Index missing or never built | `autorag refresh --json` |
|
|
218
223
|
| `minsync-sync-failed` | MinSync indexing failed; the message carries MinSync's own reason | Fix the reported cause, then `autorag refresh --method minsync` |
|
|
224
|
+
| `minsync-lock-held` | Another `minsync` run holds `.minsync/lock`, often an orphan left by a killed host; retryable | Wait for it to finish or stop that `minsync` process, then `autorag refresh --method minsync` |
|
|
219
225
|
| `jikji-unavailable` | Jikji binary missing or install failed | Check cargo, retry refresh |
|
|
220
226
|
| `everything-index-failed` | Windows Everything instance could not start or index; message carries ES exit code and stderr | Fix the reported cause, `autorag refresh --method everything --json` |
|
|
221
227
|
| `embedding-identity-mismatch` | Indexed vectors use a different embedder | `autorag index rebuild --method minsync` |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: autorag-lite-setup
|
|
3
3
|
description: Install and register the model-free AutoRAG Lite MCP server, configure approved roots and datasources, build indexes, and verify MCP discovery and search. Use when autorag-mcp is missing, MCP connection fails, indexes are stale, or the user wants document search without configuring a search model.
|
|
4
|
-
license:
|
|
4
|
+
license: Apache-2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# AutoRAG Lite setup
|
|
@@ -19,7 +19,7 @@ Use `autorag-setup` instead when the model-backed librarian must be configured.
|
|
|
19
19
|
environment-variable names such as `tokenEnv` or `apiKeyEnv`.
|
|
20
20
|
- Never move, rename, edit, or delete source documents. Lite commands write
|
|
21
21
|
indexes only under the configured workspace `.autorag/` directory and
|
|
22
|
-
Jikji's
|
|
22
|
+
Jikji's central store (`<OS data dir>/jikji/`).
|
|
23
23
|
- Do not index system trees, app bundles, caches, credential stores,
|
|
24
24
|
`node_modules`, `.git`, `dist`, `build`, `target`, `.cache`, `.autorag`, or
|
|
25
25
|
`.jikji`.
|
|
@@ -169,7 +169,7 @@ AUTORAG_CONFIG=/absolute/path/to/.autorag/config.json autorag lite refresh --jso
|
|
|
169
169
|
are missing or broken, run a full refresh or return to setup rather than
|
|
170
170
|
silently degrading to lexical-only search.
|
|
171
171
|
- MinSync's default embedder is in-process native Qwen3 embeddings
|
|
172
|
-
(`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.
|
|
172
|
+
(`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.7): no
|
|
173
173
|
embedder flags, no API key, and no external daemon (such as Ollama) are
|
|
174
174
|
needed, and no corpus text leaves the machine. For gateway-profiled
|
|
175
175
|
embeddings, prefetch with `autorag models prefetch --profile qwen3-embedding-0.6b`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: autorag-setup
|
|
3
3
|
description: Install and configure AutoRAG, register its Lite MCP server for external agents, or repair its single search model, approved roots, indexes, datasources, and health checks without exposing credentials. Use when AutoRAG or MCP is missing, init/refresh/health fails, indexes are stale, or the user wants to add folders or datasources.
|
|
4
|
-
license:
|
|
4
|
+
license: Apache-2.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# AutoRAG setup
|
|
@@ -164,15 +164,21 @@ GitHub release into `<workspace>/.autorag/bin` (`minSync.autoInstall` defaults
|
|
|
164
164
|
to true), and Jikji installs `jikji-cli` through cargo (`jikji.autoInstall`
|
|
165
165
|
defaults to true; requires the Rust toolchain). Set `"autoInstall": false` only
|
|
166
166
|
when managing the binary yourself. Refresh is incremental: MinSync syncs only
|
|
167
|
-
changed parsed mirrors, and `jikji prepare` reuses unchanged documents.
|
|
168
|
-
prepare
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
167
|
+
changed parsed mirrors, and `jikji prepare` reuses unchanged documents. Jikji
|
|
168
|
+
roots prepare one at a time (they share one central SQLite file that rejects
|
|
169
|
+
concurrent writers). A search root nested inside, or duplicating, another root
|
|
170
|
+
is skipped for Jikji because the outer root's index already covers it.
|
|
171
|
+
|
|
172
|
+
Jikji keeps its prepared corpus (search index, parsed text, wiki, routes) in one
|
|
173
|
+
central store, not inside your documents: `<OS data dir>/jikji/index.sqlite`
|
|
174
|
+
plus `<OS data dir>/jikji/roots/<id>/` (macOS `~/Library/Application Support`,
|
|
175
|
+
Linux `$XDG_DATA_HOME` or `~/.local/share`, Windows `%LOCALAPPDATA%`; override
|
|
176
|
+
with the `JIKJI_DATA_DIR` environment variable). The only file `refresh` adds
|
|
177
|
+
inside an approved document root is the `.jikji_agent_map.md` guide. Tell the
|
|
178
|
+
user that before the first `refresh`, and never delete or edit Jikji's central
|
|
179
|
+
store by hand; removing it only forces a full Jikji re-prepare on the next
|
|
180
|
+
refresh. Older Jikji versions wrote a `<root>/.jikji` directory instead; such a
|
|
181
|
+
leftover is now unused and safe for the user to delete.
|
|
176
182
|
|
|
177
183
|
Exact duplicate exclusion is enabled by default. AutoRAG invokes the external
|
|
178
184
|
`dupey` CLI before parsed-mirror indexing, keeps the newest filesystem copy for
|
|
@@ -184,7 +190,7 @@ told duplicate exclusion is off. Set `"excludeExactDuplicates": false` to
|
|
|
184
190
|
index every copy.
|
|
185
191
|
|
|
186
192
|
MinSync's default embedder is in-process native Qwen3 embeddings
|
|
187
|
-
(`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.
|
|
193
|
+
(`native:Qwen/Qwen3-Embedding-0.6B`, 1024 dimensions, MinSync 0.4.7). The
|
|
188
194
|
default needs no embedder flags, no API key, and no external daemon (such as
|
|
189
195
|
Ollama) — all embeddings run in-process locally and privately. For workspaces
|
|
190
196
|
using the loopback llama-server gateway, prefetch the verified model with
|
|
@@ -216,8 +222,9 @@ size must be positive integers, and the dimension must match the embedder
|
|
|
216
222
|
Leave both enabled. They are the recommended setup: they make simple questions
|
|
217
223
|
fast and multi-part questions thorough.
|
|
218
224
|
|
|
219
|
-
- **Jev** (`jev`, default `{ "backend": "
|
|
220
|
-
`
|
|
225
|
+
- **Jev** (`jev`, default `{ "backend": "dazzi" }` when signed in to Dazzi
|
|
226
|
+
Models, else `{ "backend": "openrouter" }`; model `jev-1.13` on Dazzi,
|
|
227
|
+
`typesafe/jev-1.13` on OpenRouter) runs before the fast answer. It routes each question to
|
|
221
228
|
local search, web search, a direct answer (general knowledge or small
|
|
222
229
|
talk skips retrieval entirely), or the `config` branch, and decides whether
|
|
223
230
|
to decompose it. On
|
|
@@ -232,14 +239,16 @@ fast and multi-part questions thorough.
|
|
|
232
239
|
decides whether verification is needed, so a complete, evidence-backed fast
|
|
233
240
|
answer ends the run.
|
|
234
241
|
- **Question decomposition** (`queryDecomposition`, default model
|
|
242
|
+
`dazzi/openai/gpt-6-luna` when signed in to Dazzi Models, else
|
|
235
243
|
`openrouter/qwen/qwen3.7-flash`) splits a multi-part question into at most
|
|
236
244
|
five search queries that run in parallel.
|
|
237
245
|
|
|
238
|
-
Both
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
246
|
+
Both need a credential for the chosen backend: a Dazzi Models `/login` (check with
|
|
247
|
+
`autorag models list --provider dazzi --available`), or the user's
|
|
248
|
+
`OPENROUTER_API_KEY` (`test -n "$OPENROUTER_API_KEY"`, never print it). Tell the
|
|
249
|
+
user Jev routing is on. Without a credential, routing falls back to a single
|
|
250
|
+
local search and the run always verifies, so searches still work. A
|
|
251
|
+
`query-route-fallback` diagnostic (`autorag search --debug`) shows that state.
|
|
243
252
|
|
|
244
253
|
```json
|
|
245
254
|
{
|
|
@@ -309,6 +318,22 @@ and are never settable from model/tool arguments: `maxDocuments`,
|
|
|
309
318
|
`bandwidthLimit`, and `dryRun` (cloud-drive/rclone). `maxContentChars` defaults
|
|
310
319
|
to 20000 for RSS and 100000 for Spotlight and cloud-drive.
|
|
311
320
|
|
|
321
|
+
### Refresh safety limits
|
|
322
|
+
|
|
323
|
+
`refresh` guards the parsed-mirror refresh against deleting a corpus because a
|
|
324
|
+
search root became unavailable. Every field is optional; unknown keys fail
|
|
325
|
+
config resolution.
|
|
326
|
+
|
|
327
|
+
| Field | Default | Controls |
|
|
328
|
+
|---|---|---|
|
|
329
|
+
| `maxDeleteRatio` | 0.3 | Largest share (0–1) of indexed documents one refresh may delete; a bigger deletion above 100 documents is suppressed (`mass-delete-suppressed`) unless the refresh is forced |
|
|
330
|
+
| `maxScannedEntries` | 2000000 | Directory entries examined per search root before `walk-truncated` |
|
|
331
|
+
| `maxDepth` | 64 | Deepest directory level walked below a root before `walk-truncated` |
|
|
332
|
+
|
|
333
|
+
A root that is missing, unlistable, or empty while it previously held documents
|
|
334
|
+
keeps its mirrors and reports `search-root-unavailable`; see
|
|
335
|
+
`docs/minsync-setup.md`.
|
|
336
|
+
|
|
312
337
|
## Probe and configure datasource skills (setup wizard)
|
|
313
338
|
|
|
314
339
|
Use `autorag setup` to probe the local runtime, model profile, and known
|
package/dist/manifest/index.d.ts
DELETED
package/dist/manifest/types.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
EmbeddingGemma profile notice
|
|
2
|
-
|
|
3
|
-
Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms
|
|
4
|
-
|
|
5
|
-
Section 3.1 distribution flow-down (verbatim)
|
|
6
|
-
|
|
7
|
-
You must include the use restrictions referenced in Section 3.2 as an enforceable provision in any agreement (e.g., license agreement, terms of use, etc.) governing the use and/or distribution of Gemma or Model Derivatives and you must provide notice to subsequent users you Distribute to that Gemma or Model Derivatives are subject to the use restrictions in Section 3.2.
|
|
8
|
-
|
|
9
|
-
You must provide all third party recipients of Gemma or Model Derivatives a copy of this Agreement.
|
|
10
|
-
|
|
11
|
-
All Distributions (other than through a Hosted Service) must be accompanied by a "Notice" text file that contains the following notice:
|
|
12
|
-
"Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms".
|
|
13
|
-
|
|
14
|
-
Section 3.2 Use Restrictions (verbatim)
|
|
15
|
-
|
|
16
|
-
You must not use any of the Gemma Services:
|
|
17
|
-
|
|
18
|
-
for the restricted uses set forth in the Gemma Prohibited Use Policy at ai.google.dev/gemma/prohibited_use_policy ("Prohibited Use Policy"), which is hereby incorporated by reference into this Agreement; or
|
|
19
|
-
|
|
20
|
-
in violation of applicable laws and regulations.
|
|
21
|
-
|
|
22
|
-
To the maximum extent permitted by law, Google reserves the right to restrict (remotely or otherwise) usage of any of the Gemma Services that Google reasonably believes are in violation of this Agreement.
|
|
23
|
-
|
|
24
|
-
The complete Gemma Terms of Use supplied with this notice are in gemma-terms-of-use.html (the fetched source page) and gemma-terms-of-use.txt (a readable text rendering). The source page is https://ai.google.dev/gemma/terms.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Section 3.2 Use Restrictions
|
|
2
|
-
|
|
3
|
-
You must not use any of the Gemma Services:
|
|
4
|
-
|
|
5
|
-
for the restricted uses set forth in the Gemma Prohibited Use Policy at ai.google.dev/gemma/prohibited_use_policy ("Prohibited Use Policy"), which is hereby incorporated by reference into this Agreement; or
|
|
6
|
-
|
|
7
|
-
in violation of applicable laws and regulations.
|
|
8
|
-
|
|
9
|
-
To the maximum extent permitted by law, Google reserves the right to restrict (remotely or otherwise) usage of any of the Gemma Services that Google reasonably believes are in violation of this Agreement.
|