@wrongstack/tools 0.295.1 → 0.296.3

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 (132) hide show
  1. package/dist/auto-proceed-loop-guard.d.ts +67 -0
  2. package/dist/auto-proceed-loop-guard.d.ts.map +1 -1
  3. package/dist/auto-proceed-loop-guard.js +95 -0
  4. package/dist/auto-proceed-loop-guard.js.map +2 -2
  5. package/dist/bash.js +53 -18
  6. package/dist/bash.js.map +2 -2
  7. package/dist/browser/artifacts.d.ts +2 -0
  8. package/dist/browser/artifacts.d.ts.map +1 -1
  9. package/dist/browser/index.js +58 -7
  10. package/dist/browser/index.js.map +2 -2
  11. package/dist/browser/network-guard-proxy.d.ts.map +1 -1
  12. package/dist/builtin.d.ts +2 -2
  13. package/dist/builtin.d.ts.map +1 -1
  14. package/dist/builtin.js +9516 -7476
  15. package/dist/builtin.js.map +4 -4
  16. package/dist/codebase-index/background-indexer.d.ts +28 -2
  17. package/dist/codebase-index/background-indexer.d.ts.map +1 -1
  18. package/dist/codebase-index/codebase-index-tool.d.ts.map +1 -1
  19. package/dist/codebase-index/dead-code-scan.d.ts +77 -0
  20. package/dist/codebase-index/dead-code-scan.d.ts.map +1 -0
  21. package/dist/codebase-index/index-service.d.ts +4 -3
  22. package/dist/codebase-index/index-service.d.ts.map +1 -1
  23. package/dist/codebase-index/index.d.ts +11 -8
  24. package/dist/codebase-index/index.d.ts.map +1 -1
  25. package/dist/codebase-index/index.js +5217 -3503
  26. package/dist/codebase-index/index.js.map +4 -4
  27. package/dist/codebase-index/indexer.d.ts +2 -0
  28. package/dist/codebase-index/indexer.d.ts.map +1 -1
  29. package/dist/codebase-index/parser-dispatch.d.ts +8 -0
  30. package/dist/codebase-index/parser-dispatch.d.ts.map +1 -0
  31. package/dist/codebase-index/project-server-cache.d.ts +11 -0
  32. package/dist/codebase-index/project-server-cache.d.ts.map +1 -0
  33. package/dist/codebase-index/project-server-client.d.ts +74 -0
  34. package/dist/codebase-index/project-server-client.d.ts.map +1 -0
  35. package/dist/codebase-index/project-server-endpoint.d.ts +24 -0
  36. package/dist/codebase-index/project-server-endpoint.d.ts.map +1 -0
  37. package/dist/codebase-index/project-server-protocol.d.ts +88 -0
  38. package/dist/codebase-index/project-server-protocol.d.ts.map +1 -0
  39. package/dist/codebase-index/project-server.d.ts +11 -0
  40. package/dist/codebase-index/project-server.d.ts.map +1 -0
  41. package/dist/codebase-index/project-server.js +5136 -0
  42. package/dist/codebase-index/project-server.js.map +7 -0
  43. package/dist/codebase-index/refs-extractor.d.ts +1 -0
  44. package/dist/codebase-index/refs-extractor.d.ts.map +1 -1
  45. package/dist/codebase-index/schema.d.ts +11 -0
  46. package/dist/codebase-index/schema.d.ts.map +1 -1
  47. package/dist/codebase-index/sqlite-runtime.d.ts +9 -0
  48. package/dist/codebase-index/sqlite-runtime.d.ts.map +1 -0
  49. package/dist/codebase-index/ts-parser.d.ts +5 -1
  50. package/dist/codebase-index/ts-parser.d.ts.map +1 -1
  51. package/dist/codebase-index/worker-protocol.d.ts +19 -1
  52. package/dist/codebase-index/worker-protocol.d.ts.map +1 -1
  53. package/dist/codebase-index/worker.js +3927 -3413
  54. package/dist/codebase-index/worker.js.map +4 -4
  55. package/dist/codebase-index/writer-admin.d.ts +16 -0
  56. package/dist/codebase-index/writer-admin.d.ts.map +1 -0
  57. package/dist/codebase-index/writer-bulk-insert.d.ts +25 -0
  58. package/dist/codebase-index/writer-bulk-insert.d.ts.map +1 -0
  59. package/dist/codebase-index/writer-graph-helpers.d.ts +52 -0
  60. package/dist/codebase-index/writer-graph-helpers.d.ts.map +1 -0
  61. package/dist/codebase-index/writer-graph-reader.d.ts +11 -0
  62. package/dist/codebase-index/writer-graph-reader.d.ts.map +1 -0
  63. package/dist/codebase-index/writer-helpers.d.ts +15 -0
  64. package/dist/codebase-index/writer-helpers.d.ts.map +1 -0
  65. package/dist/codebase-index/writer-pragmas.d.ts +3 -0
  66. package/dist/codebase-index/writer-pragmas.d.ts.map +1 -0
  67. package/dist/codebase-index/writer-ref-mapper.d.ts +11 -0
  68. package/dist/codebase-index/writer-ref-mapper.d.ts.map +1 -0
  69. package/dist/codebase-index/writer-schema.d.ts +7 -0
  70. package/dist/codebase-index/writer-schema.d.ts.map +1 -0
  71. package/dist/codebase-index/writer-search-helpers.d.ts +28 -0
  72. package/dist/codebase-index/writer-search-helpers.d.ts.map +1 -0
  73. package/dist/codebase-index/writer-store-pool.d.ts +45 -0
  74. package/dist/codebase-index/writer-store-pool.d.ts.map +1 -0
  75. package/dist/codebase-index/writer.d.ts +72 -89
  76. package/dist/codebase-index/writer.d.ts.map +1 -1
  77. package/dist/exec.js +53 -18
  78. package/dist/exec.js.map +2 -2
  79. package/dist/index.d.ts +2 -2
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +9860 -7824
  82. package/dist/index.js.map +4 -4
  83. package/dist/kanban-board-inputs.d.ts +34 -0
  84. package/dist/kanban-board-inputs.d.ts.map +1 -0
  85. package/dist/kanban-decomposition-actions.d.ts +4 -0
  86. package/dist/kanban-decomposition-actions.d.ts.map +1 -0
  87. package/dist/kanban-detail-actions.d.ts +3 -0
  88. package/dist/kanban-detail-actions.d.ts.map +1 -0
  89. package/dist/kanban-presence.d.ts +10 -0
  90. package/dist/kanban-presence.d.ts.map +1 -0
  91. package/dist/kanban-split-task-handler.d.ts +6 -0
  92. package/dist/kanban-split-task-handler.d.ts.map +1 -0
  93. package/dist/kanban-task-inputs.d.ts +73 -0
  94. package/dist/kanban-task-inputs.d.ts.map +1 -0
  95. package/dist/kanban-tool-results.d.ts +14 -0
  96. package/dist/kanban-tool-results.d.ts.map +1 -0
  97. package/dist/kanban-tool-schema.d.ts +5 -0
  98. package/dist/kanban-tool-schema.d.ts.map +1 -0
  99. package/dist/kanban-tool-types.d.ts +135 -0
  100. package/dist/kanban-tool-types.d.ts.map +1 -0
  101. package/dist/kanban.d.ts +2 -146
  102. package/dist/kanban.d.ts.map +1 -1
  103. package/dist/kanban.js +1030 -825
  104. package/dist/kanban.js.map +4 -4
  105. package/dist/pack.js +9515 -7476
  106. package/dist/pack.js.map +4 -4
  107. package/dist/plan.js +2 -2
  108. package/dist/plan.js.map +2 -2
  109. package/dist/process-registry-persistent.d.ts +1 -0
  110. package/dist/process-registry-persistent.d.ts.map +1 -1
  111. package/dist/ps-slash.js +53 -18
  112. package/dist/ps-slash.js.map +2 -2
  113. package/dist/read.d.ts +31 -0
  114. package/dist/read.d.ts.map +1 -1
  115. package/dist/read.js +5434 -78
  116. package/dist/read.js.map +4 -4
  117. package/dist/replace.js +8 -0
  118. package/dist/replace.js.map +2 -2
  119. package/dist/session-kanban.d.ts.map +1 -1
  120. package/dist/session-kanban.js +15 -20
  121. package/dist/session-kanban.js.map +2 -2
  122. package/dist/task.d.ts.map +1 -1
  123. package/dist/task.js +48 -6
  124. package/dist/task.js.map +2 -2
  125. package/dist/todo.d.ts.map +1 -1
  126. package/dist/todo.js +47 -5
  127. package/dist/todo.js.map +2 -2
  128. package/dist/tool-tier.js +9517 -7477
  129. package/dist/tool-tier.js.map +4 -4
  130. package/package.json +5 -5
  131. package/dist/shim/node-sqlite.d.ts +0 -3
  132. package/dist/shim/node-sqlite.d.ts.map +0 -1
@@ -26,8 +26,9 @@
26
26
  * for the TUI status chip and the search/stats tools' gating.
27
27
  */
28
28
  import { type CircuitSnapshot } from './circuit-breaker.js';
29
- import type { IndexResult, IndexStats } from './schema.js';
30
- import type { SearchOpArgs, SearchOpResult, StatsOpArgs } from './worker-protocol.js';
29
+ import { type ProjectIndexServerClientHealth, type ProjectIndexServerConnectionState, type ProjectIndexServerShutdownResult } from './project-server-client.js';
30
+ import type { CodeMapGraph, IndexResult, IndexStats } from './schema.js';
31
+ import type { FileGraphOpArgs, SearchOpArgs, SearchOpResult, StatsOpArgs, SymbolGraphOpArgs } from './worker-protocol.js';
31
32
  /** True once the first full-project index has completed (success or failure). */
32
33
  export declare function isIndexReady(): boolean;
33
34
  /**
@@ -44,6 +45,8 @@ export declare function getIndexState(): {
44
45
  currentFile: number;
45
46
  totalFiles: number;
46
47
  lastError: string | null;
48
+ /** Detached per-project server connection owned by this client process. */
49
+ server: ProjectIndexServerConnectionState;
47
50
  /** Circuit-breaker state — `open` means indexing is paused after repeated failures. */
48
51
  circuit: CircuitSnapshot;
49
52
  };
@@ -103,6 +106,29 @@ export declare function codebaseIndexStats(args: StatsOpArgs, opts?: {
103
106
  timeoutMs?: number | undefined;
104
107
  signal?: AbortSignal | undefined;
105
108
  }): Promise<IndexStats>;
109
+ /** Package dependency graph, served by the same per-project index process. */
110
+ export declare function packageGraphService(args: StatsOpArgs): Promise<CodeMapGraph>;
111
+ /** File dependency graph, served by the same per-project index process. */
112
+ export declare function fileGraphService(args: FileGraphOpArgs): Promise<CodeMapGraph>;
113
+ /** Symbol dependency graph, served by the same per-project index process. */
114
+ export declare function symbolGraphService(args: SymbolGraphOpArgs): Promise<CodeMapGraph>;
115
+ /**
116
+ * Stop this project's detached index server. Unlike
117
+ * shutdownCodebaseIndexHost(), this intentionally affects every connected
118
+ * TUI/CLI/WebUI client for the project.
119
+ */
120
+ export declare function shutdownCodebaseIndexServer(projectRoot: string, indexDir?: string, reason?: string): Promise<ProjectIndexServerShutdownResult>;
121
+ /** Probe the connected project server without starting a missing server. */
122
+ export declare function checkCodebaseIndexServerHealth(projectRoot: string, indexDir?: string, options?: {
123
+ timeoutMs?: number | undefined;
124
+ }): Promise<ProjectIndexServerClientHealth>;
125
+ /** Ensure the detached project server exists and owns external watching. */
126
+ export declare function ensureCodebaseIndexServer(options: {
127
+ projectRoot: string;
128
+ indexDir?: string | undefined;
129
+ watchExternal?: boolean | undefined;
130
+ debounceMs?: number | undefined;
131
+ }): Promise<void>;
106
132
  /**
107
133
  * Reset all process-global indexing state for test isolation.
108
134
  *
@@ -1 +1 @@
1
- {"version":3,"file":"background-indexer.d.ts","sourceRoot":"","sources":["../../src/codebase-index/background-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,EAEL,KAAK,eAAe,EAIrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,KAAK,EAKV,YAAY,EACZ,cAAc,EACd,WAAW,EAEZ,MAAM,sBAAsB,CAAC;AAkC9B,iFAAiF;AACjF,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,qDAAqD;AACrD,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wFAAwF;AACxF,wBAAgB,aAAa,IAAI;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uFAAuF;IACvF,OAAO,EAAE,eAAe,CAAC;CAC1B,CASA;AAED;;;;GAIG;AACH,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,KAAK,IAAI,CAAC;AAG5E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAK3E;AA8GD;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB/D;AAmOD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAmBD,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,OAAO,CAAC,WAAW,CAAC,CA2DvB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAChD,GAAG,IAAI,CA2BP;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,IAAI,IAAI,CAO7C;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,YAAY,EAClB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAAO,GAC9E,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED,0EAA0E;AAC1E,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EACjB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAAO,GAC9E,OAAO,CAAC,UAAU,CAAC,CAKrB;AAID;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAchD"}
1
+ {"version":3,"file":"background-indexer.d.ts","sourceRoot":"","sources":["../../src/codebase-index/background-indexer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codebase-index-tool.d.ts","sourceRoot":"","sources":["../../src/codebase-index/codebase-index-tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAKnD,eAAO,MAAM,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CA0E3E,CAAC;AAIF,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC9B;AAED,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B"}
1
+ {"version":3,"file":"codebase-index-tool.d.ts","sourceRoot":"","sources":["../../src/codebase-index/codebase-index-tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAKnD,eAAO,MAAM,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAgF3E,CAAC;AAIF,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC9B;AAED,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * `dead-code-scan` tool — find unused symbols using the codebase-index refs graph.
3
+ *
4
+ * How it works:
5
+ * 1. Opens a pooled connection to the existing codebase-index SQLite store.
6
+ * 2. Discovers entry-point symbols from package.json (bin, main, exports, types)
7
+ * plus conventional entry files (src/index.ts, src/main.ts, index.ts).
8
+ * 3. BFS-traverses the reference graph from those entry points to find every
9
+ * symbol that is transitively reachable through imports, calls, type refs,
10
+ * inheritance, and implementation edges.
11
+ * 4. Everything NOT reached is a dead-code candidate.
12
+ *
13
+ * Known limitations (false positives possible):
14
+ * - Dynamic imports / `require()` with computed paths are invisible.
15
+ * - External consumers (npm installers, CI tools) can't be seen.
16
+ * - Config-driven registration (plugin manifests, DI containers) won't appear.
17
+ * - Type-only exports consumed only at the type level are still marked alive
18
+ * because the refs graph tracks `type_ref` edges.
19
+ */
20
+ import type { Tool } from '@wrongstack/core/types';
21
+ import type { SymbolKind, SymbolLang } from './schema.js';
22
+ import { type IndexStore } from './writer.js';
23
+ export interface DeadCodeScanInput {
24
+ /** Project root (defaults to ctx.projectRoot). */
25
+ projectRoot?: string | undefined;
26
+ /**
27
+ * Override the index directory. Normally auto-resolved from projectRoot.
28
+ */
29
+ indexDir?: string | undefined;
30
+ /**
31
+ * Additional entry-point file paths (absolute or relative to projectRoot)
32
+ * to seed the reachability scan. These augment auto-discovered entry points.
33
+ */
34
+ entryPoints?: string[] | undefined;
35
+ }
36
+ export interface DeadSymbol {
37
+ name: string;
38
+ kind: SymbolKind;
39
+ lang: SymbolLang;
40
+ file: string;
41
+ line: number;
42
+ /** Why this symbol is considered dead. */
43
+ reason: 'unreferenced' | 'unreferenced-export';
44
+ }
45
+ export interface DeadFile {
46
+ file: string;
47
+ symbolCount: number;
48
+ lang: string;
49
+ }
50
+ export interface DeadPackage {
51
+ package: string;
52
+ path: string;
53
+ fileCount: number;
54
+ }
55
+ export interface DeadCodeScanOutput {
56
+ /** Symbols found dead. Sorted: unreferenced-export first, then by file. */
57
+ deadSymbols: DeadSymbol[];
58
+ /** Files where every defined symbol is dead (likely orphaned modules). */
59
+ deadFiles: DeadFile[];
60
+ /** Packages in the workspace with zero used symbols. */
61
+ deadPackages: DeadPackage[];
62
+ /** Entry points used as traversal roots. */
63
+ entryPoints: string[];
64
+ stats: {
65
+ totalSymbols: number;
66
+ alive: number;
67
+ dead: number;
68
+ durationMs: number;
69
+ };
70
+ }
71
+ export declare const deadCodeScanTool: Tool<DeadCodeScanInput, DeadCodeScanOutput>;
72
+ export declare function runDeadCodeScan(projectRoot: string, opts?: {
73
+ indexDir?: string | undefined;
74
+ userEntryPoints?: string[] | undefined;
75
+ store?: IndexStore | undefined;
76
+ }): DeadCodeScanOutput;
77
+ //# sourceMappingURL=dead-code-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dead-code-scan.d.ts","sourceRoot":"","sources":["../../src/codebase-index/dead-code-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAA4B,KAAK,UAAU,EAAkB,MAAM,aAAa,CAAC;AAIxF,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,MAAM,EAAE,cAAc,GAAG,qBAAqB,CAAC;CAChD;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,wDAAwD;IACxD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,4CAA4C;IAC5C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAID,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAqDxE,CAAC;AAuaF,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAEvC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAC3B,GACL,kBAAkB,CA4QpB"}
@@ -6,9 +6,10 @@
6
6
  * thread / terminal UI there) and the inline fallback inside the host (tests,
7
7
  * `WRONGSTACK_INDEX_INLINE=1`, or runtimes where the worker file is missing).
8
8
  *
9
- * Every operation opens its own short-lived IndexStore, exactly like the old
10
- * per-call code paths did there is no connection state to share, which keeps
11
- * multi-project usage trivially correct and crash recovery simple.
9
+ * Operations share one warm IndexStore per resolved project/index directory.
10
+ * The detached server owns write serialization, while worker/inline fallbacks
11
+ * run on one event loop, so a pooled connection is both safe and substantially
12
+ * cheaper than re-running schema/FTS drift checks for every edited file.
12
13
  */
13
14
  import type { CodeMapGraph, IndexResult, IndexStats } from './schema.js';
14
15
  import type { IndexOpArgs, SearchOpArgs, SearchOpResult, StatsOpArgs } from './worker-protocol.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index-service.d.ts","sourceRoot":"","sources":["../../src/codebase-index/index-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAenG,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrE;AAED,kCAAkC;AAClC,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,KAAK,GAAE,YAAiB,GACvB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAgBhE;AAED,mCAAmC;AACnC,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAO1D;AAID,sCAAsC;AACtC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAOnE;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAO5F;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAO3F"}
1
+ {"version":3,"file":"index-service.d.ts","sourceRoot":"","sources":["../../src/codebase-index/index-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAA0B,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnG,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrE;AAED,kCAAkC;AAClC,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,KAAK,GAAE,YAAiB,GACvB,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAgBhE;AAED,mCAAmC;AACnC,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAO1D;AAID,sCAAsC;AACtC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAOnE;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAO5F;AAED,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAO3F"}
@@ -13,18 +13,21 @@
13
13
  * fallback so every mapped language always enters the index
14
14
  * Ranking: Okapi BM25 / FTS5 (k1=1.5, b=0.75)
15
15
  */
16
+ export { cancelPendingReindexes, checkCodebaseIndexServerHealth, codebaseIndexStats, enqueueReindex, ensureCodebaseIndexServer, fileGraphService, getIndexState, isIndexableFile, isIndexing, isIndexReady, onIndexStateChange, packageGraphService, runStartupIndex, searchCodebaseIndex, shutdownCodebaseIndexHost, shutdownCodebaseIndexServer, symbolGraphService, } from './background-indexer.js';
17
+ export { buildBm25Index, buildIndexableText, tokenise, } from './bm25.js';
18
+ export type { CircuitSnapshot, CircuitState } from './circuit-breaker.js';
19
+ export { CircuitOpenError, IndexCircuitBreaker, IndexTimeoutError, indexCircuitBreaker, resetIndexCircuitBreaker, } from './circuit-breaker.js';
16
20
  export { codebaseIndexTool } from './codebase-index-tool.js';
17
21
  export { codebaseSearchTool } from './codebase-search-tool.js';
18
22
  export { codebaseStatsTool } from './codebase-stats-tool.js';
23
+ export { deadCodeScanTool, runDeadCodeScan } from './dead-code-scan.js';
24
+ export type { DeadCodeScanInput, DeadCodeScanOutput, DeadFile, DeadPackage, DeadSymbol, } from './dead-code-scan.js';
19
25
  export { runIndexer } from './indexer.js';
20
- export { runStartupIndex, enqueueReindex, isIndexableFile, cancelPendingReindexes, isIndexReady, isIndexing, getIndexState, onIndexStateChange, searchCodebaseIndex, codebaseIndexStats, shutdownCodebaseIndexHost, } from './background-indexer.js';
21
- export { IndexCircuitBreaker, indexCircuitBreaker, resetIndexCircuitBreaker, CircuitOpenError, IndexTimeoutError, } from './circuit-breaker.js';
22
- export type { CircuitState, CircuitSnapshot } from './circuit-breaker.js';
23
- export { IndexStore, resolveIndexDir, codebaseIndexDirOverride } from './writer.js';
24
- export { tokenise, buildIndexableText, buildBm25Index, } from './bm25.js';
26
+ export { detectLang, INDEXABLE_EXTENSIONS, isIndexablePath } from './languages.js';
25
27
  export { internalKindToLspKind, lspKindToInternalKind, } from './lsp-kind.js';
26
- export { packageGraphService, fileGraphService, symbolGraphService, } from './index-service.js';
27
- export type { Symbol, SymbolKind, SymbolLang, FileSymbols, FileMeta, IndexStats, IndexResult, SearchResult, GraphNode, GraphEdge, CodeMapGraph, } from './schema.js';
28
+ export type { ProjectIndexServerClientHealth, ProjectIndexServerConnectionState, ProjectIndexServerConnectionStatus, } from './project-server-client.js';
29
+ export type { ProjectIndexServerActivity, ProjectIndexServerHealth, } from './project-server-protocol.js';
30
+ export type { CodeMapGraph, FileMeta, FileSymbols, GraphEdge, GraphNode, IndexResult, IndexStats, SearchResult, Symbol, SymbolKind, SymbolLang, } from './schema.js';
28
31
  export { SCHEMA_VERSION } from './schema.js';
29
- export { detectLang, isIndexablePath, INDEXABLE_EXTENSIONS } from './languages.js';
32
+ export { codebaseIndexDirOverride, IndexStore, resolveIndexDir } from './writer.js';
30
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codebase-index/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI1E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,MAAM,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codebase-index/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,8BAA8B,EAC9B,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,MAAM,EACN,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}