dsh-locator 0.11.0 → 0.11.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.1 — 2026-11-13
4
+
5
+ * Add `contentFullIndex: true` as the explicit one-switch full-content mode. It overrides `contentMaxTotalBytes`/`contentMaxFiles` to unlimited; the numeric caps and their defaults are unchanged. This avoids making users hand-write two zeros and makes the disk/build trade-off discoverable.
6
+ * Status/docs use the same language: full mode is opt-in; the default remains capped at 1 GB / 200k files.
7
+
3
8
  ## 0.11.0 — 2026-11-13
4
9
 
5
10
  Search coverage, panel productivity and boundary hardening.
package/README-es.md CHANGED
@@ -403,7 +403,7 @@ El motor es un único proceso Go y respeta las variables estándar `GOMEMLIMIT`
403
403
 
404
404
  ## Notas de actualización 0.11.0
405
405
 
406
- - **Índice de contenido completo**: `contentMaxTotalBytes: 0` y `contentMaxFiles: 0` indexan todos los archivos de texto elegibles (~185k archivos / 2.0 GB, ~5.9 GB de FTS en la máquina de referencia); la primera construcción tarda unos minutos y las consultas rondan 0.04–0.7 s. Los límites por defecto siguen activos para no consumir decenas de GB sin avisar.
406
+ - **Índice de contenido completo**: `contentFullIndex: true` (o ambos caps a `0`) indexa todos los archivos de texto elegibles (~185k archivos / 2.0 GB, ~5.9 GB de FTS en la máquina de referencia); la primera construcción tarda unos minutos y las consultas rondan 0.04–0.7 s. Los límites por defecto siguen activos para no consumir decenas de GB sin avisar.
407
407
  - `locator_find` sigue limitado al workspace; si el cwd no está dentro de ningún root indexado, ya no restringe los archivos a ese cwd (antes devolvía vacío) y busca en los roots; las sesiones siguen limitadas a la actual. Usa `scope: "all"` para cruzar ámbitos.
408
408
  - Panel: **cargar más** (paginación por offset), **búsquedas recientes** y **filtro de resultados cargados**.
409
409
  - Seguridad: se rechazan destinos bajo mount points anidados dentro de un root en Linux; `/open` usa `O_NOFOLLOW` y verifica el inodo.
package/README-hi.md CHANGED
@@ -404,7 +404,7 @@ DeepSeek Harness
404
404
 
405
405
  ## 0.11.0 अपग्रेड नोट्स
406
406
 
407
- - **पूर्ण सामग्री इंडेक्स**: `contentMaxTotalBytes: 0` और `contentMaxFiles: 0` से सभी पात्र टेक्स्ट फ़ाइलें इंडेक्स होती हैं (~185k फ़ाइलें / 2.0 GB, संदर्भ मशीन पर ~5.9 GB FTS); पहला निर्माण कुछ मिनट लेता है, क्वेरी ~0.04–0.7 s रहती हैं। डिफ़ॉल्ट सीमाएँ बनी रहती हैं ताकि सामान्य उपयोग में दसियों GB अचानक न भरें।
407
+ - **पूर्ण सामग्री इंडेक्स**: `contentFullIndex: true` (या दोनों caps `0`) से सभी पात्र टेक्स्ट फ़ाइलें इंडेक्स होती हैं (~185k फ़ाइलें / 2.0 GB, संदर्भ मशीन पर ~5.9 GB FTS); पहला निर्माण कुछ मिनट लेता है, क्वेरी ~0.04–0.7 s रहती हैं। डिफ़ॉल्ट सीमाएँ बनी रहती हैं ताकि सामान्य उपयोग में दसियों GB अचानक न भरें।
408
408
  - `locator_find` workspace-स्कोप्ड रहता है; यदि cwd किसी indexed root में नहीं है तो फ़ाइल हिट उस cwd तक सीमित नहीं रहते (पहले खाली आते थे), indexed roots में खोज होती है; सत्र हिट केवल वर्तमान सत्र। क्रॉस-स्कोप के लिए `scope: "all"`.
409
409
  - पैनल: **और लोड करें** (offset पेजिंग), **हाल की खोजें**, **लोड किए गए परिणाम फ़िल्टर करें**।
410
410
  - सुरक्षा: Linux में root के भीतर nested mount point वाले लक्ष्य अस्वीकार; `/open` `O_NOFOLLOW` से खोलकर inode जाँचता है।
package/README-pt.md CHANGED
@@ -404,7 +404,7 @@ O motor é um único processo Go e respeita as variáveis padrão `GOMEMLIMIT` e
404
404
 
405
405
  ## Notas de atualização 0.11.0
406
406
 
407
- - **Índice de conteúdo completo**: `contentMaxTotalBytes: 0` e `contentMaxFiles: 0` indexam todos os arquivos de texto elegíveis (~185k arquivos / 2.0 GB, ~5.9 GB de FTS na máquina de referência); a primeira construção leva alguns minutos e as consultas ficam em ~0,04–0,7 s. Os limites padrão continuam ativos para não consumir dezenas de GB sem aviso.
407
+ - **Índice de conteúdo completo**: `contentFullIndex: true` (ou ambos os caps em `0`) indexa todos os arquivos de texto elegíveis (~185k arquivos / 2.0 GB, ~5.9 GB de FTS na máquina de referência); a primeira construção leva alguns minutos e as consultas ficam em ~0,04–0,7 s. Os limites padrão continuam ativos para não consumir dezenas de GB sem aviso.
408
408
  - `locator_find` continua no workspace; se o cwd estiver fora de todos os roots indexados, ele não restringe mais os arquivos a esse cwd (antes retornava vazio) e busca nos roots; sessões continuam limitadas à atual. Use `scope: "all"` para cruzar escopos.
409
409
  - Painel: **carregar mais** (paginação por offset), **buscas recentes** e **filtro dos resultados carregados**.
410
410
  - Segurança: rejeita destinos sob mount points aninhados dentro de um root no Linux; `/open` usa `O_NOFOLLOW` e confere o inode.
package/README.en.md CHANGED
@@ -404,7 +404,7 @@ The engine is a single Go process and honours the standard `GOMEMLIMIT` and `GOG
404
404
 
405
405
  ## 0.11.0 upgrade notes
406
406
 
407
- - **Full content index**: set `contentMaxTotalBytes: 0` and `contentMaxFiles: 0` to index every eligible text file. On the reference machine that is ~**185k files / 2.0 GB** of text, ~**5.9 GB** FTS database; the first build takes a few minutes and queries stay ~**0.04–0.7 s**. The default caps (1 GB / 200k) stay in place so ordinary installs do not silently consume tens of GB; the panel shows `truncated`.
407
+ - **Full content index**: set `contentFullIndex: true` (or both caps to `0`) to index every eligible text file. On the reference machine that is ~**185k files / 2.0 GB** of text, ~**5.9 GB** FTS database; the first build takes a few minutes and queries stay ~**0.04–0.7 s**. The default caps (1 GB / 200k) stay in place so ordinary installs do not silently consume tens of GB; the panel shows `truncated`.
408
408
  - `locator_find` stays workspace-scoped (current session + caller cwd), but when the caller cwd is **outside every indexed root** it no longer restricts file hits to that cwd (which could only return nothing); it searches the indexed roots and still limits session hits to the current session. Use `scope: "all"` to cross scopes explicitly.
409
409
  - Panel: **load more** (offset paging), **recent searches** (localStorage, clearable), and **filter loaded results**.
410
410
  - Security: reject targets below nested mount points inside a root on Linux (bind-mount escape); `/open` opens with `O_NOFOLLOW` and verifies the inode, narrowing the TOCTOU window.
package/README.md CHANGED
@@ -366,7 +366,7 @@ Go 引擎在 `engine/` 下,测试用 `cd engine && go test ./...`。macOS 的
366
366
 
367
367
  ## 0.11.0 升级注意
368
368
 
369
- - **全量内容索引**:把 `contentMaxTotalBytes` 和 `contentMaxFiles` 都设为 `0`,即可索引全部符合文本扩展名/单文件上限的文件。实测本机 eligible 约 **185k 文件 / 2.0GB 文本**,FTS 库约 **5.9GB**;首次构建约几分钟,查询约 **0.04–0.7s**。默认仍保留 1GB/200k 上限,避免普通用户磁盘暴涨;面板会显示 `truncated`。
369
+ - **全量内容索引**:设置 `contentFullIndex: true`(或把两个 cap 都设为 `0`),即可索引全部符合文本扩展名/单文件上限的文件。实测本机 eligible 约 **185k 文件 / 2.0GB 文本**,FTS 库约 **5.9GB**;首次构建约几分钟,查询约 **0.04–0.7s**。默认仍保留 1GB/200k 上限,避免普通用户磁盘暴涨;面板会显示 `truncated`。
370
370
  - `locator_find` 默认仍 workspace:当前会话 + 调用者 cwd;但如果 cwd **不在任何已索引 root 内**,不再把文件命中限制到 cwd(否则必然为空),而是搜索已索引 root 的文件;会话仍只查当前会话。跨范围仍用 `scope:"all"`。
371
371
  - 面板新增:**加载更多**(按 offset 分页)、**最近搜索**(localStorage,可清空)、**过滤已加载结果**。
372
372
  - 安全:Linux 下拒绝 root 内嵌套 mount point 的目标(bind mount 防逃逸);`/open` 用 `O_NOFOLLOW` 打开并核对 inode,缩小 TOCTOU 窗口。
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/lib/config.d.ts CHANGED
@@ -39,6 +39,12 @@ export interface Config {
39
39
  contentRefreshMs: number;
40
40
  /** Maximum text files indexed per build; 0 means no cap. */
41
41
  contentMaxFiles: number;
42
+ /**
43
+ * One switch for full content search: overrides both body and file caps to
44
+ * unlimited. Off by default because a full index costs gigabytes of disk and
45
+ * a long first build; set this instead of hand-writing two zero values.
46
+ */
47
+ contentFullIndex: boolean;
42
48
  /** Most recent session logs indexed; 0 means all. */
43
49
  contentMaxSessions: number;
44
50
  /** Index archived sessions too; the default leaves them out. */
@@ -75,4 +81,14 @@ export interface Config {
75
81
  }
76
82
  /** Configuration schema; invalid values fail the profile load loudly. */
77
83
  export declare const Config: Schema<Config>;
84
+ /**
85
+ * Effective content caps. `contentFullIndex` is the explicit one-switch full
86
+ * mode; otherwise the two numeric caps apply (0 still means unlimited).
87
+ * @param config - validated plugin configuration.
88
+ * @returns limits passed to {@link ContentIndex}.
89
+ */
90
+ export declare function contentLimits(config: Pick<Config, 'contentFullIndex' | 'contentMaxTotalBytes' | 'contentMaxFiles'>): {
91
+ maxTotalBytes: number;
92
+ maxFiles: number;
93
+ };
78
94
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAE7C,oCAAoC;AACpC,MAAM,WAAW,MAAM;IACrB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAA;IAChB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,2EAA2E;IAC3E,KAAK,EAAE,OAAO,CAAA;IACd;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAA;IACrB,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,mBAAmB,EAAE,MAAM,CAAA;IAC3B,yEAAyE;IACzE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAA;IACxB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAA;IACvB,qDAAqD;IACrD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,sBAAsB,EAAE,OAAO,CAAA;IAC/B;;;;OAIG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B;;;;OAIG;IACH,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAA;IACxB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,yEAAyE;AACzE,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAiEhC,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAE7C,oCAAoC;AACpC,MAAM,WAAW,MAAM;IACrB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAA;IAChB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,2EAA2E;IAC3E,KAAK,EAAE,OAAO,CAAA;IACd;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAA;IACrB,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,mBAAmB,EAAE,MAAM,CAAA;IAC3B,yEAAyE;IACzE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAA;IACxB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAA;IACzB,qDAAqD;IACrD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,sBAAsB,EAAE,OAAO,CAAA;IAC/B;;;;OAIG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B;;;;OAIG;IACH,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAA;IACxB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,yEAAyE;AACzE,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAkEhC,CAAA;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,sBAAsB,GAAG,iBAAiB,CAAC,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAGhK"}
package/lib/config.js CHANGED
@@ -28,6 +28,7 @@ export const Config = Schema.object({
28
28
  contentMaxTotalBytes: Schema.number().default(1_000_000_000),
29
29
  contentRefreshMs: Schema.number().default(300_000),
30
30
  contentMaxFiles: Schema.number().default(200_000),
31
+ contentFullIndex: Schema.boolean().default(false),
31
32
  contentMaxSessions: Schema.number().default(100),
32
33
  contentIncludeArchived: Schema.boolean().default(false),
33
34
  contentActiveSessionDelayMs: Schema.number().default(120_000),
@@ -70,4 +71,15 @@ export const Config = Schema.object({
70
71
  startupTimeoutMs: Schema.number().default(120_000),
71
72
  requestTimeoutMs: Schema.number().default(15_000),
72
73
  });
74
+ /**
75
+ * Effective content caps. `contentFullIndex` is the explicit one-switch full
76
+ * mode; otherwise the two numeric caps apply (0 still means unlimited).
77
+ * @param config - validated plugin configuration.
78
+ * @returns limits passed to {@link ContentIndex}.
79
+ */
80
+ export function contentLimits(config) {
81
+ if (config.contentFullIndex)
82
+ return { maxTotalBytes: 0, maxFiles: 0 };
83
+ return { maxTotalBytes: config.contentMaxTotalBytes, maxFiles: config.contentMaxFiles };
84
+ }
73
85
  //# sourceMappingURL=config.js.map
package/lib/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAUzC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,CAAA;AAEjC,0BAA0B;AAC1B,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAEjC,2DAA2D;AAC3D,eAAO,MAAM,MAAM,UAAY,CAAA;AAoC/B;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAwGxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAiB,MAAM,aAAa,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAUzC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,CAAA;AAEjC,0BAA0B;AAC1B,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAEjC,2DAA2D;AAC3D,eAAO,MAAM,MAAM,UAAY,CAAA;AAoC/B;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAwGxD"}
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * DeepSeek Harness. No Everything dependency.
4
4
  * @module dsh-locator
5
5
  */
6
- import { Config as ConfigSchema } from "./config.js";
6
+ import { Config as ConfigSchema, contentLimits } from "./config.js";
7
7
  import { ContentIndex } from "./content.js";
8
8
  import { makeExportTool } from "./export.js";
9
9
  import { makeFindTool } from "./find.js";
@@ -73,8 +73,8 @@ export function apply(ctx, config) {
73
73
  activeSessionDelayMs: config.contentActiveSessionDelayMs,
74
74
  searchWorker: true,
75
75
  maxFileBytes: config.contentMaxFileBytes,
76
- maxTotalBytes: config.contentMaxTotalBytes,
77
- maxFiles: config.contentMaxFiles,
76
+ maxTotalBytes: contentLimits(config).maxTotalBytes,
77
+ maxFiles: contentLimits(config).maxFiles,
78
78
  maxSessions: config.contentMaxSessions,
79
79
  })
80
80
  : undefined;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-locator",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "Whole-disk, millisecond file search for DeepSeek Harness without Everything: a self-built cross-platform index, an Everything-style query language, agent tools and a Web search panel (Ctrl+Shift+F). Windows, macOS and Linux.",
5
5
  "author": "PerryLink contributors",
6
6
  "repository": {
package/src/config.ts CHANGED
@@ -41,6 +41,12 @@ export interface Config {
41
41
  contentRefreshMs: number
42
42
  /** Maximum text files indexed per build; 0 means no cap. */
43
43
  contentMaxFiles: number
44
+ /**
45
+ * One switch for full content search: overrides both body and file caps to
46
+ * unlimited. Off by default because a full index costs gigabytes of disk and
47
+ * a long first build; set this instead of hand-writing two zero values.
48
+ */
49
+ contentFullIndex: boolean
44
50
  /** Most recent session logs indexed; 0 means all. */
45
51
  contentMaxSessions: number
46
52
  /** Index archived sessions too; the default leaves them out. */
@@ -101,6 +107,7 @@ export const Config: Schema<Config> = Schema.object({
101
107
  contentMaxTotalBytes: Schema.number().default(1_000_000_000),
102
108
  contentRefreshMs: Schema.number().default(300_000),
103
109
  contentMaxFiles: Schema.number().default(200_000),
110
+ contentFullIndex: Schema.boolean().default(false),
104
111
  contentMaxSessions: Schema.number().default(100),
105
112
  contentIncludeArchived: Schema.boolean().default(false),
106
113
  contentActiveSessionDelayMs: Schema.number().default(120_000),
@@ -143,3 +150,14 @@ export const Config: Schema<Config> = Schema.object({
143
150
  startupTimeoutMs: Schema.number().default(120_000),
144
151
  requestTimeoutMs: Schema.number().default(15_000),
145
152
  })
153
+
154
+ /**
155
+ * Effective content caps. `contentFullIndex` is the explicit one-switch full
156
+ * mode; otherwise the two numeric caps apply (0 still means unlimited).
157
+ * @param config - validated plugin configuration.
158
+ * @returns limits passed to {@link ContentIndex}.
159
+ */
160
+ export function contentLimits(config: Pick<Config, 'contentFullIndex' | 'contentMaxTotalBytes' | 'contentMaxFiles'>): { maxTotalBytes: number; maxFiles: number } {
161
+ if (config.contentFullIndex) return { maxTotalBytes: 0, maxFiles: 0 }
162
+ return { maxTotalBytes: config.contentMaxTotalBytes, maxFiles: config.contentMaxFiles }
163
+ }
package/src/index.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import type { Context } from '@deepseek-ai/cordis'
8
- import { Config as ConfigSchema } from './config.ts'
8
+ import { Config as ConfigSchema, contentLimits } from './config.ts'
9
9
  import type { Config } from './config.ts'
10
10
  import { ContentIndex } from './content.ts'
11
11
  import { makeExportTool } from './export.ts'
@@ -84,8 +84,8 @@ export function apply(ctx: Context, config: Config): void {
84
84
  activeSessionDelayMs: config.contentActiveSessionDelayMs,
85
85
  searchWorker: true,
86
86
  maxFileBytes: config.contentMaxFileBytes,
87
- maxTotalBytes: config.contentMaxTotalBytes,
88
- maxFiles: config.contentMaxFiles,
87
+ maxTotalBytes: contentLimits(config).maxTotalBytes,
88
+ maxFiles: contentLimits(config).maxFiles,
89
89
  maxSessions: config.contentMaxSessions,
90
90
  })
91
91
  : undefined